@remnic/core 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/access-cli.js +20 -20
  2. package/dist/access-http.d.ts +7 -7
  3. package/dist/access-http.js +9 -9
  4. package/dist/access-mcp.d.ts +7 -7
  5. package/dist/access-mcp.js +8 -8
  6. package/dist/{access-service-CcKu1Yc0.d.ts → access-service-C0Rkioec.d.ts} +9 -9
  7. package/dist/access-service.d.ts +7 -7
  8. package/dist/access-service.js +7 -7
  9. package/dist/active-memory-bridge.d.ts +1 -1
  10. package/dist/active-recall.d.ts +1 -1
  11. package/dist/behavior-learner.d.ts +1 -1
  12. package/dist/behavior-signals.d.ts +1 -1
  13. package/dist/bootstrap.d.ts +6 -6
  14. package/dist/briefing.d.ts +2 -2
  15. package/dist/briefing.js +3 -3
  16. package/dist/buffer-surprise-report.d.ts +1 -1
  17. package/dist/buffer.d.ts +2 -2
  18. package/dist/calibration.d.ts +1 -1
  19. package/dist/calibration.js +2 -2
  20. package/dist/causal-behavior.d.ts +1 -1
  21. package/dist/causal-consolidation.d.ts +2 -2
  22. package/dist/causal-consolidation.js +5 -5
  23. package/dist/{chunk-EONJ7GK3.js → chunk-4IT6WL23.js} +2 -2
  24. package/dist/{chunk-MYMOXFMR.js → chunk-65ZPH7QA.js} +4 -4
  25. package/dist/{chunk-D7WYTVUQ.js → chunk-AV2WSYZY.js} +2 -2
  26. package/dist/{chunk-3P6TPZM4.js → chunk-DWMXVUGO.js} +9 -4
  27. package/dist/chunk-DWMXVUGO.js.map +1 -0
  28. package/dist/{chunk-AIT53NLG.js → chunk-E27HOXMX.js} +2 -2
  29. package/dist/{chunk-LKJA5MR2.js → chunk-ETA2JXP5.js} +2 -2
  30. package/dist/{chunk-UE2OQNQQ.js → chunk-FCGWNWG4.js} +3 -3
  31. package/dist/{chunk-ZBZVNWQO.js → chunk-FIXIX6DE.js} +2 -2
  32. package/dist/{chunk-AOABCJVL.js → chunk-GRDDGNYQ.js} +20 -18
  33. package/dist/chunk-GRDDGNYQ.js.map +1 -0
  34. package/dist/{chunk-OZAFME7S.js → chunk-KHJRMWO4.js} +7 -7
  35. package/dist/{chunk-AKV3HOGZ.js → chunk-KNQ5YJTO.js} +2 -2
  36. package/dist/{chunk-AKV3HOGZ.js.map → chunk-KNQ5YJTO.js.map} +1 -1
  37. package/dist/{chunk-Y27UJK6V.js → chunk-L2EXJQJP.js} +15 -2
  38. package/dist/chunk-L2EXJQJP.js.map +1 -0
  39. package/dist/{chunk-PT2EZWOH.js → chunk-MYH2IBSP.js} +2 -2
  40. package/dist/{chunk-KUIEFH2S.js → chunk-OJMD2LIW.js} +3 -3
  41. package/dist/{chunk-M3QQ5DRA.js → chunk-Q5TJRAGE.js} +3 -3
  42. package/dist/{chunk-FSWYMUWI.js → chunk-QJZ77K7F.js} +13 -1
  43. package/dist/chunk-QJZ77K7F.js.map +1 -0
  44. package/dist/{chunk-7RAW2T4P.js → chunk-RJSVRPNU.js} +2 -2
  45. package/dist/{chunk-ZOMA7J3J.js → chunk-RLV2F337.js} +2 -2
  46. package/dist/{chunk-BFVBG5XY.js → chunk-S5SQDIF5.js} +2 -2
  47. package/dist/{chunk-TMSHGSIG.js → chunk-SRIDOT64.js} +2 -2
  48. package/dist/{chunk-RXGR3YLU.js → chunk-STB3GUYU.js} +2 -2
  49. package/dist/{chunk-YKGRACQP.js → chunk-SWRJFKYW.js} +5 -5
  50. package/dist/{chunk-XOG2FHYW.js → chunk-SYWJJTNL.js} +16 -16
  51. package/dist/{chunk-COAGZQT7.js → chunk-T65SHTJP.js} +1 -1
  52. package/dist/chunk-T65SHTJP.js.map +1 -0
  53. package/dist/{chunk-5NS6NN5A.js → chunk-WXPPM426.js} +2 -2
  54. package/dist/{chunk-DLYTYJ43.js → chunk-XGX4TUF6.js} +2 -2
  55. package/dist/{chunk-YELFQNQH.js → chunk-XVOIMCVW.js} +2 -2
  56. package/dist/{cli-WahR0rs-.d.ts → cli-CIATRu8o.d.ts} +4 -4
  57. package/dist/cli.d.ts +8 -8
  58. package/dist/cli.js +18 -18
  59. package/dist/{codex-materialize-D5d5vvyS.d.ts → codex-materialize-xVqbEmcm.d.ts} +1 -1
  60. package/dist/compression-optimizer.d.ts +1 -1
  61. package/dist/config.d.ts +1 -1
  62. package/dist/config.js +1 -1
  63. package/dist/consolidation-provenance-check.d.ts +2 -2
  64. package/dist/consolidation-undo.d.ts +2 -2
  65. package/dist/day-summary.d.ts +1 -1
  66. package/dist/delinearize.d.ts +1 -1
  67. package/dist/direct-answer-wiring.d.ts +1 -1
  68. package/dist/direct-answer.d.ts +1 -1
  69. package/dist/embedding-fallback.d.ts +1 -1
  70. package/dist/{engine-5OTS6GY3.js → engine-MEAYUA7A.js} +4 -4
  71. package/dist/entity-retrieval.d.ts +2 -2
  72. package/dist/entity-retrieval.js +3 -3
  73. package/dist/entity-schema.d.ts +1 -1
  74. package/dist/explicit-capture.d.ts +6 -6
  75. package/dist/explicit-cue-recall.js +1 -1
  76. package/dist/extraction-judge-telemetry.d.ts +1 -1
  77. package/dist/extraction-judge-training.d.ts +1 -1
  78. package/dist/extraction-judge.d.ts +1 -1
  79. package/dist/extraction.d.ts +1 -1
  80. package/dist/extraction.js +3 -3
  81. package/dist/fallback-llm.d.ts +1 -1
  82. package/dist/fallback-llm.js +2 -2
  83. package/dist/identity-continuity.d.ts +1 -1
  84. package/dist/importance.d.ts +1 -1
  85. package/dist/index.d.ts +13 -13
  86. package/dist/index.js +27 -27
  87. package/dist/intent.d.ts +1 -1
  88. package/dist/lifecycle.d.ts +1 -1
  89. package/dist/live-connectors-runner.d.ts +1 -1
  90. package/dist/local-llm.d.ts +1 -1
  91. package/dist/memory-action-policy.d.ts +1 -1
  92. package/dist/memory-cache.d.ts +1 -1
  93. package/dist/{memory-governance-7MI7KE35.js → memory-governance-G3XODEXW.js} +4 -4
  94. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  95. package/dist/{memory-projection-store-BQt5VUQ8.d.ts → memory-projection-store-lCzmu4JX.d.ts} +1 -1
  96. package/dist/memory-projection-store.d.ts +2 -2
  97. package/dist/memory-worth-outcomes.d.ts +2 -2
  98. package/dist/models-json.d.ts +1 -1
  99. package/dist/native-knowledge.d.ts +1 -1
  100. package/dist/openai-chat-compat.d.ts +9 -1
  101. package/dist/openai-chat-compat.js +5 -1
  102. package/dist/operator-toolkit.d.ts +2 -2
  103. package/dist/operator-toolkit.js +6 -6
  104. package/dist/{orchestrator-D2lHhFWI.d.ts → orchestrator-CvUYwuaL.d.ts} +3 -3
  105. package/dist/orchestrator.d.ts +6 -6
  106. package/dist/orchestrator.js +15 -15
  107. package/dist/patterns-cli.d.ts +1 -1
  108. package/dist/policy-runtime.d.ts +1 -1
  109. package/dist/{port-5W-r5SKc.d.ts → port-BkWL7hqo.d.ts} +1 -1
  110. package/dist/qmd-recall-cache.d.ts +2 -2
  111. package/dist/qmd.d.ts +2 -2
  112. package/dist/recall-disclosure-escalation.d.ts +1 -1
  113. package/dist/recall-explain-renderer.d.ts +1 -1
  114. package/dist/recall-explain-renderer.js +3 -3
  115. package/dist/recall-state.d.ts +1 -1
  116. package/dist/recall-tag-filter.d.ts +1 -1
  117. package/dist/recall-xray-cli.d.ts +1 -1
  118. package/dist/recall-xray-cli.js +4 -4
  119. package/dist/recall-xray-renderer.d.ts +1 -1
  120. package/dist/recall-xray-renderer.js +3 -3
  121. package/dist/recall-xray.d.ts +1 -1
  122. package/dist/recall-xray.js +2 -2
  123. package/dist/resolve-auth-token.d.ts +1 -1
  124. package/dist/resume-bundles.js +2 -2
  125. package/dist/retrieval-agents.d.ts +2 -2
  126. package/dist/retrieval-tiers.d.ts +1 -1
  127. package/dist/schemas.d.ts +22 -22
  128. package/dist/{semantic-consolidation-tDODR2je.d.ts → semantic-consolidation-CGiH52qa.d.ts} +2 -2
  129. package/dist/semantic-consolidation.d.ts +3 -3
  130. package/dist/semantic-consolidation.js +3 -3
  131. package/dist/semantic-rule-promotion.js +3 -3
  132. package/dist/semantic-rule-verifier.d.ts +1 -1
  133. package/dist/semantic-rule-verifier.js +3 -3
  134. package/dist/session-observer-bands.d.ts +1 -1
  135. package/dist/session-observer-state.d.ts +1 -1
  136. package/dist/signal.d.ts +1 -1
  137. package/dist/storage.d.ts +2 -2
  138. package/dist/storage.js +2 -2
  139. package/dist/summarizer.d.ts +1 -1
  140. package/dist/summarizer.js +3 -3
  141. package/dist/summary-snapshot.d.ts +1 -1
  142. package/dist/temporal-supersession.d.ts +2 -2
  143. package/dist/temporal-validity.d.ts +1 -1
  144. package/dist/threading.d.ts +1 -1
  145. package/dist/tier-migration.d.ts +3 -3
  146. package/dist/tier-routing.d.ts +1 -1
  147. package/dist/topics.d.ts +1 -1
  148. package/dist/transcript.d.ts +1 -1
  149. package/dist/{types-C-USTTAx.d.ts → types-H85grL1f.d.ts} +1 -0
  150. package/dist/types.d.ts +1 -1
  151. package/dist/types.js +1 -1
  152. package/dist/utility-runtime.d.ts +1 -1
  153. package/dist/verified-recall.js +3 -3
  154. package/package.json +1 -1
  155. package/dist/chunk-3P6TPZM4.js.map +0 -1
  156. package/dist/chunk-AOABCJVL.js.map +0 -1
  157. package/dist/chunk-COAGZQT7.js.map +0 -1
  158. package/dist/chunk-FSWYMUWI.js.map +0 -1
  159. package/dist/chunk-Y27UJK6V.js.map +0 -1
  160. /package/dist/{chunk-EONJ7GK3.js.map → chunk-4IT6WL23.js.map} +0 -0
  161. /package/dist/{chunk-MYMOXFMR.js.map → chunk-65ZPH7QA.js.map} +0 -0
  162. /package/dist/{chunk-D7WYTVUQ.js.map → chunk-AV2WSYZY.js.map} +0 -0
  163. /package/dist/{chunk-AIT53NLG.js.map → chunk-E27HOXMX.js.map} +0 -0
  164. /package/dist/{chunk-LKJA5MR2.js.map → chunk-ETA2JXP5.js.map} +0 -0
  165. /package/dist/{chunk-UE2OQNQQ.js.map → chunk-FCGWNWG4.js.map} +0 -0
  166. /package/dist/{chunk-ZBZVNWQO.js.map → chunk-FIXIX6DE.js.map} +0 -0
  167. /package/dist/{chunk-OZAFME7S.js.map → chunk-KHJRMWO4.js.map} +0 -0
  168. /package/dist/{chunk-PT2EZWOH.js.map → chunk-MYH2IBSP.js.map} +0 -0
  169. /package/dist/{chunk-KUIEFH2S.js.map → chunk-OJMD2LIW.js.map} +0 -0
  170. /package/dist/{chunk-M3QQ5DRA.js.map → chunk-Q5TJRAGE.js.map} +0 -0
  171. /package/dist/{chunk-7RAW2T4P.js.map → chunk-RJSVRPNU.js.map} +0 -0
  172. /package/dist/{chunk-ZOMA7J3J.js.map → chunk-RLV2F337.js.map} +0 -0
  173. /package/dist/{chunk-BFVBG5XY.js.map → chunk-S5SQDIF5.js.map} +0 -0
  174. /package/dist/{chunk-TMSHGSIG.js.map → chunk-SRIDOT64.js.map} +0 -0
  175. /package/dist/{chunk-RXGR3YLU.js.map → chunk-STB3GUYU.js.map} +0 -0
  176. /package/dist/{chunk-YKGRACQP.js.map → chunk-SWRJFKYW.js.map} +0 -0
  177. /package/dist/{chunk-XOG2FHYW.js.map → chunk-SYWJJTNL.js.map} +0 -0
  178. /package/dist/{chunk-5NS6NN5A.js.map → chunk-WXPPM426.js.map} +0 -0
  179. /package/dist/{chunk-DLYTYJ43.js.map → chunk-XGX4TUF6.js.map} +0 -0
  180. /package/dist/{chunk-YELFQNQH.js.map → chunk-XVOIMCVW.js.map} +0 -0
  181. /package/dist/{engine-5OTS6GY3.js.map → engine-MEAYUA7A.js.map} +0 -0
  182. /package/dist/{memory-governance-7MI7KE35.js.map → memory-governance-G3XODEXW.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  EngramMcpServer
3
- } from "./chunk-M3QQ5DRA.js";
3
+ } from "./chunk-Q5TJRAGE.js";
4
4
  import {
5
5
  EngramAccessInputError
6
- } from "./chunk-OZAFME7S.js";
6
+ } from "./chunk-KHJRMWO4.js";
7
7
  import {
8
8
  isTrustZoneName
9
9
  } from "./chunk-EQINRHYR.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-WIICJPET.js";
16
16
  import {
17
17
  isRecallDisclosure
18
- } from "./chunk-COAGZQT7.js";
18
+ } from "./chunk-T65SHTJP.js";
19
19
  import {
20
20
  log
21
21
  } from "./chunk-2ODBA7MQ.js";
@@ -1551,4 +1551,4 @@ var EngramAccessHttpServer = class {
1551
1551
  export {
1552
1552
  EngramAccessHttpServer
1553
1553
  };
1554
- //# sourceMappingURL=chunk-MYMOXFMR.js.map
1554
+ //# sourceMappingURL=chunk-65ZPH7QA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isRecallDisclosure
3
- } from "./chunk-COAGZQT7.js";
3
+ } from "./chunk-T65SHTJP.js";
4
4
 
5
5
  // src/recall-xray.ts
6
6
  import { randomUUID } from "crypto";
@@ -262,4 +262,4 @@ export {
262
262
  RecallXrayBuilder,
263
263
  summarizeDisclosureTokens
264
264
  };
265
- //# sourceMappingURL=chunk-D7WYTVUQ.js.map
265
+ //# sourceMappingURL=chunk-AV2WSYZY.js.map
@@ -6,9 +6,10 @@ import {
6
6
  loadModelsJsonProviders
7
7
  } from "./chunk-ODWDQNRE.js";
8
8
  import {
9
+ buildChatCompletionTemperature,
9
10
  buildChatCompletionTokenLimit,
10
11
  shouldAssumeOpenAiChatCompletions
11
- } from "./chunk-Y27UJK6V.js";
12
+ } from "./chunk-L2EXJQJP.js";
12
13
  import {
13
14
  extractJsonCandidates
14
15
  } from "./chunk-UZB5KHKX.js";
@@ -361,7 +362,9 @@ var FallbackLlmClient = class {
361
362
  const body = {
362
363
  model: modelId,
363
364
  messages,
364
- temperature: options.temperature ?? 0.3,
365
+ ...buildChatCompletionTemperature(modelId, options.temperature ?? 0.3, {
366
+ assumeOpenAI
367
+ }),
365
368
  ...buildChatCompletionTokenLimit(modelId, options.maxTokens ?? 4096, {
366
369
  assumeOpenAI
367
370
  })
@@ -414,7 +417,9 @@ var FallbackLlmClient = class {
414
417
  model: modelId,
415
418
  input,
416
419
  max_output_tokens: Math.max(0, Math.floor(options.maxTokens ?? 4096)),
417
- temperature: options.temperature ?? 0.3
420
+ ...buildChatCompletionTemperature(modelId, options.temperature ?? 0.3, {
421
+ assumeOpenAI: shouldAssumeOpenAiChatCompletions(config.baseUrl)
422
+ })
418
423
  };
419
424
  if (instructions.length > 0) {
420
425
  body.instructions = instructions;
@@ -517,4 +522,4 @@ function extractResponsesOutputText(data) {
517
522
  export {
518
523
  FallbackLlmClient
519
524
  };
520
- //# sourceMappingURL=chunk-3P6TPZM4.js.map
525
+ //# sourceMappingURL=chunk-DWMXVUGO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fallback-llm.ts"],"sourcesContent":["import { log } from \"./logger.js\";\nimport type { GatewayConfig, ModelProviderConfig, AgentPersona } from \"./types.js\";\nimport { extractJsonCandidates } from \"./json-extract.js\";\nimport {\n buildChatCompletionTemperature,\n buildChatCompletionTokenLimit,\n shouldAssumeOpenAiChatCompletions,\n} from \"./openai-chat-compat.js\";\nimport { resolveProviderApiKey, getGatewayRuntimeAuthForModel } from \"./resolve-provider-secret.js\";\nimport { loadModelsJsonProviders } from \"./models-json.js\";\n\nexport interface FallbackLlmOptions {\n temperature?: number;\n maxTokens?: number;\n timeoutMs?: number;\n /** Override which agent persona's model chain to use (by ID from agents.list[]). */\n agentId?: string;\n}\n\nexport interface FallbackLlmResponse {\n content: string;\n modelUsed: string;\n usage?: {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n };\n}\n\nexport interface FallbackLlmRuntimeContext {\n agentDir?: string;\n workspaceDir?: string;\n}\n\ninterface ModelRef {\n providerId: string;\n modelId: string;\n providerConfig: ModelProviderConfig;\n modelString: string;\n}\n\nconst PROVIDER_ALIASES: Record<string, readonly string[]> = {\n \"openai-codex\": [\"codex\"],\n codex: [\"openai-codex\"],\n \"claude-cli\": [\"anthropic\"],\n};\n\nconst LEGACY_PROVIDER_IDS = new Set([\"openai-codex\", \"claude-cli\"]);\n\nconst BUILT_IN_PROVIDER_FALLBACKS: Record<string, ModelProviderConfig> = {\n anthropic: {\n baseUrl: \"https://api.anthropic.com/v1\",\n api: \"anthropic-messages\",\n apiKey: \"secretref-managed\",\n models: [],\n },\n};\n\n/**\n * Generic fallback LLM client that uses the gateway's default AI configuration\n * and walks through the full fallback chain (primary + fallbacks).\n * Supports OpenAI and Anthropic API formats.\n */\nexport class FallbackLlmClient {\n private gatewayConfig: GatewayConfig | undefined;\n private runtimeContext: FallbackLlmRuntimeContext;\n\n constructor(\n gatewayConfig?: GatewayConfig,\n runtimeContext: FallbackLlmRuntimeContext = {},\n ) {\n this.gatewayConfig = gatewayConfig;\n this.runtimeContext = runtimeContext;\n }\n\n /**\n * Check if fallback is available (gateway config has at least one model).\n */\n isAvailable(agentId?: string): boolean {\n const models = this.getModelChain(agentId);\n return models.length > 0;\n }\n\n /**\n * Make a chat completion request using the gateway's default AI chain.\n * Tries primary first, then each fallback in order.\n * When agentId is provided, uses that agent persona's model chain instead of defaults.\n */\n async chatCompletion(\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions = {},\n ): Promise<FallbackLlmResponse | null> {\n const models = this.getModelChain(options.agentId);\n if (models.length === 0) {\n log.warn(\"fallback LLM: no models configured in gateway\");\n return null;\n }\n\n const runChain = async (): Promise<FallbackLlmResponse | null> => {\n // Try each model in the chain\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n const isFallback = i > 0;\n\n try {\n const result = await this.tryModel(model, messages, options);\n if (result) {\n if (isFallback) {\n log.debug(`fallback LLM: succeeded using ${model.modelString} (fallback ${i})`);\n }\n return {\n content: result.content,\n modelUsed: model.modelString,\n usage: result.usage,\n };\n }\n } catch (err) {\n const errorMsg = err instanceof Error ? err.message : String(err);\n log.debug(`fallback LLM: ${model.modelString} failed (${errorMsg}), trying next...`);\n // Continue to next model in chain\n }\n }\n\n log.warn(`fallback LLM: all ${models.length} models in chain failed`);\n return null;\n };\n\n if (typeof options.timeoutMs === \"number\") {\n if (options.timeoutMs <= 0) {\n log.warn(\"fallback LLM: timed out before request started\");\n return null;\n }\n let timeoutHandle: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n runChain(),\n new Promise<null>((resolve) => {\n timeoutHandle = setTimeout(() => {\n log.warn(`fallback LLM: timed out after ${options.timeoutMs}ms`);\n resolve(null);\n }, options.timeoutMs);\n }),\n ]);\n } finally {\n if (timeoutHandle) clearTimeout(timeoutHandle);\n }\n }\n\n return await runChain();\n }\n\n /**\n * Make a request with structured output (Zod schema).\n * Returns parsed JSON or null on failure.\n */\n async parseWithSchema<T>(\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n schema: { parse: (data: unknown) => T },\n options: FallbackLlmOptions = {},\n ): Promise<T | null> {\n const detailed = await this.parseWithSchemaDetailed(messages, schema, options);\n return detailed?.result ?? null;\n }\n\n /**\n * Like parseWithSchema but also returns the model that was used,\n * so callers can emit accurate trace events.\n */\n async parseWithSchemaDetailed<T>(\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n schema: { parse: (data: unknown) => T },\n options: FallbackLlmOptions = {},\n ): Promise<{ result: T; modelUsed: string } | null> {\n const response = await this.chatCompletion(messages, options);\n if (!response?.content) return null;\n\n try {\n const candidates = extractJsonCandidates(response.content);\n for (const c of candidates) {\n try {\n const parsed = JSON.parse(c);\n return { result: schema.parse(parsed), modelUsed: response.modelUsed };\n } catch {\n // keep trying other candidates\n }\n }\n return null;\n } catch (err) {\n log.warn(\"fallback LLM: failed to parse structured output:\", err);\n return null;\n }\n }\n\n /**\n * Get the full model chain from gateway config.\n * Returns array of models in order: [primary, fallback1, fallback2, ...]\n *\n * When agentId is provided, looks up the matching entry in agents.list[]\n * and uses that persona's model chain. Falls back to agents.defaults.model\n * if agentId is not found or not provided.\n */\n private getModelChain(agentId?: string): ModelRef[] {\n const chain: ModelRef[] = [];\n const providers = this.gatewayConfig?.models?.providers ?? {};\n\n // Resolve the model config: agent persona chain or global defaults\n let modelConfig: { primary?: string; fallbacks?: string[] } | undefined;\n\n if (agentId) {\n const persona = this.gatewayConfig?.agents?.list?.find(\n (a) => a.id === agentId,\n );\n if (persona?.model) {\n modelConfig = persona.model;\n log.debug(`fallback LLM: using agent persona \"${agentId}\" model chain`);\n } else {\n log.warn(\n `fallback LLM: agent persona \"${agentId}\" not found or has no model config, falling back to defaults`,\n );\n }\n }\n\n if (!modelConfig) {\n modelConfig = this.gatewayConfig?.agents?.defaults?.model;\n }\n\n // Build list of model strings: primary + fallbacks\n const modelStrings: string[] = [];\n\n if (modelConfig?.primary) {\n modelStrings.push(modelConfig.primary);\n }\n\n if (Array.isArray(modelConfig?.fallbacks)) {\n for (const fb of modelConfig.fallbacks) {\n if (typeof fb === \"string\" && !modelStrings.includes(fb)) {\n modelStrings.push(fb);\n }\n }\n }\n\n // Parse each model string and look up provider config\n for (const modelString of modelStrings) {\n const modelRef = this.parseModelString(modelString, providers);\n if (modelRef) {\n chain.push(modelRef);\n }\n }\n\n return chain;\n }\n\n /**\n * Parse a \"provider/model\" string and look up its config.\n */\n private parseModelString(\n modelString: string,\n providers: Record<string, ModelProviderConfig>,\n ): ModelRef | null {\n // Parse \"provider/model\" format (e.g., \"openai/gpt-5.2\", \"anthropic/claude-opus-4-6\")\n const parts = modelString.split(\"/\");\n if (parts.length < 2) {\n log.warn(`fallback LLM: invalid model format: ${modelString}`);\n return null;\n }\n\n const requestedProviderId = parts[0];\n const modelId = parts.slice(1).join(\"/\"); // Handle cases like \"openai/gpt-5.2-turbo\"\n\n // Respect the active gateway config first so profile-local overrides and\n // credentials win. Fall back to the materialized models.json only when\n // the provider is absent from the loaded config (for built-in providers\n // registered by the gateway at runtime).\n const resolvedProvider = this.resolveProviderConfig(requestedProviderId, providers);\n const providerConfig = resolvedProvider?.config;\n if (!providerConfig) {\n log.warn(\n `fallback LLM: provider not found: ${requestedProviderId} ` +\n `(tried: ${this.providerResolutionCandidates(requestedProviderId).join(\", \")})`,\n );\n return null;\n }\n\n return {\n providerId: resolvedProvider.providerId,\n modelId,\n providerConfig,\n modelString,\n };\n }\n\n private resolveProviderConfig(\n providerId: string,\n providers: Record<string, ModelProviderConfig>,\n ): { providerId: string; config: ModelProviderConfig } | null {\n const candidates = this.providerResolutionCandidates(providerId);\n const aliasCandidates = candidates.filter((candidate) => candidate !== providerId);\n const fallbackCandidates = LEGACY_PROVIDER_IDS.has(providerId)\n ? [...aliasCandidates, providerId]\n : [providerId, ...aliasCandidates];\n for (const candidate of candidates) {\n const config = providers[candidate];\n if (config) {\n if (candidate !== providerId) {\n log.debug(`fallback LLM: provider \"${providerId}\" resolved via alias \"${candidate}\"`);\n }\n return { providerId: candidate, config };\n }\n }\n for (const candidate of fallbackCandidates) {\n const config = this.resolveFromModelsJson(candidate);\n if (config) {\n if (candidate !== providerId) {\n log.debug(`fallback LLM: provider \"${providerId}\" resolved via models.json alias \"${candidate}\"`);\n }\n return { providerId: candidate, config };\n }\n const builtInConfig = BUILT_IN_PROVIDER_FALLBACKS[candidate];\n if (builtInConfig) {\n if (candidate === providerId) {\n log.debug(`fallback LLM: provider \"${providerId}\" resolved from built-in defaults`);\n return { providerId, config: builtInConfig };\n }\n log.debug(`fallback LLM: provider \"${providerId}\" resolved via built-in alias \"${candidate}\"`);\n return { providerId: candidate, config: builtInConfig };\n }\n }\n return null;\n }\n\n private providerResolutionCandidates(providerId: string): string[] {\n const candidates = [providerId, ...(PROVIDER_ALIASES[providerId] ?? [])];\n return [...new Set(candidates)];\n }\n\n /**\n * Look up a provider from the gateway's materialized models.json, which\n * contains all providers including built-in ones (openai-codex, google-vertex,\n * etc.) that aren't in the user's openclaw.json but are registered by\n * gateway plugins. Returns null if the provider isn't found there either.\n */\n private resolveFromModelsJson(providerId: string): ModelProviderConfig | null {\n const allProviders = loadModelsJsonProviders();\n const config = allProviders[providerId];\n if (config) {\n log.debug(`fallback LLM: resolved provider \"${providerId}\" from models.json (api: ${config.api ?? \"default\"})`);\n return config;\n }\n return null;\n }\n\n /**\n * Try to call a single model.\n *\n * Uses the gateway's native getRuntimeAuthForModel when available — this\n * handles all provider-specific auth transforms (OAuth token exchange,\n * base URL overrides for codex/copilot/etc.) through the same codepath\n * the gateway itself uses. Falls back to resolveProviderApiKey for\n * simpler providers or when the runtime module isn't loaded.\n */\n private async tryModel(\n model: ModelRef,\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions,\n ): Promise<{ content: string; usage?: FallbackLlmResponse[\"usage\"] } | null> {\n // Try the gateway's native runtime auth first — it handles all provider-\n // specific transforms (OAuth exchange, base URL rewrite, etc.)\n const runtimeAuth = await this.resolveRuntimeAuth(model);\n const effectiveBaseUrl = runtimeAuth?.baseUrl ?? model.providerConfig.baseUrl;\n const resolvedApiKey = runtimeAuth?.apiKey ?? await this.resolveFallbackApiKey(model);\n\n // If the raw key looks like an unresolved secret ref and resolution fails,\n // skip this provider entirely so the chain falls through to the next.\n const rawKey = model.providerConfig.apiKey;\n const needsResolution = rawKey === \"secretref-managed\"\n || (typeof rawKey === \"object\" && rawKey !== null);\n if (needsResolution && !resolvedApiKey) {\n throw new Error(`API key for provider \"${model.providerId}\" could not be resolved from secret ref`);\n }\n\n const effectiveConfig: ModelProviderConfig = {\n ...model.providerConfig,\n baseUrl: effectiveBaseUrl,\n ...(resolvedApiKey ? { apiKey: resolvedApiKey } : {}),\n };\n\n if (model.providerConfig.api === \"anthropic-messages\") {\n return await this.callAnthropic(effectiveConfig, model.modelId, messages, options);\n }\n\n if (\n model.providerConfig.api === \"openai-responses\" ||\n model.providerConfig.api === \"openai-codex-responses\" ||\n model.providerConfig.api === \"azure-openai-responses\"\n ) {\n return await this.callOpenAIResponses(\n effectiveConfig,\n model.modelId,\n messages,\n options,\n );\n }\n\n // For OpenAI-compatible chat-completions APIs (openai-completions,\n // ollama, etc.) and unknown formats, use chat completions — the gateway's\n // runtime auth resolver returns request-ready base URL and credentials for\n // most providers.\n return await this.callOpenAI(\n effectiveConfig,\n model.modelId,\n messages,\n options,\n shouldAssumeOpenAiChatCompletions(effectiveConfig.baseUrl),\n );\n }\n\n /**\n * Resolve request-ready auth through the gateway's native runtime, which\n * handles provider-specific transforms (OAuth token exchange for codex/copilot,\n * base URL rewrite, etc.). Returns null if the runtime isn't available.\n */\n private async resolveRuntimeAuth(\n model: ModelRef,\n ): Promise<{ apiKey?: string; baseUrl?: string } | null> {\n try {\n const getRuntimeAuth = await getGatewayRuntimeAuthForModel();\n if (!getRuntimeAuth) return null;\n\n const result = await getRuntimeAuth({\n model: {\n provider: model.providerId,\n id: model.modelId,\n api: model.providerConfig.api,\n baseUrl: model.providerConfig.baseUrl,\n },\n cfg: this.gatewayConfig,\n workspaceDir: this.runtimeContext.workspaceDir,\n });\n\n if (result?.apiKey || result?.baseUrl) {\n log.debug(\n `fallback LLM: resolved runtime auth for \"${model.modelString}\" (source: ${result.source ?? \"unknown\"}, mode: ${result.mode ?? \"unknown\"})`,\n );\n return { apiKey: result.apiKey, baseUrl: result.baseUrl };\n }\n } catch (err) {\n log.debug(\n `fallback LLM: gateway runtime auth failed for \"${model.modelString}\": ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n return null;\n }\n\n /**\n * Resolve API key through the existing provider-level resolution (env vars,\n * secret refs, etc.). Used as fallback when gateway runtime auth isn't available.\n */\n private async resolveFallbackApiKey(model: ModelRef): Promise<string | undefined> {\n return resolveProviderApiKey(\n model.providerId,\n model.providerConfig.apiKey,\n this.gatewayConfig,\n this.runtimeContext.agentDir,\n );\n }\n\n /**\n * Call OpenAI-compatible API.\n */\n private async callOpenAI(\n config: ModelProviderConfig,\n modelId: string,\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions,\n assumeOpenAI: boolean,\n ): Promise<{ content: string; usage?: FallbackLlmResponse[\"usage\"] } | null> {\n const base = config.baseUrl.replace(/\\/$/, \"\");\n const url = base.endsWith(\"/v1\")\n ? `${base}/chat/completions`\n : `${base}/v1/chat/completions`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...config.headers,\n };\n\n // Handle auth — apiKey is already resolved to a string by tryModel()\n if (config.apiKey && typeof config.apiKey === \"string\") {\n if (config.authHeader !== false) {\n headers[\"Authorization\"] = `Bearer ${config.apiKey}`;\n }\n }\n\n const body = {\n model: modelId,\n messages,\n ...buildChatCompletionTemperature(modelId, options.temperature ?? 0.3, {\n assumeOpenAI,\n }),\n ...buildChatCompletionTokenLimit(modelId, options.maxTokens ?? 4096, {\n assumeOpenAI,\n }),\n };\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`OpenAI API error: ${response.status} ${error}`);\n }\n\n const data = (await response.json()) as {\n choices: Array<{\n message: {\n content: string;\n };\n }>;\n usage?: {\n prompt_tokens?: number;\n completion_tokens?: number;\n total_tokens?: number;\n };\n };\n\n const content = data.choices?.[0]?.message?.content;\n if (!content) {\n throw new Error(\"Empty response from OpenAI API\");\n }\n\n return {\n content,\n usage: data.usage\n ? {\n inputTokens: data.usage.prompt_tokens,\n outputTokens: data.usage.completion_tokens,\n totalTokens: data.usage.total_tokens,\n }\n : undefined,\n };\n }\n\n /**\n * Call an OpenAI-compatible Responses API.\n */\n private async callOpenAIResponses(\n config: ModelProviderConfig,\n modelId: string,\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions,\n ): Promise<{ content: string; usage?: FallbackLlmResponse[\"usage\"] } | null> {\n const base = config.baseUrl.replace(/\\/$/, \"\");\n const url = base.endsWith(\"/v1\")\n ? `${base}/responses`\n : `${base}/v1/responses`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...config.headers,\n };\n\n if (config.apiKey && typeof config.apiKey === \"string\" && config.authHeader !== false) {\n headers[\"Authorization\"] = `Bearer ${config.apiKey}`;\n }\n\n const instructions = messages\n .filter((message) => message.role === \"system\")\n .map((message) => message.content)\n .join(\"\\n\\n\")\n .trim();\n const input = messages\n .filter((message) => message.role !== \"system\")\n .map((message) => ({\n role: message.role,\n content: [{\n type: message.role === \"assistant\" ? \"output_text\" : \"input_text\",\n text: message.content,\n }],\n }));\n\n const body: Record<string, unknown> = {\n model: modelId,\n input,\n max_output_tokens: Math.max(0, Math.floor(options.maxTokens ?? 4096)),\n ...buildChatCompletionTemperature(modelId, options.temperature ?? 0.3, {\n assumeOpenAI: shouldAssumeOpenAiChatCompletions(config.baseUrl),\n }),\n };\n if (instructions.length > 0) {\n body.instructions = instructions;\n }\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`OpenAI Responses API error: ${response.status} ${error}`);\n }\n\n const data = (await response.json()) as {\n output_text?: string;\n output?: Array<{\n type?: string;\n text?: string;\n content?: Array<{\n type?: string;\n text?: string;\n }>;\n }>;\n usage?: {\n input_tokens?: number;\n output_tokens?: number;\n total_tokens?: number;\n };\n };\n\n const outputText = extractResponsesOutputText(data);\n if (!outputText) {\n throw new Error(\"Empty response from OpenAI Responses API\");\n }\n\n return {\n content: outputText,\n usage: data.usage\n ? {\n inputTokens: data.usage.input_tokens,\n outputTokens: data.usage.output_tokens,\n totalTokens: data.usage.total_tokens,\n }\n : undefined,\n };\n }\n\n /**\n * Call Anthropic Messages API.\n */\n private async callAnthropic(\n config: ModelProviderConfig,\n modelId: string,\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions,\n ): Promise<{ content: string; usage?: FallbackLlmResponse[\"usage\"] } | null> {\n const base = config.baseUrl.replace(/\\/$/, \"\");\n const url = base.endsWith(\"/v1\")\n ? `${base}/messages`\n : `${base}/v1/messages`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n \"anthropic-version\": \"2023-06-01\",\n ...config.headers,\n };\n\n // Handle auth - Anthropic uses x-api-key header (apiKey resolved by tryModel)\n if (config.apiKey && typeof config.apiKey === \"string\") {\n headers[\"x-api-key\"] = config.apiKey;\n }\n\n // Extract system message (Anthropic handles it separately)\n const systemMessage = messages.find((m) => m.role === \"system\")?.content;\n const nonSystemMessages = messages.filter((m) => m.role !== \"system\");\n\n // Convert messages to Anthropic format\n const anthropicMessages = nonSystemMessages.map((m) => ({\n role: m.role,\n content: m.content,\n }));\n\n const body: Record<string, unknown> = {\n model: modelId,\n messages: anthropicMessages,\n max_tokens: options.maxTokens ?? 4096,\n temperature: options.temperature ?? 0.3,\n };\n\n if (systemMessage) {\n body.system = systemMessage;\n }\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Anthropic API error: ${response.status} ${error}`);\n }\n\n const data = (await response.json()) as {\n content: Array<{\n type: string;\n text: string;\n }>;\n usage?: {\n input_tokens?: number;\n output_tokens?: number;\n };\n };\n\n const content = data.content?.[0]?.text;\n if (!content) {\n throw new Error(\"Empty response from Anthropic API\");\n }\n\n return {\n content,\n usage: data.usage\n ? {\n inputTokens: data.usage.input_tokens,\n outputTokens: data.usage.output_tokens,\n totalTokens: (data.usage.input_tokens ?? 0) + (data.usage.output_tokens ?? 0),\n }\n : undefined,\n };\n }\n}\n\nfunction extractResponsesOutputText(data: {\n output_text?: string;\n output?: Array<{\n type?: string;\n text?: string;\n content?: Array<{\n type?: string;\n text?: string;\n }>;\n }>;\n}): string | null {\n if (typeof data.output_text === \"string\" && data.output_text.trim().length > 0) {\n return data.output_text;\n }\n\n const chunks: string[] = [];\n for (const item of data.output ?? []) {\n if (typeof item.text === \"string\" && item.text.trim().length > 0) {\n chunks.push(item.text);\n }\n for (const part of item.content ?? []) {\n if (\n (part.type === \"output_text\" || part.type === \"text\") &&\n typeof part.text === \"string\" &&\n part.text.trim().length > 0\n ) {\n chunks.push(part.text);\n }\n }\n }\n\n const joined = chunks.join(\"\\n\").trim();\n return joined.length > 0 ? joined : null;\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-DLYTYJ43.js";
6
+ } from "./chunk-XGX4TUF6.js";
7
7
 
8
8
  // src/maintenance/memory-governance.ts
9
9
  import path from "path";
@@ -718,4 +718,4 @@ export {
718
718
  listMemoryGovernanceRuns,
719
719
  readMemoryGovernanceRunArtifact
720
720
  };
721
- //# sourceMappingURL=chunk-AIT53NLG.js.map
721
+ //# sourceMappingURL=chunk-E27HOXMX.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DT5TVLJE.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-DLYTYJ43.js";
10
+ } from "./chunk-XGX4TUF6.js";
11
11
  import {
12
12
  getCachedEpisodeMap,
13
13
  setCachedEpisodeMap
@@ -105,4 +105,4 @@ async function searchVerifiedEpisodes(options) {
105
105
  export {
106
106
  searchVerifiedEpisodes
107
107
  };
108
- //# sourceMappingURL=chunk-LKJA5MR2.js.map
108
+ //# sourceMappingURL=chunk-ETA2JXP5.js.map
@@ -26,11 +26,11 @@ import {
26
26
  } from "./chunk-VEWZZM3H.js";
27
27
  import {
28
28
  FallbackLlmClient
29
- } from "./chunk-3P6TPZM4.js";
29
+ } from "./chunk-DWMXVUGO.js";
30
30
  import {
31
31
  buildChatCompletionTokenLimit,
32
32
  shouldAssumeOpenAiChatCompletions
33
- } from "./chunk-Y27UJK6V.js";
33
+ } from "./chunk-L2EXJQJP.js";
34
34
  import {
35
35
  extractJsonCandidates
36
36
  } from "./chunk-UZB5KHKX.js";
@@ -2275,4 +2275,4 @@ ${memoryList}` }
2275
2275
  export {
2276
2276
  ExtractionEngine
2277
2277
  };
2278
- //# sourceMappingURL=chunk-UE2OQNQQ.js.map
2278
+ //# sourceMappingURL=chunk-FCGWNWG4.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-DT5TVLJE.js";
10
10
  import {
11
11
  StorageManager
12
- } from "./chunk-DLYTYJ43.js";
12
+ } from "./chunk-XGX4TUF6.js";
13
13
  import {
14
14
  isSemanticConsolidationLlmOperator
15
15
  } from "./chunk-G7D6GZ5J.js";
@@ -898,4 +898,4 @@ export {
898
898
  buildExtensionsBlockForConsolidation,
899
899
  materializeAfterSemanticConsolidation
900
900
  };
901
- //# sourceMappingURL=chunk-ZBZVNWQO.js.map
901
+ //# sourceMappingURL=chunk-FIXIX6DE.js.map
@@ -2,7 +2,7 @@ import {
2
2
  CompoundingEngine,
3
3
  SharedContextManager,
4
4
  defaultTierMigrationCycleBudget
5
- } from "./chunk-TMSHGSIG.js";
5
+ } from "./chunk-SRIDOT64.js";
6
6
  import {
7
7
  applyUtilityPromotionRuntimePolicy,
8
8
  applyUtilityRankingRuntimeDelta,
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-UHGBNIOS.js";
23
23
  import {
24
24
  HourlySummarizer
25
- } from "./chunk-BFVBG5XY.js";
25
+ } from "./chunk-S5SQDIF5.js";
26
26
  import {
27
27
  applyTemporalSupersession,
28
28
  normalizeSupersessionKey,
@@ -109,7 +109,7 @@ import {
109
109
  } from "./chunk-YAZNBMNF.js";
110
110
  import {
111
111
  buildExplicitCueRecallSection
112
- } from "./chunk-AKV3HOGZ.js";
112
+ } from "./chunk-KNQ5YJTO.js";
113
113
  import {
114
114
  recordJudgeTrainingPair
115
115
  } from "./chunk-DF3RVK3X.js";
@@ -122,7 +122,7 @@ import {
122
122
  } from "./chunk-C4SQJZAF.js";
123
123
  import {
124
124
  ExtractionEngine
125
- } from "./chunk-UE2OQNQQ.js";
125
+ } from "./chunk-FCGWNWG4.js";
126
126
  import {
127
127
  parseMemoryActionEligibilityContext
128
128
  } from "./chunk-WW3QQF4H.js";
@@ -145,7 +145,7 @@ import {
145
145
  buildEntityRecallSection,
146
146
  entityRecentTranscriptLookbackHours,
147
147
  readRecentEntityTranscriptEntries
148
- } from "./chunk-PT2EZWOH.js";
148
+ } from "./chunk-MYH2IBSP.js";
149
149
  import {
150
150
  buildCompressionGuidelinesMarkdown,
151
151
  computeCompressionGuidelineCandidate,
@@ -158,13 +158,13 @@ import {
158
158
  } from "./chunk-SRBJUAMP.js";
159
159
  import {
160
160
  searchVerifiedEpisodes
161
- } from "./chunk-LKJA5MR2.js";
161
+ } from "./chunk-ETA2JXP5.js";
162
162
  import {
163
163
  ThreadingManager
164
164
  } from "./chunk-JRNQ3RNA.js";
165
165
  import {
166
166
  searchVerifiedSemanticRules
167
- } from "./chunk-ZOMA7J3J.js";
167
+ } from "./chunk-RLV2F337.js";
168
168
  import {
169
169
  searchWorkProductLedgerEntries
170
170
  } from "./chunk-CULXMQJH.js";
@@ -178,7 +178,7 @@ import {
178
178
  createConversationIndexRuntime,
179
179
  createSearchBackend,
180
180
  writeConversationChunks
181
- } from "./chunk-7RAW2T4P.js";
181
+ } from "./chunk-RJSVRPNU.js";
182
182
  import {
183
183
  parseQmdExplain
184
184
  } from "./chunk-WSZIHQBK.js";
@@ -231,10 +231,10 @@ import {
231
231
  materializeAfterSemanticConsolidation,
232
232
  parseConsolidationResponse,
233
233
  parseOperatorAwareConsolidationResponse
234
- } from "./chunk-ZBZVNWQO.js";
234
+ } from "./chunk-FIXIX6DE.js";
235
235
  import {
236
236
  FallbackLlmClient
237
- } from "./chunk-3P6TPZM4.js";
237
+ } from "./chunk-DWMXVUGO.js";
238
238
  import {
239
239
  buildRecallQueryPolicy
240
240
  } from "./chunk-6HZ6AO2P.js";
@@ -266,7 +266,7 @@ import {
266
266
  } from "./chunk-EQINRHYR.js";
267
267
  import {
268
268
  buildXraySnapshot
269
- } from "./chunk-D7WYTVUQ.js";
269
+ } from "./chunk-AV2WSYZY.js";
270
270
  import {
271
271
  shouldSkipImplicitExtraction
272
272
  } from "./chunk-3FPTCC3Z.js";
@@ -306,7 +306,7 @@ import {
306
306
  normalizeAttributePairs,
307
307
  normalizeEntityName,
308
308
  parseEntityFile
309
- } from "./chunk-DLYTYJ43.js";
309
+ } from "./chunk-XGX4TUF6.js";
310
310
  import {
311
311
  attachCitation,
312
312
  hasCitationForTemplate,
@@ -314,7 +314,7 @@ import {
314
314
  } from "./chunk-4KAN3GZ3.js";
315
315
  import {
316
316
  confidenceTier
317
- } from "./chunk-COAGZQT7.js";
317
+ } from "./chunk-T65SHTJP.js";
318
318
  import {
319
319
  isActiveMemoryStatus
320
320
  } from "./chunk-RULE4VG5.js";
@@ -5554,7 +5554,7 @@ ${doc.content}` : doc.content,
5554
5554
  }
5555
5555
  async runDeepSleepGovernanceNow(options) {
5556
5556
  const targetStorage = options?.storage ?? this.storage;
5557
- const { runMemoryGovernance } = await import("./memory-governance-7MI7KE35.js");
5557
+ const { runMemoryGovernance } = await import("./memory-governance-G3XODEXW.js");
5558
5558
  const { summarizeGovernanceResultForDreams } = await import("./dreams-ledger-LR2NBAZE.js");
5559
5559
  const govResult = await runMemoryGovernance({
5560
5560
  memoryDir: targetStorage.dir,
@@ -5940,7 +5940,10 @@ ${evidenceText}`
5940
5940
  await Promise.race([
5941
5941
  this.initPromise.catch(() => void 0),
5942
5942
  new Promise((resolve) => {
5943
- initGateTimeoutHandle = setTimeout(resolve, 15e3);
5943
+ initGateTimeoutHandle = setTimeout(
5944
+ resolve,
5945
+ this.config.initGateTimeoutMs
5946
+ );
5944
5947
  })
5945
5948
  ]);
5946
5949
  } finally {
@@ -6575,13 +6578,12 @@ ${r.snippet.trim()}
6575
6578
  let initGateTimeoutHandle = null;
6576
6579
  let onInitGateAbort = null;
6577
6580
  if (this.initPromise) {
6578
- const INIT_GATE_TIMEOUT_MS = 15e3;
6579
6581
  const gateResult = await Promise.race([
6580
6582
  this.initPromise.then(() => "ok"),
6581
6583
  new Promise((resolve) => {
6582
6584
  initGateTimeoutHandle = setTimeout(
6583
6585
  () => resolve("timeout"),
6584
- INIT_GATE_TIMEOUT_MS
6586
+ this.config.initGateTimeoutMs
6585
6587
  );
6586
6588
  }),
6587
6589
  abortController.signal.aborted ? Promise.resolve("aborted") : new Promise((resolve) => {
@@ -14785,4 +14787,4 @@ export {
14785
14787
  resolvePersistedMemoryRelativePath,
14786
14788
  Orchestrator
14787
14789
  };
14788
- //# sourceMappingURL=chunk-AOABCJVL.js.map
14790
+ //# sourceMappingURL=chunk-GRDDGNYQ.js.map