@nexalab/agent-sdk 0.1.7 → 0.1.8

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.
@@ -92,6 +92,31 @@ export declare class GuidedFlowRuntime {
92
92
  }): Promise<GuidedFlow | undefined>;
93
93
  runTurn(input: GuidedFlowTurnInput): Promise<GuidedFlowTurnOutcome>;
94
94
  private driveFlow;
95
+ /** The model-driven reply pass: composes text and may call the active step's tools. Only reached when a step has no `prompt`, or does but still has tools available (e.g. a validation step, which needs the model to react to a tool result/error dynamically). */
96
+ private runReplyPass;
97
+ /**
98
+ * Deterministically calls a step's single applicable tool when its arguments are fully
99
+ * resolvable without asking a model to decide anything. Covers two shapes:
100
+ *
101
+ * 1. A silent tool-only step (no `collect`, exactly one required tool) where every input
102
+ * property already resolves to a known value in `state` (matched by property name,
103
+ * case-insensitively — the generator's convention of lowercase-flattened field names makes
104
+ * this a reliable match in practice).
105
+ * 2. A `collect` step whose only useful action is resolving the user's free text against a
106
+ * dynamic list (an address, a product, a time slot): exactly one tool in `tools.allowed`
107
+ * has a `verbatimTextArg` mapping configured. Which tool to call isn't ambiguous and the
108
+ * argument that matters most — the user's own words — is already pinned to the raw turn
109
+ * text, so there's nothing left for a model to compose either. (Caught live: asked to do
110
+ * the exact same thing, a model sometimes narrates — "voy a consultar..." — instead of
111
+ * actually emitting the tool call, leaving the user with a blank reply.)
112
+ *
113
+ * Returns `undefined` — never partially constructed input — the moment any other required
114
+ * property can't be confidently resolved, so the caller falls back to the model-driven
115
+ * `runReplyPass` exactly as before. Bypasses the harness too: this never asks a model
116
+ * anything, so a custom `ModelHarness` has nothing to intercept here (same reasoning as the
117
+ * `step.prompt` verbatim path).
118
+ */
119
+ private tryAutoInvokeRequiredTool;
95
120
  private applyPatch;
96
121
  private announceStepChange;
97
122
  private forwardNativeEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/guided-flows/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAEV,cAAc,EACd,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,0BAA0B,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7H,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,mMAAmM;IACnM,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAWlG;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,wBAAwB;IAE9D,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,GAAG;IAIX,6JAA6J;YAC/I,QAAQ;IAKhB,UAAU,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA4BtI,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAO3D,SAAS;YAgOT,UAAU;YA0CV,kBAAkB;IAoBhC,OAAO,CAAC,kBAAkB;IAuBpB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAW3G,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkClJ,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CAKpH"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/guided-flows/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { z } from "zod";
2
3
  import { runNativeToolLoop } from "../native-tool-loop.js";
3
4
  import { namespaceKey } from "../tenancy.js";
4
5
  import { parseStructuredOutput, structuredOutputInstruction } from "../structured-output.js";
@@ -8,6 +9,9 @@ import { diffRequirements, evaluateRequirements } from "./requirements.js";
8
9
  import { missingCollectFields, resolveActiveStep } from "./steps.js";
9
10
  import { missingRequiredBeforeExitTools, missingRequiredTools, resolveStepTools } from "./tool-policy.js";
10
11
  import { publishFlowEvent } from "./events.js";
12
+ const MAX_REPLY_ROUNDS = 6;
13
+ /** Safety cap on how many consecutive silent tool-only steps a single turn can auto-chain through (see the loop in `driveFlow`). Prevents a misconfigured flow (e.g. two tool-only steps whose `when`/`exit` bounce between each other) from looping forever within one turn. */
14
+ const MAX_CHAIN_STEPS = 8;
11
15
  const ONGOING_STATUSES = ["active", "waiting_for_user", "waiting_for_tool", "waiting_for_approval"];
12
16
  function isOngoing(status) {
13
17
  return ONGOING_STATUSES.includes(status);
@@ -88,6 +92,15 @@ export class GuidedFlowRuntime {
88
92
  const runId = randomUUID();
89
93
  const now = () => new Date().toISOString();
90
94
  const existing = await this.options.store.getFlowState(key, flow.id);
95
+ // In a multi-flow agent, a flow with no prior state was necessarily just picked THIS turn by
96
+ // `selectFlow`'s trigger/flowSelector match (an already-ongoing flow always has `existing`
97
+ // state — see `selectFlow`, which returns any ongoing flow before ever consulting triggers).
98
+ // That means `input.text` is the phrase that CAUSED the routing, not an answer to whatever
99
+ // the newly-entered flow's first step asks. Reproduced live: a billing flow whose first step
100
+ // is a bare single-field `collect: ["idTicket"]` swallowed "quiero hacer una factura" itself
101
+ // as the ticket id. Single-flow agents are exempt: there's nothing else the message could be
102
+ // routing to, so treating turn one as a direct answer (no preceding question) is intentional.
103
+ const flowJustSelectedThisTurn = !existing && this.options.flows.length > 1;
91
104
  let record = existing ?? {
92
105
  flowId: flow.id,
93
106
  flowVersion: flow.version,
@@ -121,93 +134,195 @@ export class GuidedFlowRuntime {
121
134
  // --- Extraction sub-call: pull a Zod-validated partial state patch out of free text ---
122
135
  const modelPatchSchema = buildModelPatchSchema(config.stateSchema, config.protectedFields);
123
136
  let modelPatch = {};
124
- try {
125
- const extraction = await this.options.client.complete({
126
- providerId: this.options.providerId,
127
- model: this.options.model,
128
- messages: [
129
- {
130
- role: "system",
131
- content: `${buildGuidedInstructions(config, step, state, this.options.skills)}\n\n${structuredOutputInstruction(modelPatchSchema, "StatePatch")}\nOnly include fields the user explicitly provided in their latest message. Omit fields that are unknown, already known, or not mentioned.`
132
- },
133
- ...input.messages,
134
- { role: "user", content: input.text }
135
- ],
136
- ...(input.signal ? { signal: input.signal } : {})
137
- });
138
- const parsed = parseStructuredOutput(modelPatchSchema, extraction.text);
139
- if (parsed.ok)
140
- modelPatch = parsed.data;
141
- else {
137
+ // A step collecting a single enum field (a numbered choice, per `step.prompt`) has an
138
+ // unambiguous, mechanically checkable answer space — try matching the user's raw text
139
+ // against it (by list index, exact label, or an unambiguous partial match) before ever
140
+ // asking a model to "extract" it. Short colloquial answers ("si", "sip", a bare "1") are
141
+ // exactly where free-text extraction is least reliable — a model call can still say yes
142
+ // but then fail to produce the exact enum literal, or need several attempts. This can't
143
+ // drift that way because there's no free-text interpretation step to drift in; it either
144
+ // finds an unambiguous match or leaves `modelPatch` empty and falls through to the
145
+ // existing extraction call, unchanged from before.
146
+ // A step collecting a single PLAIN free-text field (a name, a comment — no enum, no tool
147
+ // that would need to compose or validate it) has nothing for a model to decide either: the
148
+ // only thing that could ever go there is exactly what the user just typed. Caught live: a
149
+ // model asked to extract a bare "Juan" into a single obvious `firstname` field sometimes
150
+ // just didn't — silently leaving it unset and re-showing the same prompt, for a case with no
151
+ // real ambiguity to weigh. See `singlePlainTextCollectField`'s doc comment for the (narrow)
152
+ // conditions this only ever applies under.
153
+ const deterministicChoice = flowJustSelectedThisTurn
154
+ ? undefined
155
+ : (matchSingleEnumChoice(config.stateSchema, step, input.text) ?? matchSinglePlainTextCollect(config.stateSchema, step, input.text));
156
+ if (deterministicChoice) {
157
+ modelPatch = deterministicChoice;
158
+ }
159
+ else {
160
+ // The current step's single enum `collect` field already went through every
161
+ // deterministic matching strategy above (index, exact label, unambiguous partial) and
162
+ // still found nothing — that's a bounded, mechanically-checkable answer space, so a
163
+ // model guessing at it afterwards can only do worse: it has no new information the
164
+ // deterministic pass didn't already have, just more room to hallucinate a plausible-
165
+ // sounding option the user never actually picked. Caught live: an unrelated word ("pedido")
166
+ // got the extraction call to silently invent a menu choice, skipping straight past the
167
+ // step that was supposed to show the menu at all. Excluding the field from the schema —
168
+ // rather than trusting "Only include fields explicitly provided" to hold — makes it
169
+ // structurally impossible for this one call to set it.
170
+ const enumCollectField = singleEnumCollectField(config.stateSchema, step);
171
+ const extractionSchema = enumCollectField ? modelPatchSchema.omit({ [enumCollectField]: true }) : modelPatchSchema;
172
+ try {
173
+ const extraction = await this.options.client.complete({
174
+ providerId: this.options.providerId,
175
+ model: this.options.model,
176
+ messages: [
177
+ {
178
+ role: "system",
179
+ content: `${buildGuidedInstructions(config, step, state, this.options.skills)}\n\n${structuredOutputInstruction(extractionSchema, "StatePatch")}\nOnly include fields the user explicitly provided in their latest message. Omit fields that are unknown, already known, or not mentioned.`
180
+ },
181
+ ...input.messages,
182
+ { role: "user", content: input.text }
183
+ ],
184
+ ...(input.signal ? { signal: input.signal } : {})
185
+ });
186
+ const parsed = parseStructuredOutput(extractionSchema, extraction.text, "StatePatch");
187
+ if (parsed.ok)
188
+ modelPatch = parsed.data;
189
+ else {
190
+ await this.announce(input.onEvent, {
191
+ type: "flow.validation.failed",
192
+ flowId: flow.id,
193
+ sessionId: key,
194
+ taskId,
195
+ runId,
196
+ payload: { stage: "extraction", reason: parsed.error }
197
+ });
198
+ }
199
+ }
200
+ catch (error) {
142
201
  await this.announce(input.onEvent, {
143
202
  type: "flow.validation.failed",
144
203
  flowId: flow.id,
145
204
  sessionId: key,
146
205
  taskId,
147
206
  runId,
148
- payload: { stage: "extraction", reason: parsed.error }
207
+ payload: { stage: "extraction", reason: error instanceof Error ? error.message : String(error) }
149
208
  });
150
209
  }
151
210
  }
152
- catch (error) {
153
- await this.announce(input.onEvent, {
154
- type: "flow.validation.failed",
155
- flowId: flow.id,
156
- sessionId: key,
157
- taskId,
158
- runId,
159
- payload: { stage: "extraction", reason: error instanceof Error ? error.message : String(error) }
160
- });
161
- }
162
211
  ({ state, requirements, step } = await this.applyPatch(flow, key, taskId, runId, config, state, { set: modelPatch, source: "model" }, requirements, input.onEvent));
163
- // --- Tool-scoped reply pass: never offers tools beyond the active step's policy ---
164
- const effectiveTools = resolveStepTools(this.options.toolRegistrations, step?.tools);
165
- const maxRounds = 6;
166
- const loopInput = {
167
- client: this.options.client,
168
- providerId: this.options.providerId,
169
- model: this.options.model,
170
- messages: [
171
- { role: "system", content: buildGuidedInstructions(config, step, state, this.options.skills) },
172
- ...input.messages,
173
- { role: "user", content: input.text }
174
- ],
175
- tools: effectiveTools,
176
- taskId,
177
- runId,
178
- maxRounds,
179
- onEvent: (event) => this.forwardNativeEvent(flow, key, taskId, runId, event, input.onEvent),
180
- ...(input.signal ? { signal: input.signal } : {})
181
- };
182
- const native = this.options.harness ? await this.options.harness.run(loopInput) : await runNativeToolLoop(loopInput);
183
- const activeStepId = step?.id;
184
- if (activeStepId)
185
- stepToolLog[activeStepId] = stepToolLog[activeStepId] ?? [];
212
+ // --- Tool-scoped reply pass, auto-chaining through consecutive silent tool-only steps ---
213
+ // A step whose only job is "run this required tool — nothing to ask the user" (no
214
+ // `collect`, no `prompt`, has `tools.required`) has no real turn boundary in the source
215
+ // flow: a Typebot conversion commonly chains e.g. `search-client` straight into
216
+ // `search-client-addresses` with no user input between them. Stopping the turn there
217
+ // anyway forces the model to invent SOME reply for a step it has nothing to say about
218
+ // (seen live: after finding the customer record, "¿qué te gustaría ordenar? 🍽️" instead of
219
+ // silently continuing to look up their addresses, like the original bot does). So keep
220
+ // resolving steps within this same turn invisibly to the caller — until landing on one
221
+ // that actually needs the user (has `collect` fields or a literal `prompt`), a tool
222
+ // requests approval, a step fails to advance, or a safety cap is hit. Only the final
223
+ // step's reply is ever shown; every silent step in between never surfaces its own text.
224
+ let currentStep = step;
225
+ let native = { text: "", messages: [], toolCalls: [], toolResults: [], rounds: 0 };
186
226
  let pendingApproval = false;
187
- for (const toolResult of native.toolResults) {
188
- if (toolResult.result.status === "pending_approval")
227
+ let activeStepId;
228
+ // Whether the very first step this turn resolves to (before any tool ran) is one the user
229
+ // was ALREADY sitting on — as opposed to one this turn's own extraction patch just walked
230
+ // them into (e.g. a single-enum step whose exit condition the deterministic matcher just
231
+ // satisfied). Matters only for the collect+verbatimTextArg auto-invoke path below: `rawText`
232
+ // is this turn's message, which was addressed to whatever step was active BEFORE this turn
233
+ // started — feeding it into a step reached for the first time this same turn (which hasn't
234
+ // even had a chance to ask its own question yet) would resolve a free-text tool against
235
+ // words that were never an answer to it. Reproduced live: confirming a previous step with
236
+ // "si" landed on a fresh date-collection step and immediately fed that same "si" into
237
+ // `delivery.validate_date`, which understandably found no date in it and left a blank reply.
238
+ // A brand new session (no prior turn at all — `previousStepId` undefined) is the one
239
+ // exception: there's no earlier step this message could have been misdirected from, so its
240
+ // very first step is fair game even on turn one. That exception does NOT hold when this flow
241
+ // was just entered THIS turn via multi-flow routing (`flowJustSelectedThisTurn`) — there
242
+ // `input.text` is the phrase that caused the routing, not an answer to this flow's own first
243
+ // question, same root cause as the `matchSinglePlainTextCollect` guard above.
244
+ const rawTextBelongsToStep = (previousStepId === undefined && !flowJustSelectedThisTurn) || step?.id === previousStepId;
245
+ for (let chainLength = 1; chainLength <= MAX_CHAIN_STEPS; chainLength += 1) {
246
+ activeStepId = currentStep?.id;
247
+ if (activeStepId)
248
+ stepToolLog[activeStepId] = stepToolLog[activeStepId] ?? [];
249
+ const effectiveTools = resolveStepTools(this.options.toolRegistrations, currentStep?.tools);
250
+ // A step with a literal `prompt` and zero available tools has nothing for the model to
251
+ // decide: there's no tool call it could make, and the only thing left to say is the
252
+ // step's own scripted text. Skip the reply-composition call entirely instead of trusting
253
+ // a model (any model, of any size) to faithfully reproduce that text rather than drift
254
+ // toward something plausible-sounding but off-script.
255
+ // A silent tool-only step (no `collect`, no `prompt`, exactly one required tool) has
256
+ // nothing for a model to decide either: which tool to call isn't ambiguous, and if every
257
+ // one of that tool's input properties already has a same-named value in `state` (most of
258
+ // them do — they're typically the previous step's own tool-output fields), the call can
259
+ // be constructed and executed directly. A model asked to do the exact same thing will
260
+ // sometimes narrate ("let me check that for you") instead of actually emitting the tool
261
+ // call, silently stalling the chain — this path can't drift that way because there's no
262
+ // free-text composition step to drift in. Falls back to the model when an argument can't
263
+ // be confidently resolved from state, so this only ever fires when it's safe to.
264
+ const canUseRawTextForAutoInvoke = chainLength > 1 || rawTextBelongsToStep;
265
+ const autoInvoked = await this.tryAutoInvokeRequiredTool(currentStep, effectiveTools, state, canUseRawTextForAutoInvoke ? input.text : undefined, taskId, runId);
266
+ native =
267
+ autoInvoked ??
268
+ (currentStep?.prompt && effectiveTools.length === 0
269
+ ? { text: interpolatePrompt(currentStep.prompt, state), messages: [], toolCalls: [], toolResults: [], rounds: 0 }
270
+ : await this.runReplyPass(config, currentStep, state, input, effectiveTools, taskId, runId, flow, key, canUseRawTextForAutoInvoke));
271
+ let roundPendingApproval = false;
272
+ for (const toolResult of native.toolResults) {
273
+ if (toolResult.result.status === "pending_approval")
274
+ roundPendingApproval = true;
275
+ if (toolResult.result.status === "ok" && activeStepId) {
276
+ stepToolLog[activeStepId] = [...(stepToolLog[activeStepId] ?? []), toolResult.tool.id];
277
+ }
278
+ const binding = config.tools?.bindings?.[toolResult.tool.id];
279
+ if (binding) {
280
+ const patch = binding.applyResult({ result: toolResult.result, state });
281
+ if (patch) {
282
+ ({ state, requirements, step: currentStep } = await this.applyPatch(flow, key, taskId, runId, config, state, patch, requirements, input.onEvent));
283
+ }
284
+ }
285
+ }
286
+ if (roundPendingApproval)
189
287
  pendingApproval = true;
190
- if (toolResult.result.status === "ok" && activeStepId) {
191
- stepToolLog[activeStepId] = [...(stepToolLog[activeStepId] ?? []), toolResult.tool.id];
288
+ // Don't let the resolved step silently skip past one whose requiredBeforeExit tools haven't run yet.
289
+ let finalStep = resolveActiveStep(config, state);
290
+ if (activeStepId && finalStep?.id !== activeStepId) {
291
+ const previousStepDef = config.steps.find((candidate) => candidate.id === activeStepId);
292
+ const stillMissing = missingRequiredBeforeExitTools(previousStepDef?.tools, stepToolLog[activeStepId] ?? []);
293
+ if (stillMissing.length)
294
+ finalStep = previousStepDef;
192
295
  }
193
- const binding = config.tools?.bindings?.[toolResult.tool.id];
194
- if (binding) {
195
- const patch = binding.applyResult({ result: toolResult.result, state });
196
- if (patch) {
197
- ({ state, requirements, step } = await this.applyPatch(flow, key, taskId, runId, config, state, patch, requirements, input.onEvent));
198
- }
296
+ const stepChanged = Boolean(activeStepId) && finalStep?.id !== activeStepId;
297
+ // The reply pass's system prompt reflected the step this round STARTED on — not
298
+ // necessarily this one. A tool call inside this round can advance the flow past that
299
+ // step before the reply is even composed, but the model was never told what the NEW
300
+ // step asks, so it improvises. When the step actually changed and the new step has a
301
+ // literal `prompt`, use that instead of the improvised text — the same model-agnostic
302
+ // guarantee as the pre-round verbatim path, just applied to a transition that only
303
+ // became knowable mid-round. Unlike the pre-round check, this doesn't require the new
304
+ // step to have zero available tools: the user's message this round was about the step
305
+ // we're LEAVING, not the one we just landed on, so nothing has denied that step's own
306
+ // tool a fair chance yet — it gets one on the next external turn, once the user actually
307
+ // responds to what `prompt` is now asking.
308
+ if (stepChanged && finalStep?.prompt) {
309
+ native = { ...native, text: interpolatePrompt(finalStep.prompt, state) };
199
310
  }
311
+ await this.announceStepChange(flow, key, activeStepId, finalStep?.id, taskId, runId, input.onEvent);
312
+ currentStep = finalStep;
313
+ const isSilentToolOnlyStep = Boolean(currentStep &&
314
+ (!currentStep.collect || currentStep.collect.length === 0) &&
315
+ !currentStep.prompt &&
316
+ (currentStep.tools?.required?.length ?? 0) > 0);
317
+ if (roundPendingApproval || !stepChanged || !isSilentToolOnlyStep)
318
+ break;
200
319
  }
201
- // Don't let the resolved step silently skip past one whose requiredBeforeExit tools haven't run yet.
202
- let finalStep = resolveActiveStep(config, state);
203
- if (activeStepId && finalStep?.id !== activeStepId) {
204
- const previousStepDef = config.steps.find((candidate) => candidate.id === activeStepId);
205
- const stillMissing = missingRequiredBeforeExitTools(previousStepDef?.tools, stepToolLog[activeStepId] ?? []);
206
- if (stillMissing.length)
207
- finalStep = previousStepDef;
208
- }
209
- step = finalStep;
210
- await this.announceStepChange(flow, key, activeStepId, step?.id, taskId, runId, input.onEvent);
320
+ step = currentStep;
321
+ // Last-resort safety net: an auto-invoked tool that didn't advance the step (no `message`
322
+ // on its output, or the step's own prompt wasn't already substituted above) should still
323
+ // never leave the user looking at a blank reply — fall back to the step's own literal
324
+ // prompt, interpolated against the now-current state, if it has one.
325
+ const replyText = native.text || (step?.prompt ? interpolatePrompt(step.prompt, state) : native.text);
211
326
  requirements = evaluateRequirements(config, state);
212
327
  const missingRequirementIds = requirements.filter((requirement) => !requirement.satisfied).map((requirement) => requirement.id);
213
328
  const completedRequirementIds = requirements.filter((requirement) => requirement.satisfied).map((requirement) => requirement.id);
@@ -242,7 +357,7 @@ export class GuidedFlowRuntime {
242
357
  status = "waiting_for_approval";
243
358
  await this.announce(input.onEvent, { type: "flow.waiting_for_approval", flowId: flow.id, sessionId: key, taskId, runId, payload: {} });
244
359
  }
245
- else if (native.rounds >= maxRounds && native.toolCalls.length > 0) {
360
+ else if (native.rounds >= MAX_REPLY_ROUNDS && native.toolCalls.length > 0) {
246
361
  status = "waiting_for_tool";
247
362
  }
248
363
  else {
@@ -266,7 +381,7 @@ export class GuidedFlowRuntime {
266
381
  };
267
382
  await this.options.store.saveFlowState(updated);
268
383
  return {
269
- text: native.text,
384
+ text: replyText,
270
385
  ...(output !== undefined ? { output } : {}),
271
386
  state: state,
272
387
  flow: {
@@ -282,6 +397,123 @@ export class GuidedFlowRuntime {
282
397
  }
283
398
  };
284
399
  }
400
+ /** The model-driven reply pass: composes text and may call the active step's tools. Only reached when a step has no `prompt`, or does but still has tools available (e.g. a validation step, which needs the model to react to a tool result/error dynamically). */
401
+ async runReplyPass(config, step, state, input, effectiveTools, taskId, runId, flow, key, allowVerbatimTextArg = true) {
402
+ // `verbatimTextArg` forces whatever the model composes to be overwritten with this turn's
403
+ // raw text — the right call when the text is actually the user's answer to `step`'s own
404
+ // question, but wrong the moment `step` was only just reached this same turn (e.g. a "sí"
405
+ // confirming the PREVIOUS step landed here via the deterministic enum patch, before the
406
+ // user ever saw this step's own prompt). Forcing it there doesn't just risk a bad guess —
407
+ // it guarantees one, since whatever the model supplies gets discarded either way. Caught
408
+ // live: that exact "sí" got forced into `customer.validate_email_2`'s phone argument,
409
+ // failing validation for a phone number the user never got a chance to type.
410
+ const verbatimMapping = allowVerbatimTextArg ? step?.tools?.verbatimTextArg : undefined;
411
+ const loopInput = {
412
+ client: this.options.client,
413
+ providerId: this.options.providerId,
414
+ model: this.options.model,
415
+ messages: [
416
+ { role: "system", content: buildGuidedInstructions(config, step, state, this.options.skills) },
417
+ ...input.messages,
418
+ { role: "user", content: input.text }
419
+ ],
420
+ tools: applyVerbatimTextArgs(effectiveTools, verbatimMapping, input.text),
421
+ taskId,
422
+ runId,
423
+ maxRounds: MAX_REPLY_ROUNDS,
424
+ onEvent: (event) => this.forwardNativeEvent(flow, key, taskId, runId, event, input.onEvent),
425
+ ...(input.signal ? { signal: input.signal } : {})
426
+ };
427
+ return this.options.harness ? await this.options.harness.run(loopInput) : await runNativeToolLoop(loopInput);
428
+ }
429
+ /**
430
+ * Deterministically calls a step's single applicable tool when its arguments are fully
431
+ * resolvable without asking a model to decide anything. Covers two shapes:
432
+ *
433
+ * 1. A silent tool-only step (no `collect`, exactly one required tool) where every input
434
+ * property already resolves to a known value in `state` (matched by property name,
435
+ * case-insensitively — the generator's convention of lowercase-flattened field names makes
436
+ * this a reliable match in practice).
437
+ * 2. A `collect` step whose only useful action is resolving the user's free text against a
438
+ * dynamic list (an address, a product, a time slot): exactly one tool in `tools.allowed`
439
+ * has a `verbatimTextArg` mapping configured. Which tool to call isn't ambiguous and the
440
+ * argument that matters most — the user's own words — is already pinned to the raw turn
441
+ * text, so there's nothing left for a model to compose either. (Caught live: asked to do
442
+ * the exact same thing, a model sometimes narrates — "voy a consultar..." — instead of
443
+ * actually emitting the tool call, leaving the user with a blank reply.)
444
+ *
445
+ * Returns `undefined` — never partially constructed input — the moment any other required
446
+ * property can't be confidently resolved, so the caller falls back to the model-driven
447
+ * `runReplyPass` exactly as before. Bypasses the harness too: this never asks a model
448
+ * anything, so a custom `ModelHarness` has nothing to intercept here (same reasoning as the
449
+ * `step.prompt` verbatim path).
450
+ */
451
+ async tryAutoInvokeRequiredTool(step, effectiveTools, state, rawText, taskId, runId) {
452
+ const requiredIds = step?.tools?.required ?? [];
453
+ const hasCollect = (step?.collect?.length ?? 0) > 0;
454
+ let toolId;
455
+ let verbatimArgName;
456
+ if (!hasCollect && requiredIds.length === 1) {
457
+ toolId = requiredIds[0];
458
+ }
459
+ else if (hasCollect && rawText !== undefined) {
460
+ const verbatimMapping = step?.tools?.verbatimTextArg;
461
+ const allowedIds = step?.tools?.allowed ?? [];
462
+ const verbatimIds = verbatimMapping ? allowedIds.filter((id) => verbatimMapping[id]) : [];
463
+ const soleVerbatimId = verbatimIds.length === 1 ? verbatimIds[0] : undefined;
464
+ if (soleVerbatimId) {
465
+ toolId = soleVerbatimId;
466
+ verbatimArgName = verbatimMapping?.[soleVerbatimId];
467
+ }
468
+ }
469
+ if (!toolId)
470
+ return undefined;
471
+ const registration = effectiveTools.find((candidate) => candidate.tool.id === toolId);
472
+ if (!registration)
473
+ return undefined;
474
+ const schema = registration.tool.inputSchema;
475
+ const propertyNames = Object.keys(schema?.properties ?? {});
476
+ const requiredPropertyNames = schema?.required ?? propertyNames;
477
+ const stateEntries = Object.entries(state);
478
+ const args = {};
479
+ for (const propertyName of propertyNames) {
480
+ // `verbatimArgName` is only ever set above once `rawText !== undefined` was confirmed —
481
+ // this narrows what TypeScript can't infer across the two functions.
482
+ if (propertyName === verbatimArgName && rawText !== undefined) {
483
+ args[propertyName] = rawText;
484
+ continue;
485
+ }
486
+ const value = resolveArgFromState(propertyName, stateEntries);
487
+ if (value === undefined || value === null || value === "") {
488
+ if (requiredPropertyNames.includes(propertyName))
489
+ return undefined;
490
+ continue;
491
+ }
492
+ // A loosely-typed state field (the generator emits `z.unknown()` for plenty of collected
493
+ // values) commonly holds a JS type its own tool argument didn't expect — not because
494
+ // anything drifted, but because the extraction call itself just returns valid JSON for
495
+ // whatever the user said: "1" comes back as the NUMBER 1, not the string "1", when the
496
+ // field has no type constraint to anchor it. A tool argument typed `z.string()` then
497
+ // rejects that number outright. Caught live: `numberOfCilinders` silently failing to
498
+ // resolve this way left `order.call` invoked with the count missing entirely, and the
499
+ // real API rejected the whole order with a generic, unhelpful error. Coercing between
500
+ // closely-related primitives (number/boolean → string, numeric string → number) covers
501
+ // this safely; anything further off (an object where a string was expected, say) still
502
+ // bails rather than guessing.
503
+ const coerced = coerceToJsonSchemaType(value, schema?.properties?.[propertyName]?.type);
504
+ if (!coerced.ok)
505
+ return undefined;
506
+ args[propertyName] = coerced.value;
507
+ }
508
+ const result = await registration.handler(args, { taskId, runId, stepId: `auto-chain-${registration.tool.id}-${randomUUID()}` });
509
+ return {
510
+ text: extractResultMessage(result),
511
+ messages: [],
512
+ toolCalls: [],
513
+ toolResults: [{ tool: registration.tool, result, toolCallId: `auto-${randomUUID()}` }],
514
+ rounds: 0
515
+ };
516
+ }
285
517
  async applyPatch(flow, key, taskId, runId, config, state, patch, previousRequirements, onEvent) {
286
518
  await this.options.hooks.fire("beforeFlowStatePatch", { flowId: flow.id, sessionId: key, patch, context: { taskId, runId } });
287
519
  const applied = applyStatePatch(config, state, patch);
@@ -413,6 +645,266 @@ export class GuidedFlowRuntime {
413
645
  return this.options.store.getFlowState(key, flow.id);
414
646
  }
415
647
  }
648
+ /**
649
+ * Substitutes `{{fieldName}}` placeholders in a step's literal `prompt` with the live value of
650
+ * that field in `state` — e.g. a Typebot bubble that's literally `{{addressesListMessage}}`
651
+ * (a previous tool's own output, meant to be shown to the user verbatim) becomes the real
652
+ * address list text instead of vanishing or showing raw template syntax. An unresolved or
653
+ * still-empty field renders as `""` rather than leaking `{{...}}` to the user — this can only
654
+ * happen if `prompt` is reached before the tool that was supposed to populate it has actually
655
+ * run, which the `denied`-tools-by-default step policy is what prevents in practice.
656
+ */
657
+ /**
658
+ * Best-effort text for an auto-invoked tool's result, so a step that doesn't advance (a failed
659
+ * free-text match, a validation rejection) doesn't leave the user staring at a blank reply — the
660
+ * same failure mode `resolveArgFromState`'s auto-invoke path is meant to eliminate, just on the
661
+ * output side instead of the input side. Purely additive: when the tool's output has no string
662
+ * `message` field, this returns "" exactly as before, and a later step-change in the same turn
663
+ * (see the `stepChanged && finalStep?.prompt` override) still takes priority over this text.
664
+ */
665
+ function extractResultMessage(result) {
666
+ if (result.status !== "ok")
667
+ return "";
668
+ const output = result.output;
669
+ if (output && typeof output === "object" && !Array.isArray(output) && "message" in output) {
670
+ const message = output.message;
671
+ return typeof message === "string" ? message : "";
672
+ }
673
+ return "";
674
+ }
675
+ function interpolatePrompt(prompt, state) {
676
+ return prompt.replace(/\{\{\s*([\w.]+)\s*\}\}/g, (match, field) => {
677
+ const value = state[field];
678
+ return value === undefined || value === null ? "" : String(value);
679
+ });
680
+ }
681
+ /**
682
+ * Resolves a tool's input property (e.g. `addressId`) against `state`, for
683
+ * `tryAutoInvokeRequiredTool`. Tries an exact case-insensitive key match first (`customerId` ↔
684
+ * `customerid`); if that finds nothing, falls back to a state key that ENDS WITH the property
685
+ * name (`addressId` ↔ `selectedaddressid`) — only when exactly one key qualifies, so it can
686
+ * never guess between two plausible fields. This second pass matters in practice: generated
687
+ * state field names are commonly prefixed with what produced them (`selected`, `chosen`,
688
+ * `validated`...), so a literal match against the tool's own property name often doesn't
689
+ * exist even though there's exactly one unambiguous field it obviously means. Without it, this
690
+ * step falls through to asking a model to supply the same argument — which is where a real bug
691
+ * showed up: the model narrated "voy a consultar los productos..." instead of actually calling
692
+ * the tool that turn, stalling the flow exactly like the cases this whole mechanism exists to
693
+ * avoid.
694
+ */
695
+ function resolveArgFromState(propertyName, stateEntries) {
696
+ const lowerProperty = propertyName.toLowerCase();
697
+ const exact = stateEntries.find(([key]) => key.toLowerCase() === lowerProperty);
698
+ if (exact)
699
+ return exact[1];
700
+ const suffixMatches = stateEntries.filter(([key]) => {
701
+ const lowerKey = key.toLowerCase();
702
+ return lowerKey.length > lowerProperty.length && lowerKey.endsWith(lowerProperty);
703
+ });
704
+ if (suffixMatches.length !== 1)
705
+ return undefined;
706
+ const match = suffixMatches[0];
707
+ return match ? match[1] : undefined;
708
+ }
709
+ /**
710
+ * Whether `value` is a plausible fit for a JSON Schema `type` keyword ("string", "number",
711
+ * "integer", "boolean", "array", "object") before it's handed to a tool's own (stricter) Zod
712
+ * validation. Deliberately permissive when `expectedType` is missing/unrecognized — the caller
713
+ * only uses this to bail out of an auto-invoke early, never to accept a value it otherwise
714
+ * wouldn't have.
715
+ */
716
+ /**
717
+ * Checks a resolved state value against a tool argument's declared JSON Schema `type`, coercing
718
+ * between closely-related PRIMITIVES (number/boolean → string, a numeric string → number) rather
719
+ * than just accepting-or-rejecting — an extraction call returning `1` for a field the user
720
+ * answered with the free-text "1" is the ordinary case, not a corruption, and a `z.string()`
721
+ * argument should get `"1"` for it rather than silently losing the whole tool call. Structured
722
+ * mismatches (an object/array where a primitive was expected, or vice versa) are never coerced —
723
+ * those really do indicate the wrong value ended up in the wrong field, and this rejects
724
+ * (`ok: false`) exactly as before so the caller falls back to the model.
725
+ */
726
+ function coerceToJsonSchemaType(value, expectedType) {
727
+ switch (expectedType) {
728
+ case "string":
729
+ if (typeof value === "string")
730
+ return { ok: true, value };
731
+ if (typeof value === "number" || typeof value === "boolean")
732
+ return { ok: true, value: String(value) };
733
+ return { ok: false };
734
+ case "number":
735
+ case "integer":
736
+ if (typeof value === "number")
737
+ return { ok: true, value };
738
+ if (typeof value === "string" && value.trim() !== "" && !Number.isNaN(Number(value)))
739
+ return { ok: true, value: Number(value) };
740
+ return { ok: false };
741
+ case "boolean":
742
+ return typeof value === "boolean" ? { ok: true, value } : { ok: false };
743
+ case "array":
744
+ return Array.isArray(value) ? { ok: true, value } : { ok: false };
745
+ case "object":
746
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? { ok: true, value } : { ok: false };
747
+ default:
748
+ return { ok: true, value };
749
+ }
750
+ }
751
+ /**
752
+ * Wraps any tool registration named in `mapping` so its handler always receives the current
753
+ * turn's raw text under the mapped argument name, overwriting whatever the model itself put
754
+ * there. See `StepToolPolicy.verbatimTextArg` for why: a model composing that argument from
755
+ * context can invent a plausible-sounding value instead of relaying what the user actually
756
+ * said, especially for a vague reply — this makes the tool's own "does this resolve to
757
+ * anything?" check trustworthy, since it's always judging the real input.
758
+ */
759
+ function applyVerbatimTextArgs(tools, mapping, rawText) {
760
+ if (!mapping || Object.keys(mapping).length === 0)
761
+ return tools;
762
+ return tools.map((registration) => {
763
+ const argName = mapping[registration.tool.id];
764
+ if (!argName)
765
+ return registration;
766
+ return {
767
+ ...registration,
768
+ handler: (rawInput, context) => registration.handler({ ...rawInput, [argName]: rawText }, context)
769
+ };
770
+ });
771
+ }
772
+ function unwrapEnum(schema) {
773
+ if (schema instanceof z.ZodEnum)
774
+ return schema;
775
+ if (schema instanceof z.ZodOptional || schema instanceof z.ZodDefault || schema instanceof z.ZodNullable) {
776
+ return unwrapEnum(schema._def.innerType);
777
+ }
778
+ return undefined;
779
+ }
780
+ const COMBINING_DIACRITICS = new RegExp("[\\u0300-\\u036f]", "g");
781
+ const normalizeChoiceText = (value) => value
782
+ .normalize("NFD")
783
+ .replace(COMBINING_DIACRITICS, "")
784
+ .trim()
785
+ .toLowerCase();
786
+ /**
787
+ * Matches raw user text against a single enum-typed `collect` field's options — by 1-based
788
+ * list index (matching the numbered list `step.prompt` renders), exact label (accent- and
789
+ * case-insensitive), or an unambiguous partial match (exactly one option contains the text or
790
+ * vice versa, e.g. "quiero el tanque" or a bare "tanque" both resolving "Tanque"). Returns
791
+ * `undefined` — never a guess — the moment more than one option could plausibly match, or the
792
+ * step isn't a single-enum choice at all, so the caller always has a safe fallback to the
793
+ * model-driven extraction call.
794
+ */
795
+ /**
796
+ * Identifies a step's single enum-typed `collect` field, if it has exactly one — the same
797
+ * precondition `matchSingleEnumChoice` requires to even attempt a deterministic match. Exposed
798
+ * separately so the caller can tell "no deterministic match was possible" apart from "this
799
+ * field isn't even a bounded-choice one", which matters for deciding whether to trust the
800
+ * extraction model with it at all (see the call site in `driveFlow`).
801
+ */
802
+ function singleEnumCollectField(stateSchema, step) {
803
+ if (step?.collect?.length !== 1)
804
+ return undefined;
805
+ const field = String(step.collect[0]);
806
+ const fieldSchema = stateSchema.shape[field];
807
+ return fieldSchema && unwrapEnum(fieldSchema) ? field : undefined;
808
+ }
809
+ function matchSingleEnumChoice(stateSchema, step, rawText) {
810
+ const field = singleEnumCollectField(stateSchema, step);
811
+ if (!field)
812
+ return undefined;
813
+ const fieldSchema = stateSchema.shape[field];
814
+ const enumSchema = fieldSchema && unwrapEnum(fieldSchema);
815
+ if (!enumSchema)
816
+ return undefined;
817
+ const options = enumSchema.options;
818
+ const text = normalizeChoiceText(rawText);
819
+ if (!text)
820
+ return undefined;
821
+ const index = Number(text);
822
+ if (Number.isInteger(index) && index >= 1 && index <= options.length) {
823
+ return { [field]: options[index - 1] };
824
+ }
825
+ const exact = options.filter((option) => normalizeChoiceText(option) === text);
826
+ if (exact.length === 1)
827
+ return { [field]: exact[0] };
828
+ const partial = options.filter((option) => {
829
+ const normalizedOption = normalizeChoiceText(option);
830
+ return normalizedOption.includes(text) || text.includes(normalizedOption);
831
+ });
832
+ if (partial.length === 1)
833
+ return { [field]: partial[0] };
834
+ // Common Spanish yes/no colloquialisms ("sip", "va", "nel"...) share no substring with a
835
+ // label like "Sí es correcto" or "Continuar" — the checks above miss them entirely, which
836
+ // regressed a real confirm step live: "sip" stopped resolving "Sí es correcto" once the
837
+ // extraction call was barred from guessing this field at all (see the enum-field exclusion
838
+ // below), leaving affirmations that don't literally overlap with the option text with no path
839
+ // to resolve short of a second try. This only fires when exactly one option's own wording is
840
+ // recognizably yes-flavored (or no-flavored) and the other isn't — never for option pairs like
841
+ // "Elegir de la lista" / "Agregar domicilio" that aren't a yes/no choice in the first place.
842
+ const polarityMatch = matchYesNoColloquialism(options, text);
843
+ if (polarityMatch)
844
+ return { [field]: polarityMatch };
845
+ return undefined;
846
+ }
847
+ const AFFIRMATIVE_OPTION_WORDS = ["si", "correcto", "confirmar", "confirmo", "continuar", "aceptar", "acepto"];
848
+ const NEGATIVE_OPTION_WORDS = ["no", "corregir", "cancelar", "incorrecto", "rechazar", "cambiar"];
849
+ const AFFIRMATIVE_SYNONYMS = new Set(["si", "sip", "sisas", "simon", "claro", "va", "dale", "ok", "okay", "correcto", "afirmativo"]);
850
+ const NEGATIVE_SYNONYMS = new Set(["no", "nel", "nop", "negativo", "paranada", "nones"]);
851
+ function optionPolarity(normalizedOption) {
852
+ const isAffirmative = AFFIRMATIVE_OPTION_WORDS.some((word) => normalizedOption.includes(word));
853
+ const isNegative = NEGATIVE_OPTION_WORDS.some((word) => normalizedOption.includes(word));
854
+ if (isAffirmative && !isNegative)
855
+ return "yes";
856
+ if (isNegative && !isAffirmative)
857
+ return "no";
858
+ return undefined;
859
+ }
860
+ function matchYesNoColloquialism(options, text) {
861
+ const textPolarity = AFFIRMATIVE_SYNONYMS.has(text) ? "yes" : NEGATIVE_SYNONYMS.has(text) ? "no" : undefined;
862
+ if (!textPolarity)
863
+ return undefined;
864
+ const matches = options.filter((option) => optionPolarity(normalizeChoiceText(option)) === textPolarity);
865
+ return matches.length === 1 ? matches[0] : undefined;
866
+ }
867
+ /**
868
+ * A step's single `collect` field qualifies for verbatim capture — the raw turn text becomes
869
+ * its value with no model involved — only under conditions narrow enough that there's nothing
870
+ * left to decide:
871
+ * - Exactly one `collect` field (a multi-field step genuinely needs the model to work out which
872
+ * part of the text answers which still-open question).
873
+ * - Not an enum (that's `matchSingleEnumChoice`'s job — a bounded answer space needs matching,
874
+ * not verbatim capture).
875
+ * - The step has no `allowed`/`required` tools at all — if a tool exists, an argument might need
876
+ * real composition or validation (that's what `verbatimTextArg` + the tool's own logic are
877
+ * for); this only covers steps whose entire job is "remember exactly what they typed."
878
+ */
879
+ function isPlainTextSchema(schema) {
880
+ if (schema instanceof z.ZodOptional || schema instanceof z.ZodDefault || schema instanceof z.ZodNullable) {
881
+ return isPlainTextSchema(schema._def.innerType);
882
+ }
883
+ // Deliberately narrow: booleans/numbers/objects/arrays need real parsing (or come from a
884
+ // confirmation step, a derived value, a tool result) — verbatim raw text would either fail
885
+ // that field's own validation or silently coerce into something the user never intended.
886
+ // The generator's convention for free-text fields is `z.unknown()`; `z.string()`/`z.any()`
887
+ // cover the rest of what a plain "remember what they typed" field could reasonably be.
888
+ return schema instanceof z.ZodString || schema instanceof z.ZodUnknown || schema instanceof z.ZodAny;
889
+ }
890
+ function singlePlainTextCollectField(stateSchema, step) {
891
+ if (step?.collect?.length !== 1)
892
+ return undefined;
893
+ if ((step.tools?.allowed?.length ?? 0) > 0 || (step.tools?.required?.length ?? 0) > 0)
894
+ return undefined;
895
+ const field = String(step.collect[0]);
896
+ const fieldSchema = stateSchema.shape[field];
897
+ if (!fieldSchema || unwrapEnum(fieldSchema) || !isPlainTextSchema(fieldSchema))
898
+ return undefined;
899
+ return field;
900
+ }
901
+ function matchSinglePlainTextCollect(stateSchema, step, rawText) {
902
+ const field = singlePlainTextCollectField(stateSchema, step);
903
+ if (!field)
904
+ return undefined;
905
+ const text = rawText.trim();
906
+ return text ? { [field]: text } : undefined;
907
+ }
416
908
  function buildGuidedInstructions(config, step, state, skills) {
417
909
  const known = Object.entries(state)
418
910
  .filter(([, value]) => value !== undefined && value !== null && value !== "")
@@ -421,11 +913,28 @@ function buildGuidedInstructions(config, step, state, skills) {
421
913
  const stepSkills = (step?.skills ?? [])
422
914
  .map((id) => skills.find((skill) => skill.id === id))
423
915
  .filter((skill) => Boolean(skill));
916
+ // A step with nothing to collect and a required tool is a pure backend step — there is
917
+ // nothing to narrate or confirm yet, only a tool to call. Left to its own judgment, a model
918
+ // will sometimes announce "let me check that for you" as plain text instead of actually
919
+ // emitting the tool call in that same response, which silently stalls the auto-chain in
920
+ // `driveFlow` (it only keeps chaining once the tool has actually run). State this as an
921
+ // imperative instruction rather than leaving it implicit in `instructions`.
922
+ const requiredTools = step?.tools?.required ?? [];
923
+ const mustCallNow = !step?.collect?.length && requiredTools.length > 0
924
+ ? `This step has exactly one job: call ${requiredTools.map((id) => `"${String(id)}"`).join(", ")} right now, in this response. Do not narrate, explain, or say you're about to do it — call the tool immediately, with no preceding text.`
925
+ : "";
424
926
  const lines = [
425
927
  `You are guiding the user through the "${config.name}" flow. Goal: ${config.goal}`,
426
928
  known.length ? `Known so far: ${known.join(", ")}.` : "Nothing is known about the user yet.",
427
929
  missing.length ? `Still missing: ${missing.join(", ")}. Ask only for what's missing — never re-ask for known fields.` : "",
428
- step?.instructions ? `Current step instructions: ${step.instructions}` : "",
930
+ // `instructions` can carry the same `{{field}}` placeholders `prompt` does — e.g. an error
931
+ // message field that's only meaningful after a failed validation. Left un-interpolated, a
932
+ // model composing a reply from these instructions has been observed to just echo the raw
933
+ // `{{errormessagephone}}` syntax back to the user verbatim instead of treating it as
934
+ // internal templating. `prompt` gets this via `interpolatePrompt` at render time; do the
935
+ // same here since `instructions` also ends up as literal text in front of the model.
936
+ step?.instructions ? `Current step instructions: ${interpolatePrompt(step.instructions, state)}` : "",
937
+ mustCallNow,
429
938
  ...stepSkills.map((skill) => `Skill "${skill.id}": ${skill.instructions}`)
430
939
  ];
431
940
  return lines.filter(Boolean).join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/guided-flows/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/guided-flows/runtime.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,18 @@ export type StepToolPolicy = {
31
31
  denied?: string[];
32
32
  required?: string[];
33
33
  requiredBeforeExit?: string[];
34
+ /**
35
+ * Tool id → argument name whose value the runtime overwrites with the raw text of the
36
+ * CURRENT turn right before the tool runs — never whatever the model decided to pass.
37
+ * For "resolve this free-form answer against a dynamic list" tools (an address, a
38
+ * product, a time slot), trusting the model to relay the user's literal words is exactly
39
+ * the model-dependent step Guided Flows are meant to eliminate: a vague or unrelated
40
+ * reply ("confirmar" when nothing has been chosen yet) can otherwise get silently paired
41
+ * with a model-invented argument that happens to match something, instead of correctly
42
+ * failing to match anything. The tool itself still decides whether that raw text resolves
43
+ * to something — this only guarantees it's actually judging what the user said.
44
+ */
45
+ verbatimTextArg?: Record<string, string>;
34
46
  };
35
47
  export type GuidedFlowStep<TState> = {
36
48
  id: string;
@@ -40,6 +52,17 @@ export type GuidedFlowStep<TState> = {
40
52
  }) => boolean;
41
53
  collect?: Array<keyof TState>;
42
54
  instructions?: string;
55
+ /**
56
+ * Literal, user-facing text for this step. When set and no tool is
57
+ * available for the active step this turn (`resolveStepTools(...)`
58
+ * resolves to an empty list), the runtime shows this verbatim instead of
59
+ * asking the model to compose a reply from `instructions` — the model is
60
+ * never even called for that part of the turn. Deterministic and
61
+ * model-agnostic: the step either has a fixed thing to say or it
62
+ * doesn't, independent of which LLM is configured. Falls back to the
63
+ * existing model-composed reply when omitted, so this is purely additive.
64
+ */
65
+ prompt?: string;
43
66
  skills?: string[];
44
67
  tools?: StepToolPolicy;
45
68
  exit?: (input: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guided-flows/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guided-flows/types.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,mBAAmB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAE5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,CAoC/E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,CA8B7E;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3F,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8F;gBAEzF,SAAS,EAAE,YAAY;IAI9C,UAAU,CAAC,UAAU,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAiD,GAAG,OAAO,CAAC,SAAS,CAAC;IAM5H,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAK3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,aAAa;YAcP,OAAO;YAOP,MAAM;CAGrB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAa5E"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,mBAAmB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAE5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,YAAY,CAoC/E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,CA4C7E;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3F,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8F;gBAEzF,SAAS,EAAE,YAAY;IAI9C,UAAU,CAAC,UAAU,GAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAiD,GAAG,OAAO,CAAC,SAAS,CAAC;IAM5H,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAK3F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,aAAa;YAcP,OAAO;YAOP,MAAM;CAGrB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAa5E"}
package/dist/mcp.js CHANGED
@@ -41,13 +41,28 @@ export function createStdioTransport(config) {
41
41
  }
42
42
  export function createHttpTransport(config) {
43
43
  const handlers = [];
44
+ // MCP's "Streamable HTTP" transport (used by most remote/hosted MCP servers) is stateful: the
45
+ // `initialize` response carries an `Mcp-Session-Id` header that every subsequent request on
46
+ // this connection — including the `notifications/initialized` notification right after init —
47
+ // MUST echo back, or the server rejects it outright. Caught live: a real remote MCP server
48
+ // (brain.gasnoelia.com) returned a valid `initialize` result but then a bare HTTP 400 on the
49
+ // very next call, because nothing here ever captured or resent that header.
50
+ let sessionId;
44
51
  return {
45
52
  async send(message) {
46
53
  const response = await fetch(config.url, {
47
54
  method: "POST",
48
- headers: { "content-type": "application/json", accept: "application/json, text/event-stream", ...(config.headers ?? {}) },
55
+ headers: {
56
+ "content-type": "application/json",
57
+ accept: "application/json, text/event-stream",
58
+ ...(sessionId ? { "mcp-session-id": sessionId } : {}),
59
+ ...(config.headers ?? {})
60
+ },
49
61
  body: JSON.stringify(message)
50
62
  });
63
+ const responseSessionId = response.headers.get("mcp-session-id");
64
+ if (responseSessionId)
65
+ sessionId = responseSessionId;
51
66
  if (!response.ok)
52
67
  throw new Error(`MCP HTTP transport failed with status ${response.status}`);
53
68
  if (response.status === 202)
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,17 @@ export type StructuredOutputResult<T> = {
10
10
  raw: string;
11
11
  };
12
12
  export declare function structuredOutputInstruction(schema: z.ZodTypeAny, label?: string): string;
13
- export declare function parseStructuredOutput<T>(schema: z.ZodType<T>, text: string): StructuredOutputResult<T>;
13
+ /**
14
+ * `label` must match whatever `structuredOutputInstruction` told the model to name the
15
+ * object (both default to `"Output"`) — a model that follows that instruction literally
16
+ * returns `{"<label>": {...fields}}`, not the bare fields. Without unwrapping that first,
17
+ * `schema.parse()` sees an object whose only key (`label`) matches none of the schema's own
18
+ * fields, and — since Zod object schemas silently drop unrecognized keys rather than
19
+ * erroring — returns an empty object instead of failing loudly. That's not a validation
20
+ * failure a caller can catch: `ok` comes back `true` with `data` silently missing every
21
+ * field the model actually provided. Seen live: a Guided Flow's extraction call correctly
22
+ * identifying `{"group118": "Chat"}` but wrapping it as `{"StatePatch": {"group118": "Chat"}}`
23
+ * per instructions, and the turn silently treating the user's answer as if it said nothing.
24
+ */
25
+ export declare function parseStructuredOutput<T>(schema: z.ZodType<T>, text: string, label?: string): StructuredOutputResult<T>;
14
26
  //# sourceMappingURL=structured-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../src/structured-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,CAEtE;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,SAAW,GAAG,MAAM,CAG1F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAQtG"}
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../src/structured-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,CAEtE;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GACrB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,SAAW,GAAG,MAAM,CAG1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAQxH"}
@@ -6,16 +6,38 @@ export function structuredOutputInstruction(schema, label = "Output") {
6
6
  const jsonSchema = zodSchemaToJsonSchema(schema);
7
7
  return `Respond with ONLY a single JSON object (no prose, no markdown code fences) named "${label}" that satisfies this JSON Schema:\n${JSON.stringify(jsonSchema)}`;
8
8
  }
9
- export function parseStructuredOutput(schema, text) {
9
+ /**
10
+ * `label` must match whatever `structuredOutputInstruction` told the model to name the
11
+ * object (both default to `"Output"`) — a model that follows that instruction literally
12
+ * returns `{"<label>": {...fields}}`, not the bare fields. Without unwrapping that first,
13
+ * `schema.parse()` sees an object whose only key (`label`) matches none of the schema's own
14
+ * fields, and — since Zod object schemas silently drop unrecognized keys rather than
15
+ * erroring — returns an empty object instead of failing loudly. That's not a validation
16
+ * failure a caller can catch: `ok` comes back `true` with `data` silently missing every
17
+ * field the model actually provided. Seen live: a Guided Flow's extraction call correctly
18
+ * identifying `{"group118": "Chat"}` but wrapping it as `{"StatePatch": {"group118": "Chat"}}`
19
+ * per instructions, and the turn silently treating the user's answer as if it said nothing.
20
+ */
21
+ export function parseStructuredOutput(schema, text, label = "Output") {
10
22
  try {
11
23
  const json = JSON.parse(extractJson(text));
12
- const data = schema.parse(json);
24
+ const data = schema.parse(unwrapLabel(json, label));
13
25
  return { ok: true, data };
14
26
  }
15
27
  catch (error) {
16
28
  return { ok: false, error: error instanceof Error ? error.message : String(error), raw: text };
17
29
  }
18
30
  }
31
+ /** If `json` is a plain object with exactly one key matching `label`, returns that key's value; otherwise returns `json` unchanged (a model that ignored the "name it X" instruction and returned bare fields is left exactly as-is). */
32
+ function unwrapLabel(json, label) {
33
+ if (json && typeof json === "object" && !Array.isArray(json)) {
34
+ const record = json;
35
+ const keys = Object.keys(record);
36
+ if (keys.length === 1 && keys[0] === label)
37
+ return record[label];
38
+ }
39
+ return json;
40
+ }
19
41
  function extractJson(text) {
20
42
  const trimmed = text.trim();
21
43
  const fenced = trimmed.match(/```(?:json)?\s*([\s\S]*?)```/i);
@@ -1 +1 @@
1
- {"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../src/structured-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAA0B,CAAC;AAC3G,CAAC;AAMD,MAAM,UAAU,2BAA2B,CAAC,MAAoB,EAAE,KAAK,GAAG,QAAQ;IAChF,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,qFAAqF,KAAK,uCAAuC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;AACvK,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAI,MAAoB,EAAE,IAAY;IACzE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAY,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5B,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,GAAG,EAAE,IAAI,EAAE,CAAC;IACjG,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../src/structured-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,CAA0B,CAAC;AAC3G,CAAC;AAMD,MAAM,UAAU,2BAA2B,CAAC,MAAoB,EAAE,KAAK,GAAG,QAAQ;IAChF,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,qFAAqF,KAAK,uCAAuC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;AACvK,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAI,MAAoB,EAAE,IAAY,EAAE,KAAK,GAAG,QAAQ;IAC3F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAY,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5B,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,GAAG,EAAE,IAAI,EAAE,CAAC;IACjG,CAAC;AACH,CAAC;AAED,yOAAyO;AACzO,SAAS,WAAW,CAAC,IAAa,EAAE,KAAa;IAC/C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexalab/agent-sdk",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/pixelitylab/nexalab-agentsdk.git"