@unbrained/pm-cli 2026.10.7 → 2026.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +15 -0
- package/dist/cli-bundle/bundle-manifest.json +152 -152
- package/dist/cli-bundle/chunks/chunk-34L2BS2Z.js +3 -0
- package/dist/cli-bundle/chunks/chunk-FOLSEOJ2.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-A4QWRU7D.js → chunk-HFCIAXLP.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-JDTBPW4Y.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-TG3IOQUG.js → chunk-K6E2FFUT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VU77O6HC.js → chunk-L7U5FSZ5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-N2PFAWVV.js → chunk-MJVRF67I.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GJ2OJKRM.js → chunk-OG66KEOF.js} +79 -79
- package/dist/cli-bundle/chunks/{chunk-MOXX7D3F.js → chunk-RCFZ6H2Y.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TNU56MZI.js +8 -0
- package/dist/cli-bundle/chunks/chunk-UGFN5NJ2.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-TON7H63A.js → chunk-ZBVAZ7XX.js} +53 -52
- package/dist/cli-bundle/chunks/{chunk-DWH555SN.js → chunk-ZHIMZ65M.js} +16 -16
- package/dist/cli-bundle/chunks/{register-list-query-CBJELTDX.js → register-list-query-PYVSPGPV.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-JRH6EGSE.js → register-mutation-WXP3YLIN.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-WL25C3NP.js +2 -0
- package/dist/cli-bundle/chunks/register-setup-PFKYNEQI.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-2KSPGWLH.js +20 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PBNQZV33.js → chunk-6TKAFFEB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EPOCI7ZX.js → chunk-A3W6HFFO.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2YICTWWA.js → chunk-BDT5EALU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3BKRCR57.js → chunk-DRHJOG5X.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-XIGFEA3W.js → chunk-EOUORVJA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-F2ME5MJY.js +3 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QY4Z23QC.js → chunk-L3CZNKZE.js} +11 -11
- package/dist/cli-bundle/focused-chunks/{chunk-QEYEDXRI.js → chunk-LZQGEVKT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-FWWFCLDM.js → chunk-MW2TQHZ3.js} +60 -59
- package/dist/cli-bundle/focused-chunks/{chunk-HMG5F5EC.js → chunk-OLCJ2PJS.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SIR5RFJX.js → chunk-OSKXYRYZ.js} +27 -27
- package/dist/cli-bundle/focused-chunks/{chunk-NRSA5ZB2.js → chunk-PBPPIGUL.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7X3QD5V4.js → chunk-PEBOVLEG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-4FKCHJGV.js → chunk-V3EPBB6V.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-3NSZ5C4A.js → chunk-XT7JAVHI.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 +2 -2
- 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 +51 -50
- 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 +4 -4
- package/dist/core/extensions/item-fields.d.ts +6 -1
- package/dist/core/extensions/item-fields.js +1 -1
- package/dist/core/fs/fs-utils.d.ts +19 -4
- package/dist/core/fs/fs-utils.js +2 -2
- package/dist/core/lock/lock.d.ts +9 -2
- package/dist/core/lock/lock.js +2 -2
- package/dist/core/store/settings.js +2 -2
- package/dist/core/telemetry/runtime.d.ts +1 -1
- package/dist/core/telemetry/runtime.js +4 -4
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/health.js +2 -2
- package/dist/sdk/history-repair.js +1 -1
- package/dist/sdk/item-transaction.js +1 -1
- package/dist/sdk/merge/abandoned-receipts.js +1 -1
- package/dist/sdk/merge/driver.js +1 -1
- package/dist/sdk/merge/install.js +3 -2
- package/dist/sdk/merge/receipt-operation.d.ts +5 -5
- package/dist/sdk/merge/receipt-operation.js +1 -1
- package/dist/sdk/merge/receipts.d.ts +1 -1
- package/dist/sdk/merge/receipts.js +3 -3
- package/dist/sdk/merge/worktree-config.d.ts +2 -0
- package/dist/sdk/merge/worktree-config.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/docs/BUILD_AND_RELEASE_ACCEPTANCE.md +36 -100
- package/docs/MERGE_SAFETY.md +61 -6
- package/docs/PACKED_FIRST_RUN.md +26 -42
- package/docs/README.md +1 -0
- package/docs/SDK_AUDITED_MUTATIONS.md +18 -0
- package/docs/SDK_STORAGE_LIFECYCLE.md +35 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +4 -3
- package/marketplace.json +2 -2
- package/package.json +1 -1
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/package.json +2 -2
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +1 -1
- package/runtime-dependencies.json +2 -2
- package/dist/cli-bundle/chunks/chunk-754AV3DC.js +0 -8
- package/dist/cli-bundle/chunks/chunk-CEM35QB2.js +0 -2
- package/dist/cli-bundle/chunks/chunk-CMIU2NDK.js +0 -20
- package/dist/cli-bundle/chunks/chunk-GSQK3VUT.js +0 -2
- package/dist/cli-bundle/chunks/chunk-WUOFG4JY.js +0 -3
- package/dist/cli-bundle/chunks/register-operations-FYV7CUBF.js +0 -2
- package/dist/cli-bundle/chunks/register-setup-M5VO6JUH.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3RJ4VK7U.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-H5VREEUE.js +0 -20
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as P}from"./chunk-L7U5FSZ5.js";import{g as j,i as T}from"./chunk-34L2BS2Z.js";import{$a as I,Pa as R,Sa as U,eb as O,gb as L}from"./chunk-ZBVAZ7XX.js";import"./chunk-DEZPZOQ7.js";import{Kf as D,Nf as w,Of as y,R as d,So as b,T as h,Vo as v,bb as E,l as $,m as G,ri as S}from"./chunk-OG66KEOF.js";import C from"node:fs/promises";import W 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]="26ea7f42-d5f7-5ada-afd9-389dadc4d138")}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]="0b0e08e0-f6e7-59c4-ac96-9f47b172727a")}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]="d975120a-964e-5b19-ae10-8ba011ba9bf8")}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]="108609fa-51fc-5bd0-ac54-de2ad14a66c6")}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]="b36466e6-5574-5509-909a-e8599f11664c")}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]="e5e1e242-6864-5a72-adb9-0eda4c65a0c3")}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]="8d53e460-6a3a-5588-b1d2-0078424ff8a6")}catch{}})();var M={extension:"extension",package:void 0};async function _(e,t){if(!e)return;let o=$(e),i=b(t);await S(E(process.cwd(),i.path)).then(a=>a.ux.deprecation_hints)&&y(G(o))}var V={init:"init",install:"install",uninstall:"uninstall",explore:"explore",manage:"manage",describe:"describe",reload:"reload",doctor:"doctor",catalog:"catalog",adopt:"adopt","adopt-all":"adoptAll",activate:"activate",deactivate:"deactivate",migrate:"migrate"};function X(e){let t=e.capability,o=typeof t=="string"?[t]:Array.isArray(t)?t.filter(a=>typeof a=="string"):[],i=[...new Set(o.map(a=>a.trim().toLowerCase()).filter(a=>a.length>0))];if(i.length>1)throw new h(`Multiple scaffold capabilities cannot be combined yet: ${i.join(", ")}. Choose one capability per scaffold.`,d.USAGE);return i[0]}function A(e,t,o="extension"){let i={...e};t!==void 0&&(i[V[t]]=!0);let a=(...c)=>c.some(s=>i[s]===!0),r=(...c)=>{for(let s of c)if(typeof i[s]=="string")return i[s]};return{init:a("init"),scaffold:a("scaffold"),install:a("install"),uninstall:a("uninstall"),explore:a("explore","list"),manage:a("manage"),describe:a("describe"),markdown:a("markdown"),reload:a("reload"),doctor:a("doctor"),catalog:a("catalog"),adopt:a("adopt"),adoptAll:a("adoptAll","adopt_all","adopt-all"),activate:a("activate"),deactivate:a("deactivate"),migrate:a("migrate"),project:a("project"),local:a("local"),global:a("global"),gh:r("gh"),github:r("github"),ref:r("ref"),capability:X(e),declarative:a("declarative"),fields:r("fields"),detail:r("detail"),output:r("output"),trace:a("trace"),watch:a("watch"),runtimeProbe:a("runtimeProbe","runtime_probe","runtime-probe"),offline:a("offline"),fixManagedState:a("fixManagedState","fix_managed_state","fix-managed-state"),isolated:a("isolated"),ignoreGlobal:a("ignoreGlobal","ignore_global","ignore-global"),strictExit:a("strictExit","strict_exit","strict-exit"),failOnWarn:a("failOnWarn","fail_on_warn","fail-on-warn"),dryRun:a("dryRun","dry_run","dry-run"),vocabulary:o}}async function Y(e){let t=(await C.readdir(process.cwd())).filter(i=>!i.startsWith(".")).sort((i,a)=>i.localeCompare(a)),o=[...e].sort((i,a)=>i.localeCompare(a));return t.length===o.length&&t.every((i,a)=>i===o[a])}async function J(e){let t=(e??[]).map(o=>o.trim()).filter(o=>o.length>0);return t.length<=1?t.length===0?void 0:t:await Y(t)?["*"]:t}function H(e,t,o){let i=e.markdown===!0;if(o!==void 0&&o==="")throw new h("--output requires a non-empty file path.",d.USAGE);if(o!==void 0&&!i)throw new h("--output is only supported with --markdown describe output.",d.USAGE);if(i){if(t.json)throw new h("Cannot combine --json with --markdown.",d.USAGE);if(e.describe!==!0)throw new h("--markdown is only supported by the describe action.",d.USAGE)}}async function Q(e){let t=U(e.result.details,e.vocabulary);if(e.outputPath!==void 0){let o=W.resolve(e.outputPath);await C.mkdir(W.dirname(o),{recursive:!0}),await C.writeFile(o,t,"utf8")}if(!e.globalOptions.quiet){for(let o of e.result.warnings)y(`warning: ${o}`);e.outputPath===void 0&&D(t)}}function Z(e,t){let o=!!t.strictExit||!!t.failOnWarn;if(e.action!=="doctor"||!o)return;let i=e.details!==null&&typeof e.details=="object"?e.details:{},a=i.summary!==null&&typeof i.summary=="object"?i.summary:null,r=a&&typeof a.status=="string"?a.status:void 0;(e.warnings.length>0||r!==void 0&&r!=="ok")&&(process.exitCode=d.GENERIC_FAILURE)}async function g(e,t,o,i,a="extension"){let r=b(o),c=Date.now(),s=a==="extension"?"package":a;await _(M[a],o);let n=A(t,i,s),l=(typeof n.output=="string"?n.output:void 0)?.trim();H(n,r,l);let f=await I(e,n,r);n.markdown===!0?await Q({result:f,vocabulary:s,outputPath:l,globalOptions:r}):w(f,r),Z(f,n),f.ok===!1&&(process.exitCode=d.GENERIC_FAILURE),r.profile&&y(`profile:command=extension took_ms=${Date.now()-c}`)}function ee(e){return e.details!==null&&typeof e.details=="object"?e.details:{}}function te(e){return e instanceof h?{message:e.message,exit_code:e.exitCode,...e.context}:{message:e instanceof Error?e.message:String(e),exit_code:d.GENERIC_FAILURE}}async function oe(e,t,o){let i=[],a=[],r=d.GENERIC_FAILURE;for(let c of e)try{let s=await I(c,t,o),n=ee(s),l=Array.isArray(s.warnings)?s.warnings:[];a.push(...l);let f=s.ok===!0;i.push({target:c,ok:f,extension:n.extension,source:n.source,install_plan:n.install_plan,dry_run:n.dry_run,destination_path:n.destination_path,activated:n.activated,settings_changed:n.settings_changed,command_paths:n.command_paths,action_paths:n.action_paths,runtime_activation_status:n.runtime_activation_status,activation_diagnostics:n.activation_diagnostics,command_discovery:n.command_discovery,verification:n.verification,warnings:l,...f?{}:{error:{message:"Extension install returned ok=false without throwing an error.",exit_code:d.GENERIC_FAILURE,code:"extension_install_soft_failed"}}})}catch(s){let n=te(s),l=n.exit_code;typeof l=="number"&&r===d.GENERIC_FAILURE&&l!==d.GENERIC_FAILURE&&(r=l),i.push({target:c,ok:!1,error:n})}return{rows:i,warnings:a,failureExitCode:r}}async function z(e,t,o,i){let a=i==="extension"?"package":i;await _(M[i],o);let r=await J(e);if(r===void 0||r.length<=1){await g(r?.[0],t,o,"install",a);return}let c=b(o),s=Date.now(),n=A(t,"install",a);if(H(n,c,void 0),[n.gh,n.github].some(k=>typeof k=="string"&&k.trim().length>0))throw new h("Multiple install targets cannot be combined with --gh/--github. Install one GitHub source per command, or pass multiple explicit local, bundled, or npm: targets.",d.USAGE,{code:"multi_target_github_install_ambiguous",required:"Use exactly one positional target with --gh/--github, or omit --gh/--github when installing multiple targets.",examples:["pm install --gh owner/repo","pm install npm:pm-guide-shell pm-todos"]});let{rows:l,warnings:f,failureExitCode:m}=await oe(r,n,c),u=l.filter(k=>k.ok!==!0).length,K={ok:u===0,action:"install",scope:n.global===!0?"global":"project",installed_count:n.dryRun===!0?0:l.length-u,...n.dryRun===!0?{dry_run:!0,planned_count:l.length-u}:{},failed_count:u,targets:l,warnings:[...new Set(f)].sort((k,B)=>k.localeCompare(B))};w(K,c),u>0&&(process.exitCode=m),c.profile&&y(`profile:command=extension took_ms=${Date.now()-s}`)}function ae(e){return e.option("--project","Use project extension scope (default)").option("--local","Alias for --project").option("--global","Use global extension scope")}function x(e){return e.option("--project","Use project package scope (default)").option("--local","Alias for --project").option("--global","Use global package scope")}function p(e,t){return t==="package"?x(e):ae(e)}function N(e){return e.option("--dry-run","Plan CLI/package upgrades without running npm or reinstalling packages").option("--cli-only","Upgrade only the pm CLI/SDK npm package").option("--packages-only","Upgrade only managed pm packages").option("--repair","Force npm global reinstall when upgrading the pm CLI/SDK").option("--tag <value>","npm dist-tag/version for CLI and registry package upgrades").option("--package-name <value>","Override the CLI package name for self-upgrade testing")}async function q(e,t,o){let i=b(t),a=Date.now();o&&await _("upgrade",t);let r=await T(e,t.optsWithGlobals(),i);w(r,i),r.ok||(process.exitCode=d.GENERIC_FAILURE),i.profile&&y(`profile:command=package-upgrade took_ms=${Date.now()-a}`)}function F(e,t){let o=t==="package"?"package":"extension",i=t==="package"?"packages":"extensions",a=t,r=e.command(a,{hidden:t==="extension"}).argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} source, name, or scaffold path`).option("--init",`Generate a starter ${o} scaffold at target path`).option("--scaffold","Alias for --init").option("--capability <kind>","Starter capability for --init (default: commands)",v).option("--install",`Install a ${o} source`).option("--dry-run","Preview install without writes or activation").option("--uninstall",`Uninstall an installed ${o}`).option("--explore",`List discovered ${i} in selected scope`).option("--list","Alias for --explore").option("--manage",`List managed ${i} and updates`).option("--offline","Skip remote freshness checks during manage").option("--describe",`Show surfaces registered by a loaded ${o}`).option("--markdown","Render describe as Markdown").option("--output <path>","Write Markdown to a file").option("--reload",`Reload ${i} without import cache`).option("--watch","Use watch mode with --reload").option("--doctor",`Run ${o} diagnostics`).option("--catalog",`List bundled first-party ${o} catalog metadata`).option("--adopt",`Adopt unmanaged ${o}`).option("--adopt-all",`Adopt all unmanaged ${i}`).option("--activate",`Activate a ${o} in selected scope settings`).option("--deactivate",`Deactivate a ${o} in selected scope settings`).option("--project",`Use project ${o} scope (default)`).option("--local","Alias for --project").option("--global",`Use global ${o} scope`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").option("--detail <mode>",`${o[0].toUpperCase()}${o.slice(1)} diagnostics detail mode (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${i} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${i} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(t==="package"?"Manage package lifecycle in project or global scope.":"Manage extension lifecycle in project or global scope.").action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,void 0,t)});t==="package"&&(r.alias("packages"),r.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"));let c=r.command("init").alias("scaffold").argument("<target>","Scaffold target directory path").option("--capability <kind>",`Capability the starter targets (${R.join("|")}; default commands)`,v).description(t==="package"?"Generate a starter package scaffold with package metadata, manifest, and entrypoint.":"Generate a starter extension scaffold with manifest and entrypoint.");t==="package"&&c.option("--declarative","Scaffold the composeExtension blueprint starter (any capability)"),p(c,t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"init",t)}),p(r.command("install").option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]",`${o[0].toUpperCase()}${o.slice(1)} source (local path, bundled alias, npm: source, wildcard, or GitHub source)`).option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description(`Install ${o} from local path, bundled alias, npm: source, wildcard, or GitHub source.`),t).action(async(s,n,l)=>{await z(s,l.optsWithGlobals(),l,t)}),p(r.command("uninstall").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Uninstall an installed ${o}.`),t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"uninstall",t)}),p(r.command("explore").description(`List discovered ${i} in selected scope.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"explore",t)}),p(r.command("inventory").argument("[name]",`${o[0].toUpperCase()}${o.slice(1)} name or directory to inspect`).description(`Read configured ${o} install and enablement state without activating extension code.`),t).action(async(s,n,l)=>{let f=b(l),m=l.optsWithGlobals();if(m.global===!0&&(m.project===!0||m.local===!0))throw new h("--global and --project/--local are mutually exclusive.",d.USAGE);let u=await P({pmRoot:E(process.cwd(),f.path),scope:m.global===!0?"global":"project",name:s});w(u,f),u.complete||(process.exitCode=d.GENERIC_FAILURE)}),p(r.command("manage").option("--offline","Skip remote freshness checks and report unknown update availability").option("--runtime-probe","Opt-in runtime activation probe for manage output parity").option("--fix-managed-state",`Adopt unmanaged ${i} before diagnostics/update checks`).description(`List managed ${i} with update-check metadata.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"manage",t)}),p(r.command("describe").argument("[target]",`${o[0].toUpperCase()}${o.slice(1)} name to describe (omit for every loaded ${o})`).option("--markdown","Render the surface map as a Markdown reference document instead of toon/json").option("--output <path>","Write Markdown output to a file (requires --markdown)").description(`Map every surface a loaded ${o} registers (commands, hooks, item types, providers, overrides, ...).`),t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"describe",t)}),p(r.command("reload").option("--watch","Use watch mode for repeated reload checks").description(`Reload ${i} with cache-busted module imports.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"reload",t)}),p(r.command("doctor").option("--detail <mode>",`Detail mode for ${o} diagnostics (summary|deep)`).option("--trace","Include actionable registration traces in doctor deep diagnostics").option("--fix-managed-state",`Adopt unmanaged ${i} before diagnostics/update checks`).option("--isolated",`Run doctor against project-scope ${i} only, ignoring global registrations`).option("--ignore-global","Alias for --isolated").option("--strict-exit","Return non-zero exit when doctor warnings are present (ok=false)").option("--fail-on-warn","Alias for --strict-exit (doctor)").description(`Run consolidated ${o} diagnostics (summary/deep modes).`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"doctor",t)}),p(r.command("catalog").alias("list").option("--fields <value>","Render compact comma-separated catalog fields, for example: alias,installed,install_command").description(`List bundled first-party ${o} catalog metadata.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"catalog",t)}),p(r.command("adopt").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).option("--gh <owner/repo[/path]>",`GitHub provenance shorthand for adopted ${o}`).option("--github <owner/repo[/path]>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub shorthand source").description(`Adopt an existing unmanaged ${o} into managed metadata.`),t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"adopt",t)}),p(r.command("adopt-all").description(`Adopt all unmanaged ${i} into managed metadata.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"adopt-all",t)}),p(r.command("migrate").option("--dry-run","Plan active migrations without invoking extension code").description(`Plan or apply active ${o} migrations with durable receipts.`),t).action(async(s,n)=>{await g(void 0,n.optsWithGlobals(),n,"migrate",t)}),p(r.command("activate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Activate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"activate",t)}),p(r.command("deactivate").argument("<target>",`${o[0].toUpperCase()}${o.slice(1)} name`).description(`Deactivate a ${o} in selected scope settings.`),t).action(async(s,n,l)=>{await g(s,l.optsWithGlobals(),l,"deactivate",t)}),t==="package"&&N(x(r.command("upgrade").argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(s,n,l)=>{await q(s,l,!1)})}async function ie(e,t,o){let i=b(o),a=Date.now(),r=await L(e,i,{idPrefix:typeof t.idPrefix=="string"?t.idPrefix:void 0,preset:typeof t.preset=="string"?t.preset:void 0,defaults:t.defaults===!0||t.yes===!0,author:typeof t.author=="string"?t.author:void 0,agentGuidance:typeof t.agentGuidance=="string"?t.agentGuidance:void 0,typePreset:typeof t.typePreset=="string"?t.typePreset:void 0,withPackages:t.withPackages===!0,mergeFence:t.mergeFence!==!1,force:t.force===!0,workspace:typeof t.workspace=="string"?t.workspace:void 0}),c=t.verbose===!0||i.json===!0;w(c?r:O(r,!0),i),i.profile&&y(`profile:command=init took_ms=${Date.now()-a}`)}function ne(e,t,o,i){let a=e!==void 0&&new Set(["get","set","list","export"]).has(e);return{resolvedScope:a?"project":e??"project",resolvedAction:a?e:t??"list",resolvedKey:a?t:o,resolvedValue:a?o:i}}function re(e){return{criterion:Array.isArray(e.criterion)?e.criterion:[],format:typeof e.format=="string"?e.format:void 0,policy:typeof e.policy=="string"?e.policy:void 0,value:typeof e.value=="string"?e.value:void 0,clearCriteria:e.clearCriteria===!0,defaultDepth:typeof e.defaultDepth=="string"?e.defaultDepth:void 0,activityLimit:typeof e.activityLimit=="string"?e.activityLimit:void 0,staleThresholdDays:typeof e.staleThresholdDays=="string"?e.staleThresholdDays:void 0,sectionHierarchy:typeof e.sectionHierarchy=="string"?e.sectionHierarchy:void 0,sectionActivity:typeof e.sectionActivity=="string"?e.sectionActivity:void 0,sectionProgress:typeof e.sectionProgress=="string"?e.sectionProgress:void 0,sectionBlockers:typeof e.sectionBlockers=="string"?e.sectionBlockers:void 0,sectionFiles:typeof e.sectionFiles=="string"?e.sectionFiles:void 0,sectionWorkload:typeof e.sectionWorkload=="string"?e.sectionWorkload:void 0,sectionStaleness:typeof e.sectionStaleness=="string"?e.sectionStaleness:void 0,sectionTests:typeof e.sectionTests=="string"?e.sectionTests:void 0}}async function se(e,t,o,i,a,r){let c=b(r),s=Date.now(),{resolvedScope:n,resolvedAction:l,resolvedKey:f,resolvedValue:m}=ne(e,t,o,i),u=await j(n,l,f,re(a),c,typeof m=="string"?m:void 0);w(u,c),c.profile&&y(`profile:command=config took_ms=${Date.now()-s}`)}var Re={normalizeExtensionOptions:A};function Ue(e){e.command("init").argument("[prefix-or-path]","Optional id prefix, or path-like tracker target such as ./pm-sandbox").option("--prefix, --id-prefix <value>","Set the item ID prefix (alias for the positional prefix)").option("--preset <value>","Governance preset for new setups: minimal|default|strict").option("--defaults","Use non-interactive setup defaults without opening the wizard").option("-y, --yes","Alias for --defaults (non-interactive setup)").option("--author <value>","Set the default mutation author for this project").option("--agent-guidance <mode>","Agent guidance mode: ask|add|skip|status").option("--type-preset <name>","Register domain item types during init: agile|ops|research").option("--with-packages","Install all bundled first-party packages during initialization").option("--no-merge-fence","Skip automatic merge-driver installation for a fresh Git-backed tracker").option("--workspace <dir>","Initialize repository-local tracker storage at <dir>/.agents/pm").option("--force","Allow initializing tracker files directly in a directory that looks like a workspace root").option("--verbose","Include the full resolved settings tree in the output (default output is a concise summary)").description("Initialize pm storage and defaults for the current workspace or a path-like tracker target.").action(async(t,o,i)=>{await ie(t,o,i)}),e.command("config").argument("[scope]","Config scope: project|global, or action shorthand list|export|get|set for project scope").argument("[action]","Config action: get|set|list|export").argument("[key]","Config key for get|set; use `pm config project list` for the complete typed inventory, including mutation-guard-* policies").argument("[value]",'Optional value for set: routed to the right typed flag by key (e.g. config set telemetry-tracking off, config set item-format toon, config set definition-of-done "Tests pass"). Equivalent to --policy/--format/--criterion. context keys still require --default-depth/--section-* flags.').option("--criterion <text>","Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)",v).option("--clear-criteria","Clear criteria-list keys for config set operations").option("--format <value>","Item format for item-format key: toon").option("--policy <value>","Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; governance-duplicate-detection-mode=off|advisory|strict; test-result-tracking=enabled|disabled; untrusted-linked-test-execution=enabled|disabled; telemetry-tracking=enabled|disabled").option("--value <value>","Typed nested setting value. Mutation guards: require-attributed-author=true|false, secret-guard=off|advise|block, stale-in-progress-hours=integer>=1. Kebab-case is preferred; underscore aliases remain accepted.").option("--default-depth <value>","Context default depth: brief|standard|deep").option("--activity-limit <n>","Context default activity limit").option("--stale-threshold-days <n>","Context staleness cutoff in days").option("--section-hierarchy <value>","Enable/disable context hierarchy section (true|false)").option("--section-activity <value>","Enable/disable context activity section (true|false)").option("--section-progress <value>","Enable/disable context progress section (true|false)").option("--section-blockers <value>","Enable/disable context blockers section (true|false)").option("--section-files <value>","Enable/disable context files section (true|false)").option("--section-workload <value>","Enable/disable context workload section (true|false)").option("--section-staleness <value>","Enable/disable context staleness section (true|false)").option("--section-tests <value>","Enable/disable context tests section (true|false)").description("Read or update pm settings for the current workspace or global profile.").action(async(t,o,i,a,r,c)=>{await se(t,o,i,a,r,c)}),F(e,"extension"),F(e,"package"),x(e.command("install",{hidden:!0}).option("--dry-run","Resolve sources and estimate copying without destination writes or activation").argument("[targets...]","Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)").option("--gh <github-source>","Install from GitHub shorthand source (owner/repo[/path])").option("--github <github-source>","Alias for --gh").option("--ref <ref>","Git ref/branch/tag for GitHub install sources").description("Install a pm package into the project package scope by default.")).action(async(t,o,i)=>{await _("install",i),await z(t,i.optsWithGlobals(),i,"package")}),N(x(e.command("upgrade",{hidden:!0}).argument("[target]","Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages").description("Upgrade the pm CLI/SDK and refresh managed installable pm packages."))).action(async(t,o,i)=>{await q(t,i,!0)})}export{Re as _testOnlyRegisterSetup,Ue as registerSetupCommands};
|
|
2
|
+
//# sourceMappingURL=register-setup-PFKYNEQI.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{a as _t,b as yt,d as gt}from"./chunk-V3EPBB6V.js";import{t as Ir}from"./chunk-BDT5EALU.js";import{Ab as ne,Bb as he,Ca as zr,Cb as Ct,Da as Tt,Eb as Rt,Fb as oe,Gb as Yr,H as Nr,J as Fr,K as Pr,Qa as Vr,Ra as vt,Sa as jr,Sb as Wr,T as _e,V as q,Wa as Ne,Xa as v,Y as ht,Ya as Fe,Yb as Xr,Z as bt,Zb as Jr,aa as ye,ac as Qr,bb as Pe,cb as re,eb as Kr,fb as qr,hb as Hr,ib as Br,oa as wt,pa as $r,qa as Et,qb as It,sb as At,ub as Gr,va as Ur,wb as ge,za as St}from"./chunk-OSKXYRYZ.js";import{f as Ar,n as ee,p as ft}from"./chunk-F2ME5MJY.js";import{$ as m,$a as R,$c as Lr,Aa as xe,Dc as Rr,Ea as b,Fa as T,Ga as ue,Ha as Z,Ia as E,Ka as Tr,Mc as P,Pc as Me,Sb as Cr,Sc as kr,V as dt,Va as A,Wa as me,Yd as M,aa as f,ae as te,bb as fe,be as Or,cb as lt,ce as De,db as ut,eb as vr,ed as xr,fb as pe,fd as Mr,fe as Oe,gd as pt,i as ct,kd as Dr,sa as U,ua as Q,ub as mt,va as S,ya as I}from"./chunk-L3CZNKZE.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]="b84fee06-5bbd-57f9-9643-f283d6c87afa")}catch{}})();function Zr(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new f(`${t} must be a non-negative number`,m.USAGE);return Math.floor(r)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b58b44d-819c-5115-b011-f9dfa8e2ab41")}catch{}})();var Ti=3e4,be=class extends Error{status;constructor(t,r){super(t),this.name="SearchHttpError",this.status=r}};function H(e,t,r=Ti){let n=e??r;if(!Number.isFinite(n)||n<=0)throw new Error(`${t} timeout must be a positive finite number`);return Math.floor(n)}function B(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 vi(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${E(t)})`}}async function $e(e){let t=new AbortController,r=setTimeout(()=>{t.abort()},e.timeoutMs);try{let n;try{n=await e.fetcher(e.endpoint,{method:e.method,headers:e.headers,body:JSON.stringify(e.body),signal:t.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`${e.requestLabel} timed out after ${e.timeoutMs}ms`):new Error(`${e.requestLabel} execution failed: ${E(o)}`)}if(!n.ok){let o=await vi(n),i=o.length>0?`: ${o}`:"";throw new be(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`,n.status)}try{return await n.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${E(o)}`)}}finally{clearTimeout(r)}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8e3bb919-c8f9-50b5-8e41-b6719d17bd21")}catch{}})();function Il(e,t){let r=b(e);if(!r)return"unconfigured";let n=b(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function Ii(e){let t=ue(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function tn(e){let t=e.search?.embedding_model;return b(t)||null}function Ai(e){let t=b(e.providers?.openai?.base_url),r=b(e.providers?.openai?.model);if(!t||!r)return null;let n=tn(e),o=b(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function Ci(e){let t=b(e.providers?.ollama?.base_url),r=b(e.providers?.ollama?.model);if(!t||!r)return null;let n=tn(e);return{name:"ollama",base_url:t,model:n??r}}function rn(e){let t=(Array.isArray(e)?e:[e]).map(r=>r.trim()).filter(r=>r.length>0);if(t.length===0)throw new Error("Embedding input must include at least one non-empty string");return t}function Ri(e){let t=[],r=[],n=new Map;for(let o of e){let i=n.get(o);if(i===void 0){let s=t.length;t.push(o),n.set(o,s),r.push(s);continue}r.push(i)}return{uniqueInputs:t,originalToUniqueIndex:r}}function ki(e){let t=e.map((r,n)=>({embedding:r.embedding,index:r.index,position:n}));if(t.some(r=>r.index!==void 0)){for(let r of t)if(!Number.isInteger(r.index))throw new TypeError(`OpenAI embedding response entry at position ${r.position} is missing a valid integer index`);return[...t].sort((r,n)=>{let o=r.index-n.index;return o!==0?o:r.position-n.position})}return t}function kt(e){let t=Ai(e),r=Ci(e),n=[t,r].filter(s=>s!==null),o=b(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(s=>s.name===i):void 0)??n[0]??null,available:n}}function en(e){let t=ue(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:Ii(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Li(e,t){let r=rn(t);return e.name==="openai"?{target:en(e),method:"POST",headers:{"content-type":"application/json",...e.api_key?{authorization:`Bearer ${e.api_key}`}:{}},body:{model:e.model,input:r.length===1?r[0]:r}}:{target:en(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function xi(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 ki(o).map((i,s)=>{let a=i.embedding;if(!Z(a))throw new Error(`OpenAI embedding response entry at index ${s} is missing a numeric embedding vector`);return[...a]})}let r=t.embedding;if(Z(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!Z(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,r={}){let n=H(r.timeout_ms,"Embedding request"),o=B(r.fetcher,"Embedding request"),i=rn(t),s=Ri(i),a=Li(e,s.uniqueInputs),c=await $e({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=xi(e,c);if(d.length!==s.uniqueInputs.length)throw new Error(`Embedding response cardinality mismatch: expected ${s.uniqueInputs.length} vector(s), received ${d.length}`);return s.originalToUniqueIndex.map(l=>[...d[l]])}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5c86afdf-6d8d-5851-82c1-ae5bcc9f0196")}catch{}})();var Ue=["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 Lt(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...Ue];let r=new Set(Ue),n=Array.from(new Set(t.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>o.length>0&&r.has(o))));return n.length>0?n:[...Ue]}var Mi=8e3,Di=3200,G="...[semantic corpus truncated]",Oi="search_embedding_corpus_max_characters_invalid:using_provider_default";function O(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Ni(e){return(e.reminders??[]).map(t=>O([t.at,t.text]))}function Fi(e){return(e.events??[]).map(t=>O([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 Pi(e,t){e.push(t.title,t.body,t.status,t.owner,t.evidence,t.blocked_reason,t.superseded_by);for(let r of t.linked_items??[])e.push(`${r.kind} ${r.id}`,r.note);for(let r of t.files??[])e.push(r.path,r.note);for(let r of t.tests??[])e.push(r.command,r.path,r.note);for(let r of t.docs??[])e.push(r.path,r.note)}function $i(e,t){for(let r of t.plan_decisions??[])e.push(r.decision,r.rationale,r.evidence);for(let r of t.plan_discoveries??[])e.push(r.text);for(let r of t.plan_validation??[])e.push(r.text,r.command,r.expected)}function Rl(e){let t=[];t.push(e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context);for(let r of e.plan_steps??[])Pi(t,r);return $i(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function Ui(e){let t=(e.plan_steps??[]).map(i=>O([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=>O([s.kind,s.id,s.note])).join(" "),(i.files??[]).map(s=>O([s.path,s.note])).join(" "),(i.tests??[]).map(s=>O([s.command,s.path,s.note])).join(" "),(i.docs??[]).map(s=>O([s.path,s.note])).join(" ")])),r=(e.plan_decisions??[]).map(i=>O([i.decision,i.rationale,i.evidence,i.step_id])),n=(e.plan_discoveries??[]).map(i=>O([i.text,i.step_id])),o=(e.plan_validation??[]).map(i=>O([i.text,i.command,i.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...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:r,discoveries:n,validation:o}}function D(e){return typeof e=="string"&&e.trim().length>0}var zi={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=>D(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>D(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>D(e.metadata.goal)?e.metadata.goal:void 0,value:e=>D(e.metadata.value)?e.metadata.value:void 0,why_now:e=>D(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>D(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=>D(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>D(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>D(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>D(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=>Ni(e.metadata),events:e=>Fi(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>Ui(e.metadata)};function on(e,t={}){let r=t.fields??Ue,n={};for(let o of r){let i=zi[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function Vi(e){return e?.trim().toLowerCase()==="ollama"?Di:Mi}function ie(e,t){let r=Vi(e),n=Tr(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:Oi}}function xt(e,t={}){let r=JSON.stringify(on(e,{fields:t.fields})),n=ie(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=G.length)return G.slice(0,n);let o=Math.max(0,n-G.length);return`${r.slice(0,o)}${G}`}(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 ji(e,t,r){let n=e.search.embedding_batch_size,o=e.search.embedding_timeout_ms,i=e.search.scanner_max_batch_retries,s=Number.isFinite(n)&&n>0?Math.max(1,Math.floor(n)):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:r,maxInputCharacters:t}}function Ki(e,t,r,n){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>n)throw new RangeError(`Embedding input exceeds request byte ceiling ${n}; lower search.embedding_corpus_max_characters or raise maxRequestBytes`);let l=i.length>0?1:0;(i.length>=r||a+l+d>n)&&(o.push(i),i=[],a=s),a+=d+(i.length>0?1:0),i.push(c)}return o.push(i),o}function qi(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-G.length);return`${e.slice(0,r)}${G}`.slice(0,t)}function sn(e){let t=E(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Hi(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${E(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return sn(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 Bi(e){return e instanceof be?e.status===413?"payload_too_large":null:sn(e)?"timeout":null}async function Mt(e,t,r,n,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:n});return c>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}: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 l=Bi(d);if(l!==null&&t.length>1){s.split_batches+=1;let u=Math.ceil(t.length/2),p=t.slice(0,u),_=t.slice(u);return i.push(`search_embedding_batch_split_after_${l}:batch=${r}:size=${t.length}:parts=${p.length}|${_.length}`),[...await Mt(e,p,`${r}.1`,n,o,i,s),...await Mt(e,_,`${r}.2`,n,o,i,s)]}if(c<o){s.retries+=1;let u=Math.min(1e3*2**c,8e3);await new Promise(p=>setTimeout(p,u))}}throw new Error(Hi(e,r,t.length,n,o+1,a))}async function Dt(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=performance.now(),i=n.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:n.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=ie(e.name,t.search.embedding_corpus_max_characters);c.warning&&a.push(c.warning);let d=ji(t,c.maxCharacters,i),l=0,u=r.map(y=>{if(y.trim().length===0)throw new TypeError("Embedding inputs must be non-empty strings");let h=qi(y,d.maxInputCharacters);return h.length<y.length&&(l+=1),h});l>0&&a.push(`search_embedding_input_truncated:count=${l}:max_characters=${d.maxInputCharacters}`);let p=Ki(e,u,d.batchSize,d.maxRequestBytes);s.planned_batches=p.length;let _=[],g=0;for(let y=0;y<p.length;y+=1){let h=p[y];n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"start"}),_.push(...await Mt(e,h,String(y+1),d.timeoutMs,d.maxRetries,a,s)),g+=h.length,n.onProgress?.({batch_index:y+1,batch_total:p.length,batch_size:h.length,completed_inputs:g,total_inputs:u.length,phase:"complete"})}return s.elapsed_ms=Math.max(1,performance.now()-o),s.inputs_per_second=r.length*1e3/s.elapsed_ms,{vectors:_,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]="4835aae2-a525-5683-abc0-0ba3c5781c95")}catch{}})();var an=[{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:/(?:^|[\s"'`(=])\/home\/[A-Za-z0-9._-]+\/[^\s"'`),;]+/g,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 cn(e,t){if(e.minimumEntropy===void 0)return!0;let r=t[1],n=new Map;for(let i of r)n.set(i,(n.get(i)??0)+1);let o=0;for(let i of n.values()){let s=i/r.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]="b75bf20f-d341-5fa2-943d-db02211ca80d")}catch{}})();var Gi=[{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"}],Nt=new Map(Gi.map(e=>[e.action,e]));function Ot(e,t="$",r=new WeakSet){return typeof e=="string"?[{path:t,value:e}]:typeof e!="object"||e===null?[]:r.has(e)?[]:(r.add(e),Array.isArray(e)?e.flatMap((n,o)=>Ot(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>Ot(o,`${t}.${n}`,r)))}function dn(e){let t=[];for(let r of Ot(e))for(let n of an){n.regex.lastIndex=0;for(let o of r.value.matchAll(n.regex))if(cn(n,o)){t.push({rule:n.mutationRule,path:r.path});break}}return t.filter((r,n,o)=>o.findIndex(i=>i.rule===r.rule&&i.path===r.path)===n)}function Yi(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new f("Mutation author is required by workspace policy.",m.USAGE,{code:"mutation_author_required",required:"Pass --author <id>, set PM_AUTHOR, or configure author_default.",nextSteps:["Retry with --author <stable-agent-id>.","Set PM_AUTHOR for this agent session."]});if(e.settings.secret_guard==="off")return{author:t,findings:[],warnings:[],override_applied:!1};let r;try{r=dn(e.payload)}catch{return{author:t,findings:[],warnings:["secret_guard_scan_failed_open"],override_applied:!1}}if(r.length===0)return{author:t,findings:r,warnings:[],override_applied:!1};let n=[...new Set(r.map(o=>o.rule))].sort().join(",");if(e.settings.secret_guard==="block"&&e.force!==!0)throw new f(`Mutation blocked by secret guard (${n}). No detected value was logged.`,m.CONFLICT,{code:"mutation_secret_guard_blocked",required:"Remove the credential-shaped content or retry with --force after explicit review.",nextSteps:["Replace the value with a secret-manager reference.","Use pm history-redact if equivalent content already entered history."],recovery:{recovery_mode:"compact",attempted_command:"pm <mutation> [REDACTED]",normalized_args:["[REDACTED]"],suggested_retry:"Remove credential-shaped content, then retry the mutation."}});return{author:t,findings:r,warnings:[`secret_guard_detected:${r.length}:rules=${n}`,...e.settings.secret_guard==="block"&&e.force===!0?["secret_guard_force_override"]:[]],override_applied:e.settings.secret_guard==="block"&&e.force===!0}}function Wi(e){return Nt.has(e.trim().toLowerCase())}function Xi(){return[...Nt.keys()].sort((e,t)=>e.localeCompare(t))}function Ul(e){return Nt.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]="6c555c2c-9db2-5c9f-9d69-3456fe8bffaa")}catch{}})();function Ji(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Vl(e){return Ji(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}function we(e,t){if(e.length===0&&t.length===0)return 1;if(e.length===0||t.length===0)return 0;let r=new Set(e),n=new Set(t),o=0;for(let s of r)n.has(s)&&(o+=1);let i=new Set([...r,...n]).size;return o/i}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="5767332d-8094-55cd-96e9-47c5d20cd7df")}catch{}})();var Qi=/\b([a-z][a-z0-9]*)-(\d+)(?:-[a-z0-9]+)*\b/giu,Zi=/^(?:utf|iso|sha|tls|http|covid|match)$/iu;function ze(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Se(e){return[...new Set(ze(e).match(/[\p{L}\p{N}]+/gu)??[])]}function Ee(e){let t=ze(e);return{normalized:t,tokens:Se(t),issueCodes:[...new Set([...e.matchAll(Qi)].filter(r=>{let n=r[1],o=r.index,i=e.slice(o+r[0].length);return!Zi.test(n)&&(n===n.toUpperCase()||n.length<=2||o===0&&/^\s*(?::|—|–|\])/u.test(i))}).map(r=>r[0].toLowerCase()))]}}function Ve(e,t){return je(Ee(e),Ee(t))}function je(e,t){if(e.normalized===t.normalized)return{score:1,reason:"exact_title"};let r=new Set(e.issueCodes);return t.issueCodes.some(n=>r.has(n))?{score:.99,reason:"issue_code"}:{score:we(e.tokens,t.tokens),reason:"title_token_jaccard"}}import es 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 Ke(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function ts(e,t){return[e.updated_at,t].map(r=>({value:r,time:Date.parse(r??"")})).filter(r=>typeof r.value=="string"&&Number.isFinite(r.time)).sort((r,n)=>n.time-r.time)[0]?.value??e.updated_at}function ln(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=Ke(t.in_progress_status),i=[];for(let s of e){if(Ke(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=ts(s,t.last_history_activity?.(s)),c=Date.parse(a);if(!Number.isFinite(c))continue;let d=Math.max(0,Math.floor((n-c)/36e5));d>=r&&i.push({id:s.id,last_activity_at:a,age_hours:d})}return i.sort((s,a)=>a.age_hours-s.age_hours||s.id.localeCompare(a.id)),{threshold_hours:r,count:i.length,items:i,remediation:"Claim active work with `pm claim <id>` or return abandoned work to open with `pm update <id> --status open`."}}async function rs(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>Ke(String(o.status))===Ke(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await ye(es.join(e,"history",`${o.id}.jsonl`),o.id)}catch{return}let s=i.map(a=>a.ts).filter(a=>Number.isFinite(Date.parse(a))).sort((a,c)=>Date.parse(c)-Date.parse(a))[0];s&&n.set(o.id,s)})),ln(t,{...r,last_history_activity:o=>n.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 ns=new Set(["rename-type","rename-field","remap-status",...Cr]);function os(e,t){if(t&&!ns.has(e))throw new f(`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.`,m.USAGE,{code:"invalid_argument_value",examples:["pm schema rename-type Spike --to Experiment --dry-run"]})}import{readFile as is}from"node:fs/promises";import un 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]="da661b46-841c-526d-88bc-976e007e8fbe")}catch{}})();function ss(e){let t=e.trim();if(!t)throw new f("--rollback requires a non-empty checkpoint ID",m.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new f("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",m.USAGE);return t}function as(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function cs(e,t){return un.join(e,"checkpoints",t)}function mn(e,t,r){return un.join(cs(e,t),`${r}.json`)}async function ds(e,t,r,n){let o=mn(e,t,r),i=`${JSON.stringify(n,null,2)}
|
|
2
|
+
`;if(!await Ar(o,i)&&await S(o)!==i)throw new f(`Checkpoint ${r} already exists with different contents; use a new checkpoint ID.`,m.CONFLICT);return o}function ls(e,t){if(!Array.isArray(e.items))throw new f(`Checkpoint ${t} is missing items`,m.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new f(`Checkpoint ${t} contains an invalid item entry`,m.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new f(`Checkpoint ${t} contains an item entry without ID`,m.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new f(`Checkpoint ${t} contains an item entry without target_updated_at`,m.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function us(e,t,r,n){let o=ss(r),i=mn(e,t,o);if(!await U(i))throw new f(`Checkpoint ${o} not found`,m.NOT_FOUND);let s=await is(i,"utf8"),a;try{a=JSON.parse(s)}catch(l){throw new f(`Checkpoint ${o} contains invalid JSON: ${E(l)}`,m.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new f(`Checkpoint ${o} is invalid`,m.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new f(`Checkpoint ${o} has unsupported schema version`,m.GENERIC_FAILURE);let d=ls(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 ms(e,t){let r=[],n=[];for(let o of e)try{let i=await t(o.id,o.target_updated_at);r.push({id:o.id,status:"restored",changed_fields:i.changed_fields,warnings:i.warnings}),n.push(o.id)}catch(i){r.push({id:o.id,status:"failed",error:E(i)})}return{rows:r,restored_ids:n,failed_count:r.filter(o=>o.status==="failed").length}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cb883ffc-c431-5bf9-a973-931a8a0a940c")}catch{}})();function z(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function cu(e,t){let r=z(t);return!e||!r?null:[...e.assurance_providers??[]].reverse().find(n=>z(n.definition.id)===r)??null}function fs(e,t){let r=z(t);return!e||!r?null:[...e.search_providers].reverse().find(n=>(z(n.runtime_definition?.name)??z(n.definition?.name))===r)??null}function ps(e,t){let r=z(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(n=>(z(n.runtime_definition?.name)??z(n.definition?.name))===r)??null}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4ce8635f-ea61-5443-abfc-092219a82396")}catch{}})();var $="-",pn=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 mu(e,t){if(e.startsWith("```")||e.includes(`
|
|
3
|
+
`))return!0;let r=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|");return new RegExp(`^(?:[-*+]\\s+)?(?:${r})\\s*[:=]`,"i").test(e)}function _n(e){let t=e.trim();if(t==="")return[];let r=(bs(t)??t.split(",")).map(n=>n.trim()).filter(Boolean).map(n=>n.toLowerCase());return Array.from(new Set(r)).sort((n,o)=>n.localeCompare(o))}function yn(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of _n(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function gn(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function _s(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function ys(e,t,r){let n=e.map(s=>s.trim()).filter(Boolean);for(let s of t??[]){let a=s.trim();if(a.includes(";"))throw new f('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',m.USAGE,{code:"acceptance_criteria_semicolon_forbidden",required:"Pass one semicolon-free criterion per --add-ac value",why:"A semicolon inside one criterion would be re-read as multiple criteria",nextSteps:["Split the text into repeated --add-ac values, or replace the semicolon with punctuation that is not the storage delimiter"]});a.length>0&&!n.includes(a)&&n.push(a)}let o=[],i=n;for(let s of r??[]){let a=s.trim();if(a.length!==0){if(!i.includes(a)){o.push(a);continue}i=i.filter(c=>c!==a)}}return{criteria:i,unmatchedRemovals:o}}function gs(e,t){let r=gn(e);if(!t||t.length===0)return Array.from(new Set(r)).sort((o,i)=>o.localeCompare(i));let n=new Set(r);for(let o of yn(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function hs(e,t){let r=Array.from(new Set(gn(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(yn(t));return n.size===0?r:r.filter(o=>!n.has(o))}function bs(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(r=>typeof r=="string"||typeof r=="number"||typeof r=="boolean"?String(r):"").filter(r=>r.length>0)}function Ft(e){return e.replace(/\r\n/g,`
|
|
4
|
+
`)}function hn(e){let t=Ft(e).trim();if(!t.startsWith("```"))return e;let r=t.split(`
|
|
5
|
+
`);return r.length<2||r.at(-1)?.trim()!=="```"?e:r.slice(1,-1).join(`
|
|
6
|
+
`)}function ws(e){let t=[],r="",n=!1;for(let o=0;o<e.length;o+=1){let i=e[o];if(i==="\\"&&e[o+1]===","){r+=",",o+=1;continue}if(i==="\\"&&e[o+1]!==void 0){r+=`${i}${e[o+1]}`,o+=1;continue}if(i==='"'){n=!n,r+=i;continue}if(i===","&&!n){t.push(r),r="";continue}r+=i}return r.trim()&&t.push(r),t}function bn(e){let t=e.trim();if(t.startsWith('"')&&t.endsWith('"')){try{let r=JSON.parse(t);if(typeof r=="string")return r}catch{}return t.slice(1,-1).replace(/\\"/g,'"')}return e}function Es(e){let t=e.indexOf("="),r=e.indexOf(":"),n=t>=0,o=r>=0;return n&&o?Math.min(t,r):n?t:o?r:-1}function Ss(e,t){if((t==="--add"||t==="--add-glob")&&(/[./\\]/.test(e)||/\.[a-z]{1,6}$/i.test(e.trim())))return"For file/doc paths use: path=<file-path>[,scope=project|global]. The scope field is optional and defaults to project (example: path=src/api.ts or path=README.md,scope=project). ";if(t!=="--event")return"";let r=e.toLowerCase(),n=r.includes("recur_")||r.includes("recurrence")?' Recurrence list values must stay in one field and use "|" delimiters (for example recur_by_weekday=mon|wed or recur_by_month_day=1|15).':"",o=r.includes("recur_byweekday")?" Use recur_by_weekday (with underscores) for weekday recurrence filters.":"";return`${n}${o}`}function fn(e,t){let r=e.replaceAll(/\s+/g," ").trim(),n=r.length>160?`${r.slice(0,157)}...`:r,o=Ss(e,t);return`Invalid ${t} value "${n}". Expected key=value entries separated by commas. `+o+`Also accepts markdown-style key/value lines (for example "- path: README.md"). Use ${t} ${$} to read piped stdin input.`}function Ts(e){let t=hn(e).trim();if(t.length===0||!t.includes(`
|
|
7
|
+
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let r={},n,o=Ft(t).split(`
|
|
8
|
+
`).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();r[a]=bn(s[3].trim()),n=a;continue}if(n&&pn.has(n.toLowerCase())){r[n]=`${r[n]}
|
|
9
|
+
${i}`;continue}return null}return r}function vs(e,t){let r=hn(e).trim();if(!r)throw new f(`${t} cannot be empty`,m.USAGE);let n=Ts(r);if(n)return n;let o={},i,s=ws(r);for(let a of s){let c=Es(a);if(c>=0){let d=a.slice(0,c).trim();if(!d)throw new f(fn(e,t),m.USAGE);let l=bn(a.slice(c+1).trim());o[d]=l,i=d;continue}if(i&&pn.has(i.toLowerCase())){o[i]=`${o[i]},${a}`;continue}throw new f(fn(e,t),m.USAGE)}return o}var Is=/^[A-Za-z]:[\\/]/,As=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function Cs(e){let t=e.trim();return Is.test(t)?!1:As.test(t)}function fu(e,t,r,n){if(!(n||!e.includes(",")))throw new f(`${t} received an ambiguous comma-bearing bare ${r}. Repeat ${t} for multiple values, or quote or escape literal commas in a structured key=<value> entry.`,m.USAGE,{code:"bare_comma_entry_ambiguous",required:`Use one ${t} per bare ${r}, or quote or escape literal commas in a structured key=<value> entry.`})}function Rs(e,t,r){let n=new Set(r.map(i=>i.toLowerCase())),o=Object.keys(e).filter(i=>!n.has(i.toLowerCase()));if(o.length>0)throw new f(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${r.join(", ")}.`,m.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new f(`${t} provides key "${i}" more than once after case normalization.`,m.USAGE);e[s]=e[i],delete e[i]}}}async function ks(e){if(process.stdin.isTTY===!0)throw new f(`${e} value "${$}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,m.USAGE);return process.stdin.setEncoding("utf8"),await new Promise((t,r)=>{let n="";process.stdin.on("data",o=>{n+=o}),process.stdin.on("end",()=>{t(Ft(n))}),process.stdin.on("error",o=>{r(o)})})}var Y=Symbol("all-mutation-stdin-fields"),k=new WeakMap;function wn(e){return k.set(e,Y),e}function Ls(e,t){let r=k.get(e);return r===Y||k.set(e,new Set([...r??[],...t])),e}function xs(e,t){let r=k.get(e);return r===void 0||k.set(t,r===Y?r:new Set(r)),t}function pu(e,t){let r=k.get(e),n=k.get(t);return r===void 0||n===Y?t:r===Y?(k.set(t,r),t):(k.set(t,new Set([...n??[],...r])),t)}function Ms(e){return k.get(e)!==Y}function qe(e,t){let r=k.get(e);return r!==Y&&!r?.has(t)}function Ds(e){let t;for(let r of e){if(r.resolveToken===!1||r.value===void 0)continue;let n=(Array.isArray(r.value)?r.value:[r.value]).filter(o=>o.trim()===$).length;if(n>1)throw new f(`${r.optionName} accepts "${$}" stdin token at most once per command invocation`,m.USAGE);if(n!==0){if(t!==void 0&&t!==r.optionName)throw new f(`Only one option may use "${$}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);t=r.optionName}}}async function _u(e,t,r){let n=e,o=[...t,...r];Ds(o.map(([a,c])=>({value:n[a],optionName:c,resolveToken:qe(e,a)})));let i=He(),s={...n};for(let[a,c]of t)s[a]=await i.resolveValue(n[a],c,qe(e,a));for(let[a,c]of r)s[a]=await i.resolveList(n[a],c,qe(e,a));return wn(s)}function He(){let e,t,r=async n=>{if(t&&t!==n)throw new f(`Only one option may use "${$}" stdin token per command invocation. Already used by ${t}.`,m.USAGE);return t=n,e||(e=ks(n)),await e};return{resolveValue:async(n,o,i=!0)=>{if(!i)return n;if(n!==void 0)return n.trim()!==$?n:await r(o)},resolveList:async(n,o,i=!0)=>{if(!i)return n;if(!n)return;let s=n.map((d,l)=>d.trim()===$?l:-1).filter(d=>d>=0);if(s.length===0)return n;if(s.length>1)throw new f(`${o} accepts "${$}" stdin token at most once per command invocation`,m.USAGE);let a=await r(o),c=[...n];return c[s[0]]=a,c}}}function Os(e,t){let r=Number(e);if(!Number.isFinite(r))throw new f(`Invalid ${t} value "${e}"`,m.USAGE);return r}function Ns(e,t){let r=e.trim(),n=Number(r);if(r===""||!Number.isInteger(n)||n<0)throw new f(`Invalid ${t} value "${e}". Expected a non-negative integer.`,m.USAGE);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4441095d-0acd-5780-8758-7df94396cb8e")}catch{}})();function Pt(e){return[...new Set(e.split(/[,\r\n]+/).map(t=>t.trim()).filter(t=>t.length>0))]}function Fs(e){let t=[];for(let n of e)if(typeof n=="string")t.push(n);else if(typeof n=="number"&&Number.isFinite(n))t.push(String(n));else return"";let r=Pt(t.join(`
|
|
10
|
+
`));return r.length>0?r.join(","):""}function Ps(e){if(e===void 0)return;if(typeof e=="number")return Number.isFinite(e)?String(e):"";if(Array.isArray(e))return Fs(e);if(typeof e!="string")return"";let t=Pt(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 En(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function $t(e){if(e==="/body"||e.startsWith("/body/"))return"body";if(e==="/metadata"||e.startsWith("/metadata/")||e==="/front_matter"||e.startsWith("/front_matter/")){let r=e.replace(/^\/(?:metadata|front_matter)\/?/,"").split("/")[0];return r?En(r):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?En(t):"root"}function Be(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function $s(e,t){let r=t?.windowStartIndex??0,n=t?.field;if(e.length===0||r>=e.length)return[];let o=Ur(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=zr(o,a.patch),l;d.ok?(l=d.document,o=l):l=c;let u=new Set;for(let _ of a.patch)u.add($t(_.path)),_.from!==void 0&&u.add($t(_.from));let p=[...u].sort((_,g)=>_.localeCompare(g));if(s>=r)if(n!==void 0){if(!u.has(n))continue;let _={field:n,before:Be(c,n),after:Be(l,n)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[n],changes:[_]})}else{let _=p.map(g=>({field:g,before:Be(c,g),after:Be(l,g)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:p,changes:_})}}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]="2fd342e6-06cc-56d4-aa0e-2af269234b59")}catch{}})();var Us=new Set(["none","null","undefined"]);function Lu(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new f("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",m.USAGE)}function zs(e){if(typeof e!="string")throw new f("--parent must be a string. Use --unset parent to clear this field.",m.USAGE);let t=e.trim();if(t.length===0)throw new f("--parent must not be empty. Use --parent none to unset.",m.USAGE);if(Sn(t))throw new f(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,m.USAGE);return t}function Sn(e){return Us.has(e.trim().toLowerCase())}function Vs(e,t){if(t==="strict_error")throw new f(`Parent item "${e}" was not found. Create it first or use --parent none.`,m.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function js(e,t,r){let n=re(e,r),o=re(t,r);if(n!==o)return;let i=t!==o||e!==n?` (normalized from parent "${t}" and item "${e}")`:"";throw new f(`Parent item "${o}" cannot be the same as item "${n}"${i}. Use --unset parent to clear this field.`,m.USAGE)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0257ab6d-3ef8-5b98-adfd-c7dabd537c43")}catch{}})();var Ut={critical:0,high:1,medium:2,low:3,minimal:4},Ks=Object.keys(Ut),qs=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${Ks.join(", ")}), case-insensitive`;function Ge(e){return new f(`Invalid priority "${e}". Accepted values: ${qs}.`,m.USAGE)}function Hs(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw Ge(String(e))}if(typeof e!="string")throw Ge(String(e));let t=e.trim();if(t.length===0)throw Ge(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(Ut,r))return Ut[r];if(/^[0-4]$/.test(t))return Number(t);throw Ge(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]="b6206b0e-0cd8-5827-acbd-6ac064dbcad7")}catch{}})();var Bs=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Gs=64;function Pu(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new f("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",m.USAGE)}function Ys(e,t,r){let n=t.trim();if(n.length===0)throw new f(`--${e} must not be empty. Use --${e} none to unset.`,m.USAGE);if(n.length<=Gs&&Bs.test(n))return{value:n,warnings:[]};let o="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(r==="strict_error")throw new f(`Invalid --${e} value "${n}". ${o}`,m.USAGE);return{value:n,warnings:[`validation_warning:${e}_format:${n}`]}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="14e6c7b4-3161-5f82-b797-f06a879d1370")}catch{}})();var Tn={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},vn="all";function In(e){if(typeof e!="string")return!1;let t=e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r.length>0);return t.length===1&&t[0]===vn}function Ws(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=Tn[r];return n?t[n]:_e(e,t)}function Xs(e){let t=new Set(Object.keys(Tn));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function Js(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of Xs(t)){let s=ct(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function zt(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.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()===vn).length>0){if(i.length===1)return;throw new f(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,m.USAGE)}let s=[];for(let a of i){let c=Ws(a,t);if(c===void 0){if(n){let d=Js(a,t);throw new f(`Invalid ${o} value "${a}". Use open|closed|canceled or a configured status id${d?`. Did you mean "${d}"?`:"."}`,m.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 Qs={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 Zs(e){if(e!==void 0)return Qs[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 An(e,t){return mt(e,t)}function Vt(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=Fr(e,o);i!==void 0&&(n[o.metadata_key]=Pr(o,i))}return n}function jt(e,t){for(let[r,n]of Object.entries(t)){let o=e[r];if(Array.isArray(n)){if(Array.isArray(o)){let i=o.map(s=>String(s));if(!n.map(s=>String(s)).every(s=>i.includes(s)))return!1;continue}if(!An(o,n[n.length-1]))return!1;continue}if(!An(o,n))return!1}return!0}import{spawnSync as Rn}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 ea="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",ta="PM_OLLAMA_MODEL",ra="http://localhost:11434",na="qwen3-embedding:0.6b",oa=".agents/pm/search/lancedb/",ia=1500,sa=2500,aa=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,ca=/embed|embedding/i,N=b;function da(){let e=N(process.env[ea]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function Cn(e){return e.some(t=>N(t)!==null)}function la(e){let t=N(e);return!!(t&&t.toLowerCase()!=="ollama")}function ua(e){let t=N(e);return!!(t&&t.toLowerCase()!=="lancedb")}function ma(e){return la(e.search?.provider)||ua(e.vector_store?.adapter)||Cn([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:Cn([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function fa(){let e=Rn("ollama",["--version"],{encoding:"utf8",timeout:ia});return e.error?!1:e.status===0}function pa(e){let t=e.split(/\r?\n/).map(n=>n.trim()).filter(n=>n.length>0);if(t.length===0)return null;let r=t.map(n=>n.split(/\s+/)[0]?.trim()).filter(n=>!!(n&&n.length>0)).filter(n=>n.toUpperCase()!=="NAME");return r.length===0?null:r.find(n=>aa.test(n))||(r.find(n=>ca.test(n))??null)}function _a(e){let t=N(e.providers?.ollama?.model);if(t)return t;let r=N(process.env[ta]);if(r)return r;let n=Rn("ollama",["list"],{encoding:"utf8",timeout:sa});if(!n.error&&n.status===0){let o=pa(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function ya(e){return{baseUrl:N(e.providers?.ollama?.base_url)===null,model:N(e.providers?.ollama?.model)===null,lancedbPath:N(e.vector_store?.lancedb?.path)===null,embeddingModel:N(e.search?.embedding_model)===null}}function ga(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function ha(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=ra),t.model&&(o.model=r)}function ba(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=oa}function wa(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function Ye(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(da()||ma(e))return t;let r=ya(e);if(!ga(r)||r.model&&!fa())return t;let n=structuredClone(e),o=_a(n);return o?(ha(n,r,o),ba(n,r),wa(n,r,o),{settings:n,auto_ollama_defaults_applied:!0}):{...t,auto_ollama_defaults_skipped_reason:"no_installed_embedding_model",auto_ollama_defaults_remediation:`Run ollama pull ${na} 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 Sa="reindex";import Pn from"node:path";import{mkdir as Ta,readFile as va,stat as Ht,unlink as Ia}from"node:fs/promises";import{basename as Ln,dirname as Kt,isAbsolute as Aa,join as Ca,resolve as Bt}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 Gt="pm_items",Ra=/[^a-zA-Z0-9_-]/g,ka=128,La=".pm-cli-local-vectors",qt=1,W=new Map;function ve(e){return(b(e.collection_name)??Gt).replaceAll(Ra,"_").slice(0,ka)}function We(e){if(!Z(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function Mn(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function xa(e){let t=e.result;if(!Array.isArray(t))throw new TypeError("Qdrant query response must include a result array");let r=t.map((n,o)=>{let i=n.id,s=typeof i=="number"?String(i):i,a=b(s);if(!a)throw new Error(`Qdrant query response entry at index ${o} is missing a non-empty id`);let c=n.score;if(typeof c!="number"||!Number.isFinite(c))throw new TypeError(`Qdrant query response entry at index ${o} is missing a finite numeric score`);let d=n.payload;if(d!==void 0&&(typeof d!="object"||d===null||Array.isArray(d)))throw new Error(`Qdrant query response entry at index ${o} must provide payload as an object when set`);return{id:a,score:c,...d?{payload:d}:{}}});return r.sort((n,o)=>n.score!==o.score?o.score-n.score:n.id.localeCompare(o.id)),r}function Yt(e){let t=b(e.result?.status);if(t)return{status:t};let r=b(e.status);if(r)return{status:r};throw new Error("Qdrant upsert response must include status metadata")}async function Te(e,t,r,n,o){return await $e({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:r,fetcher:n,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function Ma(e){let t=b(e.vector_store?.qdrant?.url);if(!t)return null;let r=b(e.vector_store?.collection_name),n=b(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...r&&r!==Gt?{collection_name:r}:{},...n?{api_key:n}:{}}}function Da(e){let t=Bt(e),r=Kt(t);return Ln(t)==="pm"&&Ln(r)===".agents"?Kt(r):t}function Oa(e,t){return!t||Aa(e)?e:Bt(Da(t),e)}function Na(e,t){let r=b(e.vector_store?.lancedb?.path);if(!r)return null;let n=b(e.vector_store?.collection_name);return{name:"lancedb",path:Oa(r,t),...n&&n!==Gt?{collection_name:n}:{}}}function Fa(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector upsert records must include at least one entry");return e.map((t,r)=>{let n=b(t.id);if(!n)throw new Error(`Vector upsert record at index ${r} is missing a non-empty id`);let o=We(t.vector),i=t.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`Vector upsert record at index ${r} must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}})}function Pa(e){if(!Array.isArray(e)||e.length===0)throw new Error("Vector delete ids must include at least one entry");let t=e.map((n,o)=>{let i=b(n);if(!i)throw new Error(`Vector delete id at index ${o} is missing a non-empty value`);return i}).sort((n,o)=>n.localeCompare(o)),r=[];for(let n of t)r.at(-1)!==n&&r.push(n);return r}function $a(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function Ua(e){return e.replace(/\/points\?wait=true$/,"")}function Xe(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function Je(e,t){return se(e,t)}function se(e,t){return Ca(Bt(e),La,`${t}.json`)}function za(e,t,r){let n=b(e.id);if(!n)throw new Error(`LanceDB local snapshot '${r}' record at index ${t} is missing a non-empty id`);let o=We(e.vector),i=e.payload;if(i!==void 0&&(typeof i!="object"||i===null||Array.isArray(i)))throw new Error(`LanceDB local snapshot '${r}' record '${n}' must provide payload as an object when set`);return{id:n,vector:o,...i?{payload:i}:{}}}function Va(e,t,r){let n;try{n=JSON.parse(r)}catch(a){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${E(a)}`)}if(typeof n!="object"||n===null||Array.isArray(n))throw new Error(`LanceDB local snapshot at '${e}' must be a JSON object`);if(n.version!==qt)throw new Error(`LanceDB local snapshot at '${e}' must include version=${qt}`);let o=b(n.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=n.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=za(i[a],a,e);s.set(c.id,c)}return s}async function ja(e){try{let t=await Ht(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!Q(t))throw t;return null}}function Ka(e,t){if(!t)return null;if(t.mtimeMs===null&&t.size===null&&t.records.size===0)return t.records;let r=new Map;return W.set(e,{records:r,mtimeMs:null,size:null}),r}function qa(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function Wt(e,t){let r=Je(e,t),n=se(e,t),o=await ja(n),i=W.get(r);if(!o){let a=Ka(r,i);if(a)return a}if(qa(i,o))return i.records;let s=new Map;try{let a=await va(n,"utf8");s=Va(n,t,a)}catch(a){if(!Q(a))throw a}return W.set(r,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function Ha(e){let t=[...e.values()];return t.sort((r,n)=>r.id.localeCompare(n.id)),t.map(r=>({id:r.id,vector:[...r.vector],...r.payload?{payload:r.payload}:{}}))}async function Dn(e){try{await Ia(e)}catch(t){if(!Q(t))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${E(t)}`)}}async function On(e,t,r){let n=se(e,t);if(r.size===0){await Dn(n);return}let o=Kt(n);try{await Ta(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${E(s)}`)}let i=`${JSON.stringify({version:qt,table:t,records:Ha(r)})}
|
|
11
|
+
`;try{await I(n,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${n}': ${E(s)}`)}}async function Ba(e,t){let r=Je(e,t),n=se(e,t);await Dn(n),W.delete(r)}function xn(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function Ga(e,t){let r=0;for(let i=0;i<e.length;i+=1)r+=e[i]*t[i];let n=xn(e),o=xn(t);return n===0||o===0?0:r/(n*o)}function Xt(e,t){let r=Ma(e),n=Na(e,t),o=[r,n].filter(a=>a!==null),i=b(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 Qe(e){let t=ve(e);if(e.name==="qdrant"){let o=ue(e.url),i=encodeURIComponent(t);return{store:"qdrant",query_target:`${o}/collections/${i}/points/search`,upsert_target:`${o}/collections/${i}/points?wait=true`}}let r=encodeURIComponent(e.path),n=encodeURIComponent(t);return{store:"lancedb",query_target:`lancedb://${r}#${n}`,upsert_target:`lancedb://${r}#${n}`}}function Ya(e,t,r){let n=Qe(e),o=We(t),i=Mn(r);return e.name==="qdrant"?{target:n,method:"POST",headers:Xe(e),body:{vector:o,limit:i,with_payload:!0}}:{target:n,method:"LOCAL",headers:{},body:{table:ve(e),vector:o,limit:i}}}function Wa(e,t){let r=Qe(e),n=Fa(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Xe(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:ve(e),records:n}}}function Xa(e,t){let r=Qe(e),n=Pa(t);return e.name==="qdrant"?{target:r,method:"POST",headers:Xe(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:ve(e),ids:n}}}async function um(e,t,r,n={}){let o=Ya(e,t,r);if(o.method==="LOCAL"){let c=e,d=o.body,l=await Wt(c.path,d.table);if(l.size===0)return[];let u=We(d.vector),p=Mn(d.limit),_=[],g=0;for(let y of l.values()){if(y.vector.length!==u.length){g++;continue}_.push({id:y.id,score:Ga(u,y.vector),...y.payload?{payload:y.payload}:{}})}return g>0&&n.warnings&&n.warnings.push(`vector_dimension_mismatch:${g} records skipped (expected ${u.length} dimensions)`),_.sort((y,h)=>y.score!==h.score?h.score-y.score:y.id.localeCompare(h.id)),_.slice(0,p)}let i=H(n.timeout_ms,"Vector request"),s=B(n.fetcher,"Vector request"),a=await Te(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return xa(a)}async function Jt(e,t,r={}){let n=Wa(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Je(a.path,c.table),l=await Wt(a.path,c.table);for(let _ of c.records)l.set(_.id,_);await On(a.path,c.table,l);let u=se(a.path,c.table),p=await Ht(u);return W.set(d,{records:l,mtimeMs:p.mtimeMs,size:p.size}),{status:"ok"}}let o=H(r.timeout_ms,"Vector request"),i=B(r.fetcher,"Vector request"),s=await Te(n.target.upsert_target,{method:"POST",headers:n.headers,body:n.body},o,i,"upsert");return Yt(s)}async function Ze(e,t,r={}){let n=Xa(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=Je(a.path,c.table),l=await Wt(a.path,c.table);if(l.size===0)return{status:"ok"};for(let u of c.ids)l.delete(u);if(await On(a.path,c.table,l),l.size===0)W.delete(d);else{let u=se(a.path,c.table),p=await Ht(u);W.set(d,{records:l,mtimeMs:p.mtimeMs,size:p.size})}return{status:"ok"}}let o=H(r.timeout_ms,"Vector request"),i=B(r.fetcher,"Vector request"),s=await Te($a(n.target.upsert_target),{method:"POST",headers:n.headers,body:n.body},o,i,"delete");return Yt(s)}async function Nn(e,t=[],r={},n){if(e.name==="lancedb")return await Ba(e.path,ve(e)),{status:"ok"};if(n!==void 0){if(!Number.isInteger(n)||n<=0)throw new Error("Vector reset dimension must be a positive integer when provided");let i=Qe(e),s=Ua(i.upsert_target),a=H(r.timeout_ms,"Vector request"),c=B(r.fetcher,"Vector request"),d=Xe(e);try{await Te(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(u){if(!E(u).includes("failed with status 404"))throw u}let l=await Te(s,{method:"PUT",headers:d,body:{vectors:{size:n,distance:"Cosine"}}},a,c,"upsert");return Yt(l)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await Ze(e,o,r)}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f8acaac5-64f7-5e22-987e-4eb12a1aa1cf")}catch{}})();function et(e,t){let r=b(e),n=b(t);return!r||!n?null:{provider:r,model:n}}function Fn(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=et(e.provider,e.model),r=e.vector_dimension;if(!t||typeof r!="number"||!Number.isInteger(r)||r<=0)throw new Error("Vectorization embedding metadata must include provider, model, and positive vector_dimension");return{...t,vector_dimension:r}}function 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 Zt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function er(e,t){return!!(e&&e.vector_dimension!==t)}function tr(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let r=e[0].length;if(!Number.isInteger(r)||r<=0)throw new Error(`${t} returned an empty vector`);for(let n=1;n<e.length;n+=1)if(e[n]?.length!==r)throw new Error(`${t} returned mixed vector dimensions`);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]="7113dff5-c8e0-5ba6-b0ae-2ff849ed94df")}catch{}})();var $n="search/vectorization-status.json";function Ae(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function Un(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function zn(e){let t=new Map;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!Un(n)||t.set(o,n)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}async function Vn(e){let t=Pn.join(e,$n),r=await S(t);if(r===null||r.trim().length===0)return{entries:{},embedding:null,warnings:[]};let n;try{n=JSON.parse(r)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}if(typeof n!="object"||n===null||n.version!==1||!Array.isArray(n.items))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let o=new Map;for(let s of n.items){if(typeof s!="object"||s===null)return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};let a=s.id,c=s.updated_at;if(typeof a!="string"||a.trim().length===0||!Un(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=Fn(n.embedding)}catch{return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]}}return{entries:Object.fromEntries([...o.entries()].sort((s,a)=>s[0].localeCompare(a[0]))),embedding:i,warnings:[]}}async function jn(e,t,r){let n=zn(t),o=Pn.join(e,$n),i=`${JSON.stringify({version:1,generated_at:M(),...r?{embedding:r}:{},items:Object.entries(n).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
12
|
+
`;await I(o,i)}function Ja(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Qa(e){let t=et(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function Ie(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function Za(e,t,r){if(!r.settings&&!await U(lt(e)))return Ie(t,"search_semantic_refresh_skipped:settings_not_initialized");let n;try{if(r.settings)n=r.settings;else{let a=await Ne(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return Ie(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);n=a.settings}}catch(a){return Ie(t,`search_semantic_refresh_skipped:settings_read_failed:${E(a)}`)}let o=r.apply_runtime_defaults?Ye(n).settings:n,i=kt(o).active;if(!i)return Ie(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=Xt(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:Ie(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function ec(e,t,r,n,o,i){let s=[],a=new Set,c=new Set,d=[];for(let l of n){let u=await he(e,l,t,r,o);if(!u){c.add(l);continue}try{let p=await Ct(u,{schema:i});d.push({id:p.document.metadata.id,document:p.document})}catch(p){a.add(u.id),s.push(`search_semantic_refresh_item_read_failed:${u.id}:${E(p)}`)}}return d.sort((l,u)=>l.id.localeCompare(u.id)),{documents:d,missingIds:Ae(c),skippedIds:Ae(a),warnings:s}}async function tc(e,t,r){let n=ie(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=Lt(e),i=r.map(a=>xt(a.document,{providerName:t.name,maxCharacters:n,fields:o})),s=await Dt(t,e,i);return{vectors:s.vectors,vector_dimension:tr(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function rc(e,t,r){return await Jt(e,t.map((n,o)=>({id:n.id,vector:r[o],payload:Ja(n.document.metadata)}))),{refreshed:t.map(n=>n.id),skipped:[],warnings:[]}}async function nc(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await Ze(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(r){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${E(r)}`]}}}async function Mm(e,t,r={}){let n=Ae(t);if(n.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await Za(e,n,r);if(!("settings"in o))return o;let i=A(o.settings,P()),s=await ec(e,o.settings.id_prefix,o.settings.item_format,n,i.type_to_folder,o.settings.schema),a=s.documents.length>0||s.missingIds.length>0?await Vn(e):{entries:{},embedding:null,warnings:[]},c=Qa(o.provider),d=a.entries,l={refreshed:[],skipped:[],warnings:[]},u=a.embedding;if(s.documents.length>0)if(a.embedding&&Zt(a.embedding,c))l={refreshed:[],skipped:s.documents.map(h=>h.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let h=await tc(o.settings,o.provider,s.documents);if(er(a.embedding,h.vector_dimension))l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[...h.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{u=Qt(c,h.vector_dimension);let w=await rc(o.vectorStore,s.documents,h.vectors);l={refreshed:w.refreshed,skipped:w.skipped,warnings:[...h.warnings,...w.warnings]}}}catch(h){l={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:[`search_semantic_refresh_failed:${E(h)}`]}}let p=await nc(o.vectorStore,s.missingIds),_=new Set(l.refreshed),g=Object.fromEntries(s.documents.filter(h=>_.has(h.id)).map(h=>[h.id,h.document.metadata.updated_at])),y=[];if(Object.keys(g).length>0||s.missingIds.length>0){let h={...d,...zn(g)};for(let w of s.missingIds)delete h[w];try{await jn(e,h,u)}catch(w){y.push(`search_vectorization_status_ledger_write_failed:${E(w)}`)}y.push(...a.warnings)}return{refreshed:Ae([...l.refreshed,...p.refreshed]),skipped:Ae([...s.skippedIds,...l.skipped,...p.skipped]),warnings:[...s.warnings,...l.warnings,...p.warnings,...y]}}import{createRequire as ac}from"node:module";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="34c9ab81-0465-51bb-9cf6-b27db1905e4c")}catch{}})();var oc=new Set(["1","true","yes","on"]),rt=["user","automation","test","dogfood"],ic=new Set(rt);function tt(e,t){return oc.has((t[e]??"").trim().toLowerCase())}function Ce(e=process.env){let t=tt("DO_NOT_TRACK",e),r=(e.PM_TELEMETRY_SOURCE_CONTEXT??"").trim().toLowerCase(),n=(typeof e.VITEST=="string"||typeof e.VITEST_WORKER_ID=="string"||(e.NODE_ENV??"").trim().toLowerCase()==="test")&&!ic.has(r)&&!tt("PM_TELEMETRY_SEND_TEST_EVENTS",e);return{telemetry_disabled:t||n||tt("PM_TELEMETRY_DISABLED",e)||tt("PM_NO_TELEMETRY",e),do_not_track:t,test_suppressed: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]="da2c4c10-3c43-5037-ac69-31204480af99")}catch{}})();var cc=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,$m=new RegExp(`\\b(${cc.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var Um=ac(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]="bd65294f-dfa5-53d2-9691-c630884f2a5f")}catch{}})();var jm=new Map([[m.USAGE,"invalid_command_usage"],[m.NOT_FOUND,"item_not_found"],[m.CONFLICT,"lock_conflict"],[m.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]="ceaee876-c2c8-5b28-91ee-f670384fd559")}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 Xm=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 lc(e,t){if(e==null)return[];let r=t?.separators??/,/,n=e.split(r).map(i=>i.trim()).filter(i=>i.length>0),o=t?.unique!==!1?Array.from(new Set(n)):n;return t?.sort===!0?[...o].sort():o}import qn from"node:fs/promises";import nt 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]="104c9ab0-5349-5aab-9d79-7697272a36fc")}catch{}})();function uc(e){return"json_markdown"}function Hn(e,t){return nt.relative(e,t).replaceAll("\\","/")}function mc(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function fc(e,t,r="item_format:migrate",n=dt,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=uc(t),l=Object.entries(n);for(let[u,p]of l){let _=nt.join(e,p),g=[];try{g=await qn.readdir(_)}catch{continue}let y=new Map;for(let w of g){let C=nt.join(_,w),x=vr(C);if(!x)continue;let j=nt.extname(w),K=w.slice(0,w.length-j.length).trim();if(K.length===0)continue;let J=y.get(K)??{};J[x]=C,y.set(K,J)}let h=[...y.keys()].sort((w,C)=>w.localeCompare(C));for(let w of h){let C=y.get(w);c+=1;let x=C[d];if(!x)continue;let j=C[t]??x,K=j===C[t]?t:d;try{let J=await qn.readFile(j,"utf8"),Ei=ht(J,{format:K,schema:o,onWarning:Si=>a.push(`item_format_migration_parse_warning:${w}:${Si}`)}),at=ut(e,u,w,t,n),Sr=bt(Ei,{format:t,schema:o});await S(at)!==Sr&&(await I(at,Sr),a.push(...await Me({path:at,scope:"project",op:r})),i.add(w)),await xe(x),s.add(Hn(e,x)),a.push(...await Me({path:x,scope:"project",op:`${r}:remove`})),i.add(w)}catch(J){a.push(`item_format_migration_skipped:${Hn(e,j)}:${mc(J)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((u,p)=>u.localeCompare(p)),removed:[...s].sort((u,p)=>u.localeCompare(p)),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 pc=new Set(["completed","superseded"]);function _c(e){return e!==void 0&&pc.has(e)}function yc(e){if(e.type.trim().toLowerCase()!=="plan")return!1;let t=e.plan_steps??[];return t.length>0&&t.every(r=>r.status==="completed")}import mf 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]="7c005413-4db4-58ce-a8ec-96ebc91a54f9")}catch{}})();import ir from"node:crypto";import{mkdirSync as kf,rmSync as bc,statSync as Lf}from"node:fs";import{mkdir as rr,readdir as wc,rm as sr,stat as Jn}from"node:fs/promises";import{request as Ec}from"node:http";import{request as Sc}from"node:https";import L 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]="b138e8a7-abfe-5961-a337-bb3a9506770c")}catch{}})();var Tc=L.join("runtime","telemetry","events.jsonl"),vc=L.join("runtime","telemetry","state.json"),Ic=L.join("runtime","telemetry","otel-spans.jsonl"),Ac=8,Bn=500,Cc=1;var Rc=100,kc=36e5,Lc=3e4,Gn=2e4,xc=1e3,Mc=25e3;var Dc=864e5,Qn=65536;var Zn=15;var eo=[25,50,100,200],Oc=3600*1e3,Nc=6e4;var ae="PM_TELEMETRY_FLUSH_CHILD";var Fc="PM_TELEMETRY_HTTP_TIMEOUT_MS",Pc=globalThis.fetch;var Wf=Promise.resolve(),Yn=Promise.resolve();var Xf=new Set(rt),$c=new Set(["1","true","yes","on"]);var Jf=ir.randomUUID();var to="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",Uc=new RegExp(`\\b(${to})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),zc=new RegExp(`(--${to})(=|\\s+)([^\\s,;]+)`,"giu"),Vc=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,jc=/bearer\s+[a-z0-9._=-]+/giu,Kc=/\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 ot(e){return L.join(e,Tc)}function ar(e){return L.join(e,Ic)}function qc(e){return L.dirname(ot(e))}function ro(e){return L.join(e,vc)}function no(e){return L.join(e,"runtime","telemetry","flush.lock")}function Hc(e){return L.join(e,"runtime","telemetry","flush.spawn.lock")}async function Bc(e){let t=await S(ro(e));if(!t||t.trim().length===0)return{};try{let r=JSON.parse(t);return typeof r!="object"||r===null||Array.isArray(r)?{}:r}catch{return{}}}async function F(e,t){try{await Re(async()=>{let r={...await Bc(e),...t},n=Object.fromEntries(Object.entries(r).filter(([,o])=>o!==void 0).sort((o,i)=>o[0].localeCompare(i[0])));await I(ro(e),`${JSON.stringify(n,null,2)}
|
|
13
|
+
`,{createParentDirectories:!ce(process.env[ae])})},e)}catch{}}function oo(e){return e.replaceAll(Uc,(t,r,n)=>`${r}${n}[redacted]`).replaceAll(zc,(t,r,n)=>`${r}${n}[redacted]`)}function io(e){return e.replaceAll(Vc,(t,r)=>`${r}[redacted_path]`)}function so(e){let t=e>=65&&e<=90,r=e>=97&&e<=122,n=e>=48&&e<=57;return t||r||n}function ao(e){if(!e)return!1;let t=e.charCodeAt(0);return so(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function co(e){if(!e)return!1;let t=e.charCodeAt(0);return so(t)?!0:e==="."||e==="-"}function Gc(e){let t=e.indexOf("@");if(t<=0||t!==e.lastIndexOf("@")||t===e.length-1)return!1;let r=e.slice(0,t),n=e.slice(t+1),o=n.lastIndexOf(".");if(o<=0||o===n.length-1||n.length-(o+1)<2)return!1;for(let i of r)if(!ao(i))return!1;for(let i of n)if(!co(i))return!1;return!0}function Yc(e){let t="",r=0;for(;r<e.length;){let n=e.indexOf("@",r);if(n<0){t+=e.slice(r);break}let o=n-1;for(;o>=r&&ao(e[o]);)o-=1;o+=1;let i=n+1;for(;i<e.length&&co(e[i]);)i+=1;let s=e.slice(o,i);if(Gc(s)){t+=e.slice(r,o),t+="[redacted_email]",r=i;continue}t+=e.slice(r,n+1),r=n+1}return t}function lo(e){return Yc(e).replaceAll(jc,"bearer [redacted_token]").replaceAll(Kc,"[redacted_ip]")}function Wc(e){let t=lo(e),r=oo(t),n=io(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>512?`${n.slice(0,509)}...`:n}function Xc(e){let t=lo(e),r=oo(t),n=io(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>2048?`${n.slice(0,2045)}...`:n}function or(e,t="redacted"){return t==="max"?Xc(e):Wc(e)}function Jc(e){let t=e?.trim().toLowerCase();return t==="minimal"||t==="redacted"||t==="max"?t:"redacted"}function ce(e){return $c.has((e??"").trim().toLowerCase())}function Wn(){let e=process.env[Fc]?.trim();if(!e)return Gn;let t=Number(e);return Number.isFinite(t)?Math.min(Mc,Math.max(xc,Math.trunc(t))):Gn}async function uo(e,t,r){let n=new URL(e);if(globalThis.fetch!==Pc){let i=new AbortController,s,a=new Promise((c,d)=>{s=setTimeout(()=>{i.abort(),d(new Error("telemetry_http_timeout"))},Wn())});try{return(await Promise.race([globalThis.fetch(e,{method:"POST",headers:t,body:r,signal:i.signal}),a])).status}finally{clearTimeout(s)}}let o=n.protocol==="https:"?Sc:n.protocol==="http:"?Ec:void 0;if(!o)throw new Error(`telemetry_http_protocol_unsupported_${n.protocol}`);return new Promise((i,s)=>{let a=Wn(),c={method:"POST",headers:{...t,"content-length":Buffer.byteLength(r)},signal:AbortSignal.timeout(a),autoSelectFamilyAttemptTimeout:Math.min(5e3,a)},d=o(n,c,l=>{l.once("error",s),l.once("end",()=>i(l.statusCode)),l.resume()});d.once("error",s),d.end(r)})}async function Qc(e){let t=await v(e);if(!t.telemetry.enabled||Ce().telemetry_disabled)return null;if(t.telemetry.installation_id.trim().length===0){if(jr(e))return null;t.telemetry.installation_id=ir.randomUUID(),await Fe(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:Jc(t.telemetry.capture_level)}}function mo(e){let t=[];for(let r of e.split(`
|
|
14
|
+
`)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&o.event&&typeof o.event=="object"&&typeof o.attempts=="number"&&(o.client_schema_version===void 0||typeof o.client_schema_version=="number"&&Number.isFinite(o.client_schema_version))&&t.push(o)}catch{}}return t}function fo(e){let t=Math.min(Lc*2**Math.max(e-1,0),kc);return new Date(Date.now()+t).toISOString()}function po(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 Zc(e){return po(e.next_attempt_after)}function _o(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*Dc}function ed(e,t){let r=e.event?.occurred_at;if(typeof r!="string"||r.trim().length===0)return!1;let n=Date.parse(r);return Number.isNaN(n)?!1:n<t}function cr(e,t){let r=_o(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Qn||ed(i,r)||i.attempts>=Zn){o+=1;continue}n.push(i)}return{entries:n,prunedCount:o}}async function yo(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
15
|
+
`),n=r.length>0?`${r}
|
|
16
|
+
`:"";for(let o=0;;o+=1)try{await I(ot(e),n,{createParentDirectories:!ce(process.env[ae])});return}catch(i){let s=eo[o];if(s===void 0||!go(i))throw i;await ho(s)}}function go(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function ho(e){return new Promise(t=>{setTimeout(t,e)})}function td(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return ir.createHash("sha256").update(t).digest("hex").slice(0,32)}function bo(e){let t=[];for(let r of e.split(`
|
|
17
|
+
`)){let n=r.trim();if(n.length!==0)try{let o=JSON.parse(n);o&&typeof o=="object"&&typeof o.endpoint=="string"&&o.endpoint.trim().length>0&&"payload"in o&&typeof o.attempts=="number"&&Number.isFinite(o.attempts)&&((typeof o.id!="string"||o.id.length===0)&&(o.id=td(o)),t.push(o))}catch{}}return t}function rd(e,t){if(typeof e.enqueued_at!="string"||e.enqueued_at.trim().length===0)return!1;let r=Date.parse(e.enqueued_at);return Number.isNaN(r)?!1:r<t}function wo(e,t){let r=_o(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Qn||rd(i,r)||i.attempts>=Zn){o+=1;continue}n.push(i)}if(n.length>Bn){let i=n.length-Bn;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function nd(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
18
|
+
`),n=r.length>0?`${r}
|
|
19
|
+
`:"";for(let o=0;;o+=1)try{await I(ar(e),n,{createParentDirectories:!ce(process.env[ae])});return}catch(i){let s=eo[o];if(s===void 0||!go(i))throw i;await ho(s)}}async function Xn(e,t,r,n){return Re(async()=>{let o=await S(ar(e)),i=o===null?[]:bo(o),s=[];for(let c of i){if(r.has(c.id))continue;let d=n.get(c.id);s.push(d?{...c,attempts:d.attempts,next_attempt_after:d.next_attempt_after}:c)}let{entries:a}=wo(s,t);return await nd(e,a),a.length},e)}async function od(e,t){let r=await S(ar(e));if(r===null||r.trim().length===0){await F(e,{pending_otel_spans:0});return}let n=bo(r),{entries:o,prunedCount:i}=wo(n,t),s=o.filter(g=>po(g.next_attempt_after)).slice(0,Ac);if(s.length===0){let g=i>0?await Xn(e,t,new Set,new Map):o.length;await F(e,{pending_otel_spans:g});return}let a=M(),c=new Set,d=new Map,l=0,u;await Promise.all(s.map(async g=>{try{let y=await uo(g.endpoint,{"content-type":"application/json"},JSON.stringify(g.payload));if(y<200||y>=300)throw new Error(`local_otel_export_http_${y}`);c.add(g.id),l+=1}catch(y){u=y instanceof Error?or(y.message,"redacted"):"local_otel_export_failed";let h=g.attempts+1;d.set(g.id,{attempts:h,next_attempt_after:fo(h)})}}));let p=await Xn(e,t,c,d),_={pending_otel_spans:p,last_otel_attempt_at:a};l>0&&(_.last_otel_success_at=a),u!==void 0?(_.last_otel_failure_at=a,_.last_otel_failure_error=u):p===0&&(_.last_otel_failure_at=void 0,_.last_otel_failure_error=void 0),await F(e,_)}async function id(e,t,r){try{await cd(e,t,r)}catch{}try{await od(e,r)}catch{}}async function sd(e,t=Oc){try{let r=qc(e),n=await wc(r,{withFileTypes:!0}),o=Date.now()-Math.max(0,t);await Promise.all(n.filter(i=>i.isFile()&&/^\.events\.jsonl\.\d+\.\d+\.[a-f0-9]+\.tmp$/.test(i.name)).map(async i=>{let s=L.join(r,i.name);(await Jn(s)).mtimeMs<o&&await sr(s,{force:!0})}))}catch{}}async function Re(e,t=fe(process.cwd()),r=5e3){let n=Yn.catch(()=>{}).then(()=>Rr(async()=>{let o=await Oe(t,"telemetry-queue",60,"telemetry",!1,!1,r,{createParentDirectories:!ce(process.env[ae])});try{return Vr(t),await e()}finally{await o()}}));return Yn=n.catch(()=>{}),n}async function dr(e){let t=await S(ot(e));return t===null||t.trim().length===0?[]:mo(t)}async function nr(e,t,r){return Re(async()=>{let n=await dr(e),{entries:o}=cr(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await yo(e,i),i},e)}async function ad(e,t,r,n){return Re(async()=>{let o=await dr(e),{entries:i}=cr(o,n),s=i.map(a=>{if(!t.has(a.event.event_id))return a;let c=a.attempts+1;return{...a,attempts:c,last_attempt_at:r,next_attempt_after:fo(c)}});return await yo(e,s),s},e)}async function cd(e,t,r){await sd(e);let n=t.trim();if(n.length===0)return;let o=await S(ot(e));if(o===null||o.trim().length===0){await F(e,{endpoint:n,queue_entries:0});return}let i=mo(o);if(i.length===0){await F(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=cr(i,r);if(s.length===0){let _=await nr(e,new Set,r);await F(e,{endpoint:n,queue_entries:_.length});return}let c=s.filter(_=>Zc(_)).slice(0,Rc);if(c.length===0){let _=a>0?await nr(e,new Set,r):s;await F(e,{endpoint:n,queue_entries:_.length});return}let d=new Set(c.map(_=>_.event.event_id)),l=M(),u={"content-type":"application/json"},p=process.env.PM_TELEMETRY_INGEST_KEY?.trim();p&&(u["x-pm-telemetry-key"]=p);try{let _=await uo(n,u,JSON.stringify({schema_version:Cc,events:c.map(g=>g.event)}));if(_<200||_>=300)throw new Error(`telemetry_flush_http_${_}`)}catch(_){let g=await ad(e,d,l,r),y=_ instanceof Error?or(_.message,"redacted"):"telemetry_flush_failed";await F(e,{endpoint:n,queue_entries:g.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:y});return}try{let _=await nr(e,d,r);await F(e,{endpoint:n,queue_entries:_.length,last_attempted_flush_at:l,last_successful_flush_at:l,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(_){let g=_ instanceof Error?or(_.message,"redacted"):"telemetry_flush_failed",y=await dr(e).catch(()=>s);await F(e,{endpoint:n,queue_entries:y.length,last_attempted_flush_at:l,last_failed_flush_at:l,last_failed_flush_error:g})}}async function dd(e){let t=no(e);ce(process.env[ae])||await rr(L.dirname(t),{recursive:!0});try{return await rr(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Jn(t);return Date.now()-r.mtimeMs<Nc?!1:(await sr(t,{recursive:!0,force:!0}),await rr(t),!0)}catch{return!1}}function ld(e){try{bc(e,{recursive:!0,force:!0})}catch{}}function ud(e){ld(Hc(e))}async function md(e,t,r){let n=await dd(e);if(ud(e),!!n)try{await id(e,t,r)}finally{try{await sr(no(e),{recursive:!0,force:!0})}catch{}}}async function Qf(e=fe(process.cwd())){if(!Ce().telemetry_disabled)try{await vt(e,async()=>{if(!(await v(e)).telemetry.enabled)return;let t=await Re(()=>Qc(e),e);t&&await md(e,t.endpoint,t.retentionDays)},()=>ce(process.env[ae]))}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]="a3b93077-f162-5874-b81b-5d6b8be427b5")}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]="738a98bc-eaf0-578d-88e3-1c5f83c8894b")}catch{}})();function it(e,t="--limit"){if(e===void 0)return;let r=String(e).trim(),n=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(n)||n<0)throw new f(`${t} must be a non-negative integer`,m.USAGE);return n}function Eo(e,t="--priority"){if(e===void 0)return;let r=String(e).trim(),n=r.length===0?Number.NaN:Number(r);if(!Number.isInteger(n)||n<0||n>4)throw new f(`${t} filter must be 0..4`,m.USAGE);return n}function ih(e,t,r="--type"){if(e===void 0)return;let n=me(e,t);if(!n)throw new f(`${r} filter must be one of ${t.types.join("|")}`,m.USAGE);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="75ecca0c-fac8-5a9b-9043-c65731daad4a")}catch{}})();function lr(e,t){if(e===void 0)return;let r=[],n="";for(let s=0;s<e.length;s+=1){let a=e[s];if(a==="\\"){let c=e[s+1];if(c===","||c==="\\"){n+=c,s+=1;continue}n+=a;continue}if(a===","){r.push(n),n="";continue}n+=a}r.push(n);let o=r.map(s=>s.trim());if(o.some(s=>s.length===0))throw new f(`${t.label} requires at least one non-empty value`,m.USAGE);let i=o.map(s=>t.normalize?.(s)??s);return[...new Set(i)]}function ke(e,t){let r=lr(e,t);return r===void 0?void 0:new Set(r)}function So(e,t,r="--type"){let n=lr(e,{label:r});if(n===void 0)return;let o=n.map(i=>{let s=me(i,t);if(!s)throw new f(`${r} filter token "${i}" must be one of ${t.types.join("|")}`,m.USAGE);return s});return new Set(o)}function To(e,t="--priority"){let r=lr(e,{label:t});if(r!==void 0)return new Set(r.map(n=>Eo(n,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 vo(e,t){let r=e.trim().toLowerCase();return t.alias_to_id.get(r)??r}function Ro(e){return{isTerminal(t){return e.terminal_statuses.has(vo(t,e))},classify(t){let r=vo(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 ur(e){return T(e.acceptance_criteria)===void 0}function mr(e){return!Number.isFinite(e.estimated_minutes)}function ko(e,t){return t.isTerminal(e.status)?T(e.resolution)===void 0:!1}function pd(e){return T(e.reviewer)===void 0}function _d(e){return T(e.risk)===void 0}function yd(e){return typeof e.confidence=="number"?!Number.isFinite(e.confidence):T(e.confidence)===void 0}function gd(e){return T(e.sprint)===void 0}function hd(e){return T(e.release)===void 0}function fr(e){return!!(e.acMissing||e.estimatesMissing||e.resolutionMissing||e.reviewerMissing||e.riskMissing||e.confidenceMissing||e.sprintMissing||e.releaseMissing||e.metadataMissing)}function bd(e,t,r){return[[t.acMissing,ur(e)],[t.estimatesMissing,mr(e)],[t.resolutionMissing,ko(e,r)],[t.reviewerMissing,pd(e)],[t.riskMissing,_d(e)],[t.confidenceMissing,yd(e)],[t.sprintMissing,gd(e)],[t.releaseMissing,hd(e)]].every(([n,o])=>n!==!0||o)}function wd(e,t){return ur(e)||mr(e)||ko(e,t)}function Lo(e,t,r){return fr(t)?!(!bd(e,t,r)||t.metadataMissing&&!wd(e,r)):!0}var pr=["acceptance_criteria","estimated_minutes","resolution","tags","parent"];function Ed(e,t){switch(t){case"acceptance_criteria":return!ur(e);case"estimated_minutes":return!mr(e);case"resolution":return T(e.resolution)!==void 0;case"tags":return Array.isArray(e.tags)&&e.tags.length>0;default:return T(e.parent)!==void 0}}function Sd(e,t,r){return t==="resolution"?r.isTerminal(e.status):!0}function Td(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Io(){let e={};for(let t of pr)e[t]={present:0,applicable:0,percent:100};return e}function Ao(e,t,r){for(let n of pr){if(!Sd(t,n,r))continue;let o=e[n];o.applicable+=1,Ed(t,n)&&(o.present+=1)}}function Co(e){for(let t of pr){let r=e[t];r.percent=Td(r.present,r.applicable)}}function fh(e,t){let r=Io(),n={};for(let o of e){Ao(r,o,t);let i=n[o.type]??(n[o.type]=Io());Ao(i,o,t)}Co(r);for(let o of Object.values(n))Co(o);return{overall:r,by_type:n}}var vd={assignee:"(unassigned)",priority:"(no priority)",tag:"(untagged)",parent:"(unparented)",type:"(untyped)",status:"(no status)"};function Id(e){return vd[e]}function Ad(){return{open:0,in_progress:0,blocked:0,draft:0,closed:0,canceled:0,other:0}}function Cd(e,t,r){switch(t){case"assignee":return[T(e.assignee)??null];case"parent":return[T(e.parent)??null];case"type":return[T(e.type)??null];case"status":return[T(e.status)??null];case"priority":return[typeof e.priority=="number"?`P${e.priority}`:null];default:{let n=r.tagPrefix?.trim(),o=(Array.isArray(e.tags)?e.tags:[]).filter(i=>typeof i=="string"&&i.length>0&&(!n||i.startsWith(n)));return o.length>0?o:[null]}}}function ph(e,t,r,n={}){let o=new Map,i=0;for(let a of e){i+=1;let c=r.classify(a.status);for(let d of Cd(a,t,n)){let l=d??"\0empty",u=o.get(l);u||(u={label:d??Id(t),key:d,buckets:Ad(),total:0},o.set(l,u)),u.buckets[c]+=1,u.total+=1}}let s=[...o.values()].sort((a,c)=>c.total!==a.total?c.total-a.total:a.key===null?1:c.key===null?-1:a.label.localeCompare(c.label));return{dimension:t,rows:s,total_items: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]="67f9184e-08b6-5f21-9f92-e60974adbf1e")}catch{}})();var de=["notes","learnings","files","docs","tests","comments","deps","body","linked_command"];function X(e){return Array.isArray(e)&&e.length>0}function Rd(e){return typeof e=="string"&&e.trim().length>0}function kd(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 Mo(e,t){switch(t){case"notes":return X(e.notes);case"learnings":return X(e.learnings);case"files":return X(e.files);case"docs":return X(e.docs);case"tests":return X(e.tests);case"comments":return X(e.comments);case"deps":return X(e.dependencies);case"body":return Rd(e.body);case"linked_command":return kd(e.tests)}}function Do(e){return de.some(t=>e[t]!==void 0)}function Oo(e,t){for(let r of de){let n=t[r];if(n===void 0)continue;let o=Mo(e,r);if(n==="present"&&!o||n==="absent"&&o)return!1}return!0}function No(e){return de.some(t=>t!=="body"&&e[t]!==void 0)}function Fo(e){return e.body!==void 0}function xo(e,t){return t===0?100:Math.round(e/t*1e3)/10}function Ld(){let e={};for(let t of de)e[t]={present:0,total:0,percent:100};return e}function yh(e){let t=Ld(),r=e.length;for(let s of e)for(let a of de)Mo(s,a)&&(t[a].present+=1);for(let s of de)t[s].total=r,t[s].percent=xo(t[s].present,r);let n=t.body,o=r-n.present,i={present:o,total:r,percent:xo(o,r)};return{total_items:r,fields:t,body_populated:n,empty_body: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]="d638f294-7d4b-5fdc-9a86-d70c2cbdd9f4")}catch{}})();var jo=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}),Po=[{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"}],yr=e=>{let t=Po.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(Po.flatMap(r=>e[r.presentKey]===!0?[[r.field,"present"]]:e[r.absentKey]===!0?[[r.field,"absent"]]:[]))},$o=["priority","deadline","updated_at","created_at","title","parent"],Uo=["asc","desc"],Ko=new Set(Gr);function xd(e,t,r){let n=e.filter(s=>s.startsWith("item_list_item_read_failed:")).length,o=e.filter(s=>s.startsWith("item_list_directory_read_failed:")).length,i={status:t?"unchecked":n+o>0?"partial":"complete",unreadable_item_count:n,unreadable_directory_count:o};if(r&&i.status==="partial")throw new f(`List source is incomplete: ${n} item document(s) and ${o} 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 i}function Md(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length>0}var Dd=[{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"}],Od=[{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 qo(e,t){for(let r of Dd)t[r.key]===!0&&(e[r.summaryKey]=!0)}function Ho(e,t){for(let r of Od)t[r.key]===!0&&(e[r.summaryKey]=!0)}function Nd(e,t,r){for(let n of r){let o=t[n.optionKey];o!==void 0&&(e[n.summaryKey]=n.normalize?n.normalize(o):o)}}function Bo(e){let t={};return qo(t,e),t}function Go(e){let t={};return Ho(t,e),t}var Fd=[{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"}],Pd=[{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"}],$d=[{key:"filterAcMissing",summaryKey:"filter_ac_missing"},{key:"filterEstimatesMissing",summaryKey:"filter_estimates_missing"},{key:"filterResolutionMissing",summaryKey:"filter_resolution_missing"},{key:"filterMetadataMissing",summaryKey:"filter_metadata_missing"}],Ud="-7d";function Yo(e){let{filtersStatus:t,options:r,treeEnabled:n,treeDepth:o,sortField:i,sortOrder:s,runtimeFieldFilters:a}=e,c={};return t!==null&&(c.status=t),r.dependencyBlocked===!0&&(c.blocked_semantics="status_or_dependency"),Nd(c,r,Fd),Xo(c,r),r.filterAcMissing===!0&&(c.filter_ac_missing=!0),r.filterEstimatesMissing===!0&&(c.filter_estimates_missing=!0),r.filterResolutionMissing===!0&&(c.filter_resolution_missing=!0),r.filterMetadataMissing===!0&&(c.filter_metadata_missing=!0),Ho(c,r),qo(c,r),r.limit!==void 0&&(c.limit=r.limit),r.offset!==void 0&&(c.offset=r.offset),r.includeBody===!0&&(c.include_body=!0),r.fields!==void 0&&(c.fields=r.fields),n&&(c.tree=!0,o!==void 0&&(c.tree_depth=o)),i!==void 0&&(c.sort=i,c.order=s),Md(a)&&(c.runtime_filters=a),c}function gr(e,t,r){let n=q(e.status,r),o=q(t.status,r);if(n!==o)return n?1:-1;let i=e.priority-t.priority;if(i!==0)return i;let s=te(t.updated_at,e.updated_at);return s!==0?s:(e.id??"").localeCompare(t.id??"")}function zd(e,t){return[...e].sort((r,n)=>gr(r,n,t))}function zo(e,t){if(e!==void 0)return De(e,new Date,t)}function Le(e,t){if(e==null)return;let r=String(e).trim();if(r.length!==0)return De(r,new Date,t)}function Wo(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?Le(Ud,"recent"):Le(e.updatedAfter,"updated-after")}function Xo(e,t){t.today===!0&&(e.today=!0),t.recent===!0&&(e.recent=!0)}function Jo(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(n=>n.trim()).filter(n=>n.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 hr(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 Qo(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 Zo(e,t=e.projectionCommand??"list"){let r=e.compact===!0,n=e.brief===!0,o=e.full===!0,i=Qo(e.fields);if(Number(r)+Number(n)+Number(o)+ +(i!==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"]}});return o?{mode:"full",fields:[]}:n?{mode:"brief",fields:[...yt]}:r?{mode:"compact",fields:[..._t]}:i?{mode:"fields",fields:[...new Set(i.map(s=>V(s)))]}:{mode:"full",fields:[]}}function V(e){return e.startsWith("item.")?e.slice(5):e}function Vd(e,t,r){if(e.mode!=="fields")return;let n=gt(t),o=new Set(n.map(s=>V(s))),i=e.fields.filter(s=>!o.has(V(s)));if(i.length>0){let s=[r,"--fields",e.fields.filter(a=>!i.includes(a)).join(",")||"id,title,status"];throw new f(`Unknown list --fields value(s): ${i.join(", ")}`,m.USAGE,{code:"unknown_field_projection",examples:["pm list-open --fields id,title,status,type,updated_at","pm list --fields id,title,parent,priority --limit 10","pm list-all --fields id,title,body --limit 5"],recovery:{allowed_values:n,suggested_retry:Lr(s),suggested_retry_args:s}})}}var jd=new Map([["updated","updated_at"],["update","updated_at"],["modified","updated_at"],["created","created_at"],["create","created_at"]]);function ei(e){if(e===void 0)return;let t=e.trim().toLowerCase(),r=jd.get(t);if(r)return r;if(!$o.includes(t))throw new f(`Sort field must be one of ${$o.join("|")} (aliases: updated->updated_at, created->created_at)`,m.USAGE);return t}function ti(e){if(e===void 0)return;let t=e.trim().toLowerCase();if(!Uo.includes(t))throw new f(`Sort order must be one of ${Uo.join("|")}`,m.USAGE);return t}function Kd(e){return it(e,"--tree-depth")}function ri(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 Vo(e,t){return zt(e,t,{strict:!0})}function ni(e){return ke(e,{label:"--tag",normalize:t=>t.toLowerCase()})}function qd(e,t,r){let n=ni(t);if(n===void 0)return;let o=new Set(e.flatMap(s=>s.tags.map(a=>a.trim().toLowerCase()))),i=[...n].filter(s=>!o.has(s));i.length>0&&r.push(`unknown_tags:${i.join(",")}`)}function Hd(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 Bd(e,t,r,n){let o=ke(t.assignee,{label:"--assignee"}),i=ri(t.assigneeFilter);Hd(o,i);let s=jo(t),a=yr(t);return{idsFilter:Jo(t.ids),statusSet:e&&e.length>0?new Set(e):void 0,excludeTerminal:t.excludeTerminal===!0,typeFilter:So(t.type,r),tagFilters:ni(t.tag),priorityFilter:To(t.priority),deadlineBefore:zo(t.deadlineBefore,"deadline-before"),deadlineAfter:zo(t.deadlineAfter,"deadline-after"),updatedAfter:Wo(t),updatedBefore:Le(t.updatedBefore,"updated-before"),createdAfter:Le(t.createdAfter,"created-after"),createdBefore:Le(t.createdBefore,"created-before"),assigneeFilter:o,assigneeModeFilter:i,parentFilter:t.parent?.trim(),treeEnabled:t.tree===!0,sprintFilter:ke(t.sprint,{label:"--sprint"}),releaseFilter:ke(t.release,{label:"--release"}),missingMetadataFilters:s,missingMetadataActive:fr(s),lifecycleClassifier:Ro(n),contentFieldFilters:a,contentFiltersActive:Do(a)}}function Gd(e,t,r){return t.idsFilter&&!t.idsFilter.has(e.id)||t.statusSet&&!t.statusSet.has(e.status)||t.excludeTerminal&&q(e.status,r)||t.typeFilter&&!t.typeFilter.has(e.type)||t.tagFilters&&![...t.tagFilters].some(n=>(e.tags??[]).some(o=>o.trim().toLowerCase()===n))?!1:t.priorityFilter===void 0||t.priorityFilter.has(e.priority)}function Yd(e,t){return Or(e,t)}function Wd(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 Xd(e,t,r){let n=e.parent?.trim().toLowerCase(),o=[...new Set([...r?.get(e.id.trim().toLowerCase())??[],...n?[n]:[]])];return t.parentFilter!==void 0&&!t.treeEnabled&&!o.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 Jd(e,t,r,n,o){return!(!Gd(e,t,r)||!Yd(e,t)||!Wd(e,t)||!Xd(e,t,o)||t.missingMetadataActive&&!Lo(e,t.missingMetadataFilters,t.lifecycleClassifier)||t.contentFiltersActive&&!Oo(e,t.contentFieldFilters)||!jt(e,n))}function oi(e,t,r,n,o,i,s){let a=Bd(t,r,n,o);return e.filter(c=>Jd(c,a,o,i,s))}function le(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function _r(e,t,r,n){let o=e,i=typeof o.title=="string"?o.title:"",s=n??le(typeof o.parent=="string"?o.parent:void 0)??null;return{...e,tree_depth:t,tree_parent:s,tree_children:r,tree_title:`${" ".repeat(t)}${i}`}}function Qd(e,t){let r=new Map,n=new Map;for(let o of e){let i=o.id.trim().toLowerCase();r.set(i,o);let s=t?t.parents_by_child.get(i)??[]:[le(o.parent)?.toLowerCase()].filter(a=>a!==void 0);for(let a of s){let c=n.get(a)??[];c.push(o),n.set(a,c)}}return{byId:r,childrenByParent:n}}function Zd(e,t,r,n,o){return t?[...n.get(t.toLowerCase())??[]]:e.filter(i=>(o?o.parents_by_child.get(i.id.trim().toLowerCase())??[]:[le(i.parent)?.toLowerCase()].filter(s=>s!==void 0)).every(s=>!r.has(s)))}function ii(e,t,r,n,o=e){let{byId:i,childrenByParent:s}=Qd(e,n),a=Zd(e,t,i,s,n),c=[],d=new Set,l=new Map(o.map(p=>[p.id.trim().toLowerCase(),p.id.trim()])),u=[...a].reverse().map(p=>({node:p,depth:0,parentId:t===void 0?void 0:l.get(t.trim().toLowerCase())??t.trim()}));for(;u.length>0;){let{node:p,depth:_,parentId:g}=u.pop(),y=p.id.trim().toLowerCase();if(d.has(y))continue;d.add(y);let h=s.get(y)??[];if(c.push(_r(p,_,h.length,g)),!(r!==void 0&&_>=r))for(let w of[...h].reverse())u.push({node:w,depth:_+1,parentId:l.get(y)})}if(t===void 0&&r===void 0)for(let p of e){let _=p.id.trim().toLowerCase();d.has(_)||(d.add(_),c.push(_r(p,0,s.get(_)?.length??0)))}return c}function si(e,t){return e===t?0:e===null?1:t===null?-1:e.localeCompare(t)}function ai(e,t){return e===t?0:e===null?1:t===null?-1:te(e,t)}function ci(e,t,r){switch(r){case"priority":return e.priority-t.priority;case"deadline":return ai(e.deadline??null,t.deadline??null);case"updated_at":return te(e.updated_at,t.updated_at);case"created_at":return te(e.created_at,t.created_at);case"title":return(e.title??"").localeCompare(t.title??"");case"parent":return si(e.parent??null,t.parent??null);default:return 0}}function di(e,t,r,n){return t?[...e].sort((o,i)=>{let s=ci(o,i,t);if(s!==0)return r==="desc"?-s:s;let a=gr(o,i,n);return r==="desc"?-a:a}):zd(e,n)}function li(e,t,r=!1){let n=V(t.trim());if(n.length===0)return null;let o=e;return r&&n==="title"&&typeof o.tree_title=="string"?o.tree_title:Object.prototype.hasOwnProperty.call(o,n)?o[n]??null:null}function br(e,t,r=!1){return t.mode==="full"?e:e.map(n=>{let o={};for(let i of t.fields)o[i]=li(n,i,r);return o})}function ui(e){let t=[];for(let r of e)t.push(r.metadata_key);return t}function mi(e,t){if(e.noTruncate!==!0)return it(e.limit)??(t>=1e4?20:void 0)}function el(e,t,r){return t.after===void 0?hr(t.offset)??0:Dr(e,t.after,r,n=>n.id)}function fi(e,t,r){return{...e!==void 0?{applied_limit:e}:{},has_more:t,truncated:t,next_cursor:r??null}}async function tl(e,t){let r=R(process.cwd(),t.path);await ne(r);let n=await v(r),o=ee(n.schema),i=ft(n.schema),s=e.projectionCommand??"list",a=Zo(e,s);return Vd(a,ui(i.definitions),s),{pmRoot:r,settings:n,statusRegistry:o,runtimeFieldFilters:Vt(e,i,"list"),typeRegistry:A(n,P()),projection:a}}async function rl(e,t,r){let n=t.projection.fields.some(c=>V(c)==="body"),o=t.projection.mode==="full"||t.projection.fields.some(c=>Ko.has(V(c))),i=yr(e),s=No(i),a=Fo(i);return e.includeBody||n||a?await Yr(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):o||s?await Rt(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema):await oe(t.pmRoot,t.settings.item_format,t.typeRegistry.type_to_folder,r,t.settings.schema)}function nl(e){let t=ei(e.sort),r=ti(e.order)??"asc",n=e.tree===!0;if(!n&&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:n,treeDepth:n?Kd(e.treeDepth):void 0,parentRoot:n?le(e.parent):void 0}}function ol(e,t,r){let n=Vo(t.status,r),o;t.lifecycleBucket==="in_progress"?o=[r.in_progress_status]:t.lifecycleBucket==="open"&&(o=[...r.active_statuses].filter(d=>d!==r.in_progress_status).sort((d,l)=>d.localeCompare(l)));let i=n??o??Vo(e,r),s=In(t.status),a=n||s?{...t,excludeTerminal:!1}:t,c="all";return s?c="all":n!==void 0?c=n.length===1?n[0]:n:t.lifecycleBucket!==void 0?c=t.lifecycleBucket:i!==void 0?c=i.length===1?i[0]:i:a.excludeTerminal===!0&&(c=null),{resolvedStatus:i,explicitAllStatuses:s,effectiveOptions:a,filtersStatus:c}}function il(e,t,r,n,o){if(t.after!==void 0&&t.offset!==void 0)throw new f("List --after cannot be combined with --offset.",m.USAGE);let i=mi(t,e.length),s=el(e,t,o),a=i===void 0?e.slice(s):e.slice(s,s+i),c=br(a,r,n),d=e.length,l=a.length>0&&s+a.length<d,u=l&&a.length>0?pt(o,a[a.length-1].id,s+a.length-1):void 0;return{projected:c,totalMatched:d,pageExtras:fi(i,l,u)}}function pi(e,t,r,n){return Mr("list",{pmRoot:n,status:e,options:xr(t,Ir),sort:r.sortField??"default",order:r.sortOrder,tree:r.treeEnabled,tree_depth:r.treeDepth??null})}async function sl(e){let{options:t,runtime:r,statusSelection:n,ordering:o}=e,i=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"]),s=[r.projection.mode==="full",r.projection.fields.some(_=>{let g=V(_);return g==="body"||Ko.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,o.treeEnabled,o.sortField!==void 0,s,kr(),Object.keys(r.runtimeFieldFilters).length>0,Object.entries(t).some(([_,g])=>g!==void 0&&!i.has(_))].includes(!0))return null;let a=await ge(r.pmRoot,[...new Set(Object.values(r.typeRegistry.type_to_folder))]);if(!a)return null;let c=it(t.limit),d=hr(t.offset)??0,l=await It({pmRoot:r.pmRoot,expectedSourceCursor:a.source_cursor,query:{statuses:n.resolvedStatus,excludeStatuses:n.resolvedStatus===void 0&&n.effectiveOptions.excludeTerminal===!0?[...r.statusRegistry.terminal_statuses]:void 0,terminalStatuses:[...r.statusRegistry.terminal_statuses],limit:c,offset:d}});if(!l)return null;let u=l.items.length>0&&d+l.items.length<l.total,p=u?pt(pi(n.filtersStatus,t,o,r.pmRoot),l.items.at(-1).id,d+l.items.length-1):void 0;return{projected:br(l.items,r.projection,!1),totalMatched:l.total,pageExtras:fi(c,u,p)}}function al(e){let{filtersStatus:t,options:r,noTruncate:n,treeEnabled:o,treeDepth:i,sortField:s,sortOrder:a,runtimeFieldFilters:c}=e,d={};t!==null&&(d.status=t),r.dependencyBlocked===!0&&(d.blocked_semantics="status_or_dependency");let l=r;for(let u of Pd){let p=l[u.optionKey];p!=null&&(d[u.summaryKey]=p)}for(let u of $d)l[u.key]===!0&&(d[u.summaryKey]=!0);return Object.assign(d,Go(r),Bo(r)),Xo(d,r),n&&(d.no_truncate=!0),r.strictRead===!0&&(d.strict_read=!0),o&&(d.tree=!0,i!==void 0&&(d.tree_depth=i)),s!==void 0&&(d.sort=s,d.order=a),d.runtime_filters=c,d}async function Gh(e,t,r){let n=await tl(t,r),o=[],i=nl(t),s=ol(e,t,n.statusRegistry),a=t.noTruncate===!0,c=await sl({options:t,runtime:n,statusSelection:s,ordering:i}),d=c;if(!d){let g=await rl(t,n,o),y=i.treeEnabled||le(t.parent)!==void 0?Qr(Jr(g,Xr())):void 0;qd(g,t.tag,o);let h=oi(g,s.resolvedStatus,s.effectiveOptions,n.typeRegistry,n.statusRegistry,n.runtimeFieldFilters,y?.parents_by_child),w=t.dependencyBlocked===!0?(()=>{let j=Wr(g,n.statusRegistry);return h.filter(K=>j.has(K.id.trim().toLowerCase()))})():h,C=di(w,i.sortField,i.sortOrder,n.statusRegistry),x=i.treeEnabled?ii(C,i.parentRoot,i.treeDepth,y,g):C;d=il(x,t,n.projection,i.treeEnabled,pi(s.filtersStatus,t,i,n.pmRoot))}let l=M(),u=[...new Set(o)].sort((g,y)=>g.localeCompare(y)),p=xd(u,c!==null,t.strictRead===!0),_=n.projection.mode==="full"?null:[...n.projection.fields];if(n.projection.mode==="compact"&&t.compact===!0){let g=Yo({filtersStatus:s.filtersStatus,options:t,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:n.runtimeFieldFilters});return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:g,projection:{mode:"compact",fields:_},...u.length>0?{warnings:u}:{}}}return{items:d.projected,count:d.projected.length,total:d.totalMatched,...d.pageExtras,completeness:p,filters:al({filtersStatus:s.filtersStatus,options:t,noTruncate:a,treeEnabled:i.treeEnabled,treeDepth:i.treeDepth,sortField:i.sortField,sortOrder:i.sortOrder,runtimeFieldFilters:n.runtimeFieldFilters}),projection:{mode:n.projection.mode,fields:_},sorting:{sort:i.sortField??"default",order:i.sortField?i.sortOrder:"asc"},now:l,...u.length>0?{warnings:u}:{}}}var Yh={applyFilters:oi,buildCompactListFilterSummary:Yo,buildContentFilterEcho:Bo,buildGovernanceMissingFilterEcho:Go,resolveContentFieldFilters:yr,resolveMissingMetadataFilters:jo,compareBySortField:ci,compareDefaultSort:gr,compareNullableString:si,compareNullableTimestamp:ai,normalizeProjectionField:V,parseAssigneeFilter:ri,parseFieldSelectors:Qo,parseIdsFilter:Jo,parseOffset:hr,parseProjectionConfig:Zo,resolveListUpdatedAfter:Wo,resolveListPageLimit:mi,parseSortField:ei,parseSortOrder:ti,orderItemsAsTree:ii,projectListItems:br,readListFieldValue:li,runtimeMetadataKeysForProjection:ui,sortItems:di,trimNonEmpty:le,withTreeMetadata:_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]="59842825-3a81-53f4-845d-db2257ec6286")}catch{}})();async function ab(e){let t=R(process.cwd(),e);await ne(t);let r=await v(t),n=A(r,P());return{pmRoot:t,settings:r,typeRegistry:n}}async function _i(e,t,r,n){pe(e,Pe(t));let o=await he(e,t,r.id_prefix,r.item_format,n);if(o)return{id:o.id,historyPath:pe(e,o.id),located:o};let i=re(t,r.id_prefix),s=Pe(t),a=i===s?[i]:[i,s];for(let c of a){let d=pe(e,c);if(await U(d))return{id:c,historyPath:d,located:null}}throw new f(`Item ${t} not found`,m.NOT_FOUND)}(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 Cb(e,t){let r=Tt(e),n=e.length>0?e[e.length-1].after_hash:Et(),o=t===void 0||r.item_hash_version===void 0?void 0:$r(t,r.item_hash_version,Nr(e.at(-1)?.hash_algorithm)),i=t===void 0?void 0:o===void 0?wt(t):o[Math.max(0,o.indexOf(n))],s=i===void 0?void 0:i===n,a=[...r.errors];return s===!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:i,current_matches_latest:s}}async function Rb(e,t,r={}){let n=R(r.cwd??process.cwd(),r.pmRoot);await ne(n);let o=await v(n),i=A(o,P()),s=await _i(n,e,o,i.type_to_folder),a=await ye(s.historyPath,s.id);if(a.length===0)throw new f(`No history exists for ${s.id}; point-in-time reads are unavailable.`,m.NOT_FOUND);let c=qr(t,a),d=Br(Hr(a,c.historyIndex),c),l=St(d,{schema:o.schema});if(l.metadata.id!==s.id)throw new f(`History target resolved to item ${l.metadata.id}, expected ${s.id}.`,m.GENERIC_FAILURE);let u=a[c.historyIndex],p=Kr(a,!0);return{document:l,reconstructed:!0,as_of_version:p===null?null:p+c.historyIndex+1,as_of_timestamp:u.ts,target:c,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 st=1e6;function wr(e,t=st,r=.8,n=!1){let o=new Set,i=(l,u)=>{if(o.add(`${l}:${u}`),o.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(n||r===0){for(let l=0;l<e.length;l+=1)for(let u=0;u<l;u+=1)i(u,l);return o}let s=new Map;for(let{prepared:l}of e)for(let u of l.tokens)s.set(u,(s.get(u)??0)+1);let a=new Map,c=new Map,d=new Map;for(let[l,{prepared:u}]of e.entries()){let p=[...u.tokens].sort((y,h)=>s.get(y)-s.get(h)||y.localeCompare(h)),_=p.length-Math.ceil(r*p.length-1e-12)+1,g=[{index:a,keys:[u.normalized],lengthFilter:!1},{index:c,keys:r<=.99?u.issueCodes:[],lengthFilter:!1},{index:d,keys:p.length===0?[""]:p.slice(0,_),lengthFilter:!0}];for(let y of g)cl(e,l,y,r,i)}return o}function cl(e,t,r,n,o){let i=e[t].prepared.tokens.length;for(let s of r.keys){let a=r.index.get(s)??[];for(let c of a){let d=e[c].prepared.tokens.length;r.lengthFilter&&Math.min(d,i)/Math.max(d,i)+1e-12<n||o(c,t)}a.push(t),r.index.set(s,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 dl=3,yi=20,ll=.8,ul=100,gi=1e3;function Zb(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 ml(e,t){let r=e.items[0],n=R(t.cwd??process.cwd(),t.pmRoot),o=ee((await v(n)).schema);return q(r.status,o)?{action:"reopen",item_id:r.id,command:`pm item reopen ${r.id} "<recurrence reason>"`,args:["item","reopen",r.id,"<recurrence reason>"]}:{action:"reuse",item_id:r.id,command:`pm get ${r.id} --full`,args:["get",r.id,"--full"]}}function Er(e){let t=e.limit??dl,r=e.threshold??ll;if(!Number.isSafeInteger(t)||t<0||t>yi)throw new f(`Similarity limit must be an integer from 0 to ${yi}.`,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 hi(e){let t=e.limit??ul;if(!Number.isSafeInteger(t)||t<0||t>gi)throw new f(`Duplicate cluster limit must be an integer from 0 to ${gi}.`,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 fl(e,t){let r=R(e.cwd??process.cwd(),e.pmRoot),n=await v(r),o=A(n),i=e.statuses?.map(u=>u.trim().toLowerCase()).filter(Boolean);if(e.statuses!==void 0&&i?.length===0)throw new f("Duplicate cluster statuses must include at least one lifecycle status or all.",m.USAGE);let s=ee(n.schema),a=i?.map(u=>{if(u==="all")return u;let p=_e(u,s);if(!p)throw new f(`Unknown duplicate-cluster status "${u}". Allowed: all, ${s.definitions.map(_=>_.id).join(", ")}.`,m.USAGE);return p}),c=a?.includes("all")===!0;if(c&&a?.some(u=>u!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let d=c?void 0:a,l=d?new Set(d):void 0;return{items:(await oe(r,n.item_format,o.type_to_folder,void 0,n.schema)).filter(u=>(!l||l.has(u.status))&&(!t||new Date(u.created_at).getTime()>=t.getTime())),statuses:d}}var ew={buildDuplicateClusters:wi,collectDuplicateCandidatePairs:wr,createDuplicateUnionFind:bi};function bi(e){let t=Array.from({length:e},(r,n)=>n);return{parent:t,findRoot:r=>{let n=r;for(;t[n]!==n;)n=t[n];for(;t[r]!==r;){let o=t[r];t[r]=n,r=o}return n}}}function pl(e,t,r,n){let o=[];for(let i of t){let[s,a]=i.split(":").map(u=>Number.parseInt(u,10)),c=je(e[s].prepared,e[a].prepared);if(c.score<r)continue;let d=n.findRoot(s),l=n.findRoot(a);d!==l&&(n.parent[l]=d),o.push({left_id:e[s].item.id,right_id:e[a].item.id,...c})}return o}function wi(e,t,r,n){let o=new Map;for(let a of e.keys()){let c=r.findRoot(a),d=o.get(c)??[];d.push(a),o.set(c,d)}let i=new Map(e.map(({item:a},c)=>[a.id,r.findRoot(c)])),s=new Map;for(let a of t){let c=i.get(a.left_id),d=s.get(c)??[];d.push(a),s.set(c,d)}return[...o.values()].filter(a=>a.length>1).map(a=>{let c=(s.get(r.findRoot(a[0]))??[]).sort((d,l)=>l.score-d.score||d.left_id.localeCompare(l.left_id)||d.right_id.localeCompare(l.right_id));return{id:e[a[0]].item.id,items:a.map(d=>{let l=e[d].item;return{id:l.id,title:l.title,status:l.status,type:l.type}}),matches:c,max_score:c[0]?.score??0}}).sort((a,c)=>c.max_score-a.max_score||a.id.localeCompare(c.id)).slice(0,n)}function _l(e,t,r,n,o){return t.filter(i=>!r.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...Ve(e,i.title)})).filter(i=>i.score>=n).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,o)}async function yl(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:n,threshold:o}=Er(t),i=R(t.cwd??process.cwd(),t.pmRoot),s=await v(i),a=A(s),c=await ge(i,Object.values(a.type_to_folder)),d=Se(r),l=c&&d.length>0?await At({pmRoot:i,expectedSourceCursor:c.source_cursor,query:d.map(_=>`"${_.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(n*10,50)}):null,u=l===null?await oe(i,s.item_format,a.type_to_folder,void 0,s.schema):l.items,p=_l(r,u,new Set(e.excludeIds??[]),o,n);return{items:p,count:p.length,threshold:o,source:l?"persistent_index":"metadata_fallback"}}function gl(e,t={}){let{threshold:r}=Er({...t,limit:void 0}),{limit:n}=hi(t),o=new Set;for(let l of e){if(!l.id.trim()||o.has(l.id))throw new f("Duplicate analysis requires unique non-empty item ids.",m.USAGE);o.add(l.id)}let i=[...e].sort((l,u)=>l.id.localeCompare(u.id)).map(l=>({item:l,prepared:Ee(l.title)})),s=wr(i,st,r,t.exhaustive===!0),a=bi(i.length),c=pl(i,s,r,a),d=wi(i,c,a,n);return{clusters:d,count:d.length,threshold:r,cost:{item_count:i.length,algorithm:t.exhaustive===!0||r===0?"exhaustive":"prefix_exact",possible_pairs:i.length*(i.length-1)/2,pair_limit:st,recall_guarantee:"exact",candidate_pairs:s.size,scored_pairs:s.size}}}async function tw(e={}){Er({...e,limit:void 0});let{since:t}=hi(e),{items:r,statuses:n}=await fl(e,t);return{...gl(r,e),source:"metadata_scan",filters:{statuses:n??null,since:e.since??null}}}async function rw(e,t){if(t.mode==="off")return;let r=await yl(e,t);if(r.count===0)return;let n=await ml(r,t),o=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!o){let i=r.items.map(a=>`${a.id} (${a.status}): ${a.title}`).join("; "),s=n.action==="reopen"?"Reopen the canonical item":"Reuse the canonical item";throw new f(`Likely duplicate item(s) found: ${i}. ${s} or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:`${s}, or explicitly acknowledge the duplicate with --allow-duplicate.`,recovery:{suggested_flags:["--allow-duplicate"],suggested_retry:n.command,suggested_retry_args:n.args}})}return{mode:t.mode,bypassed:o,result:r,recovery:n}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f091d0c3-f2a7-5d76-8656-4aebe82e9798")}catch{}})();function ow(e,t){let r=t??{};return e.filter(n=>r[n.id]!==n.updated_at).map(n=>n.id).sort((n,o)=>n.localeCompare(o))}export{os as a,as as b,ds as c,us as d,ms as e,cu as f,fs as g,ps as h,mu as i,_n as j,_s as k,ys as l,gs as m,hs as n,vs as o,Cs as p,fu as q,Rs as r,wn as s,Ls as t,xs as u,pu as v,Ms as w,qe as x,_u as y,He as z,Os as A,Ns as B,Pt as C,Ps as D,$t as E,$s as F,Lu as G,zs as H,Sn as I,Vs as J,js as K,Hs as L,Pu as M,Ys as N,zt as O,Zs as P,Zr as Q,Vt as R,jt as S,Ye as T,Sa as U,Il as V,kt as W,nn as X,Lt as Y,Ni as Z,Fi as _,Rl as $,on as aa,ie as ba,xt as ca,Dt as da,Xt as ea,um as fa,Jt as ga,Ze as ha,Nn as ia,et as ja,Qt as ka,Zt as la,er as ma,tr as na,Vn as oa,jn as pa,Mm as qa,rt as ra,Ce as sa,Gi as ta,dn as ua,Yi as va,Wi as wa,Xi as xa,Ul as ya,Vl as za,we as Aa,ze as Ba,Se as Ca,Ee as Da,Ve as Ea,je as Fa,ln as Ga,rs as Ha,lc as Ia,fc as Ja,_c as Ka,yc as La,Cc as Ma,Zn as Na,Re as Oa,Qf as Pa,it as Qa,Eo as Ra,ih as Sa,lr as Ta,ke as Ua,So as Va,To as Wa,Ro as Xa,fr as Ya,Lo as Za,fh as _a,ph as $a,Do as ab,Oo as bb,yh as cb,jo as db,yr as eb,$o as fb,Uo as gb,Nd as hb,Bo as ib,Go as jb,Gh as kb,Yh as lb,ab as mb,_i as nb,Cb as ob,Rb as pb,Zb as qb,ew as rb,yl as sb,gl as tb,tw as ub,rw as vb,ow as wb};
|
|
20
|
+
//# sourceMappingURL=chunk-2KSPGWLH.js.map
|