@unbrained/pm-cli 2026.9.29 → 2026.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +21 -0
- package/dist/cli/main.js +1 -1
- package/dist/cli/register-list-query.d.ts +8 -5
- package/dist/cli/register-list-query.js +2 -2
- package/dist/cli-bundle/bundle-manifest.json +153 -153
- package/dist/cli-bundle/chunks/{chunk-4DOL43PF.js → chunk-7E2EBJLY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SC6JHXFT.js → chunk-A2UPOCSW.js} +27 -27
- package/dist/cli-bundle/chunks/{chunk-OTLIM22J.js → chunk-AYHLUJKD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5KEPG36D.js → chunk-BNAT4EYR.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-S5A2UIRV.js → chunk-DGOIXJZJ.js} +46 -46
- package/dist/cli-bundle/chunks/{chunk-SJI55O65.js → chunk-HGJLVN56.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-U3QJGJYN.js → chunk-JAVO3Z42.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GP6QTYSD.js → chunk-SCZMJ5DC.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TV3YDE36.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-SEJ53XDN.js → chunk-UIAH7UFK.js} +65 -65
- package/dist/cli-bundle/chunks/{chunk-2AQKVJMW.js → chunk-USTAFHIM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PJSQAWWQ.js → chunk-VWVFKPLX.js} +73 -73
- package/dist/cli-bundle/chunks/{chunk-P75SO5HO.js → chunk-YM342ELM.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-R3ELWWPY.js → register-list-query-L6HAHW7V.js} +6 -6
- package/dist/cli-bundle/chunks/{register-mutation-WHXJXIHJ.js → register-mutation-6OCZVTW5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-7ASWBYQG.js → register-operations-3E5U4TOE.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-FDRTUG54.js → register-setup-VUD37N4A.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MRH4A542.js → chunk-3CAZ7Z4R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-5MC57KRC.js → chunk-4AORVUT4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NY6FLQTN.js → chunk-6275G2AN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-T4H6Q44B.js → chunk-DJPP2HAK.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-NXQZMKW5.js → chunk-EVMH4SKN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6OXJVE74.js → chunk-IDB6E3ZV.js} +27 -27
- package/dist/cli-bundle/focused-chunks/{chunk-2O3QFI3G.js → chunk-IQBFYQF2.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-KLKKCHWM.js → chunk-MOUCTR72.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7URX7FMY.js → chunk-OMBDUJWZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AZE7KUHG.js → chunk-RIJQQOEZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-IFBA3ZAT.js → chunk-T4PZJQG4.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-DZVOCJFY.js → chunk-UPOMLSW7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-AVP5C674.js → chunk-XB5Q2P7Z.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K3AIMRIK.js → chunk-XUCXRZZZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FBIRNSYP.js → chunk-YBQ27KG7.js} +49 -49
- package/dist/cli-bundle/focused-chunks/{chunk-4A4DO5ZT.js → chunk-ZJ3CLTV4.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 +1 -1
- package/dist/cli-bundle/sdk-core.js +22 -22
- 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 +37 -37
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/extensions/extension-types.d.ts +13 -0
- package/dist/core/extensions/extension-types.js +1 -1
- package/dist/core/history/workspace-history.d.ts +17 -0
- package/dist/core/history/workspace-history.js +1 -1
- package/dist/sdk/extension-command-context.d.ts +1 -7
- package/dist/sdk/extension-command-context.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +2 -0
- package/dist/sdk/lifecycle/update.js +1 -1
- package/dist/sdk/merge/install.d.ts +2 -2
- package/dist/sdk/merge/install.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/get.d.ts +19 -15
- package/dist/sdk/query/get.js +1 -1
- package/dist/sdk/runtime.js +1 -1
- package/dist/sdk/structured-mutations.js +1 -1
- package/dist/sdk/testing.js +1 -1
- package/docs/BOUNDED_CONTEXT_READS.md +10 -7
- package/docs/COMMANDS.md +1 -1
- package/docs/MERGE_SAFETY.md +17 -6
- package/docs/README.md +1 -0
- package/docs/RELEASE_RELIABILITY.md +26 -4
- package/docs/SDK_AUDITED_MUTATIONS.md +52 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +5 -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-claude/package.json +2 -2
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-D32HVIB2.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{A as Un,Ab as eo,Bb as We,Cc as so,D as Gn,E as $n,O as Wn,P as Bn,Rb as to,S as zn,Tb as ro,Vb as no,Wb as oo,a as fe,b as K,bb as Zn,c as wn,ca as wt,d as bn,da as bt,ea as Vn,fa as Kn,ga as Qn,ha as Yn,ka as Xn,la as vt,ma as Et,na as $e,r as On,ta as Jn,v as me,w as jn,x as qn,y as Ge,yc as io,z as Nn}from"./chunk-5KEPG36D.js";import{$f as $,$h as ln,Ah as tn,B as q,Bc as T,Ci as Te,Cj as Sn,D as ct,Dj as In,Fj as yt,Gc as Or,Gh as V,Gj as kn,Hc as lt,Hh as rn,Ih as mt,Ik as Pn,Jh as le,Ji as Me,K as ie,Kc as Y,Kh as de,L as Ee,Lc as jr,Lh as ht,Li as Fe,Mc as se,Mf as L,Mh as O,Mi as hn,N as Se,Nh as nn,Ni as De,O as Pr,Oh as ue,Oi as Pe,Ph as on,Pi as pn,Qf as A,Qi as gn,Rb as H,Rf as ut,Rh as pt,Ri as He,Rj as Le,Sa as G,Sf as N,Ti as yn,Uh as sn,Ui as _n,Vj as Oe,Vn as Ln,Wh as an,Xh as Z,Yh as gt,Zh as cn,_a as x,_h as Ce,ab as Lr,ad as X,ai as dn,al as ee,bf as S,bg as J,cb as z,cd as qr,eb as Ie,ef as ke,eh as Ae,ek as xn,ff as Wr,fh as Yr,fj as vn,fk as Rn,ga as Hr,gf as Br,gh as ce,gj as En,hf as dt,id as Nr,if as zr,jk as An,la as m,li as j,mg as Kr,ml as Hn,na as h,nd as Ur,nk as Cn,od as Gr,og as ae,ok as Tn,pi as un,pk as je,qh as ft,qk as Mn,rk as qe,sf as Vr,sg as Qr,sh as Xr,sk as Ne,tg as xe,tk as Ue,ud as $r,ug as Re,uk as Fn,wi as fn,x as ve,xh as Jr,yh as Zr,yk as Dn,z as Dr,zh as en,zi as mn,zk as _t}from"./chunk-SEJ53XDN.js";import co from"node:fs/promises";import lo 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]="d51da34a-9f37-5441-91f0-15a16b601709")}catch{}})();function Ti(e,t,r){let n=new Set,o=[];for(let i of e){let s=i.trim();if(s.length===0||n.has(s))continue;n.add(s);let a=t.get(s);if(a===void 0){o.push({id:s,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(a.entries<=r){o.push({id:s,entries:a.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:s,entries:a.entries,selected:!0,skip_reason:null})}return o}function Mi(e,t){let r=[...e].sort((o,i)=>i.entries-o.entries||o.id.localeCompare(i.id)),n=[];for(let o of r){if(t.scope==="closed"&&o.bucket!=="closed"){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}n.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return n}function ao(e,t){if(t.ids!==void 0&&t.ids.length>0){let r=new Map(e.map(n=>[n.id,n]));return Ti(t.ids,r,t.minEntries)}return Mi(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1dede7b7-eeea-520d-97ce-a71687d93bc2")}catch{}})();function Fi(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let r=e.trim();if(r.length===0)throw new h("history-compact --before requires a non-empty value.",m.USAGE);if(/^\d+$/.test(r)){let i=Number.parseInt(r,10),s=N(t);if(!Number.isSafeInteger(i)||i<s+1||i>s+t.length+1)throw new h(`history-compact --before version must be between ${s+1} and ${s+t.length+1}.`,m.USAGE);let a=i-s-1;return{kind:"version",raw:r,compactCount:a,retainedCount:t.length-a}}let n=Date.parse(r);if(!Number.isFinite(n))throw new h(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,m.USAGE);let o=0;for(let[i,s]of t.entries()){let a=Date.parse(s.ts);if(!Number.isFinite(a))throw new h(`History for this item contains invalid timestamp at entry ${i+1}.`,m.GENERIC_FAILURE);if(a>=n)break;o+=1}return{kind:"timestamp",raw:r,compactCount:o,retainedCount:t.length-o}}function Di(e,t){let r=le(),n=le();for(let o=0;o<e.length;o+=1){let i=e[o];r=Z(r,i.patch,o+1,i.op),o+1===t&&(n=structuredClone(r))}return{checkpoint:n,finalReplay:r}}function Pi(e,t){if(!e)return{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null};let r=t[t.length-1];return{loadedItem:e,currentItemRawBeforeLock:e.raw,matchedChainBefore:Xr.some(n=>(r.item_hash_version===void 0||r.item_hash_version===n)&&ht(ue(e.document),n,A(r.hash_algorithm)).includes(r.after_hash))}}function Hi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function Li(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function Oi(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:r}=Di(e.historyEntries,e.boundary.compactCount),n=e.historyEntries.slice(e.boundary.compactCount),o=N(e.historyEntries,!0),i=e.historyEntries[e.boundary.compactCount-1],s=V({hashAlgorithm:A(i.hash_algorithm),nowIso:e.historyEntries[e.boundary.compactCount-1].ts,author:e.author,op:"history_compact_baseline",before:O(le()),after:O(t),message:Li(e.boundary),context:{history_compaction:{contract_version:1,version_offset:o===null?null:o+e.boundary.compactCount-1,checkpoint_timestamp_semantics:"last_compacted_entry",pruned_entry_count:e.boundary.compactCount,pruned_stream_digest:Jr(e.historyEntries.slice(0,e.boundary.compactCount)),retained_proof:"stream_digest_and_checkpoint",limitation:"individual_pruned_entries_require_pre_compaction_stream"}}}),a=[Zr({...s,before_hash:ht(le(),i.item_hash_version??1,A(i.hash_algorithm))[0],after_hash:i.after_hash,item_hash_version:i.item_hash_version}),...n];return e.dryRun||a.push(V({nowIso:S(),author:e.author,op:"history_compact",before:O(r),after:O(r),message:Hi(e.options,e.boundary)})),{rewrittenEntries:a,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ji(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await fe(r.path),s=await K(n,e,o,i.type_to_folder);return We({pmRoot:n,subject:s,settings:o,typeRegistry:i,operation:"history-compact",options:t,transform:a=>qi(s,t,a)})}function qi(e,t,r){let n=e.historyPath,o=r.entries,i=r.verification;if(!i.ok)throw new h(`history-compact requires a valid history chain (${i.errors.join(", ")}). Run pm history-repair ${e.id} first.`,m.CONFLICT);let s=Fi(t.before,o),a=s.compactCount>0,l=!!t.dryRun,d=r.author,c=[];a||c.push("history_compact_noop_before_boundary");let u=Pi(r.loadedItem,o);u.matchedChainBefore===!1&&c.push("history_compact_item_chain_mismatch");let{rewrittenEntries:f,baselineEntryAdded:p,auditEntryAdded:y}=Oi({historyEntries:o,boundary:s,changed:a,dryRun:l,author:d,options:t}),_=N(o,!0),g=s.retainedCount>0&&_!==null?_+s.compactCount+1:null;return{changed:a,rewrittenEntries:f,report:({verification:w,warnings:v})=>({id:e.id,dry_run:l,changed:a,compact_boundary:{kind:s.kind,before:s.raw,entries_compacted:s.compactCount,entries_retained:s.retainedCount,first_retained_entry:g},history:{path:n,entries_scanned:o.length,entries_after:f.length,baseline_entry_added:p,audit_entry_added:y,verify_ok:w.ok,verify_errors:w.errors},item:{exists:e.located!==null,path:e.located?.itemPath??null,matched_chain_before:u.matchedChainBefore},warnings:[...new Set([...c,...v])].sort((b,E)=>b.localeCompare(E)),generated_at:S()})}}var Ni=3;function Ui(e){for(let r of["allOver","minEntries"]){let n=e[r];if(n!==void 0&&(!Number.isSafeInteger(n)||n<0))throw new h(`history-compact ${r} must be a non-negative safe integer.`,m.USAGE)}let t=In(e.ids);if(e.ids!==void 0&&t==="")throw new h("history-compact ids requires at least one valid item ID.",m.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});return{...e,ids:t===void 0?void 0:Sn(t)}}function Uc(e,t){let r=t.ids!==void 0&&t.ids.length>0,n=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(r?1:0)+(n?1:0)===0)throw new h("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",m.USAGE);if(e!==void 0&&(r||n))throw new h("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",m.USAGE);if(r&&n)throw new h("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",m.USAGE)}function Gi(e){let t=0;for(let r of e.split(/\r?\n/))r.trim().length>0&&(t+=1);return t}async function $i(e){let t=$(e.settings.schema),r=Ge(t),n=await He(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(n.map(d=>[d.id,r.classify(d.status)])),i=lo.join(e.pmRoot,"history"),s=[],a=[];if(!await ve(i))return{candidates:s,preselectionErrors:a};let l=(await co.readdir(i)).filter(d=>d.endsWith(".jsonl")).sort((d,c)=>d.localeCompare(c));for(let d of l){let c=lo.join(i,d),u=d.slice(0,-6);try{let f=await co.readFile(c,"utf8");await se({path:c,scope:"project"}),s.push({id:u,entries:Gi(f),bucket:o.get(u)??null})}catch(f){a.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:s,preselectionErrors:a}}async function Wi(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await ji(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function Gc(e,t){let r=Ui(e),{pmRoot:n,settings:o,typeRegistry:i}=await fe(t.path),{candidates:s,preselectionErrors:a}=await $i({pmRoot:n,settings:o,typeToFolder:i.type_to_folder}),l=r.ids!==void 0&&r.ids.length>0?"ids":"scan",d=e.minEntries??Ni,c=o.history.compact_policy,u=l==="scan"&&e.allOver===void 0&&c.enabled,f=e.allOver??(u?c.max_entries:void 0),p=ao(s,{ids:r.ids,scope:e.scope,minEntries:d,allOver:f}),y=!!e.dryRun,_=[...a],g={streams_considered:s.length+a.length,selected:0,items_compacted:0,items_skipped:0,items_errored:a.length};for(let w of p){let v=await Wi({row:w,options:r,dryRun:y,global:t});if(_.push(v.result),!v.selected){g.items_skipped+=1;continue}g.selected+=1,v.compacted&&(g.items_compacted+=1),v.errored&&(g.items_errored+=1)}return{bulk:!0,dry_run:y,mode:l,scope:e.scope??null,criteria:{min_entries:d,all_over:f??null,policy_threshold_applied:u},totals:g,results:_,generated_at:S()}}import St from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9d9d625b-152d-5417-8702-6e0e45839500")}catch{}})();function It(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function fo(e){let t=[];for(let r of e)t.includes(r)||t.push(r);return t.includes("g")||t.push("g"),t.join("")}function mo(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",m.USAGE);let r=t,n="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(r=t.slice(1,o),n=fo(t.slice(o+1)))}if(r.length===0)throw new h("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(r,n)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:r,flags:n}}function ho(e,t){let r=[...new Set(It(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),n=[...new Set(It(t).map(i=>i.trim()))].filter(i=>i.length>0).map(mo),o=[...r,...n];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",m.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function po(e,t,r){if(t.length===0)return{value:e,replacements:0};let n=0,o=0;for(;n<=e.length;){let i=e.indexOf(t,n);if(i===-1)break;o+=1,n=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(r),replacements:o}}function go(e,t,r){let n=new RegExp(t.source,t.flags),o=[...e.matchAll(n)];return o.length===0?{value:e,replacements:0}:{value:e.replace(n,r),replacements:o.length}}function kt(e,t,r){let n=e,o=0;for(let i of t){let s=i.kind==="literal"?po(n,i.value,r):go(n,i,r);n=s.value,o+=s.replacements}return{value:n,replacements:o}}function he(e,t,r){if(typeof e=="string")return kt(e,t,r);if(Array.isArray(e)){let n=0;return{value:e.map(i=>{let s=he(i,t,r);return n+=s.replacements,s.value}),replacements:n}}if(typeof e=="object"&&e!==null){let n=0,o={};for(let[i,s]of Object.entries(e)){let a=he(s,t,r);n+=a.replacements,o[i]=a.value}return{value:o,replacements:n}}return{value:e,replacements:0}}function uo(e,t,r){let n=0;return{patch:e.map(i=>{if(!Object.prototype.hasOwnProperty.call(i,"value"))return i;let s=he(i.value,t,r);return n+=s.replacements,s.replacements>0?{...i,value:s.value}:i}),replacements:n}}function Bi(e){let t=structuredClone(mt),r=0,n=0;for(let o=0;o<e.length;o+=1){let i=e[o];de(t,void 0,A(i.hash_algorithm))!==i.before_hash&&(r+=1),t=Z(t,i.patch,o+1,i.op),de(t,void 0,A(i.hash_algorithm))!==i.after_hash&&(n+=1)}return{hashMismatchesBefore:r,hashMismatchesAfter:n,finalDocument:t}}function zi(e,t,r){let n=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let d=kt(e.message,t,r);s=d.value,n+=d.replacements,d.replacements>0&&(o=!0)}let a=uo(e.patch,t,r);n+=a.replacements,o||=a.replacements>0;let l=e.reanchor_evidence?.map(d=>{let c=d.patch?uo(d.patch,t,r):{patch:void 0,replacements:0},u=d.record?he(d.record,t,r):{value:void 0,replacements:0};n+=c.replacements,n+=u.replacements;let f=c.replacements>0||u.replacements>0;if(o||=f,!f)return d;i=!0;let{patch:p,record:y,record_hash:_,record_hash_version:g,...w}=d;return c.replacements>0?w:{...w,patch:d.patch}});return{entry:{...e,message:s,patch:a.patch,...l?{reanchor_evidence:l}:{}},replacements:n,changed:o,reanchorEvidenceRedacted:i}}function Vi(e,t,r){let n=structuredClone(mt),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let l=e[a],d=en(l);if(!d.ok)throw new h(`history-redact refuses invalid immutable record ${a+1} (${d.error}).`,m.GENERIC_FAILURE);let c=zi(l,t,r);i+=c.replacements,c.changed&&(o+=1);let u=de(n,void 0,A(l.hash_algorithm));n=Z(n,c.entry.patch,a+1,c.entry.op);let f=de(n,void 0,A(l.hash_algorithm));s.push(tn(l,{...c.entry,before_hash:u,after_hash:f},{retainPriorRecord:c.changed,retainPriorRecordHash:!c.changed}))}return{entries:s,finalDocument:n,entriesChanged:o,replacements:i}}function yo(e){return Object.keys(e.metadata).length>0}function Ki(e){if(!yo(e.finalDocument))return{raw:null,path:null,document:null};let t=Re(O(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:z(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:xe(t,{format:"toon",schema:e.settings.schema})}}function Qi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function Yi(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let r=e.nextItemDocument??O(e.rewritten.finalDocument);return t.push(V({nowIso:S(),author:e.author,op:"history_redact",before:r,after:r,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}function Xi(e){let t=[];return{applyRewrite:async({historyRawUnderLock:r})=>{let n=await Me(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await q(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await St.rm(e.currentItem.path,{force:!0}),await q(e.subject.historyPath,sn(e.rewrittenEntries))}catch(l){try{await Ji(e.subject.historyPath,r,o,i)}finally{await ft(e.subject.historyPath)}throw l}await ft(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Fe({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await n().catch(a=>{s=()=>{throw a}})}s()},afterWrite:async()=>[...t,...await Zi(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]}}async function Ji(e,t,r,n){t===null?await St.rm(e,{force:!0}):await q(e,t);for(let o of r){let i=n.get(o);i===void 0?await St.rm(o,{force:!0}):await q(o,i)}}async function Zi(e,t){let r=[],n=new Set(t.filter(o=>o!==null));for(let o of n)r.push(...await Y({path:o,scope:"project",op:"history_redact"}));return r.push(...await Y({path:e,scope:"project",op:"history_redact:history"})),r}async function al(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await fe(r.path),s=t.replacement??"",a=s.length===0,l=a?"[redacted]":s,d=ho(t.literal,t.regex),c=await K(n,e,o,i.type_to_folder);return We({pmRoot:n,subject:c,settings:o,typeRegistry:i,operation:"history-redact",options:t,transform:u=>es({pmRoot:n,subject:c,settings:o,typeRegistry:i,options:t,rules:d,replacement:l,replacementIsDefault:a},u)})}function es(e,t){let{pmRoot:r,subject:n,settings:o,typeRegistry:i,options:s,rules:a,replacement:l,replacementIsDefault:d}=e,c=t.entries,u=Bi(c),f=Vi(c,a,l),p=u.hashMismatchesBefore+u.hashMismatchesAfter,y=!!s.dryRun,_=f.replacements>0,g=[];p>0&&g.push(`history_redact_preexisting_hash_mismatches:${p}`),_||g.push("history_redact_no_matches");let w={raw:t.loadedItem?.raw??null,path:n.located?.itemPath??null,document:t.loadedItem?.document??null},v=Ki({pmRoot:r,subject:n,settings:o,typeToFolder:i.type_to_folder,finalDocument:f.finalDocument}),b=(w.path??null)!==(v.path??null)||(w.raw??null)!==(v.raw??null),E=t.author,C=Qi(s,f),{rewrittenEntries:k,auditEntryAdded:I}=Yi({rewritten:f,dryRun:y,changed:_,nextItemDocument:v.document,author:E,message:C});return{changed:_,rewrittenEntries:k,...Xi({pmRoot:r,subject:n,settings:o,typeRegistry:i,currentItem:w,nextItem:v,author:E,rewrittenEntries:k}),report:({verification:R,warnings:st})=>({id:n.id,dry_run:y,changed:_,patterns:{literal_count:a.filter(M=>M.kind==="literal").length,regex_count:a.filter(M=>M.kind==="regex").length,total_count:a.length,replacement_is_default:d},history:{path:n.historyPath,entries_scanned:c.length,entries_changed:f.entriesChanged,replacements:f.replacements,hash_mismatches_before:u.hashMismatchesBefore,hash_mismatches_after:u.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:I,verify_ok:R.ok,verify_errors:R.errors},item:{existed_before:w.path!==null,exists_after:v.path!==null,path_before:w.path,path_after:v.path,changed:b},warnings:[...new Set([...g,...st])].sort((M,at)=>M.localeCompare(at)),generated_at:S()})}}var cl={applyLiteralRule:po,applyRegexRule:go,buildRedactionRules:ho,hasItemMetadata:yo,normalizeRegexFlags:fo,normalizeStringArrayInput:It,parseRegexRule:mo,redactStringValue:kt,redactUnknownValue:he};(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]="63c96190-0df9-5803-aa61-b973493a7277")}catch{}})();var xt={format:"pm-history-attestation",version:1,stream_hash:"exact_file_bytes",rollup_hash:"stable_json_without_workspace_digest",ordering:"stream_id_code_unit_ascending",consistency:"per_stream_snapshot_with_change_detection",trust:"independently_retained_bundle"};import{createHash as ts}from"node:crypto";import{isUtf8 as rs}from"node:buffer";import pe from"node:fs/promises";import Rt 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]="d0001f37-7941-5cad-8950-2c6925056d10")}catch{}})();async function _o(e){try{return(await pe.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort()}catch(t){if(Dr(t))return[];throw t}}function ns(e,t,r,n){let o=t.at(-1),i;for(let l=t.length-1;l>=0;l-=1)if(["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(t[l].op)){i=t[l];break}let s=t[0]?.context?.history_compaction,a=typeof s=="object"&&s!==null&&"pruned_stream_digest"in s&&typeof s.pruned_stream_digest=="string"?s.pruned_stream_digest:null;return{id:e,entries:t.length,bytes:r,stream_digest:n,latest_after_hash:o?.after_hash??null,latest_record_hash:o?.record_hash??null,latest_hash_algorithm:o?A(o.hash_algorithm):null,rewrite_count:t.reduce((l,d)=>l+(d.reanchor_evidence?.length??0),0),checkpoint_digest:a,last_maintenance:i?{op:i.op,ts:i.ts,record_hash:i.record_hash??null}:null}}function os(e,t,r){try{if(!/^[A-Za-z0-9_-]+$/u.test(e)||!rs(t))return null;let n=[];for(let o of t.toString("utf8").split(/\r?\n/u)){if(!o.trim())continue;let i=JSON.parse(o);if(typeof i!="object"||i===null||Array.isArray(i))return null;let s=i;if(![s.op,s.author,s.ts,s.before_hash,s.after_hash].every(a=>typeof a=="string")||!Array.isArray(s.patch))return null;n.push(s)}return pt(n).ok?ns(e,n,t.length,r):null}catch{return null}}async function At(e,t){if(!(await pe.stat(e)).isDirectory())throw new TypeError("attestation tracker root must be a directory");let r=Rt.join(e,"history"),n=await _o(r),o=new Map,i=[];for(let s of n){let a=s.slice(0,-6),l={id:a,digest:null,stream:null};i.push(l);let d=Rt.join(r,s);try{let c=await pe.lstat(d);if(o.set(s,H([c.ino,c.size,c.mtimeMs,c.ctimeMs])),!c.isFile())continue;let u=await pe.readFile(d);l.digest=ts(t).update(u).digest("hex"),l.stream=os(a,u,l.digest)}catch{}}if(H(n)!==H(await _o(r)))throw new TypeError("attestation history inventory changed during read; retry");for(let[s,a]of o){let l=await pe.lstat(Rt.join(r,s));if(a!==H([l.ino,l.size,l.mtimeMs,l.ctimeMs]))throw new TypeError("attestation history stream changed during read; retry")}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]="0a4b3fc5-70bb-5ec0-82b5-a7cdd03c09ea")}catch{}})();function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Tt(e,t){return Object.keys(e).length===t.length&&t.every(r=>Object.hasOwn(e,r))}function te(e,t){return typeof e=="string"&&(t==="sha256"?/^[a-f0-9]{64}$/u:/^[a-f0-9]{128}$/u).test(e)}function is(e){return e.entries===0?[e.latest_hash_algorithm,e.latest_after_hash,e.latest_record_hash,e.checkpoint_digest,e.last_maintenance].every(t=>t===null)&&e.rewrite_count===0:e.latest_hash_algorithm!=="sha256"&&e.latest_hash_algorithm!=="sha512"?!1:te(e.latest_after_hash,e.latest_hash_algorithm)&&(e.latest_record_hash===null||te(e.latest_record_hash,e.latest_hash_algorithm))}function ss(e){return e===null?!0:!Ct(e)||!Tt(e,["op","ts","record_hash"])?!1:typeof e.op=="string"&&["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(e.op)&&typeof e.ts=="string"&&ke(e.ts)&&(e.record_hash===null||te(e.record_hash,"sha256")||te(e.record_hash,"sha512"))}function as(e,t){return!Ct(e)||!Tt(e,["id","entries","bytes","stream_digest","latest_after_hash","latest_record_hash","latest_hash_algorithm","rewrite_count","checkpoint_digest","last_maintenance"])?!1:typeof e.id=="string"&&/^[A-Za-z0-9_-]+$/u.test(e.id)&&[e.entries,e.bytes,e.rewrite_count].every(r=>typeof r=="number"&&Number.isSafeInteger(r)&&r>=0)&&te(e.stream_digest,t)&&is(e)&&(e.checkpoint_digest===null||te(e.checkpoint_digest,"sha256"))&&ss(e.last_maintenance)}function wo(e){if(!Ct(e)||!Tt(e,["format","version","hash_algorithm","generated_at","streams","workspace_digest"]))throw new TypeError("Invalid history attestation bundle");if(e.format!==xt.format||e.version!==1||typeof e.generated_at!="string"||!ke(e.generated_at)||!Array.isArray(e.streams)||e.hash_algorithm!=="sha256"&&e.hash_algorithm!=="sha512")throw new TypeError("Invalid history attestation format");let t=e.hash_algorithm,r;for(let i of e.streams){if(!as(i,t))throw new TypeError("Invalid history attestation stream");let s=i.id;if(r!==void 0&&s<=r)throw new TypeError("Invalid history attestation stream order");r=s}let{workspace_digest:n,...o}=e;if(ut(H(o),t)!==n)throw new TypeError("History attestation rollup mismatch");return e}async function bo(e={}){let t=A(e.hashAlgorithm),r=e.generatedAt??S();if(!ke(r))throw new TypeError("Invalid history attestation timestamp");let n=await At(x(e.cwd??process.cwd(),e.pmRoot),t),o=n.filter(s=>s.stream===null);if(o.length>0)throw new TypeError(`Cannot export history attestation: invalid streams ${o.map(s=>s.id).join(", ")}`);let i={format:xt.format,version:1,hash_algorithm:t,generated_at:r,streams:n.map(s=>s.stream)};return wo({...i,workspace_digest:ut(H(i),t)})}async function vo(e,t={}){let r=wo(e),n=await At(x(t.cwd??process.cwd(),t.pmRoot),r.hash_algorithm),o=new Map(n.map(c=>[c.id,c])),i=new Map(r.streams.map(c=>[c.id,c])),s=r.streams.filter(c=>!o.has(c.id)).map(c=>c.id),a=n.filter(c=>!i.has(c.id)).map(c=>c.id),l=n.filter(c=>c.stream===null).map(c=>c.id),d=[];for(let c of r.streams){let u=o.get(c.id);u&&(u.digest!==c.stream_digest||H(u.stream)!==H(c))&&d.push({id:c.id,before_digest:c.stream_digest,after_digest:u.digest,last_maintenance:u.stream?.last_maintenance??null})}return{ok:s.length+a.length+l.length+d.length===0,workspace_digest:r.workspace_digest,streams_checked:n.length,changed_streams:d.map(c=>c.id),missing_streams:s,added_streams:a,invalid_streams:l,transitions:d}}import Eo from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="825d7132-a49d-584a-b4ac-0801cfe6ad49")}catch{}})();async function Dl(e,t){for(let n of["verify","output","hashAlgorithm"]){let o=e[n];if(!(n==="verify"&&typeof o=="object"&&o!==null)&&o!==void 0&&(typeof o!="string"||o.trim().length===0))throw new h(`history attest ${n} requires a nonempty string.`,m.USAGE)}if(e.verify!==void 0){if(e.output!==void 0||e.hashAlgorithm!==void 0)throw new h("history attest --verify cannot be combined with --output or --hash-algorithm",m.USAGE);let n;try{n=typeof e.verify=="string"?JSON.parse(await Eo.readFile(e.verify,"utf8")):e.verify}catch{throw new h("Cannot read history attestation proof. Provide --verify with a readable JSON proof file.",m.USAGE)}return vo(n,{pmRoot:t.path})}let r=await bo({pmRoot:t.path,hashAlgorithm:A(e.hashAlgorithm)});if(e.output===void 0)return r;try{await Eo.writeFile(e.output,`${JSON.stringify(r,null,2)}
|
|
2
|
-
`,{flag:"wx",mode:384})}catch{throw new h("Cannot create history attestation proof. Choose --output with a new filename in a writable directory; existing files are never overwritten.",m.USAGE)}return{output:e.output,workspace_digest:r.workspace_digest,streams:r.streams.length}}import cs from"fast-json-patch";import Mt from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85aa928d-92b8-5f67-8482-0fe5715fef45")}catch{}})();async function So(e,t,r){let n=await pn(e,{schema:t.schema});return n.error===null?{raw:n.raw,document:n.document}:{raw:n.raw,document:Io(r),recovered:!0}}function ls(e,t){return an(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function Io(e){let t=gt(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:Re(O(t))}async function ds(e,t,r,n){let o=await K(e,t,r,n),i=o.located?await Te({pmRoot:e,settings:r,itemId:o.id,commandLabel:"restore"}):{warnings:[]};return{...o,historyPolicyWarnings:i.warnings}}function us(e,t){let r=ue(e),n=ue(t),o=cs.compare(r,n),i=new Set;for(let s of o){if(s.path==="/body"||s.path.startsWith("/body/")){i.add("body");continue}let a=s.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];i.add(a.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(i).sort((s,a)=>s.localeCompare(a))}async function fs(e){let t=await eo({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"restore",readItem:r=>So(r,e.settings,e.history)});return{loadedItemUnderLock:t.loadedItemUnderLock,existingItemPath:t.locatedUnderLock?.itemPath??null}}function ms(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:Io(t),originalRaw:null}}function hs(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function ps(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await q(e.existingItemPath,e.resolvedOriginalRaw),await Mt.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await q(e.existingItemPath,e.resolvedOriginalRaw);return}await Mt.rm(e.restoredItemPath,{force:!0})}async function gs(e){return[...await Y({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await Y({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function Kl(e,t,r,n){let o=x(process.cwd(),n.path);await L(o);let i=await j(o),s=G(i,T()),a=await ds(o,e,i,s.type_to_folder),l=a.id,{raw:d,entries:c}=await Yr(a.historyPath,l);if(c.length===0)throw new h(`No history exists for ${l}; restore is unavailable.`,m.NOT_FOUND);let u=ls(t,c),f=cn(gt(c,u.historyIndex),u),p=nn(f,{schema:i.schema});if(p.metadata.id!==l)throw new h(`Restore target resolved to item ${p.metadata.id}, expected ${l}.`,m.GENERIC_FAILURE);let _=(a.located?await So(a.located,i,c):null)?.raw??null,g=Ae(r.author,i.author_default),w=await zr(o,l,i.locks.ttl_seconds,g,!!r.force,i.governance.force_required_for_stale_lock,i.locks.wait_ms);try{let{loadedItemUnderLock:v,existingItemPath:b}=await fs({pmRoot:o,subject:a,settings:i,typeRegistry:s,historyRawBeforeLock:d,currentItemRawBeforeLock:_,history:c}),E="toon",C=ms(v,c),k=hs({document:C.document,author:g,force:r.force,enforcement:i.governance.ownership_enforcement,resolvedId:l}),I=us(C.document,p),R=await fn({pmRoot:o,settings:i,operation:"restore",author:g,before:C.document,after:p});await jr({pm_root:o,operation:"restore",before:C.document,after:p,changed_fields:I,sdk:yn({pmRoot:o,settings:i,typeToFolder:s.type_to_folder})});let st=xe(p,{format:E,schema:i.schema}),M=z(o,p.metadata.type,l,E,s.type_to_folder),at=await Me(o,g),Tr=[];try{await q(M,st),b&&M!==b&&await Mt.rm(b);let Ai=V({nowIso:S(),author:g,op:"restore",before:C.document,after:p,message:r.message,context:R.decisions.length===0?void 0:{workflow_policies:R.decisions}});try{await rn(a.historyPath,Ai)}catch(Ci){throw await ps({existingItemPath:b,resolvedOriginalRaw:C.originalRaw,restoredItemPath:M}),Ci}Tr=await Fe({pmRoot:o,preferredFormat:i.item_format,typeToFolder:s.type_to_folder,schema:i.schema,itemPath:M,previousItemPath:b??void 0,document:p})}finally{await at()}let Ri=await gs({restoredItemPath:M,historyPath:a.historyPath,before:C.document,after:p});Or({id:p.metadata.id,op:"restore",item_type:p.metadata.type,previous_status:C.document.metadata.status,status:p.metadata.status,previous:lt(C.document.metadata,I),current:lt(p.metadata,I),changed_fields:I});let Mr=c[u.historyIndex],Fr=N(c,!0);return{item:p.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,version:Fr===null?null:Fr+u.historyIndex+1,entry_ts:Mr.ts,entry_op:Mr.op},changed_fields:I,warnings:[...R.warnings,...v?.recovered?["restore_unreadable_item_recovered"]:[],...a.historyPolicyWarnings,...k,...Tr,...Ri]}}finally{await w()}}(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]="2a9a4dc0-8027-5761-9bbf-cac1ef83bd10")}catch{}})();var ys=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],_s=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function ws(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function Yl(e,t,r={}){let n=r.includePagination!==!1;return[t,...ys.map(i=>e?.[i]),...n?[e?.limit,e?.offset]:[]].some(ws)||_s.some(i=>e?.[i]===!0)}function ko(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(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]="7a4a98b2-3872-506d-b88d-877b0033dd2d")}catch{}})();var xo=["parent","type","priority","status","assignee","tags","sprint","release"];function Ao(e,t){let r=Le(e,t,{strict:!0,flagLabel:"--status"});if(!(!r||r.length===0))return r}function Co(e,t=["estimate","estimated_minutes","priority"]){let r=e.sum?.trim(),n=e.avg?.trim(),o=r&&r.length>0?r:void 0,i=n&&n.length>0?n:void 0;if(!o&&!i)return null;if(o&&i&&o!==i)throw new h("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=o??i;if(!t.includes(s))throw new h(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:o!==void 0,avg:i!==void 0}}function To(e){let t=e?.trim()??"status";if(t.length===0)throw new h("--group-by requires at least one field name",m.USAGE);let r=Hn(t);if(r.length===0)throw new h("--group-by requires a comma-separated list of fields",m.USAGE);for(let n of r)if(!xo.includes(n))throw new h(`Aggregate group fields must be one of ${xo.join("|")}; received "${n}"`,m.USAGE);return r}function Mo(e){let t=[...new Set(e.map(r=>r.trim().toLowerCase()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length===0?null:t.join(",")}function Fo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return Mo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Do(e,t){let r=e??null,n=t??null;return r===n?0:r===null?1:n===null?-1:typeof r=="number"&&typeof n=="number"?r-n:String(r).localeCompare(String(n))}function Be(e,t){return e.map(r=>`${r}:${JSON.stringify(t[r]??null)}`).join("|")}var bs={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Ro(e,t){return t==null||t===""?bs[e]:String(t)}function vs(e,t){return e.length===1?Ro(e[0],t[e[0]]):e.map(r=>`${r}=${Ro(r,t[r])}`).join(" | ")}function Po(e,t,r){for(let n of r){let o=Do(e.group[n],t.group[n]);if(o!==0)return o}return 0}function Ho(e,t){let n=e[t];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){let o=n.trim();if(o.length===0)return null;let i=Number(o);if(Number.isFinite(i))return i}return null}function Lo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Ft(e,t,r){let n=Kr(String(t),r)??t;if(n===r.open_status){e.open_count+=1;return}if(n==="in_progress"||r.active_statuses.has(n)&&n!==r.open_status){e.in_progress_count+=1;return}if(r.terminal_done_statuses.has(n)||n===r.close_status){e.closed_count+=1;return}e.other_count+=1}function Es(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function Ss(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Is(e){e.accumulator.row.count+=1,e.includeCompletion&&Ft(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Ss(e.accumulator,e.numericValue)}function ks(e,t,r,n){for(let o of t){let i=Be(r,o),s=e.get(i);if(s){Is({...n,accumulator:s});continue}let a=Es(o,n.numericValue);n.includeCompletion&&Ft(a,n.item.status,n.statusRegistry),e.set(i,a)}}function xs(e,t){let r={};for(let n of e)r[n]=Fo(n,t);return r}function Rs(e,t,r){let n=[xs(e,t)];if(r==="tuple")return n;for(let o of e){let i=t[o];if(!Array.isArray(i))continue;let s=[...new Set(i.map(a=>a.trim().toLowerCase()).filter(Boolean))].sort();s.length!==0&&(n=n.flatMap(a=>s.map(l=>({...a,[o]:l}))))}return n}function As(e,t,r,n){let o={...e.row,group_label:vs(t,e.row.group)};return r&&(o.open=e.open_count,o.in_progress=e.in_progress_count,o.closed=e.closed_count,o.other=e.other_count,o.completion_pct=Lo(e.closed_count,e.row.count)),n!==null&&(o.null_count=e.null_count,n.sum&&(o.sum=e.numeric_sum),n.avg&&(o.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),o}function Cs(e){return{group_by:e.groupBy,set_mode:e.setMode,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function rd(e,t){if(e.count===!1)throw new h("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let r=x(process.cwd(),t.path),n=await j(r),o=$(n.schema),i=["estimate","estimated_minutes","priority",...J(n.schema).definitions.filter(b=>b.type==="number").map(b=>b.metadata_key)],s=To(e.groupBy),a=e.setMode??"element";if(a!=="element"&&a!=="tuple")throw new h("Aggregate --set-mode must be element or tuple",m.USAGE);let l=Ao(e.status,o),d=Co(e,[...new Set(i)].sort((b,E)=>b.localeCompare(E))),c=e.completion===!0,u=e.includeUnparented===!0,f=await $e(void 0,{...ko(e),status:e.status,noTruncate:!0,strictRead:!0},t),p=new Map,y=0,_=0,g=0;for(let b of f.items){let E=b;if(s.includes("parent")&&E.parent===void 0&&!u){y+=1;continue}let C=d===null?null:Ho(E,d.field),k=Rs(s,E,a);ks(p,k,s,{item:E,statusRegistry:o,includeCompletion:c,numericAggregation:d,numericValue:C}),g+=k.length,_+=1}let w=[...p.values()].map(b=>As(b,s,c,d)).sort((b,E)=>Po(b,E,s)),v=f.warnings&&f.warnings.length>0?f.warnings:void 0;return{...Ts(w,s,e),count:w.length,totals:{items_considered:f.items.length,items_grouped:_,items_skipped_unparented:y,group_memberships:g},filters:Cs({groupBy:s,setMode:a,includeCompletion:c,includeUnparented:u,status:l,options:e,numericAggregation:d}),now:S(),...v?{warnings:v}:{}}}function Ts(e,t,r){let n=Jn(r.limit,"limit")??50,o=r.after===void 0?-1:e.findIndex(a=>Be(t,a.group)===r.after);if(r.after!==void 0&&o<0)throw new h("Aggregate --after cursor is absent from the current grouping; restart without --after.",m.USAGE);let i=e.slice(o+1,o+1+n),s=o+1+i.length<e.length;return{groups:i,returned_count:i.length,truncated:s,next_after:s?Be(t,i.at(-1).group):null}}var nd={buildGroupKey:Be,compareAggregateRows:Po,compareNullableGroupValue:Do,completionPct:Lo,normalizeTagGroupValue:Mo,parseGroupBy:To,parseNumericAggregation:Co,parseStatus:Ao,readNumericAggregateValue:Ho,resolveGroupValue:Fo,updateCompletionCounts:Ft};(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]="acda1c64-cb50-57b5-868d-a27ca6912979")}catch{}})();var Oo=1e6,jo=20;function qo(e,t,r,n=jo){if(!Number.isSafeInteger(n)||n<0)throw new h("Child projection sample limit must be a non-negative integer.",m.USAGE);let o=e.trim().toLowerCase(),i={},s=[],a=0;for(let g of t){if(a+=1,a>Oo)throw new h(`Child projection exceeded the ${Oo.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});s.push(g)}let l=new Map(s.map(g=>[g.id.trim().toLowerCase(),g])),d=zn(Bn(s,Wn())),c=new Set(d.children_by_parent.get(o)??[]);for(let g of s)g.parent?.trim().toLowerCase()===o&&c.add(g.id.trim().toLowerCase());let u=[...c].map(g=>l.get(g)),f=0;for(let g of u){let w=g.status.trim().toLowerCase();i[w]=(i[w]??0)+1,ae(w,r)||(f+=1)}u.sort((g,w)=>g.id.localeCompare(w.id));let p=u.slice(0,n).map(g=>({id:g.id,title:g.title,type:g.type,status:g.status,priority:g.priority})),y=u.length>p.length,_=n===0?jo:n;return{count:u.length,active:f,by_status:Object.fromEntries(Object.entries(i).sort(([g],[w])=>g.localeCompare(w))),sample:p,sample_limit:n,truncated:y,next_offset:y?p.length:null,continuation:y?`pm list --status all --parent ${e} --offset ${p.length} --limit ${_}`:null,scanned: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]="926ca5b2-8cfc-56e7-8cbf-fb0e7152d834")}catch{}})();var Ms=new Set(["event","meeting","reminder"]);function Fs(e){return Ms.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Dt(e){if(!Fs(e))return;let t=[...e.events??[]].sort((n,o)=>n.start_at.localeCompare(o.start_at)),r=t[0];return{deadline:e.deadline??null,start_at:r?.start_at??null,end_at:r?.end_at??null,location:r?.location??null,reminders:[...e.reminders??[]],events:t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="26bf8487-2515-5885-b6de-56ba6292fb65")}catch{}})();var Ps=new Set(["epic","feature","milestone","plan"]),Hs=new Set(Object.keys(Hr).map(e=>e.toLowerCase()));function Ht(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(r=>[r,e[r]?.length??0]))}function Ls(e,t){let r=Ht(e);return[...t.length>0?["body"]:[],...Object.entries(r).flatMap(([n,o])=>o>0?[n]:[]),...r.files+r.tests+r.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Dt(e)?["schedule"]:[]]}function Uo(e){let t=e.trim().toLowerCase();return t.length>0&&(Ps.has(t)||!Hs.has(t))}function No(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Os(e,t){let r=e?.trim(),n=r&&r.length>0?r:null,o=[...t].reverse().find(s=>s.op==="claim"),i=[...t].reverse().find(s=>s.op==="release");return{claimed:n!==null,assignee:n,last_claim:o?No(o):null,last_release:i?No(i):null}}function js(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(wt.includes(t))return t;throw new h("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function qs(e,t){let r=Ht(e);if(t==="deep")return{...e,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:r.notes,tests_count:r.tests,collection_counts:r};let{comments:n,notes:o,learnings:i,files:s,tests:a,docs:l,reminders:d,events:c,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:r}}function Ns(e){if(e===void 0)return null;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function Ve(e){return e.startsWith("item.")?e.slice(5):e}function Us(e,t,r){if(e===null)return;let n=bt(t),o=new Set(n),i=e.filter(s=>{let a=Ve(s);return!o.has(s)&&!o.has(a)});if(i.length>0){let s=["get",r,"--fields","id,title,status"];throw new h(`Unknown get --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"],recovery:{allowed_values:n,suggested_retry:X(s),suggested_retry_args:s}})}}var Gs=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function $s(e,t,r){return Object.hasOwn(t,r)?t[r]:e[r]!==void 0?e[r]:Gs.has(r)?[]:void 0}function Ws(e,t){let r=e,n={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Ht(e)},o={id:e.id};for(let i of t){let s=Ve(i);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(o[s]=$s(r,n,s))}return o}function ge(e,t){return e?.some(r=>r===t||r===`item.${t}`)??!1}function ze(e,t){return e.some(r=>{let n=Ve(r);return n===t||n.startsWith(`${t}.`)})}function Bs(e,t){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new h("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:X(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});if(e.tree!==!0&&e.treeDepth!==void 0)throw new h("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new h("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":js(e.depth),treeDepth:e.tree===!0?On(e.treeDepth,"--tree-depth"):void 0,fields:Ns(e.fields),fieldProjection:e.fields!==void 0}}async function zs(e,t,r){let n=x(process.cwd(),t.path);await L(n);let o=await j(n),i=G(o,T());if(r!==void 0){let l=await bn(e,r,{pmRoot:t.path});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:l.document.metadata.id,metadata:l.document.metadata,body:l.document.body,historical:l}}let s=await De(n,e,o.id_prefix,o.item_format,i.type_to_folder);if(!s)throw await _n(n,e,o.id_prefix,i.type_to_folder);let a=await Pe(s,{schema:o.schema});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Vs(e,t,r,n){let o=J(t.schema).definitions.map(i=>i.metadata_key);if(Us(e,o,n),r&&ze(e??[],"children"))throw new h("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Pt(e){let{fieldProjection:t,depth:r,fields:n,field:o}=e;return t?o==="body"||o==="linked"?ge(n,o):ze(n,o):r!=="brief"}async function Ks(e,t){if(!t)return;let r=Ie(e.pmRoot,e.locatedId),n=await ce(r,e.locatedId);return Os(e.metadata.assignee,e.historical?n.slice(0,e.historical.target.historyIndex+1):n)}function Qs(e,t,r,n){let o=n||ge(r,"linked.files"),i=n||ge(r,"linked.tests"),s=n||ge(r,"linked.docs");!n&&!o&&!i&&!s||(e.linked={files:o?t.metadata.files??[]:[],tests:i?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Ys(e,t){if(!t)return;let r=$(e.settings.schema),n=await He(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return qo(e.locatedId,n,r)}function Xs(e,t,r,n){if(!n)return;let o=Dt(t.metadata);if(o){if(r===null||ge(r,"schedule")){e.schedule=o;return}e.schedule=Object.fromEntries(Object.entries(o).filter(([i])=>r.some(s=>Ve(s)===`schedule.${i}`)))}}async function Js(e,t,r,n){if(t.tree!==!0)return;let o=await $e(void 0,{parent:e.locatedId,tree:!0,treeDepth:r===void 0?void 0:String(r),full:!0},n);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:r??null,count:o.count,items:o.items.map(i=>i)}}async function kd(e,t,r={}){let n=Bs(r,e),o=await zs(e,t,r.at);Vs(n.fields,o.settings,o.historical!==void 0,o.locatedId);let i=Pt({...n,field:"body"}),s=Pt({...n,field:"linked"}),a=Pt({...n,field:"claim_state"}),l=o.historical===void 0&&(n.fieldProjection?ze(n.fields,"children"):n.depth==="deep"&&Uo(o.metadata.type)),d=n.fieldProjection?ze(n.fields,"schedule"):n.depth!=="brief",c=await Ks(o,a),u={item:n.fieldProjection?Ws(o.metadata,n.fields):qs(o.metadata,n.depth)};i&&(u.item.body=o.body),Qs(u,o,n.fields,s),c&&(u.claim_state=c),Xs(u,o,n.fields,d);let f=await Ys(o,l);f!==void 0&&(u.children=f);let p=await Js(o,r,n.treeDepth,t);if(p!==void 0&&(u.tree=p),o.historical&&(u.reconstructed=!0,u.as_of_version=o.historical.as_of_version,u.as_of_timestamp=o.historical.as_of_timestamp),o.historical===void 0)try{await Vr({pmRoot:o.pmRoot,author:Ae(void 0,o.settings.author_default),itemIds:[o.locatedId],intent:"get"})}catch{}return qr(u,Ls(o.metadata,o.body)),u}var xd={shouldAutoIncludeGetChildren:Uo};(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]="0cc18a30-5068-5c59-b559-7afc4d446ed8")}catch{}})();function Zs(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function ea(e,t){return e.map(({entry:r,version:n})=>{let o=new Set,i=on(r.patch);for(let s of i)o.add(yt(s.path)),s.from&&o.add(yt(s.from));return{index:n,...t?{version:t.offset===null?null:t.offset+n}:{},ts:r.ts,op:r.op,author:r.author,patch_ops:i.length,changed_fields:[...o].sort((s,a)=>s.localeCompare(a))}})}function ta(e){if(e[0]?.op!=="history_compact_baseline")return;let t=N(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function ra(e,t){let r=x(process.cwd(),t.path);await L(r);let n=await j(r),o=G(n,T()),i=e.trim()===Ce,s=i?Ce:un(e,n.id_prefix),a=await De(r,s,n.id_prefix,n.item_format,o.type_to_folder),l=a?.id??s,d=i?ln(r):Ie(r,l);if(!a&&!await ve(d))throw new h(`Item ${e} not found`,m.NOT_FOUND);return a&&await Te({pmRoot:r,settings:n,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:l,settings:n}}async function Ld(e,t,r){let n=Oe(t.limit),{historyPath:o,located:i,resolvedId:s,settings:a}=await ra(e,r),l=await ce(o,s),d=ta(l),c=a.agent_identity.identity_vocabulary,u=to(a.agent_identity.harness_signals),f=no({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,u),p=na(l).filter(({entry:I})=>f(I)),y=Zs(p,n),_=y.map(({entry:I})=>I),g=t.compact===!0,w=g?ea(y,d):void 0,v=t.provenance===!0?y.map(({entry:I,durableVersion:R})=>ro(I,c,{itemId:s,version:R})):void 0,b=t.provenance===!0?"provenance":g?"compact":"full",E={compact:{compact_history:w},provenance:{provenance_history:v},full:{history:_}}[b],k={id:s,...E,compact:g,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:Nr("history",b),count:_.length,limit:n??null,version_addressing:d,...t.provenanceSummary===!0?{provenance_summary:oo(p.map(({entry:I})=>I),c,u)}:{}};if((t.diff||t.field!==void 0)&&(k.diff=kn(l,{windowStartIndex:Math.max(0,l.length-_.length),field:t.field})),t.verify){let I=i?(await Pe(i,{schema:a.schema})).document:void 0;if(k.verification=wn(l,I),s===Ce&&k.verification.ok){let R=await dn(x(process.cwd(),r.path));k.verification={...k.verification,ok:R.ok,errors:R.ok?k.verification.errors:[...k.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:R.ok,workspace_state_mismatches:R.mismatched_documents,workspace_state_missing:R.missing_documents,workspace_state_unreadable:R.unreadable_documents}}}return k}function na(e){let t=N(e,!0);return e.map((r,n)=>({entry:r,version:n+1,durableVersion:t===null?void 0:t+n+1}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6a84083a-153e-590f-bb9b-cde96ed09a74")}catch{}})();function oa(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new h("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function Ke(e){return e===!0}function Go(e){return Pr(e,0,1)??void 0}function $o(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new h("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Wo(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new h("Search --min-score must be a finite number >= 0",m.USAGE);return t}function Q(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return dt(r,new Date,t)}function F(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Lt(e,t){if(e!==void 0)return dt(e,new Date,t)}function ia(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Qe(e,t="<query>"){let r=e.compact===!0,n=e.full===!0,o=ia(e.fields);if(Number(r)+Number(n)+ +(o!==void 0)>1)throw new h("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:X(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return r?{mode:"compact",fields:[...Vn]}:n?{mode:"full",fields:[]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Ot(e,t,r="<query>"){if(e.mode!=="fields")return;let n=Kn(t.definitions.flatMap(s=>[s.key,s.metadata_key])),o=new Set(n),i=e.fields.filter(s=>{let a=s.trim();return!o.has(a)});if(i.length>0){let s=["search",r,"--fields","id,title,status,score"];throw new h(`Unknown search --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."],recovery:{allowed_values:n,suggested_retry:X(s),suggested_retry_args:s}})}}function Ye(e){let t=F(e);if(!t)throw new h("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function jt(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}var sa=["auto","keyword","semantic","hybrid"];function aa(e){let t=e.search?.default_mode;if(typeof t!="string")return"auto";let r=t.trim().toLowerCase();return sa.includes(r)?r:"auto"}function qt(e){if(typeof e.requested=="string"&&e.requested.trim().length>0)return{mode:oa(e.requested),source:"explicit"};let t=aa(e.settings);return t!=="auto"?{mode:t,source:"settings"}:{mode:e.semanticRunnable?"hybrid":"keyword",source:"auto"}}function Nt(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Ut(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Gt(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},r=e.search?.tuning;if(!r)return t;let n=(o,i)=>typeof o=="number"&&Number.isFinite(o)&&o>=0?o:i;return{title_exact_bonus:n(r.title_exact_bonus,t.title_exact_bonus),title_weight:n(r.title_weight,t.title_weight),description_weight:n(r.description_weight,t.description_weight),tags_weight:n(r.tags_weight,t.tags_weight),status_weight:n(r.status_weight,t.status_weight),body_weight:n(r.body_weight,t.body_weight),comments_weight:n(r.comments_weight,t.comments_weight),notes_weight:n(r.notes_weight,t.notes_weight),learnings_weight:n(r.learnings_weight,t.learnings_weight),reminders_weight:n(r.reminders_weight,t.reminders_weight),events_weight:n(r.events_weight,t.events_weight),dependencies_weight:n(r.dependencies_weight,t.dependencies_weight),linked_content_weight:n(r.linked_content_weight,t.linked_content_weight)}}(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]="91b01dd0-6a8d-5b97-96d2-c27f4044c009")}catch{}})();function ca(e){return Gr("search",{query:e.query.trim(),mode:e.mode,options:Ur(e.searchOptions,Ln)})}function Bo(e){let t=$r(e.sorted,{cursor:e.searchOptions.after,fingerprint:ca(e),limit:e.limit,readId:r=>r.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="48888c80-60e1-5905-afd5-8c1b6e532f99")}catch{}})();function zo(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var la=[{optionKey:"status",summaryKey:"status",normalize:e=>zo(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function re(e){let{mode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:l,runtimeFieldFilters:d}=e,c={};return Xn(c,n,la),Object.assign(c,Et(n)),Object.assign(c,vt(n)),r!==void 0&&r!=="or"&&(c.match_mode=r),o&&(c.include_linked=!0),i&&(c.title_exact=!0),s&&(c.phrase_exact=!0),a>0&&(c.score_threshold=a),t==="hybrid"&&n.semanticWeight!==void 0&&(c.hybrid_semantic_weight=l),n.limit!==void 0&&(c.limit=n.limit),d&&Object.keys(d).length>0&&(c.runtime_filters=d),c}function ne(e){let{effectiveMode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:l,queryExpansion:d,rerank:c,runtimeFieldFilters:u}=e,f=p=>p??null;return{mode:t,match_mode:r,status:n.status===void 0||zo(n.status)?"all":n.status,type:f(n.type),tag:f(n.tag),priority:f(n.priority),deadline_before:f(n.deadlineBefore),deadline_after:f(n.deadlineAfter),updated_after:f(n.updatedAfter),updated_before:f(n.updatedBefore),created_after:f(n.createdAfter),created_before:f(n.createdBefore),assignee:f(n.assignee),sprint:f(n.sprint),release:f(n.release),parent:f(n.parent),...Et(n),...vt(n),include_linked:o,title_exact:i,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?l:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:c.enabled,rerank_model:c.model,rerank_top_k:c.top_k,limit:f(n.limit),runtime_filters:u}}(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]="bc52818b-d37f-5d00-954d-d50203a433c2")}catch{}})();var da=1.2,ua=.75;function $t(e){return ee(e)}function fa(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);return t}function Ko(e){let t=[],r=new Map,n=0;for(let i of e){let s=$t(i.text),a=fa(s);n+=s.length;for(let l of a.keys())r.set(l,(r.get(l)??0)+1);t.push({id:i.id,termFrequencies:a,length:s.length})}let o=t.length;return{documents:t,documentFrequency:r,documentCount:o,averageDocumentLength:o>0?n/o:0}}function ma(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Qo(e,t,r){let n=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return n;let o=[...new Set(t.filter(s=>s.length>0))];if(o.length===0)return n;let i=new Map;for(let s of o){let a=e.documentFrequency.get(s);a!==void 0&&i.set(s,ma(e.documentCount,a))}if(i.size===0)return n;for(let s of e.documents){let a=0;for(let[l,d]of i){let c=s.termFrequencies.get(l);if(c===void 0)continue;let u=1-r.b+r.b*s.length/e.averageDocumentLength,f=c+r.k1*u;a+=d*(c*(r.k1+1)/f)}a>0&&n.set(s.id,a)}return n}function Vo(e,t,r,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(n,Math.max(r,e))}function Yo(e){let t=r=>typeof r=="string"?[r]:typeof r=="number"?[String(r)]:Array.isArray(r)?r.flatMap(t):typeof r=="object"&&r!==null?Object.values(r).flatMap(t):[];return t(Object.values(e)).join(" ")}function Xo(e){let t=e?.search?.bm25;return{k1:Vo(t?.k1,da,0,1e3),b:Vo(t?.b,ua,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2985104-efdb-59e5-9674-2dd865ebdf56")}catch{}})();var Wt=4,ha=20,pa=200,ga=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Bt(e,t){let r=[],n=new Set;for(let o of e){let i=o.trim().replaceAll(/\s+/g," ");if(i.length===0)continue;let s=i.toLowerCase();if(!n.has(s)&&(n.add(s),r.push(i),r.length>=t))break}return r}function ya(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function _a(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function Jo(e,t=Wt){let r=e.trim().replaceAll(/\s+/g," ");if(r.length===0)return[];let n=ee(r);if(n.length===0)return[r];let o=n.filter(a=>!ga.has(a.toLowerCase())),i=n.map(a=>ya(a)),s=o.map(a=>_a(a));return Bt([r,n.join(" "),o.join(" "),i.join(" "),s.join(" ")],Math.max(1,t))}function Zo(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Bt(t.filter(r=>typeof r=="string"),Wt):[]}function ei(e,t,r){return Bt([...e,...t],Math.max(1,r))}function ti(e,t){let n=e.search?.query_expansion,o=ie(n?.provider);return{enabled:n?.enabled===!0,provider:o??t,max_queries:Wt}}function ri(e,t){let n=e.search?.rerank,o=ie(n?.model),s=Se(n?.top_k)??ha;return{enabled:n?.enabled===!0,model:o??t,top_k:Math.min(pa,s)}}function ni(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let r=new Map;for(let o of t){if(typeof o!="object"||o===null)continue;let i=ie(o.id),s=o.score;if(!i||typeof s!="number"||!Number.isFinite(s))continue;let a=r.get(i);(a===void 0||s>a)&&r.set(i,s)}let n=[...r.entries()].map(([o,i])=>({id:o,score:i}));return n.sort((o,i)=>o.score!==i.score?i.score-o.score:o.id.localeCompare(i.id)),n}function wa(e,t){let r=e.length,n=0;for(let o=0;o<r;o+=1)n+=e[o]*t[o];return n}function oi(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function ba(e,t,r){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let n=wa(e,t),o=oi(t),i=r*o;return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i)||i===0?0:Math.max(-1,Math.min(1,n/i))}async function ii(e,t,r,n,o){if(n.length===0)return new Map;let i=ie(t)??e.model,s=i===e.model?e:{...e,model:i},a=[r.trim(),...n.map(f=>f.text)],l=await je(s,a,o?{timeout_ms:o}:{}),d=l[0];if(!d)return new Map;let c=oi(d),u=new Map;for(let f=0;f<n.length;f+=1){let p=n[f],y=l[f+1];if(!y)continue;let _=ba(d,y,c);u.set(p.id,Math.max(0,Math.min(1,(_+1)/2)))}return u}(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]="a5e4bd88-a099-559f-8194-7b56f325eb0e")}catch{}})();function oe(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function U(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function ye(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function zt(e){let t=e.metadata;return[t.title,t.description,t.status,oe(t.tags).join(" "),e.body,U(t.comments).map(r=>r.text).join(" "),U(t.notes).map(r=>r.text).join(" "),U(t.learnings).map(r=>r.text).join(" "),qe(t).join(" "),Ne(t).join(" "),ye(t.dependencies).map(r=>`${r.id} ${r.kind}`).join(" "),Ue(t)]}function Vt(e,t){return zt(e).some(r=>F(r).includes(t))}function Kt(e,t,r){return!r.titleExact&&!r.phraseExact?e:e.filter(n=>!(r.titleExact&&F(n.metadata.title)!==t||r.phraseExact&&!Vt(n,t)))}function va(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null".',m.USAGE)}function Ea(e,t,r){let n=me(e.assignee,{label:"--assignee"});va(n);let o=Qn(e),i=Yn(e);return{typeFilter:jn(e.type,t),tagFilter:me(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:qn(e.priority),deadlineBefore:Lt(e.deadlineBefore,"deadline-before"),deadlineAfter:Lt(e.deadlineAfter,"deadline-after"),updatedAfter:Q(e.updatedAfter,"updated-after"),updatedBefore:Q(e.updatedBefore,"updated-before"),createdAfter:Q(e.createdAfter,"created-after"),createdBefore:Q(e.createdBefore,"created-before"),assigneeFilter:n,sprintFilter:me(e.sprint,{label:"--sprint"}),releaseFilter:me(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:r&&r.length>0?new Set(r):void 0,missingMetadataFilters:o,missingMetadataActive:Nn(o),contentFieldFilters:i,contentFiltersActive:Gn(i)}}function Sa(e,t){return Ia(e,t)&&Br(e,t)&&ka(e,t)}function Ia(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let r=t.tagFilter;return!(r&&!oe(e.tags).some(n=>r.has(n))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function ka(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function xa(e,t,r,n){let o=e.metadata;return!(!Sa(o,t)||!Rn(o,r)||t.missingMetadataActive&&!Un(o,t.missingMetadataFilters,n)||t.contentFiltersActive&&!$n(o,t.contentFieldFilters))}function Qt(e,t,r,n,o,i){let s=Ea(t,r,o);return e.filter(a=>xa(a,s,n,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]="5a927991-1dbe-5906-a0eb-7da2534b6905")}catch{}})();var Ra=2,Aa=120,Ca=6,Ta=40,Ma=1e3,Fa=900,Da="\xAB",Pa="\xBB",si=60;function Xe(e,t){let r=0,n=0;for(;;){let o=e.indexOf(t,n);if(o<0)return r;r+=1,n=o+t.length}}var ai=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>oe(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>U(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>U(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>U(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>qe(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Ne(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>ye(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Ue(e.metadata)}],Ha=new Map(ai.map(e=>[e.name,e]));function Yt(e,t){let r=t.filter(o=>o.length>0).sort((o,i)=>i.length-o.length).map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(r.length===0)return e;let n=new RegExp(r.join("|"),"gi");return e.replace(n,o=>`${Da}${o}${Pa}`)}function Xt(e,t){if(e.length===0)return null;let r=e.toLowerCase(),n=-1,o=0;for(let c of t){if(c.length===0)continue;let u=r.indexOf(c);u>=0&&(n<0||u<n)&&(n=u,o=c.length)}if(n<0)return null;let i=Math.max(0,n-si),s=Math.min(e.length,n+o+si),a=Yt(e.slice(i,s),t),l=i>0?"\u2026":"",d=s<e.length?"\u2026":"";return`${l}${a}${d}`}function Je(e,t,r){let n=[];for(let o of t){let i=Ha.get(o);if(i===void 0)continue;let s=Xt(i.value(e),r);s!==null&&n.push({field:o,snippet:s})}return n}function La(e,t,r){return[...ai.map(n=>({name:n.name,value:n.value(e),weight:r[n.weightKey]})),{name:"linked_content",value:t,weight:r.linked_content_weight}]}function Oa(e,t,r){let n=F(e.id),o=typeof r=="string"?r.trim().toLowerCase():"",i=F(o),s=i.length>0&&n.startsWith(i)?n.slice(i.length).trim():n;return t!==n&&t!==s?null:{item:e,score:t===n?Ma:Fa,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function ja(e,t,r,n,o){for(let i of e){let s=t.get(i)??0;s>0&&(o.score+=s*n.title_exact_bonus,o.matched.add("title"),o.matchedTokens.add(i));for(let a of r){let l=Xe(a.value.toLowerCase(),i);l>0&&(o.score+=l*a.weight,o.matched.add(a.name),o.matchedTokens.add(i))}}}function qa(e,t,r,n){F(e.title)===t&&(n.score+=Aa,n.matched.add("title"));for(let i of r){let s=Xe(F(i.value),t);s>0&&(n.score+=s*i.weight*Ca,n.matched.add(i.name))}}function Jt(e,t,r,n,o,i,s=!1){let a=e.metadata,l=Oa(a,r,i);if(l)return l;let d=new Map;for(let _ of ee(a.title))d.set(_,(d.get(_)??0)+1);let c=La(e,n,o),u={score:0,matched:new Set,matchedTokens:new Set};ja(t,d,c,o,u);let f=new Set(t),p=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&p&&(u.score+=Ta),t.length>=Ra&&r.includes(" ")&&qa(a,r,c,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((_,g)=>_.localeCompare(g)),matched_all_terms:p}}function Zt(e,t){return[...e].sort((r,n)=>{let o=n.score-r.score;if(o!==0)return o;let i=ae(r.item.status,t),s=ae(n.item.status,t);if(i!==s)return i?1:-1;let a=r.item.priority-n.item.priority;if(a!==0)return a;let l=Wr(n.item.updated_at,r.item.updated_at);return l!==0?l:r.item.id.localeCompare(n.item.id)})}function er(e,t,r,n,o,i,s,a=!1){return Jt(e,t,r,n?o.get(e.metadata.id)??"":"",i,s,a)}function _e(e){if(e.size===0)return new Map;let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(let o of e.values())t=Math.min(t,o),r=Math.max(r,o);if(r===t)return new Map([...e.keys()].map(o=>[o,1]));let n=new Map;for(let[o,i]of e)n.set(o,(i-t)/(r-t));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]="0175d395-3f87-5a93-8d4f-a3150aaf16ae")}catch{}})();function et(e){let t=[],r=e;for(let n=0;n<5&&r&&typeof r=="object";n+=1){let o=r.code;typeof o=="string"&&t.push(o.toLowerCase()),r=r.cause}return t.join(" ")}function tt(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),r=et(e),n=`${t} ${r}`;return n.includes("timed out")||n.includes("timeout")||n.includes("etimedout")?"timeout":n.includes("econnrefused")||n.includes("connection refused")||n.includes("connect ")||n.includes("enotfound")||n.includes("eai_again")||n.includes("econnreset")||n.includes("fetch failed")?"connection":"error"}function tr(e,t){let r=tt(t);return`search_${e}_fallback:${r}:using_keyword_mode`}function ci(e){return e?.commands?.some(r=>r.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function rr(e,t,r){try{let n=await Pn(e);n.warnings.length>0&&r.push(...n.warnings);let o=Zn(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),n.entries);if(o.length===0)return;let i=ci(T());r.push(...li(o.length,i)),process.stderr.write(`[pm] warning: ${o.length} item${o.length===1?" is":"s are"} new or modified since the last reindex and ${o.length===1?"is":"are"} NOT in the semantic index yet \u2014 run '${i.command}'${i.follow_up_command?`, then '${i.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
1
|
+
import{A as Un,Ab as eo,Bb as We,Cc as so,D as Gn,E as $n,O as Wn,P as Bn,Rb as to,S as zn,Tb as ro,Vb as no,Wb as oo,a as fe,b as K,bb as Zn,c as wn,ca as wt,d as bn,da as bt,ea as Vn,fa as Kn,ga as Qn,ha as Yn,ka as Xn,la as vt,ma as Et,na as $e,r as On,ta as Jn,v as me,w as jn,x as qn,y as Ge,yc as io,z as Nn}from"./chunk-BNAT4EYR.js";import{Ag as Re,B as q,Bc as T,Bk as Dn,Ci as mn,Ck as _t,D as ct,Eh as V,Fh as rn,Fi as Te,Fj as Sn,Gc as Or,Gj as In,Hc as lt,Hh as mt,Ih as le,Ij as yt,Jh as de,Jj as kn,K as ie,Kc as Y,Kh as ht,L as Ee,Lc as jr,Lh as O,Lk as Pn,Mc as se,Mf as L,Mh as nn,Mi as Me,N as Se,Nh as ue,O as Pr,Oh as on,Oi as Fe,Pi as hn,Qh as pt,Qi as De,Rb as H,Ri as Pe,Sa as G,Si as pn,Th as sn,Ti as gn,Uh as Ce,Ui as He,Uj as Le,Vh as an,Wh as cn,Wi as yn,Xi as _n,Yf as A,Yj as Oe,Yn as Ln,Zf as ut,_a as x,ab as Lr,ad as X,bf as S,cb as z,cd as qr,ch as Ae,dh as Yr,dl as ee,eb as Ie,ef as ke,eh as ce,ff as Wr,fg as $,ga as Hr,gf as Br,hf as dt,hg as J,hk as xn,id as Nr,if as zr,ii as j,ij as vn,ik as Rn,jj as En,ki as N,la as m,mi as ln,mk as An,na as h,nd as Ur,ni as Z,od as Gr,oh as ft,oi as gt,pi as dn,pl as Hn,qh as Xr,qk as Cn,rk as Tn,sf as Vr,sg as Kr,si as un,sk as je,tk as Mn,ud as $r,ug as ae,uk as qe,vh as Jr,vk as Ne,wh as Zr,wk as Ue,x as ve,xh as en,xk as Fn,yg as Qr,yh as tn,z as Dr,zg as xe,zi as fn}from"./chunk-UIAH7UFK.js";import co from"node:fs/promises";import lo 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]="d51da34a-9f37-5441-91f0-15a16b601709")}catch{}})();function Ti(e,t,r){let n=new Set,o=[];for(let i of e){let s=i.trim();if(s.length===0||n.has(s))continue;n.add(s);let a=t.get(s);if(a===void 0){o.push({id:s,entries:0,selected:!1,skip_reason:"no_stream"});continue}if(a.entries<=r){o.push({id:s,entries:a.entries,selected:!1,skip_reason:"already_compact"});continue}o.push({id:s,entries:a.entries,selected:!0,skip_reason:null})}return o}function Mi(e,t){let r=[...e].sort((o,i)=>i.entries-o.entries||o.id.localeCompare(i.id)),n=[];for(let o of r){if(t.scope==="closed"&&o.bucket!=="closed"){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"scope_mismatch"});continue}if(o.entries<=t.minEntries){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"already_compact"});continue}if(t.allOver!==void 0&&o.entries<=t.allOver){n.push({id:o.id,entries:o.entries,selected:!1,skip_reason:"below_threshold"});continue}n.push({id:o.id,entries:o.entries,selected:!0,skip_reason:null})}return n}function ao(e,t){if(t.ids!==void 0&&t.ids.length>0){let r=new Map(e.map(n=>[n.id,n]));return Ti(t.ids,r,t.minEntries)}return Mi(e,t)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1dede7b7-eeea-520d-97ce-a71687d93bc2")}catch{}})();function Fi(e,t){if(e===void 0)return{kind:"default",raw:null,compactCount:t.length,retainedCount:0};let r=e.trim();if(r.length===0)throw new h("history-compact --before requires a non-empty value.",m.USAGE);if(/^\d+$/.test(r)){let i=Number.parseInt(r,10),s=N(t);if(!Number.isSafeInteger(i)||i<s+1||i>s+t.length+1)throw new h(`history-compact --before version must be between ${s+1} and ${s+t.length+1}.`,m.USAGE);let a=i-s-1;return{kind:"version",raw:r,compactCount:a,retainedCount:t.length-a}}let n=Date.parse(r);if(!Number.isFinite(n))throw new h(`Invalid history-compact --before value "${e}". Use a version number or ISO timestamp.`,m.USAGE);let o=0;for(let[i,s]of t.entries()){let a=Date.parse(s.ts);if(!Number.isFinite(a))throw new h(`History for this item contains invalid timestamp at entry ${i+1}.`,m.GENERIC_FAILURE);if(a>=n)break;o+=1}return{kind:"timestamp",raw:r,compactCount:o,retainedCount:t.length-o}}function Di(e,t){let r=le(),n=le();for(let o=0;o<e.length;o+=1){let i=e[o];r=Z(r,i.patch,o+1,i.op),o+1===t&&(n=structuredClone(r))}return{checkpoint:n,finalReplay:r}}function Pi(e,t){if(!e)return{loadedItem:null,currentItemRawBeforeLock:null,matchedChainBefore:null};let r=t[t.length-1];return{loadedItem:e,currentItemRawBeforeLock:e.raw,matchedChainBefore:Xr.some(n=>(r.item_hash_version===void 0||r.item_hash_version===n)&&ht(ue(e.document),n,A(r.hash_algorithm)).includes(r.after_hash))}}function Hi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:t.raw===null?`history-compact compacted full stream (${t.compactCount} entr${t.compactCount===1?"y":"ies"}).`:`history-compact compacted ${t.compactCount} entr${t.compactCount===1?"y":"ies"} before ${t.raw}.`}function Li(e){return e.raw===null?`history-compact baseline snapshot after compacting ${e.compactCount} entr${e.compactCount===1?"y":"ies"}.`:`history-compact baseline snapshot before ${e.raw}.`}function Oi(e){if(!e.changed)return{rewrittenEntries:e.historyEntries,baselineEntryAdded:!1,auditEntryAdded:!1};let{checkpoint:t,finalReplay:r}=Di(e.historyEntries,e.boundary.compactCount),n=e.historyEntries.slice(e.boundary.compactCount),o=N(e.historyEntries,!0),i=e.historyEntries[e.boundary.compactCount-1],s=V({hashAlgorithm:A(i.hash_algorithm),nowIso:e.historyEntries[e.boundary.compactCount-1].ts,author:e.author,op:"history_compact_baseline",before:O(le()),after:O(t),message:Li(e.boundary),context:{history_compaction:{contract_version:1,version_offset:o===null?null:o+e.boundary.compactCount-1,checkpoint_timestamp_semantics:"last_compacted_entry",pruned_entry_count:e.boundary.compactCount,pruned_stream_digest:Jr(e.historyEntries.slice(0,e.boundary.compactCount)),retained_proof:"stream_digest_and_checkpoint",limitation:"individual_pruned_entries_require_pre_compaction_stream"}}}),a=[Zr({...s,before_hash:ht(le(),i.item_hash_version??1,A(i.hash_algorithm))[0],after_hash:i.after_hash,item_hash_version:i.item_hash_version}),...n];return e.dryRun||a.push(V({nowIso:S(),author:e.author,op:"history_compact",before:O(r),after:O(r),message:Hi(e.options,e.boundary)})),{rewrittenEntries:a,baselineEntryAdded:!0,auditEntryAdded:!e.dryRun}}async function ji(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await fe(r.path),s=await K(n,e,o,i.type_to_folder);return We({pmRoot:n,subject:s,settings:o,typeRegistry:i,operation:"history-compact",options:t,transform:a=>qi(s,t,a)})}function qi(e,t,r){let n=e.historyPath,o=r.entries,i=r.verification;if(!i.ok)throw new h(`history-compact requires a valid history chain (${i.errors.join(", ")}). Run pm history-repair ${e.id} first.`,m.CONFLICT);let s=Fi(t.before,o),a=s.compactCount>0,l=!!t.dryRun,d=r.author,c=[];a||c.push("history_compact_noop_before_boundary");let u=Pi(r.loadedItem,o);u.matchedChainBefore===!1&&c.push("history_compact_item_chain_mismatch");let{rewrittenEntries:f,baselineEntryAdded:p,auditEntryAdded:y}=Oi({historyEntries:o,boundary:s,changed:a,dryRun:l,author:d,options:t}),_=N(o,!0),g=s.retainedCount>0&&_!==null?_+s.compactCount+1:null;return{changed:a,rewrittenEntries:f,report:({verification:w,warnings:v})=>({id:e.id,dry_run:l,changed:a,compact_boundary:{kind:s.kind,before:s.raw,entries_compacted:s.compactCount,entries_retained:s.retainedCount,first_retained_entry:g},history:{path:n,entries_scanned:o.length,entries_after:f.length,baseline_entry_added:p,audit_entry_added:y,verify_ok:w.ok,verify_errors:w.errors},item:{exists:e.located!==null,path:e.located?.itemPath??null,matched_chain_before:u.matchedChainBefore},warnings:[...new Set([...c,...v])].sort((b,E)=>b.localeCompare(E)),generated_at:S()})}}var Ni=3;function Ui(e){for(let r of["allOver","minEntries"]){let n=e[r];if(n!==void 0&&(!Number.isSafeInteger(n)||n<0))throw new h(`history-compact ${r} must be a non-negative safe integer.`,m.USAGE)}let t=In(e.ids);if(e.ids!==void 0&&t==="")throw new h("history-compact ids requires at least one valid item ID.",m.USAGE,{code:"bulk_ids_input_empty",required:"Provide one or more string or finite numeric IDs; non-finite and unsupported selector values are rejected."});return{...e,ids:t===void 0?void 0:Sn(t)}}function Uc(e,t){let r=t.ids!==void 0&&t.ids.length>0,n=t.allOver!==void 0||t.scope!==void 0;if((e!==void 0?1:0)+(r?1:0)+(n?1:0)===0)throw new h("history-compact: provide an item <id>, or a bulk selector (--ids, --all-over <N>, --closed, or --all-streams).",m.USAGE);if(e!==void 0&&(r||n))throw new h("history-compact: <id> and bulk selectors (--ids/--all-over/--closed/--all-streams) are mutually exclusive; pass one item id, or use bulk mode without a positional id.",m.USAGE);if(r&&n)throw new h("history-compact: --ids is mutually exclusive with --all-over/--closed/--all-streams; pass an explicit id list or a scan selector, not both.",m.USAGE)}function Gi(e){let t=0;for(let r of e.split(/\r?\n/))r.trim().length>0&&(t+=1);return t}async function $i(e){let t=$(e.settings.schema),r=Ge(t),n=await He(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),o=new Map(n.map(d=>[d.id,r.classify(d.status)])),i=lo.join(e.pmRoot,"history"),s=[],a=[];if(!await ve(i))return{candidates:s,preselectionErrors:a};let l=(await co.readdir(i)).filter(d=>d.endsWith(".jsonl")).sort((d,c)=>d.localeCompare(c));for(let d of l){let c=lo.join(i,d),u=d.slice(0,-6);try{let f=await co.readFile(c,"utf8");await se({path:c,scope:"project"}),s.push({id:u,entries:Gi(f),bucket:o.get(u)??null})}catch(f){a.push({id:u,outcome:"errored",entries_before:0,entries_after:null,skip_reason:null,changed:!1,error:f instanceof Error?f.message:String(f)})}}return{candidates:s,preselectionErrors:a}}async function Wi(e){if(!e.row.selected)return{selected:!1,compacted:!1,errored:!1,result:{id:e.row.id,outcome:"skipped",entries_before:e.row.entries,entries_after:null,skip_reason:e.row.skip_reason,changed:!1,error:null}};try{let t=await ji(e.row.id,{dryRun:e.dryRun,author:e.options.author,message:e.options.message,force:e.options.force},e.global);return{selected:!0,compacted:!0,errored:!1,result:{id:e.row.id,outcome:"compacted",entries_before:e.row.entries,entries_after:t.history.entries_after,skip_reason:null,changed:t.changed,error:null}}}catch(t){return{selected:!0,compacted:!1,errored:!0,result:{id:e.row.id,outcome:"errored",entries_before:e.row.entries,entries_after:null,skip_reason:null,changed:!1,error:t instanceof Error?t.message:String(t)}}}}async function Gc(e,t){let r=Ui(e),{pmRoot:n,settings:o,typeRegistry:i}=await fe(t.path),{candidates:s,preselectionErrors:a}=await $i({pmRoot:n,settings:o,typeToFolder:i.type_to_folder}),l=r.ids!==void 0&&r.ids.length>0?"ids":"scan",d=e.minEntries??Ni,c=o.history.compact_policy,u=l==="scan"&&e.allOver===void 0&&c.enabled,f=e.allOver??(u?c.max_entries:void 0),p=ao(s,{ids:r.ids,scope:e.scope,minEntries:d,allOver:f}),y=!!e.dryRun,_=[...a],g={streams_considered:s.length+a.length,selected:0,items_compacted:0,items_skipped:0,items_errored:a.length};for(let w of p){let v=await Wi({row:w,options:r,dryRun:y,global:t});if(_.push(v.result),!v.selected){g.items_skipped+=1;continue}g.selected+=1,v.compacted&&(g.items_compacted+=1),v.errored&&(g.items_errored+=1)}return{bulk:!0,dry_run:y,mode:l,scope:e.scope??null,criteria:{min_entries:d,all_over:f??null,policy_threshold_applied:u},totals:g,results:_,generated_at:S()}}import St from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9d9d625b-152d-5417-8702-6e0e45839500")}catch{}})();function It(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function fo(e){let t=[];for(let r of e)t.includes(r)||t.push(r);return t.includes("g")||t.push("g"),t.join("")}function mo(e){let t=e.trim();if(t.length===0)throw new h("history-redact --regex requires a non-empty pattern.",m.USAGE);let r=t,n="g";if(t.startsWith("/")&&t.length>1){let o=t.lastIndexOf("/");o>0&&(r=t.slice(1,o),n=fo(t.slice(o+1)))}if(r.length===0)throw new h("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(r,n)}catch{throw new h("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:r,flags:n}}function ho(e,t){let r=[...new Set(It(e).map(i=>i.trim()))].filter(i=>i.length>0).map(i=>({kind:"literal",value:i})),n=[...new Set(It(t).map(i=>i.trim()))].filter(i=>i.length>0).map(mo),o=[...r,...n];if(o.length===0)throw new h("history-redact requires at least one matcher via --literal or --regex.",m.USAGE,{code:"missing_required_argument",required:"Provide --literal <value> and/or --regex <pattern>.",examples:['pm history-redact pm-a1b2 --literal "[redacted_path_prefix]/private"','pm history-redact pm-a1b2 --regex "/192\\\\.168\\\\.[0-9.]+/g" --replacement "[scrubbed_ip]"']});return o}function po(e,t,r){if(t.length===0)return{value:e,replacements:0};let n=0,o=0;for(;n<=e.length;){let i=e.indexOf(t,n);if(i===-1)break;o+=1,n=i+Math.max(1,t.length)}return o===0?{value:e,replacements:0}:{value:e.split(t).join(r),replacements:o}}function go(e,t,r){let n=new RegExp(t.source,t.flags),o=[...e.matchAll(n)];return o.length===0?{value:e,replacements:0}:{value:e.replace(n,r),replacements:o.length}}function kt(e,t,r){let n=e,o=0;for(let i of t){let s=i.kind==="literal"?po(n,i.value,r):go(n,i,r);n=s.value,o+=s.replacements}return{value:n,replacements:o}}function he(e,t,r){if(typeof e=="string")return kt(e,t,r);if(Array.isArray(e)){let n=0;return{value:e.map(i=>{let s=he(i,t,r);return n+=s.replacements,s.value}),replacements:n}}if(typeof e=="object"&&e!==null){let n=0,o={};for(let[i,s]of Object.entries(e)){let a=he(s,t,r);n+=a.replacements,o[i]=a.value}return{value:o,replacements:n}}return{value:e,replacements:0}}function uo(e,t,r){let n=0;return{patch:e.map(i=>{if(!Object.prototype.hasOwnProperty.call(i,"value"))return i;let s=he(i.value,t,r);return n+=s.replacements,s.replacements>0?{...i,value:s.value}:i}),replacements:n}}function Bi(e){let t=structuredClone(mt),r=0,n=0;for(let o=0;o<e.length;o+=1){let i=e[o];de(t,void 0,A(i.hash_algorithm))!==i.before_hash&&(r+=1),t=Z(t,i.patch,o+1,i.op),de(t,void 0,A(i.hash_algorithm))!==i.after_hash&&(n+=1)}return{hashMismatchesBefore:r,hashMismatchesAfter:n,finalDocument:t}}function zi(e,t,r){let n=0,o=!1,i=!1,s=e.message;if(typeof e.message=="string"){let d=kt(e.message,t,r);s=d.value,n+=d.replacements,d.replacements>0&&(o=!0)}let a=uo(e.patch,t,r);n+=a.replacements,o||=a.replacements>0;let l=e.reanchor_evidence?.map(d=>{let c=d.patch?uo(d.patch,t,r):{patch:void 0,replacements:0},u=d.record?he(d.record,t,r):{value:void 0,replacements:0};n+=c.replacements,n+=u.replacements;let f=c.replacements>0||u.replacements>0;if(o||=f,!f)return d;i=!0;let{patch:p,record:y,record_hash:_,record_hash_version:g,...w}=d;return c.replacements>0?w:{...w,patch:d.patch}});return{entry:{...e,message:s,patch:a.patch,...l?{reanchor_evidence:l}:{}},replacements:n,changed:o,reanchorEvidenceRedacted:i}}function Vi(e,t,r){let n=structuredClone(mt),o=0,i=0,s=[];for(let a=0;a<e.length;a+=1){let l=e[a],d=en(l);if(!d.ok)throw new h(`history-redact refuses invalid immutable record ${a+1} (${d.error}).`,m.GENERIC_FAILURE);let c=zi(l,t,r);i+=c.replacements,c.changed&&(o+=1);let u=de(n,void 0,A(l.hash_algorithm));n=Z(n,c.entry.patch,a+1,c.entry.op);let f=de(n,void 0,A(l.hash_algorithm));s.push(tn(l,{...c.entry,before_hash:u,after_hash:f},{retainPriorRecord:c.changed,retainPriorRecordHash:!c.changed}))}return{entries:s,finalDocument:n,entriesChanged:o,replacements:i}}function yo(e){return Object.keys(e.metadata).length>0}function Ki(e){if(!yo(e.finalDocument))return{raw:null,path:null,document:null};let t=Re(O(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new h("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:z(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:xe(t,{format:"toon",schema:e.settings.schema})}}function Qi(e,t){return typeof e.message=="string"&&e.message.trim().length>0?e.message:`history-redact replaced ${t.replacements} match(es) across ${t.entriesChanged} entr${t.entriesChanged===1?"y":"ies"}.`}function Yi(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let r=e.nextItemDocument??O(e.rewritten.finalDocument);return t.push(V({nowIso:S(),author:e.author,op:"history_redact",before:r,after:r,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}function Xi(e){let t=[];return{applyRewrite:async({historyRawUnderLock:r})=>{let n=await Me(e.pmRoot,e.author),o=new Set;e.currentItem.path&&o.add(e.currentItem.path),e.nextItem.path&&o.add(e.nextItem.path);let i=new Map;e.currentItem.path&&e.currentItem.raw!==null&&i.set(e.currentItem.path,e.currentItem.raw);let s=()=>{};try{try{e.nextItem.path&&e.nextItem.raw!==null&&e.nextItem.raw!==e.currentItem.raw&&await q(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await St.rm(e.currentItem.path,{force:!0}),await q(e.subject.historyPath,sn(e.rewrittenEntries))}catch(l){try{await Ji(e.subject.historyPath,r,o,i)}finally{await ft(e.subject.historyPath)}throw l}await ft(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await Fe({pmRoot:e.pmRoot,preferredFormat:e.settings.item_format,typeToFolder:e.typeRegistry.type_to_folder,schema:e.settings.schema,itemPath:a,...e.currentItem.path?{previousItemPath:e.currentItem.path}:{},document:e.nextItem.document}))}finally{await n().catch(a=>{s=()=>{throw a}})}s()},afterWrite:async()=>[...t,...await Zi(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]}}async function Ji(e,t,r,n){t===null?await St.rm(e,{force:!0}):await q(e,t);for(let o of r){let i=n.get(o);i===void 0?await St.rm(o,{force:!0}):await q(o,i)}}async function Zi(e,t){let r=[],n=new Set(t.filter(o=>o!==null));for(let o of n)r.push(...await Y({path:o,scope:"project",op:"history_redact"}));return r.push(...await Y({path:e,scope:"project",op:"history_redact:history"})),r}async function al(e,t,r){let{pmRoot:n,settings:o,typeRegistry:i}=await fe(r.path),s=t.replacement??"",a=s.length===0,l=a?"[redacted]":s,d=ho(t.literal,t.regex),c=await K(n,e,o,i.type_to_folder);return We({pmRoot:n,subject:c,settings:o,typeRegistry:i,operation:"history-redact",options:t,transform:u=>es({pmRoot:n,subject:c,settings:o,typeRegistry:i,options:t,rules:d,replacement:l,replacementIsDefault:a},u)})}function es(e,t){let{pmRoot:r,subject:n,settings:o,typeRegistry:i,options:s,rules:a,replacement:l,replacementIsDefault:d}=e,c=t.entries,u=Bi(c),f=Vi(c,a,l),p=u.hashMismatchesBefore+u.hashMismatchesAfter,y=!!s.dryRun,_=f.replacements>0,g=[];p>0&&g.push(`history_redact_preexisting_hash_mismatches:${p}`),_||g.push("history_redact_no_matches");let w={raw:t.loadedItem?.raw??null,path:n.located?.itemPath??null,document:t.loadedItem?.document??null},v=Ki({pmRoot:r,subject:n,settings:o,typeToFolder:i.type_to_folder,finalDocument:f.finalDocument}),b=(w.path??null)!==(v.path??null)||(w.raw??null)!==(v.raw??null),E=t.author,C=Qi(s,f),{rewrittenEntries:k,auditEntryAdded:I}=Yi({rewritten:f,dryRun:y,changed:_,nextItemDocument:v.document,author:E,message:C});return{changed:_,rewrittenEntries:k,...Xi({pmRoot:r,subject:n,settings:o,typeRegistry:i,currentItem:w,nextItem:v,author:E,rewrittenEntries:k}),report:({verification:R,warnings:st})=>({id:n.id,dry_run:y,changed:_,patterns:{literal_count:a.filter(M=>M.kind==="literal").length,regex_count:a.filter(M=>M.kind==="regex").length,total_count:a.length,replacement_is_default:d},history:{path:n.historyPath,entries_scanned:c.length,entries_changed:f.entriesChanged,replacements:f.replacements,hash_mismatches_before:u.hashMismatchesBefore,hash_mismatches_after:u.hashMismatchesAfter,preexisting_hash_mismatches:p,audit_entry_added:I,verify_ok:R.ok,verify_errors:R.errors},item:{existed_before:w.path!==null,exists_after:v.path!==null,path_before:w.path,path_after:v.path,changed:b},warnings:[...new Set([...g,...st])].sort((M,at)=>M.localeCompare(at)),generated_at:S()})}}var cl={applyLiteralRule:po,applyRegexRule:go,buildRedactionRules:ho,hasItemMetadata:yo,normalizeRegexFlags:fo,normalizeStringArrayInput:It,parseRegexRule:mo,redactStringValue:kt,redactUnknownValue:he};(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]="63c96190-0df9-5803-aa61-b973493a7277")}catch{}})();var xt={format:"pm-history-attestation",version:1,stream_hash:"exact_file_bytes",rollup_hash:"stable_json_without_workspace_digest",ordering:"stream_id_code_unit_ascending",consistency:"per_stream_snapshot_with_change_detection",trust:"independently_retained_bundle"};import{createHash as ts}from"node:crypto";import{isUtf8 as rs}from"node:buffer";import pe from"node:fs/promises";import Rt 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]="d0001f37-7941-5cad-8950-2c6925056d10")}catch{}})();async function _o(e){try{return(await pe.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort()}catch(t){if(Dr(t))return[];throw t}}function ns(e,t,r,n){let o=t.at(-1),i;for(let l=t.length-1;l>=0;l-=1)if(["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(t[l].op)){i=t[l];break}let s=t[0]?.context?.history_compaction,a=typeof s=="object"&&s!==null&&"pruned_stream_digest"in s&&typeof s.pruned_stream_digest=="string"?s.pruned_stream_digest:null;return{id:e,entries:t.length,bytes:r,stream_digest:n,latest_after_hash:o?.after_hash??null,latest_record_hash:o?.record_hash??null,latest_hash_algorithm:o?A(o.hash_algorithm):null,rewrite_count:t.reduce((l,d)=>l+(d.reanchor_evidence?.length??0),0),checkpoint_digest:a,last_maintenance:i?{op:i.op,ts:i.ts,record_hash:i.record_hash??null}:null}}function os(e,t,r){try{if(!/^[A-Za-z0-9_-]+$/u.test(e)||!rs(t))return null;let n=[];for(let o of t.toString("utf8").split(/\r?\n/u)){if(!o.trim())continue;let i=JSON.parse(o);if(typeof i!="object"||i===null||Array.isArray(i))return null;let s=i;if(![s.op,s.author,s.ts,s.before_hash,s.after_hash].every(a=>typeof a=="string")||!Array.isArray(s.patch))return null;n.push(s)}return pt(n).ok?ns(e,n,t.length,r):null}catch{return null}}async function At(e,t){if(!(await pe.stat(e)).isDirectory())throw new TypeError("attestation tracker root must be a directory");let r=Rt.join(e,"history"),n=await _o(r),o=new Map,i=[];for(let s of n){let a=s.slice(0,-6),l={id:a,digest:null,stream:null};i.push(l);let d=Rt.join(r,s);try{let c=await pe.lstat(d);if(o.set(s,H([c.ino,c.size,c.mtimeMs,c.ctimeMs])),!c.isFile())continue;let u=await pe.readFile(d);l.digest=ts(t).update(u).digest("hex"),l.stream=os(a,u,l.digest)}catch{}}if(H(n)!==H(await _o(r)))throw new TypeError("attestation history inventory changed during read; retry");for(let[s,a]of o){let l=await pe.lstat(Rt.join(r,s));if(a!==H([l.ino,l.size,l.mtimeMs,l.ctimeMs]))throw new TypeError("attestation history stream changed during read; retry")}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]="0a4b3fc5-70bb-5ec0-82b5-a7cdd03c09ea")}catch{}})();function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Tt(e,t){return Object.keys(e).length===t.length&&t.every(r=>Object.hasOwn(e,r))}function te(e,t){return typeof e=="string"&&(t==="sha256"?/^[a-f0-9]{64}$/u:/^[a-f0-9]{128}$/u).test(e)}function is(e){return e.entries===0?[e.latest_hash_algorithm,e.latest_after_hash,e.latest_record_hash,e.checkpoint_digest,e.last_maintenance].every(t=>t===null)&&e.rewrite_count===0:e.latest_hash_algorithm!=="sha256"&&e.latest_hash_algorithm!=="sha512"?!1:te(e.latest_after_hash,e.latest_hash_algorithm)&&(e.latest_record_hash===null||te(e.latest_record_hash,e.latest_hash_algorithm))}function ss(e){return e===null?!0:!Ct(e)||!Tt(e,["op","ts","record_hash"])?!1:typeof e.op=="string"&&["history_compact","history_compact_baseline","history_redact","history_repair","history_salvage","merge_reconcile"].includes(e.op)&&typeof e.ts=="string"&&ke(e.ts)&&(e.record_hash===null||te(e.record_hash,"sha256")||te(e.record_hash,"sha512"))}function as(e,t){return!Ct(e)||!Tt(e,["id","entries","bytes","stream_digest","latest_after_hash","latest_record_hash","latest_hash_algorithm","rewrite_count","checkpoint_digest","last_maintenance"])?!1:typeof e.id=="string"&&/^[A-Za-z0-9_-]+$/u.test(e.id)&&[e.entries,e.bytes,e.rewrite_count].every(r=>typeof r=="number"&&Number.isSafeInteger(r)&&r>=0)&&te(e.stream_digest,t)&&is(e)&&(e.checkpoint_digest===null||te(e.checkpoint_digest,"sha256"))&&ss(e.last_maintenance)}function wo(e){if(!Ct(e)||!Tt(e,["format","version","hash_algorithm","generated_at","streams","workspace_digest"]))throw new TypeError("Invalid history attestation bundle");if(e.format!==xt.format||e.version!==1||typeof e.generated_at!="string"||!ke(e.generated_at)||!Array.isArray(e.streams)||e.hash_algorithm!=="sha256"&&e.hash_algorithm!=="sha512")throw new TypeError("Invalid history attestation format");let t=e.hash_algorithm,r;for(let i of e.streams){if(!as(i,t))throw new TypeError("Invalid history attestation stream");let s=i.id;if(r!==void 0&&s<=r)throw new TypeError("Invalid history attestation stream order");r=s}let{workspace_digest:n,...o}=e;if(ut(H(o),t)!==n)throw new TypeError("History attestation rollup mismatch");return e}async function bo(e={}){let t=A(e.hashAlgorithm),r=e.generatedAt??S();if(!ke(r))throw new TypeError("Invalid history attestation timestamp");let n=await At(x(e.cwd??process.cwd(),e.pmRoot),t),o=n.filter(s=>s.stream===null);if(o.length>0)throw new TypeError(`Cannot export history attestation: invalid streams ${o.map(s=>s.id).join(", ")}`);let i={format:xt.format,version:1,hash_algorithm:t,generated_at:r,streams:n.map(s=>s.stream)};return wo({...i,workspace_digest:ut(H(i),t)})}async function vo(e,t={}){let r=wo(e),n=await At(x(t.cwd??process.cwd(),t.pmRoot),r.hash_algorithm),o=new Map(n.map(c=>[c.id,c])),i=new Map(r.streams.map(c=>[c.id,c])),s=r.streams.filter(c=>!o.has(c.id)).map(c=>c.id),a=n.filter(c=>!i.has(c.id)).map(c=>c.id),l=n.filter(c=>c.stream===null).map(c=>c.id),d=[];for(let c of r.streams){let u=o.get(c.id);u&&(u.digest!==c.stream_digest||H(u.stream)!==H(c))&&d.push({id:c.id,before_digest:c.stream_digest,after_digest:u.digest,last_maintenance:u.stream?.last_maintenance??null})}return{ok:s.length+a.length+l.length+d.length===0,workspace_digest:r.workspace_digest,streams_checked:n.length,changed_streams:d.map(c=>c.id),missing_streams:s,added_streams:a,invalid_streams:l,transitions:d}}import Eo from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="825d7132-a49d-584a-b4ac-0801cfe6ad49")}catch{}})();async function Dl(e,t){for(let n of["verify","output","hashAlgorithm"]){let o=e[n];if(!(n==="verify"&&typeof o=="object"&&o!==null)&&o!==void 0&&(typeof o!="string"||o.trim().length===0))throw new h(`history attest ${n} requires a nonempty string.`,m.USAGE)}if(e.verify!==void 0){if(e.output!==void 0||e.hashAlgorithm!==void 0)throw new h("history attest --verify cannot be combined with --output or --hash-algorithm",m.USAGE);let n;try{n=typeof e.verify=="string"?JSON.parse(await Eo.readFile(e.verify,"utf8")):e.verify}catch{throw new h("Cannot read history attestation proof. Provide --verify with a readable JSON proof file.",m.USAGE)}return vo(n,{pmRoot:t.path})}let r=await bo({pmRoot:t.path,hashAlgorithm:A(e.hashAlgorithm)});if(e.output===void 0)return r;try{await Eo.writeFile(e.output,`${JSON.stringify(r,null,2)}
|
|
2
|
+
`,{flag:"wx",mode:384})}catch{throw new h("Cannot create history attestation proof. Choose --output with a new filename in a writable directory; existing files are never overwritten.",m.USAGE)}return{output:e.output,workspace_digest:r.workspace_digest,streams:r.streams.length}}import cs from"fast-json-patch";import Mt from"node:fs/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85aa928d-92b8-5f67-8482-0fe5715fef45")}catch{}})();async function So(e,t,r){let n=await pn(e,{schema:t.schema});return n.error===null?{raw:n.raw,document:n.document}:{raw:n.raw,document:Io(r),recovered:!0}}function ls(e,t){return ln(e,t,{errorSubject:"restore",allowFutureTimestamp:!0})}function Io(e){let t=gt(e,e.length-1);return Object.keys(t.metadata).length===0?{metadata:{},body:t.body}:Re(O(t))}async function ds(e,t,r,n){let o=await K(e,t,r,n),i=o.located?await Te({pmRoot:e,settings:r,itemId:o.id,commandLabel:"restore"}):{warnings:[]};return{...o,historyPolicyWarnings:i.warnings}}function us(e,t){let r=ue(e),n=ue(t),o=cs.compare(r,n),i=new Set;for(let s of o){if(s.path==="/body"||s.path.startsWith("/body/")){i.add("body");continue}let a=s.path.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];i.add(a.replaceAll("~1","/").replaceAll("~0","~"))}return Array.from(i).sort((s,a)=>s.localeCompare(a))}async function fs(e){let t=await eo({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:"restore",readItem:r=>So(r,e.settings,e.history)});return{loadedItemUnderLock:t.loadedItemUnderLock,existingItemPath:t.locatedUnderLock?.itemPath??null}}function ms(e,t){return e?{document:e.document,originalRaw:e.raw}:{document:Io(t),originalRaw:null}}function hs(e){let t=e.document.metadata.assignee?.trim();if(!(t&&t!==e.author&&!e.force))return[];if(e.enforcement==="strict")throw new h(`Item ${e.resolvedId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return e.enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.resolvedId}:${t}`]:[]}async function ps(e){if(e.existingItemPath&&e.resolvedOriginalRaw!==null&&e.restoredItemPath!==e.existingItemPath){await q(e.existingItemPath,e.resolvedOriginalRaw),await Mt.rm(e.restoredItemPath,{force:!0});return}if(e.existingItemPath&&e.resolvedOriginalRaw!==null){await q(e.existingItemPath,e.resolvedOriginalRaw);return}await Mt.rm(e.restoredItemPath,{force:!0})}async function gs(e){return[...await Y({path:e.restoredItemPath,scope:"project",op:"restore",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]}),...await Y({path:e.historyPath,scope:"project",op:"restore:history",item_id:e.after.metadata.id,item_type:e.after.metadata.type,before:e.before,after:e.after,changed_fields:["restored"]})]}async function Kl(e,t,r,n){let o=x(process.cwd(),n.path);await L(o);let i=await j(o),s=G(i,T()),a=await ds(o,e,i,s.type_to_folder),l=a.id,{raw:d,entries:c}=await Yr(a.historyPath,l);if(c.length===0)throw new h(`No history exists for ${l}; restore is unavailable.`,m.NOT_FOUND);let u=ls(t,c),f=dn(gt(c,u.historyIndex),u),p=nn(f,{schema:i.schema});if(p.metadata.id!==l)throw new h(`Restore target resolved to item ${p.metadata.id}, expected ${l}.`,m.GENERIC_FAILURE);let _=(a.located?await So(a.located,i,c):null)?.raw??null,g=Ae(r.author,i.author_default),w=await zr(o,l,i.locks.ttl_seconds,g,!!r.force,i.governance.force_required_for_stale_lock,i.locks.wait_ms);try{let{loadedItemUnderLock:v,existingItemPath:b}=await fs({pmRoot:o,subject:a,settings:i,typeRegistry:s,historyRawBeforeLock:d,currentItemRawBeforeLock:_,history:c}),E="toon",C=ms(v,c),k=hs({document:C.document,author:g,force:r.force,enforcement:i.governance.ownership_enforcement,resolvedId:l}),I=us(C.document,p),R=await fn({pmRoot:o,settings:i,operation:"restore",author:g,before:C.document,after:p});await jr({pm_root:o,operation:"restore",before:C.document,after:p,changed_fields:I,sdk:yn({pmRoot:o,settings:i,typeToFolder:s.type_to_folder})});let st=xe(p,{format:E,schema:i.schema}),M=z(o,p.metadata.type,l,E,s.type_to_folder),at=await Me(o,g),Tr=[];try{await q(M,st),b&&M!==b&&await Mt.rm(b);let Ai=V({nowIso:S(),author:g,op:"restore",before:C.document,after:p,message:r.message,context:R.decisions.length===0?void 0:{workflow_policies:R.decisions}});try{await rn(a.historyPath,Ai)}catch(Ci){throw await ps({existingItemPath:b,resolvedOriginalRaw:C.originalRaw,restoredItemPath:M}),Ci}Tr=await Fe({pmRoot:o,preferredFormat:i.item_format,typeToFolder:s.type_to_folder,schema:i.schema,itemPath:M,previousItemPath:b??void 0,document:p})}finally{await at()}let Ri=await gs({restoredItemPath:M,historyPath:a.historyPath,before:C.document,after:p});Or({id:p.metadata.id,op:"restore",item_type:p.metadata.type,previous_status:C.document.metadata.status,status:p.metadata.status,previous:lt(C.document.metadata,I),current:lt(p.metadata,I),changed_fields:I});let Mr=c[u.historyIndex],Fr=N(c,!0);return{item:p.metadata,restored_from:{kind:u.kind,target:u.raw,history_index:u.historyIndex+1,version:Fr===null?null:Fr+u.historyIndex+1,entry_ts:Mr.ts,entry_op:Mr.op},changed_fields:I,warnings:[...R.warnings,...v?.recovered?["restore_unreadable_item_recovered"]:[],...a.historyPolicyWarnings,...k,...Tr,...Ri]}}finally{await w()}}(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]="2a9a4dc0-8027-5761-9bbf-cac1ef83bd10")}catch{}})();var ys=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],_s=["filterAcMissing","filterEstimatesMissing","filterResolutionMissing","filterMetadataMissing","filterReviewerMissing","filterRiskMissing","filterConfidenceMissing","filterSprintMissing","filterReleaseMissing","hasNotes","hasLearnings","hasFiles","hasDocs","hasTests","hasComments","hasDeps","hasBody","hasLinkedCommand","noNotes","noLearnings","noFiles","noDocs","noTests","noComments","noDeps","emptyBody","noLinkedCommand"];function ws(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function Yl(e,t,r={}){let n=r.includePagination!==!1;return[t,...ys.map(i=>e?.[i]),...n?[e?.limit,e?.offset]:[]].some(ws)||_s.some(i=>e?.[i]===!0)}function ko(e){return{type:e.type,tag:e.tag,priority:e.priority,deadlineBefore:e.deadlineBefore,deadlineAfter:e.deadlineAfter,assignee:e.assignee,assigneeFilter:e.assigneeFilter,parent:e.parent,sprint:e.sprint,release:e.release}}(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]="7a4a98b2-3872-506d-b88d-877b0033dd2d")}catch{}})();var xo=["parent","type","priority","status","assignee","tags","sprint","release"];function Ao(e,t){let r=Le(e,t,{strict:!0,flagLabel:"--status"});if(!(!r||r.length===0))return r}function Co(e,t=["estimate","estimated_minutes","priority"]){let r=e.sum?.trim(),n=e.avg?.trim(),o=r&&r.length>0?r:void 0,i=n&&n.length>0?n:void 0;if(!o&&!i)return null;if(o&&i&&o!==i)throw new h("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=o??i;if(!t.includes(s))throw new h(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:o!==void 0,avg:i!==void 0}}function To(e){let t=e?.trim()??"status";if(t.length===0)throw new h("--group-by requires at least one field name",m.USAGE);let r=Hn(t);if(r.length===0)throw new h("--group-by requires a comma-separated list of fields",m.USAGE);for(let n of r)if(!xo.includes(n))throw new h(`Aggregate group fields must be one of ${xo.join("|")}; received "${n}"`,m.USAGE);return r}function Mo(e){let t=[...new Set(e.map(r=>r.trim().toLowerCase()).filter(r=>r.length>0))].sort((r,n)=>r.localeCompare(n));return t.length===0?null:t.join(",")}function Fo(e,t){switch(e){case"parent":return t.parent??null;case"type":return t.type;case"priority":return t.priority;case"status":return t.status;case"assignee":return t.assignee??null;case"tags":return Mo(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Do(e,t){let r=e??null,n=t??null;return r===n?0:r===null?1:n===null?-1:typeof r=="number"&&typeof n=="number"?r-n:String(r).localeCompare(String(n))}function Be(e,t){return e.map(r=>`${r}:${JSON.stringify(t[r]??null)}`).join("|")}var bs={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Ro(e,t){return t==null||t===""?bs[e]:String(t)}function vs(e,t){return e.length===1?Ro(e[0],t[e[0]]):e.map(r=>`${r}=${Ro(r,t[r])}`).join(" | ")}function Po(e,t,r){for(let n of r){let o=Do(e.group[n],t.group[n]);if(o!==0)return o}return 0}function Ho(e,t){let n=e[t];if(typeof n=="number"&&Number.isFinite(n))return n;if(typeof n=="string"){let o=n.trim();if(o.length===0)return null;let i=Number(o);if(Number.isFinite(i))return i}return null}function Lo(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Ft(e,t,r){let n=Kr(String(t),r)??t;if(n===r.open_status){e.open_count+=1;return}if(n==="in_progress"||r.active_statuses.has(n)&&n!==r.open_status){e.in_progress_count+=1;return}if(r.terminal_done_statuses.has(n)||n===r.close_status){e.closed_count+=1;return}e.other_count+=1}function Es(e,t){return{row:{group:e,count:1},numeric_count:t===null?0:1,numeric_sum:t??0,null_count:t===null?1:0,open_count:0,in_progress_count:0,closed_count:0,other_count:0}}function Ss(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Is(e){e.accumulator.row.count+=1,e.includeCompletion&&Ft(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Ss(e.accumulator,e.numericValue)}function ks(e,t,r,n){for(let o of t){let i=Be(r,o),s=e.get(i);if(s){Is({...n,accumulator:s});continue}let a=Es(o,n.numericValue);n.includeCompletion&&Ft(a,n.item.status,n.statusRegistry),e.set(i,a)}}function xs(e,t){let r={};for(let n of e)r[n]=Fo(n,t);return r}function Rs(e,t,r){let n=[xs(e,t)];if(r==="tuple")return n;for(let o of e){let i=t[o];if(!Array.isArray(i))continue;let s=[...new Set(i.map(a=>a.trim().toLowerCase()).filter(Boolean))].sort();s.length!==0&&(n=n.flatMap(a=>s.map(l=>({...a,[o]:l}))))}return n}function As(e,t,r,n){let o={...e.row,group_label:vs(t,e.row.group)};return r&&(o.open=e.open_count,o.in_progress=e.in_progress_count,o.closed=e.closed_count,o.other=e.other_count,o.completion_pct=Lo(e.closed_count,e.row.count)),n!==null&&(o.null_count=e.null_count,n.sum&&(o.sum=e.numeric_sum),n.avg&&(o.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),o}function Cs(e){return{group_by:e.groupBy,set_mode:e.setMode,count:!0,completion:e.includeCompletion,include_unparented:e.includeUnparented,status:e.status?.[0]??null,status_values:e.status,type:e.options.type??null,tag:e.options.tag??null,priority:e.options.priority??null,deadline_before:e.options.deadlineBefore??null,deadline_after:e.options.deadlineAfter??null,assignee:e.options.assignee??null,assignee_filter:e.options.assigneeFilter??null,parent:e.options.parent??null,sprint:e.options.sprint??null,release:e.options.release??null,...e.numericAggregation!==null?{sum:e.options.sum??null,avg:e.options.avg??null,numeric_field:e.numericAggregation.field}:{}}}async function rd(e,t){if(e.count===!1)throw new h("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let r=x(process.cwd(),t.path),n=await j(r),o=$(n.schema),i=["estimate","estimated_minutes","priority",...J(n.schema).definitions.filter(b=>b.type==="number").map(b=>b.metadata_key)],s=To(e.groupBy),a=e.setMode??"element";if(a!=="element"&&a!=="tuple")throw new h("Aggregate --set-mode must be element or tuple",m.USAGE);let l=Ao(e.status,o),d=Co(e,[...new Set(i)].sort((b,E)=>b.localeCompare(E))),c=e.completion===!0,u=e.includeUnparented===!0,f=await $e(void 0,{...ko(e),status:e.status,noTruncate:!0,strictRead:!0},t),p=new Map,y=0,_=0,g=0;for(let b of f.items){let E=b;if(s.includes("parent")&&E.parent===void 0&&!u){y+=1;continue}let C=d===null?null:Ho(E,d.field),k=Rs(s,E,a);ks(p,k,s,{item:E,statusRegistry:o,includeCompletion:c,numericAggregation:d,numericValue:C}),g+=k.length,_+=1}let w=[...p.values()].map(b=>As(b,s,c,d)).sort((b,E)=>Po(b,E,s)),v=f.warnings&&f.warnings.length>0?f.warnings:void 0;return{...Ts(w,s,e),count:w.length,totals:{items_considered:f.items.length,items_grouped:_,items_skipped_unparented:y,group_memberships:g},filters:Cs({groupBy:s,setMode:a,includeCompletion:c,includeUnparented:u,status:l,options:e,numericAggregation:d}),now:S(),...v?{warnings:v}:{}}}function Ts(e,t,r){let n=Jn(r.limit,"limit")??50,o=r.after===void 0?-1:e.findIndex(a=>Be(t,a.group)===r.after);if(r.after!==void 0&&o<0)throw new h("Aggregate --after cursor is absent from the current grouping; restart without --after.",m.USAGE);let i=e.slice(o+1,o+1+n),s=o+1+i.length<e.length;return{groups:i,returned_count:i.length,truncated:s,next_after:s?Be(t,i.at(-1).group):null}}var nd={buildGroupKey:Be,compareAggregateRows:Po,compareNullableGroupValue:Do,completionPct:Lo,normalizeTagGroupValue:Mo,parseGroupBy:To,parseNumericAggregation:Co,parseStatus:Ao,readNumericAggregateValue:Ho,resolveGroupValue:Fo,updateCompletionCounts:Ft};(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]="acda1c64-cb50-57b5-868d-a27ca6912979")}catch{}})();var Oo=1e6,jo=20;function qo(e,t,r,n=jo){if(!Number.isSafeInteger(n)||n<0)throw new h("Child projection sample limit must be a non-negative integer.",m.USAGE);let o=e.trim().toLowerCase(),i={},s=[],a=0;for(let g of t){if(a+=1,a>Oo)throw new h(`Child projection exceeded the ${Oo.toLocaleString("en-US")} item safety bound.`,m.GENERIC_FAILURE,{code:"child_projection_item_bound_exceeded",required:"Use an indexed or parent-filtered metadata source.",why:"Unbounded graph scans can exhaust memory in universal project stores.",nextSteps:["Build the derived item index, then retry the parent read."]});s.push(g)}let l=new Map(s.map(g=>[g.id.trim().toLowerCase(),g])),d=zn(Bn(s,Wn())),c=new Set(d.children_by_parent.get(o)??[]);for(let g of s)g.parent?.trim().toLowerCase()===o&&c.add(g.id.trim().toLowerCase());let u=[...c].map(g=>l.get(g)),f=0;for(let g of u){let w=g.status.trim().toLowerCase();i[w]=(i[w]??0)+1,ae(w,r)||(f+=1)}u.sort((g,w)=>g.id.localeCompare(w.id));let p=u.slice(0,n).map(g=>({id:g.id,title:g.title,type:g.type,status:g.status,priority:g.priority})),y=u.length>p.length,_=n===0?jo:n;return{count:u.length,active:f,by_status:Object.fromEntries(Object.entries(i).sort(([g],[w])=>g.localeCompare(w))),sample:p,sample_limit:n,truncated:y,next_offset:y?p.length:null,continuation:y?`pm list --status all --parent ${e} --offset ${p.length} --limit ${_}`:null,scanned: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]="926ca5b2-8cfc-56e7-8cbf-fb0e7152d834")}catch{}})();var Ms=new Set(["event","meeting","reminder"]);function Fs(e){return Ms.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Dt(e){if(!Fs(e))return;let t=[...e.events??[]].sort((n,o)=>n.start_at.localeCompare(o.start_at)),r=t[0];return{deadline:e.deadline??null,start_at:r?.start_at??null,end_at:r?.end_at??null,location:r?.location??null,reminders:[...e.reminders??[]],events:t}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f77ad73-bb93-5b04-b33b-c0666e55f83a")}catch{}})();var Ps=new Set(["epic","feature","milestone","plan"]),Hs=new Set(Object.keys(Hr).map(e=>e.toLowerCase()));function Ht(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(r=>[r,e[r]?.length??0]))}function Ls(e,t,r){let n=Ht(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([o,i])=>i>0?[o]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],...r===void 0?["children"]:r.count>0?["children"]:[],...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Dt(e)?["schedule"]:[]]}function Uo(e){let t=e.trim().toLowerCase();return t.length>0&&(Ps.has(t)||!Hs.has(t))}function No(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Os(e,t){let r=e?.trim(),n=r&&r.length>0?r:null,o=[...t].reverse().find(s=>s.op==="claim"),i=[...t].reverse().find(s=>s.op==="release");return{claimed:n!==null,assignee:n,last_claim:o?No(o):null,last_release:i?No(i):null}}function js(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(wt.includes(t))return t;throw new h("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function qs(e,t){let r=Ht(e);if(t==="deep")return{...e,comments:e.comments??[],notes:e.notes??[],learnings:e.learnings??[],files:e.files??[],tests:e.tests??[],docs:e.docs??[],reminders:e.reminders??[],events:e.events??[],notes_count:r.notes,tests_count:r.tests,collection_counts:r};let{comments:n,notes:o,learnings:i,files:s,tests:a,docs:l,reminders:d,events:c,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:r}}function Ns(e){if(e===void 0)return null;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function Ve(e){return e.startsWith("item.")?e.slice(5):e}function Us(e,t,r){if(e===null)return;let n=bt(t),o=new Set(n),i=e.filter(s=>{let a=Ve(s);return!o.has(s)&&!o.has(a)});if(i.length>0){let s=["get",r,"--fields","id,title,status"];throw new h(`Unknown get --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm get <id> --fields id,title,status,type,updated_at","pm get <id> --fields id,title,claim_state","pm get <id> --fields id,title,body,linked.files"],recovery:{allowed_values:n,suggested_retry:X(s),suggested_retry_args:s}})}}var Gs=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function $s(e,t,r){return Object.hasOwn(t,r)?t[r]:e[r]!==void 0?e[r]:Gs.has(r)?[]:void 0}function Ws(e,t){let r=e,n={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Ht(e)},o={id:e.id};for(let i of t){let s=Ve(i);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(o[s]=$s(r,n,s))}return o}function ge(e,t){return e?.some(r=>r===t||r===`item.${t}`)??!1}function ze(e,t){return e.some(r=>{let n=Ve(r);return n===t||n.startsWith(`${t}.`)})}function Bs(e,t){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new h("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:X(["get",t,"--full"]),suggested_retry_args:["get",t,"--full"]}});if(e.tree!==!0&&e.treeDepth!==void 0)throw new h("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new h("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":js(e.depth),full:e.full===!0||e.depth?.trim().toLowerCase()==="full",treeDepth:e.tree===!0?On(e.treeDepth,"--tree-depth"):void 0,fields:Ns(e.fields),fieldProjection:e.fields!==void 0}}async function zs(e,t,r){let n=x(process.cwd(),t.path);await L(n);let o=await j(n),i=G(o,T());if(r!==void 0){let l=await bn(e,r,{pmRoot:t.path});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:l.document.metadata.id,metadata:l.document.metadata,body:l.document.body,historical:l}}let s=await De(n,e,o.id_prefix,o.item_format,i.type_to_folder);if(!s)throw await _n(n,e,o.id_prefix,i.type_to_folder);let a=await Pe(s,{schema:o.schema});return{pmRoot:n,settings:o,typeToFolder:i.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function Vs(e,t,r,n){let o=J(t.schema).definitions.map(i=>i.metadata_key);if(Us(e,o,n),r&&ze(e??[],"children"))throw new h("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Pt(e){let{fieldProjection:t,depth:r,fields:n,field:o}=e;return t?o==="body"||o==="linked"?ge(n,o):ze(n,o):r!=="brief"}async function Ks(e,t){if(!t)return;let r=Ie(e.pmRoot,e.locatedId),n=await ce(r,e.locatedId);return Os(e.metadata.assignee,e.historical?n.slice(0,e.historical.target.historyIndex+1):n)}function Qs(e,t,r,n){let o=n||ge(r,"linked.files"),i=n||ge(r,"linked.tests"),s=n||ge(r,"linked.docs");!n&&!o&&!i&&!s||(e.linked={files:o?t.metadata.files??[]:[],tests:i?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function Ys(e,t){if(!t)return;let r=$(e.settings.schema),n=await He(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema);return qo(e.locatedId,n,r)}function Xs(e,t,r,n){if(!n)return;let o=Dt(t.metadata);if(o){if(r===null||ge(r,"schedule")){e.schedule=o;return}e.schedule=Object.fromEntries(Object.entries(o).filter(([i])=>r.some(s=>Ve(s)===`schedule.${i}`)))}}async function Js(e,t,r,n){if(t.tree!==!0)return;let o=await $e(void 0,{parent:e.locatedId,tree:!0,treeDepth:r===void 0?void 0:String(r),full:!0},n);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:r??null,count:o.count,items:o.items.map(i=>i)}}async function kd(e,t,r={}){let n=Bs(r,e),o=await zs(e,t,r.at);Vs(n.fields,o.settings,o.historical!==void 0,o.locatedId);let i=Pt({...n,field:"body"}),s=Pt({...n,field:"linked"}),a=Pt({...n,field:"claim_state"}),l=o.historical===void 0&&(n.fieldProjection?ze(n.fields,"children"):n.depth==="deep"&&(n.full||Uo(o.metadata.type))),d=n.fieldProjection?ze(n.fields,"schedule"):n.depth!=="brief",c=await Ks(o,a),u={item:n.fieldProjection?Ws(o.metadata,n.fields):qs(o.metadata,n.depth)};i&&(u.item.body=o.body),Qs(u,o,n.fields,s),c&&(u.claim_state=c),Xs(u,o,n.fields,d);let f=await Ys(o,l);f!==void 0&&(u.children=f);let p=await Js(o,r,n.treeDepth,t);if(p!==void 0&&(u.tree=p),o.historical&&(u.reconstructed=!0,u.as_of_version=o.historical.as_of_version,u.as_of_timestamp=o.historical.as_of_timestamp),o.historical===void 0)try{await Vr({pmRoot:o.pmRoot,author:Ae(void 0,o.settings.author_default),itemIds:[o.locatedId],intent:"get"})}catch{}return qr(u,Ls(o.metadata,o.body,f)),u}var xd={shouldAutoIncludeGetChildren:Uo};(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]="0cc18a30-5068-5c59-b559-7afc4d446ed8")}catch{}})();function Zs(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function ea(e,t){return e.map(({entry:r,version:n})=>{let o=new Set,i=on(r.patch);for(let s of i)o.add(yt(s.path)),s.from&&o.add(yt(s.from));return{index:n,...t?{version:t.offset===null?null:t.offset+n}:{},ts:r.ts,op:r.op,author:r.author,patch_ops:i.length,changed_fields:[...o].sort((s,a)=>s.localeCompare(a))}})}function ta(e){if(e[0]?.op!=="history_compact_baseline")return;let t=N(e,!0);return{offset:t,first_version:t===null?null:t+1,last_version:t===null?null:t+e.length}}async function ra(e,t){let r=x(process.cwd(),t.path);await L(r);let n=await j(r),o=G(n,T()),i=e.trim()===Ce,s=i?Ce:un(e,n.id_prefix),a=await De(r,s,n.id_prefix,n.item_format,o.type_to_folder),l=a?.id??s,d=i?an(r):Ie(r,l);if(!a&&!await ve(d))throw new h(`Item ${e} not found`,m.NOT_FOUND);return a&&await Te({pmRoot:r,settings:n,itemId:a.id,commandLabel:"history"}),{historyPath:d,located:a,resolvedId:l,settings:n}}async function Ld(e,t,r){let n=Oe(t.limit),{historyPath:o,located:i,resolvedId:s,settings:a}=await ra(e,r),l=await ce(o,s),d=ta(l),c=a.agent_identity.identity_vocabulary,u=to(a.agent_identity.harness_signals),f=no({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,u),p=na(l).filter(({entry:I})=>f(I)),y=Zs(p,n),_=y.map(({entry:I})=>I),g=t.compact===!0,w=g?ea(y,d):void 0,v=t.provenance===!0?y.map(({entry:I,durableVersion:R})=>ro(I,c,{itemId:s,version:R})):void 0,b=t.provenance===!0?"provenance":g?"compact":"full",E={compact:{compact_history:w},provenance:{provenance_history:v},full:{history:_}}[b],k={id:s,...E,compact:g,projection:{mode:b,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[b]},omission_receipt:Nr("history",b),count:_.length,limit:n??null,version_addressing:d,...t.provenanceSummary===!0?{provenance_summary:oo(p.map(({entry:I})=>I),c,u)}:{}};if((t.diff||t.field!==void 0)&&(k.diff=kn(l,{windowStartIndex:Math.max(0,l.length-_.length),field:t.field})),t.verify){let I=i?(await Pe(i,{schema:a.schema})).document:void 0;if(k.verification=wn(l,I),s===Ce&&k.verification.ok){let R=await cn(x(process.cwd(),r.path));k.verification={...k.verification,ok:R.ok,errors:R.ok?k.verification.errors:[...k.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:R.ok,workspace_state_mismatches:R.mismatched_documents,workspace_state_missing:R.missing_documents,workspace_state_unreadable:R.unreadable_documents}}}return k}function na(e){let t=N(e,!0);return e.map((r,n)=>({entry:r,version:n+1,durableVersion:t===null?void 0:t+n+1}))}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6a84083a-153e-590f-bb9b-cde96ed09a74")}catch{}})();function oa(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new h("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function Ke(e){return e===!0}function Go(e){return Pr(e,0,1)??void 0}function $o(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new h("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function Wo(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new h("Search --min-score must be a finite number >= 0",m.USAGE);return t}function Q(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return dt(r,new Date,t)}function F(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Lt(e,t){if(e!==void 0)return dt(e,new Date,t)}function ia(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new h("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function Qe(e,t="<query>"){let r=e.compact===!0,n=e.full===!0,o=ia(e.fields);if(Number(r)+Number(n)+ +(o!==void 0)>1)throw new h("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:X(["search",t,"--full"]),suggested_retry_args:["search",t,"--full"]}});return r?{mode:"compact",fields:[...Vn]}:n?{mode:"full",fields:[]}:o?{mode:"fields",fields:o}:{mode:"full",fields:[]}}function Ot(e,t,r="<query>"){if(e.mode!=="fields")return;let n=Kn(t.definitions.flatMap(s=>[s.key,s.metadata_key])),o=new Set(n),i=e.fields.filter(s=>{let a=s.trim();return!o.has(a)});if(i.length>0){let s=["search",r,"--fields","id,title,status,score"];throw new h(`Unknown search --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm search <query> --fields id,title,status,score","pm search <query> --fields id,title,item.description,matched_fields"],nextSteps:["Use item.<field> for explicit item metadata fields, or run pm search --help for projection examples."],recovery:{allowed_values:n,suggested_retry:X(s),suggested_retry_args:s}})}}function Ye(e){let t=F(e);if(!t)throw new h("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function jt(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}var sa=["auto","keyword","semantic","hybrid"];function aa(e){let t=e.search?.default_mode;if(typeof t!="string")return"auto";let r=t.trim().toLowerCase();return sa.includes(r)?r:"auto"}function qt(e){if(typeof e.requested=="string"&&e.requested.trim().length>0)return{mode:oa(e.requested),source:"explicit"};let t=aa(e.settings);return t!=="auto"?{mode:t,source:"settings"}:{mode:e.semanticRunnable?"hybrid":"keyword",source:"auto"}}function Nt(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Ut(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function Gt(e){let t={title_exact_bonus:10,title_weight:48,description_weight:5,tags_weight:6,status_weight:2,body_weight:1,comments_weight:1,notes_weight:1,learnings_weight:1,reminders_weight:2,events_weight:2,dependencies_weight:3,linked_content_weight:1},r=e.search?.tuning;if(!r)return t;let n=(o,i)=>typeof o=="number"&&Number.isFinite(o)&&o>=0?o:i;return{title_exact_bonus:n(r.title_exact_bonus,t.title_exact_bonus),title_weight:n(r.title_weight,t.title_weight),description_weight:n(r.description_weight,t.description_weight),tags_weight:n(r.tags_weight,t.tags_weight),status_weight:n(r.status_weight,t.status_weight),body_weight:n(r.body_weight,t.body_weight),comments_weight:n(r.comments_weight,t.comments_weight),notes_weight:n(r.notes_weight,t.notes_weight),learnings_weight:n(r.learnings_weight,t.learnings_weight),reminders_weight:n(r.reminders_weight,t.reminders_weight),events_weight:n(r.events_weight,t.events_weight),dependencies_weight:n(r.dependencies_weight,t.dependencies_weight),linked_content_weight:n(r.linked_content_weight,t.linked_content_weight)}}(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]="91b01dd0-6a8d-5b97-96d2-c27f4044c009")}catch{}})();function ca(e){return Gr("search",{query:e.query.trim(),mode:e.mode,options:Ur(e.searchOptions,Ln)})}function Bo(e){let t=$r(e.sorted,{cursor:e.searchOptions.after,fingerprint:ca(e),limit:e.limit,readId:r=>r.item.id});return{limited:t.rows,pageExtras:{applied_limit:e.limit,...t.has_more?{has_more:!0,truncated:!0}:{},...t.next_cursor?{next_cursor:t.next_cursor}:{}}}}(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]="48888c80-60e1-5905-afd5-8c1b6e532f99")}catch{}})();function zo(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var la=[{optionKey:"status",summaryKey:"status",normalize:e=>zo(e)?"all":e},{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"parent",summaryKey:"parent"}];function re(e){let{mode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:l,runtimeFieldFilters:d}=e,c={};return Xn(c,n,la),Object.assign(c,Et(n)),Object.assign(c,vt(n)),r!==void 0&&r!=="or"&&(c.match_mode=r),o&&(c.include_linked=!0),i&&(c.title_exact=!0),s&&(c.phrase_exact=!0),a>0&&(c.score_threshold=a),t==="hybrid"&&n.semanticWeight!==void 0&&(c.hybrid_semantic_weight=l),n.limit!==void 0&&(c.limit=n.limit),d&&Object.keys(d).length>0&&(c.runtime_filters=d),c}function ne(e){let{effectiveMode:t,matchMode:r,options:n,includeLinked:o,titleExact:i,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:l,queryExpansion:d,rerank:c,runtimeFieldFilters:u}=e,f=p=>p??null;return{mode:t,match_mode:r,status:n.status===void 0||zo(n.status)?"all":n.status,type:f(n.type),tag:f(n.tag),priority:f(n.priority),deadline_before:f(n.deadlineBefore),deadline_after:f(n.deadlineAfter),updated_after:f(n.updatedAfter),updated_before:f(n.updatedBefore),created_after:f(n.createdAfter),created_before:f(n.createdBefore),assignee:f(n.assignee),sprint:f(n.sprint),release:f(n.release),parent:f(n.parent),...Et(n),...vt(n),include_linked:o,title_exact:i,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?l:null,query_expansion_enabled:d.enabled,query_expansion_provider:d.provider,rerank_enabled:c.enabled,rerank_model:c.model,rerank_top_k:c.top_k,limit:f(n.limit),runtime_filters:u}}(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]="bc52818b-d37f-5d00-954d-d50203a433c2")}catch{}})();var da=1.2,ua=.75;function $t(e){return ee(e)}function fa(e){let t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);return t}function Ko(e){let t=[],r=new Map,n=0;for(let i of e){let s=$t(i.text),a=fa(s);n+=s.length;for(let l of a.keys())r.set(l,(r.get(l)??0)+1);t.push({id:i.id,termFrequencies:a,length:s.length})}let o=t.length;return{documents:t,documentFrequency:r,documentCount:o,averageDocumentLength:o>0?n/o:0}}function ma(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Qo(e,t,r){let n=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return n;let o=[...new Set(t.filter(s=>s.length>0))];if(o.length===0)return n;let i=new Map;for(let s of o){let a=e.documentFrequency.get(s);a!==void 0&&i.set(s,ma(e.documentCount,a))}if(i.size===0)return n;for(let s of e.documents){let a=0;for(let[l,d]of i){let c=s.termFrequencies.get(l);if(c===void 0)continue;let u=1-r.b+r.b*s.length/e.averageDocumentLength,f=c+r.k1*u;a+=d*(c*(r.k1+1)/f)}a>0&&n.set(s.id,a)}return n}function Vo(e,t,r,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(n,Math.max(r,e))}function Yo(e){let t=r=>typeof r=="string"?[r]:typeof r=="number"?[String(r)]:Array.isArray(r)?r.flatMap(t):typeof r=="object"&&r!==null?Object.values(r).flatMap(t):[];return t(Object.values(e)).join(" ")}function Xo(e){let t=e?.search?.bm25;return{k1:Vo(t?.k1,da,0,1e3),b:Vo(t?.b,ua,0,1)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2985104-efdb-59e5-9674-2dd865ebdf56")}catch{}})();var Wt=4,ha=20,pa=200,ga=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Bt(e,t){let r=[],n=new Set;for(let o of e){let i=o.trim().replaceAll(/\s+/g," ");if(i.length===0)continue;let s=i.toLowerCase();if(!n.has(s)&&(n.add(s),r.push(i),r.length>=t))break}return r}function ya(e){let t=e.toLowerCase();return t.length>4&&t.endsWith("ies")?`${t.slice(0,-3)}y`:t.length>4&&(t.endsWith("ches")||t.endsWith("shes")||t.endsWith("xes")||t.endsWith("zes")||t.endsWith("sses"))?t.slice(0,-2):t.length>3&&t.endsWith("s")&&!t.endsWith("ss")&&!t.endsWith("us")&&!t.endsWith("is")&&!t.endsWith("as")?t.slice(0,-1):t}function _a(e){let t=e.toLowerCase();return t.length>2&&(!t.endsWith("s")||t.endsWith("ss"))?t.endsWith("y")&&!/[aeiou]y$/u.test(t)?`${t.slice(0,-1)}ies`:t.endsWith("ch")||t.endsWith("sh")||t.endsWith("x")||t.endsWith("z")||t.endsWith("ss")?`${t}es`:`${t}s`:t}function Jo(e,t=Wt){let r=e.trim().replaceAll(/\s+/g," ");if(r.length===0)return[];let n=ee(r);if(n.length===0)return[r];let o=n.filter(a=>!ga.has(a.toLowerCase())),i=n.map(a=>ya(a)),s=o.map(a=>_a(a));return Bt([r,n.join(" "),o.join(" "),i.join(" "),s.join(" ")],Math.max(1,t))}function Zo(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Bt(t.filter(r=>typeof r=="string"),Wt):[]}function ei(e,t,r){return Bt([...e,...t],Math.max(1,r))}function ti(e,t){let n=e.search?.query_expansion,o=ie(n?.provider);return{enabled:n?.enabled===!0,provider:o??t,max_queries:Wt}}function ri(e,t){let n=e.search?.rerank,o=ie(n?.model),s=Se(n?.top_k)??ha;return{enabled:n?.enabled===!0,model:o??t,top_k:Math.min(pa,s)}}function ni(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let r=new Map;for(let o of t){if(typeof o!="object"||o===null)continue;let i=ie(o.id),s=o.score;if(!i||typeof s!="number"||!Number.isFinite(s))continue;let a=r.get(i);(a===void 0||s>a)&&r.set(i,s)}let n=[...r.entries()].map(([o,i])=>({id:o,score:i}));return n.sort((o,i)=>o.score!==i.score?i.score-o.score:o.id.localeCompare(i.id)),n}function wa(e,t){let r=e.length,n=0;for(let o=0;o<r;o+=1)n+=e[o]*t[o];return n}function oi(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function ba(e,t,r){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let n=wa(e,t),o=oi(t),i=r*o;return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i)||i===0?0:Math.max(-1,Math.min(1,n/i))}async function ii(e,t,r,n,o){if(n.length===0)return new Map;let i=ie(t)??e.model,s=i===e.model?e:{...e,model:i},a=[r.trim(),...n.map(f=>f.text)],l=await je(s,a,o?{timeout_ms:o}:{}),d=l[0];if(!d)return new Map;let c=oi(d),u=new Map;for(let f=0;f<n.length;f+=1){let p=n[f],y=l[f+1];if(!y)continue;let _=ba(d,y,c);u.set(p.id,Math.max(0,Math.min(1,(_+1)/2)))}return u}(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]="a5e4bd88-a099-559f-8194-7b56f325eb0e")}catch{}})();function oe(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function U(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function ye(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function zt(e){let t=e.metadata;return[t.title,t.description,t.status,oe(t.tags).join(" "),e.body,U(t.comments).map(r=>r.text).join(" "),U(t.notes).map(r=>r.text).join(" "),U(t.learnings).map(r=>r.text).join(" "),qe(t).join(" "),Ne(t).join(" "),ye(t.dependencies).map(r=>`${r.id} ${r.kind}`).join(" "),Ue(t)]}function Vt(e,t){return zt(e).some(r=>F(r).includes(t))}function Kt(e,t,r){return!r.titleExact&&!r.phraseExact?e:e.filter(n=>!(r.titleExact&&F(n.metadata.title)!==t||r.phraseExact&&!Vt(n,t)))}function va(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new h('--assignee no longer accepts "none" or "null".',m.USAGE)}function Ea(e,t,r){let n=me(e.assignee,{label:"--assignee"});va(n);let o=Qn(e),i=Yn(e);return{typeFilter:jn(e.type,t),tagFilter:me(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:qn(e.priority),deadlineBefore:Lt(e.deadlineBefore,"deadline-before"),deadlineAfter:Lt(e.deadlineAfter,"deadline-after"),updatedAfter:Q(e.updatedAfter,"updated-after"),updatedBefore:Q(e.updatedBefore,"updated-before"),createdAfter:Q(e.createdAfter,"created-after"),createdBefore:Q(e.createdBefore,"created-before"),assigneeFilter:n,sprintFilter:me(e.sprint,{label:"--sprint"}),releaseFilter:me(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:r&&r.length>0?new Set(r):void 0,missingMetadataFilters:o,missingMetadataActive:Nn(o),contentFieldFilters:i,contentFiltersActive:Gn(i)}}function Sa(e,t){return Ia(e,t)&&Br(e,t)&&ka(e,t)}function Ia(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let r=t.tagFilter;return!(r&&!oe(e.tags).some(n=>r.has(n))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function ka(e,t){return!(t.assigneeFilter!==void 0&&(e.assignee===void 0||!t.assigneeFilter.has(e.assignee))||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))||t.releaseFilter!==void 0&&(e.release===void 0||!t.releaseFilter.has(e.release))||t.parentFilter!==void 0&&e.parent!==t.parentFilter)}function xa(e,t,r,n){let o=e.metadata;return!(!Sa(o,t)||!Rn(o,r)||t.missingMetadataActive&&!Un(o,t.missingMetadataFilters,n)||t.contentFiltersActive&&!$n(o,t.contentFieldFilters))}function Qt(e,t,r,n,o,i){let s=Ea(t,r,o);return e.filter(a=>xa(a,s,n,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]="5a927991-1dbe-5906-a0eb-7da2534b6905")}catch{}})();var Ra=2,Aa=120,Ca=6,Ta=40,Ma=1e3,Fa=900,Da="\xAB",Pa="\xBB",si=60;function Xe(e,t){let r=0,n=0;for(;;){let o=e.indexOf(t,n);if(o<0)return r;r+=1,n=o+t.length}}var ai=[{name:"title",weightKey:"title_weight",value:e=>e.metadata.title},{name:"description",weightKey:"description_weight",value:e=>e.metadata.description},{name:"tags",weightKey:"tags_weight",value:e=>oe(e.metadata.tags).join(" ")},{name:"status",weightKey:"status_weight",value:e=>typeof e.metadata.status=="string"?e.metadata.status:""},{name:"body",weightKey:"body_weight",value:e=>e.body},{name:"comments",weightKey:"comments_weight",value:e=>U(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>U(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>U(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>qe(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Ne(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>ye(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Ue(e.metadata)}],Ha=new Map(ai.map(e=>[e.name,e]));function Yt(e,t){let r=t.filter(o=>o.length>0).sort((o,i)=>i.length-o.length).map(o=>o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(r.length===0)return e;let n=new RegExp(r.join("|"),"gi");return e.replace(n,o=>`${Da}${o}${Pa}`)}function Xt(e,t){if(e.length===0)return null;let r=e.toLowerCase(),n=-1,o=0;for(let c of t){if(c.length===0)continue;let u=r.indexOf(c);u>=0&&(n<0||u<n)&&(n=u,o=c.length)}if(n<0)return null;let i=Math.max(0,n-si),s=Math.min(e.length,n+o+si),a=Yt(e.slice(i,s),t),l=i>0?"\u2026":"",d=s<e.length?"\u2026":"";return`${l}${a}${d}`}function Je(e,t,r){let n=[];for(let o of t){let i=Ha.get(o);if(i===void 0)continue;let s=Xt(i.value(e),r);s!==null&&n.push({field:o,snippet:s})}return n}function La(e,t,r){return[...ai.map(n=>({name:n.name,value:n.value(e),weight:r[n.weightKey]})),{name:"linked_content",value:t,weight:r.linked_content_weight}]}function Oa(e,t,r){let n=F(e.id),o=typeof r=="string"?r.trim().toLowerCase():"",i=F(o),s=i.length>0&&n.startsWith(i)?n.slice(i.length).trim():n;return t!==n&&t!==s?null:{item:e,score:t===n?Ma:Fa,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function ja(e,t,r,n,o){for(let i of e){let s=t.get(i)??0;s>0&&(o.score+=s*n.title_exact_bonus,o.matched.add("title"),o.matchedTokens.add(i));for(let a of r){let l=Xe(a.value.toLowerCase(),i);l>0&&(o.score+=l*a.weight,o.matched.add(a.name),o.matchedTokens.add(i))}}}function qa(e,t,r,n){F(e.title)===t&&(n.score+=Aa,n.matched.add("title"));for(let i of r){let s=Xe(F(i.value),t);s>0&&(n.score+=s*i.weight*Ca,n.matched.add(i.name))}}function Jt(e,t,r,n,o,i,s=!1){let a=e.metadata,l=Oa(a,r,i);if(l)return l;let d=new Map;for(let _ of ee(a.title))d.set(_,(d.get(_)??0)+1);let c=La(e,n,o),u={score:0,matched:new Set,matchedTokens:new Set};ja(t,d,c,o,u);let f=new Set(t),p=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&p&&(u.score+=Ta),t.length>=Ra&&r.includes(" ")&&qa(a,r,c,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((_,g)=>_.localeCompare(g)),matched_all_terms:p}}function Zt(e,t){return[...e].sort((r,n)=>{let o=n.score-r.score;if(o!==0)return o;let i=ae(r.item.status,t),s=ae(n.item.status,t);if(i!==s)return i?1:-1;let a=r.item.priority-n.item.priority;if(a!==0)return a;let l=Wr(n.item.updated_at,r.item.updated_at);return l!==0?l:r.item.id.localeCompare(n.item.id)})}function er(e,t,r,n,o,i,s,a=!1){return Jt(e,t,r,n?o.get(e.metadata.id)??"":"",i,s,a)}function _e(e){if(e.size===0)return new Map;let t=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;for(let o of e.values())t=Math.min(t,o),r=Math.max(r,o);if(r===t)return new Map([...e.keys()].map(o=>[o,1]));let n=new Map;for(let[o,i]of e)n.set(o,(i-t)/(r-t));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]="0175d395-3f87-5a93-8d4f-a3150aaf16ae")}catch{}})();function et(e){let t=[],r=e;for(let n=0;n<5&&r&&typeof r=="object";n+=1){let o=r.code;typeof o=="string"&&t.push(o.toLowerCase()),r=r.cause}return t.join(" ")}function tt(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),r=et(e),n=`${t} ${r}`;return n.includes("timed out")||n.includes("timeout")||n.includes("etimedout")?"timeout":n.includes("econnrefused")||n.includes("connection refused")||n.includes("connect ")||n.includes("enotfound")||n.includes("eai_again")||n.includes("econnreset")||n.includes("fetch failed")?"connection":"error"}function tr(e,t){let r=tt(t);return`search_${e}_fallback:${r}:using_keyword_mode`}function ci(e){return e?.commands?.some(r=>r.command.trim()==="reindex")===!0?{command:"pm reindex --mode hybrid",args:["reindex","--mode","hybrid"]}:{command:"pm install search-advanced --project",args:["install","search-advanced","--project"],follow_up_command:"pm reindex --mode hybrid",follow_up_args:["reindex","--mode","hybrid"]}}async function rr(e,t,r){try{let n=await Pn(e);n.warnings.length>0&&r.push(...n.warnings);let o=Zn(t.map(s=>({id:s.metadata.id,updated_at:s.metadata.updated_at})),n.entries);if(o.length===0)return;let i=ci(T());r.push(...li(o.length,i)),process.stderr.write(`[pm] warning: ${o.length} item${o.length===1?" is":"s are"} new or modified since the last reindex and ${o.length===1?"is":"are"} NOT in the semantic index yet \u2014 run '${i.command}'${i.follow_up_command?`, then '${i.follow_up_command}'`:""}. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
3
3
|
`)}catch{}}function li(e,t){return[`vector_index_stale:${e}`,`vector_index_recovery:${t.args.join(" ")}`,...t.follow_up_args?[`vector_index_recovery_follow_up:${t.follow_up_args.join(" ")}`]:[]]}function rt(e,t,r,n){if(!t.active)throw new h(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!r.active&&!n)throw new h(`Search mode '${e}' requires a configured vector store in settings.vector_store.qdrant/settings.vector_store.lancedb or an extension adapter selected by settings.vector_store.adapter`,m.USAGE);return{provider:t.active,vectorStore:r.active??null}}var D=Ee;function we(e){let t=T(),r=vn(t,e);if(!r)return null;let n=r.runtime_definition??r.definition,o=n.query,i=n.queryExpansion??n.query_expansion,s=n.rerank,a=D(n.name)??D(r.definition.name)??e;if(!a)return null;let l={providerName:a,...typeof o=="function"?{query:o}:{},...typeof i=="function"?{queryExpansion:i}:{},...typeof s=="function"?{rerank:s}:{}};return!l.query&&!l.queryExpansion&&!l.rerank?null:l}function nr(e){let t=D(e.search?.provider),r=we(t);return r?.query?{providerName:r.providerName,query:r.query}:null}function or(e){let t=T(),r=D(e.vector_store?.adapter),n=En(t,r);if(!n)return null;let o=n.runtime_definition??n.definition,i=o.query;if(typeof i!="function")return null;let s=o.upsert;return{adapterName:D(o.name)??D(n.definition.name)??r??"extension",query:i,...typeof s=="function"?{upsert:s}:{}}}function ir(e,t,r){let n=Array.isArray(t)?t:t?.hits;if(!Array.isArray(n))throw new h(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let o=new Set,i=[];for(let s of n){if(typeof s!="object"||s===null)continue;let a=D(s.id),l=s.score;if(!a||typeof l!="number"||!Number.isFinite(l)||o.has(a))continue;let d=r.get(a);if(!d)continue;let c=s.matched_fields,u=Array.isArray(c)&&c.every(f=>typeof f=="string")?[...new Set(c.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,p)=>f.localeCompare(p)):[`provider:${e}`];o.add(a),i.push({item:d.metadata,score:l,matched_fields:u})}return i}function sr(e,t){let r=[],n=new Map;for(let o of e){if(n.has(o.id))continue;let i=t.get(o.id);i&&(n.set(o.id,o.score),r.push({item:i.metadata,score:o.score,matched_fields:["semantic"]}))}return{semanticHits:r,semanticScores:n}}function Ze(e,t){let r=t.filter(d=>d.exact_id_match===!0);if(r.length===0)return e;let n=new Set(r.map(d=>d.item.id)),o=e.filter(d=>!n.has(d.item.id)),i=o.reduce((d,c)=>Math.max(d,c.score),0),s=r.sort((d,c)=>c.score-d.score),a=i+s.length+1;return[...s.map((d,c)=>({...d,score:a-c,matched_fields:["id"]})),...o]}function nt(e,t,r,n,o="semantic"){let i=new Map(r.map(u=>[u.item.id,u.score])),s=new Map(r.map(u=>[u.item.id,u.matched_fields])),a=_e(t),l=_e(i),d=new Set([...t.keys(),...i.keys()]),c=1-n;return[...d].map(u=>{let f=e.get(u),p=a.get(u)??0,y=l.get(u)??0,_=p*n+y*c;if(_<=0)return null;let g=new Set;t.has(u)&&g.add(o);for(let w of s.get(u)??[])g.add(w);return{item:f.metadata,score:_,matched_fields:[...g].sort((w,v)=>w.localeCompare(v))}}).filter(u=>u!==null)}function ar(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function cr(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:Yo(Fn(s,{fields:e.corpusFields}))})),r=Ko(t),n=Qo(r,$t(e.query),e.bm25Params),o=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...n].map(([a,l])=>({item:o.get(a).metadata,score:l,matched_fields:["bm25"]}));return Ze(s,e.keywordHits)}let i=nt(o,n,e.keywordHits,e.hybridSemanticWeight,"bm25");return Ze(i,e.keywordHits)}function lr(e){let t=new Map;for(let n of e)for(let o of n){let i=t.get(o.id);(!i||o.score>i.score)&&t.set(o.id,o)}let r=[...t.values()];return r.sort((n,o)=>n.score!==o.score?o.score-n.score:n.id.localeCompare(o.id)),r}function dr(e){let t=e.metadata,r=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,r,e.body].map(n=>typeof n=="string"?n.trim():"").filter(n=>n.length>0).join(`
|
|
4
4
|
`)}async function Na(e,t){let r=e.queryExpansion.enabled?Jo(t,e.queryExpansion.max_queries):[t],n=r.length>0?r:[t];if(!e.queryExpansion.enabled)return n;if(e.queryExpansionExtension?.expand)try{let o=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return ei(n,Zo(o),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),n}return e.queryExpansion.provider&&e.queryExpansion.provider!=="openai"&&e.queryExpansion.provider!=="ollama"&&e.warnings.push(`search_query_expansion_provider_unavailable:${e.queryExpansion.provider}:using_builtin`),n}async function Ua(e,t,r,n){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:r,settings:e.settings}))}catch(o){if(!e.vectorStore)throw new h(`Extension vector adapter query failed and no built-in fallback store is configured (${o instanceof Error?o.message:String(o)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await _t(e.vectorStore,t,r,n)}if(e.vectorStore)return await _t(e.vectorStore,t,r,n);throw new h("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function Ga(e,t,r){return[...e].sort((o,i)=>o.score!==i.score?i.score-o.score:o.item.id.localeCompare(i.item.id)).slice(0,r).map(o=>{let i=t.get(o.item.id);return i?{hit:o,text:dr(i)}:null}).filter(o=>o!==null)}async function $a(e,t,r){if(!e.rerankExtension?.rerank)return null;try{let n=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:r.map(i=>({id:i.hit.item.id,text:i.text,score:i.hit.score}))})),o=ni(n);return o.length>0?new Map(o.map(i=>[i.id,i.score])):(e.warnings.push(`search_rerank_provider_invalid_response:${e.rerankExtension.providerName}:using_builtin`),null)}catch{return e.warnings.push(`search_rerank_provider_failed:${e.rerankExtension.providerName}:using_builtin`),null}}async function Wa(e,t,r){let n=await $a(e,t,r);if(n)return n;let o=r.map(i=>({id:i.hit.item.id,text:i.text}));try{return await ii(e.provider,e.rerank.model,t,o,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Ba(e,t){let r=new Set(t.keys()),n=e.map(o=>{let i=t.get(o.item.id);if(i===void 0)return o;let s=new Set(o.matched_fields);return s.add("rerank"),{...o,score:i,matched_fields:[...s].sort((a,l)=>a.localeCompare(l))}});return n.sort((o,i)=>{let s=r.has(o.item.id),a=r.has(i.item.id);return s!==a?s?-1:1:o.score!==i.score?i.score-o.score:o.item.id.localeCompare(i.item.id)}),n}async function za(e,t,r,n){if(!e.rerank.enabled||r.length<=1)return r;let o=Ga(r,n,e.rerank.top_k),i=await Wa(e,t,o);return i&&i.size>0?Ba(r,i):r}async function ur(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),r=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},n=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},o=e.query.trim(),i=await Na(e,o),s=await je(e.provider,i,r),a=await Promise.all(s.map(async y=>await Ua(e,y,t,n))),l=lr(a),d=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:c,semanticScores:u}=sr(l,d),f=u.size;if(e.requestedMode==="semantic")return{hits:Ze(c,e.keywordHits),vectorMatchCount:f};let p=await za(e,o,nt(d,u,e.keywordHits,e.hybridSemanticWeight),d);return{hits:Ze(p,e.keywordHits),vectorMatchCount:f}}function di(e){let t=we(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function ui(e){let t=we(D(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}import ot from"node:fs/promises";import fr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6e743cc1-3ff0-58b1-bf11-351d1655864c")}catch{}})();function mr(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),o=[...t,...r,...n].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),i=new Map;for(let s of o)i.set(`${s.scope}:${s.path}`,s);return[...i.values()]}async function fi(e){let t=fr.resolve(e);try{let r=await ot.realpath(t);return{resolved:t,realpath:r}}catch{return null}}async function hr(e,t){let[r,n]=await Promise.all([fi(e),fi(t)]);return{projectContainmentRoot:r,globalContainmentRoot:n}}async function pr(e,t){let r=mr(e.metadata),n=[];for(let o of r){let i=o.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!i)continue;let s=fr.resolve(i.resolved,o.path);if(!ct(i.resolved,s))continue;let a;try{a=await ot.realpath(s)}catch{continue}if(ct(i.realpath,a))try{await se({path:s,scope:o.scope}),n.push(await ot.readFile(s,"utf8"))}catch{}}return n.join(`
|
|
5
5
|
`)}async function gr(e,t,r,n){let o=mn(T()),i=async(d,c,u)=>{let f=async(p,y)=>{await se({path:p,scope:"project"});let _=await ot.readFile(p,"utf8");return Qr(_,{format:y,schema:n,extensionFieldNames:o,onWarning:w=>s.push(w)}).body};try{return await f(c,u)}catch{let p=u==="toon"?"json_markdown":"toon",y=z(e,d.type,d.id,p,r);try{return await f(y,p)}catch{return s.push(`item_list_item_read_failed:${fr.relative(e,y)}`),""}}},s=[],a=await hn(e,t,r,s,n),l=[];if(a.length===0){let d=await gn(e,t,r,s,n);for(let c of d){let u=z(e,c.type,c.id,t,r),f=await i(c,u,t);l.push({metadata:c,body:f})}return{documents:l,warnings:[...new Set(s)].sort((c,u)=>c.localeCompare(u))}}for(let d of a){if(typeof d.body=="string"){l.push({metadata:d.metadata,body:d.body});continue}let c=await i(d.metadata,d.item_path,d.item_format);l.push({metadata:d.metadata,body:c})}return{documents:l,warnings:[...new Set(s)].sort((d,c)=>d.localeCompare(c))}}async function mi(e,t,r){let n=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return n;let o=process.cwd(),i=await hr(o,Lr(o)),s=await Promise.all(r.map(async a=>[a.metadata.id,await pr(a,i)]));for(let[a,l]of s)n.set(a,l);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]="5ff2b814-42b0-50fc-92dd-17e9fc521982")}catch{}})();var hi=["tag","status","type","priority"];function yr(e){let t={},r=[];for(let n of e.split(/\s+/).filter(o=>o.length>0)){let o=n.indexOf(":"),i=o>0?n.slice(0,o).toLowerCase():"",s=o>0?n.slice(o+1):"",a=hi.includes(i)?i:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}r.push(n)}return{residualQuery:r.join(" "),inlineFilters:t}}function _r(e,t,r){let n={...e};for(let o of hi){let i=t[o];if(i!==void 0){if(Ee(n[o])!==void 0){r.push(`search_inline_filter_ignored:${o}:flag_takes_precedence`);continue}n[o]=i}}return n}function pi(e,t){let r=[],n=yr(e),o=Object.keys(n.inlineFilters).length>0;if(o&&n.residualQuery.trim().length===0)throw new h("Inline field:value tokens consumed the entire query, leaving no search terms.",m.USAGE,{examples:["pm search auth tag:area:search","pm list --tag area:search --status open"],nextSteps:["Add keyword terms alongside the inline filters, or use pm list for pure tag/status/type/priority filtering."]});let i=o?n.residualQuery:e,s=_r(t,n.inlineFilters,r);return{query:i,options:s,inlineWarnings:r,highlight:s.highlight===!0,includeLinked:Ke(s.includeLinked),titleExact:Ke(s.titleExact),phraseExact:Ke(s.phraseExact),matchMode:$o(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Wo(s.minScore),countOnly:s.count===!0,tokens:Ye(i),normalizedQuery:F(i),limit:Oe(s.limit),projection:Qe(s,e),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}function gi(e){if(e.after!==void 0&&e.count===!0)throw new h("Search --after cannot be combined with --count.",m.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]="984a6fdc-9383-5f89-8e71-b0d3ed2a35cc")}catch{}})();function br(e,t,r,n,o,i,s,a,l,d,c,u,f,p){let y=f?{total:0,count_only:!0}:{};if(d.mode==="compact"&&n.compact===!0){let w=re({mode:t,matchMode:r,options:n,includeLinked:o,titleExact:n.titleExact===!0,phraseExact:n.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,...Ir(p),items:[],count:0,...y,filters:w,...c.length>0?{warnings:c}:{}}}let g=d.mode==="full"?null:[...d.fields];return{query:e.trim(),mode:t,mode_source:p,items:[],count:0,...y,filters:ne({effectiveMode:t,matchMode:r,options:n,includeLinked:o,titleExact:n.titleExact===!0,phraseExact:n.phraseExact===!0,scoreThreshold:i,hybridSemanticWeight:s,queryExpansion:a,rerank:l,runtimeFieldFilters:u??{}}),projection:{mode:d.mode,fields:g},now:S(),...c.length>0?{warnings:c}:{}}}function vr(e,t){let r=t.trim();if(r.length===0)return null;if(r==="score")return e.score;if(r==="matched_fields")return e.matched_fields;if(r.startsWith("item.")){let i=r.slice(5);return i.length===0?null:e.item[i]??null}let n=e,o=e.item;return Object.prototype.hasOwnProperty.call(o,r)?o[r]??null:Object.prototype.hasOwnProperty.call(n,r)?n[r]??null:null}function Er(e,t){return t.mode==="full"?e.map(({matched_all_terms:r,exact_id_match:n,...o})=>o):e.map(r=>{let n={};for(let o of t.fields)n[o]=vr(r,o);return n})}function Sr(e,t){return br(e.query,e.effectiveMode,e.matchMode,e.options,e.includeLinked,e.scoreThreshold,e.hybridSemanticWeight,e.queryExpansion,e.rerank,e.projection,e.warnings,e.runtimeFieldFilters,t,e.modeSource)}function yi(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return wr({query:e.query.trim(),mode:e.effectiveMode,...Ir(e.modeSource),items:[],count:t,total:t,count_only:!0,filters:re({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let r=e.projection.mode==="full"?null:[...e.projection.fields];return wr({query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:[],count:t,total:t,count_only:!0,filters:ne({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:e.projection.mode,fields:r},now:S()},e.warnings)}function Ir(e){return e==="settings"?{mode_source:e}:{}}function wr(e,t){return t.length===0?e:{...e,warnings:t}}function be(e,t){return t?{...e,workspace_memory:t}:e}function _i(e,t,r){if(!e.highlight)return{hits:r,projection:e.projection};let n=new Map(t.map(i=>[i.metadata.id,i])),o=r.map(i=>({...i,highlights:Je(n.get(i.item.id),i.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:o,projection:e.projection}:{hits:o,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function wi(e,t,r,n,o,i){let s=n<r?{total:r}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return wr({query:e.query.trim(),mode:e.effectiveMode,...Ir(e.modeSource),items:t,count:t.length,...s,...i,filters:re({mode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,runtimeFieldFilters:e.runtimeFieldFilters})},e.warnings);let a=o.mode==="full"?null:[...o.fields];return{query:e.query.trim(),mode:e.effectiveMode,mode_source:e.modeSource,items:t,count:t.length,...s,...i,filters:ne({effectiveMode:e.effectiveMode,matchMode:e.matchMode,options:e.options,includeLinked:e.includeLinked,titleExact:e.titleExact,phraseExact:e.phraseExact,scoreThreshold:e.scoreThreshold,hybridSemanticWeight:e.hybridSemanticWeight,queryExpansion:e.queryExpansion,rerank:e.rerank,runtimeFieldFilters:e.runtimeFieldFilters}),projection:{mode:o.mode,fields:a},now:S(),...e.warnings.length>0?{warnings:e.warnings}:{}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e7719a0-9efa-59c2-85d5-e7a5eb30d8e3")}catch{}})();var Mf={applyFilters:Qt,applyExactQueryFilters:Kt,applyInlineQueryFilters:_r,buildHitHighlights:Je,buildVerboseSearchFilters:ne,buildExplicitSemanticFallbackWarning:tr,buildCompactSearchFilterSummary:re,buildHybridLexicalScore:er,buildRerankCorpus:dr,buildSemanticHits:sr,classifyImplicitSemanticFallbackReason:tt,collectErrorCauseCodes:et,collectExactPhraseFields:zt,collectLinkedPaths:mr,combineHybridHits:nt,computeBuiltInBm25Hits:cr,computeSemanticOrHybridHits:ur,resolveBuiltInBm25Mode:ar,countOccurrences:Xe,dependencyEntries:ye,documentContainsExactPhrase:Vt,emptySearchResult:br,highlightFieldSnippet:Xt,loadDocuments:gr,markTokenRuns:Yt,parseInlineQueryFilters:yr,maybeEmitVectorIndexStaleWarning:rr,loadLinkedCorpus:pr,mergeVectorHitsById:lr,normalizeExtensionProviderHits:ir,normalizeScoreMap:_e,parseProjectionConfig:Qe,parseTimestampWindow:Q,parseTokens:Ye,projectSearchHits:Er,readSearchFieldValue:vr,requireSemanticDependencies:rt,resolveExtensionSearchProvider:nr,resolveExtensionSearchProviderByName:we,resolveExtensionVectorAdapter:or,resolveLinkedCorpusRoots:hr,scoreDocument:Jt,sortHits:Zt,stringArray:oe,textEntries:U,validateSearchProjectionFields:Ot};async function Va(e,t){let r=x(process.cwd(),t.path);await L(r);let n=await j(r),o=An(n).settings,i=$(o.schema),s=J(o.schema);Ot(e.projection,s,e.query);let a=xn(e.options,s,"search"),l=G(o,T()),d=Tn(o),c=Dn(o,r),u=nr(o),f=or(o),p=Go(e.options.semanticWeight),y=ti(o,d.active?.name??null),_=ri(o,d.active?.model??D(o.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:r,settings:o,statusRegistry:i,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:l,maxResults:jt(o),scoreThreshold:e.minScoreOverride??Nt(o),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:p,hybridSemanticWeight:p??Ut(o),tuning:Gt(o),providerResolution:d,vectorResolution:c,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:ar({configuredProvider:D(o.search?.provider),hasEmbeddingProvider:d.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:di(y),rerank:_,rerankExtension:ui(o),...Ka({requested:e.options.mode,settings:o,configuredProvider:n.search?.provider??null,providerResolution:d,vectorResolution:c,extensionSearchProvider:u,extensionVectorAdapter:f})}}function Ka(e){let r=Cn(e.providerResolution.active?.name,e.configuredProvider)==="configured"&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null),n=e.extensionSearchProvider!==null||r,o=qt({requested:e.requested,settings:e.settings,semanticRunnable:n});return{effectiveMode:o.mode,modeSource:o.source}}async function Qa(e,t){let r=await gr(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),n=Le(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),o=Ge(t.statusRegistry),i=Qt(r.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,n,o);return{warnings:r.warnings,allDocuments:r.documents,filteredDocuments:Kt(i,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function Ya(e,t,r){let n=await mi(e.includeLinked,t.effectiveMode,r),o=e.matchMode==="or";return r.map(i=>er(i,e.tokens,e.normalizedQuery,e.includeLinked,n,t.tuning,t.settings.id_prefix,o)).filter(i=>i!==null).filter(i=>e.matchMode!=="and"||i.matched_all_terms===!0)}async function Xa(e,t,r,n,o){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let i=cr({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:r,keywordHits:n,corpusFields:Mn(t.settings),bm25Params:Xo(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&o.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),i}async function Ja(e,t,r,n){if(!t.extensionSearchProvider)return null;let o=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let i=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:r}));return ir(t.extensionSearchProvider.providerName,i,n)}catch(i){if(!o)throw new h(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${i instanceof Error?i.message:String(i)}`,m.GENERIC_FAILURE);return null}}function Za(e,t,r,n){return t.vectorMatchCount>0?t.hits:(n.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?r:t.hits)}async function ec(e,t,r,n,o){let i=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);o&&i&&await rr(e.pmRoot,r,n),e.extensionSearchProvider||rt(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function tc(e){let{prepared:t,runtime:r,filteredDocuments:n,keywordHits:o,warnings:i,modeWasExplicit:s}=e,a=o,l=await Xa(t,r,n,o,i),d=r.effectiveMode;if(l!==null||d==="keyword")return{effectiveMode:r.effectiveMode,hits:l??a};try{if(await ec(r,d,n,i,s),n.length===0||t.limit===0)return{effectiveMode:r.effectiveMode,hits:[]};let c=new Map(n.map(u=>[u.metadata.id,u]));if(a=await Ja(t,r,n,c)??a,a===o){let{provider:u,vectorStore:f}=rt(d,r.providerResolution,r.vectorResolution,r.extensionVectorAdapter!==null),p=await ur({requestedMode:d,query:t.query,filteredDocuments:n,keywordHits:o,hybridSemanticWeight:r.hybridSemanticWeight,limit:t.limit,maxResults:r.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:r.extensionVectorAdapter,queryExpansion:r.queryExpansion,queryExpansionExtension:r.queryExpansionExtension,rerank:r.rerank,rerankExtension:r.rerankExtension,warnings:i,settings:r.settings});a=Za(d,p,o,i)}return{effectiveMode:r.effectiveMode,hits:a}}catch(c){return i.push(tr(r.effectiveMode,c)),{effectiveMode:"keyword",hits:o}}}async function bi(e,t,r){gi(t);let n=pi(e,t),o=await Va(n,r),i=await Qa(n,o),s=i.warnings;s.push(...n.inlineWarnings);let a=await io(i.allDocuments.map(E=>E.metadata),{pmRoot:o.pmRoot,statusRegistry:o.statusRegistry,now:S()});s.push(...a.warnings);let l=so(a,n.query);o.effectiveMode==="hybrid"&&o.semanticWeightProvided&&o.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let d={query:n.query,modeSource:o.modeSource,matchMode:n.matchMode,options:n.options,includeLinked:n.includeLinked,titleExact:n.titleExact,phraseExact:n.phraseExact,scoreThreshold:o.scoreThreshold,hybridSemanticWeight:o.hybridSemanticWeight,queryExpansion:o.queryExpansion,rerank:o.rerank,projection:n.projection,warnings:s,runtimeFieldFilters:o.runtimeFieldFilters};if(o.effectiveMode==="keyword"&&(i.filteredDocuments.length===0||n.limit===0&&!n.countOnly))return be(Sr({...d,effectiveMode:o.effectiveMode},n.countOnly),l);let c=await Ya(n,o,i.filteredDocuments),u=await tc({prepared:n,runtime:o,filteredDocuments:i.filteredDocuments,keywordHits:c,warnings:s,modeWasExplicit:n.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(i.filteredDocuments.length===0||n.limit===0&&!n.countOnly))return be(Sr({...d,effectiveMode:u.effectiveMode},n.countOnly),l);let f=u.hits.filter(E=>E.exact_id_match===!0||E.score>=o.scoreThreshold),p=Zt(f,o.statusRegistry),y=p.length,_=Bo({sorted:p,query:n.query,mode:u.effectiveMode,searchOptions:n.options,limit:n.limit??o.maxResults}),g={...d,effectiveMode:u.effectiveMode};if(n.countOnly)return be(yi(g,y),l);let{hits:w,projection:v}=_i(n,i.filteredDocuments,_.limited),b=Er(w,v);return be(wi(g,b,y,_.limited.length,v,_.pageExtras),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]="b152a753-033c-593f-8b81-feb68b0a895f")}catch{}})();var vi=["ndcg","mrr","precision","recall"];function kr(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new TypeError("Eval minimum must be an object of metric floors");let t={};for(let[r,n]of Object.entries(e)){if(!vi.some(o=>o===r))throw new TypeError(`Unknown eval minimum metric: ${r}`);if(typeof n!="number"||!Number.isFinite(n)||n<0||n>1)throw new TypeError(`Eval minimum.${r} must be a finite number in [0, 1]`);t[r]=n}return t}function Ei(e,t){let r=kr(t),n=[];for(let o of vi){let i=r[o];if(i===void 0)continue;let s=e[o];!Number.isFinite(s)||s<0||s>1?n.push(`${o}:invalid`):s<i&&n.push(`${o}:${s}<${i}`)}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]="451970e8-8403-5527-b795-a873241c015e")}catch{}})();var Ii=10,W="https://schema.unbrained.dev/pm/eval-query-set/v1",rc={schema:W,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description","minimum"],modes:["keyword","semantic","hybrid"]},it={schema:W,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},P=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},nc=new Set(["keyword","semantic","hybrid"]);function Si(e,t){let r=0,n=Math.min(t,e.length);for(let o=0;o<n;o+=1)r+=e[o]/Math.log2(o+2);return r}function oc(e,t,r){if(t.size===0)return 0;let n=e.map(a=>t.has(a)?1:0),o=Si(n,r),i=Array.from({length:t.size},()=>1),s=Si(i,r);return s===0?0:o/s}function ic(e,t,r){let n=Math.min(r,e.length);for(let o=0;o<n;o+=1)if(t.has(e[o]))return 1/(o+1);return 0}function xr(e,t,r){let n=Math.min(r,e.length),o=0;for(let i=0;i<n;i+=1)t.has(e[i])&&(o+=1);return o}function sc(e,t,r){return r<=0?0:xr(e,t,r)/r}function ac(e,t,r){return t.size===0?0:xr(e,t,r)/t.size}function ki(e,t,r){return{ndcg:oc(e,t,r),mrr:ic(e,t,r),precision:sc(e,t,r),recall:ac(e,t,r),relevant_total:t.size,retrieved_relevant:xr(e,t,r)}}function xi(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let r=e.reduce((n,o)=>({ndcg:n.ndcg+o.ndcg,mrr:n.mrr+o.mrr,precision:n.precision+o.precision,recall:n.recall+o.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:r.ndcg/t,mrr:r.mrr/t,precision:r.precision/t,recall:r.recall/t,query_count:t}}function cc(e,t){if(typeof e!="object"||e===null)throw new P(`Eval query at index ${t} must be an object`);let r=e,n=typeof r.query=="string"?r.query.trim():"";if(n.length===0)throw new P(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(r.relevant_ids))throw new P(`Eval query at index ${t} must have a "relevant_ids" array`);if(r.relevant_ids.some(i=>typeof i!="string"))throw new P(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let o=[...new Set(r.relevant_ids.map(i=>i.trim()).filter(i=>i.length>0))];if(o.length===0)throw new P(`Eval query at index ${t} must list at least one relevant id`);if(r.mode!==void 0&&(typeof r.mode!="string"||!nc.has(r.mode)))throw new P(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:n,relevant_ids:o,...r.minimum===void 0?{}:{minimum:kr(r.minimum)},...r.mode!==void 0?{mode:r.mode}:{},...typeof r.description=="string"&&r.description.trim().length>0?{description:r.description.trim()}:{}}}function Rr(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==W)throw new P(`Unsupported eval query set schema; expected "${W}"`);let r=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(r))throw new P('Eval query set must be an array of queries or an object with a "queries" array');if(r.length===0)throw new P("Eval query set must contain at least one query");return{schema:W,queries:r.map((n,o)=>cc(n,o))}}import lc from"node:fs/promises";import Ar 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]="d4020969-4ce5-5f87-ae41-f5a3dec0a197")}catch{}})();var dc=Ar.join("search","eval-queries.json"),Cr={schema:W,examples:[JSON.stringify(it)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},uc=new Set(["keyword","semantic","hybrid"]),fc=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!uc.has(t))throw new h("Eval --mode must be one of keyword|semantic|hybrid",m.USAGE);return t},mc=e=>{if(e===void 0||e==="")return Ii;let t=Se(e);if(t===null)throw new h("Eval --k must be a positive integer",m.USAGE);return t},hc=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),r=Number(t);if([t.length===0,!Number.isFinite(r),r<0,r>1].includes(!0))throw new h("Eval --fail-under must be a number in the range [0, 1]",m.USAGE);return r},B=e=>Math.round(e*1e4)/1e4,pc=async e=>{try{return await lc.readFile(e,"utf8")}catch{throw new h(`Eval query set not found at ${e}`,m.NOT_FOUND,{...Cr,examples:[`echo '${JSON.stringify(it)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},gc=(e,t)=>{try{return JSON.parse(e)}catch(r){throw new h(`Eval query set at ${t} is not valid JSON: ${r instanceof Error?r.message:String(r)}`,m.USAGE,Cr)}},yc=e=>{try{return Rr(e)}catch(t){throw new h(t instanceof Error?t.message:String(t),m.USAGE,Cr)}},_c=async e=>yc(gc(await pc(e),e)),wc=async(e,t,r,n)=>{let o=e.mode??t,s=(await bi(e.query,{mode:o,limit:String(r),fields:"id"},n)).items.map(l=>l.id).filter(l=>typeof l=="string"),a=ki(s,new Set(e.relevant_ids),r);return{metrics:a,report:{query:e.query,...e.minimum===void 0?{}:{violations:Ei(a,e.minimum)},mode:o,relevant_total:a.relevant_total,retrieved_relevant:a.retrieved_relevant,ndcg:B(a.ndcg),mrr:B(a.mrr),precision:B(a.precision),recall:B(a.recall)}}},bc=(e,t,r,n)=>{let o=xi(r);return{k:e,query_count:t.length,aggregate:{ndcg:B(o.ndcg),mrr:B(o.mrr),precision:B(o.precision),recall:B(o.recall)},queries:t,...n!==void 0?{fail_under:n}:{},passed:(n===void 0||o.ndcg>=n)&&t.every(i=>(i.violations?.length??0)===0)}},Vf=async(e,t)=>{let r=x(process.cwd(),t.path);await L(r);let n=mc(e.k),o=fc(e.mode),i=hc(e.failUnder),s=e.queries?Ar.resolve(process.cwd(),e.queries):Ar.join(r,dc),a=await _c(s),l=[],d=[];for(let c of a.queries){let{report:u,metrics:f}=await wc(c,o,n,t);d.push(f),l.push(u)}return bc(n,l,d,i)};export{ji as a,Ni as b,Uc as c,Gc as d,al as e,cl as f,xt as g,wo as h,bo as i,vo as j,Dl as k,Yl as l,Kl as m,rd as n,nd as o,Oo as p,jo as q,qo as r,Fs as s,Dt as t,kd as u,xd as v,Ld as w,jt as x,qt as y,Nt as z,Ut as A,Gt as B,ca as C,Bo as D,re as E,ne as F,et as G,tt as H,ci as I,li as J,Mf as K,bi as L,vi as M,kr as N,Ei as O,W as P,rc as Q,it as R,Rr as S,dc as T,Vf as U};
|
|
6
|
-
//# sourceMappingURL=chunk-
|
|
6
|
+
//# sourceMappingURL=chunk-JAVO3Z42.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as k,c as I,d as A,e as _,k as T,m as C}from"./chunk-
|
|
1
|
+
import{a as k,c as I,d as A,e as _,k as T,m as C}from"./chunk-JAVO3Z42.js";import{Db as b,Eb as v,Fb as R}from"./chunk-BNAT4EYR.js";import{Ec as E,Ff as D,Hj as x,If as m,Jf as y,Jo as f,Mo as g,No as a,ep as w,la as c,na as p,pl as H}from"./chunk-UIAH7UFK.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="631e56aa-4d7e-58b6-bbea-a0d320716b82")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="0bcdd63c-5fd3-585d-a6c5-9393029ef864")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="4dce4f19-071c-54a8-be0d-5975d9e3b34b")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="f330a0c5-a967-5383-9c27-efa4a39e0f0d")}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="420952ed-9a04-55dd-bcb8-804d81582002")}catch{}})();function B(t,e){if(typeof t!="string")return;let o=Number.parseInt(t,10);if(!/^\d+$/.test(t.trim())||!Number.isSafeInteger(o))throw new p(`history-compact ${e} must be a non-negative integer.`,c.USAGE);return o}async function O(t,e,o){let r=f(o),n=Date.now(),i=await x(a(e,"ids")),l=i===void 0?void 0:H(i),d=B(e.allOver,"--all-over"),u=B(e.minEntries,"--min-entries");if(e.closed===!0&&e.allStreams===!0)throw new p("history-compact: --closed and --all-streams are mutually exclusive; pick one lifecycle scope.",c.USAGE);let s=e.closed===!0?"closed":e.allStreams===!0?"all-streams":void 0;if((l!==void 0||d!==void 0||s!==void 0)&&typeof e.before=="string")throw new p("history-compact: --before applies only in single-id mode (bulk mode always compacts full streams).",c.USAGE);if(I(t,{ids:l,allOver:d,scope:s}),t!==void 0&&u!==void 0)throw new p("history-compact: --min-entries applies only in bulk mode (single-id mode compacts the named stream).",c.USAGE);if(t===void 0){let h=await A({ids:l,scope:s,allOver:d,minEntries:u,dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r),h.totals.items_errored>0&&(process.exitCode=c.GENERIC_FAILURE)}else{let h=await k(t,{before:a(e,"before"),dryRun:e.dryRun===!0,author:a(e,"author"),message:a(e,"message"),force:!!e.force},r);m(h,r)}r.profile&&y(`profile:command=history-compact took_ms=${Date.now()-n}`)}async function S(t,e,o,r){let n=f(r),i=Date.now(),l=await C(t,e,{author:a(o,"author"),message:a(o,"message"),force:!!o.force},n);await w(n,l),m(l,n),n.profile&&y(`profile:command=restore took_ms=${Date.now()-i}`)}async function N(t,e){let o=f(e),r=await T({verify:a(t,"verify"),output:a(t,"output"),hashAlgorithm:a(t,"hashAlgorithm")},o);"format"in r?(E(r),o.quiet||D(`${JSON.stringify(r,null,2)}
|
|
2
2
|
`)):m(r,o),"ok"in r&&!r.ok&&(process.exitCode=c.GENERIC_FAILURE)}function ee(t,e){t.command(e?"attest":"history-attest",{hidden:!e}).summary("Export or verify history proof.").option("--verify <file>","Compare retained streams with a detached JSON proof").option("--output <file>","Create a proof file and return a compact receipt").option("--hash-algorithm <name>","Bundle digest algorithm: sha256 (default) or sha512").description("Export exact-byte history commitments, or verify an independently retained proof without tracker writes.").action(N),t.command("restore",{hidden:!e}).summary("Restore a version.").argument("<id>","Item id").argument("<target>","Restore target timestamp or version number").option("--author <value>","Mutation author").option("--message <value>","History message").option("--force","Force ownership/lock override").description("Restore an item to an earlier timestamp or version.").action(S),t.command(e?"redact":"history-redact",{hidden:!e}).summary("Redact sensitive values.").argument("<id>","Item id").option("--literal <value>","Literal string to redact (repeatable)",g).option("--regex <value>","Regex pattern to redact (repeatable; accepts /pattern/flags or raw pattern)",g).option("--replacement <value>",'Replacement string (default: "[redacted]")').option("--dry-run","Preview redaction impact without writing item/history files").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the redaction marker entry").option("--force","Force ownership/lock override").description("Redact sensitive literals/patterns from an item history stream and recompute hashes.").action(async(o,r,n)=>{let i=f(n),l=Date.now(),d=Array.isArray(r.literal)?r.literal:void 0,u=Array.isArray(r.regex)?r.regex:void 0,s=await _(o,{literal:d,regex:u,replacement:a(r,"replacement"),dryRun:r.dryRun===!0,author:a(r,"author"),message:a(r,"message"),force:!!r.force},i);s.changed&&!s.dry_run&&await w(i,s),m(s,i),i.profile&&y(`profile:command=history-redact took_ms=${Date.now()-l}`)}),t.command(e?"repair":"history-repair",{hidden:!e}).summary("Repair drift.").argument("[id]","Item id (omit with --all)").option("--salvage-tail","Recover invalid tail; requires verified prefix").option("--all","Scan every stream for drift and repair each drifted stream in one audited pass").option("--dry-run","Preview the re-anchor impact without writing the history file").option("--normalize-provenance","Remove invalid provenance; return aggregate-only evidence").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the repair marker entry").option("--force","Force ownership/lock override").description("Re-anchor a drifted item history chain (recompute hashes, reconcile with the on-disk item) and record an audit marker. Use --all to repair every drifted stream.").action(async(o,r,n)=>{let i=f(n),l=Date.now(),d=r.all===!0;v(o,d);let u={dryRun:r.dryRun===!0,author:a(r,"author"),message:a(r,"message"),force:!!r.force,normalizeProvenance:r.normalizeProvenance===!0,salvageTail:r.salvageTail===!0};if(d){let s=await R(u,i);m(s,i),s.totals.failed>0&&(process.exitCode=c.GENERIC_FAILURE)}else{let s=await b(o,u,i);m(s,i)}i.profile&&y(`profile:command=history-repair took_ms=${Date.now()-l}`)}),t.command(e?"compact":"history-compact",{hidden:!e}).summary("Compact streams.").argument("[id]","Item id (omit when using a bulk selector)").option("--before <value>","Compact entries strictly before this version number or ISO timestamp (single-id mode only)").option("--ids <value>","Bulk IDs: comma/newline text, - stdin, or @path file").option("--all-over <n>","Bulk: compact every stream with more than N entries").option("--closed","Bulk: compact only closed (terminal) items' streams").option("--all-streams","Bulk: compact every history stream regardless of lifecycle state").option("--min-entries <n>","Bulk: skip streams with at most N entries (already compact; default 3)").option("--dry-run","Preview compaction impact without writing the history file").option("--author <value>","Mutation author").option("--message <value>","Audit history message for the compaction marker entry").option("--force","Force ownership/lock override").description("Compact item history streams into a synthetic baseline plus retained tail entries. Pass an item id for one stream, or a bulk selector (--ids/--all-over/--closed/--all-streams) to compact many.").action(O)}export{ee as a};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-SCZMJ5DC.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$a as B,Ub as x,Vb as F,Xb as b,_b as J,ac as W,bc as V}from"./chunk-VWVFKPLX.js";import{b as D}from"./chunk-DGOIXJZJ.js";import{Bo as K,Rb as $,aa as O,eh as N,in as P,la as c,na as d,on as L,qi as C,si as U,tb as k,vj as j,xj as G,yo as z}from"./chunk-UIAH7UFK.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]="4175f7f5-a689-5d05-982a-f92e21bc83e7")}catch{}})();import ce from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2b75ffc0-8175-58fc-8d63-98081a68dcb8")}catch{}})();var R=["op","id","reason","options"],Y=[...R,"ref"],q=["schema_version","mutations"],oe="[a-z][a-z0-9._-]{0,63}",H=new RegExp(`^${oe}$`,"u"),ne=new RegExp(`(^|,)id=@(${oe})(?=,|$)`,"gu"),X=e=>e.slice(2).replaceAll(/-([a-z])/gu,(t,o)=>o.toUpperCase()),E=["item","linked","schedule","claim_state","children","omission_receipt","row_contract","context_intent"],re=new Set(["created_at","updated_at","closed_at","version","format_version","path","author","collection_counts","notes_count","tests_count"]),de=new Set([...re,"completed_at","id"]),_=new Set(["id","title","description","type","status","priority","tags","body","deadline","estimated_minutes","acceptance_criteria","definition_of_ready","order","rank","assignee",...O,"affected_version","fixed_version","component","regression","customer_impact","close_reason","completed_at","dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"]),Z={create:z.map(e=>e.target),update:K.map(e=>e.target),close:P.map(e=>X(e.flag)).filter(e=>e!=="reason"),release:L.map(e=>X(e.flag))};function St(e){let t={},o=e.createCompensation;if(o!==void 0){if(o!=="close"&&o!=="delete")throw new d("createCompensation must be close or delete.",c.USAGE);t.createCompensation=o}for(let n of["lockTtlSeconds","lockWaitMs"]){let r=e[n];if(r===void 0)continue;let i=typeof r=="number"||typeof r=="string"&&r.trim().length>0?Number(r):Number.NaN;if(!Number.isSafeInteger(i)||i<=0)throw new d(`${n} must be a positive safe integer.`,c.USAGE);t[n]=i}return t}function p(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function g(e,t){let o=Math.max(1,Math.min(3,Math.floor(e.length/4)+1)),n;for(let r of t){let i=k(e,r,o);i!==null&&(n===void 0||i<n.distance)&&(n={key:r,distance:i})}return n?.key}function y(e,t,o){let n=g(t,o);return new d(n===void 0?`${e} does not recognize key "${t}". Allowed keys: ${o.join(", ")}.`:`${e} does not recognize key "${t}". Did you mean "${n}"?`,c.USAGE,{code:"stdin_json_unknown_key",required:`Use documented ${e} keys only.`,why:"Strict structured input prevents silent typos from creating incomplete or unintended mutations.",nextSteps:[n===void 0?`Remove or correct "${t}".`:`Replace "${t}" with "${n}".`]})}function v(e,t){try{return JSON.parse(e)}catch(o){let n=o instanceof Error?o.message:String(o);throw new d(`${t} must be valid JSON: ${n}`,c.USAGE,{code:"stdin_json_invalid",required:`Pipe one valid JSON ${t.toLowerCase()} into stdin.`,why:"Structured mutation input must parse deterministically before any tracker write begins."})}}function ue(e,t){if(!p(e))throw new d(`Mutation ${t+1} must be an object.`,c.USAGE);for(let o of Object.keys(e))if(!R.includes(o))throw y(`mutation ${t+1}`,o,R);return e}function pe(e,t,o){if(e!==void 0){if(!p(e))throw new d(`Mutation ${o+1} options must be an object.`,c.USAGE);for(let n of Object.keys(e))if(!Z[t].includes(n))throw y(`mutation ${o+1} ${t} options`,n,Z[t]);return e}}function le(e,t){let o=ue(e,t),{op:n,id:r,reason:i}=o;if(n!=="create"&&n!=="update"&&n!=="close"&&n!=="release")throw new d(`Mutation ${t+1} op must be create, update, close, or release.`,c.USAGE);let s=pe(o.options,n,t);if(typeof r!="string"||r.trim().length===0)throw new d(`Mutation ${t+1} requires a non-empty id.`,c.USAGE);let a=r.trim();if(n==="close"){if(typeof i!="string"||i.trim().length===0)throw new d(`Mutation ${t+1} close requires a non-empty reason.`,c.USAGE);return{op:n,id:a,reason:i.trim(),...s===void 0?{}:{options:s}}}if(n==="release")return{op:n,id:a,...s===void 0?{}:{options:s}};if(!p(s))throw new d(`Mutation ${t+1} ${n} requires an options object.`,c.USAGE);return{op:n,id:a,options:s}}function ie(e){let t=v(e,"Mutation batch"),o=Array.isArray(t)?t:p(t)&&Array.isArray(t.mutations)?t.mutations:void 0;if(o===void 0||o.length===0)throw new d("Mutation batch must be a non-empty JSON array or an object with a non-empty mutations array.",c.USAGE);return o.map((n,r)=>{let i=le(n,r);return i.options!==void 0&&j(i.options),i})}function me(e,t,o){let n=ce.createHash("sha256").update(e).update("\0").update(t).digest("hex"),r=BigInt(`0x${n.slice(0,16)}`).toString(36).padStart(13,"0").slice(-12);return`${C(o)}${r}`}function Q(e,t){if(typeof e!="string"||!e.startsWith("@"))return e;let o=e.slice(1),n=t[o];if(n===void 0)throw new d(`Unknown mutation reference "${e}".`,c.USAGE);return n}function ee(e,t){if(typeof e!="string")return e;let o=e.replace(ne,(n,r,i)=>{let s=t[i];if(s===void 0)throw new d(`Unknown mutation reference "@${i}".`,c.USAGE);return`${r}id=${s}`});if(/(^|,)id=@/u.test(o))throw new d(`Malformed mutation reference in dependency "${e}".`,c.USAGE);return o}function fe(e){return typeof e!="string"?[]:e.startsWith("@")?[e.slice(1)]:[...e.matchAll(ne)].map(t=>t[1]).filter(t=>t!==void 0)}function ye(e){let t=new Map;for(let i of e){if(i.op!=="create"||typeof i.ref!="string")continue;let s=p(i.options)?i.options:{},a=Array.isArray(s.dep)?s.dep:s.dep===void 0?[]:[s.dep];t.set(i.ref,[s.parent,s.blockedBy,...a].flatMap(fe))}let o=new Set,n=new Set,r=i=>{if(o.has(i))throw new d(`Mutation reference cycle includes "@${i}".`,c.USAGE);if(!n.has(i)){o.add(i);for(let s of t.get(i))t.has(s)&&r(s);o.delete(i),n.add(i)}};for(let i of t.keys())r(i)}function he(e){let t=v(e,"Mutation document"),o=Array.isArray(t)?{schema_version:1,mutations:t}:t;if(!p(o))throw new d("Mutation document must be a JSON array or object.",c.USAGE);for(let n of Object.keys(o))if(!q.includes(n))throw y("mutation document",n,q);if(o.schema_version!==void 0&&o.schema_version!==1)throw new d("Mutation document schema_version must be 1.",c.USAGE);if(!Array.isArray(o.mutations)||o.mutations.length===0)throw new d("Mutation document requires a non-empty mutations array.",c.USAGE);return o.mutations.map((n,r)=>{if(!p(n))throw new d(`Mutation ${r+1} must be an object.`,c.USAGE);for(let i of Object.keys(n))if(!Y.includes(i))throw y(`mutation ${r+1}`,i,Y);return{...n}})}function we(e,t){let o=Object.create(null);for(let[n,r]of e.entries())if(r.ref!==void 0){if(r.op!=="create")throw new d(`Mutation ${n+1} ref is only valid for create operations.`,c.USAGE);if(typeof r.ref!="string"||!H.test(r.ref))throw new d(`Mutation ${n+1} ref must match ${H.source}.`,c.USAGE);if(o[r.ref]!==void 0)throw new d(`Duplicate mutation ref "${r.ref}".`,c.USAGE);o[r.ref]=typeof r.id=="string"&&r.id.trim().length>0?U(r.id,t.idPrefix):me(t.transactionId,r.ref,t.idPrefix)}return o}function bt(e,t){let o=he(e),n=we(o,t);ye(o);let r=o.map(a=>{let u={...a},l=typeof u.ref=="string"?u.ref:void 0;if(delete u.ref,l!==void 0?u.id=n[l]:u.id=Q(u.id,n),p(u.options)){let m={...u.options};for(let w of["parent","blockedBy"])m[w]!==void 0&&(m[w]=Q(m[w],n));Array.isArray(m.dep)?m.dep=m.dep.map(w=>ee(w,n)):m.dep!==void 0&&(m.dep=ee(m.dep,n)),u.options=m}return u}),i=ie(JSON.stringify(r)),s=i.filter(a=>a.op==="create").map(a=>a.id);if(new Set(s).size!==s.length)throw new d("Duplicate resolved create id in mutation document.",c.USAGE);return{schema_version:1,mutations:i,references:n}}function se(e,t){return t.filter(o=>e[o]!==void 0&&e[o]!==null).map(o=>{let n=String(e[o]);return`${o}=${/[",\n\r\\]/u.test(n)?JSON.stringify(n):n}`}).join(",")}function _e(e,t,o){if(e!==void 0){if(!Array.isArray(e)||!e.every(p))throw new d(`${o} must be an array of objects.`,c.USAGE);return e.map(n=>se(n,t))}}function Ee(e,t){return e==="tags"&&Array.isArray(t)&&t.every(o=>typeof o=="string")?JSON.stringify(t):typeof t=="number"||typeof t=="boolean"?String(t):t}function te(e,t,o=!1){let n=[["dependencies","dep",["id","kind","created_at","author","source_kind"]],["comments","comment",["text","created_at","author"]],["notes","note",["text","created_at","author"]],["learnings","learning",["text","created_at","author"]],["files","file",["path","scope","note"]],["tests","test",["command","scope","timeout_seconds"]],["docs","doc",["path","scope","note"]],["reminders","reminder",["at","text","created_at"]],["events","event",["start_at","end_at","title","location"]],["type_options","typeOption",["key","value"]]];for(let[r,i,s]of n){let a=t[r],u=_e(o&&["comments","notes","learnings"].includes(r)&&Array.isArray(a)?a.filter(l=>!p(l)||l.created_at===void 0):a,s,r);u!==void 0&&u.length>0&&(e[i]=u)}}function ge(e,t){for(let o of Object.keys(e)){if(t){if(!E.includes(o))throw y("item envelope",o,E);continue}if(!_.has(o)&&g(o,[..._])===void 0&&g(o,E)==="item")throw y("item envelope",o,E)}}function Ae(e){let t=Object.hasOwn(e,"item");ge(e,t);let o=t?e.item:e;if(!p(o))throw new d("Item document item must be an object.",c.USAGE);return{item:o,...t&&p(e.linked)?{linked:e.linked}:{}}}function Te(e,t,o,n){if(!(n==="update"?de:re).has(t)){if(!_.has(t)){if(g(t,[..._])!==void 0)throw y("item document",t,[..._]);let s=Array.isArray(e.field)?e.field:[];s.push(se({key:t,value:typeof o=="string"?o:JSON.stringify(o)},["key","value"])),e.field=s;return}["dependencies","comments","notes","learnings","files","tests","docs","reminders","events","type_options"].includes(t)||(e[t.replaceAll(/_([a-z])/gu,(i,s)=>s.toUpperCase())]=Ee(t,o))}}function Rt(e,t,o={}){let n=v(e,"Item document");if(!p(n))throw new d("Item document must be a JSON object.",c.USAGE);let{item:r,linked:i}=Ae(n),s={};for(let[a,u]of Object.entries(r))Te(s,a,u,t);if(te(s,r,t==="update"),i!==void 0&&te(s,i),t==="update"){let a=Object.fromEntries(["comments","notes","learnings"].filter(u=>Object.hasOwn(r,u)).map(u=>[u,r[u].filter(l=>p(l)&&l.created_at!==void 0)]));Object.keys(a).length>0&&(s.documentAnnotationSnapshot=a)}return{...s,...Object.fromEntries(Object.entries(o).filter(([,a])=>a!==void 0)),stdinJson:void 0}}function vt(e){return ie(JSON.stringify(e))}import Se from"node:crypto";import be 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]="4b7656bd-36a9-5b97-971f-60f717e8e81f")}catch{}})();function A(e,t){let o={...e,...t};return e===void 0?o:G(e,o)}async function f(e,t){try{let n=(await B(t,{},{pmRoot:e})).item;return{id:n.id,closedAt:n.closed_at,updatedAt:n.updated_at,assignee:n.assignee,claimPrincipal:n.claim_principal}}catch(o){if(o instanceof d&&o.exitCode===c.NOT_FOUND)return;throw o}}function I(e,t){let o=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_"),n=Se.createHash("sha256").update($(e)).digest("hex").slice(0,12);return`${t+1}-${e.op}-${o}-${n}`}function Re(e,t){let o=e.id.replaceAll(/[^a-zA-Z0-9._-]/gu,"_");return`${t+1}-${e.op}-${o}`}function h(e,t,o){return`bulk-item-transaction ${e} ${t} ${o}`}async function T(e,t,o,n){let r=await N(be.join(e,"history",`${t}.jsonl`),t),i=h(o,n,"apply"),s=h(o,n,"compensate");for(let a=r.length-1;a>=0;a-=1){let u=r[a].message;if(u===i)return!0;if(u===s)return!1}return!1}async function M(e,t){let o=await f(e,t.id);if(o?.updatedAt===void 0)throw new d(`Bulk ${t.op} target ${t.id} does not exist or has no restorable version`,c.NOT_FOUND);return{target_updated_at:o.updatedAt}}async function S(e,t,o,n){let r=n!==null&&typeof n=="object"&&!Array.isArray(n)?n.target_updated_at:void 0;typeof r=="string"&&await f(e.pmRoot,t)!==void 0&&await V(t,r,{force:!0,author:e.author,message:h(e.transactionId,o,"compensate")},{pmRoot:e.pmRoot})}function ae(e,t,o){return{id:o,async inspect(){let n=await f(e.pmRoot,t.id);return n===void 0?{state:"pending"}:{state:"applied",result:{id:n.id,op:"create"}}},async apply(){let r=(await x(A(t.options,{author:e.author,id:t.id}),{pmRoot:e.pmRoot})).item;return{id:String(r.id),op:"create"}},async compensate(){let n=await f(e.pmRoot,t.id);if(n!==void 0){if(e.createCompensation==="delete"){await W(t.id,{force:!0,author:e.author,message:`Compensate interrupted bulk transaction ${e.transactionId}`},{pmRoot:e.pmRoot});return}n.closedAt===void 0&&await b(t.id,`Compensated: interrupted bulk transaction ${e.transactionId}`,{force:!0,author:e.author},{pmRoot:e.pmRoot})}}}}function ve(e,t,o){return{id:o,async inspect(){let n=await f(e.pmRoot,t.id);return n===void 0?{state:"pending"}:await T(e.pmRoot,n.id,e.transactionId,o)?{state:"applied",result:{id:n.id,op:"update"}}:{state:"pending"}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let r=(await F(t.id,A(t.options,{author:e.author,message:h(e.transactionId,o,"apply")}),{pmRoot:e.pmRoot})).item;return{id:String(r.id),op:"update"}},async compensate(n){await S(e,t.id,o,n)}}}function Ie(e,t,o){return{id:o,async inspect(){let n=await f(e.pmRoot,t.id);return n===void 0?{state:"pending"}:await T(e.pmRoot,n.id,e.transactionId,o)?{state:"applied",result:{id:n.id,op:"close"}}:n.closedAt===void 0?{state:"pending"}:{state:"applied",result:{id:n.id,op:"close"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let r=(await b(t.id,t.reason,A(t.options,{author:e.author,message:h(e.transactionId,o,"apply")}),{pmRoot:e.pmRoot})).item;return{id:String(r.id),op:"close"}},async compensate(n){await S(e,t.id,o,n)}}}function Me(e,t,o){return{id:o,async inspect(){let n=await f(e.pmRoot,t.id);return n===void 0?{state:"pending"}:await T(e.pmRoot,n.id,e.transactionId,o)?{state:"applied",result:{id:n.id,op:"release"}}:n.assignee!==void 0||n.claimPrincipal!==void 0?{state:"pending"}:{state:"applied",result:{id:n.id,op:"release"}}},async prepareCompensation(){return M(e.pmRoot,t)},async apply(){let r=(await J(t.id,A(t.options,{author:e.author,message:h(e.transactionId,o,"apply")}),{pmRoot:e.pmRoot})).item;return{id:String(r.id),op:"release"}},async compensate(n){await S(e,t.id,o,n)}}}function Oe(e,t,o){let n=I(t,o);switch(t.op){case"create":return ae(e,t,n);case"update":return ve(e,t,n);case"close":return Ie(e,t,n);case"release":return Me(e,t,n)}}function ke(e,t){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`Bulk mutation ${t+1} must be an object`);if(!["create","update","close","release"].includes(e.op))throw new TypeError(`Bulk mutation ${t+1} op must be create, update, close, or release`);if(typeof e.id!="string"||e.id.trim().length===0)throw new TypeError(`Bulk mutation ${t+1} requires a non-empty id`);if(e.op==="close"&&(typeof e.reason!="string"||e.reason.trim().length===0))throw new TypeError(`Bulk close mutation ${t+1} requires a non-empty reason`)}async function $e(e){let t=[...e.mutations];if(t.length===0)throw new TypeError("Bulk item transaction requires at least one mutation");for(let[s,a]of t.entries())ke(a,s);let o=e.createCompensation??"close";if(!["close","delete"].includes(o))throw new TypeError("Bulk item transaction createCompensation must be close or delete");let n={pmRoot:e.pmRoot,author:e.author,transactionId:e.transactionId,createCompensation:o},r=await D({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,steps:t.map((s,a)=>Oe(n,s,a)),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}}),i={};for(let[s,a]of t.entries()){let u=I(a,s),l=r.results[u];i[Re(a,s)]=l}return{transactionId:r.transactionId,status:"committed",recovered:r.recovered,results:i}}function Ne(e){let t=[];return e.evidence!==void 0&&Object.keys(e.evidence).length>0&&t.push({op:"update",id:e.id,options:e.evidence}),t.push({op:"close",id:e.id,reason:e.reason,...e.closeOptions===void 0?{}:{options:e.closeOptions}},{op:"release",id:e.id,...e.releaseOptions===void 0?{}:{options:e.releaseOptions}}),t}function Gt(e){return $e({pmRoot:e.pmRoot,transactionId:e.transactionId,author:e.author,mutations:Ne(e),...e.lockTtlSeconds===void 0?{}:{lockTtlSeconds:e.lockTtlSeconds},...e.lockWaitMs===void 0?{}:{lockWaitMs:e.lockWaitMs},...e.onTransition===void 0?{}:{onTransition:e.onTransition}})}var Pt={buildCreateStep:ae,bulkHistoryMarker:h,compensateByRestore:S,deriveStepId:I,isUpdateMarkerApplied:T,readItemSnapshot:f};export{St as a,ie as b,bt as c,Rt as d,vt as e,$e as f,Ne as g,Gt as h,Pt as i};
|
|
2
|
+
//# sourceMappingURL=chunk-TV3YDE36.js.map
|