agent-nuvira 3.3.0 → 3.3.3

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 (231) hide show
  1. package/.agents/skills/code-assessment/SKILL.md +10 -1
  2. package/.agents/skills/index.json +1 -1
  3. package/README.md +47 -9
  4. package/dist/agents/agents/runner.d.ts +9 -0
  5. package/dist/agents/agents/runner.d.ts.map +1 -1
  6. package/dist/agents/agents/runner.js +34 -12
  7. package/dist/agents/agents/runner.js.map +1 -1
  8. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  9. package/dist/agents/agents/writer-tool-calling.js +7 -2
  10. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  11. package/dist/agents/agents/writer.d.ts.map +1 -1
  12. package/dist/agents/agents/writer.js +7 -1
  13. package/dist/agents/agents/writer.js.map +1 -1
  14. package/dist/agents/artifact-verification.d.ts +102 -0
  15. package/dist/agents/artifact-verification.d.ts.map +1 -0
  16. package/dist/agents/artifact-verification.js +216 -0
  17. package/dist/agents/artifact-verification.js.map +1 -0
  18. package/dist/agents/checkpoint-store.d.ts +73 -0
  19. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  20. package/dist/agents/checkpoint-store.js +161 -0
  21. package/dist/agents/checkpoint-store.js.map +1 -1
  22. package/dist/agents/credential-store.d.ts +120 -0
  23. package/dist/agents/credential-store.d.ts.map +1 -1
  24. package/dist/agents/credential-store.js +358 -19
  25. package/dist/agents/credential-store.js.map +1 -1
  26. package/dist/agents/orchestrator.d.ts +10 -1
  27. package/dist/agents/orchestrator.d.ts.map +1 -1
  28. package/dist/agents/orchestrator.js +234 -75
  29. package/dist/agents/orchestrator.js.map +1 -1
  30. package/dist/agents/phase-engine.d.ts +61 -0
  31. package/dist/agents/phase-engine.d.ts.map +1 -1
  32. package/dist/agents/phase-engine.js +68 -2
  33. package/dist/agents/phase-engine.js.map +1 -1
  34. package/dist/agents/prompt-assembly.d.ts +11 -0
  35. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  36. package/dist/agents/prompt-assembly.js +17 -0
  37. package/dist/agents/prompt-assembly.js.map +1 -1
  38. package/dist/agents/release-preflight.d.ts +121 -0
  39. package/dist/agents/release-preflight.d.ts.map +1 -0
  40. package/dist/agents/release-preflight.js +259 -0
  41. package/dist/agents/release-preflight.js.map +1 -0
  42. package/dist/agents/release-runner.d.ts +157 -0
  43. package/dist/agents/release-runner.d.ts.map +1 -0
  44. package/dist/agents/release-runner.js +719 -0
  45. package/dist/agents/release-runner.js.map +1 -0
  46. package/dist/agents/step-handoff.d.ts +190 -0
  47. package/dist/agents/step-handoff.d.ts.map +1 -0
  48. package/dist/agents/step-handoff.js +443 -0
  49. package/dist/agents/step-handoff.js.map +1 -0
  50. package/dist/cli/benchmark.d.ts.map +1 -1
  51. package/dist/cli/benchmark.js +11 -4
  52. package/dist/cli/benchmark.js.map +1 -1
  53. package/dist/cli/chat.d.ts.map +1 -1
  54. package/dist/cli/chat.js +25 -4
  55. package/dist/cli/chat.js.map +1 -1
  56. package/dist/cli/cli-program.d.ts.map +1 -1
  57. package/dist/cli/cli-program.js +9 -2
  58. package/dist/cli/cli-program.js.map +1 -1
  59. package/dist/cli/commands.d.ts +2 -1
  60. package/dist/cli/commands.d.ts.map +1 -1
  61. package/dist/cli/commands.js +3 -2
  62. package/dist/cli/commands.js.map +1 -1
  63. package/dist/cli/config.js +2 -2
  64. package/dist/cli/config.js.map +1 -1
  65. package/dist/cli/credentials.d.ts +28 -0
  66. package/dist/cli/credentials.d.ts.map +1 -0
  67. package/dist/cli/credentials.js +213 -0
  68. package/dist/cli/credentials.js.map +1 -0
  69. package/dist/cli/dashboard.d.ts +26 -0
  70. package/dist/cli/dashboard.d.ts.map +1 -1
  71. package/dist/cli/dashboard.js +123 -3
  72. package/dist/cli/dashboard.js.map +1 -1
  73. package/dist/cli/failover-runner.d.ts.map +1 -1
  74. package/dist/cli/failover-runner.js +9 -3
  75. package/dist/cli/failover-runner.js.map +1 -1
  76. package/dist/cli/intent.d.ts +1 -1
  77. package/dist/cli/intent.js +2 -2
  78. package/dist/cli/intent.js.map +1 -1
  79. package/dist/cli/loop-executor.d.ts +7 -0
  80. package/dist/cli/loop-executor.d.ts.map +1 -1
  81. package/dist/cli/loop-executor.js +75 -7
  82. package/dist/cli/loop-executor.js.map +1 -1
  83. package/dist/cli/nlu.d.ts.map +1 -1
  84. package/dist/cli/nlu.js +8 -2
  85. package/dist/cli/nlu.js.map +1 -1
  86. package/dist/cli/process-control.d.ts +15 -0
  87. package/dist/cli/process-control.d.ts.map +1 -1
  88. package/dist/cli/process-control.js +38 -14
  89. package/dist/cli/process-control.js.map +1 -1
  90. package/dist/cli/publish.d.ts +22 -0
  91. package/dist/cli/publish.d.ts.map +1 -1
  92. package/dist/cli/publish.js +109 -13
  93. package/dist/cli/publish.js.map +1 -1
  94. package/dist/config/live-credentials.d.ts +57 -0
  95. package/dist/config/live-credentials.d.ts.map +1 -0
  96. package/dist/config/live-credentials.js +126 -0
  97. package/dist/config/live-credentials.js.map +1 -0
  98. package/dist/config/paths.d.ts +18 -0
  99. package/dist/config/paths.d.ts.map +1 -1
  100. package/dist/config/paths.js +25 -0
  101. package/dist/config/paths.js.map +1 -1
  102. package/dist/federation/a2a-types.js +1 -1
  103. package/dist/federation/a2a-types.js.map +1 -1
  104. package/dist/forwarded.d.ts +2 -0
  105. package/dist/forwarded.d.ts.map +1 -0
  106. package/dist/forwarded.js +2 -0
  107. package/dist/forwarded.js.map +1 -0
  108. package/dist/inference/model-validator.d.ts +6 -1
  109. package/dist/inference/model-validator.d.ts.map +1 -1
  110. package/dist/inference/model-validator.js +7 -2
  111. package/dist/inference/model-validator.js.map +1 -1
  112. package/dist/inference/route-resolver.d.ts +116 -0
  113. package/dist/inference/route-resolver.d.ts.map +1 -0
  114. package/dist/inference/route-resolver.js +159 -0
  115. package/dist/inference/route-resolver.js.map +1 -0
  116. package/dist/inference/tool-call-utils.d.ts +44 -0
  117. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  118. package/dist/inference/tool-call-utils.js +126 -4
  119. package/dist/inference/tool-call-utils.js.map +1 -1
  120. package/dist/learning/autonomy-policy.d.ts +24 -0
  121. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  122. package/dist/learning/autonomy-policy.js +110 -23
  123. package/dist/learning/autonomy-policy.js.map +1 -1
  124. package/dist/learning/eval-framework.d.ts +24 -0
  125. package/dist/learning/eval-framework.d.ts.map +1 -1
  126. package/dist/learning/eval-framework.js +291 -0
  127. package/dist/learning/eval-framework.js.map +1 -1
  128. package/dist/learning/intent-envelope.d.ts +162 -0
  129. package/dist/learning/intent-envelope.d.ts.map +1 -0
  130. package/dist/learning/intent-envelope.js +235 -0
  131. package/dist/learning/intent-envelope.js.map +1 -0
  132. package/dist/learning/reasoning-trace.d.ts +2 -2
  133. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  134. package/dist/learning/reasoning-trace.js +25 -1
  135. package/dist/learning/reasoning-trace.js.map +1 -1
  136. package/dist/learning/resilient-call.d.ts.map +1 -1
  137. package/dist/learning/resilient-call.js +29 -17
  138. package/dist/learning/resilient-call.js.map +1 -1
  139. package/dist/learning/run-trace.d.ts +164 -0
  140. package/dist/learning/run-trace.d.ts.map +1 -0
  141. package/dist/learning/run-trace.js +342 -0
  142. package/dist/learning/run-trace.js.map +1 -0
  143. package/dist/learning/skill-store.d.ts.map +1 -1
  144. package/dist/learning/skill-store.js +35 -10
  145. package/dist/learning/skill-store.js.map +1 -1
  146. package/dist/learning/skill-types.d.ts +14 -0
  147. package/dist/learning/skill-types.d.ts.map +1 -1
  148. package/dist/learning/skill-types.js +19 -0
  149. package/dist/learning/skill-types.js.map +1 -1
  150. package/dist/mcp/catalog.js +2 -3
  151. package/dist/mcp/catalog.js.map +1 -1
  152. package/dist/mcp/manager.d.ts.map +1 -1
  153. package/dist/mcp/manager.js +5 -3
  154. package/dist/mcp/manager.js.map +1 -1
  155. package/dist/resources/command-manifest.json +10 -10
  156. package/dist/skills/bundled-skills.d.ts.map +1 -1
  157. package/dist/skills/bundled-skills.js +13 -2
  158. package/dist/skills/bundled-skills.js.map +1 -1
  159. package/dist/skills/secret-capture.d.ts.map +1 -1
  160. package/dist/skills/secret-capture.js +9 -4
  161. package/dist/skills/secret-capture.js.map +1 -1
  162. package/dist/tools/coding-tools.d.ts.map +1 -1
  163. package/dist/tools/coding-tools.js +33 -8
  164. package/dist/tools/coding-tools.js.map +1 -1
  165. package/dist/tools/credentials-tool.d.ts +24 -0
  166. package/dist/tools/credentials-tool.d.ts.map +1 -0
  167. package/dist/tools/credentials-tool.js +125 -0
  168. package/dist/tools/credentials-tool.js.map +1 -0
  169. package/dist/tools/edit-verification.d.ts +78 -0
  170. package/dist/tools/edit-verification.d.ts.map +1 -1
  171. package/dist/tools/edit-verification.js +213 -16
  172. package/dist/tools/edit-verification.js.map +1 -1
  173. package/dist/tools/git-tool.d.ts +25 -7
  174. package/dist/tools/git-tool.d.ts.map +1 -1
  175. package/dist/tools/git-tool.js +155 -15
  176. package/dist/tools/git-tool.js.map +1 -1
  177. package/dist/tools/loop-project-context.d.ts.map +1 -1
  178. package/dist/tools/loop-project-context.js +16 -0
  179. package/dist/tools/loop-project-context.js.map +1 -1
  180. package/dist/tools/loop-route-feed.d.ts +57 -0
  181. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  182. package/dist/tools/loop-route-feed.js +101 -0
  183. package/dist/tools/loop-route-feed.js.map +1 -0
  184. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  185. package/dist/tools/pipeline-tool.js +8 -2
  186. package/dist/tools/pipeline-tool.js.map +1 -1
  187. package/dist/tools/publish-tool.d.ts.map +1 -1
  188. package/dist/tools/publish-tool.js +76 -10
  189. package/dist/tools/publish-tool.js.map +1 -1
  190. package/dist/tools/registry.d.ts +52 -3
  191. package/dist/tools/registry.d.ts.map +1 -1
  192. package/dist/tools/registry.js +88 -11
  193. package/dist/tools/registry.js.map +1 -1
  194. package/dist/tools/run-cli.d.ts.map +1 -1
  195. package/dist/tools/run-cli.js +15 -2
  196. package/dist/tools/run-cli.js.map +1 -1
  197. package/dist/tools/run-terminal.d.ts +9 -0
  198. package/dist/tools/run-terminal.d.ts.map +1 -1
  199. package/dist/tools/run-terminal.js +103 -6
  200. package/dist/tools/run-terminal.js.map +1 -1
  201. package/dist/tools/skill-tool.d.ts.map +1 -1
  202. package/dist/tools/skill-tool.js +5 -0
  203. package/dist/tools/skill-tool.js.map +1 -1
  204. package/dist/tools/tool-loop.d.ts +40 -6
  205. package/dist/tools/tool-loop.d.ts.map +1 -1
  206. package/dist/tools/tool-loop.js +409 -14
  207. package/dist/tools/tool-loop.js.map +1 -1
  208. package/dist/tools/toolsets.js +2 -2
  209. package/dist/tools/toolsets.js.map +1 -1
  210. package/dist/web-dashboard/chat-console.d.ts +5 -0
  211. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  212. package/dist/web-dashboard/chat-console.js +32 -3
  213. package/dist/web-dashboard/chat-console.js.map +1 -1
  214. package/dist/web-dashboard/server.d.ts +46 -0
  215. package/dist/web-dashboard/server.d.ts.map +1 -1
  216. package/dist/web-dashboard/server.js +115 -1
  217. package/dist/web-dashboard/server.js.map +1 -1
  218. package/dist/web-dashboard/src/admin-auth.d.ts +49 -2
  219. package/dist/web-dashboard/src/admin-auth.d.ts.map +1 -1
  220. package/dist/web-dashboard/src/admin-auth.js +64 -3
  221. package/dist/web-dashboard/src/admin-auth.js.map +1 -1
  222. package/dist/web-dashboard/src/types.d.ts +41 -0
  223. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  224. package/dist/workflow/registry.js +1 -1
  225. package/dist/workflow/registry.js.map +1 -1
  226. package/package.json +9 -5
  227. package/src/web-dashboard/public/assets/index-CxDj7p6i.js +207 -0
  228. package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +1 -0
  229. package/src/web-dashboard/public/index.html +1 -1
  230. package/src/web-dashboard/public/assets/index-kCUkORm7.js +0 -207
  231. package/src/web-dashboard/public/assets/index-kCUkORm7.js.map +0 -1
@@ -25,10 +25,12 @@ import { Command } from 'commander';
25
25
  import { spawn, execSync } from 'node:child_process';
26
26
  import { join, dirname } from 'node:path';
27
27
  import { fileURLToPath } from 'node:url';
28
- import { BaseCommand } from './commands.js';
28
+ import { BaseCommand, getCliName } from './commands.js';
29
29
  import { probeDashboardPortState, findPidOnPort, killPid, waitForPortFree, confirmStaleRestart, } from './dashboard-restart.js';
30
30
  import { createDashboardServer } from '../web-dashboard/server.js';
31
+ import { DEFAULT_ADMIN_PASSWORD, DEFAULT_ADMIN_USER, ensureDefaultAdmin, } from '../web-dashboard/src/admin-auth.js';
31
32
  import { guardRbacAction } from './rbac-guard.js';
33
+ import { isGatewayRunning } from './process-control.js';
32
34
  import { logger } from '../utils/logger.js';
33
35
  /**
34
36
  * The platform-appropriate "stop the running dashboard" hint for error
@@ -43,6 +45,8 @@ function stopProcessHint() {
43
45
  // ─── DashboardCommand ───────────────────────────────────────────────────────
44
46
  export class DashboardCommand extends BaseCommand {
45
47
  server = null;
48
+ /** The gateway we started alongside this dashboard (never a pre-existing one). */
49
+ gatewayChild = null;
46
50
  create() {
47
51
  const command = new Command('dashboard')
48
52
  .description('Launch the web-based dashboard for visualizing agent execution and system status');
@@ -56,6 +60,9 @@ export class DashboardCommand extends BaseCommand {
56
60
  .option('--build', 'Build the dashboard (npm run build:dashboard) before starting')
57
61
  .option('--force', 'Detect a stale dashboard on the port (API/SSE mismatch) and offer to restart it')
58
62
  .option('--cwd <dir>', 'Working directory for the dashboard (default: process.cwd())')
63
+ .option('--no-gateway', 'Do not start the messaging gateway alongside the dashboard')
64
+ .option('--keep-gateway', 'Leave the gateway running after the dashboard exits')
65
+ .option('--gateway-port <port>', 'Webhook receiver port for the gateway', (v) => parseInt(v, 10), 8787)
59
66
  .action(async (options) => {
60
67
  await this.launchDashboard(options || {});
61
68
  });
@@ -87,6 +94,78 @@ export class DashboardCommand extends BaseCommand {
87
94
  catch { /* ignore */ }
88
95
  }
89
96
  }
97
+ /**
98
+ * Start the messaging gateway alongside the dashboard, unless one is already
99
+ * running.
100
+ *
101
+ * WHY. The gateway is what makes the agent reachable from WhatsApp/Telegram/
102
+ * Slack, and needing a second terminal to get it is exactly the manual cadence
103
+ * a GUI-first user should not have to discover. Starting it here makes one
104
+ * command the whole product.
105
+ *
106
+ * IDEMPOTENT BY CONSTRUCTION. A second gateway cannot bind the webhook port,
107
+ * so an existing one is reused rather than duplicated — and we then record
108
+ * `gatewayChild = null`, which is what guarantees the dashboard never kills a
109
+ * gateway it did not start.
110
+ *
111
+ * CHILD OF THIS PROCESS, deliberately not detached: it dies with the dashboard
112
+ * unless `--keep-gateway` is given, so there is no orphan holding port 8787.
113
+ */
114
+ async startGateway(port) {
115
+ const existing = await isGatewayRunning({ port });
116
+ if (existing.running) {
117
+ logger.info(`🌐 Gateway already running${existing.pid ? ` (PID ${existing.pid})` : ''} — reusing it.`);
118
+ return;
119
+ }
120
+ const entry = process.argv[1];
121
+ if (!entry) {
122
+ logger.warn('Could not determine the CLI entry point — start messaging with: nuvira gateway start');
123
+ return;
124
+ }
125
+ let child;
126
+ try {
127
+ child = spawn(process.execPath, [entry, 'gateway', 'start', '--port', String(port)], {
128
+ stdio: 'ignore',
129
+ env: process.env,
130
+ });
131
+ }
132
+ catch (err) {
133
+ logger.warn(`Could not start the gateway: ${err instanceof Error ? err.message : String(err)}`);
134
+ return;
135
+ }
136
+ this.gatewayChild = child;
137
+ // A gateway that cannot bind its port exits within a moment. Reporting
138
+ // "started" for a process that is already dead is the exact kind of claim
139
+ // this product exists to avoid, so wait and check before saying anything.
140
+ await new Promise((resolve) => setTimeout(resolve, 1500));
141
+ // `exitCode != null` (loose) is deliberate: a real ChildProcess reports
142
+ // `null` while running and a number once dead, and a test double that omits
143
+ // the field must read as "still running" rather than as a crash.
144
+ if (child.exitCode != null) {
145
+ this.gatewayChild = null;
146
+ logger.warn(`Gateway exited immediately (code ${child.exitCode}) — messaging is off. ` +
147
+ `Run \`${getCliName()} gateway status\` to see why.`);
148
+ return;
149
+ }
150
+ logger.info(`🌐 Gateway started (PID ${child.pid}) — messaging channels are live alongside the dashboard.`);
151
+ }
152
+ /**
153
+ * Stop the gateway THIS dashboard started. A pre-existing gateway
154
+ * (`gatewayChild === null`) is never touched — auto-start must not silently
155
+ * take ownership of a process the user started themselves.
156
+ */
157
+ stopOwnedGateway() {
158
+ const child = this.gatewayChild;
159
+ if (!child || child.exitCode != null)
160
+ return;
161
+ try {
162
+ child.kill('SIGTERM');
163
+ }
164
+ catch {
165
+ /* already gone */
166
+ }
167
+ this.gatewayChild = null;
168
+ }
90
169
  async launchDashboard(options) {
91
170
  // --cwd overrides the dashboard's working directory: the 'current dir'
92
171
  // chip in the chat picker reflects process.cwd(), so changing it early
@@ -107,6 +186,11 @@ export class DashboardCommand extends BaseCommand {
107
186
  const shouldOpen = options.open !== false;
108
187
  const shouldBuild = options.build === true;
109
188
  const force = options.force === true;
189
+ // The gateway runs ALONGSIDE the dashboard by default: a GUI-first user
190
+ // should get messaging channels live without discovering a second command.
191
+ const shouldStartGateway = options.gateway !== false;
192
+ const keepGateway = options.keepGateway === true;
193
+ const gatewayPort = options.gatewayPort || 8787;
110
194
  // ── Build the dashboard if requested ────────────────────────────────
111
195
  if (shouldBuild) {
112
196
  logger.info('Building dashboard...');
@@ -136,7 +220,11 @@ export class DashboardCommand extends BaseCommand {
136
220
  // pathological loop can't hang the CLI.
137
221
  let attempts = 0;
138
222
  while (attempts < 3) {
139
- const outcome = await this.serve(port, host, shouldOpen, force);
223
+ const outcome = await this.serve(port, host, shouldOpen, force, {
224
+ shouldStartGateway,
225
+ keepGateway,
226
+ gatewayPort,
227
+ });
140
228
  if (outcome !== 'restart')
141
229
  return;
142
230
  attempts++;
@@ -171,7 +259,8 @@ export class DashboardCommand extends BaseCommand {
171
259
  * dashboard; caller should retry
172
260
  * 'failed' — bind failed and nothing was restarted (hint already logged)
173
261
  */
174
- serve(port, host, shouldOpen, force) {
262
+ serve(port, host, shouldOpen, force, gateway) {
263
+ const { shouldStartGateway, keepGateway, gatewayPort } = gateway;
175
264
  process.env.NUVIRA_DASHBOARD_PORT = String(port);
176
265
  process.env.NUVIRA_DASHBOARD_HOST = host;
177
266
  return new Promise((resolve) => {
@@ -187,6 +276,13 @@ export class DashboardCommand extends BaseCommand {
187
276
  };
188
277
  const shutdown = () => {
189
278
  logger.info('\nShutting down dashboard...');
279
+ // Stop the gateway we started, so no orphan holds the webhook port.
280
+ // `--keep-gateway` leaves it up for messaging that must outlive the GUI.
281
+ if (!keepGateway) {
282
+ this.stopOwnedGateway();
283
+ if (shouldStartGateway)
284
+ logger.info('Gateway stopped with the dashboard (\`--keep-gateway\` leaves it running).');
285
+ }
190
286
  if (this.server) {
191
287
  this.closeAllListeners();
192
288
  this.server = null;
@@ -194,6 +290,24 @@ export class DashboardCommand extends BaseCommand {
194
290
  settle('running');
195
291
  process.exit(0);
196
292
  };
293
+ // Zero-setup first run: create admin/admin so a GUI-first user can log in
294
+ // without inventing a password first. The account is deliberately
295
+ // crippled until the password is changed (every mutating route returns
296
+ // 403 password_change_required), so a published credential is a doorway,
297
+ // not an open door. No-op once any admin exists.
298
+ const bootstrapped = ensureDefaultAdmin();
299
+ if (bootstrapped) {
300
+ logger.info('');
301
+ logger.info(' ┌─ First run: a default admin account was created ─────────────┐');
302
+ logger.info(` │ username: ${DEFAULT_ADMIN_USER}`);
303
+ logger.info(` │ password: ${DEFAULT_ADMIN_PASSWORD}`);
304
+ logger.info(' │ │');
305
+ logger.info(' │ This password is PUBLIC — the dashboard will insist you │');
306
+ logger.info(' │ change it before it will save anything. Anyone on your │');
307
+ logger.info(' │ network can sign in until you do. │');
308
+ logger.info(' └────────────────────────────────────────────────────────────┘');
309
+ logger.info('');
310
+ }
197
311
  try {
198
312
  // Port/host passed EXPLICITLY: createDashboardServer reads them at
199
313
  // call time. (Relying on BUFF_DASHBOARD_PORT env set here is not
@@ -221,6 +335,12 @@ export class DashboardCommand extends BaseCommand {
221
335
  started = true;
222
336
  logger.success(`Dashboard running at: ${url}`);
223
337
  console.log(' Press Ctrl+C to stop the dashboard.\n');
338
+ // Gateway LAST: started only once the dashboard actually bound, so a
339
+ // failed start (EADDRINUSE on a stale dashboard) never leaves a stray
340
+ // gateway behind.
341
+ if (shouldStartGateway) {
342
+ void this.startGateway(gatewayPort);
343
+ }
224
344
  // Auto-open browser only once we're actually serving.
225
345
  if (shouldOpen) {
226
346
  this.openBrowser(url);
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/cli/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"failover-runner.d.ts","sourceRoot":"","sources":["../../src/cli/failover-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAU5F;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,KAAK,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjH;;;;OAIG;IACH,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxG;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiJpF"}
1
+ {"version":3,"file":"failover-runner.d.ts","sourceRoot":"","sources":["../../src/cli/failover-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAU5F;AAED,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,KAAK,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjH;;;;OAIG;IACH,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxG;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuJpF"}
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import { resolveProvider } from './router.js';
26
26
  import { getAutoRouter } from '../learning/auto-router.js';
27
- import { resolveWorkingModel } from '../inference/model-validator.js';
27
+ import { resolveRoute } from '../inference/route-resolver.js';
28
28
  import { recordRoutingDecision } from '../learning/routing-history.js';
29
29
  import { shouldConfirmFailover, promptFailoverChoice } from './failover-prompt.js';
30
30
  import { classifyFallbackError } from '../learning/provider-fallback.js';
@@ -88,8 +88,14 @@ export async function runSingleShotAuto(opts) {
88
88
  ? first.model
89
89
  : getAutoRouter().resolveModel(candidateType, opts.action, opts.configManager);
90
90
  // Model health: only use models that actually exist on the provider
91
- // (a pinned config.model can be deprecated → 404) — repair to live.
92
- const model = await resolveWorkingModel(resolved.provider, candidateType, desired);
91
+ // (a pinned config.model can be deprecated → 404) — repair to live, and
92
+ // say so out loud when the model is not the one that was asked for.
93
+ const model = (await resolveRoute({
94
+ providerType: candidateType,
95
+ provider: resolved.provider,
96
+ model: desired,
97
+ source: 'failover',
98
+ })).model;
93
99
  candidateModel = model;
94
100
  resolvedProvider = resolved.provider;
95
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"failover-runner.js","sourceRoot":"","sources":["../../src/cli/failover-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failover-runner.js","sourceRoot":"","sources":["../../src/cli/failover-runner.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The user-facing half of the intent router (src/commands/intent-router.ts):
5
5
  * type "stop the dashboard", "add Rahul's mobile +919958604222 to whatsapp",
6
- * "start the gateway", "run the eval suite" and see exactly which `buff`
6
+ * "start the gateway", "run the eval suite" and see exactly which `nuvira`
7
7
  * command the agent would execute — including a clarifying question when the
8
8
  * ask is ambiguous (verified list vs send-by-name mapping, …).
9
9
  *
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The user-facing half of the intent router (src/commands/intent-router.ts):
5
5
  * type "stop the dashboard", "add Rahul's mobile +919958604222 to whatsapp",
6
- * "start the gateway", "run the eval suite" and see exactly which `buff`
6
+ * "start the gateway", "run the eval suite" and see exactly which `nuvira`
7
7
  * command the agent would execute — including a clarifying question when the
8
8
  * ask is ambiguous (verified list vs send-by-name mapping, …).
9
9
  *
@@ -19,7 +19,7 @@ import { runIntentEval } from '../learning/intent-eval.js';
19
19
  export class IntentCommand {
20
20
  create() {
21
21
  const cmd = new Command('intent')
22
- .description('Plain-English → CLI routing — resolve an ask into the exact `buff` command(s) to run');
22
+ .description('Plain-English → CLI routing — resolve an ask into the exact `nuvira` command(s) to run');
23
23
  cmd
24
24
  .command('resolve')
25
25
  .description('Resolve a plain-English ask (e.g. "stop the dashboard", "add Rahul to whatsapp") into CLI commands')
@@ -1 +1 @@
1
- {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/cli/intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/cli/intent.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,13 @@ export interface LoopExecutorResult {
52
52
  traceId?: string;
53
53
  /** G18 — refusals recorded this turn (declined calls), for the CLI summary. */
54
54
  refusals?: number;
55
+ /**
56
+ * Stage 2 — the turn's own behaviour, as counts (see learning/run-trace.ts).
57
+ * Carried because "did the agent do the task WITHOUT stopping to ask" is a
58
+ * property of the run that no hidden test can observe: a task can pass every
59
+ * test and still have interrupted the user four times.
60
+ */
61
+ runTrace?: import('../learning/run-trace.js').RunTraceSnapshot;
55
62
  /** G18 — gate decisions recorded this turn (nudges spent, bounds reached). */
56
63
  gateDecisions?: number;
57
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loop-executor.d.ts","sourceRoot":"","sources":["../../src/cli/loop-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2ErD,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA2oB7B"}
1
+ {"version":3,"file":"loop-executor.d.ts","sourceRoot":"","sources":["../../src/cli/loop-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA6ErD,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IAC/D,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA4sB7B"}
@@ -25,13 +25,15 @@
25
25
  * remains available for CI/publish — enterprise semantics are not weakened.
26
26
  */
27
27
  import { resolveProvider } from './router.js';
28
- import { resolveWorkingModel } from '../inference/model-validator.js';
29
- import { getAutoRouter, isAutoModel, isAutoProvider, governanceVerdict } from '../learning/auto-router.js';
28
+ import { resolveRoute, servedRouteFrom } from '../inference/route-resolver.js';
29
+ import { noteServedRoute } from '../tools/loop-route-feed.js';
30
+ import { getAutoRouter, isAutoProvider, governanceVerdict } from '../learning/auto-router.js';
30
31
  import { buildDeepFailoverPool, createFailoverExclusionFilter } from '../learning/resilient-call.js';
31
32
  import { recordActionFailure } from '../learning/failure-bookkeeping.js';
32
33
  import { recordRegistrySuccess, getProviderFallback, classifyFallbackError, isRetryableError, } from '../learning/provider-fallback.js';
33
34
  import { resolveThreadBudgetChars } from '../learning/context-budget.js';
34
35
  import { buildLoopProjectContext } from '../tools/loop-project-context.js';
36
+ import { deliverablesNamedIn, recordStepHandoff } from '../agents/step-handoff.js';
35
37
  import { getLoopExposureMode } from '../tools/toolsets.js';
36
38
  import { resolveModelHarnessProfile } from '../learning/model-harness.js';
37
39
  import { hasCredentials } from '../learning/model-selection.js';
@@ -127,6 +129,12 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
127
129
  let providerType = 'auto';
128
130
  let model = 'default';
129
131
  let provider = null;
132
+ /**
133
+ * The route ACTUALLY serving this turn, kept current through every failover
134
+ * and handed to the loop (which re-reads it before each model call) so the
135
+ * model can answer about itself from a measured fact instead of a guess.
136
+ */
137
+ let servedRoute = null;
130
138
  // ── Mid-turn failover candidate pool ────────────────────────────────────
131
139
  // The SAME deep chain the orchestrator/chat walk. Before this the loop only
132
140
  // used the chain to pick its STARTING provider: a 429 on the second step
@@ -224,9 +232,19 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
224
232
  const resolved = resolveProvider(configManager, opts.provider);
225
233
  providerType = resolved.type;
226
234
  provider = resolved.provider;
227
- model = opts.model && !isAutoModel(opts.model)
228
- ? opts.model
229
- : await resolveWorkingModel(provider, providerType, undefined);
235
+ // Validate the pin against the provider that will serve it, ALWAYS — an
236
+ // explicit `--model` used to be used as-is (`opts.model ? opts.model :
237
+ // resolve…`), so `-p groq -m <a gemini model>` reached the API unvalidated
238
+ // and 404'd with the repair machinery sitting right there (issue #10).
239
+ const pinned = await resolveRoute({
240
+ providerType,
241
+ provider,
242
+ model: opts.model,
243
+ source: 'cli',
244
+ task: 'interactive loop (pinned provider)',
245
+ });
246
+ model = pinned.model;
247
+ servedRoute = servedRouteFrom(pinned);
230
248
  pushCandidate(providerType, model);
231
249
  // ── A PINNED RUN FAILS OVER TOO ──────────────────────────────────────
232
250
  // A pinned provider used to contribute a SINGLE candidate, so any
@@ -297,7 +315,15 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
297
315
  : getAutoRouter().resolveModel(pair.provider, 'execute', configManager);
298
316
  providerType = resolved.type;
299
317
  provider = resolved.provider;
300
- model = await resolveWorkingModel(resolved.provider, resolved.type, desired);
318
+ const route = await resolveRoute({
319
+ providerType: resolved.type,
320
+ provider: resolved.provider,
321
+ model: desired,
322
+ source: 'cli',
323
+ task: 'interactive loop (failover chain)',
324
+ });
325
+ model = route.model;
326
+ servedRoute = servedRouteFrom(route);
301
327
  break;
302
328
  }
303
329
  }
@@ -471,12 +497,24 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
471
497
  const desired = cand.model !== 'default'
472
498
  ? cand.model
473
499
  : getAutoRouter().resolveModel(cand.provider, 'execute', configManager);
474
- const mdl = await resolveWorkingModel(prov, cand.provider, desired);
500
+ const route = await resolveRoute({
501
+ providerType: cand.provider,
502
+ provider: prov,
503
+ model: desired,
504
+ source: 'failover',
505
+ task: 'interactive loop (mid-turn failover)',
506
+ });
507
+ const mdl = route.model;
475
508
  // Flip the loop's active provider/model to the candidate that answers,
476
509
  // so telemetry and the NEXT step's primary pick follow the winner.
477
510
  providerType = cand.provider;
478
511
  provider = prov;
479
512
  model = mdl;
513
+ // The model is TOLD about this, honestly (see loop-route-feed.ts): a
514
+ // failover that the model does not learn about is how a turn ends up
515
+ // answering "which model are you?" about a model that stopped serving
516
+ // it several steps earlier.
517
+ servedRoute = noteServedRoute(servedRoute, servedRouteFrom(route));
480
518
  const resp = await tryOnce(prov, mdl, messages, schemas, abort);
481
519
  // ── ANSWER-QUALITY GATE ──────────────────────────────────────────
482
520
  // A reply that is the model's own REASONING, or its narration of the
@@ -559,6 +597,32 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
559
597
  }
560
598
  }
561
599
  extendWithPinnedFallbacks();
600
+ // ── DURABLE HAND-OFF ────────────────────────────────────────────────
601
+ // The failure is written down BEFORE the walk moves on, so the next
602
+ // candidate, the next turn and the next run all inherit it. The design
603
+ // already said "a broken task is handed to another model" — what was
604
+ // missing is the RECORD that survives the hand-off, which is why the
605
+ // live NVDA-addon ask re-planned the identical step 18 times and would
606
+ // have re-planned a 19th (see step-handoff.ts).
607
+ //
608
+ // What the record carries is deliberately not "model X failed": it is
609
+ // the route, the failure KIND, the reason, and the artifacts the ask
610
+ // named — reconciled against the filesystem on every later read, so the
611
+ // incoming model is told what is genuinely still outstanding.
612
+ try {
613
+ recordStepHandoff({
614
+ projectPath: process.cwd(),
615
+ goal,
616
+ stepDescription: goal,
617
+ declared: deliverablesNamedIn(goal),
618
+ route: `${cand.provider}:${cand.model !== 'default' ? cand.model : model}`,
619
+ kind: qualityKind ? 'quality' : 'failed',
620
+ reason: err instanceof Error ? err.message : String(err),
621
+ });
622
+ }
623
+ catch {
624
+ // Best-effort — a hand-off write must never mask the generation error.
625
+ }
562
626
  if (!opts.quiet) {
563
627
  logger.warn(qualityKind
564
628
  ? ` \u26A0\uFE0F ${cand.provider} answered with ${qualityKind === 'reasoning' ? 'its own reasoning' : 'tool-contract confusion'} instead of the task — trying the next loop candidate...`
@@ -578,6 +642,9 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
578
642
  });
579
643
  const result = await runToolLoop({
580
644
  messages: thread,
645
+ // Read fresh on every step: a mid-turn failover must be visible to the
646
+ // model, not just to the log (see the route feed).
647
+ servedRoute: () => servedRoute,
581
648
  maxSteps: opts.maxSteps ?? 16,
582
649
  // Model-window-aware thread budget: a 1M-token model keeps its whole
583
650
  // window instead of being trimmed to the fixed ~50K-token default.
@@ -717,6 +784,7 @@ export async function runLoopExecutor(goal, configManager, opts = {}) {
717
784
  traceId,
718
785
  refusals: recorded.refusals,
719
786
  gateDecisions: recorded.gateDecisions,
787
+ ...(result.runTrace ? { runTrace: result.runTrace } : {}),
720
788
  };
721
789
  }
722
790
  catch (err) {