@unbrained/pm-cli 2026.11.4 → 2026.11.5
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/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
- package/.agents/skills/README.md +14 -14
- package/.agents/skills/pm-developer/SKILL.md +16 -16
- package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +14 -14
- package/.agents/skills/pm-developer/references/SCRIPTING_COMPOSITION.md +10 -10
- package/.agents/skills/pm-extensions/SKILL.md +13 -13
- package/.agents/skills/pm-extensions/references/AUTHORING.md +12 -12
- package/.agents/skills/pm-sdk/SKILL.md +27 -27
- package/.agents/skills/pm-sdk/references/SURFACE_MAP.md +32 -32
- package/.agents/skills/pm-test-audit/references/AUDIT.md +1 -1
- package/.agents/skills/pm-user/SKILL.md +35 -35
- package/.claude-plugin/marketplace.json +1 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +9 -0
- package/README.md +13 -13
- package/dist/cli/register-setup.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +1 -1
- package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
- package/dist/cli-bundle/chunks/{chunk-NPEDFOVQ.js → chunk-335BZ75D.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
- package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-7PGNAHNW.js → chunk-7DEKAXVA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3OXQGGRD.js → chunk-7ZRCYESH.js} +42 -41
- package/dist/cli-bundle/chunks/{chunk-BWAXA6S4.js → chunk-AUEKTX7V.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SRDO2NJU.js → chunk-D7KYPRK4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ODMJ3HIB.js → chunk-DAX3AOFI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L4BKTPJ6.js → chunk-F6NDMKZ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T56MB6SF.js → chunk-FRNMQM45.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5S6RT5LX.js → chunk-HNGLDMSZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QN7VCOUU.js → chunk-HRCMORE7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BK2XAQVC.js → chunk-HRFGFIYU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CERNIZLB.js → chunk-JI2GDE4I.js} +42 -42
- package/dist/cli-bundle/chunks/{chunk-6T2V3UIK.js → chunk-LS3GI3H4.js} +53 -53
- package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-BRIPGUAO.js → chunk-OJDMJT7Y.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7RCI7AAA.js → chunk-S4LPZ4TN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AQ5UHHQS.js → chunk-UEGXWXUZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5BVZ32G7.js → chunk-XLSHFYXZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2GW662DP.js → chunk-YKXATU2G.js} +2 -2
- package/dist/cli-bundle/chunks/{item-revision-UAZOBP2Q.js → item-revision-OJJVPQY7.js} +2 -2
- package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
- package/dist/cli-bundle/chunks/{mutation-admission-QZQI2NN5.js → mutation-admission-INMM3HHG.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-P3NOKQUA.js → register-list-query-5Y5JKWU5.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-A6I5K5N6.js → register-mutation-WC7OSQID.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-SPKB3TNM.js → register-operations-PO63DBZH.js} +2 -2
- package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
- package/dist/cli-bundle/chunks/{stage-L3T725DS.js → stage-E3MMV4TV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TFYTTDAK.js → chunk-7KK66ISG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Y5GOUUYJ.js → chunk-AHWJPZSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-C7UX2ZI3.js → chunk-C6P6HPCX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-Q4OIRSKL.js → chunk-CPMSL4HS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-CO2DNPH7.js → chunk-D2TBEBNW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FXFDVM5O.js → chunk-F62XGAAY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-J7M52SCZ.js → chunk-G5PJCR7R.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
- package/dist/cli-bundle/focused-chunks/{chunk-W3CSX6GI.js → chunk-LW64TINU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MEJKELWC.js → chunk-M6V7UMWL.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-CXTDEQ3N.js → chunk-MC7IE7D7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QEVJ3Y67.js → chunk-MK4HV4JO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-A2246ZM7.js → chunk-NQ7GYFOX.js} +54 -54
- package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
- package/dist/cli-bundle/focused-chunks/{chunk-FFO7RBLN.js → chunk-RFTJZ5VB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-PNPYQDHU.js → chunk-SNOXXRSJ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JQS7TYQ6.js → chunk-UPJUTP2V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SDLIUZEL.js → chunk-VWWTIX5L.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J6FDCAMH.js → chunk-XHOBYCVE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-J3YOATXR.js → chunk-YMGB2O4E.js} +25 -24
- package/dist/cli-bundle/focused-chunks/{item-revision-L6GVT42D.js → item-revision-CTDO4H3I.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{item-transaction-GYGP264N.js → item-transaction-AEAYVVHA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{mutation-admission-UWTH56OD.js → mutation-admission-4WM7TNHZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{stage-WRSNJ7VI.js → stage-WV7QXR4C.js} +2 -2
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +1 -1
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +57 -57
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +9 -9
- package/dist/core/config/positional-value.d.ts +6 -0
- package/dist/core/config/positional-value.js +1 -1
- package/dist/core/item/literal-mutation-input.d.ts +17 -0
- package/dist/core/item/literal-mutation-input.js +1 -1
- package/dist/core/item/parent-reference-policy.d.ts +8 -4
- package/dist/core/item/parent-reference-policy.js +1 -1
- package/dist/core/item/sprint-release-format.d.ts +2 -1
- package/dist/core/item/sprint-release-format.js +1 -1
- package/dist/core/output/mutation-projection.js +1 -1
- package/dist/core/store/item-mutation-precondition.d.ts +3 -1
- package/dist/core/store/item-mutation-precondition.js +1 -1
- package/dist/core/store/item-store.js +1 -1
- package/dist/core/store/settings.d.ts +14 -0
- package/dist/core/store/settings.js +5 -4
- package/dist/core/telemetry/policy.d.ts +27 -1
- package/dist/core/telemetry/policy.js +1 -1
- package/dist/core/telemetry/runtime.d.ts +18 -7
- package/dist/core/telemetry/runtime.js +4 -4
- package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +1 -1
- package/dist/sdk/config.d.ts +2 -2
- package/dist/sdk/config.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/governance/health.d.ts +2 -2
- package/dist/sdk/governance/health.js +2 -2
- package/dist/sdk/index.d.ts +4 -2
- package/dist/sdk/index.js +1 -1
- package/dist/sdk/init.d.ts +4 -4
- package/dist/sdk/init.js +8 -8
- package/dist/sdk/lifecycle/claim.d.ts +4 -0
- package/dist/sdk/lifecycle/claim.js +1 -1
- package/dist/sdk/lifecycle/close.d.ts +10 -0
- package/dist/sdk/lifecycle/close.js +1 -1
- package/dist/sdk/lifecycle/create.d.ts +7 -5
- package/dist/sdk/lifecycle/create.js +1 -1
- package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
- package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
- package/dist/sdk/lifecycle/update.d.ts +5 -4
- package/dist/sdk/lifecycle/update.js +2 -2
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/runtime/actions.js +1 -1
- package/dist/sdk/runtime/mutation-value-validation.js +1 -1
- package/dist/sdk/runtime-input.js +1 -1
- package/dist/sdk/runtime-primitives.d.ts +1 -0
- package/dist/sdk/runtime-primitives.js +1 -1
- package/dist/sdk/telemetry.d.ts +1 -1
- package/dist/sdk/telemetry.js +2 -2
- package/docs/AGENT_GUIDE.md +48 -48
- package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
- package/docs/ASSURANCE.md +10 -10
- package/docs/BOUNDED_CONTEXT_READS.md +3 -3
- package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
- package/docs/CLI_GRAMMAR.md +2 -2
- package/docs/COMMANDS.md +56 -35
- package/docs/COMMAND_NAMESPACES.md +1 -1
- package/docs/CONFIGURATION.md +82 -71
- package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
- package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
- package/docs/CORPUS_SHAPES.md +1 -1
- package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
- package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
- package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
- package/docs/HISTORY_ATTESTATION.md +1 -1
- package/docs/HISTORY_MAINTENANCE.md +1 -1
- package/docs/LIFECYCLE_COMMANDS.md +1 -1
- package/docs/MCP_2026_07_28.md +16 -16
- package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
- package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
- package/docs/MCP_SKILLS_AND_APPS.md +1 -1
- package/docs/MERGE_SAFETY.md +6 -6
- package/docs/MUTATION_INTEGRITY.md +5 -5
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
- package/docs/PACKED_FIRST_RUN.md +1 -1
- package/docs/QUICKSTART.md +10 -10
- package/docs/README.md +21 -21
- package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
- package/docs/RELEASING.md +19 -10
- package/docs/SCRIPTING.md +10 -10
- package/docs/SDK.md +74 -38
- package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
- package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
- package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
- package/docs/TESTING.md +1 -1
- package/docs/WORKFLOW_POLICIES.md +2 -2
- package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +1 -1
- package/docs/performance/cli-transport-overhead.md +7 -7
- package/marketplace.json +1 -1
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/README.md +5 -5
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
- 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/README.md +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/GAP_REPORT.md +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +6 -6
- package/plugins/pm-claude/package.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +1 -1
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +1 -1
- package/dist/cli-bundle/chunks/chunk-5Z6LWFDL.js +0 -31
- package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +0 -122
- package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +0 -2
- package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +0 -3
- package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +0 -44
- package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +0 -91
- package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CBG67HUP.js +0 -23
- package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as ze}from"./chunk-B6U44WPW.js";import{Pa as V,Qa as W,Ra as X,Sa as Y,aa as Ce,ba as Ae,ea as Re,fa as ke}from"./chunk-CBG67HUP.js";import{t as me}from"./chunk-QEVJ3Y67.js";import{d as Be,e as Ge,h as $e}from"./chunk-BHNY3KPJ.js";import{g as je}from"./chunk-TFYTTDAK.js";import{D as H,F as q,H as Ne,J as R,P as Pe,Q as k,R as Ue,h as De,i as Ke,k as xe,l as Oe}from"./chunk-BAW3DGQO.js";import{Ga as Le,Ka as Me,d as Se,fb as S,ha as Ie,kb as O,v as ve,wa as Fe,x as E,xa as Ee,ya as Te}from"./chunk-J3YOATXR.js";import{b as ue}from"./chunk-FFO7RBLN.js";import{j as M,l as fe}from"./chunk-SDLIUZEL.js";import{$b as G,Dc as pe,Gd as ge,Hd as _e,Id as $,Md as he,Pc as ye,Qd as be,Ud as A,Vd as we,Wd as z,Yb as j,Zb as B,ba as h,ra as I,sa as x,wc as C,xa as w}from"./chunk-MEJKELWC.js";import{A as f,z as m}from"./chunk-G6ERMFJ5.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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function N(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return i}function He(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0||i>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return i}function ti(e,t,r="--type"){if(e===void 0)return;let i=x(e,t);if(!i)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Q(e,t){if(e===void 0)return;let r=[],i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let l=e[o+1];if(l===","||l==="\\"){i+=l,o+=1;continue}i+=a;continue}if(a===","){r.push(i),i="";continue}i+=a}r.push(i);let n=r.map(o=>o.trim());if(n.some(o=>o.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let s=n.map(o=>t.normalize?.(o)??o);return[...new Set(s)]}function D(e,t){let r=Q(e,t);return r===void 0?void 0:new Set(r)}function qe(e,t,r="--type"){let i=Q(e,{label:r});if(i===void 0)return;let n=i.map(s=>{let o=x(s,t);if(!o)throw new f(`${r} filter token "${s}" must be one of ${t.types.join("|")}`,m.USAGE);return o});return new Set(n)}function Ve(e,t="--priority"){let r=Q(e,{label:t});if(r!==void 0)return new Set(r.map(i=>He(i,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]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function We(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function Je(e){return{isTerminal(t){return e.terminal_statuses.has(We(t,e))},classify(t){let r=We(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function J(e){return h(e.acceptance_criteria)===void 0}function Z(e){return!Number.isFinite(e.estimated_minutes)}function Ze(e,t){return t.isTerminal(e.status)?h(e.resolution)===void 0:!1}function qt(e){return h(e.reviewer)===void 0}function Vt(e){return h(e.risk)===void 0}function Wt(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):h(e.confidence)===void 0}function Xt(e){return h(e.sprint)===void 0}function Yt(e){return h(e.release)===void 0}function ee(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Qt(e,t,r){return[[t.acMissing,J(e)],[t.estimatesMissing,Z(e)],[t.resolutionMissing,Ze(e,r)],[t.reviewerMissing,qt(e)],[t.riskMissing,Vt(e)],[t.confidenceMissing,Wt(e)],[t.sprintMissing,Xt(e)],[t.releaseMissing,Yt(e)]].every(([i,n])=>i!==!0||n)}function Jt(e,t){return J(e)||Z(e)||Ze(e,t)}function et(e,t,r){return ee(t)?!(!Qt(e,t,r)||t.metadataMissing&&!Jt(e,r)):!0}var te=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Zt(e,t){switch(t){case"acceptance_criteria":return!J(e);case"estimated_minutes":return!Z(e);case"resolution":return h(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return h(e.parent)!==void 0}}function er(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function tr(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Xe(){let e={};for(let t of te)e[t]={present:0,applicable:0,percent:100};return e}function Ye(e,t,r){for(let i of te){if(!er(t,i,r))continue;let n=e[i];n.applicable+=1,Zt(t,i)&&(n.present+=1)}}function Qe(e){for(let t of te){let r=e[t];r.percent=tr(r.present,r.applicable)}}function di(e,t){let r=Xe(),i={};for(let n of e){Ye(r,n,t);let s=i[n.type]??(i[n.type]=Xe());Ye(s,n,t)}Qe(r);for(let n of Object.values(i))Qe(n);return{overall:r,by_type:i}}var rr={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ir(e){return rr[e]}function nr(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function sr(e,t,r){switch(t){case"assignee":return[h(e.assignee)??null];case"parent":return[h(e.parent)??null];case"type":return[h(e.type)??null];case"status":return[h(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let i=r.tagPrefix?.trim(),n=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!i||s.startsWith(i)));return n.length>0?n:[null]}}}function ci(e,t,r,i={}){let n=new Map,s=0;for(let a of e){s+=1;let l=r.classify(a.status);for(let d of sr(a,t,i)){let c=d??"\0empty",u=n.get(c);u||(u={label:d??ir(t),key:d,buckets:nr(),total:0},n.set(c,u)),u.buckets[l]+=1,u.total+=1}}let o=[...n.values()].sort((a,l)=>l.total!==a.total?l.total-a.total:a.key===null?1:l.key===null?-1:a.label.localeCompare(l.label));return{dimension:t,rows:o,total_items:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var T=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function F(e){return Array.isArray(e)&&e.length>0}function or(e){return typeof e=="string"&&e.trim().length>0}function ar(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function rt(e,t){switch(t){case"notes":return F(e.notes);case"learnings":return F(e.learnings);case"files":return F(e.files);case"docs":return F(e.docs);case"tests":return F(e.tests);case"comments":return F(e.comments);case"deps":return F(e.dependencies);case"body":return or(e.body);case"linked_command":return ar(e.tests)}}function it(e){return T.some(t=>e[t]!==void 0)}function nt(e,t){for(let r of T){let i=t[r];if(i===void 0)continue;let n=rt(e,r);if(i==="present"&&!n||i==="absent"&&n)return!1}return!0}function st(e){return T.some(t=>t!=="body"&&e[t]!==void 0)}function ot(e){return e.body!==void 0}function tt(e,t){return t===0?100:Math.round(e/t*1e3)/10}function lr(){let e={};for(let t of T)e[t]={present:0,total:0,percent:100};return e}function mi(e){let t=lr(),r=e.length;for(let o of e)for(let a of T)rt(o,a)&&(t[a].present+=1);for(let o of T)t[o].total=r,t[o].percent=tt(t[o].present,r);let i=t.body,n=r-i.present,s={present:n,total:r,percent:tt(n,r)};return{total_items:r,fields:t,body_populated:i,empty_body:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="084aad9c-485f-5bdc-8da7-225c9c4f695c")}catch{}})();var mt=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}),at=[{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"}],ie=e=>{let t=at.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new f(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(at.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},lt=["priority","deadline","updated_at","created_at","title","parent"],dt=["asc","desc"],ft=new Set(Ne);function dr(e,t,r){let i=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,n=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,s={status:t?"unchecked":i+n>0?"partial":"complete",unreadable_item_count:i,unreadable_directory_count:n};if(r&&s.status==="partial")throw new f(`List source is incomplete: ${i} item document(s) and ${n} 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 s}function cr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var ur=[{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"}],mr=[{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 pt(e,t){for(let r of ur)t[r.key]===!0&&(e[r.summaryKey]=!0)}function yt(e,t){for(let r of mr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function fr(e,t,r){for(let i of r){let n=t[i.optionKey];n!==void 0&&(e[i.summaryKey]=i.normalize?i.normalize(n):n)}}function gt(e){let t={};return pt(t,e),t}function _t(e){let t={};return yt(t,e),t}var pr=[{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"}],yr=[{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"}],gr=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],_r="-7d";function ht(e){let{filtersStatus:t,options:r,treeEnabled:i,treeDepth:n,sortField:s,sortOrder:o,runtimeFieldFilters:a}=e,l={};return t!==null&&(l.status=t),r.dependencyBlocked===!0&&(l.blocked_semantics="status_or_dependency"),fr(l,r,pr),wt(l,r),r.filterAcMissing===!0&&(l.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(l.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(l.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(l.filter_metadata_missing=!0),yt(l,r),pt(l,r),r.limit!==void 0&&(l.limit=r.limit),r.offset!==void 0&&(l.offset=r.offset),r.includeBody===!0&&(l.include_body=!0),r.fields!==void 0&&(l.fields=r.fields),i&&(l.tree=!0,n!==void 0&&(l.tree_depth=n)),s!==void 0&&(l.sort=s,l.order=o),cr(a)&&(l.runtime_filters=a),l}function ne(e,t,r){let i=E(e.status,r),n=E(t.status,r);if(i!==n)return i?1:-1;let s=e.priority-t.priority;if(s!==0)return s;let o=A(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function hr(e,t){return[...e].sort((r,i)=>ne(r,i,t))}function ct(e,t){if(e!==void 0)return z(e,new Date,t)}function K(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return z(r,new Date,t)}function bt(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 f("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?K(_r,"recent"):K(e.updatedAfter,"updated-after")}function wt(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function St(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);let r=t.split(",").map(i=>i.trim()).filter(i=>i.length>0);if(r.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);return new Set(r)}function se(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new f("Offset filter must be a non-negative integer",m.USAGE);return r}function vt(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new f("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function It(e,t=e.projectionCommand??"list"){let r=e.compact===!0,i=e.brief===!0,n=e.full===!0,s=vt(e.fields);if(Number(r)+Number(i)+Number(n)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(n)return{mode:"full",fields:[]};if(i){let o=oe(e.sort);return{mode:"brief",fields:[...new Set([...B,o??"priority"])]}}return r?{mode:"compact",fields:[...j]}:s?{mode:"fields",fields:[...new Set(s.map(o=>v(o)))]}:{mode:"full",fields:[]}}function v(e){return e.startsWith("item.")?e.slice(5):e}function br(e,t,r){if(e.mode!=="fields")return;let i=G(t),n=new Set(i.map(o=>v(o))),s=e.fields.filter(o=>!n.has(v(o)));if(s.length>0){let o=[r,"--fields",e.fields.filter(a=>!s.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${s.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:i,suggested_retry:ye(o),suggested_retry_args:o}})}}var wr=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function oe(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=wr.get(t);if(r)return r;if(!lt.includes(t))throw new f(`Sort field must be one of ${lt.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ft(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!dt.includes(t))throw new f(`Sort order must be one of ${dt.join("|")}`,m.USAGE);return t}function Sr(e){return N(e,"--tree-depth")}function Et(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new f("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new f(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function ut(e,t){return Ae(e,t,{strict:!0})}function Tt(e){return D(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function vr(e,t,r){let i=Tt(t);if(i===void 0)return;let n=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),s=[...i].filter(o=>!n.has(o));s.length>0&&r.push(`unknown_tags:${s.join(",")}`)}function Ir(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Fr(e,t,r,i){let n=D(t.assignee,{label:"--assignee"}),s=Et(t.assigneeFilter);Ir(n,s);let o=mt(t),a=ie(t);return{idsFilter:St(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:qe(t.type,r),tagFilters:Tt(t.tag),priorityFilter:Ve(t.priority),deadlineBefore:ct(t.deadlineBefore,"deadline-before"),deadlineAfter:ct(t.deadlineAfter,"deadline-after"),updatedAfter:bt(t),updatedBefore:K(t.updatedBefore,"updated-before"),createdAfter:K(t.createdAfter,"created-after"),createdBefore:K(t.createdBefore,"created-before"),assigneeFilter:n,assigneeModeFilter:s,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:D(t.sprint,{label:"--sprint"}),releaseFilter:D(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:ee(o),lifecycleClassifier:Je(i),contentFieldFilters:a,contentFiltersActive:it(a)}}function Er(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&E(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(i=>(e.tags??[]).some(n=>n.trim().toLowerCase()===i))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Tr(e,t){return we(e,t)}function Lr(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 Mr(e,t,r){let i=e.parent?.trim().toLowerCase(),n=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...i?[i]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!n.includes(t.parentFilter.trim().toLowerCase())||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 Cr(e,t,r,i,n){return!(!Er(e,t,r)||!Tr(e,t)||!Lr(e,t)||!Mr(e,t,n)||t.missingMetadataActive&&!et(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!nt(e,t.contentFieldFilters)||!ke(e,i))}function Lt(e,t,r,i,n,s,o){let a=Fr(t,r,i,n);return e.filter(l=>Cr(l,a,n,s,o))}function L(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function re(e,t,r,i){let n=e,s=typeof n.title=="string"?n.title:"",o=i??L(typeof n.parent=="string"?n.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:r,tree_title:`${" ".repeat(t)}${s}`}}function Ar(e,t){let r=new Map,i=new Map;for(let n of e){let s=n.id.trim().toLowerCase();r.set(s,n);let o=t?t.parents_by_child.get(s)??[]:[L(n.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of o){let l=i.get(a)??[];l.push(n),i.set(a,l)}}return{byId:r,childrenByParent:i}}function Rr(e,t,r,i,n){return t?[...i.get(t.toLowerCase())??[]]:e.filter(s=>(n?n.parents_by_child.get(s.id.trim().toLowerCase())??[]:[L(s.parent)?.toLowerCase()].filter(o=>o!==void 0)).every(o=>!r.has(o)))}function Mt(e,t,r,i,n=e){let{byId:s,childrenByParent:o}=Ar(e,i),a=Rr(e,t,s,o,i),l=[],d=new Set,c=new Map(n.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:c.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:y,parentId:g}=u.pop(),_=p.id.trim().toLowerCase();if(d.has(_))continue;d.add(_);let b=o.get(_)??[];if(l.push(re(p,y,b.length,g)),!(r!==void 0&&y>=r))for(let U of[...b].reverse())u.push({node:U,depth:y+1,parentId:c.get(_)})}if(t===void 0&&r===void 0)for(let p of e){let y=p.id.trim().toLowerCase();d.has(y)||(d.add(y),l.push(re(p,0,o.get(y)?.length??0)))}return l}function Ct(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function At(e,t){return e===t?0:e===null?1:t===null?-1:A(e,t)}function Rt(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return At(e.deadline??null,t.deadline??null);case"updated_at":return A(e.updated_at,t.updated_at);case"created_at":return A(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Ct(e.parent??null,t.parent??null);default:return 0}}function kt(e,t,r,i){return t?[...e].sort((n,s)=>{let o=Rt(n,s,t);if(o!==0)return r==="desc"?-o:o;let a=ne(n,s,i);return r==="desc"?-a:a}):hr(e,i)}function Dt(e,t,r=!1){let i=v(t.trim());if(i.length===0)return null;let n=e;return r&&i==="title"&&typeof n.tree_title=="string"?n.tree_title:Object.prototype.hasOwnProperty.call(n,i)?n[i]??null:null}function ae(e,t,r=!1){return t.mode==="full"?e:e.map(i=>{let n={};for(let s of t.fields)n[s]=Dt(i,s,r);return n})}function Kt(e){let t=[];for(let r of e)t.push(r.metadata_key);return[...t,...ue(C())]}function xt(e,t){let r=N(e.limit);if(r!==void 0)return r;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function kr(e,t,r){return t.after===void 0?se(t.offset)??0:he(e,t.after,r,i=>i.id)}function Ot(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Dr(e,t){let r=w(process.cwd(),t.path);await O(r);let i=await S(r),n=M(i.schema),s=fe(i.schema),o=e.projectionCommand??"list",a=It(e,o);return br(a,Kt(s.definitions),o),{pmRoot:r,settings:i,statusRegistry:n,runtimeFieldFilters:Re(e,s,"list"),typeRegistry:I(i,C()),projection:a}}async function Kr(e,t,r){let i=t.projection.fields.some(l=>v(l)==="body"),n=t.projection.mode==="full"||t.projection.fields.some(l=>ft.has(v(l))),s=ie(e),o=st(s),a=ot(s);return e.includeBody||i||a?await Ue(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):n||o?await Pe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await k(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function xr(e){let t=oe(e.sort),r=Ft(e.order)??"asc",i=e.tree===!0;if(!i&&e.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new f("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:r,treeEnabled:i,treeDepth:i?Sr(e.treeDepth):void 0,parentRoot:i?L(e.parent):void 0}}function Or(e,t,r){let i=ut(t.status,r),n;t.lifecycleBucket==="in_progress"?n=[r.in_progress_status]:t.lifecycleBucket==="open"&&(n=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,c)=>d.localeCompare(c)));let s=i??n??ut(e,r),o=Ce(t.status),a=i||o?{...t,excludeTerminal:!1}:t,l="all";return o?l="all":i!==void 0?l=i.length===1?i[0]:i:t.lifecycleBucket!==void 0?l=t.lifecycleBucket:s!==void 0?l=s.length===1?s[0]:s:a.excludeTerminal===!0&&(l=null),{resolvedStatus:s,explicitAllStatuses:o,effectiveOptions:a,filtersStatus:l}}function Nr(e,t,r,i,n){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let s=xt(t,e.length),o=kr(e,t,n),a=s===void 0?e.slice(o):e.slice(o,o+s),l=ae(a,r,i),d=e.length,c=a.length>0&&o+a.length<d,u=c&&a.length>0?$(n,a[a.length-1].id,o+a.length-1):void 0;return{projected:l,totalMatched:d,pageExtras:Ot(s,c,u)}}function Nt(e,t,r,i){return _e("list",{pmRoot:i,status:e,options:ge(t,me),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function Pr(e){let{options:t,runtime:r,statusSelection:i,ordering:n}=e,s=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),o=[r.projection.mode==="full",r.projection.fields.some(y=>{let g=v(y);return g==="body"||ft.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,n.treeEnabled,n.sortField!==void 0,o,pe(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!s.has(y))].includes(!0))return null;let a=await R(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let l=N(t.limit),d=se(t.offset)??0,c=await H({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:i.resolvedStatus,excludeStatuses:i.resolvedStatus===void 0&&i.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:l,offset:d}});if(!c)return null;let u=c.items.length>0&&d+c.items.length<c.total,p=u?$(Nt(i.filtersStatus,t,n,r.pmRoot),c.items.at(-1).id,d+c.items.length-1):void 0;return{projected:ae(c.items,r.projection,!1),totalMatched:c.total,pageExtras:Ot(l,u,p)}}function Ur(e){let{filtersStatus:t,options:r,noTruncate:i,treeEnabled:n,treeDepth:s,sortField:o,sortOrder:a,runtimeFieldFilters:l}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let c=r;for(let u of yr){let p=c[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of gr)c[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,_t(r),gt(r)),wt(d,r),i&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),n&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=l,d}async function Hi(e,t,r){let i=await Dr(t,r),n=[],s=xr(t),o=Or(e,t,i.statusRegistry),a=t.noTruncate===!0,l=await Pr({options:t,runtime:i,statusSelection:o,ordering:s}),d=l;if(!d){let g=await Kr(t,i,n),_=s.treeEnabled||L(t.parent)!==void 0?$e(Ge(g,Be())):void 0;vr(g,t.tag,n);let b=Lt(g,o.resolvedStatus,o.effectiveOptions,i.typeRegistry,i.statusRegistry,i.runtimeFieldFilters,_?.parents_by_child),U=t.dependencyBlocked===!0?(()=>{let zt=je(g,i.statusRegistry);return b.filter(Ht=>zt.has(Ht.id.trim().toLowerCase()))})():b,ce=kt(U,s.sortField,s.sortOrder,i.statusRegistry),$t=s.treeEnabled?Mt(ce,s.parentRoot,s.treeDepth,_,g):ce;d=Nr($t,t,i.projection,s.treeEnabled,Nt(o.filtersStatus,t,s,i.pmRoot))}let c=be(),u=[...new Set(n)].sort((g,_)=>g.localeCompare(_)),p=dr(u,l!==null,t.strictRead===!0),y=i.projection.mode==="full"?null:[...i.projection.fields];if(i.projection.mode==="compact"&&t.compact===!0){let g=ht({filtersStatus:o.filtersStatus,options:t,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:y},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:Ur({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters}),projection:{mode:i.projection.mode,fields:y},sorting:{sort:s.sortField??"default",order:s.sortField?s.sortOrder:"asc",...s.sortField===void 0&&!s.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:c,...u.length>0?{warnings:u}:{}}}var qi={applyFilters:Lt,buildCompactListFilterSummary:ht,buildContentFilterEcho:gt,buildGovernanceMissingFilterEcho:_t,resolveContentFieldFilters:ie,resolveMissingMetadataFilters:mt,compareBySortField:Rt,compareDefaultSort:ne,compareNullableString:Ct,compareNullableTimestamp:At,normalizeProjectionField:v,parseAssigneeFilter:Et,parseFieldSelectors:vt,parseIdsFilter:St,parseOffset:se,parseProjectionConfig:It,resolveListUpdatedAfter:bt,resolveListPageLimit:xt,parseSortField:oe,parseSortOrder:Ft,orderItemsAsTree:Mt,projectListItems:ae,readListFieldValue:Dt,runtimeMetadataKeysForProjection:Kt,sortItems:kt,trimNonEmpty:L,withTreeMetadata:re};(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]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function fn(e,t){let r=Me(e),i=e.length>0?e[e.length-1].after_hash:Te(),n=t===void 0||r.item_hash_version===void 0?void 0:Ee(t,r.item_hash_version,Se(e.at(-1)?.hash_algorithm)),s=t===void 0?void 0:n===void 0?Fe(t):n[Math.max(0,n.indexOf(i))],o=s===void 0?void 0:s===i,a=[...r.errors];return o===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:o}}async function pn(e,t,r={}){let i=w(r.cwd??process.cwd(),r.pmRoot);await O(i);let n=await S(i),s=I(n,C()),o=await ze(i,e,n,s.type_to_folder),a=await Ie(o.historyPath,o.id);if(a.length===0)throw new f(`No history exists for ${o.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let l=Ke(t,a),d=Oe(xe(a,l.historyIndex),l),c=Le(d,{schema:n.schema});if(c.metadata.id!==o.id)throw new f(`History target resolved to item ${c.metadata.id}, expected ${o.id}.`,m.GENERIC_FAILURE);let u=a[l.historyIndex],p=De(a,!0);return{document:c,reconstructed:!0,as_of_version:p===null?null:p+l.historyIndex+1,as_of_timestamp:u.ts,target:l,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]="e524f0ad-faad-5d89-b8f5-1283979919ad")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67d97df8-6551-52ed-9307-8b573a087831")}catch{}})();var P=1e6;function le(e,t=P,r=.8,i=!1){let n=new Set,s=(c,u)=>{if(n.add(`${c}:${u}`),n.size>t)throw new f(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(i||r===0){for(let c=0;c<e.length;c+=1)for(let u=0;u<c;u+=1)s(u,c);return n}let o=new Map;for(let{prepared:c}of e)for(let u of c.tokens)o.set(u,(o.get(u)??0)+1);let a=new Map,l=new Map,d=new Map;for(let[c,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((_,b)=>o.get(_)-o.get(b)||_.localeCompare(b)),y=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:l,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,y),lengthFilter:!0}];for(let _ of g)jr(e,c,_,r,s)}return n}function jr(e,t,r,i,n){let s=e[t].prepared.tokens.length;for(let o of r.keys){let a=r.index.get(o)??[];for(let l of a){let d=e[l].prepared.tokens.length;r.lengthFilter&&Math.min(d,s)/Math.max(d,s)+1e-12<i||n(l,t)}a.push(t),r.index.set(o,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]="a5f450bd-8970-5b1b-8250-b76b7818e6e1")}catch{}})();var Br=3,Pt=20,Gr=.8,$r=100,Ut=1e3;function Bn(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function zr(e,t){let r=e.items[0],i=w(t.cwd??process.cwd(),t.pmRoot),n=M((await S(i)).schema);return E(r.status,n)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function de(e){let t=e.limit??Br,r=e.threshold??Gr;if(!Number.isSafeInteger(t)||t<0||t>Pt)throw new f(`Similarity limit must be an integer from 0 to ${Pt}.`,m.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:r}}function jt(e){let t=e.limit??$r;if(!Number.isSafeInteger(t)||t<0||t>Ut)throw new f(`Duplicate cluster limit must be an integer from 0 to ${Ut}.`,m.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:r}}async function Hr(e,t){let r=w(e.cwd??process.cwd(),e.pmRoot),i=await S(r),n=I(i),s=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&s?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let o=M(i.schema),a=s?.map(u=>{if(u==="all")return u;let p=ve(u,o);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${o.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),l=a?.includes("all")===!0;if(l&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=l?void 0:a,c=d?new Set(d):void 0;return{items:(await k(r,i.item_format,n.type_to_folder,void 0,i.schema)).filter(u=>(!c||c.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var Gn={buildDuplicateClusters:Gt,collectDuplicateCandidatePairs:le,createDuplicateUnionFind:Bt};function Bt(e){let t=Array.from({length:e},(r,i)=>i);return{parent:t,findRoot:r=>{let i=r;for(;t[i]!==i;)i=t[i];for(;t[r]!==r;){let n=t[r];t[r]=i,r=n}return i}}}function qr(e,t,r,i){let n=[];for(let s of t){let[o,a]=s.split(":").map(u=>Number.parseInt(u,10)),l=Y(e[o].prepared,e[a].prepared);if(l.score<r)continue;let d=i.findRoot(o),c=i.findRoot(a);d!==c&&(i.parent[c]=d),n.push({left_id:e[o].item.id,right_id:e[a].item.id,...l})}return n}function Gt(e,t,r,i){let n=new Map;for(let a of e.keys()){let l=r.findRoot(a),d=n.get(l)??[];d.push(a),n.set(l,d)}let s=new Map(e.map(({item:a},l)=>[a.id,r.findRoot(l)])),o=new Map;for(let a of t){let l=s.get(a.left_id),d=o.get(l)??[];d.push(a),o.set(l,d)}return[...n.values()].filter(a=>a.length>1).map(a=>{let l=(o.get(r.findRoot(a[0]))??[]).sort((d,c)=>c.score-d.score||d.left_id.localeCompare(c.left_id)||d.right_id.localeCompare(c.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let c=e[d].item;return{id:c.id,title:c.title,status:c.status,type:c.type}}),matches:l,max_score:l[0]?.score??0}}).sort((a,l)=>l.max_score-a.max_score||a.id.localeCompare(l.id)).slice(0,i)}function Vr(e,t,r,i,n){return t.filter(s=>!r.has(s.id)).map(s=>({id:s.id,title:s.title,status:s.status,type:s.type,...X(e,s.title)})).filter(s=>s.score>=i).sort((s,o)=>o.score-s.score||s.id.localeCompare(o.id)).slice(0,n)}async function Wr(e,t={}){let r=e.title.trim();if(r.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:i,threshold:n}=de(t),s=w(t.cwd??process.cwd(),t.pmRoot),o=await S(s),a=I(o),l=await R(s,Object.values(a.type_to_folder)),d=V(r),c=l&&d.length>0?await q({pmRoot:s,expectedSourceCursor:l.source_cursor,query:d.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(i*10,50)}):null,u=c===null?await k(s,o.item_format,a.type_to_folder,void 0,o.schema):c.items,p=Vr(r,u,new Set(e.excludeIds??[]),n,i);return{items:p,count:p.length,threshold:n,source:c?"persistent_index":"metadata_fallback"}}function Xr(e,t={}){let{threshold:r}=de({...t,limit:void 0}),{limit:i}=jt(t),n=new Set;for(let c of e){if(!c.id.trim()||n.has(c.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);n.add(c.id)}let s=[...e].sort((c,u)=>c.id.localeCompare(u.id)).map(c=>({item:c,prepared:W(c.title)})),o=le(s,P,r,t.exhaustive===!0),a=Bt(s.length),l=qr(s,o,r,a),d=Gt(s,l,a,i);return{clusters:d,count:d.length,threshold:r,cost:{item_count:s.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:s.length*(s.length-1)/2,pair_limit:P,recall_guarantee:"exact",candidate_pairs:o.size,scored_pairs:o.size}}}async function $n(e={}){de({...e,limit:void 0});let{since:t}=jt(e),{items:r,statuses:i}=await Hr(e,t);return{...Xr(r,e),source:"metadata_scan",filters:{statuses:i??null,since:e.since??null}}}async function zn(e,t){if(t.mode==="off")return;let r=await Wr(e,t);if(r.count===0)return;let i=await zr(r,t),n=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!n){let s=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),o=i.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${s}. ${o} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${o}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:i.command,suggested_retry_args:i.args}})}return{mode:t.mode,bypassed:n,result:r,recovery:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function qn(e,t){let r=t??{};return e.filter(i=>r[i.id]!==i.updated_at).map(i=>i.id).sort((i,n)=>i.localeCompare(n))}export{N as a,He as b,ti as c,Q as d,D as e,qe as f,Ve as g,Je as h,ee as i,et as j,di as k,ci as l,it as m,nt as n,mi as o,mt as p,ie as q,lt as r,dt as s,fr as t,gt as u,_t as v,Hi as w,qi as x,fn as y,pn as z,Bn as A,Gn as B,Wr as C,Xr as D,$n as E,zn as F,qn as G};
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as ze}from"./chunk-E56OXRYH.js";import{$a as Y,Ya as V,Za as W,_a as X,fa as Ce,ga as Ae,ja as Re,ka as ke}from"./chunk-GS3JC5UU.js";import{t as me}from"./chunk-MK4HV4JO.js";import{d as Be,e as Ge,h as $e}from"./chunk-G4QP365K.js";import{g as je}from"./chunk-7KK66ISG.js";import{D as H,F as q,H as Ne,J as R,P as Pe,Q as k,R as Ue,h as De,i as Ke,k as xe,l as Oe}from"./chunk-O7EI33NP.js";import{Ga as Le,Ka as Me,d as Se,fb as S,ha as Ie,kb as O,v as ve,wa as Fe,x as E,xa as Ee,ya as Te}from"./chunk-YMGB2O4E.js";import{b as ue}from"./chunk-RFTJZ5VB.js";import{j as M,l as fe}from"./chunk-VWWTIX5L.js";import{Ec as pe,Hd as ge,Id as _e,Jd as $,Nd as he,Qc as ye,Rd as be,Vd as A,Wd as we,Xd as z,Zb as j,_b as B,ac as G,ba as h,ra as I,sa as x,xa as w,xc as C}from"./chunk-M6V7UMWL.js";import{A as f,z as m}from"./chunk-G6ERMFJ5.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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function N(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return i}function He(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),i=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(i)||i<0||i>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return i}function ti(e,t,r="--type"){if(e===void 0)return;let i=x(e,t);if(!i)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function Q(e,t){if(e===void 0)return;let r=[],i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a==="\\"){let l=e[o+1];if(l===","||l==="\\"){i+=l,o+=1;continue}i+=a;continue}if(a===","){r.push(i),i="";continue}i+=a}r.push(i);let n=r.map(o=>o.trim());if(n.some(o=>o.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let s=n.map(o=>t.normalize?.(o)??o);return[...new Set(s)]}function D(e,t){let r=Q(e,t);return r===void 0?void 0:new Set(r)}function qe(e,t,r="--type"){let i=Q(e,{label:r});if(i===void 0)return;let n=i.map(s=>{let o=x(s,t);if(!o)throw new f(`${r} filter token "${s}" must be one of ${t.types.join("|")}`,m.USAGE);return o});return new Set(n)}function Ve(e,t="--priority"){let r=Q(e,{label:t});if(r!==void 0)return new Set(r.map(i=>He(i,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]="f9d73d74-7c4e-5ea9-b34c-c984b4c15ab3")}catch{}})();function We(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function Je(e){return{isTerminal(t){return e.terminal_statuses.has(We(t,e))},classify(t){let r=We(t,e);return e.terminal_canceled_statuses.has(r)?"canceled":e.terminal_statuses.has(r)?"closed":e.blocked_statuses.has(r)?"blocked":e.draft_statuses.has(r)?"draft":r===e.open_status?"open":e.active_statuses.has(r)?"in_progress":"other"}}}function J(e){return h(e.acceptance_criteria)===void 0}function Z(e){return!Number.isFinite(e.estimated_minutes)}function Ze(e,t){return t.isTerminal(e.status)?h(e.resolution)===void 0:!1}function qt(e){return h(e.reviewer)===void 0}function Vt(e){return h(e.risk)===void 0}function Wt(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):h(e.confidence)===void 0}function Xt(e){return h(e.sprint)===void 0}function Yt(e){return h(e.release)===void 0}function ee(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function Qt(e,t,r){return[[t.acMissing,J(e)],[t.estimatesMissing,Z(e)],[t.resolutionMissing,Ze(e,r)],[t.reviewerMissing,qt(e)],[t.riskMissing,Vt(e)],[t.confidenceMissing,Wt(e)],[t.sprintMissing,Xt(e)],[t.releaseMissing,Yt(e)]].every(([i,n])=>i!==!0||n)}function Jt(e,t){return J(e)||Z(e)||Ze(e,t)}function et(e,t,r){return ee(t)?!(!Qt(e,t,r)||t.metadataMissing&&!Jt(e,r)):!0}var te=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Zt(e,t){switch(t){case"acceptance_criteria":return!J(e);case"estimated_minutes":return!Z(e);case"resolution":return h(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return h(e.parent)!==void 0}}function er(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function tr(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Xe(){let e={};for(let t of te)e[t]={present:0,applicable:0,percent:100};return e}function Ye(e,t,r){for(let i of te){if(!er(t,i,r))continue;let n=e[i];n.applicable+=1,Zt(t,i)&&(n.present+=1)}}function Qe(e){for(let t of te){let r=e[t];r.percent=tr(r.present,r.applicable)}}function di(e,t){let r=Xe(),i={};for(let n of e){Ye(r,n,t);let s=i[n.type]??(i[n.type]=Xe());Ye(s,n,t)}Qe(r);for(let n of Object.values(i))Qe(n);return{overall:r,by_type:i}}var rr={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function ir(e){return rr[e]}function nr(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function sr(e,t,r){switch(t){case"assignee":return[h(e.assignee)??null];case"parent":return[h(e.parent)??null];case"type":return[h(e.type)??null];case"status":return[h(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let i=r.tagPrefix?.trim(),n=(Array.isArray(e.tags)?e.tags:[]).filter(s=>typeof s=="string"&&s.length>0&&(!i||s.startsWith(i)));return n.length>0?n:[null]}}}function ci(e,t,r,i={}){let n=new Map,s=0;for(let a of e){s+=1;let l=r.classify(a.status);for(let d of sr(a,t,i)){let c=d??"\0empty",u=n.get(c);u||(u={label:d??ir(t),key:d,buckets:nr(),total:0},n.set(c,u)),u.buckets[l]+=1,u.total+=1}}let o=[...n.values()].sort((a,l)=>l.total!==a.total?l.total-a.total:a.key===null?1:l.key===null?-1:a.label.localeCompare(l.label));return{dimension:t,rows:o,total_items:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var T=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function F(e){return Array.isArray(e)&&e.length>0}function or(e){return typeof e=="string"&&e.trim().length>0}function ar(e){return Array.isArray(e)?e.some(t=>{if(typeof t!="object"||t===null)return!1;let r=t.command;return typeof r=="string"&&r.trim().length>0}):!1}function rt(e,t){switch(t){case"notes":return F(e.notes);case"learnings":return F(e.learnings);case"files":return F(e.files);case"docs":return F(e.docs);case"tests":return F(e.tests);case"comments":return F(e.comments);case"deps":return F(e.dependencies);case"body":return or(e.body);case"linked_command":return ar(e.tests)}}function it(e){return T.some(t=>e[t]!==void 0)}function nt(e,t){for(let r of T){let i=t[r];if(i===void 0)continue;let n=rt(e,r);if(i==="present"&&!n||i==="absent"&&n)return!1}return!0}function st(e){return T.some(t=>t!=="body"&&e[t]!==void 0)}function ot(e){return e.body!==void 0}function tt(e,t){return t===0?100:Math.round(e/t*1e3)/10}function lr(){let e={};for(let t of T)e[t]={present:0,total:0,percent:100};return e}function mi(e){let t=lr(),r=e.length;for(let o of e)for(let a of T)rt(o,a)&&(t[a].present+=1);for(let o of T)t[o].total=r,t[o].percent=tt(t[o].present,r);let i=t.body,n=r-i.present,s={present:n,total:r,percent:tt(n,r)};return{total_items:r,fields:t,body_populated:i,empty_body:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="084aad9c-485f-5bdc-8da7-225c9c4f695c")}catch{}})();var mt=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}),at=[{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"}],ie=e=>{let t=at.find(r=>e[r.presentKey]===!0&&e[r.absentKey]===!0);if(t)throw new f(`Cannot combine ${t.presentFlag} with ${t.absentFlag} for the same field.`,m.USAGE);return Object.fromEntries(at.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},lt=["priority","deadline","updated_at","created_at","title","parent"],dt=["asc","desc"],ft=new Set(Ne);function dr(e,t,r){let i=e.filter(o=>o.startsWith("item_list_item_read_failed:")).length,n=e.filter(o=>o.startsWith("item_list_directory_read_failed:")).length,s={status:t?"unchecked":i+n>0?"partial":"complete",unreadable_item_count:i,unreadable_directory_count:n};if(r&&s.status==="partial")throw new f(`List source is incomplete: ${i} item document(s) and ${n} 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 s}function cr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var ur=[{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"}],mr=[{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 pt(e,t){for(let r of ur)t[r.key]===!0&&(e[r.summaryKey]=!0)}function yt(e,t){for(let r of mr)t[r.key]===!0&&(e[r.summaryKey]=!0)}function fr(e,t,r){for(let i of r){let n=t[i.optionKey];n!==void 0&&(e[i.summaryKey]=i.normalize?i.normalize(n):n)}}function gt(e){let t={};return pt(t,e),t}function _t(e){let t={};return yt(t,e),t}var pr=[{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"}],yr=[{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"}],gr=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],_r="-7d";function ht(e){let{filtersStatus:t,options:r,treeEnabled:i,treeDepth:n,sortField:s,sortOrder:o,runtimeFieldFilters:a}=e,l={};return t!==null&&(l.status=t),r.dependencyBlocked===!0&&(l.blocked_semantics="status_or_dependency"),fr(l,r,pr),wt(l,r),r.filterAcMissing===!0&&(l.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(l.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(l.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(l.filter_metadata_missing=!0),yt(l,r),pt(l,r),r.limit!==void 0&&(l.limit=r.limit),r.offset!==void 0&&(l.offset=r.offset),r.includeBody===!0&&(l.include_body=!0),r.fields!==void 0&&(l.fields=r.fields),i&&(l.tree=!0,n!==void 0&&(l.tree_depth=n)),s!==void 0&&(l.sort=s,l.order=o),cr(a)&&(l.runtime_filters=a),l}function ne(e,t,r){let i=E(e.status,r),n=E(t.status,r);if(i!==n)return i?1:-1;let s=e.priority-t.priority;if(s!==0)return s;let o=A(t.updated_at,e.updated_at);return o!==0?o:(e.id??"").localeCompare(t.id??"")}function hr(e,t){return[...e].sort((r,i)=>ne(r,i,t))}function ct(e,t){if(e!==void 0)return z(e,new Date,t)}function K(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return z(r,new Date,t)}function bt(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 f("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?K(_r,"recent"):K(e.updatedAfter,"updated-after")}function wt(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function St(e){if(e==null)return;let t=String(e).trim();if(t.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);let r=t.split(",").map(i=>i.trim()).filter(i=>i.length>0);if(r.length===0)throw new f("--ids requires at least one non-empty item ID",m.USAGE);return new Set(r)}function se(e){if(e===void 0)return;let t=String(e).trim(),r=t.length===0?Number.NaN:Number(t);if(!Number.isInteger(r)||r<0)throw new f("Offset filter must be a non-negative integer",m.USAGE);return r}function vt(e){if(e===void 0)return;let t=e.split(",").map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new f("List --fields requires a comma-separated list of field names",m.USAGE);return[...new Set(t)]}function It(e,t=e.projectionCommand??"list"){let r=e.compact===!0,i=e.brief===!0,n=e.full===!0,s=vt(e.fields);if(Number(r)+Number(i)+Number(n)+ +(s!==void 0)>1)throw new f("List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.",m.USAGE,{code:"projection_options_mutually_exclusive",recovery:{suggested_retry:`pm ${t} --brief`,suggested_retry_args:[t,"--brief"]}});if(n)return{mode:"full",fields:[]};if(i){let o=oe(e.sort);return{mode:"brief",fields:[...new Set([...B,o??"priority"])]}}return r?{mode:"compact",fields:[...j]}:s?{mode:"fields",fields:[...new Set(s.map(o=>v(o)))]}:{mode:"full",fields:[]}}function v(e){return e.startsWith("item.")?e.slice(5):e}function br(e,t,r){if(e.mode!=="fields")return;let i=G(t),n=new Set(i.map(o=>v(o))),s=e.fields.filter(o=>!n.has(v(o)));if(s.length>0){let o=[r,"--fields",e.fields.filter(a=>!s.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${s.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list --status open --fields id,title,status","pm list --fields id,title,parent,priority --limit 10","pm list --all --fields id,title,body --limit 5"],recovery:{allowed_values:i,suggested_retry:ye(o),suggested_retry_args:o}})}}var wr=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function oe(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=wr.get(t);if(r)return r;if(!lt.includes(t))throw new f(`Sort field must be one of ${lt.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function Ft(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!dt.includes(t))throw new f(`Sort order must be one of ${dt.join("|")}`,m.USAGE);return t}function Sr(e){return N(e,"--tree-depth")}function Et(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!t)throw new f("Assignee filter must be one of assigned|unassigned",m.USAGE);if(t!=="assigned"&&t!=="unassigned")throw new f(`Invalid assignee filter "${e}". Allowed: assigned|unassigned`,m.USAGE);return t}function ut(e,t){return Ae(e,t,{strict:!0})}function Tt(e){return D(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function vr(e,t,r){let i=Tt(t);if(i===void 0)return;let n=new Set(e.flatMap(o=>o.tags.map(a=>a.trim().toLowerCase()))),s=[...i].filter(o=>!n.has(o));s.length>0&&r.push(`unknown_tags:${s.join(",")}`)}function Ir(e,t){if(e&&[...e].some(r=>r.toLowerCase()==="none"||r.toLowerCase()==="null"))throw new f('--assignee no longer accepts "none" or "null". Use --assignee-filter unassigned.',m.USAGE);if(e!==void 0&&t==="unassigned")throw new f("Cannot combine --assignee with --assignee-filter unassigned",m.USAGE)}function Fr(e,t,r,i){let n=D(t.assignee,{label:"--assignee"}),s=Et(t.assigneeFilter);Ir(n,s);let o=mt(t),a=ie(t);return{idsFilter:St(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:qe(t.type,r),tagFilters:Tt(t.tag),priorityFilter:Ve(t.priority),deadlineBefore:ct(t.deadlineBefore,"deadline-before"),deadlineAfter:ct(t.deadlineAfter,"deadline-after"),updatedAfter:bt(t),updatedBefore:K(t.updatedBefore,"updated-before"),createdAfter:K(t.createdAfter,"created-after"),createdBefore:K(t.createdBefore,"created-before"),assigneeFilter:n,assigneeModeFilter:s,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:D(t.sprint,{label:"--sprint"}),releaseFilter:D(t.release,{label:"--release"}),missingMetadataFilters:o,missingMetadataActive:ee(o),lifecycleClassifier:Je(i),contentFieldFilters:a,contentFiltersActive:it(a)}}function Er(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&E(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(i=>(e.tags??[]).some(n=>n.trim().toLowerCase()===i))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Tr(e,t){return we(e,t)}function Lr(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 Mr(e,t,r){let i=e.parent?.trim().toLowerCase(),n=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...i?[i]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!n.includes(t.parentFilter.trim().toLowerCase())||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 Cr(e,t,r,i,n){return!(!Er(e,t,r)||!Tr(e,t)||!Lr(e,t)||!Mr(e,t,n)||t.missingMetadataActive&&!et(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!nt(e,t.contentFieldFilters)||!ke(e,i))}function Lt(e,t,r,i,n,s,o){let a=Fr(t,r,i,n);return e.filter(l=>Cr(l,a,n,s,o))}function L(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function re(e,t,r,i){let n=e,s=typeof n.title=="string"?n.title:"",o=i??L(typeof n.parent=="string"?n.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:o,tree_children:r,tree_title:`${" ".repeat(t)}${s}`}}function Ar(e,t){let r=new Map,i=new Map;for(let n of e){let s=n.id.trim().toLowerCase();r.set(s,n);let o=t?t.parents_by_child.get(s)??[]:[L(n.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of o){let l=i.get(a)??[];l.push(n),i.set(a,l)}}return{byId:r,childrenByParent:i}}function Rr(e,t,r,i,n){return t?[...i.get(t.toLowerCase())??[]]:e.filter(s=>(n?n.parents_by_child.get(s.id.trim().toLowerCase())??[]:[L(s.parent)?.toLowerCase()].filter(o=>o!==void 0)).every(o=>!r.has(o)))}function Mt(e,t,r,i,n=e){let{byId:s,childrenByParent:o}=Ar(e,i),a=Rr(e,t,s,o,i),l=[],d=new Set,c=new Map(n.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:c.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:y,parentId:g}=u.pop(),_=p.id.trim().toLowerCase();if(d.has(_))continue;d.add(_);let b=o.get(_)??[];if(l.push(re(p,y,b.length,g)),!(r!==void 0&&y>=r))for(let U of[...b].reverse())u.push({node:U,depth:y+1,parentId:c.get(_)})}if(t===void 0&&r===void 0)for(let p of e){let y=p.id.trim().toLowerCase();d.has(y)||(d.add(y),l.push(re(p,0,o.get(y)?.length??0)))}return l}function Ct(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function At(e,t){return e===t?0:e===null?1:t===null?-1:A(e,t)}function Rt(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return At(e.deadline??null,t.deadline??null);case"updated_at":return A(e.updated_at,t.updated_at);case"created_at":return A(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return Ct(e.parent??null,t.parent??null);default:return 0}}function kt(e,t,r,i){return t?[...e].sort((n,s)=>{let o=Rt(n,s,t);if(o!==0)return r==="desc"?-o:o;let a=ne(n,s,i);return r==="desc"?-a:a}):hr(e,i)}function Dt(e,t,r=!1){let i=v(t.trim());if(i.length===0)return null;let n=e;return r&&i==="title"&&typeof n.tree_title=="string"?n.tree_title:Object.prototype.hasOwnProperty.call(n,i)?n[i]??null:null}function ae(e,t,r=!1){return t.mode==="full"?e:e.map(i=>{let n={};for(let s of t.fields)n[s]=Dt(i,s,r);return n})}function Kt(e){let t=[];for(let r of e)t.push(r.metadata_key);return[...t,...ue(C())]}function xt(e,t){let r=N(e.limit);if(r!==void 0)return r;if(e.noTruncate!==!0)return t>=1e4?20:void 0}function kr(e,t,r){return t.after===void 0?se(t.offset)??0:he(e,t.after,r,i=>i.id)}function Ot(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function Dr(e,t){let r=w(process.cwd(),t.path);await O(r);let i=await S(r),n=M(i.schema),s=fe(i.schema),o=e.projectionCommand??"list",a=It(e,o);return br(a,Kt(s.definitions),o),{pmRoot:r,settings:i,statusRegistry:n,runtimeFieldFilters:Re(e,s,"list"),typeRegistry:I(i,C()),projection:a}}async function Kr(e,t,r){let i=t.projection.fields.some(l=>v(l)==="body"),n=t.projection.mode==="full"||t.projection.fields.some(l=>ft.has(v(l))),s=ie(e),o=st(s),a=ot(s);return e.includeBody||i||a?await Ue(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):n||o?await Pe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await k(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function xr(e){let t=oe(e.sort),r=Ft(e.order)??"asc",i=e.tree===!0;if(!i&&e.treeDepth!==void 0)throw new f("List --tree-depth requires --tree",m.USAGE);if(!t&&e.order!==void 0)throw new f("List --order requires --sort",m.USAGE);return{sortField:t,sortOrder:r,treeEnabled:i,treeDepth:i?Sr(e.treeDepth):void 0,parentRoot:i?L(e.parent):void 0}}function Or(e,t,r){let i=ut(t.status,r),n;t.lifecycleBucket==="in_progress"?n=[r.in_progress_status]:t.lifecycleBucket==="open"&&(n=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,c)=>d.localeCompare(c)));let s=i??n??ut(e,r),o=Ce(t.status),a=i||o?{...t,excludeTerminal:!1}:t,l="all";return o?l="all":i!==void 0?l=i.length===1?i[0]:i:t.lifecycleBucket!==void 0?l=t.lifecycleBucket:s!==void 0?l=s.length===1?s[0]:s:a.excludeTerminal===!0&&(l=null),{resolvedStatus:s,explicitAllStatuses:o,effectiveOptions:a,filtersStatus:l}}function Nr(e,t,r,i,n){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let s=xt(t,e.length),o=kr(e,t,n),a=s===void 0?e.slice(o):e.slice(o,o+s),l=ae(a,r,i),d=e.length,c=a.length>0&&o+a.length<d,u=c&&a.length>0?$(n,a[a.length-1].id,o+a.length-1):void 0;return{projected:l,totalMatched:d,pageExtras:Ot(s,c,u)}}function Nt(e,t,r,i){return _e("list",{pmRoot:i,status:e,options:ge(t,me),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function Pr(e){let{options:t,runtime:r,statusSelection:i,ordering:n}=e,s=new Set(["status","limit","offset","compact","brief","full","fields","format","stream","includeBody","excludeTerminal","dependencyBlocked","lifecycleBucket","noTruncate","projectionCommand","truncate","notes","learnings","files","docs","tests","comments","deps","linkedCommand"]),o=[r.projection.mode==="full",r.projection.fields.some(y=>{let g=v(y);return g==="body"||ft.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,n.treeEnabled,n.sortField!==void 0,o,pe(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([y,g])=>g!==void 0&&!s.has(y))].includes(!0))return null;let a=await R(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let l=N(t.limit),d=se(t.offset)??0,c=await H({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:i.resolvedStatus,excludeStatuses:i.resolvedStatus===void 0&&i.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:l,offset:d}});if(!c)return null;let u=c.items.length>0&&d+c.items.length<c.total,p=u?$(Nt(i.filtersStatus,t,n,r.pmRoot),c.items.at(-1).id,d+c.items.length-1):void 0;return{projected:ae(c.items,r.projection,!1),totalMatched:c.total,pageExtras:Ot(l,u,p)}}function Ur(e){let{filtersStatus:t,options:r,noTruncate:i,treeEnabled:n,treeDepth:s,sortField:o,sortOrder:a,runtimeFieldFilters:l}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let c=r;for(let u of yr){let p=c[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of gr)c[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,_t(r),gt(r)),wt(d,r),i&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),n&&(d.tree=!0,s!==void 0&&(d.tree_depth=s)),o!==void 0&&(d.sort=o,d.order=a),d.runtime_filters=l,d}async function Hi(e,t,r){let i=await Dr(t,r),n=[],s=xr(t),o=Or(e,t,i.statusRegistry),a=t.noTruncate===!0,l=await Pr({options:t,runtime:i,statusSelection:o,ordering:s}),d=l;if(!d){let g=await Kr(t,i,n),_=s.treeEnabled||L(t.parent)!==void 0?$e(Ge(g,Be())):void 0;vr(g,t.tag,n);let b=Lt(g,o.resolvedStatus,o.effectiveOptions,i.typeRegistry,i.statusRegistry,i.runtimeFieldFilters,_?.parents_by_child),U=t.dependencyBlocked===!0?(()=>{let zt=je(g,i.statusRegistry);return b.filter(Ht=>zt.has(Ht.id.trim().toLowerCase()))})():b,ce=kt(U,s.sortField,s.sortOrder,i.statusRegistry),$t=s.treeEnabled?Mt(ce,s.parentRoot,s.treeDepth,_,g):ce;d=Nr($t,t,i.projection,s.treeEnabled,Nt(o.filtersStatus,t,s,i.pmRoot))}let c=be(),u=[...new Set(n)].sort((g,_)=>g.localeCompare(_)),p=dr(u,l!==null,t.strictRead===!0),y=i.projection.mode==="full"?null:[...i.projection.fields];if(i.projection.mode==="compact"&&t.compact===!0){let g=ht({filtersStatus:o.filtersStatus,options:t,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:y},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:Ur({filtersStatus:o.filtersStatus,options:t,noTruncate:a,treeEnabled:s.treeEnabled,treeDepth:s.treeDepth,sortField:s.sortField,sortOrder:s.sortOrder,runtimeFieldFilters:i.runtimeFieldFilters}),projection:{mode:i.projection.mode,fields:y},sorting:{sort:s.sortField??"default",order:s.sortField?s.sortOrder:"asc",...s.sortField===void 0&&!s.treeEnabled?{effective_keys:[["status_registry:nonterminal_before_terminal","asc"],["priority","asc"],["updated_at","desc"],["id","asc"]]}:{}},now:c,...u.length>0?{warnings:u}:{}}}var qi={applyFilters:Lt,buildCompactListFilterSummary:ht,buildContentFilterEcho:gt,buildGovernanceMissingFilterEcho:_t,resolveContentFieldFilters:ie,resolveMissingMetadataFilters:mt,compareBySortField:Rt,compareDefaultSort:ne,compareNullableString:Ct,compareNullableTimestamp:At,normalizeProjectionField:v,parseAssigneeFilter:Et,parseFieldSelectors:vt,parseIdsFilter:St,parseOffset:se,parseProjectionConfig:It,resolveListUpdatedAfter:bt,resolveListPageLimit:xt,parseSortField:oe,parseSortOrder:Ft,orderItemsAsTree:Mt,projectListItems:ae,readListFieldValue:Dt,runtimeMetadataKeysForProjection:Kt,sortItems:kt,trimNonEmpty:L,withTreeMetadata:re};(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]="eb2e6046-156c-56ee-a03a-ecaa1cccfb45")}catch{}})();function fn(e,t){let r=Me(e),i=e.length>0?e[e.length-1].after_hash:Te(),n=t===void 0||r.item_hash_version===void 0?void 0:Ee(t,r.item_hash_version,Se(e.at(-1)?.hash_algorithm)),s=t===void 0?void 0:n===void 0?Fe(t):n[Math.max(0,n.indexOf(i))],o=s===void 0?void 0:s===i,a=[...r.errors];return o===!1&&a.push("verify_failed:current_item_hash_mismatch"),{ok:a.length===0,entries:e.length,errors:a,latest_after_hash:e.length>0?e[e.length-1].after_hash:void 0,current_item_hash:s,current_matches_latest:o}}async function pn(e,t,r={}){let i=w(r.cwd??process.cwd(),r.pmRoot);await O(i);let n=await S(i),s=I(n,C()),o=await ze(i,e,n,s.type_to_folder),a=await Ie(o.historyPath,o.id);if(a.length===0)throw new f(`No history exists for ${o.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let l=Ke(t,a),d=Oe(xe(a,l.historyIndex),l),c=Le(d,{schema:n.schema});if(c.metadata.id!==o.id)throw new f(`History target resolved to item ${c.metadata.id}, expected ${o.id}.`,m.GENERIC_FAILURE);let u=a[l.historyIndex],p=De(a,!0);return{document:c,reconstructed:!0,as_of_version:p===null?null:p+l.historyIndex+1,as_of_timestamp:u.ts,target:l,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]="e524f0ad-faad-5d89-b8f5-1283979919ad")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67d97df8-6551-52ed-9307-8b573a087831")}catch{}})();var P=1e6;function le(e,t=P,r=.8,i=!1){let n=new Set,s=(c,u)=>{if(n.add(`${c}:${u}`),n.size>t)throw new f(`Duplicate sweep exceeded ${t} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the duplicate query or increase its similarity threshold. No partial result was returned."})};if(i||r===0){for(let c=0;c<e.length;c+=1)for(let u=0;u<c;u+=1)s(u,c);return n}let o=new Map;for(let{prepared:c}of e)for(let u of c.tokens)o.set(u,(o.get(u)??0)+1);let a=new Map,l=new Map,d=new Map;for(let[c,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((_,b)=>o.get(_)-o.get(b)||_.localeCompare(b)),y=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:l,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,y),lengthFilter:!0}];for(let _ of g)jr(e,c,_,r,s)}return n}function jr(e,t,r,i,n){let s=e[t].prepared.tokens.length;for(let o of r.keys){let a=r.index.get(o)??[];for(let l of a){let d=e[l].prepared.tokens.length;r.lengthFilter&&Math.min(d,s)/Math.max(d,s)+1e-12<i||n(l,t)}a.push(t),r.index.set(o,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]="a5f450bd-8970-5b1b-8250-b76b7818e6e1")}catch{}})();var Br=3,Pt=20,Gr=.8,$r=100,Ut=1e3;function Bn(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`,`likely_duplicate_recovery:${e.recovery.action}:${e.recovery.item_id}`]}async function zr(e,t){let r=e.items[0],i=w(t.cwd??process.cwd(),t.pmRoot),n=M((await S(i)).schema);return E(r.status,n)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function de(e){let t=e.limit??Br,r=e.threshold??Gr;if(!Number.isSafeInteger(t)||t<0||t>Pt)throw new f(`Similarity limit must be an integer from 0 to ${Pt}.`,m.USAGE);if(!Number.isFinite(r)||r<0||r>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:r}}function jt(e){let t=e.limit??$r;if(!Number.isSafeInteger(t)||t<0||t>Ut)throw new f(`Duplicate cluster limit must be an integer from 0 to ${Ut}.`,m.USAGE);let r=e.since===void 0?void 0:new Date(e.since);if(r&&Number.isNaN(r.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:r}}async function Hr(e,t){let r=w(e.cwd??process.cwd(),e.pmRoot),i=await S(r),n=I(i),s=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&s?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let o=M(i.schema),a=s?.map(u=>{if(u==="all")return u;let p=ve(u,o);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${o.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),l=a?.includes("all")===!0;if(l&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=l?void 0:a,c=d?new Set(d):void 0;return{items:(await k(r,i.item_format,n.type_to_folder,void 0,i.schema)).filter(u=>(!c||c.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var Gn={buildDuplicateClusters:Gt,collectDuplicateCandidatePairs:le,createDuplicateUnionFind:Bt};function Bt(e){let t=Array.from({length:e},(r,i)=>i);return{parent:t,findRoot:r=>{let i=r;for(;t[i]!==i;)i=t[i];for(;t[r]!==r;){let n=t[r];t[r]=i,r=n}return i}}}function qr(e,t,r,i){let n=[];for(let s of t){let[o,a]=s.split(":").map(u=>Number.parseInt(u,10)),l=Y(e[o].prepared,e[a].prepared);if(l.score<r)continue;let d=i.findRoot(o),c=i.findRoot(a);d!==c&&(i.parent[c]=d),n.push({left_id:e[o].item.id,right_id:e[a].item.id,...l})}return n}function Gt(e,t,r,i){let n=new Map;for(let a of e.keys()){let l=r.findRoot(a),d=n.get(l)??[];d.push(a),n.set(l,d)}let s=new Map(e.map(({item:a},l)=>[a.id,r.findRoot(l)])),o=new Map;for(let a of t){let l=s.get(a.left_id),d=o.get(l)??[];d.push(a),o.set(l,d)}return[...n.values()].filter(a=>a.length>1).map(a=>{let l=(o.get(r.findRoot(a[0]))??[]).sort((d,c)=>c.score-d.score||d.left_id.localeCompare(c.left_id)||d.right_id.localeCompare(c.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let c=e[d].item;return{id:c.id,title:c.title,status:c.status,type:c.type}}),matches:l,max_score:l[0]?.score??0}}).sort((a,l)=>l.max_score-a.max_score||a.id.localeCompare(l.id)).slice(0,i)}function Vr(e,t,r,i,n){return t.filter(s=>!r.has(s.id)).map(s=>({id:s.id,title:s.title,status:s.status,type:s.type,...X(e,s.title)})).filter(s=>s.score>=i).sort((s,o)=>o.score-s.score||s.id.localeCompare(o.id)).slice(0,n)}async function Wr(e,t={}){let r=e.title.trim();if(r.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:i,threshold:n}=de(t),s=w(t.cwd??process.cwd(),t.pmRoot),o=await S(s),a=I(o),l=await R(s,Object.values(a.type_to_folder)),d=V(r),c=l&&d.length>0?await q({pmRoot:s,expectedSourceCursor:l.source_cursor,query:d.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(i*10,50)}):null,u=c===null?await k(s,o.item_format,a.type_to_folder,void 0,o.schema):c.items,p=Vr(r,u,new Set(e.excludeIds??[]),n,i);return{items:p,count:p.length,threshold:n,source:c?"persistent_index":"metadata_fallback"}}function Xr(e,t={}){let{threshold:r}=de({...t,limit:void 0}),{limit:i}=jt(t),n=new Set;for(let c of e){if(!c.id.trim()||n.has(c.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);n.add(c.id)}let s=[...e].sort((c,u)=>c.id.localeCompare(u.id)).map(c=>({item:c,prepared:W(c.title)})),o=le(s,P,r,t.exhaustive===!0),a=Bt(s.length),l=qr(s,o,r,a),d=Gt(s,l,a,i);return{clusters:d,count:d.length,threshold:r,cost:{item_count:s.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:s.length*(s.length-1)/2,pair_limit:P,recall_guarantee:"exact",candidate_pairs:o.size,scored_pairs:o.size}}}async function $n(e={}){de({...e,limit:void 0});let{since:t}=jt(e),{items:r,statuses:i}=await Hr(e,t);return{...Xr(r,e),source:"metadata_scan",filters:{statuses:i??null,since:e.since??null}}}async function zn(e,t){if(t.mode==="off")return;let r=await Wr(e,t);if(r.count===0)return;let i=await zr(r,t),n=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!n){let s=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),o=i.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${s}. ${o} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${o}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:i.command,suggested_retry_args:i.args}})}return{mode:t.mode,bypassed:n,result:r,recovery:i}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function qn(e,t){let r=t??{};return e.filter(i=>r[i.id]!==i.updated_at).map(i=>i.id).sort((i,n)=>i.localeCompare(n))}export{N as a,He as b,ti as c,Q as d,D as e,qe as f,Ve as g,Je as h,ee as i,et as j,di as k,ci as l,it as m,nt as n,mi as o,mt as p,ie as q,lt as r,dt as s,fr as t,gt as u,_t as v,Hi as w,qi as x,fn as y,pn as z,Bn as A,Gn as B,Wr as C,Xr as D,$n as E,zn as F,qn as G};
|
|
2
|
+
//# sourceMappingURL=chunk-G5PJCR7R.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import{M as _t,N as ht,f as we}from"./chunk-O7EI33NP.js";import{$a as yn,B as be,C as ut,Ca as _n,Ja as hn,Ua as ft,Wa as gn,Za as Se,_a as pt,bb as Te,eb as ve,fa as Ee,fb as P,gb as Ie,ha as mt,k as dt,l as pn,v as lt}from"./chunk-YMGB2O4E.js";import{b as un}from"./chunk-VWWTIX5L.js";import{Aa as X,Ba as st,Bc as Q,Ca as dn,Dc as ct,Ha as oe,Ka as ln,Qc as fn,Rb as ge,Rd as M,a as rt,aa as E,ca as ne,da as J,ea as w,ee as ye,ga as cn,oc as mn,ra as it,xc as at,za as re}from"./chunk-M6V7UMWL.js";import{A as u,C as W,E as K,F as T,I as A,K as he,t as ot,z as l}from"./chunk-G6ERMFJ5.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]="8dd367eb-617e-5645-8f8a-57862f8385f7")}catch{}})();var Ae=new WeakSet,gt=new WeakMap,En=new WeakSet;function wn(e){return En.add(e),e}function yt(e){return En.has(e)}function ie(e){Ae.add(e);for(let[t,n]of Object.entries(e)){if(!Array.isArray(n))continue;let r=[...n];Reflect.set(e,t,r),Ae.add(r)}return e}function Sn(e,t){return Ae.has(e)||t!==void 0&>.get(e)?.has(t)===!0}function uo(e,t){let n=new Set(t);gt.set(e,n);for(let r of n){let o=Reflect.get(e,r);if(!Array.isArray(o))continue;let i=[...o];Reflect.set(e,r,i),Ae.add(i)}return e}function Tn(e,t){if(yt(e)&&wn(t),Sn(e))return ie(t);let n=gt.get(e);return n?uo(t,n):t}function Jc(e){return Sn(e)?"sdk":"cli"}function bn(e,t){return e==="cli"?`--${t}`:t.replace(/-([a-z])/gu,(n,r)=>r.toUpperCase())}function se(e){return`Pass unset: ["${e}"] to clear it`}function Ce(e,t,n=""){return e==="cli"?`--${t} must not be empty${n}`:`${bn("sdk",t)} must not be empty. ${se(t)}, or omit ${bn("sdk",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]="e35626b8-0818-5b4b-8fc2-57426b51a2d1")}catch{}})();var D="-",mo=/^[A-Za-z0-9_.-]+$/u,bt=new Set(["actual_result","body","cmd","command","customer_impact","description","environment","expected_result","impact","location","message","note","outcome","repro_steps","resolution","text","title","unblock_note","value","why_now"]);function In(e,t){if(e.startsWith("```")||e.includes(`
|
|
2
|
+
`))return!0;let n=t.map(r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${n})\\s*[:=]`,"i").test(e)}function An(e){let t=e.trim();if(t==="")return[];let n=(go(t)??t.split(",")).map(r=>r.trim()).filter(Boolean).map(r=>r.toLowerCase());return Array.from(new Set(n)).sort((r,o)=>r.localeCompare(o))}function Cn(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e)if(typeof n=="string")for(let r of An(n))t.push(r);return Array.from(new Set(t)).sort((n,r)=>n.localeCompare(r))}function xn(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function fo(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function po(e,t,n){let r=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new u('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',l.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!r.includes(a)&&r.push(a)}let o=[],i=r;for(let s of n??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function _o(e,t){let n=xn(e);if(!t||t.length===0)return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i));let r=new Set(n);for(let o of Cn(t))r.add(o);return Array.from(r).sort((o,i)=>o.localeCompare(i))}function ho(e,t){let n=Array.from(new Set(xn(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return n;let r=new Set(Cn(t));return r.size===0?n:n.filter(o=>!r.has(o))}function go(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function Et(e){return e.replace(/\r\n/g,`
|
|
3
|
+
`)}function kn(e){let t=Et(e).trim();if(!t.startsWith("```"))return e;let n=t.split(`
|
|
4
|
+
`);return n.length<2||n.at(-1)?.trim()!=="```"?e:n.slice(1,-1).join(`
|
|
5
|
+
`)}function yo(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){n+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){n+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){r=!r,n+=i;continue}if(i===","&&!r){t.push(n),n="";continue}n+=i}return n.trim()&&t.push(n),t}function Rn(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let n=JSON.parse(t);if(typeof n=="string")return n}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function bo(e){let t=e.indexOf("="),n=e.indexOf(":"),r=t>=0,o=n>=0;return r&&o?Math.min(t,n):r?t:o?n:-1}function Eo(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let n=e.toLowerCase(),r=n.includes("recur_")||n.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=n.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${r}${o}`}function vn(e,t){let n=e.replaceAll(/\s+/g," ").trim(),r=n.length>160?`${n.slice(0,157)}...`:n,o=Eo(e,t);return`Invalid ${t} value "${r}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${D} to read piped stdin input.`}function wo(e){let t=kn(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
+
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let n={},r,o=Et(t).split(`
|
|
7
|
+
`).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();n[a]=Rn(s[3].trim()),r=a;continue}if(r&&bt.has(r.toLowerCase())){n[r]=`${n[r]}
|
|
8
|
+
${i}`;continue}return null}return n}function On(e,t){let n=kn(e).trim();if(!n)throw new u(`${t} cannot be empty`,l.USAGE);let r=wo(n);if(r)return r;let o={},i,s=yo(n);for(let a of s){let c=bo(a),d=a.slice(0,Math.max(c,0)).trim();if(d!==""&&i!==void 0&&bt.has(i.toLowerCase())&&!mo.test(d)){o[i]=`${o[i]},${a}`;continue}if(c>=0){let m=a.slice(0,c).trim();if(!m)throw new u(vn(e,t),l.USAGE);let f=Rn(a.slice(c+1).trim());o[m]=f,i=m;continue}if(i&&bt.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new u(vn(e,t),l.USAGE)}return o}var So=/^[A-Za-z]:[\\/]/,To=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function vo(e){let t=e.trim();return So.test(t)?!1:To.test(t)}function td(e,t,n,r){if(!(r||!e.includes(",")))throw new u(`${t} received an ambiguous comma-bearing bare ${n}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,l.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${n}, or quote or escape literal commas in a structured key=<value> entry.`})}function Io(e,t,n){let r=new Set(n.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!r.has(i.toLowerCase()));if(o.length>0)throw new u(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${n.join(", ")}.`,l.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new u(`${t} provides key "${i}" more than once after case normalization.`,l.USAGE);e[s]=e[i],delete e[i]}}}async function Ao(e){if(process.stdin.isTTY===!0)throw new u(`${e} value "${D}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,l.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,n)=>{let r="";process.stdin.on("data",o=>{r+=o}),process.stdin.on("end",()=>{t(Et(r))}),process.stdin.on("error",o=>{n(o)})})}var $=Symbol("all-mutation-stdin-fields"),x=new WeakMap;function nd(e){return yt(e)?e:ie(ae({...e}))}function ae(e){return x.set(e,$),e}function Co(e,t){let n=x.get(e);return n===$||x.set(e,new Set([...n??[],...t])),e}function ke(e,t){Tn(e,t);let n=x.get(e);return n===void 0||x.set(t,n===$?n:new Set(n)),t}function rd(e,t){let n=x.get(e),r=x.get(t);return n===void 0||r===$?t:n===$?(x.set(t,n),t):(x.set(t,new Set([...r??[],...n])),t)}function xo(e){return x.get(e)!==$}function xe(e,t){let n=x.get(e);return n!==$&&!n?.has(t)}function ko(e){let t;for(let n of e){if(n.resolveToken===!1||n.value===void 0)continue;let r=(Array.isArray(n.value)?n.value:[n.value]).filter(o=>o.trim()===D).length;if(r>1)throw new u(`${n.optionName} accepts "${D}" stdin token at most once per command invocation`,l.USAGE);if(r!==0){if(t!==void 0&&t!==n.optionName)throw new u(`Only one option may use "${D}" stdin token per command invocation. Already used by ${t}.`,l.USAGE);t=n.optionName}}}async function od(e,t,n){let r=e,o=[...t,...n];ko(o.map(([a,c])=>({value:r[a],optionName:c,resolveToken:xe(e,a)})));let i=Re(),s={...r};for(let[a,c]of t)s[a]=await i.resolveValue(r[a],c,xe(e,a));for(let[a,c]of n)s[a]=await i.resolveList(r[a],c,xe(e,a));return ae(ke(e,s))}function Re(){let e,t,n=async r=>{if(t&&t!==r)throw new u(`Only one option may use "${D}" stdin token per command invocation. Already used by ${t}.`,l.USAGE);return t=r,e||(e=Ao(r)),await e};return{resolveValue:async(r,o,i=!0)=>{if(!i)return r;if(r!==void 0)return r.trim()!==D?r:await n(o)},resolveList:async(r,o,i=!0)=>{if(!i)return r;if(!r)return;let s=r.map((d,m)=>d.trim()===D?m:-1).filter(d=>d>=0);if(s.length===0)return r;if(s.length>1)throw new u(`${o} accepts "${D}" stdin token at most once per command invocation`,l.USAGE);let a=await n(o),c=[...r];return c[s[0]]=a,c}}}function Ro(e,t){let n=Number(e);if(!Number.isFinite(n))throw new u(`Invalid ${t} value "${e}"`,l.USAGE);return n}function Oo(e,t){let n=e.trim(),r=Number(n);if(n===""||!Number.isInteger(r)||r<0)throw new u(`Invalid ${t} value "${e}". Expected a non-negative integer.`,l.USAGE);return r}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function Lo(e,t="--limit"){if(e===void 0)return;let n=Number(e);if(!Number.isFinite(n)||n<0)throw new u(`${t} must be a non-negative number`,l.USAGE);return Math.floor(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]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var Do=3e4,ce=class extends Error{status;constructor(t,n){super(t),this.name="SearchHttpError",this.status=n}};function z(e,t,n=Do){let r=e??n;if(!Number.isFinite(r)||r<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(r)}function F(e,t){if(e)return e;if(typeof globalThis.fetch=="function")return globalThis.fetch.bind(globalThis);throw new Error(`${t} execution requires a fetch implementation`)}async function Mo(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${w(t)})`}}async function Oe(e){let t=new AbortController,n=setTimeout(()=>{t.abort()},e.timeoutMs);try{let r;try{r=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${w(o)}`)}if(!r.ok){let o=await Mo(r),i=o.length>0?`: ${o}`:"";throw new ce(`${e.requestLabel} failed with status ${r.status} ${r.statusText}${i}`,r.status)}try{return await r.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${w(o)}`)}}finally{clearTimeout(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]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function fd(e,t){let n=E(e);if(!n)return"unconfigured";let r=E(t);return r&&r.toLowerCase()===n.toLowerCase()?"configured":"auto-detected"}function No(e){let t=ne(e),n=t.toLowerCase();return n.endsWith("/embeddings")?t:n.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function Dn(e){let t=e.search?.embedding_model;return E(t)||null}function Po(e){let t=E(e.providers?.openai?.base_url),n=E(e.providers?.openai?.model);if(!t||!n)return null;let r=Dn(e),o=E(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:r??n,...o?{api_key:o}:{}}}function $o(e){let t=E(e.providers?.ollama?.base_url),n=E(e.providers?.ollama?.model);if(!t||!n)return null;let r=Dn(e);return{name:"ollama",base_url:t,model:r??n}}function Mn(e){let t=(Array.isArray(e)?e:[e]).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function zo(e){let t=[],n=[],r=new Map;for(let o of e){let i=r.get(o);if(i===void 0){let s=t.length;t.push(o),r.set(o,s),n.push(s);continue}n.push(i)}return{uniqueInputs:t,originalToUniqueIndex:n}}function Fo(e){let t=e.map((n,r)=>({embedding:n.embedding,index:n.index,position:r}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,r)=>{let o=n.index-r.index;return o!==0?o:n.position-r.position})}return t}function wt(e){let t=Po(e),n=$o(e),r=[t,n].filter(s=>s!==null),o=E(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?r.find(s=>s.name===i):void 0)??r[0]??null,available:r}}function Ln(e){let t=ne(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:No(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Uo(e,t){let n=Mn(t);return e.name==="openai"?{target:Ln(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:n.length===1?n[0]:n}}:{target:Ln(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:n}}}function jo(e,t){if(e.name==="openai"){let o=t.data;if(!Array.isArray(o)||o.length===0)throw new Error("OpenAI embedding response must include a non-empty data array");return Fo(o).map((i,s)=>{let a=i.embedding;if(!J(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let n=t.embedding;if(J(n))return[[...n]];let r=t.embeddings;if(Array.isArray(r)&&r.length>0)return r.map((o,i)=>{if(!J(o))throw new Error(`Ollama embedding response entry at index ${i} is missing a numeric embedding vector`);return[...o]});throw new Error("Ollama embedding response must include embedding or embeddings vectors")}async function Nn(e,t,n={}){let r=z(n.timeout_ms,"Embedding request"),o=F(n.fetcher,"Embedding request"),i=Mn(t),s=zo(i),a=Uo(e,s.uniqueInputs),c=await Oe({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:r,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=jo(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(m=>[...d[m]])}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var Le=["title","description","tags","status","type","priority","assignee","parent","goal","value","why_now","risk","confidence","estimated_minutes","acceptance_criteria","resolution","expected_result","actual_result","body","comments","notes","learnings","reminders","events","dependencies","plan"];function St(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...Le];let n=new Set(Le),r=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&n.has(o))));return r.length>0?r:[...Le]}var Vo=8e3,qo=3200,U="...[semantic corpus truncated]",Ho="search_embedding_corpus_max_characters_invalid:using_provider_default";function R(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Yo(e){return(e.reminders??[]).map(t=>R([t.at,t.text]))}function Bo(e){return(e.events??[]).map(t=>R([t.start_at,t.end_at,t.title,t.description,t.location,t.all_day===!0?"all day":void 0,t.timezone,t.recurrence?.freq,t.recurrence?.interval,t.recurrence?.count,t.recurrence?.until,t.recurrence?.by_weekday?.join(" "),t.recurrence?.by_month_day?.join(" "),t.recurrence?.exdates?.join(" ")]))}function Go(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let n of t.linked_items??[])e.push(`${n.kind} ${n.id}`,n.note);for(let n of t.files??[])e.push(n.path,n.note);for(let n of t.tests??[])e.push(n.command,n.path,n.note);for(let n of t.docs??[])e.push(n.path,n.note)}function Wo(e,t){for(let n of t.plan_decisions??[])e.push(n.decision,n.rationale,n.evidence);for(let n of t.plan_discoveries??[])e.push(n.text);for(let n of t.plan_validation??[])e.push(n.text,n.command,n.expected)}function hd(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let n of e.plan_steps??[])Go(t,n);return Wo(t,e),t.filter(n=>typeof n=="string"&&n.length>0).join(" ")}function Ko(e){let t=(e.plan_steps??[]).map(i=>R([i.order,i.id,i.title,i.body,i.status,i.owner,i.evidence,i.blocked_reason,i.superseded_by,(i.linked_items??[]).map(s=>R([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>R([s.path,s.note])).join(" "),(i.tests??[]).map(s=>R([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>R([s.path,s.note])).join(" ")])),n=(e.plan_decisions??[]).map(i=>R([i.decision,i.rationale,i.evidence,i.step_id])),r=(e.plan_discoveries??[]).map(i=>R([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>R([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...n,...r,...o].some(i=>i!==void 0))return{mode:e.plan_mode,scope:e.plan_scope,harness:e.plan_harness,resume_context:e.plan_resume_context,steps:t,decisions:n,discoveries:r,validation:o}}function k(e){return typeof e=="string"&&e.trim().length>0}var Jo={title:e=>e.metadata.title,description:e=>e.metadata.description,tags:e=>e.metadata.tags,status:e=>e.metadata.status,type:e=>e.metadata.type,priority:e=>typeof e.metadata.priority=="number"?e.metadata.priority:void 0,assignee:e=>k(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>k(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>k(e.metadata.goal)?e.metadata.goal:void 0,value:e=>k(e.metadata.value)?e.metadata.value:void 0,why_now:e=>k(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>k(e.metadata.risk)?e.metadata.risk:void 0,confidence:e=>e.metadata.confidence!==void 0&&e.metadata.confidence!==null?e.metadata.confidence:void 0,estimated_minutes:e=>typeof e.metadata.estimated_minutes=="number"?e.metadata.estimated_minutes:void 0,acceptance_criteria:e=>k(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>k(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>k(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>k(e.metadata.actual_result)?e.metadata.actual_result:void 0,body:e=>e.body,comments:e=>(e.metadata.comments??[]).map(t=>t.text),notes:e=>(e.metadata.notes??[]).map(t=>t.text),learnings:e=>(e.metadata.learnings??[]).map(t=>t.text),reminders:e=>Yo(e.metadata),events:e=>Bo(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Ko(e.metadata)};function Pn(e,t={}){let n=t.fields??Le,r={};for(let o of n){let i=Jo[o];if(!i)continue;let s=i(e);s!==void 0&&(r[o]=s)}return r}function Xo(e){return e?.trim().toLowerCase()==="ollama"?qo:Vo}function Z(e,t){let n=Xo(e),r=cn(t);return r!==null?{maxCharacters:r,warning:null}:{maxCharacters:n,warning:t==null?null:Ho}}function Tt(e,t={}){let n=JSON.stringify(Pn(e,{fields:t.fields})),r=Z(t.providerName,t.maxCharacters).maxCharacters;if(n.length<=r)return n;if(r<=U.length)return U.slice(0,r);let o=Math.max(0,r-U.length);return`${n.slice(0,o)}${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]="67bae1a1-19d1-50ea-816f-4b68e6bb69d9")}catch{}})();function Qo(e,t,n){let r=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(r)&&r>0?Math.max(1,Math.floor(r)):1,a=Number.isFinite(o)&&o>0?Math.max(1,Math.floor(o)):3e4,c=Number.isFinite(i)&&i>=0?Math.floor(i):0;return{batchSize:s,timeoutMs:a,maxRetries:c,maxRequestBytes:n,maxInputCharacters:t}}function Zo(e,t,n,r){let o=[],i=[],s=Buffer.byteLength(JSON.stringify({model:e.model,input:[]})),a=s;for(let c of t){let d=Buffer.byteLength(JSON.stringify(c.trim()));if(s+d>r)throw new RangeError(`Embedding input exceeds request byte ceiling ${r}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let m=i.length>0?1:0;(i.length>=n||a+m+d>r)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function ei(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let n=Math.max(0,t-U.length);return`${e.slice(0,n)}${U}`.slice(0,t)}function $n(e){let t=w(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function ti(e,t,n,r,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${w(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${n} timeout_ms=${r}`;return $n(i)?`${s} (${a}; guidance=check provider availability or lower search.embedding_batch_size, raise search.embedding_timeout_ms, or run keyword search while semantic indexing catches up)`:`${s} (${a})`}function ni(e){return e instanceof ce?e.status===413?"payload_too_large":null:$n(e)?"timeout":null}async function vt(e,t,n,r,o,i,s){let a=null;for(let c=0;c<=o;c+=1)try{s.requests+=1;let d=await Nn(e,t,{timeout_ms:r});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${n}:attempt=${c+1}:size=${t.length}`),s.successful_batches+=1,s.batch_size_histogram[t.length]=(s.batch_size_histogram[t.length]??0)+1,d}catch(d){a=d;let m=ni(d);if(m!==null&&t.length>1){s.split_batches+=1;let f=Math.ceil(t.length/2),_=t.slice(0,f),h=t.slice(f);return i.push(`search_embedding_batch_split_after_${m}:batch=${n}:size=${t.length}:parts=${_.length}|${h.length}`),[...await vt(e,_,`${n}.1`,r,o,i,s),...await vt(e,h,`${n}.2`,r,o,i,s)]}if(c<o){s.retries+=1;let f=Math.min(1e3*2**c,8e3);await new Promise(_=>setTimeout(_,f))}}throw new Error(ti(e,n,t.length,r,o+1,a))}async function It(e,t,n,r={}){if(n.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=r.maxRequestBytes??262144;if(!Number.isSafeInteger(i)||i<=0)throw new RangeError("maxRequestBytes must be a positive safe integer");let s={provider:e.name,model:e.model,max_request_bytes:i,limit_source:r.maxRequestBytes===void 0?"default":"caller",planned_batches:0,requests:0,successful_batches:0,split_batches:0,retries:0,batch_size_histogram:{},elapsed_ms:0,inputs_per_second:0},a=[],c=Z(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=Qo(t,c.maxCharacters,i),m=0,f=n.map(g=>{if(g.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let p=ei(g,d.maxInputCharacters);return p.length<g.length&&(m+=1),p});m>0&&a.push(`search_embedding_input_truncated:count=${m}:max_characters=${d.maxInputCharacters}`);let _=Zo(e,f,d.batchSize,d.maxRequestBytes);s.planned_batches=_.length;let h=[],y=0;for(let g=0;g<_.length;g+=1){let p=_[g];r.onProgress?.({batch_index:g+1,batch_total:_.length,batch_size:p.length,completed_inputs:y,total_inputs:f.length,phase:"start"}),h.push(...await vt(e,p,String(g+1),d.timeoutMs,d.maxRetries,a,s)),y+=p.length,r.onProgress?.({batch_index:g+1,batch_total:_.length,batch_size:p.length,completed_inputs:y,total_inputs:f.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=n.length*1e3/s.elapsed_ms,{vectors:h,warnings:a,receipt:s}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="88eb8555-e098-5279-801e-3b76d0dd0eae")}catch{}})();var j=`[^\\s/\\\\<>"'\\x60()\\[\\]{},;?=:#*]+`,S="[/\\\\]+",ri="[\\p{L}\\p{N}._@-]+",V=ri+"(?:"+S+j+")*",De="(?:(?:home|users)"+S+V+"|root"+S+V+")",oi="[/\\\\]"+De,ii="[/\\\\]{2,}"+De,si="/?[a-z]:"+S+"users"+S+V,ai=j+"(?: +"+j+")*",At="(?:"+ai+S+")?users"+S+V,ci="[/\\\\]{2,}"+j+S+At,di="(?:[a-z]:|volume\\{[a-f0-9-]+\\}|"+j+")",Fn="[/\\\\]{2}[?.]"+S+"(?:unc"+S+j+S+At+"|"+di+S+"users"+S+V+")",li="file:(?:"+Fn+"|(?:[/\\\\](?![/\\\\])|[/\\\\]{3,}|[/\\\\]{2}localhost"+S+")(?:"+De+"|[a-z]:"+S+"users"+S+V+")|[/\\\\]{2}(?:[a-z]:"+S+"users"+S+V+"|"+j+S+"(?:"+De+"|"+At+")))",ui=new RegExp("(?:^|[^\\p{L}\\p{N}_./\\\\~])(?:"+oi+"|"+si+"|"+li+")|(?:^|[^\\p{L}\\p{N}_:./\\\\~])(?:"+ii+"|"+ci+"|"+Fn+")","giu"),zn=4,mi=/%[a-f0-9]{2}|\\(?:u[a-f0-9]{4}|x[a-f0-9]{2}|\/)/iu,fi=new TextDecoder("utf-8");function pi(e){return e.replace(/(?:%[a-f0-9]{2})+/giu,t=>fi.decode(Uint8Array.from(t.matchAll(/%([a-f0-9]{2})/giu),n=>Number.parseInt(n[1],16)))).replace(/%(?![a-f0-9]{2})[a-z0-9]{0,2}/giu,"\uFFFD")}function _i(e){return e.replace(/\\+(?:u([a-f0-9]{4})|x([a-f0-9]{2})|(\/))?/giu,(t,n,r,o)=>{let i=n??r;return i===void 0?o??t:String.fromCharCode(Number.parseInt(i,16))})}function hi(e){return e.normalize("NFKC").replace(/[\p{Bidi_Control}\u200b-\u200f\u2060-\u206f\ufeff]/gu,"").replace(/[\u2215\u2044]/gu,"/").replace(/[\u043e\u041e]/gu,"o").replace(/[\u0455\u0405]/gu,"s")}function gi(e,t){for(let[n,r]of[["percent_decode",pi],["json_unescape",_i],["unicode_fold",hi]]){let o=r(e);o!==e&&!t.includes(n)&&t.push(n),e=o}return e}function*yi(e,t,n){let r=e,o=[];for(let i=0;i<zn;i+=1){let s=r;if(r=gi(r,o),!n){t.lastIndex=0;for(let a of r.matchAll(t))n=!0,yield{index:0,normalizations:[...o]}}if(r===s)break;i===zn-1&&mi.test(r)&&(yield{index:0,normalizations:[...o],normalization_incomplete:!0})}}function*bi(e,t){let n=0;for(let r of e.split(`
|
|
9
|
+
`)){t.lastIndex=0;let o=!1;for(let i of r.matchAll(t))o=!0,yield{index:n+i.index};for(let i of yi(r,t,o))yield{...i,index:n};n+=r.length+1}}var Un=[{name:"private-key",mutationRule:"private_key",regex:/-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/g},{name:"github-token",mutationRule:"github_token",regex:/\b(?:gh[opsru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/g},{name:"npm-token",mutationRule:"npm_token",regex:/\bnpm_[A-Za-z0-9]{20,}\b/g},{name:"aws-access-key",mutationRule:"aws_access_key",regex:/\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g},{name:"google-api-key",mutationRule:"google_api_key",regex:/\bAIza[0-9A-Za-z_-]{35}\b/g},{name:"slack-token",mutationRule:"slack_token",regex:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g},{name:"anthropic-api-key",mutationRule:"anthropic_api_key",regex:/\bsk-ant-[A-Za-z0-9_-]{20,}\b/g},{name:"openai-api-key",mutationRule:"openai_api_key",regex:/\bsk-(?!ant-)[A-Za-z0-9_-]{20,}\b/g},{name:"gitlab-token",mutationRule:"gitlab_token",regex:/\bglpat-[A-Za-z0-9_.-]{20,}\b/g},{name:"jwt-like-token",mutationRule:"jwt_like_token",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g},{name:"npm-auth-token-assignment",mutationRule:"npm_auth_token_assignment",regex:/_authToken\s*=\s*\S+/g},{name:"sentry-user-token",mutationRule:"sentry_user_token",regex:/\bsntryu_[A-Za-z0-9]{20,}\b/g},{name:"sentry-org-token",mutationRule:"sentry_org_token",regex:/\bsntrys_[A-Za-z0-9_-]{20,}\b/g},{name:"private-ip",mutationRule:"private_ip",regex:/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"private-ssh-target",mutationRule:"private_ssh_target",regex:/\b(?:ssh|scp|rsync)\s+[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g},{name:"sshpass-inline-password",mutationRule:"sshpass_inline_password",regex:/\bsshpass\s+-p\s+["'][^"']{6,}["']/g},{name:"password-assignment",mutationRule:"password_assignment",regex:/\b(?:password|passphrase)\s*[:=]\s*(?:(?!<|\$\{|\$\(|config\.auth\.password\s*(?:\|\|\s*(?:''|"")|\?\s*unescape\(encodeURIComponent\(config\.auth\.password\)\)\s*:\s*(?:''|""))(?=[ \t]*(?:\/\*(?:[^*]|\*(?!\/))*\*\/[ \t]*)*(?:;|$|\/\/[^\r\n\u2028\u2029]*(?:\r\n)?$)))[A-Za-z0-9!@#$%^&*._+\-=]{8,}|"(?!<|\$\{|\$\()[^"]{8,}"|'(?!<|\$\{|\$\()[^']{8,}')/gi},{name:"absolute-home-path",mutationRule:"absolute_home_path",regex:ui,excludeFiles:/^(?:tests\/|examples\/)/},{name:"user-at-private-host",mutationRule:"user_at_private_host",regex:/\b[A-Za-z0-9._-]+@(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g,excludeFiles:/^(?:tests\/|examples\/)/},{name:"high-entropy-assignment",mutationRule:"high_entropy_assignment",regex:/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,mutationOnlyReason:"Generic assignments in source code are not credentials; preserve the existing mutation heuristic without treating source identifiers as secrets.",minimumEntropy:3.5}];function*jn(e,t){if(e.mutationRule==="absolute_home_path"){yield*bi(t,e.regex);return}e.regex.lastIndex=0;for(let n of t.matchAll(e.regex))Ei(e,n)&&(yield{index:n.index})}function Ei(e,t){if(e.minimumEntropy===void 0)return!0;let n=t[1],r=new Map;for(let i of n)r.set(i,(r.get(i)??0)+1);let o=0;for(let i of r.values()){let s=i/n.length;o-=s*Math.log2(s)}return o>=e.minimumEntropy}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d6059407-bf03-5ae8-8b01-e3e7c5b28030")}catch{}})();var wi=[{action:"append",history_scope:"item"},{action:"claim",history_scope:"item"},{action:"close",history_scope:"item"},{action:"close-many",history_scope:"item"},{action:"close-task",history_scope:"item"},{action:"comments",history_scope:"conditional"},{action:"config",history_scope:"conditional"},{action:"copy",history_scope:"item"},{action:"create",history_scope:"item"},{action:"delete",history_scope:"item"},{action:"deps",history_scope:"conditional"},{action:"discover",history_scope:"item"},{action:"docs",history_scope:"conditional"},{action:"files",history_scope:"conditional"},{action:"focus",history_scope:"conditional"},{action:"gc",history_scope:"conditional"},{action:"history-compact",history_scope:"history"},{action:"history-author-acknowledge",history_scope:"workspace"},{action:"history-redact",history_scope:"history"},{action:"history-repair",history_scope:"history"},{action:"init",history_scope:"workspace"},{action:"install",history_scope:"conditional"},{action:"learnings",history_scope:"conditional"},{action:"notes",history_scope:"conditional"},{action:"package",history_scope:"conditional"},{action:"pause-task",history_scope:"item"},{action:"plan",history_scope:"conditional"},{action:"profile",history_scope:"conditional"},{action:"release",history_scope:"item"},{action:"restore",history_scope:"item"},{action:"schema",history_scope:"conditional"},{action:"start-task",history_scope:"item"},{action:"templates",history_scope:"conditional"},{action:"test",history_scope:"conditional"},{action:"test-all",history_scope:"conditional"},{action:"update",history_scope:"item"},{action:"update-many",history_scope:"item"},{action:"upgrade",history_scope:"conditional"}],xt=new Map(wi.map(e=>[e.action,e]));function Ct(e,t="$",n=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:n.has(e)?[]:(n.add(e),Array.isArray(e)?e.flatMap((r,o)=>Ct(r,`${t}[${o}]`,n)):Object.entries(e).flatMap(([r,o])=>Ct(o,`${t}.${r}`,n)))}function Si(e,t){let n=jn(e,t),r=n.next().value;if(!r||e.mutationRule!=="absolute_home_path"||r.normalization_incomplete)return r;for(let o of n)if(o.normalization_incomplete)return{...r,normalizations:[...new Set([r.normalizations,o.normalizations].flatMap(i=>i??[]))],normalization_incomplete:!0};return r}function Vn(e){let t=[];for(let n of Ct(e))for(let r of Un){let o=Si(r,n.value);if(o){let i={rule:r.mutationRule,path:n.path};o.normalizations&&(i.normalizations=o.normalizations),o.normalization_incomplete&&(i.normalization_incomplete=!0),t.push(i)}}return t.filter((n,r,o)=>o.findIndex(i=>i.rule===n.rule&&i.path===n.path)===r)}function Ti(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new u("Mutation author is required by workspace policy.",l.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let n;try{n=Vn(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(n.length===0)return{author:t,findings:n,warnings:[],override_applied:!1};let r=[...new Set(n.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new u(`Mutation blocked by secret guard (${r}). No detected value was logged.`,l.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:n,warnings:[`secret_guard_detected:${n.length}:rules=${r}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function vi(e){return xt.has(e.trim().toLowerCase())}function Ii(){return[...xt.keys()].sort((e,t)=>e.localeCompare(t))}function Cd(e){return xt.get(e.trim().toLowerCase())}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Ai=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Ci=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function kt(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Hn(e){return[...new Set(kt(e).match(/[\p{L}\p{N}]+/gu)??[])]}function qn(e){let t=kt(e);return{normalized:t,tokens:Hn(t),issueCodes:[...new Set([...e.matchAll(Ai)].filter(n=>{let r=n[1],o=n.index,i=e.slice(o+n[0].length);return!Ci.test(r)&&(r===r.toUpperCase()||r.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(n=>n[0].toLowerCase()))]}}function xi(e,t){return ki(qn(e),qn(t))}function ki(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let n=new Set(e.issueCodes);return t.issueCodes.some(r=>n.has(r))?{score:.99,reason:"issue_code"}:{score:ge(e.tokens,t.tokens),reason:"title_token_jaccard"}}import Ri from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a7cd1d62-16fe-5e5b-b382-64335fc5e403")}catch{}})();function Me(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function Oi(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,r)=>r.time-n.time)[0]?.value??e.updated_at}function Yn(e,t){let n=Math.max(1,Math.trunc(t.threshold_hours)),r=(t.now??new Date).getTime(),o=Me(t.in_progress_status),i=[];for(let s of e){if(Me(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=Oi(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((r-c)/36e5));d>=n&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:n,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function Li(e,t,n){let r=new Map;return await Promise.all(t.filter(o=>Me(String(o.status))===Me(n.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await mt(Ri.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&r.set(o.id,s)})),Yn(t,{...n,last_history_activity:o=>r.get(o.id)})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="42b217a3-31c0-561a-b7cb-b1a584b2edd5")}catch{}})();var Di=new Set(["rename-type","rename-field","remap-status",...ln]);function Mi(e,t){if(t&&!Di.has(e))throw new u(`schema ${e} does not support --dry-run. Preview is supported for rename-type, rename-field, remap-status and workflow-policy actions. Remove --dry-run only when you intend to apply changes.`,l.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ccb1b39b-3dde-511b-8133-d4747bb6e55e")}catch{}})();function qd(e){try{return e()}catch(t){throw!(t instanceof u)||t.exitCode!==l.USAGE?t:new u(`${t.message} No changes were made.`,l.USAGE,{...t.context,code:t.code==="linked_test_command_not_executable"?t.code:"invalid_argument_value",reason:"test_option_invalid",changed:!1,required:t.context.required??t.message})}}function Ni(e,t){if(e[t]==="'"){let n=e.indexOf("'",t+1);return n<0?void 0:n+1}for(let n=t+1;n<e.length;n+=1){if(e[n]==='"')return n+1;if(e[n]==="\\"){n+=1;continue}if(e[n]==="`"||e.startsWith("$(",n))return}}function Pi(e,t){let n=t;for(;n<e.length;){let r=e[n];if(/\s/u.test(r)||";&|".includes(r))return n;if(r==="\\"){n+=2;continue}if(r==="'"||r==='"'){let o=Ni(e,n);if(o===void 0)return;n=o;continue}if("<>()`".includes(r))return;n+=1}return n===e.length?n:void 0}function Rt(e,t){let n=t;for(;n<e.length;){if(/\s/u.test(e[n])){n+=1;continue}if(e[n]!=="#")return n;let r=e.indexOf(`
|
|
10
|
+
`,n);if(r<0)return e.length;n=r+1}return n}function $i(e,t){let n=Rt(e,t),r=e[n];return r===void 0||!";&|".includes(r)?n:(n+=1,r!==";"&&e[n]===r&&(n+=1),Rt(e,n))}function zi(e){let t=e.trim(),n=Rt(t,0);if(t.length===0)return!1;for(;n<t.length;){if(!/[A-Za-z_]/u.test(t[n]))return!1;let r=n+1;for(;r<t.length&&/[A-Za-z0-9_]/u.test(t[r]);)r+=1;if(t[r]!=="=")return!1;let o=Pi(t,r+1);if(o===void 0)return!1;n=$i(t,o)}return!0}function Bn(e){if(!(e===void 0||!zi(e)))throw new u("Linked-test command contains only variable assignments or comments and has no executable command.",l.USAGE,{code:"linked_test_command_not_executable",required:'Supply an actual test command with --add "command=<actual command>" or --add-json. Environment assignments may precede that command.',examples:['pm test <id> --add "command=node --version"'],nextSteps:["Remove any already-stored assignment-only entry with --remove-index, then register the actual test command."]})}function Hd(e){if(Bn(e.command),!(e.pm_context_mode!=="none"||e.workspace_context_mode==="isolated"||e.workspace_context_mode==="snapshot"))throw new u("pm_context_mode=none requires workspace_context_mode=isolated or snapshot so implicit tracker discovery cannot reach the source workspace.",l.USAGE,{code:"linked_test_context_invalid",required:"Set workspace_context_mode to isolated or snapshot when pm_context_mode is none.",examples:[fn(["test","<id>","--add-json",JSON.stringify({command:e.command,pm_context_mode:"none",workspace_context_mode:"isolated"})])]})}function Yd(e,t){return e.command===t.command&&e.path===t.path&&e.scope===t.scope&&e.pm_context_mode===t.pm_context_mode&&e.workspace_context_mode===t.workspace_context_mode}var Ne=["command","cmd","path","scope","timeout","timeout_seconds","pm_context_mode","workspace_context_mode","env_set","env_clear","shared_host_safe","assert_stdout_contains","assert_stdout_regex","assert_stderr_contains","assert_stderr_regex","assert_stdout_min_lines","assert_json_field_equals","assert_json_field_gte","note"],Fi=new Set(Ne);function Bd(e){return In(e,Ne)}function Ui(e,t){let n={},r=[];for(let[o,i]of Object.entries(e)){let s=o.toLowerCase();if(!Fi.has(s)){r.push(o);continue}if(Object.hasOwn(n,s))throw new u(`${t} provides key "${o}" more than once after case normalization`,l.USAGE);n[s]=i}if(r.length>0)throw new u(`${t} does not recognize key${r.length>1?"s":""} ${r.map(o=>`"${o}"`).join(", ")}. Allowed keys: ${Ne.join(", ")}.`,l.USAGE);if(n.cmd!==void 0){if(n.command!==void 0&&n.command.trim()!==n.cmd.trim())throw new u(`${t} command and cmd must match when both are provided`,l.USAGE);let{cmd:o,...i}=n;return{...i,command:i.command??o}}return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b58016fa-9817-5421-a4a3-78d1b1d22937")}catch{}})();import{readFile as ji}from"node:fs/promises";import Gn from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7cc00705-c03e-5a18-9bec-af2585939ed8")}catch{}})();function ul(e){if(e!==void 0){if(typeof e!="string")throw new u("--rollback requires a non-empty checkpoint ID string",l.USAGE);return Wn(e)}}function Wn(e){let t=e.trim();if(!t)throw new u("--rollback requires a non-empty checkpoint ID",l.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new u("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",l.USAGE);return t}function Vi(e,t){let n=t.replace(/[-:.TZ]/g,"").slice(0,14),r=Math.random().toString(36).slice(2,8);return`${e}-${n}-${r}`}function qi(e,t){return Gn.join(e,"checkpoints",t)}function Kn(e,t,n){return Gn.join(qi(e,t),`${n}.json`)}async function Hi(e,t,n,r){let o=Kn(e,t,n),i=`${JSON.stringify(r,null,2)}
|
|
11
|
+
`;if(!await un(o,i)&&await T(o)!==i)throw new u(`Checkpoint ${n} already exists with different contents; use a new checkpoint ID.`,l.CONFLICT);return o}function Yi(e,t){if(!Array.isArray(e.items))throw new u(`Checkpoint ${t} is missing items`,l.GENERIC_FAILURE);return e.items.map(n=>{if(!n||typeof n!="object")throw new u(`Checkpoint ${t} contains an invalid item entry`,l.GENERIC_FAILURE);let r=n;if(typeof r.id!="string"||r.id.trim().length===0)throw new u(`Checkpoint ${t} contains an item entry without ID`,l.GENERIC_FAILURE);if(typeof r.target_updated_at!="string"||r.target_updated_at.trim().length===0)throw new u(`Checkpoint ${t} contains an item entry without target_updated_at`,l.GENERIC_FAILURE);return{id:r.id.trim(),target_updated_at:r.target_updated_at.trim()}})}async function Bi(e,t,n,r){let o=Wn(n),i=Kn(e,t,o);if(!await W(i))throw new u(`Checkpoint ${o} not found`,l.NOT_FOUND);let s=await ji(i,"utf8"),a;try{a=JSON.parse(s)}catch(m){throw new u(`Checkpoint ${o} contains invalid JSON: ${w(m)}`,l.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new u(`Checkpoint ${o} is invalid`,l.GENERIC_FAILURE);let c=a;if(c.schema_version!==r)throw new u(`Checkpoint ${o} has unsupported schema version. Inspect pm history and use an explicit pm restore only after reviewing later edits.`,l.GENERIC_FAILURE);let d=Yi(c,o);return{record:c,items:d,path:i,id:typeof c.id=="string"?c.id:o,created_at:typeof c.created_at=="string"?c.created_at:M(),author:typeof c.author=="string"?c.author:"unknown"}}async function Gi(e,t){let n=[],r=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);n.push({id:o.id,status:i.skipped?"skipped":"restored",changed_fields:i.changed_fields,warnings:i.warnings}),i.skipped||r.push(o.id)}catch(i){n.push({id:o.id,status:"failed",error:w(i)})}return{rows:n,restored_ids:r,failed_count:n.filter(o=>o.status==="failed").length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7a401405-3370-53a5-811d-5e52287f1d2a")}catch{}})();var Jn=new Set(["item_format"]),Xn=new Set(["definition_of_done","metadata_required_fields","lifecycle_stale_blocker_reason_patterns","lifecycle_closure_like_blocked_reason_patterns","lifecycle_closure_like_resolution_patterns","lifecycle_closure_like_actual_result_patterns"]),Wi=new Set(["history_missing_stream_policy","sprint_release_format_policy","parent_reference_policy","metadata_validation_profile","governance_preset","governance_ownership_enforcement","governance_create_mode_default","governance_close_validation_default","governance_require_close_reason","governance_create_default_type","governance_workflow_enforcement","governance_start_blocker_enforcement","governance_parent_reference_policy","governance_metadata_validation_profile","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking","agent_identity_vocabulary"]),Ki=new Set(["governance_require_close_reason","governance_force_required_for_stale_lock","test_result_tracking","untrusted_linked_test_execution","telemetry_tracking"]),Ji={off:"disabled",on:"enabled",true:"enabled",false:"disabled",enabled:"enabled",disabled:"disabled"};function Xi(e){let t=e.trim().toLowerCase().replaceAll("-","_");if(Jn.has(t)||Xn.has(t)||Wi.has(t)||t==="context")return t}function Qi(e){let t=e.trim().toLowerCase();return Ji[t]??e}function fl(e,t){let n=Xi(e);return n===void 0?{routable:!1,reason:`Unknown config key "${e}" cannot route a positional value.`}:n==="context"?{routable:!1,reason:"Config set context does not accept a positional value. Use --default-depth, --activity-limit, --stale-threshold-days, or --section-<name> flags."}:Jn.has(n)?{routable:!0,flag:"format",value:t}:Xn.has(n)?{routable:!0,flag:"criterion",values:[t]}:{routable:!0,flag:"policy",value:Ki.has(n)?Qi(t):t}}function Zi(e){return/^telemetry[-_]tracking$/u.test(e??"")?"global":"project"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function N(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function _l(e,t){let n=N(t);return!e||!n?null:[...e.assurance_providers??[]].reverse().find(r=>N(r.definition.id)===n)??null}function es(e,t){let n=N(t);return!e||!n?null:[...e.search_providers].reverse().find(r=>(N(r.runtime_definition?.name)??N(r.definition?.name))===n)??null}function ts(e,t){let n=N(t);return!e||!n?null:[...e.vector_store_adapters].reverse().find(r=>(N(r.runtime_definition?.name)??N(r.definition?.name))===n)??null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();function Ot(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function ns(e){let t=[];for(let r of e)if(typeof r=="string")t.push(r);else if(typeof r=="number"&&Number.isFinite(r))t.push(String(r));else return"";let n=Ot(t.join(`
|
|
12
|
+
`));return n.length>0?n.join(","):""}function rs(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return ns(e);if(typeof e!="string")return"";let t=Ot(e);return t.length>0?t.join(","):""}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1dcf0d72-10da-51b6-b9f6-ab47bebcbf64")}catch{}})();function Qn(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Lt(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let n=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return n?Qn(n):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Qn(t):"root"}function Pe(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function os(e,t){let n=t?.windowStartIndex??0,r=t?.field;if(e.length===0||n>=e.length)return[];let o=_n(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=hn(o,a.patch),m;d.ok?(m=d.document,o=m):m=c;let f=new Set;for(let h of a.patch)f.add(Lt(h.path)),h.from!==void 0&&f.add(Lt(h.from));let _=[...f].sort((h,y)=>h.localeCompare(y));if(s>=n)if(r!==void 0){if(!f.has(r))continue;let h={field:r,before:Pe(c,r),after:Pe(m,r)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[r],changes:[h]})}else{let h=_.map(y=>({field:y,before:Pe(c,y),after:Pe(m,y)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:h})}}return i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="80805c6b-9b9a-5dad-b94b-d7dbd365fe5e")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0394e0c1-ff68-5553-b022-1e8b6fff04f0")}catch{}})();var is=new Set(["none","null","undefined"]);function Ol(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new u("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",l.USAGE)}function ss(e,t="cli"){let n=t==="sdk";if(typeof e!="string")throw new u(n?`parent must be a string. ${se("parent")}.`:"--parent must be a string. Use --unset parent to clear this field.",l.USAGE);let r=e.trim();if(r.length===0)throw new u(Ce(t,"parent",". Use --parent none to unset."),l.USAGE);if(Zn(r))throw new u(n?`parent must not be the placeholder "${r}". ${se("parent")}, or omit parent.`:`--parent must not use placeholder token "${r}". Use --unset parent to clear this field.`,l.USAGE);return r}function Zn(e){return is.has(e.trim().toLowerCase())}function as(e,t,n="cli"){if(t==="strict_error")throw new u(`Parent item "${e}" was not found. Create it first or ${n==="sdk"?"omit parent":"use --parent none"}.`,l.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function cs(e,t,n,r="cli"){let o=we(e,n),i=we(t,n);if(o!==i)return;let s=t!==i||e!==o?` (normalized from parent "${t}" and item "${e}")`:"";throw new u(`Parent item "${i}" cannot be the same as item "${o}"${s}. ${r==="sdk"?`${se("parent")}.`:"Use --unset parent to clear this field."}`,l.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a59d5b7f-9764-53c5-a014-1119868be8ea")}catch{}})();var Dt={critical:0,high:1,medium:2,low:3,minimal:4},er=Object.keys(Dt),ds=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${er.join(", ")}), case-insensitive`;function $e(e){return new u(`Invalid priority "${e}". Accepted values: ${ds}.`,l.USAGE,{code:"invalid_argument_value",field:"priority",value:e,allowed:["0","1","2","3","4",...er]})}function ls(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw $e(String(e))}if(typeof e!="string")throw $e(String(e));let t=e.trim();if(t.length===0)throw $e(e);let n=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(Dt,n))return Dt[n];if(/^[0-4]$/.test(t))return Number(t);throw $e(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]="e363ee89-b438-5c8e-bb06-f4d05cc814cc")}catch{}})();function us(e){return ie(ae(ke(e,{...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]="6012e77b-7cdd-5496-a668-c9240a811b1a")}catch{}})();var ms=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,fs=64;function Vl(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new u("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",l.USAGE)}function ps(e,t,n,r="cli"){let o=t.trim();if(o.length===0)throw new u(Ce(r,e,`. Use --${e} none to unset.`),l.USAGE);if(o.length<=fs&&ms.test(o))return{value:o,warnings:[]};let i="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(n==="strict_error")throw new u(`Invalid ${r==="sdk"?e:`--${e}`} value "${o}". ${i}`,l.USAGE);return{value:o,warnings:[`validation_warning:${e}_format:${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]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var tr={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},nr="all";function Wl(e){if(typeof e!="string")return!1;let t=e.split(",").map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return t.length===1&&t[0]===nr}function _s(e,t){let n=e.trim().toLowerCase();if(n.length===0)return;let r=tr[n];return r?t[r]:lt(e,t)}function hs(e){let t=new Set(Object.keys(tr));for(let n of e.definitions){t.add(n.id);for(let r of n.aliases)t.add(r)}return[...t]}function gs(e,t){let n=e.trim().toLowerCase(),r,o=Number.POSITIVE_INFINITY;for(let i of hs(t)){let s=rt(n,i.toLowerCase(),2);s!==null&&s<o&&(r=i,o=s)}return r}function ys(e,t,n){if(typeof e!="string")return;let r=n?.strict===!0,o=n?.flagLabel??"--status",i=e.split(",").map(a=>a.trim()).filter(a=>a.length>0);if(i.length===0)return;if(i.filter(a=>a.trim().toLowerCase()===nr).length>0){if(i.length===1)return;throw new u(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,l.USAGE)}let s=[];for(let a of i){let c=_s(a,t);if(c===void 0){if(r){let d=gs(a,t);throw new u(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,l.USAGE)}s.push(a);continue}s.push(c)}return[...new Set(s)]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50f77f3f-b2b0-5ae2-b669-6ed50bbdd530")}catch{}})();var bs={bug:"Issue",bugfix:"Issue",defect:"Issue",incident:"Issue",enhancement:"Feature",story:"Feature",userstory:"Feature","user-story":"Feature","user story":"Feature",change:"Chore",ticket:"Task",todo:"Task"};function Es(e){if(e!==void 0)return bs[e.trim().toLowerCase()]}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c628dcf9-d98f-566e-9f93-cc81e737691c")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4b79bd02-51ae-5c46-be4c-2f41dd8c9486")}catch{}})();function rr(e,t){return oe(e,t)}function ws(e,t,n){let r={};for(let o of t.command_to_fields.get(n)??[]){let i=dt(e,o);i!==void 0&&(r[o.metadata_key]=pn(o,i))}return r}function Ss(e,t){for(let[n,r]of Object.entries(t)){let o=e[n];if(Array.isArray(r)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!r.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!rr(o,r[r.length-1]))return!1;continue}if(!rr(o,r))return!1}return!0}import{spawnSync as ir}from"node:child_process";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7889f11f-36f9-5384-8429-58d951c342da")}catch{}})();var Ts="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",vs="PM_OLLAMA_MODEL",Is="http://localhost:11434",As="qwen3-embedding:0.6b",Cs=".agents/pm/search/lancedb/",xs=1500,ks=2500,Rs=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,Os=/embed|embedding/i,O=E;function Ls(){let e=O(process.env[Ts]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function or(e){return e.some(t=>O(t)!==null)}function Ds(e){let t=O(e);return!!(t&&t.toLowerCase()!=="ollama")}function Ms(e){let t=O(e);return!!(t&&t.toLowerCase()!=="lancedb")}function Ns(e){return Ds(e.search?.provider)||Ms(e.vector_store?.adapter)||or([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:or([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function Ps(){let e=ir("ollama",["--version"],{encoding:"utf8",timeout:xs});return e.error?!1:e.status===0}function $s(e){let t=e.split(/\r?\n/).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)return null;let n=t.map(r=>r.split(/\s+/)[0]?.trim()).filter(r=>!!(r&&r.length>0)).filter(r=>r.toUpperCase()!=="NAME");return n.length===0?null:n.find(r=>Rs.test(r))||(n.find(r=>Os.test(r))??null)}function zs(e){let t=O(e.providers?.ollama?.model);if(t)return t;let n=O(process.env[vs]);if(n)return n;let r=ir("ollama",["list"],{encoding:"utf8",timeout:ks});if(!r.error&&r.status===0){let o=$s(typeof r.stdout=="string"?r.stdout:"");if(o)return o}return null}function Fs(e){return{baseUrl:O(e.providers?.ollama?.base_url)===null,model:O(e.providers?.ollama?.model)===null,lancedbPath:O(e.vector_store?.lancedb?.path)===null,embeddingModel:O(e.search?.embedding_model)===null}}function Us(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function js(e,t,n){if(!t.baseUrl&&!t.model)return;let r=e.providers??={},o=r.ollama??={};t.baseUrl&&(o.base_url=Is),t.model&&(o.model=n)}function Vs(e,t){if(!t.lancedbPath)return;let n=e.vector_store??={},r=n.lancedb??={};r.path=Cs}function qs(e,t,n){if(!t.embeddingModel)return;let r=e.search??={};r.embedding_model=n}function ze(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(Ls()||Ns(e))return t;let n=Fs(e);if(!Us(n)||n.model&&!Ps())return t;let r=structuredClone(e),o=zs(r);return o?(js(r,n,o),Vs(r,n),qs(r,n,o),{settings:r,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${As} or configure providers.ollama.model explicitly (and search.embedding_model if you need an override).`}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9ecff496-8afa-5cfc-9178-2be8bd403978")}catch{}})();var Hs="reindex";import pr from"node:path";import{mkdir as Ys,readFile as Bs,stat as Pt,unlink as Gs}from"node:fs/promises";import{basename as ar,dirname as Mt,isAbsolute as Ws,join as Ks,resolve as $t}from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b5f2e49a-fb72-554b-b0a8-dca0adee71f4")}catch{}})();var zt="pm_items",Js=/[^a-zA-Z0-9_-]/g,Xs=128,Qs=".pm-cli-local-vectors",Nt=1,q=new Map;function le(e){return(E(e.collection_name)??zt).replaceAll(Js,"_").slice(0,Xs)}function Fe(e){if(!J(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function dr(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function Zs(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let n=t.map((r,o)=>{let i=r.id,s=typeof i=="number"?String(i):i,a=E(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=r.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=r.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return n.sort((r,o)=>r.score!==o.score?o.score-r.score:r.id.localeCompare(o.id)),n}function Ft(e){let t=E(e.result?.status);if(t)return{status:t};let n=E(e.status);if(n)return{status:n};throw new Error("Qdrant upsert response must include status metadata")}async function de(e,t,n,r,o){return await Oe({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:n,fetcher:r,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function ea(e){let t=E(e.vector_store?.qdrant?.url);if(!t)return null;let n=E(e.vector_store?.collection_name),r=E(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...n&&n!==zt?{collection_name:n}:{},...r?{api_key:r}:{}}}function ta(e){let t=$t(e),n=Mt(t);return ar(t)==="pm"&&ar(n)===".agents"?Mt(n):t}function na(e,t){return!t||Ws(e)?e:$t(ta(t),e)}function ra(e,t){let n=E(e.vector_store?.lancedb?.path);if(!n)return null;let r=E(e.vector_store?.collection_name);return{name:"lancedb",path:na(n,t),...r&&r!==zt?{collection_name:r}:{}}}function oa(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,n)=>{let r=E(t.id);if(!r)throw new Error(`Vector upsert record at index ${n} is missing a non-empty id`);let o=Fe(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${n} must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}})}function ia(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((r,o)=>{let i=E(r);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((r,o)=>r.localeCompare(o)),n=[];for(let r of t)n.at(-1)!==r&&n.push(r);return n}function sa(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function aa(e){return e.replace(/\/points\?wait=true$/,"")}function Ue(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function je(e,t){return ee(e,t)}function ee(e,t){return Ks($t(e),Qs,`${t}.json`)}function ca(e,t,n){let r=E(e.id);if(!r)throw new Error(`LanceDB local snapshot '${n}' record at index ${t} is missing a non-empty id`);let o=Fe(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${n}' record '${r}' must provide payload as an object when set`);return{id:r,vector:o,...i?{payload:i}:{}}}function da(e,t,n){let r;try{r=JSON.parse(n)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${w(a)}`)}if(typeof r!="object"||r===null||Array.isArray(r))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(r.version!==Nt)throw new Error(`LanceDB local snapshot at '${e}' must include version=${Nt}`);let o=E(r.table);if(!o)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(o!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${o}'`);let i=r.records;if(!Array.isArray(i))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let s=new Map;for(let a=0;a<i.length;a+=1){let c=ca(i[a],a,e);s.set(c.id,c)}return s}async function la(e){try{let t=await Pt(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!K(t))throw t;return null}}function ua(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let n=new Map;return q.set(e,{records:n,mtimeMs:null,size:null}),n}function ma(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function Ut(e,t){let n=je(e,t),r=ee(e,t),o=await la(r),i=q.get(n);if(!o){let a=ua(n,i);if(a)return a}if(ma(i,o))return i.records;let s=new Map;try{let a=await Bs(r,"utf8");s=da(r,t,a)}catch(a){if(!K(a))throw a}return q.set(n,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function fa(e){let t=[...e.values()];return t.sort((n,r)=>n.id.localeCompare(r.id)),t.map(n=>({id:n.id,vector:[...n.vector],...n.payload?{payload:n.payload}:{}}))}async function lr(e){try{await Gs(e)}catch(t){if(!K(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${w(t)}`)}}async function ur(e,t,n){let r=ee(e,t);if(n.size===0){await lr(r);return}let o=Mt(r);try{await Ys(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${w(s)}`)}let i=`${JSON.stringify({version:Nt,table:t,records:fa(n)})}
|
|
13
|
+
`;try{await A(r,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${r}': ${w(s)}`)}}async function pa(e,t){let n=je(e,t),r=ee(e,t);await lr(r),q.delete(n)}function cr(e){let t=0;for(let n=0;n<e.length;n+=1)t+=e[n]*e[n];return Math.sqrt(t)}function _a(e,t){let n=0;for(let i=0;i<e.length;i+=1)n+=e[i]*t[i];let r=cr(e),o=cr(t);return r===0||o===0?0:n/(r*o)}function jt(e,t){let n=ea(e),r=ra(e,t),o=[n,r].filter(a=>a!==null),i=E(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(a=>a.name===s):void 0)??o[0]??null,available:o}}function Ve(e){let t=le(e);if(e.name==="qdrant"){let o=ne(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let n=encodeURIComponent(e.path),r=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${n}#${r}`,upsert_target:`lancedb://${n}#${r}`}}function ha(e,t,n){let r=Ve(e),o=Fe(t),i=dr(n);return e.name==="qdrant"?{target:r,method:"POST",headers:Ue(e),body:{vector:o,limit:i,with_payload:!0}}:{target:r,method:"LOCAL",headers:{},body:{table:le(e),vector:o,limit:i}}}function ga(e,t){let n=Ve(e),r=oa(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Ue(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:le(e),records:r}}}function ya(e,t){let n=Ve(e),r=ia(t);return e.name==="qdrant"?{target:n,method:"POST",headers:Ue(e),body:{points:r}}:{target:n,method:"LOCAL",headers:{},body:{table:le(e),ids:r}}}async function gu(e,t,n,r={}){let o=ha(e,t,n);if(o.method==="LOCAL"){let c=e,d=o.body,m=await Ut(c.path,d.table);if(m.size===0)return[];let f=Fe(d.vector),_=dr(d.limit),h=[],y=0;for(let g of m.values()){if(g.vector.length!==f.length){y++;continue}h.push({id:g.id,score:_a(f,g.vector),...g.payload?{payload:g.payload}:{}})}return y>0&&r.warnings&&r.warnings.push(`vector_dimension_mismatch:${y} records skipped (expected ${f.length} dimensions)`),h.sort((g,p)=>g.score!==p.score?p.score-g.score:g.id.localeCompare(p.id)),h.slice(0,_)}let i=z(r.timeout_ms,"Vector request"),s=F(r.fetcher,"Vector request"),a=await de(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return Zs(a)}async function Vt(e,t,n={}){let r=ga(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=je(a.path,c.table),m=await Ut(a.path,c.table);for(let h of c.records)m.set(h.id,h);await ur(a.path,c.table,m);let f=ee(a.path,c.table),_=await Pt(f);return q.set(d,{records:m,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=z(n.timeout_ms,"Vector request"),i=F(n.fetcher,"Vector request"),s=await de(r.target.upsert_target,{method:"POST",headers:r.headers,body:r.body},o,i,"upsert");return Ft(s)}async function qe(e,t,n={}){let r=ya(e,t);if(r.method==="LOCAL"){let a=e,c=r.body,d=je(a.path,c.table),m=await Ut(a.path,c.table);if(m.size===0)return{status:"ok"};for(let f of c.ids)m.delete(f);if(await ur(a.path,c.table,m),m.size===0)q.delete(d);else{let f=ee(a.path,c.table),_=await Pt(f);q.set(d,{records:m,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=z(n.timeout_ms,"Vector request"),i=F(n.fetcher,"Vector request"),s=await de(sa(r.target.upsert_target),{method:"POST",headers:r.headers,body:r.body},o,i,"delete");return Ft(s)}async function mr(e,t=[],n={},r){if(e.name==="lancedb")return await pa(e.path,le(e)),{status:"ok"};if(r!==void 0){if(!Number.isInteger(r)||r<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=Ve(e),s=aa(i.upsert_target),a=z(n.timeout_ms,"Vector request"),c=F(n.fetcher,"Vector request"),d=Ue(e);try{await de(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(f){if(!w(f).includes("failed with status 404"))throw f}let m=await de(s,{method:"PUT",headers:d,body:{vectors:{size:r,distance:"Cosine"}}},a,c,"upsert");return Ft(m)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await qe(e,o,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]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function He(e,t){let n=E(e),r=E(t);return!n||!r?null:{provider:n,model:r}}function fr(e){if(e==null)return null;if(typeof e!="object"||Array.isArray(e))throw new Error("Vectorization embedding metadata must be an object when set");let t=He(e.provider,e.model),n=e.vector_dimension;if(!t||typeof n!="number"||!Number.isInteger(n)||n<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:n}}function qt(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Vectorization embedding metadata requires a positive vector dimension");return{provider:e.provider,model:e.model,vector_dimension:t}}function Ht(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function Yt(e,t){return!!(e&&e.vector_dimension!==t)}function Bt(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let n=e[0].length;if(!Number.isInteger(n)||n<=0)throw new Error(`${t} returned an empty vector`);for(let r=1;r<e.length;r+=1)if(e[r]?.length!==n)throw new Error(`${t} returned mixed vector dimensions`);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var _r="search/vectorization-status.json";function me(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,n)=>t.localeCompare(n))}function hr(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function gr(e){let t=new Map;for(let[n,r]of Object.entries(e)){let o=n.trim();o.length===0||!hr(r)||t.set(o,r)}return Object.fromEntries([...t.entries()].sort((n,r)=>n[0].localeCompare(r[0])))}async function yr(e){let t=pr.join(e,_r),n=await T(t);if(n===null||n.trim().length===0)return{entries:{},embedding:null,warnings:[]};let r;try{r=JSON.parse(n)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof r!="object"||r===null||r.version!==1||!Array.isArray(r.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of r.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!hr(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=fr(r.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function br(e,t,n){let r=gr(t),o=pr.join(e,_r),i=`${JSON.stringify({version:1,generated_at:M(),...n?{embedding:n}:{},items:Object.entries(r).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
14
|
+
`;await A(o,i)}function ba(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Ea(e){let t=He(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function ue(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function wa(e,t,n){if(!n.settings&&!await W(X(e)))return ue(t,"search_semantic_refresh_skipped:settings_not_initialized");let r;try{if(n.settings)r=n.settings;else{let a=await ve(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return ue(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);r=a.settings}}catch(a){return ue(t,`search_semantic_refresh_skipped:settings_read_failed:${w(a)}`)}let o=n.apply_runtime_defaults?ze(r).settings:r,i=wt(o).active;if(!i)return ue(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=jt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:ue(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function Sa(e,t,n,r,o,i){let s=[],a=new Set,c=new Set,d=[];for(let m of r){let f=await _t(e,m,t,n,o);if(!f){c.add(m);continue}try{let _=await ht(f,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(f.id),s.push(`search_semantic_refresh_item_read_failed:${f.id}:${w(_)}`)}}return d.sort((m,f)=>m.id.localeCompare(f.id)),{documents:d,missingIds:me(c),skippedIds:me(a),warnings:s}}async function Ta(e,t,n){let r=Z(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=St(e),i=n.map(a=>Tt(a.document,{providerName:t.name,maxCharacters:r,fields:o})),s=await It(t,e,i);return{vectors:s.vectors,vector_dimension:Bt(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function va(e,t,n){return await Vt(e,t.map((r,o)=>({id:r.id,vector:n[o],payload:ba(r.document.metadata)}))),{refreshed:t.map(r=>r.id),skipped:[],warnings:[]}}async function Ia(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await qe(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(n){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${w(n)}`]}}}async function zu(e,t,n={}){let r=me(t);if(r.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await wa(e,r,n);if(!("settings"in o))return o;let i=it(o.settings,at()),s=await Sa(e,o.settings.id_prefix,o.settings.item_format,r,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await yr(e):{entries:{},embedding:null,warnings:[]},c=Ea(o.provider),d=a.entries,m={refreshed:[],skipped:[],warnings:[]},f=a.embedding;if(s.documents.length>0)if(a.embedding&&Ht(a.embedding,c))m={refreshed:[],skipped:s.documents.map(p=>p.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let p=await Ta(o.settings,o.provider,s.documents);if(Yt(a.embedding,p.vector_dimension))m={refreshed:[],skipped:s.documents.map(b=>b.id),warnings:[...p.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{f=qt(c,p.vector_dimension);let b=await va(o.vectorStore,s.documents,p.vectors);m={refreshed:b.refreshed,skipped:b.skipped,warnings:[...p.warnings,...b.warnings]}}}catch(p){m={refreshed:[],skipped:s.documents.map(b=>b.id),warnings:[`search_semantic_refresh_failed:${w(p)}`]}}let _=await Ia(o.vectorStore,s.missingIds),h=new Set(m.refreshed),y=Object.fromEntries(s.documents.filter(p=>h.has(p.id)).map(p=>[p.id,p.document.metadata.updated_at])),g=[];if(Object.keys(y).length>0||s.missingIds.length>0){let p={...d,...gr(y)};for(let b of s.missingIds)delete p[b];try{await br(e,p,f)}catch(b){g.push(`search_vectorization_status_ledger_write_failed:${w(b)}`)}g.push(...a.warnings)}return{refreshed:me([...m.refreshed,..._.refreshed]),skipped:me([...s.skippedIds,...m.skipped,..._.skipped]),warnings:[...s.warnings,...m.warnings,..._.warnings,...g]}}import{createRequire as Da}from"node:module";import{createHash as Aa}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]="225abd7e-ddd7-5597-818d-efadc974b7e3")}catch{}})();var Ca=new Set(["1","true","yes","on"]),Gt=["user","automation","test","dogfood"],xa=new Set(Gt);function Er(e=process.env){return typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||typeof e.NODE_TEST_CONTEXT=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test"}function Ye(e,t){return Ca.has((t[e]??"").trim().toLowerCase())}function I(e=process.env){let t=(e.PM_TELEMETRY_ENDPOINT??"").trim(),n=URL.canParse(t)?new URL(t).protocol:"";return n==="http:"||n==="https:"?{endpoint:t,invalid:!1}:{endpoint:null,invalid:t.length>0}}function fe(e,t=I().endpoint){if(t===null)return e;let n=Aa("sha256").update(t).digest("hex").slice(0,16);return e.replace(/\.(jsonl|json)$/u,`.${n}.$1`)}function ka(e){return e.replaceAll(/(\/\/)[^/?#\s]*@/gu,"$1")}function Be(e){let t=e.trim();if(!URL.canParse(t))return ka(t).replace(/[?#].*$/su,"");let n=new URL(t);return n.username="",n.password="",n.search="",n.hash="",n.toString()}function Ge(e){return e.replaceAll(/\b[a-z][a-z\d+.-]*:\/\/[^\s"'<>]+/giu,t=>Be(t))}function ju(e,t=process.env){return I(t).endpoint??e}function pe(e=process.env){let t=Ye("DO_NOT_TRACK",e),n=I(e),r=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),o=Er(e)&&!xa.has(r)&&!Ye("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||o||n.invalid||Ye("PM_TELEMETRY_DISABLED",e)||Ye("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed:o,endpoint_override:n.endpoint===null?null:Be(n.endpoint),endpoint_override_invalid:n.invalid}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="64589e00-25ef-5d74-a94a-7d40455e1929")}catch{}})();var Sr=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,qu=new RegExp(`(?:\\b|(?<=_))(${Sr.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var wr="(?:\\s|\\\\+u(?:0009|000a|000d|0020))*",Hu=new RegExp("^"+wr+"(?::|=|\\\\+u(?:003a|003d))"+wr,"iu");(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="93725298-6091-543b-969d-bac38d70be89")}catch{}})();var em=Da(import.meta.url);(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e8ad404-2f8d-5d9b-9046-60178a70e5b2")}catch{}})();var We=class extends u{constructor(t,n,r){super(t,l.GENERIC_FAILURE,n),this.name="ExtensionCommandError",Object.defineProperty(this,"cause",{value:r,configurable:!0,writable:!0})}};function om(e,t){let n=t.warnings[0]??"extension_command_handler_failed",r=t.errorMessage?.trim();return new We(`Command "${e}" failed in extension handler (${n}).${r?` ${r}`:""}`,{code:t.errorCode??"command_failed",nextSteps:t.remediation?[t.remediation]:void 0},t.cause)}function im(e){return e instanceof u||e instanceof Error?e.message:"Unknown failure"}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var cm=new Map([[l.USAGE,"invalid_command_usage"],[l.NOT_FOUND,"item_not_found"],[l.CONFLICT,"lock_conflict"],[l.DEPENDENCY_FAILED,"dependency_failed"]]);(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10325dfb-128f-5d83-9163-061d8d8b29b6")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ab644545-f072-53c0-9ebf-72a62c237a2f")}catch{}})();var bm=Object.freeze({"<":"<",">":">",""":'"',"'":"'","&":"&"});(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e7deff0d-d9c9-5250-b172-ab752ddd64a4")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bc9e1b59-21cb-5dda-91c0-36e123734cd3")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4b566486-120f-5aed-8d92-9e62ed996210")}catch{}})();function Na(e,t){if(e==null)return[];let n=t?.separators??/,/,r=e.split(n).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(r)):r;return t?.sort===!0?[...o].sort():o}import Wt from"node:fs/promises";import Ke from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12ee7de1-dff4-53f1-8d0d-d8b1c1ebea42")}catch{}})();function Pa(e){return"json_markdown"}function Ir(e,t){return Ke.relative(e,t).replaceAll("\\","/")}function $a(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function za(e,t,n){e!==t&&be(await Wt.readFile(t,"utf8"),{format:"json_markdown",requireSupportedFormat:!0,schema:n})}async function Fa(e,t,n="item_format:migrate",r=ot,o){if(t!=="toon")throw new Error("Only toon item-format migration targets are supported. Markdown item files are legacy read-only input.");let i=new Set,s=new Set,a=[],c=0,d=Pa(t),m=Object.entries(r);for(let[f,_]of m){let h=Ke.join(e,_),y=[];try{y=await Wt.readdir(h)}catch{continue}let g=new Map;for(let b of y){let C=Ke.join(h,b),L=dn(C);if(!L)continue;let B=Ke.extname(b),te=b.slice(0,b.length-B.length).trim();if(te.length===0)continue;let G=g.get(te)??{};G[L]=C,g.set(te,G)}let p=[...g.keys()].sort((b,C)=>b.localeCompare(C));for(let b of p){let C=g.get(b);c+=1;let L=C[d];if(!L)continue;let B=C[t]??L,te=B===C[t]?t:d;try{let G=await Wt.readFile(B,"utf8"),co=be(G,{format:te,requireSupportedFormat:!0,schema:o,onWarning:lo=>a.push(`item_format_migration_parse_warning:${b}:${lo}`)});await za(B,L,o);let nt=st(e,f,b,t,r),an=ut(co,{format:t,schema:o});await T(nt)!==an&&(await A(nt,an),a.push(...await Q({path:nt,scope:"project",op:n})),i.add(b)),await he(L),s.add(Ir(e,L)),a.push(...await Q({path:L,scope:"project",op:`${n}:remove`})),i.add(b)}catch(G){a.push(`item_format_migration_skipped:${Ir(e,B)}:${$a(G)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((f,_)=>f.localeCompare(_)),removed:[...s].sort((f,_)=>f.localeCompare(_)),warnings:a}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12c59406-7e00-5fe1-bd93-c1f9d8537f01")}catch{}})();var Ua=new Set(["completed","superseded"]);function ja(e){return e!==void 0&&Ua.has(e)}function Va(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(n=>n.status==="completed")}import{createHash as qa}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]="7cbbb50d-e9bc-5940-9ae6-6270e9c2fcbf")}catch{}})();var Ha=/^[a-z][a-z0-9_-]{0,63}$/u,Ya=new Set(["constructor","prototype"]),Ar="settings:section:write",Ba=240;function Je(e){return`sha256:${qa("sha256").update(Kt(e)).digest("hex")}`}function Kt(e){return Array.isArray(e)?`[${e.map(t=>Kt(t)).join(",")}]`:typeof e=="object"&&e!==null?`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${Kt(Object.getOwnPropertyDescriptor(e,t)?.value)}`).join(",")}}`:String(JSON.stringify(e))}function xr(e){if(!Ha.test(e)||Ya.has(e))throw new u(`Invalid settings section name "${e.slice(0,80)}". Use 1-64 lowercase letters, digits, underscores or hyphens, starting with a letter.`,l.USAGE,{code:"settings_section_name_invalid",field:"section",required:"Name the section after the package, for example lint or jev."});if(gn.includes(e))throw new u(`Settings section "${e}" is owned by core settings; extension sections must use another name.`,l.USAGE,{code:"settings_section_reserved",field:"section",value:e,required:"Read core settings with readSettings and change them with writeSettings or pm config."})}function kr(e){let t;try{t=JSON.parse(e)}catch{t=void 0}if(typeof t!="object"||t===null||Array.isArray(t))throw new u("settings.json is not a JSON object, so no settings section can be read or written.",l.USAGE,{code:"settings_section_document_malformed",reason:t===void 0?"settings_json_malformed":"settings_json_not_object",nextSteps:["Repair .agents/pm/settings.json so it is a JSON object, then retry.","Run pm health to confirm the settings warning has cleared."]});return t}function Jt(e,t,n){let r;try{r=n===void 0?t:n(t)}catch(o){throw new u(`Settings section "${e}" is invalid: ${w(o).slice(0,Ba)}`,l.USAGE,{code:"settings_section_invalid",field:e,required:`Fix the "${e}" section of .agents/pm/settings.json so the owning package accepts it, then retry.`})}return r}function Rr(e){return typeof Reflect.get(e,"toJSON")=="function"}function Xt(e){return e.length===0?"the value":e.join(".")}function Or(e,t){return Object.values(Object.getOwnPropertyDescriptors(e)).every(n=>"value"in n&&(!t||n.enumerable===!0))}function Ga(e){if(Object.getPrototypeOf(e)!==Array.prototype||!Or(e,!1))return!1;let t=Object.keys(e);return t.length===e.length&&t.every((n,r)=>n===String(r))&&Object.getOwnPropertyNames(e).length===e.length+1&&Object.getOwnPropertySymbols(e).length===0&&!Rr(e)}function Wa(e){let t=Object.getPrototypeOf(e);return(t===Object.prototype||t===null)&&Or(e,!0)&&Object.getOwnPropertySymbols(e).length===0&&!Rr(e)}function Ka(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return null;let n=Xt(t);return typeof e=="number"?Number.isFinite(e)?null:{detail:`${n} is a non-finite number`,representable:!0}:{detail:`${n} is ${typeof e}`,representable:typeof e!="bigint"&&t.length>0}}function Lr(e,t=[],n=new Set){if(typeof e!="object"||e===null)return Ka(e,t);let r=Xt(t);if(n.has(e))return{detail:`${r} is a circular reference`,representable:!1};if(!(Array.isArray(e)?Ga(e):Wa(e)))return{detail:`${r} is not a plain JSON ${Array.isArray(e)?"array":"object"}`,representable:!0};n.add(e);for(let[o,i]of Object.entries(e)){let s=Lr(i,[...t,o],n);if(s!==null)return s}return n.delete(e),null}function Dr(e,t=[]){if(typeof e!="object"||e===null)return null;for(let[n,r]of Object.entries(e)){let o=[...t,n];if(n==="__proto__"||n==="prototype"&&t.at(-1)==="constructor")return Xt(o);let i=Dr(r,o);if(i!==null)return i}return null}function Cr(e,t,n){return Jt(e,t,()=>{throw new Error(n)})}function Ja(e,t){let n=Lr(t);if(n!==null){let o=n.representable?`the value would change when stored as JSON: ${n.detail}`:`the value is not representable as JSON: ${n.detail}`;return Cr(e,t,o)}let r=Dr(t);return r!==null?Cr(e,t,`${r} is a reserved key that settings history cannot record`):JSON.parse(JSON.stringify(t))}function Mr(e,t){return Object.hasOwn(e,t)?e[t]:void 0}async function Xa(e,t,n={}){xr(t);let r=X(e);await ct({path:r,scope:"project"});let o=await T(r),i=o===null?void 0:Mr(kr(o),t);if(i===void 0)return{section:t,source:"default",value:n.defaultValue,revision:null};let s=Je(i);return{section:t,source:"stored",value:Jt(t,structuredClone(i),n.validate),revision:s}}async function Qa(e,t,n,r={}){xr(t);let o=n===void 0?void 0:Ja(t,Jt(t,n,r.validate)),i=X(e),s=await P(e);try{let a=await ft({pmRoot:e,filePath:i,op:Ar,author:Ee(r.author,s.author_default),lockTtlSeconds:s.locks.ttl_seconds,lockWaitMs:s.locks.wait_ms,recordCreation:!1,mutate:c=>{if(c===null)throw new u("settings.json does not exist, so no settings section can be written.",l.NOT_FOUND,{code:"settings_section_document_missing",required:"Initialize the tracker with pm init, then retry."});let d=kr(c),m=Mr(d,t),f=m===void 0?null:Je(m);if(r.expectedRevision!==void 0&&r.expectedRevision!==f)throw new u(`Settings section "${t}" changed since it was read; read it again and reapply the change.`,l.CONFLICT,{code:"settings_section_revision_conflict",field:t,expected_revision:r.expectedRevision,current_revision:f,required:"Read the section again with readSettingsSection, then retry with its current revision."});let _={section:t,changed:!1,previous_revision:f,revision:o===void 0?null:Je(o)};return oe(m,o)?{raw:c,result:_}:(o===void 0?delete d[t]:d[t]=o,{raw:`${JSON.stringify(d,null,2)}
|
|
15
|
+
`,result:{..._,changed:!0}})}});return a.changed&&await Q({path:i,scope:"project",op:Ar}),a.result}finally{Se(e)}}import Wm from"node:readline/promises";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="88db9929-8e1d-56ad-9a5f-6cc0febadfb3")}catch{}})();import tn from"node:crypto";import{mkdirSync as mf,rmSync as tc,statSync as ff}from"node:fs";import{mkdir as Qt,readdir as nc,rm as nn,stat as jr}from"node:fs/promises";import{request as rc}from"node:http";import{request as oc}from"node:https";import v from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4f455b67-536a-59be-8f25-1dc9c9c0b917")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e8df9616-905b-5acf-a3a2-6837d52e23bf")}catch{}})();var ic=v.join("runtime","telemetry","events.jsonl"),sc=v.join("runtime","telemetry","state.json"),ac=v.join("runtime","telemetry","otel-spans.jsonl"),cc=8,Nr=500,dc=1;var lc=100,uc=36e5,mc=3e4,Pr=2e4,fc=1e3,pc=25e3;var _c=864e5,Vr=65536;var qr=15;var Hr=[25,50,100,200],hc=3600*1e3,gc=1440*60*1e3,yc=6e4;var H="PM_TELEMETRY_FLUSH_CHILD",bc="PM_TELEMETRY_HTTP_TIMEOUT_MS",Ec=globalThis.fetch;var Lf=Promise.resolve(),$r=Promise.resolve();var wc=new Set(["1","true","yes","on"]);var Df=tn.randomUUID();var Yr="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Sc=new RegExp(`\\b(${Yr})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),Tc=new RegExp(`(--${Yr})(=|\\s+)([^\\s,;]+)`,"giu"),vc=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,Ic=/bearer\s+[a-z0-9._=-]+/giu,Ac=/\b(?:10\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|172\.(?:1[6-9]|2\d|3[01])\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)|192\.168\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.(?:25[0-5]|2[0-4]\d|[01]?\d?\d))\b/g;function Qe(e,t=I().endpoint){return v.join(v.dirname(v.join(e,ic)),fe("events.jsonl",t))}function Ze(e){return v.join(e,ac)}function Cc(e){return v.dirname(Qe(e,null))}function Br(e,t=I().endpoint){return v.join(v.dirname(v.join(e,sc)),fe("state.json",t))}function Gr(e){return v.join(e,"runtime","telemetry","flush.lock")}function xc(e){return v.join(e,"runtime","telemetry","flush.spawn.lock")}async function kc(e,t=I().endpoint){let n=await T(Br(e,t));if(!n||n.trim().length===0)return{};try{let r=JSON.parse(n);return typeof r!="object"||r===null||Array.isArray(r)?{}:r}catch{return{}}}async function Xe(e,t,n=I().endpoint){try{await _e(async()=>{let r={...await kc(e,n),...t},o=Object.fromEntries(Object.entries(r).filter(([,i])=>i!==void 0).sort((i,s)=>i[0].localeCompare(s[0])));await A(Br(e,n),`${JSON.stringify(o,null,2)}
|
|
16
|
+
`,{createParentDirectories:!Y(process.env[H])})},e)}catch{}}function Wr(e){return e.replaceAll(Sc,(t,n,r)=>`${n}${r}[redacted]`).replaceAll(Tc,(t,n,r)=>`${n}${r}[redacted]`)}function Kr(e){return e.replaceAll(vc,(t,n)=>`${n}[redacted_path]`)}function Jr(e){let t=e>=65&&e<=90,n=e>=97&&e<=122,r=e>=48&&e<=57;return t||n||r}function Xr(e){if(!e)return!1;let t=e.charCodeAt(0);return Jr(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function Qr(e){if(!e)return!1;let t=e.charCodeAt(0);return Jr(t)?!0:e==="."||e==="-"}function Rc(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let n=e.slice(0,t),r=e.slice(t+1),o=r.lastIndexOf(".");if(o<=0||o===r.length-1||r.length-(o+1)<2)return!1;for(let i of n)if(!Xr(i))return!1;for(let i of r)if(!Qr(i))return!1;return!0}function Oc(e){let t="",n=0;for(;n<e.length;){let r=e.indexOf("@",n);if(r<0){t+=e.slice(n);break}let o=r-1;for(;o>=n&&Xr(e[o]);)o-=1;o+=1;let i=r+1;for(;i<e.length&&Qr(e[i]);)i+=1;let s=e.slice(o,i);if(Rc(s)){t+=e.slice(n,o),t+="[redacted_email]",n=i;continue}t+=e.slice(n,r+1),n=r+1}return t}function Zr(e){return Oc(e).replaceAll(Ic,"bearer [redacted_token]").replaceAll(Ac,"[redacted_ip]")}function Lc(e){let t=Zr(e),n=Wr(t),r=Kr(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>512?`${r.slice(0,509)}...`:r}function Dc(e){let t=Zr(e),n=Wr(t),r=Kr(n),o=r.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":r.length>2048?`${r.slice(0,2045)}...`:r}function en(e,t="redacted"){return t==="max"?Dc(e):Lc(e)}function Mc(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function Y(e){return wc.has((e??"").trim().toLowerCase())}function zr(){let e=process.env[bc]?.trim();if(!e)return Pr;let t=Number(e);return Number.isFinite(t)?Math.min(pc,Math.max(fc,Math.trunc(t))):Pr}async function eo(e,t,n){let r=new URL(e);if(globalThis.fetch!==Ec){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},zr())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:n,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=r.protocol==="https:"?oc:r.protocol==="http:"?rc:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${r.protocol}`);return new Promise((i,s)=>{let a=zr(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(n)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(r,c,m=>{m.once("error",s),m.once("end",()=>i(m.statusCode)),m.resume()});d.once("error",s),d.end(n)})}async function Nc(e){let t=await P(e);if(!t.telemetry.enabled||pe().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(yn(e)||Te(t))return null;t.telemetry.installation_id=tn.randomUUID(),await Ie(e,t,"telemetry:install_id")}return{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days)),captureLevel:Mc(t.telemetry.capture_level)}}function to(e){let t=[];for(let n of e.split(`
|
|
17
|
+
`)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function no(e){let t=Math.min(mc*2**Math.max(e-1,0),uc);return new Date(Date.now()+t).toISOString()}function rn(e){if(typeof e!="string"||e.trim().length===0)return!0;let t=Date.parse(e);return Number.isNaN(t)?!0:t<=Date.now()}function ro(e){return rn(e.next_attempt_after)}function oo(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*_c}function Pc(e,t){let n=e.event?.occurred_at;if(typeof n!="string"||n.trim().length===0)return!1;let r=Date.parse(n);return Number.isNaN(r)?!1:r<t}function et(e,t){let n=oo(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>Vr||Pc(i,n)||i.attempts>=qr){o+=1;continue}r.push(i)}return{entries:r,prunedCount:o}}async function io(e,t,n=I().endpoint){let r=t.map(i=>JSON.stringify(i)).join(`
|
|
18
|
+
`),o=r.length>0?`${r}
|
|
19
|
+
`:"";for(let i=0;;i+=1)try{await A(Qe(e,n),o,{createParentDirectories:!Y(process.env[H])});return}catch(s){let a=Hr[i];if(a===void 0||!so(s))throw s;await ao(a)}}function so(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function ao(e){return new Promise(t=>{setTimeout(t,e)})}function $c(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return tn.createHash("sha256").update(t).digest("hex").slice(0,32)}function on(e){let t=[];for(let n of e.split(`
|
|
20
|
+
`)){let r=n.trim();if(r.length!==0)try{let o=JSON.parse(r);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=$c(o)),t.push(o))}catch{}}return t}function zc(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let n=Date.parse(e.enqueued_at);return Number.isNaN(n)?!1:n<t}function sn(e,t){let n=oo(t),r=[],o=0;for(let i of e){if(JSON.stringify(i).length>Vr||zc(i,n)||i.attempts>=qr){o+=1;continue}r.push(i)}if(r.length>Nr){let i=r.length-Nr;return o+=i,{entries:r.slice(i),prunedCount:o}}return{entries:r,prunedCount:o}}async function Fc(e,t){let n=t.map(o=>JSON.stringify(o)).join(`
|
|
21
|
+
`),r=n.length>0?`${n}
|
|
22
|
+
`:"";for(let o=0;;o+=1)try{await A(Ze(e),r,{createParentDirectories:!Y(process.env[H])});return}catch(i){let s=Hr[o];if(s===void 0||!so(i))throw i;await ao(s)}}async function Fr(e,t,n,r){return _e(async()=>{let o=await T(Ze(e)),i=o===null?[]:on(o),s=[];for(let c of i){if(n.has(c.id))continue;let d=r.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=sn(s,t);return await Fc(e,a),a.length},e)}async function Uc(e,t){let n=await T(Ze(e));if(n===null||n.trim().length===0){await Xe(e,{pending_otel_spans:0},null);return}let r=on(n),{entries:o,prunedCount:i}=sn(r,t),s=o.filter(y=>rn(y.next_attempt_after)).slice(0,cc);if(s.length===0){let y=i>0?await Fr(e,t,new Set,new Map):o.length;await Xe(e,{pending_otel_spans:y},null);return}let a=M(),c=new Set,d=new Map,m=0,f;await Promise.all(s.map(async y=>{try{let g=await eo(y.endpoint,{"content-type":"application/json"},JSON.stringify(y.payload));if(g<200||g>=300)throw new Error(`local_otel_export_http_${g}`);c.add(y.id),m+=1}catch(g){f=g instanceof Error?en(Ge(g.message),"redacted"):"local_otel_export_failed";let p=y.attempts+1;d.set(y.id,{attempts:p,next_attempt_after:no(p)})}}));let _=await Fr(e,t,c,d),h={pending_otel_spans:_,last_otel_attempt_at:a};m>0&&(h.last_otel_success_at=a),f!==void 0?(h.last_otel_failure_at=a,h.last_otel_failure_error=f):_===0&&(h.last_otel_failure_at=void 0,h.last_otel_failure_error=void 0),await Xe(e,h,null)}async function jc(e,t,n){try{await Yc(e,t,n)}catch{}try{await Uc(e,n)}catch{}}async function Vc(e,t=hc,n=I().endpoint){try{let r=Cc(e),o=await nc(r,{withFileTypes:!0}),i=Date.now(),s=new Set([fe("events.jsonl",n),fe("state.json",n)]),a=c=>{if(!s.has(c))return/^\.events(?:\.[a-f0-9]{16})?\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(c)?i-Math.max(0,t):/^(?:events\.[a-f0-9]{16}\.jsonl|state\.[a-f0-9]{16}\.json)$/.test(c)?i-gc:void 0};await Promise.all(o.map(async c=>{let d=c.isFile()?a(c.name):void 0;if(d===void 0)return;let m=v.join(r,c.name);(await jr(m)).mtimeMs<d&&await nn(m,{force:!0})}))}catch{}}async function _e(e,t=re(process.cwd()),n=5e3){let r=$r.catch(()=>{}).then(()=>mn(async()=>{let o=await ye(t,"telemetry-queue",60,"telemetry",!1,!1,n,{createParentDirectories:!Y(process.env[H])});try{return Se(t),await e()}finally{await o()}}));return $r=r.catch(()=>{}),r}async function tt(e,t=I().endpoint){let n=await T(Qe(e,t));return n===null||n.trim().length===0?[]:to(n)}async function Zt(e,t,n,r=I().endpoint){return _e(async()=>{let o=await tt(e,r),{entries:i}=et(o,n),s=i.filter(a=>!t.has(a.event.event_id));return await io(e,s,r),s},e)}async function qc(e,t,n,r,o=I().endpoint){return _e(async()=>{let i=await tt(e,o),{entries:s}=et(i,r),a=s.map(c=>{if(!t.has(c.event.event_id))return c;let d=c.attempts+1;return{...c,attempts:d,last_attempt_at:n,next_attempt_after:no(d)}});return await io(e,a,o),a},e)}function Hc(e,t){return t===null?e:Be(e)}async function Yc(e,t,n){let r=I().endpoint;await Vc(e,void 0,r);let o=(r??t).trim(),i=Hc(o,r),s=p=>Xe(e,p,r);if(o.length===0)return;let a=await T(Qe(e,r));if(a===null||a.trim().length===0){await s({endpoint:i,queue_entries:0});return}let c=to(a);if(c.length===0){await s({endpoint:i,queue_entries:0});return}let{entries:d,prunedCount:m}=et(c,n);if(d.length===0){let p=await Zt(e,new Set,n,r);await s({endpoint:i,queue_entries:p.length});return}let f=d.filter(p=>ro(p)).slice(0,lc);if(f.length===0){let p=m>0?await Zt(e,new Set,n,r):d;await s({endpoint:i,queue_entries:p.length});return}let _=new Set(f.map(p=>p.event.event_id)),h=M(),y={"content-type":"application/json"},g=process.env.PM_TELEMETRY_INGEST_KEY?.trim();g&&(y["x-pm-telemetry-key"]=g);try{let p=await eo(o,y,JSON.stringify({schema_version:dc,events:f.map(b=>b.event)}));if(p<200||p>=300)throw new Error(`telemetry_flush_http_${p}`)}catch(p){let b=await qc(e,_,h,n,r),C=p instanceof Error?en(Ge(p.message),"redacted"):"telemetry_flush_failed";await s({endpoint:i,queue_entries:b.length,last_attempted_flush_at:h,last_failed_flush_at:h,last_failed_flush_error:C});return}try{let p=await Zt(e,_,n,r);await s({endpoint:i,queue_entries:p.length,last_attempted_flush_at:h,last_successful_flush_at:h,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(p){let b=p instanceof Error?en(Ge(p.message),"redacted"):"telemetry_flush_failed",C=await tt(e,r).catch(()=>d);await s({endpoint:i,queue_entries:C.length,last_attempted_flush_at:h,last_failed_flush_at:h,last_failed_flush_error:b})}}async function Bc(e){let t=Gr(e);Y(process.env[H])||await Qt(v.dirname(t),{recursive:!0});try{return await Qt(t),!0}catch(n){if(typeof n!="object"||n===null||!("code"in n)||n.code!=="EEXIST")throw n}try{let n=await jr(t);return Date.now()-n.mtimeMs<yc?!1:(await nn(t,{recursive:!0,force:!0}),await Qt(t),!0)}catch{return!1}}function Gc(e){try{tc(e,{recursive:!0,force:!0})}catch{}}function Wc(e){Gc(xc(e))}async function Kc(e,t,n){let r=await Bc(e);if(Wc(e),!r)return!1;try{await jc(e,t,n)}finally{try{await nn(Gr(e),{recursive:!0,force:!0})}catch{}}return!0}async function Ur(e,t){let n=new Set;try{let{entries:r}=et(await tt(e),t);for(let o of r.filter(ro))n.add(`event:${o.event.event_id}`)}catch{}try{let r=await T(Ze(e));if(r!==null)for(let o of sn(on(r),t).entries)rn(o.next_attempt_after)&&n.add(`span:${o.id}`)}catch{}return n}async function Mf(e=re(process.cwd())){if(!pe().telemetry_disabled)try{await pt(e,async()=>{let t=Y(process.env[H]),n=!0;for(;n;){if(!(await P(e)).telemetry.enabled)return;let r=await _e(()=>Nc(e),e);if(!r)return;let o=t?await Ur(e,r.retentionDays):new Set;if(!await Kc(e,r.endpoint,r.retentionDays)||!t)return;let i=await Ur(e,r.retentionDays);n=i.size>0&&(i.size!==o.size||[...i].some(s=>!o.has(s)))}},()=>Y(process.env[H]))}catch{}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="79bb744c-f468-5333-b39a-552bf8639096")}catch{}})();export{om as a,im as b,ul as c,Vi as d,Hi as e,Bi as f,Gi as g,yt as h,Sn as i,Jc as j,bn as k,Ce as l,In as m,An as n,fo as o,po as p,_o as q,ho as r,On as s,vo as t,td as u,Io as v,nd as w,ae as x,Co as y,ke as z,rd as A,xo as B,xe as C,od as D,Re as E,Ro as F,Oo as G,us as H,Mi as I,qd as J,Bn as K,Hd as L,Yd as M,Ne as N,Bd as O,Ui as P,fl as Q,Zi as R,_l as S,es as T,ts as U,Ot as V,rs as W,Lt as X,os as Y,Ol as Z,ss as _,Zn as $,as as aa,cs as ba,ls as ca,Vl as da,ps as ea,Wl as fa,ys as ga,Es as ha,Lo as ia,ws as ja,Ss as ka,ze as la,Hs as ma,fd as na,wt as oa,Nn as pa,St as qa,Yo as ra,Bo as sa,hd as ta,Pn as ua,Z as va,Tt as wa,It as xa,jt as ya,gu as za,Vt as Aa,qe as Ba,mr as Ca,He as Da,qt as Ea,Ht as Fa,Yt as Ga,Bt as Ha,yr as Ia,br as Ja,zu as Ka,Gt as La,fe as Ma,ka as Na,Be as Oa,ju as Pa,pe as Qa,wi as Ra,Vn as Sa,Ti as Ta,vi as Ua,Ii as Va,Cd as Wa,kt as Xa,Hn as Ya,qn as Za,xi as _a,ki as $a,Yn as ab,Li as bb,Na as cb,Fa as db,ja as eb,Va as fb,Xa as gb,Qa as hb,dc as ib,qr as jb,_e as kb,Mf as lb};
|
|
23
|
+
//# sourceMappingURL=chunk-GS3JC5UU.js.map
|