agent-nuvira 2.7.2 → 3.0.0

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 (402) 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/auth-api.d.ts +2 -0
  21. package/dist/auth-api.d.ts.map +1 -0
  22. package/dist/auth-api.js +61 -0
  23. package/dist/auth-api.js.map +1 -0
  24. package/dist/auth.test.d.ts +1 -0
  25. package/dist/auth.test.d.ts.map +1 -0
  26. package/dist/auth.test.js +3 -0
  27. package/dist/auth.test.js.map +1 -0
  28. package/dist/cli/chat.d.ts +66 -1
  29. package/dist/cli/chat.d.ts.map +1 -1
  30. package/dist/cli/chat.js +323 -77
  31. package/dist/cli/chat.js.map +1 -1
  32. package/dist/cli/cli-program.d.ts +6 -0
  33. package/dist/cli/cli-program.d.ts.map +1 -0
  34. package/dist/cli/cli-program.js +222 -0
  35. package/dist/cli/cli-program.js.map +1 -0
  36. package/dist/cli/edit.d.ts.map +1 -1
  37. package/dist/cli/edit.js +18 -3
  38. package/dist/cli/edit.js.map +1 -1
  39. package/dist/cli/execute.d.ts.map +1 -1
  40. package/dist/cli/execute.js +29 -5
  41. package/dist/cli/execute.js.map +1 -1
  42. package/dist/cli/failover-runner.d.ts +13 -0
  43. package/dist/cli/failover-runner.d.ts.map +1 -1
  44. package/dist/cli/failover-runner.js +11 -0
  45. package/dist/cli/failover-runner.js.map +1 -1
  46. package/dist/cli/gateway.d.ts +16 -0
  47. package/dist/cli/gateway.d.ts.map +1 -1
  48. package/dist/cli/gateway.js +108 -2
  49. package/dist/cli/gateway.js.map +1 -1
  50. package/dist/cli/loop-executor.d.ts.map +1 -1
  51. package/dist/cli/loop-executor.js +296 -20
  52. package/dist/cli/loop-executor.js.map +1 -1
  53. package/dist/cli/plan.d.ts.map +1 -1
  54. package/dist/cli/plan.js +20 -6
  55. package/dist/cli/plan.js.map +1 -1
  56. package/dist/cli/process-control.d.ts +10 -0
  57. package/dist/cli/process-control.d.ts.map +1 -1
  58. package/dist/cli/process-control.js +73 -7
  59. package/dist/cli/process-control.js.map +1 -1
  60. package/dist/cli/router.d.ts +16 -5
  61. package/dist/cli/router.d.ts.map +1 -1
  62. package/dist/cli/router.js +31 -206
  63. package/dist/cli/router.js.map +1 -1
  64. package/dist/config/paths.d.ts +23 -0
  65. package/dist/config/paths.d.ts.map +1 -1
  66. package/dist/config/paths.js +30 -0
  67. package/dist/config/paths.js.map +1 -1
  68. package/dist/config/provider-env.d.ts +37 -0
  69. package/dist/config/provider-env.d.ts.map +1 -0
  70. package/dist/config/provider-env.js +86 -0
  71. package/dist/config/provider-env.js.map +1 -0
  72. package/dist/context/history.d.ts.map +1 -1
  73. package/dist/context/history.js +24 -8
  74. package/dist/context/history.js.map +1 -1
  75. package/dist/context/session-recall.d.ts +30 -0
  76. package/dist/context/session-recall.d.ts.map +1 -1
  77. package/dist/context/session-recall.js +61 -0
  78. package/dist/context/session-recall.js.map +1 -1
  79. package/dist/file.js +0 -1
  80. package/dist/file.js.map +1 -1
  81. package/dist/gateway/adapters.d.ts +10 -0
  82. package/dist/gateway/adapters.d.ts.map +1 -1
  83. package/dist/gateway/adapters.js +4 -1
  84. package/dist/gateway/adapters.js.map +1 -1
  85. package/dist/gateway/dedup.d.ts +105 -0
  86. package/dist/gateway/dedup.d.ts.map +1 -0
  87. package/dist/gateway/dedup.js +160 -0
  88. package/dist/gateway/dedup.js.map +1 -0
  89. package/dist/gateway/heartbeat.d.ts +99 -0
  90. package/dist/gateway/heartbeat.d.ts.map +1 -0
  91. package/dist/gateway/heartbeat.js +122 -0
  92. package/dist/gateway/heartbeat.js.map +1 -0
  93. package/dist/gateway/inbox.d.ts +14 -1
  94. package/dist/gateway/inbox.d.ts.map +1 -1
  95. package/dist/gateway/inbox.js.map +1 -1
  96. package/dist/gateway/platform-config.d.ts +5 -0
  97. package/dist/gateway/platform-config.d.ts.map +1 -1
  98. package/dist/gateway/platform-config.js +8 -13
  99. package/dist/gateway/platform-config.js.map +1 -1
  100. package/dist/gateway/registry.d.ts +65 -0
  101. package/dist/gateway/registry.d.ts.map +1 -1
  102. package/dist/gateway/registry.js +307 -32
  103. package/dist/gateway/registry.js.map +1 -1
  104. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  105. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  106. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  107. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  108. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  109. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  110. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  111. package/dist/index.js +1 -1
  112. package/dist/index.js.map +1 -1
  113. package/dist/inference/factory.d.ts +16 -0
  114. package/dist/inference/factory.d.ts.map +1 -1
  115. package/dist/inference/factory.js +42 -0
  116. package/dist/inference/factory.js.map +1 -1
  117. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  118. package/dist/inference/gemini-adapter.js +3 -0
  119. package/dist/inference/gemini-adapter.js.map +1 -1
  120. package/dist/inference/interface.d.ts +12 -0
  121. package/dist/inference/interface.d.ts.map +1 -1
  122. package/dist/inference/local-adapter.d.ts +2 -0
  123. package/dist/inference/local-adapter.d.ts.map +1 -1
  124. package/dist/inference/local-adapter.js +36 -5
  125. package/dist/inference/local-adapter.js.map +1 -1
  126. package/dist/inference/model-catalog.d.ts +8 -0
  127. package/dist/inference/model-catalog.d.ts.map +1 -1
  128. package/dist/inference/model-catalog.js +40 -0
  129. package/dist/inference/model-catalog.js.map +1 -1
  130. package/dist/inference/model-probe.d.ts +7 -0
  131. package/dist/inference/model-probe.d.ts.map +1 -1
  132. package/dist/inference/model-probe.js +25 -7
  133. package/dist/inference/model-probe.js.map +1 -1
  134. package/dist/inference/native-tools.d.ts +8 -0
  135. package/dist/inference/native-tools.d.ts.map +1 -1
  136. package/dist/inference/native-tools.js +14 -3
  137. package/dist/inference/native-tools.js.map +1 -1
  138. package/dist/inference/tool-call-utils.d.ts +66 -7
  139. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  140. package/dist/inference/tool-call-utils.js +134 -13
  141. package/dist/inference/tool-call-utils.js.map +1 -1
  142. package/dist/learning/auto-router.d.ts +21 -0
  143. package/dist/learning/auto-router.d.ts.map +1 -1
  144. package/dist/learning/auto-router.js +282 -21
  145. package/dist/learning/auto-router.js.map +1 -1
  146. package/dist/learning/context-budget.d.ts +133 -0
  147. package/dist/learning/context-budget.d.ts.map +1 -0
  148. package/dist/learning/context-budget.js +196 -0
  149. package/dist/learning/context-budget.js.map +1 -0
  150. package/dist/learning/cost-tracker.d.ts.map +1 -1
  151. package/dist/learning/cost-tracker.js +20 -8
  152. package/dist/learning/cost-tracker.js.map +1 -1
  153. package/dist/learning/eval-framework.d.ts.map +1 -1
  154. package/dist/learning/eval-framework.js +6 -2
  155. package/dist/learning/eval-framework.js.map +1 -1
  156. package/dist/learning/failure-bookkeeping.d.ts +41 -0
  157. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  158. package/dist/learning/failure-bookkeeping.js +122 -4
  159. package/dist/learning/failure-bookkeeping.js.map +1 -1
  160. package/dist/learning/feedback.d.ts.map +1 -1
  161. package/dist/learning/feedback.js +19 -8
  162. package/dist/learning/feedback.js.map +1 -1
  163. package/dist/learning/model-first-router.d.ts.map +1 -1
  164. package/dist/learning/model-first-router.js +5 -11
  165. package/dist/learning/model-first-router.js.map +1 -1
  166. package/dist/learning/model-harness.d.ts +76 -0
  167. package/dist/learning/model-harness.d.ts.map +1 -0
  168. package/dist/learning/model-harness.js +119 -0
  169. package/dist/learning/model-harness.js.map +1 -0
  170. package/dist/learning/model-registry.d.ts +29 -0
  171. package/dist/learning/model-registry.d.ts.map +1 -1
  172. package/dist/learning/model-registry.js +129 -3
  173. package/dist/learning/model-registry.js.map +1 -1
  174. package/dist/learning/model-scoring.d.ts.map +1 -1
  175. package/dist/learning/model-scoring.js +6 -1
  176. package/dist/learning/model-scoring.js.map +1 -1
  177. package/dist/learning/model-selection.d.ts +15 -0
  178. package/dist/learning/model-selection.d.ts.map +1 -1
  179. package/dist/learning/model-selection.js +40 -1
  180. package/dist/learning/model-selection.js.map +1 -1
  181. package/dist/learning/provider-fallback.d.ts +12 -0
  182. package/dist/learning/provider-fallback.d.ts.map +1 -1
  183. package/dist/learning/provider-fallback.js +84 -0
  184. package/dist/learning/provider-fallback.js.map +1 -1
  185. package/dist/learning/provider-revival.d.ts +106 -0
  186. package/dist/learning/provider-revival.d.ts.map +1 -0
  187. package/dist/learning/provider-revival.js +154 -0
  188. package/dist/learning/provider-revival.js.map +1 -0
  189. package/dist/learning/quota-ledger.d.ts +64 -3
  190. package/dist/learning/quota-ledger.d.ts.map +1 -1
  191. package/dist/learning/quota-ledger.js +122 -9
  192. package/dist/learning/quota-ledger.js.map +1 -1
  193. package/dist/learning/resilient-call.d.ts +98 -0
  194. package/dist/learning/resilient-call.d.ts.map +1 -1
  195. package/dist/learning/resilient-call.js +252 -46
  196. package/dist/learning/resilient-call.js.map +1 -1
  197. package/dist/nlu/conversation-gate.d.ts +37 -0
  198. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  199. package/dist/nlu/conversation-gate.js +49 -0
  200. package/dist/nlu/conversation-gate.js.map +1 -1
  201. package/dist/nlu/schema.d.ts +4 -4
  202. package/dist/observability/dag-bridge.d.ts +69 -0
  203. package/dist/observability/dag-bridge.d.ts.map +1 -0
  204. package/dist/observability/dag-bridge.js +56 -0
  205. package/dist/observability/dag-bridge.js.map +1 -0
  206. package/dist/observability/event-bus.d.ts +5 -10
  207. package/dist/observability/event-bus.d.ts.map +1 -1
  208. package/dist/observability/event-bus.js +10 -42
  209. package/dist/observability/event-bus.js.map +1 -1
  210. package/dist/routes/auth.d.ts +3 -0
  211. package/dist/routes/auth.d.ts.map +1 -0
  212. package/dist/routes/auth.js +41 -36
  213. package/dist/routes/auth.js.map +1 -0
  214. package/dist/skills/execution-audit.d.ts.map +1 -1
  215. package/dist/skills/execution-audit.js +17 -5
  216. package/dist/skills/execution-audit.js.map +1 -1
  217. package/dist/skills/sandbox-executor.d.ts +12 -1
  218. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  219. package/dist/skills/sandbox-executor.js +28 -6
  220. package/dist/skills/sandbox-executor.js.map +1 -1
  221. package/dist/skills/secret-capture.d.ts +45 -1
  222. package/dist/skills/secret-capture.d.ts.map +1 -1
  223. package/dist/skills/secret-capture.js +82 -19
  224. package/dist/skills/secret-capture.js.map +1 -1
  225. package/dist/skills/skill-env-inventory.d.ts +79 -0
  226. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  227. package/dist/skills/skill-env-inventory.js +167 -0
  228. package/dist/skills/skill-env-inventory.js.map +1 -0
  229. package/dist/skills/skill-executor.d.ts +2 -0
  230. package/dist/skills/skill-executor.d.ts.map +1 -1
  231. package/dist/skills/skill-executor.js +19 -24
  232. package/dist/skills/skill-executor.js.map +1 -1
  233. package/dist/tools/ask-user.d.ts +14 -1
  234. package/dist/tools/ask-user.d.ts.map +1 -1
  235. package/dist/tools/ask-user.js +25 -1
  236. package/dist/tools/ask-user.js.map +1 -1
  237. package/dist/tools/followup-utils.d.ts +64 -0
  238. package/dist/tools/followup-utils.d.ts.map +1 -0
  239. package/dist/tools/followup-utils.js +158 -0
  240. package/dist/tools/followup-utils.js.map +1 -0
  241. package/dist/tools/memory-tools.d.ts +35 -0
  242. package/dist/tools/memory-tools.d.ts.map +1 -1
  243. package/dist/tools/memory-tools.js +76 -0
  244. package/dist/tools/memory-tools.js.map +1 -1
  245. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  246. package/dist/tools/pipeline-tool.js +8 -3
  247. package/dist/tools/pipeline-tool.js.map +1 -1
  248. package/dist/tools/registry.d.ts +25 -12
  249. package/dist/tools/registry.d.ts.map +1 -1
  250. package/dist/tools/registry.js +31 -6
  251. package/dist/tools/registry.js.map +1 -1
  252. package/dist/tools/skill-tool.d.ts.map +1 -1
  253. package/dist/tools/skill-tool.js +52 -5
  254. package/dist/tools/skill-tool.js.map +1 -1
  255. package/dist/tools/tool-loop.d.ts +63 -1
  256. package/dist/tools/tool-loop.d.ts.map +1 -1
  257. package/dist/tools/tool-loop.js +305 -66
  258. package/dist/tools/tool-loop.js.map +1 -1
  259. package/dist/tools/toolsets.d.ts +19 -3
  260. package/dist/tools/toolsets.d.ts.map +1 -1
  261. package/dist/tools/toolsets.js +21 -5
  262. package/dist/tools/toolsets.js.map +1 -1
  263. package/dist/utils/env.d.ts.map +1 -1
  264. package/dist/utils/env.js +9 -13
  265. package/dist/utils/env.js.map +1 -1
  266. package/dist/web-dashboard/chat-console.d.ts +13 -1
  267. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  268. package/dist/web-dashboard/chat-console.js +16 -2
  269. package/dist/web-dashboard/chat-console.js.map +1 -1
  270. package/dist/web-dashboard/hub-data.d.ts +2 -0
  271. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  272. package/dist/web-dashboard/hub-data.js +4 -0
  273. package/dist/web-dashboard/hub-data.js.map +1 -1
  274. package/dist/web-dashboard/server.d.ts +6 -0
  275. package/dist/web-dashboard/server.d.ts.map +1 -1
  276. package/dist/web-dashboard/server.js +196 -3
  277. package/dist/web-dashboard/server.js.map +1 -1
  278. package/dist/web-dashboard/src/types.d.ts +31 -1
  279. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  280. package/package.json +11 -1
  281. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  282. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  283. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  284. package/src/web-dashboard/public/index.html +2 -2
  285. package/dist/example.d.ts +0 -1
  286. package/dist/example.d.ts.map +0 -1
  287. package/dist/example.js +0 -3
  288. package/dist/example.js.map +0 -1
  289. package/dist/fresh.d.ts +0 -2
  290. package/dist/fresh.d.ts.map +0 -1
  291. package/dist/fresh.js +0 -2
  292. package/dist/fresh.js.map +0 -1
  293. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  294. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  295. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  296. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  297. package/dist/memory/background-sync.d.ts +0 -107
  298. package/dist/memory/background-sync.d.ts.map +0 -1
  299. package/dist/memory/background-sync.js +0 -242
  300. package/dist/memory/background-sync.js.map +0 -1
  301. package/dist/memory/cross-session.d.ts +0 -68
  302. package/dist/memory/cross-session.d.ts.map +0 -1
  303. package/dist/memory/cross-session.js +0 -153
  304. package/dist/memory/cross-session.js.map +0 -1
  305. package/dist/memory/drift-detector.d.ts +0 -76
  306. package/dist/memory/drift-detector.d.ts.map +0 -1
  307. package/dist/memory/drift-detector.js +0 -216
  308. package/dist/memory/drift-detector.js.map +0 -1
  309. package/dist/memory/enhanced-manager.d.ts +0 -105
  310. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  311. package/dist/memory/enhanced-manager.js +0 -280
  312. package/dist/memory/enhanced-manager.js.map +0 -1
  313. package/dist/memory/session-extraction.d.ts +0 -93
  314. package/dist/memory/session-extraction.d.ts.map +0 -1
  315. package/dist/memory/session-extraction.js +0 -290
  316. package/dist/memory/session-extraction.js.map +0 -1
  317. package/dist/memory/sqlite-store.d.ts +0 -208
  318. package/dist/memory/sqlite-store.d.ts.map +0 -1
  319. package/dist/memory/sqlite-store.js +0 -556
  320. package/dist/memory/sqlite-store.js.map +0 -1
  321. package/dist/skills/daytona-executor.d.ts +0 -78
  322. package/dist/skills/daytona-executor.d.ts.map +0 -1
  323. package/dist/skills/daytona-executor.js +0 -256
  324. package/dist/skills/daytona-executor.js.map +0 -1
  325. package/dist/skills/modal-executor.d.ts +0 -81
  326. package/dist/skills/modal-executor.d.ts.map +0 -1
  327. package/dist/skills/modal-executor.js +0 -285
  328. package/dist/skills/modal-executor.js.map +0 -1
  329. package/dist/sync/inventory.d.ts +0 -1
  330. package/dist/sync/inventory.d.ts.map +0 -1
  331. package/dist/sync/inventory.js +0 -3
  332. package/dist/sync/inventory.js.map +0 -1
  333. package/dist/sync/validate.d.ts +0 -1
  334. package/dist/sync/validate.d.ts.map +0 -1
  335. package/dist/sync/validate.js +0 -3
  336. package/dist/sync/validate.js.map +0 -1
  337. package/dist/test.d.ts +0 -2
  338. package/dist/test.d.ts.map +0 -1
  339. package/dist/test.js +0 -3
  340. package/dist/test.js.map +0 -1
  341. package/dist/tools/browser-tool.d.ts +0 -206
  342. package/dist/tools/browser-tool.d.ts.map +0 -1
  343. package/dist/tools/browser-tool.js +0 -726
  344. package/dist/tools/browser-tool.js.map +0 -1
  345. package/dist/tools/delegate-tool.d.ts +0 -109
  346. package/dist/tools/delegate-tool.d.ts.map +0 -1
  347. package/dist/tools/delegate-tool.js +0 -185
  348. package/dist/tools/delegate-tool.js.map +0 -1
  349. package/dist/tools/delegation-state.d.ts +0 -87
  350. package/dist/tools/delegation-state.d.ts.map +0 -1
  351. package/dist/tools/delegation-state.js +0 -278
  352. package/dist/tools/delegation-state.js.map +0 -1
  353. package/dist/tools/desktop-ui.d.ts +0 -148
  354. package/dist/tools/desktop-ui.d.ts.map +0 -1
  355. package/dist/tools/desktop-ui.js +0 -486
  356. package/dist/tools/desktop-ui.js.map +0 -1
  357. package/dist/tools/image-video-tool.d.ts +0 -88
  358. package/dist/tools/image-video-tool.d.ts.map +0 -1
  359. package/dist/tools/image-video-tool.js +0 -276
  360. package/dist/tools/image-video-tool.js.map +0 -1
  361. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  362. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  363. package/dist/tools/kanban-cron-tools.js +0 -197
  364. package/dist/tools/kanban-cron-tools.js.map +0 -1
  365. package/dist/tools/messaging-tool.d.ts +0 -127
  366. package/dist/tools/messaging-tool.d.ts.map +0 -1
  367. package/dist/tools/messaging-tool.js +0 -314
  368. package/dist/tools/messaging-tool.js.map +0 -1
  369. package/dist/tools/modality/generic-caller.d.ts +0 -43
  370. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  371. package/dist/tools/modality/generic-caller.js +0 -254
  372. package/dist/tools/modality/generic-caller.js.map +0 -1
  373. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  374. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  375. package/dist/tools/modality/modality-catalog.js +0 -445
  376. package/dist/tools/modality/modality-catalog.js.map +0 -1
  377. package/dist/tools/modality/tool-router.d.ts +0 -81
  378. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  379. package/dist/tools/modality/tool-router.js +0 -84
  380. package/dist/tools/modality/tool-router.js.map +0 -1
  381. package/dist/tools/security-tools.d.ts +0 -107
  382. package/dist/tools/security-tools.d.ts.map +0 -1
  383. package/dist/tools/security-tools.js +0 -264
  384. package/dist/tools/security-tools.js.map +0 -1
  385. package/dist/tools/ssh-tool.d.ts +0 -130
  386. package/dist/tools/ssh-tool.d.ts.map +0 -1
  387. package/dist/tools/ssh-tool.js +0 -328
  388. package/dist/tools/ssh-tool.js.map +0 -1
  389. package/dist/tools/tts-tool.d.ts +0 -91
  390. package/dist/tools/tts-tool.d.ts.map +0 -1
  391. package/dist/tools/tts-tool.js +0 -406
  392. package/dist/tools/tts-tool.js.map +0 -1
  393. package/dist/utils/shell-detection.d.ts +0 -124
  394. package/dist/utils/shell-detection.d.ts.map +0 -1
  395. package/dist/utils/shell-detection.js +0 -305
  396. package/dist/utils/shell-detection.js.map +0 -1
  397. package/dist/utils/windows-paths.d.ts +0 -185
  398. package/dist/utils/windows-paths.d.ts.map +0 -1
  399. package/dist/utils/windows-paths.js +0 -472
  400. package/dist/utils/windows-paths.js.map +0 -1
  401. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  402. package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
@@ -25,16 +25,28 @@
25
25
  * - Chat: replace buildToolCallModel's tryGenerate with resilient wrapper
26
26
  * - Tools: ctx.callLLM is already resilient (inherited from orchestrator)
27
27
  */
28
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
29
+ import { join } from 'node:path';
30
+ import { resolveNuviraConfigDir, resolveNuviraDataPath } from '../config/paths.js';
28
31
  import { getAutoRouter } from './auto-router.js';
29
32
  import { analyzeComplexity } from './hybrid-router.js';
30
33
  import { buildAutoResolveOptions } from './resolve-options.js';
34
+ import { buildModelCandidates, buildTieredFailoverChain } from './model-first-router.js';
35
+ import { recordModelUsage } from './model-warmup.js';
36
+ import { resolveWorkingModel } from '../inference/model-validator.js';
37
+ import { getDefaultModel } from '../inference/provider-catalog.js';
31
38
  import { getModelRegistry } from './model-registry.js';
32
39
  import { recordActionFailure } from './failure-bookkeeping.js';
40
+ import { sweepTransientFailures } from './provider-revival.js';
33
41
  import { getProviderFallback, recordRegistrySuccess } from './provider-fallback.js';
34
42
  import { ProviderFactory } from '../inference/factory.js';
35
43
  import { recordRoutingDecision } from './routing-history.js';
36
44
  import { EventNames, getEventBus } from '../observability/event-bus.js';
37
45
  import { logger } from '../utils/logger.js';
46
+ /** Key for a model-scoped exclusion / persisted failure. */
47
+ function modelKey(provider, model) {
48
+ return `${provider}|${model}`;
49
+ }
38
50
  // ─── Constants ──────────────────────────────────────────────────────────────
39
51
  /** How long a provider is excluded after an auth failure (whole session). */
40
52
  const AUTH_FAILURE_EXCLUSION_MS = Number.MAX_SAFE_INTEGER;
@@ -79,10 +91,11 @@ function exclusionDuration(kind) {
79
91
  }
80
92
  function loadPersistedFailures() {
81
93
  try {
82
- const { existsSync, readFileSync } = require('node:fs');
83
- const { join } = require('node:path');
84
- const { homedir } = require('node:os');
85
- 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);
86
99
  if (!existsSync(path))
87
100
  return {};
88
101
  const raw = readFileSync(path, 'utf-8');
@@ -99,17 +112,21 @@ function loadPersistedFailures() {
99
112
  return {};
100
113
  }
101
114
  }
102
- function persistFailure(provider, kind) {
115
+ /**
116
+ * Persist a failure for cross-pipeline memory. When the failing MODEL is known
117
+ * the entry is keyed `provider|model` so a sibling model on the same provider
118
+ * is still routable in the next process; without a model it stays
119
+ * provider-wide (the legacy, honest answer).
120
+ */
121
+ function persistFailure(provider, kind, model) {
103
122
  try {
104
- const { existsSync, mkdirSync, writeFileSync, readFileSync } = require('node:fs');
105
- const { join } = require('node:path');
106
- const { homedir } = require('node:os');
107
- const dir = join(homedir(), '.nuvira');
123
+ const dir = resolveNuviraConfigDir();
108
124
  if (!existsSync(dir))
109
125
  mkdirSync(dir, { recursive: true });
110
126
  const path = join(dir, FAILURE_PERSIST_PATH);
111
127
  const existing = loadPersistedFailures();
112
- existing[provider] = {
128
+ const key = model && model !== 'default' ? modelKey(provider, model) : provider;
129
+ existing[key] = {
113
130
  expiresAt: Date.now() + exclusionDuration(kind),
114
131
  kind,
115
132
  recordedAt: Date.now(),
@@ -148,11 +165,19 @@ export function createResilientCallLLM(configManager, options) {
148
165
  const autoRouter = getAutoRouter();
149
166
  const state = {
150
167
  sessionFailed: new Map(),
168
+ sessionFailedModels: new Map(),
151
169
  currentAttempt: 0,
152
170
  currentProvider: '',
153
171
  currentModel: '',
154
172
  exhausted: false,
155
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();
156
181
  // Load cross-pipeline failures
157
182
  const persistedFailures = options.crossPipelineMemory !== false ? loadPersistedFailures() : {};
158
183
  // Initial routing decision
@@ -163,12 +188,49 @@ export function createResilientCallLLM(configManager, options) {
163
188
  }
164
189
  // Build the ranked candidate list (all candidates, no cap)
165
190
  // Pass task description + complexity for model-first failover
166
- const allCandidates = buildCandidateList(initialDecision, state.sessionFailed, persistedFailures, options.task.description, options.task.complexity ? analyzeComplexity(options.task.description) : undefined, configManager);
191
+ const allCandidates = buildDeepFailoverPool(initialDecision, {
192
+ taskDescription: options.task.description,
193
+ complexity: options.task.complexity ? analyzeComplexity(options.task.description) : undefined,
194
+ configManager,
195
+ });
196
+ // ONE shared exclusion predicate (session provider-wide + session per-model +
197
+ // cross-pipeline persisted + registry per-entry). The session maps are read
198
+ // LIVE, so a failure recorded mid-walk takes effect on the next candidate.
199
+ const failoverFilter = createFailoverExclusionFilter({
200
+ sessionFailed: state.sessionFailed,
201
+ sessionFailedModels: state.sessionFailedModels,
202
+ crossPipelineMemory: options.crossPipelineMemory !== false,
203
+ persistedFailures,
204
+ });
167
205
  // The resilient callLLM
168
206
  const callLLM = async (prompt, inferenceOptions) => {
169
207
  if (state.exhausted) {
170
208
  throw new Error(`All LLM providers exhausted. No more candidates available for: ${options.task.description}`);
171
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
+ }
172
234
  // Try current provider first, then walk all candidates
173
235
  const candidatesToTry = [
174
236
  { provider: state.currentProvider, model: state.currentModel, score: 1.0 },
@@ -177,26 +239,16 @@ export function createResilientCallLLM(configManager, options) {
177
239
  ];
178
240
  let lastError = null;
179
241
  for (const candidate of candidatesToTry) {
180
- // Skip excluded providers
181
- if (isExcluded(candidate.provider, state.sessionFailed, persistedFailures)) {
242
+ // MODEL-scoped exclusions are honored before provider-wide ones, and the
243
+ // registry is checked per ENTRY: a failed or parked model rules out only
244
+ // itself, so the provider's other candidates in this list stay reachable
245
+ // (deep failover). Shared with chat/execute via the same factory.
246
+ if (failoverFilter(candidate.provider, candidate.model)) {
182
247
  if (options.verbose) {
183
- logger.debug(` ⏭️ ${candidate.provider} excluded — skipping`);
248
+ logger.debug(` ⏭️ ${candidate.provider}/${candidate.model} excluded (failure or registry) — skipping`);
184
249
  }
185
250
  continue;
186
251
  }
187
- // Skip registry-blocked providers
188
- try {
189
- const registry = getModelRegistry();
190
- if (registry.getBlockedProviders().includes(candidate.provider)) {
191
- if (options.verbose) {
192
- logger.debug(` ⏭️ ${candidate.provider} registry-blocked — skipping`);
193
- }
194
- continue;
195
- }
196
- }
197
- catch {
198
- // Best-effort — registry must never break routing.
199
- }
200
252
  // Resolve the provider adapter
201
253
  const adapter = resolveProviderAdapter(configManager, candidate.provider);
202
254
  if (!adapter) {
@@ -231,14 +283,12 @@ export function createResilientCallLLM(configManager, options) {
231
283
  try {
232
284
  const adapter = resolveProviderAdapter(configManager, candidate.provider);
233
285
  if (adapter) {
234
- const { resolveWorkingModel } = require('../inference/model-validator.js');
235
286
  resolvedModel = await resolveWorkingModel(adapter, candidate.provider, resolvedModel);
236
287
  }
237
288
  }
238
289
  catch {
239
290
  // Best-effort — fall through to the catalog's curated default
240
291
  try {
241
- const { getDefaultModel } = require('../inference/provider-catalog.js');
242
292
  resolvedModel = getDefaultModel(candidate.provider);
243
293
  }
244
294
  catch {
@@ -266,7 +316,6 @@ export function createResilientCallLLM(configManager, options) {
266
316
  }
267
317
  // Record usage for warmup daemon
268
318
  try {
269
- const { recordModelUsage } = require('./model-warmup.js');
270
319
  recordModelUsage(candidate.provider, resolvedModel);
271
320
  }
272
321
  catch {
@@ -293,13 +342,37 @@ export function createResilientCallLLM(configManager, options) {
293
342
  // Classify and record the failure
294
343
  const kind = classifyFailure(err);
295
344
  const duration = exclusionDuration(kind);
296
- state.sessionFailed.set(candidate.provider, {
297
- expiresAt: Date.now() + duration,
298
- kind,
299
- });
345
+ // PER-MODEL EXCLUSION when the failing model is known. Excluding the
346
+ // whole provider here is what stopped a provider's 2nd-best model from
347
+ // ever being tried: one 429 on model A took models B and C with it.
348
+ // Only a failure that indicts the whole provider (auth: the key is
349
+ // dead) still records a provider-wide exclusion.
350
+ const failedModel = candidate.model;
351
+ const modelScoped = kind !== 'auth' && !!failedModel && failedModel !== 'default';
352
+ if (modelScoped) {
353
+ state.sessionFailedModels.set(modelKey(candidate.provider, failedModel), {
354
+ expiresAt: Date.now() + duration,
355
+ kind,
356
+ });
357
+ }
358
+ else {
359
+ state.sessionFailed.set(candidate.provider, {
360
+ expiresAt: Date.now() + duration,
361
+ kind,
362
+ });
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
+ }
300
373
  // Persist for cross-pipeline memory
301
374
  if (options.crossPipelineMemory !== false) {
302
- persistFailure(candidate.provider, kind);
375
+ persistFailure(candidate.provider, kind, modelScoped ? failedModel : undefined);
303
376
  }
304
377
  // Record failure in shared bookkeeping
305
378
  try {
@@ -387,10 +460,31 @@ function resolveWithExclusions(autoRouter, configManager, task, sessionFailed, p
387
460
  return null;
388
461
  }
389
462
  }
390
- function buildCandidateList(decision, sessionFailed, persistedFailures, taskDescription, complexity, configManager) {
463
+ /**
464
+ * Build the DEEP failover pool — the ONE candidate list every entry path walks.
465
+ *
466
+ * This used to live only here, which is why the orchestrator/tool/sub-agent path
467
+ * was the deepest walker and chat/execute reached strictly fewer models. It is
468
+ * now exported so chat, execute, the dashboard console and the gateway all walk
469
+ * the SAME pool:
470
+ *
471
+ * 1. the router's primary win
472
+ * 2. the model-first TIERED pool (same model on other providers → same tier →
473
+ * escalate → de-escalate → local; quota pre-checked, so every provider's
474
+ * siblings are reachable, not just its one pin)
475
+ * 3. the router's own chain — ranked alternates PLUS the reserve pool
476
+ * 4. any ranked provider the chain never resolved a model for
477
+ * 5. the config-declared fallback providers
478
+ *
479
+ * Sorted best-first. Callers layer their OWN exclusions on top (session/model
480
+ * cooldowns, registry blocks) — the pool itself is never filtered, so a caller
481
+ * that deliberately wants to reach a parked model (to let `resolveWorkingModel`
482
+ * repair it) still can.
483
+ */
484
+ export function buildDeepFailoverPool(decision, opts = {}) {
391
485
  if (!decision)
392
486
  return [];
393
- const now = Date.now();
487
+ const { taskDescription, complexity, configManager } = opts;
394
488
  const candidates = [];
395
489
  // Primary candidate
396
490
  candidates.push({
@@ -406,10 +500,16 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
406
500
  // 4. De-escalate to lower tier, cheaper models (pre-check quota)
407
501
  // 5. Local model (always available, last resort)
408
502
  // 6. Any remaining (last resort before neural response)
503
+ // Only the providers the ROUTER actually considered (winner + ranked) may
504
+ // contribute tiered candidates. `ranked` is the post-governance, credentialed
505
+ // set, so this keeps the pool to really-callable providers — without it the
506
+ // tiered layer returns the whole CATALOG and every walk pointlessly probes
507
+ // providers the user has no key for (measured: 23 pairs, 16 of them
508
+ // un-credentialed, before this restriction).
509
+ const allowedProviders = [...new Set([decision.provider, ...decision.ranked.map((r) => r.provider)])];
409
510
  try {
410
- const { buildModelCandidates, buildTieredFailoverChain } = require('./model-first-router.js');
411
511
  if (taskDescription && complexity) {
412
- const modelCandidates = buildModelCandidates(taskDescription, complexity, configManager);
512
+ const modelCandidates = buildModelCandidates(taskDescription, complexity, configManager, allowedProviders);
413
513
  const tieredChain = buildTieredFailoverChain({ model: decision.model, provider: decision.provider, dimensions: { capabilityFit: 0.5 } }, modelCandidates);
414
514
  // Flatten tiers into candidate list, maintaining tier order
415
515
  for (const tier of tieredChain) {
@@ -431,11 +531,36 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
431
531
  catch {
432
532
  // Best-effort — tiered failover must never break routing
433
533
  }
434
- // All ranked candidates (NO cap) — supplement with provider-ranked
534
+ // The router's OWN fallback chain — ranked alternates PLUS the RESERVE pool
535
+ // (credentialed providers the registry hasn't verified yet). Each entry now
536
+ // carries a REAL model, and there are several per provider (DEEP FAILOVER),
537
+ // so dedupe must be by provider × model — dedupe by provider alone is what
538
+ // silently dropped every alternate model and made the chain one-model-per-
539
+ // provider. The reserve is strictly last-resort: scored below every ranked
540
+ // candidate so it is only reached once the verified pool is exhausted.
541
+ for (const fb of decision.fallbackChain) {
542
+ const model = fb.model && fb.model !== 'default' ? fb.model : 'default';
543
+ // The primary candidate is already candidates[0].
544
+ if (fb.provider === decision.provider && model === decision.model)
545
+ continue;
546
+ const key = `${fb.provider}|${model}`;
547
+ if (candidates.some((c) => `${c.provider}|${c.model}` === key))
548
+ continue;
549
+ candidates.push({
550
+ provider: fb.provider,
551
+ model,
552
+ // Keep the chain's own order meaningful: the router already ranked these
553
+ // (primary picks before alternates, reserve last). A real model from the
554
+ // chain outranks a bare provider placeholder.
555
+ score: model === 'default' ? 0.05 : 0.5,
556
+ });
557
+ }
558
+ // Any ranked provider still missing entirely (no chain entry resolved a
559
+ // model) — added LAST with the placeholder; resolveModel fills it in at call
560
+ // time via the per-model path.
435
561
  for (const ranked of decision.ranked) {
436
562
  if (ranked.provider === decision.provider)
437
563
  continue;
438
- const key = `${ranked.provider}:default`;
439
564
  if (candidates.some(c => c.provider === ranked.provider))
440
565
  continue;
441
566
  candidates.push({
@@ -462,16 +587,97 @@ function buildCandidateList(decision, sessionFailed, persistedFailures, taskDesc
462
587
  }
463
588
  // Sort by score descending (best first)
464
589
  candidates.sort((a, b) => b.score - a.score);
590
+ // The router's own win MUST stay first. The score-sort above compares the
591
+ // router's COMPOSITE score against the tiered layer's raw capability scores,
592
+ // and a tiered candidate can outscore the winner — which would silently
593
+ // override the router for every caller that walks the pool in order (chat and
594
+ // execute do exactly that). The router's decision is authoritative; the pool
595
+ // only extends failover BEYOND it.
596
+ const primaryIdx = candidates.findIndex((c) => c.provider === decision.provider && c.model === decision.model);
597
+ if (primaryIdx > 0) {
598
+ const [primary] = candidates.splice(primaryIdx, 1);
599
+ candidates.unshift(primary);
600
+ }
465
601
  return candidates;
466
602
  }
467
- function isExcluded(provider, sessionFailed, persistedFailures) {
603
+ /**
604
+ * Expiry read from either a bare timestamp (`Map<string, number>`, the shape
605
+ * chat keeps) or a record with `expiresAt` (resilient-call's internal maps and
606
+ * the persisted-failure store). Duck-typing both shapes is what lets ONE
607
+ * predicate serve every entry path without an adapter allocation per call.
608
+ */
609
+ function expiryAt(value) {
610
+ if (value === undefined)
611
+ return 0;
612
+ return typeof value === 'number' ? value : value.expiresAt;
613
+ }
614
+ /**
615
+ * Build the ONE failover-exclusion predicate every entry path shares, so the
616
+ * deep walk can never drift between chat, execute, the gateway and the
617
+ * orchestrator.
618
+ *
619
+ * It answers exactly the question the orchestrator's walk used to answer alone:
620
+ * "should this provider×model be skipped?". Provider-wide AND model-scoped
621
+ * exclusions are honored separately — a 429 on one model rules out that model
622
+ * only, never its healthy siblings. Session maps are read LIVE at call time, so
623
+ * a failure recorded mid-walk takes effect on the very next candidate.
624
+ *
625
+ * Best-effort by construction: a registry failure never rules a candidate out.
626
+ */
627
+ export function createFailoverExclusionFilter(opts = {}) {
628
+ const persisted = opts.crossPipelineMemory === false
629
+ ? {}
630
+ : opts.persistedFailures ?? loadPersistedFailures();
631
+ const registryCheck = opts.registryCheck !== false;
632
+ return (provider, model) => {
633
+ if (isExcluded(provider, model, opts.sessionFailed, opts.sessionFailedModels, persisted)) {
634
+ return true;
635
+ }
636
+ return registryCheck ? isRegistryRuledOut(provider, model) : false;
637
+ };
638
+ }
639
+ function isExcluded(provider, model, sessionFailed, sessionFailedModels, persistedFailures) {
468
640
  const now = Date.now();
469
- const sessionExcl = sessionFailed.get(provider);
470
- if (sessionExcl && sessionExcl.expiresAt > now)
641
+ // Provider-wide (auth / unresolved model).
642
+ if (expiryAt(sessionFailed?.get(provider)) > now)
471
643
  return true;
472
- const persisted = persistedFailures[provider];
473
- if (persisted && persisted.expiresAt > now)
644
+ if (expiryAt(persistedFailures[provider]) > now)
474
645
  return true;
646
+ // Model-scoped — only this exact provider × model is ruled out.
647
+ if (model && model !== 'default') {
648
+ const key = modelKey(provider, model);
649
+ const modelExcl = sessionFailedModels?.get(key);
650
+ if (expiryAt(modelExcl) > now)
651
+ return true;
652
+ const persistedModel = persistedFailures[key];
653
+ if (expiryAt(persistedModel) > now)
654
+ return true;
655
+ }
475
656
  return false;
476
657
  }
658
+ /**
659
+ * Has the Model Availability Registry already ruled this candidate out?
660
+ *
661
+ * Model-aware on purpose: with a concrete model the check is per-ENTRY
662
+ * (parked/unavailable/stale → skip just that candidate), so a parked model no
663
+ * longer blocks its healthy siblings on the same provider. Only an unresolved
664
+ * ('default') model falls back to the provider-wide blocked check.
665
+ * Best-effort — a registry failure never rules a candidate out.
666
+ */
667
+ function isRegistryRuledOut(provider, model) {
668
+ try {
669
+ const registry = getModelRegistry();
670
+ if (model && model !== 'default') {
671
+ // Untracked model → unproven, not ruled out: the failover chain exists
672
+ // precisely to reach models the registry has no data on yet.
673
+ if (!registry.getEntry(provider, model))
674
+ return false;
675
+ return !registry.isUsable(provider, model);
676
+ }
677
+ return registry.getBlockedProviders().includes(provider);
678
+ }
679
+ catch {
680
+ return false;
681
+ }
682
+ }
477
683
  //# sourceMappingURL=resilient-call.js.map
@@ -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"}