@remnic/core 10.0.34 → 10.0.36

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.
Files changed (94) hide show
  1. package/dist/access-admin-ops-surface.js +5 -5
  2. package/dist/access-authorization-probe.js +6 -6
  3. package/dist/access-boundary.js +5 -5
  4. package/dist/access-cli.js +23 -23
  5. package/dist/access-extraction-force-flush.d.ts.map +1 -1
  6. package/dist/access-extraction-force-flush.js +5 -5
  7. package/dist/access-http-briefing.js +6 -6
  8. package/dist/access-http-query.js +5 -5
  9. package/dist/access-http.js +17 -17
  10. package/dist/access-identity-continuity-surface.js +5 -5
  11. package/dist/access-lcm-surface.js +5 -5
  12. package/dist/access-mcp.js +12 -12
  13. package/dist/access-namespace-preflight.js +5 -5
  14. package/dist/access-observe-write-surface.js +5 -5
  15. package/dist/access-operations-batch.js +6 -6
  16. package/dist/access-operations.js +11 -11
  17. package/dist/access-recall-concurrency.js +5 -5
  18. package/dist/access-recall-response.js +5 -5
  19. package/dist/access-recall-surface.js +5 -5
  20. package/dist/access-service.js +5 -5
  21. package/dist/access-surface-catalog.js +7 -7
  22. package/dist/calibration.js +3 -3
  23. package/dist/{chunk-GSN77SST.js → chunk-4YYIZ475.js} +10 -5
  24. package/dist/{chunk-GSN77SST.js.map → chunk-4YYIZ475.js.map} +1 -1
  25. package/dist/{chunk-YXNVNMHB.js → chunk-5XTSIZ3L.js} +3 -3
  26. package/dist/{chunk-JUXOTY6J.js → chunk-5YQXWVCP.js} +9 -2
  27. package/dist/chunk-5YQXWVCP.js.map +1 -0
  28. package/dist/{chunk-GK56GNNS.js → chunk-65JLKIVA.js} +2 -2
  29. package/dist/{chunk-SQ554O3K.js → chunk-74AY3S7U.js} +3 -3
  30. package/dist/{chunk-JPQCHBTK.js → chunk-AD3ZB72W.js} +2 -2
  31. package/dist/{chunk-JKJTXIDI.js → chunk-F2JLBXMG.js} +2 -2
  32. package/dist/{chunk-D75ET36O.js → chunk-FL6SLVAJ.js} +2 -2
  33. package/dist/{chunk-IV2HEXK3.js → chunk-IKCGNTGS.js} +2 -2
  34. package/dist/{chunk-KRH4KQGP.js → chunk-KQUN4RSX.js} +8 -8
  35. package/dist/{chunk-SGLEHJ4P.js → chunk-LJSBF6PW.js} +2 -2
  36. package/dist/{chunk-66NLI5NK.js → chunk-NBH7IRME.js} +4 -4
  37. package/dist/{chunk-DMLCETTO.js → chunk-NDJ42GKB.js} +2 -2
  38. package/dist/{chunk-WRFXSJGW.js → chunk-NIANATGL.js} +2 -2
  39. package/dist/{chunk-6WR4UGJN.js → chunk-OHMGR6QN.js} +2 -2
  40. package/dist/{chunk-UTMVZPAV.js → chunk-PDYP7SUC.js} +2 -2
  41. package/dist/{chunk-TVM47JQB.js → chunk-RYUSWAAU.js} +1 -1
  42. package/dist/{chunk-MLED254J.js → chunk-T6OZW2WR.js} +8 -2
  43. package/dist/chunk-T6OZW2WR.js.map +1 -0
  44. package/dist/{chunk-ZRU7636R.js → chunk-V3JZZJ2E.js} +3 -3
  45. package/dist/{chunk-FOTV6L22.js → chunk-VKB2FGNW.js} +9 -9
  46. package/dist/{chunk-MWJ25UMW.js → chunk-X544TW54.js} +2 -2
  47. package/dist/{chunk-YIMDCBNV.js → chunk-XO4HOBM2.js} +2 -2
  48. package/dist/{chunk-QJFNB6Z5.js → chunk-ZSAQSLKL.js} +2 -2
  49. package/dist/cli.js +18 -18
  50. package/dist/compounding/engine.js +1 -1
  51. package/dist/external-wiki-access.js +6 -6
  52. package/dist/extraction.js +4 -4
  53. package/dist/index.js +23 -23
  54. package/dist/local-llm-helpers.d.ts.map +1 -1
  55. package/dist/local-llm-helpers.js +2 -1
  56. package/dist/local-llm-transport.d.ts +1 -0
  57. package/dist/local-llm-transport.d.ts.map +1 -1
  58. package/dist/local-llm-transport.js +5 -3
  59. package/dist/local-llm.js +3 -3
  60. package/dist/memory-browse-operations.js +6 -6
  61. package/dist/orchestration/maintenance.js +5 -5
  62. package/dist/orchestrator.js +23 -23
  63. package/dist/recall-navigation-operations.js +6 -6
  64. package/dist/recall-navigation.js +5 -5
  65. package/dist/summarizer.js +4 -4
  66. package/dist/support-passport/index.js +8 -8
  67. package/package.json +2 -2
  68. package/src/access-extraction-force-flush.ts +9 -2
  69. package/src/access-service-observe-lcm-parity.test.ts +5 -1
  70. package/src/local-llm-headers-timeout.test.ts +64 -0
  71. package/src/local-llm-helpers.ts +6 -1
  72. package/src/local-llm-transport.ts +14 -1
  73. package/dist/chunk-JUXOTY6J.js.map +0 -1
  74. package/dist/chunk-MLED254J.js.map +0 -1
  75. /package/dist/{chunk-YXNVNMHB.js.map → chunk-5XTSIZ3L.js.map} +0 -0
  76. /package/dist/{chunk-GK56GNNS.js.map → chunk-65JLKIVA.js.map} +0 -0
  77. /package/dist/{chunk-SQ554O3K.js.map → chunk-74AY3S7U.js.map} +0 -0
  78. /package/dist/{chunk-JPQCHBTK.js.map → chunk-AD3ZB72W.js.map} +0 -0
  79. /package/dist/{chunk-JKJTXIDI.js.map → chunk-F2JLBXMG.js.map} +0 -0
  80. /package/dist/{chunk-D75ET36O.js.map → chunk-FL6SLVAJ.js.map} +0 -0
  81. /package/dist/{chunk-IV2HEXK3.js.map → chunk-IKCGNTGS.js.map} +0 -0
  82. /package/dist/{chunk-KRH4KQGP.js.map → chunk-KQUN4RSX.js.map} +0 -0
  83. /package/dist/{chunk-SGLEHJ4P.js.map → chunk-LJSBF6PW.js.map} +0 -0
  84. /package/dist/{chunk-66NLI5NK.js.map → chunk-NBH7IRME.js.map} +0 -0
  85. /package/dist/{chunk-DMLCETTO.js.map → chunk-NDJ42GKB.js.map} +0 -0
  86. /package/dist/{chunk-WRFXSJGW.js.map → chunk-NIANATGL.js.map} +0 -0
  87. /package/dist/{chunk-6WR4UGJN.js.map → chunk-OHMGR6QN.js.map} +0 -0
  88. /package/dist/{chunk-UTMVZPAV.js.map → chunk-PDYP7SUC.js.map} +0 -0
  89. /package/dist/{chunk-TVM47JQB.js.map → chunk-RYUSWAAU.js.map} +0 -0
  90. /package/dist/{chunk-ZRU7636R.js.map → chunk-V3JZZJ2E.js.map} +0 -0
  91. /package/dist/{chunk-FOTV6L22.js.map → chunk-VKB2FGNW.js.map} +0 -0
  92. /package/dist/{chunk-MWJ25UMW.js.map → chunk-X544TW54.js.map} +0 -0
  93. /package/dist/{chunk-YIMDCBNV.js.map → chunk-XO4HOBM2.js.map} +0 -0
  94. /package/dist/{chunk-QJFNB6Z5.js.map → chunk-ZSAQSLKL.js.map} +0 -0
@@ -12,13 +12,13 @@ import {
12
12
  } from "./chunk-M3GKSCFN.js";
13
13
  import {
14
14
  externalWikiSearchOperation
15
- } from "./chunk-QJFNB6Z5.js";
15
+ } from "./chunk-ZSAQSLKL.js";
16
16
  import {
17
17
  DECISION_SUBCOMMANDS,
18
18
  DELTA_SUBCOMMANDS,
19
19
  defineOperation,
20
20
  isCodegraphToolName
21
- } from "./chunk-GSN77SST.js";
21
+ } from "./chunk-4YYIZ475.js";
22
22
  import {
23
23
  CorrectionContractError
24
24
  } from "./chunk-ETSJD5IV.js";
@@ -1916,4 +1916,4 @@ export {
1916
1916
  codegraphIngestTracesOperation,
1917
1917
  REGISTERED_OPERATIONS
1918
1918
  };
1919
- //# sourceMappingURL=chunk-YXNVNMHB.js.map
1919
+ //# sourceMappingURL=chunk-5XTSIZ3L.js.map
@@ -11,6 +11,12 @@ function isPlainPoolingAgent(dispatcher) {
11
11
  if (!ctor || typeof ctor !== "function") return false;
12
12
  return ctor.name === "Agent";
13
13
  }
14
+ var directProbeAgent = null;
15
+ function directProbeDispatcher() {
16
+ if (process.env.REMNIC_LOCAL_LLM_DIRECT !== "1") return void 0;
17
+ directProbeAgent ??= new Agent();
18
+ return directProbeAgent;
19
+ }
14
20
  var ChatTransport = class {
15
21
  agent = null;
16
22
  agentBudgetMs = null;
@@ -28,7 +34,7 @@ var ChatTransport = class {
28
34
  * because only the dispatcher's owner knows how to rebuild it.
29
35
  */
30
36
  dispatcherFor(budgetMs) {
31
- if (!isPlainPoolingAgent(getGlobalDispatcher())) {
37
+ if (!isPlainPoolingAgent(getGlobalDispatcher()) && process.env.REMNIC_LOCAL_LLM_DIRECT !== "1") {
32
38
  if (!this.warnedAboutCustomDispatcher) {
33
39
  this.warnedAboutCustomDispatcher = true;
34
40
  log.debug(
@@ -62,6 +68,7 @@ var ChatTransport = class {
62
68
  };
63
69
 
64
70
  export {
71
+ directProbeDispatcher,
65
72
  ChatTransport
66
73
  };
67
- //# sourceMappingURL=chunk-JUXOTY6J.js.map
74
+ //# sourceMappingURL=chunk-5YQXWVCP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/local-llm-transport.ts"],"sourcesContent":["import { Agent, getGlobalDispatcher } from \"undici\";\n\nimport { log } from \"./logger.js\";\n\n/**\n * Wire transport for local LLM chat completions.\n *\n * Split out of `local-llm.ts` so the client module keeps prompt and\n * response semantics while connection budgets live in one place.\n */\n\nexport interface ChatCompletionRequest {\n url: string;\n headers: Record<string, string>;\n body: string;\n signal: AbortSignal;\n /**\n * Ceiling for this endpoint, i.e. `localLlmTimeoutMs`. Sizes the\n * connection's inactivity budgets. Per-request budgets below the ceiling\n * stay enforced by `signal`.\n */\n budgetMs: number;\n}\n\n/**\n * Is this undici's stock pooling `Agent` — the transport we may widen?\n *\n * `instanceof` alone is not enough: Node's global fetch is backed by its\n * OWN bundled copy of undici, so the dispatcher parked on the well-known\n * global symbol is an `Agent` from a different copy than the one we import,\n * and cross-copy `instanceof` is false. Fall back to the constructor name,\n * which is stable across copies and still distinguishes `ProxyAgent` and\n * `MockAgent` from the stock pool.\n */\nfunction isPlainPoolingAgent(dispatcher: unknown): boolean {\n if (dispatcher instanceof Agent) return true;\n if (!dispatcher || typeof dispatcher !== \"object\") return false;\n const ctor = (dispatcher as { constructor?: unknown }).constructor;\n if (!ctor || typeof ctor !== \"function\") return false;\n return ctor.name === \"Agent\";\n}\n\n/**\n * REMNIC_LOCAL_LLM_DIRECT=1 declares that the local endpoint is reached\n * directly. Availability probes use this shared plain pool in that mode so they\n * take the same route as chat requests; `undefined` keeps the global dispatcher.\n */\nlet directProbeAgent: Agent | null = null;\nexport function directProbeDispatcher(): Agent | undefined {\n if (process.env.REMNIC_LOCAL_LLM_DIRECT !== \"1\") return undefined;\n directProbeAgent ??= new Agent();\n return directProbeAgent;\n}\n\n/**\n * Connection pool whose header/body inactivity budgets track the configured\n * request budget.\n *\n * Node's global fetch runs on undici, which applies a default\n * `headersTimeout` and `bodyTimeout` of 300s. A non-streaming completion\n * sends its response headers only once generation finishes, so any\n * completion slower than 300s died with a bare `fetch failed` no matter how\n * high `localLlmTimeoutMs` was set — the configured budget was dead letter\n * past five minutes (issue #2148).\n *\n * One pool per client is enough: it is keyed on the ceiling and rebuilt when\n * that changes.\n */\nexport class ChatTransport {\n private agent: Agent | null = null;\n private agentBudgetMs: number | null = null;\n private warnedAboutCustomDispatcher = false;\n\n /**\n * The widened pool, or `undefined` when the process installed its own\n * transport that we must not displace.\n *\n * A deployment can route the local endpoint through a process-wide\n * dispatcher — a `ProxyAgent` for an HTTP proxy, or a custom\n * connect/TLS/DNS dispatcher. Swapping in our own pool would bypass the\n * proxy entirely and break the request, so those are left alone. A\n * `MockAgent` is excluded by the same check, so test transports keep\n * working. The trade-off is explicit: on those setups the 300s cap stands,\n * because only the dispatcher's owner knows how to rebuild it.\n */\n dispatcherFor(budgetMs: number): Agent | undefined {\n // REMNIC_LOCAL_LLM_DIRECT=1: the operator declares the local endpoint is reached directly even though the process installed a global dispatcher for other traffic (an agent runtime's managed proxy). Without it the 300s header cap stands silently on such hosts and every completion slower than five minutes dies with `fetch failed`. Off by default so deployments that must use a proxy keep it.\n if (!isPlainPoolingAgent(getGlobalDispatcher()) && process.env.REMNIC_LOCAL_LLM_DIRECT !== \"1\") {\n if (!this.warnedAboutCustomDispatcher) {\n this.warnedAboutCustomDispatcher = true;\n log.debug(\n \"local LLM: a custom global dispatcher is installed; leaving it in place. \" +\n \"localLlmTimeoutMs above that dispatcher's headersTimeout will not take effect.\",\n );\n }\n return undefined;\n }\n const normalized = Number.isFinite(budgetMs) ? Math.max(0, budgetMs) : 0;\n if (this.agent && this.agentBudgetMs === normalized) return this.agent;\n void this.agent?.close().catch(() => {\n /* pool teardown is best-effort */\n });\n this.agent = new Agent({\n headersTimeout: normalized,\n bodyTimeout: normalized,\n });\n this.agentBudgetMs = normalized;\n return this.agent;\n }\n\n async post(request: ChatCompletionRequest): Promise<Response> {\n const init: RequestInit & { dispatcher?: Agent } = {\n method: \"POST\",\n headers: request.headers,\n body: request.body,\n signal: request.signal,\n };\n const dispatcher = this.dispatcherFor(request.budgetMs);\n if (dispatcher) init.dispatcher = dispatcher;\n return await fetch(request.url, init);\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,OAAO,2BAA2B;AAkC3C,SAAS,oBAAoB,YAA8B;AACzD,MAAI,sBAAsB,MAAO,QAAO;AACxC,MAAI,CAAC,cAAc,OAAO,eAAe,SAAU,QAAO;AAC1D,QAAM,OAAQ,WAAyC;AACvD,MAAI,CAAC,QAAQ,OAAO,SAAS,WAAY,QAAO;AAChD,SAAO,KAAK,SAAS;AACvB;AAOA,IAAI,mBAAiC;AAC9B,SAAS,wBAA2C;AACzD,MAAI,QAAQ,IAAI,4BAA4B,IAAK,QAAO;AACxD,uBAAqB,IAAI,MAAM;AAC/B,SAAO;AACT;AAgBO,IAAM,gBAAN,MAAoB;AAAA,EACjB,QAAsB;AAAA,EACtB,gBAA+B;AAAA,EAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EActC,cAAc,UAAqC;AAEjD,QAAI,CAAC,oBAAoB,oBAAoB,CAAC,KAAK,QAAQ,IAAI,4BAA4B,KAAK;AAC9F,UAAI,CAAC,KAAK,6BAA6B;AACrC,aAAK,8BAA8B;AACnC,YAAI;AAAA,UACF;AAAA,QAEF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,UAAM,aAAa,OAAO,SAAS,QAAQ,IAAI,KAAK,IAAI,GAAG,QAAQ,IAAI;AACvE,QAAI,KAAK,SAAS,KAAK,kBAAkB,WAAY,QAAO,KAAK;AACjE,SAAK,KAAK,OAAO,MAAM,EAAE,MAAM,MAAM;AAAA,IAErC,CAAC;AACD,SAAK,QAAQ,IAAI,MAAM;AAAA,MACrB,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACf,CAAC;AACD,SAAK,gBAAgB;AACrB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,KAAK,SAAmD;AAC5D,UAAM,OAA6C;AAAA,MACjD,QAAQ;AAAA,MACR,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,QAAQ,QAAQ;AAAA,IAClB;AACA,UAAM,aAAa,KAAK,cAAc,QAAQ,QAAQ;AACtD,QAAI,WAAY,MAAK,aAAa;AAClC,WAAO,MAAM,MAAM,QAAQ,KAAK,IAAI;AAAA,EACtC;AACF;","names":[]}
@@ -83,7 +83,7 @@ import {
83
83
  } from "./chunk-5MA7ZLPD.js";
84
84
  import {
85
85
  LocalLlmClient
86
- } from "./chunk-SQ554O3K.js";
86
+ } from "./chunk-74AY3S7U.js";
87
87
  import {
88
88
  normalizeProcedureSteps
89
89
  } from "./chunk-QDW3E4RD.js";
@@ -2439,4 +2439,4 @@ export {
2439
2439
  shouldEnableLocalExtractionThinking,
2440
2440
  ExtractionEngine
2441
2441
  };
2442
- //# sourceMappingURL=chunk-GK56GNNS.js.map
2442
+ //# sourceMappingURL=chunk-65JLKIVA.js.map
@@ -7,7 +7,7 @@ import {
7
7
  probeFetch,
8
8
  resolveUnavailableVerdict,
9
9
  waitForRetryBackoff
10
- } from "./chunk-MLED254J.js";
10
+ } from "./chunk-T6OZW2WR.js";
11
11
  import {
12
12
  LocalLlmRateLimitSession,
13
13
  resolveRateLimitSettings
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-U4LUIE6Y.js";
19
19
  import {
20
20
  ChatTransport
21
- } from "./chunk-JUXOTY6J.js";
21
+ } from "./chunk-5YQXWVCP.js";
22
22
  import {
23
23
  estimateTokenCount
24
24
  } from "./chunk-TOTT6S2V.js";
@@ -1115,4 +1115,4 @@ var LocalLlmClient = class _LocalLlmClient {
1115
1115
  export {
1116
1116
  LocalLlmClient
1117
1117
  };
1118
- //# sourceMappingURL=chunk-SQ554O3K.js.map
1118
+ //# sourceMappingURL=chunk-74AY3S7U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-GSN77SST.js";
3
+ } from "./chunk-4YYIZ475.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -92,4 +92,4 @@ defineOperation({
92
92
  };
93
93
  }
94
94
  });
95
- //# sourceMappingURL=chunk-JPQCHBTK.js.map
95
+ //# sourceMappingURL=chunk-AD3ZB72W.js.map
@@ -21,7 +21,7 @@ import {
21
21
  defineOperation,
22
22
  parseNamespacePreflightWriteOp,
23
23
  resolveAuthorizedNamespaceWritablePreflight
24
- } from "./chunk-GSN77SST.js";
24
+ } from "./chunk-4YYIZ475.js";
25
25
  import {
26
26
  parseSharedWriteOutputControls
27
27
  } from "./chunk-IFBSZGW3.js";
@@ -603,4 +603,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
603
603
  defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
604
604
  defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
605
605
  defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
606
- //# sourceMappingURL=chunk-JKJTXIDI.js.map
606
+ //# sourceMappingURL=chunk-F2JLBXMG.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-5MA7ZLPD.js";
12
12
  import {
13
13
  LocalLlmClient
14
- } from "./chunk-SQ554O3K.js";
14
+ } from "./chunk-74AY3S7U.js";
15
15
  import {
16
16
  completeBackgroundGeneration,
17
17
  parseBackgroundGenerationJson
@@ -798,4 +798,4 @@ export {
798
798
  summarizeHourlyStatus,
799
799
  HourlySummarizer
800
800
  };
801
- //# sourceMappingURL=chunk-D75ET36O.js.map
801
+ //# sourceMappingURL=chunk-FL6SLVAJ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
3
3
  SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES
4
- } from "./chunk-GSN77SST.js";
4
+ } from "./chunk-4YYIZ475.js";
5
5
  import {
6
6
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
7
7
  } from "./chunk-PWPIERBM.js";
@@ -343,4 +343,4 @@ export {
343
343
  parseSupportPassportModelJob,
344
344
  SupportPassportModelBridge
345
345
  };
346
- //# sourceMappingURL=chunk-IV2HEXK3.js.map
346
+ //# sourceMappingURL=chunk-IKCGNTGS.js.map
@@ -21,10 +21,10 @@ import {
21
21
  } from "./chunk-AHS3QEEA.js";
22
22
  import {
23
23
  handleSupportPassportOwnerHttp
24
- } from "./chunk-YIMDCBNV.js";
24
+ } from "./chunk-XO4HOBM2.js";
25
25
  import {
26
26
  buildSupportPassportPublicRequestHandler
27
- } from "./chunk-MWJ25UMW.js";
27
+ } from "./chunk-X544TW54.js";
28
28
  import {
29
29
  handleMcpGetSse
30
30
  } from "./chunk-SRT6SHVZ.js";
@@ -37,14 +37,14 @@ import {
37
37
  processChatMessage,
38
38
  sessionBelongsToPrincipal,
39
39
  subscribeChatTranscript
40
- } from "./chunk-DMLCETTO.js";
40
+ } from "./chunk-NDJ42GKB.js";
41
41
  import {
42
42
  handleRecallWhyHttpQuery,
43
43
  handleRecallXrayHttpQuery
44
44
  } from "./chunk-64IO6ZEE.js";
45
45
  import {
46
46
  RelayMissionStoreError
47
- } from "./chunk-YXNVNMHB.js";
47
+ } from "./chunk-5XTSIZ3L.js";
48
48
  import {
49
49
  executeResolution,
50
50
  isValidResolutionVerb
@@ -64,7 +64,7 @@ import {
64
64
  } from "./chunk-DFP37GUN.js";
65
65
  import {
66
66
  respondBriefingHttp
67
- } from "./chunk-SGLEHJ4P.js";
67
+ } from "./chunk-LJSBF6PW.js";
68
68
  import {
69
69
  maybeHandleLifecycleFlush
70
70
  } from "./chunk-2BPPGNAQ.js";
@@ -75,11 +75,11 @@ import {
75
75
  authorizationProbeNamespaces,
76
76
  authorizationProbeRequiresPrincipalNamespace,
77
77
  probeOperationAuthorization
78
- } from "./chunk-UTMVZPAV.js";
78
+ } from "./chunk-PDYP7SUC.js";
79
79
  import {
80
80
  getOperation,
81
81
  resolveQueryNamespaceWritablePreflight
82
- } from "./chunk-GSN77SST.js";
82
+ } from "./chunk-4YYIZ475.js";
83
83
  import {
84
84
  handleWhoKnowsHttpQuery
85
85
  } from "./chunk-BRZRP5WD.js";
@@ -3565,4 +3565,4 @@ export {
3565
3565
  resolveDefaultAdminConsolePublicDir,
3566
3566
  EngramAccessHttpServer
3567
3567
  };
3568
- //# sourceMappingURL=chunk-KRH4KQGP.js.map
3568
+ //# sourceMappingURL=chunk-KQUN4RSX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getOperation
3
- } from "./chunk-GSN77SST.js";
3
+ } from "./chunk-4YYIZ475.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -21,4 +21,4 @@ async function respondBriefingHttp(options) {
21
21
  export {
22
22
  respondBriefingHttp
23
23
  };
24
- //# sourceMappingURL=chunk-SGLEHJ4P.js.map
24
+ //# sourceMappingURL=chunk-LJSBF6PW.js.map
@@ -210,7 +210,7 @@ import {
210
210
  import {
211
211
  EngramAccessHttpServer,
212
212
  MeetingsInputError
213
- } from "./chunk-KRH4KQGP.js";
213
+ } from "./chunk-KQUN4RSX.js";
214
214
  import {
215
215
  WearablesInputError
216
216
  } from "./chunk-V7IZKJI3.js";
@@ -220,10 +220,10 @@ import {
220
220
  loadChatSession,
221
221
  processChatMessage,
222
222
  sessionBelongsToPrincipal
223
- } from "./chunk-DMLCETTO.js";
223
+ } from "./chunk-NDJ42GKB.js";
224
224
  import {
225
225
  EngramAccessService
226
- } from "./chunk-GSN77SST.js";
226
+ } from "./chunk-4YYIZ475.js";
227
227
  import {
228
228
  WorkStorage
229
229
  } from "./chunk-MPC7TYTZ.js";
@@ -10140,4 +10140,4 @@ export {
10140
10140
  listMemoryMarkdownFilePaths,
10141
10141
  registerCli
10142
10142
  };
10143
- //# sourceMappingURL=chunk-66NLI5NK.js.map
10143
+ //# sourceMappingURL=chunk-NBH7IRME.js.map
@@ -49,7 +49,7 @@ import {
49
49
  } from "./chunk-KIUVEMBI.js";
50
50
  import {
51
51
  getOperation
52
- } from "./chunk-GSN77SST.js";
52
+ } from "./chunk-4YYIZ475.js";
53
53
  import {
54
54
  WHO_KNOWS_MCP_TOOLS
55
55
  } from "./chunk-BRZRP5WD.js";
@@ -3986,4 +3986,4 @@ export {
3986
3986
  MCP_MIGRATED_OPERATIONS,
3987
3987
  EngramMcpServer
3988
3988
  };
3989
- //# sourceMappingURL=chunk-DMLCETTO.js.map
3989
+ //# sourceMappingURL=chunk-NDJ42GKB.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportCreateGrantRequestSchema,
3
3
  defineOperation
4
- } from "./chunk-GSN77SST.js";
4
+ } from "./chunk-4YYIZ475.js";
5
5
  import {
6
6
  SupportPassportCardCategorySchema,
7
7
  SupportPassportMemoryIdSchema,
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
220
220
  result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
221
221
  })
222
222
  });
223
- //# sourceMappingURL=chunk-WRFXSJGW.js.map
223
+ //# sourceMappingURL=chunk-NIANATGL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-GSN77SST.js";
3
+ } from "./chunk-4YYIZ475.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -71,4 +71,4 @@ defineOperation({
71
71
  })
72
72
  })
73
73
  });
74
- //# sourceMappingURL=chunk-6WR4UGJN.js.map
74
+ //# sourceMappingURL=chunk-OHMGR6QN.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getOperation,
4
4
  operationRequiresAuthorizedNamespace,
5
5
  operationUsesPrincipalNamespace
6
- } from "./chunk-GSN77SST.js";
6
+ } from "./chunk-4YYIZ475.js";
7
7
  import {
8
8
  assertOperationAuthorizationAllowed
9
9
  } from "./chunk-IG747LRN.js";
@@ -60,4 +60,4 @@ export {
60
60
  authorizationProbeNamespaces,
61
61
  authorizationProbeRequiresPrincipalNamespace
62
62
  };
63
- //# sourceMappingURL=chunk-UTMVZPAV.js.map
63
+ //# sourceMappingURL=chunk-PDYP7SUC.js.map
@@ -1869,4 +1869,4 @@ export {
1869
1869
  defaultTierMigrationCycleBudget,
1870
1870
  CompoundingEngine
1871
1871
  };
1872
- //# sourceMappingURL=chunk-TVM47JQB.js.map
1872
+ //# sourceMappingURL=chunk-RYUSWAAU.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ directProbeDispatcher
3
+ } from "./chunk-5YQXWVCP.js";
1
4
  import {
2
5
  log
3
6
  } from "./chunk-3WCASNQZ.js";
@@ -79,7 +82,10 @@ async function probeFetch(url, options) {
79
82
  const requestSignal = options.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;
80
83
  const timeout = setTimeout(() => controller.abort(), options.timeoutMs);
81
84
  try {
82
- const response = await fetch(url, { signal: requestSignal, headers: options.headers });
85
+ const init = { signal: requestSignal, headers: options.headers };
86
+ const dispatcher = directProbeDispatcher();
87
+ if (dispatcher) init.dispatcher = dispatcher;
88
+ const response = await fetch(url, init);
83
89
  clearTimeout(timeout);
84
90
  if (!response.ok) {
85
91
  log.debug(`local LLM probe: ${url} returned HTTP ${response.status}`);
@@ -155,4 +161,4 @@ export {
155
161
  probeFetch,
156
162
  SingleFlightProbe
157
163
  };
158
- //# sourceMappingURL=chunk-MLED254J.js.map
164
+ //# sourceMappingURL=chunk-T6OZW2WR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/local-llm-helpers.ts"],"sourcesContent":["import type { ResponseFormatJSONSchema } from \"openai/resources/shared\";\nimport type { Agent } from \"undici\";\nimport { log } from \"./logger.js\";\nimport { directProbeDispatcher } from \"./local-llm-transport.js\";\nimport type { LocalLlmRequestPriority } from \"./local-llm.js\";\n\nexport interface LocalLlmChatCompletionOptions {\n temperature?: number;\n maxTokens?: number;\n responseFormat?: { type: string } | ResponseFormatJSONSchema;\n timeoutMs?: number;\n operation?: string;\n forceDisableThinking?: boolean;\n disableThinking?: boolean;\n priority?: LocalLlmRequestPriority;\n signal?: AbortSignal;\n redactProviderErrors?: boolean;\n /** Per-request model; defaults to config.localLlmModel. */\n model?: string;\n /**\n * Optional out-box for the terminal failure cause (issue #2891): on a\n * failed request the client records the last provider error here so\n * callers can classify it (e.g. HTTP 429 → rate-limited) in memory\n * instead of seeing only null. Never logged.\n */\n failureDiag?: { lastError?: unknown };\n}\n\nexport interface LocalLlmChatCompletionResult {\n content: string;\n usage?: { promptTokens: number; completionTokens: number; totalTokens: number };\n}\nexport function isAbortError(err: unknown): boolean {\n if (!err || typeof err !== \"object\") return false;\n const maybe = err as { name?: string; message?: string };\n return (\n maybe.name === \"AbortError\" ||\n maybe.message === \"This operation was aborted\" ||\n maybe.message === \"The operation was aborted\"\n );\n}\n\nexport function waitForRetryBackoff(backoffMs: number, signal?: AbortSignal): Promise<boolean> {\n return new Promise((resolve) => {\n let settled = false;\n let timer: NodeJS.Timeout | undefined;\n const onAbort = (): void => {\n if (settled) return;\n settled = true;\n if (timer) clearTimeout(timer);\n signal?.removeEventListener(\"abort\", onAbort);\n resolve(false);\n };\n const onTimer = (): void => {\n if (settled) return;\n settled = true;\n signal?.removeEventListener(\"abort\", onAbort);\n resolve(true);\n };\n timer = setTimeout(onTimer, backoffMs);\n if (signal) {\n if (signal.aborted) onAbort();\n else signal.addEventListener(\"abort\", onAbort, { once: true });\n }\n });\n}\n\nexport function normalizeBackendTripReason(reason: string): string {\n const cleaned = reason.replace(/\\s+/g, \" \").replace(/^[-:–—\\s]+/, \"\").trim();\n if (!cleaned) return \"unknown local backend failure\";\n return cleaned.length > 160 ? `${cleaned.slice(0, 157)}...` : cleaned;\n}\n\nexport function extractNonRecoverableBackendReason(reason: string): string | null {\n const match = reason.match(\n /Failed to load model|Library not loaded|different Team IDs|code signature|llm_engine_mlx_amphibian/i,\n );\n return match?.[0] ?? null;\n}\n\nexport function extractNonRecoverableBackendReasonFromErrorText(errorText: string): string | null {\n const directReason = extractNonRecoverableBackendReason(errorText);\n if (directReason) return directReason;\n try {\n const parsed = JSON.parse(errorText) as { error?: { message?: string } };\n return extractNonRecoverableBackendReason(parsed?.error?.message ?? \"\");\n } catch {\n return null;\n }\n}\n\n/**\n * Flatten a fetch rejection into one line, including the `cause` undici hides\n * the real reason behind (`fetch failed` alone says nothing).\n */\nexport function describeFetchFailure(err: unknown): string {\n const name = err instanceof Error ? err.name : \"\";\n const message = err instanceof Error ? err.message : String(err);\n const cause: unknown = err instanceof Error ? (err as Error & { cause?: unknown }).cause : undefined;\n const causeText = cause instanceof Error\n ? ` (cause: ${cause.name}: ${cause.message}${\n typeof (cause as Error & { code?: unknown }).code === \"string\"\n ? ` [${String((cause as Error & { code?: unknown }).code)}]`\n : \"\"\n })`\n : cause === undefined\n ? \"\"\n : ` (cause: ${String(cause)})`;\n return `${name ? `${name}: ` : \"\"}${message}${causeText}`;\n}\n\n/**\n * What to record when every availability probe failed.\n *\n * A probe that TIMED OUT is not evidence the backend is down: the budget is a\n * fixed 2s and a busy event loop can burn it before the socket is scheduled,\n * so the backend looks dead while it answers other callers in single-digit ms.\n * Caching that verdict took extraction offline for a whole health-check\n * interval at a time (issue #2210), so a timeout leaves availability UNKNOWN —\n * this call fails, the next one re-probes instead of reading a stale false.\n *\n * A backend that ANSWERED and said no is a real verdict and stays cached, or\n * the daemon re-probes a known-bad endpoint on every request.\n */\nexport function resolveUnavailableVerdict(args: {\n baseUrl: string;\n sawAbortedProbe: boolean;\n wasAvailable: boolean | null;\n}): { cacheVerdict: boolean; warning: string | null } {\n if (args.sawAbortedProbe) {\n return {\n cacheVerdict: false,\n warning:\n `local LLM availability probe timed out at ${args.baseUrl} (event loop busy?); treating availability as ` +\n \"unknown and re-probing on the next request rather than marking the backend down\",\n };\n }\n return {\n cacheVerdict: true,\n // Surfaced at warn, not debug: extraction stops silently when this flips,\n // and the daemon emits no debug at all unless configured for it.\n warning: args.wasAvailable !== false ? `local LLM became unavailable at ${args.baseUrl}` : null,\n };\n}\n\nexport interface ProbeFetchResult {\n ok: boolean;\n data: unknown;\n status: number | null;\n /** The probe hit its own budget rather than getting an answer. */\n aborted?: boolean;\n}\n\n/**\n * One health-probe request.\n *\n * Every failure is logged with its cause: a transport error and a 404 both\n * returned `ok: false` with nothing recorded, so an unreachable backend was\n * indistinguishable from a wrong path and an availability failure had no\n * diagnosable reason at all (§22, issue #2210).\n */\nexport async function probeFetch(\n url: string,\n options: { timeoutMs: number; headers: Record<string, string>; signal?: AbortSignal },\n): Promise<ProbeFetchResult> {\n const controller = new AbortController();\n const requestSignal = options.signal\n ? AbortSignal.any([options.signal, controller.signal])\n : controller.signal;\n const timeout = setTimeout(() => controller.abort(), options.timeoutMs);\n try {\n const init: RequestInit & { dispatcher?: Agent } = { signal: requestSignal, headers: options.headers };\n const dispatcher = directProbeDispatcher();\n if (dispatcher) init.dispatcher = dispatcher;\n const response = await fetch(url, init);\n clearTimeout(timeout);\n if (!response.ok) {\n log.debug(`local LLM probe: ${url} returned HTTP ${response.status}`);\n return { ok: false, data: null, status: response.status };\n }\n const contentType = response.headers.get(\"content-type\");\n const data = contentType?.includes(\"application/json\") ? await response.json() : await response.text();\n return { ok: true, data, status: response.status };\n } catch (err) {\n clearTimeout(timeout);\n const aborted = isAbortError(err);\n log.debug(\n `local LLM probe: ${url} ${aborted ? `timed out after ${options.timeoutMs}ms` : \"failed\"}: ${describeFetchFailure(err)}`,\n );\n return { ok: false, data: null, status: null, aborted };\n }\n}\n\ninterface PendingProbe {\n promise: Promise<boolean>;\n controller: AbortController;\n /** Callers still awaiting this sequence; at zero the sequence is aborted. */\n waiters: number;\n}\n\n/**\n * Collapses concurrent probe sequences onto one in-flight run.\n *\n * A timed-out availability probe deliberately caches nothing (issue #2210),\n * which removed the false verdict that used to absorb concurrent callers:\n * every queued request would then run its own full probe sequence, on a host\n * already slow enough to blow the probe budget.\n *\n * Cancellation is refcounted rather than shared: one caller walking away must\n * not abort a sequence the others are still waiting on, so the underlying task\n * is aborted only once every waiter has gone.\n */\nexport class SingleFlightProbe {\n private pending: PendingProbe | null = null;\n\n run(task: (signal: AbortSignal) => Promise<boolean>, signal?: AbortSignal): Promise<boolean> {\n let active = this.pending;\n if (!active) {\n const controller = new AbortController();\n const created: PendingProbe = { promise: Promise.resolve(false), controller, waiters: 0 };\n created.promise = task(controller.signal).finally(() => {\n if (this.pending === created) this.pending = null;\n });\n this.pending = created;\n active = created;\n }\n const entry = active;\n entry.waiters += 1;\n let released = false;\n const release = () => {\n if (released) return;\n released = true;\n entry.waiters -= 1;\n if (entry.waiters > 0) return;\n // Detach BEFORE aborting. `pending` would otherwise still point at this\n // doomed entry until the task's own `finally` runs a microtask later, and\n // a caller arriving in that window would join an aborted sequence and\n // read its `false` as a verdict.\n if (this.pending === entry) this.pending = null;\n entry.controller.abort();\n };\n if (!signal) return entry.promise.finally(release);\n return new Promise<boolean>((resolve, reject) => {\n const onAbort = () => {\n release();\n resolve(false);\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n entry.promise.then(\n (value) => {\n signal.removeEventListener(\"abort\", onAbort);\n release();\n resolve(value);\n },\n (err: unknown) => {\n signal.removeEventListener(\"abort\", onAbort);\n release();\n reject(err instanceof Error ? err : new Error(String(err)));\n },\n );\n });\n }\n}\n"],"mappings":"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","names":[]}
@@ -18,7 +18,7 @@ import {
18
18
  isIsoWeekId,
19
19
  msUntilNextIsoWeek,
20
20
  previousIsoWeekId
21
- } from "./chunk-TVM47JQB.js";
21
+ } from "./chunk-RYUSWAAU.js";
22
22
  import {
23
23
  rebuildMemoryLifecycleLedger
24
24
  } from "./chunk-S2S4U4G3.js";
@@ -45,7 +45,7 @@ import {
45
45
  } from "./chunk-EWMRFW3F.js";
46
46
  import {
47
47
  LocalLlmClient
48
- } from "./chunk-SQ554O3K.js";
48
+ } from "./chunk-74AY3S7U.js";
49
49
  import {
50
50
  FallbackLlmClient
51
51
  } from "./chunk-GMMZ45C4.js";
@@ -2793,4 +2793,4 @@ export {
2793
2793
  ActivitySyncScheduler,
2794
2794
  MaintenanceScheduler
2795
2795
  };
2796
- //# sourceMappingURL=chunk-ZRU7636R.js.map
2796
+ //# sourceMappingURL=chunk-V3JZZJ2E.js.map
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  ActivityStore,
15
15
  MaintenanceScheduler
16
- } from "./chunk-ZRU7636R.js";
16
+ } from "./chunk-V3JZZJ2E.js";
17
17
  import {
18
18
  runPeerProfileReasoner
19
19
  } from "./chunk-I74SUMNI.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  CompoundingEngine,
34
34
  defaultTierMigrationCycleBudget
35
- } from "./chunk-TVM47JQB.js";
35
+ } from "./chunk-RYUSWAAU.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-5KBIOI4G.js";
@@ -169,7 +169,7 @@ import {
169
169
  } from "./chunk-XXSOVESA.js";
170
170
  import {
171
171
  ExtractionEngine
172
- } from "./chunk-GK56GNNS.js";
172
+ } from "./chunk-65JLKIVA.js";
173
173
  import {
174
174
  buildFocusedListRecallSection,
175
175
  shouldRecallFocusedListEvidence
@@ -228,7 +228,7 @@ import {
228
228
  runTimelinePublishCli,
229
229
  screenCandidateFact,
230
230
  summarizeVaultPublish
231
- } from "./chunk-66NLI5NK.js";
231
+ } from "./chunk-NBH7IRME.js";
232
232
  import {
233
233
  RoutingRulesStore
234
234
  } from "./chunk-TBUEE7XF.js";
@@ -367,7 +367,7 @@ import {
367
367
  } from "./chunk-QW27DOHG.js";
368
368
  import {
369
369
  MeetingsInputError
370
- } from "./chunk-KRH4KQGP.js";
370
+ } from "./chunk-KQUN4RSX.js";
371
371
  import {
372
372
  WearablesInputError,
373
373
  describeErrorForOperator
@@ -394,7 +394,7 @@ import {
394
394
  detectPassiveCorrections,
395
395
  renderSessionExperiencePreview,
396
396
  scoreSessionExperienceForPrompt
397
- } from "./chunk-GSN77SST.js";
397
+ } from "./chunk-4YYIZ475.js";
398
398
  import {
399
399
  importCapsule
400
400
  } from "./chunk-STM4T335.js";
@@ -414,7 +414,7 @@ import {
414
414
  } from "./chunk-JWX2Q6HS.js";
415
415
  import {
416
416
  HourlySummarizer
417
- } from "./chunk-D75ET36O.js";
417
+ } from "./chunk-FL6SLVAJ.js";
418
418
  import {
419
419
  LastRecallStore,
420
420
  RecallHandleHistoryStore,
@@ -472,7 +472,7 @@ import {
472
472
  } from "./chunk-GKCXTSFF.js";
473
473
  import {
474
474
  LocalLlmClient
475
- } from "./chunk-SQ554O3K.js";
475
+ } from "./chunk-74AY3S7U.js";
476
476
  import {
477
477
  buildChainFollowupGenerator
478
478
  } from "./chunk-HJM23E65.js";
@@ -31367,4 +31367,4 @@ export {
31367
31367
  qmdStartupCollectionChecksWithTimeout,
31368
31368
  Orchestrator
31369
31369
  };
31370
- //# sourceMappingURL=chunk-FOTV6L22.js.map
31370
+ //# sourceMappingURL=chunk-VKB2FGNW.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportError,
3
3
  getOperation
4
- } from "./chunk-GSN77SST.js";
4
+ } from "./chunk-4YYIZ475.js";
5
5
  import {
6
6
  abortError,
7
7
  isAbortError
@@ -499,4 +499,4 @@ export {
499
499
  buildSupportPassportPublicRequestHandler,
500
500
  composeSupportPassportExternalRequestHandlers
501
501
  };
502
- //# sourceMappingURL=chunk-MWJ25UMW.js.map
502
+ //# sourceMappingURL=chunk-X544TW54.js.map
@@ -2,7 +2,7 @@ import {
2
2
  SupportPassportError,
3
3
  SupportPassportOwnerCreateGrantRequestSchema,
4
4
  getOperation
5
- } from "./chunk-GSN77SST.js";
5
+ } from "./chunk-4YYIZ475.js";
6
6
 
7
7
  // src/support-passport/access-http.ts
8
8
  var OWNER_ROOT = "/engram/v1/support-passport";
@@ -137,4 +137,4 @@ export {
137
137
  SUPPORT_PASSPORT_OWNER_HTTP_ROUTES,
138
138
  handleSupportPassportOwnerHttp
139
139
  };
140
- //# sourceMappingURL=chunk-YIMDCBNV.js.map
140
+ //# sourceMappingURL=chunk-XO4HOBM2.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-GSN77SST.js";
6
+ } from "./chunk-4YYIZ475.js";
7
7
 
8
8
  // src/external-wiki-access.ts
9
9
  import { z } from "zod";
@@ -26,4 +26,4 @@ var externalWikiSearchOperation = defineOperation({
26
26
  export {
27
27
  externalWikiSearchOperation
28
28
  };
29
- //# sourceMappingURL=chunk-QJFNB6Z5.js.map
29
+ //# sourceMappingURL=chunk-ZSAQSLKL.js.map
package/dist/cli.js CHANGED
@@ -91,7 +91,7 @@ import {
91
91
  runWorkProductStatusCliCommand,
92
92
  runWorkProjectCliCommand,
93
93
  runWorkTaskCliCommand
94
- } from "./chunk-66NLI5NK.js";
94
+ } from "./chunk-NBH7IRME.js";
95
95
  import "./chunk-H4CKS5B2.js";
96
96
  import "./chunk-MMACM5G2.js";
97
97
  import "./chunk-54BGIBCR.js";
@@ -190,7 +190,7 @@ import "./chunk-G2XTGEGL.js";
190
190
  import "./chunk-27NO2KVB.js";
191
191
  import "./chunk-KFZY2OFH.js";
192
192
  import "./chunk-B32WYRXX.js";
193
- import "./chunk-KRH4KQGP.js";
193
+ import "./chunk-KQUN4RSX.js";
194
194
  import "./chunk-V7IZKJI3.js";
195
195
  import "./chunk-XW2T4QAW.js";
196
196
  import "./chunk-G3T6YMBO.js";
@@ -204,10 +204,10 @@ import "./chunk-ZSEFGDCI.js";
204
204
  import "./chunk-P6P35FY4.js";
205
205
  import "./chunk-3HSRWJTC.js";
206
206
  import "./chunk-AHS3QEEA.js";
207
- import "./chunk-YIMDCBNV.js";
208
- import "./chunk-MWJ25UMW.js";
207
+ import "./chunk-XO4HOBM2.js";
208
+ import "./chunk-X544TW54.js";
209
209
  import "./chunk-SRT6SHVZ.js";
210
- import "./chunk-DMLCETTO.js";
210
+ import "./chunk-NDJ42GKB.js";
211
211
  import "./chunk-TE6S7KDF.js";
212
212
  import "./chunk-MZUQVWVC.js";
213
213
  import "./chunk-EIB4FJVR.js";
@@ -215,16 +215,16 @@ import "./chunk-A5KNZSNA.js";
215
215
  import "./chunk-HUSTM6PU.js";
216
216
  import "./chunk-D24OXEPB.js";
217
217
  import "./chunk-64IO6ZEE.js";
218
- import "./chunk-YXNVNMHB.js";
218
+ import "./chunk-5XTSIZ3L.js";
219
219
  import "./chunk-QQ4T622E.js";
220
- import "./chunk-WRFXSJGW.js";
220
+ import "./chunk-NIANATGL.js";
221
221
  import "./chunk-M3GKSCFN.js";
222
- import "./chunk-JPQCHBTK.js";
223
- import "./chunk-6WR4UGJN.js";
224
- import "./chunk-QJFNB6Z5.js";
222
+ import "./chunk-AD3ZB72W.js";
223
+ import "./chunk-OHMGR6QN.js";
224
+ import "./chunk-ZSAQSLKL.js";
225
225
  import "./chunk-7T4TOGMS.js";
226
226
  import "./chunk-7YQ6ESEA.js";
227
- import "./chunk-JKJTXIDI.js";
227
+ import "./chunk-F2JLBXMG.js";
228
228
  import "./chunk-GDYLZ6FR.js";
229
229
  import "./chunk-PQM3B54K.js";
230
230
  import "./chunk-5LWODP5R.js";
@@ -239,11 +239,11 @@ import "./chunk-DFP37GUN.js";
239
239
  import "./chunk-4ISHIPOC.js";
240
240
  import "./chunk-AB3A7EFH.js";
241
241
  import "./chunk-KIUVEMBI.js";
242
- import "./chunk-SGLEHJ4P.js";
242
+ import "./chunk-LJSBF6PW.js";
243
243
  import "./chunk-2BPPGNAQ.js";
244
244
  import "./chunk-DJSJ4ULL.js";
245
- import "./chunk-UTMVZPAV.js";
246
- import "./chunk-GSN77SST.js";
245
+ import "./chunk-PDYP7SUC.js";
246
+ import "./chunk-4YYIZ475.js";
247
247
  import "./chunk-W4F3C7N7.js";
248
248
  import "./chunk-MPC7TYTZ.js";
249
249
  import "./chunk-STM4T335.js";
@@ -256,7 +256,7 @@ import "./chunk-BRZRP5WD.js";
256
256
  import "./chunk-GNVZQ5JN.js";
257
257
  import "./chunk-YN2UN7N3.js";
258
258
  import "./chunk-JWX2Q6HS.js";
259
- import "./chunk-D75ET36O.js";
259
+ import "./chunk-FL6SLVAJ.js";
260
260
  import "./chunk-53OWLEAD.js";
261
261
  import "./chunk-WWDO7ZWM.js";
262
262
  import "./chunk-R4SATHCV.js";
@@ -318,11 +318,11 @@ import "./chunk-2LSZVONP.js";
318
318
  import "./chunk-DEUNUKTD.js";
319
319
  import "./chunk-LXY5VVGM.js";
320
320
  import "./chunk-GKCXTSFF.js";
321
- import "./chunk-SQ554O3K.js";
322
- import "./chunk-MLED254J.js";
321
+ import "./chunk-74AY3S7U.js";
322
+ import "./chunk-T6OZW2WR.js";
323
323
  import "./chunk-QEDLJDHP.js";
324
324
  import "./chunk-U4LUIE6Y.js";
325
- import "./chunk-JUXOTY6J.js";
325
+ import "./chunk-5YQXWVCP.js";
326
326
  import "./chunk-ZY2MNJR6.js";
327
327
  import "./chunk-7WTTE5FW.js";
328
328
  import "./chunk-3UXOZBHV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CompoundingEngine,
3
3
  defaultTierMigrationCycleBudget
4
- } from "../chunk-TVM47JQB.js";
4
+ } from "../chunk-RYUSWAAU.js";
5
5
  import "../chunk-5KBIOI4G.js";
6
6
  import "../chunk-OGXXGHW6.js";
7
7
  import "../chunk-R4SATHCV.js";