@remnic/core 10.0.37 → 10.0.38

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 (245) hide show
  1. package/dist/access-admin-ops-surface.js +24 -24
  2. package/dist/access-authorization-probe.js +25 -25
  3. package/dist/access-boundary.js +24 -24
  4. package/dist/access-cli.js +71 -71
  5. package/dist/access-extraction-force-flush.js +24 -24
  6. package/dist/access-http-briefing.js +25 -25
  7. package/dist/access-http-query.js +26 -26
  8. package/dist/access-http.js +41 -41
  9. package/dist/access-identity-continuity-surface.js +24 -24
  10. package/dist/access-lcm-surface.js +24 -24
  11. package/dist/access-mcp.js +34 -34
  12. package/dist/access-namespace-preflight.js +24 -24
  13. package/dist/access-observe-write-surface.js +24 -24
  14. package/dist/access-operations-batch.js +25 -25
  15. package/dist/access-operations.js +32 -32
  16. package/dist/access-recall-concurrency.js +24 -24
  17. package/dist/access-recall-diagnostics.js +2 -2
  18. package/dist/access-recall-response.js +24 -24
  19. package/dist/access-recall-surface.js +24 -24
  20. package/dist/access-service.js +24 -24
  21. package/dist/access-surface-catalog.js +26 -26
  22. package/dist/active-recall.js +5 -5
  23. package/dist/{auto-sync-R3XGJL5I.js → auto-sync-432USQDH.js} +4 -4
  24. package/dist/briefing.js +5 -5
  25. package/dist/buffer.js +3 -3
  26. package/dist/calibration.js +1 -1
  27. package/dist/causal-consolidation.js +6 -6
  28. package/dist/{chunk-FL6SLVAJ.js → chunk-2AKIVSHP.js} +2 -2
  29. package/dist/{chunk-G6PPA4TH.js → chunk-3AODCBKX.js} +2 -2
  30. package/dist/{chunk-MGXFJOUR.js → chunk-3K5IEJTK.js} +2 -2
  31. package/dist/{chunk-YGYT7S3G.js → chunk-3PLAL2KP.js} +15 -1
  32. package/dist/chunk-3PLAL2KP.js.map +1 -0
  33. package/dist/{chunk-WADPRAZE.js → chunk-3XVBGGF3.js} +2 -2
  34. package/dist/{chunk-BPBUUGAO.js → chunk-4B37KNMP.js} +2 -2
  35. package/dist/{chunk-2RJO7VS4.js → chunk-4IZ6AC2U.js} +2 -2
  36. package/dist/{chunk-RBC4GIZU.js → chunk-53BLBDV6.js} +2 -2
  37. package/dist/{chunk-5UWP5X3T.js → chunk-5ANUG4JZ.js} +2 -2
  38. package/dist/{chunk-Y6Y3TRBN.js → chunk-5DCS4C4S.js} +2 -2
  39. package/dist/{chunk-MH3LC7KB.js → chunk-5K23NQRI.js} +2 -2
  40. package/dist/{chunk-UMFBHYPW.js → chunk-5UPOKIFP.js} +8 -8
  41. package/dist/{chunk-U4JXQCJ3.js → chunk-63YPKHAU.js} +2 -2
  42. package/dist/{chunk-S53WZWGL.js → chunk-6DTIYAAN.js} +2 -2
  43. package/dist/{chunk-RWWYBE7E.js → chunk-6F5BGIAF.js} +2 -2
  44. package/dist/{chunk-Z5AQZRHF.js → chunk-6JEEY42N.js} +2 -2
  45. package/dist/{chunk-HKEK27M4.js → chunk-6SYS5YX3.js} +2 -2
  46. package/dist/{chunk-CCYXCT4B.js → chunk-7HXZOWTR.js} +2 -2
  47. package/dist/{chunk-DGBWPSM6.js → chunk-7VFNGQ4V.js} +2 -2
  48. package/dist/{chunk-ARFT6ZBE.js → chunk-7ZRRJ6RG.js} +2 -2
  49. package/dist/{chunk-GMMZ45C4.js → chunk-AVVCPA7U.js} +6 -8
  50. package/dist/chunk-AVVCPA7U.js.map +1 -0
  51. package/dist/{chunk-LSSCMZQ2.js → chunk-AYBAC2N4.js} +3 -3
  52. package/dist/{chunk-EVVCE7S2.js → chunk-C2KOW2UQ.js} +2 -2
  53. package/dist/{chunk-GCVUBVEN.js → chunk-CVMAOPAH.js} +8 -8
  54. package/dist/{chunk-D2AKUKAQ.js → chunk-DG4H56SK.js} +1 -1
  55. package/dist/{chunk-BQ6DGL6A.js → chunk-DKHX2FHI.js} +2 -2
  56. package/dist/{chunk-HRT2SJPC.js → chunk-E3NBMTTX.js} +2 -2
  57. package/dist/{chunk-V5RJCXLG.js → chunk-EGNONTVT.js} +5 -5
  58. package/dist/{chunk-7PG7QBWD.js → chunk-FGEY2AGV.js} +2 -2
  59. package/dist/{chunk-O6YJI5VX.js → chunk-FKTMWDN2.js} +2 -2
  60. package/dist/{chunk-QIC7YZ3D.js → chunk-FQFMLOAC.js} +12 -12
  61. package/dist/{chunk-ID2PLENW.js → chunk-GGI6FLO6.js} +2 -2
  62. package/dist/{chunk-KC5SVCUJ.js → chunk-I75BWXRZ.js} +2 -2
  63. package/dist/{chunk-ULUX6Q7R.js → chunk-J7G656MY.js} +3 -3
  64. package/dist/{chunk-VKTP3TZB.js → chunk-JF3MEIHO.js} +2 -2
  65. package/dist/{chunk-A23DPFFI.js → chunk-JIA435P3.js} +2 -2
  66. package/dist/{chunk-USOXPN5H.js → chunk-KOAVX2IT.js} +2 -2
  67. package/dist/{chunk-Z5QWUR3Y.js → chunk-L7PGPH4E.js} +2 -2
  68. package/dist/{chunk-5U3NUHMA.js → chunk-LOMSBYNS.js} +33 -33
  69. package/dist/{chunk-FO5AFCRI.js → chunk-MCPSMWUC.js} +4 -4
  70. package/dist/{chunk-64IO6ZEE.js → chunk-MZWHIAOL.js} +2 -2
  71. package/dist/{chunk-LDXS746V.js → chunk-N7DVBHU3.js} +3 -3
  72. package/dist/{chunk-WSLNC5AL.js → chunk-NH6GZEQN.js} +3 -3
  73. package/dist/{chunk-3L5WH6CV.js → chunk-OKKBOTRA.js} +2 -2
  74. package/dist/{chunk-MBMT5FUQ.js → chunk-OLH4XCLU.js} +2 -2
  75. package/dist/{chunk-UXXVOA4D.js → chunk-OLHN4ZNT.js} +2 -2
  76. package/dist/{chunk-LRJKHXU4.js → chunk-POGPI5GR.js} +2 -2
  77. package/dist/{chunk-RVYXSS3Q.js → chunk-QO5KDQGG.js} +3 -3
  78. package/dist/{chunk-7ZBANI3M.js → chunk-QOUKZ2N3.js} +2 -2
  79. package/dist/{chunk-HIMXDRSQ.js → chunk-RGKXF4W3.js} +2 -2
  80. package/dist/{chunk-CNQQNYJ2.js → chunk-RWRHGE75.js} +2 -2
  81. package/dist/{chunk-6R6CU3MR.js → chunk-SWZOAQUM.js} +22 -22
  82. package/dist/{chunk-FBAHBFT5.js → chunk-SZPPCEYT.js} +2 -2
  83. package/dist/{chunk-QEGE5QCL.js → chunk-TAEJ2MRR.js} +19 -19
  84. package/dist/{chunk-BBDASWNT.js → chunk-TJ5YGCPV.js} +81 -76
  85. package/dist/chunk-TJ5YGCPV.js.map +1 -0
  86. package/dist/{chunk-G2SRB62M.js → chunk-TXP7Q7T5.js} +2 -2
  87. package/dist/{chunk-NSQSOLCE.js → chunk-TYLNWE4D.js} +2 -2
  88. package/dist/{chunk-A6PKEU7T.js → chunk-UFM3PJDT.js} +1 -1
  89. package/dist/chunk-UFM3PJDT.js.map +1 -0
  90. package/dist/{chunk-MNDHKZZQ.js → chunk-VC3X7XP3.js} +2 -2
  91. package/dist/{chunk-PTRPOJ7U.js → chunk-VGRM43X6.js} +2 -2
  92. package/dist/{chunk-DK5VMJL3.js → chunk-VSSQIBVU.js} +2 -2
  93. package/dist/{chunk-R6TCM47S.js → chunk-WCBLPKG3.js} +3 -3
  94. package/dist/{chunk-UQWA5QDT.js → chunk-WCIDCJOQ.js} +2 -2
  95. package/dist/{chunk-UFBIOF7C.js → chunk-WEK3OUGO.js} +2 -2
  96. package/dist/{chunk-5EILJ6W2.js → chunk-WXPBDEMW.js} +2 -2
  97. package/dist/{chunk-CU7WDDPV.js → chunk-X247CYL6.js} +3 -3
  98. package/dist/{chunk-JWTUJVIF.js → chunk-XHVO3CGX.js} +2 -2
  99. package/dist/{chunk-3BPMYMPX.js → chunk-XHX67LX6.js} +2 -2
  100. package/dist/{chunk-LAQS5HYU.js → chunk-Y5ZHZKZD.js} +2 -2
  101. package/dist/{chunk-L46Y5FPE.js → chunk-YYGZ4EIY.js} +2 -2
  102. package/dist/{chunk-NQOM6PHO.js → chunk-ZAP7BKTZ.js} +3 -3
  103. package/dist/cli.js +54 -54
  104. package/dist/coding/export-okf-codegraph.js +4 -4
  105. package/dist/compounding/engine.js +6 -6
  106. package/dist/config.d.ts.map +1 -1
  107. package/dist/config.js +5 -5
  108. package/dist/connectors/codex-materialize-runner.js +5 -5
  109. package/dist/connectors/index.js +5 -5
  110. package/dist/convergence-refresh.js +7 -7
  111. package/dist/corpus-watermark.js +7 -7
  112. package/dist/deep-recall-policy-llm.js +2 -2
  113. package/dist/entity-retrieval.js +5 -5
  114. package/dist/external-wiki-access.js +25 -25
  115. package/dist/extraction-faithfulness.js +2 -2
  116. package/dist/extraction-judge.d.ts +42 -2
  117. package/dist/extraction-judge.d.ts.map +1 -1
  118. package/dist/extraction-judge.js +12 -2
  119. package/dist/extraction.js +9 -9
  120. package/dist/fallback-llm.d.ts +1 -0
  121. package/dist/fallback-llm.d.ts.map +1 -1
  122. package/dist/fallback-llm.js +1 -1
  123. package/dist/harmonic-retrieval.js +5 -5
  124. package/dist/index.js +71 -71
  125. package/dist/location/index.js +7 -7
  126. package/dist/maintenance/memory-governance.js +5 -5
  127. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
  128. package/dist/maintenance/rebuild-memory-projection-runner.js +7 -7
  129. package/dist/maintenance/rebuild-memory-projection.js +6 -6
  130. package/dist/memory-browse-operations.js +25 -25
  131. package/dist/memory-browse.js +3 -3
  132. package/dist/namespaces/migrate.js +6 -6
  133. package/dist/namespaces/storage.js +5 -5
  134. package/dist/operator-doctor-corpus.js +8 -8
  135. package/dist/operator-toolkit.js +14 -14
  136. package/dist/orchestration/maintenance.js +15 -15
  137. package/dist/orchestrator.js +71 -71
  138. package/dist/recall-explain-renderer.js +3 -3
  139. package/dist/recall-navigate-access.js +2 -2
  140. package/dist/recall-navigate-disclosure.js +2 -2
  141. package/dist/recall-navigate.js +2 -2
  142. package/dist/recall-navigation-operations.js +25 -25
  143. package/dist/recall-navigation.js +24 -24
  144. package/dist/recall-planner-llm.js +1 -1
  145. package/dist/recall-state-view-admission.js +3 -3
  146. package/dist/recall-why-service.js +3 -3
  147. package/dist/recall-xray-cli.js +4 -4
  148. package/dist/recall-xray-renderer.js +3 -3
  149. package/dist/recall-xray.js +2 -2
  150. package/dist/resume-bundles.js +6 -6
  151. package/dist/semantic-consolidation.js +6 -6
  152. package/dist/semantic-rule-promotion.js +5 -5
  153. package/dist/semantic-rule-verifier.js +5 -5
  154. package/dist/source-agent-qualifier.js +8 -8
  155. package/dist/standup/build.js +5 -5
  156. package/dist/storage.js +4 -4
  157. package/dist/summarizer.js +2 -2
  158. package/dist/support-passport/index.js +27 -27
  159. package/dist/transfer/export-okf.js +5 -5
  160. package/dist/types.d.ts +12 -0
  161. package/dist/types.d.ts.map +1 -1
  162. package/dist/types.js +1 -1
  163. package/dist/verified-recall.js +5 -5
  164. package/dist/who-knows-cli.js +6 -6
  165. package/dist/who-knows.js +5 -5
  166. package/package.json +2 -2
  167. package/src/config.test.ts +16 -0
  168. package/src/config.ts +14 -0
  169. package/src/extraction-judge-chain.test.ts +298 -2
  170. package/src/extraction-judge.ts +147 -82
  171. package/src/fallback-llm.test.ts +94 -0
  172. package/src/fallback-llm.ts +7 -7
  173. package/src/types.ts +12 -0
  174. package/dist/chunk-A6PKEU7T.js.map +0 -1
  175. package/dist/chunk-BBDASWNT.js.map +0 -1
  176. package/dist/chunk-GMMZ45C4.js.map +0 -1
  177. package/dist/chunk-YGYT7S3G.js.map +0 -1
  178. /package/dist/{auto-sync-R3XGJL5I.js.map → auto-sync-432USQDH.js.map} +0 -0
  179. /package/dist/{chunk-FL6SLVAJ.js.map → chunk-2AKIVSHP.js.map} +0 -0
  180. /package/dist/{chunk-G6PPA4TH.js.map → chunk-3AODCBKX.js.map} +0 -0
  181. /package/dist/{chunk-MGXFJOUR.js.map → chunk-3K5IEJTK.js.map} +0 -0
  182. /package/dist/{chunk-WADPRAZE.js.map → chunk-3XVBGGF3.js.map} +0 -0
  183. /package/dist/{chunk-BPBUUGAO.js.map → chunk-4B37KNMP.js.map} +0 -0
  184. /package/dist/{chunk-2RJO7VS4.js.map → chunk-4IZ6AC2U.js.map} +0 -0
  185. /package/dist/{chunk-RBC4GIZU.js.map → chunk-53BLBDV6.js.map} +0 -0
  186. /package/dist/{chunk-5UWP5X3T.js.map → chunk-5ANUG4JZ.js.map} +0 -0
  187. /package/dist/{chunk-Y6Y3TRBN.js.map → chunk-5DCS4C4S.js.map} +0 -0
  188. /package/dist/{chunk-MH3LC7KB.js.map → chunk-5K23NQRI.js.map} +0 -0
  189. /package/dist/{chunk-UMFBHYPW.js.map → chunk-5UPOKIFP.js.map} +0 -0
  190. /package/dist/{chunk-U4JXQCJ3.js.map → chunk-63YPKHAU.js.map} +0 -0
  191. /package/dist/{chunk-S53WZWGL.js.map → chunk-6DTIYAAN.js.map} +0 -0
  192. /package/dist/{chunk-RWWYBE7E.js.map → chunk-6F5BGIAF.js.map} +0 -0
  193. /package/dist/{chunk-Z5AQZRHF.js.map → chunk-6JEEY42N.js.map} +0 -0
  194. /package/dist/{chunk-HKEK27M4.js.map → chunk-6SYS5YX3.js.map} +0 -0
  195. /package/dist/{chunk-CCYXCT4B.js.map → chunk-7HXZOWTR.js.map} +0 -0
  196. /package/dist/{chunk-DGBWPSM6.js.map → chunk-7VFNGQ4V.js.map} +0 -0
  197. /package/dist/{chunk-ARFT6ZBE.js.map → chunk-7ZRRJ6RG.js.map} +0 -0
  198. /package/dist/{chunk-LSSCMZQ2.js.map → chunk-AYBAC2N4.js.map} +0 -0
  199. /package/dist/{chunk-EVVCE7S2.js.map → chunk-C2KOW2UQ.js.map} +0 -0
  200. /package/dist/{chunk-GCVUBVEN.js.map → chunk-CVMAOPAH.js.map} +0 -0
  201. /package/dist/{chunk-D2AKUKAQ.js.map → chunk-DG4H56SK.js.map} +0 -0
  202. /package/dist/{chunk-BQ6DGL6A.js.map → chunk-DKHX2FHI.js.map} +0 -0
  203. /package/dist/{chunk-HRT2SJPC.js.map → chunk-E3NBMTTX.js.map} +0 -0
  204. /package/dist/{chunk-V5RJCXLG.js.map → chunk-EGNONTVT.js.map} +0 -0
  205. /package/dist/{chunk-7PG7QBWD.js.map → chunk-FGEY2AGV.js.map} +0 -0
  206. /package/dist/{chunk-O6YJI5VX.js.map → chunk-FKTMWDN2.js.map} +0 -0
  207. /package/dist/{chunk-QIC7YZ3D.js.map → chunk-FQFMLOAC.js.map} +0 -0
  208. /package/dist/{chunk-ID2PLENW.js.map → chunk-GGI6FLO6.js.map} +0 -0
  209. /package/dist/{chunk-KC5SVCUJ.js.map → chunk-I75BWXRZ.js.map} +0 -0
  210. /package/dist/{chunk-ULUX6Q7R.js.map → chunk-J7G656MY.js.map} +0 -0
  211. /package/dist/{chunk-VKTP3TZB.js.map → chunk-JF3MEIHO.js.map} +0 -0
  212. /package/dist/{chunk-A23DPFFI.js.map → chunk-JIA435P3.js.map} +0 -0
  213. /package/dist/{chunk-USOXPN5H.js.map → chunk-KOAVX2IT.js.map} +0 -0
  214. /package/dist/{chunk-Z5QWUR3Y.js.map → chunk-L7PGPH4E.js.map} +0 -0
  215. /package/dist/{chunk-5U3NUHMA.js.map → chunk-LOMSBYNS.js.map} +0 -0
  216. /package/dist/{chunk-FO5AFCRI.js.map → chunk-MCPSMWUC.js.map} +0 -0
  217. /package/dist/{chunk-64IO6ZEE.js.map → chunk-MZWHIAOL.js.map} +0 -0
  218. /package/dist/{chunk-LDXS746V.js.map → chunk-N7DVBHU3.js.map} +0 -0
  219. /package/dist/{chunk-WSLNC5AL.js.map → chunk-NH6GZEQN.js.map} +0 -0
  220. /package/dist/{chunk-3L5WH6CV.js.map → chunk-OKKBOTRA.js.map} +0 -0
  221. /package/dist/{chunk-MBMT5FUQ.js.map → chunk-OLH4XCLU.js.map} +0 -0
  222. /package/dist/{chunk-UXXVOA4D.js.map → chunk-OLHN4ZNT.js.map} +0 -0
  223. /package/dist/{chunk-LRJKHXU4.js.map → chunk-POGPI5GR.js.map} +0 -0
  224. /package/dist/{chunk-RVYXSS3Q.js.map → chunk-QO5KDQGG.js.map} +0 -0
  225. /package/dist/{chunk-7ZBANI3M.js.map → chunk-QOUKZ2N3.js.map} +0 -0
  226. /package/dist/{chunk-HIMXDRSQ.js.map → chunk-RGKXF4W3.js.map} +0 -0
  227. /package/dist/{chunk-CNQQNYJ2.js.map → chunk-RWRHGE75.js.map} +0 -0
  228. /package/dist/{chunk-6R6CU3MR.js.map → chunk-SWZOAQUM.js.map} +0 -0
  229. /package/dist/{chunk-FBAHBFT5.js.map → chunk-SZPPCEYT.js.map} +0 -0
  230. /package/dist/{chunk-QEGE5QCL.js.map → chunk-TAEJ2MRR.js.map} +0 -0
  231. /package/dist/{chunk-G2SRB62M.js.map → chunk-TXP7Q7T5.js.map} +0 -0
  232. /package/dist/{chunk-NSQSOLCE.js.map → chunk-TYLNWE4D.js.map} +0 -0
  233. /package/dist/{chunk-MNDHKZZQ.js.map → chunk-VC3X7XP3.js.map} +0 -0
  234. /package/dist/{chunk-PTRPOJ7U.js.map → chunk-VGRM43X6.js.map} +0 -0
  235. /package/dist/{chunk-DK5VMJL3.js.map → chunk-VSSQIBVU.js.map} +0 -0
  236. /package/dist/{chunk-R6TCM47S.js.map → chunk-WCBLPKG3.js.map} +0 -0
  237. /package/dist/{chunk-UQWA5QDT.js.map → chunk-WCIDCJOQ.js.map} +0 -0
  238. /package/dist/{chunk-UFBIOF7C.js.map → chunk-WEK3OUGO.js.map} +0 -0
  239. /package/dist/{chunk-5EILJ6W2.js.map → chunk-WXPBDEMW.js.map} +0 -0
  240. /package/dist/{chunk-CU7WDDPV.js.map → chunk-X247CYL6.js.map} +0 -0
  241. /package/dist/{chunk-JWTUJVIF.js.map → chunk-XHVO3CGX.js.map} +0 -0
  242. /package/dist/{chunk-3BPMYMPX.js.map → chunk-XHX67LX6.js.map} +0 -0
  243. /package/dist/{chunk-LAQS5HYU.js.map → chunk-Y5ZHZKZD.js.map} +0 -0
  244. /package/dist/{chunk-L46Y5FPE.js.map → chunk-YYGZ4EIY.js.map} +0 -0
  245. /package/dist/{chunk-NQOM6PHO.js.map → chunk-ZAP7BKTZ.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-QEGE5QCL.js";
6
+ } from "./chunk-TAEJ2MRR.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-WADPRAZE.js.map
29
+ //# sourceMappingURL=chunk-3XVBGGF3.js.map
@@ -2,7 +2,7 @@ import {
2
2
  SupportPassportError,
3
3
  SupportPassportOwnerCreateGrantRequestSchema,
4
4
  getOperation
5
- } from "./chunk-QEGE5QCL.js";
5
+ } from "./chunk-TAEJ2MRR.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-BPBUUGAO.js.map
140
+ //# sourceMappingURL=chunk-4B37KNMP.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportCreateGrantRequestSchema,
3
3
  defineOperation
4
- } from "./chunk-QEGE5QCL.js";
4
+ } from "./chunk-TAEJ2MRR.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-2RJO7VS4.js.map
223
+ //# sourceMappingURL=chunk-4IZ6AC2U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runLocationSync
3
- } from "./chunk-ULUX6Q7R.js";
3
+ } from "./chunk-J7G656MY.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-3WCASNQZ.js";
@@ -58,4 +58,4 @@ export {
58
58
  LOCATION_SYNC_DEFAULT_INTERVAL_MS,
59
59
  startLocationAutoSync
60
60
  };
61
- //# sourceMappingURL=chunk-RBC4GIZU.js.map
61
+ //# sourceMappingURL=chunk-53BLBDV6.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getOperation,
4
4
  operationRequiresAuthorizedNamespace,
5
5
  operationUsesPrincipalNamespace
6
- } from "./chunk-QEGE5QCL.js";
6
+ } from "./chunk-TAEJ2MRR.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-5UWP5X3T.js.map
63
+ //# sourceMappingURL=chunk-5ANUG4JZ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KJTKLXTH.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-R6TCM47S.js";
6
+ } from "./chunk-WCBLPKG3.js";
7
7
  import {
8
8
  assertInjectedStorageRooted
9
9
  } from "./chunk-UJDTXWMT.js";
@@ -260,4 +260,4 @@ export {
260
260
  backupExistingLedger,
261
261
  rebuildMemoryLifecycleLedger
262
262
  };
263
- //# sourceMappingURL=chunk-Y6Y3TRBN.js.map
263
+ //# sourceMappingURL=chunk-5DCS4C4S.js.map
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-ZCUTSMR2.js";
14
14
  import {
15
15
  StorageManager
16
- } from "./chunk-R6TCM47S.js";
16
+ } from "./chunk-WCBLPKG3.js";
17
17
  import {
18
18
  excludeSupportPassportPrivateMemories
19
19
  } from "./chunk-PWPIERBM.js";
@@ -134,4 +134,4 @@ export {
134
134
  runCodexMaterialize,
135
135
  runPostConsolidationMaterialize
136
136
  };
137
- //# sourceMappingURL=chunk-MH3LC7KB.js.map
137
+ //# sourceMappingURL=chunk-5K23NQRI.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PROJECTION_REBUILD_RUNNER_FLAG
3
- } from "./chunk-USOXPN5H.js";
3
+ } from "./chunk-KOAVX2IT.js";
4
4
  import {
5
5
  ensureContradictionScanCron,
6
6
  ensureDaySummaryCron,
@@ -12,23 +12,23 @@ import {
12
12
  } from "./chunk-666A3MOW.js";
13
13
  import {
14
14
  startLocationAutoSync
15
- } from "./chunk-RBC4GIZU.js";
15
+ } from "./chunk-53BLBDV6.js";
16
16
  import {
17
17
  CompoundingEngine,
18
18
  isIsoWeekId,
19
19
  msUntilNextIsoWeek,
20
20
  previousIsoWeekId
21
- } from "./chunk-NQOM6PHO.js";
21
+ } from "./chunk-ZAP7BKTZ.js";
22
22
  import {
23
23
  rebuildMemoryLifecycleLedger
24
- } from "./chunk-Y6Y3TRBN.js";
24
+ } from "./chunk-5DCS4C4S.js";
25
25
  import {
26
26
  planNamespaceMaintenance,
27
27
  runNamespaceMaintenanceBatchPlan
28
- } from "./chunk-LSSCMZQ2.js";
28
+ } from "./chunk-AYBAC2N4.js";
29
29
  import {
30
30
  rebuildMemoryProjection
31
- } from "./chunk-CU7WDDPV.js";
31
+ } from "./chunk-X247CYL6.js";
32
32
  import {
33
33
  DEFAULT_TIMELINE_CATEGORIES,
34
34
  TIMELINE_RESERVED_IDLE,
@@ -48,7 +48,7 @@ import {
48
48
  } from "./chunk-74AY3S7U.js";
49
49
  import {
50
50
  FallbackLlmClient
51
- } from "./chunk-GMMZ45C4.js";
51
+ } from "./chunk-AVVCPA7U.js";
52
52
  import {
53
53
  fallbackLlmRuntimeContextFromConfig
54
54
  } from "./chunk-YIJECSIX.js";
@@ -2793,4 +2793,4 @@ export {
2793
2793
  ActivitySyncScheduler,
2794
2794
  MaintenanceScheduler
2795
2795
  };
2796
- //# sourceMappingURL=chunk-UMFBHYPW.js.map
2796
+ //# sourceMappingURL=chunk-5UPOKIFP.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-5TJEOU6Y.js";
11
11
  import {
12
12
  deriveSourceConnector
13
- } from "./chunk-UFBIOF7C.js";
13
+ } from "./chunk-WEK3OUGO.js";
14
14
  import {
15
15
  resolvePipelineProcessingCapabilities
16
16
  } from "./chunk-C5LWPYS3.js";
@@ -112,4 +112,4 @@ export {
112
112
  renderExtractionConversation,
113
113
  applyGroundingWithConnector
114
114
  };
115
- //# sourceMappingURL=chunk-U4JXQCJ3.js.map
115
+ //# sourceMappingURL=chunk-63YPKHAU.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-FRXS6SC7.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-R6TCM47S.js";
9
+ } from "./chunk-WCBLPKG3.js";
10
10
  import {
11
11
  normalizeEntityName
12
12
  } from "./chunk-YXZG5TVN.js";
@@ -962,4 +962,4 @@ export {
962
962
  resolveBriefingSaveDir,
963
963
  briefingFilename
964
964
  };
965
- //# sourceMappingURL=chunk-S53WZWGL.js.map
965
+ //# sourceMappingURL=chunk-6DTIYAAN.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-3UXOZBHV.js";
15
15
  import {
16
16
  StorageManager
17
- } from "./chunk-R6TCM47S.js";
17
+ } from "./chunk-WCBLPKG3.js";
18
18
  import {
19
19
  OKF_PROFILE_TYPE,
20
20
  okfTypeForMemory
@@ -272,4 +272,4 @@ export {
272
272
  exportOkfBundle,
273
273
  firstHeading
274
274
  };
275
- //# sourceMappingURL=chunk-RWWYBE7E.js.map
275
+ //# sourceMappingURL=chunk-6F5BGIAF.js.map
@@ -3,7 +3,7 @@ import {
3
3
  isArtifactMemoryPath,
4
4
  isLocationDayPath,
5
5
  isMeetingRecordPath
6
- } from "./chunk-D2AKUKAQ.js";
6
+ } from "./chunk-DG4H56SK.js";
7
7
  import {
8
8
  isExternalWikiCollectionName
9
9
  } from "./chunk-JV3C2MNQ.js";
@@ -228,4 +228,4 @@ export {
228
228
  isGenericRecallExcludedPath,
229
229
  filterRecallCandidates
230
230
  };
231
- //# sourceMappingURL=chunk-Z5AQZRHF.js.map
231
+ //# sourceMappingURL=chunk-6JEEY42N.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-QEGE5QCL.js";
3
+ } from "./chunk-TAEJ2MRR.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-HKEK27M4.js.map
95
+ //# sourceMappingURL=chunk-6SYS5YX3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isNamespaceKind
3
- } from "./chunk-7PG7QBWD.js";
3
+ } from "./chunk-FGEY2AGV.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-3MUKQQ7A.js";
@@ -40,4 +40,4 @@ export {
40
40
  positiveIntQueryParam,
41
41
  optionalNamespaceKindQueryParam
42
42
  };
43
- //# sourceMappingURL=chunk-CCYXCT4B.js.map
43
+ //# sourceMappingURL=chunk-7HXZOWTR.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  RECALL_DISCLOSURE_LEVELS,
3
3
  isRecallDisclosure
4
- } from "./chunk-A6PKEU7T.js";
4
+ } from "./chunk-UFM3PJDT.js";
5
5
 
6
6
  // src/recall-navigate-disclosure.ts
7
7
  function disclosureRank(level) {
@@ -27,4 +27,4 @@ export {
27
27
  disclosureRank,
28
28
  planDisclosureStep
29
29
  };
30
- //# sourceMappingURL=chunk-DGBWPSM6.js.map
30
+ //# sourceMappingURL=chunk-7VFNGQ4V.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5HFVWYHL.js";
4
4
  import {
5
5
  isGenericRecallExcludedPath
6
- } from "./chunk-Z5AQZRHF.js";
6
+ } from "./chunk-6JEEY42N.js";
7
7
  import {
8
8
  planRecallMode
9
9
  } from "./chunk-CSAKJVXW.js";
@@ -132,4 +132,4 @@ async function findExpectedMemory(orchestrator, namespaces, expect) {
132
132
  export {
133
133
  runRecallWhy
134
134
  };
135
- //# sourceMappingURL=chunk-ARFT6ZBE.js.map
135
+ //# sourceMappingURL=chunk-7ZRRJ6RG.js.map
@@ -545,19 +545,17 @@ var FallbackLlmClient = class {
545
545
  if (model.providerConfig.api === "ollama-chat") {
546
546
  return await this.callOllamaChat(effectiveConfig, model.modelId, messages, options);
547
547
  }
548
+ const wanted = Math.floor(options.reasoningHeadroomTokens ?? 0);
549
+ const headroom = Number.isFinite(wanted) ? Math.max(0, wanted) : 0;
550
+ const capped = options.maxTokens === void 0 ? options : { ...options, maxTokens: options.maxTokens + headroom };
548
551
  if (model.providerConfig.api === "openai-responses" || model.providerConfig.api === "openai-codex-responses" || model.providerConfig.api === "azure-openai-responses") {
549
- return await this.callOpenAIResponses(
550
- effectiveConfig,
551
- model.modelId,
552
- messages,
553
- options
554
- );
552
+ return await this.callOpenAIResponses(effectiveConfig, model.modelId, messages, capped);
555
553
  }
556
554
  return await this.callOpenAI(
557
555
  effectiveConfig,
558
556
  model.modelId,
559
557
  messages,
560
- options,
558
+ capped,
561
559
  shouldAssumeOpenAiChatCompletions(effectiveConfig.baseUrl)
562
560
  );
563
561
  }
@@ -845,4 +843,4 @@ export {
845
843
  gatewayTaskChainOptions,
846
844
  FallbackLlmClient
847
845
  };
848
- //# sourceMappingURL=chunk-GMMZ45C4.js.map
846
+ //# sourceMappingURL=chunk-AVVCPA7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fallback-llm.ts"],"sourcesContent":["import { log } from \"./logger.js\";\nimport type { AgentPersonaModelConfig, GatewayConfig, ModelProviderConfig, PluginConfig } from \"./types.js\";\nimport { extractJsonCandidates } from \"./json-extract.js\";\nimport {\n buildChatCompletionTemperature,\n buildChatCompletionTokenLimit,\n shouldAssumeOpenAiChatCompletions,\n} from \"./openai-chat-compat.js\";\nimport {\n resolveProviderApiKey,\n getGatewayRuntimeAuthForModel,\n} from \"./resolve-provider-secret.js\";\nimport {\n CODEX_SUBSCRIPTION_PROVIDER_ID,\n codexSubscriptionBuiltinProviderConfig,\n} from \"./providers/codex-subscription.js\";\nimport { loadModelsJsonProviders } from \"./models-json.js\";\nimport {\n abortReason,\n classifyThrownProviderError,\n codexDeadlineHeadroomMs,\n defaultOpenClawWorkspaceDir,\n extractResponsesOutputText,\n fallbackLlmRuntimeContextFromConfig,\n isTerminalCodexSubscriptionError,\n isTimeoutError,\n isUnsupportedJsonSchemaError,\n normalizeRuntimePath,\n raceFallbackLlmDeadline,\n readGatewayWorkspaceDir,\n tryCodexSubscriptionProvider,\n withCodexRuntimeShutdown,\n type FallbackLlmRuntimeContext,\n type StructuredParseFailure,\n type StructuredParseResult,\n} from \"./fallback-llm-codex-subscription.js\";\n\nexport {\n fallbackLlmRuntimeContextFromConfig,\n type FallbackLlmRuntimeContext,\n type StructuredParseFailure,\n type StructuredParseFailureReason,\n type StructuredParseResult,\n} from \"./fallback-llm-codex-subscription.js\";\n\nexport interface FallbackLlmOptions {\n temperature?: number;\n maxTokens?: number;\n reasoningHeadroomTokens?: number; // Responses API only: extra max_output_tokens for reasoning (they count against it); unset adds none\n timeoutMs?: number;\n signal?: AbortSignal;\n /** Set the Responses API storage policy. Other transports ignore this value. */\n store?: boolean;\n /** Request strict JSON output when a route uses the Responses API. */\n responsesJsonSchema?: { name: string; schema: Record<string, unknown> };\n /** Request provider-native structured output on supported JSON transports. */\n jsonSchema?: { name: string; schema: Record<string, unknown>; strict?: boolean };\n /** Hide provider error details that could echo private request content. */\n redactProviderErrors?: boolean;\n /** Explicit \"provider/model\" override to try before the configured chain. */\n model?: string;\n /** Explicit model chain override to use instead of the configured agent/default chain. */\n modelChain?: AgentPersonaModelConfig;\n /** Append the gateway default chain after an explicit model chain. */\n includeDefaultModelFallback?: boolean;\n /** Override which agent persona's model chain to use (by ID from agents.list[]). */\n agentId?: string;\n /** Reject a transport-successful response and continue through the configured model chain. */\n acceptResponse?: (response: FallbackLlmResponse) => boolean;\n /**\n * Optional out-box for the terminal failure cause (issue #2891): when every\n * model in the chain fails, the last thrown provider error is recorded here\n * so 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 FallbackLlmAvailabilityOptions {\n agentId?: string;\n modelChain?: AgentPersonaModelConfig;\n}\n\n/**\n * Resolve the gateway routing options Remnic's background tasks should pass to\n * FallbackLlmClient — extraction, fact/profile/identity consolidation,\n * summarization, calibration, and causal/semantic consolidation. Single source\n * of truth so every task path stays consistent and can't diverge (gotcha #22):\n * in gateway mode an explicit `taskModelChain` wins over the gateway agent\n * persona; otherwise the persona (if any) is used. Returns `{}` in plugin mode\n * because the chain resolves through gateway providers only. Issue #1365.\n */\nexport function gatewayTaskChainOptions(\n config: Pick<PluginConfig, \"modelSource\" | \"taskModelChain\" | \"gatewayAgentId\">,\n): Pick<FallbackLlmOptions, \"modelChain\" | \"agentId\"> {\n if (config.modelSource !== \"gateway\") return {};\n if (config.taskModelChain) return { modelChain: config.taskModelChain };\n return config.gatewayAgentId ? { agentId: config.gatewayAgentId } : {};\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\ntype ChatCompletionOutcome =\n | { ok: true; response: FallbackLlmResponse }\n | { ok: false; failure: Omit<StructuredParseFailure, \"result\"> };\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 MANAGED_SECRETREF_MARKER = [\"secretref\", \"managed\"].join(\"-\");\nconst PROVIDER_API_KEY_FIELD = [\"api\", \"Key\"].join(\"\") as keyof ModelProviderConfig;\n\n/** Built-in OAuth/managed-auth providers so resolveProviderConfig reaches runtime auth. */\nconst BUILT_IN_PROVIDER_FALLBACKS: Record<string, ModelProviderConfig> = {\n anthropic: {\n baseUrl: \"https://api.anthropic.com/v1\",\n api: \"anthropic-messages\",\n models: [],\n [PROVIDER_API_KEY_FIELD]: MANAGED_SECRETREF_MARKER,\n },\n openai: {\n baseUrl: \"https://api.openai.com/v1\",\n api: \"openai-responses\",\n models: [],\n [PROVIDER_API_KEY_FIELD]: MANAGED_SECRETREF_MARKER,\n },\n // Subscription-OAuth extraction provider (issue #2784): no apiKey — the\n // codex CLI login authenticates, via the runner the codex-subscription\n // module registers on this same seam.\n [CODEX_SUBSCRIPTION_PROVIDER_ID]: codexSubscriptionBuiltinProviderConfig(),\n};\n\n/**\n * Gateway/task LLM client. In `modelSource: \"gateway\"` this is the primary\n * configured path (taskModelChain / agent persona), not a secondary recovery\n * client. The class name stays `FallbackLlmClient` because it is imported\n * widely; prefer the `TaskLlmClient` alias in new code. Issue #2967.\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 = {\n ...runtimeContext,\n workspaceDir:\n normalizeRuntimePath(runtimeContext.workspaceDir) ??\n readGatewayWorkspaceDir(gatewayConfig) ??\n defaultOpenClawWorkspaceDir(),\n };\n }\n\n /**\n * Check if fallback is available (gateway config has at least one model).\n */\n isAvailable(agentIdOrOptions?: string | FallbackLlmAvailabilityOptions): boolean {\n const options = typeof agentIdOrOptions === \"string\"\n ? { agentId: agentIdOrOptions }\n : (agentIdOrOptions ?? {});\n const models = this.getModelChain(options.agentId, undefined, options.modelChain);\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 outcome = await this.completeChat(messages, options);\n return outcome.ok ? outcome.response : null;\n }\n\n /**\n * Same transport walk as chatCompletion, but tagged so structured parse can\n * tell timeout / empty / HTTP error apart instead of collapsing them to null.\n */\n private async completeChat(\n messages: Array<{ role: \"system\" | \"user\" | \"assistant\"; content: string }>,\n options: FallbackLlmOptions = {},\n ): Promise<ChatCompletionOutcome> {\n const models = this.getModelChain(\n options.agentId,\n options.model,\n options.modelChain,\n options.includeDefaultModelFallback,\n );\n if (models.length === 0) {\n log.warn(\"task LLM: no models configured in gateway\");\n return { ok: false, failure: { failureReason: \"no_models\", errorClass: \"no_models\" } };\n }\n options = withCodexRuntimeShutdown(options, this.runtimeContext.codexSubscriptionRunner);\n\n let lastFailure: Omit<StructuredParseFailure, \"result\"> = {\n failureReason: \"http_error\",\n errorClass: \"network\",\n };\n\n const recordFailure = (\n failure: Omit<StructuredParseFailure, \"result\">,\n attemptedModel?: string,\n ): void => {\n lastFailure = attemptedModel ? { ...failure, attemptedModel } : failure;\n };\n\n const throwIfCallerAborted = (signal: AbortSignal | undefined): void => {\n if (!signal?.aborted) return;\n const reason = abortReason(signal);\n if (isTimeoutError(reason) && !options.signal?.aborted) {\n recordFailure({ failureReason: \"timeout\", errorClass: \"timeout\" });\n return;\n }\n throw reason;\n };\n\n const runChain = async (\n initialOptions: FallbackLlmOptions,\n ): Promise<FallbackLlmResponse | null> => {\n let runOptions = initialOptions;\n let lastRejectedResponse: FallbackLlmResponse | null = null;\n let lastError: unknown;\n let terminalError: unknown;\n // Try each model in the chain\n for (let i = 0; i < models.length; i++) {\n if (runOptions.signal?.aborted) {\n throwIfCallerAborted(runOptions.signal);\n if (lastFailure.failureReason === \"timeout\") return null;\n }\n const model = models[i];\n const isFallback = i > 0;\n\n try {\n const result = await this.tryModel(model, messages, runOptions);\n if (result?.content) {\n const response = {\n content: result.content,\n modelUsed: model.modelString,\n usage: result.usage,\n };\n if (runOptions.acceptResponse && !runOptions.acceptResponse(response)) {\n lastRejectedResponse = response;\n log.debug(`task LLM: ${model.modelString} returned rejected output, trying next...`);\n continue;\n }\n if (isFallback) {\n log.debug(`task LLM: succeeded using ${model.modelString} (fallback ${i})`);\n }\n return response;\n }\n recordFailure({ failureReason: \"empty\", errorClass: \"empty\" }, model.modelString);\n } catch (err) {\n if (isTerminalCodexSubscriptionError(err) && runOptions.signal?.aborted) {\n throw err;\n }\n if (runOptions.signal?.aborted) {\n throwIfCallerAborted(runOptions.signal);\n if (lastFailure.failureReason === \"timeout\") return null;\n }\n lastError = err;\n if (\n (runOptions.jsonSchema || runOptions.responsesJsonSchema) &&\n isUnsupportedJsonSchemaError(err)\n ) {\n log.debug(`task LLM: ${model.modelString} rejected native JSON schema; retrying without it`);\n // Degrade to prompt-only for the REST of the chain too, so an\n // N-model chain where every provider rejects structured output\n // costs N+1 requests instead of 2N.\n runOptions = {\n ...runOptions,\n jsonSchema: undefined,\n responsesJsonSchema: undefined,\n };\n try {\n const result = await this.tryModel(model, messages, runOptions);\n if (result?.content) {\n const response = {\n content: result.content,\n modelUsed: model.modelString,\n usage: result.usage,\n };\n if (!runOptions.acceptResponse || runOptions.acceptResponse(response)) {\n return response;\n }\n lastRejectedResponse = response;\n log.debug(`task LLM: ${model.modelString} unstructured retry output rejected by acceptResponse, trying next model...`);\n continue;\n }\n recordFailure({ failureReason: \"empty\", errorClass: \"empty\" }, model.modelString);\n } catch (retryError) {\n if (isTerminalCodexSubscriptionError(retryError) && runOptions.signal?.aborted) {\n throw retryError;\n }\n if (runOptions.signal?.aborted) {\n throwIfCallerAborted(runOptions.signal);\n if (lastFailure.failureReason === \"timeout\") return null;\n }\n lastError = retryError;\n const retryClassified = classifyThrownProviderError(retryError);\n recordFailure(retryClassified, model.modelString);\n const retryErrorMsg = runOptions.redactProviderErrors\n ? \"provider error details redacted\"\n : retryError instanceof Error\n ? retryError.message\n : String(retryError);\n log.debug(\n `task LLM: ${model.modelString} unstructured retry failed (${retryErrorMsg})`,\n );\n if (isTerminalCodexSubscriptionError(retryError)) {\n terminalError = retryError;\n }\n }\n continue;\n }\n const classified = classifyThrownProviderError(err);\n recordFailure(classified, model.modelString);\n const errorMsg = runOptions.redactProviderErrors\n ? \"provider error details redacted\"\n : err instanceof Error\n ? err.message\n : String(err);\n log.debug(`task LLM: ${model.modelString} failed (${errorMsg}), trying next...`);\n if (isTerminalCodexSubscriptionError(err)) {\n terminalError = err;\n }\n // Continue to next model in chain\n }\n }\n\n log.warn(`task LLM: all ${models.length} models in chain failed`);\n if (options.failureDiag && lastError !== undefined && !lastRejectedResponse) {\n options.failureDiag.lastError = lastError;\n }\n // A terminal typed provider failure must reach the caller when the\n // chain is exhausted — the documented timeout/re-login guidance\n // depends on it (issue #2833).\n if (terminalError !== undefined) {\n throw terminalError;\n }\n return lastRejectedResponse;\n };\n\n const toOutcome = (response: FallbackLlmResponse | null): ChatCompletionOutcome => {\n if (response) return { ok: true, response };\n return { ok: false, failure: lastFailure };\n };\n\n if (typeof options.timeoutMs === \"number\") {\n if (options.timeoutMs <= 0) {\n log.warn(\"task LLM: timed out before request started\");\n return { ok: false, failure: { failureReason: \"timeout\", errorClass: \"timeout\" } };\n }\n const controller = new AbortController();\n const onCallerAbort = (): void => {\n controller.abort(abortReason(options.signal));\n };\n options.signal?.addEventListener(\"abort\", onCallerAbort, { once: true });\n if (options.signal?.aborted) onCallerAbort();\n const timedOptions = { ...options, signal: controller.signal };\n const chain = runChain(timedOptions);\n const guarded = chain.catch((err) => {\n if (isTerminalCodexSubscriptionError(err)) throw err;\n return null;\n });\n try {\n const timeoutError = Object.assign(\n new Error(`task LLM timed out after ${options.timeoutMs}ms`),\n { name: \"TimeoutError\" },\n );\n const outcome = await raceFallbackLlmDeadline(\n guarded,\n options.timeoutMs,\n () => {\n log.warn(`task LLM: timed out after ${options.timeoutMs}ms`);\n recordFailure({ failureReason: \"timeout\", errorClass: \"timeout\" });\n controller.abort(timeoutError);\n if (options.failureDiag) options.failureDiag.lastError = timeoutError;\n },\n models.some((m) => m.providerConfig.api === \"codex-cli\") ? codexDeadlineHeadroomMs(options.timeoutMs) : 0,\n );\n if (outcome.timedOut) {\n return { ok: false, failure: { failureReason: \"timeout\", errorClass: \"timeout\" } };\n }\n return toOutcome(outcome.value);\n } finally {\n options.signal?.removeEventListener(\"abort\", onCallerAbort);\n }\n }\n\n return toOutcome(await runChain(options));\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<StructuredParseResult<T>> {\n let outcome: ChatCompletionOutcome;\n try {\n outcome = await this.completeChat(messages, options);\n } catch (err) {\n // Caller aborts must propagate (e.g. recall planner cancellation) — do\n // not swallow them as a provider failure, or abort-driven callers lose\n // cancellation and treat it as an extraction error (codex review).\n // Terminal codex-subscription failures propagate for the same reason:\n // their TimeoutError/auth guidance is the documented contract.\n if (options.signal?.aborted || isTerminalCodexSubscriptionError(err)) throw err;\n if (isTimeoutError(err)) {\n return { result: null, failureReason: \"timeout\", errorClass: \"timeout\" };\n }\n log.warn(\"task LLM: chatCompletion threw during structured parse:\", err);\n return { result: null, ...classifyThrownProviderError(err) };\n }\n if (!outcome.ok) {\n return { result: null, ...outcome.failure };\n }\n const response = outcome.response;\n if (!response.content) {\n return {\n result: null,\n failureReason: \"empty\",\n attemptedModel: response.modelUsed,\n errorClass: \"empty\",\n };\n }\n\n try {\n const candidates = extractJsonCandidates(response.content);\n let sawJson = false;\n let sawSchemaReject = false;\n for (const c of candidates) {\n let parsed: unknown;\n try {\n parsed = JSON.parse(c);\n sawJson = true;\n } catch {\n continue;\n }\n try {\n return { result: schema.parse(parsed), modelUsed: response.modelUsed };\n } catch {\n sawSchemaReject = true;\n }\n }\n if (sawSchemaReject) {\n return {\n result: null,\n failureReason: \"schema_rejection\",\n attemptedModel: response.modelUsed,\n errorClass: \"schema_rejection\",\n };\n }\n return {\n result: null,\n failureReason: \"empty\",\n attemptedModel: response.modelUsed,\n errorClass: \"empty\",\n };\n } catch (err) {\n log.warn(\"task LLM: failed to parse structured output:\", err);\n return {\n result: null,\n failureReason: \"empty\",\n attemptedModel: response.modelUsed,\n errorClass: \"empty\",\n };\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 modelChainOverride is provided, uses it instead of any configured\n * agent/default chain. Otherwise, when agentId is provided, looks up the\n * matching entry in agents.list[] and uses that persona's model chain.\n * Falls back to agents.defaults.model if agentId is not found or not provided.\n */\n private getModelChain(\n agentId?: string,\n modelOverride?: string,\n modelChainOverride?: AgentPersonaModelConfig,\n includeDefaultModelFallback = true,\n ): ModelRef[] {\n const chain: ModelRef[] = [];\n const providers = this.gatewayConfig?.models?.providers ?? {};\n\n // Resolve the model config: explicit task chain, agent persona chain, or global defaults\n let modelConfig: AgentPersonaModelConfig | undefined;\n\n if (modelChainOverride?.primary) {\n modelConfig = modelChainOverride;\n log.debug(\"task LLM: using explicit model chain override\");\n } else if (modelChainOverride) {\n log.warn(\"task LLM: ignoring explicit model chain override without primary model\");\n }\n\n if (!modelConfig && 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(`task LLM: using agent persona \"${agentId}\" model chain`);\n } else {\n log.warn(\n `task 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 const addModelString = (value: unknown): void => {\n if (typeof value !== \"string\") return;\n const trimmed = value.trim();\n if (trimmed.length > 0 && !modelStrings.includes(trimmed)) {\n modelStrings.push(trimmed);\n }\n };\n\n addModelString(modelOverride);\n addModelString(modelConfig?.primary);\n\n if (Array.isArray(modelConfig?.fallbacks)) {\n for (const fb of modelConfig.fallbacks) {\n addModelString(fb);\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 // Implicit last-resort: when a task-specific modelChain override is active,\n // append the gateway default model so a stale or exhausted taskModelChain\n // never leaves the chain empty — Remnic should never be the reason a chat is\n // interrupted by a flush failure. Keyed on `modelChainOverride?.primary` —\n // the SAME activation condition chain resolution uses above — so a\n // primary-less override (e.g. {}) that falls through to a persona/default\n // chain does NOT get the default appended (gotcha #39). Issue #1365 / PR #1370.\n if (includeDefaultModelFallback && modelChainOverride?.primary && modelStrings.length > 0) {\n // Append the FULL gateway default chain (primary + fallbacks), not just\n // the primary — if the default primary is also unreachable, a listed\n // default fallback may still succeed (cursor review #1425).\n const defaults = this.gatewayConfig?.agents?.defaults?.model;\n const defaultStrings: string[] = [\n ...(typeof defaults?.primary === \"string\" ? [defaults.primary] : []),\n ...(Array.isArray(defaults?.fallbacks) ? defaults.fallbacks : []),\n ];\n for (const candidate of defaultStrings) {\n if (typeof candidate !== \"string\") continue;\n const trimmed = candidate.trim();\n if (trimmed.length === 0 || modelStrings.includes(trimmed)) continue;\n const defaultRef = this.parseModelString(trimmed, providers);\n if (defaultRef) {\n chain.push(defaultRef);\n modelStrings.push(trimmed); // keep dedupe correct for later default fallbacks\n log.debug(\n `task LLM: appended gateway default model \"${trimmed}\" as implicit last resort`,\n );\n }\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.5\", \"anthropic/claude-opus-4-6\")\n const parts = modelString.split(\"/\");\n if (parts.length < 2) {\n log.warn(`task 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.5\"\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 `task 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(`task 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(`task 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(`task LLM: provider \"${providerId}\" resolved from built-in defaults`);\n return { providerId, config: builtInConfig };\n }\n log.debug(`task 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(`task 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 const codexResult = await tryCodexSubscriptionProvider(\n model,\n messages,\n options,\n () => this.resolveFallbackApiKey(model),\n this.runtimeContext.codexSubscriptionRunner,\n );\n if (codexResult !== undefined) return codexResult;\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\" || (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 (model.providerConfig.api === \"ollama-chat\") {\n return await this.callOllamaChat(effectiveConfig, model.modelId, messages, options);\n }\n\n const wanted = Math.floor(options.reasoningHeadroomTokens ?? 0);\n const headroom = Number.isFinite(wanted) ? Math.max(0, wanted) : 0; // NaN and Infinity add nothing\n const capped = options.maxTokens === undefined ? options : { ...options, maxTokens: options.maxTokens + headroom };\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(effectiveConfig, model.modelId, messages, capped);\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 capped,\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 getRuntimeAuthForModel: this.runtimeContext.getRuntimeAuthForModel,\n });\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 `task 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 `task 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 resolveApiKeyForProvider: this.runtimeContext.resolveApiKeyForProvider,\n },\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 ...(options.jsonSchema\n ? {\n response_format: {\n type: \"json_schema\",\n json_schema: {\n name: options.jsonSchema.name,\n strict: options.jsonSchema.strict ?? false,\n schema: options.jsonSchema.schema,\n },\n },\n }\n : {}),\n };\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n signal: options.signal,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw Object.assign(new Error(`OpenAI API error: ${response.status} ${error}`), { status: response.status });\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 Ollama's native /api/chat transport. This lets benchmark-isolated\n * gateway configs route Remnic's own internal LLM calls to Ollama Cloud\n * without requiring an OpenAI-compatible shim.\n */\n private async callOllamaChat(\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(\"/api\") ? `${base}/chat` : `${base}/api/chat`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...config.headers,\n };\n if (config.apiKey && typeof config.apiKey === \"string\" && config.authHeader !== false) {\n headers.Authorization = `Bearer ${config.apiKey}`;\n }\n\n const response = await fetch(url, {\n method: \"POST\",\n headers,\n signal: options.signal,\n body: JSON.stringify({\n model: modelId,\n messages,\n stream: false,\n ...(config.disableThinking ? { think: false } : {}),\n options: {\n temperature: options.temperature ?? 0.3,\n num_predict: options.maxTokens ?? 4096,\n },\n }),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw Object.assign(new Error(`Ollama API error: ${response.status} ${error}`), { status: response.status });\n }\n\n const data = (await response.json()) as {\n message?: { content?: string };\n response?: string;\n prompt_eval_count?: number;\n eval_count?: number;\n };\n const content = data.message?.content ?? data.response;\n if (!content) {\n throw new Error(\"Empty response from Ollama API\");\n }\n\n const inputTokens = data.prompt_eval_count ?? 0;\n const outputTokens = data.eval_count ?? 0;\n return {\n content,\n usage: {\n inputTokens,\n outputTokens,\n totalTokens: inputTokens + outputTokens,\n },\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 ...(options.store === undefined ? {} : { store: options.store }),\n ...(options.jsonSchema || options.responsesJsonSchema\n ? {\n text: {\n format: {\n type: \"json_schema\",\n name: (options.jsonSchema ?? options.responsesJsonSchema)!.name,\n strict: (options.jsonSchema?.strict ?? (options.responsesJsonSchema ? true : false)),\n schema: (options.jsonSchema ?? options.responsesJsonSchema)!.schema,\n },\n },\n }\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 signal: options.signal,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw Object.assign(new Error(`OpenAI Responses API error: ${response.status} ${error}`), { status: response.status });\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 signal: options.signal,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw Object.assign(new Error(`Anthropic API error: ${response.status} ${error}`), { status: response.status });\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\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hasMemoryData
3
- } from "./chunk-7PG7QBWD.js";
3
+ } from "./chunk-FGEY2AGV.js";
4
4
  import {
5
5
  resolveNamespaceStorageRoot
6
- } from "./chunk-FBAHBFT5.js";
6
+ } from "./chunk-SZPPCEYT.js";
7
7
  import {
8
8
  getConfiguredNamespaces
9
9
  } from "./chunk-I6QGI65T.js";
@@ -724,4 +724,4 @@ export {
724
724
  runNamespaceMaintenancePlan,
725
725
  runNamespaceMaintenanceBatchPlan
726
726
  };
727
- //# sourceMappingURL=chunk-LSSCMZQ2.js.map
727
+ //# sourceMappingURL=chunk-AYBAC2N4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getOperation
3
- } from "./chunk-QEGE5QCL.js";
3
+ } from "./chunk-TAEJ2MRR.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-EVVCE7S2.js.map
24
+ //# sourceMappingURL=chunk-C2KOW2UQ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-LSSCMZQ2.js";
6
+ } from "./chunk-AYBAC2N4.js";
7
7
  import {
8
8
  analyzeSessionIntegrity,
9
9
  applySessionRepair,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-CMTINOFS.js";
15
15
  import {
16
16
  summarizeCorpusAndReplica
17
- } from "./chunk-LAQS5HYU.js";
17
+ } from "./chunk-Y5ZHZKZD.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -38,17 +38,17 @@ import {
38
38
  } from "./chunk-YBPYIAA5.js";
39
39
  import {
40
40
  parseConfig
41
- } from "./chunk-YGYT7S3G.js";
41
+ } from "./chunk-3PLAL2KP.js";
42
42
  import {
43
43
  readAggregateExtractionWatermark
44
- } from "./chunk-MBMT5FUQ.js";
44
+ } from "./chunk-OLH4XCLU.js";
45
45
  import {
46
46
  listMemoryGovernanceRuns,
47
47
  readMemoryGovernanceRunArtifact
48
- } from "./chunk-NSQSOLCE.js";
48
+ } from "./chunk-TYLNWE4D.js";
49
49
  import {
50
50
  listNamespaces
51
- } from "./chunk-UQWA5QDT.js";
51
+ } from "./chunk-WCIDCJOQ.js";
52
52
  import {
53
53
  analyzeGraphHealth
54
54
  } from "./chunk-QKXPOLQD.js";
@@ -57,7 +57,7 @@ import {
57
57
  } from "./chunk-AWD36R4D.js";
58
58
  import {
59
59
  StorageManager
60
- } from "./chunk-R6TCM47S.js";
60
+ } from "./chunk-WCBLPKG3.js";
61
61
  import {
62
62
  lintWorkspaceFiles
63
63
  } from "./chunk-DM2T26WE.js";
@@ -1683,4 +1683,4 @@ export {
1683
1683
  runBenchmarkRecall,
1684
1684
  runOperatorRepair
1685
1685
  };
1686
- //# sourceMappingURL=chunk-GCVUBVEN.js.map
1686
+ //# sourceMappingURL=chunk-CVMAOPAH.js.map
@@ -645,4 +645,4 @@ export {
645
645
  appendMemoryToGraphContext,
646
646
  resolvePersistedMemoryRelativePath
647
647
  };
648
- //# sourceMappingURL=chunk-D2AKUKAQ.js.map
648
+ //# sourceMappingURL=chunk-DG4H56SK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RECALL_DISCLOSURE_LEVELS
3
- } from "./chunk-A6PKEU7T.js";
3
+ } from "./chunk-UFM3PJDT.js";
4
4
 
5
5
  // src/recall-navigate.ts
6
6
  var RECALL_NAV_LINK_TYPES = [
@@ -48,4 +48,4 @@ export {
48
48
  expandRecallNode,
49
49
  traverseRecallLink
50
50
  };
51
- //# sourceMappingURL=chunk-BQ6DGL6A.js.map
51
+ //# sourceMappingURL=chunk-DKHX2FHI.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  gatewayTaskChainOptions
3
- } from "./chunk-GMMZ45C4.js";
3
+ } from "./chunk-AVVCPA7U.js";
4
4
  import {
5
5
  isAbortError,
6
6
  throwIfAborted
@@ -70,4 +70,4 @@ export {
70
70
  DEEP_RECALL_POLICY_SYSTEM_PROMPT,
71
71
  callDeepRecallPolicyLlm
72
72
  };
73
- //# sourceMappingURL=chunk-HRT2SJPC.js.map
73
+ //# sourceMappingURL=chunk-E3NBMTTX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildStandup,
3
3
  parseStandupDate
4
- } from "./chunk-Z5QWUR3Y.js";
4
+ } from "./chunk-L7PGPH4E.js";
5
5
  import {
6
6
  backfillMemoryStorage,
7
7
  runLocationBackfill,
@@ -9,16 +9,16 @@ import {
9
9
  runLocationDay,
10
10
  runLocationStatus,
11
11
  runLocationSync
12
- } from "./chunk-ULUX6Q7R.js";
12
+ } from "./chunk-J7G656MY.js";
13
13
  import {
14
14
  externalWikiSearchOperation
15
- } from "./chunk-WADPRAZE.js";
15
+ } from "./chunk-3XVBGGF3.js";
16
16
  import {
17
17
  DECISION_SUBCOMMANDS,
18
18
  DELTA_SUBCOMMANDS,
19
19
  defineOperation,
20
20
  isCodegraphToolName
21
- } from "./chunk-QEGE5QCL.js";
21
+ } from "./chunk-TAEJ2MRR.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-V5RJCXLG.js.map
1919
+ //# sourceMappingURL=chunk-EGNONTVT.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  resolveDefaultNamespaceRoot,
3
3
  resolveNamespaceStorageRoot
4
- } from "./chunk-FBAHBFT5.js";
4
+ } from "./chunk-SZPPCEYT.js";
5
5
  import {
6
6
  MutationSerializer,
7
7
  withHeldFileLock
@@ -1473,4 +1473,4 @@ export {
1473
1473
  isNamespaceKind,
1474
1474
  NamespaceCatalog
1475
1475
  };
1476
- //# sourceMappingURL=chunk-7PG7QBWD.js.map
1476
+ //# sourceMappingURL=chunk-FGEY2AGV.js.map