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.
- package/.agents/skills/code-assessment/SKILL.md +10 -1
- package/.agents/skills/index.json +1 -1
- package/README.md +47 -9
- package/dist/agents/agents/runner.d.ts +9 -0
- package/dist/agents/agents/runner.d.ts.map +1 -1
- package/dist/agents/agents/runner.js +34 -12
- package/dist/agents/agents/runner.js.map +1 -1
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +7 -2
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +7 -1
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/artifact-verification.d.ts +102 -0
- package/dist/agents/artifact-verification.d.ts.map +1 -0
- package/dist/agents/artifact-verification.js +216 -0
- package/dist/agents/artifact-verification.js.map +1 -0
- package/dist/agents/checkpoint-store.d.ts +73 -0
- package/dist/agents/checkpoint-store.d.ts.map +1 -1
- package/dist/agents/checkpoint-store.js +161 -0
- package/dist/agents/checkpoint-store.js.map +1 -1
- package/dist/agents/credential-store.d.ts +120 -0
- package/dist/agents/credential-store.d.ts.map +1 -1
- package/dist/agents/credential-store.js +358 -19
- package/dist/agents/credential-store.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +10 -1
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +234 -75
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/phase-engine.d.ts +61 -0
- package/dist/agents/phase-engine.d.ts.map +1 -1
- package/dist/agents/phase-engine.js +68 -2
- package/dist/agents/phase-engine.js.map +1 -1
- package/dist/agents/prompt-assembly.d.ts +11 -0
- package/dist/agents/prompt-assembly.d.ts.map +1 -1
- package/dist/agents/prompt-assembly.js +17 -0
- package/dist/agents/prompt-assembly.js.map +1 -1
- package/dist/agents/release-preflight.d.ts +121 -0
- package/dist/agents/release-preflight.d.ts.map +1 -0
- package/dist/agents/release-preflight.js +259 -0
- package/dist/agents/release-preflight.js.map +1 -0
- package/dist/agents/release-runner.d.ts +157 -0
- package/dist/agents/release-runner.d.ts.map +1 -0
- package/dist/agents/release-runner.js +719 -0
- package/dist/agents/release-runner.js.map +1 -0
- package/dist/agents/step-handoff.d.ts +190 -0
- package/dist/agents/step-handoff.d.ts.map +1 -0
- package/dist/agents/step-handoff.js +443 -0
- package/dist/agents/step-handoff.js.map +1 -0
- package/dist/cli/benchmark.d.ts.map +1 -1
- package/dist/cli/benchmark.js +11 -4
- package/dist/cli/benchmark.js.map +1 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +25 -4
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +9 -2
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/commands.d.ts +2 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +3 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/config.js +2 -2
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/credentials.d.ts +28 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +213 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/dashboard.d.ts +26 -0
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +123 -3
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +9 -3
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/intent.d.ts +1 -1
- package/dist/cli/intent.js +2 -2
- package/dist/cli/intent.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +7 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +75 -7
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/nlu.d.ts.map +1 -1
- package/dist/cli/nlu.js +8 -2
- package/dist/cli/nlu.js.map +1 -1
- package/dist/cli/process-control.d.ts +15 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +38 -14
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/publish.d.ts +22 -0
- package/dist/cli/publish.d.ts.map +1 -1
- package/dist/cli/publish.js +109 -13
- package/dist/cli/publish.js.map +1 -1
- package/dist/config/live-credentials.d.ts +57 -0
- package/dist/config/live-credentials.d.ts.map +1 -0
- package/dist/config/live-credentials.js +126 -0
- package/dist/config/live-credentials.js.map +1 -0
- package/dist/config/paths.d.ts +18 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +25 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/federation/a2a-types.js +1 -1
- package/dist/federation/a2a-types.js.map +1 -1
- package/dist/forwarded.d.ts +2 -0
- package/dist/forwarded.d.ts.map +1 -0
- package/dist/forwarded.js +2 -0
- package/dist/forwarded.js.map +1 -0
- package/dist/inference/model-validator.d.ts +6 -1
- package/dist/inference/model-validator.d.ts.map +1 -1
- package/dist/inference/model-validator.js +7 -2
- package/dist/inference/model-validator.js.map +1 -1
- package/dist/inference/route-resolver.d.ts +116 -0
- package/dist/inference/route-resolver.d.ts.map +1 -0
- package/dist/inference/route-resolver.js +159 -0
- package/dist/inference/route-resolver.js.map +1 -0
- package/dist/inference/tool-call-utils.d.ts +44 -0
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +126 -4
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +24 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +110 -23
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/eval-framework.d.ts +24 -0
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +291 -0
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/intent-envelope.d.ts +162 -0
- package/dist/learning/intent-envelope.d.ts.map +1 -0
- package/dist/learning/intent-envelope.js +235 -0
- package/dist/learning/intent-envelope.js.map +1 -0
- package/dist/learning/reasoning-trace.d.ts +2 -2
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +25 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +29 -17
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/run-trace.d.ts +164 -0
- package/dist/learning/run-trace.d.ts.map +1 -0
- package/dist/learning/run-trace.js +342 -0
- package/dist/learning/run-trace.js.map +1 -0
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +35 -10
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/skill-types.d.ts +14 -0
- package/dist/learning/skill-types.d.ts.map +1 -1
- package/dist/learning/skill-types.js +19 -0
- package/dist/learning/skill-types.js.map +1 -1
- package/dist/mcp/catalog.js +2 -3
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -3
- package/dist/mcp/manager.js.map +1 -1
- package/dist/resources/command-manifest.json +10 -10
- package/dist/skills/bundled-skills.d.ts.map +1 -1
- package/dist/skills/bundled-skills.js +13 -2
- package/dist/skills/bundled-skills.js.map +1 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +9 -4
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +33 -8
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/credentials-tool.d.ts +24 -0
- package/dist/tools/credentials-tool.d.ts.map +1 -0
- package/dist/tools/credentials-tool.js +125 -0
- package/dist/tools/credentials-tool.js.map +1 -0
- package/dist/tools/edit-verification.d.ts +78 -0
- package/dist/tools/edit-verification.d.ts.map +1 -1
- package/dist/tools/edit-verification.js +213 -16
- package/dist/tools/edit-verification.js.map +1 -1
- package/dist/tools/git-tool.d.ts +25 -7
- package/dist/tools/git-tool.d.ts.map +1 -1
- package/dist/tools/git-tool.js +155 -15
- package/dist/tools/git-tool.js.map +1 -1
- package/dist/tools/loop-project-context.d.ts.map +1 -1
- package/dist/tools/loop-project-context.js +16 -0
- package/dist/tools/loop-project-context.js.map +1 -1
- package/dist/tools/loop-route-feed.d.ts +57 -0
- package/dist/tools/loop-route-feed.d.ts.map +1 -0
- package/dist/tools/loop-route-feed.js +101 -0
- package/dist/tools/loop-route-feed.js.map +1 -0
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -2
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/publish-tool.d.ts.map +1 -1
- package/dist/tools/publish-tool.js +76 -10
- package/dist/tools/publish-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +52 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +88 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-cli.d.ts.map +1 -1
- package/dist/tools/run-cli.js +15 -2
- package/dist/tools/run-cli.js.map +1 -1
- package/dist/tools/run-terminal.d.ts +9 -0
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +103 -6
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +5 -0
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +40 -6
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +409 -14
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.js +2 -2
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +5 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +32 -3
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +46 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +115 -1
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/admin-auth.d.ts +49 -2
- package/dist/web-dashboard/src/admin-auth.d.ts.map +1 -1
- package/dist/web-dashboard/src/admin-auth.js +64 -3
- package/dist/web-dashboard/src/admin-auth.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +41 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/dist/workflow/registry.js +1 -1
- package/dist/workflow/registry.js.map +1 -1
- package/package.json +9 -5
- package/src/web-dashboard/public/assets/index-CxDj7p6i.js +207 -0
- package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-kCUkORm7.js +0 -207
- package/src/web-dashboard/public/assets/index-kCUkORm7.js.map +0 -1
package/dist/cli/dashboard.js
CHANGED
|
@@ -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,
|
|
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 {
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"failover-runner.js","sourceRoot":"","sources":["../../src/cli/failover-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/intent.d.ts
CHANGED
|
@@ -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 `
|
|
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
|
*
|
package/dist/cli/intent.js
CHANGED
|
@@ -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 `
|
|
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 `
|
|
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')
|
package/dist/cli/intent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/cli/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAsB,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,aAAa;IACxB,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;aAC9B,WAAW,CAAC,
|
|
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;
|
|
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 {
|
|
29
|
-
import {
|
|
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
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
-
|
|
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
|
|
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) {
|