agent-nuvira 3.2.0 → 3.3.1
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 +42 -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/cli/chat.d.ts +6 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +45 -1
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +6 -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/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/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +48 -3
- package/dist/cli/execute.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 +24 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +161 -1
- package/dist/cli/loop-executor.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/trace.d.ts +19 -0
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +82 -2
- package/dist/cli/trace.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/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +22 -3
- package/dist/gateway/registry.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +54 -0
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +216 -4
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +42 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +115 -19
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/cost-tracker.d.ts +14 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +22 -0
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/deliverable-class.d.ts +48 -0
- package/dist/learning/deliverable-class.d.ts.map +1 -1
- package/dist/learning/deliverable-class.js +72 -0
- package/dist/learning/deliverable-class.js.map +1 -1
- package/dist/learning/engine-router.d.ts +12 -1
- package/dist/learning/engine-router.d.ts.map +1 -1
- package/dist/learning/engine-router.js +28 -0
- package/dist/learning/engine-router.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/long-form.d.ts.map +1 -1
- package/dist/learning/long-form.js +12 -1
- package/dist/learning/long-form.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +89 -0
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +49 -0
- package/dist/learning/reasoning-trace.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 +5 -1
- 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/learning/unattended-job.d.ts +57 -0
- package/dist/learning/unattended-job.d.ts.map +1 -1
- package/dist/learning/unattended-job.js +92 -0
- package/dist/learning/unattended-job.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +9 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +38 -17
- package/dist/nlu/conversation-gate.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/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/edit-verification.d.ts +95 -0
- package/dist/tools/edit-verification.d.ts.map +1 -1
- package/dist/tools/edit-verification.js +238 -16
- package/dist/tools/edit-verification.js.map +1 -1
- package/dist/tools/registry.d.ts +31 -2
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +44 -5
- 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.map +1 -1
- package/dist/tools/run-terminal.js +23 -4
- 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 +102 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +480 -13
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +7 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +41 -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/package.json +5 -2
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js +207 -0
- package/src/web-dashboard/public/assets/index-CjvoBhlz.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
|
@@ -276,6 +276,96 @@ function looksLikeDeliverableTail(text) {
|
|
|
276
276
|
return false;
|
|
277
277
|
return !REASONING_LINE.test(s.split(/\r?\n/, 1)[0] ?? '');
|
|
278
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* A leading line that is the model's OWN working notes or an echo of the
|
|
281
|
+
* prompt's fields, rather than the deliverable itself.
|
|
282
|
+
*
|
|
283
|
+
* Observed live (a 2-page story unit): the file opened with
|
|
284
|
+
*
|
|
285
|
+
* # Chapter 1
|
|
286
|
+
* Author.
|
|
287
|
+
* Village boy finds a lamp in a banyan root.
|
|
288
|
+
* Chapter 1 (the concluding unit of the opening).
|
|
289
|
+
* * *Note:* The prompt asks for the "CONCLUDING unit — Chapter 1" of an
|
|
290
|
+
* "OPENING unit". This is slightly contradictory…
|
|
291
|
+
*
|
|
292
|
+
* before the prose started. The unit prompt already forbids all of this
|
|
293
|
+
* ("Output ONLY the prose", "No title line, no headings", "No preamble, no
|
|
294
|
+
* note about what you are doing") — but prompt compliance is a probability, and
|
|
295
|
+
* for a 39-unit book a violated prompt pollutes every chapter. The deliverable
|
|
296
|
+
* needs a guarantee, not a request.
|
|
297
|
+
*
|
|
298
|
+
* Deliberately narrow, and only ever applied to a LEADING block: an echoed
|
|
299
|
+
* field label (`Author.`, `Title:`), a heading line (`# Chapter 1`), a note
|
|
300
|
+
* marker, or a sentence that talks about the prompt/task itself.
|
|
301
|
+
*/
|
|
302
|
+
const AUTHOR_NOTE_LINE = /^(?:#{1,6}\s*)?(?:author|title|form|book|chapter|unit|word\s*count|target|summary|requirements?|style|genre|logline|premise|setting|characters?)\s*[:.\u2014-]/i;
|
|
303
|
+
const AUTHOR_HEADING_LINE = /^#{1,6}\s+\S/;
|
|
304
|
+
const AUTHOR_NOTE_MARKER = /^\s*(?:\*{1,2}\s*)?(?:note|n\.b\.|nb|reminder)\s*[:.]?/i;
|
|
305
|
+
const AUTHOR_META_SENTENCE = /\b(?:the prompt|this prompt|the task|the instructions?|as an ai|as a language model|i (?:am|will|need|should|must)\b|here(?:'s| is) (?:the|my)|the (?:concluding|opening) unit|following the (?:prompt|instructions)|word target|as requested)\b/i;
|
|
306
|
+
/** Does ONE line look like working notes rather than delivered prose? */
|
|
307
|
+
function isAuthorNoteLine(line) {
|
|
308
|
+
const t = line.trim();
|
|
309
|
+
if (!t)
|
|
310
|
+
return false;
|
|
311
|
+
if (AUTHOR_NOTE_MARKER.test(t))
|
|
312
|
+
return true;
|
|
313
|
+
if (AUTHOR_NOTE_LINE.test(t))
|
|
314
|
+
return true;
|
|
315
|
+
if (AUTHOR_HEADING_LINE.test(t))
|
|
316
|
+
return true;
|
|
317
|
+
return t.length <= 400 && AUTHOR_META_SENTENCE.test(t);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Strip a LEADING block of the model's own working notes from an authored unit,
|
|
321
|
+
* so the artifact holds the work rather than a preamble about the work.
|
|
322
|
+
*
|
|
323
|
+
* Stops at the first line that is prose — so a note that legitimately appears
|
|
324
|
+
* inside the text is untouched — and returns the input UNCHANGED when stripping
|
|
325
|
+
* would leave too little to be the unit (a prose opening that merely happens to
|
|
326
|
+
* match one of the shapes must never cost the deliverable).
|
|
327
|
+
*/
|
|
328
|
+
export function stripLeadingAuthorNotes(content) {
|
|
329
|
+
const text = content || '';
|
|
330
|
+
if (!text.trim())
|
|
331
|
+
return text;
|
|
332
|
+
const lines = text.split(/\r?\n/);
|
|
333
|
+
let cut = 0;
|
|
334
|
+
let sawNote = false;
|
|
335
|
+
let blankRun = 0;
|
|
336
|
+
for (let i = 0; i < lines.length; i++) {
|
|
337
|
+
const line = lines[i];
|
|
338
|
+
if (line.trim() === '') {
|
|
339
|
+
// Blanks inside the leading block belong to it; a blank BEFORE any note
|
|
340
|
+
// cannot occur (leading whitespace is skipped by whoever trims first).
|
|
341
|
+
blankRun += 1;
|
|
342
|
+
if (sawNote)
|
|
343
|
+
cut = i + 1;
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (!isAuthorNoteLine(line))
|
|
347
|
+
break;
|
|
348
|
+
// A heading is only a note in the LEADING position, and only when it looks
|
|
349
|
+
// like a container (`# Chapter 1`), never a short line of prose the author
|
|
350
|
+
// happened to bold.
|
|
351
|
+
if (AUTHOR_HEADING_LINE.test(line.trim()) && line.trim().replace(/#+\s*/, '').split(/\s+/).length > 6)
|
|
352
|
+
break;
|
|
353
|
+
sawNote = true;
|
|
354
|
+
cut = i + 1;
|
|
355
|
+
blankRun = 0;
|
|
356
|
+
}
|
|
357
|
+
if (!sawNote)
|
|
358
|
+
return text;
|
|
359
|
+
void blankRun;
|
|
360
|
+
const remainder = lines.slice(cut).join('\n').replace(/^\s*\n/, '');
|
|
361
|
+
// Never trade a real deliverable for a tidy one: require the surviving text
|
|
362
|
+
// to be a substantial majority of what came in, and to be non-empty.
|
|
363
|
+
if (remainder.trim().length < 100)
|
|
364
|
+
return text;
|
|
365
|
+
if (remainder.trim().length < text.trim().length * 0.5)
|
|
366
|
+
return text;
|
|
367
|
+
return remainder;
|
|
368
|
+
}
|
|
279
369
|
/**
|
|
280
370
|
* Salvage the deliverable from a reply that opens with a reasoning trace.
|
|
281
371
|
*
|
|
@@ -599,6 +689,20 @@ function parseJsonLoose(text) {
|
|
|
599
689
|
return null;
|
|
600
690
|
}
|
|
601
691
|
}
|
|
692
|
+
/**
|
|
693
|
+
* The list inside a value keyed by our own tool NAME — either the list itself
|
|
694
|
+
* or a `{followups: …}` wrapper. `undefined` when it is neither.
|
|
695
|
+
*/
|
|
696
|
+
function namedFollowupList(value) {
|
|
697
|
+
if (Array.isArray(value))
|
|
698
|
+
return value;
|
|
699
|
+
if (value && typeof value === 'object') {
|
|
700
|
+
const list = value.followups;
|
|
701
|
+
if (Array.isArray(list))
|
|
702
|
+
return list;
|
|
703
|
+
}
|
|
704
|
+
return undefined;
|
|
705
|
+
}
|
|
602
706
|
/**
|
|
603
707
|
* Is this parsed value the model's `suggest_followups` payload?
|
|
604
708
|
*
|
|
@@ -607,13 +711,24 @@ function parseJsonLoose(text) {
|
|
|
607
711
|
* BARE ARRAY under a `**suggest_followups**` caption (both observed live
|
|
608
712
|
* 2026-09-21 from `nuvira execute`).
|
|
609
713
|
*
|
|
714
|
+
* ALSO accepts our tool's ARGUMENTS keyed by our own tool NAME
|
|
715
|
+
* (`{"suggest_followups":[{prompt,label},…]}`) — the shape models actually
|
|
716
|
+
* hand-write when they cannot emit a real call. Observed live 2026-09-22 on the
|
|
717
|
+
* dashboard chat: 14 of 116 stored assistant turns ended with this block, and
|
|
718
|
+
* it was delivered to the reader verbatim while the suggestions were lost
|
|
719
|
+
* entirely (no chips) — the contract's own documented shape (`{"tool":…}`)
|
|
720
|
+
* appeared ZERO times, so matching only that shape matched nothing in practice.
|
|
721
|
+
*
|
|
610
722
|
* CONSERVATISM ON PLAIN STRINGS: an entry that is a `{prompt}` object is the
|
|
611
723
|
* tool's own schema and is accepted anywhere; a plain STRING entry is only
|
|
612
724
|
* accepted when the model captioned the payload with the tool name, because
|
|
613
725
|
* `{"followups":["Do you like it?"]}` is also a perfectly ordinary config a
|
|
614
726
|
* user could have asked for and a bare one must survive. (These flags are
|
|
615
727
|
* deliberately asymmetric rather than perfectly symmetric — this helper must
|
|
616
|
-
* never delete a deliverable.)
|
|
728
|
+
* never delete a deliverable.) The name-keyed branch is ALWAYS strict about
|
|
729
|
+
* this for the same reason: the tool's schema only ever allows `{prompt}`
|
|
730
|
+
* objects, so a list of plain strings under that key is almost certainly the
|
|
731
|
+
* user's own JSON, not our contract.
|
|
617
732
|
*/
|
|
618
733
|
function isFollowupsPayload(value, allowStringEntries) {
|
|
619
734
|
if (!value || typeof value !== 'object')
|
|
@@ -623,10 +738,72 @@ function isFollowupsPayload(value, allowStringEntries) {
|
|
|
623
738
|
const o = value;
|
|
624
739
|
if (o.tool === 'suggest_followups')
|
|
625
740
|
return true;
|
|
741
|
+
if ('suggest_followups' in o)
|
|
742
|
+
return isFollowupList(namedFollowupList(o.suggest_followups), false);
|
|
626
743
|
const nested = (o.arguments ?? {});
|
|
627
744
|
const list = Array.isArray(o.followups) ? o.followups : nested.followups;
|
|
628
745
|
return isFollowupList(list, allowStringEntries);
|
|
629
746
|
}
|
|
747
|
+
/**
|
|
748
|
+
* `isFollowupsPayload` for a payload written as TEXT with no caption — the
|
|
749
|
+
* question the tool loop's recovery asks before consuming a block it found by
|
|
750
|
+
* the name-keyed opener. Exported so the strip and the recovery share one
|
|
751
|
+
* definition of "this is our contract".
|
|
752
|
+
*/
|
|
753
|
+
export function isTextualFollowupsPayload(value) {
|
|
754
|
+
return isFollowupsPayload(value, false);
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* The followup entries a parsed `suggest_followups` payload carries — for
|
|
758
|
+
* RECOVERY, as opposed to `isFollowupsPayload`'s strip-or-keep question.
|
|
759
|
+
*
|
|
760
|
+
* Returns null when the payload is ours but carries nothing usable (the model
|
|
761
|
+
* wrote the call with no arguments): the block still gets stripped, there is
|
|
762
|
+
* simply nothing to offer the user.
|
|
763
|
+
*
|
|
764
|
+
* Exported so the tool loop's text-call recovery and the strip share ONE
|
|
765
|
+
* definition of which shapes are the contract. They drifted apart once already
|
|
766
|
+
* — the strip knew a shape the recovery's gate did not, which is exactly how
|
|
767
|
+
* 14 turns lost their followups.
|
|
768
|
+
*/
|
|
769
|
+
export function followupEntriesFromPayload(value) {
|
|
770
|
+
if (!value || typeof value !== 'object')
|
|
771
|
+
return null;
|
|
772
|
+
// One expression per accepted shape, in the order the shapes appear on the
|
|
773
|
+
// wire: the list itself, the name-keyed arguments, then the arguments
|
|
774
|
+
// object (directly or wrapped in a `{tool, arguments}` call).
|
|
775
|
+
const o = value;
|
|
776
|
+
const nested = (o.arguments && typeof o.arguments === 'object' ? o.arguments : {});
|
|
777
|
+
const list = Array.isArray(value)
|
|
778
|
+
? value
|
|
779
|
+
: 'suggest_followups' in o
|
|
780
|
+
? namedFollowupList(o.suggest_followups)
|
|
781
|
+
: Array.isArray(o.followups)
|
|
782
|
+
? o.followups
|
|
783
|
+
: nested.followups;
|
|
784
|
+
if (!isFollowupList(list, false))
|
|
785
|
+
return null;
|
|
786
|
+
const entries = list
|
|
787
|
+
.map((f) => {
|
|
788
|
+
const e = f;
|
|
789
|
+
return {
|
|
790
|
+
prompt: typeof e?.prompt === 'string' ? e.prompt : '',
|
|
791
|
+
...(typeof e?.label === 'string' && e.label ? { label: e.label } : {}),
|
|
792
|
+
};
|
|
793
|
+
})
|
|
794
|
+
.filter((e) => e.prompt.trim());
|
|
795
|
+
return entries.length > 0 ? entries : null;
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Cheap pre-check for "could this text carry a tool call written as JSON?".
|
|
799
|
+
*
|
|
800
|
+
* Deliberately shape-agnostic: it matches the canonical `{"tool":…}` opener
|
|
801
|
+
* AND the name-keyed `{"suggest_followups":…}` one. The tool loop's recovery
|
|
802
|
+
* used to gate on the literal `"tool"` substring, so a model that wrote a real
|
|
803
|
+
* call in the name-keyed shape never reached the extractor at all. A gate that
|
|
804
|
+
* only knows one shape is a gate that silently disables the fix for the other.
|
|
805
|
+
*/
|
|
806
|
+
export const TEXTUAL_TOOL_CALL_HINT = /[{[]\s*"(?:tool|suggest_followups)"\s*:/;
|
|
630
807
|
/** A non-empty list of followup entries (`{prompt,label?}` objects, ± strings). */
|
|
631
808
|
function isFollowupList(list, allowStringEntries) {
|
|
632
809
|
if (!Array.isArray(list) || list.length === 0)
|
|
@@ -634,6 +811,20 @@ function isFollowupList(list, allowStringEntries) {
|
|
|
634
811
|
return list.every((f) => (allowStringEntries && typeof f === 'string') ||
|
|
635
812
|
(f !== null && typeof f === 'object' && typeof f.prompt === 'string'));
|
|
636
813
|
}
|
|
814
|
+
/**
|
|
815
|
+
* The exact name-keyed opener — our tool's own NAME as the JSON key.
|
|
816
|
+
* A truncated payload (the model hit a token cap mid-block) is scaffolding too,
|
|
817
|
+
* and it is only safe to strip when the block is BOUNDED by fences, which is
|
|
818
|
+
* what `isTruncatedNamedPayload` is for; the tool loop's own extraction handles
|
|
819
|
+
* the unbounded case before any surface sees the text.
|
|
820
|
+
*/
|
|
821
|
+
const NAMED_PAYLOAD_OPENER = /^\s*\{\s*"suggest_followups"\s*:/;
|
|
822
|
+
/** A fenced body that only BEGINS the name-keyed payload (cut off mid-JSON). */
|
|
823
|
+
function isTruncatedNamedPayload(body) {
|
|
824
|
+
if (!NAMED_PAYLOAD_OPENER.test(body))
|
|
825
|
+
return false;
|
|
826
|
+
return parseJsonLoose(body) === null;
|
|
827
|
+
}
|
|
637
828
|
/** Does the text immediately before a payload end on a tool-name caption? */
|
|
638
829
|
function hasFollowupsCaption(textBefore) {
|
|
639
830
|
return /\*{0,2}\s*suggest[_ ]?follow[_ ]?ups\s*\*{0,2}\s*:?[ \t]*$/i.test(textBefore.replace(/\s+$/, ''));
|
|
@@ -649,6 +840,20 @@ function stripTrailingFollowupsPayload(text) {
|
|
|
649
840
|
const trimmed = text.replace(/\s+$/, '');
|
|
650
841
|
if (!trimmed)
|
|
651
842
|
return text;
|
|
843
|
+
// 0. An UNTERMINATED trailing fence whose body BEGINS with our tool name as
|
|
844
|
+
// the key — the model was cut off mid-payload (token cap) and the fence
|
|
845
|
+
// never closed. Only the exact name-keyed opener qualifies, so a truncated
|
|
846
|
+
// code block the user actually asked for is untouched.
|
|
847
|
+
if (!trimmed.endsWith('```')) {
|
|
848
|
+
const fenceOpen = trimmed.lastIndexOf('```');
|
|
849
|
+
if (fenceOpen >= 0) {
|
|
850
|
+
const afterFence = trimmed.slice(fenceOpen + 3);
|
|
851
|
+
const nl = afterFence.indexOf('\n');
|
|
852
|
+
const body = nl >= 0 ? afterFence.slice(nl + 1) : afterFence.replace(/^[a-zA-Z]*/, '');
|
|
853
|
+
if (isTruncatedNamedPayload(body))
|
|
854
|
+
return stripTrailingFollowupsHeader(trimmed.slice(0, fenceOpen));
|
|
855
|
+
}
|
|
856
|
+
}
|
|
652
857
|
// 1. The LAST fenced block, when it ends the text and its body parses to
|
|
653
858
|
// the payload. (Anchoring on the last block — not the first — keeps an
|
|
654
859
|
// answer+code-block+followups-fence sequence correct.)
|
|
@@ -659,7 +864,8 @@ function stripTrailingFollowupsPayload(text) {
|
|
|
659
864
|
const newline = trimmed.indexOf('\n', opening);
|
|
660
865
|
if (newline >= 0 && newline < closing) {
|
|
661
866
|
const body = trimmed.slice(newline + 1, closing);
|
|
662
|
-
if (isFollowupsPayload(parseJsonLoose(body), hasFollowupsCaption(trimmed.slice(0, opening)))
|
|
867
|
+
if (isFollowupsPayload(parseJsonLoose(body), hasFollowupsCaption(trimmed.slice(0, opening))) ||
|
|
868
|
+
isTruncatedNamedPayload(body)) {
|
|
663
869
|
return stripTrailingFollowupsHeader(trimmed.slice(0, opening));
|
|
664
870
|
}
|
|
665
871
|
}
|
|
@@ -687,11 +893,17 @@ function stripTrailingFollowupsPayload(text) {
|
|
|
687
893
|
* `**suggest_followups**` label and/or the horizontal rule the model tends to
|
|
688
894
|
* put in front of it. Only ever called once a payload WAS removed, so an
|
|
689
895
|
* answer that legitimately ends in `---` on its own is untouched.
|
|
896
|
+
*
|
|
897
|
+
* The separator match tolerates a trailing NEWLINE (`\s*$`, not `[ \t]*$`):
|
|
898
|
+
* the caller slices the text at the payload's opening brace, so a model that
|
|
899
|
+
* wrote `…answer\n\n---\n{payload}` hands this function `…answer\n\n---\n`.
|
|
900
|
+
* Requiring the rule to sit at the very end missed exactly that — the common
|
|
901
|
+
* case — and left a dangling `---` under every cleaned answer.
|
|
690
902
|
*/
|
|
691
|
-
function stripTrailingFollowupsHeader(text) {
|
|
903
|
+
export function stripTrailingFollowupsHeader(text) {
|
|
692
904
|
return text
|
|
693
905
|
.replace(/\n+\s*\*{0,2}\s*suggest[_ ]?follow[_ ]?ups\s*\*{0,2}\s*:?[ \t]*$/i, '')
|
|
694
|
-
.replace(/\n+\s*(?:-{3,}|\*{3,}|_{3,})
|
|
906
|
+
.replace(/\n+\s*(?:-{3,}|\*{3,}|_{3,})\s*$/, '')
|
|
695
907
|
.replace(/\s+$/, '');
|
|
696
908
|
}
|
|
697
909
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-utils.js","sourceRoot":"","sources":["../../src/inference/tool-call-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-call-utils.js","sourceRoot":"","sources":["../../src/inference/tool-call-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,18 @@ export interface WriteAuthorization {
|
|
|
99
99
|
authorized: boolean;
|
|
100
100
|
/** Why — recorded so the judgment is auditable rather than a vibe. */
|
|
101
101
|
reason: string;
|
|
102
|
+
/**
|
|
103
|
+
* The destination path the request NAMED, when it named one (`… at
|
|
104
|
+
* /path/Mahagatha.md`).
|
|
105
|
+
*
|
|
106
|
+
* Carried because "the user asked for a file" and "the user asked for THIS
|
|
107
|
+
* file" are different amounts of information, and the deliverable gate needs
|
|
108
|
+
* the second: telling a model "write the deliverable to disk" is a suggestion,
|
|
109
|
+
* while naming the destination the request itself gave is an instruction it
|
|
110
|
+
* can satisfy. Absent when the request named no path — the caller must not
|
|
111
|
+
* invent one.
|
|
112
|
+
*/
|
|
113
|
+
requestedPath?: string;
|
|
102
114
|
}
|
|
103
115
|
/**
|
|
104
116
|
* Does this request authorize the agent to CREATE files?
|
|
@@ -119,6 +131,22 @@ export interface WriteAuthorization {
|
|
|
119
131
|
* which keeps today's confirm-or-refuse gate exactly as strict as it was.
|
|
120
132
|
*/
|
|
121
133
|
export declare function requestAuthorizesWrites(request: string): WriteAuthorization;
|
|
134
|
+
/**
|
|
135
|
+
* Is this message a plain confirmation of work already proposed ("yes", "go
|
|
136
|
+
* ahead", "do it")? Exported because the intent grant reads it: an affirmative
|
|
137
|
+
* reply to a plan is what turns that plan into an approved envelope.
|
|
138
|
+
*/
|
|
139
|
+
export declare function isAffirmativeReply(request: string): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Pull the destination path out of a request, when it names one.
|
|
142
|
+
*
|
|
143
|
+
* Uses the same pattern the authorization verdict keys on, so "the request
|
|
144
|
+
* names a path" and "here is that path" can never disagree — the failure mode
|
|
145
|
+
* being a gate that refuses for lack of a path while the request visibly
|
|
146
|
+
* contains one. Returns the trimmed match with trailing sentence punctuation
|
|
147
|
+
* removed ("…at /path/x.md." is the file `/path/x.md`).
|
|
148
|
+
*/
|
|
149
|
+
export declare function extractRequestedPath(request: string): string | undefined;
|
|
122
150
|
/**
|
|
123
151
|
* A request that asks for the work to be recorded in git history.
|
|
124
152
|
*
|
|
@@ -173,6 +201,20 @@ export declare function isPermissionSeekingSentence(sentence: string): boolean;
|
|
|
173
201
|
* actual deliverable is narration, not a stall.
|
|
174
202
|
*/
|
|
175
203
|
export declare function detectPermissionSeeking(content: string): boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Does the reply END by asking the reader something?
|
|
206
|
+
*
|
|
207
|
+
* The companion question to {@link detectPermissionSeeking}, and the difference
|
|
208
|
+
* matters for the DELIVERABLE gate: "Do you want me to create the files?" is a
|
|
209
|
+
* stall the agent must decide past, while "Which of these two titles do you
|
|
210
|
+
* prefer?" is a decision input the user asked to be consulted on. Treating them
|
|
211
|
+
* alike would either stall on the first or bulldoze the second.
|
|
212
|
+
*
|
|
213
|
+
* Only the closing is judged (the gate's window is the turn's END), and only a
|
|
214
|
+
* literal question — an answer that merely mentions questions mid-text is
|
|
215
|
+
* finished prose.
|
|
216
|
+
*/
|
|
217
|
+
export declare function replyAsksTheReader(content: string): boolean;
|
|
176
218
|
/**
|
|
177
219
|
* Remove the trailing permission-seeking sentences from an answer, keeping
|
|
178
220
|
* everything before them VERBATIM (deliverables are prose — re-joining split
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomy-policy.d.ts","sourceRoot":"","sources":["../../src/learning/autonomy-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,2CAA2C;AAC3C,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kBAAkB;AAClB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CA6D5E;
|
|
1
|
+
{"version":3,"file":"autonomy-policy.d.ts","sourceRoot":"","sources":["../../src/learning/autonomy-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,7 +109,17 @@ export function decideAutonomously(request) {
|
|
|
109
109
|
* Verbs that mean "produce the artifact", not "tell me about it".
|
|
110
110
|
* Deliberately includes the edit verbs: "add a chapter", "update the README".
|
|
111
111
|
*/
|
|
112
|
-
const
|
|
112
|
+
const CREATE_VERB_BODY = 'set\\s+up|setup|creat|build|writ|mak|generat|develop|implement|scaffold|add|produc|draft|cod|rewrit|refactor|fix|updat|chang|edit|modif|migrat|upgrad|convert|render|export|deploy|install|sav|stor|persist';
|
|
113
|
+
/**
|
|
114
|
+
* Verb ENDINGS, so an inflected verb is the same evidence as its base form.
|
|
115
|
+
*
|
|
116
|
+
* The old regexes anchored on the base form (`\bupdate\b`), so "updating" — the
|
|
117
|
+
* form people actually write — matched NOTHING. The stems above drop the final
|
|
118
|
+
* `e` (`updat`, `chang`, `cod`), which is what makes the -ing/-ed forms work
|
|
119
|
+
* (`updat`+`ing`, `chang`+`ing`, `cod`+`ing`) alongside the base (`updat`+`e`).
|
|
120
|
+
*/
|
|
121
|
+
const VERB_SUFFIX = '(?:e|es|s|d|ed|ing)?';
|
|
122
|
+
const CREATE_VERB_RE = new RegExp(`\\b(?:${CREATE_VERB_BODY})${VERB_SUFFIX}\\b`, 'i');
|
|
113
123
|
/** Nouns that name a FILE-SHAPED deliverable (the thing that lands on disk). */
|
|
114
124
|
const DELIVERABLE_NOUN_RE = /\b(?:file|files|folder|directory|project|repo|repository|app|application|website|site|webpage|web\s?page|page|pages|component|module|class|function|script|program|tool|cli|server|api|endpoint|test|tests|suite|config|document|doc|docs|report|readme|story|book|novel|chapter|chapters|poem|essay|article|post|plan|spec|schema|migration|template|templates|style|styles|asset|assets|manuscript|draft)\b/i;
|
|
115
125
|
/** A path is the strongest signal of all: the user named the destination. */
|
|
@@ -122,7 +132,8 @@ const PATH_RE = /(?:^|[\s"'`(])(?:~|\/|\.{1,2}\/)[\w./-]+/;
|
|
|
122
132
|
* object already says the work is to change what is there. Still vetoed by an
|
|
123
133
|
* analysis opener, so "why is the build failing?" remains a question.
|
|
124
134
|
*/
|
|
125
|
-
const
|
|
135
|
+
const MAINTENANCE_VERB_BODY = 'clean\\s*up|fix|repair|refactor|updat|chang|edit|modif|migrat|upgrad|improv|optimiz|optimis|rewrit|renam|remov|delet|correct|debugg|debug|patch|tweak';
|
|
136
|
+
const MAINTENANCE_VERB_RE = new RegExp(`\\b(?:${MAINTENANCE_VERB_BODY})${VERB_SUFFIX}\\b`, 'i');
|
|
126
137
|
/**
|
|
127
138
|
* An analysis/interrogative opener means the user is asking ABOUT something,
|
|
128
139
|
* not asking for it to be produced: "what files should I create for X?" is a
|
|
@@ -159,33 +170,100 @@ export function requestAuthorizesWrites(request) {
|
|
|
159
170
|
const text = (request || '').trim();
|
|
160
171
|
if (!text)
|
|
161
172
|
return { authorized: false, reason: 'no request text to judge' };
|
|
162
|
-
if (
|
|
173
|
+
if (isAffirmativeReply(text)) {
|
|
163
174
|
return { authorized: true, reason: 'the user confirmed the work already proposed' };
|
|
164
175
|
}
|
|
165
176
|
if (CONTINUATION_RE.test(text)) {
|
|
166
177
|
return { authorized: true, reason: 'the request continues work that was already authorized' };
|
|
167
178
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
179
|
+
// Judge the message CLAUSE BY CLAUSE, never by its opener alone.
|
|
180
|
+
//
|
|
181
|
+
// The old shape vetoed the WHOLE message the moment it began with an analysis
|
|
182
|
+
// word: `if (ANALYSIS_OPENER_RE.test(text)) return { authorized: false }`. A
|
|
183
|
+
// live turn proved how bad that is — the user wrote: "why are you asking me
|
|
184
|
+
// this again and again ? 🤔 Apply a safe expression parser … by updating
|
|
185
|
+
// script.js". The `why` de-authorized the entire turn, which switched OFF the
|
|
186
|
+
// autonomy gates that would have stopped the prompting. A complaint about
|
|
187
|
+
// repeated permission questions therefore INCREASED them. A message can carry
|
|
188
|
+
// a question AND a directive; only a message with no directive clause is a
|
|
189
|
+
// question.
|
|
190
|
+
const namedPath = extractRequestedPath(text);
|
|
191
|
+
let sawQuestion = false;
|
|
192
|
+
for (const clause of splitSentences(text)) {
|
|
193
|
+
if (isQuestionClause(clause)) {
|
|
194
|
+
sawQuestion = true;
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
if (namedPath && CREATE_VERB_RE.test(clause)) {
|
|
198
|
+
return {
|
|
199
|
+
authorized: true,
|
|
200
|
+
reason: 'the request names a destination path for the work',
|
|
201
|
+
requestedPath: namedPath,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
if (CREATE_VERB_RE.test(clause) && DELIVERABLE_NOUN_RE.test(clause)) {
|
|
205
|
+
return { authorized: true, reason: 'the request asks for a file-shaped deliverable' };
|
|
206
|
+
}
|
|
207
|
+
// The noun list names ARTIFACT TYPES (file, app, story, script…), so it misses
|
|
208
|
+
// the most common dev ask there is: "fix the calculator" names no artifact at
|
|
209
|
+
// all, and this verdict came back NOT authorized — which meant the edit gate
|
|
210
|
+
// would still stop to ask for permission to fix the thing the user asked to
|
|
211
|
+
// have fixed. A directive verb is its own evidence: it asks for a change to
|
|
212
|
+
// work that already exists.
|
|
213
|
+
if (MAINTENANCE_VERB_RE.test(clause)) {
|
|
214
|
+
return { authorized: true, reason: 'the request directs a change to work that already exists' };
|
|
215
|
+
}
|
|
171
216
|
}
|
|
172
|
-
if (
|
|
217
|
+
if (sawQuestion) {
|
|
173
218
|
return { authorized: false, reason: 'the request asks ABOUT the work rather than for it to be produced' };
|
|
174
219
|
}
|
|
175
|
-
if (CREATE_VERB_RE.test(text) && DELIVERABLE_NOUN_RE.test(text)) {
|
|
176
|
-
return { authorized: true, reason: 'the request asks for a file-shaped deliverable' };
|
|
177
|
-
}
|
|
178
|
-
// The noun list names ARTIFACT TYPES (file, app, story, script…), so it misses
|
|
179
|
-
// the most common dev ask there is: "fix the calculator" names no artifact at
|
|
180
|
-
// all, and this verdict came back NOT authorized — which meant the edit gate
|
|
181
|
-
// would still stop to ask for permission to fix the thing the user asked to
|
|
182
|
-
// have fixed. A directive verb is its own evidence: it asks for a change to
|
|
183
|
-
// work that already exists.
|
|
184
|
-
if (MAINTENANCE_VERB_RE.test(text)) {
|
|
185
|
-
return { authorized: true, reason: 'the request directs a change to work that already exists' };
|
|
186
|
-
}
|
|
187
220
|
return { authorized: false, reason: 'the request does not ask for files to be created' };
|
|
188
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Is this message a plain confirmation of work already proposed ("yes", "go
|
|
224
|
+
* ahead", "do it")? Exported because the intent grant reads it: an affirmative
|
|
225
|
+
* reply to a plan is what turns that plan into an approved envelope.
|
|
226
|
+
*/
|
|
227
|
+
export function isAffirmativeReply(request) {
|
|
228
|
+
const text = (request || '').trim();
|
|
229
|
+
return text.length <= 40 && SHORT_AFFIRMATIVE_RE.test(text);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Is this CLAUSE asking a question rather than directing work?
|
|
233
|
+
*
|
|
234
|
+
* Deliberately narrower than "ends with a question mark": a polite request is
|
|
235
|
+
* a request ("Can you fix the calculator?", "Could you update the README?" are
|
|
236
|
+
* authorized — the analysis-opener list excludes can/could/would/do for exactly
|
|
237
|
+
* this reason). Only an analysis OPENING is treated as a question, so a
|
|
238
|
+
* directive that happens to be phrased politely keeps its authority.
|
|
239
|
+
*/
|
|
240
|
+
function isQuestionClause(clause) {
|
|
241
|
+
const c = (clause || '').trim();
|
|
242
|
+
if (!c)
|
|
243
|
+
return true;
|
|
244
|
+
return ANALYSIS_OPENER_RE.test(c);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Pull the destination path out of a request, when it names one.
|
|
248
|
+
*
|
|
249
|
+
* Uses the same pattern the authorization verdict keys on, so "the request
|
|
250
|
+
* names a path" and "here is that path" can never disagree — the failure mode
|
|
251
|
+
* being a gate that refuses for lack of a path while the request visibly
|
|
252
|
+
* contains one. Returns the trimmed match with trailing sentence punctuation
|
|
253
|
+
* removed ("…at /path/x.md." is the file `/path/x.md`).
|
|
254
|
+
*/
|
|
255
|
+
export function extractRequestedPath(request) {
|
|
256
|
+
const text = (request || '').trim();
|
|
257
|
+
if (!text)
|
|
258
|
+
return undefined;
|
|
259
|
+
const match = text.match(PATH_RE);
|
|
260
|
+
const raw = match?.[0]?.trim();
|
|
261
|
+
if (!raw)
|
|
262
|
+
return undefined;
|
|
263
|
+
// PATH_RE starts on a boundary character (whitespace/quote/paren); drop it.
|
|
264
|
+
const path = raw.replace(/^[\s"'`(]+/, '').replace(/[.,;:!?)\]]+$/, '').trim();
|
|
265
|
+
return path.length > 0 ? path : undefined;
|
|
266
|
+
}
|
|
189
267
|
/**
|
|
190
268
|
* A request that asks for the work to be recorded in git history.
|
|
191
269
|
*
|
|
@@ -298,6 +376,24 @@ export function detectPermissionSeeking(content) {
|
|
|
298
376
|
return false;
|
|
299
377
|
return splitSentences(text).slice(-2).some(isPermissionSeekingSentence);
|
|
300
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Does the reply END by asking the reader something?
|
|
381
|
+
*
|
|
382
|
+
* The companion question to {@link detectPermissionSeeking}, and the difference
|
|
383
|
+
* matters for the DELIVERABLE gate: "Do you want me to create the files?" is a
|
|
384
|
+
* stall the agent must decide past, while "Which of these two titles do you
|
|
385
|
+
* prefer?" is a decision input the user asked to be consulted on. Treating them
|
|
386
|
+
* alike would either stall on the first or bulldoze the second.
|
|
387
|
+
*
|
|
388
|
+
* Only the closing is judged (the gate's window is the turn's END), and only a
|
|
389
|
+
* literal question — an answer that merely mentions questions mid-text is
|
|
390
|
+
* finished prose.
|
|
391
|
+
*/
|
|
392
|
+
export function replyAsksTheReader(content) {
|
|
393
|
+
const sentences = splitSentences((content || '').trim());
|
|
394
|
+
const last = sentences[sentences.length - 1];
|
|
395
|
+
return Boolean(last && last.trim().endsWith('?'));
|
|
396
|
+
}
|
|
301
397
|
/**
|
|
302
398
|
* Remove the trailing permission-seeking sentences from an answer, keeping
|
|
303
399
|
* everything before them VERBATIM (deliverables are prose — re-joining split
|