agent-nuvira 3.3.1 → 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/README.md +5 -8
- 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 +3 -0
- package/dist/cli/cli-program.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/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/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +74 -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/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/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/learning/autonomy-policy.d.ts +18 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +35 -0
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +1 -1
- 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/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +30 -9
- package/dist/learning/skill-store.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/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/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/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 +21 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +44 -6
- package/dist/tools/registry.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 +80 -2
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +12 -5
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +148 -0
- 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/workflow/registry.js +1 -1
- package/dist/workflow/registry.js.map +1 -1
- package/package.json +5 -4
- package/src/web-dashboard/public/assets/{index-CjvoBhlz.js → index-CxDj7p6i.js} +2 -2
- package/src/web-dashboard/public/assets/{index-CjvoBhlz.js.map → index-CxDj7p6i.js.map} +1 -1
- package/src/web-dashboard/public/index.html +1 -1
|
@@ -31,6 +31,15 @@
|
|
|
31
31
|
* (maskSenderId — phone numbers never echo back in full).
|
|
32
32
|
*/
|
|
33
33
|
import type { ToolContext } from './registry.js';
|
|
34
|
+
/**
|
|
35
|
+
* Does this command ADD a dependency (rather than install what is declared)?
|
|
36
|
+
*
|
|
37
|
+
* This is the line between setup and a supply-chain decision, and it is drawn
|
|
38
|
+
* from the command text alone: `npm install` reads the manifest, `npm install
|
|
39
|
+
* bcrypt` writes to it. A command that cannot be read this way (composed,
|
|
40
|
+
* global) is already excluded from autonomy by the callers' other gates.
|
|
41
|
+
*/
|
|
42
|
+
export declare function addsDependency(command: string): boolean;
|
|
34
43
|
/**
|
|
35
44
|
* Is this a recoverable workspace command the agent may run on its own when the
|
|
36
45
|
* request authorized the work?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-terminal.d.ts","sourceRoot":"","sources":["../../src/tools/run-terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"run-terminal.d.ts","sourceRoot":"","sources":["../../src/tools/run-terminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAyJjD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBvD;AAOD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAetE;AAED,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AA8ClD,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAe7D;AAED,iFAAiF;AAEjF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkF9F"}
|
|
@@ -110,10 +110,22 @@ const VERIFY_PREFIXES = [
|
|
|
110
110
|
* - anything fetched and executed (`curl … | bash`);
|
|
111
111
|
* - publishing, deploying, pushing (denied outright anyway);
|
|
112
112
|
* - arbitrary code (`node -e`, `python -c`) and unknown commands — the
|
|
113
|
-
* deny-first default is unchanged, so this list is the ONLY new autonomy
|
|
113
|
+
* deny-first default is unchanged, so this list is the ONLY new autonomy;
|
|
114
|
+
* - **a command that ADDS a dependency** (`npm install bcrypt`, `yarn add x`,
|
|
115
|
+
* `cargo add y`) — see {@link addsDependency}.
|
|
116
|
+
*
|
|
117
|
+
* That last carve-out is the fix for a live incident: `bcrypt@^6.0.0` and
|
|
118
|
+
* `express-jwt@^8.5.1` appeared in this repo's `package.json` and
|
|
119
|
+
* `package-lock.json` mid-release, during a run in which the release pipeline
|
|
120
|
+
* was between its commit and its publish phase — one `git add -A` from being
|
|
121
|
+
* committed and published, with no code referencing either package. A
|
|
122
|
+
* dependency is not a build step: "install what the manifest declares" is
|
|
123
|
+
* setup (recoverable), while "declare a new dependency" is a supply-chain
|
|
124
|
+
* decision, and that is a human's to make.
|
|
114
125
|
*/
|
|
115
126
|
const RECOVERABLE_PREFIXES = [
|
|
116
|
-
// Dependency lifecycle — the requested build's own setup.
|
|
127
|
+
// Dependency lifecycle — the requested build's own setup. The ADD forms are
|
|
128
|
+
// filtered out by `addsDependency` (a new dependency is a decision).
|
|
117
129
|
'npm install', 'npm i', 'npm ci', 'npm add', 'npm init',
|
|
118
130
|
'pnpm install', 'pnpm i', 'pnpm add',
|
|
119
131
|
'yarn install', 'yarn add',
|
|
@@ -133,6 +145,67 @@ const RECOVERABLE_PREFIXES = [
|
|
|
133
145
|
* an install.
|
|
134
146
|
*/
|
|
135
147
|
const COMPOSED_COMMAND_RE = /[;&|<>`]|\$\(/;
|
|
148
|
+
/**
|
|
149
|
+
* Package managers whose `<cmd> <pkg>` form WRITES a new dependency into a
|
|
150
|
+
* manifest or lockfile. These always add, whatever the arguments look like.
|
|
151
|
+
* (`npm ci` is absent on purpose: it installs the lockfile and accepts no
|
|
152
|
+
* package arguments, so an argument passed to it is already out of contract —
|
|
153
|
+
* it is handled by the generic rule below.)
|
|
154
|
+
*/
|
|
155
|
+
const ADD_COMMAND_PREFIXES = [
|
|
156
|
+
// Only the forms that REQUIRE a package name. `npm i` is an alias of
|
|
157
|
+
// `npm install` and is handled by the argument check below, so the bare
|
|
158
|
+
// `npm i` (setup) stays recoverable while `npm i bcrypt` does not.
|
|
159
|
+
'npm add', 'yarn add', 'pnpm add', 'bun add',
|
|
160
|
+
'cargo add', 'go get', 'composer require', 'poetry add', 'uv add',
|
|
161
|
+
];
|
|
162
|
+
/**
|
|
163
|
+
* Installers that are RECOVERABLE when they read a manifest and become an ADD
|
|
164
|
+
* when they name a package (`npm install bcrypt`).
|
|
165
|
+
*/
|
|
166
|
+
const INSTALL_COMMAND_PREFIXES = [
|
|
167
|
+
'npm install', 'npm i', 'npm ci', 'pnpm install', 'pnpm i',
|
|
168
|
+
'yarn install', 'bun install',
|
|
169
|
+
'pip install', 'pip3 install', 'python -m pip install', 'uv pip install',
|
|
170
|
+
'poetry install',
|
|
171
|
+
];
|
|
172
|
+
/** Flags whose VALUE is the declared set (a requirements file, a local path). */
|
|
173
|
+
const DECLARED_INSTALL_FLAGS = new Set(['-r', '--requirement', '-e', '--editable']);
|
|
174
|
+
/** Bare arguments that mean "install what is already declared", not "install this". */
|
|
175
|
+
const DECLARED_INSTALL_ARGS = new Set(['.', '-d', '--dev']);
|
|
176
|
+
/**
|
|
177
|
+
* Does this command ADD a dependency (rather than install what is declared)?
|
|
178
|
+
*
|
|
179
|
+
* This is the line between setup and a supply-chain decision, and it is drawn
|
|
180
|
+
* from the command text alone: `npm install` reads the manifest, `npm install
|
|
181
|
+
* bcrypt` writes to it. A command that cannot be read this way (composed,
|
|
182
|
+
* global) is already excluded from autonomy by the callers' other gates.
|
|
183
|
+
*/
|
|
184
|
+
export function addsDependency(command) {
|
|
185
|
+
const lower = normalize(command).toLowerCase();
|
|
186
|
+
if (!lower)
|
|
187
|
+
return false;
|
|
188
|
+
const hasPrefix = (prefixes) => {
|
|
189
|
+
const toks = leadingTokens(lower, 2);
|
|
190
|
+
return prefixes.some((p) => {
|
|
191
|
+
const pt = p.split(' ');
|
|
192
|
+
return pt.length <= toks.length && toks.slice(0, pt.length).join(' ') === p;
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
if (hasPrefix(ADD_COMMAND_PREFIXES))
|
|
196
|
+
return true;
|
|
197
|
+
if (!hasPrefix(INSTALL_COMMAND_PREFIXES))
|
|
198
|
+
return false;
|
|
199
|
+
// Reached only for an install form: decide from its arguments.
|
|
200
|
+
const rest = lower.split(' ').slice(2);
|
|
201
|
+
// `-r requirements.txt` / `-e .` ARE the declared set — the file/list that
|
|
202
|
+
// follows the flag is not a package name, so the flag itself settles it.
|
|
203
|
+
if (rest.some((a) => DECLARED_INSTALL_FLAGS.has(a)))
|
|
204
|
+
return false;
|
|
205
|
+
// Otherwise an installer WITH a package argument declares that package.
|
|
206
|
+
const args = rest.filter((a) => !a.startsWith('-'));
|
|
207
|
+
return args.some((arg) => !DECLARED_INSTALL_ARGS.has(arg));
|
|
208
|
+
}
|
|
136
209
|
/** A global install mutates the machine, not the repo — never recoverable. */
|
|
137
210
|
const GLOBAL_INSTALL_RE = /(?:^|\s)(?:-g|--global)(?:\s|$)/;
|
|
138
211
|
/**
|
|
@@ -147,6 +220,11 @@ export function isRecoverableWorkspaceCommand(command) {
|
|
|
147
220
|
return false;
|
|
148
221
|
if (GLOBAL_INSTALL_RE.test(lower))
|
|
149
222
|
return false;
|
|
223
|
+
// Declaring a NEW dependency is a human decision, not a build step (see the
|
|
224
|
+
// docstring above and `addsDependency`). The bare install forms stay
|
|
225
|
+
// recoverable: they introduce nothing the manifest did not already declare.
|
|
226
|
+
if (addsDependency(lower))
|
|
227
|
+
return false;
|
|
150
228
|
const toks = leadingTokens(lower, 3);
|
|
151
229
|
return RECOVERABLE_PREFIXES.some((prefix) => {
|
|
152
230
|
const pt = prefix.split(' ');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-terminal.js","sourceRoot":"","sources":["../../src/tools/run-terminal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-terminal.js","sourceRoot":"","sources":["../../src/tools/run-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ import type { TraceEvent, TraceGateName } from '../learning/reasoning-trace.js';
|
|
|
31
31
|
*/
|
|
32
32
|
export type LoopTraceEvent = Omit<TraceEvent, 'seq' | 'timestamp'>;
|
|
33
33
|
import type { ToolMessage } from '../inference/interface.js';
|
|
34
|
+
import type { ServedRoute } from '../inference/route-resolver.js';
|
|
34
35
|
export { type ToolMessage };
|
|
35
36
|
/**
|
|
36
37
|
* The P3c fallback hint for a failed tool call — appended to the error text
|
|
@@ -172,6 +173,17 @@ export interface ToolLoopOptions {
|
|
|
172
173
|
/** ToolContext for executions (configManager, followups sink, board, ...). */
|
|
173
174
|
context: ToolContext;
|
|
174
175
|
deps: ToolLoopDeps;
|
|
176
|
+
/**
|
|
177
|
+
* The route that is ACTUALLY serving this turn, read before every model call.
|
|
178
|
+
*
|
|
179
|
+
* The loop re-reads it each step so a mid-turn failover cannot leave the model
|
|
180
|
+
* believing it is still the model it started on — the cheap alternative (state
|
|
181
|
+
* the route once, in the system prompt) is a fact that decays. Returning `null`
|
|
182
|
+
* injects nothing: a caller that does not know the route must not be "helped"
|
|
183
|
+
* by a guess. See `src/tools/loop-route-feed.ts` for why the model is told at
|
|
184
|
+
* all.
|
|
185
|
+
*/
|
|
186
|
+
servedRoute?: () => ServedRoute | null;
|
|
175
187
|
/**
|
|
176
188
|
* P4 — stream content tokens as the model generates them (typewriter for
|
|
177
189
|
* the dashboard's final answer). Passed to every callModel; providers that
|
|
@@ -413,11 +425,6 @@ export declare function detectUnverifiedDeliveryClaim(content: string, toolsRun:
|
|
|
413
425
|
* summarise) are excluded.
|
|
414
426
|
*/
|
|
415
427
|
export declare function detectUnfulfilledIntentPromise(content: string): boolean;
|
|
416
|
-
/**
|
|
417
|
-
* Public entry point. Runs the loop, then annotates the result with the
|
|
418
|
-
* honest-answer flags so every surface (CLI, dashboard, gateway, trace) can
|
|
419
|
-
* distinguish "generated a reply" from "actually performed the action".
|
|
420
|
-
*/
|
|
421
428
|
export declare function runToolLoop(opts: ToolLoopOptions): Promise<ToolLoopResult>;
|
|
422
429
|
/**
|
|
423
430
|
* Classify a DECLINED call's result text (G18).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-loop.d.ts","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA4B,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAgBhG,OAAO,EAKL,QAAQ,EACR,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;
|
|
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
|
@@ -23,7 +23,50 @@ import { wantsAuthoredArtifact } from '../learning/deliverable-class.js';
|
|
|
23
23
|
import { normalizeFollowups } from './followup-utils.js';
|
|
24
24
|
import { assessEditActivity, detectUnverifiedEditClaim, isVerificationTool, verificationNudgeFor, THINK_ONLY_ESCALATION, AUTHORIZED_WORK_NUDGE, deliverableNudge, } from './edit-verification.js';
|
|
25
25
|
import { effectiveToolJsonSchemas, coreToolJsonSchemas, isToolEnabled, toolsetForTool } from './toolsets.js';
|
|
26
|
+
import { deliverablesNamedIn, recordStepHandoff } from '../agents/step-handoff.js';
|
|
27
|
+
/**
|
|
28
|
+
* Tools that MUTATE the workspace. A refusal of one of these is the only
|
|
29
|
+
* refusal that leaves work undone — a declined `read_file` costs a step, a
|
|
30
|
+
* declined `write_file` means the deliverable was never produced.
|
|
31
|
+
*/
|
|
32
|
+
const MUTATING_TOOL_NAMES = new Set([
|
|
33
|
+
'write_file',
|
|
34
|
+
'edit_file',
|
|
35
|
+
'propose_change',
|
|
36
|
+
'run_terminal',
|
|
37
|
+
'run_cli',
|
|
38
|
+
]);
|
|
39
|
+
/** The path a mutating call was aimed at, when it named one. */
|
|
40
|
+
function mutatedPathOf(args) {
|
|
41
|
+
const a = args;
|
|
42
|
+
const p = a?.path ?? a?.file_path ?? a?.file;
|
|
43
|
+
return typeof p === 'string' && p.trim() ? p.trim() : undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The ask this turn is answering — the text a hand-off is keyed against.
|
|
47
|
+
* `authorizationRequest` is the loop's own record of the last user message;
|
|
48
|
+
* the thread scan is the fallback for callers that do not set it (tests, direct
|
|
49
|
+
* invocations). Injected blocks (`[Project context]`, the route feed) are
|
|
50
|
+
* skipped: they are the loop's own additions, not the user's words.
|
|
51
|
+
*/
|
|
52
|
+
function currentAsk(opts) {
|
|
53
|
+
const recorded = opts.context?.authorizationRequest?.trim();
|
|
54
|
+
if (recorded)
|
|
55
|
+
return recorded.slice(0, 600);
|
|
56
|
+
const messages = opts.messages ?? [];
|
|
57
|
+
for (let i = messages.length - 1; i >= 0; i -= 1) {
|
|
58
|
+
const m = messages[i];
|
|
59
|
+
if (m.role !== 'user')
|
|
60
|
+
continue;
|
|
61
|
+
const text = (m.content ?? '').trim();
|
|
62
|
+
if (!text || text.startsWith('['))
|
|
63
|
+
continue;
|
|
64
|
+
return text.slice(0, 600);
|
|
65
|
+
}
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
26
68
|
import { appendToolArtifact } from './artifact-append.js';
|
|
69
|
+
import { ROUTE_FEED_MARKER, isUnresolvedModel, routeFeedFingerprint, routeFeedText } from './loop-route-feed.js';
|
|
27
70
|
import { logger } from '../utils/logger.js';
|
|
28
71
|
import { toUserFacingGenerationError, TEXTUAL_TOOL_CALL_HINT, isTextualFollowupsPayload, followupEntriesFromPayload, stripTrailingFollowupsHeader, } from '../inference/tool-call-utils.js';
|
|
29
72
|
// ─── P3c — tool-fallback hints (switch tools when one fails) ────────────────
|
|
@@ -519,6 +562,8 @@ async function runToolLoopInner(opts, progress) {
|
|
|
519
562
|
return added;
|
|
520
563
|
};
|
|
521
564
|
const thread = [...messages];
|
|
565
|
+
/** Serving pairs the loop has already told the model about, oldest first. */
|
|
566
|
+
const routeFeedState = { pairs: [] };
|
|
522
567
|
// ── Stage 2: answer a question ABOUT the run from the run ────────────────
|
|
523
568
|
// The live audit's worst moment was the user asking "why are you asking me
|
|
524
569
|
// this again and again?" and the turn replying with an edit plan — not through
|
|
@@ -584,6 +629,12 @@ async function runToolLoopInner(opts, progress) {
|
|
|
584
629
|
deps.onEvent?.(` ✂️ ${trimmedResult.trimmed} old tool result(s) trimmed to fit the ${Math.round(budgetChars / 1000)}K-char context budget.`);
|
|
585
630
|
}
|
|
586
631
|
}
|
|
632
|
+
// ── The route feed, re-synced before every call ────────────────────────
|
|
633
|
+
// Placed here rather than at thread construction because THIS is the last
|
|
634
|
+
// point before the call: a failover during step N must be visible at step
|
|
635
|
+
// N+1, and a single up-front line would have the model answering about a
|
|
636
|
+
// model that has since stopped serving it.
|
|
637
|
+
syncRouteFeed(thread, opts.servedRoute, routeFeedState);
|
|
587
638
|
let response;
|
|
588
639
|
try {
|
|
589
640
|
response = await deps.callModel(thread, schemas, opts.onToken, opts.signal);
|
|
@@ -1146,6 +1197,40 @@ async function runToolLoopInner(opts, progress) {
|
|
|
1146
1197
|
// can see "blocked twice, identically" instead of rediscovering it — and
|
|
1147
1198
|
// so the repetition gate has a refusal signal as well as an ask signal.
|
|
1148
1199
|
runTrace.recordRefusal(call.name, refusal?.gate ?? 'error', rawResult);
|
|
1200
|
+
// ── DURABLE HAND-OFF ────────────────────────────────────────────────
|
|
1201
|
+
// A refused MUTATION is the one failure that must outlive the turn.
|
|
1202
|
+
// The live NVDA-addon failure is exactly this: `write_file` was refused
|
|
1203
|
+
// on every attempt because the target was outside the workspace, and
|
|
1204
|
+
// each of the 18 following attempts rediscovered it from zero — same
|
|
1205
|
+
// plan, same refusal, same empty package. Recording it here means the
|
|
1206
|
+
// next candidate, the next turn and the next RUN are told which path
|
|
1207
|
+
// could not be written and WHY, so they change approach instead of
|
|
1208
|
+
// repeating the identical call (see step-handoff.ts).
|
|
1209
|
+
//
|
|
1210
|
+
// Best-effort: a hand-off write must never break the loop.
|
|
1211
|
+
if (refusal !== null && MUTATING_TOOL_NAMES.has(call.name)) {
|
|
1212
|
+
try {
|
|
1213
|
+
const ask = currentAsk(opts);
|
|
1214
|
+
const aimedAt = mutatedPathOf(call.arguments);
|
|
1215
|
+
// Key on the deliverable the ASK names when there is one, so the
|
|
1216
|
+
// same work asked for in different words resumes the same hand-off.
|
|
1217
|
+
const named = deliverablesNamedIn(ask);
|
|
1218
|
+
recordStepHandoff({
|
|
1219
|
+
projectPath: opts.context?.cwd || process.cwd(),
|
|
1220
|
+
goal: ask,
|
|
1221
|
+
stepDescription: aimedAt
|
|
1222
|
+
? `${call.name} → ${aimedAt} (refused: ${refusal.gate ?? 'gate'})`
|
|
1223
|
+
: `${call.name} (refused: ${refusal.gate ?? 'gate'})`,
|
|
1224
|
+
declared: named.length > 0 ? named : aimedAt ? [aimedAt] : [],
|
|
1225
|
+
route: 'loop',
|
|
1226
|
+
kind: 'refused',
|
|
1227
|
+
reason: `${refusal.summary}${aimedAt ? ` — path: ${aimedAt}` : ''}`,
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
catch {
|
|
1231
|
+
// Best-effort — a hand-off write must never break the loop.
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1149
1234
|
}
|
|
1150
1235
|
let resultText = executed[i];
|
|
1151
1236
|
// P3c — on error/denial, append the deterministic fallback hint for
|
|
@@ -1444,6 +1529,69 @@ export function detectUnfulfilledIntentPromise(content) {
|
|
|
1444
1529
|
* honest-answer flags so every surface (CLI, dashboard, gateway, trace) can
|
|
1445
1530
|
* distinguish "generated a reply" from "actually performed the action".
|
|
1446
1531
|
*/
|
|
1532
|
+
/**
|
|
1533
|
+
* Keep ONE route frame in the thread, current with what is serving the turn.
|
|
1534
|
+
*
|
|
1535
|
+
* Insert/replace is deliberate: appending a frame per step would pile up stale
|
|
1536
|
+
* route claims the model can quote back ("I am gemini-2.5-flash" — from step 1,
|
|
1537
|
+
* after a failover), and rewriting unconditionally would churn the thread (and
|
|
1538
|
+
* the thread budget) on every step for no change in content.
|
|
1539
|
+
*
|
|
1540
|
+
* A caller with no route supplies nothing; a caller whose route resolves to the
|
|
1541
|
+
* same fact as last step gets no write.
|
|
1542
|
+
*/
|
|
1543
|
+
function syncRouteFeed(thread, read, observed) {
|
|
1544
|
+
if (!read)
|
|
1545
|
+
return;
|
|
1546
|
+
let route = null;
|
|
1547
|
+
try {
|
|
1548
|
+
route = read();
|
|
1549
|
+
}
|
|
1550
|
+
catch {
|
|
1551
|
+
// A route read must never break the turn; an unknown route is a fact too.
|
|
1552
|
+
return;
|
|
1553
|
+
}
|
|
1554
|
+
if (!route)
|
|
1555
|
+
return;
|
|
1556
|
+
// The loop OWNS the failover history, because the loop is the only thing that
|
|
1557
|
+
// sees the sequence of routes it told the model about. Requiring each caller
|
|
1558
|
+
// to track it means every future caller can silently forget, and a model told
|
|
1559
|
+
// only the current pair describes the whole turn as having been run by it —
|
|
1560
|
+
// the same fabricated answer, one layer down.
|
|
1561
|
+
const currentPair = isUnresolvedModel(route.model) ? '' : `${route.providerType}/${route.model}`;
|
|
1562
|
+
const previous = [...(route.previous ?? [])];
|
|
1563
|
+
for (const pair of observed.pairs) {
|
|
1564
|
+
if (pair !== currentPair && !previous.includes(pair))
|
|
1565
|
+
previous.push(pair);
|
|
1566
|
+
}
|
|
1567
|
+
const rendered = previous.length > 0 ? { ...route, previous } : route;
|
|
1568
|
+
const fingerprint = routeFeedFingerprint(rendered);
|
|
1569
|
+
const index = thread.findIndex((m) => m.role === 'system' && typeof m.content === 'string' && m.content.startsWith(ROUTE_FEED_MARKER));
|
|
1570
|
+
if (currentPair && !observed.pairs.includes(currentPair))
|
|
1571
|
+
observed.pairs.push(currentPair);
|
|
1572
|
+
if (index === -1) {
|
|
1573
|
+
const frame = { role: 'system', content: routeFeedText(rendered) };
|
|
1574
|
+
// Immediately after the leading system prompt when there is one — the route
|
|
1575
|
+
// belongs with the run's own framing, not buried under tool output.
|
|
1576
|
+
const insertAt = thread.length > 0 && thread[0].role === 'system' ? 1 : 0;
|
|
1577
|
+
thread.splice(insertAt, 0, frame);
|
|
1578
|
+
routeFeedFingerprints.set(frame, fingerprint);
|
|
1579
|
+
return;
|
|
1580
|
+
}
|
|
1581
|
+
const existing = thread[index];
|
|
1582
|
+
if (routeFeedFingerprints.get(existing) === fingerprint)
|
|
1583
|
+
return;
|
|
1584
|
+
const updated = { role: 'system', content: routeFeedText(rendered) };
|
|
1585
|
+
thread[index] = updated;
|
|
1586
|
+
routeFeedFingerprints.delete(existing);
|
|
1587
|
+
routeFeedFingerprints.set(updated, fingerprint);
|
|
1588
|
+
}
|
|
1589
|
+
/**
|
|
1590
|
+
* Fingerprint per frame object, so a thread that was trimmed and re-built does
|
|
1591
|
+
* not re-write identical content. A WeakMap: a frame the loop drops is garbage
|
|
1592
|
+
* the moment nothing references it.
|
|
1593
|
+
*/
|
|
1594
|
+
const routeFeedFingerprints = new WeakMap();
|
|
1447
1595
|
export async function runToolLoop(opts) {
|
|
1448
1596
|
const progress = {
|
|
1449
1597
|
successfulToolCalls: [],
|