@jackchen_me/open-multi-agent 0.2.0 → 1.0.1

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.
Files changed (117) hide show
  1. package/README.md +87 -20
  2. package/dist/agent/agent.d.ts +15 -1
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/agent.js +144 -10
  5. package/dist/agent/agent.js.map +1 -1
  6. package/dist/agent/loop-detector.d.ts +39 -0
  7. package/dist/agent/loop-detector.d.ts.map +1 -0
  8. package/dist/agent/loop-detector.js +122 -0
  9. package/dist/agent/loop-detector.js.map +1 -0
  10. package/dist/agent/pool.d.ts +2 -1
  11. package/dist/agent/pool.d.ts.map +1 -1
  12. package/dist/agent/pool.js +4 -2
  13. package/dist/agent/pool.js.map +1 -1
  14. package/dist/agent/runner.d.ts +23 -1
  15. package/dist/agent/runner.d.ts.map +1 -1
  16. package/dist/agent/runner.js +113 -12
  17. package/dist/agent/runner.js.map +1 -1
  18. package/dist/index.d.ts +3 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/llm/adapter.d.ts +4 -1
  23. package/dist/llm/adapter.d.ts.map +1 -1
  24. package/dist/llm/adapter.js +11 -0
  25. package/dist/llm/adapter.js.map +1 -1
  26. package/dist/llm/copilot.d.ts.map +1 -1
  27. package/dist/llm/copilot.js +2 -1
  28. package/dist/llm/copilot.js.map +1 -1
  29. package/dist/llm/gemini.d.ts +65 -0
  30. package/dist/llm/gemini.d.ts.map +1 -0
  31. package/dist/llm/gemini.js +317 -0
  32. package/dist/llm/gemini.js.map +1 -0
  33. package/dist/llm/grok.d.ts +21 -0
  34. package/dist/llm/grok.d.ts.map +1 -0
  35. package/dist/llm/grok.js +24 -0
  36. package/dist/llm/grok.js.map +1 -0
  37. package/dist/llm/openai-common.d.ts +8 -1
  38. package/dist/llm/openai-common.d.ts.map +1 -1
  39. package/dist/llm/openai-common.js +35 -2
  40. package/dist/llm/openai-common.js.map +1 -1
  41. package/dist/llm/openai.d.ts +1 -1
  42. package/dist/llm/openai.d.ts.map +1 -1
  43. package/dist/llm/openai.js +20 -2
  44. package/dist/llm/openai.js.map +1 -1
  45. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  46. package/dist/orchestrator/orchestrator.js +89 -9
  47. package/dist/orchestrator/orchestrator.js.map +1 -1
  48. package/dist/task/queue.d.ts +31 -2
  49. package/dist/task/queue.d.ts.map +1 -1
  50. package/dist/task/queue.js +69 -2
  51. package/dist/task/queue.js.map +1 -1
  52. package/dist/tool/text-tool-extractor.d.ts +32 -0
  53. package/dist/tool/text-tool-extractor.d.ts.map +1 -0
  54. package/dist/tool/text-tool-extractor.js +187 -0
  55. package/dist/tool/text-tool-extractor.js.map +1 -0
  56. package/dist/types.d.ts +139 -7
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/utils/trace.d.ts +12 -0
  59. package/dist/utils/trace.d.ts.map +1 -0
  60. package/dist/utils/trace.js +30 -0
  61. package/dist/utils/trace.js.map +1 -0
  62. package/package.json +18 -2
  63. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  64. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  65. package/.github/pull_request_template.md +0 -14
  66. package/.github/workflows/ci.yml +0 -23
  67. package/CLAUDE.md +0 -72
  68. package/CODE_OF_CONDUCT.md +0 -48
  69. package/CONTRIBUTING.md +0 -72
  70. package/DECISIONS.md +0 -43
  71. package/README_zh.md +0 -217
  72. package/SECURITY.md +0 -17
  73. package/examples/01-single-agent.ts +0 -131
  74. package/examples/02-team-collaboration.ts +0 -167
  75. package/examples/03-task-pipeline.ts +0 -201
  76. package/examples/04-multi-model-team.ts +0 -261
  77. package/examples/05-copilot-test.ts +0 -49
  78. package/examples/06-local-model.ts +0 -199
  79. package/examples/07-fan-out-aggregate.ts +0 -209
  80. package/examples/08-gemma4-local.ts +0 -203
  81. package/examples/09-gemma4-auto-orchestration.ts +0 -162
  82. package/src/agent/agent.ts +0 -473
  83. package/src/agent/pool.ts +0 -278
  84. package/src/agent/runner.ts +0 -413
  85. package/src/agent/structured-output.ts +0 -126
  86. package/src/index.ts +0 -167
  87. package/src/llm/adapter.ts +0 -87
  88. package/src/llm/anthropic.ts +0 -389
  89. package/src/llm/copilot.ts +0 -551
  90. package/src/llm/openai-common.ts +0 -255
  91. package/src/llm/openai.ts +0 -272
  92. package/src/memory/shared.ts +0 -181
  93. package/src/memory/store.ts +0 -124
  94. package/src/orchestrator/orchestrator.ts +0 -977
  95. package/src/orchestrator/scheduler.ts +0 -352
  96. package/src/task/queue.ts +0 -394
  97. package/src/task/task.ts +0 -239
  98. package/src/team/messaging.ts +0 -232
  99. package/src/team/team.ts +0 -334
  100. package/src/tool/built-in/bash.ts +0 -187
  101. package/src/tool/built-in/file-edit.ts +0 -154
  102. package/src/tool/built-in/file-read.ts +0 -105
  103. package/src/tool/built-in/file-write.ts +0 -81
  104. package/src/tool/built-in/grep.ts +0 -362
  105. package/src/tool/built-in/index.ts +0 -50
  106. package/src/tool/executor.ts +0 -178
  107. package/src/tool/framework.ts +0 -557
  108. package/src/types.ts +0 -391
  109. package/src/utils/semaphore.ts +0 -89
  110. package/tests/semaphore.test.ts +0 -57
  111. package/tests/shared-memory.test.ts +0 -122
  112. package/tests/structured-output.test.ts +0 -331
  113. package/tests/task-queue.test.ts +0 -244
  114. package/tests/task-retry.test.ts +0 -368
  115. package/tests/task-utils.test.ts +0 -155
  116. package/tests/tool-executor.test.ts +0 -193
  117. package/tsconfig.json +0 -25
@@ -0,0 +1,122 @@
1
+ /**
2
+ * @fileoverview Sliding-window loop detector for the agent conversation loop.
3
+ *
4
+ * Tracks tool-call signatures and text outputs across turns to detect when an
5
+ * agent is stuck repeating the same actions. Used by {@link AgentRunner} when
6
+ * {@link LoopDetectionConfig} is provided.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Helpers
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Recursively sort object keys so that `{b:1, a:2}` and `{a:2, b:1}` produce
13
+ * the same JSON string.
14
+ */
15
+ function sortKeys(value) {
16
+ if (value === null || typeof value !== 'object')
17
+ return value;
18
+ if (Array.isArray(value))
19
+ return value.map(sortKeys);
20
+ const sorted = {};
21
+ for (const key of Object.keys(value).sort()) {
22
+ sorted[key] = sortKeys(value[key]);
23
+ }
24
+ return sorted;
25
+ }
26
+ // ---------------------------------------------------------------------------
27
+ // LoopDetector
28
+ // ---------------------------------------------------------------------------
29
+ export class LoopDetector {
30
+ maxRepeats;
31
+ windowSize;
32
+ toolSignatures = [];
33
+ textOutputs = [];
34
+ constructor(config = {}) {
35
+ this.maxRepeats = config.maxRepetitions ?? 3;
36
+ const requestedWindow = config.loopDetectionWindow ?? 4;
37
+ // Window must be >= threshold, otherwise detection can never trigger.
38
+ this.windowSize = Math.max(requestedWindow, this.maxRepeats);
39
+ }
40
+ /**
41
+ * Record a turn's tool calls. Returns detection info when a loop is found.
42
+ */
43
+ recordToolCalls(blocks) {
44
+ if (blocks.length === 0)
45
+ return null;
46
+ const signature = this.computeToolSignature(blocks);
47
+ this.push(this.toolSignatures, signature);
48
+ const count = this.consecutiveRepeats(this.toolSignatures);
49
+ if (count >= this.maxRepeats) {
50
+ const names = blocks.map(b => b.name).join(', ');
51
+ return {
52
+ kind: 'tool_repetition',
53
+ repetitions: count,
54
+ detail: `Tool call "${names}" with identical arguments has repeated ` +
55
+ `${count} times consecutively. The agent appears to be stuck in a loop.`,
56
+ };
57
+ }
58
+ return null;
59
+ }
60
+ /**
61
+ * Record a turn's text output. Returns detection info when a loop is found.
62
+ */
63
+ recordText(text) {
64
+ const normalised = text.trim().replace(/\s+/g, ' ');
65
+ if (normalised.length === 0)
66
+ return null;
67
+ this.push(this.textOutputs, normalised);
68
+ const count = this.consecutiveRepeats(this.textOutputs);
69
+ if (count >= this.maxRepeats) {
70
+ return {
71
+ kind: 'text_repetition',
72
+ repetitions: count,
73
+ detail: `The agent has produced the same text response ${count} times ` +
74
+ `consecutively. It appears to be stuck in a loop.`,
75
+ };
76
+ }
77
+ return null;
78
+ }
79
+ // -------------------------------------------------------------------------
80
+ // Private
81
+ // -------------------------------------------------------------------------
82
+ /**
83
+ * Deterministic JSON signature for a set of tool calls.
84
+ * Sorts calls by name (for multi-tool turns) and keys within each input.
85
+ */
86
+ computeToolSignature(blocks) {
87
+ const items = blocks
88
+ .map(b => ({ name: b.name, input: sortKeys(b.input) }))
89
+ .sort((a, b) => {
90
+ const cmp = a.name.localeCompare(b.name);
91
+ if (cmp !== 0)
92
+ return cmp;
93
+ return JSON.stringify(a.input).localeCompare(JSON.stringify(b.input));
94
+ });
95
+ return JSON.stringify(items);
96
+ }
97
+ /** Push an entry and trim the buffer to `windowSize`. */
98
+ push(buffer, entry) {
99
+ buffer.push(entry);
100
+ while (buffer.length > this.windowSize) {
101
+ buffer.shift();
102
+ }
103
+ }
104
+ /**
105
+ * Count how many consecutive identical entries exist at the tail of `buffer`.
106
+ * Returns 1 when the last entry is unique.
107
+ */
108
+ consecutiveRepeats(buffer) {
109
+ if (buffer.length === 0)
110
+ return 0;
111
+ const last = buffer[buffer.length - 1];
112
+ let count = 0;
113
+ for (let i = buffer.length - 1; i >= 0; i--) {
114
+ if (buffer[i] === last)
115
+ count++;
116
+ else
117
+ break;
118
+ }
119
+ return count;
120
+ }
121
+ }
122
+ //# sourceMappingURL=loop-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-detector.js","sourceRoot":"","sources":["../../src/agent/loop-detector.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  * ```
21
21
  */
22
22
  import type { AgentRunResult } from '../types.js';
23
+ import type { RunOptions } from './runner.js';
23
24
  import type { Agent } from './agent.js';
24
25
  export { Semaphore } from '../utils/semaphore.js';
25
26
  export interface PoolStatus {
@@ -78,7 +79,7 @@ export declare class AgentPool {
78
79
  *
79
80
  * @throws {Error} If the agent name is not found.
80
81
  */
81
- run(agentName: string, prompt: string): Promise<AgentRunResult>;
82
+ run(agentName: string, prompt: string, runOptions?: Partial<RunOptions>): Promise<AgentRunResult>;
82
83
  /**
83
84
  * Run prompts on multiple agents in parallel, subject to the concurrency
84
85
  * cap set at construction time.
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/agent/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAMjD,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAMD;;;;;;GAMG;AACH,qBAAa,SAAS;IAUR,OAAO,CAAC,QAAQ,CAAC,cAAc;IAT3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,wDAAwD;IACxD,OAAO,CAAC,eAAe,CAAI;IAE3B;;;OAGG;gBAC0B,cAAc,GAAE,MAAU;IAQvD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,IAAI,IAAI,KAAK,EAAE;IAQf;;;;;OAKG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAWrE;;;;;;;;;OASG;IACG,WAAW,CACf,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACxE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IA2BvC;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBrD;;OAEG;IACH,SAAS,IAAI,UAAU;IAsBvB;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAUpB"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/agent/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAMjD,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAMD;;;;;;GAMG;AACH,qBAAa,SAAS;IAUR,OAAO,CAAC,QAAQ,CAAC,cAAc;IAT3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,wDAAwD;IACxD,OAAO,CAAC,eAAe,CAAI;IAE3B;;;OAGG;gBAC0B,cAAc,GAAE,MAAU;IAQvD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO1B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIpC;;OAEG;IACH,IAAI,IAAI,KAAK,EAAE;IAQf;;;;;OAKG;IACG,GAAG,CACP,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC;IAW1B;;;;;;;;;OASG;IAEG,WAAW,CACf,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GACxE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IA2BvC;;;;;;;;OAQG;IAEG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuBrD;;OAEG;IACH,SAAS,IAAI,UAAU;IAsBvB;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAUpB"}
@@ -92,11 +92,11 @@ export class AgentPool {
92
92
  *
93
93
  * @throws {Error} If the agent name is not found.
94
94
  */
95
- async run(agentName, prompt) {
95
+ async run(agentName, prompt, runOptions) {
96
96
  const agent = this.requireAgent(agentName);
97
97
  await this.semaphore.acquire();
98
98
  try {
99
- return await agent.run(prompt);
99
+ return await agent.run(prompt, runOptions);
100
100
  }
101
101
  finally {
102
102
  this.semaphore.release();
@@ -112,6 +112,7 @@ export class AgentPool {
112
112
  *
113
113
  * @param tasks - Array of `{ agent, prompt }` descriptors.
114
114
  */
115
+ // TODO(#18): accept RunOptions per task to forward trace context
115
116
  async runParallel(tasks) {
116
117
  const resultMap = new Map();
117
118
  const settledResults = await Promise.allSettled(tasks.map(async (task) => {
@@ -143,6 +144,7 @@ export class AgentPool {
143
144
  *
144
145
  * @throws {Error} If the pool is empty.
145
146
  */
147
+ // TODO(#18): accept RunOptions to forward trace context
146
148
  async runAny(prompt) {
147
149
  const allAgents = this.list();
148
150
  if (allAgents.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/agent/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/agent/pool.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  * The loop follows a standard agentic conversation pattern:
12
12
  * one outer `while (true)` that breaks on `end_turn` or maxTurns exhaustion.
13
13
  */
14
- import type { LLMMessage, ToolCallRecord, TokenUsage, StreamEvent, ToolResult, LLMAdapter } from '../types.js';
14
+ import type { LLMMessage, ToolCallRecord, TokenUsage, StreamEvent, ToolResult, LLMAdapter, TraceEvent, LoopDetectionConfig } from '../types.js';
15
15
  import type { ToolRegistry } from '../tool/framework.js';
16
16
  import type { ToolExecutor } from '../tool/executor.js';
17
17
  /**
@@ -44,6 +44,8 @@ export interface RunnerOptions {
44
44
  readonly agentName?: string;
45
45
  /** Short role description of the agent (used in tool context). */
46
46
  readonly agentRole?: string;
47
+ /** Loop detection configuration. When set, detects stuck agent loops. */
48
+ readonly loopDetection?: LoopDetectionConfig;
47
49
  }
48
50
  /**
49
51
  * Per-call callbacks for observing tool execution in real time.
@@ -56,6 +58,24 @@ export interface RunOptions {
56
58
  readonly onToolResult?: (name: string, result: ToolResult) => void;
57
59
  /** Fired after each complete {@link LLMMessage} is appended. */
58
60
  readonly onMessage?: (message: LLMMessage) => void;
61
+ /**
62
+ * Fired when the runner detects a potential configuration issue.
63
+ * For example, when a model appears to ignore tool definitions.
64
+ */
65
+ readonly onWarning?: (message: string) => void;
66
+ /** Trace callback for observability spans. Async callbacks are safe. */
67
+ readonly onTrace?: (event: TraceEvent) => void | Promise<void>;
68
+ /** Run ID for trace correlation. */
69
+ readonly runId?: string;
70
+ /** Task ID for trace correlation. */
71
+ readonly taskId?: string;
72
+ /** Agent name for trace correlation (overrides RunnerOptions.agentName). */
73
+ readonly traceAgent?: string;
74
+ /**
75
+ * Per-call abort signal. When set, takes precedence over the static
76
+ * {@link RunnerOptions.abortSignal}. Useful for per-run timeouts.
77
+ */
78
+ readonly abortSignal?: AbortSignal;
59
79
  }
60
80
  /** The aggregated result returned when a full run completes. */
61
81
  export interface RunResult {
@@ -69,6 +89,8 @@ export interface RunResult {
69
89
  readonly tokenUsage: TokenUsage;
70
90
  /** Total number of LLM turns (including tool-call follow-ups). */
71
91
  readonly turns: number;
92
+ /** True when the run was terminated or warned due to loop detection. */
93
+ readonly loopDetected?: boolean;
72
94
  }
73
95
  /**
74
96
  * Drives a full agentic conversation: LLM calls, tool execution, and looping.
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EAKV,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EAEV,UAAU,EAEX,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC5E,gDAAgD;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAClE,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;CACnD;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAA;IACpC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAiCD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAGd,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,aAAa;IASzC;;;;;;;;OAQG;IACG,GAAG,CACP,QAAQ,EAAE,UAAU,EAAE,EACtB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,SAAS,CAAC;IA8BrB;;;;;;;;;OASG;IACI,MAAM,CACX,eAAe,EAAE,UAAU,EAAE,EAC7B,OAAO,GAAE,UAAe,GACvB,cAAc,CAAC,WAAW,CAAC;IA6L9B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAUzB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@
11
11
  * The loop follows a standard agentic conversation pattern:
12
12
  * one outer `while (true)` that breaks on `end_turn` or maxTurns exhaustion.
13
13
  */
14
+ import { LoopDetector } from './loop-detector.js';
15
+ import { emitTrace } from '../utils/trace.js';
14
16
  // ---------------------------------------------------------------------------
15
17
  // Internal helpers
16
18
  // ---------------------------------------------------------------------------
@@ -85,12 +87,7 @@ export class AgentRunner {
85
87
  };
86
88
  for await (const event of this.stream(messages, options)) {
87
89
  if (event.type === 'done') {
88
- const result = event.data;
89
- accumulated.messages = result.messages;
90
- accumulated.output = result.output;
91
- accumulated.toolCalls = result.toolCalls;
92
- accumulated.tokenUsage = result.tokenUsage;
93
- accumulated.turns = result.turns;
90
+ Object.assign(accumulated, event.data);
94
91
  }
95
92
  }
96
93
  return accumulated;
@@ -120,21 +117,30 @@ export class AgentRunner {
120
117
  const toolDefs = this.options.allowedTools
121
118
  ? allDefs.filter(d => this.options.allowedTools.includes(d.name))
122
119
  : allDefs;
120
+ // Per-call abortSignal takes precedence over the static one.
121
+ const effectiveAbortSignal = options.abortSignal ?? this.options.abortSignal;
123
122
  const baseChatOptions = {
124
123
  model: this.options.model,
125
124
  tools: toolDefs.length > 0 ? toolDefs : undefined,
126
125
  maxTokens: this.options.maxTokens,
127
126
  temperature: this.options.temperature,
128
127
  systemPrompt: this.options.systemPrompt,
129
- abortSignal: this.options.abortSignal,
128
+ abortSignal: effectiveAbortSignal,
130
129
  };
130
+ // Loop detection state — only allocated when configured.
131
+ const detector = this.options.loopDetection
132
+ ? new LoopDetector(this.options.loopDetection)
133
+ : null;
134
+ let loopDetected = false;
135
+ let loopWarned = false;
136
+ const loopAction = this.options.loopDetection?.onLoopDetected ?? 'warn';
131
137
  try {
132
138
  // -----------------------------------------------------------------
133
139
  // Main agentic loop — `while (true)` until end_turn or maxTurns
134
140
  // -----------------------------------------------------------------
135
141
  while (true) {
136
142
  // Respect abort before each LLM call.
137
- if (this.options.abortSignal?.aborted) {
143
+ if (effectiveAbortSignal?.aborted) {
138
144
  break;
139
145
  }
140
146
  // Guard against unbounded loops.
@@ -145,7 +151,23 @@ export class AgentRunner {
145
151
  // ------------------------------------------------------------------
146
152
  // Step 1: Call the LLM and collect the full response for this turn.
147
153
  // ------------------------------------------------------------------
154
+ const llmStartMs = Date.now();
148
155
  const response = await this.adapter.chat(conversationMessages, baseChatOptions);
156
+ if (options.onTrace) {
157
+ const llmEndMs = Date.now();
158
+ emitTrace(options.onTrace, {
159
+ type: 'llm_call',
160
+ runId: options.runId ?? '',
161
+ taskId: options.taskId,
162
+ agent: options.traceAgent ?? this.options.agentName ?? 'unknown',
163
+ model: this.options.model,
164
+ turn: turns,
165
+ tokens: response.usage,
166
+ startMs: llmStartMs,
167
+ endMs: llmEndMs,
168
+ durationMs: llmEndMs - llmStartMs,
169
+ });
170
+ }
149
171
  totalUsage = addTokenUsage(totalUsage, response.usage);
150
172
  // ------------------------------------------------------------------
151
173
  // Step 2: Build the assistant message from the response content.
@@ -161,19 +183,70 @@ export class AgentRunner {
161
183
  if (turnText.length > 0) {
162
184
  yield { type: 'text', data: turnText };
163
185
  }
164
- // Announce each tool-use block the model requested.
186
+ // Extract tool-use blocks for detection and execution.
165
187
  const toolUseBlocks = extractToolUseBlocks(response.content);
166
- for (const block of toolUseBlocks) {
167
- yield { type: 'tool_use', data: block };
188
+ // ------------------------------------------------------------------
189
+ // Step 2.5: Loop detection check before yielding tool_use events
190
+ // so that terminate mode doesn't emit orphaned tool_use without
191
+ // matching tool_result.
192
+ // ------------------------------------------------------------------
193
+ let injectWarning = false;
194
+ let injectWarningKind = 'tool_repetition';
195
+ if (detector && toolUseBlocks.length > 0) {
196
+ const toolInfo = detector.recordToolCalls(toolUseBlocks);
197
+ const textInfo = turnText.length > 0 ? detector.recordText(turnText) : null;
198
+ const info = toolInfo ?? textInfo;
199
+ if (info) {
200
+ yield { type: 'loop_detected', data: info };
201
+ options.onWarning?.(info.detail);
202
+ const action = typeof loopAction === 'function'
203
+ ? await loopAction(info)
204
+ : loopAction;
205
+ if (action === 'terminate') {
206
+ loopDetected = true;
207
+ finalOutput = turnText;
208
+ break;
209
+ }
210
+ else if (action === 'warn' || action === 'inject') {
211
+ if (loopWarned) {
212
+ // Second detection after a warning — force terminate.
213
+ loopDetected = true;
214
+ finalOutput = turnText;
215
+ break;
216
+ }
217
+ loopWarned = true;
218
+ injectWarning = true;
219
+ injectWarningKind = info.kind;
220
+ // Fall through to execute tools, then inject warning.
221
+ }
222
+ // 'continue' — do nothing, let the loop proceed normally.
223
+ }
224
+ else {
225
+ // No loop detected this turn — agent has recovered, so reset
226
+ // the warning state. A future loop gets a fresh warning cycle.
227
+ loopWarned = false;
228
+ }
168
229
  }
169
230
  // ------------------------------------------------------------------
170
231
  // Step 3: Decide whether to continue looping.
171
232
  // ------------------------------------------------------------------
172
233
  if (toolUseBlocks.length === 0) {
234
+ // Warn on first turn if tools were provided but model didn't use them.
235
+ if (turns === 1 && toolDefs.length > 0 && options.onWarning) {
236
+ const agentName = this.options.agentName ?? 'unknown';
237
+ options.onWarning(`Agent "${agentName}" has ${toolDefs.length} tool(s) available but the model ` +
238
+ `returned no tool calls. If using a local model, verify it supports tool calling ` +
239
+ `(see https://ollama.com/search?c=tools).`);
240
+ }
173
241
  // No tools requested — this is the terminal assistant turn.
174
242
  finalOutput = turnText;
175
243
  break;
176
244
  }
245
+ // Announce each tool-use block the model requested (after loop
246
+ // detection, so terminate mode never emits unpaired events).
247
+ for (const block of toolUseBlocks) {
248
+ yield { type: 'tool_use', data: block };
249
+ }
177
250
  // ------------------------------------------------------------------
178
251
  // Step 4: Execute all tool calls in PARALLEL.
179
252
  //
@@ -193,8 +266,22 @@ export class AgentRunner {
193
266
  const message = err instanceof Error ? err.message : String(err);
194
267
  result = { data: message, isError: true };
195
268
  }
196
- const duration = Date.now() - startTime;
269
+ const endTime = Date.now();
270
+ const duration = endTime - startTime;
197
271
  options.onToolResult?.(block.name, result);
272
+ if (options.onTrace) {
273
+ emitTrace(options.onTrace, {
274
+ type: 'tool_call',
275
+ runId: options.runId ?? '',
276
+ taskId: options.taskId,
277
+ agent: options.traceAgent ?? this.options.agentName ?? 'unknown',
278
+ tool: block.name,
279
+ isError: result.isError ?? false,
280
+ startMs: startTime,
281
+ endMs: endTime,
282
+ durationMs: duration,
283
+ });
284
+ }
198
285
  const record = {
199
286
  toolName: block.name,
200
287
  input: block.input,
@@ -220,6 +307,19 @@ export class AgentRunner {
220
307
  allToolCalls.push(record);
221
308
  yield { type: 'tool_result', data: resultBlock };
222
309
  }
310
+ // Inject a loop-detection warning into the tool-result message so
311
+ // the LLM sees it alongside the results (avoids two consecutive user
312
+ // messages which violates the alternating-role constraint).
313
+ if (injectWarning) {
314
+ const warningText = injectWarningKind === 'text_repetition'
315
+ ? 'WARNING: You appear to be generating the same response repeatedly. ' +
316
+ 'This suggests you are stuck in a loop. Please try a different approach ' +
317
+ 'or provide new information.'
318
+ : 'WARNING: You appear to be repeating the same tool calls with identical arguments. ' +
319
+ 'This suggests you are stuck in a loop. Please try a different approach, use different ' +
320
+ 'parameters, or explain what you are trying to accomplish.';
321
+ toolResultBlocks.push({ type: 'text', text: warningText });
322
+ }
223
323
  const toolResultMessage = {
224
324
  role: 'user',
225
325
  content: toolResultBlocks,
@@ -250,6 +350,7 @@ export class AgentRunner {
250
350
  toolCalls: allToolCalls,
251
351
  tokenUsage: totalUsage,
252
352
  turns,
353
+ ...(loopDetected ? { loopDetected: true } : {}),
253
354
  };
254
355
  yield { type: 'done', data: runResult };
255
356
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkFH,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,kEAAkE;AAClE,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,uDAAuD;AACvD,SAAS,oBAAoB,CAAC,OAAgC;IAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;AACxE,CAAC;AAED,0EAA0E;AAC1E,SAAS,aAAa,CAAC,CAAa,EAAE,CAAa;IACjD,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC7C,aAAa,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa;KACjD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,GAAe,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAA;AAEpE,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAW;IAIH;IACA;IACA;IACA;IANF,QAAQ,CAAQ;IAEjC,YACmB,OAAmB,EACnB,YAA0B,EAC1B,YAA0B,EAC1B,OAAsB;QAHtB,YAAO,GAAP,OAAO,CAAY;QACnB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,YAAO,GAAP,OAAO,CAAe;QAEvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IACxC,CAAC;IAED,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACP,QAAsB,EACtB,UAAsB,EAAE;QAExB,6DAA6D;QAC7D,MAAM,WAAW,GAMb;YACF,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,CAAC;SACT,CAAA;QAED,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACzD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAiB,CAAA;gBACtC,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;gBACtC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;gBAClC,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;gBACxC,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;gBAC1C,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YAClC,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,MAAM,CACX,eAA6B,EAC7B,UAAsB,EAAE;QAExB,gEAAgE;QAChE,MAAM,oBAAoB,GAAiB,CAAC,GAAG,eAAe,CAAC,CAAA;QAE/D,sCAAsC;QACtC,IAAI,UAAU,GAAe,UAAU,CAAA;QACvC,MAAM,YAAY,GAAqB,EAAE,CAAA;QACzC,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,yEAAyE;QACzE,uEAAuE;QACvE,+CAA+C;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAA;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;YACxC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC,CAAC,OAAO,CAAA;QAEX,MAAM,eAAe,GAAmB;YACtC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,KAAK,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACjD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;SACtC,CAAA;QAED,IAAI,CAAC;YACH,oEAAoE;YACpE,gEAAgE;YAChE,oEAAoE;YACpE,OAAO,IAAI,EAAE,CAAC;gBACZ,sCAAsC;gBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBACtC,MAAK;gBACP,CAAC;gBAED,iCAAiC;gBACjC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC3B,MAAK;gBACP,CAAC;gBAED,KAAK,EAAE,CAAA;gBAEP,qEAAqE;gBACrE,oEAAoE;gBACpE,qEAAqE;gBACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;gBAE/E,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAEtD,qEAAqE;gBACrE,iEAAiE;gBACjE,qEAAqE;gBACrE,MAAM,gBAAgB,GAAe;oBACnC,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAA;gBAED,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC3C,OAAO,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAA;gBAErC,oEAAoE;gBACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAwB,CAAA;gBAC9D,CAAC;gBAED,oDAAoD;gBACpD,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC5D,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBAClC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAwB,CAAA;gBAC/D,CAAC;gBAED,qEAAqE;gBACrE,8CAA8C;gBAC9C,qEAAqE;gBACrE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,4DAA4D;oBAC5D,WAAW,GAAG,QAAQ,CAAA;oBACtB,MAAK;gBACP,CAAC;gBAED,qEAAqE;gBACrE,8CAA8C;gBAC9C,EAAE;gBACF,oEAAoE;gBACpE,8DAA8D;gBAC9D,qEAAqE;gBACrE,MAAM,WAAW,GAAmB,IAAI,CAAC,gBAAgB,EAAE,CAAA;gBAE3D,MAAM,iBAAiB,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAGrD,EAAE;oBACH,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;oBAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBAC5B,IAAI,MAAkB,CAAA;oBAEtB,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CACtC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,WAAW,CACZ,CAAA;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,kEAAkE;wBAClE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBAChE,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;oBAC3C,CAAC;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAEvC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;oBAE1C,MAAM,MAAM,GAAmB;wBAC7B,QAAQ,EAAE,KAAK,CAAC,IAAI;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,MAAM,CAAC,IAAI;wBACnB,QAAQ;qBACT,CAAA;oBAED,MAAM,WAAW,GAAoB;wBACnC,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,KAAK,CAAC,EAAE;wBACrB,OAAO,EAAE,MAAM,CAAC,IAAI;wBACpB,QAAQ,EAAE,MAAM,CAAC,OAAO;qBACzB,CAAA;oBAED,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;gBAChC,CAAC,CAAC,CAAA;gBAEF,8CAA8C;gBAC9C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBAEvD,qEAAqE;gBACrE,qEAAqE;gBACrE,iDAAiD;gBACjD,qEAAqE;gBACrE,MAAM,gBAAgB,GAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;gBAE3E,KAAK,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,UAAU,EAAE,CAAC;oBACjD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACzB,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAwB,CAAA;gBACxE,CAAC;gBAED,MAAM,iBAAiB,GAAe;oBACpC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,gBAAgB;iBAC1B,CAAA;gBAED,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC5C,OAAO,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAA;gBAEtC,8DAA8D;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAwB,CAAA;YAC1D,OAAM;QACR,CAAC;QAED,0EAA0E;QAC1E,IAAI,WAAW,KAAK,EAAE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,CAAC,GAAG,oBAAoB,CAAC;iBAC5C,OAAO,EAAE;iBACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;YACpC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAc;YAC3B,yEAAyE;YACzE,QAAQ,EAAE,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;YAC5D,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,UAAU;YACtB,KAAK;SACN,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAwB,CAAA;IAC/D,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;OAGG;IACK,gBAAgB;QACtB,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,QAAQ;gBACxC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,WAAW;gBAC3C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;aAC1B;YACD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;SACtC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agent/runner.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -53,6 +53,7 @@ export { OpenMultiAgent, executeWithRetry, computeRetryDelay } from './orchestra
53
53
  export { Scheduler } from './orchestrator/scheduler.js';
54
54
  export type { SchedulingStrategy } from './orchestrator/scheduler.js';
55
55
  export { Agent } from './agent/agent.js';
56
+ export { LoopDetector } from './agent/loop-detector.js';
56
57
  export { buildStructuredOutputInstruction, extractJSON, validateOutput } from './agent/structured-output.js';
57
58
  export { AgentPool, Semaphore } from './agent/pool.js';
58
59
  export type { PoolStatus } from './agent/pool.js';
@@ -70,5 +71,6 @@ export { createAdapter } from './llm/adapter.js';
70
71
  export type { SupportedProvider } from './llm/adapter.js';
71
72
  export { InMemoryStore } from './memory/store.js';
72
73
  export { SharedMemory } from './memory/shared.js';
73
- export type { TextBlock, ToolUseBlock, ToolResultBlock, ImageBlock, ContentBlock, LLMMessage, LLMResponse, LLMAdapter, LLMChatOptions, LLMStreamOptions, LLMToolDef, TokenUsage, StreamEvent, ToolDefinition, ToolResult, ToolUseContext, AgentInfo, TeamInfo, AgentConfig, AgentState, AgentRunResult, ToolCallRecord, TeamConfig, TeamRunResult, Task, TaskStatus, OrchestratorConfig, OrchestratorEvent, MemoryEntry, MemoryStore, } from './types.js';
74
+ export type { TextBlock, ToolUseBlock, ToolResultBlock, ImageBlock, ContentBlock, LLMMessage, LLMResponse, LLMAdapter, LLMChatOptions, LLMStreamOptions, LLMToolDef, TokenUsage, StreamEvent, ToolDefinition, ToolResult, ToolUseContext, AgentInfo, TeamInfo, AgentConfig, AgentState, AgentRunResult, BeforeRunHookContext, ToolCallRecord, LoopDetectionConfig, LoopDetectionInfo, TeamConfig, TeamRunResult, Task, TaskStatus, OrchestratorConfig, OrchestratorEvent, TraceEventType, TraceEventBase, TraceEvent, LLMCallTrace, ToolCallTrace, TaskTrace, AgentTrace, MemoryEntry, MemoryStore, } from './types.js';
75
+ export { generateRunId } from './utils/trace.js';
74
76
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAMrE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC1G,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMjD,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EAGX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EAGR,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EAGd,UAAU,EACV,aAAa,EAGb,IAAI,EACJ,UAAU,EAGV,kBAAkB,EAClB,iBAAiB,EAGjB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAMrE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAC1G,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAMjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAMzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMjD,YAAY,EAEV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EAGZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EAGX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EAGR,WAAW,EACX,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAGjB,UAAU,EACV,aAAa,EAGb,IAAI,EACJ,UAAU,EAGV,kBAAkB,EAClB,iBAAiB,EAGjB,cAAc,EACd,cAAc,EACd,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EAGV,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -58,6 +58,7 @@ export { Scheduler } from './orchestrator/scheduler.js';
58
58
  // Agent layer
59
59
  // ---------------------------------------------------------------------------
60
60
  export { Agent } from './agent/agent.js';
61
+ export { LoopDetector } from './agent/loop-detector.js';
61
62
  export { buildStructuredOutputInstruction, extractJSON, validateOutput } from './agent/structured-output.js';
62
63
  export { AgentPool, Semaphore } from './agent/pool.js';
63
64
  // ---------------------------------------------------------------------------
@@ -85,4 +86,5 @@ export { createAdapter } from './llm/adapter.js';
85
86
  // ---------------------------------------------------------------------------
86
87
  export { InMemoryStore } from './memory/store.js';
87
88
  export { SharedMemory } from './memory/shared.js';
89
+ export { generateRunId } from './utils/trace.js';
88
90
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAGvD,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGtD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAG1G,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAEjC,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAGvD,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gCAAgC,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC5G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGtD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAG1G,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,GACT,MAAM,0BAA0B,CAAA;AAEjC,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGhD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAkEjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * const anthropic = createAdapter('anthropic')
13
13
  * const openai = createAdapter('openai', process.env.OPENAI_API_KEY)
14
+ * const gemini = createAdapter('gemini', process.env.GEMINI_API_KEY)
14
15
  * ```
15
16
  */
16
17
  export type { LLMAdapter, LLMChatOptions, LLMStreamOptions, LLMToolDef, LLMMessage, LLMResponse, StreamEvent, TokenUsage, ContentBlock, TextBlock, ToolUseBlock, ToolResultBlock, ImageBlock, } from '../types.js';
@@ -20,7 +21,7 @@ import type { LLMAdapter } from '../types.js';
20
21
  * Additional providers can be integrated by implementing {@link LLMAdapter}
21
22
  * directly and bypassing this factory.
22
23
  */
23
- export type SupportedProvider = 'anthropic' | 'copilot' | 'openai';
24
+ export type SupportedProvider = 'anthropic' | 'copilot' | 'grok' | 'openai' | 'gemini';
24
25
  /**
25
26
  * Instantiate the appropriate {@link LLMAdapter} for the given provider.
26
27
  *
@@ -28,6 +29,8 @@ export type SupportedProvider = 'anthropic' | 'copilot' | 'openai';
28
29
  * explicitly:
29
30
  * - `anthropic` → `ANTHROPIC_API_KEY`
30
31
  * - `openai` → `OPENAI_API_KEY`
32
+ * - `gemini` → `GEMINI_API_KEY` / `GOOGLE_API_KEY`
33
+ * - `grok` → `XAI_API_KEY`
31
34
  * - `copilot` → `GITHUB_COPILOT_TOKEN` / `GITHUB_TOKEN`, or interactive
32
35
  * OAuth2 device flow if neither is set
33
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAuBrB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/llm/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CA+BrB"}