agent-nuvira 2.7.3 → 3.0.1

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 (369) hide show
  1. package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
  2. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  3. package/dist/agents/agents/writer-tool-calling.js +20 -0
  4. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts.map +1 -1
  6. package/dist/agents/agents/writer.js +15 -4
  7. package/dist/agents/agents/writer.js.map +1 -1
  8. package/dist/agents/edit-module.d.ts +7 -0
  9. package/dist/agents/edit-module.d.ts.map +1 -1
  10. package/dist/agents/edit-module.js +21 -6
  11. package/dist/agents/edit-module.js.map +1 -1
  12. package/dist/agents/orchestrator.d.ts +40 -0
  13. package/dist/agents/orchestrator.d.ts.map +1 -1
  14. package/dist/agents/orchestrator.js +116 -27
  15. package/dist/agents/orchestrator.js.map +1 -1
  16. package/dist/agents/tool-calling-agent.d.ts +19 -0
  17. package/dist/agents/tool-calling-agent.d.ts.map +1 -1
  18. package/dist/agents/tool-calling-agent.js +42 -2
  19. package/dist/agents/tool-calling-agent.js.map +1 -1
  20. package/dist/cli/chat.d.ts +55 -1
  21. package/dist/cli/chat.d.ts.map +1 -1
  22. package/dist/cli/chat.js +278 -72
  23. package/dist/cli/chat.js.map +1 -1
  24. package/dist/cli/cli-program.d.ts +6 -0
  25. package/dist/cli/cli-program.d.ts.map +1 -0
  26. package/dist/cli/cli-program.js +242 -0
  27. package/dist/cli/cli-program.js.map +1 -0
  28. package/dist/cli/edit.d.ts.map +1 -1
  29. package/dist/cli/edit.js +18 -3
  30. package/dist/cli/edit.js.map +1 -1
  31. package/dist/cli/execute.d.ts.map +1 -1
  32. package/dist/cli/execute.js +29 -5
  33. package/dist/cli/execute.js.map +1 -1
  34. package/dist/cli/failover-runner.d.ts +13 -0
  35. package/dist/cli/failover-runner.d.ts.map +1 -1
  36. package/dist/cli/failover-runner.js +11 -0
  37. package/dist/cli/failover-runner.js.map +1 -1
  38. package/dist/cli/gateway.d.ts +16 -0
  39. package/dist/cli/gateway.d.ts.map +1 -1
  40. package/dist/cli/gateway.js +108 -2
  41. package/dist/cli/gateway.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +245 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/plan.d.ts.map +1 -1
  46. package/dist/cli/plan.js +20 -6
  47. package/dist/cli/plan.js.map +1 -1
  48. package/dist/cli/process-control.d.ts +10 -0
  49. package/dist/cli/process-control.d.ts.map +1 -1
  50. package/dist/cli/process-control.js +73 -7
  51. package/dist/cli/process-control.js.map +1 -1
  52. package/dist/cli/router.d.ts +16 -5
  53. package/dist/cli/router.d.ts.map +1 -1
  54. package/dist/cli/router.js +31 -206
  55. package/dist/cli/router.js.map +1 -1
  56. package/dist/config/paths.d.ts +23 -0
  57. package/dist/config/paths.d.ts.map +1 -1
  58. package/dist/config/paths.js +30 -0
  59. package/dist/config/paths.js.map +1 -1
  60. package/dist/config/provider-env.d.ts +37 -0
  61. package/dist/config/provider-env.d.ts.map +1 -0
  62. package/dist/config/provider-env.js +86 -0
  63. package/dist/config/provider-env.js.map +1 -0
  64. package/dist/context/history.d.ts.map +1 -1
  65. package/dist/context/history.js +24 -8
  66. package/dist/context/history.js.map +1 -1
  67. package/dist/context/session-recall.d.ts +30 -0
  68. package/dist/context/session-recall.d.ts.map +1 -1
  69. package/dist/context/session-recall.js +61 -0
  70. package/dist/context/session-recall.js.map +1 -1
  71. package/dist/file.js +0 -1
  72. package/dist/file.js.map +1 -1
  73. package/dist/gateway/adapters.d.ts +10 -0
  74. package/dist/gateway/adapters.d.ts.map +1 -1
  75. package/dist/gateway/adapters.js +4 -1
  76. package/dist/gateway/adapters.js.map +1 -1
  77. package/dist/gateway/dedup.d.ts +105 -0
  78. package/dist/gateway/dedup.d.ts.map +1 -0
  79. package/dist/gateway/dedup.js +160 -0
  80. package/dist/gateway/dedup.js.map +1 -0
  81. package/dist/gateway/heartbeat.d.ts +99 -0
  82. package/dist/gateway/heartbeat.d.ts.map +1 -0
  83. package/dist/gateway/heartbeat.js +122 -0
  84. package/dist/gateway/heartbeat.js.map +1 -0
  85. package/dist/gateway/inbox.d.ts +14 -1
  86. package/dist/gateway/inbox.d.ts.map +1 -1
  87. package/dist/gateway/inbox.js.map +1 -1
  88. package/dist/gateway/platform-config.d.ts +5 -0
  89. package/dist/gateway/platform-config.d.ts.map +1 -1
  90. package/dist/gateway/platform-config.js +8 -13
  91. package/dist/gateway/platform-config.js.map +1 -1
  92. package/dist/gateway/registry.d.ts +47 -0
  93. package/dist/gateway/registry.d.ts.map +1 -1
  94. package/dist/gateway/registry.js +227 -21
  95. package/dist/gateway/registry.js.map +1 -1
  96. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  97. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  98. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  99. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  100. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  101. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  102. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/inference/factory.d.ts +16 -0
  106. package/dist/inference/factory.d.ts.map +1 -1
  107. package/dist/inference/factory.js +42 -0
  108. package/dist/inference/factory.js.map +1 -1
  109. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  110. package/dist/inference/gemini-adapter.js +3 -0
  111. package/dist/inference/gemini-adapter.js.map +1 -1
  112. package/dist/inference/interface.d.ts +12 -0
  113. package/dist/inference/interface.d.ts.map +1 -1
  114. package/dist/inference/local-adapter.d.ts +2 -0
  115. package/dist/inference/local-adapter.d.ts.map +1 -1
  116. package/dist/inference/local-adapter.js +36 -5
  117. package/dist/inference/local-adapter.js.map +1 -1
  118. package/dist/inference/native-tools.d.ts +8 -0
  119. package/dist/inference/native-tools.d.ts.map +1 -1
  120. package/dist/inference/native-tools.js +14 -3
  121. package/dist/inference/native-tools.js.map +1 -1
  122. package/dist/inference/tool-call-utils.d.ts +92 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +203 -13
  125. package/dist/inference/tool-call-utils.js.map +1 -1
  126. package/dist/learning/auto-router.d.ts.map +1 -1
  127. package/dist/learning/auto-router.js +90 -5
  128. package/dist/learning/auto-router.js.map +1 -1
  129. package/dist/learning/context-budget.d.ts +133 -0
  130. package/dist/learning/context-budget.d.ts.map +1 -0
  131. package/dist/learning/context-budget.js +196 -0
  132. package/dist/learning/context-budget.js.map +1 -0
  133. package/dist/learning/cost-tracker.d.ts.map +1 -1
  134. package/dist/learning/cost-tracker.js +20 -8
  135. package/dist/learning/cost-tracker.js.map +1 -1
  136. package/dist/learning/eval-framework.d.ts.map +1 -1
  137. package/dist/learning/eval-framework.js +6 -2
  138. package/dist/learning/eval-framework.js.map +1 -1
  139. package/dist/learning/failure-bookkeeping.d.ts +19 -0
  140. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  141. package/dist/learning/failure-bookkeeping.js +67 -2
  142. package/dist/learning/failure-bookkeeping.js.map +1 -1
  143. package/dist/learning/feedback.d.ts.map +1 -1
  144. package/dist/learning/feedback.js +19 -8
  145. package/dist/learning/feedback.js.map +1 -1
  146. package/dist/learning/model-harness.d.ts +76 -0
  147. package/dist/learning/model-harness.d.ts.map +1 -0
  148. package/dist/learning/model-harness.js +119 -0
  149. package/dist/learning/model-harness.js.map +1 -0
  150. package/dist/learning/model-selection.d.ts +15 -0
  151. package/dist/learning/model-selection.d.ts.map +1 -1
  152. package/dist/learning/model-selection.js +27 -1
  153. package/dist/learning/model-selection.js.map +1 -1
  154. package/dist/learning/provider-fallback.d.ts +12 -0
  155. package/dist/learning/provider-fallback.d.ts.map +1 -1
  156. package/dist/learning/provider-fallback.js +74 -0
  157. package/dist/learning/provider-fallback.js.map +1 -1
  158. package/dist/learning/provider-revival.d.ts +106 -0
  159. package/dist/learning/provider-revival.d.ts.map +1 -0
  160. package/dist/learning/provider-revival.js +154 -0
  161. package/dist/learning/provider-revival.js.map +1 -0
  162. package/dist/learning/resilient-call.d.ts.map +1 -1
  163. package/dist/learning/resilient-call.js +48 -3
  164. package/dist/learning/resilient-call.js.map +1 -1
  165. package/dist/nlu/conversation-gate.d.ts +37 -0
  166. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  167. package/dist/nlu/conversation-gate.js +49 -0
  168. package/dist/nlu/conversation-gate.js.map +1 -1
  169. package/dist/nlu/schema.d.ts +2 -2
  170. package/dist/observability/dag-bridge.d.ts +69 -0
  171. package/dist/observability/dag-bridge.d.ts.map +1 -0
  172. package/dist/observability/dag-bridge.js +56 -0
  173. package/dist/observability/dag-bridge.js.map +1 -0
  174. package/dist/observability/event-bus.d.ts +5 -10
  175. package/dist/observability/event-bus.d.ts.map +1 -1
  176. package/dist/observability/event-bus.js +10 -42
  177. package/dist/observability/event-bus.js.map +1 -1
  178. package/dist/skills/execution-audit.d.ts.map +1 -1
  179. package/dist/skills/execution-audit.js +17 -5
  180. package/dist/skills/execution-audit.js.map +1 -1
  181. package/dist/skills/sandbox-executor.d.ts +12 -1
  182. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  183. package/dist/skills/sandbox-executor.js +28 -6
  184. package/dist/skills/sandbox-executor.js.map +1 -1
  185. package/dist/skills/secret-capture.d.ts +45 -1
  186. package/dist/skills/secret-capture.d.ts.map +1 -1
  187. package/dist/skills/secret-capture.js +82 -19
  188. package/dist/skills/secret-capture.js.map +1 -1
  189. package/dist/skills/skill-env-inventory.d.ts +79 -0
  190. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  191. package/dist/skills/skill-env-inventory.js +167 -0
  192. package/dist/skills/skill-env-inventory.js.map +1 -0
  193. package/dist/skills/skill-executor.d.ts +2 -0
  194. package/dist/skills/skill-executor.d.ts.map +1 -1
  195. package/dist/skills/skill-executor.js +19 -24
  196. package/dist/skills/skill-executor.js.map +1 -1
  197. package/dist/tools/ask-user.d.ts +14 -1
  198. package/dist/tools/ask-user.d.ts.map +1 -1
  199. package/dist/tools/ask-user.js +25 -1
  200. package/dist/tools/ask-user.js.map +1 -1
  201. package/dist/tools/followup-utils.d.ts +64 -0
  202. package/dist/tools/followup-utils.d.ts.map +1 -0
  203. package/dist/tools/followup-utils.js +158 -0
  204. package/dist/tools/followup-utils.js.map +1 -0
  205. package/dist/tools/loop-skill-hint.d.ts.map +1 -1
  206. package/dist/tools/loop-skill-hint.js +22 -1
  207. package/dist/tools/loop-skill-hint.js.map +1 -1
  208. package/dist/tools/memory-tools.d.ts +35 -0
  209. package/dist/tools/memory-tools.d.ts.map +1 -1
  210. package/dist/tools/memory-tools.js +76 -0
  211. package/dist/tools/memory-tools.js.map +1 -1
  212. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  213. package/dist/tools/pipeline-tool.js +8 -3
  214. package/dist/tools/pipeline-tool.js.map +1 -1
  215. package/dist/tools/registry.d.ts +25 -12
  216. package/dist/tools/registry.d.ts.map +1 -1
  217. package/dist/tools/registry.js +31 -6
  218. package/dist/tools/registry.js.map +1 -1
  219. package/dist/tools/skill-tool.d.ts.map +1 -1
  220. package/dist/tools/skill-tool.js +52 -5
  221. package/dist/tools/skill-tool.js.map +1 -1
  222. package/dist/tools/tool-loop.d.ts +63 -1
  223. package/dist/tools/tool-loop.d.ts.map +1 -1
  224. package/dist/tools/tool-loop.js +305 -66
  225. package/dist/tools/tool-loop.js.map +1 -1
  226. package/dist/tools/toolsets.d.ts +19 -3
  227. package/dist/tools/toolsets.d.ts.map +1 -1
  228. package/dist/tools/toolsets.js +21 -5
  229. package/dist/tools/toolsets.js.map +1 -1
  230. package/dist/utils/env.d.ts.map +1 -1
  231. package/dist/utils/env.js +9 -13
  232. package/dist/utils/env.js.map +1 -1
  233. package/dist/web-dashboard/chat-console.d.ts +13 -1
  234. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  235. package/dist/web-dashboard/chat-console.js +16 -2
  236. package/dist/web-dashboard/chat-console.js.map +1 -1
  237. package/dist/web-dashboard/hub-data.d.ts +2 -0
  238. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  239. package/dist/web-dashboard/hub-data.js +4 -0
  240. package/dist/web-dashboard/hub-data.js.map +1 -1
  241. package/dist/web-dashboard/server.d.ts +6 -0
  242. package/dist/web-dashboard/server.d.ts.map +1 -1
  243. package/dist/web-dashboard/server.js +192 -3
  244. package/dist/web-dashboard/server.js.map +1 -1
  245. package/dist/web-dashboard/src/types.d.ts +31 -1
  246. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  247. package/package.json +11 -1
  248. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  249. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  250. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  251. package/src/web-dashboard/public/index.html +2 -2
  252. package/dist/example.d.ts +0 -1
  253. package/dist/example.d.ts.map +0 -1
  254. package/dist/example.js +0 -3
  255. package/dist/example.js.map +0 -1
  256. package/dist/fresh.d.ts +0 -2
  257. package/dist/fresh.d.ts.map +0 -1
  258. package/dist/fresh.js +0 -2
  259. package/dist/fresh.js.map +0 -1
  260. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  261. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  262. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  263. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  264. package/dist/memory/background-sync.d.ts +0 -107
  265. package/dist/memory/background-sync.d.ts.map +0 -1
  266. package/dist/memory/background-sync.js +0 -242
  267. package/dist/memory/background-sync.js.map +0 -1
  268. package/dist/memory/cross-session.d.ts +0 -68
  269. package/dist/memory/cross-session.d.ts.map +0 -1
  270. package/dist/memory/cross-session.js +0 -153
  271. package/dist/memory/cross-session.js.map +0 -1
  272. package/dist/memory/drift-detector.d.ts +0 -76
  273. package/dist/memory/drift-detector.d.ts.map +0 -1
  274. package/dist/memory/drift-detector.js +0 -216
  275. package/dist/memory/drift-detector.js.map +0 -1
  276. package/dist/memory/enhanced-manager.d.ts +0 -105
  277. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  278. package/dist/memory/enhanced-manager.js +0 -280
  279. package/dist/memory/enhanced-manager.js.map +0 -1
  280. package/dist/memory/session-extraction.d.ts +0 -93
  281. package/dist/memory/session-extraction.d.ts.map +0 -1
  282. package/dist/memory/session-extraction.js +0 -290
  283. package/dist/memory/session-extraction.js.map +0 -1
  284. package/dist/memory/sqlite-store.d.ts +0 -208
  285. package/dist/memory/sqlite-store.d.ts.map +0 -1
  286. package/dist/memory/sqlite-store.js +0 -556
  287. package/dist/memory/sqlite-store.js.map +0 -1
  288. package/dist/skills/daytona-executor.d.ts +0 -78
  289. package/dist/skills/daytona-executor.d.ts.map +0 -1
  290. package/dist/skills/daytona-executor.js +0 -256
  291. package/dist/skills/daytona-executor.js.map +0 -1
  292. package/dist/skills/modal-executor.d.ts +0 -81
  293. package/dist/skills/modal-executor.d.ts.map +0 -1
  294. package/dist/skills/modal-executor.js +0 -285
  295. package/dist/skills/modal-executor.js.map +0 -1
  296. package/dist/sync/inventory.d.ts +0 -1
  297. package/dist/sync/inventory.d.ts.map +0 -1
  298. package/dist/sync/inventory.js +0 -3
  299. package/dist/sync/inventory.js.map +0 -1
  300. package/dist/sync/validate.d.ts +0 -1
  301. package/dist/sync/validate.d.ts.map +0 -1
  302. package/dist/sync/validate.js +0 -3
  303. package/dist/sync/validate.js.map +0 -1
  304. package/dist/test.d.ts +0 -2
  305. package/dist/test.d.ts.map +0 -1
  306. package/dist/test.js +0 -3
  307. package/dist/test.js.map +0 -1
  308. package/dist/tools/browser-tool.d.ts +0 -206
  309. package/dist/tools/browser-tool.d.ts.map +0 -1
  310. package/dist/tools/browser-tool.js +0 -726
  311. package/dist/tools/browser-tool.js.map +0 -1
  312. package/dist/tools/delegate-tool.d.ts +0 -109
  313. package/dist/tools/delegate-tool.d.ts.map +0 -1
  314. package/dist/tools/delegate-tool.js +0 -185
  315. package/dist/tools/delegate-tool.js.map +0 -1
  316. package/dist/tools/delegation-state.d.ts +0 -87
  317. package/dist/tools/delegation-state.d.ts.map +0 -1
  318. package/dist/tools/delegation-state.js +0 -278
  319. package/dist/tools/delegation-state.js.map +0 -1
  320. package/dist/tools/desktop-ui.d.ts +0 -148
  321. package/dist/tools/desktop-ui.d.ts.map +0 -1
  322. package/dist/tools/desktop-ui.js +0 -486
  323. package/dist/tools/desktop-ui.js.map +0 -1
  324. package/dist/tools/image-video-tool.d.ts +0 -88
  325. package/dist/tools/image-video-tool.d.ts.map +0 -1
  326. package/dist/tools/image-video-tool.js +0 -276
  327. package/dist/tools/image-video-tool.js.map +0 -1
  328. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  329. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  330. package/dist/tools/kanban-cron-tools.js +0 -197
  331. package/dist/tools/kanban-cron-tools.js.map +0 -1
  332. package/dist/tools/messaging-tool.d.ts +0 -127
  333. package/dist/tools/messaging-tool.d.ts.map +0 -1
  334. package/dist/tools/messaging-tool.js +0 -314
  335. package/dist/tools/messaging-tool.js.map +0 -1
  336. package/dist/tools/modality/generic-caller.d.ts +0 -43
  337. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  338. package/dist/tools/modality/generic-caller.js +0 -254
  339. package/dist/tools/modality/generic-caller.js.map +0 -1
  340. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  341. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  342. package/dist/tools/modality/modality-catalog.js +0 -445
  343. package/dist/tools/modality/modality-catalog.js.map +0 -1
  344. package/dist/tools/modality/tool-router.d.ts +0 -81
  345. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  346. package/dist/tools/modality/tool-router.js +0 -84
  347. package/dist/tools/modality/tool-router.js.map +0 -1
  348. package/dist/tools/security-tools.d.ts +0 -107
  349. package/dist/tools/security-tools.d.ts.map +0 -1
  350. package/dist/tools/security-tools.js +0 -264
  351. package/dist/tools/security-tools.js.map +0 -1
  352. package/dist/tools/ssh-tool.d.ts +0 -130
  353. package/dist/tools/ssh-tool.d.ts.map +0 -1
  354. package/dist/tools/ssh-tool.js +0 -328
  355. package/dist/tools/ssh-tool.js.map +0 -1
  356. package/dist/tools/tts-tool.d.ts +0 -91
  357. package/dist/tools/tts-tool.d.ts.map +0 -1
  358. package/dist/tools/tts-tool.js +0 -406
  359. package/dist/tools/tts-tool.js.map +0 -1
  360. package/dist/utils/shell-detection.d.ts +0 -124
  361. package/dist/utils/shell-detection.d.ts.map +0 -1
  362. package/dist/utils/shell-detection.js +0 -305
  363. package/dist/utils/shell-detection.js.map +0 -1
  364. package/dist/utils/windows-paths.d.ts +0 -185
  365. package/dist/utils/windows-paths.d.ts.map +0 -1
  366. package/dist/utils/windows-paths.js +0 -472
  367. package/dist/utils/windows-paths.js.map +0 -1
  368. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  369. package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Provider revival — the "one more round of check" before giving up on a
3
+ * provider that failed transiently.
4
+ *
5
+ * THE BUG THIS FIXES (verified): a provider that fails transiently (server /
6
+ * network / timeout) is put in a short session exclusion AND, separately, marked
7
+ * in a `transientFailed` set that carries the documented promise — "awaiting a
8
+ * quick on-demand spot-check before re-admission (never re-pick without proof)".
9
+ * That promise was kept in exactly ONE place: `chat.ts`'s session loop. Every
10
+ * other entry path allocated the marker and never read it:
11
+ *
12
+ * path allocates reads (revives)
13
+ * chat.ts ✅ ✅
14
+ * orchestrator.ts ✅ ✅ (covers execute.ts's pipeline path)
15
+ * resilient-call.ts ✅ ✅
16
+ * edit.ts ✅ ✅ (via the runSingleShotAuto `revive` hook)
17
+ * execute.ts ✅ ✅ (the follow-up path that bypasses the
18
+ * orchestrator sweeps its own session)
19
+ * plan.ts ✅ ✅ (via the runSingleShotAuto `revive` hook)
20
+ *
21
+ * Every allocating path now reads what it arms. When this was not true, an
22
+ * exhausted provider stayed
23
+ * excluded for the rest of the session even after it recovered, and the run
24
+ * either degraded or died — while the machinery to prove recovery in seconds sat
25
+ * unused. Live evidence: a pipeline run hit a Gemini 503, the breaker parked the
26
+ * provider, context-gatherer fell back to "0 relevant files", and the writer then
27
+ * edited blind. A single capacity spike at one endpoint became a wrong answer.
28
+ *
29
+ * WHY A STORE ADAPTER: the callers keep their session state in two different
30
+ * shapes — `FailureSessionState` (chat/orchestrator/edit/plan/execute) and
31
+ * resilient-call's own `{ expiresAt, kind }` maps. Rather than duplicate the
32
+ * probe logic per shape (the duplication that caused this bug), the probe works
33
+ * against this small port and each caller adapts.
34
+ *
35
+ * Cycle safety: `auto-router.js` is imported LAZILY (only when a caller does not
36
+ * supply its own model resolver), so this module can be imported from the
37
+ * router's own dependencies without creating a static cycle.
38
+ */
39
+ import { spotCheckModel } from '../inference/model-probe.js';
40
+ import { type FailureSessionState } from './failure-bookkeeping.js';
41
+ import type { ConfigManager } from '../config/manager.js';
42
+ /** The outcome shape `spotCheckModel` returns, without importing its name. */
43
+ type ProbeOutcome = Awaited<ReturnType<typeof spotCheckModel>>;
44
+ /**
45
+ * The port a caller adapts its failure state to. Deliberately tiny: the sweep
46
+ * needs to enumerate candidates, ask whether an exclusion is still active, and
47
+ * either clear or re-arm one.
48
+ */
49
+ export interface RevivalStore {
50
+ /** Providers currently marked as transiently failed. */
51
+ transientProviders(): Iterable<string>;
52
+ /** Is this provider's exclusion still in force at `now`? */
53
+ isExclusionActive(provider: string, now: number): boolean;
54
+ /** Re-admit the provider (clear its exclusion + its transient marker). */
55
+ clearProvider(provider: string): void;
56
+ /** Keep it excluded for another transient window. */
57
+ reArmProvider(provider: string, until: number): void;
58
+ /** The concrete model to probe for this provider. */
59
+ resolveProbeModel?(provider: string): string | undefined;
60
+ }
61
+ export interface RevivalSweepResult {
62
+ /** Providers actually probed (network calls made). */
63
+ probed: string[];
64
+ /** Providers now re-admitted — either proven alive or no longer blocked. */
65
+ revived: string[];
66
+ /** Providers that failed the probe and keep their exclusion. */
67
+ stillDown: string[];
68
+ }
69
+ export interface RevivalSweepOptions {
70
+ /**
71
+ * Max providers probed per sweep. Each probe is a 1-token generation, so this
72
+ * bounds the latency a sweep can add to a foreground turn. Default 3.
73
+ */
74
+ maxProbes?: number;
75
+ /** Agent type used when resolving a probe model (default 'chat'). */
76
+ agentType?: string;
77
+ /** Injectable probe (tests). Defaults to the real 1-token spot-check. */
78
+ probe?: (provider: string, model: string, configManager: ConfigManager) => Promise<ProbeOutcome>;
79
+ /** Injectable clock (tests). */
80
+ now?: () => number;
81
+ /** Visibility hook — a revival is worth showing in the console/trace. */
82
+ onEvent?: (line: string) => void;
83
+ }
84
+ /**
85
+ * Adapt a raw (exclusions, transient markers) pair to the revival port. This is
86
+ * the shape every CLI path holds, including chat, whose two collections are
87
+ * instance fields rather than a `FailureSessionState` object.
88
+ */
89
+ export declare function collectionRevivalStore(sessionFailedProviders: Map<string, number>, sessionTransientFailedProviders: Set<string>): RevivalStore;
90
+ /** Adapt the shared `FailureSessionState` to the revival port. */
91
+ export declare function sessionRevivalStore(session: FailureSessionState): RevivalStore;
92
+ /**
93
+ * Re-verify transiently-failed providers and re-admit the ones that recovered.
94
+ *
95
+ * Contract (identical to the chat path this was extracted from, so behaviour does
96
+ * not change there):
97
+ * - a provider whose exclusion is still ACTIVE is left alone;
98
+ * - a provider the registry no longer blocks needs no probe — it is re-admitted;
99
+ * - otherwise a 1-token spot-check decides: verified/skipped → re-admit,
100
+ * anything else → re-arm the exclusion for another transient window.
101
+ *
102
+ * Never throws: revival is an optimisation and must never break a call.
103
+ */
104
+ export declare function sweepTransientFailures(store: RevivalStore, configManager: ConfigManager, options?: RevivalSweepOptions): Promise<RevivalSweepResult>;
105
+ export {};
106
+ //# sourceMappingURL=provider-revival.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-revival.d.ts","sourceRoot":"","sources":["../../src/learning/provider-revival.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAkC,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,8EAA8E;AAC9E,KAAK,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,4DAA4D;IAC5D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,0EAA0E;IAC1E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qDAAqD;IACrD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,qDAAqD;IACrD,iBAAiB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1D;AAED,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACjG,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,+BAA+B,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3C,YAAY,CAgBd;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAE9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA+D7B"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Provider revival — the "one more round of check" before giving up on a
3
+ * provider that failed transiently.
4
+ *
5
+ * THE BUG THIS FIXES (verified): a provider that fails transiently (server /
6
+ * network / timeout) is put in a short session exclusion AND, separately, marked
7
+ * in a `transientFailed` set that carries the documented promise — "awaiting a
8
+ * quick on-demand spot-check before re-admission (never re-pick without proof)".
9
+ * That promise was kept in exactly ONE place: `chat.ts`'s session loop. Every
10
+ * other entry path allocated the marker and never read it:
11
+ *
12
+ * path allocates reads (revives)
13
+ * chat.ts ✅ ✅
14
+ * orchestrator.ts ✅ ✅ (covers execute.ts's pipeline path)
15
+ * resilient-call.ts ✅ ✅
16
+ * edit.ts ✅ ✅ (via the runSingleShotAuto `revive` hook)
17
+ * execute.ts ✅ ✅ (the follow-up path that bypasses the
18
+ * orchestrator sweeps its own session)
19
+ * plan.ts ✅ ✅ (via the runSingleShotAuto `revive` hook)
20
+ *
21
+ * Every allocating path now reads what it arms. When this was not true, an
22
+ * exhausted provider stayed
23
+ * excluded for the rest of the session even after it recovered, and the run
24
+ * either degraded or died — while the machinery to prove recovery in seconds sat
25
+ * unused. Live evidence: a pipeline run hit a Gemini 503, the breaker parked the
26
+ * provider, context-gatherer fell back to "0 relevant files", and the writer then
27
+ * edited blind. A single capacity spike at one endpoint became a wrong answer.
28
+ *
29
+ * WHY A STORE ADAPTER: the callers keep their session state in two different
30
+ * shapes — `FailureSessionState` (chat/orchestrator/edit/plan/execute) and
31
+ * resilient-call's own `{ expiresAt, kind }` maps. Rather than duplicate the
32
+ * probe logic per shape (the duplication that caused this bug), the probe works
33
+ * against this small port and each caller adapts.
34
+ *
35
+ * Cycle safety: `auto-router.js` is imported LAZILY (only when a caller does not
36
+ * supply its own model resolver), so this module can be imported from the
37
+ * router's own dependencies without creating a static cycle.
38
+ */
39
+ import { spotCheckModel } from '../inference/model-probe.js';
40
+ import { getModelRegistry } from './model-registry.js';
41
+ import { TRANSIENT_FAILURE_EXCLUSION_MS } from './failure-bookkeeping.js';
42
+ import { logger } from '../utils/logger.js';
43
+ const DEFAULT_MAX_PROBES = 3;
44
+ /**
45
+ * Adapt a raw (exclusions, transient markers) pair to the revival port. This is
46
+ * the shape every CLI path holds, including chat, whose two collections are
47
+ * instance fields rather than a `FailureSessionState` object.
48
+ */
49
+ export function collectionRevivalStore(sessionFailedProviders, sessionTransientFailedProviders) {
50
+ return {
51
+ transientProviders: () => sessionTransientFailedProviders,
52
+ isExclusionActive: (provider, now) => {
53
+ const expiresAt = sessionFailedProviders.get(provider);
54
+ return expiresAt !== undefined && expiresAt > now;
55
+ },
56
+ clearProvider: (provider) => {
57
+ sessionTransientFailedProviders.delete(provider);
58
+ sessionFailedProviders.delete(provider);
59
+ },
60
+ reArmProvider: (provider, until) => {
61
+ sessionFailedProviders.set(provider, until);
62
+ sessionTransientFailedProviders.add(provider);
63
+ },
64
+ };
65
+ }
66
+ /** Adapt the shared `FailureSessionState` to the revival port. */
67
+ export function sessionRevivalStore(session) {
68
+ return collectionRevivalStore(session.sessionFailedProviders, session.sessionTransientFailedProviders);
69
+ }
70
+ /**
71
+ * Re-verify transiently-failed providers and re-admit the ones that recovered.
72
+ *
73
+ * Contract (identical to the chat path this was extracted from, so behaviour does
74
+ * not change there):
75
+ * - a provider whose exclusion is still ACTIVE is left alone;
76
+ * - a provider the registry no longer blocks needs no probe — it is re-admitted;
77
+ * - otherwise a 1-token spot-check decides: verified/skipped → re-admit,
78
+ * anything else → re-arm the exclusion for another transient window.
79
+ *
80
+ * Never throws: revival is an optimisation and must never break a call.
81
+ */
82
+ export async function sweepTransientFailures(store, configManager, options = {}) {
83
+ const result = { probed: [], revived: [], stillDown: [] };
84
+ const now = options.now ?? Date.now;
85
+ const probe = options.probe ?? spotCheckModel;
86
+ const maxProbes = options.maxProbes ?? DEFAULT_MAX_PROBES;
87
+ const agentType = options.agentType ?? 'chat';
88
+ try {
89
+ // SNAPSHOT: clearProvider/reArmProvider mutate the set, and Set iteration can
90
+ // revisit a re-added key — which would double-probe it.
91
+ const candidates = [...store.transientProviders()];
92
+ if (candidates.length === 0)
93
+ return result;
94
+ for (const provider of candidates) {
95
+ if (result.probed.length >= maxProbes)
96
+ break;
97
+ const at = now();
98
+ if (store.isExclusionActive(provider, at))
99
+ continue;
100
+ // Optimistic: assume admitted, then re-arm if the probe says otherwise.
101
+ // (A throw anywhere below leaves the provider admitted, exactly like the
102
+ // chat path did — an unreachable registry must not freeze a provider out.)
103
+ store.clearProvider(provider);
104
+ const registry = getModelRegistry();
105
+ if (!registry.getBlockedProviders().includes(provider)) {
106
+ // Nothing to prove: the registry already considers it healthy (a
107
+ // time-based park lapsed, or telemetry healed it).
108
+ result.revived.push(provider);
109
+ continue;
110
+ }
111
+ let desired;
112
+ try {
113
+ desired = store.resolveProbeModel?.(provider) ?? (await defaultProbeModel(provider, agentType, configManager));
114
+ }
115
+ catch {
116
+ desired = undefined;
117
+ }
118
+ // No model to probe → the registry block is not about a specific model we
119
+ // can verify; admit it rather than stranding the provider forever.
120
+ if (!desired) {
121
+ result.revived.push(provider);
122
+ continue;
123
+ }
124
+ result.probed.push(provider);
125
+ const outcome = await probe(provider, desired, configManager);
126
+ // 'skipped' = the model was verified recently (inside the spot-check
127
+ // throttle) — that is healthy, so it counts as a pass.
128
+ if (outcome === 'verified' || outcome === 'skipped') {
129
+ result.revived.push(provider);
130
+ options.onEvent?.(` ♻️ ${provider} is back — re-admitted after a spot-check`);
131
+ logger.info(` ♻️ ${provider} recovered (spot-check ${outcome}) — re-admitted to routing`);
132
+ }
133
+ else {
134
+ store.reArmProvider(provider, at + TRANSIENT_FAILURE_EXCLUSION_MS);
135
+ result.stillDown.push(provider);
136
+ }
137
+ }
138
+ }
139
+ catch {
140
+ // Best-effort — a sweep failure must never break the call that triggered it.
141
+ }
142
+ return result;
143
+ }
144
+ /**
145
+ * Default probe model: the router's own pick for this provider, so the sweep
146
+ * verifies the model that routing would actually serve. Lazy import keeps this
147
+ * module free of a static dependency on the router.
148
+ */
149
+ async function defaultProbeModel(provider, agentType, configManager) {
150
+ const { getAutoRouter } = await import('./auto-router.js');
151
+ const model = getAutoRouter().resolveModel(provider, agentType, configManager);
152
+ return model && model !== 'default' ? model : undefined;
153
+ }
154
+ //# sourceMappingURL=provider-revival.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-revival.js","sourceRoot":"","sources":["../../src/learning/provider-revival.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resilient-call.d.ts","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAAiB,KAAK,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAa7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,oDAAoD;AACpD,KAAK,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEjG,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAgFD;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAkED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,SAAS,CA8PX;AA2DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,IAAI,GAAE,mBAAwB,GAC7B,iBAAiB,EAAE,CA0HrB;AAaD,gFAAgF;AAChF,KAAK,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,GAAE,wBAA6B,GAClC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAW/C"}
1
+ {"version":3,"file":"resilient-call.d.ts","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAAiB,KAAK,eAAe,EAAuB,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,oDAAoD;AACpD,KAAK,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAC;AAEjG,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAgFD;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E;AAsED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,oBAAoB,GAC5B,SAAS,CA6SX;AA2DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,IAAI,GAAE,mBAAwB,GAC7B,iBAAiB,EAAE,CA0HrB;AAaD,gFAAgF;AAChF,KAAK,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,GAAE,wBAA6B,GAClC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAW/C"}
@@ -26,8 +26,8 @@
26
26
  * - Tools: ctx.callLLM is already resilient (inherited from orchestrator)
27
27
  */
28
28
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
29
- import { homedir } from 'node:os';
30
29
  import { join } from 'node:path';
30
+ import { resolveNuviraConfigDir, resolveNuviraDataPath } from '../config/paths.js';
31
31
  import { getAutoRouter } from './auto-router.js';
32
32
  import { analyzeComplexity } from './hybrid-router.js';
33
33
  import { buildAutoResolveOptions } from './resolve-options.js';
@@ -37,6 +37,7 @@ import { resolveWorkingModel } from '../inference/model-validator.js';
37
37
  import { getDefaultModel } from '../inference/provider-catalog.js';
38
38
  import { getModelRegistry } from './model-registry.js';
39
39
  import { recordActionFailure } from './failure-bookkeeping.js';
40
+ import { sweepTransientFailures } from './provider-revival.js';
40
41
  import { getProviderFallback, recordRegistrySuccess } from './provider-fallback.js';
41
42
  import { ProviderFactory } from '../inference/factory.js';
42
43
  import { recordRoutingDecision } from './routing-history.js';
@@ -90,7 +91,11 @@ function exclusionDuration(kind) {
90
91
  }
91
92
  function loadPersistedFailures() {
92
93
  try {
93
- const path = join(homedir(), '.nuvira', FAILURE_PERSIST_PATH);
94
+ // Resolved through the active config dir (`$NUVIRA_CONFIG_DIR` aware) — a
95
+ // hardcoded `~/.nuvira` here made an isolated process inherit (and mutate)
96
+ // the real profile's exclusions, so a cooldown earned by a live run
97
+ // silently suppressed models inside tests and sandboxes.
98
+ const path = resolveNuviraDataPath(FAILURE_PERSIST_PATH);
94
99
  if (!existsSync(path))
95
100
  return {};
96
101
  const raw = readFileSync(path, 'utf-8');
@@ -115,7 +120,7 @@ function loadPersistedFailures() {
115
120
  */
116
121
  function persistFailure(provider, kind, model) {
117
122
  try {
118
- const dir = join(homedir(), '.nuvira');
123
+ const dir = resolveNuviraConfigDir();
119
124
  if (!existsSync(dir))
120
125
  mkdirSync(dir, { recursive: true });
121
126
  const path = join(dir, FAILURE_PERSIST_PATH);
@@ -166,6 +171,13 @@ export function createResilientCallLLM(configManager, options) {
166
171
  currentModel: '',
167
172
  exhausted: false,
168
173
  };
174
+ // Providers excluded by a TRANSIENT failure (server/network/timeout) during
175
+ // this session. Tracked separately from `state.sessionFailed` because a
176
+ // transient exclusion is PROVISIONAL: it is only upheld until a spot-check
177
+ // proves the provider is still down. The state previously allocated this
178
+ // marker for bookkeeping and never read it, so a provider that recovered kept
179
+ // being skipped for the entire task.
180
+ const transientProviders = new Set();
169
181
  // Load cross-pipeline failures
170
182
  const persistedFailures = options.crossPipelineMemory !== false ? loadPersistedFailures() : {};
171
183
  // Initial routing decision
@@ -195,6 +207,30 @@ export function createResilientCallLLM(configManager, options) {
195
207
  if (state.exhausted) {
196
208
  throw new Error(`All LLM providers exhausted. No more candidates available for: ${options.task.description}`);
197
209
  }
210
+ // ── Re-verify before re-admit ──────────────────────────────────────────
211
+ // Before choosing a candidate, give any provider excluded by a TRANSIENT
212
+ // failure the one-more-round the state always intended: a 1-token
213
+ // spot-check. Verified → back in the pool for THIS call; still down → its
214
+ // exclusion is re-armed. Best-effort and bounded (the sweep stops at 3
215
+ // probes and skips still-active exclusions without a network call).
216
+ try {
217
+ await sweepTransientFailures({
218
+ transientProviders: () => transientProviders,
219
+ isExclusionActive: (provider, now) => expiryAt(state.sessionFailed.get(provider)) > now,
220
+ clearProvider: (provider) => {
221
+ transientProviders.delete(provider);
222
+ state.sessionFailed.delete(provider);
223
+ },
224
+ reArmProvider: (provider, until) => {
225
+ state.sessionFailed.set(provider, { expiresAt: until, kind: 'unknown' });
226
+ transientProviders.add(provider);
227
+ },
228
+ resolveProbeModel: (provider) => autoRouter.resolveModel(provider, options.task.agentType, configManager),
229
+ }, configManager, { agentType: options.task.agentType });
230
+ }
231
+ catch {
232
+ // Best-effort — revival must never break the call.
233
+ }
198
234
  // Try current provider first, then walk all candidates
199
235
  const candidatesToTry = [
200
236
  { provider: state.currentProvider, model: state.currentModel, score: 1.0 },
@@ -325,6 +361,15 @@ export function createResilientCallLLM(configManager, options) {
325
361
  kind,
326
362
  });
327
363
  }
364
+ // TRANSIENT failures are PROVISIONAL: mark the provider as awaiting a
365
+ // spot-check so a later call re-verifies it instead of skipping it for
366
+ // the rest of the task. auth = the key is dead (never revives on its
367
+ // own), rate-limit = the provider's own reset window governs, and
368
+ // model-not-found is definitive for that model — none of those are
369
+ // helped by a probe, so they are deliberately NOT marked.
370
+ if (kind === 'network' || kind === 'timeout' || kind === 'unknown') {
371
+ transientProviders.add(candidate.provider);
372
+ }
328
373
  // Persist for cross-pipeline memory
329
374
  if (options.crossPipelineMemory !== false) {
330
375
  persistFailure(candidate.provider, kind, modelScoped ? failedModel : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"resilient-call.js","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilient-call.js","sourceRoot":"","sources":["../../src/learning/resilient-call.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@
30
30
  * in doubt it returns false (task) so no legitimate pipeline goal is ever
31
31
  * starved of execution.
32
32
  */
33
+ import { type ParsedRequest } from './parser.js';
33
34
  /** True when the ask carries an unambiguous coding action (task, not question). */
34
35
  export declare function hasCodingAction(text: string): boolean;
35
36
  /**
@@ -43,4 +44,40 @@ export declare function hasCodingAction(text: string): boolean;
43
44
  * → task).
44
45
  */
45
46
  export declare function isConversationalQuestion(text: string | null | undefined): boolean;
47
+ /** What an ask needs: a direct answer, or the multi-agent pipeline. */
48
+ export type AskKind = 'chat' | 'pipeline';
49
+ /**
50
+ * THE routing decision — one function, every surface.
51
+ *
52
+ * Before this existed, each entry point re-derived the chat-vs-pipeline choice
53
+ * its own way and they disagreed. The gateway asked only
54
+ * `parseRequestSync(text).action.run`, so "how do I add JWT auth to the app?"
55
+ * (status: the NLU's explain rule traps it as a chat question) came back as
56
+ * prose instead of getting the auth added, while a pipeline-shaped ask that was
57
+ * really a question still burned a multi-agent run. The CLI chat path already
58
+ * had the fix — the gate's question check first, then the coding-action
59
+ * override — so the gateway now calls the same function.
60
+ *
61
+ * Order (load-bearing):
62
+ * 1. a genuine question → 'chat' (never create a program to "answer" it);
63
+ * 2. a coding verb in command position → 'pipeline' (even when the NLU
64
+ * misreads it as explain);
65
+ * 3. otherwise the NLU action map decides, defaulting to 'chat'.
66
+ *
67
+ * `parsed` may be supplied by a caller that already parsed the text (the
68
+ * gateway does), so this costs nothing extra on the hot path.
69
+ */
70
+ export declare function resolveAskKind(text: string | null | undefined, parsed?: ParsedRequest): AskKind;
71
+ /**
72
+ * Is this ask a LOCAL CLI COMMAND aimed at the agent itself ("run nuvira
73
+ * gateway status", "agent-nuvira models", "buff gateway status")?
74
+ *
75
+ * Observed live: a sender typed a diagnostic command into WhatsApp and the
76
+ * gateway dispatched a SIX-TASK multi-agent pipeline (because the NLU read
77
+ * "run …" as a create intent) that failed after 112s and wrote an approval
78
+ * artifact. A remote sender cannot execute a command on the operator's
79
+ * machine, and a coding pipeline is the worst possible answer — so this is
80
+ * recognised explicitly and answered with a pointer instead.
81
+ */
82
+ export declare function looksLikeAgentCliAsk(text: string | null | undefined): boolean;
46
83
  //# sourceMappingURL=conversation-gate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-gate.d.ts","sourceRoot":"","sources":["../../src/nlu/conversation-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AA6BH,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOjF"}
1
+ {"version":3,"file":"conversation-gate.d.ts","sourceRoot":"","sources":["../../src/nlu/conversation-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AA0BnE,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOjF;AAED,uEAAuE;AACvE,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAOT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAM7E"}
@@ -79,4 +79,53 @@ export function isConversationalQuestion(text) {
79
79
  const parsed = parseRequestSync(t);
80
80
  return parsed.action.run === 'chat';
81
81
  }
82
+ /**
83
+ * THE routing decision — one function, every surface.
84
+ *
85
+ * Before this existed, each entry point re-derived the chat-vs-pipeline choice
86
+ * its own way and they disagreed. The gateway asked only
87
+ * `parseRequestSync(text).action.run`, so "how do I add JWT auth to the app?"
88
+ * (status: the NLU's explain rule traps it as a chat question) came back as
89
+ * prose instead of getting the auth added, while a pipeline-shaped ask that was
90
+ * really a question still burned a multi-agent run. The CLI chat path already
91
+ * had the fix — the gate's question check first, then the coding-action
92
+ * override — so the gateway now calls the same function.
93
+ *
94
+ * Order (load-bearing):
95
+ * 1. a genuine question → 'chat' (never create a program to "answer" it);
96
+ * 2. a coding verb in command position → 'pipeline' (even when the NLU
97
+ * misreads it as explain);
98
+ * 3. otherwise the NLU action map decides, defaulting to 'chat'.
99
+ *
100
+ * `parsed` may be supplied by a caller that already parsed the text (the
101
+ * gateway does), so this costs nothing extra on the hot path.
102
+ */
103
+ export function resolveAskKind(text, parsed) {
104
+ const t = String(text ?? '').trim();
105
+ if (!t)
106
+ return 'chat';
107
+ if (isTrivialPrompt(t))
108
+ return 'chat';
109
+ if (hasCodingAction(t))
110
+ return 'pipeline';
111
+ const p = parsed ?? parseRequestSync(t);
112
+ return p.action.run === 'pipeline' ? 'pipeline' : 'chat';
113
+ }
114
+ /**
115
+ * Is this ask a LOCAL CLI COMMAND aimed at the agent itself ("run nuvira
116
+ * gateway status", "agent-nuvira models", "buff gateway status")?
117
+ *
118
+ * Observed live: a sender typed a diagnostic command into WhatsApp and the
119
+ * gateway dispatched a SIX-TASK multi-agent pipeline (because the NLU read
120
+ * "run …" as a create intent) that failed after 112s and wrote an approval
121
+ * artifact. A remote sender cannot execute a command on the operator's
122
+ * machine, and a coding pipeline is the worst possible answer — so this is
123
+ * recognised explicitly and answered with a pointer instead.
124
+ */
125
+ export function looksLikeAgentCliAsk(text) {
126
+ const t = String(text ?? '').trim();
127
+ if (!t)
128
+ return false;
129
+ return /(?:^|\s)(?:nuvira|agent-nuvira|buff)\s+(?:gateway|models?|status|config|contacts?|delivery|whatsapp|dashboard|traces?|leaderboard)\b/i.test(t);
130
+ }
82
131
  //# sourceMappingURL=conversation-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-gate.js","sourceRoot":"","sources":["../../src/nlu/conversation-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,iBAAiB,GACrB,+MAA+M,CAAC;AAElN,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,sBAAsB,iBAAiB,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1F;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,wHAAwH,iBAAiB,UAAU,EACnJ,GAAG,CACJ,CAAC;AAEF,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,yEAAyE;IACzE,uCAAuC;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA+B;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"conversation-gate.js","sourceRoot":"","sources":["../../src/nlu/conversation-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,iBAAiB,GACrB,+MAA+M,CAAC;AAElN,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,sBAAsB,iBAAiB,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1F;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,wHAAwH,iBAAiB,UAAU,EACnJ,GAAG,CACJ,CAAC;AAEF,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,yEAAyE;IACzE,uCAAuC;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA+B;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC;AACtC,CAAC;AAKD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA+B,EAC/B,MAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACtB,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,eAAe,CAAC,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA+B;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,uIAAuI,CAAC,IAAI,CACjJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -13,9 +13,9 @@ import { z } from 'zod';
13
13
  /** The intent vocabulary — byte-identical to C1's NluIntent. */
14
14
  export declare const nluIntentSchema: z.ZodEnum<{
15
15
  unknown: "unknown";
16
- fix: "fix";
17
16
  explain: "explain";
18
17
  create: "create";
18
+ fix: "fix";
19
19
  configure: "configure";
20
20
  continue: "continue";
21
21
  }>;
@@ -47,9 +47,9 @@ export declare const nluEntitiesSchema: z.ZodObject<{
47
47
  export declare const verifyResponseSchema: z.ZodObject<{
48
48
  intent: z.ZodEnum<{
49
49
  unknown: "unknown";
50
- fix: "fix";
51
50
  explain: "explain";
52
51
  create: "create";
52
+ fix: "fix";
53
53
  configure: "configure";
54
54
  continue: "continue";
55
55
  }>;