agent-nuvira 3.3.15 → 3.3.17
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/dist/cli/chat.d.ts +16 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +80 -5
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +4 -0
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/trace.d.ts +10 -0
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +53 -3
- package/dist/cli/trace.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +27 -4
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +16 -1
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +9 -1
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +83 -0
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +74 -7
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/step-checkpoint.d.ts.map +1 -1
- package/dist/learning/step-checkpoint.js +20 -6
- package/dist/learning/step-checkpoint.js.map +1 -1
- package/dist/learning/turn-report.d.ts +10 -0
- package/dist/learning/turn-report.d.ts.map +1 -1
- package/dist/learning/turn-report.js +8 -1
- package/dist/learning/turn-report.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +34 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +146 -3
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +9 -0
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +31 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/web-dashboard/public/assets/{index-zjbdJnO-.js → index-goRHl73H.js} +70 -70
- package/src/web-dashboard/public/assets/{index-zjbdJnO-.js.map → index-goRHl73H.js.map} +1 -1
- package/src/web-dashboard/public/index.html +1 -1
- package/dist/agents/nvda-addon.d.ts.map +0 -1
- package/dist/agents/nvda-addon.js.map +0 -1
- package/dist/forwarded.d.ts.map +0 -1
- package/dist/forwarded.js.map +0 -1
- package/dist/tools/child-agent-worker.d.ts +0 -15
- package/dist/tools/child-agent-worker.d.ts.map +0 -1
- package/dist/tools/child-agent-worker.js.map +0 -1
package/dist/cli/chat.d.ts
CHANGED
|
@@ -142,6 +142,10 @@ export declare function turnCarriesHonestyFlag(result: {
|
|
|
142
142
|
targetWords: number;
|
|
143
143
|
source: string;
|
|
144
144
|
};
|
|
145
|
+
/** A change was asked for and a plan delivered instead (see `ToolLoopResult`). */
|
|
146
|
+
undeliveredChange?: boolean;
|
|
147
|
+
/** A health verdict nothing this turn observed the product to support. */
|
|
148
|
+
unbackedHealthClaim?: boolean;
|
|
145
149
|
}): boolean;
|
|
146
150
|
export declare class ChatCommand extends BaseCommand {
|
|
147
151
|
private devModeAuto;
|
|
@@ -451,6 +455,18 @@ export declare class ChatCommand extends BaseCommand {
|
|
|
451
455
|
targetWords: number;
|
|
452
456
|
source: string;
|
|
453
457
|
};
|
|
458
|
+
/**
|
|
459
|
+
* Measured 2026-10-09 — a CHANGE was asked for, nothing was mutated, and the
|
|
460
|
+
* answer was the model's plan or promise. The edit-shaped sibling of
|
|
461
|
+
* `undeliveredArtifact`; surfaces must not read it as finished work.
|
|
462
|
+
*/
|
|
463
|
+
undeliveredChange?: boolean;
|
|
464
|
+
/**
|
|
465
|
+
* Measured 2026-10-09 — the answer vouched for the product's health while
|
|
466
|
+
* nothing this turn observed the product running, so the verdict rests on
|
|
467
|
+
* evidence about something else (usually a unit suite for one module).
|
|
468
|
+
*/
|
|
469
|
+
unbackedHealthClaim?: boolean;
|
|
454
470
|
/**
|
|
455
471
|
* Item 13 (round 3) — a SINGLE authored artifact that met the ask's stated
|
|
456
472
|
* magnitude and admitted no omission: the "fluent, on-length" delivery no rule
|
package/dist/cli/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/cli/chat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/cli/chat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAc,MAAM,eAAe,CAAC;AAiBxD,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAqCxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAqBtD,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQhG;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,4BAA4B,CAAC;AAgKpC,sEAAsE;AACtE,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,oEAAoE;AACpE,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,yBAAyB,GAC/B,wBAAwB,CA4B1B;AAID;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,GAAG,EAClB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;;;GASG;AACH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,uBAA0B,CAAC;AAEjE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAChD,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GACtD,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAkDpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAkBV;AAID,qBAAa,WAAY,SAAQ,WAAW;IAC1C,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,sBAAsB,CAA6B;IAE3D;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB,CAA6B;IAExD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc,CAA6B;IACnD,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB,CAAC,CAAS;IAEnC;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY,CAA2B;IAE/C,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB;IAYzB;;;;;;OAMG;IACH,OAAO,CAAC,+BAA+B,CAAqB;IAE5D;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAEf;IAEF;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB,CAAC,CAAgE;IAE1F;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAC,CAAuC;IAE3D;;;;;;;;;OASG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,OAAO,CAAC;QAAM,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzE,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC;;;;;WAKG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,+DAA+D;QAC/D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACpC;;;;WAIG;QACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;QACvE;;;;WAIG,CAAI,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,wBAAwB,EAAE,YAAY,KAAK,IAAI,CAAC;QACxF;;;;WAIG;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,sBAAsB,EAAE,cAAc,KAAK,IAAI,CAAC;QAC7E,4EAA4E;QAC5E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,wBAAwB,EAAE,iBAAiB,KAAK,IAAI,CAAC;QACrF;;;;WAIG;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;QAC3C;;;WAGG;QACH,SAAS,CAAC,EAAE,OAAO,wBAAwB,EAAE,aAAa,CAAC;QAC3D,iGAAiG;QACjG,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC;;;;;;WAMG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;;;;;;;;;WASG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;;;WAOG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;;WAKG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;;;;WAKG;QACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC;;;;;WAKG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB;;;;;WAKG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;;;;WAQG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;;;WAOG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,sFAAsF;QACtF,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,GACL,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B;;;;;;;WAOG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,oEAAoE;QACpE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,uEAAuE;QACvE,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,yEAAyE;QACzE,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,0EAA0E;QAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,4EAA4E;QAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB;;;WAGG;QACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC;;;WAGG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;;;WAIG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B;;;;WAIG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD;;;;;WAKG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B;;;;WAIG;QACH,iBAAiB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAClG;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B;;;;WAIG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B;;;;;;WAMG;QACH,mBAAmB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QACtG,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;;;;;;WAQG;QACH,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;QACvC;;;;WAIG;QACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB;;;;;;WAMG;QACH,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,CAAC;IA0dA;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAUtB,MAAM,IAAI,OAAO;IA4CjB;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;YAYN,OAAO;IA0arB;;;;;;;;;;;;;OAaG;YACW,aAAa;IAqlD3B;;;;;;OAMG;IACH;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,kBAAkB;IA+f1B;;;;OAIG;YACW,eAAe;IAkC7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;;;;;;;OAeG;IACH;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,yBAAyB;YAgBnB,eAAe;IAI7B;;;;OAIG;IACH;;;;;;;OAOG;YACW,gBAAgB;IAqY9B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;YAmFZ,aAAa;CAwG5B"}
|
package/dist/cli/chat.js
CHANGED
|
@@ -24,7 +24,7 @@ import { beginIsolation, endIsolation, resolveIsolationRequest, worktreeNotice,
|
|
|
24
24
|
import { closeResume, openResume, resolveResumeRequest, } from '../learning/step-checkpoint.js';
|
|
25
25
|
import { applyActiveModel } from './model.js';
|
|
26
26
|
import { capabilityReasoningEffort, isMaxCapability } from '../config/capability-mode.js';
|
|
27
|
-
import { getProviderFallback, classifyFallbackError, isRetryableError, isTransientForRetry, recordRegistrySuccess } from '../learning/provider-fallback.js';
|
|
27
|
+
import { getProviderFallback, classifyFallbackError, isRetryableError, isTransientForRetry, recordRegistrySuccess, recordRegistryFailure } from '../learning/provider-fallback.js';
|
|
28
28
|
import { recordActionFailure, } from '../learning/failure-bookkeeping.js';
|
|
29
29
|
import { getRouterBandit } from '../learning/router-bandit.js';
|
|
30
30
|
import { UnusableModelResponseError } from '../learning/response-usability.js';
|
|
@@ -372,7 +372,12 @@ export function turnCarriesHonestyFlag(result) {
|
|
|
372
372
|
result.noActionTaken ||
|
|
373
373
|
result.artifactIncomplete ||
|
|
374
374
|
result.unverifiedFileClaim ||
|
|
375
|
-
result.artifactShortfall
|
|
375
|
+
result.artifactShortfall ||
|
|
376
|
+
// Measured 2026-10-09: a plan delivered in place of a requested change, and
|
|
377
|
+
// a health verdict nothing observed. Both are answers that must not be
|
|
378
|
+
// replayed from the cache as settled work.
|
|
379
|
+
result.undeliveredChange ||
|
|
380
|
+
result.unbackedHealthClaim);
|
|
376
381
|
}
|
|
377
382
|
// ─── ChatCommand ────────────────────────────────────────────────────────────
|
|
378
383
|
export class ChatCommand extends BaseCommand {
|
|
@@ -772,6 +777,11 @@ export class ChatCommand extends BaseCommand {
|
|
|
772
777
|
// Bundle 23 — a file far short of the stated magnitude is the same:
|
|
773
778
|
// the delivered artifact is not what was asked for.
|
|
774
779
|
artifactShortfall: Boolean(answer.artifactShortfall),
|
|
780
|
+
// Measured 2026-10-09 — a change asked for and a plan delivered, and a
|
|
781
|
+
// health verdict nothing observed the product to back, both reach the
|
|
782
|
+
// report so neither can read as finished work on any surface.
|
|
783
|
+
undeliveredChange: answer.undeliveredChange,
|
|
784
|
+
unbackedHealthClaim: answer.unbackedHealthClaim,
|
|
775
785
|
},
|
|
776
786
|
});
|
|
777
787
|
}
|
|
@@ -1907,6 +1917,13 @@ export class ChatCommand extends BaseCommand {
|
|
|
1907
1917
|
});
|
|
1908
1918
|
// G18 — the tool-context emit (declared above) now has somewhere to write.
|
|
1909
1919
|
traceIdForEvents = chatTraceId;
|
|
1920
|
+
/**
|
|
1921
|
+
* Requests-panel latency: the turn's MODEL time, summed from the per-call
|
|
1922
|
+
* durations `recordChatStep` already measures. The action log recorded no
|
|
1923
|
+
* `latencyMs` at all from this surface, so every chat row rendered `—` in
|
|
1924
|
+
* the dashboard even though the number existed one line away in the trace.
|
|
1925
|
+
*/
|
|
1926
|
+
let turnModelMs = 0;
|
|
1910
1927
|
// A2 — record the routing DECISION as a first-class event, so a turn that
|
|
1911
1928
|
// ran on a weak/incapable model is self-evident in the Trace tab. The
|
|
1912
1929
|
// failed Tauri turn had no such record; this is the instrument that would
|
|
@@ -2034,11 +2051,15 @@ export class ChatCommand extends BaseCommand {
|
|
|
2034
2051
|
const prompt = threadMsgs.map((m) => (m.role === 'system' ? `[System]\n${m.content}` : m.role === 'user' ? `[User]\n${m.content}` : m.role === 'assistant' ? `[Assistant]\n${m.content}` : `[Tool result]\n${m.content}`)).join('\n\n');
|
|
2035
2052
|
try {
|
|
2036
2053
|
const resp = await callModel(threadMsgs, schemas2, tok, sig);
|
|
2037
|
-
|
|
2054
|
+
const ms = Date.now() - start;
|
|
2055
|
+
turnModelMs += ms;
|
|
2056
|
+
recordChatStep(prompt, resp.content ?? '', ms, true);
|
|
2038
2057
|
return resp;
|
|
2039
2058
|
}
|
|
2040
2059
|
catch (err) {
|
|
2041
|
-
|
|
2060
|
+
const ms = Date.now() - start;
|
|
2061
|
+
turnModelMs += ms;
|
|
2062
|
+
recordChatStep(prompt, '', ms, false, err instanceof Error ? err.message : String(err));
|
|
2042
2063
|
throw err;
|
|
2043
2064
|
}
|
|
2044
2065
|
};
|
|
@@ -2404,6 +2425,10 @@ export class ChatCommand extends BaseCommand {
|
|
|
2404
2425
|
// backs, both make the turn `incomplete` on the trace (not `answered`). incompleteArtifactClaim: Boolean(result.artifactIncomplete),
|
|
2405
2426
|
unverifiedFileClaim: result.unverifiedFileClaim,
|
|
2406
2427
|
artifactShortfall: Boolean(result.artifactShortfall),
|
|
2428
|
+
// Measured 2026-10-09 — an unchanged workspace answering a change request,
|
|
2429
|
+
// and a health verdict nothing observed, are both UNFINISHED work.
|
|
2430
|
+
undeliveredChange: result.undeliveredChange,
|
|
2431
|
+
unbackedHealthClaim: result.unbackedHealthClaim,
|
|
2407
2432
|
});
|
|
2408
2433
|
// A cancelled / failed / incomplete turn is NOT a success. `!generationFailed`
|
|
2409
2434
|
// used to let a cancelled run record `success: true` while its outcome said
|
|
@@ -2415,6 +2440,15 @@ export class ChatCommand extends BaseCommand {
|
|
|
2415
2440
|
// Best-effort by construction; `endTrace` above cleared the in-progress id,
|
|
2416
2441
|
// so the trace id is passed explicitly.
|
|
2417
2442
|
recordTraceFindings(chatTraceId, findings);
|
|
2443
|
+
// ── §6.5 — WAS THE TURN'S ANSWER SERVED BY A PAIR THAT COULD HOLD IT? ──
|
|
2444
|
+
// Computed ONCE, before the console warnings and the registry write, so the
|
|
2445
|
+
// warning the user reads and the outcome the panel records cannot disagree.
|
|
2446
|
+
// Gated on the turn having actually needed agentic work (it called tools): a
|
|
2447
|
+
// tiny local model answering a plain conversational turn is not a quality
|
|
2448
|
+
// failure, and claiming one would invent a false signal in the other
|
|
2449
|
+
// direction — the same defect this programme exists to remove.
|
|
2450
|
+
const neededAgenticWork = (result.toolCalls?.length ?? 0) > 0;
|
|
2451
|
+
const degradedPair = neededAgenticWork && Boolean(session.model) && !isAgenticCapableModel(session.model, session.type);
|
|
2418
2452
|
// G3 — record what this turn actually did so the NEXT turn starts from it
|
|
2419
2453
|
// (files changed, whether anything verified the work, and whether the user
|
|
2420
2454
|
// reported a regression). Best-effort: the ledger must never break a turn.
|
|
@@ -2492,6 +2526,19 @@ export class ChatCommand extends BaseCommand {
|
|
|
2492
2526
|
const s = result.artifactShortfall;
|
|
2493
2527
|
logger.warn(` ⚠️ ${s.path} has ~${s.deliveredWords} words, but the request asked for ~${s.targetWords} (${s.source}) — the deliverable is materially SHORT of what was asked.`);
|
|
2494
2528
|
}
|
|
2529
|
+
// Measured 2026-10-09 — the two verdicts that used to be invisible on every
|
|
2530
|
+
// surface but the trace. Both are the failure that LOOKS most like success,
|
|
2531
|
+
// so the reader is told plainly. Printed, never appended to `content`, so
|
|
2532
|
+
// the delivered answer, the gateway bubble and the answer cache stay clean.
|
|
2533
|
+
if (result.undeliveredChange) {
|
|
2534
|
+
logger.warn(' ⚠️ This request asked for a CHANGE, but nothing was changed this turn — the text above is a PLAN, not the work.');
|
|
2535
|
+
}
|
|
2536
|
+
if (result.unbackedHealthClaim) {
|
|
2537
|
+
logger.warn(' ⚠️ This reply vouches for the project working, but NOTHING this turn exercised the product (no server started, no route called) — treat the verdict as UNBACKED.');
|
|
2538
|
+
}
|
|
2539
|
+
if (degradedPair) {
|
|
2540
|
+
logger.warn(` ⚠️ No agentic-capable model was reachable — this turn was served by ${session.type}/${session.model}, which cannot hold a task like this. Treat the result as DEGRADED.`);
|
|
2541
|
+
}
|
|
2495
2542
|
}
|
|
2496
2543
|
catch {
|
|
2497
2544
|
// Best-effort.
|
|
@@ -2535,8 +2582,34 @@ export class ChatCommand extends BaseCommand {
|
|
|
2535
2582
|
}
|
|
2536
2583
|
history.push({ role: 'assistant', content: result.content });
|
|
2537
2584
|
this.memoryNoteTurn(message, result.content);
|
|
2585
|
+
// ── WHICH PAIR ANSWERED, AND WAS IT ABLE TO? ────────────────────────
|
|
2586
|
+
// This used to record `verified` UNCONDITIONALLY for `session.type` /
|
|
2587
|
+
// `session.model`. Two consequences, both measured on 2026-10-09:
|
|
2588
|
+
//
|
|
2589
|
+
// 1. THE REQUESTS PANEL VOUCHED FOR A MODEL WHOSE ANSWERS ARE UNUSABLE.
|
|
2590
|
+
// `local/qwen2.5:0.5b` served step 2 of a two-step turn after the cloud
|
|
2591
|
+
// model was rate-limited and replied with filler — and the dashboard
|
|
2592
|
+
// showed **4 requests, 0.0% error rate** for it, because `verified`
|
|
2593
|
+
// means "the provider answered", not "the answer was usable".
|
|
2594
|
+
// 2. ROUTING WAS REWARDED FOR IT. `verified` is what marks a pair good for
|
|
2595
|
+
// real usage, so the weak model was promoted by the same turn that
|
|
2596
|
+
// exposed it.
|
|
2597
|
+
//
|
|
2598
|
+
// A pair that cannot hold an agentic task is a QUALITY-REJECTED call: it is
|
|
2599
|
+
// booked as a failure with its own class (so the panel's error rate reflects
|
|
2600
|
+
// it and the walk stops re-picking it) instead of as health.
|
|
2601
|
+
//
|
|
2602
|
+
// `degradedPair` is computed once above the console warnings, so the
|
|
2603
|
+
// verdict the user reads and the outcome recorded here cannot drift.
|
|
2538
2604
|
try {
|
|
2539
|
-
|
|
2605
|
+
if (degradedPair) {
|
|
2606
|
+
recordRegistryFailure(session.type, session.model, new Error(`model answered with a reply it could not carry the task with ` +
|
|
2607
|
+
'instead of the task (not agentic-capable)'), 'quality-rejected', 'chat', turnModelMs);
|
|
2608
|
+
}
|
|
2609
|
+
else {
|
|
2610
|
+
// The turn's MODEL time, so the Requests panel stops rendering `—`.
|
|
2611
|
+
recordRegistrySuccess(session.type, session.model, 'chat', turnModelMs);
|
|
2612
|
+
}
|
|
2540
2613
|
}
|
|
2541
2614
|
catch {
|
|
2542
2615
|
// Best-effort.
|
|
@@ -2621,6 +2694,8 @@ export class ChatCommand extends BaseCommand {
|
|
|
2621
2694
|
incompleteArtifactClaim: Boolean(result.artifactIncomplete),
|
|
2622
2695
|
unverifiedFileClaim: result.unverifiedFileClaim,
|
|
2623
2696
|
artifactShortfall: Boolean(result.artifactShortfall),
|
|
2697
|
+
undeliveredChange: result.undeliveredChange,
|
|
2698
|
+
unbackedHealthClaim: result.unbackedHealthClaim,
|
|
2624
2699
|
});
|
|
2625
2700
|
const chatFollowups = withContinuationFollowups(result.followups, {
|
|
2626
2701
|
unfinished: !traceOutcomeSucceeded(chatOutcomeForFollowups),
|