@sensigo/realm-cli 0.33.0 → 0.35.0
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/agent/gate/gate-expiry-timer.d.ts +19 -0
- package/dist/agent/gate/gate-expiry-timer.d.ts.map +1 -0
- package/dist/agent/gate/gate-expiry-timer.js +83 -0
- package/dist/agent/gate/gate-expiry-timer.js.map +1 -0
- package/dist/agent/gate/slack-gate-notifier.d.ts +24 -2
- package/dist/agent/gate/slack-gate-notifier.d.ts.map +1 -1
- package/dist/agent/gate/slack-gate-notifier.js +101 -8
- package/dist/agent/gate/slack-gate-notifier.js.map +1 -1
- package/dist/agent/mcp/mcp-extensions.d.ts +8 -1
- package/dist/agent/mcp/mcp-extensions.d.ts.map +1 -1
- package/dist/agent/providers/anthropic-provider.d.ts +31 -0
- package/dist/agent/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/agent/providers/anthropic-provider.js +169 -25
- package/dist/agent/providers/anthropic-provider.js.map +1 -1
- package/dist/agent/providers/llm-provider.d.ts +17 -0
- package/dist/agent/providers/llm-provider.d.ts.map +1 -1
- package/dist/agent/providers/llm-provider.js +16 -0
- package/dist/agent/providers/llm-provider.js.map +1 -1
- package/dist/agent/run-agent.d.ts.map +1 -1
- package/dist/agent/run-agent.js +141 -4
- package/dist/agent/run-agent.js.map +1 -1
- package/dist/commands/abandon.d.ts.map +1 -1
- package/dist/commands/abandon.js +4 -1
- package/dist/commands/abandon.js.map +1 -1
- package/dist/commands/drain.d.ts +24 -0
- package/dist/commands/drain.d.ts.map +1 -1
- package/dist/commands/drain.js +152 -12
- package/dist/commands/drain.js.map +1 -1
- package/dist/commands/gc.d.ts +67 -6
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +280 -86
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +26 -1
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +40 -3
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/listen.d.ts +32 -2
- package/dist/commands/listen.d.ts.map +1 -1
- package/dist/commands/listen.js +100 -0
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/reclaim.d.ts.map +1 -1
- package/dist/commands/reclaim.js +8 -0
- package/dist/commands/reclaim.js.map +1 -1
- package/dist/commands/resume.d.ts.map +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +17 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +72 -2
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/store/replay-store.d.ts.map +1 -1
- package/dist/store/replay-store.js +1 -2
- package/dist/store/replay-store.js.map +1 -1
- package/package.json +7 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// anthropic-provider.ts — Anthropic LLM provider implementation for realm agent.
|
|
2
2
|
// Requires @anthropic-ai/sdk >= 0.20.0 as an optional peer dependency (npm install @anthropic-ai/sdk).
|
|
3
|
-
import { WorkflowError, validateAgentSubmission } from '@sensigo/realm';
|
|
3
|
+
import { WorkflowError, validateAgentSubmission, } from '@sensigo/realm';
|
|
4
4
|
import { ToolCapableLlmProvider } from './llm-provider.js';
|
|
5
5
|
import { sanitizeError, serializeToolResult, parseNamespacedId, extractJsonObject, rejectAfter, buildSystemPrompt, summarizeAgentValidationErrors, renderValidationSummaryEntry, } from './agent-utils.js';
|
|
6
6
|
/** The tool offered at `tool_choice:'auto'` so the model can return structured output directly —
|
|
@@ -10,24 +10,123 @@ import { sanitizeError, serializeToolResult, parseNamespacedId, extractJsonObjec
|
|
|
10
10
|
* decision in prompts/robust-anthropic-provider.md). Not pushed into tool_call_records anywhere it's
|
|
11
11
|
* used — it's an extraction mechanism, not an agent-chosen tool. */
|
|
12
12
|
const SUBMIT_TOOL_NAME = '__realm_submit__';
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Issue #236: `strict` is a NEW sanctioned option, threaded from run-agent through both call
|
|
15
|
+
* sites of this builder (the main `callStep`/`callStepWithMeta` call AND `performFinalExtraction`
|
|
16
|
+
* — design §4 [CG]). Default absent = today's behavior byte-identical: the key is only ever
|
|
17
|
+
* added to the returned object when the caller explicitly opts in.
|
|
18
|
+
*/
|
|
19
|
+
function buildSubmitTool(schema, opts) {
|
|
14
20
|
return {
|
|
15
21
|
name: SUBMIT_TOOL_NAME,
|
|
16
22
|
description: 'Return your final result for this step as structured data.',
|
|
17
23
|
input_schema: schema,
|
|
24
|
+
...(opts?.strict === true ? { strict: true } : {}),
|
|
18
25
|
};
|
|
19
26
|
}
|
|
20
27
|
/**
|
|
21
28
|
* Returns the maximum output tokens for the given Anthropic model.
|
|
22
29
|
* The Anthropic Messages API requires max_tokens — this must always produce a valid value.
|
|
23
30
|
* Source: https://docs.anthropic.com/en/docs/about-claude/models/all-models
|
|
31
|
+
*
|
|
32
|
+
* Issue #309 fix (ratified per design-d4-final.md's ADDENDUM, the audit's 3.5-cap correction):
|
|
33
|
+
* the PRE-#309 regex (`claude-(3[-.]5|[a-z]+-4)`) was stale in a dangerous direction — it gave
|
|
34
|
+
* the claude-3.5 family's OWN hard output cap (8192; 16384 would 400 every call) to EVERY 4.x
|
|
35
|
+
* model too (claude-sonnet-4-5, claude-opus-4-1, …), silently under-budgeting them. Three
|
|
36
|
+
* buckets now, ordered most-specific-first:
|
|
37
|
+
* 1. claude-3.5 family (`claude-3-5-*` / `claude-3.5-*`) ⇒ 8192 — its OWN hard cap.
|
|
38
|
+
* 2. Bare legacy claude-3 generation (claude-3-opus/-sonnet/-haiku, NOT 3.5) ⇒ 4096 — original,
|
|
39
|
+
* unchanged fallback.
|
|
40
|
+
* 3. Everything else — 3.7, every 4.x/5.x model, and any UNKNOWN future model id — ⇒ 16384.
|
|
41
|
+
* Fail-forward (the stale-classifier lesson, #312 is the durable fix: an unrecognized model
|
|
42
|
+
* id is treated as AT LEAST as capable as today's models, never less; 16384 is
|
|
43
|
+
* non-streaming-safe and current models think by default, so 4096 would starve
|
|
44
|
+
* thinking+output on anything not explicitly bucketed above).
|
|
24
45
|
*/
|
|
25
46
|
function resolveMaxTokens(model) {
|
|
26
|
-
|
|
27
|
-
// Matches: claude-3-5-*, claude-3.5-*, claude-<name>-4-*, etc.
|
|
28
|
-
if (/claude-(3[-.]5|[a-z]+-4)/i.test(model))
|
|
47
|
+
if (/claude-3[-.]5/i.test(model))
|
|
29
48
|
return 8192;
|
|
30
|
-
|
|
49
|
+
if (/claude-3-(opus|sonnet|haiku)(-|$)/i.test(model))
|
|
50
|
+
return 4096;
|
|
51
|
+
return 16384;
|
|
52
|
+
}
|
|
53
|
+
// ---------------------------------------------------------------------------------------------
|
|
54
|
+
// issue #236 — the fallback ladder. Any 400/503 on a request that carried `strict: true` drops
|
|
55
|
+
// strict, discloses, and retries ONCE; any other status propagates untouched (the arm keys on
|
|
56
|
+
// HTTP status ∧ strict-sent, NEVER on message text — design §4 [Rv5]).
|
|
57
|
+
// ---------------------------------------------------------------------------------------------
|
|
58
|
+
/** The captured grammar-compilation-unavailable text (premise-probe-raw.md's own canonical mock
|
|
59
|
+
* — the label match keys on THIS string only, never a broader "any 503" heuristic). A stale/
|
|
60
|
+
* non-matching message degrades to the generic `service_unavailable` label (fail-safe). */
|
|
61
|
+
const GRAMMAR_UNAVAILABLE_TEXT = 'Grammar compilation is temporarily unavailable';
|
|
62
|
+
/** Duck-typed extraction — the `@anthropic-ai/sdk` package is a consumer-supplied peer dependency
|
|
63
|
+
* (absent from this repo and CI), so its real error class can never be imported/instanceof-
|
|
64
|
+
* checked here. `.status`/`.message` are the SDK's own long-stable public `APIError` contract. */
|
|
65
|
+
function extractHttpStatus(err) {
|
|
66
|
+
if (typeof err === 'object' && err !== null && 'status' in err) {
|
|
67
|
+
const status = err.status;
|
|
68
|
+
if (typeof status === 'number')
|
|
69
|
+
return status;
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
function extractErrorMessage(err) {
|
|
74
|
+
return err instanceof Error ? err.message : String(err);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Thrown when the ladder's OWN drop-strict retry ALSO fails — design §4 [R2-7]: (a) carries the
|
|
78
|
+
* `structuredOutput` meta so a catch site can still disclose the downgrade even though no result
|
|
79
|
+
* was ever produced (run-agent's sticky map is armed from this on failure paths too), (b) sets
|
|
80
|
+
* the ORIGINAL (retry) error as `cause`, (c) adopts that error's own message verbatim — run-agent
|
|
81
|
+
* prints `err.message` directly at its two LLM-call catch sites, so this must describe what
|
|
82
|
+
* ACTUALLY failed (the retry's real error), never a generic wrapper string.
|
|
83
|
+
*/
|
|
84
|
+
export class StructuredOutputLadderError extends Error {
|
|
85
|
+
structuredOutput;
|
|
86
|
+
constructor(message, structuredOutput, options) {
|
|
87
|
+
super(message, options);
|
|
88
|
+
this.name = 'StructuredOutputLadderError';
|
|
89
|
+
this.structuredOutput = structuredOutput;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Wraps ONE `client.messages.create` call with the strict fallback ladder. `buildOpts(strict)`
|
|
94
|
+
* must build the FULL request options for that boolean — called fresh on every attempt so a
|
|
95
|
+
* downgrade takes effect immediately. Non-strict calls (state.strict already false, OR strict was
|
|
96
|
+
* never requested for this invocation) pass straight through with no ladder engagement at all —
|
|
97
|
+
* byte-identical to pre-#236 behavior.
|
|
98
|
+
*/
|
|
99
|
+
async function createMessageWithLadder(
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
|
+
client, buildOpts, state) {
|
|
102
|
+
if (!state.strict) {
|
|
103
|
+
return client.messages.create(buildOpts(false));
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const response = await client.messages.create(buildOpts(true));
|
|
107
|
+
state.meta = { requested: true, sent: true };
|
|
108
|
+
return response;
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
const status = extractHttpStatus(err);
|
|
112
|
+
if (status !== 400 && status !== 503)
|
|
113
|
+
throw err; // unrelated failure — never engage the ladder
|
|
114
|
+
const api_message = extractErrorMessage(err);
|
|
115
|
+
const downgrade_reason = status === 400
|
|
116
|
+
? 'api_rejected_schema'
|
|
117
|
+
: api_message.includes(GRAMMAR_UNAVAILABLE_TEXT)
|
|
118
|
+
? 'grammar_unavailable'
|
|
119
|
+
: 'service_unavailable';
|
|
120
|
+
state.strict = false; // sticky for the rest of THIS invocation
|
|
121
|
+
try {
|
|
122
|
+
const response = await client.messages.create(buildOpts(false));
|
|
123
|
+
state.meta = { requested: true, sent: false, downgrade_reason, api_message };
|
|
124
|
+
return response;
|
|
125
|
+
}
|
|
126
|
+
catch (retryErr) {
|
|
127
|
+
throw new StructuredOutputLadderError(extractErrorMessage(retryErr), { requested: true, sent: false, downgrade_reason, api_message }, { cause: retryErr });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
31
130
|
}
|
|
32
131
|
/**
|
|
33
132
|
* Anthropic LLM provider for realm agent.
|
|
@@ -40,7 +139,8 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
40
139
|
super();
|
|
41
140
|
this.model = model;
|
|
42
141
|
}
|
|
43
|
-
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
|
+
async getClient() {
|
|
44
144
|
// Dynamically import @anthropic-ai/sdk to keep it an optional peer dependency.
|
|
45
145
|
// See openai-provider.ts for an explanation of the 'string' cast technique.
|
|
46
146
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -54,30 +154,47 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
54
154
|
process.exit(1);
|
|
55
155
|
}
|
|
56
156
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
-
|
|
157
|
+
return new mod.default({
|
|
58
158
|
apiKey: process.env['ANTHROPIC_API_KEY'],
|
|
59
159
|
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Shared body for `callStep`/`callStepWithMeta` (issue #236). `strictRequested` is `undefined`
|
|
163
|
+
* for `callStep`'s own byte-identical-behavior contract (no ladder state is even constructed);
|
|
164
|
+
* `true`/`false` for `callStepWithMeta`. Returns `meta` only when strict was ever requested for
|
|
165
|
+
* THIS invocation — a step that never opted in gets no `structuredOutput` meta at all.
|
|
166
|
+
*/
|
|
167
|
+
async callStepInternal(prompt, inputSchema, agentProfileInstructions, strictRequested) {
|
|
168
|
+
const client = await this.getClient();
|
|
169
|
+
const state = { strict: strictRequested === true, meta: undefined };
|
|
60
170
|
// P0: offer a schema-typed __realm_submit__ tool at tool_choice:'auto' (never forced — see the
|
|
61
171
|
// module-level SUBMIT_TOOL_NAME comment) when a schema is available; a tool_use.input arrives
|
|
62
172
|
// pre-parsed, so this eliminates the fenced/prefaced-JSON parse-failure class by construction.
|
|
63
173
|
// Without a schema there is nothing to type the tool with, so no tool is offered — falls straight
|
|
64
|
-
// to the P1 extractor below.
|
|
65
|
-
|
|
174
|
+
// to the P1 extractor below. `hasSchema` — NOT `strict` — governs buildSystemPrompt: the O8
|
|
175
|
+
// honesty mechanism depends on the original schema staying model-visible regardless of strict
|
|
176
|
+
// (design §4, pinned by test — buildSystemPrompt is byte-invariant under strict).
|
|
177
|
+
const hasSchema = inputSchema !== undefined;
|
|
66
178
|
const systemPrompt = buildSystemPrompt(inputSchema, agentProfileInstructions,
|
|
67
|
-
/* structuredToolOffered */
|
|
179
|
+
/* structuredToolOffered */ hasSchema);
|
|
68
180
|
const makeRequest = async (userContent) => {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
181
|
+
const buildOpts = (strict) => {
|
|
182
|
+
const submitTool = hasSchema
|
|
183
|
+
? buildSubmitTool(inputSchema, strict ? { strict: true } : undefined)
|
|
184
|
+
: undefined;
|
|
185
|
+
const opts = {
|
|
186
|
+
model: this.model,
|
|
187
|
+
max_tokens: resolveMaxTokens(this.model),
|
|
188
|
+
system: systemPrompt,
|
|
189
|
+
messages: [{ role: 'user', content: userContent }],
|
|
190
|
+
};
|
|
191
|
+
if (submitTool !== undefined) {
|
|
192
|
+
opts['tools'] = [submitTool];
|
|
193
|
+
opts['tool_choice'] = { type: 'auto' };
|
|
194
|
+
}
|
|
195
|
+
return opts;
|
|
74
196
|
};
|
|
75
|
-
|
|
76
|
-
opts['tools'] = [submitTool];
|
|
77
|
-
opts['tool_choice'] = { type: 'auto' };
|
|
78
|
-
}
|
|
79
|
-
const response = await // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
80
|
-
client.messages.create(opts);
|
|
197
|
+
const response = await createMessageWithLadder(client, buildOpts, state);
|
|
81
198
|
const blocks = response.content;
|
|
82
199
|
const toolUse = blocks.find((b) => b.type === 'tool_use' && b.name === SUBMIT_TOOL_NAME);
|
|
83
200
|
const textBlock = blocks.find((b) => b.type === 'text');
|
|
@@ -90,16 +207,26 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
90
207
|
// If the model called the tool, its input is ALREADY a parsed object — no parse step, done.
|
|
91
208
|
// Otherwise fall back to the robust extractor (P1) on the text answer.
|
|
92
209
|
const extract = (result) => result.toolInput ?? extractJsonObject(result.text);
|
|
210
|
+
// issue #236: submission_channel — the standing dodge detector (design record R-B). Set on
|
|
211
|
+
// whichever result actually produced the returned output.
|
|
212
|
+
const withChannel = (output, viaTool) => {
|
|
213
|
+
if (state.meta === undefined)
|
|
214
|
+
return { output };
|
|
215
|
+
return {
|
|
216
|
+
output,
|
|
217
|
+
meta: { ...state.meta, submission_channel: viaTool ? 'tool' : 'text' },
|
|
218
|
+
};
|
|
219
|
+
};
|
|
93
220
|
const first = await makeRequest(prompt);
|
|
94
221
|
const firstParsed = extract(first);
|
|
95
222
|
if (firstParsed !== null)
|
|
96
|
-
return firstParsed;
|
|
223
|
+
return withChannel(firstParsed, first.toolInput !== undefined);
|
|
97
224
|
// Retry once with an explicit reminder to return JSON (preserves today's retry shape).
|
|
98
225
|
const retryPrompt = `${prompt}\n\nYour previous response was not valid JSON. Respond with a JSON object only.`;
|
|
99
226
|
const retry = await makeRequest(retryPrompt);
|
|
100
227
|
const retryParsed = extract(retry);
|
|
101
228
|
if (retryParsed !== null)
|
|
102
|
-
return retryParsed;
|
|
229
|
+
return withChannel(retryParsed, retry.toolInput !== undefined);
|
|
103
230
|
// Guard: a response cut short by the token budget must never silently return a partial object —
|
|
104
231
|
// give a clear, distinct error rather than the generic "non-JSON content" message.
|
|
105
232
|
if (retry.stopReason === 'max_tokens') {
|
|
@@ -107,6 +234,15 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
107
234
|
}
|
|
108
235
|
throw new WorkflowError(sanitizeError(`Anthropic returned non-JSON content after retry: ${retry.text.slice(0, 200)}`), { code: 'ENGINE_STEP_FAILED', category: 'ENGINE', agentAction: 'stop', retryable: false });
|
|
109
236
|
}
|
|
237
|
+
async callStep(prompt, inputSchema, agentProfileInstructions) {
|
|
238
|
+
const { output } = await this.callStepInternal(prompt, inputSchema, agentProfileInstructions, undefined);
|
|
239
|
+
return output;
|
|
240
|
+
}
|
|
241
|
+
/** issue #236 override — the only provider in this codebase that actually honors
|
|
242
|
+
* `opts.structuredOutputStrict`; the base class's default just wraps `callStep`. */
|
|
243
|
+
async callStepWithMeta(prompt, inputSchema, agentProfileInstructions, opts) {
|
|
244
|
+
return this.callStepInternal(prompt, inputSchema, agentProfileInstructions, opts?.structuredOutputStrict === true);
|
|
245
|
+
}
|
|
110
246
|
/**
|
|
111
247
|
* Agentic loop for tool-capable steps. Executes tool calls serially (V1 constraint).
|
|
112
248
|
* All tool results for one turn are accumulated into a single user message with an array
|
|
@@ -177,6 +313,11 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
177
313
|
// history ends with a valid user turn. NOT restructuring the agentic loop / MCP tools array —
|
|
178
314
|
// this synthetic tool only ever appears on this ONE isolated extraction call.
|
|
179
315
|
const performFinalExtraction = async () => {
|
|
316
|
+
// issue #236: buildSubmitTool's `strict` option is never threaded here — BY CONSTRUCTION,
|
|
317
|
+
// not by omission. This call site lives inside callStepWithTools, which only ever runs for
|
|
318
|
+
// tools-bearing steps; G6 makes every tools-bearing step ineligible for strict end-to-end
|
|
319
|
+
// in v1 (design §4 [CG]), so run-agent structurally never has a `true` to pass down this
|
|
320
|
+
// path. No end-to-end pin is possible here — do not add one.
|
|
180
321
|
const finalSubmitTool = options.inputSchema !== undefined ? buildSubmitTool(options.inputSchema) : undefined;
|
|
181
322
|
const finalOpts = {
|
|
182
323
|
model: this.model,
|
|
@@ -191,7 +332,10 @@ export class AnthropicProvider extends ToolCapableLlmProvider {
|
|
|
191
332
|
else {
|
|
192
333
|
finalOpts['tool_choice'] = { type: 'none' };
|
|
193
334
|
// NO tools array — enforces text-only response
|
|
194
|
-
// NO response_format —
|
|
335
|
+
// NO response_format — Anthropic's structured-output mechanism is strict TOOL USE
|
|
336
|
+
// (issue #236's `structured_output: 'strict'`, wired through buildSubmitTool's `strict`
|
|
337
|
+
// option above), not an `output_config.format` request parameter — deliberately not
|
|
338
|
+
// used here (banked, design record R-P).
|
|
195
339
|
}
|
|
196
340
|
const final = await // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
197
341
|
client.messages.create(finalOpts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/anthropic-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/anthropic-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StructuredOutputMeta } from '@sensigo/realm';
|
|
1
2
|
import type { ToolDefinition, ToolExecutor, StepWithToolsResult } from '../mcp/mcp-extensions.js';
|
|
2
3
|
/**
|
|
3
4
|
* Describes the optional feature set that an LLM provider supports.
|
|
@@ -19,6 +20,22 @@ export interface ProviderCapabilities {
|
|
|
19
20
|
export declare abstract class LlmProvider {
|
|
20
21
|
/** Call the LLM with a step prompt and return a JSON object. */
|
|
21
22
|
abstract callStep(prompt: string, inputSchema?: Record<string, unknown>, agentProfileInstructions?: string): Promise<Record<string, unknown>>;
|
|
23
|
+
/**
|
|
24
|
+
* Issue #236 — the structured_output-aware entry point run-agent's callStep site calls for
|
|
25
|
+
* every agent step. DEFAULT-IMPLEMENTED here (never abstract): every third-party
|
|
26
|
+
* `--provider-module` that only implements `callStep` inherits a disclosed no-op BY
|
|
27
|
+
* CONSTRUCTION — `{ output }`, no `meta` — WITHOUT needing to know this method exists (the
|
|
28
|
+
* `instanceof` check at agent.ts is unaffected; a plugin author never has to override this).
|
|
29
|
+
* `AnthropicProvider` is the only override in this codebase — it actually honors
|
|
30
|
+
* `opts.structuredOutputStrict`. The OpenAI provider gets this SAME default no-op; it is never
|
|
31
|
+
* special-cased (design record §5, final gate: restored — do not add an OpenAI override).
|
|
32
|
+
*/
|
|
33
|
+
callStepWithMeta(prompt: string, inputSchema?: Record<string, unknown>, agentProfileInstructions?: string, opts?: {
|
|
34
|
+
structuredOutputStrict?: boolean;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
output: Record<string, unknown>;
|
|
37
|
+
meta?: StructuredOutputMeta;
|
|
38
|
+
}>;
|
|
22
39
|
/** Returns the capability set for this provider instance. */
|
|
23
40
|
capabilities(): ProviderCapabilities;
|
|
24
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,6DAA6D;IAC7D,YAAY,IAAI,oBAAoB;CAGrC;AAED;;;GAGG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC;;;;;;WAMG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD;;;;;WAKG;QACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,sBAAsB,CAEvF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
|
|
1
|
+
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;;;;;OASG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,EAEjC,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IAK5E,6DAA6D;IAC7D,YAAY,IAAI,oBAAoB;CAGrC;AAED;;;GAGG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC;;;;;;WAMG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD;;;;;WAKG;QACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,sBAAsB,CAEvF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
|
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
* Extend this class to implement a custom provider.
|
|
4
4
|
*/
|
|
5
5
|
export class LlmProvider {
|
|
6
|
+
/**
|
|
7
|
+
* Issue #236 — the structured_output-aware entry point run-agent's callStep site calls for
|
|
8
|
+
* every agent step. DEFAULT-IMPLEMENTED here (never abstract): every third-party
|
|
9
|
+
* `--provider-module` that only implements `callStep` inherits a disclosed no-op BY
|
|
10
|
+
* CONSTRUCTION — `{ output }`, no `meta` — WITHOUT needing to know this method exists (the
|
|
11
|
+
* `instanceof` check at agent.ts is unaffected; a plugin author never has to override this).
|
|
12
|
+
* `AnthropicProvider` is the only override in this codebase — it actually honors
|
|
13
|
+
* `opts.structuredOutputStrict`. The OpenAI provider gets this SAME default no-op; it is never
|
|
14
|
+
* special-cased (design record §5, final gate: restored — do not add an OpenAI override).
|
|
15
|
+
*/
|
|
16
|
+
async callStepWithMeta(prompt, inputSchema, agentProfileInstructions,
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
opts) {
|
|
19
|
+
const output = await this.callStep(prompt, inputSchema, agentProfileInstructions);
|
|
20
|
+
return { output };
|
|
21
|
+
}
|
|
6
22
|
/** Returns the capability set for this provider instance. */
|
|
7
23
|
capabilities() {
|
|
8
24
|
return { jsonMode: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,OAAgB,WAAW;IAQ/B;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,WAAqC,EACrC,wBAAiC;IACjC,6DAA6D;IAC7D,IAA2C;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,YAAY;QACV,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;CA2C/D;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAqB;IACjD,OAAO,QAAQ,YAAY,sBAAsB,CAAC;AACpD,CAAC;AAID;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAsC,EACtC,SAA6B,EAC7B,WAAoB;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC;IAEpE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEtE,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,wFAAwF;YACtF,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,sEAAsE;QACtE,+EAA+E;QAC/E,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACnF,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAChE,OAAO,IAAI,cAAc,CAAC,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACtE,OAAO,IAAI,iBAAiB,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-agent.d.ts","sourceRoot":"","sources":["../../src/agent/run-agent.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"run-agent.d.ts","sourceRoot":"","sources":["../../src/agent/run-agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAaL,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAM/D,OAAO,KAAK,EAAE,SAAS,EAAgC,MAAM,yBAAyB,CAAC;AAIvF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC;IACnF;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,8GAA8G;IAC9G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0ED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA2tBjG"}
|
package/dist/agent/run-agent.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// Exports runAgent(), AgentDeps, AgentRunOptions, and AgentRunResult.
|
|
3
3
|
// All Slack-specific gate notification logic lives in slack-gate-notifier.ts.
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
-
import { loadWorkflowFromFile, findEligibleSteps, classifyInProgressClaims, executeChain, buildNextActions, findCapabilityBlockedSteps, unmetCapabilities, capabilityWarning, buildFailedAttemptRecord, WorkflowError, DEFAULT_VALIDATION_EXHAUSTION_THRESHOLD, } from '@sensigo/realm';
|
|
5
|
+
import { loadWorkflowFromFile, findEligibleSteps, classifyInProgressClaims, executeChain, buildNextActions, findCapabilityBlockedSteps, unmetCapabilities, capabilityWarning, buildFailedAttemptRecord, WorkflowError, DEFAULT_VALIDATION_EXHAUSTION_THRESHOLD, assessStructuredOutputEligibility, } from '@sensigo/realm';
|
|
6
6
|
import { setAdditionalRedactionValues, renderValidationSummaryEntry, } from './providers/agent-utils.js';
|
|
7
7
|
import { isToolCapable } from './providers/llm-provider.js';
|
|
8
8
|
import { McpClient as McpClientImpl } from './mcp/mcp-client.js';
|
|
9
|
+
import { scheduleGateExpiryTimer } from './gate/gate-expiry-timer.js';
|
|
9
10
|
/**
|
|
10
11
|
* Dormant strict posture (issue #197 PR-2, design §6 — the #169→#170 template): read PER CALL,
|
|
11
12
|
* never cached at module load (a test flips the env var mid-process). "on" = set to any
|
|
@@ -95,6 +96,14 @@ export async function runAgent(deps, options) {
|
|
|
95
96
|
// issue #217: resolved once per run (not per call, unlike shouldMintWriterNonce — there is no
|
|
96
97
|
// env-var strict-flip counterpart here). `0` disables the repair loop entirely.
|
|
97
98
|
const schemaRetries = deps.schemaRetries ?? 2;
|
|
99
|
+
// issue #236 — sticky downgrade (design §4 [Rv8]): per step, homed HERE (run-agent scope,
|
|
100
|
+
// beside the verdict) — survives ALL THREE loops (the provider ladder ⊂ the 2-attempt callStep
|
|
101
|
+
// wrapper ⊂ the #217 repair loop). Once armed for a step, every LATER attempt for that SAME
|
|
102
|
+
// step name (across repair iterations, across a re-attach) never re-sends strict — it goes
|
|
103
|
+
// straight to the ORIGINAL downgrade_reason/api_message. Never cleared for the run's lifetime
|
|
104
|
+
// (R-Q: a non-grammar 503 disables prevention for the whole drive session — accepted, the
|
|
105
|
+
// `service_unavailable` labeling makes it auditable).
|
|
106
|
+
const structuredOutputSticky = new Map();
|
|
98
107
|
// Load or use provided definition.
|
|
99
108
|
const definition = options.definition !== undefined
|
|
100
109
|
? options.definition
|
|
@@ -187,7 +196,20 @@ export async function runAgent(deps, options) {
|
|
|
187
196
|
const label = choice.charAt(0).toUpperCase() + choice.slice(1);
|
|
188
197
|
console.log(` ${label}: realm run respond ${runId} --gate ${gate.gate_id} --choice ${choice}`);
|
|
189
198
|
}
|
|
190
|
-
|
|
199
|
+
// issue #291 (Deliverable 4e, Amendment 4): the ATTENDING-PROCESS enactment timer —
|
|
200
|
+
// this IS "the non-Slack agent poll loop" the design names as its own timer host. A
|
|
201
|
+
// no-op for a finding-only/non-expiring gate.
|
|
202
|
+
const clearExpiryTimer = scheduleGateExpiryTimer(runId, gate, {
|
|
203
|
+
store: deps.store,
|
|
204
|
+
definition,
|
|
205
|
+
registry: deps.registry,
|
|
206
|
+
});
|
|
207
|
+
try {
|
|
208
|
+
await pollUntilGateResolved(deps.store, runId, gate.gate_id, options.pollIntervalMs ?? 3000);
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
clearExpiryTimer();
|
|
212
|
+
}
|
|
191
213
|
}
|
|
192
214
|
currentRun = await deps.store.get(runId);
|
|
193
215
|
continue;
|
|
@@ -224,11 +246,15 @@ export async function runAgent(deps, options) {
|
|
|
224
246
|
// pre-existing (non-repair) case.
|
|
225
247
|
let stepInput = {};
|
|
226
248
|
let toolCallsForMeta;
|
|
249
|
+
// issue #236: the resolved structuredOutput meta for THIS attempt's callStep call — reset
|
|
250
|
+
// every iteration alongside toolCallsForMeta, threaded into stepMeta below.
|
|
251
|
+
let structuredOutputMetaForStep;
|
|
227
252
|
let result;
|
|
228
253
|
let repairsUsed = 0;
|
|
229
254
|
let lastRejection;
|
|
230
255
|
for (;;) {
|
|
231
256
|
toolCallsForMeta = undefined;
|
|
257
|
+
structuredOutputMetaForStep = undefined;
|
|
232
258
|
// issue #217 conjunct (vi) ground truth — captured FRESH at the top of EVERY attempt
|
|
233
259
|
// (including the first), never once per step: a per-step capture is stale across the
|
|
234
260
|
// whole provider LLM call, so any concurrent writer (a second drive, a gate `respond`, a
|
|
@@ -267,6 +293,46 @@ export async function runAgent(deps, options) {
|
|
|
267
293
|
const agentProfileInstructions = stepDef.agent_profile !== undefined
|
|
268
294
|
? definition.resolved_profiles?.[stepDef.agent_profile]?.content
|
|
269
295
|
: undefined;
|
|
296
|
+
// issue #236: compute the Phase-B verdict ONCE per attempt-cycle, on the EXACT resolved
|
|
297
|
+
// `inputSchema` local above — never re-derived from `stepDef` (design §2, Rv11). Only
|
|
298
|
+
// steps that DECLARED structured_output ever get a plan at all — an undeclared step's
|
|
299
|
+
// call site below is completely untouched (byte-identical for the non-opted majority).
|
|
300
|
+
let structuredOutputPlan;
|
|
301
|
+
if (stepDef.structured_output === 'strict') {
|
|
302
|
+
const sticky = structuredOutputSticky.get(stepName);
|
|
303
|
+
if (sticky !== undefined) {
|
|
304
|
+
// A prior attempt for this step already downgraded — never re-attempt strict.
|
|
305
|
+
structuredOutputPlan = {
|
|
306
|
+
send: false,
|
|
307
|
+
ineligibleMeta: { requested: true, sent: false, ...sticky },
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
const verdict = assessStructuredOutputEligibility({
|
|
312
|
+
schema: inputSchema,
|
|
313
|
+
tools: false,
|
|
314
|
+
});
|
|
315
|
+
if (verdict.verdict === 'ineligible') {
|
|
316
|
+
structuredOutputPlan = {
|
|
317
|
+
send: false,
|
|
318
|
+
ineligibleMeta: {
|
|
319
|
+
requested: true,
|
|
320
|
+
sent: false,
|
|
321
|
+
downgrade_reason: 'gate_ineligible',
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
else if (verdict.verdict === 'eligible_with_caveats') {
|
|
326
|
+
structuredOutputPlan = {
|
|
327
|
+
send: true,
|
|
328
|
+
caveats: verdict.caveats.map((c) => c.code),
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
structuredOutputPlan = { send: true };
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
270
336
|
if (repairsUsed === 0) {
|
|
271
337
|
const descPreview = stepDef.description.slice(0, 80);
|
|
272
338
|
console.log(`\n→ [agent] ${stepName}`);
|
|
@@ -405,12 +471,72 @@ export async function runAgent(deps, options) {
|
|
|
405
471
|
stepInput = {};
|
|
406
472
|
for (let attempt = 0; attempt < 2; attempt++) {
|
|
407
473
|
try {
|
|
408
|
-
|
|
474
|
+
if (structuredOutputPlan !== undefined) {
|
|
475
|
+
// issue #236: the declared-step path — always call callStepWithMeta so the
|
|
476
|
+
// synthesis rule (design §5 [R2-3]) can distinguish a genuinely-absent meta
|
|
477
|
+
// (third-party provider ⇒ provider_unsupported) from a gate/sticky decision
|
|
478
|
+
// that never even attempted a call.
|
|
479
|
+
const { output, meta } = await deps.provider.callStepWithMeta(promptForAttempt, inputSchema, agentProfileInstructions, { structuredOutputStrict: structuredOutputPlan.send });
|
|
480
|
+
stepInput = output;
|
|
481
|
+
if (structuredOutputPlan.ineligibleMeta !== undefined) {
|
|
482
|
+
// Gate-ineligible or sticky — strict was never attempted this call at all.
|
|
483
|
+
structuredOutputMetaForStep = structuredOutputPlan.ineligibleMeta;
|
|
484
|
+
}
|
|
485
|
+
else if (meta !== undefined) {
|
|
486
|
+
structuredOutputMetaForStep = {
|
|
487
|
+
...meta,
|
|
488
|
+
...(structuredOutputPlan.caveats !== undefined
|
|
489
|
+
? { caveats: structuredOutputPlan.caveats }
|
|
490
|
+
: {}),
|
|
491
|
+
};
|
|
492
|
+
// Arm sticky the FIRST time THIS step downgrades (never re-arm from a
|
|
493
|
+
// gate_ineligible meta — that's not a live-API downgrade to remember).
|
|
494
|
+
if (meta.sent === false &&
|
|
495
|
+
meta.downgrade_reason !== undefined &&
|
|
496
|
+
meta.downgrade_reason !== 'gate_ineligible' &&
|
|
497
|
+
!structuredOutputSticky.has(stepName)) {
|
|
498
|
+
structuredOutputSticky.set(stepName, {
|
|
499
|
+
downgrade_reason: meta.downgrade_reason,
|
|
500
|
+
...(meta.api_message !== undefined
|
|
501
|
+
? { api_message: meta.api_message }
|
|
502
|
+
: {}),
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
// The base LlmProvider default returned no meta at all — a third-party
|
|
508
|
+
// provider that never overrides callStepWithMeta.
|
|
509
|
+
structuredOutputMetaForStep = {
|
|
510
|
+
requested: true,
|
|
511
|
+
sent: false,
|
|
512
|
+
downgrade_reason: 'provider_unsupported',
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
517
|
+
stepInput = await deps.provider.callStep(promptForAttempt, inputSchema, agentProfileInstructions);
|
|
518
|
+
}
|
|
409
519
|
callError = undefined;
|
|
410
520
|
break;
|
|
411
521
|
}
|
|
412
522
|
catch (err) {
|
|
413
523
|
callError = err;
|
|
524
|
+
// issue #236 [R2-7]: a ladder failure still carries a structuredOutput meta on
|
|
525
|
+
// the thrown error — arm sticky from it too, so a subsequent repair/retry never
|
|
526
|
+
// re-attempts strict even though this attempt produced no result at all.
|
|
527
|
+
const failedMeta = err
|
|
528
|
+
?.structuredOutput;
|
|
529
|
+
if (failedMeta !== undefined &&
|
|
530
|
+
failedMeta.downgrade_reason !== undefined &&
|
|
531
|
+
failedMeta.downgrade_reason !== 'gate_ineligible' &&
|
|
532
|
+
!structuredOutputSticky.has(stepName)) {
|
|
533
|
+
structuredOutputSticky.set(stepName, {
|
|
534
|
+
downgrade_reason: failedMeta.downgrade_reason,
|
|
535
|
+
...(failedMeta.api_message !== undefined
|
|
536
|
+
? { api_message: failedMeta.api_message }
|
|
537
|
+
: {}),
|
|
538
|
+
});
|
|
539
|
+
}
|
|
414
540
|
console.warn(` ⚠ LLM call attempt ${attempt + 1} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
415
541
|
}
|
|
416
542
|
}
|
|
@@ -434,7 +560,18 @@ export async function runAgent(deps, options) {
|
|
|
434
560
|
...(deps.traceBufferStore !== undefined
|
|
435
561
|
? { traceBufferStore: deps.traceBufferStore }
|
|
436
562
|
: {}),
|
|
437
|
-
|
|
563
|
+
// issue #236: stepMeta now ALSO passes when structuredOutput exists (previously only
|
|
564
|
+
// passed when toolCalls existed) — the two are independent, either alone must thread.
|
|
565
|
+
...(toolCallsForMeta !== undefined || structuredOutputMetaForStep !== undefined
|
|
566
|
+
? {
|
|
567
|
+
stepMeta: {
|
|
568
|
+
...(toolCallsForMeta !== undefined ? { toolCalls: toolCallsForMeta } : {}),
|
|
569
|
+
...(structuredOutputMetaForStep !== undefined
|
|
570
|
+
? { structuredOutput: structuredOutputMetaForStep }
|
|
571
|
+
: {}),
|
|
572
|
+
},
|
|
573
|
+
}
|
|
574
|
+
: {}),
|
|
438
575
|
// issue #197 PR-2: a FRESH nonce per step-attempt — resolved per call, never cached, so
|
|
439
576
|
// the strict-flip (checked inside shouldMintWriterNonce) is honored even if the env var
|
|
440
577
|
// changes mid-process (tests flip it). Also fresh per issue #217 repair attempt, since
|