@gaunt-sloth/core 2.0.0-alpha.27 → 2.0.0-alpha.28

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.
@@ -2,30 +2,12 @@ import { GthConfig, ServerTool, type ApprovalRung, type DescribableTool } from '
2
2
  import { AgentResolvers, AgentStreamEvent, GthAgentInterface, GthCommand, GthCompiledGraph, GthRunStats, Message, PendingToolInterrupt, StatusUpdateCallback } from '#src/core/types.js';
3
3
  import type { DeclaredToolAnnotations } from '#src/core/approvals/annotations.js';
4
4
  import type { DebugCapture, DebugRequestExtras, LastModelRequest } from '#src/core/debugCapture.js';
5
- import { AIMessageChunk, BaseMessage } from '@langchain/core/messages';
5
+ import { BaseMessage } from '@langchain/core/messages';
6
6
  import { RunnableConfig } from '@langchain/core/runnables';
7
7
  import { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
8
8
  import { IterableReadableStream } from '@langchain/core/utils/stream';
9
9
  import { BaseCheckpointSaver } from '@langchain/langgraph';
10
10
  import { type RefusalInfo } from '#src/core/refusal.js';
11
- /**
12
- * TUI-C29 — return a chunk fit for `concat`-aggregation with OpenRouter's raw response stripped.
13
- *
14
- * The openrouter provider enables `__includeRawResponse` (TUI-C22), which stashes the *full* raw
15
- * provider response under `additional_kwargs.__raw_response` so {@link pickReasoningDelta} can lift
16
- * a top-level `reasoning` delta the ChatOpenAI converter otherwise drops. Reasoning is only ever
17
- * read off the **per-chunk** `additional_kwargs`, never off the aggregate — yet `AIMessageChunk.concat`
18
- * deep-merges `additional_kwargs` (`_mergeDicts`), so leaving `__raw_response` on the chunk makes the
19
- * aggregate accumulate a linearly-growing, unused copy of it for the whole stream.
20
- *
21
- * Strip it on a **shallow clone** so the ORIGINAL chunk the reasoning path reads (line ~697) stays
22
- * untouched (approach A — no mutation of the stream-owned object). The clone preserves the chunk's
23
- * prototype (so it keeps a working `.concat` when it becomes the first aggregate) and every field
24
- * `concat` reads (content, tool_call_chunks, tool_calls, response_metadata, usage_metadata, id),
25
- * overriding only `additional_kwargs`. When the key is absent (every non-OpenRouter provider) the
26
- * chunk is returned as-is, so those paths are byte-for-byte unchanged.
27
- */
28
- export declare function stripRawResponseForAggregation(chunk: AIMessageChunk): AIMessageChunk;
29
11
  /**
30
12
  * Shared, graph-agnostic agent plumbing.
31
13
  *
@@ -98,63 +98,23 @@ function createThinkTagSplitter() {
98
98
  return { push, flush };
99
99
  }
100
100
  /**
101
- * TUI-C22 — pick this chunk's reasoning delta, broadening capture beyond the single historical
102
- * source without disturbing it. Precedence, and why:
103
- * 1. `additional_kwargs.reasoning_content` — the DeepSeek/vLLM/Anthropic convention the pipeline
104
- * already read; returned verbatim so that happy path is byte-for-byte unchanged.
105
- * 2. A top-level `reasoning` lifted from the raw provider response (OpenRouter convention). The
106
- * `ChatOpenAI` completions converter drops `reasoning`, so it is only reachable when the model
107
- * was built with `__includeRawResponse` (see `providers/openrouter.ts`), which stashes the raw
108
- * response under `additional_kwargs.__raw_response` — streaming deltas expose it at
109
- * `choices[0].delta.reasoning`, a whole message at `choices[0].message.reasoning`.
110
- * 3. A defensive direct `additional_kwargs.reasoning` (some integrations may surface it there).
111
- * Only consulted when `reasoning_content` is absent, so the two never double-emit.
101
+ * Pick this chunk's or message's reasoning delta/content.
102
+ * Precedence:
103
+ * 1. `additional_kwargs.reasoning_content` — standard DeepSeek/Anthropic/OpenRouter convention.
104
+ * 2. `additional_kwargs.reasoning` direct reasoning fallback if present.
112
105
  */
113
- function pickReasoningDelta(kwargs, isChunk) {
106
+ function pickReasoningDelta(kwargs) {
114
107
  if (!kwargs)
115
108
  return '';
116
109
  const reasoningContent = kwargs.reasoning_content;
117
110
  if (typeof reasoningContent === 'string' && reasoningContent.length > 0) {
118
111
  return reasoningContent;
119
112
  }
120
- const raw = kwargs.__raw_response;
121
- const choice = raw?.choices?.[0];
122
- const fromRaw = isChunk ? choice?.delta?.reasoning : choice?.message?.reasoning;
123
- if (typeof fromRaw === 'string' && fromRaw.length > 0)
124
- return fromRaw;
125
113
  const direct = kwargs.reasoning;
126
114
  if (typeof direct === 'string' && direct.length > 0)
127
115
  return direct;
128
116
  return '';
129
117
  }
130
- /**
131
- * TUI-C29 — return a chunk fit for `concat`-aggregation with OpenRouter's raw response stripped.
132
- *
133
- * The openrouter provider enables `__includeRawResponse` (TUI-C22), which stashes the *full* raw
134
- * provider response under `additional_kwargs.__raw_response` so {@link pickReasoningDelta} can lift
135
- * a top-level `reasoning` delta the ChatOpenAI converter otherwise drops. Reasoning is only ever
136
- * read off the **per-chunk** `additional_kwargs`, never off the aggregate — yet `AIMessageChunk.concat`
137
- * deep-merges `additional_kwargs` (`_mergeDicts`), so leaving `__raw_response` on the chunk makes the
138
- * aggregate accumulate a linearly-growing, unused copy of it for the whole stream.
139
- *
140
- * Strip it on a **shallow clone** so the ORIGINAL chunk the reasoning path reads (line ~697) stays
141
- * untouched (approach A — no mutation of the stream-owned object). The clone preserves the chunk's
142
- * prototype (so it keeps a working `.concat` when it becomes the first aggregate) and every field
143
- * `concat` reads (content, tool_call_chunks, tool_calls, response_metadata, usage_metadata, id),
144
- * overriding only `additional_kwargs`. When the key is absent (every non-OpenRouter provider) the
145
- * chunk is returned as-is, so those paths are byte-for-byte unchanged.
146
- */
147
- export function stripRawResponseForAggregation(chunk) {
148
- const kwargs = chunk.additional_kwargs;
149
- if (!kwargs || !('__raw_response' in kwargs))
150
- return chunk;
151
- const rest = { ...kwargs };
152
- delete rest.__raw_response;
153
- const clone = Object.create(Object.getPrototypeOf(chunk));
154
- Object.assign(clone, chunk);
155
- clone.additional_kwargs = rest;
156
- return clone;
157
- }
158
118
  /**
159
119
  * Shared, graph-agnostic agent plumbing.
160
120
  *
@@ -555,10 +515,7 @@ export class GthAbstractAgent {
555
515
  // resetting at tool-round boundaries so a prior round's stop/finish reason can't bleed
556
516
  // into the final turn's aggregate.
557
517
  if (AIMessageChunk.isInstance(chunk)) {
558
- const forAggregation = stripRawResponseForAggregation(chunk);
559
- aggregatedChunk = aggregatedChunk
560
- ? aggregatedChunk.concat(forAggregation)
561
- : forAggregation;
518
+ aggregatedChunk = aggregatedChunk ? aggregatedChunk.concat(chunk) : chunk;
562
519
  }
563
520
  else if (chunk instanceof ToolMessage) {
564
521
  aggregatedChunk = null;
@@ -843,19 +800,11 @@ export class GthAbstractAgent {
843
800
  refusalInfo = detectRefusal(chunk);
844
801
  }
845
802
  if (AIMessageChunk.isInstance(chunk)) {
846
- // TUI-C29 aggregate a raw-response-stripped clone. OpenRouter's `__raw_response`
847
- // (read per-chunk below at pickReasoningDelta, never off the aggregate) would otherwise
848
- // deep-merge into the aggregate on every concat and grow linearly for the whole stream.
849
- // The original `chunk` stays untouched so the reasoning + <think> paths read it verbatim.
850
- const chunkForAggregation = stripRawResponseForAggregation(chunk);
851
- aggregatedAIChunk = aggregatedAIChunk
852
- ? aggregatedAIChunk.concat(chunkForAggregation)
853
- : chunkForAggregation;
854
- // Reasoning deltas — historically Ollama (Qwen3, deepseek-r1) and Anthropic surface
855
- // thinking in additional_kwargs.reasoning_content; TUI-C22 additionally lifts a top-level
856
- // `reasoning` from the raw response (OpenRouter) when reasoning_content is absent. Stream
803
+ aggregatedAIChunk = aggregatedAIChunk ? aggregatedAIChunk.concat(chunk) : chunk;
804
+ // Reasoning deltas Ollama (Qwen3, deepseek-r1), Anthropic, and OpenRouter surface
805
+ // thinking in additional_kwargs.reasoning_content. Stream
857
806
  // it as a separate event series so clients can render it apart from the answer.
858
- const reasoningDelta = pickReasoningDelta(chunk.additional_kwargs, true);
807
+ const reasoningDelta = pickReasoningDelta(chunk.additional_kwargs);
859
808
  if (reasoningDelta.length > 0) {
860
809
  yield* emitSegments([{ kind: 'reasoning', text: reasoningDelta }]);
861
810
  }
@@ -870,10 +819,9 @@ export class GthAbstractAgent {
870
819
  else if (AIMessage.isInstance(chunk)) {
871
820
  // Reasoning on a non-chunk AIMessage — a non-streamed / resumed thinking message
872
821
  // (e.g. a checkpoint replay) still carries its thinking in
873
- // additional_kwargs.reasoning_content (or, TUI-C22, a top-level `reasoning` on the raw
874
- // response message). Mirror the AIMessageChunk branch and emit the same reasoning event
875
- // series, otherwise the thought is silently dropped (TUI-C15).
876
- const reasoningContent = pickReasoningDelta(chunk.additional_kwargs, false);
822
+ // additional_kwargs.reasoning_content. Mirror the AIMessageChunk branch and emit the same
823
+ // reasoning event series, otherwise the thought is silently dropped (TUI-C15).
824
+ const reasoningContent = pickReasoningDelta(chunk.additional_kwargs);
877
825
  if (reasoningContent.length > 0) {
878
826
  yield* emitSegments([{ kind: 'reasoning', text: reasoningContent }]);
879
827
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GthAbstractAgent.js","sourceRoot":"","sources":["../../src/core/GthAbstractAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GthAbstractAgent.js","sourceRoot":"","sources":["../../src/core/GthAbstractAgent.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,14 @@ export type RaterOutcome = (typeof RATER_OUTCOMES)[number];
66
66
  * Structured verdict the rater model must return: one outcome plus one short sentence. There is
67
67
  * deliberately nothing else — no severity number, no booleans to recombine into a compound
68
68
  * condition. The consequence is a property of the rung, not of a knob.
69
+ *
70
+ * **The schema is written plainly, as the verdict the rater's CALLERS want.** `suggestedTool` is a
71
+ * plain `.optional()` and the parsed verdict's `suggestedTool` is `string | undefined`. What a
72
+ * strict `json_schema` provider has to be sent instead — the key required and its type nullable —
73
+ * and the `null` that then comes back are entirely the business of
74
+ * {@link structuredOutputBoundary}, which {@link rateShellCommand} runs both halves of the call
75
+ * through. Nothing about the wire belongs in this object; putting it here is what made the schema we
76
+ * send contradict the schema we validate with.
69
77
  */
70
78
  export declare const ShellSafetyVerdictSchema: z.ZodObject<{
71
79
  outcome: z.ZodEnum<{
@@ -78,7 +86,9 @@ export declare const ShellSafetyVerdictSchema: z.ZodObject<{
78
86
  suggestedTool: z.ZodOptional<z.ZodString>;
79
87
  }, z.core.$strip>;
80
88
  /**
81
- * The rater's structured verdict on a single shell command.
89
+ * The rater's structured verdict on a single shell command. `suggestedTool` is `string | undefined`
90
+ * and never `null` — the boundary the rating call goes through collapses a `null` to the key being
91
+ * absent before any consumer sees it, so "no suggestion" has exactly one spelling.
82
92
  */
83
93
  export type ShellSafetyVerdict = z.infer<typeof ShellSafetyVerdictSchema>;
84
94
  /**
@@ -36,6 +36,7 @@ import { isRatedRung, resolveApprovals } from '#src/config.js';
36
36
  import { buildParserPreflightNote } from '#src/core/shell/abstention.js';
37
37
  import { normalizeCommand } from '#src/core/shell/normalize.js';
38
38
  import { buildComposedOpenWorldNote, findOpenWorldHostLiterals, } from '#src/core/shell/openWorld.js';
39
+ import { structuredOutputBoundary } from '#src/runtime/structuredOutput.js';
39
40
  import { debugLog, debugLogError } from '#src/utils/debugUtils.js';
40
41
  /**
41
42
  * CFG-28 (spec §4.1) — the **four** outcomes the rater may return. The retired third outcome named
@@ -67,6 +68,14 @@ export const RATER_OUTCOMES = ['safe', 'destructive', 'catastrophic', 'attack'];
67
68
  * Structured verdict the rater model must return: one outcome plus one short sentence. There is
68
69
  * deliberately nothing else — no severity number, no booleans to recombine into a compound
69
70
  * condition. The consequence is a property of the rung, not of a knob.
71
+ *
72
+ * **The schema is written plainly, as the verdict the rater's CALLERS want.** `suggestedTool` is a
73
+ * plain `.optional()` and the parsed verdict's `suggestedTool` is `string | undefined`. What a
74
+ * strict `json_schema` provider has to be sent instead — the key required and its type nullable —
75
+ * and the `null` that then comes back are entirely the business of
76
+ * {@link structuredOutputBoundary}, which {@link rateShellCommand} runs both halves of the call
77
+ * through. Nothing about the wire belongs in this object; putting it here is what made the schema we
78
+ * send contradict the schema we validate with.
70
79
  */
71
80
  export const ShellSafetyVerdictSchema = z.object({
72
81
  outcome: z
@@ -586,15 +595,19 @@ export function buildRaterPrompt(command, options) {
586
595
  * it does not have, so an unrecognised name is DROPPED rather than passed on. Dropping the field
587
596
  * never changes the outcome or the reason — the explanation the human sees is the rater's own text
588
597
  * either way.
598
+ *
599
+ * Every "no suggestion" path returns an object with **no `suggestedTool` key at all**, never one
600
+ * carrying an empty or null-ish value: a second spelling of "absent" is something the §7 rejection
601
+ * message and every other reader would each have to handle for themselves.
589
602
  */
590
603
  function validateSuggestedTool(verdict, grantedTools) {
591
- if (!verdict.suggestedTool)
592
- return verdict;
604
+ const { suggestedTool, ...rest } = verdict;
605
+ if (!suggestedTool)
606
+ return rest;
593
607
  const granted = new Set((grantedTools ?? []).map((tool) => tool.name));
594
- if (granted.has(verdict.suggestedTool))
595
- return verdict;
596
- debugLog(`rateShellCommand: dropping suggestedTool '${verdict.suggestedTool}' — not a granted tool.`);
597
- const { suggestedTool: _dropped, ...rest } = verdict;
608
+ if (granted.has(suggestedTool))
609
+ return { ...rest, suggestedTool };
610
+ debugLog(`rateShellCommand: dropping suggestedTool '${suggestedTool}' — not a granted tool.`);
598
611
  return rest;
599
612
  }
600
613
  /**
@@ -631,7 +644,10 @@ export async function rateShellCommand(command, config, options) {
631
644
  debugLog('rateShellCommand: no usable model for the auto-rater; failing closed.');
632
645
  return failClosedVerdict('no-model');
633
646
  }
634
- const structured = model.withStructuredOutput(ShellSafetyVerdictSchema);
647
+ // EXT-88 the schema is sent and read back through the shared boundary, which is what makes a
648
+ // strict `json_schema` provider's required-and-nullable rewrite land on a value we accept.
649
+ const boundary = structuredOutputBoundary(ShellSafetyVerdictSchema);
650
+ const structured = model.withStructuredOutput(boundary.wireSchema);
635
651
  const raterPromise = structured.invoke([new SystemMessage(system), new HumanMessage(user)]);
636
652
  const TIMEOUT = Symbol('rater-timeout');
637
653
  const timeoutPromise = new Promise((resolve) => {
@@ -642,9 +658,10 @@ export async function rateShellCommand(command, config, options) {
642
658
  debugLog(`rateShellCommand: rater timed out after ${timeoutMs}ms; failing closed.`);
643
659
  return failClosedVerdict('timeout', timeoutMs);
644
660
  }
645
- // withStructuredOutput already coerces to the schema, but re-validate defensively: a fake or
646
- // misbehaving model could return a non-conforming object.
647
- const parsed = ShellSafetyVerdictSchema.safeParse(raced);
661
+ // withStructuredOutput already coerces to the wire schema, but re-validate defensively: a fake
662
+ // or misbehaving model could return a non-conforming object. This is also where a `null`
663
+ // suggestion becomes the key being absent — a genuinely malformed verdict still fails closed.
664
+ const parsed = boundary.safeParse(raced);
648
665
  if (!parsed.success) {
649
666
  debugLog('rateShellCommand: rater returned unparseable output; failing closed.');
650
667
  return failClosedVerdict('unparseable');
@@ -1 +1 @@
1
- {"version":3,"file":"rater.js","sourceRoot":"","sources":["../../../src/core/shell/rater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rater.js","sourceRoot":"","sources":["../../../src/core/shell/rater.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { BaseChatModel, type BaseChatModelParams } from '@langchain/core/language_models/chat_models';
2
- import { OpenAIChatInput } from '@langchain/openai';
3
- import { ChatOpenAIFields } from '@langchain/openai';
4
- export declare function processJsonConfig(llmConfig: OpenAIChatInput & ChatOpenAIFields & BaseChatModelParams): Promise<BaseChatModel>;
1
+ import type { BaseChatModel, BaseChatModelParams } from '@langchain/core/language_models/chat_models';
2
+ import type { ChatOpenRouterInput } from '@langchain/openrouter';
3
+ export declare function processJsonConfig(llmConfig: ChatOpenRouterInput & BaseChatModelParams & Record<string, unknown>): Promise<BaseChatModel>;
5
4
  export declare function init(configFileName: string, force?: boolean, model?: string): void;
@@ -5,45 +5,30 @@ import { buildInitConfigContent, getCuratedFallbackModel } from '#src/providers/
5
5
  // Function to process JSON config and create OpenRouter LLM instance
6
6
  // noinspection JSUnusedGlobalSymbols
7
7
  export async function processJsonConfig(llmConfig) {
8
- const { ChatOpenAI } = await import('@langchain/openai');
9
- // Use environment variable if available, otherwise use the config value
8
+ const { ChatOpenRouter } = await import('@langchain/openrouter');
10
9
  const openRouterApiKey = getApiKey(llmConfig);
11
10
  if (!openRouterApiKey) {
12
11
  throw new Error('You need to define OPEN_ROUTER_API_KEY environment variable, or set apiKey in your config file.');
13
12
  }
14
- const configFields = {
15
- ...llmConfig,
13
+ const { type: _type, apiKeyEnvironmentVariable: _envVar, configuration, siteUrl, siteName, ...restConfig } = llmConfig;
14
+ const configObj = configuration;
15
+ const resolvedSiteUrl = siteUrl ?? configObj?.defaultHeaders?.['HTTP-Referer'] ?? 'https://gauntsloth.app/';
16
+ const resolvedSiteName = siteName ?? configObj?.defaultHeaders?.['X-Title'] ?? 'Gaunt Sloth';
17
+ return new ChatOpenRouter({
18
+ ...restConfig,
16
19
  apiKey: openRouterApiKey,
17
20
  model: llmConfig.model || getCuratedFallbackModel('openrouter'),
18
- // TUI-C22 — OpenRouter returns a thinking model's reasoning in a top-level `reasoning` field
19
- // that the ChatOpenAI completions converter drops. `__includeRawResponse` stashes the raw
20
- // provider response under `additional_kwargs.__raw_response`, which GthAbstractAgent reads
21
- // (`choices[0].delta.reasoning`) to populate the /reasoning panel. Kept opt-out via config.
22
- __includeRawResponse: llmConfig.__includeRawResponse ?? true,
23
- configuration: {
24
- baseURL: 'https://openrouter.ai/api/v1',
25
- ...(llmConfig.configuration || {}),
26
- defaultHeaders: {
27
- 'HTTP-Referer': 'https://gauntsloth.app/',
28
- 'X-Title': 'Gaunt Sloth',
29
- },
30
- },
31
- };
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- delete configFields.type;
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
- delete configFields.apiKeyEnvironmentVariable;
36
- return new ChatOpenAI(configFields);
21
+ siteUrl: resolvedSiteUrl,
22
+ siteName: resolvedSiteName,
23
+ ...(configObj?.baseURL ? { baseURL: configObj.baseURL } : {}),
24
+ });
37
25
  }
38
26
  function getApiKey(llmConfig) {
39
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
- const conf = llmConfig;
41
- if (conf.apiKeyEnvironmentVariable && env[conf.apiKeyEnvironmentVariable]) {
42
- return env[conf.apiKeyEnvironmentVariable];
43
- }
44
- else {
45
- return llmConfig.apiKey || env.OPEN_ROUTER_API_KEY || env.OPENROUTER_API_KEY;
27
+ const envVarName = llmConfig.apiKeyEnvironmentVariable;
28
+ if (envVarName && env[envVarName]) {
29
+ return env[envVarName];
46
30
  }
31
+ return (llmConfig.apiKey || env.OPEN_ROUTER_API_KEY || env.OPENROUTER_API_KEY);
47
32
  }
48
33
  export function init(configFileName, force = false, model) {
49
34
  // Determine which content to use based on file extension
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAQhD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEnG,qEAAqE;AACrE,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAmE;IAEnE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACzD,wEAAwE;IACxE,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG;QACnB,GAAG,SAAS;QACZ,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,uBAAuB,CAAC,YAAY,CAAC;QAC/D,6FAA6F;QAC7F,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,oBAAoB,EAAE,SAAS,CAAC,oBAAoB,IAAI,IAAI;QAC5D,aAAa,EAAE;YACb,OAAO,EAAE,8BAA8B;YACvC,GAAG,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;YAClC,cAAc,EAAE;gBACd,cAAc,EAAE,yBAAyB;gBACzC,SAAS,EAAE,aAAa;aACzB;SACF;KACF,CAAC;IACF,8DAA8D;IAC9D,OAAQ,YAAoB,CAAC,IAAI,CAAC;IAClC,8DAA8D;IAC9D,OAAQ,YAAoB,CAAC,yBAAyB,CAAC;IACvD,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,SAAmE;IACpF,8DAA8D;IAC9D,MAAM,IAAI,GAAG,SAA0C,CAAC;IACxD,IAAI,IAAI,CAAC,yBAAyB,IAAI,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC1E,OAAO,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,kBAAkB,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,cAAsB,EAAE,KAAK,GAAG,KAAK,EAAE,KAAc;IACxE,yDAAyD;IACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,2BAA2B,CAAC,cAAc,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAChG,cAAc,CACZ,yBAAyB,cAAc,uBAAuB;QAC5D,qDAAqD,CACxD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAOhD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEnG,qEAAqE;AACrE,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAA8E;IAE9E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEjE,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,EACJ,IAAI,EAAE,KAAK,EACX,yBAAyB,EAAE,OAAO,EAClC,aAAa,EACb,OAAO,EACP,QAAQ,EACR,GAAG,UAAU,EACd,GAAG,SAAS,CAAC;IAEd,MAAM,SAAS,GAAG,aACyD,CAAC;IAE5E,MAAM,eAAe,GACnB,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,CAAC,cAAc,CAAC,IAAI,yBAAyB,CAAC;IACtF,MAAM,gBAAgB,GAAG,QAAQ,IAAI,SAAS,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;IAE7F,OAAO,IAAI,cAAc,CAAC;QACxB,GAAG,UAAU;QACb,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,uBAAuB,CAAC,YAAY,CAAC;QAC/D,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,gBAAgB;QAC1B,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,SAAkC;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,yBAA+C,CAAC;IAC7E,IAAI,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CACJ,SAAS,CAAC,MAA6B,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,kBAAkB,CAC9F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,cAAsB,EAAE,KAAK,GAAG,KAAK,EAAE,KAAc;IACxE,yDAAyD;IACzD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,2BAA2B,CAAC,cAAc,EAAE,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAChG,cAAc,CACZ,yBAAyB,cAAc,uBAAuB;QAC5D,qDAAqD,CACxD,CAAC;AACJ,CAAC"}
@@ -18,6 +18,7 @@
18
18
  * later be refactored to delegate to this primitive — out of scope here.
19
19
  */
20
20
  import { HumanMessage, SystemMessage } from '@langchain/core/messages';
21
+ import { structuredOutputBoundary } from '#src/runtime/structuredOutput.js';
21
22
  /**
22
23
  * Default wall-clock budget (ms) for the structured LLM call — same value as their
23
24
  * `EVAL_JUDGE_DEFAULT_TIMEOUT_MS` / `JUDGE_DEFAULT_TIMEOUT_MS`, kept as this module's own constant
@@ -47,10 +48,11 @@ export async function askStructured(schema, opts) {
47
48
  }
48
49
  let timer;
49
50
  try {
50
- // `withStructuredOutput`'s output type is constrained to a record shape, but the schema here is
51
- // an unconstrained `z.ZodType<T>`; the cast is sound because we re-validate the result with
52
- // `schema.safeParse` below (a fake or misbehaving model could return a non-conforming object).
53
- const structured = model.withStructuredOutput(schema);
51
+ // EXT-88 caller schemas are arbitrary, so this is the call site with the widest exposure to
52
+ // the optional-field problem the boundary exists for; it also does the defensive re-validation
53
+ // below, against the caller's own schema, so `<T>` is exactly what the caller declared.
54
+ const boundary = structuredOutputBoundary(schema);
55
+ const structured = model.withStructuredOutput(boundary.wireSchema);
54
56
  const invokePromise = structured.invoke([new SystemMessage(system), new HumanMessage(user)]);
55
57
  const TIMEOUT = Symbol('ask-structured-timeout');
56
58
  const timeoutPromise = new Promise((resolve) => {
@@ -60,7 +62,7 @@ export async function askStructured(schema, opts) {
60
62
  if (raced === TIMEOUT) {
61
63
  return { ok: false, error: `Structured call timed out after ${timeoutMs}ms.` };
62
64
  }
63
- const parsed = schema.safeParse(raced);
65
+ const parsed = boundary.safeParse(raced);
64
66
  if (!parsed.success) {
65
67
  return { ok: false, error: 'Model returned unparseable output.' };
66
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"askStructured.js","sourceRoot":"","sources":["../../src/runtime/askStructured.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAmBxD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,IAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iCAAiC,CAAC;IAEtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,gGAAgG;QAChG,4FAA4F;QAC5F,+FAA+F;QAC/F,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAA4C,CAAC,CAAC;QAC5F,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;YAC7D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,SAAS,KAAK,EAAE,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACtF,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"askStructured.js","sourceRoot":"","sources":["../../src/runtime/askStructured.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAmBxD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAoB,EACpB,IAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,iCAAiC,CAAC;IAEtE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;IACzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,8FAA8F;QAC9F,+FAA+F;QAC/F,wFAAwF;QACxF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7F,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,EAAE;YAC7D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,SAAS,KAAK,EAAE,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACtF,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @module runtime/structuredOutput
3
+ *
4
+ * EXT-88 — the **`withStructuredOutput` boundary**. Every `withStructuredOutput` call in this
5
+ * project goes through {@link structuredOutputBoundary}: `rateShellCommand` (the approvals rater),
6
+ * {@link askStructured} (arbitrary caller schemas, including `gth workflow` scripts) and
7
+ * `@gaunt-sloth/batch`'s eval judge. Review's rating step is deliberately not one of them — it
8
+ * reaches its schema through a bound TOOL, which is a different path with different rules.
9
+ *
10
+ * ## The problem it exists to solve
11
+ *
12
+ * A single Zod object normally does two jobs at once — it is converted into the JSON Schema the
13
+ * provider is sent, and it validates the answer that comes back. Those two jobs want **opposite**
14
+ * things from an optional field, and Zod has only one knob for both:
15
+ *
16
+ * - **On the wire**, OpenAI's strict `json_schema` rule is *"`required` must be supplied and must
17
+ * include every key in `properties`"*. A `.optional()` field is left out of `required`, and the
18
+ * OpenAI API rejects the whole request with `400 Invalid schema for response_format`. Optionality
19
+ * there is spelled as a **nullable type on a required key**, not as an absent key.
20
+ * - **On the way back**, providers do not agree. Some (ChatGroq) rewrite the schema themselves so
21
+ * every property is required-and-nullable, and their models answer `null`. Others (Anthropic,
22
+ * Google GenAI, Ollama) leave the field genuinely optional and their models may simply omit it.
23
+ * Zod's `.optional()` admits `undefined` and **not** `null`, so the first group's answer is
24
+ * rejected by the very schema that asked for it — and the caller sees a parse failure that looks
25
+ * like a bad model rather than a self-contradicting request.
26
+ *
27
+ * ## The shape that satisfies both
28
+ *
29
+ * For every field the caller declared `.optional()`, the boundary sends
30
+ * `inner.nullable().prefault(null)` instead. That one node is the wire/validation twin:
31
+ *
32
+ * - **Wire** — `prefault` does not change the parsed *output* type, so the key lands in `required`
33
+ * and its type is `["string","null"]` / `anyOf: [T, null]`. Strict mode is satisfied, and the
34
+ * model is given a legal way to say "nothing here". Unlike `.default()`, `prefault` emits **no
35
+ * `default` keyword** into the JSON Schema, so nothing extra is added to what the provider sees.
36
+ * - **Validation** — the same node accepts the value, accepts `null`, and accepts the key being
37
+ * **missing** (which is what `prefault` supplies the `null` for). All three arms are needed: the
38
+ * third is what keeps the providers that do *not* hoist working.
39
+ *
40
+ * The `null` never escapes: {@link StructuredOutputBoundary.safeParse} strips it back to the key
41
+ * being **absent** and then validates with the caller's **original** schema, so the parsed type is
42
+ * exactly what the caller declared — an optional string stays `string | undefined` and never
43
+ * becomes `string | null | undefined`.
44
+ *
45
+ * ## Two properties that must not be lost in a "simplification"
46
+ *
47
+ * - **Every `.describe()` survives into the emitted JSON Schema.** The descriptions are the only
48
+ * place the model is told what the fields mean. Expressing the null-to-absent step with
49
+ * `.transform()` on the field is the obvious-looking alternative and it costs the field its
50
+ * description — worse, the conversion OpenAI's path uses refuses to represent a transform at all.
51
+ * Normalization therefore happens in **code**, after the parse, never in the schema.
52
+ * - **A genuinely malformed answer still fails.** This boundary removes a *false* parse failure; it
53
+ * is not a blanket "accept anything". A wrong type in an optional field is still rejected, because
54
+ * the final validation is the caller's own untouched schema. In particular `.catch()` must not be
55
+ * used to express any of this — it would swallow real failures.
56
+ *
57
+ * ## Coverage, and the deliberate limits
58
+ *
59
+ * The rewrite descends through objects, arrays, tuples, records and the single-child wrappers
60
+ * (`nullable`, `readonly`, `default`, `prefault`, `nonoptional`), so an optional nested inside an
61
+ * object inside an array is handled.
62
+ *
63
+ * It deliberately stops at **unions** (including discriminated unions), **intersections**, `lazy`,
64
+ * `map`, `set`, `pipe`/`transform` and `custom`, leaving those subtrees exactly as the caller wrote
65
+ * them, and it leaves a **recursive** schema alone in its entirety. The reason is one rule: the
66
+ * rewrite and the normalization must cover **precisely the same set**. At a union the incoming value
67
+ * gives no reliable answer to *which branch was taken*, so a `null` could not be stripped back out;
68
+ * rewriting there while being unable to normalize would manufacture the very parse failure this
69
+ * module removes. Recursion is refused for the neighbouring reason — a rewrite that stopped at the
70
+ * cycle would make a key required at one depth and optional at the next, which satisfies no
71
+ * provider's strict rule and is harder to reason about than the caller's own schema.
72
+ *
73
+ * An optional inside one of those constructs keeps today's behaviour — correct everywhere it is
74
+ * correct today, and still rejected by OpenAI's strict rule, which is a visible error rather than a
75
+ * silent one.
76
+ */
77
+ import * as z from 'zod';
78
+ /**
79
+ * The two halves of one structured-output call: what to send, and how to read the answer.
80
+ *
81
+ * @typeParam T The caller's own parsed type — unchanged by the boundary.
82
+ */
83
+ export interface StructuredOutputBoundary<T> {
84
+ /**
85
+ * The schema to hand to `model.withStructuredOutput(...)`. Identical (by reference) to the
86
+ * caller's schema when it contains no optional field, so a schema that never had the problem is
87
+ * sent byte-for-byte as it is today.
88
+ */
89
+ wireSchema: z.ZodType<Record<string, unknown>>;
90
+ /**
91
+ * Validate a model answer: normalize every `null` that stands for "no value" back to the key being
92
+ * absent, then validate with the caller's **original** schema. Never throws — a malformed answer
93
+ * comes back as `success: false`, exactly as `schema.safeParse` would.
94
+ */
95
+ safeParse(raw: unknown): z.ZodSafeParseResult<T>;
96
+ }
97
+ /**
98
+ * Build the {@link StructuredOutputBoundary} for a schema — the one entry point every
99
+ * `withStructuredOutput` call in this project goes through. See the module doc for what it does and
100
+ * why.
101
+ *
102
+ * @param schema The caller's schema, used unchanged for the final validation.
103
+ */
104
+ export declare function structuredOutputBoundary<T>(schema: z.ZodType<T>): StructuredOutputBoundary<T>;
@@ -0,0 +1,393 @@
1
+ /**
2
+ * @module runtime/structuredOutput
3
+ *
4
+ * EXT-88 — the **`withStructuredOutput` boundary**. Every `withStructuredOutput` call in this
5
+ * project goes through {@link structuredOutputBoundary}: `rateShellCommand` (the approvals rater),
6
+ * {@link askStructured} (arbitrary caller schemas, including `gth workflow` scripts) and
7
+ * `@gaunt-sloth/batch`'s eval judge. Review's rating step is deliberately not one of them — it
8
+ * reaches its schema through a bound TOOL, which is a different path with different rules.
9
+ *
10
+ * ## The problem it exists to solve
11
+ *
12
+ * A single Zod object normally does two jobs at once — it is converted into the JSON Schema the
13
+ * provider is sent, and it validates the answer that comes back. Those two jobs want **opposite**
14
+ * things from an optional field, and Zod has only one knob for both:
15
+ *
16
+ * - **On the wire**, OpenAI's strict `json_schema` rule is *"`required` must be supplied and must
17
+ * include every key in `properties`"*. A `.optional()` field is left out of `required`, and the
18
+ * OpenAI API rejects the whole request with `400 Invalid schema for response_format`. Optionality
19
+ * there is spelled as a **nullable type on a required key**, not as an absent key.
20
+ * - **On the way back**, providers do not agree. Some (ChatGroq) rewrite the schema themselves so
21
+ * every property is required-and-nullable, and their models answer `null`. Others (Anthropic,
22
+ * Google GenAI, Ollama) leave the field genuinely optional and their models may simply omit it.
23
+ * Zod's `.optional()` admits `undefined` and **not** `null`, so the first group's answer is
24
+ * rejected by the very schema that asked for it — and the caller sees a parse failure that looks
25
+ * like a bad model rather than a self-contradicting request.
26
+ *
27
+ * ## The shape that satisfies both
28
+ *
29
+ * For every field the caller declared `.optional()`, the boundary sends
30
+ * `inner.nullable().prefault(null)` instead. That one node is the wire/validation twin:
31
+ *
32
+ * - **Wire** — `prefault` does not change the parsed *output* type, so the key lands in `required`
33
+ * and its type is `["string","null"]` / `anyOf: [T, null]`. Strict mode is satisfied, and the
34
+ * model is given a legal way to say "nothing here". Unlike `.default()`, `prefault` emits **no
35
+ * `default` keyword** into the JSON Schema, so nothing extra is added to what the provider sees.
36
+ * - **Validation** — the same node accepts the value, accepts `null`, and accepts the key being
37
+ * **missing** (which is what `prefault` supplies the `null` for). All three arms are needed: the
38
+ * third is what keeps the providers that do *not* hoist working.
39
+ *
40
+ * The `null` never escapes: {@link StructuredOutputBoundary.safeParse} strips it back to the key
41
+ * being **absent** and then validates with the caller's **original** schema, so the parsed type is
42
+ * exactly what the caller declared — an optional string stays `string | undefined` and never
43
+ * becomes `string | null | undefined`.
44
+ *
45
+ * ## Two properties that must not be lost in a "simplification"
46
+ *
47
+ * - **Every `.describe()` survives into the emitted JSON Schema.** The descriptions are the only
48
+ * place the model is told what the fields mean. Expressing the null-to-absent step with
49
+ * `.transform()` on the field is the obvious-looking alternative and it costs the field its
50
+ * description — worse, the conversion OpenAI's path uses refuses to represent a transform at all.
51
+ * Normalization therefore happens in **code**, after the parse, never in the schema.
52
+ * - **A genuinely malformed answer still fails.** This boundary removes a *false* parse failure; it
53
+ * is not a blanket "accept anything". A wrong type in an optional field is still rejected, because
54
+ * the final validation is the caller's own untouched schema. In particular `.catch()` must not be
55
+ * used to express any of this — it would swallow real failures.
56
+ *
57
+ * ## Coverage, and the deliberate limits
58
+ *
59
+ * The rewrite descends through objects, arrays, tuples, records and the single-child wrappers
60
+ * (`nullable`, `readonly`, `default`, `prefault`, `nonoptional`), so an optional nested inside an
61
+ * object inside an array is handled.
62
+ *
63
+ * It deliberately stops at **unions** (including discriminated unions), **intersections**, `lazy`,
64
+ * `map`, `set`, `pipe`/`transform` and `custom`, leaving those subtrees exactly as the caller wrote
65
+ * them, and it leaves a **recursive** schema alone in its entirety. The reason is one rule: the
66
+ * rewrite and the normalization must cover **precisely the same set**. At a union the incoming value
67
+ * gives no reliable answer to *which branch was taken*, so a `null` could not be stripped back out;
68
+ * rewriting there while being unable to normalize would manufacture the very parse failure this
69
+ * module removes. Recursion is refused for the neighbouring reason — a rewrite that stopped at the
70
+ * cycle would make a key required at one depth and optional at the next, which satisfies no
71
+ * provider's strict rule and is harder to reason about than the caller's own schema.
72
+ *
73
+ * An optional inside one of those constructs keeps today's behaviour — correct everywhere it is
74
+ * correct today, and still rejected by OpenAI's strict rule, which is a visible error rather than a
75
+ * silent one.
76
+ */
77
+ import * as z from 'zod';
78
+ /**
79
+ * A normalizer's answer for "this key must not be present at all" — distinct from `undefined`,
80
+ * because an object key explicitly set to `undefined` is still an own property and `Object.hasOwn`
81
+ * would report it. Callers must not have to learn a second spelling of "absent".
82
+ */
83
+ const ABSENT = Symbol('structured-output-absent');
84
+ function defOf(schema) {
85
+ return schema._zod.def;
86
+ }
87
+ /**
88
+ * Rebuild `schema` with part of its definition replaced, keeping everything else — the checks
89
+ * (`minItems`, `minimum`, …) and the registered `.describe()` metadata. Built from Zod's own clone
90
+ * rather than by calling `z.object(...)` / `z.array(...)` afresh, because re-constructing would
91
+ * silently drop those constraints from the schema the provider is sent.
92
+ *
93
+ * The metadata is copied through the registry rather than by cloning with Zod's `parent` option.
94
+ * A parent link is how Zod represents "the same schema, re-described", and its JSON-Schema emitter
95
+ * honours that by emitting a **`$ref` to the parent** with the differences as sibling keys. For a
96
+ * rewritten object that is actively wrong: the `$ref` would point at a definition still carrying the
97
+ * ORIGINAL `required` list — the one missing exactly the optional key this module exists to hoist —
98
+ * and `$ref`-with-siblings is not accepted by every provider's strict mode. Copying the metadata
99
+ * leaves the clone an independent schema, which is what it actually is.
100
+ */
101
+ function cloneWith(schema, patch) {
102
+ const next = { ...defOf(schema), ...patch };
103
+ const cloned = z.core.clone(schema, next);
104
+ const meta = z.globalRegistry.get(schema);
105
+ if (meta)
106
+ z.globalRegistry.add(cloned, meta);
107
+ return cloned;
108
+ }
109
+ function isRecord(value) {
110
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
111
+ }
112
+ /**
113
+ * `.optional()` → `inner.nullable().prefault(null)`, plus the normalizer that puts it back.
114
+ *
115
+ * The description is re-stated on the nullable wrapper so it lands at **field level** in the emitted
116
+ * JSON Schema whichever way the caller spelled it (`z.string().describe(D).optional()` carries it on
117
+ * the inner type, `z.string().optional().describe(D)` on the wrapper).
118
+ *
119
+ * `null` is only stripped where the caller's own declaration gives it no meaning. A field written
120
+ * `z.string().nullable().optional()` asked for `null` to be a value in its own right, so it keeps
121
+ * it; only a plain `.optional()`, for which `null` was never a legal answer and can only have come
122
+ * from the required-and-nullable rewrite, collapses to the key being absent.
123
+ */
124
+ function walkOptional(schema, def) {
125
+ const inner = def.innerType;
126
+ const innerWalk = walk(inner);
127
+ const description = schema.description ?? inner.description;
128
+ const nullIsMeaningful = inner.safeParse(null).success;
129
+ // A field that already admits `null` needs no second nullable wrapper — one would emit a nested
130
+ // `anyOf` inside an `anyOf` that says nothing the inner one does not.
131
+ let nullable = nullIsMeaningful ? innerWalk.schema : innerWalk.schema.nullable();
132
+ if (description !== undefined)
133
+ nullable = nullable.describe(description);
134
+ const wireSchema = nullable.prefault(null);
135
+ const innerNormalize = innerWalk.normalize;
136
+ const normalize = (value) => {
137
+ if (value === undefined)
138
+ return ABSENT;
139
+ if (value === null)
140
+ return nullIsMeaningful ? null : ABSENT;
141
+ return innerNormalize ? innerNormalize(value) : value;
142
+ };
143
+ return { schema: wireSchema, normalize };
144
+ }
145
+ function walkObject(schema, def) {
146
+ const shape = def.shape ?? {};
147
+ const nextShape = {};
148
+ const normalizers = [];
149
+ let changed = false;
150
+ for (const [key, field] of Object.entries(shape)) {
151
+ const result = walk(field);
152
+ nextShape[key] = result.schema;
153
+ if (result.schema !== field)
154
+ changed = true;
155
+ if (result.normalize)
156
+ normalizers.push([key, result.normalize]);
157
+ }
158
+ if (!changed && normalizers.length === 0)
159
+ return { schema };
160
+ const normalize = (value) => {
161
+ if (!isRecord(value))
162
+ return value;
163
+ const out = { ...value };
164
+ for (const [key, normalizeField] of normalizers) {
165
+ if (!Object.hasOwn(out, key))
166
+ continue;
167
+ const normalized = normalizeField(out[key]);
168
+ if (normalized === ABSENT)
169
+ delete out[key];
170
+ else
171
+ out[key] = normalized;
172
+ }
173
+ return out;
174
+ };
175
+ return { schema: changed ? cloneWith(schema, { shape: nextShape }) : schema, normalize };
176
+ }
177
+ function walkArray(schema, def) {
178
+ const element = def.element;
179
+ const result = walk(element);
180
+ if (result.schema === element && !result.normalize)
181
+ return { schema };
182
+ const normalizeElement = result.normalize;
183
+ const normalize = normalizeElement
184
+ ? (value) => {
185
+ if (!Array.isArray(value))
186
+ return value;
187
+ return value.map((item) => {
188
+ const normalized = normalizeElement(item);
189
+ // An element position has no key to remove, so "absent" degrades to `undefined` — which
190
+ // is what an optional element schema accepts anyway.
191
+ return normalized === ABSENT ? undefined : normalized;
192
+ });
193
+ }
194
+ : undefined;
195
+ return {
196
+ schema: result.schema === element ? schema : cloneWith(schema, { element: result.schema }),
197
+ normalize,
198
+ };
199
+ }
200
+ function walkTuple(schema, def) {
201
+ const items = def.items ?? [];
202
+ const rest = def.rest ?? null;
203
+ const itemResults = items.map((item) => walk(item));
204
+ const restResult = rest ? walk(rest) : undefined;
205
+ const changed = itemResults.some((result, index) => result.schema !== items[index]) ||
206
+ (restResult !== undefined && rest !== null && restResult.schema !== rest);
207
+ const needsNormalize = itemResults.some((result) => result.normalize) || restResult?.normalize !== undefined;
208
+ if (!changed && !needsNormalize)
209
+ return { schema };
210
+ const normalize = needsNormalize
211
+ ? (value) => {
212
+ if (!Array.isArray(value))
213
+ return value;
214
+ return value.map((item, index) => {
215
+ // Gate on POSITION: a prefix item is normalized by its own item schema and never by the
216
+ // rest schema, which describes a different position entirely.
217
+ const normalizeItem = index < items.length ? itemResults[index]?.normalize : restResult?.normalize;
218
+ if (!normalizeItem)
219
+ return item;
220
+ const normalized = normalizeItem(item);
221
+ return normalized === ABSENT ? undefined : normalized;
222
+ });
223
+ }
224
+ : undefined;
225
+ return {
226
+ schema: changed
227
+ ? cloneWith(schema, {
228
+ items: itemResults.map((result) => result.schema),
229
+ rest: restResult ? restResult.schema : rest,
230
+ })
231
+ : schema,
232
+ normalize,
233
+ };
234
+ }
235
+ function walkRecord(schema, def) {
236
+ const valueType = def.valueType;
237
+ const result = walk(valueType);
238
+ if (result.schema === valueType && !result.normalize)
239
+ return { schema };
240
+ const normalizeValue = result.normalize;
241
+ const normalize = normalizeValue
242
+ ? (value) => {
243
+ if (!isRecord(value))
244
+ return value;
245
+ const out = {};
246
+ for (const [key, item] of Object.entries(value)) {
247
+ const normalized = normalizeValue(item);
248
+ if (normalized !== ABSENT)
249
+ out[key] = normalized;
250
+ }
251
+ return out;
252
+ }
253
+ : undefined;
254
+ return {
255
+ schema: result.schema === valueType ? schema : cloneWith(schema, { valueType: result.schema }),
256
+ normalize,
257
+ };
258
+ }
259
+ /**
260
+ * The single-child wrappers: `nullable`, `readonly`, `default`, `prefault`, `nonoptional`.
261
+ *
262
+ * A wrapper is **transparent to optionality**. `z.string().optional().default('foo')` is still sent
263
+ * as a required key typed `anyOf: [T, null]`, so a `null` arriving here is the wire's "nothing here"
264
+ * and must reach the inner normalizer that knows how to remove it. Passing every `null` straight
265
+ * through instead would advertise `null` to the provider and then reject the one it sends — the same
266
+ * self-contradiction this module exists to remove, one wrapper deep. What "absent" then means is the
267
+ * caller's own business, because the final validation is the caller's untouched schema: under
268
+ * `.default('foo')` it resolves to `'foo'`, under `.readonly()` the key simply stays absent.
269
+ *
270
+ * The exception is a wrapper that makes `null` a value in its own right — the caller wrote
271
+ * `.nullable()` **outside** the optional. That is the question {@link walkOptional} asks of its own
272
+ * inner type, asked one level up, and it is what keeps the two spellings of nullable-and-optional
273
+ * from disagreeing about the same field.
274
+ *
275
+ * `undefined` is passed through rather than being given a second meaning here: the wire never
276
+ * produces one (`prefault` supplies `null` for a missing key), and a genuinely missing object key
277
+ * never reaches a field normalizer at all — {@link walkObject} skips it.
278
+ */
279
+ function walkWrapper(schema, def) {
280
+ const inner = def.innerType;
281
+ const result = walk(inner);
282
+ if (result.schema === inner && !result.normalize)
283
+ return { schema };
284
+ const innerNormalize = result.normalize;
285
+ const nullIsMeaningful = innerNormalize !== undefined && schema.safeParse(null).success;
286
+ const normalize = innerNormalize
287
+ ? (value) => {
288
+ if (value === undefined)
289
+ return value;
290
+ if (value === null && nullIsMeaningful)
291
+ return null;
292
+ return innerNormalize(value);
293
+ }
294
+ : undefined;
295
+ return {
296
+ schema: result.schema === inner ? schema : cloneWith(schema, { innerType: result.schema }),
297
+ normalize,
298
+ };
299
+ }
300
+ /**
301
+ * Thrown when the walk re-enters a schema it is already inside, i.e. the caller's schema is
302
+ * recursive. Caught in {@link structuredOutputBoundary}, which then leaves the whole schema alone —
303
+ * see the module doc's limits.
304
+ */
305
+ const CYCLIC = Symbol('structured-output-cyclic');
306
+ /** The schemas the current walk is inside. A node reached twice on one path is a cycle. */
307
+ const inProgress = new WeakSet();
308
+ /**
309
+ * Rewrite one node. Every branch here has a matching arm in the normalizer it returns — the two
310
+ * halves are produced by the **same** walk precisely so their coverage cannot drift apart. Anything
311
+ * not listed is returned untouched, with no normalizer.
312
+ *
313
+ * A **recursive** schema aborts the whole walk rather than being partly rewritten. Zod spells
314
+ * recursion as a getter in an object's shape, which reads as an ordinary `object` here and would
315
+ * otherwise descend for ever. Rewriting only the levels reached before the cycle would put an
316
+ * optional key in `required` at one depth and leave it out at the next — an inconsistency that
317
+ * satisfies no provider's strict rule while making the emitted schema harder to reason about than
318
+ * the caller's own.
319
+ */
320
+ function walk(schema) {
321
+ if (inProgress.has(schema))
322
+ throw CYCLIC;
323
+ inProgress.add(schema);
324
+ try {
325
+ return walkNode(schema);
326
+ }
327
+ finally {
328
+ inProgress.delete(schema);
329
+ }
330
+ }
331
+ function walkNode(schema) {
332
+ const def = defOf(schema);
333
+ switch (def.type) {
334
+ case 'optional':
335
+ return walkOptional(schema, def);
336
+ case 'object':
337
+ return walkObject(schema, def);
338
+ case 'array':
339
+ return walkArray(schema, def);
340
+ case 'tuple':
341
+ return walkTuple(schema, def);
342
+ case 'record':
343
+ return walkRecord(schema, def);
344
+ case 'nullable':
345
+ case 'readonly':
346
+ case 'default':
347
+ case 'prefault':
348
+ case 'nonoptional':
349
+ return walkWrapper(schema, def);
350
+ default:
351
+ return { schema };
352
+ }
353
+ }
354
+ /**
355
+ * Memoized per schema instance. Repeated calls with the same schema — the common case, since call
356
+ * sites hold a module-level schema constant — return the same `wireSchema` reference, which is what
357
+ * LangChain's own JSON-Schema conversion cache is keyed on.
358
+ */
359
+ const boundaries = new WeakMap();
360
+ /**
361
+ * Build the {@link StructuredOutputBoundary} for a schema — the one entry point every
362
+ * `withStructuredOutput` call in this project goes through. See the module doc for what it does and
363
+ * why.
364
+ *
365
+ * @param schema The caller's schema, used unchanged for the final validation.
366
+ */
367
+ export function structuredOutputBoundary(schema) {
368
+ const cached = boundaries.get(schema);
369
+ if (cached)
370
+ return cached;
371
+ let walked;
372
+ try {
373
+ walked = walk(schema);
374
+ }
375
+ catch (error) {
376
+ // A recursive schema is left exactly as the caller wrote it — the same answer this module gives
377
+ // for a union, and for the same reason: it will not rewrite what it cannot also normalize.
378
+ if (error !== CYCLIC)
379
+ throw error;
380
+ walked = { schema: schema };
381
+ }
382
+ const normalize = walked.normalize;
383
+ const boundary = {
384
+ wireSchema: walked.schema,
385
+ safeParse(raw) {
386
+ const normalized = normalize ? normalize(raw) : raw;
387
+ return schema.safeParse(normalized === ABSENT ? undefined : normalized);
388
+ },
389
+ };
390
+ boundaries.set(schema, boundary);
391
+ return boundary;
392
+ }
393
+ //# sourceMappingURL=structuredOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredOutput.js","sourceRoot":"","sources":["../../src/runtime/structuredOutput.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaunt-sloth/core",
3
- "version": "2.0.0-alpha.27",
3
+ "version": "2.0.0-alpha.28",
4
4
  "description": "Core utilities and types for Gaunt Sloth",
5
5
  "license": "MIT",
6
6
  "author": "Andrew Kondratev",
@@ -45,6 +45,7 @@
45
45
  "@langchain/groq": "^1.3.0",
46
46
  "@langchain/ollama": "^1.3.0",
47
47
  "@langchain/openai": "^1.5.1",
48
+ "@langchain/openrouter": "^0.4.5",
48
49
  "@langchain/xai": "^1.4.1"
49
50
  },
50
51
  "peerDependenciesMeta": {
@@ -66,6 +67,9 @@
66
67
  "@langchain/openai": {
67
68
  "optional": true
68
69
  },
70
+ "@langchain/openrouter": {
71
+ "optional": true
72
+ },
69
73
  "@langchain/xai": {
70
74
  "optional": true
71
75
  }