@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,16 @@
|
|
|
1
|
+
import{C as _i,D as Ee,Da as Ci,F as fe,G as xe,H as Ce,Ha as Fi,I as wi,L as bi,M as _t,N as ki,O as dn,P as un,Q as ln,R as vi,V as Si,W as fn,da as Ei,f as hi,g as gi,h as cn,i as yi,ma as Ie,va as xi}from"./chunk-PRHY2IMX.js";import{La as Lr,Ta as Or,t as Dr}from"./chunk-L623ZPNK.js";import{b as Ii,e as mn,f as wt,g as Ti}from"./chunk-US7VEYZG.js";import{A as Ur,Aa as Yr,B as Kr,C as Br,Ca as Xr,D as Hr,Da as Qr,E as Gr,Fa as $e,Ha as ae,I as Ne,Ia as an,Ja as Jr,La as Zr,Ma as ei,N as qr,Oa as Pe,Ra as ti,Sa as ht,Ta as ni,U as ee,Ua as ri,V as A,X as S,Y as mt,Z as B,_ as pt,_a as ii,ab as F,cb as oi,db as si,fb as ai,gb as gt,ib as ci,ja as M,ka as O,l as R,la as H,mb as di,nb as ui,o as sn,oa as zr,ob as Se,pa as Wr,pb as li,q as Oe,qa as Vr,qb as fi,r as Pr,ra as G,rb as z,sb as W,tb as yt,u as jr,ub as ce,vb as mi,xb as pi,ya as ve}from"./chunk-34QBIYZI.js";import{$ as Fr,Fa as Mr,G as L,H as dt,M as C,O as Tr,P as $,Q as Me,S as le,Sa as P,Ua as q,V as De,W as N,a as Sr,aa as Rr,h as Cr,q as D,r as at,s as Ir,t as ct,u as Z,x as on}from"./chunk-JDOMQ7VQ.js";import{b as lt,c as $r,e as ft}from"./chunk-ODHQEECS.js";import{E as we,J as rn,K as ot,Qa as be,R as Er,Ra as ke,S as st,Sa as Le,W as xr,Wa as ut,Xa as Nr,Y as m,Z as p,aa as Ar}from"./chunk-RZU5U6Q7.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]="cc342d27-aa2d-5e84-8441-46a35c42dc00")}catch{}})();var Qa=["invalid_envelope","source_incomplete","source_unchecked","filtered_corpus","terminal_items_excluded","strict_read_unproven","page_incomplete","count_mismatch","projection_incomplete","field_omission","budget_compaction","budget_omission","session_projection","invalid_item_id","duplicate_item_id"],pn=class extends Error{receipt;constructor(t){super(`Complete-list certification failed: ${t.map(n=>n.code).join(", ")}.`),this.name="PmCompleteListValidationError",this.receipt={contract_version:1,contract:"complete_list",findings:t,recovery:{suggested_retry:"pm list-all --full --strict-read --no-truncate --output-budget unbounded --json",sdk:"await client.listAllComplete()"}}}};function ph(e={}){return{excludeTerminal:!1,full:!0,...e.includeBody===void 0?{}:{includeBody:e.includeBody},noTruncate:!0,outputBudget:"unbounded",outputLimit:"unbounded",strictRead:!0}}function te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function j(e,t,n,r){t&&e.push({code:n,message:r})}function Ja(e,t){let n=te(e.completeness)?e.completeness:{};j(t,n.status==="partial","source_incomplete","The source scan reported unreadable tracker artifacts."),j(t,n.status!=="complete"&&n.status!=="partial","source_unchecked","The source scan did not prove completeness.");let r=te(e.filters)?e.filters:{},i=te(r.runtime_filters)?r.runtime_filters:{},o=new Set(["exclude_terminal","include_body","no_truncate","runtime_filters","status","strict_read"]);return j(t,r.status!=="all"||Object.keys(i).length>0||Object.keys(r).some(s=>!o.has(s)),"filtered_corpus","The list did not explicitly select every lifecycle status."),j(t,r.exclude_terminal===!0,"terminal_items_excluded","Terminal lifecycle states were explicitly excluded."),j(t,r.strict_read!==!0,"strict_read_unproven","The result does not echo strict source-read enforcement."),r}function Za(e,t,n){j(n,e.has_more!==!1||e.next_cursor!==null||e.truncated!==!1||e.applied_limit!==void 0||t.no_truncate!==!0,"page_incomplete","Pagination or a row ceiling may have withheld items."),j(n,e.count!==e.items.length||e.total!==e.items.length,"count_mismatch","Envelope counts do not equal the returned item count.");let r=te(e.projection)?e.projection:{};j(n,r.mode!=="full"||r.fields!==null,"projection_incomplete","The result is not the full metadata projection.");let i=te(e.omission_receipt)?e.omission_receipt:void 0;j(n,i?.has_omissions===!0,"field_omission","The omission receipt reports withheld field groups.")}function ec(e,t){let n=te(e.read_output)?e.read_output:void 0;j(t,n?.strings_compacted===!0||n?.rows_compacted===!0||e.output_budget_truncation!==void 0,"budget_compaction","Universal output shaping compacted the result.");let r=te(e.output_budget_exceeded)?e.output_budget_exceeded:void 0;j(t,n?.result_omitted===!0||r?.omitted_result===!0,"budget_omission","Universal output shaping omitted the useful result."),j(t,e.read_session!==void 0,"session_projection","A cross-call read session can suppress previously served facts.")}function tc(e,t){let n=e.map(r=>te(r)&&typeof r.id=="string"?r.id.trim():"");j(t,n.some(r=>r.length===0),"invalid_item_id","Every full item row must carry a non-empty string id."),j(t,new Set(n).size!==n.length,"duplicate_item_id","Every item id must occur exactly once.")}function nc(e){if(!te(e)||!Array.isArray(e.items))return{ok:!1,findings:[{code:Qa[0],message:"The result must be an object with an items array."}]};let t=e,n=[],r=Ja(t,n);return Za(t,r,n),ec(t,n),tc(t.items,n),{ok:n.length===0,findings:n}}function rc(e){let t=nc(e);if(!t.ok)throw new pn(t.findings);let n=e;return{...n,complete_list:{contract_version:1,item_count:n.items.length,unique_item_id_count:new Set(n.items.map(r=>r.id)).size,terminal_items_included:!0,source_complete:!0,full_projection:!0,no_omissions:!0,unbounded:!0}}}function hh(e){rc(e)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="47c087c2-124a-58b7-a5c9-09403235f4a2")}catch{}})();function ic(e,t){let n=-1;return e.forEach((r,i)=>{let o=Date.parse(r.ts);if(!Number.isFinite(o))throw new p(`History for this item contains invalid timestamp at entry ${i+1}.`,m.GENERIC_FAILURE);o<=t&&(n=i)}),n}function oc(e){let t=e[0]?.ts??null,n=e.at(-1)?.ts??null,r={code:"history_target_out_of_range",required:"Choose a target within the available item history.",why:"Point-in-time reads and restores can only reconstruct recorded versions.",examples:[],nextSteps:["Run pm history <id> to inspect available versions and timestamps."],valid_range:{first_version:null,last_version:null,first_timestamp:t,last_timestamp:n}};return n!==null&&(r.examples=["1",String(e.length),n],r.valid_range.first_version=1,r.valid_range.last_version=e.length),{guidance:r,lastTimestamp:n}}function Ri(e,t){let n={};if(t instanceof Error&&t.message.trim().length>0&&(n.reason=t.message.trim()),typeof t!="object"||t===null)return n;let r=t;if(typeof r.index=="number"&&Number.isInteger(r.index)&&r.index>=0&&(n.patchIndex=r.index),typeof r.operation=="object"&&r.operation!==null){let i=r.operation;Object.assign(n,Object.fromEntries(["op","path","from"].flatMap(o=>{let s=i[o];return typeof s=="string"?[[o,s]]:[]})))}if(n.patchIndex!==void 0){let i=e[n.patchIndex];i&&(n.op??=i.op,n.path??=i.path,n.from??=i.from)}return n}function Ai(e,t,n={}){let r=e.trim(),i=n.errorSubject??"history",o=i==="restore"?"Restore":"History",{guidance:s,lastTimestamp:a}=oc(t);if(!r)throw new p(`Missing ${i} target. Use a timestamp or version number.`,m.USAGE,s);if(/^\d+$/.test(r)){let l=Number(r);if(!Number.isSafeInteger(l)||l<1||l>t.length)throw new p(`${o} version must be between 1 and ${t.length} for this item.`,m.USAGE,s);return{kind:"version",raw:r,historyIndex:l-1}}let d=Date.parse(r);if(!Number.isFinite(d))throw new p(`Invalid ${i} target "${e}". Use a positive version number or ISO timestamp.`,m.USAGE,s);let c=ic(t,d);if(c<0||n.allowFutureTimestamp!==!0&&d>Date.parse(a))throw new p(i==="restore"?`No history entries exist at or before timestamp ${r}.`:`No history entry exists at timestamp ${r}.`,m.USAGE,s);return{kind:"timestamp",raw:r,historyIndex:c}}function je(e,t,n,r){let i=ei(e,t);if(i.ok)return i.document;let o=Ri(t,i.error),s=[`history_op=${r}`,o.patchIndex===void 0?null:`patch_index=${o.patchIndex}`,o.op?`op=${o.op}`:null,o.path?`path=${o.path}`:null,o.from?`from=${o.from}`:null].filter(a=>a!==null);throw new p(`Failed to apply history patch at entry ${n} (${s.join(", ")}). ${o.reason??String(i.error)}`,m.GENERIC_FAILURE)}function Mi(e,t){let n=structuredClone($e);for(let r=0;r<=t;r+=1){let i=e[r];if(!i)throw new p(`History target entry ${r+1} does not exist.`,m.USAGE);if(ae(n)!==i.before_hash)throw new p(`History hash mismatch before replay at entry ${r+1}.`,m.GENERIC_FAILURE);if(n=je(n,i.patch,r+1,i.op),ae(n)!==i.after_hash)throw new p(`History hash mismatch after replay at entry ${r+1}.`,m.GENERIC_FAILURE)}return n}function Di(e,t){if(Object.keys(e.metadata).length>0)return e;throw new p(`History target ${t.raw} resolves to a deleted state; choose a version or timestamp where the item exists.`,m.USAGE)}import hn from"node:fs/promises";import sc 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]="a2ec9f1a-aae2-59d5-8c9a-7acd8bf5a7a2")}catch{}})();function ac(e){if(!e.itemDocument)return[];let t=e.itemDocument.metadata?.assignee?.trim();if(!t||t===e.author||e.force)return[];let n=ii(e.settings);if(n.ownership_enforcement==="strict")throw new p(`Item ${e.subjectId} is assigned to ${t}. Use --force to override.`,m.CONFLICT);return n.ownership_enforcement==="warn"?[`ownership_warning:assignee_conflict:${e.subjectId}:${t}`]:[]}async function cc(e){let t=await ct(e.subject.historyPath);if(t!==e.historyRawBeforeLock)throw new p(`History for ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);let n=await z(e.pmRoot,e.subject.id,e.settings.id_prefix,e.settings.item_format,e.typeRegistry.type_to_folder),r=n?await W(n,{schema:e.settings.schema}):null;if((r?.raw??null)!==(e.currentItemRawBeforeLock??null))throw new p(`Item ${e.subject.id} changed while waiting for lock; retry ${e.operation}.`,m.CONFLICT);return{historyRawUnderLock:t,locatedUnderLock:n,loadedItemUnderLock:r}}async function Fh(e){let t=e.writeHistoryRaw??Z;try{await t(e.historyPath,e.nextHistoryRaw),await ve(e.historyPath)}catch(n){try{e.historyRawUnderLock===null?await sc.rm(e.historyPath,{force:!0}):await t(e.historyPath,e.historyRawUnderLock),await ve(e.historyPath)}catch(r){throw new AggregateError([n,r],`History rewrite failed and rollback also failed: ${String(n)}`)}throw n}}async function Li(e){let t=[...ac({itemDocument:e.itemDocument,subjectId:e.subject.id,author:e.author,force:e.force,settings:e.settings})],n=await pt(e.pmRoot,e.subject.id,e.settings.locks.ttl_seconds,e.author,!!e.force,e.settings.governance.force_required_for_stale_lock,e.settings.locks.wait_ms);try{let r=await cc({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItemRawBeforeLock,operation:e.operation});return await e.applyRewrite(r),e.applyPostRewrite&&t.push(...await e.applyPostRewrite(r)),t}finally{await 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]="cd2a27ec-0f12-591d-ab34-529ddda05063")}catch{}})();function Oi(e){return Array.isArray(e)?e:typeof e=="string"?[e]:[]}function dc(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return t.includes("g")||t.push("g"),t.join("")}function uc(e){let t=e.trim();if(t.length===0)throw new p("history-redact --regex requires a non-empty pattern.",m.USAGE);let n=t,r="g";if(t.startsWith("/")&&t.length>1){let i=t.lastIndexOf("/");i>0&&(n=t.slice(1,i),r=dc(t.slice(i+1)))}if(n.length===0)throw new p("history-redact --regex cannot use an empty pattern.",m.USAGE);try{new RegExp(n,r)}catch{throw new p("Invalid --regex value; provide a valid JavaScript regular expression.",m.USAGE)}return{kind:"regex",source:n,flags:r}}function lc(e,t){let n=[...new Set(Oi(e).map(o=>o.trim()))].filter(o=>o.length>0).map(o=>({kind:"literal",value:o})),r=[...new Set(Oi(t).map(o=>o.trim()))].filter(o=>o.length>0).map(uc),i=[...n,...r];if(i.length===0)throw new p("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 i}function fc(e,t,n){if(t.length===0)return{value:e,replacements:0};let r=0,i=0;for(;r<=e.length;){let o=e.indexOf(t,r);if(o===-1)break;i+=1,r=o+Math.max(1,t.length)}return i===0?{value:e,replacements:0}:{value:e.split(t).join(n),replacements:i}}function mc(e,t,n){let r=new RegExp(t.source,t.flags),i=[...e.matchAll(r)];return i.length===0?{value:e,replacements:0}:{value:e.replace(r,n),replacements:i.length}}function Ni(e,t,n){let r=e,i=0;for(let o of t){let s=o.kind==="literal"?fc(r,o.value,n):mc(r,o,n);r=s.value,i+=s.replacements}return{value:r,replacements:i}}function gn(e,t,n){if(typeof e=="string")return Ni(e,t,n);if(Array.isArray(e)){let r=0;return{value:e.map(o=>{let s=gn(o,t,n);return r+=s.replacements,s.value}),replacements:r}}if(typeof e=="object"&&e!==null){let r=0,i={};for(let[o,s]of Object.entries(e)){let a=gn(s,t,n);r+=a.replacements,i[o]=a.value}return{value:i,replacements:r}}return{value:e,replacements:0}}function pc(e){let t=structuredClone($e),n=0,r=0;for(let i=0;i<e.length;i+=1){let o=e[i];ae(t)!==o.before_hash&&(n+=1),t=je(t,o.patch,i+1,o.op),ae(t)!==o.after_hash&&(r+=1)}return{hashMismatchesBefore:n,hashMismatchesAfter:r,finalDocument:t}}function hc(e,t,n){let r=0,i=!1,o=e.message;if(typeof e.message=="string"){let a=Ni(e.message,t,n);o=a.value,r+=a.replacements,a.replacements>0&&(i=!0)}let s=e.patch.map(a=>{if(!Object.prototype.hasOwnProperty.call(a,"value"))return a;let d=gn(a.value,t,n);return r+=d.replacements,d.replacements>0?(i=!0,{...a,value:d.value}):a});return{entry:{...e,message:o,patch:s},replacements:r,changed:i}}function gc(e,t,n){let r=structuredClone($e),i=0,o=0,s=[];for(let a=0;a<e.length;a+=1){let d=hc(e[a],t,n);o+=d.replacements,d.changed&&(i+=1);let c=ae(r);r=je(r,d.entry.patch,a+1,d.entry.op);let l=ae(r);s.push({...d.entry,before_hash:c,after_hash:l})}return{entries:s,finalDocument:r,entriesChanged:i,replacements:o}}function yc(e){return Object.keys(e.metadata).length>0}async function _c(e,t){let n=e.located?.itemPath??null;if(!e.located)return{raw:null,path:n,document:null};let r=await W(e.located,{schema:t.schema});return{raw:r.raw,path:n,document:r.document}}function wc(e){if(!yc(e.finalDocument))return{raw:null,path:null,document:null};let t=Vr(an(e.finalDocument),{schema:e.settings.schema});if(t.metadata.id!==e.subject.id)throw new p("history-redact would change the item id; narrow your patterns.",m.USAGE);return{document:t,path:Me(e.pmRoot,t.metadata.type,e.subject.id,"toon",e.typeToFolder),raw:Wr(t,{format:"toon",schema:e.settings.schema})}}function bc(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 kc(e){let t=[...e.rewritten.entries];if(e.dryRun||!e.changed)return{rewrittenEntries:t,auditEntryAdded:!1};let n=e.nextItemDocument??an(e.rewritten.finalDocument);return t.push(Qr({nowIso:A(),author:e.author,op:"history_redact",before:n,after:n,message:e.message})),{rewrittenEntries:t,auditEntryAdded:!0}}async function vc(e){let t=[];return Li({pmRoot:e.pmRoot,subject:e.subject,settings:e.settings,typeRegistry:e.typeRegistry,historyRawBeforeLock:e.historyRawBeforeLock,currentItemRawBeforeLock:e.currentItem.raw,operation:"history-redact",author:e.author,force:e.force,itemDocument:e.currentItem.document,applyRewrite:async({historyRawUnderLock:n})=>{let r=await ui(e.pmRoot,e.author),i=new Set;e.currentItem.path&&i.add(e.currentItem.path),e.nextItem.path&&i.add(e.nextItem.path);let o=new Map;e.currentItem.path&&e.currentItem.raw!==null&&o.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 Z(e.nextItem.path,e.nextItem.raw),e.currentItem.path&&(!e.nextItem.path||e.nextItem.path!==e.currentItem.path)&&await hn.rm(e.currentItem.path,{force:!0}),await Z(e.subject.historyPath,ti(e.rewrittenEntries))}catch(d){try{await Sc(e.subject.historyPath,n,i,o)}finally{await ve(e.subject.historyPath)}throw d}await ve(e.subject.historyPath);let a=e.nextItem.path??e.currentItem.path;a&&(t=await li({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 r().catch(a=>{s=()=>{throw a}})}s()},applyPostRewrite:async()=>[...t,...await Ec(e.subject.historyPath,[e.nextItem.path,e.currentItem.path])]})}async function Sc(e,t,n,r){t===null?await hn.rm(e,{force:!0}):await Z(e,t);for(let i of n){let o=r.get(i);o===void 0?await hn.rm(i,{force:!0}):await Z(i,o)}}async function Ec(e,t){let n=[],r=new Set(t.filter(i=>i!==null));for(let i of r)n.push(...await sn({path:i,scope:"project",op:"history_redact"}));return n.push(...await sn({path:e,scope:"project",op:"history_redact:history"})),n}async function yn(e,t,n,r){let i=await z(e,t,n.id_prefix,n.item_format,r);if(i)return{id:i.id,historyPath:le(e,i.id),located:i};let o=gt(t,n.id_prefix),s=ai(t),a=o===s?[o]:[o,s];for(let d of a){let c=le(e,d);if(await D(c))return{id:d,historyPath:c,located:null}}throw new p(`Item ${t} not found`,m.NOT_FOUND)}async function Qh(e,t,n){let r=C(process.cwd(),n.path);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R()),s=t.replacement??"",a=s.length===0,d=a?"[redacted]":s,c=lc(t.literal,t.regex),l=await yn(r,e,i,o.type_to_folder);if(!await D(l.historyPath))throw new p(`No history stream exists for ${l.id}.`,m.NOT_FOUND);let u=await ct(l.historyPath),f=await G(l.historyPath,l.id);if(f.length===0)throw new p(`No history entries exist for ${l.id}; nothing to redact.`,m.USAGE);let h=pc(f),y=gc(f,c,d),g=h.hashMismatchesBefore+h.hashMismatchesAfter,k=!!t.dryRun,_=y.replacements>0,w=[];g>0&&w.push(`history_redact_preexisting_hash_mismatches:${g}`),_||w.push("history_redact_no_matches");let b=await _c(l,i),E=wc({pmRoot:r,subject:l,settings:i,typeToFolder:o.type_to_folder,finalDocument:y.finalDocument}),T=(b.path??null)!==(E.path??null)||(b.raw??null)!==(E.raw??null),I=ee(t.author,i.author_default),x=bc(t,y),{rewrittenEntries:de,auditEntryAdded:ge}=kc({rewritten:y,dryRun:k,changed:_,nextItemDocument:E.document,author:I,message:x}),oe=Pe(de);if(!oe.ok)throw new p(`history-redact produced an invalid rewritten chain (${oe.errors.join(", ")}).`,m.GENERIC_FAILURE);return!k&&_&&w.push(...await vc({pmRoot:r,subject:l,settings:i,typeRegistry:o,historyRawBeforeLock:u,currentItem:b,nextItem:E,author:I,force:t.force,rewrittenEntries:de})),{id:l.id,dry_run:k,changed:_,patterns:{literal_count:c.filter(K=>K.kind==="literal").length,regex_count:c.filter(K=>K.kind==="regex").length,total_count:c.length,replacement_is_default:a},history:{path:l.historyPath,entries_scanned:f.length,entries_changed:y.entriesChanged,replacements:y.replacements,hash_mismatches_before:h.hashMismatchesBefore,hash_mismatches_after:h.hashMismatchesAfter,preexisting_hash_mismatches:g,audit_entry_added:ge,verify_ok:oe.ok,verify_errors:oe.errors},item:{existed_before:b.path!==null,exists_after:E.path!==null,path_before:b.path,path_after:E.path,changed:T},warnings:[...new Set(w)].sort((K,se)=>K.localeCompare(se)),generated_at: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]="04f5d4d2-4021-5ce2-b35a-2134d98d2ad7")}catch{}})();function $i(e,t){let n=Pe(e),r=e.length>0?e[e.length-1].after_hash:Xr(),i=t===void 0?void 0:Yr(t),o=i===void 0?void 0:i===r,s=[...n.errors];return o===!1&&s.push("verify_failed:current_item_hash_mismatch"),{ok:s.length===0,entries:e.length,errors:s,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:i,current_matches_latest:o}}async function Pi(e,t,n={}){let r=C(n.cwd??process.cwd(),n.pmRoot);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R()),s=await yn(r,e,i,o.type_to_folder),a=await G(s.historyPath,s.id);if(a.length===0)throw new p(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let d=Ai(t,a),c=Di(Mi(a,d.historyIndex),d),l=Jr(c,{schema:i.schema});if(l.metadata.id!==s.id)throw new p(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[d.historyIndex];return{document:l,reconstructed:!0,as_of_version:d.historyIndex+1,as_of_timestamp:u.ts,target:d,history_length:a.length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="eb044a23-d43b-5e9c-9ae7-4ac91b5e587a")}catch{}})();function U(e,t="--limit"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return r}function bt(e,t="--priority"){if(e===void 0)return;let n=String(e).trim(),r=n.length===0?Number.NaN:Number(n);if(!Number.isInteger(r)||r<0||r>4)throw new p(`${t} filter must be 0..4`,m.USAGE);return r}function ji(e,t,n="--type"){if(e===void 0)return;let r=dt(e,t);if(!r)throw new p(`${n} filter must be one of ${t.types.join("|")}`,m.USAGE);return r}import Cc from"node:fs/promises";import Hi 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]="8b010e79-a73a-5760-ac05-8dc88484cd69")}catch{}})();var _n={version:1,aliases:{}};function kt(e=[]){let t=new Set(Ne),n=r=>{/^[a-z0-9]+(?:-[a-z0-9]+)*$/u.test(r)&&t.add(r)};for(let r of e){for(let i of Object.keys(r.provenance_environment_keys??{}))n(i);for(let i of Object.keys(r.provenance_resolvers??{}))n(i);for(let i of r.provenance_unavailable_dimensions??[])n(i)}return[...t].sort()}function Ui(e){if(e===void 0)return;let n=(typeof e=="string"?[e]:e).flatMap(r=>r.split(",")).map(r=>r.trim()).filter(r=>r.length>0);return n.length===0?void 0:new Set(n)}function wn(e,t){if(e.agent_harness?.trim())return{agent_harness:e.agent_harness,harness_source:"recorded"};let n=t.aliases[e.author];return n?{agent_harness:n,harness_source:"vocabulary"}:{harness_source:"unresolved"}}function xc(e,t=Ne){let n=new Set(t),r=new Map,i=e.provenance===void 0?[]:typeof e.provenance=="string"?[e.provenance]:e.provenance;for(let o of i.flatMap(s=>s.split(","))){let s=o.indexOf("=");if(s<0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let a=o.slice(0,s).trim().toLowerCase(),d=o.slice(s+1).trim();if(!n.has(a))throw new p(`Unknown provenance dimension "${a||o.trim()}". Declared dimensions: ${[...n].sort().join(", ")}.`,m.USAGE,{code:"unknown_provenance_dimension"});if(d.length===0)throw new p(`Provenance predicate must use dimension=value; received "${o.trim()}".`,m.USAGE,{code:"invalid_provenance_predicate"});let c=r.get(a)??new Set;c.add(d),r.set(a,c)}return r}function vt(e,t=_n,n={}){let r=wn(e,t);return{...n.itemId===void 0?{}:{item_id:n.itemId},...n.version===void 0?{}:{version:n.version},ts:e.ts,op:e.op,author:e.author,...e.author_source===void 0?{}:{author_source:e.author_source},...r,vocabulary_version:t.version,...e.agent_instance===void 0?{}:{agent_instance:e.agent_instance},agent_provenance:e.agent_provenance??{},...e.message===void 0?{}:{message:e.message}}}function St(e,t=_n,n=Ne){let r=Ui(e.harness),i=Ui(e.agentInstance),o=xc(e,n);return s=>{let d=wn(s,t).agent_harness;if(r&&(!d||!r.has(d))||i&&!i.has(s.agent_instance??""))return!1;for(let[c,l]of o){let u=s.agent_provenance?.[c];if(!u||!l.has(u.value))return!1}return!0}}function Et(e,t=_n,n=Ne){let r=new Set(n),i=new Map,o=0;for(let s of e){for(let d of Object.keys(s.agent_provenance??{}))r.add(d);wn(s,t).agent_harness?o+=1:i.set(s.author,(i.get(s.author)??0)+1)}return{entries:e.length,vocabulary_version:t.version,harness:{resolved:o,unresolved:e.length-o,unresolved_authors:[...i].map(([s,a])=>({author:s,entries:a})).sort((s,a)=>a.entries-s.entries||s.author.localeCompare(a.author)).slice(0,20)},dimensions:[...r].sort().map(s=>{let a=0,d=0;for(let c of e){let l=c.agent_provenance?.[s];l===null?d+=1:l!==void 0&&(a+=1)}return{dimension:s,observed:a,unavailable:d,legacy_missing:e.length-a-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]="49304d18-d722-5413-8e4d-4f2c3df4a1ca")}catch{}})();var Ic=20,Tc=5,Fc=15,Rc="-24h";function Fg(e){let t={...e};return t.full===!0?(t.raw=!0,t.compact=!1):t.raw===!0&&t.compact===void 0&&(t.compact=!0),delete t.full,t}var Ac={digest:"activity_digest",compact:"compact_activity",provenance:"provenance_activity",full:"activity"};function bn(e,t){if(e===void 0)return;let n=e.trim();if(n.length===0)throw new p(`${t} must not be empty`,m.USAGE);return n}function Ki(e,t,n){if(e===void 0)return;let r=e.trim();if(r.length===0)throw new p("Activity time bounds must not be empty",m.USAGE);let i=n==="--from"&&/^\d+[hdwm]$/iu.test(r)?`-${r}`:r;return B(i,new Date(t),n)}function Mc(e,t,n){return!(e.ts.length===0&&(t||n)||t&&S(e.ts,t)<0||n&&S(e.ts,n)>=0)}function Bi(e,t){return t===void 0?e:e.slice(0,t)}function Ue(e,t=""){return typeof e=="string"?e:t}function Dc(e,t){return{...t,id:e,ts:Ue(t.ts),author:Ue(t.author,"unknown"),op:Ue(t.op,"unknown"),patch:Array.isArray(t.patch)?t.patch:[],before_hash:Ue(t.before_hash),after_hash:Ue(t.after_hash)}}function Lc(e){return[...e].sort((t,n)=>{let r=n.ts.localeCompare(t.ts);if(r!==0)return r;let i=t.id.localeCompare(n.id);return i!==0?i:t.op.localeCompare(n.op)})}async function Oc(e){try{return(await Cc.readdir(e)).filter(t=>t.endsWith(".jsonl")).sort((t,n)=>t.localeCompare(n))}catch(t){if(Ir(t))return[];throw t}}function Nc(e){return e.raw!==!0&&e.compact!==!0&&e.provenance!==!0?"digest":e.provenance===!0?"provenance":e.compact===!0||e.raw===!0&&e.compact!==!1?"compact":"full"}function $c(e,t,n){if(e.unbounded!==!0)return t!==void 0?t:n==="digest"?Fc:n==="compact"?Ic:Tc}function Pc(e,t){let n=A(),r=t==="digest",i=Ki(e.to??(r?n:void 0),n,"--to"),o=Ki(e.from??(r?Rc:void 0),e.from===void 0&&r?i:n,"--from");if(o&&i&&S(o,i)>=0)throw new p("Activity --from must be before --to",m.USAGE);let s=fe(e.limit);if(e.unbounded===!0&&s!==void 0)throw new p("Activity --unbounded cannot be combined with --limit",m.USAGE);return{id:bn(e.id,"Activity --id"),op:bn(e.op,"Activity --op"),author:bn(e.author,"Activity --author"),from:o,to:i,limit:$c(e,s,t),limitSource:e.unbounded===!0||s!==void 0?"explicit":"default",harness:e.harness,agentInstance:e.agentInstance,provenance:e.provenanceFilter}}async function jc(e){let t=C(process.cwd(),e.path);if(!await D($(t)))throw new p(`Tracker is not initialized at ${t}. Run pm init first.`,m.NOT_FOUND);return{pmRoot:t,settings:await F(t)}}async function Uc(e){let t=L(e.settings,R()),n=await ce(e.pmRoot,e.settings.item_format,t.type_to_folder,void 0,e.settings.schema);await si({pmRoot:e.pmRoot,settings:e.settings,itemIds:n.map(i=>i.id),commandLabel:"activity"});let r=Hi.join(e.pmRoot,"history");return await Oe({path:r,scope:"project"}),{historyDir:r,itemsById:new Map(n.map(i=>[i.id,{title:i.title,type:i.type,status:i.status}]))}}function Kc(e,t,n){return n.op&&e.op!==n.op||n.author&&e.author!==n.author?!1:Mc(t,n.from,n.to)}async function Bc(e,t){let n=[];for(let r of await Oc(e)){let i=r.slice(0,-6);if(t.id&&i!==t.id)continue;let o=await G(Hi.join(e,r),i);for(let s of o){let a=Dc(i,s);Kc(s,a,t)&&n.push(a)}}return n}function Hc(e){return e.map(t=>({id:t.id,op:t.op,ts:t.ts,author:t.author,...t.message?{msg:t.message}:{}}))}function Gc(e){let t=[...e.entries()].sort(([r,i],[o,s])=>s-i||r.localeCompare(o)),n=t.slice(0,4).map(([r,i])=>`${r}:${i}`);return t.length>n.length&&n.push(`+${t.length-n.length}`),n.join(",")}function qc(e,t){let n=new Map;for(let r of e){let i=n.get(r.id);if(i===void 0){n.set(r.id,{firstTs:r.ts,lastTs:r.ts,eventCount:1,operations:new Map([[r.op,1]])});continue}i.eventCount+=1,S(r.ts,i.firstTs)<0&&(i.firstTs=r.ts),S(r.ts,i.lastTs)>0&&(i.lastTs=r.ts),i.operations.set(r.op,(i.operations.get(r.op)??0)+1)}return[...n.entries()].map(([r,i])=>{let o=t.get(r);return{id:r,type:o?.type??"unknown",status:o?.status??"unknown",title:(o?.title??"(item metadata unavailable)").slice(0,160),event_count:i.eventCount,first_ts:i.firstTs,last_ts:i.lastTs,operations:Gc(i.operations)}}).sort((r,i)=>S(i.last_ts,r.last_ts)||r.id.localeCompare(i.id))}function zc(e){let t=new Map;for(let i of e)t.set(i.op,(t.get(i.op)??0)+1);let n=[...t.entries()].sort((i,o)=>o[1]-i[1]||i[0].localeCompare(o[0])),r=n.slice(0,8);return r.length<n.length&&r.push([`+${String(n.length-r.length)}`,n.slice(r.length).reduce((i,[,o])=>i+o,0)]),Object.fromEntries(r)}function Wc(e,t,n,r,i){if(e==="digest"){let s=qc(t,r),a=Bi(s,n);return{rows:{activity_digest:a},compact:!1,totalRows:s.length,returnedRows:a.length}}let o=Bi(t,n);return e==="compact"?{rows:{compact_activity:Hc(o)},compact:!0,totalRows:t.length,returnedRows:o.length}:e==="provenance"?{rows:{provenance_activity:o.map(i)},compact:!1,totalRows:t.length,returnedRows:o.length}:{rows:{activity:o},compact:!1,totalRows:t.length,returnedRows:o.length}}async function Gi(e,t){let n=await jc(t),r=Nc(e),i=Pc(e,r),o=await Uc(n),s=kt(n.settings.agent_identity.harness_signals),a=n.settings.agent_identity.identity_vocabulary,d=St({harness:i.harness,agentInstance:i.agentInstance,provenance:i.provenance},a,s),c=Lc(await Bc(o.historyDir,i)).filter(d),l=Wc(r,c,i.limit,o.itemsById,f=>vt(f,a,{itemId:f.id})),u=l.totalRows-l.returnedRows;return{...l.rows,compact:l.compact,projection:{mode:r,row_key:Ac[r]},omission_receipt:ft("activity",r),count:l.returnedRows,total_count:l.totalRows,limit:i.limit??null,omitted_count:u,has_more:u>0,...r==="digest"?{activity_summary:{window:{from:i.from,to:i.to},event_count:c.length,item_count:l.totalRows,author_count:new Set(c.map(f=>f.author)).size,operation_counts:zc(c)}}:{},...e.provenanceSummary===!0?{provenance_summary:Et(c,a,s)}:{},applied_bound:{kind:i.limit===void 0?"unbounded":"limit",source:i.limitSource,value:i.limit??null}}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1035bd62-b012-5249-bd53-31b39f21b2d3")}catch{}})();function kn(e,t){if(e===void 0)return;let n=[],r="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let d=e[s+1];if(d===","||d==="\\"){r+=d,s+=1;continue}r+=a;continue}if(a===","){n.push(r),r="";continue}r+=a}n.push(r);let i=n.map(s=>s.trim());if(i.some(s=>s.length===0))throw new p(`${t.label} requires at least one non-empty value`,m.USAGE);let o=i.map(s=>t.normalize?.(s)??s);return[...new Set(o)]}function V(e,t){let n=kn(e,t);return n===void 0?void 0:new Set(n)}function xt(e,t,n="--type"){let r=kn(e,{label:n});if(r===void 0)return;let i=r.map(o=>{let s=dt(o,t);if(!s)throw new p(`${n} filter token "${o}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(i)}function Ct(e,t="--priority"){let n=kn(e,{label:t});if(n!==void 0)return new Set(n.map(r=>bt(r,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]="5b7b3eaf-a792-5f44-9981-8c82ce511070")}catch{}})();function qi(e,t){let n=e.trim().toLowerCase();return t.alias_to_id.get(n)??n}function It(e){return{isTerminal(t){return e.terminal_statuses.has(qi(t,e))},classify(t){let n=qi(t,e);return e.terminal_canceled_statuses.has(n)?"canceled":e.terminal_statuses.has(n)?"closed":e.blocked_statuses.has(n)?"blocked":e.draft_statuses.has(n)?"draft":n===e.open_status?"open":e.active_statuses.has(n)?"in_progress":"other"}}}function vn(e){return N(e.acceptance_criteria)===void 0}function Sn(e){return!Number.isFinite(e.estimated_minutes)}function Yi(e,t){return t.isTerminal(e.status)?N(e.resolution)===void 0:!1}function Vc(e){return N(e.reviewer)===void 0}function Yc(e){return N(e.risk)===void 0}function Xc(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):N(e.confidence)===void 0}function Qc(e){return N(e.sprint)===void 0}function Jc(e){return N(e.release)===void 0}function Ke(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Zc(e,t,n){return[[t.acMissing,vn(e)],[t.estimatesMissing,Sn(e)],[t.resolutionMissing,Yi(e,n)],[t.reviewerMissing,Vc(e)],[t.riskMissing,Yc(e)],[t.confidenceMissing,Xc(e)],[t.sprintMissing,Qc(e)],[t.releaseMissing,Jc(e)]].every(([i,o])=>i!==!0||o)}function ed(e,t){return vn(e)||Sn(e)||Yi(e,t)}function Tt(e,t,n){return Ke(t)?!(!Zc(e,t,n)||t.metadataMissing&&!ed(e,n)):!0}var En=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function td(e,t){switch(t){case"acceptance_criteria":return!vn(e);case"estimated_minutes":return!Sn(e);case"resolution":return N(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return N(e.parent)!==void 0}}function nd(e,t,n){return t==="resolution"?n.isTerminal(e.status):!0}function rd(e,t){return t===0?100:Math.round(e/t*1e3)/10}function zi(){let e={};for(let t of En)e[t]={present:0,applicable:0,percent:100};return e}function Wi(e,t,n){for(let r of En){if(!nd(t,r,n))continue;let i=e[r];i.applicable+=1,td(t,r)&&(i.present+=1)}}function Vi(e){for(let t of En){let n=e[t];n.percent=rd(n.present,n.applicable)}}function $g(e,t){let n=zi(),r={};for(let i of e){Wi(n,i,t);let o=r[i.type]??(r[i.type]=zi());Wi(o,i,t)}Vi(n);for(let i of Object.values(r))Vi(i);return{overall:n,by_type:r}}var id={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function od(e){return id[e]}function sd(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function ad(e,t,n){switch(t){case"assignee":return[N(e.assignee)??null];case"parent":return[N(e.parent)??null];case"type":return[N(e.type)??null];case"status":return[N(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let r=n.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!r||s.startsWith(r)));return o.length>0?o:[null]}}}function Pg(e,t,n,r={}){let i=new Map,o=0;for(let a of e){o+=1;let d=n.classify(a.status);for(let c of ad(a,t,r)){let l=c??"\0empty",u=i.get(l);u||(u={label:c??od(t),key:c,buckets:sd(),total:0},i.set(l,u)),u.buckets[d]+=1,u.total+=1}}let s=[...i.values()].sort((a,d)=>d.total!==a.total?d.total-a.total:a.key===null?1:d.key===null?-1:a.label.localeCompare(d.label));return{dimension:t,rows:s,total_items:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="03824e4b-562b-5e12-a89a-9dd091ae7fd3")}catch{}})();var Te=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function me(e){return Array.isArray(e)&&e.length>0}function cd(e){return typeof e=="string"&&e.trim().length>0}function dd(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let n=t.command;return typeof n=="string"&&n.trim().length>0}):!1}function Qi(e,t){switch(t){case"notes":return me(e.notes);case"learnings":return me(e.learnings);case"files":return me(e.files);case"docs":return me(e.docs);case"tests":return me(e.tests);case"comments":return me(e.comments);case"deps":return me(e.dependencies);case"body":return cd(e.body);case"linked_command":return dd(e.tests)}}function Ft(e){return Te.some(t=>e[t]!==void 0)}function Rt(e,t){for(let n of Te){let r=t[n];if(r===void 0)continue;let i=Qi(e,n);if(r==="present"&&!i||r==="absent"&&i)return!1}return!0}function Ji(e){return Te.some(t=>t!=="body"&&e[t]!==void 0)}function Zi(e){return e.body!==void 0}function Xi(e,t){return t===0?100:Math.round(e/t*1e3)/10}function ud(){let e={};for(let t of Te)e[t]={present:0,total:0,percent:100};return e}function Ug(e){let t=ud(),n=e.length;for(let s of e)for(let a of Te)Qi(s,a)&&(t[a].present+=1);for(let s of Te)t[s].total=n,t[s].percent=Xi(t[s].present,n);let r=t.body,i=n-r.present,o={present:i,total:n,percent:Xi(i,n)};return{total_items:n,fields:t,body_populated:r,empty_body:o}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e2cb56ba-2f89-5589-8abf-f08cc7fa2b6b")}catch{}})();var At=e=>({acMissing:e.filterAcMissing===!0,estimatesMissing:e.filterEstimatesMissing===!0,resolutionMissing:e.filterResolutionMissing===!0,metadataMissing:e.filterMetadataMissing===!0,reviewerMissing:e.filterReviewerMissing===!0,riskMissing:e.filterRiskMissing===!0,confidenceMissing:e.filterConfidenceMissing===!0,sprintMissing:e.filterSprintMissing===!0,releaseMissing:e.filterReleaseMissing===!0}),eo=[{field:"notes",presentKey:"hasNotes",absentKey:"noNotes",presentFlag:"--has-notes",absentFlag:"--no-notes"},{field:"learnings",presentKey:"hasLearnings",absentKey:"noLearnings",presentFlag:"--has-learnings",absentFlag:"--no-learnings"},{field:"files",presentKey:"hasFiles",absentKey:"noFiles",presentFlag:"--has-files",absentFlag:"--no-files"},{field:"docs",presentKey:"hasDocs",absentKey:"noDocs",presentFlag:"--has-docs",absentFlag:"--no-docs"},{field:"tests",presentKey:"hasTests",absentKey:"noTests",presentFlag:"--has-tests",absentFlag:"--no-tests"},{field:"comments",presentKey:"hasComments",absentKey:"noComments",presentFlag:"--has-comments",absentFlag:"--no-comments"},{field:"deps",presentKey:"hasDeps",absentKey:"noDeps",presentFlag:"--has-deps",absentFlag:"--no-deps"},{field:"body",presentKey:"hasBody",absentKey:"emptyBody",presentFlag:"--has-body",absentFlag:"--empty-body"},{field:"linked_command",presentKey:"hasLinkedCommand",absentKey:"noLinkedCommand",presentFlag:"--has-linked-command",absentFlag:"--no-linked-command"}],Ge=e=>{let t=eo.find(n=>e[n.presentKey]===!0&&e[n.absentKey]===!0);if(t)throw new p(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(eo.flatMap(n=>e[n.presentKey]===!0?[[n.field,"present"]]:e[n.absentKey]===!0?[[n.field,"absent"]]:[]))},to=["priority","deadline","updated_at","created_at","title","parent"],no=["asc","desc"],ld=["id","title","status","type","priority","parent","updated_at"],fd=["id","status","type","title"],ly={list:"brief","list-all":"full","list-draft":"full","list-open":"brief","list-in-progress":"brief","list-blocked":"brief","list-closed":"full","list-canceled":"full"},md=["tree_depth","tree_parent","tree_children","tree_title"],so=new Set(di);function pd(e,t,n){let r=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,i=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,o={status:t?"unchecked":r+i>0?"partial":"complete",unreadable_item_count:r,unreadable_directory_count:i};if(n&&o.status==="partial")throw new p(`List source is incomplete: ${r} item document(s) and ${i} item directory/directories could not be read.`,m.GENERIC_FAILURE,{code:"list_source_incomplete",why:"Strict list reads fail closed so agents and SDK consumers never treat an omitted item as a complete workspace.",nextSteps:["Run pm validate --check-storage-integrity to locate unreadable tracker artifacts.","Repair the reported files or align the installed decoder version, then retry."]});return o}function hd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var gd=[{key:"hasNotes",summaryKey:"has_notes"},{key:"hasLearnings",summaryKey:"has_learnings"},{key:"hasFiles",summaryKey:"has_files"},{key:"hasDocs",summaryKey:"has_docs"},{key:"hasTests",summaryKey:"has_tests"},{key:"hasComments",summaryKey:"has_comments"},{key:"hasDeps",summaryKey:"has_deps"},{key:"hasBody",summaryKey:"has_body"},{key:"hasLinkedCommand",summaryKey:"has_linked_command"},{key:"noNotes",summaryKey:"no_notes"},{key:"noLearnings",summaryKey:"no_learnings"},{key:"noFiles",summaryKey:"no_files"},{key:"noDocs",summaryKey:"no_docs"},{key:"noTests",summaryKey:"no_tests"},{key:"noComments",summaryKey:"no_comments"},{key:"noDeps",summaryKey:"no_deps"},{key:"emptyBody",summaryKey:"empty_body"},{key:"noLinkedCommand",summaryKey:"no_linked_command"}],yd=[{key:"filterReviewerMissing",summaryKey:"filter_reviewer_missing"},{key:"filterRiskMissing",summaryKey:"filter_risk_missing"},{key:"filterConfidenceMissing",summaryKey:"filter_confidence_missing"},{key:"filterSprintMissing",summaryKey:"filter_sprint_missing"},{key:"filterReleaseMissing",summaryKey:"filter_release_missing"}];function ao(e,t){for(let n of gd)t[n.key]===!0&&(e[n.summaryKey]=!0)}function co(e,t){for(let n of yd)t[n.key]===!0&&(e[n.summaryKey]=!0)}function xn(e,t,n){for(let r of n){let i=t[r.optionKey];i!==void 0&&(e[r.summaryKey]=r.normalize?r.normalize(i):i)}}function qe(e){let t={};return ao(t,e),t}function ze(e){let t={};return co(t,e),t}var _d=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"}],wd=[{optionKey:"type",summaryKey:"type"},{optionKey:"tag",summaryKey:"tag"},{optionKey:"priority",summaryKey:"priority"},{optionKey:"deadlineBefore",summaryKey:"deadline_before"},{optionKey:"deadlineAfter",summaryKey:"deadline_after"},{optionKey:"updatedAfter",summaryKey:"updated_after"},{optionKey:"updatedBefore",summaryKey:"updated_before"},{optionKey:"createdAfter",summaryKey:"created_after"},{optionKey:"createdBefore",summaryKey:"created_before"},{optionKey:"ids",summaryKey:"ids"},{optionKey:"assignee",summaryKey:"assignee"},{optionKey:"assigneeFilter",summaryKey:"assignee_filter"},{optionKey:"parent",summaryKey:"parent"},{optionKey:"sprint",summaryKey:"sprint"},{optionKey:"release",summaryKey:"release"},{optionKey:"limit",summaryKey:"limit"},{optionKey:"offset",summaryKey:"offset"},{optionKey:"includeBody",summaryKey:"include_body"},{optionKey:"compact",summaryKey:"compact"},{optionKey:"fields",summaryKey:"fields"}],bd=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],kd="-7d";function uo(e){let{filtersStatus:t,options:n,treeEnabled:r,treeDepth:i,sortField:o,sortOrder:s,runtimeFieldFilters:a}=e,d={};return t!==null&&(d.status=t),n.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency"),xn(d,n,_d),fo(d,n),n.filterAcMissing===!0&&(d.filter_ac_missing=!0),n.filterEstimatesMissing===!0&&(d.filter_estimates_missing=!0),n.filterResolutionMissing===!0&&(d.filter_resolution_missing=!0),n.filterMetadataMissing===!0&&(d.filter_metadata_missing=!0),co(d,n),ao(d,n),n.limit!==void 0&&(d.limit=n.limit),n.offset!==void 0&&(d.offset=n.offset),n.includeBody===!0&&(d.include_body=!0),n.fields!==void 0&&(d.fields=n.fields),r&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),o!==void 0&&(d.sort=o,d.order=s),hd(a)&&(d.runtime_filters=a),d}function Cn(e,t,n){let r=H(e.status,n),i=H(t.status,n);if(r!==i)return r?1:-1;let o=e.priority-t.priority;if(o!==0)return o;let s=S(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function vd(e,t){return[...e].sort((n,r)=>Cn(n,r,t))}function ro(e,t){if(e!==void 0)return B(e,new Date,t)}function Be(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return B(n,new Date,t)}function lo(e){let t=e.updatedAfter!=null&&String(e.updatedAfter).trim().length>0;if([e.today===!0,e.recent===!0,t].filter(r=>r).length>1)throw new p("Choose only one updated_at window: --today, --recent, or --updated-after.",m.USAGE);if(e.today===!0){let r=new Date;return r.setHours(0,0,0,0),r.toISOString()}return e.recent===!0?Be(kd,"recent"):Be(e.updatedAfter,"updated-after")}function fo(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function mo(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);let n=t.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(n.length===0)throw new p("--ids requires at least one non-empty item ID",m.USAGE);return new Set(n)}function In(e){if(e===void 0)return;let t=String(e).trim(),n=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(n)||n<0)throw new p("Offset filter must be a non-negative integer",m.USAGE);return n}function po(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("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function ho(e){let t=e.compact===!0,n=e.brief===!0,r=e.full===!0,i=po(e.fields);if(Number(t)+Number(n)+Number(r)+ +(i!==void 0)>1)throw new p("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE);return r?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...fd]}:t?{mode:"compact",fields:[...ld]}:i?{mode:"fields",fields:i}:{mode:"full",fields:[]}}function Fe(e){return e.startsWith("item.")?e.slice(5):e}function Sd(e,t){if(e.mode!=="fields")return;let n=new Set([...st,"body",...md,...t]),r=[...n].flatMap(o=>[o,`item.${o}`]).sort(),i=e.fields.filter(o=>!n.has(Fe(o)));if(i.length>0)throw new p(`Unknown list --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:r,suggested_retry:"pm list --fields id,title,status --limit 10",suggested_retry_args:["list","--fields","id,title,status","--limit","10"]}})}var Ed=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function go(e){if(e===void 0)return;let t=e.trim().toLowerCase(),n=Ed.get(t);if(n)return n;if(!to.includes(t))throw new p(`Sort field must be one of ${to.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function yo(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!no.includes(t))throw new p(`Sort order must be one of ${no.join("|")}`,m.USAGE);return t}function xd(e){return U(e,"--tree-depth")}function _o(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function io(e,t){return Ee(e,t,{strict:!0})}function wo(e){return V(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function Cd(e,t,n){let r=wo(t);if(r===void 0)return;let i=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),o=[...r].filter(s=>!i.has(s));o.length>0&&n.push(`unknown_tags:${o.join(",")}`)}function Id(e,t){if(e&&[...e].some(n=>n.toLowerCase()==="none"||n.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Td(e,t,n,r){let i=V(t.assignee,{label:"--assignee"}),o=_o(t.assigneeFilter);Id(i,o);let s=At(t),a=Ge(t);return{idsFilter:mo(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:xt(t.type,n),tagFilters:wo(t.tag),priorityFilter:Ct(t.priority),deadlineBefore:ro(t.deadlineBefore,"deadline-before"),deadlineAfter:ro(t.deadlineAfter,"deadline-after"),updatedAfter:lo(t),updatedBefore:Be(t.updatedBefore,"updated-before"),createdAfter:Be(t.createdAfter,"created-after"),createdBefore:Be(t.createdBefore,"created-before"),assigneeFilter:i,assigneeModeFilter:o,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:V(t.sprint,{label:"--sprint"}),releaseFilter:V(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:Ke(s),lifecycleClassifier:It(r),contentFieldFilters:a,contentFiltersActive:Ft(a)}}function Fd(e,t,n){return Rd(e,t,n)&&Ad(e,t)&&Md(e,t)&&Dd(e,t)}function Rd(e,t,n){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&H(e.status,n)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(r=>(e.tags??[]).some(i=>i.trim().toLowerCase()===r))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Ad(e,t){return mt(e,t)}function Md(e,t){return t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee?!1:t.assigneeFilter===void 0||e.assignee!==void 0&&t.assigneeFilter.has(e.assignee)}function Dd(e,t){return t.parentFilter!==void 0&&!t.treeEnabled&&e.parent!==t.parentFilter||t.sprintFilter!==void 0&&(e.sprint===void 0||!t.sprintFilter.has(e.sprint))?!1:t.releaseFilter===void 0||e.release!==void 0&&t.releaseFilter.has(e.release)}function Ld(e,t,n,r){return!(!Fd(e,t,n)||t.missingMetadataActive&&!Tt(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Rt(e,t.contentFieldFilters)||!Ce(e,r))}function bo(e,t,n,r,i,o){let s=Td(t,n,r,i);return e.filter(a=>Ld(a,s,i,o))}function He(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function ko(e,t,n){let r=e,i=typeof r.title=="string"?r.title:"",o=He(typeof r.parent=="string"?r.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:n,tree_title:`${" ".repeat(t)}${i}`}}function vo(e,t,n){let r=new Map,i=new Map;for(let c of e){r.set(c.id,c);let l=He(c.parent);if(!l)continue;let u=i.get(l);u?u.push(c):i.set(l,[c])}let o=t?[...i.get(t)??[]]:e.filter(c=>{let l=He(c.parent);return!l||!r.has(l)}),s=[],a=new Set,d=(c,l)=>{if(a.has(c.id))return;a.add(c.id);let u=i.get(c.id)??[];if(s.push(ko(c,l,u.length)),!(n!==void 0&&l>=n))for(let f of u)d(f,l+1)};for(let c of o)d(c,0);return s}function So(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function Eo(e,t){return e===t?0:e===null?1:t===null?-1:S(e,t)}function xo(e,t,n){switch(n){case"priority":return e.priority-t.priority;case"deadline":return Eo(e.deadline??null,t.deadline??null);case"updated_at":return S(e.updated_at,t.updated_at);case"created_at":return S(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return So(e.parent??null,t.parent??null);default:return 0}}function Co(e,t,n,r){return t?[...e].sort((i,o)=>{let s=xo(i,o,t);if(s!==0)return n==="desc"?-s:s;let a=Cn(i,o,r);return n==="desc"?-a:a}):vd(e,r)}function Io(e,t,n=!1){let r=Fe(t.trim());if(r.length===0)return null;let i=e;return n&&r==="title"&&typeof i.tree_title=="string"?i.tree_title:Object.prototype.hasOwnProperty.call(i,r)?i[r]??null:null}function Tn(e,t,n=!1){return t.mode==="full"?e:e.map(r=>{let i={};for(let o of t.fields)i[o]=Io(r,o,n);return i})}function To(e){let t=[];for(let n of e)t.push(n.metadata_key);return t}function Fo(e,t){if(e.noTruncate!==!0)return U(e.limit)??(t>=1e4?20:void 0)}function Od(e,t,n){return t.after===void 0?In(t.offset)??0:ut(e,t.after,n,r=>r.id)}function Ro(e,t,n){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:n??null}}async function Nd(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=P(r.schema),o=q(r.schema),s=ho(e);return Sd(s,To(o.definitions)),{pmRoot:n,settings:r,statusRegistry:i,runtimeFieldFilters:xe(e,o,"list"),typeRegistry:L(r,R()),projection:s}}async function $d(e,t,n){let r=t.projection.fields.some(d=>Fe(d)==="body"),i=t.projection.mode==="full"||t.projection.fields.some(d=>so.has(Fe(d))),o=Ge(e),s=Ji(o),a=Zi(o);return e.includeBody||r||a?await mi(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):i||s?await yt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema):await ce(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,n,t.settings.schema)}function Pd(e){let t=go(e.sort),n=yo(e.order)??"asc",r=e.tree===!0;if(!r&&e.treeDepth!==void 0)throw new p("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new p("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:n,treeEnabled:r,treeDepth:r?xd(e.treeDepth):void 0,parentRoot:r?He(e.parent):void 0}}function jd(e,t,n){let r=io(t.status,n),i=r??io(e,n),o=_i(t.status),s=r||o?{...t,excludeTerminal:!1}:t,a=o?"all":i===void 0?s.excludeTerminal===!0?null:"all":i.length===1?i[0]:i;return{resolvedStatus:i,explicitAllStatuses:o,effectiveOptions:s,filtersStatus:a}}function Ud(e,t,n,r,i){if(t.after!==void 0&&t.offset!==void 0)throw new p("List --after cannot be combined with --offset.",m.USAGE);let o=Fo(t,e.length),s=Od(e,t,i),a=o===void 0?e.slice(s):e.slice(s,s+o),d=Tn(a,n,r),c=e.length,l=a.length>0&&s+a.length<c,u=l&&a.length>0?Le(i,a[a.length-1].id,s+a.length-1):void 0;return{projected:d,totalMatched:c,pageExtras:Ro(o,l,u)}}function Ao(e,t,n){return ke("list",{status:e,options:be(t,Dr),sort:n.sortField??"default",order:n.sortOrder,tree:n.treeEnabled,tree_depth:n.treeDepth??null})}async function Kd(e){let{options:t,runtime:n,statusSelection:r,ordering:i}=e,o=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","noTruncate"]),s=[n.projection.mode==="full",n.projection.fields.some(y=>{let g=Fe(y);return g==="body"||so.has(g)})].includes(!0);if([t.limit===void 0,t.after!==void 0,t.noTruncate===!0,t.includeBody===!0,t.dependencyBlocked===!0,t.strictRead===!0,i.treeEnabled,i.sortField!==void 0,s,Pr(),Object.keys(n.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!o.has(y))].includes(!0))return null;let d=await Se(n.pmRoot,[...new Set(Object.values(n.typeRegistry.type_to_folder))]);if(!d)return null;let c=U(t.limit),l=In(t.offset)??0,u=await ci({pmRoot:n.pmRoot,expectedSourceCursor:d.source_cursor,query:{statuses:r.resolvedStatus,excludeStatuses:r.resolvedStatus===void 0&&r.effectiveOptions.excludeTerminal===!0?[...n.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...n.statusRegistry.terminal_statuses],limit:c,offset:l}});if(!u)return null;let f=u.items.length>0&&l+u.items.length<u.total,h=f?Le(Ao(r.filtersStatus,t,i),u.items.at(-1).id,l+u.items.length-1):void 0;return{projected:Tn(u.items,n.projection,!1),totalMatched:u.total,pageExtras:Ro(c,f,h)}}function Bd(e){let{filtersStatus:t,options:n,noTruncate:r,treeEnabled:i,treeDepth:o,sortField:s,sortOrder:a,runtimeFieldFilters:d}=e,c={};t!==null&&(c.status=t),n.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency");let l=n;for(let u of wd){let f=l[u.optionKey];f!=null&&(c[u.summaryKey]=f)}for(let u of bd)l[u.key]===!0&&(c[u.summaryKey]=!0);return Object.assign(c,ze(n),qe(n)),fo(c,n),r&&(c.no_truncate=!0),n.strictRead===!0&&(c.strict_read=!0),i&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),s!==void 0&&(c.sort=s,c.order=a),c.runtime_filters=d,c}async function ne(e,t,n){let r=await Nd(t,n),i=[],o=Pd(t),s=jd(e,t,r.statusRegistry),a=t.noTruncate===!0,d=await Kd({options:t,runtime:r,statusSelection:s,ordering:o}),c=d;if(!c){let g=await $d(t,r,i);Cd(g,t.tag,i);let k=bo(g,s.resolvedStatus,s.effectiveOptions,r.typeRegistry,r.statusRegistry,r.runtimeFieldFilters),_=t.dependencyBlocked===!0?(()=>{let E=wt(g,r.statusRegistry);return k.filter(T=>E.has(T.id.trim().toLowerCase()))})():k,w=Co(_,o.sortField,o.sortOrder,r.statusRegistry),b=o.treeEnabled?vo(w,o.parentRoot,o.treeDepth):w;c=Ud(b,t,r.projection,o.treeEnabled,Ao(s.filtersStatus,t,o))}let l=A(),u=[...new Set(i)].sort((g,k)=>g.localeCompare(k)),f=pd(u,d!==null,t.strictRead===!0),h=r.projection.mode==="full"?null:[...r.projection.fields];if(r.projection.mode==="compact"&&t.compact===!0){let g=uo({filtersStatus:s.filtersStatus,options:t,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters});return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:g,projection:{mode:"compact",fields:h},...u.length>0?{warnings:u}:{}}}return{items:c.projected,count:c.projected.length,total:c.totalMatched,...c.pageExtras,completeness:f,filters:Bd({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:o.treeEnabled,treeDepth:o.treeDepth,sortField:o.sortField,sortOrder:o.sortOrder,runtimeFieldFilters:r.runtimeFieldFilters}),projection:{mode:r.projection.mode,fields:h},sorting:{sort:o.sortField??"default",order:o.sortField?o.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var fy={applyFilters:bo,buildCompactListFilterSummary:uo,buildContentFilterEcho:qe,buildGovernanceMissingFilterEcho:ze,resolveContentFieldFilters:Ge,resolveMissingMetadataFilters:At,compareBySortField:xo,compareDefaultSort:Cn,compareNullableString:So,compareNullableTimestamp:Eo,normalizeProjectionField:Fe,parseAssigneeFilter:_o,parseFieldSelectors:po,parseIdsFilter:mo,parseOffset:In,parseProjectionConfig:ho,resolveListUpdatedAfter:lo,resolveListPageLimit:Fo,parseSortField:go,parseSortOrder:yo,orderItemsAsTree:vo,projectListItems:Tn,readListFieldValue:Io,runtimeMetadataKeysForProjection:To,sortItems:Co,trimNonEmpty:He,withTreeMetadata:ko};(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 Hd=["status","type","tag","priority","deadlineBefore","deadlineAfter","updatedAfter","updatedBefore","createdAfter","createdBefore","ids","assignee","assigneeFilter","parent","sprint","release"],Gd=["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 qd(e){return e!=null&&(typeof e!="string"||e.split(",").some(t=>t.trim().length>0))}function py(e,t,n={}){let r=n.includePagination!==!1;return[t,...Hd.map(o=>e?.[o]),...r?[e?.limit,e?.offset]:[]].some(qd)||Gd.some(o=>e?.[o]===!0)}function Mo(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 Do=["parent","type","priority","status","assignee","tags","sprint","release"];function Oo(e,t){let n=Ee(e,t,{strict:!0,flagLabel:"--status"});if(!(!n||n.length===0))return n}function No(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 $o(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=xi(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(!Do.includes(r))throw new p(`Aggregate group fields must be one of ${Do.join("|")}; received "${r}"`,m.USAGE);return n}function Po(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 jo(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 Po(t.tags);case"sprint":return t.sprint??null;case"release":return t.release??null;default:return null}}function Uo(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 Ko(e,t){return e.map(n=>`${n}:${JSON.stringify(t[n]??null)}`).join("|")}var zd={parent:"(unparented)",type:"(untyped)",priority:"(no priority)",status:"(no status)",assignee:"(unassigned)",tags:"(untagged)",sprint:"(no sprint)",release:"(no release)"};function Lo(e,t){return t==null||t===""?zd[e]:String(t)}function Wd(e,t){return e.length===1?Lo(e[0],t[e[0]]):e.map(n=>`${n}=${Lo(n,t[n])}`).join(" | ")}function Bo(e,t,n){for(let r of n){let i=Uo(e.group[r],t.group[r]);if(i!==0)return i}return 0}function Ho(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 Go(e,t){return t<=0?0:Math.round(e/t*1e4)/100}function Fn(e,t,n){let r=M(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 Vd(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 Yd(e,t){if(t===null){e.null_count+=1;return}e.numeric_count+=1,e.numeric_sum+=t}function Xd(e){e.accumulator.row.count+=1,e.includeCompletion&&Fn(e.accumulator,e.item.status,e.statusRegistry),e.numericAggregation!==null&&Yd(e.accumulator,e.numericValue)}function Qd(e,t){let n={};for(let r of e)n[r]=jo(r,t);return n}function Jd(e,t,n,r){let i={...e.row,group_label:Wd(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=Go(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 Zd(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 wy(e,t){if(e.count===!1)throw new p("Aggregate grouped counts are always enabled; omit count=false.",m.USAGE);let n=C(process.cwd(),t.path),r=await F(n),i=P(r.schema),o=["estimate","estimated_minutes","priority",...q(r.schema).definitions.filter(_=>_.type==="number").map(_=>_.metadata_key)],s=$o(e.groupBy),a=Oo(e.status,i),d=No(e,[...new Set(o)].sort((_,w)=>_.localeCompare(w))),c=e.completion===!0,l=e.includeUnparented===!0,u=await ne(void 0,{...Mo(e),status:e.status},t),f=new Map,h=0,y=0;for(let _ of u.items){let w=_,b=Qd(s,w);if(s.includes("parent")&&b.parent===null&&!l){h+=1;continue}let E=Ko(s,b),T=f.get(E),I=d===null?null:Ho(w,d.field);if(T)Xd({accumulator:T,item:w,statusRegistry:i,includeCompletion:c,numericAggregation:d,numericValue:I});else{let x=Vd(b,I);c&&Fn(x,w.status,i),f.set(E,x)}y+=1}let g=[...f.values()].map(_=>Jd(_,s,c,d)).sort((_,w)=>Bo(_,w,s)),k=u.warnings&&u.warnings.length>0?u.warnings:void 0;return{groups:g,count:g.length,totals:{items_considered:u.items.length,items_grouped:y,items_skipped_unparented:h},filters:Zd({groupBy:s,includeCompletion:c,includeUnparented:l,status:a,options:e,numericAggregation:d}),now:A(),...k?{warnings:k}:{}}}var by={buildGroupKey:Ko,compareAggregateRows:Bo,compareNullableGroupValue:Uo,completionPct:Go,normalizeTagGroupValue:Po,parseGroupBy:$o,parseNumericAggregation:No,parseStatus:Oo,readNumericAggregateValue:Ho,resolveGroupValue:jo,updateCompletionCounts:Fn};import{encode as eu}from"@toon-format/toon";(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]="f1677c6e-872e-5c42-ae3d-f73f4ec73616")}catch{}})();var Rn=["agenda","day","week","month"],An=["markdown","toon","json"],tu=["sun","mon","tue","wed","thu","fri","sat"],nu=365,ru=365,Wo=28,iu=1e3;function Mn(e,t){if(e===void 0)return;let n=Number(e);if(!Number.isInteger(n)||n<0)throw new p(`${t} must be a non-negative integer`,m.USAGE);return n}function ou(e){if(!e)return new Set(["deadlines","reminders","events"]);let t=e.trim().toLowerCase();if(t==="all")return new Set(["deadlines","reminders","events"]);let n=t.split(/[|,]/).map(i=>i.trim()).filter(i=>i.length>0);if(n.length===0)throw new p("Calendar include filter must not be empty",m.USAGE);let r=new Set;for(let i of n){if(i==="deadlines"||i==="deadline"){r.add("deadlines");continue}if(i==="reminders"||i==="reminder"){r.add("reminders");continue}if(i==="events"||i==="event"||i==="scheduled"){r.add("events");continue}throw new p("Calendar include filter must be deadlines|reminders|events|scheduled|all",m.USAGE)}return r}function Vo(e,t){let n;for(let r of t){let i=Sr(e,r,2);i!==null&&(n===void 0||i<n.distance)&&(n={choice:r,distance:i})}return n?.choice}function su(e){if(!e)return"agenda";let t=e.trim().toLowerCase();if(!Rn.includes(t)){let n=Vo(t,Rn);throw new p(`Calendar view must be one of ${Rn.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function au(e){if(!e)return;let t=e.trim().toLowerCase();if(!An.includes(t)){let n=Vo(t,An);throw new p(`Calendar format must be one of ${An.join("|")}${n?`. Did you mean "${n}"?`:"."}`,m.USAGE)}return t}function Cy(e,t){let n=au(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"markdown"}function cu(e,t){if(e===void 0)return;let n=M(e,t);if(!n){let r=t.definitions.map(i=>i.id);throw new p(`Calendar status filter must be one of ${r.join("|")}`,m.USAGE)}return n}function du(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new p("Calendar assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new p(`Invalid calendar assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function Mt(e){return new Date(e).toISOString().slice(0,10)}function Yo(e,t){if(!t||t==="UTC")return Mt(e);try{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(e)),r=n.find(s=>s.type==="year")?.value,i=n.find(s=>s.type==="month")?.value,o=n.find(s=>s.type==="day")?.value;if(r&&i&&o)return`${r}-${i}-${o}`}catch{}return Mt(e)}function Nn(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),0,0,0,0)).toISOString()}function re(e,t){let n=new Date(e);return new Date(n.getTime()+t*24*60*60*1e3).toISOString()}function Xo(e){let t=new Date(Nn(e)),n=t.getUTCDay(),r=n===0?-6:1-n;return re(t.toISOString(),r)}function uu(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1,0,0,0,0)).toISOString()}function lu(e){let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,1,0,0,0,0)).toISOString()}function fu(e,t){return S(e,t)>=0?e:t}function qo(e){return Object.fromEntries([...e.entries()].sort(([t],[n])=>t.localeCompare(n)))}function zo(e,t){e.set(t,(e.get(t)??0)+1)}function mu(e){if(!e)return null;let t=[`freq=${e.freq}`];if(e.interval!==void 0&&t.push(`interval=${e.interval}`),e.count!==void 0&&t.push(`count=${e.count}`),e.until&&t.push(`until=${e.until}`),e.by_weekday&&e.by_weekday.length>0){let n=[...e.by_weekday].sort((r,i)=>we(r)-we(i));t.push(`by_weekday=${n.join("|")}`)}if(e.by_month_day&&e.by_month_day.length>0){let n=[...e.by_month_day].sort((r,i)=>r-i);t.push(`by_month_day=${n.join("|")}`)}if(e.exdates&&e.exdates.length>0){let n=[...e.exdates].sort((r,i)=>r.localeCompare(i));t.push(`exdates=${n.join("|")}`)}return t.join(",")}function Qo(e,t,n,r){let i=new Date(Date.UTC(e,t,n,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()));if(!(i.getUTCFullYear()!==e||i.getUTCMonth()!==t||i.getUTCDate()!==n))return i.toISOString()}function Jo(e){return tu[new Date(e).getUTCDay()]}function pu(e){let t=Date.parse(e);return Number.isFinite(t)?new Date(t).toISOString():null}function hu(e){let t=new Set;for(let n of e??[]){let r=pu(n);r&&t.add(r)}return t}function gu(e,t,n,r,i){let o=e??re(n,-(r??ru)),s=t??re(e??n,i??nu);return{start:o,end:S(s,o)>0?s:re(o,1)}}function yu(e,t,n,r){let i=t.by_weekday!==void 0?[...t.by_weekday]:[Jo(e)],o=t.by_month_day!==void 0?[...t.by_month_day]:[new Date(e).getUTCDate()];return{startAt:e,startDate:new Date(e),window:n,maxOccurrences:r??iu,interval:t.interval??1,countLimit:t.count??Number.POSITIVE_INFINITY,until:t.until,excluded:hu(t.exdates),weekdayFilter:t.by_weekday!==void 0?new Set(t.by_weekday):void 0,monthDayFilter:t.by_month_day!==void 0?new Set(t.by_month_day):void 0,sortedWeekdays:[...new Set(i)].sort((s,a)=>we(s)-we(a)),sortedMonthDays:[...new Set(o)].sort((s,a)=>s-a),occurrences:[],produced:0}}function Dt(e,t){return S(t,e.startAt)<0?"continue":e.until&&S(t,e.until)>0||S(t,e.window.end)>=0?"stop":e.excluded.has(t)?"continue":(e.produced+=1,S(t,e.window.start)>=0&&e.occurrences.push(t),e.produced>=e.countLimit||e.occurrences.length>=e.maxOccurrences?"stop":"continue")}function Lt(e,t){let n=Jo(t),r=new Date(t).getUTCDate(),i=!e.weekdayFilter||e.weekdayFilter.has(n),o=!e.monthDayFilter||e.monthDayFilter.has(r);return i&&o}function _u(e){let t=e.startAt;for(let n=0;n<e.maxOccurrences&&!(Lt(e,t)&&Dt(e,t)==="stop");n+=1)t=re(t,e.interval);return e.occurrences}function wu(e,t,n){let r=we(n),i=re(t,r),o=new Date(i);return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),e.startDate.getUTCHours(),e.startDate.getUTCMinutes(),e.startDate.getUTCSeconds(),e.startDate.getUTCMilliseconds())).toISOString()}function bu(e){let t=Xo(e.startAt);for(let n=0;n<e.maxOccurrences;n+=1){let r=re(t,n*e.interval*7);for(let i of e.sortedWeekdays){let o=wu(e,r,i);if(Lt(e,o)&&Dt(e,o)==="stop")return e.occurrences}}return e.occurrences}function ku(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=new Date(Date.UTC(t,n+r*e.interval,1,0,0,0,0));for(let o of e.sortedMonthDays){let s=Qo(i.getUTCFullYear(),i.getUTCMonth(),o,e.startDate);if(!(!s||!Lt(e,s))&&Dt(e,s)==="stop")return e.occurrences}}return e.occurrences}function vu(e){let t=e.startDate.getUTCFullYear(),n=e.startDate.getUTCMonth();for(let r=0;r<e.maxOccurrences;r+=1){let i=t+r*e.interval;for(let o of e.sortedMonthDays){let s=Qo(i,n,o,e.startDate);if(!(!s||!Lt(e,s))&&Dt(e,s)==="stop")return e.occurrences}}return e.occurrences}function Su(e,t,n,r){let i=yu(e,t,n,r);return t.freq==="daily"?_u(i):t.freq==="weekly"?bu(i):t.freq==="monthly"?ku(i):vu(i)}function Zo(e){return[...e].sort((t,n)=>{let r=S(t.at,n.at);if(r!==0)return r;let i=t.item_priority-n.item_priority;if(i!==0)return i;let o=t.item_id.localeCompare(n.item_id);if(o!==0)return o;let s=t.kind.localeCompare(n.kind);if(s!==0)return s;let a=String(t.event_title).localeCompare(String(n.event_title));return a!==0?a:String(t.reminder_text).localeCompare(String(n.reminder_text))})}function $n(e){return{item_id:e.id,item_title:e.title,item_type:e.type,item_status:e.status,item_priority:e.priority,item_assignee:e.assignee??null,item_deadline:e.deadline??null,item_tags:e.tags}}function Eu(e){return e.deadline?{at:e.deadline,date:Mt(e.deadline),kind:"deadline",reminder_text:null,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...$n(e),item_deadline:e.deadline}:null}function xu(e){return(e.reminders??[]).map(t=>({at:t.at,date:Mt(t.at),kind:"reminder",reminder_text:t.text,event_title:null,event_end:null,event_location:null,event_all_day:null,event_timezone:null,event_recurring:null,event_recurrence_rule:null,...$n(e)}))}function Cu(e,t){if(!t)return null;let n=Date.parse(t)-Date.parse(e);return Number.isFinite(n)&&n>0?n:null}function Iu(e,t,n){return t.recurrence&&n!==null?new Date(new Date(e).getTime()+n).toISOString():t.end_at??null}function Tu(e,t,n,r){let i=mu(t.recurrence),o=Cu(t.start_at,t.end_at);return(t.recurrence?Su(t.start_at,t.recurrence,n,r):[t.start_at]).map(a=>({at:a,date:t.all_day===!0?a.slice(0,10):Yo(a,t.timezone),kind:"event",reminder_text:t.description??null,event_title:t.title??e.title,event_end:Iu(a,t,o),event_location:t.location??null,event_all_day:t.all_day??null,event_timezone:t.timezone??null,event_recurring:!!t.recurrence,event_recurrence_rule:i,...$n(e)}))}function Fu(e,t,n,r){let i=[];for(let o of e){let s=n.has("deadlines")?Eu(o):null;s&&i.push(s),n.has("reminders")&&i.push(...xu(o));for(let a of n.has("events")?o.events??[]:[])i.push(...Tu(o,a,t,r))}return Zo(i)}function Ru(e,t,n,r,i){let o=ji(t.type,n),s=t.tag?.trim().toLowerCase(),a=bt(t.priority),d=cu(t.status,r),c=t.assignee?.trim(),l=du(t.assigneeFilter),u=t.sprint?.trim(),f=t.release?.trim();if(c&&(c.toLowerCase()==="none"||c.toLowerCase()==="null"))throw new p('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(c!==void 0&&l==="unassigned")throw new p("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE);return e.filter(h=>Au(h,{typeFilter:o,tagFilter:s,priorityFilter:a,statusFilter:d,assigneeFilter:c,assigneeModeFilter:l,sprintFilter:u,releaseFilter:f,runtimeFieldFilters:i}))}function Au(e,t){return Mu(e,t)&&Du(e,t)&&Ce(e,t.runtimeFieldFilters)}function Mu(e,t){return!(t.typeFilter&&e.type!==t.typeFilter||t.tagFilter&&!e.tags.some(n=>n.trim().toLowerCase()===t.tagFilter)||t.priorityFilter!==void 0&&e.priority!==t.priorityFilter||t.statusFilter&&e.status!==t.statusFilter)}function Du(e,t){return!(t.assigneeModeFilter==="assigned"&&!e.assignee||t.assigneeModeFilter==="unassigned"&&e.assignee||t.assigneeFilter!==void 0&&e.assignee!==t.assigneeFilter||t.sprintFilter!==void 0&&e.sprint!==t.sprintFilter||t.releaseFilter!==void 0&&e.release!==t.releaseFilter)}function Lu(e,t,n){return!(t&&S(e.at,t)<0||n&&S(e.at,n)>=0)}function Dn(e,t,n){return e.trim().toLowerCase()==="today"?Nn(t):B(e,new Date(t),n)}function Ou(e,t,n){let r=t.date?Dn(t.date,n,"--date"):n,i=t.past===!0,o=t.fullPeriod===!0,s=t.from?Dn(t.from,n,"--from"):void 0,a=t.to?Dn(t.to,n,"--to"):void 0;if(s&&a&&S(s,a)>=0)throw new p("Calendar --from must be before --to",m.USAGE);if(e!=="agenda"&&(t.from!==void 0||t.to!==void 0))throw new p("--from and --to are only supported for --view agenda",m.USAGE);if(e==="agenda")return Nu(r,t,n,i,o,s,a);if(e==="day"){let c=Nn(r);return Ln(r,n,i,o,c,re(c,1))}if(e==="week"){let c=Xo(r);return Ln(r,n,i,o,c,re(c,7))}let d=uu(r);return Ln(r,n,i,o,d,lu(r))}function Nu(e,t,n,r,i,o,s){if(i)throw new p("--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.",m.USAGE);return{anchor:e,start:o??(t.date?e:r?void 0:n),end:s,fullPeriod:!1}}function Ln(e,t,n,r,i,o){let s=n||r;return{anchor:e,start:s?i:fu(i,t),end:o,periodStart:i,periodEnd:o,fullPeriod:s}}function $u(e){let t=new Map;for(let n of e){let r=t.get(n.date)??[];r.push(n),t.set(n.date,r)}return[...t.entries()].sort(([n],[r])=>n.localeCompare(r)).map(([n,r])=>({date:n,count:r.length,events:Zo(r)}))}function Pu(e){let t=new Set,n=new Map,r=new Map,i=0,o=0,s=0,a=0;for(let d of e)t.add(d.item_id),zo(n,d.item_type),zo(r,d.item_status),d.kind==="deadline"?i+=1:d.kind==="reminder"?o+=1:(s+=1,d.event_recurring===!0&&(a+=1));return{events:e.length,items:t.size,deadlines:i,reminders:o,scheduled:s,by_kind:{deadline:i,reminder:o,event:s},by_type:qo(n),by_status:qo(r),recurring_events:a}}function ju(e){let t=e.start??"unbounded",n=e.end??"unbounded";return`${t} -> ${n}`}function es(e,t){if(t&&t!=="UTC")try{let n=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(e)),r=n.find(o=>o.type==="hour")?.value,i=n.find(o=>o.type==="minute")?.value;if(r&&i)return`${r}:${i}`}catch{}return`${new Date(e).toISOString().slice(11,16)}Z`}function On(e){let t=Object.entries(e);return t.length===0?"empty":t.map(([n,r])=>`${n}=${r}`).join(", ")}function Uu(e){return e.event_end?e.event_all_day===!0?e.event_end.slice(0,10):e.date===Yo(e.event_end,e.event_timezone)?es(e.event_end,e.event_timezone):e.event_end:null}function Ku(e){let t=`${es(e.at,e.event_timezone)} [${e.kind}] ${e.item_id} type=${e.item_type} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder"){let n=e.reminder_text??"";return`${t} \u2014 ${n} reminder=${JSON.stringify(n)}`}if(e.kind==="event"){let n=[],r=e.event_title??e.item_title;e.event_title!==null&&e.event_title!==e.item_title&&(n.push(r),n.push(`title=${JSON.stringify(r)}`)),e.event_recurring&&(n.push("(recurring)"),n.push("recurring=true"));let o=Uu(e);return o&&n.push(`end=${o}`),e.event_all_day!==null&&n.push(`all_day=${e.event_all_day?"true":"false"}`),e.event_timezone&&n.push(`timezone=${e.event_timezone}`),e.event_location&&(n.push(`@ ${e.event_location}`),n.push(`location=${JSON.stringify(e.event_location)}`)),e.event_recurrence_rule&&n.push(`recurrence=${e.event_recurrence_rule}`),e.reminder_text&&n.push(`description=${JSON.stringify(e.reminder_text)}`),`${t} \u2014 ${n.join(" ")}`}return t}function Iy(e){let t=[];if(t.push(`# pm calendar (${e.view})`),t.push(""),t.push(`- now: ${e.now}`),t.push(`- window: ${ju(e.range)}`),e.range.period_start&&e.range.period_end&&(t.push(`- period: ${e.range.period_start} -> ${e.range.period_end}`),t.push(`- period-mode: ${e.range.full_period?"full-period":"active-window"}`)),t.push(`- events: ${e.summary.events} (deadlines: ${e.summary.deadlines}, reminders: ${e.summary.reminders}, scheduled: ${e.summary.scheduled})`),t.push(`- items: ${e.summary.items}`),t.push(`- by-kind: ${On(e.summary.by_kind)}`),t.push(`- by-type: ${On(e.summary.by_type)}`),t.push(`- by-status: ${On(e.summary.by_status)}`),t.push(`- recurring-events: ${e.summary.recurring_events}`),t.push(""),e.events.length===0)return t.push("No calendar events matched the selected filters."),t.join(`
|
|
2
|
+
`);for(let n of e.days){t.push(`## ${n.date} (${n.count})`);for(let r of n.events)t.push(`- ${Ku(r)}`);t.push("")}if(e.warnings&&e.warnings.length>0){t.push("### warnings");for(let n of e.warnings)t.push(`- ${n}`);t.push("")}return Bu(t.join(`
|
|
3
|
+
`))}function Ty(e){return eu(e)}function Bu(e){let t=e.length;for(;t>0&&e[t-1]===`
|
|
4
|
+
`;)t-=1;return e.slice(0,t)}function Hu(e){let t=A(),n=su(e.view),r=Ou(n,e,t),i=U(e.limit),o=ou(e.include),s=Mn(e.recurrenceLookaheadDays,"Calendar recurrence lookahead days"),a=Mn(e.recurrenceLookbackDays,"Calendar recurrence lookback days"),d=Mn(e.occurrenceLimit,"Calendar occurrence limit");if(d!==void 0&&d<1)throw new p("Calendar occurrence limit must be >= 1",m.USAGE);let c=o.has("events")&&!o.has("deadlines")&&!o.has("reminders"),l=e.to!==void 0||s!==void 0||a!==void 0||d!==void 0,u=c&&!l;return{nowValue:t,view:n,rangeBounds:r,limit:i,includeSources:o,occurrenceLimit:d,recurrenceLookaheadDays:u?Wo:s,recurrenceLookbackWindowDays:u&&a===void 0?0:a,eventsOnlyCapApplied:u}}function Gu(e,t){t&&e.push(`recurring_events_default_cap_applied:lookback=0d,lookahead=${Wo}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`)}function qu(e,t){return{type:e.type??null,tag:e.tag??null,priority:e.priority??null,status:e.status??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,runtime_filters:t,limit:e.limit??null,include:e.include??null,full_period:e.fullPeriod===!0?"true":null,recurrence_lookahead_days:e.recurrenceLookaheadDays??null,recurrence_lookback_days:e.recurrenceLookbackDays??null,occurrence_limit:e.occurrenceLimit??null}}function zu(e,t){return{start:t.start??null,end:t.end??null,period_start:t.periodStart??null,period_end:t.periodEnd??null,full_period:t.fullPeriod,past:e.past===!0,from:e.from??null,to:e.to??null}}async function ts(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=Hu(e),i=await F(n),o=P(i.schema),s=q(i.schema),a=xe(e,s,"calendar"),d=L(i,R()),c=[];Gu(c,r.eventsOnlyCapApplied);let l=await ce(n,i.item_format,d.type_to_folder,c,i.schema),u=Ru(l,e,d,o,a),f=gu(r.rangeBounds.start,r.rangeBounds.end,r.nowValue,r.recurrenceLookbackWindowDays,r.recurrenceLookaheadDays),y=Fu(u,f,r.includeSources,r.occurrenceLimit).filter(w=>Lu(w,r.rangeBounds.start,r.rangeBounds.end)),g=r.limit===void 0?y:y.slice(0,r.limit),k=$u(g),_=[...new Set(c)].sort((w,b)=>w.localeCompare(b));return{view:r.view,output_default:"markdown",now:r.nowValue,anchor:r.rangeBounds.anchor,range:zu(e,r.rangeBounds),filters:qu(e,a),summary:Pu(g),events:g,days:k,..._.length>0?{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]="7eefe5f0-364d-559a-b365-0e7d539ee19e")}catch{}})();var Pn=["structural","recency","activity_density","graph_proximity","claim_focus","priority_pressure","risk_pressure","deadline_pressure","knowledge_density","author_affinity","usage_affinity","semantic_similarity"],Wu=Symbol("no-context-author"),Vu=Symbol("no-item-assignee");function ns(e,t){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return n.length>0?n:t}function Yu(e,t){let n=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(n)?1-Math.min(Math.max(n,0),t)/t:0}function Xu(e,t){let n=typeof e=="string"?Date.parse(e):e instanceof Date?e.getTime():typeof e=="number"?e:Number.NaN;if(!Number.isFinite(n)||!Number.isFinite(t))return 0;let r=(n-t)/864e5;return r<=0?1:1/(1+r/30)}function Qu(e){let t=typeof e=="string"?e.trim().toLowerCase():void 0;return t==="critical"||t==="high"?1:t==="medium"?.5:t==="low"?.1:0}function Ot(e,t,n){return e?.[t]??n}function Nt(e,t){let n=c=>{if(typeof c!="string")return"";try{return B(c,new Date(Number.NaN),"updated_at")}catch{return""}},r=[...e].sort((c,l)=>{let u=n(c.updated_at),f=n(l.updated_at);return S(f,u)||c.id.localeCompare(l.id)}),i=new Map(r.map((c,l)=>[c.id,l])),o=Math.max(e.length-1,1),s=ns(t.author,Wu),a=M("in_progress",t.statusRegistry),d=Date.parse(t.now);return e.map(c=>{let l=ns(c.assignee,Vu)===s,u=(c.comments?.length??0)+(c.notes?.length??0)+(c.learnings?.length??0);return{id:c.id,item:c,signals:{recency:e.length===1?1:1-i.get(c.id)/o,activity_density:t.activityDensity?.[c.id],graph_proximity:Ot(t.graphProximity,c.id,c.parent?.3:0),claim_focus:Ot(t.claimFocus,c.id,O(c.status,t.statusRegistry)===a?1:l?.75:0),priority_pressure:Yu(c.priority,4),risk_pressure:Qu(c.risk),deadline_pressure:Xu(c.deadline,d),knowledge_density:Ot(t.knowledgeDensity,c.id,Math.min(u/5,1)),author_affinity:Ot(t.authorAffinity,c.id,l?1:0),usage_affinity:t.usageAffinity?.[c.id],semantic_similarity:t.semanticSimilarity?.[c.id]}}})}var Ju="context_relevance",Zu={structural:.4,recency:.35,activity_density:.25,graph_proximity:.15,claim_focus:.6,priority_pressure:.35,risk_pressure:.2,deadline_pressure:.45,knowledge_density:.25,author_affinity:.2,usage_affinity:.3,semantic_similarity:.5},el=new TextEncoder;function tl(e){let t=new Set;for(let n of e){if(typeof n.id!="string"||n.id.trim().length===0||t.has(n.id))throw new TypeError("Context relevance candidates require unique non-empty ids");t.add(n.id);for(let[r,i]of Object.entries(n.signals??{})){if(r==="structural"||!Pn.includes(r))throw new TypeError(`Unknown context relevance signal: ${r}`);if(i!==void 0&&(!Number.isFinite(i)||i<0||i>1))throw new TypeError(`Context relevance signal ${r} must be a finite number from 0 to 1`)}}}function nl(e){let t={...Zu};for(let[n,r]of Object.entries(e??{}))r!==void 0&&Pn.includes(n)&&(t[n]=r);for(let[n,r]of Object.entries(t))if(!Number.isFinite(r)||r<0)throw new TypeError(`Context relevance weight ${n} must be a finite non-negative number`);return t}function is(e,t={}){tl(e);let n=nl(t.weights),r=Math.max(e.length-1,1),i=new Set(["structural"]);for(let a of e)for(let[d,c]of Object.entries(a.signals??{}))c!==void 0&&i.add(d);let o=Pn.filter(a=>i.has(a)),s=e.map((a,d)=>{let c={structural:e.length===1?1:1-d/r,...a.signals},l={},u=0,f=0;for(let h of o){let y=c[h];if(y===void 0)continue;let g=y*n[h];l[h]=g,u+=g,f+=n[h]}return{...a,baseline_rank:d+1,rank:0,score:f===0?0:u/f,contributions:l}});return s.sort((a,d)=>d.score-a.score||a.baseline_rank-d.baseline_rank),s.forEach((a,d)=>{a.rank=d+1}),{model:"default-weighted-v1",available_signals:o,ranked:s}}async function rl(e,t={}){let n=is(e,t);if(!t.scorer)return n;let r=await t.scorer({candidates:e,default_report:n}),i=new Map;for(let s of r){if(i.has(s.id)||!Number.isFinite(s.score))throw new TypeError("Context relevance scorer must return one finite score for every candidate");i.set(s.id,s.score)}if(i.size!==e.length||e.some(s=>!i.has(s.id)))throw new TypeError("Context relevance scorer must return one finite score for every candidate");let o=n.ranked.map(s=>{let a=i.get(s.id);return{...s,score:a,contributions:{custom:a}}});return o.sort((s,a)=>a.score-s.score||s.baseline_rank-a.baseline_rank),o.forEach((s,a)=>{s.rank=a+1}),{model:"custom",available_signals:n.available_signals,ranked:o}}async function $t(e,t,n={}){let r=is(t,n),i=await jr(Ju,{surface:e,candidates:t,default_report:r});if(!i.handled)return i.warnings.length>0?{...r,warnings:i.warnings}:r;if(!Array.isArray(i.result)||!i.result.every(o=>typeof o=="object"&&o!==null&&typeof o.id=="string"&&typeof o.score=="number"&&Number.isFinite(o.score)))return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]};try{let o=await rl(t,{...n,scorer:()=>i.result});return i.warnings.length>0?{...o,warnings:i.warnings}:o}catch{return{...r,warnings:[...i.warnings,"extension_context_relevance_invalid_result"]}}}var il=["ndcg","reciprocal_rank","required_recall","continuity_coverage","token_budget_adherence"];function rs(e,t){return e.length===0?1:e.filter(n=>t.has(n)).length/e.length}function ol(e){if(!Number.isFinite(e.actual_tokens)||e.actual_tokens<0||!Number.isFinite(e.token_budget)||e.token_budget<=0)throw new TypeError("Context ranking token counts require actual_tokens >= 0 and token_budget > 0");let t=e.judgments??{},n=e.ranked_ids.map(c=>Math.max(0,t[c]??0)),r=Object.values(t).map(c=>Math.max(0,c)).sort((c,l)=>l-c).slice(0,n.length||1),i=c=>c.reduce((l,u,f)=>l+(2**u-1)/Math.log2(f+2),0),o=i(r),s=n.findIndex(c=>c>0),a=new Set(e.ranked_ids),d=e.actual_tokens<=e.token_budget;return{ndcg:o===0?1:i(n)/o,reciprocal_rank:s<0?0:1/(s+1),required_recall:rs(e.required_ids??[],a),continuity_coverage:rs(e.continuity_ids??[],a),token_budget_adherence:d?1:e.token_budget/e.actual_tokens,within_token_budget:d}}function sl(e){return Math.ceil(el.encode(JSON.stringify(e)).byteLength/4)}function al(e){return Math.round(e*1e4)/1e4}function cl(e,t){let n=t==="context"?[...e.high_level??[],...e.low_level??[],...e.blocked_fallback??[]].map(o=>o.id):[...e.recommended?[e.recommended]:[],...e.ready??[]].map(o=>o.id),r=new Set(n),i=(e.ranking?.items??[]).filter(o=>r.has(o.id)).map(o=>({id:o.id,contributions:o.contributions}));return{rankedIds:n,attribution:i}}async function dl(e,t){if(e.id.trim().length===0||e.rationale.trim().length===0)throw new TypeError("Context evaluation scenarios require non-empty id and rationale values");let n=e.surface==="context"?await t.context({...e.options,explainRanking:!0,outputBudget:"unbounded"}):await t.next({...e.options,explainRanking:!0,outputBudget:"unbounded"}),{rankedIds:r,attribution:i}=cl(n,e.surface),o={...n,ranking:void 0},s=sl(o);return{id:e.id,surface:e.surface,rationale:e.rationale,ranked_ids:r,actual_tokens:s,metrics:ol({ranked_ids:r,judgments:e.judgments,required_ids:e.required_ids,continuity_ids:e.continuity_ids,actual_tokens:s,token_budget:e.token_budget}),attribution:i}}function ul(e,t){if(e.length===0)throw new TypeError("Context evaluation requires at least one scenario report");let n=il;for(let o of n)if(!Number.isFinite(t[o]))throw new TypeError(`Context evaluation threshold ${o} must be a finite number`);let r=Object.fromEntries(n.map(o=>[o,al(e.reduce((s,a)=>s+a.metrics[o],0)/e.length)])),i=n.filter(o=>r[o]<t[o]).map(o=>`${o}:${r[o]}<${t[o]}`);return{scenario_count:e.length,aggregate:r,scenarios:[...e],passed:i.length===0,failures:i}}async function Dy(e,t,n){let r=[];for(let i of e)r.push(await dl(i,t));return ul(r,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]="b5c90a16-c075-5dc6-a326-ad2da7a6ef6d")}catch{}})();var ll={balanced:{redundancyPenalty:.35,uncertaintyPenalty:.2},context:{redundancyPenalty:.45,uncertaintyPenalty:.15},next:{redundancyPenalty:.25,uncertaintyPenalty:.3}},fl=["identity","summary","full"];function ml(e){if(!e.id.trim()||!Number.isInteger(e.rank)||e.rank<1)throw new TypeError("Context packing candidates require a non-empty id and positive integer rank");if(!Number.isFinite(e.score)||e.score<0)throw new TypeError("Context packing candidate scores must be finite and non-negative");let t=fl.map(n=>e.token_costs[n]);if(t.some(n=>!Number.isInteger(n)||n<1)||t[0]>t[1]||t[1]>t[2])throw new TypeError("Context projection costs must be positive monotone integers");if(e.uncertainty!==void 0&&(!Number.isFinite(e.uncertainty)||e.uncertainty<0))throw new TypeError("Context packing uncertainty must be finite and non-negative")}function pl(e){if(!Number.isInteger(e.tokenBudget)||e.tokenBudget<1)throw new TypeError("Context packing tokenBudget must be a positive integer");let t=e.profile??"balanced",n=ll[t];if(!n)throw new TypeError("Unknown context packing profile");let r=e.redundancyPenalty??n.redundancyPenalty,i=e.uncertaintyPenalty??n.uncertaintyPenalty;if(!Number.isFinite(r)||r<0||r>1||!Number.isFinite(i)||i<0)throw new TypeError("Context packing penalties must be finite and within their supported ranges");if(e.latencyBudgetMs!==void 0&&(!Number.isFinite(e.latencyBudgetMs)||e.latencyBudgetMs<=0))throw new TypeError("Context packing latencyBudgetMs must be positive");return{redundancy:r,uncertainty:i,profile:t}}function hl(e){let t=new Set;for(let n of e){if(ml(n),t.has(n.id))throw new TypeError("Context packing candidates require unique ids");t.add(n.id)}return[...e].sort((n,r)=>n.rank-r.rank||n.id.localeCompare(r.id))}function gl(e,t,n,r,i){let o=-1,s=0;for(let a=0;a<e.length;a+=1){if(a%128===0&&i()>=r)return{index:o,evaluated:s,timedOut:!0};let d=e[a];if(d.token_costs.identity>t)continue;s+=1;let c=o<0?void 0:e[o],l=n(d)/d.token_costs.identity,u=c===void 0?Number.NEGATIVE_INFINITY:n(c)/c.token_costs.identity;(l>u||l===u&&c!==void 0&&(d.rank<c.rank||d.rank===c.rank&&d.id.localeCompare(c.id)<0))&&(o=a)}return{index:o,evaluated:s,timedOut:!1}}function yl(e){let t=new Set,n=[],r=e.tokenBudget,i=c=>{let l=c.lineage??c.cluster,u=l&&t.has(l)?1-e.redundancyPenalty:1;return Math.max(0,(c.score-e.uncertaintyPenalty*(c.uncertainty??0))*u)},o=c=>{let l=c.token_costs.identity;n.push({...c,projection:"identity",tokens:l,marginal_value:i(c)}),r-=l;let u=c.lineage??c.cluster;u&&t.add(u)};for(let c of e.ordered.filter(l=>l.required))c.token_costs.identity<=r&&o(c);let s=e.ordered.filter(c=>!c.required),a=!0,d=0;for(;s.length>0;){let c=gl(s,r,i,e.deadline,e.readClock);if(d+=c.evaluated,c.timedOut&&(a=!1),c.index<0||c.timedOut)break;o(s.splice(c.index,1)[0])}return{included:n,remaining:r,selectionComplete:a,evaluatedCandidates:d}}function _l(e,t){let n=t;for(let r of["summary","full"]){let i=r==="summary"?"identity":"summary",o=[...e].sort((s,a)=>{let d=s.token_costs[r]-s.token_costs[i],c=a.token_costs[r]-a.token_costs[i];return a.marginal_value/Math.max(c,1)-s.marginal_value/Math.max(d,1)||s.rank-a.rank||s.id.localeCompare(a.id)});for(let s of o){if(s.projection!==i)continue;let a=s.token_costs[r]-s.tokens;a>n||(s.projection=r,s.tokens+=a,n-=a)}}return n}function os(e,t){let n=pl(t),r=hl(e),i=t.readClock??performance.now.bind(performance),o=t.latencyBudgetMs===void 0?Number.POSITIVE_INFINITY:i()+t.latencyBudgetMs,s=yl({ordered:r,tokenBudget:t.tokenBudget,redundancyPenalty:n.redundancy,uncertaintyPenalty:n.uncertainty,deadline:o,readClock:i}),{included:a}=s,d=_l(a,s.remaining);a.sort((l,u)=>l.rank-u.rank||l.id.localeCompare(u.id));let c=new Set(a.map(l=>l.id));return{included:a,omitted_ids:r.filter(l=>!c.has(l.id)).map(l=>l.id),token_budget:t.tokenBudget,used_tokens:t.tokenBudget-d,remaining_tokens:d,complete:s.selectionComplete&&a.length===e.length&&a.every(l=>l.projection==="full"),selection_complete:s.selectionComplete,termination_reason:s.selectionComplete?"exhausted":"latency_budget",evaluated_candidates:s.evaluatedCandidates,latency_budget_ms:t.latencyBudgetMs??null,profile:n.profile,degradation_ladder:["full","summary","identity"]}}import{randomUUID as wl}from"node:crypto";import{appendFile as bl,mkdir as kl,readFile as vl,rename as Sl,stat as El,writeFile as xl}from"node:fs/promises";import ss 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]="5f4ccd28-a001-54aa-8378-893025c69b96")}catch{}})();var as=2048,cs=30,ds=864e5,Cl=262144,Il="context-usage-ledger",Y=class extends TypeError{code="context_usage_validation_failed";constructor(t){super(t),this.name="ContextUsageValidationError"}};function us(e){return ss.join(e,"runtime","context-usage.jsonl")}function We(e){let t=e.now??new Date().toISOString(),n=Date.parse(t);if(!Number.isFinite(n))throw new Y("Context usage now must be a valid timestamp");return{iso:new Date(n).toISOString(),ms:n}}async function ls(e){try{let n=(await vl(us(e.pmRoot),"utf8")).split(`
|
|
5
|
+
`).filter(Boolean).flatMap(s=>{try{return[JSON.parse(s)]}catch{return[]}}),r=e.maxEvents??as,i=e.retentionDays??cs,o=We(e).ms-i*ds;return n.filter(s=>Date.parse(s.at)>=o).slice(-r)}catch{return[]}}async function fs(e,t){let n=e.maxEvents??as,r=e.retentionDays??cs;if(!Number.isInteger(n)||n<1||!Number.isFinite(r)||r<=0)throw new Y("Context usage retention requires positive maxEvents and retentionDays");let i=us(e.pmRoot),o=ss.dirname(i),s=await pt(e.pmRoot,Il,30,`context-usage:${process.pid}`,!1,!1,3e3);try{if(await kl(o,{recursive:!0}),await bl(i,t.map(l=>`${JSON.stringify(l)}
|
|
6
|
+
`).join(""),"utf8"),!(e.maxEvents!==void 0||e.retentionDays!==void 0)&&(await El(i)).size<=Cl)return;let d=await ls(e),c=`${i}.${process.pid}.${wl()}.tmp`;await xl(c,`${d.map(l=>JSON.stringify(l)).join(`
|
|
7
|
+
`)}
|
|
8
|
+
`,"utf8"),await Sl(c,i)}finally{await s()}}async function ms(e,t){await fs(e,[t])}async function Pt(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||e.rows.some(t=>!t.id.trim()||!Number.isInteger(t.rank)||t.rank<1))throw new Y("Context usage serving requires an author and valid ranked rows");await ms(e,{kind:"serve",at:We(e).iso,author:e.author.trim(),surface:e.surface,profile:e.profile.trim()||"balanced",rows:e.rows})}}async function Uy(e){if(!(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)){if(!e.author.trim()||!e.itemId.trim()||!e.intent.trim())throw new Y("Context usage touch requires author, itemId, and intent");await ms(e,{kind:"touch",at:We(e).iso,author:e.author.trim(),item_id:e.itemId.trim(),intent:e.intent.trim()})}}async function ps(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1||e.itemIds.length===0)return;let t=e.author.trim(),n=e.intent.trim();if(!t||!n)throw new Y("Context usage touch requires author and intent");let r=new Set;for(let s of e.itemIds){if(typeof s!="string")throw new Y("Context usage touch requires string itemIds");let a=s.trim();if(!a)throw new Y("Context usage touch requires non-empty itemId");r.add(a)}let i=We(e).iso,o=[...r].map(s=>({kind:"touch",at:i,author:t,item_id:s,intent:n}));await fs(e,o)}function Tl(e,t,n,r){return e.find(({entry:i,time:o})=>i.item_id===t&&o>=n&&o-n<=r)?.time}async function jt(e){if(process.env.PM_CONTEXT_USAGE_DISABLED==="1"||e.enabled===!1)return{affinity:{},positive_judgments:0,serving_events:0};let t=await ls(e),n=We(e).ms,r=(e.horizonHours??24)*36e5;if(!Number.isFinite(r)||r<=0)throw new Y("Context usage horizonHours must be positive");let i=e.author.trim(),o=t.filter(u=>u.kind==="touch"&&u.author===i).map(u=>({entry:u,time:Date.parse(u.at)})),s=new Map,a=0,d=0;for(let u of t){if(u.kind!=="serve"||u.author!==i)continue;a+=1;let f=Date.parse(u.at);for(let h of u.rows){if(!h.included)continue;let y=Tl(o,h.id,f,r);if(y===void 0)continue;d+=1;let g=Math.max(0,(n-y)/ds);s.set(h.id,(s.get(h.id)??0)+Math.exp(-g/14))}}let c=Math.max(0,...s.values());return{affinity:Object.fromEntries([...s.entries()].map(([u,f])=>[u,.05+.95*(c>0?f/c:0)])),positive_judgments:d,serving_events:a}}import Ve from"node:fs/promises";import Ye from"node:path";import{createHash as Fl,randomUUID as Rl}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]="3d0a558b-6a01-5bca-a2f7-21766be6d67c")}catch{}})();var jn=1,Un=1,hs=["recency","activity_density","graph_proximity","priority_pressure","risk_pressure","knowledge_density"],Al={context_signal_store_invalid:{code:"context_signal_store_invalid",meaning:"The persisted context-signal snapshot was unreadable or invalid and was rebuilt from authoritative items.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot can be loaded without the warning."},context_signal_store_stale:{code:"context_signal_store_stale",meaning:"The persisted context-signal snapshot did not match the authoritative cursor or item corpus and was rebuilt.",recovery_command:"pm context",recovery_effect:"Re-read context and confirm the rebuilt snapshot is now fresh."},context_signal_store_write_failed:{code:"context_signal_store_write_failed",meaning:"Context signals were rebuilt in memory, but the derived snapshot could not be persisted.",recovery_command:"pm context",recovery_effect:"Retry the derived snapshot write and confirm the warning clears after storage access is restored."}};function Ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gs(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Ml(e){let t={};for(let n of hs){let r=e[n];if(r!==void 0){if(!gs(r))throw new TypeError(`Context relevance signal ${n} must be a finite number from 0 to 1`);t[n]=r}}return t}function Dl(e,t){let n=e.map(i=>[i.id,t(i)]),r=Math.max(0,...n.map(([,i])=>i));return Object.fromEntries(n.map(([i,o])=>[i,r===0?0:o/r]))}function Ll(e){let t=new Map(e.map(i=>[i.id,0])),n=i=>{t.set(i,(t.get(i)??0)+1)};for(let i of e){typeof i.parent=="string"&&i.parent.trim()&&(n(i.id),n(i.parent.trim()));for(let o of i.dependencies??[])typeof o.id!="string"||!o.id.trim()||(n(i.id),n(o.id.trim()))}let r=Math.max(0,...t.values());return Object.fromEntries(e.map(i=>[i.id,r===0?0:t.get(i.id)/r]))}function Ol(e,t){return{...t,activityDensity:t.activityDensity??Dl(e,n=>(n.comments?.length??0)+(n.notes?.length??0)+(n.learnings?.length??0)+(n.test_runs?.length??0)),graphProximity:t.graphProximity??Ll(e)}}function Nl(e){if(!Ut(e)||typeof e.id!="string"||!Ut(e.signals))return null;let t={},n=new Set(hs);for(let[r,i]of Object.entries(e.signals)){if(!n.has(r)||!gs(i))return null;t[r]=i}return{id:e.id,signals:t}}function $l(e){if(!Ut(e)||e.format_version!==jn||e.signal_set_version!==Un||typeof e.source_cursor!="string"||e.source_cursor.trim().length===0||typeof e.generated_at!="string"||!Number.isFinite(Date.parse(e.generated_at))||e.source!=="derived_index"&&e.source!=="scan_fallback"||!Array.isArray(e.items))return null;let t=e.items.map(Nl);if(t.some(r=>r===null))return null;let n=t;return new Set(n.map(r=>r.id)).size!==n.length||n.some(r=>r.id.trim().length===0)?null:{format_version:jn,signal_set_version:Un,source_cursor:e.source_cursor,generated_at:e.generated_at,source:e.source,items:n.sort((r,i)=>r.id.localeCompare(i.id))}}function Pl(e,t){if(typeof t.sourceCursor!="string"||t.sourceCursor.trim().length===0)throw new TypeError("Context signal source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Context signal snapshot clock must be a valid timestamp");if(t.source!=="derived_index"&&t.source!=="scan_fallback")throw new TypeError("Context signal snapshot source must be derived_index or scan_fallback");let n=Nt(e,Ol(e,t)).map(({id:r,signals:i})=>({id:r,signals:Ml(i)})).sort((r,i)=>r.id.localeCompare(i.id));return Object.freeze({format_version:jn,signal_set_version:Un,source_cursor:t.sourceCursor,generated_at:t.now,source:t.source,items:Object.freeze(n.map(r=>Object.freeze(r)))})}var Kn=class{filePath;constructor(t){if(typeof t!="string"||t.trim().length===0)throw new TypeError("Context signal store path must be non-empty");this.filePath=Ye.resolve(t)}async read(){try{return JSON.parse(await Ve.readFile(this.filePath,"utf8"))}catch(t){if(Ut(t)&&at(t))return null;throw t}}async write(t){let n=Ye.dirname(this.filePath);await Ve.mkdir(n,{recursive:!0});let r=Ye.join(n,`.${Ye.basename(this.filePath)}.${Rl()}.tmp`);try{await Ve.writeFile(r,`${JSON.stringify(t)}
|
|
9
|
+
`,{encoding:"utf8",flag:"wx"}),await Ve.rename(r,this.filePath)}finally{try{await Ve.rm(r,{force:!0})}catch{}}}},Bn=class{adapter;constructor(t){this.adapter=t}async readOrRebuild(t,n){let r=[],i=null;try{let u=await this.adapter.read();i=$l(u),u!==null&&i===null&&r.push("context_signal_store_invalid")}catch{r.push("context_signal_store_invalid")}let o=t.map(u=>u.id).sort((u,f)=>u.localeCompare(f)),s=i?.items.map(u=>u.id)??[],a=i!==null&&i.source_cursor===n.sourceCursor&&i.source===n.source&&s.length===o.length&&s.every((u,f)=>u===o[f]),d;if(a&&i!==null)d=i;else{i!==null&&r.push("context_signal_store_stale"),d=Pl(t,n);try{await this.adapter.write(d)}catch{r.push("context_signal_store_write_failed")}}let c=new Map(d.items.map(u=>[u.id,u.signals])),l=Nt(t,n);return{snapshot:d,candidates:l.map(u=>({...u,signals:{...u.signals,...c.get(u.id)}})),cache_status:a?"fresh":"rebuilt",warnings:r,warning_details:r.map(u=>Al[u])}}};function jl(e){let t=Fl("sha256");for(let n of[...e].sort((r,i)=>r.id.localeCompare(i.id)))t.update(JSON.stringify([n.id,n.updated_at,n.status,n.parent??null,n.priority??null,n.risk??null,(n.dependencies??[]).map(r=>r.id).sort(),n.comments?.length??0,n.notes?.length??0,n.learnings?.length??0,n.test_runs?.length??0]));return`scan:${t.digest("hex")}`}async function Kt(e,t){let n=t.sourceCursor!==void 0,r=t.source!==void 0;if(n!==r)throw new TypeError("Context signal source and source cursor must be provided together");if(t.storeKey!==void 0&&!/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/u.test(t.storeKey))throw new TypeError("Context signal store key must be a filesystem-safe identifier");let i=n?null:await Se(t.pmRoot),o=t.sourceCursor??i?.source_cursor??jl(e),s=t.source??(i===null?"scan_fallback":"derived_index");return new Bn(new Kn(Ye.join(t.pmRoot,"runtime",t.storeKey?`context-signals-${t.storeKey}.json`:"context-signals.json"))).readOrRebuild(e,{...t,sourceCursor:o,source:s})}import Ul from"node:path";import{createHash as Kl}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]="a19662f9-f8b3-5988-bc04-1b5a5edaaaa5")}catch{}})();function ys(e){return e.completed_at!==void 0?{resolved:!0,timestamp:e.completed_at,source:"completed_at",fallback:!1}:e.closed_at!==void 0?{resolved:!0,timestamp:e.closed_at,source:"closed_at",fallback:!0}:e.updated_at!==void 0?{resolved:!0,timestamp:e.updated_at,source:"updated_at",fallback:!0}:{resolved:!1}}import Bl 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]="ad77a79d-54da-55f1-8ac8-935366880d90")}catch{}})();var _s=1,Hl=1e4,ws=12;function Gl(e){let t=new Date(e);return`${t.getUTCFullYear()}-Q${Math.floor(t.getUTCMonth()/3)+1}`}function ql(e,t){let n=new Set,r=e.parent;for(;r&&!n.has(r);){n.add(r);let i=t.get(r);if(!i)return;if(i.type.toLowerCase()==="epic")return i;r=i.parent}}function zl(e){let t=[...e.items].sort((i,o)=>o.completion.timestamp.localeCompare(i.completion.timestamp)||i.item.id.localeCompare(o.item.id)),n=new Set,r=0;for(let{item:i}of t){let o=i.resolution??i.close_reason;o?.trim()&&n.add(o.trim()),r+=(i.notes?.length??0)+(i.learnings?.length??0)}return{kind:e.kind,key:e.key,label:e.label,item_count:t.length,first_closed_at:t.at(-1).completion.timestamp,last_closed_at:t[0].completion.timestamp,representative_items:t.slice(0,5).map(({item:{id:i,title:o}})=>({id:i,title:o})),outcomes:[...n].sort().slice(0,5),knowledge_entries:r}}function Wl(e,t){if(!t.sourceCursor.trim())throw new TypeError("Workspace memory source cursor must be non-empty");if(!Number.isFinite(Date.parse(t.now)))throw new TypeError("Workspace memory clock must be a valid timestamp");let n=e.filter(o=>t.statusRegistry.terminal_done_statuses.has(O(o.status,t.statusRegistry))).map(o=>{let s=ys(o);if(!s.resolved)throw new TypeError(`Completed item ${o.id} has no reporting timestamp`);return{item:o,completion:s}}),r=new Map(e.map(o=>[o.id,o])),i=new Map;for(let o of n){let{item:s,completion:a}=o,d=Gl(a.timestamp),c=`epoch:${d}`,l=i.get(c)??{kind:"epoch",key:d,label:d,items:[]};l.items.push(o),i.set(c,l);let u=ql(s,r);if(u){let f=`epic:${u.id}`,h=i.get(f)??{kind:"epic",key:u.id,label:u.title,items:[]};h.items.push(o),i.set(f,h)}}return{format_version:_s,source_cursor:t.sourceCursor,source_item_count:e.length,generated_at:t.now,completion_time_sources:n.reduce((o,{completion:s})=>(o[s.source]+=1,o),{completed_at:0,closed_at:0,updated_at:0}),rollups:[...i.values()].map(zl).sort((o,s)=>s.last_closed_at.localeCompare(o.last_closed_at)||o.kind.localeCompare(s.kind)||o.key.localeCompare(s.key))}}function Vl(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"&&e.id.length>0&&"title"in e&&typeof e.title=="string"}function Yl(e){if(typeof e!="object"||e===null)return!1;let t=e,n=[t.key,t.label].every(i=>typeof i=="string"&&i.length>0),r=[t.first_closed_at,t.last_closed_at].every(i=>typeof i=="string"&&Number.isFinite(Date.parse(i)));return(t.kind==="epoch"||t.kind==="epic")&&n&&Number.isSafeInteger(t.item_count)&&t.item_count>0&&r&&Array.isArray(t.representative_items)&&t.representative_items.every(Vl)&&Array.isArray(t.outcomes)&&t.outcomes.every(i=>typeof i=="string")&&Number.isSafeInteger(t.knowledge_entries)&&t.knowledge_entries>=0}function Xl(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return t.format_version!==_s||typeof t.source_cursor!="string"||!t.source_cursor.trim()||!Number.isSafeInteger(t.source_item_count)||t.source_item_count<0||typeof t.generated_at!="string"||!Number.isFinite(Date.parse(t.generated_at))||!Array.isArray(t.rollups)?null:t.rollups.every(Yl)?t:null}function Ql(e){return`scan:${Kl("sha256").update(Ar(e.map(t=>[t.id,t.updated_at,t.status,t.parent]).sort(([t],[n])=>String(t).localeCompare(String(n))))).digest("hex")}`}async function Jl(e,t,n){return n!==void 0?n:(await Se(t))?.source_cursor??Ql(e)}async function Zl(e){try{let t=Xl(JSON.parse(await Bl.readFile(e,"utf8")));return{snapshot:t,invalid:t===null}}catch(t){return{snapshot:null,invalid:!(typeof t=="object"&&t!==null&&"code"in t&&at(t))}}}async function Bt(e,t){let n=Math.max(1,Math.floor(t.minimumItems??Hl));if(e.length<n)return{snapshot:null,cache_status:"skipped",warnings:[]};let r=await Jl(e,t.pmRoot,t.sourceCursor),i=Ul.join(t.pmRoot,"runtime","workspace-memory.json"),o=[],s=await Zl(i),a=s.snapshot;if(s.invalid&&o.push("workspace_memory_invalid"),a?.source_cursor===r&&a.source_item_count===e.length)return{snapshot:a,cache_status:"fresh",warnings:o};a&&o.push("workspace_memory_stale");let d=Wl(e,{statusRegistry:t.statusRegistry,sourceCursor:r,now:t.now});try{await Z(i,`${JSON.stringify(d)}
|
|
10
|
+
`)}catch{o.push("workspace_memory_write_failed")}return{snapshot:d,cache_status:"rebuilt",warnings:o}}function ef(e,t,n=ws){let r=Math.max(0,Math.floor(t)),i=0,o=[];for(let s of e.rollups){if(o.length>=Math.max(0,Math.floor(n)))break;let a=Math.ceil(JSON.stringify(s).length/4);i+a>r||(o.push(s),i+=a)}return o}function bs(e,t,n=ws){if(e.snapshot===null)return;let r=ef(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",source_cursor:e.snapshot.source_cursor,...e.snapshot.completion_time_sources?{completion_time_sources:{...e.snapshot.completion_time_sources}}:{},rollups:r}}function tf(e,t,n=5){if(e===null)return[];let r=t.trim().toLowerCase().split(/\s+/u).filter(Boolean);return r.length===0?[]:e.rollups.map(i=>({rollup:i,score:r.filter(o=>[i.key,i.label,...i.outcomes,...i.representative_items.flatMap(s=>[s.id,s.title])].join(" ").toLowerCase().includes(o)).length})).filter(({score:i})=>i>0).sort((i,o)=>o.score-i.score||o.rollup.last_closed_at.localeCompare(i.rollup.last_closed_at)||i.rollup.key.localeCompare(o.rollup.key)).slice(0,Math.max(0,Math.floor(n))).map(({rollup:i})=>i)}function ks(e,t,n=5){let r=tf(e.snapshot,t,n);if(r.length!==0)return{cache_status:e.cache_status==="fresh"?"fresh":"rebuilt",matches:r}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="97c1e310-3cd9-5846-a54c-d019b0351541")}catch{}})();var vs=16;async function Ss(e,t,n){let r=L(t,R()).type_to_folder,i=[],o=new Set,s=n;for(;s&&i.length<vs;){let a=s.trim().toLowerCase();if(!a||o.has(a))break;o.add(a);let d=await z(e,s,t.id_prefix,t.item_format,r);if(!d)break;let c=await W(d,{schema:t.schema});i.push(c.document.metadata.id),s=c.document.metadata.parent}return i}async function d_(e){await Br({pmRoot:e.pmRoot,principal:e.principal,itemId:e.itemId,lineageIds:await Ss(e.pmRoot,e.settings,e.itemId)})}async function u_(e){await Hr(e)}async function l_(e){await Gr({pmRoot:e.pmRoot,principal:e.principal,...e.itemId?{itemId:e.itemId,lineageIds:await Ss(e.pmRoot,e.settings,e.itemId)}:{}})}var f_={lineage_depth:vs,active_items:64,evidence_rows:32};function Es(e){if(!e)return;let t={};for(let n of e.active_item_ids)t[n]=1;e.focused_item_id&&(t[e.focused_item_id]=1);for(let n of e.evidence){let r=/^lineage:(.+)$/u.exec(n)?.[1];r&&t[r]===void 0&&(t[r]=.75)}return Object.keys(t).length>0?t:void 0}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ee5279f2-7489-59fb-8f96-f2e035434cce")}catch{}})();var nf=["markdown","toon","json","ndjson"],Qe=new Set(["Epic","Feature"]),Rs=10,As=1e4,Ms=["hierarchy","activity","progress","recently_created","unparented","workload"],rf=[...Ms,"blockers","files","staleness","tests"],of=/^(\d{4})-(\d{2})-(\d{2})/,sf=/^(\d{4})(\d{2})(\d{2})(?:[T ]?\d{2}|$)/,af=/^(\d{4})(\d{2})(\d{2})$/,cf=/^(\d{4})(\d{2})(\d{2})(?:[T\s]?)(\d{2})(\d{2})(\d{2})?(Z|[+-]\d{2}:?\d{2})?$/i;function df(e){if(!e)return;let t=e.trim().toLowerCase();if(!nf.includes(t))throw new p("Context format must be one of markdown|toon|json|ndjson",m.USAGE);return t}var xs=new Set(["id","title","type","status","priority","order","deadline","assignee","tags","tags_inherited","updated_at","parent","children_total","children_closed","completion_pct","blocked","blocker_ids","created_at"]);function uf(e){if(e===void 0)return;let t=[];for(let n of e.split(",")){let r=n.trim().toLowerCase();if(r.length!==0){if(!xs.has(r))throw new p(`Context --fields value not projectable: ${r} (valid: ${[...xs].join(", ")})`,m.USAGE);t.includes(r)||t.push(r)}}if(t.length===0)throw new p("Context --fields requires at least one field name",m.USAGE);return t}function Xe(e,t){return e.map(n=>{let r={},i=n;for(let o of t)r[o]=i[o]??null;return r})}function A_(e,t){let n=df(e.format);if(t.json&&n&&n!=="json"&&n!=="ndjson")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?n==="ndjson"?"ndjson":"json":n??"toon"}function lf(e,t){return U(e,"--limit")??(t==="full"?Number.MAX_SAFE_INTEGER:Rs)}function qn(e,t){if(e===void 0)return t;let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n)||n<1)throw new p("--token-budget must be a positive integer",m.USAGE);return n}function ff(e,t){return t>=As&&e===Number.MAX_SAFE_INTEGER?Rs:e}function mf(e,t){if(!e)return t.default_depth;let n=e.trim().toLowerCase();if(!rn.includes(n))throw new p(`Context --depth must be one of ${rn.join("|")}`,m.USAGE);return n}function pf(e,t,n){if(e&&e.length>0){let i=[];for(let o of e){let s=o.trim().toLowerCase();if(!ot.includes(s))throw new p(`Context --section must be one of ${ot.join("|")}`,m.USAGE);i.includes(s)||i.push(s)}return i}return t==="brief"?[]:t==="full"?[...ot]:(t==="deep"?rf:Ms).filter(i=>n.sections[i])}function hf(e,t){return e?U(e,"--activity-limit")??t.activity_limit:t.activity_limit}function gf(e,t){if(!e)return t.stale_threshold_days;let n=e.trim().toLowerCase(),r=/^(\d+)d?$/.exec(n);if(!r)throw new p("--stale-threshold must be a number of days (e.g. 7 or 7d)",m.USAGE);let i=parseInt(r[1],10);if(i<=0)throw new p("--stale-threshold must be positive",m.USAGE);return i}function Cs(e,t){let n=O(e,t),r=M("in_progress",t),i=M("open",t),o=M("blocked",t),s=M("draft",t);return r&&n===r?0:i&&n===i?1:o&&n===o?2:s&&n===s?3:t.active_statuses.has(n)?4:t.blocked_statuses.has(n)?5:t.terminal_statuses.has(n)?7:6}function Je(e,t){let n=M("closed",t);return O(e,t)===n}function zn(e,t){let n=M("in_progress",t);return O(e,t)===n}function Ds(e,t){let n=M("open",t);return O(e,t)===n}function yf(e,t){return t.blocked_statuses.has(O(e,t))}var _f=["compact","brief","fields","includeBody","include_body","parent"];function wf(e){let t={...e};for(let n of _f)delete t[n];return t}function Wn(e,t){let n=t.trim().toLowerCase(),r=e.find(a=>a.id.trim().toLowerCase()===n);if(!r)return{ids:new Set,found:!1};let i=Re(e),o=Ze(r.id,i);return{ids:new Set([r.id,...o.map(a=>a.id)].map(a=>a.trim().toLowerCase())),found:!0}}function bf(e){if(e===void 0)return;let t=e.trim();if(t.length===0)throw new p("Context --parent requires an item id",m.USAGE);return t}function kf(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:n-r}function vf(e,t){let n=e??null,r=t??null;return n===null&&r===null?0:n===null?1:r===null?-1:S(n,r)}function Sf(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function Ef(e){let t=of.exec(e)??sf.exec(e);if(!t)return!0;let n=Number.parseInt(t[1],10),r=Number.parseInt(t[2],10),i=Number.parseInt(t[3],10);return r>=1&&r<=12&&i>=1&&i<=Sf(n,r-1)}function xf(e){let t=af.exec(e);if(t)return`${t[1]}-${t[2]}-${t[3]}`;let n=cf.exec(e);if(n){let[,r,i,o,s,a,d,c]=n,l=d?`:${d}`:"",u=c&&c.length===5&&c!=="Z"?`${c.slice(0,3)}:${c.slice(3)}`:c??"";return`${r}-${i}-${o}T${s}:${a}${l}${u}`}return e}function Ls(e){if(typeof e!="string")return Number.NaN;let t=e.trim();if(t.length===0||!Ef(t))return Number.NaN;let n=Date.parse(xf(t));return Number.isFinite(n)?n:Number.NaN}function Gn(e){let t=Ls(e);return Number.isFinite(t)?new Date(t).toISOString():""}function Cf(e){let t=Ls(e);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):"unknown"}function Vn(e){if(typeof e!="string")return null;let t=e.trim();return t.length>0?t:null}function pe(e,t,n){let r=Cs(e.status,n)-Cs(t.status,n);if(r!==0)return r;let i=e.priority-t.priority;if(i!==0)return i;let o=kf(e.order,t.order);if(o!==0)return o;let s=vf(e.deadline,t.deadline);if(s!==0)return s;let a=S(Gn(t.updated_at),Gn(e.updated_at)),d=e.id.localeCompare(t.id);return a!==0?a:d}function Hn(e){return Math.max(1,Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4))}function Yn(e,t,n=new Set,r="context"){return os(e.ranked.map(i=>({id:i.id,item:i.item,rank:i.rank,score:i.score,required:n.has(i.id),cluster:i.item.parent?.trim()||i.item.type,token_costs:{identity:Hn({id:i.id,title:i.item.title}),summary:Hn({id:i.id,title:i.item.title,type:i.item.type,status:i.item.status,priority:i.item.priority,parent:i.item.parent}),full:Hn(i.item)}})),{tokenBudget:t,profile:r,latencyBudgetMs:25})}function Xn(e){return{...e,included:e.included.map(t=>({id:t.id,projection:t.projection,tokens:t.tokens}))}}function Qn(e,t,n){let r=n===void 0?e.ranked:e.ranked.filter(i=>n.has(i.id));return{model:e.model,available_signals:e.available_signals,items:r.map(i=>({id:i.id,rank:i.rank,baseline_rank:i.baseline_rank,score:i.score,contributions:i.contributions})),candidate_count:e.ranked.length,omitted_count:e.ranked.length-r.length,...t?{feature_store:{source:t.snapshot.source,cache_status:t.cache_status,source_cursor:t.snapshot.source_cursor,generated_at:t.snapshot.generated_at}}:{}}}function Os(e,t){return t>0?Math.round(e/t*100):0}function Re(e){let t=new Map;for(let n of e){let r=Vn(n.parent);if(!r)continue;let i=t.get(r)??[];i.push(n),t.set(r,i)}return t}function et(e,t,n){let r={id:e.id,title:e.title,type:e.type,status:e.status,priority:e.priority,order:e.order??null,deadline:e.deadline??null,assignee:e.assignee??null,tags:Array.isArray(e.tags)?[...e.tags]:[],updated_at:e.updated_at,parent:Vn(e.parent)};if(t&&n){let i=Ze(e.id,n),o=i.length;if(o>0){let s=i.filter(a=>Je(a.status,t)).length;r.children_total=o,r.children_closed=s,r.completion_pct=Os(s,o)}}return r}function If(e){let t=0,n=0,r=0,i=new Set;for(let o of e){if(i.add(o.item_id),o.kind==="deadline"){t+=1;continue}if(o.kind==="reminder"){n+=1;continue}r+=1}return{events:e.length,items:i.size,deadlines:t,reminders:n,scheduled:r}}function Ht(...e){return[...new Set(e.flatMap(t=>t??[]))].sort((t,n)=>t.localeCompare(n))}function Tf(e,t){return e.filter(n=>!t.terminal_statuses.has(O(n.item_status,t)))}function Ff(e,t,n,r){let i=new Map;for(let d of e)i.set(d.id,d);let o=Re(e),s=new Set(t.filter(d=>Qe.has(d.type)).map(d=>d.id)),a=[];for(let d of s){let c=i.get(d);if(!c)continue;let l=Ze(d,o),u=o.get(d)??[],f=0,h=0,y=0,g=0;for(let _ of l)Je(_.status,n)?f++:zn(_.status,n)?y++:yf(_.status,n)?g++:Ds(_.status,n)&&h++;let k=u.sort((_,w)=>pe(_,w,n)).slice(0,r).map(_=>{let w=Ze(_.id,o),b=w.filter(E=>Je(E.status,n)).length;return{id:_.id,title:_.title,type:_.type,status:_.status,children_total:w.length,children_closed:b}});a.push({id:c.id,title:c.title,type:c.type,status:c.status,children_total:l.length,children_closed:f,children_open:h,children_in_progress:y,children_blocked:g,children:k})}return a.sort((d,c)=>{let l=i.get(d.id),u=i.get(c.id);return pe(l,u,n)}).slice(0,r)}function Ze(e,t){let n=[],r=[e],i=new Set;for(;r.length>0;){let o=r.pop();if(i.has(o))continue;i.add(o);let s=t.get(o)??[];for(let a of s)n.push(a),r.push(a.id)}return n}async function Rf(e,t){return(await Gi({compact:!0,limit:String(e)},t)).compact_activity??[]}function Af(e,t,n,r,i){let o=new Map;for(let d of e){if(!d.parent)continue;let c=o.get(d.parent)??[];c.push(d),o.set(d.parent,c)}let s=t.filter(d=>Qe.has(d.type)),a=[];for(let d of s){let c=Ze(d.id,o),l=c.length;if(l===0)continue;let u=0,f=0,h=0,y=0;for(let g of c)Je(g.status,r)?u++:n.has(g.id.trim().toLowerCase())?y++:zn(g.status,r)?h++:Ds(g.status,r)&&f++;a.push({id:d.id,title:d.title,type:d.type,total:l,closed:u,open:f,in_progress:h,blocked:y,completion_pct:Os(u,l)})}return a.sort((d,c)=>d.completion_pct-c.completion_pct).slice(0,i)}function Mf(e,t,n,r){let i=new Map(t.map(o=>[o.id.trim().toLowerCase(),o]));return e.slice(0,r).map(o=>{let s=mn(o,i,n),a=s.find(c=>!c.resolved)?.id??s[0]?.id??null,d=a?i.get(a.trim().toLowerCase()):void 0;return{id:o.id,title:o.title,blocked_by:a,blocked_by_title:d?.title??null,blocked_by_status:d?.status??null,blocked_reason:o.blocked_reason??null,unblock_note:o.unblock_note??null}})}function Df(e,t){let n=new Map;for(let r of e)for(let i of r.files??[]){let o=n.get(i.path)??new Set;o.add(r.id),n.set(i.path,o)}return[...n.entries()].map(([r,i])=>({path:r,references:i.size,items:[...i].sort()})).sort((r,i)=>i.references-r.references).slice(0,t)}function Lf(e,t,n){let r=new Map;for(let i of e){let o=i.assignee??null,s=r.get(o)??[];s.push(i),r.set(o,s)}return[...r.entries()].map(([i,o])=>({assignee:i,active:o.length,in_progress:o.filter(s=>zn(s.status,t)).length,items:o.map(s=>s.id).sort()})).sort((i,o)=>o.active-i.active).slice(0,n)}function Of(e,t,n,r){let i=new Date(n).getTime()-t*24*60*60*1e3;return e.filter(o=>new Date(o.updated_at).getTime()<i).map(o=>({id:o.id,title:o.title,status:o.status,updated_at:o.updated_at,stale_days:Math.floor((new Date(n).getTime()-new Date(o.updated_at).getTime())/(1440*60*1e3))})).sort((o,s)=>s.stale_days-o.stale_days).slice(0,r)}function Nf(e,t,n,r){return e.map(i=>({item:i,sortKey:Gn(i.created_at)})).sort((i,o)=>{let s=S(o.sortKey,i.sortKey);return s!==0?s:i.item.id.localeCompare(o.item.id)}).slice(0,r).map(({item:i})=>({...et(i,t,n),created_at:i.created_at}))}function $f(e,t,n,r){return e.filter(i=>!Vn(i.parent)&&!Qe.has(i.type)).sort((i,o)=>pe(i,o,t)).slice(0,r).map(i=>et(i,t,n))}function Pf(e){let t=0,n=0,r=0,i=0,o=0,s=[];for(let a of e){(a.tests??[]).length>0&&t++;let d=a.test_runs??[];if(d.length>0){n++;let c=!1;for(let l of d)r+=l.passed??0,i+=l.failed??0,o+=l.skipped??0,(l.failed??0)>0&&(c=!0);c&&s.push(a.id)}}return{items_with_tests:t,items_with_recent_runs:n,recent_runs:{passed:r,failed:i,skipped:o},items_failing:s.sort()}}function Is(e){return`${new Date(e).toISOString().slice(11,16)}Z`}function Ns(e){let t=e.order===null?"-":String(e.order),n=e.deadline??"-",r=e.parent?` parent:${e.parent}`:"",i=e.children_total!==void 0&&e.children_closed!==void 0&&e.completion_pct!==void 0?` children:${e.children_closed}/${e.children_total} done:${e.completion_pct}%`:"",o=e.blocked===!0?` blocked:${e.blocker_ids?.join(",")||"lifecycle"}`:"";return`${e.id} p${e.priority} ${e.status} ${e.type} order:${t} deadline:${n}${r}${i}${o} ${e.title}`}function jf(e,t){let n=e;return t.map(r=>{let i=n[r];return Array.isArray(i)?`${r}:${i.join(",")}`:`${r}:${i??"-"}`}).join(" ")}function Uf(e){if("reference_only"in e){let n=e.kind==="reminder"?` \u2014 ${e.reminder_text??"reminder"}`:e.kind==="event"?` \u2014 ${e.event_title??"event"}${e.event_recurring?" (recurring)":""}`:"";return`${Is(e.at)} [${e.kind}] ${e.item_id} (see focus item)${n}`}let t=`${Is(e.at)} [${e.kind}] ${e.item_id} p${e.item_priority} ${e.item_status} ${e.item_title}`;if(e.kind==="reminder")return`${t} \u2014 ${e.reminder_text}`;if(e.kind==="event"){let n=e.event_recurring?" (recurring)":"",r=e.event_title??e.item_title;return`${t} \u2014 ${r}${n}`}return t}function Ts(e,t,n,r,i){if(e.push(`## ${t}`),n.length===0)e.push(r);else for(let o of n)e.push(`- ${i(o)}`);e.push("")}function Kf(e,t,n){if(t.blocked_fallback.length!==0){e.push("## Blocked fallback");for(let r of t.blocked_fallback)e.push(`- ${n(r)}`);e.push("")}}function Bf(e,t){if(e.push("## Agenda"),e.push(`- events: ${t.agenda.summary.events} (deadlines: ${t.agenda.summary.deadlines}, reminders: ${t.agenda.summary.reminders}, scheduled: ${t.agenda.summary.scheduled})`),t.agenda.events.length===0)e.push("No agenda events matched the selected filters.");else for(let n of t.agenda.events)e.push(`- ${Uf(n)}`);e.push("")}function Hf(e,t){if(!(!t.hierarchy||t.hierarchy.length===0)){e.push("## Hierarchy");for(let n of t.hierarchy){let r=n.children_total>0?Math.round(n.children_closed/n.children_total*100):0;e.push(`- ${n.id} ${n.type} ${n.status} "${n.title}" [${n.children_closed}/${n.children_total} done ${r}%]`);for(let i of n.children){let o=i.children_total>0?Math.round(i.children_closed/i.children_total*100):0;e.push(` - ${i.id} ${i.type} ${i.status} "${i.title}" [${i.children_closed}/${i.children_total} done ${o}%]`)}}e.push("")}}function Gf(e,t){if(!(!t.progress||t.progress.length===0)){e.push("## Progress");for(let n of t.progress)e.push(`- ${n.id} "${n.title}" ${n.completion_pct}% (${n.closed}/${n.total} closed, ${n.in_progress} wip, ${n.open} open, ${n.blocked} blocked)`);e.push("")}}function qf(e,t,n,r){if(!(!t.recently_created||t.recently_created.length===0)){e.push("## Recently created");for(let i of t.recently_created)e.push(n?`- ${r(i)}`:`- ${Cf(i.created_at)} ${Ns(i)}`);e.push("")}}function zf(e,t,n){if(!(!t.unparented||t.unparented.length===0)){e.push("## Unparented");for(let r of t.unparented)e.push(`- ${n(r)}`);e.push("")}}function Wf(e,t){if(!(!t.activity||t.activity.length===0)){e.push("## Recent activity");for(let n of t.activity){let r=n.msg?` ${n.msg}`:"";e.push(`- ${n.ts.slice(0,16)}Z ${n.id} ${n.op} by:${n.author}${r}`)}e.push("")}}function Vf(e,t){if(!(!t.blockers||t.blockers.length===0)){e.push("## Blockers");for(let n of t.blockers){let r=n.blocked_by?`blocked_by:${n.blocked_by}(${n.blocked_by_status??"?"})`:"blocked_by:-",i=n.blocked_reason?` reason:"${n.blocked_reason}"`:"",o=n.unblock_note?` unblock:"${n.unblock_note}"`:"";e.push(`- ${n.id} "${n.title}" ${r}${i}${o}`)}e.push("")}}function Yf(e,t){if(!(!t.files||t.files.length===0)){e.push("## Hot files");for(let n of t.files)e.push(`- ${n.path} refs:${n.references} items:[${n.items.join(",")}]`);e.push("")}}function Xf(e,t){if(!(!t.workload||t.workload.length===0)){e.push("## Workload");for(let n of t.workload){let r=n.assignee??"(unassigned)";e.push(`- ${r} active:${n.active} wip:${n.in_progress} items:[${n.items.join(",")}]`)}e.push("")}}function Qf(e,t){if(!(!t.staleness||t.staleness.length===0)){e.push("## Stale items");for(let n of t.staleness)e.push(`- ${n.id} ${n.status} stale:${n.stale_days}d last:${n.updated_at.slice(0,10)} "${n.title}"`);e.push("")}}function Jf(e,t){t.tests&&(e.push("## Test health"),e.push(`- items_with_tests: ${t.tests.items_with_tests}`),e.push(`- items_with_recent_runs: ${t.tests.items_with_recent_runs}`),e.push(`- passed: ${t.tests.recent_runs.passed}, failed: ${t.tests.recent_runs.failed}, skipped: ${t.tests.recent_runs.skipped}`),t.tests.items_failing.length>0&&e.push(`- items_failing: [${t.tests.items_failing.join(",")}]`),e.push(""))}function Zf(e,t){t.summary.active_items===0&&t.summary.blocked===0&&t.agenda.summary.events===0&&(e.push("## Suggestions"),e.push("No active work items or upcoming events. Consider:"),e.push('- `pm create --type Task --title "..."` to add a new work item'),e.push("- `pm list --status closed --limit 5` to review recent completions"),e.push("- `pm search <keywords>` to find related past work"),e.push("- `pm aggregate` for a full project status overview"))}function M_(e){let t=[],n=e.focus_fields,r=o=>n?jf(o,n):Ns(o);if(t.push("# pm context"),t.push(""),t.push(`- now: ${e.now}`),t.push(`- depth: ${e.depth}`),e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(`- active_items: ${e.summary.active_items} (in_progress: ${e.summary.in_progress}, open: ${e.summary.open})`),e.summary.total_items!==void 0&&t.push(`- total_items: ${e.summary.total_items} (closed: ${e.summary.closed??0}, canceled: ${e.summary.canceled??0})`),t.push(`- agenda_events: ${e.summary.agenda_events}`),t.push(`- blocked_fallback_used: ${e.summary.blocked_fallback_used}`),e.extension_health){let o=e.extension_health.packages.filter(s=>s.status==="degraded").map(s=>s.name);t.push(`- extensions: ${e.extension_health.ok} ok, ${e.extension_health.degraded} degraded${o.length>0?` (${o.join(", ")})`:""}`)}let i=e.sections_included.filter(o=>o!=="blockers"||(e.blockers?.length??0)>0);if(i.length>0&&t.push(`- sections: ${i.join(", ")}`),t.push(""),Ts(t,"High-level focus",e.high_level,"No high-level active items.",r),Ts(t,"Low-level focus",e.low_level,"No low-level active items.",r),Kf(t,e,r),Bf(t,e),e.workspace_memory){t.push("## Workspace memory");for(let o of e.workspace_memory.rollups)t.push(`- ${o.kind}:${o.key} \u2014 ${o.label} (${o.item_count} completed, latest ${o.last_closed_at})`);t.push("")}return Hf(t,e),Gf(t,e),qf(t,e,n,r),zf(t,e,r),Wf(t,e),Vf(t,e),Yf(t,e),Xf(t,e),Qf(t,e),Jf(t,e),Zf(t,e),t.join(`
|
|
11
|
+
`)}async function em(e,t){let n=C(process.cwd(),t.path),r=await F(n),i=r.context??xr.context,o=P(r.schema),s=mf(e.depth,i),a=lf(e.limit??e.maxItems,s);return{settings:r,contextSettings:i,statusRegistry:o,depth:s,limit:a,sectionsIncluded:pf(e.section,s,i),activityLimit:hf(e.activityLimit,i),staleThresholdDays:gf(e.staleThreshold,i),parentScope:bf(e.parent),focusFields:uf(e.fields),baseListOptions:wf(e)}}function Jn(e){return e.some(t=>["hierarchy","progress","blockers","staleness","recently_created","unparented"].includes(t))}function tm(e,t){return{...e,...t,noTruncate:!0,limit:void 0,offset:void 0,after:void 0}}async function nm(e,t){let n=Jn(t.sectionsIncluded),r=await ne(void 0,tm(t.baseListOptions,{excludeTerminal:!1}),e),i=r.items,o=i.filter(d=>!H(d.status,t.statusRegistry)),s=n||t.parentScope!==void 0?i:o,a=rm(t.parentScope,i);return a&&(o=o.filter(d=>a.has(d.id.trim().toLowerCase())),s=s.filter(d=>a.has(d.id.trim().toLowerCase()))),{listed:r,listedItemMetadata:o,allItems:s,fullCorpus:i,subtreeIds:a}}function rm(e,t){if(e===void 0)return;let n=Wn(t,e);if(!n.found)throw new p(`Context --parent item not found: ${e}`,m.NOT_FOUND);return n.ids}async function im(e,t,n,r,i,o,s,a,d,c,l,u,f,h,y){let g=[...e].sort((v,_e)=>pe(v,_e,i)),k=await jt({pmRoot:f,author:d,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),_=await Kt(g,{pmRoot:f,storeKey:"context",statusRegistry:i,now:a,author:d,usageAffinity:k.affinity,claimFocus:y}),w=await $t("context",_.candidates),b=w.ranked.map(v=>v.item),E=i.active_statuses,T=b.filter(v=>E.has(O(v.status,i))),I=u?ut(T,c,l,v=>v.id):0,x=u?T.slice(I,I+s):T,de=u&&x.length>0&&I+x.length<T.length,ge=de&&x.length>0?Le(l,x[x.length-1].id,I+x.length-1):void 0,oe=b.filter(v=>r.has(v.id.trim().toLowerCase())),K=new Set([...x.map(v=>v.id),...oe.slice(0,s).map(v=>v.id)]),se=Yn({...w,ranked:w.ranked.filter(v=>K.has(v.id))},h,new Set(Object.entries(y??{}).filter(([,v])=>v>=1).map(([v])=>v))),ye=se.included.map(v=>v.item),ue=ye.filter(v=>E.has(O(v.status,i))),it=ye.filter(v=>r.has(v.id.trim().toLowerCase())),en=Re(t),Q=Jn(o)?en:void 0,J=new Map(n.map(v=>[v.id.trim().toLowerCase(),v])),tn=v=>{let _e=et(v,i,Q);return r.has(v.id.trim().toLowerCase())&&(_e.blocked=!0,_e.blocker_ids=mn(v,J,i).filter(nn=>!nn.resolved).map(nn=>nn.id)),_e},Ya=ue.filter(v=>Qe.has(v.type)).slice(0,u?x.length:s).map(tn),Xa=ue.filter(v=>!Qe.has(v.type)).slice(0,u?x.length:s).map(tn),vr=T.length===0;return{activeItems:ue,blockedItems:it,highLevel:Ya,lowLevel:Xa,blockedFallback:vr?it.slice(0,s).map(tn):[],blockedFallbackUsed:vr,ranking:w,packing:se,featureStore:_,pageExtras:{...u?{applied_limit:s}:{},...de?{has_more:!0,truncated:!0}:{},...ge?{next_cursor:ge}:{}}}}function om(e){return ke("context",be(e,Lr))}function sm(e,t){return e.limit!==void 0||e.maxItems!==void 0||e.after!==void 0||t>=As}async function am(e,t,n,r){let i={...t.baseListOptions,view:"agenda",include:"all",limit:t.parentScope===void 0?String(t.limit):void 0},o=await ts(i,e),s=n===void 0?o.events:o.events.filter(c=>n.has(c.item_id.trim().toLowerCase())),a=Tf(s,t.statusRegistry).slice(0,t.limit),d=a.map(c=>r.has(c.item_id)?{at:c.at,date:c.date,kind:c.kind,item_id:c.item_id,reference_only:!0,...c.kind==="reminder"?{reminder_text:c.reminder_text}:{},...c.kind==="event"?{event_title:c.event_title,event_recurring:c.event_recurring}:{}}:c);return{agenda:o,agendaEvents:d,agendaSummary:If(a)}}function Fs(e,t,n){let r=String(t);return e.filter(i=>O(i.status,n)===r).length}async function cm(e){let{runtime:t,allItems:n,fullCorpus:r,blockedIds:i,focusGroups:o,now:s,global:a}=e,d=Re(n),c=n.filter(u=>!H(u.status,t.statusRegistry)),l=u=>t.sectionsIncluded.includes(u);return{hierarchy:l("hierarchy")?Ff(n,o.activeItems,t.statusRegistry,t.limit):void 0,activity:l("activity")?await Rf(t.activityLimit,a):void 0,progress:l("progress")?Af(n,o.activeItems,i,t.statusRegistry,t.limit):void 0,blockersSection:l("blockers")?Mf(o.blockedItems,r,t.statusRegistry,t.limit):void 0,recentlyCreated:l("recently_created")?Nf(c,t.statusRegistry,d,t.limit):void 0,unparented:l("unparented")?$f(c,t.statusRegistry,d,t.limit):void 0,filesSection:l("files")?Df(o.activeItems,t.limit):void 0,workload:l("workload")?Lf(o.activeItems,t.statusRegistry,t.limit):void 0,staleness:l("staleness")?Of(c,t.staleThresholdDays,s,t.limit):void 0,tests:l("tests")?Pf(o.activeItems):void 0}}function dm(e,t,n){if(!e)return{};let r=M("canceled",n);return{total_items:t.length,closed:t.filter(i=>Je(i.status,n)).length,canceled:t.filter(i=>O(i.status,n)===r).length}}function um(e,t,n){t.hierarchy&&(e.hierarchy=t.hierarchy),t.activity&&(e.activity=t.activity),t.progress&&(e.progress=t.progress),t.blockersSection&&(e.blockers=t.blockersSection),t.recentlyCreated&&(e.recently_created=t.recentlyCreated),t.unparented&&(e.unparented=t.unparented),t.filesSection&&(e.files=t.filesSection),t.workload&&(e.workload=t.workload),t.staleness&&(e.staleness=t.staleness),t.tests&&(e.tests=t.tests),n!==void 0&&n.length>0&&(e.warning_details=n)}function lm(e,t){t&&(e.focus_fields=t,e.high_level=Xe(e.high_level,t),e.low_level=Xe(e.low_level,t),e.blocked_fallback=Xe(e.blocked_fallback,t),e.recently_created&&(e.recently_created=Xe(e.recently_created,t)),e.unparented&&(e.unparented=Xe(e.unparented,t)))}function fm(e,t){let n=[e.high_level,e.low_level,e.blocked_fallback,e.recently_created??[],e.unparented??[]].flat();if(t){for(let o of n)delete o.tags,delete o.tags_inherited;return}let r=new Map(n.map(o=>[o.id,o])),i=new Map(n.map(o=>[o.id,o.tags?[...o.tags].sort().join("\0"):void 0]));for(let o of n){if(!o.parent||!o.tags)continue;let s=r.get(o.parent);s&&i.get(o.id)===i.get(s.id)&&(delete o.tags,o.tags_inherited=s.id)}}function mm(e,t,n){t.length>0||n.length>0||e.agenda.events.length>0||(e.suggestions=['pm create --type Task --title "..." to add a new work item',"pm list --status closed --limit 5 to review recent completions","pm search <keywords> to find related past work","pm aggregate for a full project status overview"])}async function pm(e,t,n,r){try{let i=new Set(t.packing.included.map(o=>o.id));await Pt({pmRoot:n,author:r,surface:"context",profile:t.packing.profile,rows:t.ranking.ranked.map(o=>({id:o.id,rank:o.rank,included:i.has(o.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.warnings=Ht(e.warnings,["context_usage_feedback_write_failed"])}}async function hm(e,t,n){if(e)return{};let i=(await Mr({pmRoot:t,settings:n,cwd:process.cwd(),noExtensions:!1})).discovered.map(s=>({name:s.name??s.directory,status:s.status==="ok"?"ok":"degraded"})).sort((s,a)=>s.name.localeCompare(a.name)),o=i.filter(s=>s.status==="degraded").length;return i.length===0?{}:{extension_health:{total:i.length,ok:i.length-o,degraded:o,packages:i.slice(0,20),...i.length>20?{truncated:!0}:{}}}}async function gm(e,t){let n=qr(),r=await Ur(e),i=n.instance||Kr(t);return Es(r.semantic_attribution?.[i])}async function D_(e,t){let n=C(process.cwd(),t.path),r=await em(e,t),i=await nm(t,r),o=ff(r.limit,i.fullCorpus.length),s={...r,limit:o,tokenBudget:qn(e.tokenBudget,Math.max(256,o*160))},a=ee(void 0,s.settings.author_default),d=await gm(n,a),c=hm(e.noExtensionHealth===!0,n,s.settings),l=wt(i.fullCorpus,s.statusRegistry),u=await im(i.listedItemMetadata,i.allItems,i.fullCorpus,l,s.statusRegistry,s.sectionsIncluded,s.limit,A(),a,e.after,om(e),sm(e,i.fullCorpus.length),n,s.tokenBudget,d),f=await am(t,s,i.subtreeIds,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),h=await Bt(i.fullCorpus,{pmRoot:n,statusRegistry:s.statusRegistry,now:f.agenda.now}),y=Ht(i.listed.warnings,f.agenda.warnings,u.ranking.warnings,[...u.featureStore.warnings],h.warnings),g=Fs(u.activeItems,M("in_progress",s.statusRegistry),s.statusRegistry),k=Fs(u.activeItems,M("open",s.statusRegistry),s.statusRegistry),_=await cm({runtime:s,allItems:i.allItems,fullCorpus:i.fullCorpus,blockedIds:l,focusGroups:u,now:f.agenda.now,global:t}),w=dm(Jn(s.sectionsIncluded),i.allItems,s.statusRegistry),b={output_default:"toon",now:f.agenda.now,depth:s.depth,sections_included:s.sectionsIncluded,window:{anchor:f.agenda.anchor,start:f.agenda.range.start,end:f.agenda.range.end,past:f.agenda.range.past,from:f.agenda.range.from,to:f.agenda.range.to},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,limit:e.limit??e.maxItems??null,parent:s.parentScope??null,token_budget:s.tokenBudget,runtime_filters:i.listed.filters.runtime_filters??f.agenda.filters.runtime_filters??{}},summary:{active_items:u.activeItems.length,in_progress:g,open:k,blocked:u.blockedItems.length,blocked_fallback_used:u.blockedFallbackUsed,high_level:u.highLevel.length,low_level:u.lowLevel.length,agenda_events:f.agendaSummary.events,...w},high_level:u.highLevel,low_level:u.lowLevel,blocked_fallback:u.blockedFallback,agenda:{summary:f.agendaSummary,events:f.agendaEvents},...u.pageExtras};return b.workspace_memory=bs(h,Math.min(800,Math.floor(s.tokenBudget*.2))),Object.assign(b,await c),um(b,_,u.featureStore.warning_details),fm(b,e.noTags===!0),e.explainRanking===!0&&(b.ranking=Qn(u.ranking,u.featureStore,new Set([...u.highLevel,...u.lowLevel,...u.blockedFallback].map(E=>E.id))),b.packing=Xn(u.packing)),lm(b,s.focusFields),y.length>0&&(b.warnings=y),mm(b,u.activeItems,u.blockedItems),await pm(b,u,n,a),b}(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]="3431d4d4-e053-5416-b3d1-6dbfbed0142d")}catch{}})();var ym=["markdown","toon","json"],_m=5,wm=1440*60*1e3;function bm(e){if(!e)return;let t=e.trim().toLowerCase();if(!ym.includes(t))throw new p("Next format must be one of markdown|toon|json",m.USAGE);return t}function G_(e,t){let n=bm(e.format);if(t.json&&n&&n!=="json")throw new p("Cannot combine --json with --format markdown|toon",m.USAGE);return t.json?"json":n??"toon"}function $s(e,t,n){let r=U(e,t);return r===void 0||r<=0?n:r}function Zn(e,t,n,r){return{...et(e.item,t,n),open_blocker_count:e.open_blockers.length,blockers:e.open_blockers.map(i=>({id:i.id,title:i.title,status:i.status})),unblocks:e.unblocks,rank:r}}function km(e,t,n,r){let i=e.item,o=[],s=M("in_progress",t);return o.push(O(i.status,t)===s?"in progress \u2014 resume to finish":"open and ready to start"),r&&o.push("completed container \u2014 governance closeout"),o.push(`priority p${i.priority}${i.priority===0?" (highest)":""}`),typeof i.deadline=="string"&&i.deadline.trim().length>0&&o.push(Sm(i.deadline,n)),o.push(Ii(i).length>0?"all blockers resolved":"no blockers"),typeof i.parent=="string"&&i.parent.trim().length>0&&o.push(`advances ${i.parent.trim()}`),e.unblocks.length>0&&o.push(`unblocks ${e.unblocks.length} item(s): ${e.unblocks.join(", ")}`),o}function js(e,t,n){let r=ee(n,t),i=[],o=[];for(let s of e){let a=typeof s.item.assignee=="string"?s.item.assignee.trim():"";a.length>0&&a!==r?o.push({id:s.item.id,assignee:a}):i.push(s)}return{available:i,held:o}}var q_={partitionCallerOwnedReady:js,resolveNextCallerAuthor:(e,t)=>Us(e,t)};function vm(e,t){let n=e.filter(r=>r.item.type.trim().toLowerCase()==="decision");return{agent:t?e:e.filter(r=>r.item.type.trim().toLowerCase()!=="decision"),decisions:t?[]:n}}function Sm(e,t){let n=Date.parse(e);if(!Number.isFinite(n))return`deadline ${e.trim()}`;let r=new Date(n).toISOString().slice(0,10),i=new Date(Date.parse(t)).toISOString().slice(0,10),o=Math.round((Date.parse(r)-Date.parse(i))/wm);return o<0?`deadline ${r} (overdue ${-o}d)`:o===0?`deadline ${r} (due today)`:`deadline ${r} (in ${o}d)`}function Em(e,t){let n=M("in_progress",t);return e.filter(r=>O(r.status,t)===n).length}function er(e,t){return(t.get(e.id.trim().toLowerCase())??[]).length>0}function xm(e,t){return{type:e.type,tag:e.tag,priority:typeof e.priority=="number"?String(e.priority):e.priority,assignee:e.assignee,assigneeFilter:e.assigneeFilter,sprint:e.sprint,release:e.release,noTruncate:!0,...t}}function Ps(e,t,n){return[...e].sort((r,i)=>{let o=er(r.item,t),s=er(i.item,t);return o!==s?Number(o)-Number(s):pe(r.item,i.item,n)})}function Cm(e){return e.projectedReady.length===0?null:{...e.readyRows[0],reasons:km(e.projectedReady[0],e.statusRegistry,e.now,e.completedContainer)}}function Im(e,t){if(e===null){if(t.length>0){let n=t.find(r=>r.blockers.length>0);return[n?`${t.length} item(s) are blocked; unblock the top one by closing ${n.blockers.map(r=>r.id).join(", ")}`:`${t.length} item(s) are blocked; add blocker context or move the top item back to an active status`,"pm next --ready-only after a blocker closes to re-check ready work",'pm create --type Task --title "..." to add new ready work']}return['pm create --type Task --title "..." to add a new work item',"pm list --status in_progress to review work already underway","pm context --depth deep for the full project snapshot"]}}function Tm(e,t,n){let r={};return e>n&&(r.decision_needed_total=e),t>n&&(r.held_by_others_total=t),Object.keys(r).length>0?r:void 0}async function Fm(e){try{let t=new Set(e.packing.included.map(n=>n.id));await Pt({pmRoot:e.pmRoot,author:e.author,surface:"next",profile:e.packing.profile,rows:e.ranking.ranked.map(n=>({id:n.id,rank:n.rank,included:t.has(n.id)})),enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"})}catch{e.result.warnings=Ht(e.result.warnings,["context_usage_feedback_write_failed"])}}async function Rm(e){let t=[...new Set([...e.candidatesWarnings??[],...e.corpusWarnings??[],...e.readyRanking.warnings??[],...e.featureStore.warnings])].sort((n,r)=>n.localeCompare(r));return t.length>0&&(e.result.warnings=t),e.explainRanking&&(e.result.ranking=Qn(e.readyRanking,e.featureStore),e.result.packing=Xn(e.packing)),e.result.suggestions=Im(e.recommended,e.blockedRows),await Fm({result:e.result,pmRoot:e.pmRoot,author:e.author,packing:e.packing,ranking:e.readyRanking}),e.result}function Am(e,t,n){if(!n)return e;let r=Wn(t,n);if(!r.found)throw new p(`Next --parent item not found: ${n}`,m.NOT_FOUND);return e.filter(i=>r.ids.has(i.id.trim().toLowerCase()))}async function Mm(e,t,n,r,i,o,s){let a=e.filter(g=>!er(g.item,t)),d=a.length>0?a:e,c=await jt({pmRoot:o,author:i,enabled:process.env.PM_CONTEXT_USAGE_DISABLED!=="1"}),l=await Kt(d.map(g=>g.item),{pmRoot:o,storeKey:"next",statusRegistry:n,now:r,author:i,usageAffinity:c.affinity}),u=await $t("next",l.candidates),f=Yn(u,s,new Set,"next"),h=new Map(d.map(g=>[g.item.id,g]));return{projectedReady:u.ranked.map(g=>h.get(g.id)).filter(g=>g!==void 0),ranking:u,completedContainer:a.length===0,packing:f,featureStore:l}}function Us(e,t){let n=e.assignee?.trim();return ee(e.callerAuthor??(n&&n.length>0?n:void 0),t)}async function z_(e,t){let n=C(process.cwd(),t.path),r=await F(n),i=Us(e,r.author_default),o=P(r.schema),s=A(),a=$s(e.limit,"--limit",_m),d=qn(e.tokenBudget,Math.max(192,a*128)),c=$s(e.blockedLimit,"--blocked-limit",a),l=e.readyOnly===!0,u=typeof e.parent=="string"?e.parent.trim():"",f=await ne(void 0,xm(e,{excludeTerminal:!0}),t),h=await ne(void 0,{excludeTerminal:!1,noTruncate:!0},t),y=Am(f.items,h.items,u),g=h.items,k=Ti(y,g,o),_=Re(g),w=vm(k.ready,e.includeDecisions===!0),b=js(w.agent,r.author_default,i),E=Ps(b.available,_,o),T=[...k.blocked].sort((Q,J)=>pe(Q.item,J.item,o)),{projectedReady:I,ranking:x,completedContainer:de,packing:ge,featureStore:oe}=await Mm(E,_,o,s,i,n,d),K=I.map((Q,J)=>Zn(Q,o,_,J+1)),se=T.map((Q,J)=>Zn(Q,o,_,J+1)),ye=Ps(w.decisions,_,o).map((Q,J)=>Zn(Q,o,_,J+1)),ue=Cm({projectedReady:I,readyRows:K,statusRegistry:o,now:s,completedContainer:de}),it=Tm(ye.length,b.held.length,a),en={output_default:"toon",now:s,recommended:ue,ready:K.slice(1,a+1),decision_needed:ye.slice(0,a),blocked:l?[]:se.slice(0,c),held_by_others:b.held.slice(0,a),summary:{recommended:ue!==null,ready:K.length,blocked:se.length,in_progress:Em(K,o),candidates:k.active_count,containers:k.container_count,decision_needed:ye.length,held_by_others:b.held.length},filters:{type:e.type??null,tag:e.tag??null,priority:e.priority??null,assignee:e.assignee??null,assignee_filter:e.assigneeFilter??null,sprint:e.sprint??null,release:e.release??null,parent:u.length>0?u:null,limit:a,blocked_limit:c,ready_only:l,include_decisions:e.includeDecisions===!0,token_budget:d},truncation:it};return Rm({result:en,recommended:ue,blockedRows:se,candidatesWarnings:f.warnings,corpusWarnings:h.warnings,readyRanking:x,explainRanking:e.explainRanking===!0,pmRoot:n,author:i,packing:ge,featureStore:oe})}function W_(e){let t=["# pm next","",...Dm(e)];if(t.push(...Gt("Recommended",Lm(e.recommended),"No ready work.")),t.push(...Gt("Decision needed",(e.decision_needed??[]).map(n=>`- ${qt(n)}`),"No human-gated decisions.")),t.push(...Gt("Ready",e.ready.map(n=>`- ${qt(n)}`),"No ready items.")),e.filters.ready_only||t.push(...Gt("Blocked",e.blocked.map(n=>`- ${Om(n)}`),"No blocked items.")),e.suggestions&&e.suggestions.length>0){t.push("## Suggestions");for(let n of e.suggestions)t.push(`- ${n}`)}return t.join(`
|
|
12
|
+
`).trimEnd()}function Dm(e){let t=[`- now: ${e.now}`,`- ready: ${e.summary.ready} (in_progress: ${e.summary.in_progress}), blocked: ${e.summary.blocked}, candidates: ${e.summary.candidates}`];return e.filters.parent&&t.push(`- scope: subtree of ${e.filters.parent}`),t.push(""),t}function Lm(e){return e?[`- ${qt(e)}`,` why: ${e.reasons.join("; ")}`]:[]}function Gt(e,t,n){return[`## ${e}`,...t.length===0?[n]:t,""]}function Om(e){let t=e.blockers.map(n=>`${n.id}(${n.status??"?"})`).join(", ");return`${qt(e)} blocked_by:${t}`}function qt(e){let t=e.deadline??"-",n=e.parent?` parent:${e.parent}`:"",r=e.unblocks.length>0?` unblocks:${e.unblocks.length}`:"";return`${Number.isInteger(e.rank)?`#${e.rank} `:""}${e.id} p${e.priority} ${e.status} ${e.type} deadline:${t}${n}${r} ${e.title}`}(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 Nm(e,t){return t===void 0?e:e.slice(Math.max(0,e.length-t))}function $m(e,t){return e.map((n,r)=>{let i=new Set,o=Zr(n.patch);for(let s of o)i.add(cn(s.path)),s.from&&i.add(cn(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 Pm(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=L(r,R()),o=e.trim()===ht,s=o?ht:gt(e,r.id_prefix),a=await z(n,s,r.id_prefix,r.item_format,i.type_to_folder),d=a?.id??s,c=o?ni(n):le(n,d);if(!a&&!await D(c))throw new p(`Item ${e} not found`,m.NOT_FOUND);return a&&await oi({pmRoot:n,settings:r,itemId:a.id,commandLabel:"history"}),{historyPath:c,located:a,resolvedId:d,settings:r}}async function ew(e,t,n){let r=fe(t.limit),{historyPath:i,located:o,resolvedId:s,settings:a}=await Pm(e,n),d=await G(i,s),c=a.agent_identity.identity_vocabulary,l=kt(a.agent_identity.harness_signals),u=St({harness:t.harness,agentInstance:t.agentInstance,provenance:t.provenanceFilter},c,l),f=d.map((I,x)=>({entry:I,version:x+1})).filter(({entry:I})=>u(I)),h=Nm(f,r),y=h.map(({entry:I})=>I),g=t.compact===!0,k=g?$m(y,Math.max(0,d.length-y.length)):void 0,_=t.provenance===!0?h.map(({entry:I,version:x})=>vt(I,c,{itemId:s,version:x})):void 0,w=t.provenance===!0?"provenance":g?"compact":"full",b={compact:{compact_history:k},provenance:{provenance_history:_},full:{history:y}}[w],T={id:s,...b,compact:g,projection:{mode:w,row_key:{compact:"compact_history",provenance:"provenance_history",full:"history"}[w]},omission_receipt:ft("history",w),count:y.length,limit:r??null,...t.provenanceSummary===!0?{provenance_summary:Et(f.map(({entry:I})=>I),c,l)}:{}};if((t.diff||t.field!==void 0)&&(T.diff=yi(d,{windowStartIndex:Math.max(0,d.length-y.length),field:t.field})),t.verify){let I=o?(await W(o,{schema:a.schema})).document:void 0;if(T.verification=$i(d,I),s===ht&&T.verification.ok){let x=await ri(C(process.cwd(),n.path));T.verification={...T.verification,ok:x.ok,errors:x.ok?T.verification.errors:[...T.verification.errors,"verify_failed:workspace_state_mismatch"],workspace_state_matches_latest:x.ok,workspace_state_mismatches:x.mismatched_documents,workspace_state_missing:x.missing_documents,workspace_state_unreadable:x.unreadable_documents}}}return 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]="2e14b978-95c9-5922-b8cb-c49d24e6f8c4")}catch{}})();var Ks=1e6,Bs=20;function Hs(e,t,n,r=Bs){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>Ks)throw new p(`Child projection exceeded the ${Ks.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,H(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})),l=s.length>c.length,u=r===0?Bs: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:l,next_offset:l?c.length:null,continuation:l?`pm list --status all --parent ${e} --offset ${c.length} --limit ${u}`: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 jm=new Set(["event","meeting","reminder"]);function Um(e){return jm.has(e.type.trim().toLowerCase())||e.deadline!==void 0||(e.reminders?.length??0)>0||(e.events?.length??0)>0}function tr(e){if(!Um(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 Km=["brief","standard","deep"],Bm=new Set(["epic","feature","milestone","plan"]),Hm=new Set(Object.keys(Er).map(e=>e.toLowerCase()));function rr(e){return Object.fromEntries(["comments","notes","learnings","files","tests","docs","reminders","events"].map(n=>[n,e[n]?.length??0]))}function Gm(e,t){let n=rr(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"]:[],...tr(e)?["schedule"]:[]]}function qs(e){let t=e.trim().toLowerCase();return t.length>0&&(Bm.has(t)||!Hm.has(t))}function Gs(e){return{ts:e.ts,author:e.author,message:e.message??null}}function qm(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?Gs(i):null,last_release:o?Gs(o):null}}function zm(e){if(e===void 0||e.trim().length===0)return"standard";let t=e.trim().toLowerCase();if(t==="full")return"deep";if(Km.includes(t))return t;throw new p("Get --depth must be one of brief|standard|deep|full",m.USAGE)}function Wm(e,t){let n=rr(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:l,...u}=e;return{...u,notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:n}}function Vm(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 Wt(e){return e.startsWith("item.")?e.slice(5):e}function Ym(e,t,n){if(e===null)return;let r=new Set([...st,...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(l=>[l,`item.${l}`]),...i,...o,...s,...a].sort(),c=e.filter(l=>{let u=Wt(l);return!r.has(u)&&!i.has(u)&&!o.has(u)&&!s.has(u)&&!a.has(u)});if(c.length>0){let l=["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:lt(l),suggested_retry_args:l}})}}var Xm=new Set(["comments","notes","learnings","files","tests","test_runs","docs","reminders","events","dependencies","plan_steps","plan_decisions","plan_discoveries","plan_validation"]);function Qm(e,t,n){return Object.hasOwn(t,n)?t[n]:e[n]!==void 0?e[n]:Xm.has(n)?[]:void 0}function Jm(e,t){let n=e,r={notes_count:e.notes?.length??0,tests_count:e.tests?.length??0,collection_counts:rr(e)},i={id:e.id};for(let o of t){let s=Wt(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]=Qm(n,r,s))}return i}function tt(e,t){return e?.some(n=>n===t||n===`item.${t}`)??!1}function zt(e,t){return e.some(n=>{let r=Wt(n);return r===t||r.startsWith(`${t}.`)})}function Zm(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":zm(e.depth),treeDepth:e.tree===!0?U(e.treeDepth,"--tree-depth"):void 0,fields:Vm(e.fields),fieldProjection:e.fields!==void 0}}async function ep(e,t,n){let r=C(process.cwd(),t.path);if(!await D($(r)))throw new p(`Tracker is not initialized at ${r}. Run pm init first.`,m.NOT_FOUND);let i=await F(r),o=L(i,R());if(n!==void 0){let d=await Pi(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 z(r,e,i.id_prefix,i.item_format,o.type_to_folder);if(!s)throw await pi(r,e,i.id_prefix,o.type_to_folder);let a=await W(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 tp(e,t,n,r){let i=q(t.schema).definitions.map(o=>o.metadata_key);if(Ym(e,i,r),n&&zt(e??[],"children"))throw new p("Get --at cannot project children because workspace-level historical relationships are not yet indexed.",m.USAGE)}function nr(e){let{fieldProjection:t,depth:n,fields:r,field:i}=e;return t?i==="body"||i==="linked"?tt(r,i):zt(r,i):n!=="brief"}async function np(e,t){if(!t)return;let n=le(e.pmRoot,e.locatedId),r=await G(n,e.locatedId);return qm(e.metadata.assignee,e.historical?r.slice(0,e.historical.as_of_version):r)}function rp(e,t,n,r){let i=r||tt(n,"linked.files"),o=r||tt(n,"linked.tests"),s=r||tt(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 ip(e,t,n,r){if(!t)return;let i=P(e.settings.schema),o=await ce(e.pmRoot,e.settings.item_format,e.typeToFolder,void 0,e.settings.schema),s=Hs(e.locatedId,o,i,r?void 0:0);return s.count>0||n?s:void 0}function op(e,t,n,r){if(!r)return;let i=tr(t.metadata);if(i){if(n===null||tt(n,"schedule")){e.schedule=i;return}e.schedule=Object.fromEntries(Object.entries(i).filter(([o])=>n.some(s=>Wt(s)===`schedule.${o}`)))}}async function sp(e,t,n,r){if(t.tree!==!0)return;let i=await ne(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 _w(e,t,n={}){let r=Zm(n),i=await ep(e,t,n.at);tp(r.fields,i.settings,i.historical!==void 0,i.locatedId);let o=nr({...r,field:"body"}),s=nr({...r,field:"linked"}),a=nr({...r,field:"claim_state"}),d=i.historical===void 0&&(r.fieldProjection?zt(r.fields,"children"):r.depth!=="brief"&&qs(i.metadata.type)),c=r.fieldProjection?zt(r.fields,"schedule"):r.depth!=="brief",l=await np(i,a),u={item:r.fieldProjection?Jm(i.metadata,r.fields):Wm(i.metadata,r.depth)};o&&(u.item.body=i.body),rp(u,i,r.fields,s),l&&(u.claim_state=l),op(u,i,r.fields,c);let f=await ip(i,d,r.fieldProjection,r.fieldProjection||r.depth==="deep");f!==void 0&&(u.children=f);let h=await sp(i,n,r.treeDepth,t);if(h!==void 0&&(u.tree=h),i.historical&&(u.reconstructed=!0,u.as_of_version=i.historical.as_of_version,u.as_of_timestamp=i.historical.as_of_timestamp),i.historical===void 0)try{await ps({pmRoot:i.pmRoot,author:ee(void 0,i.settings.author_default),itemIds:[i.locatedId],intent:"get"})}catch{}return $r(u,Gm(i.metadata,i.body)),u}var ww={shouldAutoIncludeGetChildren:qs};(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 zs(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 ap=[{optionKey:"status",summaryKey:"status",normalize:e=>zs(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 nt(e){let{mode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,runtimeFieldFilters:c}=e,l={};return xn(l,r,ap),Object.assign(l,ze(r)),Object.assign(l,qe(r)),n!==void 0&&n!=="or"&&(l.match_mode=n),i&&(l.include_linked=!0),o&&(l.title_exact=!0),s&&(l.phrase_exact=!0),a>0&&(l.score_threshold=a),t==="hybrid"&&r.semanticWeight!==void 0&&(l.hybrid_semantic_weight=d),r.limit!==void 0&&(l.limit=r.limit),c&&Object.keys(c).length>0&&(l.runtime_filters=c),l}function rt(e){let{effectiveMode:t,matchMode:n,options:r,includeLinked:i,titleExact:o,phraseExact:s,scoreThreshold:a,hybridSemanticWeight:d,queryExpansion:c,rerank:l,runtimeFieldFilters:u}=e,f=h=>h??null;return{mode:t,match_mode:n,status:r.status===void 0||zs(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),...ze(r),...qe(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:l.enabled,rerank_model:l.model,rerank_top_k:l.top_k,limit:f(r.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]="0fc9ed92-daf5-5fa2-b9a4-ee6c36256ed1")}catch{}})();function cp(e){return ke("search",{query:e.query.trim(),mode:e.mode,options:be(e.searchOptions,Or)})}function Ws(e){let t=Nr(e.sorted,{cursor:e.searchOptions.after,fingerprint:cp(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 dp=["id","title","status","type","priority","updated_at","score","matched_fields"],up=new Set(["score","matched_fields","highlights"]),Vs=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 Ys(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 Vt(e){return e===!0}function Xs(e){return Rr(e,0,1)??void 0}function Qs(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 Js(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 Ae(e,t){if(e==null)return;let n=String(e).trim();if(n.length!==0)return B(n,new Date,t)}function ie(e){return e.toLowerCase().replace(/\s+/g," ").trim()}function ir(e,t){if(e!==void 0)return B(e,new Date,t)}function lp(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 or(e){let t=e.compact===!0,n=e.full===!0,r=lp(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:[...dp]}:n?{mode:"full",fields:[]}:r?{mode:"fields",fields:r}:{mode:"full",fields:[]}}function sr(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([...up,...Vs,...[...Vs].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:lt(s),suggested_retry_args:s}})}}function ar(e){let t=ie(e);if(!t)throw new p("Search query must not be empty",m.USAGE);return t.split(/\s+/u).filter(Boolean)}function cr(e){let t=e.search?.max_results;return typeof t=="number"&&Number.isFinite(t)&&t>0?Math.floor(t):50}function dr(e){let t=e.search?.score_threshold;return typeof t=="number"&&Number.isFinite(t)?t:0}function ur(e){let t=e.search?.hybrid_semantic_weight;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&t<=1?t:.7}function lr(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 Xt from"node:fs/promises";import yr 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 fr=4,fp=20,mp=200,pp=new Set(["a","an","and","for","from","in","into","of","on","or","the","to","with"]);function mr(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 hp(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 gp(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 Zs(e,t=fr){let n=e.trim().replaceAll(/\s+/g," ");if(n.length===0)return[];let r=Ie(n);if(r.length===0)return[n];let i=r.filter(a=>!pp.has(a.toLowerCase())),o=r.map(a=>hp(a)),s=i.map(a=>gp(a));return mr([n,r.join(" "),i.join(" "),o.join(" "),s.join(" ")],Math.max(1,t))}function ea(e){let t=Array.isArray(e)?e:e?.queries;return Array.isArray(t)?mr(t.filter(n=>typeof n=="string"),fr):[]}function ta(e,t,n){return mr([...e,...t],Math.max(1,n))}function na(e,t){let r=e.search?.query_expansion,i=De(r?.provider);return{enabled:r?.enabled===!0,provider:i??t,max_queries:fr}}function ra(e,t){let r=e.search?.rerank,i=De(r?.model),s=Fr(r?.top_k)??fp;return{enabled:r?.enabled===!0,model:i??t,top_k:Math.min(mp,s)}}function ia(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=De(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 yp(e,t){let n=e.length,r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function oa(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function _p(e,t,n){if(!e||!t||e.length===0||t.length===0||e.length!==t.length)return 0;let r=yp(e,t),i=oa(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 sa(e,t,n,r,i){if(r.length===0)return new Map;let o=De(t)??e.model,s=o===e.model?e:{...e,model:o},a=[n.trim(),...r.map(f=>f.text)],d=await _t(s,a,i?{timeout_ms:i}:{}),c=d[0];if(!c)return new Map;let l=oa(c),u=new Map;for(let f=0;f<r.length;f+=1){let h=r[f],y=d[f+1];if(!y)continue;let g=_p(c,y,l);u.set(h.id,Math.max(0,Math.min(1,(g+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]="3fd6ed70-6633-5886-90a6-3d4cc16b3ef0")}catch{}})();var wp=1.2,bp=.75;function pr(e){return Ie(e)}function kp(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}function ca(e){let t=[],n=new Map,r=0;for(let o of e){let s=pr(o.text),a=kp(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 vp(e,t){return Math.log(1+(e-t+.5)/(t+.5))}function da(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,vp(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 l=s.termFrequencies.get(d);if(l===void 0)continue;let u=1-n.b+n.b*s.length/e.averageDocumentLength,f=l+n.k1*u;a+=c*(l*(n.k1+1)/f)}a>0&&r.set(s.id,a)}return r}function aa(e,t,n,r){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(r,Math.max(n,e))}function ua(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 la(e){let t=e?.search?.bm25;return{k1:aa(t?.k1,wp,0,1e3),b:aa(t?.b,bp,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 Sp=2,Ep=120,xp=6,Cp=40,Ip=1e3,Tp=900,Fp="\xAB",Rp="\xBB",fa=60,ha=["tag","status","type","priority"];function ga(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 ya(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase(),n=ga(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 _a(e,t){let n=ya(t);return`search_${e}_fallback:${n}:using_keyword_mode`}async function wa(e,t,n){try{let r=await Ei(e);r.warnings.length>0&&n.push(...r.warnings);let i=Ci(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.)
|
|
13
|
+
`)}catch{}}var Eb={applyFilters:xa,applyExactQueryFilters:Ea,applyInlineQueryFilters:ka,buildHitHighlights:Ma,buildVerboseSearchFilters:rt,buildExplicitSemanticFallbackWarning:_a,buildCompactSearchFilterSummary:nt,buildHybridLexicalScore:Oa,buildRerankCorpus:Ga,buildSemanticHits:Ua,classifyImplicitSemanticFallbackReason:ya,collectErrorCauseCodes:ga,collectExactPhraseFields:va,collectLinkedPaths:Ca,combineHybridHits:kr,computeBuiltInBm25Hits:Ba,computeSemanticOrHybridHits:qa,resolveBuiltInBm25Mode:Ka,countOccurrences:wr,dependencyEntries:_r,documentContainsExactPhrase:Sa,emptySearchResult:Na,highlightFieldSnippet:Aa,loadDocuments:za,markTokenRuns:Ra,parseInlineQueryFilters:ba,maybeEmitVectorIndexStaleWarning:wa,loadLinkedCorpus:Ta,mergeVectorHitsById:Ha,normalizeExtensionProviderHits:ja,normalizeScoreMap:hr,parseProjectionConfig:or,parseTimestampWindow:Ae,parseTokens:ar,projectSearchHits:Va,readSearchFieldValue:Wa,requireSemanticDependencies:br,resolveExtensionSearchProvider:$a,resolveExtensionSearchProviderByName:Zt,resolveExtensionVectorAdapter:Pa,resolveLinkedCorpusRoots:Ia,scoreDocument:Da,sortHits:La,stringArray:Jt,textEntries:he,validateSearchProjectionFields:sr};function ba(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=ha.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 ka(e,t,n){let r={...e};for(let i of ha){let o=t[i];if(o!==void 0){if(N(r[i])!==void 0){n.push(`search_inline_filter_ignored:${i}:flag_takes_precedence`);continue}r[i]=o}}return r}function Jt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function he(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.text=="string"):[]}function _r(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="string"&&typeof t.kind=="string"):[]}function va(e){let t=e.metadata;return[t.title,t.description,t.status,Jt(t.tags).join(" "),e.body,he(t.comments).map(n=>n.text).join(" "),he(t.notes).map(n=>n.text).join(" "),he(t.learnings).map(n=>n.text).join(" "),dn(t).join(" "),un(t).join(" "),_r(t.dependencies).map(n=>`${n.id} ${n.kind}`).join(" "),ln(t)]}function Sa(e,t){return va(e).some(n=>ie(n).includes(t))}function Ea(e,t,n){return!n.titleExact&&!n.phraseExact?e:e.filter(r=>!(n.titleExact&&ie(r.metadata.title)!==t||n.phraseExact&&!Sa(r,t)))}function Ap(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 Mp(e,t,n){let r=V(e.assignee,{label:"--assignee"});Ap(r);let i=At(e),o=Ge(e);return{typeFilter:xt(e.type,t),tagFilter:V(e.tag,{label:"--tag",normalize:s=>s.toLowerCase()}),priorityFilter:Ct(e.priority),deadlineBefore:ir(e.deadlineBefore,"deadline-before"),deadlineAfter:ir(e.deadlineAfter,"deadline-after"),updatedAfter:Ae(e.updatedAfter,"updated-after"),updatedBefore:Ae(e.updatedBefore,"updated-before"),createdAfter:Ae(e.createdAfter,"created-after"),createdBefore:Ae(e.createdBefore,"created-before"),assigneeFilter:r,sprintFilter:V(e.sprint,{label:"--sprint"}),releaseFilter:V(e.release,{label:"--release"}),parentFilter:e.parent?.trim(),statusSet:n&&n.length>0?new Set(n):void 0,missingMetadataFilters:i,missingMetadataActive:Ke(i),contentFieldFilters:o,contentFiltersActive:Ft(o)}}function Dp(e,t){return Lp(e,t)&&Op(e,t)&&Np(e,t)}function Lp(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&&!Jt(e.tags).some(r=>n.has(r))||t.priorityFilter!==void 0&&!t.priorityFilter.has(e.priority))}function Op(e,t){return mt(e,t)}function Np(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 $p(e,t,n,r){let i=e.metadata;return!(!Dp(i,t)||!Ce(i,n)||t.missingMetadataActive&&!Tt(i,t.missingMetadataFilters,r)||t.contentFiltersActive&&!Rt(i,t.contentFieldFilters))}function xa(e,t,n,r,i,o){let s=Mp(t,n,i);return e.filter(a=>$p(a,s,r,o))}function wr(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 Pp(e){return Ie(e)}function Ca(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 ma(e){let t=yr.resolve(e);try{let n=await Xt.realpath(t);return{resolved:t,realpath:n}}catch{return null}}async function Ia(e,t){let[n,r]=await Promise.all([ma(e),ma(t)]);return{projectContainmentRoot:n,globalContainmentRoot:r}}async function Ta(e,t){let n=Ca(e.metadata),r=[];for(let i of n){let o=i.scope==="global"?t.globalContainmentRoot:t.projectContainmentRoot;if(!o)continue;let s=yr.resolve(o.resolved,i.path);if(!on(o.resolved,s))continue;let a;try{a=await Xt.realpath(s)}catch{continue}if(on(o.realpath,a))try{await Oe({path:s,scope:i.scope}),r.push(await Xt.readFile(s,"utf8"))}catch{}}return r.join(`
|
|
14
|
+
`)}var Fa=[{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=>Jt(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=>he(e.metadata.comments).map(t=>t.text).join(" ")},{name:"notes",weightKey:"notes_weight",value:e=>he(e.metadata.notes).map(t=>t.text).join(" ")},{name:"learnings",weightKey:"learnings_weight",value:e=>he(e.metadata.learnings).map(t=>t.text).join(" ")},{name:"reminders",weightKey:"reminders_weight",value:e=>dn(e.metadata).join(" ")},{name:"events",weightKey:"events_weight",value:e=>un(e.metadata).join(" ")},{name:"dependencies",weightKey:"dependencies_weight",value:e=>_r(e.metadata.dependencies).map(t=>`${t.id} ${t.kind}`).join(" ")},{name:"plan",weightKey:"body_weight",value:e=>ln(e.metadata)}],jp=new Map(Fa.map(e=>[e.name,e]));function Up(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ra(e,t){let n=t.filter(i=>i.length>0).sort((i,o)=>o.length-i.length).map(Up);if(n.length===0)return e;let r=new RegExp(n.join("|"),"gi");return e.replace(r,i=>`${Fp}${i}${Rp}`)}function Aa(e,t){if(e.length===0)return null;let n=e.toLowerCase(),r=-1,i=0;for(let l of t){if(l.length===0)continue;let u=n.indexOf(l);u>=0&&(r<0||u<r)&&(r=u,i=l.length)}if(r<0)return null;let o=Math.max(0,r-fa),s=Math.min(e.length,r+i+fa),a=Ra(e.slice(o,s),t),d=o>0?"\u2026":"",c=s<e.length?"\u2026":"";return`${d}${a}${c}`}function Ma(e,t,n){let r=[];for(let i of t){let o=jp.get(i);if(o===void 0)continue;let s=Aa(o.value(e),n);s!==null&&r.push({field:i,snippet:s})}return r}function Kp(e,t,n){return[...Fa.map(r=>({name:r.name,value:r.value(e),weight:n[r.weightKey]})),{name:"linked_content",value:t,weight:n.linked_content_weight}]}function Bp(e,t,n){let r=ie(e.id),i=typeof n=="string"?n.trim().toLowerCase():"",o=ie(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?Ip:Tp,matched_fields:["id"],matched_all_terms:!0,exact_id_match:!0}}function Hp(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=wr(a.value.toLowerCase(),o);d>0&&(i.score+=d*a.weight,i.matched.add(a.name),i.matchedTokens.add(o))}}}function Gp(e,t,n,r){ie(e.title)===t&&(r.score+=Ep,r.matched.add("title"));for(let o of n){let s=wr(ie(o.value),t);s>0&&(r.score+=s*o.weight*xp,r.matched.add(o.name))}}function Da(e,t,n,r,i,o,s=!1){let a=e.metadata,d=Bp(a,n,o);if(d)return d;let c=new Map;for(let g of Pp(a.title))c.set(g,(c.get(g)??0)+1);let l=Kp(e,r,i),u={score:0,matched:new Set,matchedTokens:new Set};Hp(t,c,l,i,u);let f=new Set(t),h=f.size>0&&u.matchedTokens.size===f.size;return s&&f.size>1&&h&&(u.score+=Cp),t.length>=Sp&&n.includes(" ")&&Gp(a,n,l,u),u.score<=0?null:{item:a,score:u.score,matched_fields:[...u.matched].sort((g,k)=>g.localeCompare(k)),matched_all_terms:h}}function La(e,t){return[...e].sort((n,r)=>{let i=r.score-n.score;if(i!==0)return i;let o=H(n.item.status,t),s=H(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=S(r.item.updated_at,n.item.updated_at);return d!==0?d:n.item.id.localeCompare(r.item.id)})}function Oa(e,t,n,r,i,o,s,a=!1){return Da(e,t,n,r?i.get(e.metadata.id)??"":"",o,s,a)}function hr(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 Na(e,t,n,r,i,o,s,a,d,c,l,u,f=!1){let h=f?{total:0,count_only:!0}:{};if(c.mode==="compact"&&r.compact===!0){let k=nt({mode:t,matchMode:n,options:r,includeLinked:i,titleExact:r.titleExact===!0,phraseExact:r.phraseExact===!0,scoreThreshold:o,hybridSemanticWeight:s,runtimeFieldFilters:u});return{query:e.trim(),mode:t,items:[],count:0,...h,filters:k,...l.length>0?{warnings:l}:{}}}let g=c.mode==="full"?null:[...c.fields];return{query:e.trim(),mode:t,items:[],count:0,...h,filters:rt({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:u??{}}),projection:{mode:c.mode,fields:g},now:A(),...l.length>0?{warnings:l}:{}}}function br(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 X=N;function Zt(e){let t=R(),n=hi(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=X(r.name)??X(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 $a(e){let t=X(e.search?.provider),n=Zt(t);return n?.query?{providerName:n.providerName,query:n.query}:null}function Pa(e){let t=R(),n=X(e.vector_store?.adapter),r=gi(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:X(i.name)??X(r.definition.name)??n??"extension",query:o,...typeof s=="function"?{upsert:s}:{}}}function ja(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=X(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 l=s.matched_fields,u=Array.isArray(l)&&l.every(f=>typeof f=="string")?[...new Set(l.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:u})}return o}function Ua(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 Qt(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,l)=>Math.max(c,l.score),0),s=n.sort((c,l)=>l.score-c.score),a=o+s.length+1;return[...s.map((c,l)=>({...c,score:a-l,matched_fields:["id"]})),...i]}function kr(e,t,n,r,i="semantic"){let o=new Map(n.map(u=>[u.item.id,u.score])),s=new Map(n.map(u=>[u.item.id,u.matched_fields])),a=hr(t),d=hr(o),c=new Set([...t.keys(),...o.keys()]),l=1-r;return[...c].map(u=>{let f=e.get(u),h=a.get(u)??0,y=d.get(u)??0,g=h*r+y*l;if(g<=0)return null;let k=new Set;t.has(u)&&k.add(i);for(let _ of s.get(u)??[])k.add(_);return{item:f.metadata,score:g,matched_fields:[...k].sort((_,w)=>_.localeCompare(w))}}).filter(u=>u!==null)}function Ka(e){let t=e.configuredProvider?.trim().toLowerCase();return t==="bm25"?"explicit":t==="auto"&&!e.hasEmbeddingProvider&&!e.hasExtensionSearchProvider?"auto-fallback":null}function Ba(e){let t=e.filteredDocuments.map(s=>({id:s.metadata.id,text:ua(vi(s,{fields:e.corpusFields}))})),n=ca(t),r=da(n,pr(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 Qt(s,e.keywordHits)}let o=kr(i,r,e.keywordHits,e.hybridSemanticWeight,"bm25");return Qt(o,e.keywordHits)}function Ha(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 Ga(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(`
|
|
15
|
+
`)}async function qp(e,t){let n=e.queryExpansion.enabled?Zs(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 ta(r,ea(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 zp(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 fn(e.vectorStore,t,n,r)}if(e.vectorStore)return await fn(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 Wp(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:Ga(o)}:null}).filter(i=>i!==null)}async function Vp(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=ia(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 Yp(e,t,n){let r=await Vp(e,t,n);if(r)return r;let i=n.map(o=>({id:o.hit.item.id,text:o.text}));try{return await sa(e.provider,e.rerank.model,t,i,e.embeddingTimeoutMs)}catch{return e.warnings.push("search_rerank_failed:using_hybrid_scores"),null}}function Xp(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 Qp(e,t,n,r){if(!e.rerank.enabled||n.length<=1)return n;let i=Wp(n,r,e.rerank.top_k),o=await Yp(e,t,i);return o&&o.size>0?Xp(n,o):n}async function qa(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 qp(e,i),s=await _t(e.provider,o,n),a=await Promise.all(s.map(async y=>await zp(e,y,t,r))),d=Ha(a),c=new Map(e.filteredDocuments.map(y=>[y.metadata.id,y])),{semanticHits:l,semanticScores:u}=Ua(d,c),f=u.size;if(e.requestedMode==="semantic")return{hits:Qt(l,e.keywordHits),vectorMatchCount:f};let h=await Qp(e,i,kr(c,u,e.keywordHits,e.hybridSemanticWeight),c);return{hits:Qt(h,e.keywordHits),vectorMatchCount:f}}async function za(e,t,n,r){let i=Cr(R()),o=async(c,l,u)=>{let f=async(h,y)=>{await Oe({path:h,scope:"project"});let g=await Xt.readFile(h,"utf8");return zr(g,{format:y,schema:r,extensionFieldNames:i,onWarning:_=>s.push(_)}).body};try{return await f(l,u)}catch{let h=u==="toon"?"json_markdown":"toon",y=Me(e,c.type,c.id,h,n);try{return await f(y,h)}catch{return s.push(`item_list_item_read_failed:${yr.relative(e,y)}`),""}}},s=[],a=await fi(e,t,n,s,r),d=[];if(a.length===0){let c=await yt(e,t,n,s,r);for(let l of c){let u=Me(e,l.type,l.id,t,n),f=await o(l,u,t);d.push({metadata:l,body:f})}return{documents:d,warnings:[...new Set(s)].sort((l,u)=>l.localeCompare(u))}}for(let c of a){if(typeof c.body=="string"){d.push({metadata:c.metadata,body:c.body});continue}let l=await o(c.metadata,c.item_path,c.item_format);d.push({metadata:c.metadata,body:l})}return{documents:d,warnings:[...new Set(s)].sort((c,l)=>c.localeCompare(l))}}function Wa(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 Va(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]=Wa(n,i);return r})}function Jp(e){let t=Zt(e.provider??void 0);return t?.queryExpansion?{providerName:t.providerName,expand:t.queryExpansion}:null}function Zp(e){let t=Zt(X(e.search?.provider));return t?.rerank?{providerName:t.providerName,rerank:t.rerank}:null}function eh(e,t){let n=[],r=ba(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=ka(t,r.inlineFilters,n);return{query:o,options:s,inlineWarnings:n,highlight:s.highlight===!0,includeLinked:Vt(s.includeLinked),titleExact:Vt(s.titleExact),phraseExact:Vt(s.phraseExact),matchMode:Qs(typeof s.matchMode=="string"?s.matchMode:void 0),minScoreOverride:Js(s.minScore),countOnly:s.count===!0,tokens:ar(o),normalizedQuery:ie(o),limit:fe(s.limit),projection:or(s),modeWasExplicit:typeof s.mode=="string"&&s.mode.trim().length>0}}async function th(e,t){let n=C(process.cwd(),t.path);if(!await D($(n)))throw new p(`Tracker is not initialized at ${n}. Run pm init first.`,m.NOT_FOUND);let r=await F(n),i=wi(r).settings,o=P(i.schema),s=q(i.schema);sr(e.projection,s,e.query);let a=xe(e.options,s,"search"),d=L(i,R()),c=bi(i),l=Si(i,n),u=$a(i),f=Pa(i),h=Xs(e.options.semanticWeight),y=na(i,c.active?.name??null),g=ra(i,c.active?.model??X(i.search?.embedding_model)??"text-embedding-3-small");return{pmRoot:n,settings:i,statusRegistry:o,runtimeFieldRegistry:s,runtimeFieldFilters:a,typeRegistry:d,maxResults:cr(i),scoreThreshold:e.minScoreOverride??dr(i),semanticWeightProvided:e.options.semanticWeight!==void 0,semanticWeightOverride:h,hybridSemanticWeight:h??ur(i),tuning:lr(i),providerResolution:c,vectorResolution:l,extensionSearchProvider:u,extensionVectorAdapter:f,bm25Mode:Ka({configuredProvider:X(i.search?.provider),hasEmbeddingProvider:c.active!==null,hasExtensionSearchProvider:u!==null}),queryExpansion:y,queryExpansionExtension:Jp(y),rerank:g,rerankExtension:Zp(i),effectiveMode:Ys(e.options.mode)}}async function nh(e,t){let n=await za(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=It(t.statusRegistry),o=xa(n.documents,e.options,t.typeRegistry,t.runtimeFieldFilters,r,i);return{warnings:n.warnings,allDocuments:n.documents,filteredDocuments:Ea(o,e.normalizedQuery,{titleExact:e.titleExact,phraseExact:e.phraseExact||e.matchMode==="exact"})}}async function rh(e,t,n){let r=new Map;if(!e||t!=="keyword"&&t!=="hybrid")return r;let i=process.cwd(),o=await Ia(i,Tr(i)),s=await Promise.all(n.map(async a=>[a.metadata.id,await Ta(a,o)]));for(let[a,d]of s)r.set(a,d);return r}async function ih(e,t,n){let r=await rh(e.includeLinked,t.effectiveMode,n),i=e.matchMode==="or";return n.map(o=>Oa(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 pa(e,t){return Na(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 oh(e,t,n,r,i){if(t.bm25Mode===null||t.effectiveMode==="keyword")return null;let o=Ba({requestedMode:t.effectiveMode,query:e.query,filteredDocuments:n,keywordHits:r,corpusFields:ki(t.settings),bm25Params:la(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 sh(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 ja(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 ah(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 ch(e,t,n,r,i){let o=!e.extensionSearchProvider&&e.providerResolution.active!==null&&(e.vectorResolution.active!==null||e.extensionVectorAdapter!==null);i&&o&&await wa(e.pmRoot,n,r),e.extensionSearchProvider||br(t,e.providerResolution,e.vectorResolution,e.extensionVectorAdapter!==null)}async function dh(e){let{prepared:t,runtime:n,filteredDocuments:r,keywordHits:i,warnings:o,modeWasExplicit:s}=e,a=i,d=await oh(t,n,r,i,o),c=n.effectiveMode;if(d!==null||c==="keyword")return{effectiveMode:n.effectiveMode,hits:d??a};try{if(await ch(n,c,r,o,s),r.length===0||t.limit===0)return{effectiveMode:n.effectiveMode,hits:[]};let l=new Map(r.map(u=>[u.metadata.id,u]));if(a=await sh(t,n,r,l)??a,a===i){let{provider:u,vectorStore:f}=br(c,n.providerResolution,n.vectorResolution,n.extensionVectorAdapter!==null),h=await qa({requestedMode:c,query:t.query,filteredDocuments:r,keywordHits:i,hybridSemanticWeight:n.hybridSemanticWeight,limit:t.limit,maxResults:n.maxResults,provider:u,vectorStore:f,extensionVectorAdapter:n.extensionVectorAdapter,queryExpansion:n.queryExpansion,queryExpansionExtension:n.queryExpansionExtension,rerank:n.rerank,rerankExtension:n.rerankExtension,warnings:o,settings:n.settings});a=ah(c,h,i,o)}return{effectiveMode:n.effectiveMode,hits:a}}catch(l){return o.push(_a(n.effectiveMode,l)),{effectiveMode:"keyword",hits:i}}}function uh(e,t){if(e.projection.mode==="compact"&&e.options.compact===!0)return gr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:nt({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 gr({query:e.query.trim(),mode:e.effectiveMode,items:[],count:t,total:t,count_only:!0,filters:rt({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:A()},e.warnings)}function gr(e,t){return t.length===0?e:{...e,warnings:t}}function Yt(e,t){return t?{...e,workspace_memory:t}:e}function lh(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:Ma(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 fh(e,t,n,r,i,o){let s=r<n?{total:n}:{};if(e.projection.mode==="compact"&&e.options.compact===!0)return gr({query:e.query.trim(),mode:e.effectiveMode,items:t,count:t.length,...s,...o,filters:nt({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:rt({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:A(),...e.warnings.length>0?{warnings:e.warnings}:{}}}function mh(e){if(e.after!==void 0&&e.count===!0)throw new p("Search --after cannot be combined with --count.",m.USAGE)}async function xb(e,t,n){mh(t);let r=eh(e,t),i=await th(r,n),o=await nh(r,i),s=o.warnings;s.push(...r.inlineWarnings);let a=await Bt(o.allDocuments.map(E=>E.metadata),{pmRoot:i.pmRoot,statusRegistry:i.statusRegistry,now:A()});s.push(...a.warnings);let d=ks(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 Yt(pa({...c,effectiveMode:i.effectiveMode},r.countOnly),d);let l=await ih(r,i,o.filteredDocuments),u=await dh({prepared:r,runtime:i,filteredDocuments:o.filteredDocuments,keywordHits:l,warnings:s,modeWasExplicit:r.modeWasExplicit});if(u.effectiveMode!=="keyword"&&u.hits.length===0&&(o.filteredDocuments.length===0||r.limit===0&&!r.countOnly))return Yt(pa({...c,effectiveMode:u.effectiveMode},r.countOnly),d);let f=u.hits.filter(E=>E.exact_id_match===!0||E.score>=i.scoreThreshold),h=La(f,i.statusRegistry),y=h.length,g=Ws({sorted:h,query:r.query,mode:u.effectiveMode,searchOptions:r.options,limit:r.limit??i.maxResults}),k={...c,effectiveMode:u.effectiveMode};if(r.countOnly)return Yt(uh(k,y),d);let{hits:_,projection:w}=lh(r,o.filteredDocuments,g.limited),b=Va(_,w);return Yt(fh(k,b,y,g.limited.length,w,g.pageExtras),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]="6152efa9-8338-57f0-b3de-5707befed019")}catch{}})();async function Rb(e,t={}){let n=await Fi({pmRoot:C(process.cwd(),e.path),...t.status===void 0?{}:{statuses:t.status.flatMap(r=>r.split(",").map(i=>i.trim()).filter(Boolean))},...t.since===void 0?{}:{since:t.since},...t.threshold===void 0?{}:{threshold:t.threshold},...t.limit===void 0?{}:{limit:t.limit}});return{...n,clusters:n.clusters.map(r=>{let i=r.id;return{...r,canonical_id:i,close_command:`pm close <duplicate-id> --duplicate-of ${i}`}}),guidance:{strategy:"review_then_close_duplicate",command:"pm close <duplicate-id> --duplicate-of <canonical-id>"}}}export{Qa as a,pn as b,ph as c,nc as d,rc as e,hh as f,Ai as g,je as h,Mi as i,Di as j,Fh as k,Li as l,yn as m,Qh as n,Pi as o,U as p,bt as q,ji as r,kt as s,xc as t,vt as u,Et as v,Fg as w,Gi as x,py as y,kn as z,V as A,xt as B,Ct as C,It as D,$g as E,Pg as F,Ug as G,At as H,Ge as I,to as J,no as K,ld as L,fd as M,ly as N,xn as O,qe as P,ze as Q,ne as R,fy as S,wy as T,by as U,Cy as V,Iy as W,Ty as X,ts as Y,Pn as Z,Nt as _,Ju as $,is as aa,rl as ba,$t as ca,il as da,ol as ea,dl as fa,ul as ga,Dy as ha,ll as ia,os as ja,Y as ka,Pt as la,Uy as ma,ps as na,jt as oa,jn as pa,Un as qa,Al as ra,$l as sa,Pl as ta,Kn as ua,Bn as va,Kt as wa,Hl as xa,Wl as ya,Bt as za,ef as Aa,bs as Ba,tf as Ca,ks as Da,Ss as Ea,d_ as Fa,u_ as Ga,l_ as Ha,f_ as Ia,Es as Ja,nf as Ka,uf as La,Xe as Ma,A_ as Na,qn as Oa,mf as Pa,pf as Qa,Wn as Ra,pe as Sa,Yn as Ta,Xn as Ua,Qn as Va,Re as Wa,et as Xa,Ht as Ya,M_ as Za,fm as _a,D_ as $a,ym as ab,G_ as bb,q_ as cb,vm as db,z_ as eb,W_ as fb,ew as gb,Ks as hb,Bs as ib,Hs as jb,_w as kb,ww as lb,nt as mb,rt as nb,cp as ob,Ws as pb,cr as qb,dr as rb,ur as sb,lr as tb,ga as ub,ya as vb,Eb as wb,xb,Rb as yb};
|
|
16
|
+
//# sourceMappingURL=chunk-YBMGXBFV.js.map
|