@looprun-ai/mastra 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.d.ts CHANGED
@@ -26,6 +26,9 @@ export interface LoopRunAgentConfig<W extends AgentWorld = AgentWorld> {
26
26
  model: any;
27
27
  /** Options spread into every internal generate (providerOptions / modelSettings / …). */
28
28
  modelParams?: Record<string, unknown>;
29
+ /** Stop the generation on the first repeated (tool+args) call — enable for LOCAL models
30
+ * (mirrors the certified lineage, which gated it exactly this way). Default false. */
31
+ stopOnRepeatedToolCall?: boolean;
29
32
  /** The certified turn shape (terminal tools + toolChoice:'required'). Default true. */
30
33
  terminalProtocol?: boolean;
31
34
  maxSteps?: number;
@@ -66,6 +69,7 @@ export declare class LoopRunAgent<W extends AgentWorld = AgentWorld> extends Age
66
69
  private readonly nativeToolNames;
67
70
  private readonly surface;
68
71
  private readonly modelParams;
72
+ private readonly stopOnRepeatedToolCall;
69
73
  private readonly maxStepsResolved;
70
74
  private readonly redrivesResolved;
71
75
  private readonly guardHooks;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAU3C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IACnE,0EAA0E;IAC1E,IAAI,EAAE,SAAS,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B;;;;OAIG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,wEAAwE;IACxE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,+EAA+E;IAE/E,KAAK,EAAE,GAAG,CAAC;IACX,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uDAAuD;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iGAAiG;IAEjG,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE;QACR,0EAA0E;QAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,yDAAyD;QACzD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IAEF,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC;CAC/B;AAOD,qBAAa,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,KAAK;IACxE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAoB;IAC5D;gGAC4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;gBAEpE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAmFzC,yEAAyE;IACzE,UAAU,CAAC,EAAE,SAAY,GAAG,cAAc,CAAC,CAAC,CAAC;IAI7C,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAY,GAAG,IAAI;IAIhC,OAAO,CAAC,gBAAgB;IASxB;;;;OAIG;IAEY,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;YAQhE,YAAY;IAsJ1B;;;;;OAKG;IAEY,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;CA6B7E;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAEpH"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -25,10 +25,10 @@
25
25
  import { AsyncLocalStorage } from 'node:async_hooks';
26
26
  import { stepCountIs } from 'ai';
27
27
  import { Agent } from '@mastra/core/agent';
28
- import { beginTurn, finalizeReply, forcedTerminalPrompt, isTerminal, renderScopedSpecTrunk, terminalProtocol, validateSpec, } from '@looprun-ai/core';
28
+ import { beginTurn, finalizeReply, forcedTerminalPrompt, isTerminal, normalizeModelParams, resolveModelSettings, runChainCompletionPass, vetoStormHit, renderScopedSpecTrunk, terminalProtocol, validateSpec, } from '@looprun-ai/core';
29
29
  import { SessionStore } from './session.js';
30
30
  import { buildWorldTools, buildTerminalTools } from './tools.js';
31
- import { makeGuardHooks, makeInputProcessors } from './hooks.js';
31
+ import { makeGuardHooks, makeInputProcessors, repeatedToolCallStop } from './hooks.js';
32
32
  import { worldFromTools } from './world-adapters.js';
33
33
  import { DEFAULT_MAX_STEPS, DEFAULT_REDRIVES } from './run-conversation.js';
34
34
  const LOOPRUN_KEYS = new Set([
@@ -44,6 +44,7 @@ export class LoopRunAgent extends Agent {
44
44
  nativeToolNames;
45
45
  surface;
46
46
  modelParams;
47
+ stopOnRepeatedToolCall;
47
48
  maxStepsResolved;
48
49
  redrivesResolved;
49
50
  guardHooks;
@@ -128,7 +129,12 @@ export class LoopRunAgent extends Agent {
128
129
  this.nativeToolsMode = nativeToolsMode;
129
130
  this.nativeToolNames = Object.keys(config.tools ?? {});
130
131
  this.surface = surface;
131
- this.modelParams = config.modelParams ?? {};
132
+ // Normalize once at the seam: flat AI-SDK call settings (temperature, maxOutputTokens, …) are
133
+ // folded into `modelSettings` — Mastra silently drops them when spread top-level (measured
134
+ // 2026-07-11: a flat spread ran local models with the GGUF sampler — temp 1.0, no token cap).
135
+ // Then the spec's per-agent sampling merged OVER them (agent wins) — constant for this agent.
136
+ this.modelParams = resolveModelSettings(normalizeModelParams(config.modelParams ?? {}), spec.controls.sampling);
137
+ this.stopOnRepeatedToolCall = config.stopOnRepeatedToolCall ?? false;
132
138
  this.maxStepsResolved = spec.controls.maxSteps ?? config.maxSteps ?? DEFAULT_MAX_STEPS;
133
139
  this.redrivesResolved = spec.controls.redrives ?? config.redrives ?? DEFAULT_REDRIVES;
134
140
  this.guardHooks = guardHooks;
@@ -226,9 +232,10 @@ export class LoopRunAgent extends Agent {
226
232
  return true;
227
233
  return false;
228
234
  };
235
+ const repeatStop = this.stopOnRepeatedToolCall ? [repeatedToolCallStop] : [];
229
236
  const protocolOpts = this.terminalProtocolOn
230
- ? { toolChoice: 'required', stopWhen: [stepCountIs(this.maxStepsResolved), terminalCalled] }
231
- : { stopWhen: [stepCountIs(this.maxStepsResolved)] };
237
+ ? { toolChoice: 'required', stopWhen: [stepCountIs(this.maxStepsResolved), terminalCalled, () => vetoStormHit(session.ledger), ...repeatStop] }
238
+ : { stopWhen: [stepCountIs(this.maxStepsResolved), () => vetoStormHit(session.ledger), ...repeatStop] };
232
239
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
233
240
  const full = await Agent.prototype.generate.call(this, msgs, {
234
241
  instructions,
@@ -261,6 +268,36 @@ export class LoopRunAgent extends Agent {
261
268
  session.messages.push(...fb.response.messages);
262
269
  ledger.turnCorrections.push('forced-terminal');
263
270
  }
271
+ // flowChain completion — AFTER main + forced-terminal, BEFORE the onReply checks. ZERO-DIFF: gated
272
+ // on `spec.controls.chains?.length`, so a chain-free turn builds nothing.
273
+ if (spec.controls.chains?.length) {
274
+ const chainPass = await runChainCompletionPass(spec.controls.chains, {
275
+ world,
276
+ observed: ledger.observed,
277
+ turnIndex: session.turnIndex,
278
+ terminalReplyPresent: ledger.terminalReply.trim().length > 0,
279
+ beforeToolCall: this.guardHooks.beforeToolCall,
280
+ afterToolCall: this.guardHooks.afterToolCall,
281
+ forceLlmCall: async (call) => {
282
+ const ccMsgs = useMemory || userText === null
283
+ ? `Complete the required follow-up now: call ${call} with the correct arguments for what the user asked. Do not reply in text.`
284
+ : [...session.messages, { role: 'user', content: `Complete the required follow-up now: call ${call} with the correct arguments for what the user asked. Do not reply in text.` }];
285
+ // FORCING: single active tool + toolChoice:'required' — llama-server ignores the named
286
+ // `{ type:'tool', toolName }` form and degrades to free text; this is the portable form.
287
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
288
+ const cc = await Agent.prototype.generate.call(this, ccMsgs, {
289
+ instructions, activeTools: [call], toolChoice: 'required', stopWhen: [stepCountIs(2)],
290
+ hooks: this.guardHooks, ...this.modelParams, ...(useMemory ? { memory: passOpts.memory } : {}),
291
+ });
292
+ if (!useMemory && userText !== null && cc.response?.messages)
293
+ session.messages.push(...cc.response.messages);
294
+ },
295
+ });
296
+ if (chainPass.corrections.length)
297
+ ledger.turnCorrections.push(...chainPass.corrections);
298
+ if (chainPass.replyViolations.length)
299
+ ledger.postToolViolations.push(...chainPass.replyViolations);
300
+ }
264
301
  // The terminal reply wins even with the protocol OFF — the terminal tools stay registered, and
265
302
  // a model that used one produced a real answer that `full.text` won't carry.
266
303
  const initialText = full?.tripwire
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -13,9 +13,16 @@ export interface GuardHooks {
13
13
  input: unknown;
14
14
  output?: unknown;
15
15
  error?: unknown;
16
- }): void;
16
+ }): Promise<void> | void;
17
17
  }
18
18
  export declare function makeGuardHooks(spec: AgentSpec, getSession: SessionAccessor): GuardHooks;
19
+ /**
20
+ * Stop condition (verbatim from the certified benchmark lineage): end the generation the moment
21
+ * ANY tool call repeats (same tool + same args) within this turn's steps — guard-denied calls
22
+ * included, since they appear in steps too. Apply it for LOCAL models (small models loop; the
23
+ * repeat is either a loop or a retry-without-change — both deserve the forced close).
24
+ */
25
+ export declare function repeatedToolCallStop({ steps }: any): boolean;
19
26
  /** onInput guards as a Mastra input processor: abort ⇒ the turn is refused with no LLM call. */
20
27
  export declare function makeInputProcessors(spec: AgentSpec, getSession: SessionAccessor): any[] | undefined;
21
28
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/G,aAAa,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACnG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,GAAG,UAAU,CAkBvF;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,eAAe,GAE1B,GAAG,EAAE,GAAG,SAAS,CAcnB"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,cAAc,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/G,aAAa,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACnH;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,GAAG,UAAU,CAmCvF;AAED;;;;;GAKG;AAEH,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,OAAO,CAU5D;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,eAAe,GAE1B,GAAG,EAAE,GAAG,SAAS,CAcnB"}
package/dist/hooks.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * fed by `hooks.afterToolCall`. Mastra applies hooks to ALL tool sources (assigned, toolsets,
7
7
  * client, MCP), so guards also govern native/MCP tools with zero extra wiring.
8
8
  */
9
- import { evaluatePreTool, evaluateOnInput, isTerminal, recordToolResult } from '@looprun-ai/core';
9
+ import { evaluatePreTool, evaluateOnInput, enforcePostTool, isTerminal, recordToolResult, resolveGuards } from '@looprun-ai/core';
10
10
  export function makeGuardHooks(spec, getSession) {
11
11
  return {
12
12
  async beforeToolCall({ toolName, input }) {
@@ -20,14 +20,54 @@ export function makeGuardHooks(spec, getSession) {
20
20
  }
21
21
  return undefined;
22
22
  },
23
- afterToolCall({ toolName, input, output }) {
23
+ async afterToolCall({ toolName, input, output }) {
24
24
  if (isTerminal(toolName))
25
25
  return;
26
26
  const session = getSession();
27
- recordToolResult(session.ledger, toolName, (input ?? {}), output);
27
+ const { ledger, world } = session;
28
+ const args = (input ?? {});
29
+ recordToolResult(ledger, toolName, args, output);
30
+ // OUTPUT-dim (postTool) result invariants — enforce the previously-dead hook. ZERO-DIFF: a spec
31
+ // with no postTool guards short-circuits here (no ctx built, no ledger writes). The tool already
32
+ // executed — enforcement records an `output:…` correction + joins the reply-violation set so the
33
+ // bounded no-tools redrive relays it (a report/repair, never a veto). Mastra AWAITS afterToolCall
34
+ // but DISCARDS its return, so the guard cannot rewrite the model-visible result mid-generate.
35
+ if (!spec.guards.postTool?.length)
36
+ return;
37
+ const postGuards = resolveGuards(spec.guards.postTool, toolName);
38
+ if (!postGuards.length)
39
+ return;
40
+ const gctx = {
41
+ args, tool: toolName, world, observed: ledger.observed, turnIndex: ledger.turnIndex,
42
+ attachmentsThisTurn: ledger.attachments, result: output,
43
+ };
44
+ const { corrections, violations } = await enforcePostTool(postGuards, gctx);
45
+ if (corrections.length)
46
+ ledger.turnCorrections.push(...corrections);
47
+ if (violations.length)
48
+ ledger.postToolViolations.push(...violations);
28
49
  },
29
50
  };
30
51
  }
52
+ /**
53
+ * Stop condition (verbatim from the certified benchmark lineage): end the generation the moment
54
+ * ANY tool call repeats (same tool + same args) within this turn's steps — guard-denied calls
55
+ * included, since they appear in steps too. Apply it for LOCAL models (small models loop; the
56
+ * repeat is either a loop or a retry-without-change — both deserve the forced close).
57
+ */
58
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
+ export function repeatedToolCallStop({ steps }) {
60
+ const seen = new Set();
61
+ for (const s of (steps ?? [])) {
62
+ for (const tc of (s.toolCalls ?? [])) {
63
+ const key = (tc.toolName ?? tc.name ?? '') + ':' + JSON.stringify(tc.input ?? tc.args ?? {});
64
+ if (seen.has(key))
65
+ return true;
66
+ seen.add(key);
67
+ }
68
+ }
69
+ return false;
70
+ }
31
71
  /** onInput guards as a Mastra input processor: abort ⇒ the turn is refused with no LLM call. */
32
72
  export function makeInputProcessors(spec, getSession) {
33
73
  if (!spec.guards.onInput?.length)
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAUlG,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,UAA2B;IACzE,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;YACtC,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC3C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3F,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC/B,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxF,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;YACvC,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,EAAE,CAA4B,EAAE,MAAM,CAAC,CAAC;QAC/F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB,CACjC,IAAe,EACf,UAA2B;IAG3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO;QACL;YACE,EAAE,EAAE,iBAAiB;YACrB,8DAA8D;YAC9D,KAAK,CAAC,YAAY,CAAC,CAAM;gBACvB,MAAM,OAAO,GAAmB,UAAU,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1E,IAAI,MAAM;oBAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,CAAC,CAAC,QAAQ,CAAC;YACpB,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,8 +16,9 @@ export type { LoopRunSession, WorldFactory } from './session.js';
16
16
  export { worldFromTools } from './world-adapters.js';
17
17
  export type { StateView } from './world-adapters.js';
18
18
  export { buildWorldTools, buildTerminalTools } from './tools.js';
19
- export { makeGuardHooks, makeInputProcessors } from './hooks.js';
19
+ export { makeGuardHooks, makeInputProcessors, repeatedToolCallStop } from './hooks.js';
20
20
  export type { GuardHooks } from './hooks.js';
21
21
  export { jsonSchemaToZodObject, jsonTypeToZod } from './json-schema-zod.js';
22
+ export { runSpecConversationMicroLoop, renderStructuredReply, stripThinkBlocks, recordTerminalReply, assembleAnswerText, scrubSteeringEcho, ingestStructuredObject, commitFinalReply, digestTurnToolResults, buildForceCloseMessages, STEERING_SENTINEL, } from './microloop.js';
22
23
  export * from '@looprun-ai/core';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjG,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG5E,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACjG,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI5E,OAAO,EACL,4BAA4B,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAC1F,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAC/E,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,GAClE,MAAM,gBAAgB,CAAC;AAGxB,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -11,8 +11,11 @@ export { compileSpec } from './compile.js';
11
11
  export { SessionStore } from './session.js';
12
12
  export { worldFromTools } from './world-adapters.js';
13
13
  export { buildWorldTools, buildTerminalTools } from './tools.js';
14
- export { makeGuardHooks, makeInputProcessors } from './hooks.js';
14
+ export { makeGuardHooks, makeInputProcessors, repeatedToolCallStop } from './hooks.js';
15
15
  export { jsonSchemaToZodObject, jsonTypeToZod } from './json-schema-zod.js';
16
+ // EXPERIMENTAL — the micro-loop turn driver for tiny models (additive; NOT a default). The certified
17
+ // runSpecConversation / LoopRunAgent are unchanged.
18
+ export { runSpecConversationMicroLoop, renderStructuredReply, stripThinkBlocks, recordTerminalReply, assembleAnswerText, scrubSteeringEcho, ingestStructuredObject, commitFinalReply, digestTurnToolResults, buildForceCloseMessages, STEERING_SENTINEL, } from './microloop.js';
16
19
  // Re-exports so `import { AgentSpecBase, precondition, … } from '@looprun-ai/mastra'` works too.
17
20
  export * from '@looprun-ai/core';
18
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,iGAAiG;AACjG,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,qGAAqG;AACrG,oDAAoD;AACpD,OAAO,EACL,4BAA4B,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAC1F,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAC/E,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,GAClE,MAAM,gBAAgB,CAAC;AAExB,iGAAiG;AACjG,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,107 @@
1
+ import type { AgentSpec, AgentWorld, TurnInput, RunResult } from '@looprun-ai/core';
2
+ import type { RuntimeDeps } from './run-conversation.js';
3
+ /**
4
+ * Strips model `<think>…</think>` leakage from a raw text field — PURE, domain-neutral. Two passes:
5
+ * (1) every CLOSED block anywhere (incl. an empty one) is removed whole; (2) a still-present LEADING
6
+ * `<think>` with no close (truncated by a token cap) has just the opening tag trimmed. Exported for test.
7
+ */
8
+ export declare function stripThinkBlocks(text: string): string;
9
+ /**
10
+ * Per-turn "last terminal wins" recorder — PURE. A blank/whitespace-only `next` is a no-op (keeps
11
+ * `current`); any non-blank `next` REPLACES `current`. Never concatenates. Exported for test.
12
+ */
13
+ export declare function recordTerminalReply(current: string, next: string): string;
14
+ /**
15
+ * Final per-turn answerText assembly — PURE, exported for tests. Exactly one of: the tripwire abort
16
+ * reason; the LAST terminal's rendered text; a defensive fallback to the last raw step text; or ''.
17
+ */
18
+ export declare function assembleAnswerText(args: {
19
+ tripwire: boolean;
20
+ tripwireReason: string;
21
+ terminalReply: string;
22
+ lastText: string;
23
+ }): string;
24
+ /**
25
+ * The DETERMINISTIC structured-reply renderer — PURE and DOMAIN-NEUTRAL. Joins whatever fields the model
26
+ * supplied, in a stable order (intro, bullet items, question, caution), using only newlines and a "- "
27
+ * bullet prefix. Writes NO natural-language content itself. Every field is passed through
28
+ * {@link stripThinkBlocks} first. Exported for the unit test.
29
+ */
30
+ export declare function renderStructuredReply(args: Record<string, unknown>): string;
31
+ /**
32
+ * A distinctive, domain-neutral marker embedded in EVERY steering/forcing prompt this driver injects. A
33
+ * weak local model sometimes PARROTS a steering prompt into its reply; because the marker rides along,
34
+ * {@link scrubSteeringEcho} can drop those echoed lines. Bracketed + ASCII so it never collides with a
35
+ * legitimate business reply and keeps the runtime language-neutral.
36
+ */
37
+ export declare const STEERING_SENTINEL = "[[close-turn]]";
38
+ /**
39
+ * Scrub runtime STEERING ECHO out of a model-produced candidate reply — PURE and DOMAIN-NEUTRAL (injects
40
+ * no words; only drops what the model parroted from THIS driver's scaffolding). A LINE-based walk:
41
+ * (a) a fenced ```…``` block whose body carries a `"kind":` field is DROPPED (the model NARRATING the
42
+ * replyStructured schema as TEXT instead of calling the tool); a non-narration fenced block is kept;
43
+ * (b) any LINE containing the {@link STEERING_SENTINEL} is DROPPED (a parroted forcing prompt).
44
+ * Removed lines are elided; a leftover run of 3+ newlines collapses to one blank line, then trimmed.
45
+ * Returns '' when nothing survives. Exported for test.
46
+ */
47
+ export declare function scrubSteeringEcho(text: string): string;
48
+ /**
49
+ * Ingest a grammar-guaranteed structured-reply OBJECT (from the {@link generateObject} close/redrive, whose
50
+ * `response_format: json_schema` the provider enforces) into a candidate reply string — PURE, and the EXACT
51
+ * same candidate path the replyStructured tool `execute` uses: render via {@link renderStructuredReply} (which
52
+ * strips `<think>` per field) then {@link scrubSteeringEcho}. Returns '' for an empty / echo-only object — an
53
+ * empty-after-scrub is a SOFT fail: the caller records the attempt but does NOT set the terminal reply, so the
54
+ * driver falls through to the next attempt / the deterministic exhaustion closure. Exported for the unit test.
55
+ */
56
+ export declare function ingestStructuredObject(obj: unknown): string;
57
+ /**
58
+ * Commit the SINGLE winning reply to the world — micro-loop mode ONLY. Every terminal ATTEMPT runs DRY
59
+ * (records its candidate into the ledger, never touches the world). Once the driver has the FINAL text it
60
+ * calls this EXACTLY ONCE through the SAME `replyToUser` seam the certified terminals use, so the world
61
+ * logs one reply per turn. A blank finalText is a no-op. Exported for test.
62
+ */
63
+ export declare function commitFinalReply(world: AgentWorld, finalText: string): Promise<void>;
64
+ /**
65
+ * Compact digest of THIS TURN's successful tool-call RESULTS — PURE and DOMAIN-NEUTRAL. WHY (v7): feeding the
66
+ * grammar-forced close the WHOLE conversation made a tiny model fill the schema with meta-junk ("this turn is
67
+ * closed", generic bullets); the split-step probe proved the SAME model composes clean text at a SHORT context.
68
+ * So the forced close now sees only (user text + this turn's FRESH results + steering), and this function
69
+ * produces the middle section from the ONLY source the driver already holds: the response messages the
70
+ * micro-step loop pushed into `messages` (`gen.response.messages`, sliced from the turn start).
71
+ *
72
+ * It walks every message's `content` array for `type:'tool-result'` parts — AI-SDK v6 emits them inside
73
+ * role:'tool' messages (`ToolResultPart` = `{ type:'tool-result', toolName, output }`), but we scan all roles
74
+ * defensively — unwrapping each `output` (`{type:'json'|'text', value}` → value; else the raw output). Runtime
75
+ * terminals (replyStructured / replyToUser / askUser, i.e. their DRY-record echoes) are skipped, and only
76
+ * results passing {@link resultOk} survive (the "successful calls" the model should restate). Each is
77
+ * `JSON.stringify`'d + clipped to {@link MICRO_DIGEST_ITEM_CHARS}; the whole body is clipped to `maxChars`
78
+ * with a truncation marker. No non-terminal successful result ⇒ '' (the caller omits the digest section).
79
+ * Exported for the unit test.
80
+ */
81
+ export declare function digestTurnToolResults(turnMessages: unknown[], maxChars?: number): string;
82
+ /**
83
+ * Build the MINIMAL message array for a grammar-forced structured close/redrive — PURE, exported for test.
84
+ * Replaces the whole-transcript context (on which a tiny model produced meta-junk) with ONE user message,
85
+ * composed in order: (a) the CURRENT turn's user content — the certified D8 tail EXACTLY as it rode the turn's
86
+ * user message (`## Account state` block + uploads + user text), so the state survives; (b) the compact
87
+ * this-turn tool-result digest ({@link digestTurnToolResults}); (c) the ephemeral steering line — the
88
+ * forced-close instruction OR the onReply redrive correction (either carrying {@link STEERING_SENTINEL}). The
89
+ * system prompt (the scoped trunk carrying the voice/language law) is passed SEPARATELY by the caller and
90
+ * deliberately NOT slimmed. Blank sections are omitted; present sections join with a blank line.
91
+ */
92
+ export declare function buildForceCloseMessages(args: {
93
+ userContent: string;
94
+ turnMessages: unknown[];
95
+ steering: string;
96
+ maxDigestChars?: number;
97
+ }): Array<{
98
+ role: 'user';
99
+ content: string;
100
+ }>;
101
+ /**
102
+ * Run one case (all turns) for `spec` under the MICRO-LOOP driver. SAME signature + return shape as
103
+ * {@link runSpecConversation}, so a host can switch on a flag. Only the GENERATION strategy differs:
104
+ * forced single-tool micro-steps + a structured terminal.
105
+ */
106
+ export declare function runSpecConversationMicroLoop(spec: AgentSpec, turns: TurnInput[], deps: RuntimeDeps): Promise<RunResult>;
107
+ //# sourceMappingURL=microloop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microloop.d.ts","sourceRoot":"","sources":["../src/microloop.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAA2D,SAAS,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzJ,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAmDzD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGvI;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAc3E;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4BtD;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG3D;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAE,MAA2B,GAAG,MAAM,CA8B5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3C;AA2BD;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAgX7H"}