@unbrained/pm-cli 2026.9.16 → 2026.9.18
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 +35 -0
- package/dist/cli/register-operations.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +149 -149
- package/dist/cli-bundle/chunks/{chunk-Q6KPZGMP.js → chunk-AOD5WE6U.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A5EKLGOU.js → chunk-CA5DRNGA.js} +29 -29
- package/dist/cli-bundle/chunks/{chunk-UJSB6NO6.js → chunk-CI2JCBN2.js} +75 -75
- package/dist/cli-bundle/chunks/{chunk-DLVCGXO6.js → chunk-FZZVWWQP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LD2FH2YE.js → chunk-GRFRKHFC.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-IPR2ICDO.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-3UXLVJIM.js → chunk-T4J2X3RK.js} +63 -63
- package/dist/cli-bundle/chunks/{chunk-T526C5DX.js → chunk-WD7BQXA7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CPFBDM53.js → chunk-WUDF7HWM.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-X2EVS624.js +3 -0
- package/dist/cli-bundle/chunks/{chunk-GA73HHQG.js → chunk-XFGWFVR3.js} +48 -48
- package/dist/cli-bundle/chunks/chunk-Y2OK7IAD.js +8 -0
- package/dist/cli-bundle/chunks/{register-list-query-ISM35VIX.js → register-list-query-43EQISX7.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-PA5M3X77.js → register-mutation-TSZNAKEU.js} +2 -2
- package/dist/cli-bundle/chunks/register-operations-KFZIKATY.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-S6MMYN4D.js → register-setup-KTJ4ZE65.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SSG62L7U.js → chunk-246P5AK7.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-7D6M45AN.js +30 -0
- package/dist/cli-bundle/focused-chunks/{chunk-BFUXTNZU.js → chunk-7UZHYT5B.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-JZSLDLR4.js → chunk-BVOQRMHF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LNM3BS45.js → chunk-C6SH62BX.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-267N774W.js → chunk-GEFWBVPQ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-7S7XWMXC.js → chunk-HRANNGHM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GKSAMNBG.js → chunk-LG3SYXBX.js} +16 -16
- package/dist/cli-bundle/focused-chunks/{chunk-OWDDVMAP.js → chunk-LI6IGGB3.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WUMGGQYN.js → chunk-MMX7BQLH.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NOK652OP.js → chunk-PNCUNPSA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-OCTTDZOU.js → chunk-QKG7JD34.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-G4TKJZ4A.js → chunk-QVVOXVYI.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WHL5CQG3.js → chunk-QYQFBJXD.js} +51 -51
- package/dist/cli-bundle/focused-chunks/{chunk-5KYHDFDN.js → chunk-YJYSFWSW.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-ZDX2BCOT.js +12 -0
- package/dist/cli-bundle/main.js +2 -2
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +25 -25
- 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 +40 -40
- 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 +1 -1
- package/dist/core/config/nested-settings.js +1 -1
- package/dist/core/diagnostics/remediation.js +1 -1
- package/dist/core/shared/secret-rules.d.ts +110 -0
- package/dist/core/shared/secret-rules.js +2 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.js +1 -1
- package/dist/sdk/cli-contracts/command-aliases.js +1 -1
- package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
- package/dist/sdk/cli-program.js +1 -1
- package/dist/sdk/context-intent-contracts.js +1 -1
- package/dist/sdk/context-relevance.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/guide-topics.js +1 -1
- package/dist/sdk/lifecycle/event-validation-messages.d.ts +1 -1
- package/dist/sdk/lifecycle/event-validation-messages.js +1 -1
- package/dist/sdk/merge/install.js +2 -2
- package/dist/sdk/mutation-guard.d.ts +8 -1
- package/dist/sdk/mutation-guard.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/query/next-ready-budget.d.ts +20 -0
- package/dist/sdk/query/next-ready-budget.js +2 -0
- package/dist/sdk/query/next.d.ts +7 -2
- package/dist/sdk/query/next.js +1 -1
- package/dist/sdk/read-output-budget.d.ts +3 -1
- package/dist/sdk/read-output-budget.js +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/read-output-session.js +1 -1
- package/dist/sdk/test/execution.d.ts +6 -5
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/json-path.d.ts +11 -0
- package/dist/sdk/test/json-path.js +2 -0
- package/docs/BUILD_AND_RELEASE_ACCEPTANCE.md +66 -0
- package/docs/MERGE_SAFETY.md +13 -2
- package/docs/MUTATION_INTEGRITY.md +36 -4
- package/docs/NEXT_SELECTION_BUDGETS.md +93 -0
- package/docs/PACKED_FIRST_RUN.md +50 -0
- package/docs/README.md +2 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +8 -4
- package/docs/agent-task-token-baseline.json +7 -7
- package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +3 -0
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +3 -0
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
- package/marketplace.json +2 -2
- package/package.json +10 -8
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/README.md +43 -2
- package/packages/pm-calendar/extensions/calendar/command-definitions.ts +52 -0
- package/packages/pm-calendar/extensions/calendar/index.ts +2 -0
- package/packages/pm-calendar/extensions/calendar/manifest.json +3 -3
- package/packages/pm-calendar/extensions/calendar/shortcuts.ts +15 -0
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/build-lease.mjs +43 -0
- package/scripts/build.mjs +40 -0
- package/dist/cli-bundle/chunks/chunk-C3MFMGCR.js +0 -20
- package/dist/cli-bundle/chunks/chunk-GX5XSANL.js +0 -8
- package/dist/cli-bundle/chunks/chunk-PTMZALZM.js +0 -3
- package/dist/cli-bundle/chunks/register-operations-MBSG5D22.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5FSGN4MP.js +0 -12
- package/dist/cli-bundle/focused-chunks/chunk-Z4PWEIMX.js +0 -30
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as Ke,Aa as _o,B as Qe,Ba as So,C as Ye,Ca as vo,D as Ze,Da as Fo,E as $e,Ea as Eo,F as eo,Fa as Po,G as oo,Ga as Ro,H as to,Ha as Oo,I as ro,Ia as Uo,J as no,Ja as jo,K as fo,Ka as Ao,L as po,La as Bo,M as ao,Ma as Mo,N as mo,Na as Wo,O as so,Oa as zo,P as xo,Pa as Lo,Q as io,Qa as No,R as lo,Ra as Vo,S as uo,Sa as Xo,T as co,Ta as qo,U as yo,V as bo,a as fe,aa as f,b as pe,ba as p,c as ae,ca as a,d as me,da as m,e as de,ea as d,f as se,fa as s,ga as x,ha as i,ia as l,ja as u,ka as c,la as y,m as n,ma as b,na as g,o as Be,oa as C,p as Me,pa as w,q as We,qa as I,r as ze,ra as T,s as Le,sa as go,t as Ne,ta as Co,u as Ve,ua as wo,v as Xe,va as Io,w as qe,wa as To,x as Ge,xa as ko,y as He,ya as ho,z as Je,za as Do}from"./focused-chunks/chunk-
|
|
1
|
+
import{A as Ke,Aa as _o,B as Qe,Ba as So,C as Ye,Ca as vo,D as Ze,Da as Fo,E as $e,Ea as Eo,F as eo,Fa as Po,G as oo,Ga as Ro,H as to,Ha as Oo,I as ro,Ia as Uo,J as no,Ja as jo,K as fo,Ka as Ao,L as po,La as Bo,M as ao,Ma as Mo,N as mo,Na as Wo,O as so,Oa as zo,P as xo,Pa as Lo,Q as io,Qa as No,R as lo,Ra as Vo,S as uo,Sa as Xo,T as co,Ta as qo,U as yo,V as bo,a as fe,aa as f,b as pe,ba as p,c as ae,ca as a,d as me,da as m,e as de,ea as d,f as se,fa as s,ga as x,ha as i,ia as l,ja as u,ka as c,la as y,m as n,ma as b,na as g,o as Be,oa as C,p as Me,pa as w,q as We,qa as I,r as ze,ra as T,s as Le,sa as go,t as Ne,ta as Co,u as Ve,ua as wo,v as Xe,va as Io,w as qe,wa as To,x as Ge,xa as ko,y as He,ya as ho,z as Je,za as Do}from"./focused-chunks/chunk-ZDX2BCOT.js";import{R as xe,Ra as ie,Sa as le,Ta as ue,Va as he,Wa as De,Xa as _e,Ya as Se,fb as ve,gb as Fe,hb as Ee,ib as Pe,jb as Re,kb as Oe,lb as Ue,mb as je,nb as Ae,rb as k}from"./focused-chunks/chunk-LG3SYXBX.js";import"./focused-chunks/chunk-PNCUNPSA.js";import{a as X,b as q,c as G,d as H,e as J,f as K}from"./focused-chunks/chunk-GEFWBVPQ.js";import"./focused-chunks/chunk-HRANNGHM.js";import{$ as Q,Da as Y,fc as ce,gc as ye,hb as r,hc as be,ic as ge,jc as Ce,kb as Z,kc as we,lb as $,lc as Ie,mb as ee,mc as Te,nb as oe,nc as ke,pb as te,qb as re,rb as ne}from"./focused-chunks/chunk-BVOQRMHF.js";import"./focused-chunks/chunk-QKG7JD34.js";import"./focused-chunks/chunk-HFAW3FJQ.js";import{$d as O,ad as h,ae as U,bd as D,be as j,cd as _,ce as A,dd as S,de as B,ed as v,ee as M,fd as F,fe as W,gd as E,ge as z,hd as P,he as L,id as R,ie as N,je as V}from"./focused-chunks/chunk-7D6M45AN.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="d45a8203-4501-5797-a6cc-a2e7844adec9")}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="87fb8085-4f16-58a9-9de7-c871fb90be5b")}catch{}})();export{ye as ACTIONABILITY_ORDERING_KINDS,q as BRIEF_LIST_FIELDS,Ke as CONTEXT_EVALUATION_METRIC_NAMES,f as CONTEXT_OUTPUT_VALUES,eo as CONTEXT_PACKING_PROFILES,qe as CONTEXT_RELEVANCE_SERVICE,Ve as CONTEXT_RELEVANCE_SIGNAL_NAMES,ro as CONTEXT_SIGNAL_SET_VERSION,to as CONTEXT_SIGNAL_STORE_FORMAT_VERSION,no as CONTEXT_SIGNAL_STORE_WARNING_DETAILS,O as CONTEXT_USAGE_LIMITS,mo as ContextSignalStore,U as ContextUsageValidationError,_o as DEFAULT_CHILD_SAMPLE_LIMIT,X as DEFAULT_COMPACT_LIST_FIELDS,oe as DEFAULT_DERIVED_INDEX_MINIMUM_ITEMS,xo as DEFAULT_WORKSPACE_MEMORY_MINIMUM_ITEMS,J as GET_DEPTH_VALUES,ao as JsonFileContextSignalStoreAdapter,G as LIST_COMMAND_DEFAULT_PROJECTIONS,Ee as LIST_SORT_FIELDS,Pe as LIST_SORT_ORDER_VALUES,Do as MAX_CHILD_PROJECTION_ITEMS,go as NEXT_OUTPUT_VALUES,fe as PM_COMPLETE_LIST_FINDING_CODES,pe as PmCompleteListValidationError,R as QUERY_CURSOR_CONTRACT,Ae as _testOnly,Me as _testOnlyAggregateCommand,Fo as _testOnlyGetCommand,wo as _testOnlyNextCommand,Vo as _testOnlySearchCommand,te as acquireItemMetadataDerivedIndexLock,k as analyzeDuplicateItems,I as applyContextTagProjection,Re as applyFilterValueEcho,se as assertCompleteListResult,j as attachContextUsageServingReceipt,b as buildChildrenByParent,Eo as buildCompactSearchFilterSummary,Oe as buildContentFilterEcho,po as buildContextSignalSnapshot,Ue as buildGovernanceMissingFilterEcho,So as buildItemChildrenRollup,Xe as buildItemContextRelevanceCandidates,Po as buildVerboseSearchFilters,io as buildWorkspaceMemorySnapshot,de as certifyCompleteListResult,zo as classifyImplicitSemanticFallbackReason,be as collectBlockedByIds,Ce as collectBlockedByIdsFromCorpus,B as collectContextUsageDeliveredItemIds,Ie as collectDependencyBlockedIds,Wo as collectErrorCauseCodes,i as collectSubtreeIds,l as compareCriticalItems,ke as computeActionabilityReport,ae as createCompleteListOptions,D as createQueryFingerprint,Ro as createSearchCursorFingerprint,F as decodeQueryCursor,S as decodeQueryCursorEnvelope,v as decodeQueryCursorState,Ge as defaultScoreContextCandidates,_ as encodeQueryCursor,Qe as evaluateContextRanking,M as finalizeContextUsageDelivery,No as formatVectorIndexRecoveryWarnings,ge as indexBlockedByIds,me as inspectCompleteListResult,K as listGetProjectionFields,H as listListProjectionFields,r as measureItemMetadataReadWork,C as mergeSortedWarnings,oo as packContextCandidates,u as packRankedContextItems,P as paginateQueryRows,s as parseContextDepth,p as parseContextFocusFields,x as parseContextSections,fo as parseContextSignalSnapshot,ie as parseIntegerLimit,xe as parseLimit,he as parseMultiValueFilter,le as parsePriority,Se as parsePriorityFilterSet,De as parseStringFilterSet,ue as parseType,_e as parseTypeFilterSet,Io as partitionDecisionEntries,a as projectContextFocusRows,A as propagateContextUsageServingReceipt,Z as queryItemMetadataIndex,$ as queryLinkedFileMetadataIndex,ee as querySimilarItemMetadataIndex,V as readContextUsageAffinity,Q as readHistoryEntries,re as readItemMetadataDerivedIndexState,so as readWorkspaceContextSignals,lo as readWorkspaceMemory,z as recordContextUsageDelivery,W as recordContextUsageServing,L as recordContextUsageTouch,N as recordContextUsageTouches,ne as refreshItemMetadataDerivedIndex,ze as renderCalendarMarkdown,Le as renderCalendarToon,w as renderContextMarkdown,ko as renderNextMarkdown,We as resolveCalendarOutputFormat,Fe as resolveContentFieldFilters,m as resolveContextOutputFormat,d as resolveContextTokenBudget,jo as resolveEffectiveSearchMode,Bo as resolveHybridSemanticWeight,we as resolveItemBlockers,ce as resolveItemExecutionRole,ve as resolveMissingMetadataFilters,Co as resolveNextOutputFormat,E as resolveQueryCursorStart,Uo as resolveSearchMaxResults,Oo as resolveSearchPage,Ao as resolveSearchScoreThreshold,Mo as resolveSearchTuning,Lo as resolveVectorIndexRecovery,n as runActivity,Be as runAggregate,Ne as runCalendar,T as runContext,$e as runContextEvaluationCorpus,Ye as runContextEvaluationScenario,qo as runDuplicates,vo as runGet,ho as runHistory,je as runList,To as runNext,Xo as runSearch,He as scoreContextCandidates,Je as scoreContextCandidatesWithActiveExtensions,yo as searchWorkspaceMemory,bo as searchWorkspaceMemoryReadResult,Te as selectActionableEntries,h as selectCursorSemanticOptions,co as selectWorkspaceMemory,uo as selectWorkspaceMemoryRollups,Ze as summarizeContextEvaluationReports,g as toContextFocusItem,c as toContextPackingSummary,y as toContextRankingSummary,Y as verifyHistoryChain};
|
|
2
2
|
//# sourceMappingURL=sdk-query.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$a as
|
|
1
|
+
import{$a as oc,$b as od,Aa as Kb,Ab as Pc,Ba as Lb,Bb as Qc,Ca as Mb,Cb as Rc,Da as Nb,Db as Sc,Ea as Ob,Eb as Tc,Fa as Pb,Fb as Uc,Ga as Qb,Gb as Vc,Ha as Rb,Hb as Wc,Ia as Sb,Ib as Xc,Ja as Tb,Jb as Yc,Ka as Ub,Kb as Zc,La as Vb,Lb as _c,M as rb,Ma as Wb,Mb as $c,N as sb,Na as Xb,Nb as ad,O as tb,Oa as Yb,Ob as bd,Pa as Zb,Pb as cd,Qa as _b,Qb as dd,Ra as $b,Rb as ed,Sa as ac,Sb as fd,Ta as bc,Tb as gd,Ua as cc,Ub as hd,Va as ic,Vb as id,Wa as jc,Wb as jd,Xa as kc,Xb as kd,Ya as lc,Yb as ld,Za as mc,Zb as md,_a as nc,_b as nd,a as Ea,ab as pc,ac as pd,b as Fa,bb as qc,bc as qd,c as Ga,cb as rc,cc as rd,db as sc,dc as sd,eb as tc,ec as td,fa as wb,fb as uc,fc as ud,ga as xb,gb as vc,gc as vd,ha as yb,hb as wc,hc as wd,ia as zb,ib as xc,ic as xd,jb as yc,jc as yd,kb as zc,kc as zd,lb as Ac,lc as Ad,mb as Bc,mc as Bd,n as La,nb as Cc,nc as Cd,ob as Dc,oc as Dd,p as Ma,pb as Ec,pc as Ed,q as Na,qb as Fc,qc as Fd,r as Oa,rb as Gc,rc as Gd,s as Pa,sa as Ab,sb as Hc,sc as Hd,t as Qa,ta as Db,tb as Ic,tc as Id,u as Ra,ua as Eb,ub as Jc,uc as Jd,v as Sa,va as Fb,vb as Kc,vc as Kd,wa as Gb,wb as Lc,wc as Ld,xa as Hb,xb as Mc,xc as Md,ya as Ib,yb as Nc,yc as Nd,za as Jb,zb as Oc,zc as Od}from"./chunks/chunk-T4J2X3RK.js";import"./chunks/chunk-X2EVS624.js";import{J as vb,b as Za,d as qb,p as ub}from"./chunks/chunk-WD7BQXA7.js";import{Ab as ib,Bd as Bb,Cb as jb,Cd as Cb,Db as kb,Eb as lb,Od as dc,Pd as ec,Qd as fc,Rd as gc,Sd as hc,gc as mb,jc as nb,kc as ob,lc as pb,yb as gb,zb as hb}from"./chunks/chunk-CA5DRNGA.js";import{H as Ta,I as Ua,K as Va,L as Wa,M as Xa,c as Ha,d as Ia,f as Ja,g as Ka}from"./chunks/chunk-XFGWFVR3.js";import{Dc as cb,Ob as Ya,Pb as _a,Qb as $a,Rb as ab,Sb as bb,Uc as db,Vc as eb,Zc as fb}from"./chunks/chunk-IPR2ICDO.js";import{$d as A,Aa as k,Ea as l,Ga as m,Ha as n,Ia as o,Jg as ba,Kg as ca,Lg as da,Lj as va,Mg as ea,Ng as fa,O as e,Og as ga,Oi as ra,Pg as ha,Pi as sa,Q as f,Qg as ia,Qi as ta,Rc as v,Rg as ja,Sg as ka,Tg as la,Ug as ma,Vg as na,Wg as oa,Zd as z,_c as w,ab as p,ad as x,ak as wa,al as Aa,ba as g,bk as xa,bl as Ba,ca as h,cg as S,cl as Ca,df as N,dg as T,dk as ya,ee as B,eg as U,ek as za,el as Da,fe as C,fg as V,gb as q,ge as D,gf as O,gg as W,he as E,hf as P,hg as X,ib as r,ie as F,if as Q,ig as Y,je as G,jf as R,jg as Z,ke as H,kg as _,ki as pa,lb as s,lg as $,li as qa,mb as t,me as I,mg as aa,o as a,ob as u,oe as J,pe as K,qd as y,r as b,re as L,s as c,se as M,t as d,xj as ua,ya as i,za as j}from"./chunks/chunk-CI2JCBN2.js";export{B as BASELINE_ITEM_FORMAT_VERSION,i as BUILTIN_ITEM_TYPE_VALUES,o as CONFIDENCE_TEXT_VALUES,cb as CONTEXT_OUTPUT_VALUES,C as CURRENT_ITEM_FORMAT_VERSION,gb as DEFAULT_TERMINAL_TRANSITION_POLICY,l as DEPENDENCY_KIND_VALUES,e as EXIT_CODE,O as HISTORY_EVENT_CLASSIFICATION_VERSION,n as ISSUE_SEVERITY_VALUES,j as ITEM_TYPE_VALUES,P as MAINTENANCE_HISTORY_OPERATIONS,T as MAX_WORKFLOW_POLICIES,U as MAX_WORKFLOW_POLICY_TERMS,eb as NEXT_OUTPUT_VALUES,Ea as PM_CLI_EXPECTED_ERROR_NAME,ja as PM_COMMAND_OUTPUT_BUDGET_CONTRACTS,ea as PM_DIAGNOSTIC_DEGRADATION_STEPS,fa as PM_DIAGNOSTIC_OUTPUT_BUDGET_CONTRACTS,da as PM_DIAGNOSTIC_OUTPUT_CLASSES,Ia as PM_GITIGNORE_END,Ha as PM_GITIGNORE_START,ca as PM_OUTPUT_BUDGET_CLASSES,ba as PM_OUTPUT_DEGRADATION_STEPS,f as PmCliError,ic as PmClient,Ma as PmCompleteListValidationError,m as RISK_VALUES,La as SEARCH_EXTENSION_FLAG_DEFINITIONS,k as STATUS_VALUES,Q as SUBSTANTIVE_HISTORY_OPERATIONS,S as WORKFLOW_POLICY_ACTIONS,Ua as WORKFLOW_POLICY_DOCUMENT_SCHEMA,Ta as WORKFLOW_POLICY_SCHEMA,N as acquireLock,pc as aggregate,Od as analyzeSdkActionCoverage,Bc as append,qa as appendHistoryEntry,jb as applyTerminalOrderingPolicy,Qa as assertCompleteListResult,Va as buildWorkflowCompletenessCheck,M as canonicalDocument,Pa as certifyCompleteListResult,kd as claim,ld as claimNext,R as classifyHistoryEvent,F as classifyItemFormatVersion,Ra as clearWorkspaceContractsCache,jd as close,kb as closeItem,td as closeTask,sc as comments,Zb as commitImportedItem,Dc as config,jc as context,nd as copy,gd as create,Na as createCompleteListOptions,pa as createHistoryEntry,Wa as createLifecycleCompletenessPolicies,Fa as createPmCliExpectedError,ha as createPmCommandOutputBudget,aa as createWorkflowPolicyEvaluator,ia as definePmCommandOutputBudget,od as deleteItem,zc as deps,yc as docs,rc as duplicates,D as effectiveItemFormatVersion,Yb as emptyImportedDocument,Ka as ensurePmGitignore,Xb as ensureTrackerInitialized,la as estimatePmOutputTokens,$ as evaluateWorkflowPolicies,ud as extension,wd as extensionActivate,xd as extensionDeactivate,vd as extensionList,vc as files,wc as filesDiscover,xc as filesLookup,qd as focus,ad as gc,ta as generateItemId,nc as get,v as getActiveExtensionRegistrations,Kd as getContracts,u as getHistoryPath,t as getItemPath,Ja as getPmGitignoreBlock,s as getSettingsPath,Sa as getWorkspaceContracts,Ac as graph,$c as health,ed as historyCompact,fd as historyCompactBulk,bd as historyRedact,cd as historyRepair,dd as historyRepairAll,ga as inferPmOutputBudgetClass,Cc as init,Oa as inspectCompleteListResult,Ga as isPmCliExpectedError,I as isTerminalStatus,h as isTimestampLiteral,Aa as jaccardSimilarity,uc as learnings,kc as list,lc as listAllComplete,ya as listAllItemMetadata,za as listAllItemMetadataLight,wb as loadCreateTemplateOptions,wa as locateItem,oc as next,E as normalizeItemFormatVersion,sa as normalizeItemId,J as normalizeItemMetadata,ra as normalizeRawItemId,Ba as normalizeSimilarityText,H as normalizeStatusInput,tc as notes,g as nowIso,Hd as packageActivate,Gd as packageCatalog,Id as packageDeactivate,Ed as packageDescribe,Cd as packageDoctor,Ad as packageInstall,yd as packageLifecycle,zd as packageList,Dd as packageManage,Fd as packageReload,Bd as packageUninstall,y as parseTags,V as parseWorkflowPolicy,W as parseWorkflowPolicyDocument,a as pathExists,sd as pauseTask,Vc as profile,Yc as profileApply,Zc as profileLint,Wc as profileList,Xc as profileShow,na as projectPmDiagnosticOutput,oa as projectPmDiagnosticText,Eb as readBooleanOption,Fb as readCsvListOption,b as readFileIfExists,xa as readLocatedItem,Ld as readRequiredString,ua as readSettings,Db as readStringOption,va as readWorkflowPolicies,X as readWorkflowPolicyField,md as release,d as removeFileIfExists,$a as renderCalendarMarkdown,ab as renderCalendarToon,ac as renderGuideMarkdown,id as reopen,ib as requireTerminalReason,_a as resolveCalendarOutputFormat,_b as resolveGuideOutputFormat,q as resolveImplicitPmRoot,p as resolveItemTypeRegistry,ka as resolvePmCommandOutputBudget,ma as resolvePmDiagnosticOutputBudget,r as resolvePmRoot,A as resolveRuntimeFieldRegistry,z as resolveRuntimeStatusRegistry,hb as resolveTerminalReason,pd as restore,Nd as runAction,x as runActiveOnReadHooks,w as runActiveOnWriteHooks,Za as runAggregate,bb as runCalendar,lb as runClose,pb as runCloseTask,bc as runCompletion,db as runContext,rb as runCopy,sb as runDelete,Cb as runDuplicates,tb as runFocus,ub as runGet,$b as runGuide,Ya as runList,fb as runNext,ob as runPauseTask,cc as runReindex,Ab as runReopen,qb as runRestore,vb as runSearch,nb as runStartTask,Bb as runStats,yb as runTemplatesList,xb as runTemplatesSave,zb as runTemplatesShow,dc as runTestRunsList,fc as runTestRunsLogs,hc as runTestRunsResume,ec as runTestRunsStatus,gc as runTestRunsStop,mb as runUpdate,Md as runWithActiveExtensions,Xa as runWorkflowPolicyAction,G as scanItemFormatVersions,Ec as schema,Lc as schemaAddField,Jc as schemaAddStatus,Hc as schemaAddType,Pc as schemaApplyPreset,Qc as schemaInferTypes,Fc as schemaList,Nc as schemaListFields,Tc as schemaRemapStatus,Mc as schemaRemoveField,Kc as schemaRemoveStatus,Ic as schemaRemoveType,Sc as schemaRenameField,Rc as schemaRenameType,Gc as schemaShow,Oc as schemaShowField,Uc as schemaShowStatus,Da as scoreItemSimilarity,mc as search,Wb as selectImportAuthor,L as serializeItemDocument,K as splitFrontMatter,rd as startTask,qc as stats,Hb as toEstimatedMinutesValue,Mb as toImportBoolean,Qb as toImportConfidence,Lb as toImportInteger,Ub as toImportLinkedDocs,Tb as toImportLinkedFiles,Vb as toImportLinkedTests,Sb as toImportLogEntries,Rb as toImportNormalizedEnum,Pb as toImportNumberMap,Ib as toImportPriority,Kb as toImportStatus,Nb as toImportStringList,Ob as toImportStringMap,Jb as toImportTags,Gb as toNonEmptyImportString,Ca as tokenizeSimilarityText,hd as update,Jd as upgrade,_c as validate,Z as workflowApprovalFingerprint,_ as workflowPolicyApplies,Y as workflowPolicyFingerprint,c as writeFileAtomic};
|
|
2
2
|
//# sourceMappingURL=sdk-runtime.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as t,B as u,C as v,D as w,E as x,F as y,G as z,H as A,I as B,J as C,K as D,L as E,M as F,N as G,O as H,P as I,Q as J,R as K,S as L,T as M,U as N,V as O,W as P,X as Q,Y as R,f as c,g as d,l as e,m as f,n as g,o as h,p as i,q as j,r as k,s as l,t as m,u as n,v as o,w as p,x as q,y as r,z as s}from"./chunks/chunk-
|
|
1
|
+
import{A as t,B as u,C as v,D as w,E as x,F as y,G as z,H as A,I as B,J as C,K as D,L as E,M as F,N as G,O as H,P as I,Q as J,R as K,S as L,T as M,U as N,V as O,W as P,X as Q,Y as R,f as c,g as d,l as e,m as f,n as g,o as h,p as i,q as j,r as k,s as l,t as m,u as n,v as o,w as p,x as q,y as r,z as s}from"./chunks/chunk-Y2OK7IAD.js";import"./chunks/chunk-T4J2X3RK.js";import"./chunks/chunk-X2EVS624.js";import"./chunks/chunk-WD7BQXA7.js";import"./chunks/chunk-CA5DRNGA.js";import{Aa as b,h as a}from"./chunks/chunk-XFGWFVR3.js";import"./chunks/chunk-IPR2ICDO.js";import"./chunks/chunk-CI2JCBN2.js";export{e as activateExtensionForTest,M as assertExtensionBlueprint,L as assertExtensionCapabilityUsage,t as assertExtensionDeactivated,P as assertExtensionManifestCompatible,O as assertExtensionManifestMatchesBlueprint,Q as assertExtensionPreflight,u as assertPackageManifest,N as assertProjectProfile,v as assertRegisteredCommandContract,F as assertRegisteredCommandOverride,B as assertRegisteredExporter,w as assertRegisteredFlags,x as assertRegisteredHook,A as assertRegisteredImporter,C as assertRegisteredItemField,D as assertRegisteredItemType,K as assertRegisteredMigration,G as assertRegisteredParserOverride,H as assertRegisteredPreflightOverride,E as assertRegisteredProfile,I as assertRegisteredRendererOverride,y as assertRegisteredSearchProvider,J as assertRegisteredServiceOverride,z as assertRegisteredVectorStoreAdapter,R as createExtensionTestHarness,f as deactivateExtensionForTest,a as describeExtensionActivation,c as describeExtensionBlueprint,d as lintExtensionBlueprint,b as renderExtensionSurfaceMarkdown,g as runRegisteredCommandForTest,l as runRegisteredCommandOverrideForTest,s as runRegisteredExporterForTest,i as runRegisteredHookForTest,r as runRegisteredImporterForTest,q as runRegisteredMigrationForTest,h as runRegisteredMutationGuardForTest,j as runRegisteredParserOverrideForTest,k as runRegisteredPreflightOverrideForTest,m as runRegisteredRendererOverrideForTest,o as runRegisteredSearchProviderForTest,n as runRegisteredServiceOverrideForTest,p as runRegisteredVectorStoreAdapterForTest};
|
|
2
2
|
//# sourceMappingURL=sdk-testing.js.map
|
package/dist/cli-bundle/sdk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as Fh,B as jh,C as GM,D as UM,E as BM,a as fs,b as _s,c as hs,d as gs,e as PM,f as MM,g as Oh,h as Ih,i as Rh,k as Ph,l as Mh,m as kh,n as xh,o as Nh,p as Lh,q as Dh,r as $h,s as kM,t as xM,u as NM,v as LM,w as DM,x as $M,y as FM,z as jM}from"./chunks/chunk-CPFBDM53.js";import{A as Ik,B as Rk,C as Pk,D as Mk,E as kk,F as xk,G as Nk,H as Lk,I as Dk,J as $k,K as Fk,L as jk,M as Gk,N as Uk,O as Bk,P as qk,Q as zk,R as Vk,S as Hk,T as Kk,U as Wk,V as Xk,W as Yk,X as Jk,Y as Zk,a as rk,b as ok,c as nk,d as ik,e as sk,f as ak,g as ck,h as dk,i as lk,j as uk,k as pk,l as mk,m as fk,n as _k,o as hk,p as gk,q as yk,r as bk,s as Ck,t as Tk,u as Sk,v as wk,w as Ek,x as Ak,y as vk,z as Ok}from"./chunks/chunk-GX5XSANL.js";import{a as qM,b as zM,c as VM,d as HM}from"./chunks/chunk-Q6KPZGMP.js";import{a as KM,b as WM,c as XM,d as YM,e as JM,f as ZM,g as QM,h as ek,i as tk}from"./chunks/chunk-DLVCGXO6.js";import{$ as nr,$a as o_,$b as oh,A as tO,Aa as Af,Ab as P_,B as rO,Ba as vf,Bb as M_,C as mu,Ca as Of,Cb as k_,D as kp,Da as If,Db as x_,E as xp,Ea as Rf,Eb as N_,F as Np,Fa as Pf,Fb as L_,G as Lp,Ga as Mf,Gb as D_,H as Dp,Ha as kf,Hb as $_,I as Ye,Ia as xf,Ib as F_,J as $p,Ja as Nf,Jb as j_,K as Fp,Ka as Lf,Kb as G_,L as jp,La as Df,Lb as U_,M as Gp,Ma as $f,Mb as B_,N as Up,Na as Ff,Nb as q_,O as Bp,Oa as jf,Ob as z_,P as tM,Pa as Gf,Pb as V_,Q as rM,Qa as Uf,Qb as H_,R as oM,Ra as dr,Rb as K_,S as Xt,Sa as he,Sb as W_,T as Yt,Ta as Xf,Tb as X_,U as Jt,Ua as Yf,Ub as Y_,V as Zt,Va as Jf,Vb as J_,W as Qt,Wa as Zf,Wb as Z_,X as er,Xa as Qf,Xb as Q_,Y as tr,Ya as e_,Yb as eh,Z as rr,Za as t_,Zb as th,_ as or,_a as r_,_b as rh,a as zc,aa as ir,ab as n_,ac as nh,b as Vc,ba as ym,bb as i_,bc as ih,c as Hc,ca as bm,cb as s_,cc as sh,d as Rv,da as Cm,db as a_,dc as ah,e as Pv,ea as Tm,eb as c_,ec as ch,f as Kc,fa as Sm,fb as d_,fc as dh,g as $v,ga as Je,gb as l_,gc as lh,h as Fv,ha as wm,hb as u_,hc as uh,i as jv,ia as Em,ib as p_,ic as ph,j as Gv,ja as Am,jb as m_,jc as mh,k as Uv,ka as vm,kb as f_,kc as fh,l as Bv,la as Om,lb as __,lc as _h,m as qv,ma as Im,mb as h_,mc as hh,n as zv,na as Rm,nb as g_,nc as gh,o as Vv,oa as Pm,ob as y_,oc as yh,p as Hv,pa as gM,pb as b_,pc as bh,q as Kv,qa as _f,qb as C_,qc as Ch,r as Wv,ra as hf,rb as T_,rc as Th,s as Xv,sa as gf,sb as S_,sc as Sh,t as Yv,ta as yf,tb as w_,tc as wh,u as Zc,ua as bf,ub as E_,uc as Eh,v as Qc,va as Cf,vb as A_,vc as Ah,w as Jv,wa as Tf,wb as v_,wc as vh,x as Zv,xa as Sf,xb as O_,y as Qv,ya as wf,yb as I_,z as eO,za as Ef,zb as R_}from"./chunks/chunk-3UXLVJIM.js";import{a as Wt,f as jP,g as GP,h as Vp,i as Hp}from"./chunks/chunk-PTMZALZM.js";import{A as HP,B as KP,C as WP,D as XP,E as YP,F as JP,G as ZP,H as QP,I as eM,J as om,K as nm,L as im,M as pM,N as Mm,O as mM,P as fM,Q as _M,R as hM,b as pu,c as RR,d as Mp,e as vP,f as OP,g as IP,h as RP,i as PP,j as MP,k as kP,l as xP,m as NP,n as LP,o as DP,p as qp,q as $P,r as Qp,s as em,t as tm,u as rm,v as UP,w as BP,x as qP,y as zP,z as VP}from"./chunks/chunk-T526C5DX.js";import{$a as cu,$b as Ep,$c as Fm,A as jO,Aa as Ll,Ab as fP,Ac as lm,Ad as Qm,B as GO,Ba as Dl,Bb as _P,Bc as um,Bd as ef,C as UO,Ca as $l,Cb as hP,Cc as pm,Cd as tf,D as BO,Da as Fl,Db as rp,Dc as mm,Dd as rf,E as ZO,Ea as jl,Eb as op,Ec as fm,Ed as of,Fa as Gl,Fc as _m,Fd as RM,Ga as Ul,Gb as np,Gc as hm,Gd as nf,Ha as Bl,Hb as ip,Hc as gm,Hd as sf,Ia as ql,Ib as gP,Ic as dM,Id as af,J as Yd,Ja as zl,Jb as sp,Jc as lM,Jd as cf,Ka as Vl,Kb as ap,Kc as uM,Kd as df,La as Hl,Lb as cp,Lc as yM,Ld as lf,Ma as Kl,Mb as dp,Mc as sr,Md as uf,Na as Wl,Nb as lp,Nc as bM,Nd as pf,Oa as Xl,Ob as up,Oc as Ze,Od as mf,Pa as Yl,Pb as pp,Pc as oe,Pd as ff,Qa as Jl,Qb as mp,Qc as km,Qd as Bf,Ra as Zl,Rb as fp,Rd as qf,Sa as Ql,Sb as _p,Sd as zf,Ta as eu,Tb as hp,Tc as Qe,Td as Vf,Ua as tu,Ub as gp,Uc as xm,Ud as Hf,Va as ru,Vb as yp,Vc as Nm,Vd as Kf,Wa as ou,Wb as bp,Wd as Wf,Xa as nu,Xb as Cp,Xc as _e,Ya as iu,Yb as Tp,Yc as Lm,Za as su,Zb as Sp,Zc as Dm,_a as au,_b as wp,_c as $m,a as mO,aa as QO,ab as du,ac as yP,ad as CM,b as fO,ba as eI,bb as lu,bc as bP,bd as TM,c as _O,ca as Jd,cb as SR,cc as Ap,cd as SM,d as hO,da as Zd,db as wR,dd as wM,e as gO,ea as Qd,eb as ER,ed as EM,f as yO,fa as el,fb as AR,fd as ar,g as bO,ga as tl,gb as vR,gc as vp,gd as AM,h as CO,ha as rl,hb as OR,hd as vM,i as TO,ia as ol,ib as IR,ic as Op,id as cr,j as SO,ja as NI,jb as fu,jc as Ip,jd as OM,k as wO,ka as LI,kb as _u,kc as Rp,kd as IM,l as EO,la as DI,lb as hu,lc as Pp,m as AO,ma as $I,mb as gu,mc as CP,md as jm,n as vO,na as FI,nb as yu,nc as TP,nd as Gm,o as OO,oa as jI,oc as SP,od as Um,p as IO,pa as GI,pb as bu,pc as Xe,pd as Bm,q as RO,qa as HI,qb as Cu,qc as wP,qd as qm,r as PO,ra as KI,rb as Tu,rc as Kt,rd as zm,s as MO,sa as Rl,sb as Su,sc as EP,sd as Vm,t as kO,ta as Pl,tb as wu,tc as AP,td as Hm,u as xO,ua as WI,ub as Zu,uc as FP,ud as Km,v as NO,va as XI,vb as Qu,vc as zp,vd as Wm,w as LO,wa as Ml,wb as ep,wc as sm,wd as Xm,x as DO,xa as kl,xb as tp,xc as am,xd as Ym,y as $O,ya as xl,yb as pP,yc as cm,yd as Jm,z as FO,za as Nl,zb as mP,zc as dm,zd as Zm}from"./chunks/chunk-A5EKLGOU.js";import{Aa as gl,Ba as yl,Ca as bl,H as lI,Ha as Cl,I as uI,Ia as Tl,Ja as Sl,K as pI,Ka as wl,L as mI,La as El,M as fI,Ma as Al,N as pl,Na as vl,O as ml,P as fl,Pa as Ol,Q as _l,Qa as Il,R as Gt,Ra as Kp,Sa as Wp,Ta as Xp,Va as Yp,Wa as Jp,Xa as Zp,a as Lv,b as Dv,c as Wc,d as Xc,f as Yc,g as Jc,h as tI,i as rI,j as oI,k as nI,l as iI,m as sI,n as aI,o as cI,p as nl,q as il,r as sl,s as al,t as cl,u as dI,ua as Ut,v as dl,va as Bt,w as ll,wa as qt,x as ul,xa as zt,ya as hl}from"./chunks/chunk-GA73HHQG.js";import{$ as wd,$a as UI,$b as FR,$c as nM,A as XO,Ab as lR,Ac as Mu,B as YO,Bb as uR,Bc as ku,C as td,Ca as _I,Cb as pR,Cc as xu,D as rd,Da as hI,Db as mR,Dc as Vt,E as od,Ea as gI,Eb as fR,Ec as Nu,F as nd,Fa as yI,Fc as Lu,G as id,Ga as bI,Gc as Du,H as sd,Ha as CI,Hb as _R,Hc as $u,I as ad,Ia as TI,Ib as hR,Ic as Fu,J as cd,Ja as SI,Jb as gR,Jc as ju,K as dd,Ka as wI,Kb as yR,Kc as Gu,L as ld,La as EI,Lb as bR,Lc as Uu,M as ud,Ma as AI,Mb as CR,Mc as Bu,N as We,Na as vI,Nb as TR,Nc as qu,O as pd,Oa as OI,Ob as uu,Oc as zu,P as md,Pb as Eu,Pc as Vu,Q as fd,Qb as Au,Qc as Hu,R as _d,Rb as vu,Rc as Ku,S as JO,Sa as II,Sb as Ou,Sc as Wu,Tb as PR,Tc as Xu,U as hd,Ua as RI,Ub as MR,Uc as Ht,V as gd,Va as PI,Vb as kR,Vc as Yu,W as yd,Wb as xR,Wc as cP,X as bd,Xa as MI,Xb as NR,Xc as dP,Y as Cd,Ya as kI,Yb as LR,Yc as lP,Z as Td,Za as xI,Zb as DR,Zc as Ju,_ as Sd,_b as $R,_c as uP,aa as Ed,ab as BI,ac as jR,ad as iM,b as vv,ba as Ad,bb as qI,bc as GR,bd as sM,c as Ov,ca as vd,cb as zI,cc as UR,cd as aM,d as Iv,da as Od,db as VI,dc as BR,dd as cM,e as Mv,ea as Id,eb as YI,ec as qR,f as kv,fa as Rd,fb as JI,fc as zR,g as xv,ga as Pd,gb as ZI,gc as VR,h as Nv,ha as Md,hb as QI,hc as HR,i as oO,ia as kd,ib as eR,ic as KR,j as nO,ja as xd,jb as tR,jc as WR,k as iO,ka as Nd,kb as rR,kc as XR,l as sO,la as Ld,lb as oR,lc as YR,m as aO,ma as Dd,mb as nR,mc as JR,n as cO,na as $d,nb as iR,nc as ZR,o as dO,oa as Fd,ob as sR,oc as QR,p as lO,pa as jd,pb as aR,pc as eP,q as uO,qa as Gd,qb as cR,qc as tP,r as pO,ra as Ud,rc as rP,sa as Bd,sc as oP,t as ed,ta as qd,tc as nP,u as qO,ua as zd,uc as iP,v as zO,va as Vd,vc as sP,w as VO,wa as Hd,wc as aP,x as HO,xa as Kd,xc as Iu,y as KO,ya as Wd,yc as Ru,z as WO,za as Xd,zb as dR,zc as Pu}from"./chunks/chunk-C3MFMGCR.js";import{$b as jC,$c as pT,$d as wn,$e as Jn,$f as zS,$g as cw,$h as iE,$i as qE,$j as Ji,$k as ss,$l as Xs,$m as Na,$n as re,Aa as tn,Ab as PC,Ac as WC,Ad as MT,Ae as cS,Af as gS,Ag as bi,Ah as Lw,Ai as wE,Aj as oA,Ak as kA,Al as Ss,Am as ca,An as ac,Bb as MC,Bc as XC,Bd as kT,Be as dS,Bf as yS,Bg as Ci,Bh as Dw,Bi as EE,Bj as Lt,Bk as xA,Bl as ws,Bm as da,Bn as cc,Cb as kC,Ce as Ln,Cf as bS,Cg as Ti,Ch as $w,Ci as AE,Ck as NA,Cl as Es,Cm as la,Cn as dc,Dc as YC,Dd as xT,De as Dn,Df as CS,Dg as Si,Dh as Fw,Di as vE,Dj as nA,Dk as LA,Dl as As,Dm as ua,Dn as lc,E as Yb,Ea as rn,Ec as _n,Ed as NT,Ee as $,Ef as TS,Eg as wi,Eh as jw,Ei as OE,Ej as iA,Ek as DA,El as vs,Em as pa,En as uc,Fe as $n,Ff as SS,Fg as Ei,Fh as Gw,Fi as IE,Fj as sA,Fk as $A,Fl as Os,Fm as ma,Fn as pc,G as Jb,Ga as on,Gc as hn,Gd as LT,Gf as wS,Gg as Ai,Gh as Uw,Gi as RE,Gj as aA,Gk as FA,Gl as Is,Gn as mc,Ha as nn,Hc as gn,Hd as DT,Hf as ES,Hg as vi,Hh as Bw,Hi as PE,Hj as cA,Hk as jA,Hl as Rs,Hm as fa,Hn as fc,Ia as sn,Ib as xC,Id as $T,If as AS,Ig as Oi,Ih as qw,Ii as ME,Ik as Dt,Il as Ps,Im as _a,In as _c,J as Zb,Jb as Ue,Jd as FT,Jf as vS,Jg as Ii,Jh as zw,Ji as kE,Jk as GA,Jl as Ms,Jm as ha,Jn as hc,Kb as Pt,Kc as JC,Kd as jT,Kf as OS,Kg as Ri,Kh as Vw,Ki as xE,Kj as dA,Kl as ks,Km as ga,Kn as gc,Lb as NC,Lc as ZC,Ld as GT,Le as lS,Lf as IS,Lg as Pi,Lh as Hw,Li as NE,Ll as xs,Lm as ya,Ln as yc,Mb as LC,Mc as QC,Md as UT,Me as uS,Mf as RS,Mg as Mi,Mh as Kw,Mk as UA,Ml as Ns,Mm as ba,Mn as bc,N as Qb,Nb as DC,Nc as eT,Nd as BT,Ne as pS,Nf as PS,Ng as ki,Nh as Ww,Ni as qi,Nk as BA,Nl as Ls,Nm as Ca,Nn as Cc,O as D,Ob as $C,Oc as tT,Od as qT,Oe as Fn,Of as MS,Og as xi,Oh as Xw,Oi as zi,Oj as Ki,Ok as qA,Ol as Ds,Om as Ta,On as Tc,P as eC,Pb as H,Pc as rT,Pd as zT,Pe as jn,Pf as kS,Pg as Ni,Ph as Yw,Pi as Vi,Pj as lA,Pk as zA,Pl as $s,Pm as Sa,Pn as Sc,Q as b,Qb as FC,Qc as oT,Qd as VT,Qe as Gn,Qf as xS,Qg as Li,Qh as Jw,Qj as uA,Qk as VA,Ql as Fs,Qm as wa,Qn as wc,Rc as yn,Rd as HT,Re as Un,Rf as NS,Rg as Di,Ri as LE,Rj as pA,Rk as HA,Rl as js,Rm as Ea,Rn as Ec,S as tC,Sc as nT,Se as Bn,Sf as LS,Sg as $i,Sh as Zw,Si as DE,Sj as mA,Sk as KA,Sl as Gs,Sm as Aa,Sn as Ac,T as rC,Tc as iT,Te as qn,Tf as DS,Tg as Fi,Th as Qw,Ti as $E,Tk as WA,Tl as Us,Tm as va,Tn as vc,Uc as sT,Ue as zn,Uf as $S,Ug as ji,Ui as FE,Uj as fA,Uk as es,Ul as Bs,Um as Oa,Un as Oc,Vc as aT,Ve as Vn,Vf as FS,Vg as Gi,Vi as jE,Vj as _A,Vk as ts,Vl as qs,Vm as Ia,Vn as Ic,W as oC,Wc as cT,We as Hn,Wf as jS,Wg as ow,Wh as eE,Wj as hA,Wk as rs,Wl as zs,Wm as Ra,Wn as Rc,Xa as SC,Xc as dT,Xd as KT,Xe as Kn,Xf as GS,Xg as nw,Xh as tE,Xi as GE,Xj as gA,Xk as os,Xl as Vs,Xm as Pa,Xn as Pc,Ya as wC,Yc as lT,Ye as Wn,Yf as US,Yg as iw,Yh as rE,Yj as Wi,Yk as ns,Yl as Hs,Ym as Ma,Yn as Mc,Z as nC,Za as EC,Zc as uT,Zd as Sn,Ze as Xn,Zf as BS,Zg as sw,Zh as oE,Zi as UE,Zj as Xi,Zk as is,Zl as Ks,Zm as ka,_ as Ot,_c as bn,_d as WT,_e as Yn,_f as qS,_g as aw,_h as nE,_i as BE,_j as Yi,_l as Ws,_m as xa,_n as Ke,aa as It,ab as an,ac as mn,ad as Cn,af as Zn,ag as VS,ah as dw,ai as sE,aj as zE,ak as Zi,al as as,am as Ys,an as La,ao as kc,b as jo,ba as Jo,bb as AC,bc as fn,be as XT,bf as mS,bg as HS,bh as lw,bi as aE,bj as VE,bl as cs,bm as sv,bn as Da,c as Go,ca as Zo,cb as vC,cc as GC,cd as mT,ce as YT,cf as fS,cg as KS,ch as uw,ci as cE,ck as Qi,cl as ds,cm as av,cn as $a,co as gv,d as Uo,da as Rt,db as OC,dc as UC,dd as fT,de as JT,df as Be,dg as WS,dh as pw,di as dE,dk as yA,dl as ls,dm as Ve,dn as Fa,do as yv,e as Bo,eb as IC,ec as P,ed as _T,ee as En,ef as Qn,eg as XS,eh as mw,ei as lE,el as us,em as cv,en as ja,f as $e,fa as iC,fc as BC,fd as hT,fe as An,ff as _S,fg as YS,fh as fw,fi as uE,fk as bA,fl as ps,fm as dv,fn as Ga,g as qo,gb as cn,gc as Mt,gd as gT,ge as vn,gf as ei,gg as JS,gh as _w,gi as pE,gk as CA,gl as ms,gm as lv,gn as Ua,go as bv,h as L,ha as sC,hb as dn,hc as qC,hd as kt,he as On,hf as ti,hg as ZS,hh as hw,hk as TA,hl as XA,hm as Ft,hn as Ba,ho as Cv,i as Fe,ia as aC,ib as Ge,id as yT,ie as In,if as ri,ig as QS,ih as gw,ii as mE,il as YA,im as He,in as qa,io as Tv,j as zo,ja as cC,jb as RC,jc as zC,jd as bT,je as Rn,jf as oi,jg as ew,jh as yw,ji as Ui,jk as SA,jl as JA,jm as uv,jn as za,jo as Sv,k as Vo,ka as dC,kd as CT,ke as Pn,kg as tw,kh as bw,ki as Bi,kl as ZA,km as pv,kn as Va,ko as wv,l as Ho,la as lC,lb as ln,le as ZT,lg as rw,lh as Cw,ll as QA,lm as mv,ln as Ha,lo as Ev,m as Ko,ma as uC,mb as un,md as TT,me as QT,mg as ai,mh as Tw,mj as HE,mk as wA,ml as ev,mm as fv,mn as Ka,mo as Av,na as pC,nd as ST,ng as ci,nh as Sw,nj as KE,nl as tv,nm as _v,nn as Wa,no as xc,o as Wo,oa as mC,ob as pn,oe as Mn,og as di,oh as ww,oj as WE,ok as EA,ol as rv,om as hv,on as Xa,oo as Nc,p as vt,pa as fC,pe as kn,pg as li,ph as Ew,pi as fE,pj as XE,pm as Js,pn as Ya,po as Lc,q as fe,qa as _C,qd as Tn,qe as eS,qg as ui,qh as Aw,qi as _E,qj as YE,qm as Zs,qn as Ja,qo as Dc,r as Xo,rd as wT,re as xn,rg as pi,rh as vw,ri as hE,rj as JE,rm as Qs,rn as Za,ro as $c,s as je,sa as hC,sd as ET,se as Nn,sg as mi,sh as Ow,si as gE,sk as AA,sl as $t,sm as ea,sn as Qa,so as Fc,t as Yo,ta as gC,td as AT,te as tS,tf as xt,tg as qe,th as Iw,ti as yE,tk as vA,tl as ov,tm as ta,tn as ec,to as jc,ua as yC,ud as vT,ue as rS,uf as Nt,ug as ze,uh as Rw,ui as bE,uj as ZE,uk as OA,ul as nv,um as ra,un as tc,uo as Gc,v as Kb,va as bC,vd as OT,ve as oS,vf as ni,vg as fi,vh as Pw,vj as QE,vk as IA,vl as iv,vm as oa,vn as rc,vo as Uc,w as Wb,wa as CC,wc as VC,wd as IT,we as nS,wf as ii,wg as _i,wh as Mw,wi as CE,wj as Hi,wk as RA,wl as ys,wm as na,wn as oc,wo as Bc,x as Xb,xa as TC,xc as HC,xe as iS,xf as si,xg as hi,xh as kw,xj as eA,xl as bs,xm as ia,xn as nc,xo as qc,ya as Qo,yc as KC,yd as RT,ye as sS,yg as gi,yh as xw,yi as TE,yj as tA,yk as PA,yl as Cs,ym as sa,yn as ic,yo as jt,za as en,zd as PT,ze as aS,zf as hS,zg as yi,zh as Nw,zi as SE,zj as rA,zk as MA,zl as Ts,zm as aa,zn as sc}from"./chunks/chunk-UJSB6NO6.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]="08485124-a2f1-5bb5-9316-533a3f7888bc")}catch{}})();var K="2026-07-28",Qk=["2025-11-25","2025-06-18"],et=[K],m={headerMismatch:-32020,missingRequiredClientCapability:-32021,unsupportedProtocolVersion:-32022,invalidParams:-32602},A={clientCapabilities:"io.modelcontextprotocol/clientCapabilities",clientInfo:"io.modelcontextprotocol/clientInfo",logLevel:"io.modelcontextprotocol/logLevel",protocolVersion:"io.modelcontextprotocol/protocolVersion",serverInfo:"io.modelcontextprotocol/serverInfo"},lr=["debug","info","notice","warning","error","critical","alert","emergency"],p=class extends Error{code;data;constructor(t,r,o={}){super(t),this.name="PmMcpProtocolError",this.code=r,this.data=o}};function _(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Gh(e){if(e===void 0)return;if(!_(e))throw new p("Invalid MCP clientInfo metadata",m.invalidParams,{field:A.clientInfo,expected:"object"});let t=typeof e.name=="string"?e.name.trim():"",r=typeof e.version=="string"?e.version.trim():"";if(t.length===0||r.length===0)throw new p("Invalid MCP clientInfo metadata",m.invalidParams,{field:A.clientInfo,required:["name","version"]});let o={name:t.slice(0,128),version:r.slice(0,128)};return typeof e.description=="string"&&e.description.trim()&&(o.description=e.description.trim().slice(0,1024)),typeof e.websiteUrl=="string"&&e.websiteUrl.trim()&&(o.websiteUrl=e.websiteUrl.trim().slice(0,2048)),o}function Uh(e){if(e!==void 0){if(typeof e!="string"||!lr.includes(e))throw new p("Invalid MCP logLevel metadata",m.invalidParams,{field:A.logLevel,allowed:[...lr]});return e}}function tt(e){let t=_(e)?e._meta:void 0;if(!_(t))throw new p("Missing required MCP request metadata",m.invalidParams,{required:[A.protocolVersion,A.clientCapabilities]});let r=t[A.protocolVersion];if(typeof r!="string"||!et.includes(r))throw new p("Unsupported protocol version",m.unsupportedProtocolVersion,{supported:[...et],requested:typeof r=="string"?r:null});let o=t[A.clientCapabilities];if(!_(o))throw new p("Invalid MCP client capabilities metadata",m.invalidParams,{field:A.clientCapabilities,expected:"object"});let n=Gh(t[A.clientInfo]),i=Uh(t[A.logLevel]);return{protocolVersion:K,clientCapabilities:o,...n?{clientInfo:n}:{},...i?{logLevel:i}:{}}}function e0(e,t){if(t!==e.protocolVersion)throw new p("MCP protocol header does not match request metadata",m.headerMismatch,{header:t??null,metadata:e.protocolVersion})}function t0(e,t){let r=t.filter(o=>!Object.prototype.hasOwnProperty.call(e.clientCapabilities,o));if(r.length>0)throw new p("Missing required client capability",m.missingRequiredClientCapability,{requiredCapabilities:Object.fromEntries(r.map(o=>[o,{}]))})}function r0(e,t){let r=e.clientCapabilities.extensions;return _(r)&&_(r[t])}function rt(e,t){let r=_(e._meta)?e._meta:{};return{...e,_meta:{...r,[A.serverInfo]:{...t}}}}function Bh(e,t){return rt({...e,resultType:"complete"},t)}function o0(e){let t=e.ttlMs??6e4;if(!Number.isFinite(t)||t<0)throw new p("Invalid MCP discovery cache TTL",m.invalidParams,{ttlMs:t});return Bh({supportedVersions:[...et],capabilities:structuredClone(e.capabilities),ttlMs:t,cacheScope:"public",...e.instructions?{instructions:e.instructions}:{}},e.serverInfo)}function n0(e,t){if(_(e)&&typeof e.resultType=="string")return e.resultType;if(t==="legacy")return"complete";throw new p("Modern MCP result is missing resultType",m.invalidParams,{required:"resultType"})}import{createHash as mr,createHmac as fr,timingSafeEqual as qh}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]="6505e714-d1f3-5794-88c8-51c1644acec9")}catch{}})();var zh=["elicitation/create","roots/list","sampling/createMessage"],ur=class extends Error{inputRequests;requestState;constructor(t){super("MCP operation requires additional input"),this.name="PmMcpInputRequiredError",this.inputRequests=t.inputRequests,this.requestState=t.requestState}},_r=/^[a-zA-Z][a-zA-Z0-9_.-]{0,63}$/u,ge=32,nt=64*1024,ye=16*1024,ot={maxBytes:256*1024,maxDepth:32,maxNodes:4096};function Vh(e){return e==="elicitation/create"?"elicitation":e==="sampling/createMessage"?"sampling":"roots"}function be(e,t,r){let o;try{o=JSON.stringify(e)}catch{throw new p(`Invalid ${r}: value is not JSON serializable`,m.invalidParams,{field:r})}if(Buffer.byteLength(o,"utf8")>t)throw new p(`Invalid ${r}: payload exceeds the protocol bound`,m.invalidParams,{field:r,maximumBytes:t})}function it(e,t){if(!_(e))throw new p("Invalid MCP inputRequests",m.invalidParams,{field:"inputRequests",expected:"object"});let r=Object.entries(e);if(r.length===0||r.length>ge)throw new p("Invalid MCP inputRequests count",m.invalidParams,{minimum:1,maximum:ge,observed:r.length});let o={};for(let[n,i]of r){if(!_r.test(n)||!_(i))throw new p("Invalid MCP input request entry",m.invalidParams,{field:`inputRequests.${n}`});let s=i.method;if(typeof s!="string"||!zh.includes(s))throw new p("Unsupported MCP input request method",m.invalidParams,{field:`inputRequests.${n}.method`,method:s??null});let a=Vh(s);if(!Object.prototype.hasOwnProperty.call(t.clientCapabilities,a))throw new p("Missing required client capability",m.missingRequiredClientCapability,{requiredCapabilities:{[a]:{}}});if(!_(i.params))throw new p("Invalid MCP input request parameters",m.invalidParams,{field:`inputRequests.${n}.params`,expected:"object"});o[n]={method:s,params:structuredClone(i.params)}}return be(o,nt,"inputRequests"),o}function hr(e){if(!_(e))throw new p("Invalid MCP inputResponses",m.invalidParams,{field:"inputResponses",expected:"object"});let t=Object.entries(e);if(t.length>ge)throw new p("Invalid MCP inputResponses count",m.invalidParams,{maximum:ge,observed:t.length});let r={};for(let[o,n]of t){if(!_r.test(o)||!_(n))throw new p("Invalid MCP input response entry",m.invalidParams,{field:`inputResponses.${o}`});r[o]=structuredClone(n)}return be(r,nt,"inputResponses"),r}function c0(e){let t=e.requestState?.trim();if(t&&Buffer.byteLength(t,"utf8")>ye)throw new p("Invalid MCP requestState: payload exceeds the protocol bound",m.invalidParams,{field:"requestState",maximumBytes:ye});let r=e.inputRequests===void 0?void 0:it(e.inputRequests,e.requestContext);if(r===void 0&&!t)throw new p("InputRequiredResult requires inputRequests or requestState",m.invalidParams,{requiredAnyOf:["inputRequests","requestState"]});return{resultType:"input_required",...r?{inputRequests:r}:{},...t?{requestState:t}:{},_meta:{[A.serverInfo]:{...e.serverInfo}}}}function gr(e){let t=Buffer.from(e);if(t.byteLength<32)throw new p("MCP requestState signing key must contain at least 32 bytes",m.invalidParams,{minimumBytes:32});return t}function d0(e,t){if(!Number.isSafeInteger(e.expiresAt)||e.expiresAt<=0||e.method.trim().length===0||e.parameterDigest.trim().length===0||e.principal.trim().length===0)throw new p("Invalid MCP requestState payload",m.invalidParams);let r=Buffer.from(JSON.stringify({version:1,...e}),"utf8");if(r.byteLength>ye/2)throw new p("MCP requestState payload exceeds the protocol bound",m.invalidParams,{maximumBytes:ye/2});let o=r.toString("base64url"),n=fr("sha256",gr(t)).update(o).digest("base64url");return`${o}.${n}`}function Hh(e){if(!_(e)||e.version!==1)throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});let{expiresAt:t,method:r,parameterDigest:o,principal:n,state:i}=e;if(typeof t!="number"||!Number.isSafeInteger(t))throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});if(typeof r!="string"||typeof o!="string"||typeof n!="string")throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});return{expiresAt:t,method:r,parameterDigest:o,principal:n,state:i}}function l0(e,t,r){let[o,n,i]=e.split(".");if(!o||!n||i!==void 0)throw new p("Invalid MCP requestState encoding",m.invalidParams,{field:"requestState"});let s=Buffer.from(n,"base64url"),a=fr("sha256",gr(t)).update(o).digest();if(s.byteLength!==a.byteLength||!qh(s,a))throw new p("Invalid MCP requestState signature",m.invalidParams,{field:"requestState"});let c;try{c=JSON.parse(Buffer.from(o,"base64url").toString("utf8"))}catch{c=null}let d=Hh(c),{expiresAt:l,method:u,parameterDigest:f,principal:g}=d;if(l<(r.nowMs??Date.now()))throw new p("Expired MCP requestState",m.invalidParams,{field:"requestState",expiredAt:l});if(u!==r.method||f!==r.parameterDigest||g!==r.principal)throw new p("MCP requestState binding mismatch",m.invalidParams,{field:"requestState"});return d}function u0(e){return be(e,nt,"request parameters"),mr("sha256").update(JSON.stringify(e)).digest("hex")}var pr=class{#e=new Set;#t;constructor(t=4096){if(!Number.isSafeInteger(t)||t<1)throw new p("Invalid MCP replay guard capacity",m.invalidParams,{maximumEntries:t});this.#t=t}consume(t){let r=mr("sha256").update(t).digest("hex");if(this.#e.has(r))throw new p("MCP requestState replay detected",m.invalidParams,{field:"requestState"});if(this.#e.size>=this.#t){let o=this.#e.values().next().value;this.#e.delete(o)}this.#e.add(r)}};function Kh(e){if(!Number.isSafeInteger(e.ttlMs)||e.ttlMs<0||e.cacheScope!=="public"&&e.cacheScope!=="private")throw new p("Invalid MCP cache policy",m.invalidParams,{ttlMs:e.ttlMs,cacheScope:e.cacheScope});return{ttlMs:e.ttlMs,cacheScope:e.cacheScope}}function p0(e,t){return{...e,...Kh(t)}}function Wh(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Xh(e,t){if(t==="#")return e;if(!t.startsWith("#/"))return;let r=e;for(let o of t.slice(2).split("/").map(Wh)){if(!_(r)&&!Array.isArray(r)||!Object.prototype.hasOwnProperty.call(r,o))return;r=r[o]}return r}function Yh(e){let t=e.maxBytes??ot.maxBytes,r=e.maxDepth??ot.maxDepth,o=e.maxNodes??ot.maxNodes;if(!Number.isSafeInteger(t)||t<2)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);if(!Number.isSafeInteger(r)||r<1)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);if(!Number.isSafeInteger(o)||o<1)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);return{maximumBytes:t,maximumDepth:r,maximumNodes:o}}function Jh(e,t){let r=Array.isArray(e.value)?e.value:_(e.value)?Object.values(e.value):[];for(let o of r)t.push({value:o,depth:e.depth+1})}function Zh(e,t){if(!_(t)||typeof t.$ref!="string")return;let r=t.$ref;if(r.startsWith("#")&&Xh(e,r)===void 0)throw new p("MCP JSON Schema contains an unresolved local reference",m.invalidParams,{reference:r})}function m0(e,t={}){let{maximumBytes:r,maximumDepth:o,maximumNodes:n}=Yh(t);if(typeof e!="boolean"&&!_(e))throw new p("Invalid MCP JSON Schema root",m.invalidParams,{expected:"object or boolean"});be(e,r,"JSON Schema");let i=[{value:e,depth:0}],s=0;for(;i.length>0;){let a=i.pop();if(s+=1,s>n||a.depth>o)throw new p("MCP JSON Schema exceeds validation work bounds",m.invalidParams,{maximumDepth:o,maximumNodes:n});Zh(e,a.value),Jh(a,i)}return structuredClone(e)}import{randomUUID as Qh}from"node:crypto";import{readFile as eg}from"node:fs/promises";import yr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7f5b3ba6-07cf-5317-8f62-63e84f561232")}catch{}})();var T0="io.modelcontextprotocol/tasks",tg=["working","input_required","completed","failed","cancelled"],rg=/^mcp-task-[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,og=3600*1e3,ng=1e3,Te=1024,ig=30,sg=2e3;function st(e){return new p(e,m.invalidParams,{code:"mcp_task_not_found_or_not_authorized"})}function Ce(e){let t=e.trim();if(!rg.test(t))throw st("Unknown MCP task");return t}function br(e,t){if(typeof e!="string"||!Number.isFinite(Date.parse(e)))throw new p("Corrupt MCP task record",m.invalidParams,{field:t});return e}function Cr(e){if(!_(e)||typeof e.code!="number"||!Number.isFinite(e.code)||typeof e.message!="string")throw new p("Corrupt MCP task error",m.invalidParams);return{code:e.code,message:e.message.slice(0,Te),..._(e.data)?{data:structuredClone(e.data)}:{}}}function ag(e){if(!tg.includes(e))throw new p("Corrupt MCP task record",m.invalidParams);return e}function cg(e){if(typeof e!="string"||e.length===0)throw new p("Corrupt MCP task record",m.invalidParams);return e}function dg(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new p("Corrupt MCP task record",m.invalidParams);return e}function lg(e){if(e!==null&&(typeof e!="number"||!Number.isSafeInteger(e)||e<0))throw new p("Corrupt MCP task record",m.invalidParams);return e}function ug(e){if(e!==void 0){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new p("Corrupt MCP task record",m.invalidParams);return e}}function pg(e){if(!Array.isArray(e)||e.some(t=>typeof t!="string"))throw new p("Corrupt MCP task record",m.invalidParams);return[...e]}function mg(e){if(!_(e)||e.version!==1)throw new p("Corrupt MCP task record",m.invalidParams);let t=typeof e.taskId=="string"?Ce(e.taskId):"",r=ag(e.status),o=cg(e.principal),n=dg(e.workerPid),i=lg(e.ttlMs),s=ug(e.pollIntervalMs),a={version:1,taskId:t,status:r,principal:o,workerPid:n,createdAt:br(e.createdAt,"createdAt"),lastUpdatedAt:br(e.lastUpdatedAt,"lastUpdatedAt"),ttlMs:i,consumedInputKeys:pg(e.consumedInputKeys),...typeof e.statusMessage=="string"?{statusMessage:e.statusMessage.slice(0,Te)}:{},...typeof s=="number"?{pollIntervalMs:s}:{}};if(_(e.inputRequests)&&(a.inputRequests=structuredClone(e.inputRequests)),_(e.inputResponses)&&(a.inputResponses=structuredClone(e.inputResponses)),_(e.result)&&(a.result=structuredClone(e.result)),e.error!==void 0&&(a.error=Cr(e.error)),a.status==="input_required"&&!a.inputRequests||a.status==="completed"&&!a.result||a.status==="failed"&&!a.error)throw new p("Corrupt MCP task status payload",m.invalidParams,{status:a.status});return a}function W(e){let t={taskId:e.taskId,status:e.status,createdAt:e.createdAt,lastUpdatedAt:e.lastUpdatedAt,ttlMs:e.ttlMs,...e.statusMessage?{statusMessage:e.statusMessage}:{},...e.pollIntervalMs===void 0?{}:{pollIntervalMs:e.pollIntervalMs}};return e.status==="input_required"?{...t,status:"input_required",inputRequests:structuredClone(e.inputRequests)}:e.status==="completed"?{...t,status:"completed",result:structuredClone(e.result)}:e.status==="failed"?{...t,status:"failed",error:structuredClone(e.error)}:e.status==="cancelled"?{...t,status:"cancelled"}:{...t,status:"working"}}function ne(e){return e==="completed"||e==="failed"||e==="cancelled"}function fg(e){try{return process.kill(e,0),!0}catch(t){return!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ESRCH")}}var at=class{#e;#t;#r;#o;#i;constructor(t){this.#e=yr.resolve(t.pmRoot),this.#t=t.owner?.trim()||"pm-mcp",this.#r=t.now??(()=>new Date),this.#o=t.taskIdFactory??(()=>`mcp-task-${Qh()}`),this.#i=t.workerPid??process.pid}#s(t){return yr.join(this.#e,"runtime","mcp-tasks","records",`${Ce(t)}.json`)}async#c(t){try{return mg(JSON.parse(await eg(this.#s(t),"utf8")))}catch(r){throw fe(r)||r instanceof SyntaxError?st("Unknown MCP task"):r}}async#a(t){await je(this.#s(t.taskId),`${JSON.stringify(t,null,2)}
|
|
1
|
+
import{A as Fh,B as jh,C as GM,D as UM,E as BM,a as fs,b as _s,c as hs,d as gs,e as PM,f as MM,g as Oh,h as Ih,i as Rh,k as Ph,l as Mh,m as kh,n as xh,o as Nh,p as Lh,q as Dh,r as $h,s as kM,t as xM,u as NM,v as LM,w as DM,x as $M,y as FM,z as jM}from"./chunks/chunk-WUDF7HWM.js";import{A as Ik,B as Rk,C as Pk,D as Mk,E as kk,F as xk,G as Nk,H as Lk,I as Dk,J as $k,K as Fk,L as jk,M as Gk,N as Uk,O as Bk,P as qk,Q as zk,R as Vk,S as Hk,T as Kk,U as Wk,V as Xk,W as Yk,X as Jk,Y as Zk,a as rk,b as ok,c as nk,d as ik,e as sk,f as ak,g as ck,h as dk,i as lk,j as uk,k as pk,l as mk,m as fk,n as _k,o as hk,p as gk,q as yk,r as bk,s as Ck,t as Tk,u as Sk,v as wk,w as Ek,x as Ak,y as vk,z as Ok}from"./chunks/chunk-Y2OK7IAD.js";import{a as qM,b as zM,c as VM,d as HM}from"./chunks/chunk-AOD5WE6U.js";import{a as KM,b as WM,c as XM,d as YM,e as JM,f as ZM,g as QM,h as ek,i as tk}from"./chunks/chunk-FZZVWWQP.js";import{$ as tr,$a as e_,$b as eh,A as tO,Aa as Sf,Ab as O_,B as rO,Ba as wf,Bb as I_,C as mu,Ca as Ef,Cb as R_,D as kp,Da as Af,Db as P_,E as xp,Ea as vf,Eb as M_,F as Np,Fa as Of,Fb as k_,G as Lp,Ga as If,Gb as x_,H as Dp,Ha as Rf,Hb as N_,I as Ye,Ia as Pf,Ib as L_,J as $p,Ja as Mf,Jb as D_,K as Fp,Ka as kf,Kb as $_,L as jp,La as xf,Lb as F_,M as Gp,Ma as Nf,Mb as j_,N as Up,Na as Lf,Nb as G_,O as Bp,Oa as Df,Ob as U_,P as tM,Pa as $f,Pb as B_,Q as rM,Qa as Ff,Qb as q_,R as oM,Ra as jf,Rb as z_,S as sm,Sa as Gf,Sb as V_,T as am,Ta as Uf,Tb as H_,U as cm,Ua as dr,Ub as K_,V as Xt,Va as he,Vb as W_,W as Yt,Wa as Xf,Wb as X_,X as Jt,Xa as Yf,Xb as Y_,Y as Zt,Ya as Jf,Yb as J_,Z as Qt,Za as Zf,Zb as Z_,_ as er,_a as Qf,_b as Q_,a as zc,aa as rr,ab as t_,ac as th,b as Vc,ba as or,bb as r_,bc as rh,c as Hc,ca as nr,cb as o_,cc as oh,d as Rv,da as ir,db as n_,dc as nh,e as Pv,ea as ym,eb as i_,ec as ih,f as Kc,fa as bm,fb as s_,fc as sh,g as $v,ga as Cm,gb as a_,gc as ah,h as Fv,ha as Tm,hb as c_,hc as ch,i as jv,ia as Sm,ib as d_,ic as dh,j as Gv,ja as Je,jb as l_,jc as lh,k as Uv,ka as wm,kb as u_,kc as uh,l as Bv,la as Em,lb as p_,lc as ph,m as qv,ma as Am,mb as m_,mc as mh,n as zv,na as vm,nb as f_,nc as fh,o as Vv,oa as Om,ob as __,oc as _h,p as Hv,pa as Im,pb as h_,pc as hh,q as Kv,qa as Rm,qb as g_,qc as gh,r as Wv,ra as Pm,rb as y_,rc as yh,s as Xv,sa as gM,sb as b_,sc as bh,t as Yv,ta as _f,tb as C_,tc as Ch,u as Zc,ua as hf,ub as T_,uc as Th,v as Qc,va as gf,vb as S_,vc as Sh,w as Jv,wa as yf,wb as w_,wc as wh,x as Zv,xa as bf,xb as E_,xc as Eh,y as Qv,ya as Cf,yb as A_,yc as Ah,z as eO,za as Tf,zb as v_,zc as vh}from"./chunks/chunk-T4J2X3RK.js";import{a as Wt,f as jP,g as GP,h as Vp,i as Hp}from"./chunks/chunk-X2EVS624.js";import{A as HP,B as KP,C as WP,D as XP,E as YP,F as JP,G as ZP,H as QP,I as eM,J as om,K as nm,L as im,M as pM,N as Mm,O as mM,P as fM,Q as _M,R as hM,b as pu,c as RR,d as Mp,e as vP,f as OP,g as IP,h as RP,i as PP,j as MP,k as kP,l as xP,m as NP,n as LP,o as DP,p as qp,q as $P,r as Qp,s as em,t as tm,u as rm,v as UP,w as BP,x as qP,y as zP,z as VP}from"./chunks/chunk-WD7BQXA7.js";import{$a as cu,$b as Ep,$c as SM,A as jO,Aa as Ll,Ab as fP,Ac as mm,Ad as rf,B as GO,Ba as Dl,Bb as _P,Bc as fm,Bd as of,C as UO,Ca as $l,Cb as hP,Cc as _m,Cd as RM,D as BO,Da as Fl,Db as rp,Dc as hm,Dd as nf,E as ZO,Ea as jl,Eb as op,Ec as gm,Ed as sf,Fa as Gl,Fc as dM,Fd as af,Ga as Ul,Gb as np,Gc as lM,Gd as cf,Ha as Bl,Hb as ip,Hc as uM,Hd as df,Ia as ql,Ib as gP,Ic as yM,Id as lf,J as Yd,Ja as zl,Jb as sp,Jc as sr,Jd as uf,Ka as Vl,Kb as ap,Kc as bM,Kd as pf,La as Hl,Lb as cp,Lc as Ze,Ld as mf,Ma as Kl,Mb as dp,Mc as oe,Md as ff,Na as Wl,Nb as lp,Nc as km,Nd as Bf,Oa as Xl,Ob as up,Od as qf,Pa as Yl,Pb as pp,Pd as zf,Qa as Jl,Qb as mp,Qc as Qe,Qd as Vf,Ra as Zl,Rb as fp,Rc as xm,Rd as Hf,Sa as Ql,Sb as _p,Sc as Nm,Sd as Kf,Ta as eu,Tb as hp,Td as Wf,Ua as tu,Ub as gp,Uc as _e,Va as ru,Vb as yp,Vc as Lm,Wa as ou,Wb as bp,Wc as Dm,Xa as nu,Xb as Cp,Xc as $m,Ya as iu,Yb as Tp,Yc as Fm,Za as su,Zb as Sp,Zc as CM,_a as au,_b as wp,_c as TM,a as mO,aa as QO,ab as du,ac as yP,ad as wM,b as fO,ba as eI,bb as lu,bc as bP,bd as EM,c as _O,ca as Jd,cb as SR,cc as Ap,cd as ar,d as hO,da as Zd,db as wR,dd as AM,e as gO,ea as Qd,eb as ER,ed as vM,f as yO,fa as el,fb as AR,fd as cr,g as bO,ga as tl,gb as vR,gc as vp,gd as OM,h as CO,ha as rl,hb as OR,hd as IM,i as TO,ia as ol,ib as IR,ic as Op,j as SO,ja as NI,jb as fu,jc as Ip,jd as jm,k as wO,ka as LI,kb as _u,kc as Rp,kd as Gm,l as EO,la as DI,lb as hu,lc as Pp,ld as Um,m as AO,ma as $I,mb as gu,mc as CP,md as Bm,n as vO,na as FI,nb as yu,nc as TP,nd as qm,o as OO,oa as jI,oc as SP,od as zm,p as IO,pa as GI,pb as bu,pc as Xe,pd as Vm,q as RO,qa as HI,qb as Cu,qc as wP,qd as Hm,r as PO,ra as KI,rb as Tu,rc as Kt,rd as Km,s as MO,sa as Rl,sb as Su,sc as EP,sd as Wm,t as kO,ta as Pl,tb as wu,tc as AP,td as Xm,u as xO,ua as WI,ub as Zu,uc as FP,ud as Ym,v as NO,va as XI,vb as Qu,vc as zp,vd as Jm,w as LO,wa as Ml,wb as ep,wc as dm,wd as Zm,x as DO,xa as kl,xb as tp,xc as lm,xd as Qm,y as $O,ya as xl,yb as pP,yc as um,yd as ef,z as FO,za as Nl,zb as mP,zc as pm,zd as tf}from"./chunks/chunk-CA5DRNGA.js";import{Aa as gl,Ba as yl,Ca as bl,H as lI,Ha as Cl,I as uI,Ia as Tl,Ja as Sl,K as pI,Ka as wl,L as mI,La as El,M as fI,Ma as Al,N as pl,Na as vl,O as ml,P as fl,Pa as Ol,Q as _l,Qa as Il,R as Gt,Ra as Kp,Sa as Wp,Ta as Xp,Va as Yp,Wa as Jp,Xa as Zp,a as Lv,b as Dv,c as Wc,d as Xc,f as Yc,g as Jc,h as tI,i as rI,j as oI,k as nI,l as iI,m as sI,n as aI,o as cI,p as nl,q as il,r as sl,s as al,t as cl,u as dI,ua as Ut,v as dl,va as Bt,w as ll,wa as qt,x as ul,xa as zt,ya as hl}from"./chunks/chunk-XFGWFVR3.js";import{$ as wd,$a as UI,$b as FR,$c as nM,A as XO,Ab as lR,Ac as Mu,B as YO,Bb as uR,Bc as ku,C as td,Ca as _I,Cb as pR,Cc as xu,D as rd,Da as hI,Db as mR,Dc as Vt,E as od,Ea as gI,Eb as fR,Ec as Nu,F as nd,Fa as yI,Fc as Lu,G as id,Ga as bI,Gc as Du,H as sd,Ha as CI,Hb as _R,Hc as $u,I as ad,Ia as TI,Ib as hR,Ic as Fu,J as cd,Ja as SI,Jb as gR,Jc as ju,K as dd,Ka as wI,Kb as yR,Kc as Gu,L as ld,La as EI,Lb as bR,Lc as Uu,M as ud,Ma as AI,Mb as CR,Mc as Bu,N as We,Na as vI,Nb as TR,Nc as qu,O as pd,Oa as OI,Ob as uu,Oc as zu,P as md,Pb as Eu,Pc as Vu,Q as fd,Qb as Au,Qc as Hu,R as _d,Rb as vu,Rc as Ku,S as JO,Sa as II,Sb as Ou,Sc as Wu,Tb as PR,Tc as Xu,U as hd,Ua as RI,Ub as MR,Uc as Ht,V as gd,Va as PI,Vb as kR,Vc as Yu,W as yd,Wb as xR,Wc as cP,X as bd,Xa as MI,Xb as NR,Xc as dP,Y as Cd,Ya as kI,Yb as LR,Yc as lP,Z as Td,Za as xI,Zb as DR,Zc as Ju,_ as Sd,_b as $R,_c as uP,aa as Ed,ab as BI,ac as jR,ad as iM,b as vv,ba as Ad,bb as qI,bc as GR,bd as sM,c as Ov,ca as vd,cb as zI,cc as UR,cd as aM,d as Iv,da as Od,db as VI,dc as BR,dd as cM,e as Mv,ea as Id,eb as YI,ec as qR,f as kv,fa as Rd,fb as JI,fc as zR,g as xv,ga as Pd,gb as ZI,gc as VR,h as Nv,ha as Md,hb as QI,hc as HR,i as oO,ia as kd,ib as eR,ic as KR,j as nO,ja as xd,jb as tR,jc as WR,k as iO,ka as Nd,kb as rR,kc as XR,l as sO,la as Ld,lb as oR,lc as YR,m as aO,ma as Dd,mb as nR,mc as JR,n as cO,na as $d,nb as iR,nc as ZR,o as dO,oa as Fd,ob as sR,oc as QR,p as lO,pa as jd,pb as aR,pc as eP,q as uO,qa as Gd,qb as cR,qc as tP,r as pO,ra as Ud,rc as rP,sa as Bd,sc as oP,t as ed,ta as qd,tc as nP,u as qO,ua as zd,uc as iP,v as zO,va as Vd,vc as sP,w as VO,wa as Hd,wc as aP,x as HO,xa as Kd,xc as Iu,y as KO,ya as Wd,yc as Ru,z as WO,za as Xd,zb as dR,zc as Pu}from"./chunks/chunk-IPR2ICDO.js";import{$b as jC,$c as pT,$d as wn,$e as Jn,$f as zS,$g as aw,$h as nE,$i as BE,$j as Yi,$l as Ws,$m as xa,$n as Ke,Aa as tn,Ab as PC,Ac as WC,Ad as MT,Ae as cS,Af as gS,Ag as yi,Ah as Nw,Ai as SE,Aj as rA,Ak as MA,Al as Ts,Am as aa,An as sc,Bb as MC,Bc as XC,Bd as kT,Be as dS,Bf as yS,Bg as bi,Bh as Lw,Bi as wE,Bj as oA,Bk as kA,Bl as Ss,Bm as ca,Bn as ac,Cb as kC,Ce as Ln,Cf as bS,Cg as Ci,Ch as Dw,Ci as EE,Cj as Lt,Ck as xA,Cl as ws,Cm as da,Cn as cc,Dc as YC,Dd as xT,De as Dn,Df as CS,Dg as Ti,Dh as $w,Di as AE,Dk as NA,Dl as Es,Dm as la,Dn as dc,E as Yb,Ea as rn,Ec as _n,Ed as NT,Ee as $,Ef as TS,Eg as Si,Eh as Fw,Ei as vE,Ej as nA,Ek as LA,El as As,Em as ua,En as lc,Fe as $n,Ff as SS,Fg as wi,Fh as jw,Fi as OE,Fj as iA,Fk as DA,Fl as vs,Fm as pa,Fn as uc,G as Jb,Ga as on,Gc as hn,Gd as LT,Gf as wS,Gg as Ei,Gh as Gw,Gi as IE,Gj as sA,Gk as $A,Gl as Os,Gm as ma,Gn as pc,Ha as nn,Hc as gn,Hd as DT,Hf as ES,Hg as Ai,Hh as Uw,Hi as RE,Hj as aA,Hk as FA,Hl as Is,Hn as mc,Ia as sn,Ib as xC,Id as $T,If as AS,Ig as vi,Ih as Bw,Ii as PE,Ij as cA,Ik as jA,Il as Rs,Im as fa,In as fc,J as Zb,Jb as Ue,Jd as FT,Jf as vS,Jg as Oi,Jh as qw,Ji as ME,Jk as Dt,Jl as Ps,Jm as _a,Jn as _c,Kb as Pt,Kc as JC,Kd as jT,Kf as OS,Kg as Ii,Kh as zw,Ki as kE,Kk as GA,Kl as Ms,Km as ha,Kn as hc,Lb as NC,Lc as ZC,Ld as GT,Le as lS,Lf as IS,Lg as Ri,Lh as Vw,Li as xE,Lj as dA,Ll as ks,Lm as ga,Ln as gc,Mb as LC,Mc as QC,Md as UT,Me as uS,Mf as RS,Mg as Pi,Mh as Hw,Mi as NE,Ml as xs,Mm as ya,Mn as yc,N as Qb,Nb as DC,Nc as eT,Nd as BT,Ne as pS,Nf as PS,Ng as Mi,Nh as Kw,Nk as UA,Nl as Ns,Nm as ba,Nn as bc,O as D,Ob as $C,Oc as tT,Od as qT,Oe as Fn,Of as MS,Og as ki,Oh as Ww,Oi as qi,Ok as BA,Ol as Ls,Om as Ca,On as Cc,P as eC,Pb as H,Pc as rT,Pd as zT,Pe as jn,Pf as kS,Pg as xi,Ph as Xw,Pi as zi,Pj as Ki,Pk as qA,Pl as Ds,Pm as Ta,Pn as Tc,Q as b,Qb as FC,Qc as oT,Qd as VT,Qe as Gn,Qf as xS,Qg as Ni,Qh as Yw,Qi as Vi,Qj as lA,Qk as zA,Ql as $s,Qm as Sa,Qn as Sc,Rc as yn,Rd as HT,Re as Un,Rf as NS,Rg as Li,Rh as Jw,Rj as uA,Rk as VA,Rl as Fs,Rm as wa,Rn as wc,S as tC,Sc as nT,Se as Bn,Sf as LS,Sg as Di,Si as LE,Sj as pA,Sk as HA,Sl as js,Sm as Ea,Sn as Ec,T as rC,Tc as iT,Te as qn,Tf as DS,Tg as $i,Th as Zw,Ti as DE,Tj as mA,Tk as KA,Tl as Gs,Tm as Aa,Tn as Ac,Uc as sT,Ue as zn,Uf as $S,Ug as Fi,Uh as Qw,Ui as $E,Uk as WA,Ul as Us,Um as va,Un as vc,Vc as aT,Ve as Vn,Vf as FS,Vg as ji,Vi as FE,Vj as fA,Vk as es,Vl as Bs,Vm as Oa,Vn as Oc,W as oC,Wc as cT,We as Hn,Wf as jS,Wg as Gi,Wi as jE,Wj as _A,Wk as ts,Wl as qs,Wm as Ia,Wn as Ic,Xa as SC,Xc as dT,Xd as KT,Xe as Kn,Xf as GS,Xg as ow,Xh as eE,Xj as hA,Xk as rs,Xl as zs,Xm as Ra,Xn as Rc,Ya as wC,Yc as lT,Ye as Wn,Yf as US,Yg as nw,Yh as tE,Yi as GE,Yj as gA,Yk as os,Yl as Vs,Ym as Pa,Yn as Pc,Z as nC,Za as EC,Zc as uT,Zd as Sn,Ze as Xn,Zf as BS,Zg as iw,Zh as rE,Zj as Wi,Zk as ns,Zl as Hs,Zm as Ma,Zn as Mc,_ as Ot,_c as bn,_d as WT,_e as Yn,_f as qS,_g as sw,_h as oE,_i as UE,_j as Xi,_k as is,_l as Ks,_m as ka,aa as It,ab as an,ac as mn,ad as Cn,af as Zn,ag as VS,ah as cw,ai as iE,aj as qE,ak as Ji,al as ss,am as Xs,an as Na,ao as re,b as jo,ba as Jo,bb as AC,bc as fn,be as XT,bf as mS,bh as dw,bi as sE,bj as zE,bk as Zi,bl as as,bm as Ys,bn as La,bo as kc,c as Go,ca as Zo,cb as vC,cc as GC,cd as mT,ce as YT,cf as fS,cg as HS,ch as lw,ci as aE,cj as VE,cl as cs,cm as sv,cn as Da,d as Uo,da as Rt,db as OC,dc as UC,dd as fT,de as JT,df as Be,dg as KS,dh as uw,di as cE,dk as Qi,dl as ds,dm as av,dn as $a,do as gv,e as Bo,eb as IC,ec as P,ed as _T,ee as En,ef as Qn,eg as WS,eh as pw,ei as dE,ek as yA,el as ls,em as Ve,en as Fa,eo as yv,f as $e,fa as iC,fc as BC,fd as hT,fe as An,ff as _S,fg as XS,fh as mw,fi as lE,fl as us,fm as cv,fn as ja,g as qo,gb as cn,gc as Mt,gd as gT,ge as vn,gf as ei,gg as YS,gh as fw,gi as uE,gk as bA,gl as ps,gm as dv,gn as Ga,h as L,ha as sC,hb as dn,hc as qC,hd as kt,he as On,hf as ti,hg as JS,hh as _w,hi as pE,hk as CA,hl as ms,hm as lv,hn as Ua,ho as bv,i as Fe,ia as aC,ib as Ge,id as yT,ie as In,if as ri,ig as ZS,ih as hw,ik as TA,il as XA,im as Ft,in as Ba,io as Cv,j as zo,ja as cC,jb as RC,jc as zC,jd as bT,je as Rn,jf as oi,jg as QS,jh as gw,ji as mE,jl as YA,jm as He,jn as qa,jo as Tv,k as Vo,ka as dC,kd as CT,ke as Pn,kg as ew,kh as yw,ki as Ui,kk as SA,kl as JA,km as uv,kn as za,ko as Sv,l as Ho,la as lC,lb as ln,le as ZT,lg as tw,lh as bw,li as Bi,ll as ZA,lm as pv,ln as Va,lo as wv,m as Ko,ma as uC,mb as un,md as TT,me as QT,mg as rw,mh as Cw,ml as QA,mm as mv,mn as Ha,mo as Ev,na as pC,nd as ST,ng as ai,nh as Tw,nj as HE,nk as wA,nl as ev,nm as fv,nn as Ka,no as Av,o as Wo,oa as mC,ob as pn,oe as Mn,og as ci,oh as Sw,oj as KE,ol as tv,om as _v,on as Wa,oo as xc,p as vt,pa as fC,pe as kn,pg as di,ph as ww,pj as WE,pk as EA,pl as rv,pm as hv,pn as Xa,po as Nc,q as fe,qa as _C,qd as Tn,qe as eS,qg as li,qh as Ew,qi as fE,qj as XE,qm as Js,qn as Ya,qo as Lc,r as Xo,rd as wT,re as xn,rg as ui,rh as Aw,ri as _E,rj as YE,rm as Zs,rn as Ja,ro as Dc,s as je,sa as hC,sd as ET,se as Nn,sg as pi,sh as vw,si as hE,sj as JE,sm as Qs,sn as Za,so as $c,t as Yo,ta as gC,td as AT,te as tS,tf as xt,tg as mi,th as Ow,ti as gE,tk as AA,tl as $t,tm as ea,tn as Qa,to as Fc,ua as yC,ud as vT,ue as rS,uf as Nt,ug as qe,uh as Iw,ui as yE,uk as vA,ul as ov,um as ta,un as ec,uo as jc,v as Kb,va as bC,vd as OT,ve as oS,vf as ni,vg as ze,vh as Rw,vi as bE,vj as ZE,vk as OA,vl as nv,vm as ra,vn as tc,vo as Gc,w as Wb,wa as CC,wc as VC,wd as IT,we as nS,wf as ii,wg as fi,wh as Pw,wj as QE,wk as IA,wl as iv,wm as oa,wn as rc,wo as Uc,x as Xb,xa as TC,xc as HC,xe as iS,xf as si,xg as _i,xh as Mw,xi as CE,xj as Hi,xk as RA,xl as ys,xm as na,xn as oc,xo as Bc,ya as Qo,yc as KC,yd as RT,ye as sS,yg as hi,yh as kw,yj as eA,yl as bs,ym as ia,yn as nc,yo as qc,za as en,zd as PT,ze as aS,zf as hS,zg as gi,zh as xw,zi as TE,zj as tA,zk as PA,zl as Cs,zm as sa,zn as ic,zo as jt}from"./chunks/chunk-CI2JCBN2.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]="08485124-a2f1-5bb5-9316-533a3f7888bc")}catch{}})();var K="2026-07-28",Qk=["2025-11-25","2025-06-18"],et=[K],m={headerMismatch:-32020,missingRequiredClientCapability:-32021,unsupportedProtocolVersion:-32022,invalidParams:-32602},A={clientCapabilities:"io.modelcontextprotocol/clientCapabilities",clientInfo:"io.modelcontextprotocol/clientInfo",logLevel:"io.modelcontextprotocol/logLevel",protocolVersion:"io.modelcontextprotocol/protocolVersion",serverInfo:"io.modelcontextprotocol/serverInfo"},lr=["debug","info","notice","warning","error","critical","alert","emergency"],p=class extends Error{code;data;constructor(t,r,o={}){super(t),this.name="PmMcpProtocolError",this.code=r,this.data=o}};function _(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Gh(e){if(e===void 0)return;if(!_(e))throw new p("Invalid MCP clientInfo metadata",m.invalidParams,{field:A.clientInfo,expected:"object"});let t=typeof e.name=="string"?e.name.trim():"",r=typeof e.version=="string"?e.version.trim():"";if(t.length===0||r.length===0)throw new p("Invalid MCP clientInfo metadata",m.invalidParams,{field:A.clientInfo,required:["name","version"]});let o={name:t.slice(0,128),version:r.slice(0,128)};return typeof e.description=="string"&&e.description.trim()&&(o.description=e.description.trim().slice(0,1024)),typeof e.websiteUrl=="string"&&e.websiteUrl.trim()&&(o.websiteUrl=e.websiteUrl.trim().slice(0,2048)),o}function Uh(e){if(e!==void 0){if(typeof e!="string"||!lr.includes(e))throw new p("Invalid MCP logLevel metadata",m.invalidParams,{field:A.logLevel,allowed:[...lr]});return e}}function tt(e){let t=_(e)?e._meta:void 0;if(!_(t))throw new p("Missing required MCP request metadata",m.invalidParams,{required:[A.protocolVersion,A.clientCapabilities]});let r=t[A.protocolVersion];if(typeof r!="string"||!et.includes(r))throw new p("Unsupported protocol version",m.unsupportedProtocolVersion,{supported:[...et],requested:typeof r=="string"?r:null});let o=t[A.clientCapabilities];if(!_(o))throw new p("Invalid MCP client capabilities metadata",m.invalidParams,{field:A.clientCapabilities,expected:"object"});let n=Gh(t[A.clientInfo]),i=Uh(t[A.logLevel]);return{protocolVersion:K,clientCapabilities:o,...n?{clientInfo:n}:{},...i?{logLevel:i}:{}}}function e0(e,t){if(t!==e.protocolVersion)throw new p("MCP protocol header does not match request metadata",m.headerMismatch,{header:t??null,metadata:e.protocolVersion})}function t0(e,t){let r=t.filter(o=>!Object.prototype.hasOwnProperty.call(e.clientCapabilities,o));if(r.length>0)throw new p("Missing required client capability",m.missingRequiredClientCapability,{requiredCapabilities:Object.fromEntries(r.map(o=>[o,{}]))})}function r0(e,t){let r=e.clientCapabilities.extensions;return _(r)&&_(r[t])}function rt(e,t){let r=_(e._meta)?e._meta:{};return{...e,_meta:{...r,[A.serverInfo]:{...t}}}}function Bh(e,t){return rt({...e,resultType:"complete"},t)}function o0(e){let t=e.ttlMs??6e4;if(!Number.isFinite(t)||t<0)throw new p("Invalid MCP discovery cache TTL",m.invalidParams,{ttlMs:t});return Bh({supportedVersions:[...et],capabilities:structuredClone(e.capabilities),ttlMs:t,cacheScope:"public",...e.instructions?{instructions:e.instructions}:{}},e.serverInfo)}function n0(e,t){if(_(e)&&typeof e.resultType=="string")return e.resultType;if(t==="legacy")return"complete";throw new p("Modern MCP result is missing resultType",m.invalidParams,{required:"resultType"})}import{createHash as mr,createHmac as fr,timingSafeEqual as qh}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]="6505e714-d1f3-5794-88c8-51c1644acec9")}catch{}})();var zh=["elicitation/create","roots/list","sampling/createMessage"],ur=class extends Error{inputRequests;requestState;constructor(t){super("MCP operation requires additional input"),this.name="PmMcpInputRequiredError",this.inputRequests=t.inputRequests,this.requestState=t.requestState}},_r=/^[a-zA-Z][a-zA-Z0-9_.-]{0,63}$/u,ge=32,nt=64*1024,ye=16*1024,ot={maxBytes:256*1024,maxDepth:32,maxNodes:4096};function Vh(e){return e==="elicitation/create"?"elicitation":e==="sampling/createMessage"?"sampling":"roots"}function be(e,t,r){let o;try{o=JSON.stringify(e)}catch{throw new p(`Invalid ${r}: value is not JSON serializable`,m.invalidParams,{field:r})}if(Buffer.byteLength(o,"utf8")>t)throw new p(`Invalid ${r}: payload exceeds the protocol bound`,m.invalidParams,{field:r,maximumBytes:t})}function it(e,t){if(!_(e))throw new p("Invalid MCP inputRequests",m.invalidParams,{field:"inputRequests",expected:"object"});let r=Object.entries(e);if(r.length===0||r.length>ge)throw new p("Invalid MCP inputRequests count",m.invalidParams,{minimum:1,maximum:ge,observed:r.length});let o={};for(let[n,i]of r){if(!_r.test(n)||!_(i))throw new p("Invalid MCP input request entry",m.invalidParams,{field:`inputRequests.${n}`});let s=i.method;if(typeof s!="string"||!zh.includes(s))throw new p("Unsupported MCP input request method",m.invalidParams,{field:`inputRequests.${n}.method`,method:s??null});let a=Vh(s);if(!Object.prototype.hasOwnProperty.call(t.clientCapabilities,a))throw new p("Missing required client capability",m.missingRequiredClientCapability,{requiredCapabilities:{[a]:{}}});if(!_(i.params))throw new p("Invalid MCP input request parameters",m.invalidParams,{field:`inputRequests.${n}.params`,expected:"object"});o[n]={method:s,params:structuredClone(i.params)}}return be(o,nt,"inputRequests"),o}function hr(e){if(!_(e))throw new p("Invalid MCP inputResponses",m.invalidParams,{field:"inputResponses",expected:"object"});let t=Object.entries(e);if(t.length>ge)throw new p("Invalid MCP inputResponses count",m.invalidParams,{maximum:ge,observed:t.length});let r={};for(let[o,n]of t){if(!_r.test(o)||!_(n))throw new p("Invalid MCP input response entry",m.invalidParams,{field:`inputResponses.${o}`});r[o]=structuredClone(n)}return be(r,nt,"inputResponses"),r}function c0(e){let t=e.requestState?.trim();if(t&&Buffer.byteLength(t,"utf8")>ye)throw new p("Invalid MCP requestState: payload exceeds the protocol bound",m.invalidParams,{field:"requestState",maximumBytes:ye});let r=e.inputRequests===void 0?void 0:it(e.inputRequests,e.requestContext);if(r===void 0&&!t)throw new p("InputRequiredResult requires inputRequests or requestState",m.invalidParams,{requiredAnyOf:["inputRequests","requestState"]});return{resultType:"input_required",...r?{inputRequests:r}:{},...t?{requestState:t}:{},_meta:{[A.serverInfo]:{...e.serverInfo}}}}function gr(e){let t=Buffer.from(e);if(t.byteLength<32)throw new p("MCP requestState signing key must contain at least 32 bytes",m.invalidParams,{minimumBytes:32});return t}function d0(e,t){if(!Number.isSafeInteger(e.expiresAt)||e.expiresAt<=0||e.method.trim().length===0||e.parameterDigest.trim().length===0||e.principal.trim().length===0)throw new p("Invalid MCP requestState payload",m.invalidParams);let r=Buffer.from(JSON.stringify({version:1,...e}),"utf8");if(r.byteLength>ye/2)throw new p("MCP requestState payload exceeds the protocol bound",m.invalidParams,{maximumBytes:ye/2});let o=r.toString("base64url"),n=fr("sha256",gr(t)).update(o).digest("base64url");return`${o}.${n}`}function Hh(e){if(!_(e)||e.version!==1)throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});let{expiresAt:t,method:r,parameterDigest:o,principal:n,state:i}=e;if(typeof t!="number"||!Number.isSafeInteger(t))throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});if(typeof r!="string"||typeof o!="string"||typeof n!="string")throw new p("Invalid MCP requestState payload",m.invalidParams,{field:"requestState"});return{expiresAt:t,method:r,parameterDigest:o,principal:n,state:i}}function l0(e,t,r){let[o,n,i]=e.split(".");if(!o||!n||i!==void 0)throw new p("Invalid MCP requestState encoding",m.invalidParams,{field:"requestState"});let s=Buffer.from(n,"base64url"),a=fr("sha256",gr(t)).update(o).digest();if(s.byteLength!==a.byteLength||!qh(s,a))throw new p("Invalid MCP requestState signature",m.invalidParams,{field:"requestState"});let c;try{c=JSON.parse(Buffer.from(o,"base64url").toString("utf8"))}catch{c=null}let d=Hh(c),{expiresAt:l,method:u,parameterDigest:f,principal:g}=d;if(l<(r.nowMs??Date.now()))throw new p("Expired MCP requestState",m.invalidParams,{field:"requestState",expiredAt:l});if(u!==r.method||f!==r.parameterDigest||g!==r.principal)throw new p("MCP requestState binding mismatch",m.invalidParams,{field:"requestState"});return d}function u0(e){return be(e,nt,"request parameters"),mr("sha256").update(JSON.stringify(e)).digest("hex")}var pr=class{#e=new Set;#t;constructor(t=4096){if(!Number.isSafeInteger(t)||t<1)throw new p("Invalid MCP replay guard capacity",m.invalidParams,{maximumEntries:t});this.#t=t}consume(t){let r=mr("sha256").update(t).digest("hex");if(this.#e.has(r))throw new p("MCP requestState replay detected",m.invalidParams,{field:"requestState"});if(this.#e.size>=this.#t){let o=this.#e.values().next().value;this.#e.delete(o)}this.#e.add(r)}};function Kh(e){if(!Number.isSafeInteger(e.ttlMs)||e.ttlMs<0||e.cacheScope!=="public"&&e.cacheScope!=="private")throw new p("Invalid MCP cache policy",m.invalidParams,{ttlMs:e.ttlMs,cacheScope:e.cacheScope});return{ttlMs:e.ttlMs,cacheScope:e.cacheScope}}function p0(e,t){return{...e,...Kh(t)}}function Wh(e){return e.replaceAll("~1","/").replaceAll("~0","~")}function Xh(e,t){if(t==="#")return e;if(!t.startsWith("#/"))return;let r=e;for(let o of t.slice(2).split("/").map(Wh)){if(!_(r)&&!Array.isArray(r)||!Object.prototype.hasOwnProperty.call(r,o))return;r=r[o]}return r}function Yh(e){let t=e.maxBytes??ot.maxBytes,r=e.maxDepth??ot.maxDepth,o=e.maxNodes??ot.maxNodes;if(!Number.isSafeInteger(t)||t<2)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);if(!Number.isSafeInteger(r)||r<1)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);if(!Number.isSafeInteger(o)||o<1)throw new p("Invalid MCP JSON Schema work bounds",m.invalidParams);return{maximumBytes:t,maximumDepth:r,maximumNodes:o}}function Jh(e,t){let r=Array.isArray(e.value)?e.value:_(e.value)?Object.values(e.value):[];for(let o of r)t.push({value:o,depth:e.depth+1})}function Zh(e,t){if(!_(t)||typeof t.$ref!="string")return;let r=t.$ref;if(r.startsWith("#")&&Xh(e,r)===void 0)throw new p("MCP JSON Schema contains an unresolved local reference",m.invalidParams,{reference:r})}function m0(e,t={}){let{maximumBytes:r,maximumDepth:o,maximumNodes:n}=Yh(t);if(typeof e!="boolean"&&!_(e))throw new p("Invalid MCP JSON Schema root",m.invalidParams,{expected:"object or boolean"});be(e,r,"JSON Schema");let i=[{value:e,depth:0}],s=0;for(;i.length>0;){let a=i.pop();if(s+=1,s>n||a.depth>o)throw new p("MCP JSON Schema exceeds validation work bounds",m.invalidParams,{maximumDepth:o,maximumNodes:n});Zh(e,a.value),Jh(a,i)}return structuredClone(e)}import{randomUUID as Qh}from"node:crypto";import{readFile as eg}from"node:fs/promises";import yr from"node:path";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7f5b3ba6-07cf-5317-8f62-63e84f561232")}catch{}})();var T0="io.modelcontextprotocol/tasks",tg=["working","input_required","completed","failed","cancelled"],rg=/^mcp-task-[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu,og=3600*1e3,ng=1e3,Te=1024,ig=30,sg=2e3;function st(e){return new p(e,m.invalidParams,{code:"mcp_task_not_found_or_not_authorized"})}function Ce(e){let t=e.trim();if(!rg.test(t))throw st("Unknown MCP task");return t}function br(e,t){if(typeof e!="string"||!Number.isFinite(Date.parse(e)))throw new p("Corrupt MCP task record",m.invalidParams,{field:t});return e}function Cr(e){if(!_(e)||typeof e.code!="number"||!Number.isFinite(e.code)||typeof e.message!="string")throw new p("Corrupt MCP task error",m.invalidParams);return{code:e.code,message:e.message.slice(0,Te),..._(e.data)?{data:structuredClone(e.data)}:{}}}function ag(e){if(!tg.includes(e))throw new p("Corrupt MCP task record",m.invalidParams);return e}function cg(e){if(typeof e!="string"||e.length===0)throw new p("Corrupt MCP task record",m.invalidParams);return e}function dg(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new p("Corrupt MCP task record",m.invalidParams);return e}function lg(e){if(e!==null&&(typeof e!="number"||!Number.isSafeInteger(e)||e<0))throw new p("Corrupt MCP task record",m.invalidParams);return e}function ug(e){if(e!==void 0){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new p("Corrupt MCP task record",m.invalidParams);return e}}function pg(e){if(!Array.isArray(e)||e.some(t=>typeof t!="string"))throw new p("Corrupt MCP task record",m.invalidParams);return[...e]}function mg(e){if(!_(e)||e.version!==1)throw new p("Corrupt MCP task record",m.invalidParams);let t=typeof e.taskId=="string"?Ce(e.taskId):"",r=ag(e.status),o=cg(e.principal),n=dg(e.workerPid),i=lg(e.ttlMs),s=ug(e.pollIntervalMs),a={version:1,taskId:t,status:r,principal:o,workerPid:n,createdAt:br(e.createdAt,"createdAt"),lastUpdatedAt:br(e.lastUpdatedAt,"lastUpdatedAt"),ttlMs:i,consumedInputKeys:pg(e.consumedInputKeys),...typeof e.statusMessage=="string"?{statusMessage:e.statusMessage.slice(0,Te)}:{},...typeof s=="number"?{pollIntervalMs:s}:{}};if(_(e.inputRequests)&&(a.inputRequests=structuredClone(e.inputRequests)),_(e.inputResponses)&&(a.inputResponses=structuredClone(e.inputResponses)),_(e.result)&&(a.result=structuredClone(e.result)),e.error!==void 0&&(a.error=Cr(e.error)),a.status==="input_required"&&!a.inputRequests||a.status==="completed"&&!a.result||a.status==="failed"&&!a.error)throw new p("Corrupt MCP task status payload",m.invalidParams,{status:a.status});return a}function W(e){let t={taskId:e.taskId,status:e.status,createdAt:e.createdAt,lastUpdatedAt:e.lastUpdatedAt,ttlMs:e.ttlMs,...e.statusMessage?{statusMessage:e.statusMessage}:{},...e.pollIntervalMs===void 0?{}:{pollIntervalMs:e.pollIntervalMs}};return e.status==="input_required"?{...t,status:"input_required",inputRequests:structuredClone(e.inputRequests)}:e.status==="completed"?{...t,status:"completed",result:structuredClone(e.result)}:e.status==="failed"?{...t,status:"failed",error:structuredClone(e.error)}:e.status==="cancelled"?{...t,status:"cancelled"}:{...t,status:"working"}}function ne(e){return e==="completed"||e==="failed"||e==="cancelled"}function fg(e){try{return process.kill(e,0),!0}catch(t){return!(typeof t=="object"&&t!==null&&"code"in t&&t.code==="ESRCH")}}var at=class{#e;#t;#r;#o;#i;constructor(t){this.#e=yr.resolve(t.pmRoot),this.#t=t.owner?.trim()||"pm-mcp",this.#r=t.now??(()=>new Date),this.#o=t.taskIdFactory??(()=>`mcp-task-${Qh()}`),this.#i=t.workerPid??process.pid}#s(t){return yr.join(this.#e,"runtime","mcp-tasks","records",`${Ce(t)}.json`)}async#c(t){try{return mg(JSON.parse(await eg(this.#s(t),"utf8")))}catch(r){throw fe(r)||r instanceof SyntaxError?st("Unknown MCP task"):r}}async#a(t){await je(this.#s(t.taskId),`${JSON.stringify(t,null,2)}
|
|
2
2
|
`)}async#n(t,r,o){let n=Ce(t),i=await Be(this.#e,n,ig,this.#t,!1,!1,sg);try{let s=await this.#c(n);if(s.principal!==r)throw st("Unknown MCP task");let a=o(s);return await this.#a(a),a}finally{await i()}}async create(t){let r=Ce(this.#o()),o=t.principal.trim(),n=t.ttlMs===void 0?og:t.ttlMs,i=t.pollIntervalMs??ng;if(o.length===0||n!==null&&(!Number.isSafeInteger(n)||n<0)||!Number.isSafeInteger(i)||i<0)throw new p("Invalid MCP task creation options",m.invalidParams);let s=this.#r().toISOString(),a={version:1,taskId:r,status:"working",createdAt:s,lastUpdatedAt:s,ttlMs:n,pollIntervalMs:i,principal:o,workerPid:this.#i,consumedInputKeys:[],...t.statusMessage?.trim()?{statusMessage:t.statusMessage.trim().slice(0,Te)}:{}};return await this.#a(a),{...W(a),resultType:"task"}}async get(t,r){return W(await this.#n(t,r,o=>{if(ne(o.status))return o;let n=this.#r().getTime(),i=o.ttlMs!==null&&Date.parse(o.createdAt)+o.ttlMs<=n,s=o.workerPid!==this.#i&&!fg(o.workerPid);return!i&&!s?o:{...o,status:"failed",statusMessage:i?"Task retention expired before completion.":"Task worker ended before recording a terminal result.",lastUpdatedAt:this.#r().toISOString(),error:{code:-32603,message:i?"MCP task expired":"MCP task worker unavailable after restart",data:{recoverable:!1,createNewTask:!0}},inputRequests:void 0}}))}async requireInput(t){let r=it(t.inputRequests,t.requestContext);return W(await this.#n(t.taskId,t.principal,o=>{if(ne(o.status))return o;let n=Object.keys(r).filter(i=>o.consumedInputKeys.includes(i));if(n.length>0)throw new p("MCP task input request keys must be unique for the task lifetime",m.invalidParams,{reused:n});return{...o,status:"input_required",statusMessage:t.statusMessage?.trim().slice(0,Te),lastUpdatedAt:this.#r().toISOString(),inputRequests:r}}))}async update(t,r,o){let n=hr(o),i=[],s=[];return await this.#n(t,r,a=>{if(a.status!=="input_required"||!a.inputRequests)return a;let c={...a.inputRequests},d=a.inputResponses?{...a.inputResponses}:{};for(let[l,u]of Object.entries(n))Object.prototype.hasOwnProperty.call(c,l)&&(d[l]=u,delete c[l],i.push(l));return s=Object.keys(c).sort(),i.length===0?a:{...a,status:s.length===0?"working":"input_required",lastUpdatedAt:this.#r().toISOString(),inputRequests:s.length===0?void 0:c,inputResponses:d,consumedInputKeys:[...new Set([...a.consumedInputKeys,...i])].sort()}}),{acceptedKeys:i.sort(),remainingKeys:s}}async takeInputResponses(t,r){let o={};return await this.#n(t,r,n=>(o=structuredClone(n.inputResponses??{}),Object.keys(o).length===0?n:{...n,inputResponses:void 0})),o}async complete(t,r,o){return W(await this.#n(t,r,n=>ne(n.status)?n:{...n,status:"completed",statusMessage:"Task completed.",lastUpdatedAt:this.#r().toISOString(),result:structuredClone(o),inputRequests:void 0,error:void 0}))}async fail(t,r,o){let n=Cr(o);return W(await this.#n(t,r,i=>ne(i.status)?i:{...i,status:"failed",statusMessage:n.message,lastUpdatedAt:this.#r().toISOString(),error:n,inputRequests:void 0,result:void 0}))}async cancel(t,r){return W(await this.#n(t,r,o=>ne(o.status)?o:{...o,status:"cancelled",statusMessage:"Task cancelled by the client.",lastUpdatedAt:this.#r().toISOString(),inputRequests:void 0,result:void 0,error:void 0}))}};function S0(e){return new at(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]="f87864d3-e499-57f7-b1e3-4ea3f30b7725")}catch{}})();var Se="io.modelcontextprotocol/subscriptionId",Tr=256,Sr=2048,_g=5e3;function hg(e,t){return new Promise((r,o)=>{let n=setTimeout(()=>o(new Error("MCP subscription sink write timed out")),_g);n.unref(),Promise.resolve().then(()=>e(t)).then(()=>{clearTimeout(n),r()},i=>{clearTimeout(n),o(i instanceof Error?i:new Error(String(i)))})})}function ct(e,t){if(e!==void 0){if(typeof e!="boolean")throw new p("Invalid MCP subscription filter",m.invalidParams,{field:`notifications.${t}`,expected:"boolean"});return e||void 0}}function gg(e){if(!_(e))throw new p("Invalid MCP subscription filter",m.invalidParams,{field:"notifications",expected:"object"});let t=ct(e.toolsListChanged,"toolsListChanged"),r=ct(e.promptsListChanged,"promptsListChanged"),o=ct(e.resourcesListChanged,"resourcesListChanged"),n;if(e.resourceSubscriptions!==void 0){if(!Array.isArray(e.resourceSubscriptions)||e.resourceSubscriptions.length>Tr)throw new p("Invalid MCP resource subscriptions",m.invalidParams,{field:"notifications.resourceSubscriptions",maximum:Tr});let i=new Set;for(let s of e.resourceSubscriptions){if(typeof s!="string"||s.trim().length===0||Buffer.byteLength(s,"utf8")>Sr)throw new p("Invalid MCP resource subscription URI",m.invalidParams,{field:"notifications.resourceSubscriptions",maximumBytes:Sr});i.add(s)}i.size>0&&(n=[...i].sort())}return{...t?{toolsListChanged:t}:{},...r?{promptsListChanged:r}:{},...o?{resourcesListChanged:o}:{},...n?{resourceSubscriptions:n}:{}}}function yg(e,t){return{...e.toolsListChanged&&t.tools?.listChanged?{toolsListChanged:!0}:{},...e.promptsListChanged&&t.prompts?.listChanged?{promptsListChanged:!0}:{},...e.resourcesListChanged&&t.resources?.listChanged?{resourcesListChanged:!0}:{},...e.resourceSubscriptions&&t.resources?.subscribe?{resourceSubscriptions:[...e.resourceSubscriptions]}:{}}}var wr=class{#e;#t=new Map;#r;constructor(t){this.#e=structuredClone(t.capabilities),this.#r={...t.serverInfo}}get size(){return this.#t.size}async open(t){if(this.#t.has(t.id))throw new p("MCP subscription id is already active",m.invalidParams,{subscriptionId:t.id});let r=yg(gg(t.notifications),this.#e),o={filter:r,sink:t.sink,writeQueue:Promise.resolve()};this.#t.set(t.id,o);try{await this.#o(t.id,o,{jsonrpc:"2.0",method:"notifications/subscriptions/acknowledged",params:{_meta:{[Se]:t.id},notifications:structuredClone(r)}},!0)}catch(n){throw this.#t.delete(t.id),n}return structuredClone(r)}async emitListChanged(t){let r=`${t}ListChanged`,o=`notifications/${t}/list_changed`,n=[];for(let[i,s]of this.#t)s.filter[r]===!0&&n.push(this.#o(i,s,{jsonrpc:"2.0",method:o,params:{_meta:{[Se]:i}}}));return(await Promise.all(n)).filter(Boolean).length}async emitResourceUpdated(t){let r=[];for(let[o,n]of this.#t)n.filter.resourceSubscriptions?.includes(t)&&r.push(this.#o(o,n,{jsonrpc:"2.0",method:"notifications/resources/updated",params:{_meta:{[Se]:o},uri:t}}));return(await Promise.all(r)).filter(Boolean).length}async#o(t,r,o,n=!1){let i=r.writeQueue.then(async()=>{if(this.#t.get(t)!==r)return!1;try{return await hg(r.sink,o),!0}catch(s){if(this.#t.get(t)===r&&this.#t.delete(t),n)throw s;return!1}});return r.writeQueue=i.then(()=>{},()=>{}),i}close(t){if(this.#t.delete(t))return{...rt({resultType:"complete",_meta:{[Se]:t}},this.#r)}}closeAll(){let t=[];for(let r of this.#t.keys()){let o=this.close(r);t.push({id:r,result:o})}return t}};(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7d591d0b-f009-519c-8024-c6fa18effb8e")}catch{}})();var Er=/^=\?base64\?([A-Za-z0-9+/]*={0,2})\?=$/u,bg=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u,Ar=/^[\t\x20-\x7E]*$/u,vr=new Set(["prompts/get","resources/read","tools/call"]);function Cg(e){let t=new Map;for(let[r,o]of Object.entries(e)){if(o===void 0)continue;let n=typeof o=="string"?o:o.join(", ");t.set(r.toLowerCase(),n)}return t}function v(e,t){throw new p(e,m.headerMismatch,{header:t})}function Or(e){let t=typeof e=="boolean"?String(e).toLowerCase():String(e);return t.length>0&&t.trim()===t&&Ar.test(t)&&!Er.test(t)?t:`=?base64?${Buffer.from(t,"utf8").toString("base64")}?=`}function Ir(e,t){let r=Er.exec(e);if(r){let o=r[1],n=Buffer.from(o,"base64");return n.toString("base64")!==o||n.length===0?v("Malformed MCP Base64 header value",t):n.toString("utf8")}return e.length===0||e.trim()!==e||!Ar.test(e)?v("Malformed MCP header value",t):e}function we(e){return Array.isArray(e)?e.some(we):_(e)?Object.prototype.hasOwnProperty.call(e,"x-mcp-header")||Object.values(e).some(we):!1}function Tg(e,t,r){let o=e["x-mcp-header"];if(o===void 0)return;let n=e.type;if(typeof o!="string"||!bg.test(o)||!["boolean","integer","string"].includes(String(n))||r.has(o.toLowerCase()))throw new p("Invalid MCP x-mcp-header annotation",m.invalidParams,{field:t.join("."),annotation:o});return r.add(o.toLowerCase()),{name:o,path:t,type:n}}function Rr(e){if(!_(e))throw new p("Invalid MCP tool schema",m.invalidParams,{field:"inputSchema",expected:"object"});let t=[],r=new Set,o=(n,i)=>{let s=n.properties;if(s!==void 0){if(!_(s))throw new p("Invalid MCP tool schema properties",m.invalidParams,{field:"inputSchema.properties"});for(let[a,c]of Object.entries(s)){if(!_(c))continue;let d=[...i,a],l=Tg(c,d,r);l&&t.push(l);for(let[u,f]of Object.entries(c))if(u!=="properties"&&u!=="x-mcp-header"&&we(f))throw new p("MCP x-mcp-header is not statically reachable",m.invalidParams,{field:d.join("."),keyword:u});o(c,d)}}};for(let[n,i]of Object.entries(e))if(n!=="properties"&&we(i))throw new p("MCP x-mcp-header is not statically reachable",m.invalidParams,{field:"inputSchema",keyword:n});return o(e,[]),t}function Pr(e,t){let r=e;for(let o of t){if(!_(r))return;r=r[o]}return r}function Mr(e,t){let r=e==="resources/read"?t.uri:t.name;return typeof r=="string"?r:void 0}function Sg(e,t){let r=_(e.arguments)?e.arguments:{},o={};for(let n of Rr(t)){let i=Pr(r,n.path);if(i==null)continue;if(!(n.type==="integer"&&typeof i=="number"&&Number.isSafeInteger(i)||n.type==="boolean"&&typeof i=="boolean"||n.type==="string"&&typeof i=="string"))throw new p("Invalid MCP custom header argument",m.invalidParams,{field:n.path.join("."),expected:n.type});o[`Mcp-Param-${n.name}`]=Or(i)}return o}function O0(e){let t=_(e.request.params)?e.request.params:void 0,r=tt(t),o=e.request.method;if(typeof o!="string"||o.length===0)return v("Missing MCP request method","Mcp-Method");let n={Accept:"application/json, text/event-stream","Content-Type":"application/json","MCP-Protocol-Version":r.protocolVersion,"Mcp-Method":o},i=Mr(o,t);if(vr.has(o)){if(i===void 0)return v("Missing MCP request name","Mcp-Name");n["Mcp-Name"]=Or(i)}return o==="tools/call"&&e.toolSchema!==void 0&&Object.assign(n,Sg(t,e.toolSchema)),n}function wg(e,t){let r=t.method;(typeof r!="string"||r.length===0)&&v("Missing MCP request method","Mcp-Method");let o=_(t.params)?t.params:void 0,n=tt(o).protocolVersion;if(e.get("mcp-protocol-version")!==n&&v("MCP protocol header does not match request metadata","MCP-Protocol-Version"),e.get("mcp-method")!==r&&v("MCP method header does not match request body","Mcp-Method"),vr.has(r)){let i=e.get("mcp-name"),s=Mr(r,o);(i===void 0||s===void 0||Ir(i,"Mcp-Name")!==s)&&v("MCP name header does not match request body","Mcp-Name")}e.has("last-event-id")&&v("MCP SSE resumability is not supported","Last-Event-ID")}function Eg(e,t,r){return e.type==="integer"?typeof t=="number"&&Number.isSafeInteger(t)&&Number(r)===t:e.type==="boolean"?typeof t=="boolean"&&r===String(t):typeof t=="string"&&r===t}function Ag(e){let t=_(e.params.arguments)?e.params.arguments:{};for(let r of Rr(e.toolSchema)){let o=Pr(t,r.path),n=`Mcp-Param-${r.name}`,i=e.headers.get(n.toLowerCase());if(o==null){i!==void 0&&v("Unexpected MCP parameter header",n);continue}i===void 0&&v("Missing MCP parameter header",n),Eg(r,o,Ir(i,n))||v("MCP parameter header does not match request body",n)}}function I0(e){let t=Cg(e.headers),r=typeof e.request.method=="string"?e.request.method:"";wg(t,e.request),!(r!=="tools/call"||e.toolSchema===void 0)&&Ag({headers:t,params:e.request.params,toolSchema:e.toolSchema})}var R0=K;import{AsyncLocalStorage as vg}from"node:async_hooks";import{createHash as kr,timingSafeEqual as Og}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]="6a5310f6-3add-5108-b39f-61607918dc9f")}catch{}})();var y=class extends Error{httpStatus;challenge;constructor(t,r,o){super(t),this.name="PmMcpAuthorizationError",this.httpStatus=r,this.challenge=o}},Ig=/^00-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/u,Rg=/^[a-z][a-z0-9_*/-]{0,255}$/u,Pg=/^(?:[a-z0-9][a-z0-9_*/-]{0,240})@[a-z][a-z0-9_*/-]{0,13}$/u,Mg=/^[\x20-\x2B\x2D-\x3C\x3E-\x7E]{0,255}[\x21-\x2B\x2D-\x3C\x3E-\x7E]$/u,Nr=/^[\x21\x23-\x5B\x5D-\x7E]+$/u,Lr=/^[A-Za-z0-9!#$%&'*+.^_`|~-]+$/u,kg=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]*$/u,xg=/%(?![0-9A-Fa-f]{2})/u,Ng=512,Lg=32,Dg=180,$g=8192,Fg=8192,Dr=new vg;function E(e,t,r=!1){if(new RegExp("\\p{Cc}","u").test(e))throw new y(`Invalid ${t}`,401);let o;try{o=new URL(e)}catch{throw new y(`Invalid ${t}`,401)}let n=o.hostname==="127.0.0.1"||o.hostname==="localhost";if(o.hash.length>0||o.protocol!=="https:"&&!(r&&n&&o.protocol==="http:"))throw new y(`Invalid ${t}`,401);return o}function jg(e,t){let r=t.toLowerCase();for(let[o,n]of Object.entries(e))if(!(o.toLowerCase()!==r||n===void 0))return typeof n=="string"?n:n.join(", ")}function N0(e){let t=E(e.resource,"protected resource URI",!0).href.replace(/\/$/u,"");if(e.authorizationServers.length===0)throw new y("Protected resource metadata requires an authorization server",401);let r=e.authorizationServers.map(n=>E(n,"authorization server issuer").href.replace(/\/$/u,"")),o=[...new Set(e.scopes??[])];if(o.some(n=>!Nr.test(n)))throw new y("Invalid authorization scope",401);return{resource:t,authorization_servers:r,...o.length>0?{scopes_supported:o.sort()}:{}}}function L0(e){let t=E(e,"authorization server issuer"),r=t.pathname.replace(/^\/+|\/+$/gu,""),o=t.origin;return r?[`${o}/.well-known/oauth-authorization-server/${r}`,`${o}/.well-known/openid-configuration/${r}`,`${o}/${r}/.well-known/openid-configuration`]:[`${o}/.well-known/oauth-authorization-server`,`${o}/.well-known/openid-configuration`]}function D0(e,t){if(!_(e)||typeof e.issuer!="string")throw new y("Invalid authorization server metadata",401);let r=E(t,"expected issuer").href.replace(/\/$/u,"");if(E(e.issuer,"metadata issuer").href.replace(/\/$/u,"")!==r)throw new y("Authorization server issuer mismatch",401);if(!Array.isArray(e.code_challenge_methods_supported)||!e.code_challenge_methods_supported.includes("S256"))throw new y("Authorization server does not support required S256 PKCE",401);let n=d=>{let l=e[d];if(typeof l!="string")throw new y(`Authorization server metadata requires ${d}`,401);return E(l,d).href},i=d=>{let l=e[d];return typeof l=="string"?E(l,d).href:void 0},s=n("authorization_endpoint"),a=n("token_endpoint"),c=i("registration_endpoint");return{issuer:r,authorization_endpoint:s,token_endpoint:a,code_challenge_methods_supported:[...new Set(e.code_challenge_methods_supported.filter(d=>typeof d=="string"))],...e.client_id_metadata_document_supported===!0?{client_id_metadata_document_supported:!0}:{},...c?{registration_endpoint:c}:{}}}function $0(e){return e.hasPreRegisteredClient?"pre_registered":e.metadata.client_id_metadata_document_supported?"client_id_metadata_document":e.metadata.registration_endpoint?"dynamic":"user_supplied"}function F0(e){if(e.responseIssuer===void 0){if(e.issuerParameterSupported)throw new y("Authorization response omitted the advertised issuer",401);return}if(e.responseIssuer!==e.expectedIssuer)throw new y("Authorization response issuer mismatch",401)}function j0(e,t){let r=E(t,"client metadata document URL");if(r.pathname==="/"||!_(e)||e.client_id!==r.href||typeof e.client_name!="string"||e.client_name.trim().length===0||!Array.isArray(e.redirect_uris)||e.redirect_uris.length===0)throw new y("Invalid Client ID Metadata Document",401);for(let o of e.redirect_uris){if(typeof o!="string")throw new y("Invalid client redirect URI",401);E(o,"client redirect URI",!0)}return structuredClone(e)}function G0(e){if(e.redirectUris.length===0||e.clientName.trim().length===0)throw new y("Invalid dynamic client registration metadata",401);let t=e.redirectUris.map(r=>E(r,"redirect URI",!0).href);return{application_type:e.applicationType,client_name:e.clientName.trim().slice(0,128),redirect_uris:t,grant_types:["authorization_code","refresh_token"],response_types:["code"],token_endpoint_auth_method:"none"}}var xr=class{#e=new Map;set(t,r){let o=E(t,"credential issuer").href;this.#e.set(o,structuredClone(r))}get(t){let r=E(t,"credential issuer").href,o=this.#e.get(r);return o?structuredClone(o):void 0}delete(t){let r=E(t,"credential issuer").href;return this.#e.delete(r)}};function Gg(e){let t=e.traceparent,r=e.tracestate;if(t!==void 0){let o=typeof t=="string"?Ig.exec(t):null;if(!o)throw new y("Invalid MCP traceparent",403);let n=o[1],i=o[2];if(/^0+$/u.test(n)||/^0+$/u.test(i))throw new y("Invalid MCP traceparent",403)}if(r!==void 0&&(typeof r!="string"||!Bg(r)))throw new y("Invalid MCP tracestate",403);return{...typeof t=="string"?{traceparent:t}:{},...typeof r=="string"?{tracestate:r}:{}}}function F(e){return e.replace(/^[ \t]*|[ \t]*$/gu,"")}function Ug(e){return Rg.test(e)||Pg.test(e)}function Bg(e){if(Buffer.byteLength(e,"utf8")>Ng)return!1;let t=e.split(",");if(t.length>Lg)return!1;let r=new Set;for(let o of t){let n=F(o);if(n.length===0)continue;let i=n.indexOf("="),s=i>0?n.slice(0,i):"",a=i>0?n.slice(i+1):"";if(!Ug(s)||!Mg.test(a)||r.has(s))return!1;r.add(s)}return!0}function $r(e){return kg.test(e)&&!xg.test(e)}function qg(e){let t=F(e),r=t.indexOf("="),o=F(r>=0?t.slice(0,r):t),n=r>=0?F(t.slice(r+1)):void 0;return Lr.test(o)&&(n===void 0||$r(n))}function zg(e){let t=F(e),r=t.split(";"),o=r[0],n=r.slice(1),i=o.indexOf("="),s=F(i>0?o.slice(0,i):""),a=i>0?F(o.slice(i+1)):"";if(!(!Lr.test(s)||!$r(a)||!n.every(qg)))return{key:s,serialized:t}}function Vg(e,t){if(e===void 0)return;if(typeof e!="string"||Buffer.byteLength(e,"utf8")>$g)throw new y("Invalid MCP baggage",403);let r=new Set(t),o=e.split(",");if(o.length>Dg)throw new y("Invalid MCP baggage",403);let n=[];for(let i of o){let s=zg(i);if(!s)throw new y("Invalid MCP baggage",403);r.has(s.key)&&n.push(s.serialized)}return n.length>0?n.join(","):void 0}function U0(e,t={}){let r=_(e)&&_(e._meta)?e._meta:{},o=Vg(r.baggage,t.baggageAllowlist??[]);return{...Gg(r),...o?{baggage:o}:{}}}function B0(e,t){return Dr.run(structuredClone(e),t)}function q0(){let e=Dr.getStore();return e?{...e}:void 0}async function z0(e){let t=E(e.policy.resourceMetadataUrl,"protected resource metadata URL",!0).href,r=[...new Set(e.policy.requiredScopes??[])];if(r.some(u=>!Nr.test(u)))throw new y("Invalid authorization scope",401);let o=`Bearer resource_metadata="${t}"`;if(new URL(e.requestUrl,e.policy.resource).searchParams.has("access_token"))throw new y("Access tokens must not appear in URI query parameters",401,o);let s=jg(e.headers,"authorization")?.match(/^Bearer ([^\s]+)$/iu);if(!s)throw new y("Missing or malformed bearer token",401,o);let a=s[1];if(Buffer.byteLength(a,"utf8")>Fg)throw new y("Missing or malformed bearer token",401,o);let c;try{c=await e.policy.verifyAccessToken(a)}catch{throw new y("Invalid bearer token",401,o)}let d=Array.isArray(c.audience)?c.audience:[c.audience];if(c.issuer!==e.policy.issuer||!d.includes(e.policy.resource))throw new y("Bearer token issuer or audience mismatch",401,o);let l=r.filter(u=>!c.scopes.includes(u));if(l.length>0)throw new y("Bearer token has insufficient scope",403,`${o}, scope="${l.join(" ")}"`);return{...c,audience:[...d],scopes:[...c.scopes]}}function V0(e){let t=kr("sha256").update(e.token).digest();return r=>{let o=kr("sha256").update(r).digest();if(!Og(t,o))throw new y("Invalid bearer token",401);return structuredClone(e.claims)}}(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]="4f17095e-2dba-530c-935c-1803ed359510")}catch{}})();var dt="io.modelcontextprotocol/ui",Ee="2026-01-26",Gr="text/html;profile=mcp-app",Fr=Object.freeze({specVersion:Ee,mimeTypes:[Gr]});function W0(e){let t=e.clientCapabilities.extensions;if(!_(t))return!1;let r=t[dt];if(r===void 0)return!1;if(!_(r))throw new p("Invalid MCP Apps client capability",m.missingRequiredClientCapability,{requiredCapabilities:{extensions:{[dt]:Fr}}});let o=r.mimeTypes,n=r.specVersion;if(!Array.isArray(o)||!o.includes(Gr)||n!==void 0&&n!==Ee)throw new p("Unsupported MCP Apps client capability",m.missingRequiredClientCapability,{requiredCapabilities:{extensions:{[dt]:Fr}}});return!0}var Hg={csp:{connectDomains:[],resourceDomains:[],frameDomains:[]},permissions:{},prefersBorder:!0},Ur=Object.freeze([{id:"context",name:"Context explorer",description:"Inspect bounded project context, provenance, omissions, and token accounting.",toolName:"pm_context",uri:"ui://pm/context.html"},{id:"graph",name:"Relationship graph",description:"Explore typed relationships, explaining paths, and graph-governance evidence.",toolName:"pm_graph",uri:"ui://pm/graph.html"},{id:"plan",name:"Plan and milestone view",description:"Review durable plan steps, dependencies, decisions, discoveries, and validation state.",toolName:"pm_plan",uri:"ui://pm/plan.html"},{id:"assurance",name:"Assurance dashboard",description:"Inspect validation verdicts, evidence, omissions, and actionable recovery paths.",toolName:"pm_validate",uri:"ui://pm/assurance.html"},{id:"operations",name:"Long-operation view",description:"Inspect durable test and operation results without creating a second task store.",toolName:"pm_test",uri:"ui://pm/operations.html"}].map(e=>({...e,toolMeta:{resourceUri:e.uri,visibility:["model","app"]},resourceMeta:Hg})));function X0(e){return Ur.find(t=>t.uri===e)}function Y0(e){let t=new Map(Ur.map(r=>[r.toolName,r]));return e.map(r=>{let o=t.get(r.name);return o?{...r,_meta:{...r._meta,ui:o.toolMeta}}:{...r}})}function jr(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function J0(e){let t=jr(e.name),r=jr(e.description),o=JSON.stringify({name:`pm-${e.id}-view`,version:Ee}),n=JSON.stringify(Ee);return`<!doctype html>
|
|
3
3
|
<html lang="en">
|
|
4
4
|
<head>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ae6d96af-b482-5238-af32-20bb7c3753cb")}catch(e2){}})();const NESTED_SETTING_DESCRIPTORS=[{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_default_mode",path:"search.default_mode",kind:"string",choices:["auto","keyword","semantic","hybrid"],summary:"Mode a bare pm search runs in: auto (hybrid when semantic search is explicitly configured and runnable, else keyword), or a pinned keyword, semantic, or hybrid."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:true,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:true,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:true,summary:"Default author recorded on mutations when --author is not supplied."},{key:"agent_identity_probes_enabled",path:"agent_identity.probes_enabled",kind:"boolean",summary:"Allow privacy-bounded local harness provenance probes; no network or subprocess access is permitted."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"ux_deprecation_hints",path:"ux.deprecation_hints",kind:"boolean",summary:"Emit one stderr migration hint for deprecated command aliases."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Bounded jittered wait in milliseconds before a contended item mutation fails with lock_conflict; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}];const DESCRIPTOR_BY_KEY=new Map(NESTED_SETTING_DESCRIPTORS.flatMap(descriptor=>[[descriptor.key,descriptor],[descriptor.path.toLowerCase().replaceAll("-","_"),descriptor]]));function resolveNestedSettingDescriptor(raw){if(typeof raw!=="string"){return void 0}const normalized=raw.trim().toLowerCase().replaceAll("-","_");if(normalized.length===0){return void 0}return DESCRIPTOR_BY_KEY.get(normalized)}function parseNestedBooleanValue(descriptor,rawValue){const normalized=rawValue.trim().toLowerCase();if(normalized==="true"||normalized==="1"||normalized==="yes"||normalized==="on"){return{ok:true,parsed:{descriptor,value:true}}}if(normalized==="false"||normalized==="0"||normalized==="no"||normalized==="off"){return{ok:true,parsed:{descriptor,value:false}}}return{ok:false,error:{message:`Config set ${descriptor.key} requires a boolean value (true|false), got "${rawValue}"`}}}function parseNestedStringValue(descriptor,rawValue,trimmed){if(descriptor.non_empty===true&&trimmed.length===0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-empty value`}}}if(descriptor.choices&&!descriptor.choices.includes(trimmed)){return{ok:false,error:{message:`Config set ${descriptor.key} must be one of ${descriptor.choices.join("|")}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value:trimmed}}}function parseFiniteNestedNumber(descriptor,rawValue,trimmed){if(trimmed.length===0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-empty value`}}}const parsed=Number(trimmed);if(!Number.isFinite(parsed)){return{ok:false,error:{message:`Config set ${descriptor.key} requires a finite number, got "${rawValue}"`}}}return{ok:true,value:parsed}}function parseNestedIntegerValue(descriptor,rawValue,value){if(!Number.isInteger(value)||value<0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-negative integer, got "${rawValue}"`}}}if(descriptor.min!==void 0&&value<descriptor.min){return{ok:false,error:{message:`Config set ${descriptor.key} requires an integer >= ${descriptor.min}, got "${rawValue}" (the runtime silently ignores 0 here and falls back to the default)`}}}if(descriptor.max!==void 0&&value>descriptor.max){return{ok:false,error:{message:`Config set ${descriptor.key} requires an integer <= ${descriptor.max}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedRatioValue(descriptor,rawValue,value){if(value<0||value>1){return{ok:false,error:{message:`Config set ${descriptor.key} requires a number in [0, 1], got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedNumberValue(descriptor,rawValue,value){if(descriptor.min!==void 0&&value<descriptor.min){return{ok:false,error:{message:`Config set ${descriptor.key} requires a number >= ${descriptor.min}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedSettingValue(descriptor,rawValue){if(typeof rawValue!=="string"){return{ok:false,error:{message:`Config set ${descriptor.key} requires a string value`}}}const trimmed=rawValue.trim();if(descriptor.kind==="boolean"){return parseNestedBooleanValue(descriptor,rawValue)}if(descriptor.kind==="string"){return parseNestedStringValue(descriptor,rawValue,trimmed)}const parsed=parseFiniteNestedNumber(descriptor,rawValue,trimmed);if(!parsed.ok){return{ok:false,error:parsed.error}}if(descriptor.kind==="integer"){return parseNestedIntegerValue(descriptor,rawValue,parsed.value)}if(descriptor.kind==="ratio"){return parseNestedRatioValue(descriptor,rawValue,parsed.value)}return parseNestedNumberValue(descriptor,rawValue,parsed.value)}function readNestedSettingValue(settings,descriptor){const segments=descriptor.path.split(".");let cursor=settings;for(const segment of segments){if(typeof cursor!=="object"||cursor===null){return null}cursor=cursor[segment]}if(typeof cursor==="string"||typeof cursor==="number"||typeof cursor==="boolean"){return cursor}return null}function writeNestedSettingValue(settings,descriptor,value){const segments=descriptor.path.split(".");let cursor=settings;for(let index=0;index<segments.length-1;index+=1){const segment=segments[index];const existing=cursor[segment];if(typeof existing!=="object"||existing===null||Array.isArray(existing)){const next={};cursor[segment]=next;cursor=next}else{cursor=existing}}const leafKey=segments[segments.length-1];const previous=cursor[leafKey];if(previous===value){return false}cursor[leafKey]=value;return true}export{NESTED_SETTING_DESCRIPTORS,parseNestedSettingValue,readNestedSettingValue,resolveNestedSettingDescriptor,writeNestedSettingValue};
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2d4017d7-771b-53a1-ae56-71df7e1a0ac4")}catch(e2){}})();const NESTED_SETTING_DESCRIPTORS=[{key:"search_provider",path:"search.provider",kind:"string",summary:"Search embedding provider name (e.g. openai, ollama, or an extension provider)."},{key:"search_default_mode",path:"search.default_mode",kind:"string",choices:["auto","keyword","semantic","hybrid"],summary:"Mode a bare pm search runs in: auto (hybrid when semantic search is explicitly configured and runnable, else keyword), or a pinned keyword, semantic, or hybrid."},{key:"search_mutation_refresh_policy",path:"search.mutation_refresh_policy",kind:"string",choices:["cache_only","semantic_configured","semantic_auto"],summary:"Mutation-time search refresh policy: cache_only, semantic_configured, or semantic_auto."},{key:"search_query_expansion_enabled",path:"search.query_expansion.enabled",kind:"boolean",summary:"Enable or disable query expansion for semantic/hybrid search."},{key:"search_query_expansion_provider",path:"search.query_expansion.provider",kind:"string",summary:"Query expansion provider name (built-in openai/ollama or extension provider)."},{key:"search_rerank_enabled",path:"search.rerank.enabled",kind:"boolean",summary:"Enable or disable post-retrieval reranking for hybrid search."},{key:"search_rerank_model",path:"search.rerank.model",kind:"string",summary:"Rerank model name override used by built-in providers."},{key:"search_rerank_top_k",path:"search.rerank.top_k",kind:"integer",min:1,summary:"Number of top hybrid candidates to rerank when rerank is enabled."},{key:"search_embedding_model",path:"search.embedding_model",kind:"string",summary:"Default embedding model name (overrides provider-specific model when set)."},{key:"search_embedding_corpus_max_characters",path:"search.embedding_corpus_max_characters",kind:"integer",min:1,summary:"Maximum semantic corpus characters per item before truncation."},{key:"search_embedding_batch_size",path:"search.embedding_batch_size",kind:"integer",min:1,summary:"Number of items embedded per request batch."},{key:"search_embedding_timeout_ms",path:"search.embedding_timeout_ms",kind:"integer",min:1,summary:"Per-request embedding timeout in milliseconds."},{key:"search_score_threshold",path:"search.score_threshold",kind:"number",summary:"Minimum score for a hit to be returned (0 keeps all matches)."},{key:"search_hybrid_semantic_weight",path:"search.hybrid_semantic_weight",kind:"ratio",summary:"Hybrid mode semantic weight in [0, 1] (1-weight goes to keyword)."},{key:"search_max_results",path:"search.max_results",kind:"integer",min:1,summary:"Default upper bound on search hits when --limit is not supplied."},{key:"search_bm25_k1",path:"search.bm25.k1",kind:"number",min:0,summary:"Offline BM25 term-frequency saturation (k1); higher saturates repeated terms slower (default 1.2)."},{key:"search_bm25_b",path:"search.bm25.b",kind:"ratio",summary:"Offline BM25 document-length normalization (b) in [0, 1]; 0 disables, 1 fully normalizes (default 0.75)."},{key:"openai_base_url",path:"providers.openai.base_url",kind:"string",summary:"OpenAI-compatible API base URL (LM Studio/vLLM also use this)."},{key:"openai_api_key",path:"providers.openai.api_key",kind:"string",summary:"OpenAI-compatible API key."},{key:"openai_model",path:"providers.openai.model",kind:"string",summary:"OpenAI-compatible embedding model name."},{key:"ollama_base_url",path:"providers.ollama.base_url",kind:"string",summary:"Ollama API base URL (typically http://localhost:11434)."},{key:"ollama_model",path:"providers.ollama.model",kind:"string",summary:"Ollama embedding model name (e.g. nomic-embed-text)."},{key:"vector_store_adapter",path:"vector_store.adapter",kind:"string",summary:"Vector store adapter name (lancedb, qdrant, or an extension adapter)."},{key:"vector_store_collection_name",path:"vector_store.collection_name",kind:"string",non_empty:true,summary:"Vector collection/table name shared by Qdrant and LanceDB adapters."},{key:"qdrant_url",path:"vector_store.qdrant.url",kind:"string",summary:"Qdrant HTTP API URL."},{key:"qdrant_api_key",path:"vector_store.qdrant.api_key",kind:"string",summary:"Qdrant API key (empty if running unauthenticated)."},{key:"lancedb_path",path:"vector_store.lancedb.path",kind:"string",summary:"LanceDB storage path (relative to pm root or absolute)."},{key:"id_prefix",path:"id_prefix",kind:"string",non_empty:true,summary:'Prefix for generated item IDs (e.g. "pm" produces pm-xxxx).'},{key:"author_default",path:"author_default",kind:"string",non_empty:true,summary:"Default author recorded on mutations when --author is not supplied."},{key:"agent_identity_probes_enabled",path:"agent_identity.probes_enabled",kind:"boolean",summary:"Allow privacy-bounded local harness provenance probes; no network or subprocess access is permitted."},{key:"mutation_guard_require_attributed_author",path:"mutation_guard.require_attributed_author",kind:"boolean",summary:"Reject mutations whose effective author resolves to unknown."},{key:"mutation_guard_secret_guard",path:"mutation_guard.secret_guard",kind:"string",choices:["off","advise","block"],summary:"Detect credential-shaped mutation content: off, advise, or block."},{key:"mutation_guard_stale_in_progress_hours",path:"mutation_guard.stale_in_progress_hours",kind:"integer",min:1,summary:"Age threshold for unclaimed in-progress work surfaced by health."},{key:"governance_duplicate_detection_mode",path:"governance.duplicate_detection_mode",kind:"string",choices:["off","advisory","strict"],summary:"Create/copy duplicate governance: off, advisory, or strict explicit-bypass enforcement."},{key:"governance_duplicate_detection_threshold",path:"governance.duplicate_detection_threshold",kind:"ratio",summary:"Minimum shared similarity score in [0, 1] for create/copy duplicate governance."},{key:"governance_duplicate_detection_limit",path:"governance.duplicate_detection_limit",kind:"integer",min:0,max:20,summary:"Maximum likely duplicates returned by create/copy governance (0-20)."},{key:"output_default_format",path:"output.default_format",kind:"string",choices:["toon","json"],summary:"Default output format for commands that support it: toon or json."},{key:"ux_deprecation_hints",path:"ux.deprecation_hints",kind:"boolean",summary:"Emit one stderr migration hint for deprecated command aliases."},{key:"locks_ttl_seconds",path:"locks.ttl_seconds",kind:"integer",min:1,summary:"Claim/lock time-to-live in seconds before a stale lock can be reclaimed."},{key:"locks_wait_ms",path:"locks.wait_ms",kind:"integer",min:0,summary:"Bounded jittered wait in milliseconds before a contended item mutation fails with lock_conflict; 0 fails fast. PM_LOCK_WAIT_MS overrides per invocation."},{key:"ids_token_length",path:"ids.token_length",kind:"integer",min:4,max:12,summary:"Random base36 token length for newly minted item ids (4-12, default 4). Raise it to shrink cross-branch id collision odds in concurrent multi-agent workflows (pm-pibw)."},{key:"checkpoints_retention_days",path:"checkpoints.retention_days",kind:"integer",min:1,summary:"Age in days above which pm gc --scope checkpoints prunes bulk-mutation rollback checkpoints."},{key:"schema_unknown_field_policy",path:"schema.unknown_field_policy",kind:"string",choices:["allow","warn","reject"],summary:"How item I/O handles metadata keys not in the field registry: allow, warn, or reject."},{key:"history_compact_policy_enabled",path:"history.compact_policy.enabled",kind:"boolean",summary:"Enable the history-compaction advisory: pm health warns on over-threshold streams."},{key:"history_compact_policy_max_entries",path:"history.compact_policy.max_entries",kind:"integer",min:1,summary:"Entry count above which a history stream is flagged (and the default pm history-compact --all-over threshold)."},{key:"history_compact_policy_trigger",path:"history.compact_policy.trigger",kind:"string",choices:["health_warn","auto"],summary:"History-compaction policy intent: health_warn (advisory only) or auto (scheduled sweeps expected)."}];const DESCRIPTOR_BY_KEY=new Map(NESTED_SETTING_DESCRIPTORS.flatMap(descriptor=>[[descriptor.key,descriptor],[descriptor.path.toLowerCase().replaceAll("-","_"),descriptor]]));function resolveNestedSettingDescriptor(raw){if(typeof raw!=="string"){return void 0}const normalized=raw.trim().toLowerCase().replaceAll("-","_");if(normalized.length===0){return void 0}return DESCRIPTOR_BY_KEY.get(normalized)}function parseNestedBooleanValue(descriptor,rawValue){const normalized=rawValue.trim().toLowerCase();if(normalized==="true"||normalized==="1"||normalized==="yes"||normalized==="on"){return{ok:true,parsed:{descriptor,value:true}}}if(normalized==="false"||normalized==="0"||normalized==="no"||normalized==="off"){return{ok:true,parsed:{descriptor,value:false}}}return{ok:false,error:{message:`Config set ${descriptor.key} requires a boolean value (true|false), got "${rawValue}"`}}}function parseNestedStringValue(descriptor,rawValue,trimmed){if(descriptor.non_empty===true&&trimmed.length===0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-empty value`}}}if(descriptor.choices&&!descriptor.choices.includes(trimmed)){return{ok:false,error:{message:`Config set ${descriptor.key} must be one of ${descriptor.choices.join("|")}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value:trimmed}}}function parseFiniteNestedNumber(descriptor,rawValue,trimmed){if(trimmed.length===0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-empty value`}}}const parsed=Number(trimmed);if(!Number.isFinite(parsed)){return{ok:false,error:{message:`Config set ${descriptor.key} requires a finite number, got "${rawValue}"`}}}return{ok:true,value:parsed}}function parseNestedIntegerValue(descriptor,rawValue,value){if(!Number.isInteger(value)||value<0){return{ok:false,error:{message:`Config set ${descriptor.key} requires a non-negative integer, got "${rawValue}"`}}}if(descriptor.min!==void 0&&value<descriptor.min){return{ok:false,error:{message:`Config set ${descriptor.key} requires an integer >= ${descriptor.min}, got "${rawValue}" (the runtime silently ignores 0 here and falls back to the default)`}}}if(descriptor.max!==void 0&&value>descriptor.max){return{ok:false,error:{message:`Config set ${descriptor.key} requires an integer <= ${descriptor.max}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedRatioValue(descriptor,rawValue,value){if(value<0||value>1){return{ok:false,error:{message:`Config set ${descriptor.key} requires a number in [0, 1], got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedNumberValue(descriptor,rawValue,value){if(descriptor.min!==void 0&&value<descriptor.min){return{ok:false,error:{message:`Config set ${descriptor.key} requires a number >= ${descriptor.min}, got "${rawValue}"`}}}return{ok:true,parsed:{descriptor,value}}}function parseNestedSettingValue(descriptor,rawValue){if(typeof rawValue!=="string"){return{ok:false,error:{message:`Config set ${descriptor.key} requires a string value`}}}const trimmed=rawValue.trim();if(descriptor.kind==="boolean"){return parseNestedBooleanValue(descriptor,rawValue)}if(descriptor.kind==="string"){return parseNestedStringValue(descriptor,rawValue,trimmed)}const parsed=parseFiniteNestedNumber(descriptor,rawValue,trimmed);if(!parsed.ok){return{ok:false,error:parsed.error}}if(descriptor.kind==="integer"){return parseNestedIntegerValue(descriptor,rawValue,parsed.value)}if(descriptor.kind==="ratio"){return parseNestedRatioValue(descriptor,rawValue,parsed.value)}return parseNestedNumberValue(descriptor,rawValue,parsed.value)}function readNestedSettingValue(settings,descriptor){const segments=descriptor.path.split(".");let cursor=settings;for(const segment of segments){if(typeof cursor!=="object"||cursor===null){return null}const property=Object.getOwnPropertyDescriptor(cursor,segment);if(!property||!Object.hasOwn(property,"value")){return null}cursor=property.value}if(typeof cursor==="string"||typeof cursor==="number"||typeof cursor==="boolean"){return cursor}return null}function writeNestedSettingValue(settings,descriptor,value){const segments=descriptor.path.split(".");if(segments.some(segment=>segment.length===0||["__proto__","constructor","prototype"].includes(segment))){throw new Error("Unsafe settings path")}let cursor=settings;for(let index=0;index<segments.length-1;index+=1){const segment=segments[index];const existing=Object.getOwnPropertyDescriptor(cursor,segment)?.value;if(typeof existing!=="object"||existing===null||Array.isArray(existing)){const next={};Object.defineProperty(cursor,segment,{value:next,writable:true,enumerable:true,configurable:true});cursor=next}else{cursor=existing}}const leafKey=segments[segments.length-1];const previous=Object.getOwnPropertyDescriptor(cursor,leafKey)?.value;if(previous===value){return false}Object.defineProperty(cursor,leafKey,{value,writable:true,enumerable:true,configurable:true});return true}export{NESTED_SETTING_DESCRIPTORS,parseNestedSettingValue,readNestedSettingValue,resolveNestedSettingDescriptor,writeNestedSettingValue};
|
|
2
2
|
//# sourceMappingURL=nested-settings.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="836da277-15e2-5b29-9b18-5b3227a8d247")}catch(e2){}})();const REMEDIATION_REGISTRY=Object.freeze([{code:"missing_directory",command:"pm init",summary:"Recreate missing tracker directories (pm init is idempotent and restores the scaffold)."},{code:"settings_read_fs_error",command:"pm config list --json",summary:"settings.json could not be read as a regular file and pm fell back to defaults; repair the reported path or permissions, then re-run."},{code:"settings_read_invalid_json",command:"pm config list --json",summary:"settings.json is not valid JSON and pm fell back to defaults; fix the syntax error in the reported path, then re-run."},{code:"settings_read_invalid_schema",command:"pm config list --json",summary:"settings.json failed schema validation and pm fell back to defaults; correct the reported key in the file, then re-run."},{code:"settings_read_merge_failed",command:"pm config list --json",summary:"Global/project settings could not be merged; reconcile the conflicting keys in the reported settings files."},{code:"settings:id_prefix_empty",command:"pm config list --json",summary:'id_prefix is empty; set a non-empty "id_prefix" in settings.json so generated item ids are well-formed.'},{code:"settings:locks_ttl_non_positive",command:"pm config list --json",summary:'locks.ttl_seconds must be positive; set a positive "locks.ttl_seconds" in settings.json.'},{code:"telemetry_state_invalid_json",command:"pm health --check-telemetry",summary:"Local telemetry state file is corrupt; pm recreates it on the next flush. Advisory only."},{code:"telemetry_queue_invalid_rows",command:"pm health --check-telemetry",summary:"The telemetry queue has unparseable rows; they are skipped on the next flush. Advisory only."},{code:"telemetry_queue_pending",command:"pm health --check-telemetry",summary:"Telemetry events are queued; they flush automatically on the next reachable command. Advisory only."},{code:"telemetry_queue_high_retries",command:"pm telemetry flush",summary:"Some queued telemetry events are near retry exhaustion; flush now and verify endpoint reachability before entries are dropped."},{code:"telemetry_endpoint_probe_failed",command:"pm health --check-telemetry",summary:"The telemetry endpoint is unreachable; events stay queued until it recovers. Advisory only."},{code:"telemetry_endpoint_probe_http_status",command:"pm health --check-telemetry",summary:"The telemetry endpoint returned a non-success status; events stay queued until it recovers. Advisory only."},{code:"telemetry_schema_version_behind",command:"pm health --check-telemetry",summary:"Client schema is behind server; upgrade pm-cli to emit the latest event shape."},{code:"telemetry_otel_export_failing",command:"pm health --check-telemetry",summary:"OTLP trace spans are queued but the traces endpoint export is failing; spans retry automatically on the next reachable command, or set PM_TELEMETRY_OTEL_DISABLED=1 to skip OTLP export. Advisory only."},{code:"integrity_item_unreadable",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file could not be read; restore or repair the file at the reported path."},{code:"integrity_item_parse_failed",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file failed to parse; fix the malformed item metadata at the reported path."},{code:"integrity_item_conflict_marker",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file contains Git conflict markers; resolve the <<<<<<< / >>>>>>> markers at the reported line."},{code:"integrity_history_unreadable",command:"pm history-repair <id>",summary:"A history stream could not be read; re-anchor the affected item's history chain."},{code:"integrity_history_invalid_json",command:"pm history-repair <id>",summary:"A history stream contains invalid JSON; re-anchor the affected item's history chain."},{code:"integrity_history_conflict_marker",command:"pm history-repair <id>",summary:"A history stream contains Git conflict markers; resolve the markers, then re-anchor the chain."},{code:"validate_storage_unreadable_items",command:"pm validate --check-storage-integrity --verbose-diagnostics",summary:"An on-disk item file cannot be parsed (for example a botched merge resolution with stale TOON count headers); repair or restore the file at the reported path \u2014 list commands silently skip it while pm get hard-errors."},{code:"validate_storage_duplicate_item_ids",command:"pm validate --check-storage-integrity --verbose-diagnostics",summary:"One item id is claimed by multiple item documents \u2014 usually two branches minting the same id for different items before merging (GH-600). Keep one document, recreate the other item under a fresh id (pm copy, then delete the colliding file), and consider raising ids.token_length for concurrent multi-agent work."},{code:"validate_storage_history_conflict_markers",command:"pm merge driver history <base> <ours> <theirs>",summary:"A history stream contains unresolved Git conflict markers; re-merge it with the pm history merge driver (or resolve the markers by hand), then run pm history-repair for the item."},{code:"validate_storage_unparseable_history",command:"pm history-repair <id>",summary:"A history stream's newest line is not valid JSONL; repair or restore the stream before further mutations."},{code:"validate_storage_resurrected_items",command:"pm delete <id>",summary:"A live item's newest history operation is a delete: a delete/modify merge silently resurrected it. Decide the winner \u2014 re-delete the item, or keep it and append a mutation documenting the revival."},{code:"validate_storage_unparseable_config",command:"pm merge driver json <base> <ours> <theirs>",summary:"settings.json or a schema file cannot be parsed, so pm silently falls back to defaults; re-merge it with the pm JSON merge driver or fix the file by hand, then rerun pm validate."},{code:"validate_merge_fence_drift",command:"pm merge install",summary:"The committed .gitattributes merge fence no longer matches the active schema's type folders or tracker JSONL stores; rerun pm merge install (and commit .gitattributes) so every tracker artifact keeps its field-aware merge driver."},{code:"validate_storage_tracked_runtime_cache_files",command:"git rm --cached -r -- <tracked-runtime-directories>",summary:"Clone-local tracker runtime artifacts are committed. Run the exact tracked_runtime_cache.remediation_command, commit the index-only removals and managed .gitignore fence, then rerun validation."},{code:"integrity_item_outdated_format_version",command:"pm validate --verbose-diagnostics",summary:"An item predates the current storage format version; a pm storage migration rewrites it. Use --verbose-diagnostics to list the affected items."},{code:"integrity_item_ahead_format_version",command:"npm install -g @unbrained/pm-cli@latest",summary:"An item was written by a newer pm format version than this runtime supports; upgrade pm to read and validate it safely."},{code:"tracked_runtime_cache_files",command:"git rm --cached -r -- <tracked-runtime-directories>",summary:"Clone-local tracker runtime artifacts are committed. Run the exact tracked_runtime_cache.remediation_command from the integrity check, commit the index-only removals, and keep the managed .gitignore fence."},{code:"merge_decisions_unreviewed",command:"pm merge reconcile --dry-run",summary:"Review the pending merge receipts, re-apply any intended discarded values, then run pm merge reconcile; lossy receipts require explicit --force acceptance."},{code:"merge_receipts_pending",command:"pm merge reconcile",summary:"A lossless merge receipt is still pending; run pm merge reconcile to settle it (optionally preview first with --dry-run) so a green health gate certifies receipt settlement, not only intact data."},{code:"merge_receipt_evidence_invalid",command:"pm merge report --include-reconciled --json",summary:"One or more receipt candidates failed bounded-file, schema, identity, or copy-consistency validation; inspect the report's privacy-safe source, receipt id, and reason before repairing only the named evidence."},{code:"merge_receipt_history_reference_missing",command:"pm merge reconcile --dry-run",summary:"Review the bounded coordinates and recover available evidence first; for exact pre-durable clone-local-only references, rerun with --force so pm appends an audited disposition and proves the health finding is cleared without rewriting history."},{code:"validate_merge_decisions_unreviewed",command:"pm merge reconcile --dry-run",summary:"Review the pending merge receipts before reconciliation; history-repair alone does not settle them, and lossy receipts require explicit --force acceptance."},{code:"history_drift_missing_stream",command:"pm history-repair <id>",summary:"The item has no history stream; re-anchor the chain to rebuild it (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_unreadable_stream",command:"pm history-repair <id>",summary:"The item's history stream is unreadable; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_hash_mismatch",command:"pm history-repair <id>",summary:"The item's content hash no longer matches its history; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_chain_mismatch",command:"pm history-repair <id>",summary:"The item's history chain is broken; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_version_skew",command:"npm install -g @unbrained/pm-cli@latest",summary:"A history stream declares an item hash version this runtime does not support; upgrade pm to verify the chain instead of re-anchoring it."},{code:"history_drift_merge_receipt",command:"pm merge reconcile",summary:"Canonical path, changed-field, and merged-value hash evidence attributes this drift to a pending receipt; run reconciliation (optionally preview first with --dry-run) instead of repairing history directly."},{code:"history_stream_over_compact_threshold",command:"pm history-compact <id>",summary:"The history stream exceeds the configured compaction threshold; compact it (pm history-compact --all-streams sweeps every over-threshold stream in one pass)."},{code:"history_unknown_author_events",command:'pm history-author-acknowledge --all-actionable --attributed-author "<principal>" --reviewer "<reviewer>" --reason "<evidence>"',summary:"Review the actionable coordinates, then record an append-only attribution disposition for the complete current set."},{code:"provenance_value_domain_invalid",command:"pm history-repair --all --normalize-provenance",summary:"Remove invalid bounded provenance observations from affected streams and append privacy-safe aggregate repair receipts."},{code:"validate_history_unknown_author_events",command:'pm history-author-acknowledge --all-actionable --attributed-author "<principal>" --reviewer "<reviewer>" --reason "<evidence>"',summary:"Review the actionable coordinates, then record an append-only attribution disposition for the complete current set."},{code:"locks_stale_count",command:"pm gc --scope locks",summary:"Stale item-claim locks (embedded ttl elapsed) can block mutations; sweep them \u2014 gc retains active and unparseable locks."},{code:"locks_unreadable",command:"pm gc --scope locks --dry-run",summary:"Some lock files could not be read; preview the sweep and inspect the unreadable files manually \u2014 gc never deletes what it cannot read."},{code:"extension_update_health_partial_coverage",command:"pm extension --adopt-all --project",summary:"Update-health coverage is partial because unmanaged extensions were skipped; adopt the existing installs into managed metadata so the update scan covers them (use --global for global-scope extensions, or pm package --adopt-all when working with packages)."},{code:"vectorization_stale_items_remaining",command:"pm health --refresh-vectors",summary:"Some items have stale embeddings; refresh vectors so semantic search results stay current."},{code:"vectorization_embedding_identity_changed",command:"pm reindex --mode semantic",summary:"Embedding provider/model changed since the last index; run a semantic reindex to rebuild vectors."},{code:"validate_metadata_missing_acceptance_criteria",command:'pm update <id> --acceptance-criteria "<criteria>"',summary:"Backfill the missing acceptance criteria on the reported item(s)."},{code:"validate_metadata_missing_estimate",command:'pm update <id> --estimate "<estimate>"',summary:"Backfill the missing estimate on the reported item(s)."},{code:"validate_metadata_missing_close_reason",command:'pm update <id> --close-reason "<reason>"',summary:"Backfill the missing close reason on the reported closed item(s)."},{code:"validate_metadata_missing_reviewer",command:'pm update <id> --reviewer "<name>"',summary:"Backfill the missing reviewer on the reported item(s)."},{code:"validate_metadata_missing_risk",command:'pm update <id> --risk "<level>"',summary:"Backfill the missing risk on the reported item(s)."},{code:"validate_metadata_missing_confidence",command:'pm update <id> --confidence "<level>"',summary:"Backfill the missing confidence on the reported item(s)."},{code:"validate_metadata_missing_sprint",command:'pm update <id> --sprint "<sprint>"',summary:"Backfill the missing sprint on the reported item(s)."},{code:"validate_metadata_missing_release",command:'pm update <id> --release "<release>"',summary:"Backfill the missing release on the reported item(s)."},{code:"validate_metadata_custom_profile_missing_required_fields",command:'pm config set metadata-required-fields --criterion "<field>"',summary:"Config-driven finding: the custom metadata profile has no required fields configured and falls back to core, so configure the fields rather than mutating items."},{code:"validate_metadata_duplicate_issue_codes",command:'pm update <id> --title "<distinct title>"',summary:"Two or more items share one logical issue code (GH-235); give each a distinct title so the derived code is unique, or close the redundant item with pm close <id> --duplicate-of <canonical-id> (closed-as-duplicate items are excluded from the check)."},{code:"validate_resolution_missing_fields",command:'pm update <id> --resolution "<how resolved>"',summary:"Backfill resolution / expected_result / actual_result on the reported closed item(s)."},{code:"validate_lifecycle_active_closure_like_metadata",command:"pm update <id> --unset <closure-like-field>",summary:"Clear the closure-like field the validator flags on this active item \u2014 the detail row names it (resolution / actual-result / blocked-reason) \u2014 or close the item if it is actually done."},{code:"validate_lifecycle_active_terminal_parent",command:"pm update <id> --parent <active-parent-id>",summary:"Reopen the terminal parent or move the active child under a non-terminal parent."},{code:"validate_lifecycle_stale_blockers",command:"pm update <id> --unset blocked-by --unset blocked-reason",summary:"Resolve the stale blocker the validator flags: clear blocked-by/blocked-reason when they linger on a non-blocked item or report a resolved blocker; if instead a blocked item is missing blocker context, add the context or move it out of a blocked status."},{code:"validate_lifecycle_dependency_cycles_error",command:"pm update <id> --dep-remove <dep-id>",summary:"Break the dependency cycle by removing one edge from the reported cycle."},{code:"validate_lifecycle_dependency_cycles",command:"pm update <id> --dep-remove <dep-id>",summary:"Break the dependency cycle by removing one edge from the reported cycle."},{code:"validate_hierarchy_parent_cycle_error",command:"pm update <id> --parent <other-id>",summary:"Break the parent-hierarchy cycle by reparenting one item in the reported cycle to a non-cyclic parent (or clear it with pm update <id> --unset parent)."},{code:"validate_hierarchy_parent_cycle",command:"pm update <id> --parent <other-id>",summary:"Break the parent-hierarchy cycle by reparenting one item in the reported cycle to a non-cyclic parent (or clear it with pm update <id> --unset parent)."},{code:"validate_files_missing_linked_paths",command:"pm <files|docs> <id> --remove <path>",summary:"The check spans both item.files and item.docs under one code: restore the missing linked artifact, or unlink it with pm files (linked file) or pm docs (linked doc)."},{code:"validate_files_orphaned_paths",command:"pm <files|docs> <id> --add <path>",summary:"Link the orphaned artifact with pm files (file) or pm docs (doc), or remove it from the workspace."},{code:"validate_files_tracked_all_strict_forces_pm_internals",command:"pm validate --check-files --include-pm-internals",summary:"tracked-all-strict scan flagged pm internals; re-run with --include-pm-internals or a softer --scan-mode."},{code:"validate_history_drift_missing_streams",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items missing a history stream."},{code:"validate_history_drift_unreadable_streams",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items with an unreadable history stream."},{code:"validate_history_drift_hash_mismatches",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items whose content hash drifted."},{code:"validate_history_drift_chain_mismatches",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items with a broken history chain."},{code:"validate_history_drift_version_skews",command:"npm install -g @unbrained/pm-cli@latest",summary:"One or more history streams declare an item hash version this runtime does not support; upgrade pm to verify the chains instead of re-anchoring them."},{code:"validate_command_references_stale_pm_ids",command:'pm update <id> --replace-tests --test "command=<corrected-command>" [--test ...]',summary:"Correct the stale pm-ID inside the item's linked test command (the check scans tests[].command, not the body). --replace-tests overwrites the entire tests list, so re-include the item's other linked tests in the same call."},{code:"validate_format_version_outdated_items",command:"pm validate --verbose-diagnostics",summary:"One or more items predate the current storage format version; a pm storage migration rewrites them. Use --verbose-diagnostics to list the affected items."},{code:"validate_format_version_ahead_items",command:"npm install -g @unbrained/pm-cli@latest",summary:"One or more items were written by a newer pm format version than this runtime supports; upgrade pm to read and validate them safely."}]);function resolveRemediation(warning){if(typeof warning!=="string"){return void 0}const normalized=warning.trim();for(const entry of REMEDIATION_REGISTRY){if(normalized===entry.code||normalized.startsWith(`${entry.code}:`)){return entry}}return void 0}function buildRemediationMap(warnings){const map={};for(const warning of warnings){const entry=resolveRemediation(warning);if(entry!==void 0&&!Object.prototype.hasOwnProperty.call(map,entry.code)){map[entry.code]=entry.command}}return map}function buildRemediationCommands(warnings){return Object.values(buildRemediationMap(warnings))}export{REMEDIATION_REGISTRY,buildRemediationCommands,buildRemediationMap,resolveRemediation};
|
|
1
|
+
!(function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4883f097-fa29-5b45-9d50-94e987465a0e")}catch(e2){}})();const REMEDIATION_REGISTRY=Object.freeze([{code:"missing_directory",command:"pm init",summary:"Recreate missing tracker directories (pm init is idempotent and restores the scaffold)."},{code:"settings_read_fs_error",command:"pm config list --json",summary:"settings.json could not be read as a regular file and pm fell back to defaults; repair the reported path or permissions, then re-run."},{code:"settings_read_invalid_json",command:"pm config list --json",summary:"settings.json is not valid JSON and pm fell back to defaults; fix the syntax error in the reported path, then re-run."},{code:"settings_read_invalid_schema",command:"pm config list --json",summary:"settings.json failed schema validation and pm fell back to defaults; correct the reported key in the file, then re-run."},{code:"settings_read_merge_failed",command:"pm config list --json",summary:"Global/project settings could not be merged; reconcile the conflicting keys in the reported settings files."},{code:"settings:id_prefix_empty",command:"pm config list --json",summary:'id_prefix is empty; set a non-empty "id_prefix" in settings.json so generated item ids are well-formed.'},{code:"settings:locks_ttl_non_positive",command:"pm config list --json",summary:'locks.ttl_seconds must be positive; set a positive "locks.ttl_seconds" in settings.json.'},{code:"telemetry_state_invalid_json",command:"pm health --check-telemetry",summary:"Local telemetry state file is corrupt; pm recreates it on the next flush. Advisory only."},{code:"telemetry_queue_invalid_rows",command:"pm health --check-telemetry",summary:"The telemetry queue has unparseable rows; they are skipped on the next flush. Advisory only."},{code:"telemetry_queue_pending",command:"pm health --check-telemetry",summary:"Telemetry events are queued; they flush automatically on the next reachable command. Advisory only."},{code:"telemetry_queue_high_retries",command:"pm telemetry flush",summary:"Some queued telemetry events are near retry exhaustion; flush now and verify endpoint reachability before entries are dropped."},{code:"telemetry_endpoint_probe_failed",command:"pm health --check-telemetry",summary:"The telemetry endpoint is unreachable; events stay queued until it recovers. Advisory only."},{code:"telemetry_endpoint_probe_http_status",command:"pm health --check-telemetry",summary:"The telemetry endpoint returned a non-success status; events stay queued until it recovers. Advisory only."},{code:"telemetry_schema_version_behind",command:"pm health --check-telemetry",summary:"Client schema is behind server; upgrade pm-cli to emit the latest event shape."},{code:"telemetry_otel_export_failing",command:"pm health --check-telemetry",summary:"OTLP trace spans are queued but the traces endpoint export is failing; spans retry automatically on the next reachable command, or set PM_TELEMETRY_OTEL_DISABLED=1 to skip OTLP export. Advisory only."},{code:"merge_driver_configuration_missing",command:"pm merge install",summary:"Install the clone-local Git drivers required by the tracker merge fence."},{code:"merge_driver_configuration_drift",command:"pm merge install",summary:"Reinstall clone-local Git drivers after runtime or package paths change."},{code:"validate_merge_driver_configuration",command:"pm merge install",summary:"Restore missing or drifted clone-local Git merge driver commands."},{code:"integrity_item_unreadable",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file could not be read; restore or repair the file at the reported path."},{code:"integrity_item_parse_failed",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file failed to parse; fix the malformed item metadata at the reported path."},{code:"integrity_item_conflict_marker",command:"pm validate --check-files --verbose-diagnostics",summary:"An item file contains Git conflict markers; resolve the <<<<<<< / >>>>>>> markers at the reported line."},{code:"integrity_history_unreadable",command:"pm history-repair <id>",summary:"A history stream could not be read; re-anchor the affected item's history chain."},{code:"integrity_history_invalid_json",command:"pm history-repair <id>",summary:"A history stream contains invalid JSON; re-anchor the affected item's history chain."},{code:"integrity_history_conflict_marker",command:"pm history-repair <id>",summary:"A history stream contains Git conflict markers; resolve the markers, then re-anchor the chain."},{code:"validate_storage_unreadable_items",command:"pm validate --check-storage-integrity --verbose-diagnostics",summary:"An on-disk item file cannot be parsed (for example a botched merge resolution with stale TOON count headers); repair or restore the file at the reported path \u2014 list commands silently skip it while pm get hard-errors."},{code:"validate_storage_duplicate_item_ids",command:"pm validate --check-storage-integrity --verbose-diagnostics",summary:"One item id is claimed by multiple item documents \u2014 usually two branches minting the same id for different items before merging (GH-600). Keep one document, recreate the other item under a fresh id (pm copy, then delete the colliding file), and consider raising ids.token_length for concurrent multi-agent work."},{code:"validate_storage_history_conflict_markers",command:"pm merge driver history <base> <ours> <theirs>",summary:"A history stream contains unresolved Git conflict markers; re-merge it with the pm history merge driver (or resolve the markers by hand), then run pm history-repair for the item."},{code:"validate_storage_unparseable_history",command:"pm history-repair <id>",summary:"A history stream's newest line is not valid JSONL; repair or restore the stream before further mutations."},{code:"validate_storage_resurrected_items",command:"pm delete <id>",summary:"A live item's newest history operation is a delete: a delete/modify merge silently resurrected it. Decide the winner \u2014 re-delete the item, or keep it and append a mutation documenting the revival."},{code:"validate_storage_unparseable_config",command:"pm merge driver json <base> <ours> <theirs>",summary:"settings.json or a schema file cannot be parsed, so pm silently falls back to defaults; re-merge it with the pm JSON merge driver or fix the file by hand, then rerun pm validate."},{code:"validate_merge_fence_drift",command:"pm merge install",summary:"The committed .gitattributes merge fence no longer matches the active schema's type folders or tracker JSONL stores; rerun pm merge install (and commit .gitattributes) so every tracker artifact keeps its field-aware merge driver."},{code:"validate_storage_tracked_runtime_cache_files",command:"git rm --cached -r -- <tracked-runtime-directories>",summary:"Clone-local tracker runtime artifacts are committed. Run the exact tracked_runtime_cache.remediation_command, commit the index-only removals and managed .gitignore fence, then rerun validation."},{code:"integrity_item_outdated_format_version",command:"pm validate --verbose-diagnostics",summary:"An item predates the current storage format version; a pm storage migration rewrites it. Use --verbose-diagnostics to list the affected items."},{code:"integrity_item_ahead_format_version",command:"npm install -g @unbrained/pm-cli@latest",summary:"An item was written by a newer pm format version than this runtime supports; upgrade pm to read and validate it safely."},{code:"tracked_runtime_cache_files",command:"git rm --cached -r -- <tracked-runtime-directories>",summary:"Clone-local tracker runtime artifacts are committed. Run the exact tracked_runtime_cache.remediation_command from the integrity check, commit the index-only removals, and keep the managed .gitignore fence."},{code:"merge_decisions_unreviewed",command:"pm merge reconcile --dry-run",summary:"Review the pending merge receipts, re-apply any intended discarded values, then run pm merge reconcile; lossy receipts require explicit --force acceptance."},{code:"merge_receipts_pending",command:"pm merge reconcile",summary:"A lossless merge receipt is still pending; run pm merge reconcile to settle it (optionally preview first with --dry-run) so a green health gate certifies receipt settlement, not only intact data."},{code:"merge_receipt_evidence_invalid",command:"pm merge report --include-reconciled --json",summary:"One or more receipt candidates failed bounded-file, schema, identity, or copy-consistency validation; inspect the report's privacy-safe source, receipt id, and reason before repairing only the named evidence."},{code:"merge_receipt_history_reference_missing",command:"pm merge reconcile --dry-run",summary:"Review the bounded coordinates and recover available evidence first; for exact pre-durable clone-local-only references, rerun with --force so pm appends an audited disposition and proves the health finding is cleared without rewriting history."},{code:"validate_merge_decisions_unreviewed",command:"pm merge reconcile --dry-run",summary:"Review the pending merge receipts before reconciliation; history-repair alone does not settle them, and lossy receipts require explicit --force acceptance."},{code:"history_drift_missing_stream",command:"pm history-repair <id>",summary:"The item has no history stream; re-anchor the chain to rebuild it (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_unreadable_stream",command:"pm history-repair <id>",summary:"The item's history stream is unreadable; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_hash_mismatch",command:"pm history-repair <id>",summary:"The item's content hash no longer matches its history; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_chain_mismatch",command:"pm history-repair <id>",summary:"The item's history chain is broken; re-anchor the chain (pm history-repair --all repairs every drifted stream in one pass)."},{code:"history_drift_version_skew",command:"npm install -g @unbrained/pm-cli@latest",summary:"A history stream declares an item hash version this runtime does not support; upgrade pm to verify the chain instead of re-anchoring it."},{code:"history_drift_merge_receipt",command:"pm merge reconcile",summary:"Canonical path, changed-field, and merged-value hash evidence attributes this drift to a pending receipt; run reconciliation (optionally preview first with --dry-run) instead of repairing history directly."},{code:"history_stream_over_compact_threshold",command:"pm history-compact <id>",summary:"The history stream exceeds the configured compaction threshold; compact it (pm history-compact --all-streams sweeps every over-threshold stream in one pass)."},{code:"history_unknown_author_events",command:'pm history-author-acknowledge --all-actionable --attributed-author "<principal>" --reviewer "<reviewer>" --reason "<evidence>"',summary:"Review the actionable coordinates, then record an append-only attribution disposition for the complete current set."},{code:"provenance_value_domain_invalid",command:"pm history-repair --all --normalize-provenance",summary:"Remove invalid bounded provenance observations from affected streams and append privacy-safe aggregate repair receipts."},{code:"validate_history_unknown_author_events",command:'pm history-author-acknowledge --all-actionable --attributed-author "<principal>" --reviewer "<reviewer>" --reason "<evidence>"',summary:"Review the actionable coordinates, then record an append-only attribution disposition for the complete current set."},{code:"locks_stale_count",command:"pm gc --scope locks",summary:"Stale item-claim locks (embedded ttl elapsed) can block mutations; sweep them \u2014 gc retains active and unparseable locks."},{code:"locks_unreadable",command:"pm gc --scope locks --dry-run",summary:"Some lock files could not be read; preview the sweep and inspect the unreadable files manually \u2014 gc never deletes what it cannot read."},{code:"extension_update_health_partial_coverage",command:"pm extension --adopt-all --project",summary:"Update-health coverage is partial because unmanaged extensions were skipped; adopt the existing installs into managed metadata so the update scan covers them (use --global for global-scope extensions, or pm package --adopt-all when working with packages)."},{code:"vectorization_stale_items_remaining",command:"pm health --refresh-vectors",summary:"Some items have stale embeddings; refresh vectors so semantic search results stay current."},{code:"vectorization_embedding_identity_changed",command:"pm reindex --mode semantic",summary:"Embedding provider/model changed since the last index; run a semantic reindex to rebuild vectors."},{code:"validate_metadata_missing_acceptance_criteria",command:'pm update <id> --acceptance-criteria "<criteria>"',summary:"Backfill the missing acceptance criteria on the reported item(s)."},{code:"validate_metadata_missing_estimate",command:'pm update <id> --estimate "<estimate>"',summary:"Backfill the missing estimate on the reported item(s)."},{code:"validate_metadata_missing_close_reason",command:'pm update <id> --close-reason "<reason>"',summary:"Backfill the missing close reason on the reported closed item(s)."},{code:"validate_metadata_missing_reviewer",command:'pm update <id> --reviewer "<name>"',summary:"Backfill the missing reviewer on the reported item(s)."},{code:"validate_metadata_missing_risk",command:'pm update <id> --risk "<level>"',summary:"Backfill the missing risk on the reported item(s)."},{code:"validate_metadata_missing_confidence",command:'pm update <id> --confidence "<level>"',summary:"Backfill the missing confidence on the reported item(s)."},{code:"validate_metadata_missing_sprint",command:'pm update <id> --sprint "<sprint>"',summary:"Backfill the missing sprint on the reported item(s)."},{code:"validate_metadata_missing_release",command:'pm update <id> --release "<release>"',summary:"Backfill the missing release on the reported item(s)."},{code:"validate_metadata_custom_profile_missing_required_fields",command:'pm config set metadata-required-fields --criterion "<field>"',summary:"Config-driven finding: the custom metadata profile has no required fields configured and falls back to core, so configure the fields rather than mutating items."},{code:"validate_metadata_duplicate_issue_codes",command:'pm update <id> --title "<distinct title>"',summary:"Two or more items share one logical issue code (GH-235); give each a distinct title so the derived code is unique, or close the redundant item with pm close <id> --duplicate-of <canonical-id> (closed-as-duplicate items are excluded from the check)."},{code:"validate_resolution_missing_fields",command:'pm update <id> --resolution "<how resolved>"',summary:"Backfill resolution / expected_result / actual_result on the reported closed item(s)."},{code:"validate_lifecycle_active_closure_like_metadata",command:"pm update <id> --unset <closure-like-field>",summary:"Clear the closure-like field the validator flags on this active item \u2014 the detail row names it (resolution / actual-result / blocked-reason) \u2014 or close the item if it is actually done."},{code:"validate_lifecycle_active_terminal_parent",command:"pm update <id> --parent <active-parent-id>",summary:"Reopen the terminal parent or move the active child under a non-terminal parent."},{code:"validate_lifecycle_stale_blockers",command:"pm update <id> --unset blocked-by --unset blocked-reason",summary:"Resolve the stale blocker the validator flags: clear blocked-by/blocked-reason when they linger on a non-blocked item or report a resolved blocker; if instead a blocked item is missing blocker context, add the context or move it out of a blocked status."},{code:"validate_lifecycle_dependency_cycles_error",command:"pm update <id> --dep-remove <dep-id>",summary:"Break the dependency cycle by removing one edge from the reported cycle."},{code:"validate_lifecycle_dependency_cycles",command:"pm update <id> --dep-remove <dep-id>",summary:"Break the dependency cycle by removing one edge from the reported cycle."},{code:"validate_hierarchy_parent_cycle_error",command:"pm update <id> --parent <other-id>",summary:"Break the parent-hierarchy cycle by reparenting one item in the reported cycle to a non-cyclic parent (or clear it with pm update <id> --unset parent)."},{code:"validate_hierarchy_parent_cycle",command:"pm update <id> --parent <other-id>",summary:"Break the parent-hierarchy cycle by reparenting one item in the reported cycle to a non-cyclic parent (or clear it with pm update <id> --unset parent)."},{code:"validate_files_missing_linked_paths",command:"pm <files|docs> <id> --remove <path>",summary:"The check spans both item.files and item.docs under one code: restore the missing linked artifact, or unlink it with pm files (linked file) or pm docs (linked doc)."},{code:"validate_files_orphaned_paths",command:"pm <files|docs> <id> --add <path>",summary:"Link the orphaned artifact with pm files (file) or pm docs (doc), or remove it from the workspace."},{code:"validate_files_tracked_all_strict_forces_pm_internals",command:"pm validate --check-files --include-pm-internals",summary:"tracked-all-strict scan flagged pm internals; re-run with --include-pm-internals or a softer --scan-mode."},{code:"validate_history_drift_missing_streams",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items missing a history stream."},{code:"validate_history_drift_unreadable_streams",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items with an unreadable history stream."},{code:"validate_history_drift_hash_mismatches",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items whose content hash drifted."},{code:"validate_history_drift_chain_mismatches",command:"pm history-repair <id>",summary:"Re-anchor the history chains of the items with a broken history chain."},{code:"validate_history_drift_version_skews",command:"npm install -g @unbrained/pm-cli@latest",summary:"One or more history streams declare an item hash version this runtime does not support; upgrade pm to verify the chains instead of re-anchoring them."},{code:"validate_command_references_stale_pm_ids",command:'pm update <id> --replace-tests --test "command=<corrected-command>" [--test ...]',summary:"Correct the stale pm-ID inside the item's linked test command (the check scans tests[].command, not the body). --replace-tests overwrites the entire tests list, so re-include the item's other linked tests in the same call."},{code:"validate_format_version_outdated_items",command:"pm validate --verbose-diagnostics",summary:"One or more items predate the current storage format version; a pm storage migration rewrites them. Use --verbose-diagnostics to list the affected items."},{code:"validate_format_version_ahead_items",command:"npm install -g @unbrained/pm-cli@latest",summary:"One or more items were written by a newer pm format version than this runtime supports; upgrade pm to read and validate them safely."}]);function resolveRemediation(warning){if(typeof warning!=="string"){return void 0}const normalized=warning.trim();for(const entry of REMEDIATION_REGISTRY){if(normalized===entry.code||normalized.startsWith(`${entry.code}:`)){return entry}}return void 0}function buildRemediationMap(warnings){const map={};for(const warning of warnings){const entry=resolveRemediation(warning);if(entry!==void 0&&!Object.prototype.hasOwnProperty.call(map,entry.code)){map[entry.code]=entry.command}}return map}function buildRemediationCommands(warnings){return Object.values(buildRemediationMap(warnings))}export{REMEDIATION_REGISTRY,buildRemediationCommands,buildRemediationMap,resolveRemediation};
|
|
2
2
|
//# sourceMappingURL=remediation.js.map
|