@unbrained/pm-cli 2026.8.8 → 2026.8.10
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 +59 -0
- package/dist/cli/commander-usage.js +17 -12
- package/dist/cli/help-json-payload.js +51 -16
- package/dist/cli/main.js +7 -6
- package/dist/cli-bundle/bundle-manifest.json +162 -162
- package/dist/cli-bundle/chunks/chunk-2QYH4QMI.js +30 -0
- package/dist/cli-bundle/chunks/{chunk-2ZMXX3Q6.js → chunk-EBO7OUUE.js} +70 -70
- package/dist/cli-bundle/chunks/{chunk-NUXRRNAB.js → chunk-ETML5C6H.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-JUDU4RO4.js +194 -0
- package/dist/cli-bundle/chunks/chunk-JZSNADRR.js +5 -0
- package/dist/cli-bundle/chunks/chunk-MENWVGJW.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ALDHXLPS.js → chunk-S4EITGLA.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TIGKWVLA.js +13 -0
- package/dist/cli-bundle/chunks/{chunk-CBLA33YK.js → chunk-TRWXF476.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-TSLDTJLQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-list-query-WFZAMJHZ.js → register-list-query-OJ6ZXKV4.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-SOKKOTHQ.js → register-mutation-DKI7QC7O.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-P5OGMT6I.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-2HL5ZHMK.js → register-setup-S3KT2LTH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-ANTMGYLI.js → chunk-2COZ67XT.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-2EXI2DKR.js +4 -0
- package/dist/cli-bundle/focused-chunks/{chunk-YSAHYUXX.js → chunk-34SX654S.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-36FTZ2NT.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-3CQECMKR.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-75774JWP.js +6 -0
- package/dist/cli-bundle/focused-chunks/chunk-7UN6BHHO.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TCSAPH33.js → chunk-CHIBMEZR.js} +6 -6
- package/dist/cli-bundle/focused-chunks/chunk-DZGAHZZV.js +3 -0
- package/dist/cli-bundle/focused-chunks/chunk-FF4MNAYB.js +153 -0
- package/dist/cli-bundle/focused-chunks/chunk-GHTN2ILR.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-I4YM2I7S.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IMDTEN7K.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-IW43E4XL.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-JMVA4HKR.js +5 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PL2EYDJK.js → chunk-KR5RVXLQ.js} +31 -29
- package/dist/cli-bundle/focused-chunks/chunk-KSNJG4KI.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-M6RPIXKC.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-MXYSIQ56.js +18 -0
- package/dist/cli-bundle/focused-chunks/chunk-RIIN5V4N.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-RKWSCYYN.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- 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 +38 -38
- 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 +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +2 -2
- package/dist/core/diagnostics/remediation.js +19 -9
- package/dist/core/fs/fs-utils.d.ts +10 -0
- package/dist/core/fs/fs-utils.js +16 -4
- package/dist/core/history/history.js +13 -4
- package/dist/core/item/actionability.d.ts +7 -1
- package/dist/core/item/actionability.js +71 -15
- package/dist/core/item/item-format.js +3 -32
- package/dist/core/schema/fields-file.d.ts +1 -2
- package/dist/core/schema/fields-file.js +4 -11
- package/dist/core/schema/runtime-schema.js +3 -10
- package/dist/core/schema/status-defs-file.d.ts +1 -2
- package/dist/core/schema/status-defs-file.js +4 -32
- package/dist/core/schema/status-token.d.ts +2 -0
- package/dist/core/schema/status-token.js +32 -0
- package/dist/core/schema/type-workflows.d.ts +1 -2
- package/dist/core/schema/type-workflows.js +4 -11
- package/dist/core/shared/author.d.ts +25 -0
- package/dist/core/shared/author.js +128 -10
- package/dist/core/shared/errors.d.ts +4 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/text-normalization.d.ts +1 -1
- package/dist/core/shared/text-normalization.js +2 -2
- package/dist/sdk/actionability.d.ts +1 -1
- package/dist/sdk/actionability.js +3 -3
- package/dist/sdk/agent/command-recovery.d.ts +4 -0
- package/dist/sdk/agent/command-recovery.js +52 -0
- package/dist/sdk/agent/command-suggestions.d.ts +4 -0
- package/dist/sdk/agent/command-suggestions.js +67 -0
- package/dist/sdk/agent/create-option-policy.d.ts +12 -0
- package/dist/sdk/agent/create-option-policy.js +32 -0
- package/dist/sdk/agent/item-addressing.d.ts +19 -0
- package/dist/sdk/agent/item-addressing.js +208 -0
- package/dist/sdk/cli-bootstrap.d.ts +1 -1
- package/dist/sdk/cli-bootstrap.js +20 -5
- package/dist/sdk/cli-contracts/commander-mutation-options.js +16 -4
- package/dist/sdk/cli-contracts/flag-contracts.js +62 -21
- package/dist/sdk/cli-contracts/registration-helpers.js +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +8 -0
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -3
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +6 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +19 -4
- package/dist/sdk/cli-contracts/tool-schema.js +17 -4
- package/dist/sdk/context-intent-runtime.js +8 -5
- package/dist/sdk/context-signal-store.d.ts +34 -0
- package/dist/sdk/context-signal-store.js +24 -2
- package/dist/sdk/core-governance.d.ts +1 -1
- package/dist/sdk/core-governance.js +3 -3
- package/dist/sdk/dependencies.d.ts +2 -0
- package/dist/sdk/dependencies.js +7 -6
- package/dist/sdk/dependency-flag-validation.d.ts +15 -1
- package/dist/sdk/dependency-flag-validation.js +54 -2
- package/dist/sdk/extension/bundled-catalog.js +19 -6
- package/dist/sdk/generated-error-code-catalog.js +110 -2
- package/dist/sdk/governance/health.js +38 -12
- package/dist/sdk/governance/provenance-health.d.ts +39 -0
- package/dist/sdk/governance/provenance-health.js +185 -0
- package/dist/sdk/governance/validate-item-reader.d.ts +13 -0
- package/dist/sdk/governance/validate-item-reader.js +18 -0
- package/dist/sdk/governance/validate.d.ts +2 -2
- package/dist/sdk/governance/validate.js +25 -11
- package/dist/sdk/governance.d.ts +1 -0
- package/dist/sdk/governance.js +3 -2
- package/dist/sdk/graph/assembly.d.ts +4 -0
- package/dist/sdk/graph/assembly.js +22 -2
- package/dist/sdk/graph/run.d.ts +2 -0
- package/dist/sdk/graph/run.js +3 -2
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/lifecycle/close.js +27 -19
- package/dist/sdk/lifecycle/create.d.ts +2 -0
- package/dist/sdk/lifecycle/create.js +66 -19
- package/dist/sdk/lifecycle/plan.js +6 -3
- package/dist/sdk/lifecycle/update-many.js +39 -27
- package/dist/sdk/lifecycle/update.d.ts +6 -1
- package/dist/sdk/lifecycle/update.js +51 -28
- package/dist/sdk/merge/driver.d.ts +2 -1
- package/dist/sdk/merge/driver.js +7 -4
- package/dist/sdk/merge/index.d.ts +1 -1
- package/dist/sdk/merge/index.js +3 -3
- package/dist/sdk/merge/install.d.ts +4 -0
- package/dist/sdk/merge/install.js +29 -17
- package/dist/sdk/merge/receipts.d.ts +17 -1
- package/dist/sdk/merge/receipts.js +112 -20
- package/dist/sdk/merge/reconcile.js +21 -4
- package/dist/sdk/merge/three-way.d.ts +6 -2
- package/dist/sdk/merge/three-way.js +24 -10
- package/dist/sdk/output-projection.js +24 -4
- package/dist/sdk/query/context.d.ts +2 -0
- package/dist/sdk/query/context.js +7 -4
- package/dist/sdk/query/get.d.ts +11 -0
- package/dist/sdk/query/get.js +37 -3
- package/dist/sdk/query/light-metadata.d.ts +3 -0
- package/dist/sdk/query/light-metadata.js +19 -0
- package/dist/sdk/read-output-contracts.d.ts +1 -1
- package/dist/sdk/read-output-contracts.js +23 -4
- package/dist/sdk/relationship-kinds/contract.d.ts +48 -0
- package/dist/sdk/relationship-kinds/contract.js +22 -0
- package/dist/sdk/relationships.d.ts +6 -41
- package/dist/sdk/relationships.js +12 -126
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.d.ts +4 -1
- package/dist/sdk/runtime.js +8 -3
- package/dist/sdk/schema-migration.js +7 -9
- package/dist/sdk/similarity-scoring.d.ts +1 -2
- package/dist/sdk/similarity-scoring.js +4 -16
- package/dist/sdk/similarity.d.ts +5 -0
- package/dist/sdk/similarity.js +40 -10
- package/dist/sdk/structured-mutations.js +5 -2
- package/dist/sdk/test/linked-command-detection.d.ts +2 -7
- package/dist/sdk/test/linked-command-detection.js +22 -9
- package/dist/sdk/workspace-snapshot.d.ts +4 -0
- package/dist/sdk/workspace-snapshot.js +24 -11
- package/docs/AGENT_GUIDE.md +5 -2
- package/docs/COMMANDS.md +27 -6
- package/docs/DEPENDENCY_KIND_CONTRACT.md +29 -0
- package/docs/ITEM_READ_PROJECTIONS.md +26 -0
- package/docs/MERGE_SAFETY.md +17 -8
- package/docs/README.md +2 -5
- package/docs/READ_OUTPUT_CONTRACTS.md +2 -2
- package/docs/RELATIONSHIP_GRAPH.md +1 -1
- package/docs/SDK.md +33 -8
- package/docs/SDK_AGENT_SESSION_CONTEXT.md +36 -2
- package/docs/SDK_CONTEXT.md +97 -0
- package/docs/SDK_CONTEXT_INTEGRITY.md +33 -3
- package/docs/SENTRY_CONTRACT_EPOCHS.md +20 -0
- package/docs/agent-task-token-baseline.json +2 -2
- package/marketplace.json +2 -2
- package/package.json +5 -4
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +415 -43
- package/dist/cli-bundle/chunks/chunk-GKA54IJM.js +0 -5
- package/dist/cli-bundle/chunks/chunk-KRY7SRUO.js +0 -2
- package/dist/cli-bundle/chunks/chunk-MNJ4NNSY.js +0 -26
- package/dist/cli-bundle/chunks/chunk-OJPCFDDY.js +0 -13
- package/dist/cli-bundle/chunks/chunk-PFSD3DAN.js +0 -194
- package/dist/cli-bundle/chunks/chunk-SQ7QZFQ6.js +0 -2
- package/dist/cli-bundle/chunks/register-operations-5XQETS6E.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-54EU2UVO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5FLBTZJQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5GJ57YKN.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CMDS3KYT.js +0 -14
- package/dist/cli-bundle/focused-chunks/chunk-DMKOMTTY.js +0 -6
- package/dist/cli-bundle/focused-chunks/chunk-F5B3HBEZ.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-FI6DWU2M.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-FNOKJG6N.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-FPDYXZBK.js +0 -4
- package/dist/cli-bundle/focused-chunks/chunk-GWI6YIKJ.js +0 -3
- package/dist/cli-bundle/focused-chunks/chunk-HCUC62AB.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-HGNKPSCB.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-IAS7PMLG.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-SM2PJGP3.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-U646T7Z6.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-YKPE4PPY.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-ZOLDTUU7.js +0 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{$ as Ce,La as Z,M as k,Ma as Y,Na as ee,R as gt,S as yt,Sa as te,bb as De,cb as ke,ea as ve,fa as Le,ha as wt,k as Ae,n as X,ta as Et,za as bt}from"./chunk-FF4MNAYB.js";import{E as be,M as Se,N as Te,O as xe,P as pt,S as _t,T as g,V as B,W as $,X as b,Z as ht,a as we,p as z,r as T,s as S,u as J}from"./chunk-2EXI2DKR.js";import{R as Ee,Y as f,Z as p,ba as Ie}from"./chunk-GHTN2ILR.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]="b9581c92-5e8a-589d-9681-d4d014e6902b")}catch{}})();function Hr(e,t="--limit"){if(e===void 0)return;let r=Number(e);if(!Number.isFinite(r)||r<0)throw new p(`${t} must be a non-negative number`,f.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]="7775a1f2-5167-5853-a2c5-a44d46f8e80e")}catch{}})();var Br=/\b(?:gh[pousr]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{20,})\b/,Yr=/\bnpm_[A-Za-z0-9]{36}\b/,Wr=/\bxox[baprs]-(?=[A-Za-z0-9-]{20,80}\b)(?=[A-Za-z0-9-]*\d)[A-Za-z0-9-]{20,80}\b/,Gr=/-----BEGIN (?:[A-Z0-9]+ )?PRIVATE KEY-----/,Kr=/\b(?:AKIA|ASIA)[A-Z0-9]{16}\b/,St=/\b(?:token|secret|password|passwd|api[_-]?key)\s*[:=]\s*["']?([A-Za-z0-9+/=_-]{24,})/gi,Qr=[{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"}],Re=new Map(Qr.map(e=>[e.action,e]));function Jr(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);let r=0;for(let n of t.values()){let o=n/e.length;r-=o*Math.log2(o)}return r}function Ne(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)=>Ne(n,`${t}[${o}]`,r)):Object.entries(e).flatMap(([n,o])=>Ne(o,`${t}.${n}`,r)))}function Tt(e){let t=[];for(let r of Ne(e)){Br.test(r.value)&&t.push({rule:"github_token",path:r.path}),Yr.test(r.value)&&t.push({rule:"npm_token",path:r.path}),Wr.test(r.value)&&t.push({rule:"slack_token",path:r.path}),Gr.test(r.value)&&t.push({rule:"private_key",path:r.path}),Kr.test(r.value)&&t.push({rule:"aws_access_key",path:r.path}),St.lastIndex=0;for(let n of r.value.matchAll(St)){let o=n[1];if(Jr(o)>=3.5){t.push({rule:"high_entropy_assignment",path:r.path});break}}}return t.filter((r,n,o)=>o.findIndex(i=>i.rule===r.rule&&i.path===r.path)===n)}function Xr(e){let t=e.author.trim()||"unknown";if(e.settings.require_attributed_author&&t.toLowerCase()==="unknown")throw new p("Mutation author is required by workspace policy.",f.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=Tt(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 p(`Mutation blocked by secret guard (${n}). No detected value was logged.`,f.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 Zr(e){return Re.has(e.trim().toLowerCase())}function en(){return[...Re.keys()].sort((e,t)=>e.localeCompare(t))}function Ys(e){return Re.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]="3ad30a32-0f83-5473-b0a3-349e271d8378")}catch{}})();function tn(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function Gs(e){return tn(e).split(/[^a-z0-9]+/).filter(t=>t.length>0)}function re(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]="dff9b113-2b29-5154-afbf-f191f2f556a6")}catch{}})();var rn=/\b[a-z][a-z0-9]*-\d+(?:-[a-z0-9]+)*\b/giu;function Oe(e){return e.trim().toLowerCase().replace(/\s+/g," ")}function It(e){return[...new Set(Oe(e).match(/[\p{L}\p{N}]+/gu)??[])]}function xt(e){let t=Oe(e);return{normalized:t,tokens:It(t),issueCodes:[...new Set(t.match(rn)?.map(r=>r.toLowerCase())??[])]}}function nn(e,t){return on(xt(e),xt(t))}function on(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:re(e.tokens,t.tokens),reason:"title_token_jaccard"}}import sn 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]="376bb9d2-e202-57e7-86c8-d70a7d3fa7ab")}catch{}})();function ne(e){return(e??"in_progress").trim().toLowerCase().replaceAll("-","_")}function an(e,t){return[e.updated_at,t].map(n=>({value:n,time:Date.parse(n??"")})).filter(n=>typeof n.value=="string"&&Number.isFinite(n.time)).sort((n,o)=>o.time-n.time)[0]?.value??e.updated_at}function At(e,t){let r=Math.max(1,Math.trunc(t.threshold_hours)),n=(t.now??new Date).getTime(),o=ne(t.in_progress_status),i=[];for(let s of e){if(ne(String(s.status))!==o||(s.assignee?.trim().length??0)>0)continue;let a=an(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 cn(e,t,r){let n=new Map;return await Promise.all(t.filter(o=>ne(String(o.status))===ne(r.in_progress_status)&&(o.assignee?.trim().length??0)===0).map(async o=>{let i;try{i=await wt(sn.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)})),At(t,{...r,last_history_activity:o=>n.get(o.id)})}import{mkdir as dn,readFile as un}from"node:fs/promises";import Ct 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]="71a8cd89-54fc-5f8a-b93b-9e4a79bb34b6")}catch{}})();function ln(e){let t=e.trim();if(!t)throw new p("--rollback requires a non-empty checkpoint ID",f.USAGE);if(!/^[a-zA-Z0-9._-]+$/.test(t))throw new p("--rollback checkpoint ID must match [a-zA-Z0-9._-]+",f.USAGE);return t}function fn(e,t){let r=t.replace(/[-:.TZ]/g,"").slice(0,14),n=Math.random().toString(36).slice(2,8);return`${e}-${r}-${n}`}function vt(e,t){return Ct.join(e,"checkpoints",t)}function Lt(e,t,r){return Ct.join(vt(e,t),`${r}.json`)}async function mn(e,t,r,n){let o=vt(e,t);await dn(o,{recursive:!0});let i=Lt(e,t,r);return await S(i,`${JSON.stringify(n,null,2)}
|
|
2
|
+
`),i}function pn(e,t){if(!Array.isArray(e.items))throw new p(`Checkpoint ${t} is missing items`,f.GENERIC_FAILURE);return e.items.map(r=>{if(!r||typeof r!="object")throw new p(`Checkpoint ${t} contains an invalid item entry`,f.GENERIC_FAILURE);let n=r;if(typeof n.id!="string"||n.id.trim().length===0)throw new p(`Checkpoint ${t} contains an item entry without ID`,f.GENERIC_FAILURE);if(typeof n.target_updated_at!="string"||n.target_updated_at.trim().length===0)throw new p(`Checkpoint ${t} contains an item entry without target_updated_at`,f.GENERIC_FAILURE);return{id:n.id.trim(),target_updated_at:n.target_updated_at.trim()}})}async function _n(e,t,r,n){let o=ln(r),i=Lt(e,t,o);if(!await z(i))throw new p(`Checkpoint ${o} not found`,f.NOT_FOUND);let s=await un(i,"utf8"),a;try{a=JSON.parse(s)}catch(u){throw new p(`Checkpoint ${o} contains invalid JSON: ${b(u)}`,f.GENERIC_FAILURE)}if(!a||typeof a!="object")throw new p(`Checkpoint ${o} is invalid`,f.GENERIC_FAILURE);let c=a;if(c.schema_version!==n)throw new p(`Checkpoint ${o} has unsupported schema version`,f.GENERIC_FAILURE);let d=pn(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:k(),author:typeof c.author=="string"?c.author:"unknown"}}async function hn(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:b(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]="4507a449-1c20-5684-9ed8-e72c9bc694c1")}catch{}})();function F(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function gn(e,t){let r=F(t);return!e||!r?null:[...e.search_providers].reverse().find(o=>(F(o.runtime_definition?.name)??F(o.definition?.name))===r)??null}function yn(e,t){let r=F(t);return!e||!r?null:[...e.vector_store_adapters].reverse().find(o=>(F(o.runtime_definition?.name)??F(o.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]="19ff592c-0746-54e8-a304-2006f4845da2")}catch{}})();function Dt(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Me(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?Dt(r):"metadata"}let t=e.replace(/^\//,"").split("/")[0];return t?Dt(t):"root"}function oe(e,t){return t==="body"?e.body:t==="metadata"?e.metadata:t==="root"?e:e.metadata[t]}function wn(e,t){let r=t?.windowStartIndex??0,n=t?.field;if(e.length===0||r>=e.length)return[];let o=Et(),i=[];for(let s=0;s<e.length;s+=1){let a=e[s],c=o,d=bt(o,a.patch),u;d.ok?(u=d.document,o=u):u=c;let m=new Set;for(let l of a.patch)m.add(Me(l.path)),l.from!==void 0&&m.add(Me(l.from));let _=[...m].sort((l,h)=>l.localeCompare(h));if(s>=r)if(n!==void 0){if(!m.has(n))continue;let l={field:n,before:oe(c,n),after:oe(u,n)};i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:[n],changes:[l]})}else{let l=_.map(h=>({field:h,before:oe(c,h),after:oe(u,h)}));i.push({index:s+1,ts:a.ts,op:a.op,author:a.author,patch_ops:a.patch.length,changed_fields:_,changes:l})}}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]="7426082f-94a6-5b4e-9748-d3faab2fe1d4")}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]="4a376062-2e23-5991-80a5-27183909caf3")}catch{}})();var En=new Set(["none","null","undefined"]);function wa(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new p("Config set parent-reference-policy requires --policy with one of: warn, strict_error (alias: strict)",f.USAGE)}function bn(e){if(typeof e!="string")throw new p("--parent must be a string. Use --unset parent to clear this field.",f.USAGE);let t=e.trim();if(t.length===0)throw new p("--parent must not be empty. Use --parent none to unset.",f.USAGE);if(kt(t))throw new p(`--parent must not use placeholder token "${t}". Use --unset parent to clear this field.`,f.USAGE);return t}function kt(e){return En.has(e.trim().toLowerCase())}function Sn(e,t){if(t==="strict_error")throw new p(`Parent item "${e}" was not found. Create it first or use --parent none.`,f.USAGE);return{warnings:[`validation_warning:parent_reference_missing:${e}`]}}function Tn(e,t,r){let n=te(e,r),o=te(t,r);if(n!==o)return;let i=t!==o||e!==n?` (normalized from parent "${t}" and item "${e}")`:"";throw new p(`Parent item "${o}" cannot be the same as item "${n}"${i}. Use --unset parent to clear this field.`,f.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]="d5003dd5-f208-5734-9711-dff935d8c851")}catch{}})();var V="-",Nt=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 Rt(e){let t=e.trim();if(t==="")return[];let n=(vn(t)??t.split(",")).map(o=>o.trim()).filter(Boolean).map(o=>o.toLowerCase());return Array.from(new Set(n)).sort((o,i)=>o.localeCompare(i))}function Ot(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let r of e)if(typeof r=="string")for(let n of Rt(r))t.push(n);return Array.from(new Set(t)).sort((r,n)=>r.localeCompare(n))}function Mt(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim().toLowerCase()).filter(Boolean):[]}function xn(e){return typeof e!="string"?[]:e.split(";").map(t=>t.trim()).filter(Boolean)}function In(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 p('Acceptance criteria added with --add-ac cannot contain ";" because semicolons delimit stored criteria',f.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 An(e,t){let r=Mt(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 Ot(t))n.add(o);return Array.from(n).sort((o,i)=>o.localeCompare(i))}function Cn(e,t){let r=Array.from(new Set(Mt(e))).sort((o,i)=>o.localeCompare(i));if(!t||t.length===0)return r;let n=new Set(Ot(t));return n.size===0?r:r.filter(o=>!n.has(o))}function vn(e){if(!e.startsWith("["))return null;let t;try{t=JSON.parse(e)}catch{return null}return t.map(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean"?String(n):"").filter(n=>n.length>0)}function Pe(e){return e.replace(/\r\n/g,`
|
|
3
|
+
`)}function Pt(e){let t=Pe(e).trim();if(!t.startsWith("```"))return e;let r=t.split(`
|
|
4
|
+
`);return r.length<2||r.at(-1)?.trim()!=="```"?e:r.slice(1,-1).join(`
|
|
5
|
+
`)}function Ln(e){let t=[],r="",n=!1,o=!1;for(let i of e){if(o){r+=i,o=!1;continue}if(i==="\\"){r+=i,o=!0;continue}if(i==='"'){n=!n,r+=i;continue}if(i===","&&!n){t.push(r.trim()),r="";continue}r+=i}return r.trim()&&t.push(r.trim()),t}function zt(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 Dn(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 kn(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 Nn(e,t){let r=e.replaceAll(/\s+/g," ").trim(),n=r.length>160?`${r.slice(0,157)}...`:r,o=kn(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} ${V} to read piped stdin input.`}function Rn(e){let t=Pt(e).trim();if(t.length===0||!t.includes(`
|
|
6
|
+
`)&&!t.startsWith("-")&&!t.startsWith("*")&&!t.startsWith("+"))return null;let r={},n,o=Pe(t).split(`
|
|
7
|
+
`).map(i=>i.trim()).filter(i=>i.length>0);for(let i of o){let s=i.match(/^(?:[-*+]\s+)?([a-zA-Z0-9_.-]+)\s*(=|:)\s*(.*)$/);if(s){let a=s[1].trim();r[a]=zt(s[3].trim()),n=a;continue}if(n&&Nt.has(n.toLowerCase())){r[n]=`${r[n]}
|
|
8
|
+
${i}`;continue}return null}return r}function On(e,t){let r=Pt(e).trim();if(!r)throw new p(`${t} cannot be empty`,f.USAGE);let n=Rn(r);if(n)return n;let o={},i,s=Ln(r);for(let a of s){let c=Dn(a);if(c>0){let d=a.slice(0,c).trim(),u=zt(a.slice(c+1).trim());o[d]=u,i=d;continue}if(i&&Nt.has(i.toLowerCase())){o[i]=`${o[i]},${a.trim()}`;continue}throw new p(Nn(e,t),f.USAGE)}return o}var Mn=/^[A-Za-z]:[\\/]/,Pn=/^(?:[-*+]\s+)?[A-Za-z_][A-Za-z0-9_.-]*\s*=/;function zn(e){let t=e.trim();return Mn.test(t)?!1:Pn.test(t)}function $n(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 p(`${t} does not recognize key${o.length>1?"s":""} ${o.map(i=>`"${i}"`).join(", ")}. Allowed keys: ${r.join(", ")}.`,f.USAGE);for(let i of Object.keys(e)){let s=i.toLowerCase();if(s!==i){if(Object.hasOwn(e,s))throw new p(`${t} provides key "${i}" more than once after case normalization.`,f.USAGE);e[s]=e[i],delete e[i]}}}async function Fn(e){if(process.stdin.isTTY===!0)throw new p(`${e} value "${V}" requires piped stdin input. Pipe content into the command, or end manual stdin with Ctrl+D (Unix/macOS) or Ctrl+Z then Enter (Windows).`,f.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(Pe(n))}),process.stdin.on("error",o=>{r(o)})})}function Vn(){let e,t,r=async i=>{if(t&&t!==i)throw new p(`Only one option may use "${V}" stdin token per command invocation. Already used by ${t}.`,f.USAGE);return t=i,e||(e=Fn(i)),await e};return{resolveValue:async(i,s)=>{if(i!==void 0)return i.trim()!==V?i:await r(s)},resolveList:async(i,s)=>{if(!i)return;let a=i.map((u,m)=>u.trim()===V?m:-1).filter(u=>u>=0);if(a.length===0)return i;if(a.length>1)throw new p(`${s} accepts "${V}" stdin token at most once per command invocation`,f.USAGE);let c=await r(s),d=[...i];return d[a[0]]=c,d}}}function Un(e,t){let r=Number(e);if(!Number.isFinite(r))throw new p(`Invalid ${t} value "${e}"`,f.USAGE);return r}function jn(e,t){let r=e.trim(),n=Number(r);if(r===""||!Number.isInteger(n)||n<0)throw new p(`Invalid ${t} value "${e}". Expected a non-negative integer.`,f.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]="806bf35f-dc7e-55a8-9bb9-64be87111c22")}catch{}})();var ze={critical:0,high:1,medium:2,low:3,minimal:4},qn=Object.keys(ze),Hn=`numbers 0..4 (0=critical, 1=high, 2=medium, 3=low, 4=minimal) or names (${qn.join(", ")}), case-insensitive`;function ie(e){return new p(`Invalid priority "${e}". Accepted values: ${Hn}.`,f.USAGE)}function Bn(e){if(typeof e=="number"){if(Number.isInteger(e)&&e>=0&&e<=4)return e;throw ie(String(e))}if(typeof e!="string")throw ie(String(e));let t=e.trim();if(t.length===0)throw ie(e);let r=t.toLowerCase();if(Object.prototype.hasOwnProperty.call(ze,r))return ze[r];if(/^[0-4]$/.test(t))return Number(t);throw ie(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]="bf76a01e-7292-59df-94ca-1e41aaff7365")}catch{}})();var Yn=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,Wn=64;function La(e){let t=e?.trim().toLowerCase().replaceAll("-","_");if(t==="warn"||t==="strict_error")return t;if(t==="strict")return"strict_error";throw new p("Config set sprint-release-format-policy requires --policy with one of: warn, strict_error (alias: strict)",f.USAGE)}function Gn(e,t,r){let n=t.trim();if(n.length===0)throw new p(`--${e} must not be empty. Use --${e} none to unset.`,f.USAGE);if(n.length<=Wn&&Yn.test(n))return{value:n,warnings:[]};let i="Expected 1-64 characters matching [A-Za-z0-9][A-Za-z0-9._/-]* (no spaces).";if(r==="strict_error")throw new p(`Invalid --${e} value "${n}". ${i}`,f.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]="d0e997bc-8bdb-5602-8606-73ecf77b2a35")}catch{}})();var $t={open:"open_status",closed:"close_status",canceled:"canceled_status",cancelled:"canceled_status"},Ft="all";function Ma(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]===Ft}function Kn(e,t){let r=e.trim().toLowerCase();if(r.length===0)return;let n=$t[r];return n?t[n]:Ce(e,t)}function Qn(e){let t=new Set(Object.keys($t));for(let r of e.definitions){t.add(r.id);for(let n of r.aliases)t.add(n)}return[...t]}function Jn(e,t){let r=e.trim().toLowerCase(),n,o=Number.POSITIVE_INFINITY;for(let i of Qn(t)){let s=we(r,i.toLowerCase(),2);s!==null&&s<o&&(n=i,o=s)}return n}function Xn(e,t,r){if(typeof e!="string")return;let n=r?.strict===!0,o=r?.flagLabel??"--status",i=e.split(",").map(c=>c.trim()).filter(c=>c.length>0);if(i.length===0)return;if(i.filter(c=>c.trim().toLowerCase()===Ft).length>0){if(i.length===1)return;throw new p(`Invalid ${o} value "all". Use it by itself, or omit ${o} to search every status.`,f.USAGE)}let a=[];for(let c of i){let d=Kn(c,t);if(d===void 0){if(n){let u=Jn(c,t);throw new p(`Invalid ${o} value "${c}". Use open|closed|canceled or a configured status id${u?`. Did you mean "${u}"?`:"."}`,f.USAGE)}a.push(c);continue}a.push(d)}return[...new Set(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]="b7a167e0-3041-5056-a672-ea0a054ed8df")}catch{}})();var Zn={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 eo(e){if(e!==void 0)return Zn[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]="6d11dc0f-e313-5b39-965d-6bc84ad52966")}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]="43a56374-808c-5fa6-bd6c-5d93175df0d2")}catch{}})();function Vt(e,t){return Ie(e,t)}function to(e,t,r){let n={};for(let o of t.command_to_fields.get(r)??[]){let i=gt(e,o);i!==void 0&&(n[o.metadata_key]=yt(o,i))}return n}function ro(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(a=>String(a));if(!n.map(a=>String(a)).every(a=>i.includes(a)))return!1;continue}if(!Vt(o,n[n.length-1]))return!1;continue}if(!Vt(o,n))return!1}return!0}import{spawnSync as jt}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]="12bfc6e7-8979-58e8-8276-98cc859f3e32")}catch{}})();var no="PM_DISABLE_OLLAMA_AUTO_DEFAULTS",oo="PM_OLLAMA_MODEL",io="http://localhost:11434",so="qwen3-embedding:0.6b",ao=".agents/pm/search/lancedb/",co=1500,uo=2500,lo=/qwen.*(?:embed|embedding)|(?:embed|embedding).*qwen/i,fo=/embed|embedding/i,I=g;function mo(){let e=I(process.env[no]);if(!e)return!1;let t=e.toLowerCase();return t==="1"||t==="true"||t==="yes"}function Ut(e){return e.some(t=>I(t)!==null)}function po(e){let t=I(e);return!!(t&&t.toLowerCase()!=="ollama")}function _o(e){let t=I(e);return!!(t&&t.toLowerCase()!=="lancedb")}function ho(e){return po(e.search?.provider)||_o(e.vector_store?.adapter)||Ut([e.providers?.openai?.base_url,e.providers?.openai?.model,e.providers?.openai?.api_key])?!0:Ut([e.vector_store?.qdrant?.url,e.vector_store?.qdrant?.api_key])}function go(){let e=jt("ollama",["--version"],{encoding:"utf8",timeout:co});return e.error?!1:e.status===0}function yo(e){let t=e.split(/\r?\n/).map(i=>i.trim()).filter(i=>i.length>0);if(t.length===0)return null;let r=t.map(i=>i.split(/\s+/)[0]?.trim()).filter(i=>!!(i&&i.length>0)).filter(i=>i.toUpperCase()!=="NAME");if(r.length===0)return null;let n=r.find(i=>lo.test(i));return n||(r.find(i=>fo.test(i))??null)}function wo(e){let t=I(e.providers?.ollama?.model);if(t)return t;let r=I(process.env[oo]);if(r)return r;let n=jt("ollama",["list"],{encoding:"utf8",timeout:uo});if(!n.error&&n.status===0){let o=yo(typeof n.stdout=="string"?n.stdout:"");if(o)return o}return null}function Eo(e){return{baseUrl:I(e.providers?.ollama?.base_url)===null,model:I(e.providers?.ollama?.model)===null,lancedbPath:I(e.vector_store?.lancedb?.path)===null,embeddingModel:I(e.search?.embedding_model)===null}}function bo(e){return e.baseUrl||e.model||e.lancedbPath||e.embeddingModel}function So(e,t,r){if(!t.baseUrl&&!t.model)return;let n=e.providers??={},o=n.ollama??={};t.baseUrl&&(o.base_url=io),t.model&&(o.model=r)}function To(e,t){if(!t.lancedbPath)return;let r=e.vector_store??={},n=r.lancedb??={};n.path=ao}function xo(e,t,r){if(!t.embeddingModel)return;let n=e.search??={};n.embedding_model=r}function se(e){let t={settings:e,auto_ollama_defaults_applied:!1};if(mo()||ho(e))return t;let r=Eo(e);if(!bo(r)||r.model&&!go())return t;let n=structuredClone(e),o=wo(n);return o?(So(n,r,o),To(n,r),xo(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 ${so} 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]="d8d5f7e9-5293-564b-bc44-f5ba30336893")}catch{}})();var Co="reindex";import nr 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]="b5ce7132-0024-5d42-9cb8-585933beb7c7")}catch{}})();var vo=3e4;function N(e,t,r=vo){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 R(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 Lo(e){try{return(await e.text()).replaceAll(/\s+/g," ").trim()}catch(t){return`(failed to read response body: ${b(t)})`}}async function ae(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: ${b(o)}`)}if(!n.ok){let o=await Lo(n),i=o.length>0?`: ${o}`:"";throw new Error(`${e.requestLabel} failed with status ${n.status} ${n.statusText}${i}`)}try{return await n.json()}catch(o){throw new Error(`${e.responseLabel} JSON parse failed: ${b(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]="af754be6-8026-530a-8a20-b03d4ed742e1")}catch{}})();function nc(e,t){let r=g(e);if(!r)return"unconfigured";let n=g(t);return n&&n.toLowerCase()===r.toLowerCase()?"configured":"auto-detected"}function Do(e){let t=B(e),r=t.toLowerCase();return r.endsWith("/embeddings")?t:r.endsWith("/v1")?`${t}/embeddings`:`${t}/v1/embeddings`}function Bt(e){let t=e.search?.embedding_model;return g(t)||null}function ko(e){let t=g(e.providers?.openai?.base_url),r=g(e.providers?.openai?.model);if(!t||!r)return null;let n=Bt(e),o=g(e.providers?.openai?.api_key);return{name:"openai",base_url:t,model:n??r,...o?{api_key:o}:{}}}function No(e){let t=g(e.providers?.ollama?.base_url),r=g(e.providers?.ollama?.model);if(!t||!r)return null;let n=Bt(e);return{name:"ollama",base_url:t,model:n??r}}function Yt(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 Ro(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 Oo(e){let t=e.map((n,o)=>({embedding:n.embedding,index:n.index,position:o}));if(t.some(n=>n.index!==void 0)){for(let n of t)if(!Number.isInteger(n.index))throw new TypeError(`OpenAI embedding response entry at position ${n.position} is missing a valid integer index`);return[...t].sort((n,o)=>{let i=n.index-o.index;return i!==0?i:n.position-o.position})}return t}function $e(e){let t=ko(e),r=No(e),n=[t,r].filter(a=>a!==null),o=g(e.search?.provider),i=o?o.toLowerCase():null;return{active:(i?n.find(a=>a.name===i):void 0)??n[0]??null,available:n}}function Ht(e){let t=B(e.base_url);return e.name==="openai"?{provider:"openai",endpoint:Do(t),model:e.model}:{provider:"ollama",endpoint:`${t}/api/embed`,model:e.model}}function Mo(e,t){let r=Yt(t);return e.name==="openai"?{target:Ht(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:Ht(e),method:"POST",headers:{"content-type":"application/json"},body:{model:e.model,input:r}}}function Po(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 Oo(o).map((s,a)=>{let c=s.embedding;if(!$(c))throw new Error(`OpenAI embedding response entry at index ${a} is missing a numeric embedding vector`);return[...c]})}let r=t.embedding;if($(r))return[[...r]];let n=t.embeddings;if(Array.isArray(n)&&n.length>0)return n.map((o,i)=>{if(!$(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 Wt(e,t,r={}){let n=N(r.timeout_ms,"Embedding request"),o=R(r.fetcher,"Embedding request"),i=Yt(t),s=Ro(i),a=Mo(e,s.uniqueInputs),c=await ae({endpoint:a.target.endpoint,method:a.method,headers:a.headers,body:a.body,timeoutMs:n,fetcher:o,requestLabel:"Embedding request",responseLabel:"Embedding response"}),d=Po(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(u=>[...d[u]])}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="61c0153b-8fa5-5c26-aa88-ca9807f2d160")}catch{}})();var ce=["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 Fe(e){let t=e?.search?.corpus_fields;if(!Array.isArray(t))return[...ce];let r=new Set(ce),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:[...ce]}var zo=8e3,Ve=3200,O="...[semantic corpus truncated]",$o="search_embedding_corpus_max_characters_invalid:using_provider_default";function C(e){return e.map(t=>t==null?"":String(t).trim()).filter(t=>t.length>0).join(" ")}function Fo(e){return(e.reminders??[]).map(t=>C([t.at,t.text]))}function Vo(e){return(e.events??[]).map(t=>C([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 Uo(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 jo(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 sc(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??[])Uo(t,r);return jo(t,e),t.filter(r=>typeof r=="string"&&r.length>0).join(" ")}function qo(e){let t=(e.plan_steps??[]).map(s=>C([s.order,s.id,s.title,s.body,s.status,s.owner,s.evidence,s.blocked_reason,s.superseded_by,(s.linked_items??[]).map(a=>C([a.kind,a.id,a.note])).join(" "),(s.files??[]).map(a=>C([a.path,a.note])).join(" "),(s.tests??[]).map(a=>C([a.command,a.path,a.note])).join(" "),(s.docs??[]).map(a=>C([a.path,a.note])).join(" ")])),r=(e.plan_decisions??[]).map(s=>C([s.decision,s.rationale,s.evidence,s.step_id])),n=(e.plan_discoveries??[]).map(s=>C([s.text,s.step_id])),o=(e.plan_validation??[]).map(s=>C([s.text,s.command,s.expected]));if([e.plan_mode,e.plan_scope,e.plan_harness,e.plan_resume_context,...t,...r,...n,...o].some(s=>s!==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 A(e){return typeof e=="string"&&e.trim().length>0}var Ho={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=>A(e.metadata.assignee)?e.metadata.assignee:void 0,parent:e=>A(e.metadata.parent)?e.metadata.parent:void 0,goal:e=>A(e.metadata.goal)?e.metadata.goal:void 0,value:e=>A(e.metadata.value)?e.metadata.value:void 0,why_now:e=>A(e.metadata.why_now)?e.metadata.why_now:void 0,risk:e=>A(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=>A(e.metadata.acceptance_criteria)?e.metadata.acceptance_criteria:void 0,resolution:e=>A(e.metadata.resolution)?e.metadata.resolution:void 0,expected_result:e=>A(e.metadata.expected_result)?e.metadata.expected_result:void 0,actual_result:e=>A(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=>Fo(e.metadata),events:e=>Vo(e.metadata),dependencies:e=>(e.metadata.dependencies??[]).map(t=>({id:t.id,kind:t.kind})),plan:e=>qo(e.metadata)};function Gt(e,t={}){let r=t.fields??ce,n={};for(let o of r){let i=Ho[o];if(!i)continue;let s=i(e);s!==void 0&&(n[o]=s)}return n}function Bo(e){return e?.trim().toLowerCase()==="ollama"?Ve:zo}function U(e,t){let r=Bo(e),n=ht(t);return n!==null?{maxCharacters:n,warning:null}:{maxCharacters:r,warning:t==null?null:$o}}function Ue(e,t={}){let r=JSON.stringify(Gt(e,{fields:t.fields})),n=U(t.providerName,t.maxCharacters).maxCharacters;if(r.length<=n)return r;if(n<=O.length)return O.slice(0,n);let o=Math.max(0,n-O.length);return`${r.slice(0,o)}${O}`}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2c518b97-bc75-5e3f-91e8-d6779d565558")}catch{}})();function Yo(e,t){let r=e.search.embedding_batch_size,n=e.search.embedding_timeout_ms,o=e.search.scanner_max_batch_retries,i=Number.isFinite(r)&&r>0?Math.floor(r):1,s=Number.isFinite(n)&&n>0?Math.floor(n):3e4,a=Number.isFinite(o)&&o>=0?Math.floor(o):0;return{batchSize:i,timeoutMs:s,maxRetries:a,maxBatchInputCharacters:Number.POSITIVE_INFINITY,maxInputCharacters:t}}function Wo(e,t,r){let n=[],o=[],i=0;for(let s of e){let a=o.length>=t,c=o.length>0&&Number.isFinite(r)&&i+s.length>r;(a||c)&&(n.push(o),o=[],i=0),o.push(s),i+=s.length}return n.push(o),n}function Go(e,t){return e.name!=="ollama"?t:{...t,maxBatchInputCharacters:Ve}}function Ko(e,t){if(!Number.isFinite(t)||t<=0||e.length<=t)return e;let r=Math.max(0,t-O.length);return`${e.slice(0,r)}${O}`.slice(0,t)}function Kt(e){let t=b(e).toLowerCase();return t.includes("timed out")||t.includes("timeout")}function Qo(e,t,r,n,o,i){let s=`Embedding batch ${t} failed after ${o} attempt(s): ${b(i)}`,a=`provider=${e.name} model=${e.model} batch_size=${r} timeout_ms=${n}`;return Kt(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})`}async function je(e,t,r,n,o,i){let s=null;for(let a=0;a<=o;a+=1)try{let c=await Wt(e,t,{timeout_ms:n});return a>0&&i.push(`search_embedding_batch_retry_succeeded:batch=${r}:attempt=${a+1}:size=${t.length}`),c}catch(c){if(s=c,Kt(c)&&t.length>1){let d=Math.ceil(t.length/2),u=t.slice(0,d),m=t.slice(d);return i.push(`search_embedding_batch_split_after_timeout:batch=${r}:size=${t.length}:parts=${u.length}|${m.length}`),[...await je(e,u,`${r}.1`,n,o,i),...await je(e,m,`${r}.2`,n,o,i)]}if(a<o){let d=Math.min(1e3*2**a,8e3);await new Promise(u=>setTimeout(u,d))}}throw new Error(Qo(e,r,t.length,n,o+1,s))}async function qe(e,t,r,n={}){if(r.length===0)return{vectors:[],warnings:[]};let o=[],i=U(e.name,t.search.embedding_corpus_max_characters);i.warning&&o.push(i.warning);let s=Go(e,Yo(t,i.maxCharacters)),a=0,c=r.map(_=>{let l=Ko(_,s.maxInputCharacters);return l.length<_.length&&(a+=1),l});a>0&&o.push(`search_embedding_input_truncated:count=${a}:max_characters=${s.maxInputCharacters}`);let d=Wo(c,s.batchSize,s.maxBatchInputCharacters),u=[],m=0;for(let _=0;_<d.length;_+=1){let l=d[_];n.onProgress?.({batch_index:_+1,batch_total:d.length,batch_size:l.length,completed_inputs:m,total_inputs:c.length,phase:"start"}),u.push(...await je(e,l,String(_+1),s.timeoutMs,s.maxRetries,o)),m+=l.length,n.onProgress?.({batch_index:_+1,batch_total:d.length,batch_size:l.length,completed_inputs:m,total_inputs:c.length,phase:"complete"})}return{vectors:u,warnings:o}}import{mkdir as Jo,readFile as Xo,stat as Ye,unlink as Zo}from"node:fs/promises";import{basename as Qt,dirname as He,isAbsolute as ei,join as ti,resolve as We}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]="7bac9506-dcad-5e52-848b-3e2631d4936c")}catch{}})();var Ge="pm_items",ri=/[^a-zA-Z0-9_-]/g,ni=128,oi=".pm-cli-local-vectors",Be=1,M=new Map;function G(e){return(g(e.collection_name)??Ge).replaceAll(ri,"_").slice(0,ni)}function de(e){if(!$(e)||e.length===0)throw new Error("Vector values must be a non-empty numeric array");return[...e]}function Xt(e){if(!Number.isFinite(e)||e<=0)throw new Error("Vector query limit must be a positive number");return Math.floor(e)}function ii(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=g(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 Ke(e){let t=g(e.result?.status);if(t)return{status:t};let r=g(e.status);if(r)return{status:r};throw new Error("Qdrant upsert response must include status metadata")}async function W(e,t,r,n,o){return await ae({endpoint:e,method:t.method,headers:t.headers,body:t.body,timeoutMs:r,fetcher:n,requestLabel:`Vector ${o} request`,responseLabel:`Vector ${o} response`})}function si(e){let t=g(e.vector_store?.qdrant?.url);if(!t)return null;let r=g(e.vector_store?.collection_name),n=g(e.vector_store?.qdrant?.api_key);return{name:"qdrant",url:t,...r&&r!==Ge?{collection_name:r}:{},...n?{api_key:n}:{}}}function ai(e){let t=We(e),r=He(t);return Qt(t)==="pm"&&Qt(r)===".agents"?He(r):t}function ci(e,t){return!t||ei(e)?e:We(ai(t),e)}function di(e,t){let r=g(e.vector_store?.lancedb?.path);if(!r)return null;let n=g(e.vector_store?.collection_name);return{name:"lancedb",path:ci(r,t),...n&&n!==Ge?{collection_name:n}:{}}}function ui(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=g(t.id);if(!n)throw new Error(`Vector upsert record at index ${r} is missing a non-empty id`);let o=de(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 li(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=g(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 fi(e){return e.replace(/\/points\?wait=true$/,"/points/delete?wait=true")}function mi(e){return e.replace(/\/points\?wait=true$/,"")}function ue(e){return{"content-type":"application/json",...e.api_key?{"api-key":e.api_key}:{}}}function le(e,t){return j(e,t)}function j(e,t){return ti(We(e),oi,`${t}.json`)}function Qe(e,t){return typeof e=="object"&&e!==null&&e.code===t}function pi(e,t,r){let n=g(e.id);if(!n)throw new Error(`LanceDB local snapshot '${r}' record at index ${t} is missing a non-empty id`);let o=de(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 _i(e,t,r){let n;try{n=JSON.parse(r)}catch(c){throw new Error(`LanceDB local snapshot at '${e}' is not valid JSON: ${b(c)}`)}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!==Be)throw new Error(`LanceDB local snapshot at '${e}' must include version=${Be}`);let i=g(n.table);if(!i)throw new Error(`LanceDB local snapshot at '${e}' must include a non-empty table value`);if(i!==t)throw new Error(`LanceDB local snapshot at '${e}' table mismatch: expected '${t}', received '${i}'`);let s=n.records;if(!Array.isArray(s))throw new TypeError(`LanceDB local snapshot at '${e}' must include a records array`);let a=new Map;for(let c=0;c<s.length;c+=1){let d=pi(s[c],c,e);a.set(d.id,d)}return a}async function hi(e){try{let t=await Ye(e);return{mtimeMs:t.mtimeMs,size:t.size}}catch(t){if(!Qe(t,"ENOENT"))throw t;return null}}function gi(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 M.set(e,{records:r,mtimeMs:null,size:null}),r}function yi(e,t){return e!==void 0&&t!==null&&e.mtimeMs===t.mtimeMs&&e.size===t.size}async function Je(e,t){let r=le(e,t),n=j(e,t),o=await hi(n),i=M.get(r);if(!o){let a=gi(r,i);if(a)return a}if(yi(i,o))return i.records;let s=new Map;try{let a=await Xo(n,"utf8");s=_i(n,t,a)}catch(a){if(!Qe(a,"ENOENT"))throw a}return M.set(r,{records:s,mtimeMs:o?.mtimeMs??null,size:o?.size??null}),s}function wi(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 Zt(e){try{await Zo(e)}catch(t){if(!Qe(t,"ENOENT"))throw new Error(`LanceDB local snapshot delete failed at '${e}': ${b(t)}`)}}async function er(e,t,r){let n=j(e,t);if(r.size===0){await Zt(n);return}let o=He(n);try{await Jo(o,{recursive:!0})}catch(s){throw new Error(`LanceDB local snapshot directory create failed at '${o}': ${b(s)}`)}let i=`${JSON.stringify({version:Be,table:t,records:wi(r)})}
|
|
9
|
+
`;try{await S(n,i)}catch(s){throw new Error(`LanceDB local snapshot write failed at '${n}': ${b(s)}`)}}async function Ei(e,t){let r=le(e,t),n=j(e,t);await Zt(n),M.delete(r)}function Jt(e){let t=0;for(let r=0;r<e.length;r+=1)t+=e[r]*e[r];return Math.sqrt(t)}function bi(e,t){let r=0;for(let i=0;i<e.length;i+=1)r+=e[i]*t[i];let n=Jt(e),o=Jt(t);return n===0||o===0?0:r/(n*o)}function Xe(e,t){let r=si(e),n=di(e,t),o=[r,n].filter(c=>c!==null),i=g(e.vector_store?.adapter),s=i?i.toLowerCase():null;return{active:(s?o.find(c=>c.name===s):void 0)??o[0]??null,available:o}}function fe(e){let t=G(e);if(e.name==="qdrant"){let o=B(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 Si(e,t,r){let n=fe(e),o=de(t),i=Xt(r);return e.name==="qdrant"?{target:n,method:"POST",headers:ue(e),body:{vector:o,limit:i,with_payload:!0}}:{target:n,method:"LOCAL",headers:{},body:{table:G(e),vector:o,limit:i}}}function Ti(e,t){let r=fe(e),n=ui(t);return e.name==="qdrant"?{target:r,method:"POST",headers:ue(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:G(e),records:n}}}function xi(e,t){let r=fe(e),n=li(t);return e.name==="qdrant"?{target:r,method:"POST",headers:ue(e),body:{points:n}}:{target:r,method:"LOCAL",headers:{},body:{table:G(e),ids:n}}}async function gc(e,t,r,n={}){let o=Si(e,t,r);if(o.method==="LOCAL"){let c=e,d=o.body,u=await Je(c.path,d.table);if(u.size===0)return[];let m=de(d.vector),_=Xt(d.limit),l=[],h=0;for(let y of u.values()){if(y.vector.length!==m.length){h++;continue}l.push({id:y.id,score:bi(m,y.vector),...y.payload?{payload:y.payload}:{}})}return h>0&&n.warnings&&n.warnings.push(`vector_dimension_mismatch:${h} records skipped (expected ${m.length} dimensions)`),l.sort((y,w)=>y.score!==w.score?w.score-y.score:y.id.localeCompare(w.id)),l.slice(0,_)}let i=N(n.timeout_ms,"Vector request"),s=R(n.fetcher,"Vector request"),a=await W(o.target.query_target,{method:"POST",headers:o.headers,body:o.body},i,s,"query");return ii(a)}async function Ze(e,t,r={}){let n=Ti(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=le(a.path,c.table),u=await Je(a.path,c.table);for(let l of c.records)u.set(l.id,l);await er(a.path,c.table,u);let m=j(a.path,c.table),_=await Ye(m);return M.set(d,{records:u,mtimeMs:_.mtimeMs,size:_.size}),{status:"ok"}}let o=N(r.timeout_ms,"Vector request"),i=R(r.fetcher,"Vector request"),s=await W(n.target.upsert_target,{method:"POST",headers:n.headers,body:n.body},o,i,"upsert");return Ke(s)}async function me(e,t,r={}){let n=xi(e,t);if(n.method==="LOCAL"){let a=e,c=n.body,d=le(a.path,c.table),u=await Je(a.path,c.table);if(u.size===0)return{status:"ok"};for(let m of c.ids)u.delete(m);if(await er(a.path,c.table,u),u.size===0)M.delete(d);else{let m=j(a.path,c.table),_=await Ye(m);M.set(d,{records:u,mtimeMs:_.mtimeMs,size:_.size})}return{status:"ok"}}let o=N(r.timeout_ms,"Vector request"),i=R(r.fetcher,"Vector request"),s=await W(fi(n.target.upsert_target),{method:"POST",headers:n.headers,body:n.body},o,i,"delete");return Ke(s)}async function tr(e,t=[],r={},n){if(e.name==="lancedb")return await Ei(e.path,G(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=fe(e),s=mi(i.upsert_target),a=N(r.timeout_ms,"Vector request"),c=R(r.fetcher,"Vector request"),d=ue(e);try{await W(s,{method:"DELETE",headers:d,body:{}},a,c,"delete")}catch(m){if(!b(m).includes("failed with status 404"))throw m}let u=await W(s,{method:"PUT",headers:d,body:{vectors:{size:n,distance:"Cosine"}}},a,c,"upsert");return Ke(u)}let o=t.map(i=>i.trim()).filter(i=>i.length>0);return o.length===0?{status:"ok"}:await me(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]="4b3ad5fc-0f86-5f20-a23b-19d447cb0973")}catch{}})();function pe(e,t){let r=g(e),n=g(t);return!r||!n?null:{provider:r,model:n}}function rr(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=pe(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 et(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 tt(e,t){return!e||e.provider!==t.provider||e.model!==t.model}function rt(e,t){return!!(e&&e.vector_dimension!==t)}function nt(e,t){if(e.length===0)throw new Error(`${t} returned no vectors`);let n=e[0].length;if(!Number.isInteger(n)||n<=0)throw new Error(`${t} returned an empty vector`);for(let o=1;o<e.length;o+=1)if(e[o]?.length!==n)throw new Error(`${t} returned mixed vector dimensions`);return n}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7939a590-3662-5c66-99aa-3835a0dbaecc")}catch{}})();var or="search/vectorization-status.json";function Q(e){return[...new Set([...e].map(t=>t.trim()).filter(t=>t.length>0))].sort((t,r)=>t.localeCompare(r))}function ir(e){return typeof e=="string"&&e.trim().length>0&&Number.isFinite(Date.parse(e))}function sr(e){let t=new Map;for(let[r,n]of Object.entries(e)){let o=r.trim();o.length===0||!ir(n)||t.set(o,n)}return Object.fromEntries([...t.entries()].sort((r,n)=>r[0].localeCompare(n[0])))}async function ar(e){let t=nr.join(e,or),r=await T(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||!ir(c))return{entries:{},embedding:null,warnings:["search_vectorization_status_ledger_invalid"]};o.set(a.trim(),c)}let i=null;try{i=rr(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 cr(e,t,r){let n=sr(t),o=nr.join(e,or),i=`${JSON.stringify({version:1,generated_at:k(),...r?{embedding:r}:{},items:Object.entries(n).map(([s,a])=>({id:s,updated_at:a}))},null,2)}
|
|
10
|
+
`;await S(o,i)}function Ii(e){return{id:e.id,type:e.type,status:e.status,priority:e.priority,updated_at:e.updated_at}}function Ai(e){let t=pe(e.name,e.model);if(!t)throw new Error("Embedding provider must include a provider name and model");return t}function K(e,t){return{refreshed:[],skipped:e,warnings:[t]}}async function Ci(e,t,r){if(!r.settings&&!await z(Te(e)))return K(t,"search_semantic_refresh_skipped:settings_not_initialized");let n;try{if(r.settings)n=r.settings;else{let a=await Z(e),c=a.warnings.find(d=>d.startsWith("settings_read_"));if(c)return K(t,`search_semantic_refresh_skipped:settings_read_failed:${c}`);n=a.settings}}catch(a){return K(t,`search_semantic_refresh_skipped:settings_read_failed:${b(a)}`)}let o=r.apply_runtime_defaults?se(n).settings:n,i=$e(o).active;if(!i)return K(t,"search_semantic_refresh_skipped:provider_unconfigured");let s=Xe(o,e).active;return s?{settings:o,provider:i,vectorStore:s}:K(t,"search_semantic_refresh_skipped:vector_store_unconfigured")}async function vi(e,t,r,n,o,i){let s=[],a=new Set,c=new Set,d=[];for(let u of n){let m=await De(e,u,t,r,o);if(!m){c.add(u);continue}try{let _=await ke(m,{schema:i});d.push({id:_.document.metadata.id,document:_.document})}catch(_){a.add(m.id),s.push(`search_semantic_refresh_item_read_failed:${m.id}:${b(_)}`)}}return d.sort((u,m)=>u.id.localeCompare(m.id)),{documents:d,missingIds:Q(c),skippedIds:Q(a),warnings:s}}async function Li(e,t,r){let n=U(t.name,e.search.embedding_corpus_max_characters).maxCharacters,o=Fe(e),i=r.map(a=>Ue(a.document,{providerName:t.name,maxCharacters:n,fields:o})),s=await qe(t,e,i);return{vectors:s.vectors,vector_dimension:nt(s.vectors,"Semantic refresh embedding"),warnings:s.warnings}}async function Di(e,t,r){return await Ze(e,t.map((n,o)=>({id:n.id,vector:r[o],payload:Ii(n.document.metadata)}))),{refreshed:t.map(n=>n.id),skipped:[],warnings:[]}}async function ki(e,t){if(t.length===0)return{refreshed:[],skipped:[],warnings:[]};try{return await me(e,t),{refreshed:[],skipped:[],warnings:[]}}catch(r){return{refreshed:[],skipped:t,warnings:[`search_semantic_refresh_delete_failed:${b(r)}`]}}}async function $c(e,t,r={}){let n=Q(t);if(n.length===0)return{refreshed:[],skipped:[],warnings:[]};let o=await Ci(e,n,r);if(!("settings"in o))return o;let i=be(o.settings,Ae()),s=await vi(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 ar(e):{entries:{},embedding:null,warnings:[]},c=Ai(o.provider),d=a.entries,u={refreshed:[],skipped:[],warnings:[]},m=a.embedding;if(s.documents.length>0)if(a.embedding&&tt(a.embedding,c))u={refreshed:[],skipped:s.documents.map(w=>w.id),warnings:["search_semantic_refresh_requires_reindex:embedding_identity_changed"]};else try{let w=await Li(o.settings,o.provider,s.documents);if(rt(a.embedding,w.vector_dimension))u={refreshed:[],skipped:s.documents.map(E=>E.id),warnings:[...w.warnings,"search_semantic_refresh_requires_reindex:vector_dimension_changed"]};else{m=et(c,w.vector_dimension);let E=await Di(o.vectorStore,s.documents,w.vectors);u={refreshed:E.refreshed,skipped:E.skipped,warnings:[...w.warnings,...E.warnings]}}}catch(w){u={refreshed:[],skipped:s.documents.map(E=>E.id),warnings:[`search_semantic_refresh_failed:${b(w)}`]}}let _=await ki(o.vectorStore,s.missingIds),l=new Set(u.refreshed),h=Object.fromEntries(s.documents.filter(w=>l.has(w.id)).map(w=>[w.id,w.document.metadata.updated_at])),y=[];if(Object.keys(h).length>0||s.missingIds.length>0){let w={...d,...sr(h)};for(let E of s.missingIds)delete w[E];try{await cr(e,w,m)}catch(E){y.push(`search_vectorization_status_ledger_write_failed:${b(E)}`)}y.push(...a.warnings)}return{refreshed:Q([...u.refreshed,..._.refreshed]),skipped:Q([...s.skippedIds,...u.skipped,..._.skipped]),warnings:[...s.warnings,...u.warnings,..._.warnings,...y]}}import{createRequire as Ri}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]="8eb48648-6e55-5710-990e-6471c7cdcde0")}catch{}})();var Oi=/(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|credentials|bearer|dsn)/i,jc=new RegExp(`\\b(${Oi.source})\\s*[:=]\\s*([^\\s,;]+)`,"giu");var qc=Ri(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]="e896db69-ed90-53f1-a227-e3d061b3bc8d")}catch{}})();var Yc=new Map([[f.USAGE,"invalid_command_usage"],[f.NOT_FOUND,"item_not_found"],[f.CONFLICT,"lock_conflict"],[f.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]="ffe56aed-b794-5bf4-99fd-e3c5fe065163")}catch{}})();import{promises as ur}from"node:fs";import lr 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]="611f01b6-0c72-5ea2-a44f-78877c69706c")}catch{}})();var Pi="session.json";function fr(e){return lr.join(_t(e),Pi)}async function ot(e){try{let t=await ur.readFile(fr(e),"utf8"),r=JSON.parse(t);if(r===null||typeof r!="object"||Array.isArray(r))return{};let n=r.focused_item;return typeof n=="string"&&n.trim().length>0?{focused_item:n}:{}}catch{return{}}}async function mr(e,t){let r=fr(e);await ur.mkdir(lr.dirname(r),{recursive:!0}),await S(r,JSON.stringify(t))}async function zi(e){return(await ot(e)).focused_item}async function $i(e,t){let r=await ot(e);await mr(e,{...r,focused_item:t})}async function Fi(e){let r={...await ot(e)};delete r.focused_item,await mr(e,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]="c43dd9f2-78ac-5c22-970a-0016a06b87b3")}catch{}})();var id=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]="0ce743d1-917a-5c96-b038-c95e3922bc48")}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]="868dfae8-2575-5d5f-8425-c7e68aefdc84")}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]="4ecab833-db06-5baa-bfe6-d28b4c97f85a")}catch{}})();function Vi(e,t){if(e==null)return[];let r=t?.separators??/,/,o=e.split(r).map(a=>a.trim()).filter(a=>a.length>0),s=t?.unique!==!1?Array.from(new Set(o)):o;return t?.sort===!0?[...s].sort():s}import pr from"node:fs/promises";import _e 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]="4baf0ef3-2412-51cf-9ade-18b5c6e610d1")}catch{}})();function Ui(e){return"json_markdown"}function _r(e,t){return _e.relative(e,t).replaceAll("\\","/")}function ji(e){return String(e).replaceAll(/[^a-zA-Z0-9._-]+/g,"_").slice(0,120)}async function qi(e,t,r="item_format:migrate",n=Ee,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=Ui(t),u=Object.entries(n);for(let[m,_]of u){let l=_e.join(e,_),h=[];try{h=await pr.readdir(l)}catch{continue}let y=new Map;for(let E of h){let L=_e.join(l,E),D=pt(L);if(!D)continue;let q=_e.extname(E),H=E.slice(0,E.length-q.length).trim();if(H.length===0)continue;let P=y.get(H)??{};P[D]=L,y.set(H,P)}let w=[...y.keys()].sort((E,L)=>E.localeCompare(L));for(let E of w){let L=y.get(E);c+=1;let D=L[d];if(!D)continue;let q=L[t]??D,H=q===L[t]?t:d;try{let P=await pr.readFile(q,"utf8"),jr=ve(P,{format:H,schema:o,onWarning:qr=>a.push(`item_format_migration_parse_warning:${E}:${qr}`)}),ye=xe(e,m,E,t,n),mt=Le(jr,{format:t,schema:o});await T(ye)!==mt&&(await S(ye,mt),a.push(...await X({path:ye,scope:"project",op:r})),i.add(E)),await J(D),s.add(_r(e,D)),a.push(...await X({path:D,scope:"project",op:`${r}:remove`})),i.add(E)}catch(P){a.push(`item_format_migration_skipped:${_r(e,q)}:${ji(P)}`)}}}return{target_format:t,scanned:c,migrated:[...i].sort((m,_)=>m.localeCompare(_)),removed:[...s].sort((m,_)=>m.localeCompare(_)),warnings:a}}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f280c1df-b134-57c3-91f6-cbf5a37e6e31")}catch{}})();var Hi=new Set(["completed","superseded"]);function Bi(e){return e!==void 0&&Hi.has(e)}function Yi(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 Ed 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]="6783b122-a1a8-5f86-9ac5-2c3e811622ed")}catch{}})();import at from"node:crypto";import{mkdirSync as Ld,rmSync as Ki,statSync as Dd}from"node:fs";import{mkdir as it,readdir as Qi,rm as ct,stat as Er}from"node:fs/promises";import x 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]="fea9d81b-3deb-51f4-9ec3-76396ae1307d")}catch{}})();var Ji=x.join("runtime","telemetry","events.jsonl"),Xi=x.join("runtime","telemetry","state.json"),Zi=x.join("runtime","telemetry","otel-spans.jsonl"),es=8,hr=500,ts=1;var rs=100,ns=36e5,os=3e4,br=5e3,is=864e5,Sr=65536;var Tr=15;var xr=[25,50,100,200],ss=3600*1e3,as=6e4;var cs="PM_TELEMETRY_DISABLED",ds="PM_NO_TELEMETRY",gr=new Set(["1","true","yes","on"]);var us=["user","automation","test","dogfood"],Ud=Promise.resolve(),yr=Promise.resolve();var jd=new Set(us);var qd=at.randomUUID();var Ir="(?:token|secret|password|passwd|api[_-]?key|apikey|authorization|cookie|session|credentials|bearer|literals?|regex(?:es)?|replacements?)",ls=new RegExp(`\\b(${Ir})\\s*([:=])\\s*([^\\s,;]+)`,"giu"),fs=new RegExp(`(--${Ir})(=|\\s+)([^\\s,;]+)`,"giu"),ms=/(^|[\s"'`(=])\/(?:[^\s"'`),;]+)/g,ps=/bearer\s+[a-z0-9._=-]+/giu,_s=/\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 ge(e){return x.join(e,Ji)}function dt(e){return x.join(e,Zi)}function hs(e){return x.dirname(ge(e))}function Ar(e){return x.join(e,Xi)}function Cr(e){return x.join(e,"runtime","telemetry","flush.lock")}function gs(e){return x.join(e,"runtime","telemetry","flush.spawn.lock")}async function ys(e){let t=await T(Ar(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 v(e,t){try{let n={...await ys(e),...t},o=Object.fromEntries(Object.entries(n).filter(([,i])=>i!==void 0).sort((i,s)=>i[0].localeCompare(s[0])));await S(Ar(e),`${JSON.stringify(o,null,2)}
|
|
11
|
+
`)}catch{}}function vr(e){return e.replaceAll(ls,(r,n,o)=>`${n}${o}[redacted]`).replaceAll(fs,(r,n,o)=>`${n}${o}[redacted]`)}function Lr(e){return e.replaceAll(ms,(t,r)=>`${r}[redacted_path]`)}function Dr(e){let t=e>=65&&e<=90,r=e>=97&&e<=122,n=e>=48&&e<=57;return t||r||n}function kr(e){if(!e)return!1;let t=e.charCodeAt(0);return Dr(t)?!0:e==="."||e==="_"||e==="%"||e==="+"||e==="-"}function Nr(e){if(!e)return!1;let t=e.charCodeAt(0);return Dr(t)?!0:e==="."||e==="-"}function ws(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(!kr(i))return!1;for(let i of n)if(!Nr(i))return!1;return!0}function Es(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&&kr(e[o]);)o-=1;o+=1;let i=n+1;for(;i<e.length&&Nr(e[i]);)i+=1;let s=e.slice(o,i);if(ws(s)){t+=e.slice(r,o),t+="[redacted_email]",r=i;continue}t+=e.slice(r,n+1),r=n+1}return t}function Rr(e){return Es(e).replaceAll(ps,"bearer [redacted_token]").replaceAll(_s,"[redacted_ip]")}function bs(e){let t=Rr(e),r=vr(t),n=Lr(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>512?`${n.slice(0,509)}...`:n}function Ss(e){let t=Rr(e),r=vr(t),n=Lr(r),o=n.trim();return o.startsWith("/")&&o.length>1?"[redacted_path]":n.length>2048?`${n.slice(0,2045)}...`:n}function st(e,t="redacted"){return t==="max"?Ss(e):bs(e)}function Ts(){return gr.has((process.env[cs]??"").trim().toLowerCase())||gr.has((process.env[ds]??"").trim().toLowerCase())}async function xs(e){let t=await Y(e),r=!1;return t.telemetry.installation_id.trim().length===0&&(t.telemetry.installation_id=at.randomUUID(),r=!0),r&&await ee(e,t,"telemetry:install_id"),{installationId:t.telemetry.installation_id,endpoint:t.telemetry.endpoint,retentionDays:Math.max(1,Math.trunc(t.telemetry.retention_days))}}function Or(e){let t=[];for(let r of e.split(`
|
|
12
|
+
`)){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 Mr(e){let t=Math.min(os*2**Math.max(e-1,0),ns);return new Date(Date.now()+t).toISOString()}function Pr(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 Is(e){return Pr(e.next_attempt_after)}function zr(e){let t=Number.isFinite(e)?Math.max(1,Math.trunc(e)):1;return Date.now()-t*is}function As(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 ut(e,t){let r=zr(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Sr||As(i,r)||i.attempts>=Tr){o+=1;continue}n.push(i)}return{entries:n,prunedCount:o}}async function he(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
13
|
+
`),n=r.length>0?`${r}
|
|
14
|
+
`:"";for(let o=0;;o+=1)try{await S(ge(e),n);return}catch(i){let s=xr[o];if(s===void 0||!$r(i))throw i;await Fr(s)}}function $r(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="EACCES"||t==="EBUSY"||t==="EPERM"}function Fr(e){return new Promise(t=>{setTimeout(t,e)})}function Cs(e){let t=JSON.stringify([e.endpoint,e.enqueued_at,e.payload]);return at.createHash("sha256").update(t).digest("hex").slice(0,32)}function Vr(e){let t=[];for(let r of e.split(`
|
|
15
|
+
`)){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=Cs(o)),t.push(o))}catch{}}return t}function vs(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 Ur(e,t){let r=zr(t),n=[],o=0;for(let i of e){if(JSON.stringify(i).length>Sr||vs(i,r)||i.attempts>=Tr){o+=1;continue}n.push(i)}if(n.length>hr){let i=n.length-hr;return o+=i,{entries:n.slice(i),prunedCount:o}}return{entries:n,prunedCount:o}}async function Ls(e,t){let r=t.map(o=>JSON.stringify(o)).join(`
|
|
16
|
+
`),n=r.length>0?`${r}
|
|
17
|
+
`:"";for(let o=0;;o+=1)try{await S(dt(e),n);return}catch(i){let s=xr[o];if(s===void 0||!$r(i))throw i;await Fr(s)}}async function wr(e,t,r,n){return lt(async()=>{let o=await T(dt(e)),i=o===null?[]:Vr(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}=Ur(s,t);return await Ls(e,a),a.length})}async function Ds(e,t){let r=await T(dt(e));if(r===null||r.trim().length===0){await v(e,{pending_otel_spans:0});return}let n=Vr(r),{entries:o,prunedCount:i}=Ur(n,t),s=o.filter(h=>Pr(h.next_attempt_after)).slice(0,es);if(s.length===0){let h=i>0?await wr(e,t,new Set,new Map):o.length;await v(e,{pending_otel_spans:h});return}let a=k(),c=new Set,d=new Map,u=0,m;await Promise.all(s.map(async h=>{try{let y=await fetch(h.endpoint,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(h.payload),signal:AbortSignal.timeout(br)});if(!y.ok)throw new Error(`local_otel_export_http_${y.status}`);c.add(h.id),u+=1}catch(y){m=y instanceof Error?st(y.message,"redacted"):"local_otel_export_failed";let w=h.attempts+1;d.set(h.id,{attempts:w,next_attempt_after:Mr(w)})}}));let _=await wr(e,t,c,d),l={pending_otel_spans:_,last_otel_attempt_at:a};u>0&&(l.last_otel_success_at=a),m!==void 0?(l.last_otel_failure_at=a,l.last_otel_failure_error=m):_===0&&(l.last_otel_failure_at=void 0,l.last_otel_failure_error=void 0),await v(e,l)}async function ks(e,t,r){try{await Ms(e,t,r)}catch{}try{await Ds(e,r)}catch{}}async function Ns(e,t=ss){try{let r=hs(e),n=await Qi(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=x.join(r,i.name);(await Er(s)).mtimeMs<o&&await ct(s,{force:!0})}))}catch{}}async function lt(e){let t=yr.catch(()=>{}).then(e);return yr=t.catch(()=>{}),t}async function ft(e){let t=await T(ge(e));return t===null||t.trim().length===0?[]:Or(t)}async function Rs(e,t,r){return lt(async()=>{let n=await ft(e),{entries:o}=ut(n,r),i=o.filter(s=>!t.has(s.event.event_id));return await he(e,i),i})}async function Os(e,t,r,n){return lt(async()=>{let o=await ft(e),{entries:i}=ut(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:Mr(c)}});return await he(e,s),s})}async function Ms(e,t,r){await Ns(e);let n=t.trim();if(n.length===0)return;let o=await T(ge(e));if(o===null||o.trim().length===0){await v(e,{endpoint:n,queue_entries:0});return}let i=Or(o);if(i.length===0){await v(e,{endpoint:n,queue_entries:0});return}let{entries:s,prunedCount:a}=ut(i,r);if(s.length===0){await he(e,[]),await v(e,{endpoint:n,queue_entries:0});return}let c=s.filter(l=>Is(l)).slice(0,rs);if(c.length===0){a>0&&await he(e,s),await v(e,{endpoint:n,queue_entries:s.length});return}let d=new Set(c.map(l=>l.event.event_id)),u=k(),m={"content-type":"application/json"},_=process.env.PM_TELEMETRY_INGEST_KEY?.trim();_&&(m["x-pm-telemetry-key"]=_);try{let l=await fetch(n,{method:"POST",headers:m,body:JSON.stringify({schema_version:ts,events:c.map(h=>h.event)}),signal:AbortSignal.timeout(br)});if(!l.ok)throw new Error(`telemetry_flush_http_${l.status}`)}catch(l){let h=await Os(e,d,u,r),y=l instanceof Error?st(l.message,"redacted"):"telemetry_flush_failed";await v(e,{endpoint:n,queue_entries:h.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:y});return}try{let l=await Rs(e,d,r);await v(e,{endpoint:n,queue_entries:l.length,last_attempted_flush_at:u,last_successful_flush_at:u,last_failed_flush_at:void 0,last_failed_flush_error:void 0})}catch(l){let h=l instanceof Error?st(l.message,"redacted"):"telemetry_flush_failed",y=await ft(e).catch(()=>s);await v(e,{endpoint:n,queue_entries:y.length,last_attempted_flush_at:u,last_failed_flush_at:u,last_failed_flush_error:h})}}async function Ps(e){let t=Cr(e);await it(x.dirname(t),{recursive:!0});try{return await it(t),!0}catch(r){if(typeof r!="object"||r===null||!("code"in r)||r.code!=="EEXIST")throw r}try{let r=await Er(t);return Date.now()-r.mtimeMs<as?!1:(await ct(t,{recursive:!0,force:!0}),await it(t),!0)}catch{return!1}}function zs(e){try{Ki(e,{recursive:!0,force:!0})}catch{}}function $s(e){zs(gs(e))}async function Fs(e,t,r){let n=await Ps(e);if($s(e),!!n)try{await ks(e,t,r)}finally{try{await ct(Cr(e),{recursive:!0,force:!0})}catch{}}}async function Hd(e=Se(process.cwd())){if(!Ts())try{if(!(await Y(e)).telemetry.enabled)return;let{endpoint:r,retentionDays:n}=await xs(e);await Fs(e,r,n)}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]="17358714-bb54-58e5-bba0-61bfd1323ec2")}catch{}})();export{fn as a,mn as b,_n as c,hn as d,gn as e,yn as f,Me as g,wn as h,wa as i,bn as j,kt as k,Sn as l,Tn as m,Rt as n,xn as o,In as p,An as q,Cn as r,On as s,zn as t,$n as u,Vn as v,Un as w,jn as x,Bn as y,La as z,Gn as A,Ma as B,Xn as C,eo as D,Hr as E,to as F,ro as G,se as H,Co as I,nc as J,$e as K,Wt as L,Fe as M,Fo as N,Vo as O,sc as P,Gt as Q,U as R,Ue as S,qe as T,Xe as U,gc as V,Ze as W,me as X,tr as Y,pe as Z,et as _,tt as $,rt as aa,nt as ba,ar as ca,cr as da,$c as ea,zi as fa,$i as ga,Fi as ha,Qr as ia,Tt as ja,Xr as ka,Zr as la,en as ma,Ys as na,Gs as oa,re as pa,Oe as qa,It as ra,xt as sa,nn as ta,on as ua,At as va,cn as wa,Vi as xa,qi as ya,Bi as za,Yi as Aa,ts as Ba,Tr as Ca,us as Da,Hd as Ea};
|
|
18
|
+
//# sourceMappingURL=chunk-MXYSIQ56.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Ia as M,Y as g,Z as h,aa as R,ka as I}from"./chunk-GHTN2ILR.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]="23b3a820-f205-506b-9507-dbd60087f62e")}catch{}})();var X=["full","compact","brief","summary","counts"],qe=["mutation","read","discovery","governance"],Y=new Set(["append","claim","close","close-many","close-task","comments","config","copy","create","delete","docs","event","files","focus","history-author-acknowledge","history-compact","history-redact","history-repair","init","item","learnings","meet","notes","pause-task","release","remind","restore","schema","start-task","update","update-many"]),F=new Set(["contracts","extension","help","install","package","packages","profile","upgrade"]),H=new Set(["gc","health","merge","stats","telemetry","test","test-all","validate"]),V={mutation:2e3,read:4e3,discovery:3e3,governance:6e3},Z=3,ee=2;function te(e){let[t=""]=e.trim().split(/\s+/u);return Y.has(t)?"mutation":F.has(t)?"discovery":H.has(t)?"governance":"read"}function N(e,t=te(e)){let n=e.trim().replace(/\s+/gu," ");if(n.length===0)throw new TypeError("command must be a non-empty command path");let o=V[t];return ne({command:n,budget_class:t,default_max_estimated_tokens:o,default_max_estimated_tokens_by_format:{toon:o,json:Math.ceil(o*Z/ee)},degradation_ladder:X,allows_unbounded_opt_out:!0,token_estimate:"ceil(utf8_bytes / 4)"})}function ne(e){if(!Number.isSafeInteger(e.default_max_estimated_tokens)||e.default_max_estimated_tokens<=0)throw new RangeError("default_max_estimated_tokens must be a positive safe integer");for(let[t,n]of Object.entries(e.default_max_estimated_tokens_by_format))if(!Number.isSafeInteger(n)||n<=0)throw new RangeError(`default_max_estimated_tokens_by_format.${t} must be a positive safe integer`);return e}var oe=I.map(e=>N(e)),re=new Map(oe.map(e=>[e.command,e]));function ze(e,t={}){let n=e.trim().replace(/\s+/gu," "),[o]=n.split(" "),r=re.get(o);return r?{...r,command:n}:t.generateFallback?N(n):null}function k(e){return Math.ceil(Math.max(0,e)/4)}import{createHash as ie}from"node:crypto";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="83fe180b-9d95-5d19-9d3b-ba3821700e61")}catch{}})();var C=1,D=4096,se=/^[A-Za-z0-9_-]+$/;function B(e){return e.replace(/^--/u,"").replace(/[-_]([a-z0-9])/gu,(t,n)=>n.toUpperCase())}function Xe(e,t){let n=new Set;for(let o of t)if(o.cursor_semantics==="presentation"){n.add(B(o.flag));for(let r of o.aliases??[])n.add(B(r))}return Object.fromEntries(Object.entries(e).filter(([o])=>!n.has(o)))}function Ye(e,t){return ie("sha256").update(e).update("\0").update(R(t)).digest("hex").slice(0,24)}function O(e,t,n,o){return Buffer.from(JSON.stringify({version:C,fingerprint:e,after_id:t,...n===void 0?{}:{after_index:n},...o===void 0?{}:{snapshot:o}})).toString("base64url")}function w(e){return new h(e,g.USAGE,{code:"invalid_query_cursor",nextSteps:["Repeat the original query without --after to obtain a fresh cursor."]})}function ae(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e;return t.version===C&&typeof t.fingerprint=="string"&&typeof t.after_id=="string"&&t.after_id.length>0&&(t.after_index===void 0||Number.isSafeInteger(t.after_index)&&t.after_index>=0)&&(t.snapshot===void 0||typeof t.snapshot=="string"&&t.snapshot.length>0)}function E(e,t){if(typeof e!="string")throw w("Query cursor is malformed.");let n=e.trim();if(n.length===0||n.length>D||!se.test(n))throw w("Query cursor is malformed.");let o;try{o=JSON.parse(Buffer.from(n,"base64url").toString("utf8"))}catch{throw w("Query cursor is malformed.")}if(!ae(o))throw w("Query cursor version or payload is unsupported.");let r=o;if(r.fingerprint!==t)throw w(`Query cursor does not match the current filters, sort, or query (${r.fingerprint} != ${t}).`);return{after_id:r.after_id,...r.after_index===void 0?{}:{after_index:r.after_index},...r.snapshot===void 0?{}:{snapshot:r.snapshot}}}function Fe(e,t){return E(e,t).after_id}function de(e,t,n,o){if(t===void 0)return 0;let r=E(t,n),s=e.findIndex(i=>o(i)===r.after_id);if(s<0){if(r.after_index!==void 0)return Math.min(r.after_index,e.length);throw w(`Query cursor item ${r.after_id} is no longer present in this result set.`)}return s+1}function He(e,t){if(t.cursor!==void 0&&E(t.cursor,t.fingerprint).snapshot!==t.snapshot)throw w("Query cursor does not match the requested snapshot.");let n=de(e,t.cursor,t.fingerprint,t.readId),o=e.slice(n,n+t.limit),r=o.length>0&&n+o.length<e.length,s=o.at(-1);return{rows:o,has_more:r,...r&&s!==void 0?{next_cursor:O(t.fingerprint,t.readId(s),n+o.length-1,t.snapshot)}:{}}}var Ve=Object.freeze({version:C,max_length:D});import{AsyncLocalStorage as xe}from"node:async_hooks";(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]="630b48a7-aa38-529c-a272-14b7c748101c")}catch{}})();var P='.row_contract.row_keys[] as $key | getpath($key | split(".")) | if type == "array" then .[] else if type == "object" then to_entries[] else empty end end',ce={context:{row_keys:["high_level","low_level"],fields:"supported"},get:{row_keys:["children"],fields:"supported"},list:{row_keys:["items"],fields:"supported"},next:{row_keys:["recommended","ready","decision_needed","blocked","held_by_others"],fields:"unsupported"},search:{row_keys:["items"],fields:"supported"},activity:{row_keys:["compact_activity","provenance_activity","activity"],fields:"unsupported"},history:{row_keys:["compact_history","provenance_history","history"],fields:"unsupported"},deps:{row_keys:["graph.nodes","graph.edges","context.nodes","context.edges"],fields:"unsupported"},health:{row_keys:["checks"],fields:"unsupported"},aggregate:{row_keys:["groups"],fields:"unsupported"},duplicates:{row_keys:["clusters"],fields:"unsupported"},stats:{row_keys:["by_type","by_status"],fields:"unsupported"},comments:{row_keys:["comments"],fields:"unsupported"},notes:{row_keys:["notes"],fields:"unsupported"},learnings:{row_keys:["learnings"],fields:"unsupported"},files:{row_keys:["files"],fields:"unsupported"},docs:{row_keys:["docs"],fields:"unsupported"},validate:{row_keys:["checks","warnings"],fields:"unsupported"},contracts:{row_keys:["command_summaries","commands"],fields:"unsupported"}},ue=[{command:"activity",complete_mode:"full",omissions_by_mode:{compact:[{name:"provenance",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}},{command:"history",complete_mode:"full",omissions_by_mode:{compact:[{name:"raw_history",restore_with:"--full"}],provenance:[{name:"patch_and_hashes",restore_with:"--full"}]}}];function nt(e,t,n){if(e&&t)throw new h(`${n} cannot be combined with --full`,g.USAGE)}function _(e,t=new Set){let n=e.filter(o=>!t.has(o.name)).map(o=>({...o}));return{has_omissions:n.length>0,omitted_field_group_count:n.length,omitted_field_groups:n}}function ot(e,t){let n=ue.find(r=>r.command===e);if(n===void 0)throw new TypeError(`Unknown mode-paired output command: ${e}`);if(t===n.complete_mode)return _([]);let o=n.omissions_by_mode[t];if(o===void 0)throw new TypeError(`Unknown ${e} output mode: ${t}`);return _(o)}var fe=[{name:"hierarchy",restore_with:"--depth standard"},{name:"activity",restore_with:"--depth standard"},{name:"progress",restore_with:"--depth standard"},{name:"blockers",restore_with:"--depth standard"},{name:"recently_created",restore_with:"--depth standard"},{name:"unparented",restore_with:"--depth standard"},{name:"files",restore_with:"--depth deep"},{name:"workload",restore_with:"--depth standard"},{name:"staleness",restore_with:"--depth deep"},{name:"tests",restore_with:"--depth deep"},{name:"workspace_memory",restore_with:"--depth deep"}];function m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function le(e){return m(e)&&typeof e.command=="string"&&e.command.trim().length>0&&(e.row_kind==="collection"||e.row_kind==="none")&&Array.isArray(e.row_keys)&&e.row_keys.every(t=>typeof t=="string"&&t.length>0)&&new Set(e.row_keys).size===e.row_keys.length&&(e.fields==="supported"||e.fields==="unsupported")&&(e.row_kind==="collection"?e.row_keys.length>0&&typeof e.jq_selector=="string"&&e.jq_selector.trim().length>0:e.row_keys.length===0&&e.jq_selector===void 0)}var me={ancestors:["ids"],descendants:["ids"],predecessors:["ids"],successors:["ids"],paths:["paths"],impact:["affected"],audit:["findings"],communities:["communities"],redundancy:["redundant"],dominators:["bottlenecks"],slack:["rows"],centrality:["rows"],articulation:["articulation_points","bridges"],plan:["steps"]},_e={context:["sections_included","high_level","low_level"],get:["item"],list:["items","projection"],next:["recommended","ready","decision_needed","blocked","held_by_others"],search:["items","projection"],activity:["compact_activity","provenance_activity","activity"],history:["compact_history","provenance_history","history"],deps:["tree","graph","projection"],health:["checks"],aggregate:["groups"],duplicates:["clusters"],stats:["totals","by_type","by_status"],comments:["comments"],notes:["notes"],learnings:["learnings"],files:["files"],docs:["docs"],validate:["checks","warnings"],contracts:["command_summaries","commands","selected"]};function pe(e,t){let n=e.trim().toLowerCase().split(/\s+/u,1)[0],o=n?.startsWith("list-")?"list":n;if(o==="graph"){let i=typeof t.subcommand=="string"?t.subcommand:"";if(i.length===0)return;let d=me[i];if(d===void 0)return;let a=d.filter(c=>Array.isArray(t[c])||m(t[c]));return{command:"graph",row_kind:a.length>0?"collection":"none",row_keys:a,fields:"unsupported",...a.length>0?{jq_selector:P}:{}}}let r=ce[o],s=_e[o];return r===void 0||s===void 0||!s.some(i=>Object.hasOwn(t,i))?void 0:(()=>{let i=r.row_keys.filter(d=>{let a=d.split(".").reduce((c,u)=>m(c)?c[u]:void 0,t);return Array.isArray(a)||m(a)});return{command:o,row_kind:i.length>0?"collection":"none",row_keys:i,fields:r.fields,...i.length>0?{jq_selector:P}:{}}})()}function ge(e){if(!m(e.projection)||typeof e.projection.mode!="string"||e.projection.mode.trim().length===0)return;let t=e.projection.declared_field_groups,n=e.projection.included_field_groups;if(!Array.isArray(t)||!Array.isArray(n))return;let o=t.filter(i=>m(i)&&typeof i.name=="string"&&i.name.trim().length>0&&typeof i.restore_with=="string"&&i.restore_with.trim().length>0),r=n.filter(i=>typeof i=="string");if(o.length!==t.length||r.length!==n.length)return;let s=new Set(o.map(i=>i.name));if(!(s.size!==o.length||new Set(r).size!==r.length||r.some(i=>!s.has(i))))return _(o,new Set(r))}function he(e){if(Array.isArray(e.sections_included))return _(fe,new Set(e.sections_included.filter(t=>typeof t=="string")))}function ye(e){if(!m(e.item))return;let t=e.item,n=["comments","notes","learnings","files","tests","docs","reminders","events"],o=["body","children","claim_state","linked","schedule"],r=["body",...n,...o.slice(1)].map(s=>({name:s,restore_with:`--fields ${s}`}));return _(r,new Set(r.flatMap(({name:s})=>Object.hasOwn(n.includes(s)?t:e,s)?[s]:[])))}function U(e){if(m(e.projection))return _([{name:"full_item_fields",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_item_fields"]:[]))}function we(e){if(!m(e.projection))return _([]);if(typeof e.projection.mode=="string")return _([{name:"full_check_details",restore_with:"--full"}],new Set(e.projection.mode==="full"?["full_check_details"]:[]))}function be(e){if(!(!m(e.selected)||typeof e.selected.summary!="boolean"))return _([{name:"full_contract_catalog",restore_with:"--full"}],new Set(e.selected.summary?[]:["full_contract_catalog"]))}function ke(e,t){let n=ge(t);if(n!==void 0)return n;let[o]=e.split(/\s+/u,1);if(o==="context")return he(t);if(o==="get")return ye(t);if(o==="list"||o.startsWith("list-"))return U(t);if(o==="search")return U(t)??_([{name:"projection_metadata",restore_with:"--full"}]);if(o==="health")return we(t);if(o==="contracts")return be(t)}function $(e,t){if(e===void 0||!m(t))return t;let n=t.row_contract,o=le(n)?n:pe(e,t),r=o!==void 0?{...t,row_contract:o}:Object.hasOwn(t,"row_contract")?Object.fromEntries(Object.entries(t).filter(([i])=>i!=="row_contract")):t;if(m(r.omission_receipt))return r;let s=ke(e,r);return s===void 0?r:{...r,omission_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]="e48a306e-debb-5e66-ae9b-68bf17fa405f")}catch{}})();var G=Object.freeze([{command:"context",intent:"orient",description:"Bounded active hierarchy, ownership, blockers, and recent progress.",included_field_groups:["summary","focus","hierarchy","blockers","activity"],token_budget:2400,source:"core"},{command:"context",intent:"handoff",description:"Active ownership, evidence, decisions, and immediate continuation context.",included_field_groups:["summary","focus","in_progress","decisions","activity"],token_budget:2200,source:"core"},{command:"get",intent:"inspect",description:"Standard-depth item metadata, relationships, evidence, and lifecycle state.",included_field_groups:["item","children","claim_state","linked"],token_budget:3200,source:"core"},{command:"list",intent:"triage",description:"A budget-derived page of compact governance, ownership, priority, and blocker rows for triage.",included_field_groups:["identity","governance","ownership","dependencies"],token_budget:3200,source:"core"},{command:"next",intent:"execute",description:"The highest-ranked actionable work with concise ranking evidence.",included_field_groups:["recommended"],token_budget:1200,source:"core"},{command:"search",intent:"discover",description:"A budget-derived page of ranked canonical lineage candidates with compact match evidence.",included_field_groups:["identity","status","lineage","match"],token_budget:1800,source:"core"}]),q=new xe;function Te(){return q.getStore()??G}function ft(e,t){return q.run(Oe(e.workspaceContracts,e.packageContracts),t)}function Ce(e,t){let n=e.command.trim().toLowerCase(),o=e.intent.trim().toLowerCase(),r=`${n}:${o}`;if(!/^[a-z0-9][a-z0-9-]*$/.test(n)||!/^[a-z0-9][a-z0-9-]*$/.test(o))throw new TypeError(`Invalid context intent command or name: ${r}`);if(e.description.trim().length===0)throw new TypeError(`Context intent ${r} requires a non-empty description`);if(!Number.isSafeInteger(e.token_budget)||e.token_budget<=0)throw new TypeError(`Context intent ${r} requires a positive integer token_budget`);let s=[...new Set(e.included_field_groups.map(i=>i.trim()).filter(Boolean))];if(s.length===0)throw new TypeError(`Context intent ${r} requires included_field_groups`);return{command:n,intent:o,description:e.description.trim(),included_field_groups:s,token_budget:e.token_budget,source:t}}function Oe(e=[],t=[]){let n=[{source:"core",contracts:G,allowOverride:!1},{source:"package",contracts:t,allowOverride:!1},{source:"workspace",contracts:e,allowOverride:!0}],o=new Map,r=new Set;for(let s of n){r.clear();for(let i of s.contracts){let d=Ce(i,s.source),a=`${d.command}:${d.intent}`;if(r.has(a))throw new TypeError(`Duplicate context intent declaration: ${a}`);if(r.add(a),!s.allowOverride&&o.has(a))throw new TypeError(`Duplicate context intent declaration: ${a}`);o.set(a,d)}}return[...o.values()].sort((s,i)=>s.command.localeCompare(i.command)||s.intent.localeCompare(i.intent))}function z(e,t,n=Te()){let o=e.trim().toLowerCase(),r=t.trim().toLowerCase(),s=n.find(c=>c.command===o&&c.intent===r);if(s)return{...s,source:s.source??"core"};let i=n.filter(c=>c.command===o).map(c=>c.intent);if(i.length===0)return;let d=i.map(c=>{let u=Array.from({length:r.length+1},(p,f)=>f);for(let p=1;p<=c.length;p+=1){let f=u[0];u[0]=p;for(let l=1;l<=r.length;l+=1){let W=u[l];u[l]=Math.min(u[l]+1,u[l-1]+1,f+(c[p-1]===r[l-1]?0:1)),f=W}}return{candidate:c,distance:u[r.length]}}).sort((c,u)=>c.distance-u.distance||c.candidate.localeCompare(u.candidate))[0].candidate,a=`pm ${o} --for ${d}`;throw new h(`Unknown context intent "${r}" for ${o}. Did you mean "${d}"?`,g.USAGE,{code:"unknown_context_intent",reason:"unknown_intent",field:"for",required:`Use a declared ${o} intent.`,why:"Intent names are command-local contracts and cannot be inferred from output section names.",nextSteps:[a],recovery:{recovery_mode:"compact",attempted_command:`pm ${o} --for ${r}`,suggested_retry:a}})}var Q={context:(e,t,n)=>{e.depth===void 0&&(e.depth=t.intent==="handoff"?"deep":"standard"),e.section===void 0&&(e.section=t.intent==="handoff"?["activity","progress","blockers"]:["hierarchy","blockers","activity"]);let o=T(e.tokenBudget,t.token_budget),r=Math.max(1,Math.floor((o-800)/500)),s=String(n?r:Math.min(20,r));e.limit===void 0&&(e.limit=s),e.activityLimit===void 0&&(e.activityLimit=s)},get:e=>{e.depth===void 0&&e.fields===void 0&&(e.depth="standard")},list:(e,t,n)=>{if(e.brief===void 0&&e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.fields="id,title,status,type,priority,parent,assignee,risk,blocked_by"),e.limit===void 0){let o=T(e.tokenBudget,t.token_budget),r=Math.max(2,Math.floor((o-520)/16));e.limit=String(n?r:Math.min(100,r))}},next:e=>{e.readyOnly===void 0&&(e.readyOnly=!0)},search:(e,t,n)=>{if(e.compact===void 0&&e.full===void 0&&e.fields===void 0&&(e.compact=!0),e.limit===void 0){let o=T(e.tokenBudget,t.token_budget),r=Math.max(2,Math.floor((o-480)/16));e.limit=String(n?r:Math.min(100,r))}}};function lt(e,t){let n=t.tokenBudget??t.token_budget;if(typeof t.for!="string"){if(n!==void 0&&(e==="get"||e==="list"||e==="search"))throw new h("--token-budget requires a declared context intent selected with --for",g.USAGE,{code:"missing_required_option",field:"for",required:"Select a context intent with --for when setting --token-budget.",why:"A token-budget override has no projection contract to constrain without a selected intent.",nextSteps:["Retry with --for <intent> --token-budget <n>, or omit --token-budget."]});if(t.tokenBudget!==void 0||t.token_budget===void 0)return t;let i={...t,tokenBudget:n};return delete i.token_budget,i}let o=z(e,t.for),r=v(n)!==void 0,s={...t};return s.tokenBudget===void 0&&n!==void 0&&(s.tokenBudget=n),delete s.token_budget,s.tokenBudget===void 0&&(s.tokenBudget=String(o.token_budget)),Q[e](s,o,r),s}var Ee={context:"bounded_sections",get:"standard_item",list:"bounded_fields_and_rows",next:"bounded_ranked_rows",search:"bounded_ranked_rows"},x=256;function S(e){return Array.isArray(e)?e.map(S):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,n])=>[t,S(n)])):typeof e=="string"&&e.length>240?`${e.slice(0,240)}\u2026`:e}function v(e){let t=typeof e=="number"?e:typeof e=="string"&&/^\d+$/u.test(e.trim())?Number(e):Number.NaN;return Number.isSafeInteger(t)&&t>0?t:void 0}function T(e,t){let n=v(e);if(n===void 0)return t;if(n<x)throw new h(`Context intent token budget must be at least ${x}`,g.USAGE,{code:"invalid_argument_value",reason:"below_minimum",field:"tokenBudget",required:`Use an integer token budget of at least ${x}.`,why:"Smaller ceilings cannot contain the minimum machine-readable intent receipt.",nextSteps:[`Retry with --token-budget ${x} or omit the override.`]});return n}function y(e,t){let n=t.estimated_tokens;for(;;){t.estimated_tokens=n;let o=Math.ceil(Buffer.byteLength(JSON.stringify(e),"utf8")/4);if(o===n)return;n=o}}var L={context:["high_level","low_level","blocked_fallback","recently_created","unparented","hierarchy","activity","blockers"],get:["children"],list:["items"],next:["ready","decision_needed","blocked","held_by_others"],search:["items"]};function j(e){try{let t=JSON.parse(Buffer.from(e,"base64url").toString("utf8"));return typeof t.fingerprint!="string"||!Number.isSafeInteger(t.after_index)?void 0:{fingerprint:t.fingerprint,after_index:t.after_index,...typeof t.snapshot=="string"?{snapshot:t.snapshot}:{}}}catch{return}}function Se(e){if(e===null||typeof e!="object")return;if(typeof e.id=="string")return e.id;let t=e.item?.id;return typeof t=="string"?t:void 0}function ve(e,t,n){let o=!1;for(;;){if(y(e,t),t.estimated_tokens<=t.token_budget||n.length<=1)return o;let r=Buffer.byteLength(JSON.stringify(n),"utf8"),s=(t.estimated_tokens-t.token_budget)*4;n.splice(-Math.min(n.length-1,Math.max(1,Math.ceil(s/Math.max(1,Math.ceil(r/n.length)))))),o=!0}}function Ae(e,t,n){let o=e.items,r=typeof e.next_cursor=="string",s=r?e.next_cursor:n.after;if(!Array.isArray(o)||typeof s!="string")return!1;let i=j(s);if(i===void 0)return!1;let d=o.length,a=[...o],c=!1;for(;;){if(c=ve(e,t,o)||c,!c)return!1;let u=Se(o.at(-1));if(u===void 0)return o.splice(0,o.length,...a),y(e,t),!1;if(e.next_cursor=O(i.fingerprint,u,r?i.after_index-(d-o.length):i.after_index+o.length,i.snapshot),y(e,t),t.estimated_tokens<=t.token_budget||o.length<=1)break}return typeof e.count=="number"&&(e.count=o.length),typeof e.applied_limit=="number"&&(e.applied_limit=o.length),!0}function Re(e,t,n,o){if(e==="list"||e==="search")return Ae(t,n,o);if(e!=="next"||typeof t.next_cursor=="string")return!1;let r=!1;for(;;){if(y(t,n),n.estimated_tokens<=n.token_budget)return r;let s=L[e].map(f=>({key:f,rows:Array.isArray(t[f])?t[f]:[]})).filter(({rows:f})=>f.length>0).sort((f,l)=>l.rows.length-f.rows.length||f.key.localeCompare(l.key))[0];if(s===void 0)return r;let i=L[e].reduce((f,l)=>f+(Array.isArray(t[l])?t[l].length:0),0);if(i<=1)return r;let d=Math.min(s.rows.length,i-1),a=Buffer.byteLength(JSON.stringify(s.rows),"utf8"),c=Math.max(1,Math.ceil(a/s.rows.length)),u=(n.estimated_tokens-n.token_budget)*4,p=Math.min(d,Math.max(1,Math.ceil(u/c)));s.rows.splice(-p,p),r=!0}}function Ie(e,t,n){if(typeof t.for!="string")return n;let o=e.startsWith("list-")?"list":e;if(!(o in Q))return n;let r=o,s=z(r,t.for),i={command:r,intent:s.intent,source:s.source,included_field_groups:[...s.included_field_groups],token_budget:T(t.tokenBudget??t.token_budget,s.token_budget),estimated_tokens:0,within_budget:!0,degradation:Ee[r],declaration_feasible:!0,result_omitted:!1},d={...n};if(r==="list"||r==="search"){let c=r==="list"?520:480,u=Math.max(2,Math.floor((i.token_budget-c)/16)),f=v(t.tokenBudget??t.token_budget)!==void 0?u:Math.min(100,u),l=t.limit!==void 0;i.budget_derived_limit=f,i.binding_constraint=l?"explicit_limit":"token_budget",i.limit_reason=l?"The caller supplied an explicit row limit; the budget-derived limit remains diagnostic.":"The selected intent token budget determines the row ceiling.",d.budget_derived_limit=f}let a={...d,context_intent:i};return y(a,i),i.estimated_tokens>i.token_budget&&(i.degradation="recursive_budget_compaction",a={...S(d),context_intent:i},y(a,i)),i.estimated_tokens>i.token_budget&&Re(r,a,i,t)&&(i.degradation="budget_row_compaction",y(a,i)),i.estimated_tokens>i.token_budget&&(i.degradation="budget_receipt_only",i.declaration_feasible=!1,i.result_omitted=!0,i.within_budget=!1,a={budget_exceeded:{omitted_result:!0,reason:"declared_budget_infeasible",restore_with:"Increase --token-budget or narrow the request; the unprojected command may be larger."},context_intent:i},y(a,i)),a}function Me(e,t){if(typeof e.after!="string"||e.after.length===0)return t;let n=j(e.after)?.fingerprint??"opaque_cursor",o={...t};for(let r of["applied_limit","completeness","context_intent","count","filters","has_more","now","omission_receipt","projection","row_contract","sorting","total","truncated"])delete o[r];return o.continuation_contract={fingerprint:n,metadata:"reference",restore_with:"omit --after"},o}function mt(e,t,n){let o=$(e,n);return typeof o=="object"&&o!==null&&!Array.isArray(o)?M(e??"",t,Me(t,Ie(e??"",t,o))):o}(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="02baf966-46eb-5e19-b7eb-2f9fe05bb263")}catch{}})();var b=["result_rows","envelope","diagnostics","hints"],Ne=/^(?:items|results|rows|ready|blocked|recommended|decision_needed|children|dependencies|events|matches|commands|tools)$/u,Be=/^(?:diagnostics|errors?|warnings?|findings|violations|failures?)$/u,De=/^(?:hints?|suggestions?|next_steps?|recovery|remediation|examples?)$/u,Pe=8;function A(e){return Buffer.byteLength(e,"utf8")}function K(e){return A(JSON.stringify(e)??"null")}function Ue(e,t){return Be.test(e)?"diagnostics":De.test(e)?"hints":Ne.test(e)||Array.isArray(t)?"result_rows":"envelope"}function $e(e){let t={result_rows:0,envelope:0,diagnostics:0,hints:0};if(typeof e!="object"||e===null||Array.isArray(e))return t[Array.isArray(e)?"result_rows":"envelope"]=K(e),t;for(let[n,o]of Object.entries(e))t[Ue(n,o)]+=K({[n]:o});return Object.values(t).every(n=>n===0)&&(t.envelope=1),t}function Le(e,t){let n=b.reduce((i,d)=>i+t[d],0),o=b.map(i=>({section:i,value:e*t[i]/n})),r={result_rows:0,envelope:0,diagnostics:0,hints:0};for(let i of o)r[i.section]=Math.floor(i.value);let s=e-b.reduce((i,d)=>i+r[d],0);for(let i of[...o].sort((d,a)=>a.value-Math.floor(a.value)-(d.value-Math.floor(d.value))||b.indexOf(d.section)-b.indexOf(a.section))){if(s===0)break;r[i.section]+=1,s-=1}return r}function J(e,t){return typeof e=="object"&&e!==null&&!Array.isArray(e)?{...e,token_accounting:t}:{result:e,token_accounting:t}}function gt(e,t){let n=A(t(e)),o=Le(n,$e(e)),r=Object.fromEntries(b.map(d=>[d,{bytes:o[d],estimated_tokens:k(o[d])}])),s={version:1,measurement_scope:"output_before_token_accounting",estimator:"ceil(utf8_bytes / 4)",total_bytes:n,total_estimated_tokens:k(n),sections:r,accounting_receipt_bytes:0,accounting_receipt_estimated_tokens:0,excluded_fields:["token_accounting"],section_allocation:"proportional_canonical_json"},i=J(e,s);for(let d=0;d<Pe;d+=1){let a=A(t(i))-n;if(a===s.accounting_receipt_bytes)return i;s={...s,accounting_receipt_bytes:a,accounting_receipt_estimated_tokens:k(a)},i=J(e,s)}return i}export{X as a,qe as b,te as c,N as d,ne as e,oe as f,ze as g,k as h,nt as i,ot as j,$ as k,Xe as l,Ye as m,O as n,E as o,Fe as p,de as q,He as r,Ve as s,G as t,Te as u,ft as v,Oe as w,z as x,lt as y,j as z,Se as A,Ie as B,mt as C,gt as D};
|
|
2
|
+
//# sourceMappingURL=chunk-RIIN5V4N.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ra as b,sa as D,ta as T,ua as x}from"./chunk-MXYSIQ56.js";import{$ as M,Ma as I,Wa as _,_a as g,eb as S}from"./chunk-FF4MNAYB.js";import{E as w,K as h,Qa as A}from"./chunk-2EXI2DKR.js";import{Y as m,Z as f}from"./chunk-GHTN2ILR.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]="13c02696-29a7-598e-888a-3502fd88bfbe")}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]="a2fad90a-3575-5f3e-8cbe-ac380ac45591")}catch{}})();var N=3,R=20,$=.8,z=100,E=1e3,C=1e6;function ce(e){return e===void 0?[]:[`likely_duplicates:${e.result.items.map(t=>t.id).join(",")}`]}function L(e){let t=e.limit??N,n=e.threshold??$;if(!Number.isSafeInteger(t)||t<0||t>R)throw new f(`Similarity limit must be an integer from 0 to ${R}.`,m.USAGE);if(!Number.isFinite(n)||n<0||n>1)throw new f("Similarity threshold must be a number from 0 to 1.",m.USAGE);return{limit:t,threshold:n}}function O(e){let t=e.limit??z;if(!Number.isSafeInteger(t)||t<0||t>E)throw new f(`Duplicate cluster limit must be an integer from 0 to ${E}.`,m.USAGE);let n=e.since===void 0?void 0:new Date(e.since);if(n&&Number.isNaN(n.getTime()))throw new f("Duplicate cluster --since must be a valid ISO timestamp.",m.USAGE);return{limit:t,since:n}}async function q(e,t){let n=h(e.cwd??process.cwd(),e.pmRoot),r=await I(n),a=w(r),i=e.statuses?.map(c=>c.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=A(r.schema),l=i?.map(c=>{if(c==="all")return c;let p=M(c,s);if(!p)throw new f(`Unknown duplicate-cluster status "${c}". Allowed: all, ${s.definitions.map(y=>y.id).join(", ")}.`,m.USAGE);return p}),d=l?.includes("all")===!0;if(d&&l?.some(c=>c!=="all"))throw new f('The "all" status cannot be combined with other statuses.',m.USAGE);let o=d?void 0:l,u=o?new Set(o):void 0;return{items:(await S(n,r.item_format,a.type_to_folder,void 0,r.schema)).filter(c=>(!u||u.has(c.status))&&(!t||new Date(c.created_at).getTime()>=t.getTime())).sort((c,p)=>c.id.localeCompare(p.id)).map(c=>({item:c,prepared:D(c.title)})),statuses:o}}function U(e,t=C){let n=new Set,r=[new Map,new Map,new Map];for(let[a,i]of e.entries()){let s=[[i.prepared.normalized],i.prepared.issueCodes,i.prepared.tokens];for(let[l,d]of s.entries())for(let o of d){let u=r[l].get(o)??[];for(let c of u)n.add(`${c}:${a}`);if(n.size>t)throw new f(`Duplicate sweep exceeded ${C} candidate pairs; narrow it with statuses or since.`,m.CONFLICT,{code:"duplicate_sweep_cost_limit",required:"Narrow the batch duplicate query until its deterministic candidate set fits the disclosed safety bound."});u.push(a),r[l].set(o,u)}}return n}var ue={buildDuplicateClusters:k,collectDuplicateCandidatePairs:U,createDuplicateUnionFind:v};function v(e){let t=Array.from({length:e},(r,a)=>a);return{parent:t,findRoot:r=>{let a=r;for(;t[a]!==a;)a=t[a];for(;t[r]!==r;){let i=t[r];t[r]=a,r=i}return a}}}function F(e,t,n,r){let a=[];for(let i of t){let[s,l]=i.split(":").map(c=>Number.parseInt(c,10)),d=x(e[s].prepared,e[l].prepared);if(d.score<n)continue;let o=r.findRoot(s),u=r.findRoot(l);o!==u&&(r.parent[u]=o),a.push({left_id:e[s].item.id,right_id:e[l].item.id,...d})}return a}function k(e,t,n,r){let a=new Map;for(let i of e.keys()){let s=n.findRoot(i),l=a.get(s)??[];l.push(i),a.set(s,l)}return[...a.values()].filter(i=>i.length>1).map(i=>{let s=new Set(i.map(d=>e[d].item.id)),l=t.filter(d=>s.has(d.left_id)&&s.has(d.right_id)).sort((d,o)=>o.score-d.score||d.left_id.localeCompare(o.left_id)||d.right_id.localeCompare(o.right_id));return{id:e[i[0]].item.id,items:i.map(d=>{let o=e[d].item;return{id:o.id,title:o.title,status:o.status,type:o.type}}),matches:l,max_score:l[0]?.score??0}}).sort((i,s)=>s.max_score-i.max_score||i.id.localeCompare(s.id)).slice(0,r)}function G(e,t,n,r,a){return t.filter(i=>!n.has(i.id)).map(i=>({id:i.id,title:i.title,status:i.status,type:i.type,...T(e,i.title)})).filter(i=>i.score>=r).sort((i,s)=>s.score-i.score||i.id.localeCompare(s.id)).slice(0,a)}async function P(e,t={}){let n=e.title.trim();if(n.length===0)throw new f("Similarity candidate title must not be empty.",m.USAGE);let{limit:r,threshold:a}=L(t),i=h(t.cwd??process.cwd(),t.pmRoot),s=await I(i),l=w(s),d=await g(i,Object.values(l.type_to_folder)),o=b(n),u=d&&o.length>0?await _({pmRoot:i,expectedSourceCursor:d.source_cursor,query:o.map(y=>`"${y.replaceAll('"','""')}"`).join(" OR "),limit:Math.max(r*10,50)}):null,c=u===null?await S(i,s.item_format,l.type_to_folder,void 0,s.schema):u.items,p=G(n,c,new Set(e.excludeIds??[]),a,r);return{items:p,count:p.length,threshold:a,source:u?"persistent_index":"metadata_fallback"}}async function me(e={}){let{threshold:t}=L({...e,limit:void 0}),{limit:n,since:r}=O(e),{items:a,statuses:i}=await q(e,r),s=U(a),l=v(a.length),d=F(a,s,t,l),o=k(a,d,l,n);return{clusters:o,count:o.length,threshold:t,source:"metadata_scan",filters:{statuses:i??null,since:e.since??null},cost:{item_count:a.length,candidate_pairs:s.size,scored_pairs:s.size}}}async function fe(e,t){if(t.mode==="off")return;let n=await P(e,t);if(n.count===0)return;let r=t.mode==="strict"&&t.allowDuplicate===!0;if(t.mode==="strict"&&!r){let a=n.items.map(i=>`${i.id} (${i.status}): ${i.title}`).join("; ");throw new f(`Likely duplicate item(s) found: ${a}. Reuse the canonical item or pass --allow-duplicate with explicit intent.`,m.CONFLICT,{code:"likely_duplicate",required:"Reuse an existing item, or explicitly acknowledge the duplicate with --allow-duplicate.",recovery:{suggested_flags:["--allow-duplicate"]}})}return{mode:t.mode,bypassed:r,result: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]="412fc2d2-daee-5d87-82ab-5411a1503087")}catch{}})();function we(e,t){let n=t??{};return e.filter(r=>n[r.id]!==r.updated_at).map(r=>r.id).sort((r,a)=>r.localeCompare(a))}export{ce as a,ue as b,P as c,me as d,fe as e,we as f};
|
|
2
|
+
//# sourceMappingURL=chunk-RKWSCYYN.js.map
|