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
|
@@ -44,6 +44,11 @@ const UNFINISHED_FLAGS = [
|
|
|
44
44
|
'incompleteArtifactClaim',
|
|
45
45
|
'unverifiedFileClaim',
|
|
46
46
|
'artifactShortfall',
|
|
47
|
+
// Measured 2026-10-09: a three-bug report answered with a plan and no change,
|
|
48
|
+
// and a health verdict issued with nothing observing the product. Neither was
|
|
49
|
+
// an action claim `unverified*` could see, so both read as finished work.
|
|
50
|
+
'undeliveredChange',
|
|
51
|
+
'unbackedHealthClaim',
|
|
47
52
|
];
|
|
48
53
|
function hasAnyFlag(flags) {
|
|
49
54
|
return Boolean(flags.unverifiedActionClaim ||
|
|
@@ -55,7 +60,9 @@ function hasAnyFlag(flags) {
|
|
|
55
60
|
flags.noActionTaken ||
|
|
56
61
|
flags.incompleteArtifactClaim ||
|
|
57
62
|
flags.unverifiedFileClaim ||
|
|
58
|
-
flags.artifactShortfall
|
|
63
|
+
flags.artifactShortfall ||
|
|
64
|
+
flags.undeliveredChange ||
|
|
65
|
+
flags.unbackedHealthClaim);
|
|
59
66
|
}
|
|
60
67
|
/**
|
|
61
68
|
* Bundle 21 — is this the authored-document read-back case?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-report.js","sourceRoot":"","sources":["../../src/learning/turn-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAc/D,kEAAkE;AAClE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAChG,uCAAuC;AACvC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AACzF;;;;;GAKG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAyC;IAC7D,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,yBAAyB;IACzB,qBAAqB;IACrB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"turn-report.js","sourceRoot":"","sources":["../../src/learning/turn-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -510,6 +510,40 @@ export interface ToolLoopResult {
|
|
|
510
510
|
* never read "completed" from a turn whose request it did not touch.
|
|
511
511
|
*/
|
|
512
512
|
noActionTaken?: boolean;
|
|
513
|
+
/**
|
|
514
|
+
* UNCHANGED-WORKSPACE HONESTY FLAG — the request asked for a CHANGE to the
|
|
515
|
+
* workspace, the turn mutated NOTHING, and the answer is a PLAN or a PROMISE
|
|
516
|
+
* rather than the work.
|
|
517
|
+
*
|
|
518
|
+
* WHY IT EXISTS (measured 2026-10-09, `trace-1791521608671-1bjnfa`). A user
|
|
519
|
+
* reported three concrete bugs in their own project. The turn read one file
|
|
520
|
+
* and replied with its own working notes — "I need to investigate… Plan: 1…
|
|
521
|
+
* Let's start by reading `public/app.js`." — and was recorded `success: true`.
|
|
522
|
+
* `noActionTaken` could not see it (a read had succeeded), and
|
|
523
|
+
* `unfulfilledPromise` could not either (its list exemption — correct in
|
|
524
|
+
* general — exempts exactly the plan-and-stop shape). This flag is the
|
|
525
|
+
* edit-shaped sibling of `undeliveredArtifact`: that one covers an authored
|
|
526
|
+
* DOCUMENT that was never written, this one a workspace CHANGE that was never
|
|
527
|
+
* made. Deliberately narrow — it requires all three of "a change was asked
|
|
528
|
+
* for", "nothing was mutated", and "the answer is a plan/promise" — so a
|
|
529
|
+
* legitimate explanatory answer that merely enumerates steps is untouched.
|
|
530
|
+
*/
|
|
531
|
+
undeliveredChange?: boolean;
|
|
532
|
+
/**
|
|
533
|
+
* UNBACKED-HEALTH-CLAIM HONESTY FLAG — the answer vouches for the project
|
|
534
|
+
* ("stable, working state", "fully implemented", "ready for use") while the
|
|
535
|
+
* turn mutated nothing and ran NOTHING that exercised the product.
|
|
536
|
+
*
|
|
537
|
+
* WHY IT EXISTS (measured 2026-10-09, `trace-1791521454725-e7s5ew`). Asked
|
|
538
|
+
* "what's the state of this project?", the turn ran `npm test`, read 20 lines
|
|
539
|
+
* of README, and answered *"the project is in a stable, working state… All 18
|
|
540
|
+
* automated tests passed… ready for use"*. The app was a dead demo — its
|
|
541
|
+
* `server.js` served no static route, so `GET /app.js` 404'd and EVERY button
|
|
542
|
+
* on the page was inert. A unit suite for one module is not evidence about the
|
|
543
|
+
* product, and nothing in the honesty family covered a claim about a SYSTEM'S
|
|
544
|
+
* health (every other flag is action-shaped). Set by the loop, never guessed.
|
|
545
|
+
*/
|
|
546
|
+
unbackedHealthClaim?: boolean;
|
|
513
547
|
/**
|
|
514
548
|
* G2 — HONESTY FLAG — the answer ASSERTS a completed code change ("I have
|
|
515
549
|
* successfully fixed…", "now fully operational") while the turn mutated the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/tool-loop.js
CHANGED
|
@@ -1351,10 +1351,20 @@ async function runToolLoopInner(opts, progress) {
|
|
|
1351
1351
|
// this turn (a turn that already did work and narrates a next step is
|
|
1352
1352
|
// not silently dropped), on tools being available, and on the bounded
|
|
1353
1353
|
// counter. Any residual promise is reported via `unfulfilledPromise`.
|
|
1354
|
+
// The zero-success requirement is the original contract (a turn that did
|
|
1355
|
+
// NOTHING and announced an action). The second arm covers the measured
|
|
1356
|
+
// 2026-10-09 case this gate could not see: a CHANGE was asked for, only some
|
|
1357
|
+
// READS succeeded, and the answer is a plan/promise — so the nudge is spent
|
|
1358
|
+
// asking for the work instead of the plan being delivered as the answer.
|
|
1359
|
+
// Bounded identically (`intentNudges < 1`) and gated on the ask requiring a
|
|
1360
|
+
// change, so a legitimate plan answer is never nudged.
|
|
1361
|
+
const promiseCandidate = response.content.length >= lastContent.length ? response.content : lastContent;
|
|
1354
1362
|
if (intentNudges < 1 &&
|
|
1355
|
-
progress.successfulToolCalls.length === 0 &&
|
|
1356
1363
|
schemas.length > 0 &&
|
|
1357
|
-
|
|
1364
|
+
(progress.successfulToolCalls.length === 0
|
|
1365
|
+
? detectUnfulfilledIntentPromise(promiseCandidate)
|
|
1366
|
+
: requestRequiresWorkspaceChange(lastUserText(opts.messages)) &&
|
|
1367
|
+
answeredWithAPlanInsteadOfWork(promiseCandidate))) {
|
|
1358
1368
|
intentNudges += 1;
|
|
1359
1369
|
stepLimit += 1;
|
|
1360
1370
|
deps.onEvent?.(' 🔁 Answer announced an action but performed none — asking the model to carry it out.');
|
|
@@ -3081,6 +3091,25 @@ export async function runToolLoop(opts) {
|
|
|
3081
3091
|
requestRequiresWorkspaceAction(askText, requestAuthorizesWrites(askText).authorized)) {
|
|
3082
3092
|
result.noActionTaken = true;
|
|
3083
3093
|
}
|
|
3094
|
+
// UNCHANGED-WORKSPACE honesty (measured 2026-10-09). A CHANGE was asked for,
|
|
3095
|
+
// nothing was mutated, and the answer is the model's plan or promise rather
|
|
3096
|
+
// than the work. Left to `undeliveredArtifact` when that already fired, so one
|
|
3097
|
+
// turn is never reported under two names.
|
|
3098
|
+
if (!result.cancelled &&
|
|
3099
|
+
!result.undeliveredArtifact &&
|
|
3100
|
+
progress.mutatedPaths.length === 0 &&
|
|
3101
|
+
requestRequiresWorkspaceChange(askText) &&
|
|
3102
|
+
answeredWithAPlanInsteadOfWork(result.content)) {
|
|
3103
|
+
result.undeliveredChange = true;
|
|
3104
|
+
}
|
|
3105
|
+
// UNBACKED-HEALTH-CLAIM honesty (measured 2026-10-09). The answer vouches for
|
|
3106
|
+
// the product and nothing this turn observed the product running, so the
|
|
3107
|
+
// verdict rests on something else — usually a unit suite for one module.
|
|
3108
|
+
if (!result.cancelled &&
|
|
3109
|
+
!result.generationFailed &&
|
|
3110
|
+
detectUnbackedHealthClaim(result.content, result.successfulToolCalls, progress.executedActions, progress.mutatedPaths)) {
|
|
3111
|
+
result.unbackedHealthClaim = true;
|
|
3112
|
+
}
|
|
3084
3113
|
}
|
|
3085
3114
|
return result;
|
|
3086
3115
|
}
|
|
@@ -3140,7 +3169,7 @@ const REQUEST_FILE_TOKEN_RE = /\b[\w./~-]+\.(?:js|mjs|cjs|ts|tsx|jsx|py|rb|go|rs
|
|
|
3140
3169
|
/** A verb that asks for a change to the workspace. */
|
|
3141
3170
|
const WORK_EDIT_VERB_RE = /\b(?:fix|repair|refactor|edit|modify|updat|chang|add|implement|creat|writ|delet|remov|renam|rewrit|migrat|correct|debug|patch|tweak|scaffold)\w*/i;
|
|
3142
3171
|
/** A code/workspace noun that pairs with the verb above. */
|
|
3143
|
-
const CODE_NOUN_RE = /\b(?:file|files|function|functions|method|methods|class|classes|module|modules|script|scripts|component|components|test|tests|suite|api|endpoint|endpoints|route|routes|schema|schemas|migration|migrations|package|dependency|dependencies|import|imports|config|configuration|type|types|interface|interfaces|bug|bugs|repo|repository|codebase|project|source)\b/i;
|
|
3172
|
+
const CODE_NOUN_RE = /\b(?:file|files|function|functions|method|methods|class|classes|module|modules|script|scripts|component|components|test|tests|suite|api|endpoint|endpoints|route|routes|schema|schemas|migration|migrations|package|dependency|dependencies|import|imports|config|configuration|type|types|interface|interfaces|bug|bugs|repo|repository|codebase|project|source|button|buttons|ui|ux|page|pages|screen|screens|form|forms|dialog|dialogs|menu|menus|widget|widgets|handler|handlers|frontend|backend|client|server|webpage|website|view|views|layout|styling|style|styles|css|html|markup|input|field|fields|dropdown|dropdowns|checkbox|toggle|modal|modals|label|labels)\b/i;
|
|
3144
3173
|
/**
|
|
3145
3174
|
* Does this request DIRECT work on the workspace — the precondition for the
|
|
3146
3175
|
* ZERO-ACTION gate?
|
|
@@ -3167,6 +3196,120 @@ function requestRequiresWorkspaceAction(requestText, authorized) {
|
|
|
3167
3196
|
return true;
|
|
3168
3197
|
return WORK_EDIT_VERB_RE.test(text) && CODE_NOUN_RE.test(text);
|
|
3169
3198
|
}
|
|
3199
|
+
/**
|
|
3200
|
+
* Does this request ask for a CHANGE to work that already exists?
|
|
3201
|
+
*
|
|
3202
|
+
* Deliberately NOT `requestRequiresWorkspaceAction`, which answers a different
|
|
3203
|
+
* question ("does this ask need the tools at all?") and deliberately returns
|
|
3204
|
+
* false for an authored-deliverable ask. This one is the precondition for
|
|
3205
|
+
* `undeliveredChange`: an EDIT verb applied to a code/UI noun — the shape of
|
|
3206
|
+
* "fix the settings button", "add drag-and-drop to the page", "why doesn't the
|
|
3207
|
+
* Add Document button work".
|
|
3208
|
+
*
|
|
3209
|
+
* The two optional guards are the same ones every other gate uses: a request
|
|
3210
|
+
* that forbade writes cannot have failed to change anything, and `authorized`
|
|
3211
|
+
* keeps `requestAuthorizesWrites`'s verdict authoritative where it is available.
|
|
3212
|
+
*/
|
|
3213
|
+
function requestRequiresWorkspaceChange(requestText, authorized) {
|
|
3214
|
+
const text = (requestText || '').trim();
|
|
3215
|
+
if (!text)
|
|
3216
|
+
return false;
|
|
3217
|
+
if (authorized === false)
|
|
3218
|
+
return false;
|
|
3219
|
+
if (requestForbidsWrites(text))
|
|
3220
|
+
return false;
|
|
3221
|
+
return WORK_EDIT_VERB_RE.test(text) && CODE_NOUN_RE.test(text);
|
|
3222
|
+
}
|
|
3223
|
+
/**
|
|
3224
|
+
* A plan header the model writes for ITSELF: `Plan:`, `My plan:`, `Next steps—`.
|
|
3225
|
+
* Requires the label, so an ordinary numbered answer is not a plan.
|
|
3226
|
+
*/
|
|
3227
|
+
const PLAN_HEADER_RE = /^[ \t]*(?:#{1,6}[ \t]*)?(?:\*\*[ \t]*)?(?:my|the|our|final|next)?[ \t]*(?:plan|steps|next\s+steps|approach)\s*(?:\*\*)?[ \t]*[:\u2014-]/im;
|
|
3228
|
+
/**
|
|
3229
|
+
* A CLOSING first-person intent to act — the promise that ends a turn.
|
|
3230
|
+
*
|
|
3231
|
+
* Deliberately broader than `INTENT_PROMISE_RES` (which this file already uses
|
|
3232
|
+
* for the dangling-promise nudge): the live answer ended *"Let's start by
|
|
3233
|
+
* reading `public/app.js`."*, and the `let me` family that regex covers does not
|
|
3234
|
+
* match `let's`. Only an imminent, tool-shaped intent belongs here.
|
|
3235
|
+
*/
|
|
3236
|
+
const CLOSING_PROMISE_RES = [
|
|
3237
|
+
/\blet'?s\s+(?:now\s+|then\s+|first\s+|just\s+)*(?:start|begin)\s+by\s+\w+/i,
|
|
3238
|
+
/\blet'?s\s+(?:now\s+|then\s+|first\s+|just\s+)*(?:go\s+ahead\s+and\s+)?(?:start|begin|read|open|inspect|examine|check|look|search|grep|find|run|build|implement|create|write|fix|update|add)\b/i,
|
|
3239
|
+
/\bi(?:'ll| will| am going to| am about to|'m going to)\s+(?:now\s+|next\s+|first\s+|immediately\s+)*(?:start|begin|read|open|inspect|examine|check|look|search|grep|find|run|build|implement|create|write|fix|update|add)\b/i,
|
|
3240
|
+
];
|
|
3241
|
+
/** A completion claim the model would only make having actually done the work. */
|
|
3242
|
+
const COMPLETION_CLAIM_RE = /\b(?:i(?:'ve| have)\s+(?:updated|created|added|written|fixed|changed|run|checked|found|built|removed|refactored|implemented)|here(?:'s| is| are)\s+(?:the|what|how)|the answer is|below is|as requested|i found|all set|that(?:'s| is)\s+(?:it|done))\b/i;
|
|
3243
|
+
/** A fenced block is shipped code or content — a deliverable, not narration. */
|
|
3244
|
+
const FENCED_BLOCK_RE = /```/;
|
|
3245
|
+
/**
|
|
3246
|
+
* Did the turn answer a WORK request with a PLAN instead of the work?
|
|
3247
|
+
*
|
|
3248
|
+
* The four guards are what keep this off a real answer, and each was chosen
|
|
3249
|
+
* from a shape that would otherwise be a false positive:
|
|
3250
|
+
* - a fenced block IS the deliverable (code, a diff, a command the user asked for);
|
|
3251
|
+
* - a completion claim proves work was done, not described;
|
|
3252
|
+
* - a plan header (`Plan:`, `Next steps:`) is the model writing itself a TODO —
|
|
3253
|
+
* an explanation that answers the user says "the fix is", never "Plan:";
|
|
3254
|
+
* - a closing imminent promise ("Let's start by reading X.") is the dropped intent.
|
|
3255
|
+
*
|
|
3256
|
+
* A bare numbered list is NOT enough on its own: "1. Install the CLI\n2. Run
|
|
3257
|
+
* `nuvira gateway start`" is a correct answer to a how-to ask. Only the plan
|
|
3258
|
+
* HEADER or the closing promise marks the turn as having stopped short.
|
|
3259
|
+
*/
|
|
3260
|
+
function answeredWithAPlanInsteadOfWork(content) {
|
|
3261
|
+
const text = (content || '').trim();
|
|
3262
|
+
if (!text)
|
|
3263
|
+
return false;
|
|
3264
|
+
if (FENCED_BLOCK_RE.test(text))
|
|
3265
|
+
return false;
|
|
3266
|
+
if (COMPLETION_CLAIM_RE.test(text))
|
|
3267
|
+
return false;
|
|
3268
|
+
const closing = text
|
|
3269
|
+
.split(/(?<=[.!?。!?])\s+|\n+/)
|
|
3270
|
+
.map((s) => s.trim())
|
|
3271
|
+
.filter(Boolean)
|
|
3272
|
+
.slice(-3);
|
|
3273
|
+
if (closing.some((s) => CLOSING_PROMISE_RES.some((re) => re.test(s))))
|
|
3274
|
+
return true;
|
|
3275
|
+
return LIST_STRUCTURE_RE.test(text) && PLAN_HEADER_RE.test(text);
|
|
3276
|
+
}
|
|
3277
|
+
/**
|
|
3278
|
+
* A command that EXERCISES the product the way its user would — the only kind of
|
|
3279
|
+
* evidence that can back a claim that the product WORKS.
|
|
3280
|
+
*
|
|
3281
|
+
* Deliberately excludes a test suite: `npm test` observes a module, not the
|
|
3282
|
+
* running app, which is the exact confusion this flag exists to remove (the live
|
|
3283
|
+
* app answered "ready for use" off `npm test` while `GET /app.js` returned 404).
|
|
3284
|
+
*/
|
|
3285
|
+
const EXERCISES_PRODUCT_RE = /\b(?:localhost|127\.0\.0\.1|0\.0\.0\.0)\b|\b(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:start|dev|serve|preview)\b|\bnode\s+\S*(?:server|app|index|main)\b|\b(?:curl|wget|http(?:ie)?)\s|\bhttps?:\/\/|\bplaywright|\bpuppeteer|\bchrome\b/i;
|
|
3286
|
+
/**
|
|
3287
|
+
* A claim about the PRODUCT's health/readiness — strong, project-level phrasing.
|
|
3288
|
+
* Kept to readiness/working/completeness assertions so that reporting a test
|
|
3289
|
+
* result ("18 tests passed") is not, by itself, treated as one.
|
|
3290
|
+
*/
|
|
3291
|
+
const PRODUCT_HEALTH_CLAIM_RE = /\b(?:ready\s+for\s+use|ready\s+for\s+further\s+development|fully\s+implemented|fully\s+functional|stable,?\s+working|working\s+state|in\s+good\s+shape|production[-\s]ready|everything\s+works|(?:the\s+)?(?:project|app|application|codebase|repo|repository|service|system|website|web\s?app)\b[^.!?\n]{0,40}\b(?:works|is\s+stable|is\s+complete|is\s+functional|has\s+no\s+(?:issues|bugs|problems)))/i;
|
|
3292
|
+
/**
|
|
3293
|
+
* Is this a health verdict the turn's own evidence cannot support?
|
|
3294
|
+
*
|
|
3295
|
+
* Requires the CONJUNCTION, because each term is what makes the claim unbacked:
|
|
3296
|
+
* the answer vouches for the product, the turn changed nothing (so this is an
|
|
3297
|
+
* ASSESSMENT, not a change the user can go and look at), and nothing ran that
|
|
3298
|
+
* exercised the product. A turn that started the server and hit a route is
|
|
3299
|
+
* untouched.
|
|
3300
|
+
*/
|
|
3301
|
+
function detectUnbackedHealthClaim(content, successfulToolCalls, executedActions, mutatedPaths) {
|
|
3302
|
+
const text = content || '';
|
|
3303
|
+
if (!text.trim())
|
|
3304
|
+
return false;
|
|
3305
|
+
if (!PRODUCT_HEALTH_CLAIM_RE.test(text))
|
|
3306
|
+
return false;
|
|
3307
|
+
if (mutatedPaths.length > 0)
|
|
3308
|
+
return false;
|
|
3309
|
+
if (successfulToolCalls.includes('browser'))
|
|
3310
|
+
return false;
|
|
3311
|
+
return !executedActions.some((a) => a.ok && typeof a.command === 'string' && EXERCISES_PRODUCT_RE.test(a.command));
|
|
3312
|
+
}
|
|
3170
3313
|
const NON_PRODUCTIVE_TOOLS = new Set(['suggest_followups']);
|
|
3171
3314
|
/** True when the turn performed at least one action beyond merely concluding. */
|
|
3172
3315
|
function hasProductiveAction(progress) {
|