@unbrained/pm-cli 2026.8.17 → 2026.8.19
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/AGENTS.md +4 -3
- package/CHANGELOG.md +51 -5
- package/README.md +3 -3
- package/dist/cli/error-guidance.js +8 -4
- package/dist/cli/help-content.js +32 -13
- package/dist/cli/help-json-payload.d.ts +15 -0
- package/dist/cli/help-json-payload.js +101 -23
- package/dist/cli/main.js +6 -2
- package/dist/cli/register-list-query.js +138 -54
- package/dist/cli/register-mutation.js +8 -8
- package/dist/cli/register-operations.js +6 -6
- package/dist/cli-bundle/bundle-manifest.json +149 -149
- package/dist/cli-bundle/chunks/chunk-4NRRH7AM.js +2 -0
- package/dist/cli-bundle/chunks/chunk-4THEB6PD.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-HBJAS566.js → chunk-BHYMXLAE.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-GWMXAQOD.js +197 -0
- package/dist/cli-bundle/chunks/chunk-HVFQTLYM.js +35 -0
- package/dist/cli-bundle/chunks/chunk-OI4XI562.js +5 -0
- package/dist/cli-bundle/chunks/{chunk-3UEGXBMR.js → chunk-OIOKV6NO.js} +58 -54
- package/dist/cli-bundle/chunks/chunk-QXSH7BLM.js +3 -0
- package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-7IBRGCHX.js → chunk-TOXJM4WA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JOKATURE.js → chunk-YBMRWW4E.js} +44 -44
- package/dist/cli-bundle/chunks/register-list-query-Y56KINDU.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-AUWVCW4M.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-PZQPHXW5.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-DOSFBGKE.js → register-setup-I4LUHGVW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-34QBIYZI.js +155 -0
- package/dist/cli-bundle/focused-chunks/{chunk-MHPIL773.js → chunk-BJRYFVSH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-DKPLYW3L.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-SALH6B6K.js → chunk-EF6ZS5GH.js} +44 -44
- package/dist/cli-bundle/focused-chunks/{chunk-XKAMP5OU.js → chunk-ESISGDAY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SYZENPIT.js → chunk-EXBCLIBU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-JDOMQ7VQ.js +4 -0
- package/dist/cli-bundle/focused-chunks/chunk-L623ZPNK.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MCZXYZAF.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-ODHQEECS.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ZQPGZZWQ.js → chunk-PRHY2IMX.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-RZU5U6Q7.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ATEY76SX.js → chunk-US7VEYZG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-VXDSU5MC.js +26 -0
- package/dist/cli-bundle/focused-chunks/chunk-YBMGXBFV.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-YLVBJ6GF.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CYFK5UPB.js → chunk-ZBIQQYMI.js} +2 -2
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -1
- package/dist/cli-bundle/sdk-core.js +28 -28
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +5 -4
- package/dist/core/config/nested-settings.js +8 -2
- package/dist/core/extensions/exporter-output-contract.d.ts +12 -0
- package/dist/core/extensions/exporter-output-contract.js +67 -0
- package/dist/core/extensions/extension-types.d.ts +36 -1
- package/dist/core/extensions/extension-types.js +2 -2
- package/dist/core/extensions/loader.js +35 -44
- package/dist/core/history/event-index.d.ts +5 -0
- package/dist/core/history/event-index.js +133 -27
- package/dist/core/sentry/helpers.js +3 -3
- package/dist/core/shared/constants.js +5 -2
- package/dist/core/shared/errors.d.ts +2 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/store/settings-validator.d.ts +4 -0
- package/dist/core/store/settings-validator.js +3 -2
- package/dist/core/store/settings.js +8 -2
- package/dist/mcp/tool-definitions.js +12 -7
- package/dist/sdk/agent/refusal-closure.d.ts +41 -0
- package/dist/sdk/agent/refusal-closure.js +92 -0
- package/dist/sdk/agent/refusal-reachability.d.ts +1 -1
- package/dist/sdk/agent/refusal-reachability.js +4 -4
- package/dist/sdk/agent-capability-contracts.d.ts +13 -0
- package/dist/sdk/agent-capability-contracts.js +104 -7
- package/dist/sdk/authoring.d.ts +1 -1
- package/dist/sdk/authoring.js +2 -2
- package/dist/sdk/cli-bootstrap.d.ts +2 -2
- package/dist/sdk/cli-bootstrap.js +4 -4
- package/dist/sdk/cli-contracts/command-aliases.d.ts +34 -2
- package/dist/sdk/cli-contracts/command-aliases.js +80 -13
- package/dist/sdk/cli-contracts/commander-mutation-options.js +30 -6
- package/dist/sdk/cli-contracts/commander-types.js +5 -4
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -0
- package/dist/sdk/cli-contracts/enum-contracts.js +9 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +5 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +84 -13
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +55 -0
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +240 -0
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +151 -0
- package/dist/sdk/cli-contracts/grammar-contracts.js +958 -0
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +33 -5
- package/dist/sdk/cli-contracts/runtime-contracts.js +100 -23
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +28 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +38 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +7 -2
- package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -2
- package/dist/sdk/cli-contracts/tool-schema.js +20 -11
- package/dist/sdk/cli-contracts.d.ts +5 -4
- package/dist/sdk/cli-contracts.js +7 -6
- package/dist/sdk/completion.js +13 -15
- package/dist/sdk/compose.d.ts +3 -3
- package/dist/sdk/compose.js +2 -2
- package/dist/sdk/context-intent-contracts.d.ts +2 -2
- package/dist/sdk/context-intent-contracts.js +22 -7
- package/dist/sdk/contracts.d.ts +3 -0
- package/dist/sdk/contracts.js +5 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/environment/host-environment-errors.js +3 -3
- package/dist/sdk/flag-invocation-contracts.d.ts +37 -0
- package/dist/sdk/flag-invocation-contracts.js +218 -9
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +186 -14
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +194 -26
- package/dist/sdk/guide-topics.js +5 -5
- package/dist/sdk/index.d.ts +10 -7
- package/dist/sdk/index.js +10 -7
- package/dist/sdk/init-agent-guidance.js +3 -3
- package/dist/sdk/mutation-events.d.ts +18 -2
- package/dist/sdk/mutation-events.js +59 -16
- package/dist/sdk/output-projection.d.ts +2 -0
- package/dist/sdk/output-projection.js +11 -5
- package/dist/sdk/output.d.ts +44 -0
- package/dist/sdk/output.js +28 -2
- package/dist/sdk/query/complete-list.d.ts +94 -0
- package/dist/sdk/query/complete-list.js +173 -0
- package/dist/sdk/query/get.js +25 -6
- package/dist/sdk/query/list.js +19 -2
- package/dist/sdk/query/search-contracts.d.ts +1 -1
- package/dist/sdk/query/search-contracts.js +23 -9
- package/dist/sdk/query/search.js +3 -3
- package/dist/sdk/query.d.ts +1 -0
- package/dist/sdk/query.js +3 -2
- package/dist/sdk/read-output/continuation.d.ts +1 -1
- package/dist/sdk/read-output/continuation.js +7 -24
- package/dist/sdk/read-output-contracts.d.ts +2 -2
- package/dist/sdk/read-output-contracts.js +89 -13
- package/dist/sdk/read-output-rows.d.ts +4 -0
- package/dist/sdk/read-output-rows.js +47 -18
- package/dist/sdk/runtime-extended-actions.js +10 -2
- package/dist/sdk/runtime.d.ts +8 -2
- package/dist/sdk/runtime.js +18 -11
- package/dist/sdk/workspace-snapshot.d.ts +2 -0
- package/dist/sdk/workspace-snapshot.js +10 -2
- package/dist/types.d.ts +5 -0
- package/dist/types.js +2 -2
- package/docs/AGENT_GUIDE.md +25 -9
- package/docs/CLI_GRAMMAR.md +106 -0
- package/docs/COMMANDS.md +39 -27
- package/docs/ONBOARDING.md +4 -4
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +11 -2
- package/docs/QUICKSTART.md +1 -1
- package/docs/README.md +2 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +10 -6
- package/docs/RELEASING.md +30 -6
- package/docs/SDK.md +42 -2
- package/docs/SDK_ARTIFACT_OUTPUT.md +72 -0
- package/docs/SDK_CONTEXT_COORDINATION.md +46 -12
- package/docs/TESTING.md +14 -1
- package/docs/agent-task-token-baseline.json +5 -5
- package/docs/generated/AGENT_COMMAND_SURFACE.md +78 -78
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +76 -0
- package/marketplace.json +2 -2
- package/package.json +5 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/generate-agent-capability-surfaces.mjs +20 -14
- package/sdk/public-surface.json +1245 -60
- package/dist/cli-bundle/chunks/chunk-2QLOXC3V.js +0 -3
- package/dist/cli-bundle/chunks/chunk-4JPYF536.js +0 -35
- package/dist/cli-bundle/chunks/chunk-6VDLG2FC.js +0 -13
- package/dist/cli-bundle/chunks/chunk-ION3E43Q.js +0 -197
- package/dist/cli-bundle/chunks/chunk-OAC5NIV4.js +0 -3
- package/dist/cli-bundle/chunks/chunk-TPXZIBIV.js +0 -5
- package/dist/cli-bundle/chunks/chunk-YM2YAMF7.js +0 -2
- package/dist/cli-bundle/chunks/register-list-query-Q7KII4G5.js +0 -10
- package/dist/cli-bundle/chunks/register-mutation-4WBRPXLV.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-SSENDH5B.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-267MUUS6.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-2NNFLLNG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2QSAKMIH.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BUCG4ZI2.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-EHXIKD6K.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KGEXTMPG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KP2VQQVQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-POEEAD2V.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-XPIC53VA.js +0 -26
- package/dist/cli-bundle/focused-chunks/chunk-ZT2DJS27.js +0 -155
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{$a as Ae,Ha as K,Ia as zt,Ja as $t,Jb as tn,Ka as Kt,La as Bt,Ma as Vt,Nb as nn,Pa as Qt,Qa as Yt,Sa as Xt,Ta as Jt,Za as Zt,_a as ke,ab as oe,k as Pt,l as Ot,q as jt,u as Nt,vb as en,w as Ht,y as Ut,ya as Wt,z as Gt}from"./chunk-4THEB6PD.js";import{$a as X,$h as ie,Bh as I,C as m,Dh as xt,Dl as Dt,E as p,F as W,G as he,I as Y,Ic as we,Ig as vt,J as tt,Ki as U,Na as j,Ph as kt,Q as P,Qc as ot,Qh as ne,Rh as re,Sh as At,T as nt,Th as Ft,U as rt,Uc as st,V as ge,Va as x,Vc as at,Wh as Mt,Wi as qt,Xa as it,Xd as lt,Ya as T,Yd as $,Za as _e,_h as Rt,ai as Ct,bi as ve,c as F,cd as N,ch as ee,ci as Ee,da as ye,de as J,di as Se,ed as H,ei as Tt,fe as ut,gh as te,ii as It,ji as xe,kg as gt,le as ft,pd as ct,qe as mt,rd as z,re as pt,rg as be,sg as yt,sh as Et,si as Lt,tg as _t,th as St,v as Ze,vd as dt,wg as Z,x as et,xc as M,xe as ht,xg as wt,yg as bt}from"./chunk-GWMXAQOD.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]="ab1153b1-2d91-58a5-9b4a-1d9c5f35a54a")}catch{}})();var Cr=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Tr=["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 Ir(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function Uo(e,t,n={}){let r=n.includePagination!==!1;return[t,...Cr.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(Ir)||Tr.some(o=>e?.[o]===!0)}function rn(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]="56486369-9164-58d3-ac34-46d57859f96d")}catch{}})();var on=["parent","type","priority","status","assignee","tags","sprint","release"];function an(e,t){let n=ee(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function cn(e,t=["estimate","estimated_minutes","priority"]){let n=e.sum?.trim(),r=e.avg?.trim(),i=n&&n.length>0?n:void 0,o=r&&r.length>0?r:void 0;if(!i&&!o)return null;if(i&&o&&i!==o)throw new p("Aggregate --sum and --avg must target the same numeric field",m.USAGE);let s=i??o;if(!t.includes(s))throw new p(`Aggregate numeric field "${s}" is not registered. Allowed: ${t.join(", ")}`,m.USAGE);return{field:s,sum:i!==void 0,avg:o!==void 0}}function dn(e){let t=e?.trim()??"status";if(t.length===0)throw new p("--group-by requires at least one field name",m.USAGE);let n=qt(t);if(n.length===0)throw new p("--group-by requires a comma-separated list of fields",m.USAGE);for(let r of n)if(!on.includes(r))throw new p(`Aggregate group fields must be one of ${on.join("|")}; received "${r}"`,m.USAGE);return n}function ln(e){let t=[...new Set(e.map(n=>n.trim().toLowerCase()).filter(n=>n.length>0))].sort((n,r)=>n.localeCompare(r));return t.length===0?null:t.join(",")}function un(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 ln(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function fn(e,t){let n=e??null,r=t??null;return n===r?0:n===null?1:r===null?-1:typeof n=="number"&&typeof r=="number"?n-r:String(n).localeCompare(String(r))}function mn(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var Lr={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function sn(e,t){return t==null||t===""?Lr[e]:String(t)}function qr(e,t){return e.length===1?sn(e[0],t[e[0]]):e.map(n=>`${n}=${sn(n,t[n])}`).join(" | ")}function pn(e,t,n){for(let r of n){let i=fn(e.group[r],t.group[r]);if(i!==0)return i}return 0}function hn(e,t){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){let i=r.trim();if(i.length===0)return null;let o=Number(i);if(Number.isFinite(o))return o}return null}function gn(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Fe(e,t,n){let r=ct(String(t),n)??t;if(r===n.open_status){e.open_count+=1;return}if(r==="in_progress"||n.active_statuses.has(r)&&r!==n.open_status){e.in_progress_count+=1;return}if(n.terminal_done_statuses.has(r)||r===n.close_status){e.closed_count+=1;return}e.other_count+=1}function Dr(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 Pr(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Or(e){e.accumulator.row.count+=1,e.includeCompletion&&Fe(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Pr(e.accumulator,e.numericValue)}function jr(e,t){let n={};for(let r of e)n[r]=un(r,t);return n}function Nr(e,t,n,r){let i={...e.row,group_label:qr(t,e.row.group)};return n&&(i.open=e.open_count,i.in_progress=e.in_progress_count,i.closed=e.closed_count,i.other=e.other_count,i.completion_pct=gn(e.closed_count,e.row.count)),r!==null&&(i.null_count=e.null_count,r.sum&&(i.sum=e.numeric_sum),r.avg&&(i.avg=e.numeric_count===0?null:e.numeric_sum/e.numeric_count)),i}function Hr(e){return{group_by:e.groupBy,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 Ko(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=x(process.cwd(),t.path),r=await I(n),i=N(r.schema),o=["estimate","estimated_minutes","priority",...H(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=dn(e.groupBy),a=an(e.status,i),d=cn(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,u=e.includeUnparented===!0,l=await oe(void 0,{...rn(e),status:e.status},t),f=new Map,h=0,g=0;for(let _ of l.items){let w=_,D=jr(s,w);if(s.includes("parent")&&D.parent===null&&!u){h+=1;continue}let C=mn(s,D),S=f.get(C),v=d===null?null:hn(w,d.field);if(S)Or({accumulator:S,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:v});else{let E=Dr(D,v);c&&Fe(E,w.status,i),f.set(C,E)}g+=1}let y=[...f.values()].map(_=>Nr(_,s,c,d)).sort((_,w)=>pn(_,w,s)),b=l.warnings&&l.warnings.length>0?l.warnings:void 0;return{groups:y,count:y.length,totals:{items_considered:l.items.length,items_grouped:g,items_skipped_unparented:h},filters:Hr({groupBy:s,includeCompletion:c,includeUnparented:u,status:a,options:e,numericAggregation:d}),now:P(),...b?{warnings:b}:{}}}var Bo={buildGroupKey:mn,compareAggregateRows:pn,compareNullableGroupValue:fn,completionPct:gn,normalizeTagGroupValue:ln,parseGroupBy:dn,parseNumericAggregation:cn,parseStatus:an,readNumericAggregateValue:hn,resolveGroupValue:un,updateCompletionCounts:Fe};(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]="f18d7526-01eb-593b-bf50-788c08a35e5d")}catch{}})();function Ur(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function Gr(e,t){return e.map((n,r)=>{let i=new Set,o=gt(n.patch);for(let s of o)i.add(be(s.path)),s.from&&i.add(be(s.from));return{index:t+r+1,ts:n.ts,op:n.op,author:n.author,patch_ops:o.length,changed_fields:[...i].sort((s,a)=>s.localeCompare(a))}})}async function Wr(e,t){let n=x(process.cwd(),t.path);if(!await F(T(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await I(n),i=j(r,M()),o=e.trim()===Z,s=o?Z:vt(e,r.id_prefix),a=await ne(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?wt(n):X(n,d);if(!a&&!await F(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await _t({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function ts(e,t,n){let r=te(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Wr(e,n),d=await $(i,s),c=a.agent_identity.identity_vocabulary,u=Nt(a.agent_identity.harness_signals),l=Ut({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,u),f=d.map((v,E)=>({entry:v,version:E+1})).filter(({entry:v})=>l(v)),h=Ur(f,r),g=h.map(({entry:v})=>v),y=t.compact===!0,b=y?Gr(g,Math.max(0,d.length-g.length)):void 0,_=t.provenance===!0?h.map(({entry:v,version:E})=>Ht(v,c,{itemId:s,version:E})):void 0,w=t.provenance===!0?"provenance":y?"compact":"full",D={compact:{compact_history:b},provenance:{provenance_history:_},full:{history:g}}[w],S={id:s,...D,compact:y,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:ft("history",w),count:g.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:Gt(f.map(({entry:v})=>v),c,u)}:{}};if((t.diff||t.field!==void 0)&&(S.diff=yt(d,{windowStartIndex:Math.max(0,d.length-g.length),field:t.field})),t.verify){let v=o?(await re(o,{schema:a.schema})).document:void 0;if(S.verification=Pt(d,v),s===Z&&S.verification.ok){let E=await bt(x(process.cwd(),n.path));S.verification={...S.verification,ok:E.ok,errors:E.ok?S.verification.errors:[...S.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:E.ok,workspace_state_mismatches:E.mismatched_documents,workspace_state_missing:E.missing_documents,workspace_state_unreadable:E.unreadable_documents}}}return S}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var yn=1e6,_n=20;function wn(e,t,n,r=_n){if(!Number.isSafeInteger(r)||r<0)throw new p("Child projection sample limit must be a non-negative integer.",m.USAGE);let i=e.trim().toLowerCase(),o={},s=[],a=0,d=0;for(let f of t){if(d+=1,d>yn)throw new p(`Child projection exceeded the ${yn.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."]});if(f.parent?.trim().toLowerCase()!==i)continue;s.push(f);let h=f.status.trim().toLowerCase();o[h]=(o[h]??0)+1,z(h,n)||(a+=1)}s.sort((f,h)=>f.id.localeCompare(h.id));let c=s.slice(0,r).map(f=>({id:f.id,title:f.title,type:f.type,status:f.status,priority:f.priority})),u=s.length>c.length,l=r===0?_n:r;return{count:s.length,active:a,by_status:Object.fromEntries(Object.entries(o).sort(([f],[h])=>f.localeCompare(h))),sample:c,sample_limit:r,truncated:u,next_offset:u?c.length:null,continuation:u?`pm list --status all --parent ${e} --offset ${c.length} --limit ${l}`:null,scanned:d}}(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]="80981c24-3442-57a2-8c35-e0e00d5425d6")}catch{}})();var zr=new Set(["event","meeting","reminder"]);function $r(e){return zr.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function Me(e){if(!$r(e))return;let t=[...e.events??[]].sort((r,i)=>r.start_at.localeCompare(i.start_at)),n=t[0];return{deadline:e.deadline??null,start_at:n?.start_at??null,end_at:n?.end_at??null,location:n?.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]="1ba3eb17-c44c-5b62-8ae0-c2506fca9c62")}catch{}})();var Br=["brief","standard","deep"],Vr=new Set(["epic","feature","milestone","plan"]),Qr=new Set(Object.keys(Ze).map(e=>e.toLowerCase()));function Ce(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function Yr(e,t){let n=Ce(e);return[...t.length>0?["body"]:[],...Object.entries(n).flatMap(([r,i])=>i>0?[r]:[]),...n.files+n.tests+n.docs>0?["linked"]:[],"children",...typeof e.assignee=="string"&&e.assignee.trim().length>0?["claim_state"]:[],...Me(e)?["schedule"]:[]]}function vn(e){let t=e.trim().toLowerCase();return t.length>0&&(Vr.has(t)||!Qr.has(t))}function bn(e){return{ts:e.ts,author:e.author,message:e.message??null}}function Xr(e,t){let n=e?.trim(),r=n&&n.length>0?n:null,i=[...t].reverse().find(s=>s.op==="claim"),o=[...t].reverse().find(s=>s.op==="release");return{claimed:r!==null,assignee:r,last_claim:i?bn(i):null,last_release:o?bn(o):null}}function Jr(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Br.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Zr(e,t){let n=Ce(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:n.notes,tests_count:n.tests,collection_counts:n};let{comments:r,notes:i,learnings:o,files:s,tests:a,docs:d,reminders:c,events:u,...l}=e;return{...l,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function ei(e){if(e===void 0)return null;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Get --fields requires a comma-separated list of field names",m.USAGE);return t}function ae(e){return e.startsWith("item.")?e.slice(5):e}function ti(e,t,n){if(e===null)return;let r=new Set([...et,...t,"notes_count","tests_count","collection_counts"]),i=new Set(["body","linked","claim_state","children","schedule"]),o=new Set(["linked.files","linked.tests","linked.docs"]),s=new Set(["claim_state.claimed","claim_state.assignee","claim_state.last_claim","claim_state.last_release"]),a=new Set(["schedule.deadline","schedule.start_at","schedule.end_at","schedule.location","schedule.reminders","schedule.events"]),d=[...[...r].flatMap(u=>[u,`item.${u}`]),...i,...o,...s,...a].sort(),c=e.filter(u=>{let l=ae(u);return!r.has(l)&&!i.has(l)&&!o.has(l)&&!s.has(l)&&!a.has(l)});if(c.length>0){let u=["get",n,"--fields","id,title,status"];throw new p(`Unknown get --fields value(s): ${c.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:d,suggested_retry:J(u),suggested_retry_args:u}})}}var ni=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function ri(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:ni.has(n)?[]:void 0}function ii(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:Ce(e)},i={id:e.id};for(let o of t){let s=ae(o);s==="body"||s==="linked"||s.startsWith("linked.")||s==="claim_state"||s.startsWith("claim_state.")||s==="children"||s.startsWith("children.")||s==="schedule"||s.startsWith("schedule.")||(i[s]=ri(n,r,s))}return i}function B(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function se(e,t){return e.some(n=>{let r=ae(n);return r===t||r.startsWith(`${t}.`)})}function oi(e){if(e.full&&(e.fields!==void 0||e.depth!==void 0))throw new p("Get projection options are mutually exclusive; remove the extra projection flag and retry.",m.USAGE);if(e.tree!==!0&&e.treeDepth!==void 0)throw new p("Get --tree-depth requires --tree",m.USAGE);if(e.at!==void 0&&e.tree===!0)throw new p("Get --at cannot be combined with --tree because workspace-level historical projections are not yet indexed.",m.USAGE);return{depth:e.full?"deep":Jr(e.depth),treeDepth:e.tree===!0?jt(e.treeDepth,"--tree-depth"):void 0,fields:ei(e.fields),fieldProjection:e.fields!==void 0}}async function si(e,t,n){let r=x(process.cwd(),t.path);if(!await F(T(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await I(r),o=j(i,M());if(n!==void 0){let d=await Ot(e,n,{pmRoot:t.path});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:d.document.metadata.id,metadata:d.document.metadata,body:d.document.body,historical:d}}let s=await ne(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await Mt(r,e,i.id_prefix,o.type_to_folder);let a=await re(s,{schema:i.schema});return{pmRoot:r,settings:i,typeToFolder:o.type_to_folder,locatedId:s.id,metadata:a.document.metadata,body:a.document.body}}function ai(e,t,n,r){let i=H(t.schema).definitions.map(o=>o.metadata_key);if(ti(e,i,r),n&&se(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function Re(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?B(r,i):se(r,i):n!=="brief"}async function ci(e,t){if(!t)return;let n=X(e.pmRoot,e.locatedId),r=await $(n,e.locatedId);return Xr(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function di(e,t,n,r){let i=r||B(n,"linked.files"),o=r||B(n,"linked.tests"),s=r||B(n,"linked.docs");!r&&!i&&!o&&!s||(e.linked={files:i?t.metadata.files??[]:[],tests:o?t.metadata.tests??[]:[],docs:s?t.metadata.docs??[]:[]})}async function li(e,t,n,r){if(!t)return;let i=N(e.settings.schema),o=await Ft(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=wn(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function ui(e,t,n,r){if(!r)return;let i=Me(t.metadata);if(i){if(n===null||B(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>ae(s)===`schedule.${o}`)))}}async function fi(e,t,n,r){if(t.tree!==!0)return;let i=await oe(void 0,{parent:e.locatedId,tree:!0,treeDepth:n===void 0?void 0:String(n),full:!0},r);return{root_id:e.locatedId,root_title:e.metadata.title,depth_limit:n??null,count:i.count,items:i.items.map(o=>o)}}async function ws(e,t,n={}){let r=oi(n),i=await si(e,t,n.at);ai(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=Re({...r,field:"body"}),s=Re({...r,field:"linked"}),a=Re({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?se(r.fields,"children"):r.depth!=="brief"&&vn(i.metadata.type)),c=r.fieldProjection?se(r.fields,"schedule"):r.depth!=="brief",u=await ci(i,a),l={item:r.fieldProjection?ii(i.metadata,r.fields):Zr(i.metadata,r.depth)};o&&(l.item.body=i.body),di(l,i,r.fields,s),u&&(l.claim_state=u),ui(l,i,r.fields,c);let f=await li(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(l.children=f);let h=await fi(i,n,r.treeDepth,t);if(h!==void 0&&(l.tree=h),i.historical&&(l.reconstructed=!0,l.as_of_version=i.historical.as_of_version,l.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await en({pmRoot:i.pmRoot,author:lt(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return ut(l,Yr(i.metadata,i.body)),l}var bs={shouldAutoIncludeGetChildren:vn};(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]="70e06a73-6602-5384-a25b-fd3df5f6438e")}catch{}})();var Sn=10,L="https://schema.unbrained.dev/pm/eval-query-set/v1",mi={schema:L,accepted_top_level:["array","object"],required_query_fields:["query","relevant_ids"],optional_fields:["mode","description"],modes:["keyword","semantic","hybrid"]},ce={schema:L,queries:[{query:"offline search",relevant_ids:["pm-75k9"],mode:"keyword"}]},k=class extends Error{constructor(t){super(t),this.name="EvalQuerySetError"}},pi=new Set(["keyword","semantic","hybrid"]);function En(e,t){let n=0,r=Math.min(t,e.length);for(let i=0;i<r;i+=1)n+=e[i]/Math.log2(i+2);return n}function hi(e,t,n){if(t.size===0)return 0;let r=e.map(a=>t.has(a)?1:0),i=En(r,n),o=Array.from({length:t.size},()=>1),s=En(o,n);return s===0?0:i/s}function gi(e,t,n){let r=Math.min(n,e.length);for(let i=0;i<r;i+=1)if(t.has(e[i]))return 1/(i+1);return 0}function Te(e,t,n){let r=Math.min(n,e.length),i=0;for(let o=0;o<r;o+=1)t.has(e[o])&&(i+=1);return i}function yi(e,t,n){return n<=0?0:Te(e,t,n)/n}function _i(e,t,n){return t.size===0?0:Te(e,t,n)/t.size}function xn(e,t,n){return{ndcg:hi(e,t,n),mrr:gi(e,t,n),precision:yi(e,t,n),recall:_i(e,t,n),relevant_total:t.size,retrieved_relevant:Te(e,t,n)}}function kn(e){let t=e.length;if(t===0)return{ndcg:0,mrr:0,precision:0,recall:0,query_count:0};let n=e.reduce((r,i)=>({ndcg:r.ndcg+i.ndcg,mrr:r.mrr+i.mrr,precision:r.precision+i.precision,recall:r.recall+i.recall}),{ndcg:0,mrr:0,precision:0,recall:0});return{ndcg:n.ndcg/t,mrr:n.mrr/t,precision:n.precision/t,recall:n.recall/t,query_count:t}}function wi(e,t){if(typeof e!="object"||e===null)throw new k(`Eval query at index ${t} must be an object`);let n=e,r=typeof n.query=="string"?n.query.trim():"";if(r.length===0)throw new k(`Eval query at index ${t} must have a non-empty "query" string`);if(!Array.isArray(n.relevant_ids))throw new k(`Eval query at index ${t} must have a "relevant_ids" array`);if(n.relevant_ids.some(o=>typeof o!="string"))throw new k(`Eval query at index ${t} must have a "relevant_ids" array of strings`);let i=[...new Set(n.relevant_ids.map(o=>o.trim()).filter(o=>o.length>0))];if(i.length===0)throw new k(`Eval query at index ${t} must list at least one relevant id`);if(n.mode!==void 0&&(typeof n.mode!="string"||!pi.has(n.mode)))throw new k(`Eval query at index ${t} has an invalid mode (expected keyword|semantic|hybrid)`);return{query:r,relevant_ids:i,...n.mode!==void 0?{mode:n.mode}:{},...typeof n.description=="string"&&n.description.trim().length>0?{description:n.description.trim()}:{}}}function Ie(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e.schema:void 0;if(t!==void 0&&t!==L)throw new k(`Unsupported eval query set schema; expected "${L}"`);let n=Array.isArray(e)?e:typeof e=="object"&&e!==null?e.queries:void 0;if(!Array.isArray(n))throw new k('Eval query set must be an array of queries or an object with a "queries" array');if(n.length===0)throw new k("Eval query set must contain at least one query");return{schema:L,queries:n.map((r,i)=>wi(r,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]="b0abcc02-bd6e-536a-b876-e13cfc8ea741")}catch{}})();function An(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(Boolean);return t.length===1&&t[0]==="all"}var bi=[{optionKey:"status",summaryKey:"status",normalize:e=>An(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 V(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,u={};return Zt(u,r,bi),Object.assign(u,Ae(r)),Object.assign(u,ke(r)),n!==void 0&&n!=="or"&&(u.match_mode=n),i&&(u.include_linked=!0),o&&(u.title_exact=!0),s&&(u.phrase_exact=!0),a>0&&(u.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(u.hybrid_semantic_weight=d),r.limit!==void 0&&(u.limit=r.limit),c&&Object.keys(c).length>0&&(u.runtime_filters=c),u}function Q(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:u,runtimeFieldFilters:l}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||An(r.status)?"all":r.status,type:f(r.type),tag:f(r.tag),priority:f(r.priority),deadline_before:f(r.deadlineBefore),deadline_after:f(r.deadlineAfter),updated_after:f(r.updatedAfter),updated_before:f(r.updatedBefore),created_after:f(r.createdAfter),created_before:f(r.createdBefore),assignee:f(r.assignee),sprint:f(r.sprint),release:f(r.release),parent:f(r.parent),...Ae(r),...ke(r),include_linked:i,title_exact:o,phrase_exact:s,score_threshold:a,hybrid_semantic_weight:t==="hybrid"?d:null,query_expansion_enabled:c.enabled,query_expansion_provider:c.provider,rerank_enabled:u.enabled,rerank_model:u.model,rerank_top_k:u.top_k,limit:f(r.limit),runtime_filters: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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function vi(e){return pt("search",{query:e.query.trim(),mode:e.mode,options:mt(e.searchOptions,Dt)})}function Fn(e){let t=ht(e.sorted,{cursor:e.searchOptions.after,fingerprint:vi(e),limit:e.limit,readId:n=>n.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]="e737cdf9-734c-5010-864f-60e8052dd9c1")}catch{}})();var Ei=["id","title","status","type","priority","updated_at","score","matched_fields"],Si=new Set(["score","matched_fields","highlights"]),Mn=new Set(["id","title","description","type","status","priority","tags","created_at","updated_at","deadline","assignee","author","estimated_minutes","acceptance_criteria","dependencies","comments","notes","learnings","reminders","events","files","tests","docs","close_reason","parent","reviewer","risk","confidence","sprint","release","blocked_by","blocked_reason","reporter","severity","environment","repro_steps","resolution","expected_result","actual_result","affected_version","fixed_version","component","regression","customer_impact","definition_of_ready","order","rank","goal","objective","value","impact","outcome","why_now","plan"]);function Rn(e){if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(t!=="keyword"&&t!=="semantic"&&t!=="hybrid")throw new p("Search mode must be one of keyword|semantic|hybrid",m.USAGE);return t}function de(e){return e===!0}function Cn(e){return tt(e,0,1)??void 0}function Tn(e){if(e===void 0)return"or";let t=e.trim().toLowerCase();if(t!=="and"&&t!=="or"&&t!=="exact")throw new p("Search --match-mode must be one of and|or|exact",m.USAGE);return t}function In(e){if(e==null||e==="")return;let t=typeof e=="number"?e:Number(String(e).trim());if(!Number.isFinite(t)||t<0)throw new p("Search --min-score must be a finite number >= 0",m.USAGE);return t}function G(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return ge(n,new Date,t)}function R(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function Le(e,t){if(e!==void 0)return ge(e,new Date,t)}function xi(e){if(e===void 0)return;let t=e.split(",").map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new p("Search --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function qe(e){let t=e.compact===!0,n=e.full===!0,r=xi(e.fields);if(Number(t)+Number(n)+ +(r!==void 0)>1)throw new p("Search projection options are mutually exclusive. Use one of --compact, --full, or --fields.",m.USAGE);return t?{mode:"compact",fields:[...Ei]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function De(e,t,n="<query>"){if(e.mode!=="fields")return;let r=new Set(t.definitions.flatMap(s=>[s.key,s.metadata_key])),i=new Set([...Si,...Mn,...[...Mn].map(s=>`item.${s}`),...r,...[...r].map(s=>`item.${s}`)]),o=e.fields.filter(s=>{let a=s.trim();return!i.has(a)});if(o.length>0){let s=["search",n,"--fields","id,title,status,score"];throw new p(`Unknown search --fields value(s): ${o.join(", ")}`,m.USAGE,{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:[...i].sort(),suggested_retry:J(s),suggested_retry_args:s}})}}function Pe(e){let t=R(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function Oe(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function je(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function Ne(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function He(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},n=e.search?.tuning;if(!n)return t;let r=(i,o)=>typeof i=="number"&&Number.isFinite(i)&&i>=0?i:o;return{title_exact_bonus:r(n.title_exact_bonus,t.title_exact_bonus),title_weight:r(n.title_weight,t.title_weight),description_weight:r(n.description_weight,t.description_weight),tags_weight:r(n.tags_weight,t.tags_weight),status_weight:r(n.status_weight,t.status_weight),body_weight:r(n.body_weight,t.body_weight),comments_weight:r(n.comments_weight,t.comments_weight),notes_weight:r(n.notes_weight,t.notes_weight),learnings_weight:r(n.learnings_weight,t.learnings_weight),reminders_weight:r(n.reminders_weight,t.reminders_weight),events_weight:r(n.events_weight,t.events_weight),dependencies_weight:r(n.dependencies_weight,t.dependencies_weight),linked_content_weight:r(n.linked_content_weight,t.linked_content_weight)}}import ue from"node:fs/promises";import Ke 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]="42fde1a1-ee4b-5564-93b2-78d5a0fc7555")}catch{}})();var Ue=4,ki=20,Ai=200,Fi=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function Ge(e,t){let n=[],r=new Set;for(let i of e){let o=i.trim().replaceAll(/\s+/g," ");if(o.length===0)continue;let s=o.toLowerCase();if(!r.has(s)&&(r.add(s),n.push(o),n.length>=t))break}return n}function Mi(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 Ri(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 Ln(e,t=Ue){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=U(n);if(r.length===0)return[n];let i=r.filter(a=>!Fi.has(a.toLowerCase())),o=r.map(a=>Mi(a)),s=i.map(a=>Ri(a));return Ge([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function qn(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?Ge(t.filter(n=>typeof n=="string"),Ue):[]}function Dn(e,t,n){return Ge([...e,...t],Math.max(1,n))}function Pn(e,t){let r=e.search?.query_expansion,i=W(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:Ue}}function On(e,t){let r=e.search?.rerank,i=W(r?.model),s=Y(r?.top_k)??ki;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(Ai,s)}}function jn(e){let t=Array.isArray(e)?e:e?.hits;if(!Array.isArray(t))return[];let n=new Map;for(let i of t){if(typeof i!="object"||i===null)continue;let o=W(i.id),s=i.score;if(!o||typeof s!="number"||!Number.isFinite(s))continue;let a=n.get(o);(a===void 0||s>a)&&n.set(o,s)}let r=[...n.entries()].map(([i,o])=>({id:i,score:o}));return r.sort((i,o)=>i.score!==o.score?o.score-i.score:i.id.localeCompare(o.id)),r}function Ci(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function Nn(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function Ti(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=Ci(e,t),i=Nn(t),o=n*i;return!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(i)||!Number.isFinite(o)||o===0?0:Math.max(-1,Math.min(1,r/o))}async function Hn(e,t,n,r,i){if(r.length===0)return new Map;let o=W(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await ie(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let u=Nn(c),l=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],g=d[f+1];if(!g)continue;let y=Ti(c,g,u);l.set(h.id,Math.max(0,Math.min(1,(y+1)/2)))}return 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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var Ii=1.2,Li=.75;function We(e){return U(e)}function qi(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function Gn(e){let t=[],n=new Map,r=0;for(let o of e){let s=We(o.text),a=qi(s);r+=s.length;for(let d of a.keys())n.set(d,(n.get(d)??0)+1);t.push({id:o.id,termFrequencies:a,length:s.length})}let i=t.length;return{documents:t,documentFrequency:n,documentCount:i,averageDocumentLength:i>0?r/i:0}}function Di(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function Wn(e,t,n){let r=new Map;if(e.documentCount===0||e.averageDocumentLength===0)return r;let i=[...new Set(t.filter(s=>s.length>0))];if(i.length===0)return r;let o=new Map;for(let s of i){let a=e.documentFrequency.get(s);a!==void 0&&o.set(s,Di(e.documentCount,a))}if(o.size===0)return r;for(let s of e.documents){let a=0;for(let[d,c]of o){let u=s.termFrequencies.get(d);if(u===void 0)continue;let l=1-n.b+n.b*s.length/e.averageDocumentLength,f=u+n.k1*l;a+=c*(u*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function Un(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function zn(e){let t=n=>typeof n=="string"?[n]:typeof n=="number"?[String(n)]:Array.isArray(n)?n.flatMap(t):typeof n=="object"&&n!==null?Object.values(n).flatMap(t):[];return t(Object.values(e)).join(" ")}function $n(e){let t=e?.search?.bm25;return{k1:Un(t?.k1,Ii,0,1e3),b:Un(t?.b,Li,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]="0582c462-43fc-563c-b209-d6e3c39948f4")}catch{}})();var Pi=2,Oi=120,ji=6,Ni=40,Hi=1e3,Ui=900,Gi="\xAB",Wi="\xBB",Kn=60,Qn=["tag","status","type","priority"];function Yn(e){let t=[],n=e;for(let r=0;r<5&&n&&typeof n=="object";r+=1){let i=n.code;typeof i=="string"&&t.push(i.toLowerCase()),n=n.cause}return t.join(" ")}function Xn(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=Yn(e),r=`${t} ${n}`;return r.includes("timed out")||r.includes("timeout")||r.includes("etimedout")?"timeout":r.includes("econnrefused")||r.includes("connection refused")||r.includes("connect ")||r.includes("enotfound")||r.includes("eai_again")||r.includes("econnreset")||r.includes("fetch failed")?"connection":"error"}function Jn(e,t){let n=Xn(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function Zn(e,t,n){try{let r=await Lt(e);r.warnings.length>0&&n.push(...r.warnings);let i=Wt(t.map(o=>({id:o.metadata.id,updated_at:o.metadata.updated_at})),r.entries);if(i.length===0)return;n.push(`vector_index_stale:${i.length}`),process.stderr.write(`[pm] warning: ${i.length} item${i.length===1?" is":"s are"} new or modified since the last reindex and ${i.length===1?"is":"are"} NOT in the semantic index yet \u2014 they will be missing from semantic/hybrid results until you run 'pm reindex --mode hybrid'. (Write-time embedding is governed by search.mutation_refresh_policy; staleness means the embed was skipped, failed, or the backend was unreachable.)
|
|
2
|
+
`)}catch{}}var Aa={applyFilters:or,applyExactQueryFilters:ir,applyInlineQueryFilters:tr,buildHitHighlights:fr,buildVerboseSearchFilters:Q,buildExplicitSemanticFallbackWarning:Jn,buildCompactSearchFilterSummary:V,buildHybridLexicalScore:hr,buildRerankCorpus:xr,buildSemanticHits:br,classifyImplicitSemanticFallbackReason:Xn,collectErrorCauseCodes:Yn,collectExactPhraseFields:nr,collectLinkedPaths:sr,combineHybridHits:Ye,computeBuiltInBm25Hits:Er,computeSemanticOrHybridHits:kr,resolveBuiltInBm25Mode:vr,countOccurrences:Ve,dependencyEntries:Be,documentContainsExactPhrase:rr,emptySearchResult:gr,highlightFieldSnippet:ur,loadDocuments:Ar,markTokenRuns:lr,parseInlineQueryFilters:er,maybeEmitVectorIndexStaleWarning:Zn,loadLinkedCorpus:cr,mergeVectorHitsById:Sr,normalizeExtensionProviderHits:wr,normalizeScoreMap:ze,parseProjectionConfig:qe,parseTimestampWindow:G,parseTokens:Pe,projectSearchHits:Mr,readSearchFieldValue:Fr,requireSemanticDependencies:Qe,resolveExtensionSearchProvider:yr,resolveExtensionSearchProviderByName:pe,resolveExtensionVectorAdapter:_r,resolveLinkedCorpusRoots:ar,scoreDocument:mr,sortHits:pr,stringArray:me,textEntries:O,validateSearchProjectionFields:De};function er(e){let t={},n=[];for(let r of e.split(/\s+/).filter(i=>i.length>0)){let i=r.indexOf(":"),o=i>0?r.slice(0,i).toLowerCase():"",s=i>0?r.slice(i+1):"",a=Qn.includes(o)?o:void 0;if(a&&s.length>0&&t[a]===void 0){t[a]=s;continue}n.push(r)}return{residualQuery:n.join(" "),inlineFilters:t}}function tr(e,t,n){let r={...e};for(let i of Qn){let o=t[i];if(o!==void 0){if(he(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function me(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function O(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function Be(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function nr(e){let t=e.metadata;return[t.title,t.description,t.status,me(t.tags).join(" "),e.body,O(t.comments).map(n=>n.text).join(" "),O(t.notes).map(n=>n.text).join(" "),O(t.learnings).map(n=>n.text).join(" "),ve(t).join(" "),Ee(t).join(" "),Be(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),Se(t)]}function rr(e,t){return nr(e).some(n=>R(n).includes(t))}function ir(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&R(r.metadata.title)!==t||n.phraseExact&&!rr(r,t)))}function zi(e){if(e&&[...e].some(t=>t.toLowerCase()==="none"||t.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null".',m.USAGE)}function $i(e,t,n){let r=K(e.assignee,{label:"--assignee"});zi(r);let i=Xt(e),o=Jt(e);return{typeFilter:zt(e.type,t),tagFilter:K(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:$t(e.priority),deadlineBefore:Le(e.deadlineBefore,"deadline-before"),deadlineAfter:Le(e.deadlineAfter,"deadline-after"),updatedAfter:G(e.updatedAfter,"updated-after"),updatedBefore:G(e.updatedBefore,"updated-before"),createdAfter:G(e.createdAfter,"created-after"),createdBefore:G(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:K(e.sprint,{label:"--sprint"}),releaseFilter:K(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Bt(i),contentFieldFilters:o,contentFiltersActive:Qt(o)}}function Ki(e,t){return Bi(e,t)&&Vi(e,t)&&Qi(e,t)}function Bi(e,t){if(t.statusSet&&!t.statusSet.has(e.status)||t.typeFilter&&!t.typeFilter.has(e.type))return!1;let n=t.tagFilter;return!(n&&!me(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Vi(e,t){return rt(e,t)}function Qi(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 Yi(e,t,n,r){let i=e.metadata;return!(!Ki(i,t)||!St(i,n)||t.missingMetadataActive&&!Vt(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!Yt(i,t.contentFieldFilters))}function or(e,t,n,r,i,o){let s=$i(t,n,i);return e.filter(a=>Yi(a,s,r,o))}function Ve(e,t){let n=0,r=0;for(;;){let i=e.indexOf(t,r);if(i<0)return n;n+=1,r=i+t.length}}function Xi(e){return U(e)}function sr(e){let t=(e.files??[]).map(s=>({scope:s.scope,path:s.path.trim()})),n=(e.docs??[]).map(s=>({scope:s.scope,path:s.path.trim()})),r=(e.tests??[]).filter(s=>typeof s.path=="string"&&s.path.trim().length>0).map(s=>({scope:s.scope,path:s.path.trim()})),i=[...t,...n,...r].filter(s=>s.path.length>0).sort((s,a)=>s.scope.localeCompare(a.scope)||s.path.localeCompare(a.path)),o=new Map;for(let s of i)o.set(`${s.scope}:${s.path}`,s);return[...o.values()]}async function Bn(e){let t=Ke.resolve(e);try{let n=await ue.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function ar(e,t){let[n,r]=await Promise.all([Bn(e),Bn(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function cr(e,t){let n=sr(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=Ke.resolve(o.resolved,i.path);if(!ye(o.resolved,s))continue;let a;try{a=await ue.realpath(s)}catch{continue}if(ye(o.realpath,a))try{await we({path:s,scope:i.scope}),r.push(await ue.readFile(s,"utf8"))}catch{}}return r.join(`
|
|
3
|
+
`)}var dr=[{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=>me(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=>O(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>O(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>O(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>ve(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>Ee(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>Be(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>Se(e.metadata)}],Ji=new Map(dr.map(e=>[e.name,e]));function Zi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function lr(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Zi);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Gi}${i}${Wi}`)}function ur(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let u of t){if(u.length===0)continue;let l=n.indexOf(u);l>=0&&(r<0||l<r)&&(r=l,i=u.length)}if(r<0)return null;let o=Math.max(0,r-Kn),s=Math.min(e.length,r+i+Kn),a=lr(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function fr(e,t,n){let r=[];for(let i of t){let o=Ji.get(i);if(o===void 0)continue;let s=ur(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function eo(e,t,n){return[...dr.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function to(e,t,n){let r=R(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=R(i),s=o.length>0&&r.startsWith(o)?r.slice(o.length).trim():r;return t!==r&&t!==s?null:{item:e,score:t===r?Hi:Ui,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function no(e,t,n,r,i){for(let o of e){let s=t.get(o)??0;s>0&&(i.score+=s*r.title_exact_bonus,i.matched.add("title"),i.matchedTokens.add(o));for(let a of n){let d=Ve(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function ro(e,t,n,r){R(e.title)===t&&(r.score+=Oi,r.matched.add("title"));for(let o of n){let s=Ve(R(o.value),t);s>0&&(r.score+=s*o.weight*ji,r.matched.add(o.name))}}function mr(e,t,n,r,i,o,s=!1){let a=e.metadata,d=to(a,n,o);if(d)return d;let c=new Map;for(let y of Xi(a.title))c.set(y,(c.get(y)??0)+1);let u=eo(e,r,i),l={score:0,matched:new Set,matchedTokens:new Set};no(t,c,u,i,l);let f=new Set(t),h=f.size>0&&l.matchedTokens.size===f.size;return s&&f.size>1&&h&&(l.score+=Ni),t.length>=Pi&&n.includes(" ")&&ro(a,n,u,l),l.score<=0?null:{item:a,score:l.score,matched_fields:[...l.matched].sort((y,b)=>y.localeCompare(b)),matched_all_terms:h}}function pr(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=z(n.item.status,t),s=z(r.item.status,t);if(o!==s)return o?1:-1;let a=n.item.priority-r.item.priority;if(a!==0)return a;let d=nt(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function hr(e,t,n,r,i,o,s,a=!1){return mr(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function ze(e){if(e.size===0)return new Map;let t=[...e.values()],n=Math.min(...t),r=Math.max(...t);if(r===n)return new Map([...e.keys()].map(o=>[o,1]));let i=new Map;for(let[o,s]of e)i.set(o,(s-n)/(r-n));return i}function gr(e,t,n,r,i,o,s,a,d,c,u,l,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let b=V({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:l});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:b,...u.length>0?{warnings:u}:{}}}let y=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:Q({effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,queryExpansion:a,rerank:d,runtimeFieldFilters:l??{}}),projection:{mode:c.mode,fields:y},now:P(),...u.length>0?{warnings:u}:{}}}function Qe(e,t,n,r){if(!t.active)throw new p(`Search mode '${e}' requires a configured embedding provider in settings.providers.openai or settings.providers.ollama`,m.USAGE);if(!n.active&&!r)throw new p(`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:n.active??null}}var A=he;function pe(e){let t=M(),n=st(t,e);if(!n)return null;let r=n.runtime_definition??n.definition,i=r.query,o=r.queryExpansion??r.query_expansion,s=r.rerank,a=A(r.name)??A(n.definition.name)??e;if(!a)return null;let d={providerName:a,...typeof i=="function"?{query:i}:{},...typeof o=="function"?{queryExpansion:o}:{},...typeof s=="function"?{rerank:s}:{}};return!d.query&&!d.queryExpansion&&!d.rerank?null:d}function yr(e){let t=A(e.search?.provider),n=pe(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function _r(e){let t=M(),n=A(e.vector_store?.adapter),r=at(t,n);if(!r)return null;let i=r.runtime_definition??r.definition,o=i.query;if(typeof o!="function")return null;let s=i.upsert;return{adapterName:A(i.name)??A(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function wr(e,t,n){let r=Array.isArray(t)?t:t?.hits;if(!Array.isArray(r))throw new p(`Extension search provider "${e}" must return an array of hits or { hits: [...] }`,m.GENERIC_FAILURE);let i=new Set,o=[];for(let s of r){if(typeof s!="object"||s===null)continue;let a=A(s.id),d=s.score;if(!a||typeof d!="number"||!Number.isFinite(d)||i.has(a))continue;let c=n.get(a);if(!c)continue;let u=s.matched_fields,l=Array.isArray(u)&&u.every(f=>typeof f=="string")?[...new Set(u.map(f=>f.trim()).filter(f=>f.length>0))].sort((f,h)=>f.localeCompare(h)):[`provider:${e}`];i.add(a),o.push({item:c.metadata,score:d,matched_fields:l})}return o}function br(e,t){let n=[],r=new Map;for(let i of e){if(r.has(i.id))continue;let o=t.get(i.id);o&&(r.set(i.id,i.score),n.push({item:o.metadata,score:i.score,matched_fields:["semantic"]}))}return{semanticHits:n,semanticScores:r}}function fe(e,t){let n=t.filter(c=>c.exact_id_match===!0);if(n.length===0)return e;let r=new Set(n.map(c=>c.item.id)),i=e.filter(c=>!r.has(c.item.id)),o=i.reduce((c,u)=>Math.max(c,u.score),0),s=n.sort((c,u)=>u.score-c.score),a=o+s.length+1;return[...s.map((c,u)=>({...c,score:a-u,matched_fields:["id"]})),...i]}function Ye(e,t,n,r,i="semantic"){let o=new Map(n.map(l=>[l.item.id,l.score])),s=new Map(n.map(l=>[l.item.id,l.matched_fields])),a=ze(t),d=ze(o),c=new Set([...t.keys(),...o.keys()]),u=1-r;return[...c].map(l=>{let f=e.get(l),h=a.get(l)??0,g=d.get(l)??0,y=h*r+g*u;if(y<=0)return null;let b=new Set;t.has(l)&&b.add(i);for(let _ of s.get(l)??[])b.add(_);return{item:f.metadata,score:y,matched_fields:[...b].sort((_,w)=>_.localeCompare(w))}}).filter(l=>l!==null)}function vr(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Er(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:zn(Tt(s,{fields:e.corpusFields}))})),n=Gn(t),r=Wn(n,We(e.query),e.bm25Params),i=new Map(e.filteredDocuments.map(s=>[s.metadata.id,s]));if(e.requestedMode==="semantic"){let s=[...r].map(([a,d])=>({item:i.get(a).metadata,score:d,matched_fields:["bm25"]}));return fe(s,e.keywordHits)}let o=Ye(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return fe(o,e.keywordHits)}function Sr(e){let t=new Map;for(let r of e)for(let i of r){let o=t.get(i.id);(!o||i.score>o.score)&&t.set(i.id,i)}let n=[...t.values()];return n.sort((r,i)=>r.score!==i.score?i.score-r.score:r.id.localeCompare(i.id)),n}function xr(e){let t=e.metadata,n=Array.isArray(t?.tags)?t.tags.join(" "):"";return[t?.title,t?.description,t?.type,t?.status,n,e.body].map(r=>typeof r=="string"?r.trim():"").filter(r=>r.length>0).join(`
|
|
4
|
+
`)}async function io(e,t){let n=e.queryExpansion.enabled?Ln(t,e.queryExpansion.max_queries):[t],r=n.length>0?n:[t];if(!e.queryExpansion.enabled)return r;if(e.queryExpansionExtension?.expand)try{let i=await Promise.resolve(e.queryExpansionExtension.expand({query:t,mode:e.requestedMode,settings:e.settings}));return Dn(r,qn(i),e.queryExpansion.max_queries)}catch{return e.warnings.push(`search_query_expansion_provider_failed:${e.queryExpansionExtension.providerName}:using_builtin`),r}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`),r}async function oo(e,t,n,r){if(e.extensionVectorAdapter?.query)try{return await Promise.resolve(e.extensionVectorAdapter.query({vector:t,limit:n,settings:e.settings}))}catch(i){if(!e.vectorStore)throw new p(`Extension vector adapter query failed and no built-in fallback store is configured (${i instanceof Error?i.message:String(i)})`,m.GENERIC_FAILURE);return e.warnings.push(`search_vector_adapter_failed:${e.extensionVectorAdapter.adapterName}:using_builtin`),await xe(e.vectorStore,t,n,r)}if(e.vectorStore)return await xe(e.vectorStore,t,n,r);throw new p("Semantic search requires either a configured vector store or an extension vector adapter query handler",m.USAGE)}function so(e,t,n){return[...e].sort((i,o)=>i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)).slice(0,n).map(i=>{let o=t.get(i.item.id);return o?{hit:i,text:xr(o)}:null}).filter(i=>i!==null)}async function ao(e,t,n){if(!e.rerankExtension?.rerank)return null;try{let r=await Promise.resolve(e.rerankExtension.rerank({query:t,mode:"hybrid",model:e.rerank.model,top_k:e.rerank.top_k,settings:e.settings,candidates:n.map(o=>({id:o.hit.item.id,text:o.text,score:o.hit.score}))})),i=jn(r);return i.length>0?new Map(i.map(o=>[o.id,o.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 co(e,t,n){let r=await ao(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await Hn(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function lo(e,t){let n=new Set(t.keys()),r=e.map(i=>{let o=t.get(i.item.id);if(o===void 0)return i;let s=new Set(i.matched_fields);return s.add("rerank"),{...i,score:o,matched_fields:[...s].sort((a,d)=>a.localeCompare(d))}});return r.sort((i,o)=>{let s=n.has(i.item.id),a=n.has(o.item.id);return s!==a?s?-1:1:i.score!==o.score?o.score-i.score:i.item.id.localeCompare(o.item.id)}),r}async function uo(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=so(n,r,e.rerank.top_k),o=await co(e,t,i);return o&&o.size>0?lo(n,o):n}async function kr(e){let t=Math.max(e.limit??e.maxResults,e.maxResults),n=e.embeddingTimeoutMs!==void 0?{timeout_ms:e.embeddingTimeoutMs}:{},r=e.vectorQueryTimeoutMs!==void 0?{timeout_ms:e.vectorQueryTimeoutMs}:{},i=e.query.trim(),o=await io(e,i),s=await ie(e.provider,o,n),a=await Promise.all(s.map(async g=>await oo(e,g,t,r))),d=Sr(a),c=new Map(e.filteredDocuments.map(g=>[g.metadata.id,g])),{semanticHits:u,semanticScores:l}=br(d,c),f=l.size;if(e.requestedMode==="semantic")return{hits:fe(u,e.keywordHits),vectorMatchCount:f};let h=await uo(e,i,Ye(c,l,e.keywordHits,e.hybridSemanticWeight),c);return{hits:fe(h,e.keywordHits),vectorMatchCount:f}}async function Ar(e,t,n,r){let i=ot(M()),o=async(c,u,l)=>{let f=async(h,g)=>{await we({path:h,scope:"project"});let y=await ue.readFile(h,"utf8");return dt(y,{format:g,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(u,l)}catch{let h=l==="toon"?"json_markdown":"toon",g=_e(e,c.type,c.id,h,n);try{return await f(g,h)}catch{return s.push(`item_list_item_read_failed:${Ke.relative(e,g)}`),""}}},s=[],a=await kt(e,t,n,s,r),d=[];if(a.length===0){let c=await At(e,t,n,s,r);for(let u of c){let l=_e(e,u.type,u.id,t,n),f=await o(u,l,t);d.push({metadata:u,body:f})}return{documents:d,warnings:[...new Set(s)].sort((u,l)=>u.localeCompare(l))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let u=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:u})}return{documents:d,warnings:[...new Set(s)].sort((c,u)=>c.localeCompare(u))}}function Fr(e,t){let n=t.trim();if(n.length===0)return null;if(n==="score")return e.score;if(n==="matched_fields")return e.matched_fields;if(n.startsWith("item.")){let o=n.slice(5);return o.length===0?null:e.item[o]??null}let r=e,i=e.item;return Object.prototype.hasOwnProperty.call(i,n)?i[n]??null:Object.prototype.hasOwnProperty.call(r,n)?r[n]??null:null}function Mr(e,t){return t.mode==="full"?e.map(({matched_all_terms:n,exact_id_match:r,...i})=>i):e.map(n=>{let r={};for(let i of t.fields)r[i]=Fr(n,i);return r})}function fo(e){let t=pe(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function mo(e){let t=pe(A(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function po(e,t){let n=[],r=er(e),i=Object.keys(r.inlineFilters).length>0;if(i&&r.residualQuery.trim().length===0)throw new p("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 o=i?r.residualQuery:e,s=tr(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:de(s.includeLinked),titleExact:de(s.titleExact),phraseExact:de(s.phraseExact),matchMode:Tn(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:In(s.minScore),countOnly:s.count===!0,tokens:Pe(o),normalizedQuery:R(o),limit:te(s.limit),projection:qe(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function ho(e,t){let n=x(process.cwd(),t.path);if(!await F(T(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await I(n),i=xt(r).settings,o=N(i.schema),s=H(i.schema);De(e.projection,s,e.query);let a=Et(e.options,s,"search"),d=j(i,M()),c=Rt(i),u=It(i,n),l=yr(i),f=_r(i),h=Cn(e.options.semanticWeight),g=Pn(i,c.active?.name??null),y=On(i,c.active?.model??A(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:Oe(i),scoreThreshold:e.minScoreOverride??je(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??Ne(i),tuning:He(i),providerResolution:c,vectorResolution:u,extensionSearchProvider:l,extensionVectorAdapter:f,bm25Mode:vr({configuredProvider:A(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:l!==null}),queryExpansion:g,queryExpansionExtension:fo(g),rerank:y,rerankExtension:mo(i),effectiveMode:Rn(e.options.mode)}}async function go(e,t){let n=await Ar(t.pmRoot,t.settings.item_format??"toon",t.typeRegistry.type_to_folder,t.settings.schema),r=ee(typeof e.options.status=="string"?e.options.status:void 0,t.statusRegistry,{strict:!0}),i=Kt(t.statusRegistry),o=or(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:ir(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function yo(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await ar(i,it(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await cr(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function _o(e,t,n){let r=await yo(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>hr(o,e.tokens,e.normalizedQuery,e.includeLinked,r,t.tuning,t.settings.id_prefix,i)).filter(o=>o!==null).filter(o=>e.matchMode!=="and"||o.matched_all_terms===!0)}function Vn(e,t){return gr(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)}async function wo(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Er({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:Ct(t.settings),bm25Params:$n(t.settings),hybridSemanticWeight:t.hybridSemanticWeight});return t.bm25Mode==="auto-fallback"&&i.push(`search_${t.effectiveMode}_offline_bm25:no_embedding_provider:using_lexical_bm25`),o}async function bo(e,t,n,r){if(!t.extensionSearchProvider)return null;let i=t.providerResolution.active!==null&&(t.vectorResolution.active!==null||t.extensionVectorAdapter!==null);try{let o=await Promise.resolve(t.extensionSearchProvider.query({query:e.query,mode:t.effectiveMode,tokens:e.tokens,options:e.options,settings:t.settings,documents:n}));return wr(t.extensionSearchProvider.providerName,o,r)}catch(o){if(!i)throw new p(`Extension search provider "${t.extensionSearchProvider.providerName}" failed: ${o instanceof Error?o.message:String(o)}`,m.GENERIC_FAILURE);return null}}function vo(e,t,n,r){return t.vectorMatchCount>0?t.hits:(r.push(`search_${e}_degraded:no_vector_matches:results_are_lexical`),e==="semantic"?n:t.hits)}async function Eo(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await Zn(e.pmRoot,n,r),e.extensionSearchProvider||Qe(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function So(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await wo(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await Eo(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let u=new Map(r.map(l=>[l.metadata.id,l]));if(a=await bo(t,n,r,u)??a,a===i){let{provider:l,vectorStore:f}=Qe(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await kr({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:l,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=vo(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(u){return o.push(Jn(n.effectiveMode,u)),{effectiveMode:"keyword",hits:i}}}function xo(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return $e({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:V({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 n=e.projection.mode==="full"?null:[...e.projection.fields];return $e({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:Q({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:n},now:P()},e.warnings)}function $e(e,t){return t.length===0?e:{...e,warnings:t}}function le(e,t){return t?{...e,workspace_memory:t}:e}function ko(e,t,n){if(!e.highlight)return{hits:n,projection:e.projection};let r=new Map(t.map(o=>[o.metadata.id,o])),i=n.map(o=>({...o,highlights:fr(r.get(o.item.id),o.matched_fields,e.tokens)}));return e.projection.mode==="full"||e.projection.fields.includes("highlights")?{hits:i,projection:e.projection}:{hits:i,projection:{mode:e.projection.mode,fields:[...e.projection.fields,"highlights"]}}}function Ao(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return $e({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:V({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=i.mode==="full"?null:[...i.fields];return{query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:Q({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:i.mode,fields:a},now:P(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function Fo(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function Rr(e,t,n){Fo(t);let r=po(e,t),i=await ho(r,n),o=await go(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await tn(o.allDocuments.map(C=>C.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:P()});s.push(...a.warnings);let d=nn(a,r.query);i.effectiveMode==="hybrid"&&i.semanticWeightProvided&&i.semanticWeightOverride===void 0&&s.push("search_hybrid_semantic_weight_override_invalid:using_settings_default");let c={query:r.query,matchMode:r.matchMode,options:r.options,includeLinked:r.includeLinked,titleExact:r.titleExact,phraseExact:r.phraseExact,scoreThreshold:i.scoreThreshold,hybridSemanticWeight:i.hybridSemanticWeight,queryExpansion:i.queryExpansion,rerank:i.rerank,projection:r.projection,warnings:s,runtimeFieldFilters:i.runtimeFieldFilters};if(i.effectiveMode==="keyword"&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return le(Vn({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let u=await _o(r,i,o.filteredDocuments),l=await So({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:u,warnings:s,modeWasExplicit:r.modeWasExplicit});if(l.effectiveMode!=="keyword"&&l.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return le(Vn({...c,effectiveMode:l.effectiveMode},r.countOnly),d);let f=l.hits.filter(C=>C.exact_id_match===!0||C.score>=i.scoreThreshold),h=pr(f,i.statusRegistry),g=h.length,y=Fn({sorted:h,query:r.query,mode:l.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),b={...c,effectiveMode:l.effectiveMode};if(r.countOnly)return le(xo(b,g),d);let{hits:_,projection:w}=ko(r,o.filteredDocuments,y.limited),D=Mr(_,w);return le(Ao(b,D,g,y.limited.length,w,y.pageExtras),d)}import Mo from"node:fs/promises";import Xe 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]="b90a064c-f423-5bf7-9fbf-1fb273c7b5af")}catch{}})();var Ro=Xe.join("search","eval-queries.json"),Je={schema:L,examples:[JSON.stringify(ce)],nextSteps:["Create a git-tracked golden-query JSON file that follows the schema, then re-run pm eval."]},Co=new Set(["keyword","semantic","hybrid"]),To=e=>{if(e===void 0)return"keyword";let t=e.trim().toLowerCase();if(!Co.has(t))throw new p("Eval --mode must be one of keyword|semantic|hybrid",m.USAGE);return t},Io=e=>{if(e===void 0||e==="")return Sn;let t=Y(e);if(t===null)throw new p("Eval --k must be a positive integer",m.USAGE);return t},Lo=e=>{if(e===void 0||e==="")return;let t=String(e).trim(),n=Number(t);if([t.length===0,!Number.isFinite(n),n<0,n>1].includes(!0))throw new p("Eval --fail-under must be a number in the range [0, 1]",m.USAGE);return n},q=e=>Math.round(e*1e4)/1e4,qo=async e=>{try{return await Mo.readFile(e,"utf8")}catch{throw new p(`Eval query set not found at ${e}`,m.NOT_FOUND,{...Je,examples:[`echo '${JSON.stringify(ce)}' > ${e}`,"pm eval --queries ./my-eval.json"]})}},Do=(e,t)=>{try{return JSON.parse(e)}catch(n){throw new p(`Eval query set at ${t} is not valid JSON: ${n instanceof Error?n.message:String(n)}`,m.USAGE,Je)}},Po=e=>{try{return Ie(e)}catch(t){throw new p(t instanceof Error?t.message:String(t),m.USAGE,Je)}},Oo=async e=>Po(Do(await qo(e),e)),jo=(e,t)=>t?Xe.resolve(process.cwd(),t):Xe.join(e,Ro),No=async(e,t,n,r)=>{let i=e.mode??t,s=(await Rr(e.query,{mode:i,limit:String(n),fields:"id"},r)).items.map(d=>d.id).filter(d=>typeof d=="string"),a=xn(s,new Set(e.relevant_ids),n);return{metrics:a,report:{query:e.query,mode:i,relevant_total:a.relevant_total,retrieved_relevant:a.retrieved_relevant,ndcg:q(a.ndcg),mrr:q(a.mrr),precision:q(a.precision),recall:q(a.recall)}}},Ho=(e,t,n,r)=>{let i=kn(n);return{k:e,query_count:t.length,aggregate:{ndcg:q(i.ndcg),mrr:q(i.mrr),precision:q(i.precision),recall:q(i.recall)},queries:t,...r!==void 0?{fail_under:r}:{},passed:r===void 0||i.ndcg>=r}},ja=async(e,t)=>{let n=x(process.cwd(),t.path);if(!await F(T(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Io(e.k),i=To(e.mode),o=Lo(e.failUnder),s=jo(n,e.queries),a=await Oo(s),d=[],c=[];for(let u of a.queries){let{report:l,metrics:f}=await No(u,i,r,t);c.push(f),d.push(l)}return Ho(r,d,c,o)};export{Uo as a,Ko as b,Bo as c,ts as d,yn as e,_n as f,wn as g,$r as h,Me as i,ws as j,bs as k,L as l,mi as m,ce as n,Ie as o,V as p,Q as q,vi as r,Fn as s,Oe as t,je as u,Ne as v,He as w,Yn as x,Xn as y,Aa as z,Rr as A,Ro as B,ja as C};
|
|
5
|
+
//# sourceMappingURL=chunk-OI4XI562.js.map
|