indusagi 0.12.15 → 0.12.16

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 (236) hide show
  1. package/dist/agent/agent-session.d.ts +352 -0
  2. package/dist/agent/agent-session.d.ts.map +1 -0
  3. package/dist/agent/agent-session.js +870 -0
  4. package/dist/agent/agent-session.js.map +1 -0
  5. package/dist/agent/agent-session.test.d.ts +5 -0
  6. package/dist/agent/agent-session.test.d.ts.map +1 -0
  7. package/dist/agent/agent-session.test.js +129 -0
  8. package/dist/agent/agent-session.test.js.map +1 -0
  9. package/dist/agent/agent.d.ts +108 -2
  10. package/dist/agent/agent.d.ts.map +1 -1
  11. package/dist/agent/agent.js +210 -17
  12. package/dist/agent/agent.js.map +1 -1
  13. package/dist/agent/bash-executor.d.ts +33 -0
  14. package/dist/agent/bash-executor.d.ts.map +1 -0
  15. package/dist/agent/bash-executor.js +197 -0
  16. package/dist/agent/bash-executor.js.map +1 -0
  17. package/dist/agent/compaction/compaction.d.ts +87 -0
  18. package/dist/agent/compaction/compaction.d.ts.map +1 -0
  19. package/dist/agent/compaction/compaction.js +598 -0
  20. package/dist/agent/compaction/compaction.js.map +1 -0
  21. package/dist/agent/compaction/index.d.ts +6 -0
  22. package/dist/agent/compaction/index.d.ts.map +1 -0
  23. package/dist/agent/compaction/index.js +6 -0
  24. package/dist/agent/compaction/index.js.map +1 -0
  25. package/dist/agent/compaction/utils.d.ts +41 -0
  26. package/dist/agent/compaction/utils.d.ts.map +1 -0
  27. package/dist/agent/compaction/utils.js +240 -0
  28. package/dist/agent/compaction/utils.js.map +1 -0
  29. package/dist/agent/event-bus.js +1 -3
  30. package/dist/agent/event-bus.js.map +1 -1
  31. package/dist/agent/index.d.ts +11 -5
  32. package/dist/agent/index.d.ts.map +1 -1
  33. package/dist/agent/index.js +19 -8
  34. package/dist/agent/index.js.map +1 -1
  35. package/dist/agent/messages.d.ts +2 -48
  36. package/dist/agent/messages.d.ts.map +1 -1
  37. package/dist/agent/messages.js.map +1 -1
  38. package/dist/agent/proxy.js.map +1 -1
  39. package/dist/agent/session-manager.d.ts +2 -3
  40. package/dist/agent/session-manager.d.ts.map +1 -1
  41. package/dist/agent/session-manager.js +10 -6
  42. package/dist/agent/session-manager.js.map +1 -1
  43. package/dist/agent/settings-manager.d.ts +204 -0
  44. package/dist/agent/settings-manager.d.ts.map +1 -0
  45. package/dist/agent/settings-manager.js +594 -0
  46. package/dist/agent/settings-manager.js.map +1 -0
  47. package/dist/agent/state-manager.js +1 -0
  48. package/dist/agent/state-manager.js.map +1 -1
  49. package/dist/agent/telemetry.js +1 -3
  50. package/dist/agent/telemetry.js.map +1 -1
  51. package/dist/agent/tools/bash.js +1 -0
  52. package/dist/agent/tools/bash.js.map +1 -1
  53. package/dist/agent/tools/edit.test.d.ts +6 -0
  54. package/dist/agent/tools/edit.test.d.ts.map +1 -0
  55. package/dist/agent/tools/edit.test.js +196 -0
  56. package/dist/agent/tools/edit.test.js.map +1 -0
  57. package/dist/agent/tools/index.d.ts +26 -26
  58. package/dist/agent/tools/registry.js +2 -4
  59. package/dist/agent/tools/registry.js.map +1 -1
  60. package/dist/agent/tools/todo-store.js +2 -1
  61. package/dist/agent/tools/todo-store.js.map +1 -1
  62. package/dist/agent/tools/utils/hook-runner.js +1 -3
  63. package/dist/agent/tools/utils/hook-runner.js.map +1 -1
  64. package/dist/agent/types.d.ts +138 -1
  65. package/dist/agent/types.d.ts.map +1 -1
  66. package/dist/agent/types.js.map +1 -1
  67. package/dist/ai/api-registry.js +1 -3
  68. package/dist/ai/api-registry.js.map +1 -1
  69. package/dist/ai/models.js +1 -0
  70. package/dist/ai/models.js.map +1 -1
  71. package/dist/ai/providers/amazon-bedrock.d.ts +6 -0
  72. package/dist/ai/providers/amazon-bedrock.d.ts.map +1 -1
  73. package/dist/ai/providers/amazon-bedrock.js +47 -9
  74. package/dist/ai/providers/amazon-bedrock.js.map +1 -1
  75. package/dist/ai/providers/anthropic.d.ts +8 -0
  76. package/dist/ai/providers/anthropic.d.ts.map +1 -1
  77. package/dist/ai/providers/anthropic.js +28 -12
  78. package/dist/ai/providers/anthropic.js.map +1 -1
  79. package/dist/ai/providers/azure-openai-responses.js +1 -0
  80. package/dist/ai/providers/azure-openai-responses.js.map +1 -1
  81. package/dist/ai/providers/github-copilot-headers.d.ts +33 -0
  82. package/dist/ai/providers/github-copilot-headers.d.ts.map +1 -0
  83. package/dist/ai/providers/github-copilot-headers.js +51 -0
  84. package/dist/ai/providers/github-copilot-headers.js.map +1 -0
  85. package/dist/ai/providers/google-shared.d.ts.map +1 -1
  86. package/dist/ai/providers/google-shared.js +16 -22
  87. package/dist/ai/providers/google-shared.js.map +1 -1
  88. package/dist/ai/providers/google-vertex.d.ts.map +1 -1
  89. package/dist/ai/providers/google-vertex.js +28 -5
  90. package/dist/ai/providers/google-vertex.js.map +1 -1
  91. package/dist/ai/providers/google.js +1 -0
  92. package/dist/ai/providers/google.js.map +1 -1
  93. package/dist/ai/providers/kimi.js +1 -0
  94. package/dist/ai/providers/kimi.js.map +1 -1
  95. package/dist/ai/providers/mistral.d.ts +22 -0
  96. package/dist/ai/providers/mistral.d.ts.map +1 -0
  97. package/dist/ai/providers/mistral.js +497 -0
  98. package/dist/ai/providers/mistral.js.map +1 -0
  99. package/dist/ai/providers/openai-codex-responses.js +1 -0
  100. package/dist/ai/providers/openai-codex-responses.js.map +1 -1
  101. package/dist/ai/providers/openai-completions.js +2 -0
  102. package/dist/ai/providers/openai-completions.js.map +1 -1
  103. package/dist/ai/providers/openai-responses.d.ts.map +1 -1
  104. package/dist/ai/providers/openai-responses.js +30 -0
  105. package/dist/ai/providers/openai-responses.js.map +1 -1
  106. package/dist/ai/providers/register-builtins.d.ts.map +1 -1
  107. package/dist/ai/providers/register-builtins.js +6 -0
  108. package/dist/ai/providers/register-builtins.js.map +1 -1
  109. package/dist/ai/providers/simple-options.js +2 -0
  110. package/dist/ai/providers/simple-options.js.map +1 -1
  111. package/dist/ai/providers/transform-messages.js +3 -9
  112. package/dist/ai/providers/transform-messages.js.map +1 -1
  113. package/dist/ai/stream.js +1 -3
  114. package/dist/ai/stream.js.map +1 -1
  115. package/dist/ai/types.d.ts +34 -0
  116. package/dist/ai/types.d.ts.map +1 -1
  117. package/dist/ai/types.js.map +1 -1
  118. package/dist/ai/utils/base-stream-handler.js +1 -0
  119. package/dist/ai/utils/base-stream-handler.js.map +1 -1
  120. package/dist/ai/utils/event-stream.js +9 -4
  121. package/dist/ai/utils/event-stream.js.map +1 -1
  122. package/dist/ai/utils/hash.d.ts +6 -0
  123. package/dist/ai/utils/hash.d.ts.map +1 -0
  124. package/dist/ai/utils/hash.js +17 -0
  125. package/dist/ai/utils/hash.js.map +1 -0
  126. package/dist/ai/utils/index.d.ts +1 -0
  127. package/dist/ai/utils/index.d.ts.map +1 -1
  128. package/dist/ai/utils/index.js +1 -0
  129. package/dist/ai/utils/index.js.map +1 -1
  130. package/dist/ai/utils/oauth/github-copilot.d.ts.map +1 -1
  131. package/dist/ai/utils/oauth/github-copilot.js +19 -8
  132. package/dist/ai/utils/oauth/github-copilot.js.map +1 -1
  133. package/dist/ai/utils/overflow.d.ts.map +1 -1
  134. package/dist/ai/utils/overflow.js +4 -0
  135. package/dist/ai/utils/overflow.js.map +1 -1
  136. package/dist/ai/utils/provider-adapter.js +9 -0
  137. package/dist/ai/utils/provider-adapter.js.map +1 -1
  138. package/dist/ai/utils/provider-client-builder.js +1 -1
  139. package/dist/ai/utils/provider-client-builder.js.map +1 -1
  140. package/dist/ai/utils/provider-errors.js +2 -0
  141. package/dist/ai/utils/provider-errors.js.map +1 -1
  142. package/dist/ai/utils/stream-event-helper.js +3 -0
  143. package/dist/ai/utils/stream-event-helper.js.map +1 -1
  144. package/dist/ai/utils/stream-handler-types.js +5 -0
  145. package/dist/ai/utils/stream-handler-types.js.map +1 -1
  146. package/dist/ai/utils/streaming-state-manager.js +4 -2
  147. package/dist/ai/utils/streaming-state-manager.js.map +1 -1
  148. package/dist/mcp/client-pool.js +3 -2
  149. package/dist/mcp/client-pool.js.map +1 -1
  150. package/dist/mcp/client.js +18 -5
  151. package/dist/mcp/client.js.map +1 -1
  152. package/dist/mcp/errors.js +8 -0
  153. package/dist/mcp/errors.js.map +1 -1
  154. package/dist/mcp/server.js +8 -3
  155. package/dist/mcp/server.js.map +1 -1
  156. package/dist/memory/embedder/openai.js +7 -1
  157. package/dist/memory/embedder/openai.js.map +1 -1
  158. package/dist/memory/memory.js +6 -1
  159. package/dist/memory/memory.js.map +1 -1
  160. package/dist/memory/processors/message-history.js +4 -2
  161. package/dist/memory/processors/message-history.js.map +1 -1
  162. package/dist/memory/processors/observational-memory/index.js +7 -2
  163. package/dist/memory/processors/observational-memory/index.js.map +1 -1
  164. package/dist/memory/processors/observational-memory/token-counter.js +3 -3
  165. package/dist/memory/processors/observational-memory/token-counter.js.map +1 -1
  166. package/dist/memory/processors/semantic-recall.js +11 -2
  167. package/dist/memory/processors/semantic-recall.js.map +1 -1
  168. package/dist/memory/processors/working-memory.js +7 -2
  169. package/dist/memory/processors/working-memory.js.map +1 -1
  170. package/dist/memory/storage/base.js +4 -6
  171. package/dist/memory/storage/base.js.map +1 -1
  172. package/dist/memory/storage/inmemory.js +3 -2
  173. package/dist/memory/storage/inmemory.js.map +1 -1
  174. package/dist/memory/vector/base.js +4 -6
  175. package/dist/memory/vector/base.js.map +1 -1
  176. package/dist/memory/vector/inmemory.js +2 -5
  177. package/dist/memory/vector/inmemory.js.map +1 -1
  178. package/dist/tui/autocomplete.js +5 -1
  179. package/dist/tui/autocomplete.js.map +1 -1
  180. package/dist/tui/components/box.js +9 -1
  181. package/dist/tui/components/box.js.map +1 -1
  182. package/dist/tui/components/cancellable-loader.js +3 -4
  183. package/dist/tui/components/cancellable-loader.js.map +1 -1
  184. package/dist/tui/components/editor.d.ts +39 -3
  185. package/dist/tui/components/editor.d.ts.map +1 -1
  186. package/dist/tui/components/editor.js +162 -133
  187. package/dist/tui/components/editor.js.map +1 -1
  188. package/dist/tui/components/image.js +8 -0
  189. package/dist/tui/components/image.js.map +1 -1
  190. package/dist/tui/components/input.js +10 -11
  191. package/dist/tui/components/input.js.map +1 -1
  192. package/dist/tui/components/loader.js +7 -4
  193. package/dist/tui/components/loader.js.map +1 -1
  194. package/dist/tui/components/markdown.js +10 -0
  195. package/dist/tui/components/markdown.js.map +1 -1
  196. package/dist/tui/components/select-list.js +8 -4
  197. package/dist/tui/components/select-list.js.map +1 -1
  198. package/dist/tui/components/settings-list.js +12 -4
  199. package/dist/tui/components/settings-list.js.map +1 -1
  200. package/dist/tui/components/spacer.js +1 -0
  201. package/dist/tui/components/spacer.js.map +1 -1
  202. package/dist/tui/components/text.js +5 -0
  203. package/dist/tui/components/text.js.map +1 -1
  204. package/dist/tui/components/truncated-text.js +3 -0
  205. package/dist/tui/components/truncated-text.js.map +1 -1
  206. package/dist/tui/fuzzy.js +4 -1
  207. package/dist/tui/fuzzy.js.map +1 -1
  208. package/dist/tui/keybindings.js +3 -2
  209. package/dist/tui/keybindings.js.map +1 -1
  210. package/dist/tui/keys.d.ts +17 -1
  211. package/dist/tui/keys.d.ts.map +1 -1
  212. package/dist/tui/keys.js +56 -0
  213. package/dist/tui/keys.js.map +1 -1
  214. package/dist/tui/kill-ring.d.ts +28 -0
  215. package/dist/tui/kill-ring.d.ts.map +1 -0
  216. package/dist/tui/kill-ring.js +44 -0
  217. package/dist/tui/kill-ring.js.map +1 -0
  218. package/dist/tui/stdin-buffer.js +6 -5
  219. package/dist/tui/stdin-buffer.js.map +1 -1
  220. package/dist/tui/terminal-image.js +1 -3
  221. package/dist/tui/terminal-image.js.map +1 -1
  222. package/dist/tui/terminal.d.ts +13 -0
  223. package/dist/tui/terminal.d.ts.map +1 -1
  224. package/dist/tui/terminal.js +70 -7
  225. package/dist/tui/terminal.js.map +1 -1
  226. package/dist/tui/tui.d.ts +36 -0
  227. package/dist/tui/tui.d.ts.map +1 -1
  228. package/dist/tui/tui.js +101 -29
  229. package/dist/tui/tui.js.map +1 -1
  230. package/dist/tui/undo-stack.d.ts +17 -0
  231. package/dist/tui/undo-stack.d.ts.map +1 -0
  232. package/dist/tui/undo-stack.js +25 -0
  233. package/dist/tui/undo-stack.js.map +1 -0
  234. package/dist/tui/utils.js +12 -16
  235. package/dist/tui/utils.js.map +1 -1
  236. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session.js","sourceRoot":"","sources":["../../src/agent/agent-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for AgentSession
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=agent-session.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session.test.d.ts","sourceRoot":"","sources":["../../src/agent/agent-session.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Tests for AgentSession
3
+ */
4
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
5
+ import { AgentSession } from "./agent-session.js";
6
+ import { Agent } from "./agent.js";
7
+ import { SessionManager } from "./session-manager.js";
8
+ import * as fs from "fs/promises";
9
+ import * as path from "path";
10
+ import * as os from "os";
11
+ describe("AgentSession", () => {
12
+ let session;
13
+ let tempDir;
14
+ let events;
15
+ beforeEach(async () => {
16
+ // Create temp directory for sessions
17
+ tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "agent-session-test-"));
18
+ events = [];
19
+ // Create session with minimal config
20
+ session = new AgentSession({
21
+ cwd: tempDir,
22
+ });
23
+ // Subscribe to events
24
+ session.subscribe((event) => {
25
+ events.push(event);
26
+ });
27
+ });
28
+ afterEach(async () => {
29
+ // Clean up
30
+ await session.abort();
31
+ await fs.rm(tempDir, { recursive: true, force: true });
32
+ });
33
+ describe("constructor", () => {
34
+ it("should create AgentSession successfully", () => {
35
+ expect(session).toBeInstanceOf(AgentSession);
36
+ expect(session.cwd).toBe(tempDir);
37
+ });
38
+ it("should create underlying agent", () => {
39
+ const agent = session.agent;
40
+ expect(agent).toBeInstanceOf(Agent);
41
+ });
42
+ it("should create session manager", () => {
43
+ const manager = session.sessionManager;
44
+ expect(manager).toBeInstanceOf(SessionManager);
45
+ });
46
+ });
47
+ describe("model management", () => {
48
+ it("should have model accessor", () => {
49
+ expect(session.model).toBeDefined();
50
+ });
51
+ it("should set model", async () => {
52
+ const model = { provider: "openai", id: "gpt-4" };
53
+ await session.setModel(model);
54
+ expect(session.model).toEqual(model);
55
+ });
56
+ });
57
+ describe("thinking level management", () => {
58
+ it("should have thinkingLevel accessor", () => {
59
+ expect(session.thinkingLevel).toBeDefined();
60
+ });
61
+ it("should set thinking level", () => {
62
+ session.setThinkingLevel("high");
63
+ expect(session.thinkingLevel).toBe("high");
64
+ });
65
+ it("should accept all valid thinking levels", () => {
66
+ const levels = ["off", "minimal", "low", "medium", "high"];
67
+ for (const level of levels) {
68
+ session.setThinkingLevel(level);
69
+ expect(session.thinkingLevel).toBe(level);
70
+ }
71
+ });
72
+ });
73
+ describe("session statistics", () => {
74
+ it("should return session stats", () => {
75
+ const stats = session.getSessionStats();
76
+ expect(stats).toHaveProperty("userMessages");
77
+ expect(stats).toHaveProperty("assistantMessages");
78
+ expect(stats).toHaveProperty("toolCalls");
79
+ expect(stats).toHaveProperty("totalMessages");
80
+ });
81
+ it("should return context usage", () => {
82
+ const usage = session.getContextUsage();
83
+ // May be undefined if no model set
84
+ expect(usage === undefined || (usage && typeof usage.percent === "number")).toBeTruthy();
85
+ });
86
+ });
87
+ describe("event management", () => {
88
+ it("should allow subscribing to events", () => {
89
+ const localEvents = [];
90
+ const unsubscribe = session.subscribe((event) => {
91
+ localEvents.push(event);
92
+ });
93
+ session.setThinkingLevel("medium");
94
+ expect(localEvents.length).toBeGreaterThan(0);
95
+ unsubscribe();
96
+ });
97
+ it("should unsubscribe correctly", () => {
98
+ const localEvents = [];
99
+ const unsubscribe = session.subscribe((event) => {
100
+ localEvents.push(event);
101
+ });
102
+ unsubscribe();
103
+ session.setThinkingLevel("high");
104
+ // After unsubscribe, should not receive new events
105
+ expect(localEvents).toHaveLength(0);
106
+ });
107
+ });
108
+ describe("accessors", () => {
109
+ it("should return agent", () => {
110
+ expect(session.agent).toBeInstanceOf(Agent);
111
+ });
112
+ it("should return session manager", () => {
113
+ expect(session.sessionManager).toBeInstanceOf(SessionManager);
114
+ });
115
+ it("should return cwd", () => {
116
+ expect(session.cwd).toBe(tempDir);
117
+ });
118
+ it("should return event bus", () => {
119
+ expect(session.eventBus).toBeDefined();
120
+ });
121
+ });
122
+ describe("lifecycle", () => {
123
+ it("should abort successfully", async () => {
124
+ await session.abort();
125
+ expect(session.isStreaming).toBe(false);
126
+ });
127
+ });
128
+ });
129
+ //# sourceMappingURL=agent-session.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-session.test.js","sourceRoot":"","sources":["../../src/agent/agent-session.test.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Agent class that uses the agent-loop directly.
3
3
  * No transport abstraction - calls streamSimple via the loop.
4
4
  */
5
- import { type ImageContent, type Message, type Model, type ThinkingBudgets } from "../ai/index.js";
5
+ import { type ImageContent, type Message, type Model, type ThinkingBudgets, type Transport } from "../ai/index.js";
6
6
  import type { AgentEvent, AgentMessage, AgentState, AgentTool, StreamFn, ThinkingLevel } from "./types.js";
7
7
  export interface AgentOptions {
8
8
  initialState?: Partial<AgentState>;
@@ -42,6 +42,21 @@ export interface AgentOptions {
42
42
  * Custom token budgets for thinking levels (token-based providers only).
43
43
  */
44
44
  thinkingBudgets?: ThinkingBudgets;
45
+ /**
46
+ * Inspect or replace provider payloads before they are sent.
47
+ */
48
+ onPayload?: (payload: unknown) => void;
49
+ /**
50
+ * Preferred transport for providers that support multiple transports.
51
+ */
52
+ transport?: Transport;
53
+ /**
54
+ * Maximum delay in milliseconds to wait for a retry when the server requests a long wait.
55
+ * If the server's requested delay exceeds this value, the request fails immediately,
56
+ * allowing higher-level retry logic to handle it with user visibility.
57
+ * Default: 60000 (60 seconds). Set to 0 to disable the cap.
58
+ */
59
+ maxRetryDelayMs?: number;
45
60
  }
46
61
  export declare class Agent {
47
62
  private _state;
@@ -60,6 +75,9 @@ export declare class Agent {
60
75
  private runningPrompt?;
61
76
  private resolveRunningPrompt?;
62
77
  private _thinkingBudgets?;
78
+ private _onPayload?;
79
+ private _transport;
80
+ private _maxRetryDelayMs?;
63
81
  constructor(opts?: AgentOptions);
64
82
  /**
65
83
  * Get the current session ID used for provider caching.
@@ -78,6 +96,22 @@ export declare class Agent {
78
96
  * Set custom thinking budgets for token-based providers.
79
97
  */
80
98
  set thinkingBudgets(value: ThinkingBudgets | undefined);
99
+ /**
100
+ * Get the preferred transport for providers that support multiple transports.
101
+ */
102
+ get transport(): Transport;
103
+ /**
104
+ * Set the preferred transport for providers that support multiple transports.
105
+ */
106
+ set transport(value: Transport);
107
+ /**
108
+ * Get the maximum retry delay in milliseconds.
109
+ */
110
+ get maxRetryDelayMs(): number | undefined;
111
+ /**
112
+ * Set the maximum retry delay in milliseconds.
113
+ */
114
+ set maxRetryDelayMs(value: number | undefined);
81
115
  get state(): AgentState;
82
116
  subscribe(fn: (e: AgentEvent) => void): () => void;
83
117
  setSystemPrompt(v: string): void;
@@ -88,6 +122,57 @@ export declare class Agent {
88
122
  setFollowUpMode(mode: "all" | "one-at-a-time"): void;
89
123
  getFollowUpMode(): "all" | "one-at-a-time";
90
124
  setTools(t: AgentTool<any>[]): void;
125
+ /**
126
+ * Register a tool dynamically at runtime.
127
+ * The tool is added to the agent's available tools and can be used in subsequent runs.
128
+ *
129
+ * @param tool - The tool to register
130
+ * @example
131
+ * ```typescript
132
+ * agent.registerTool({
133
+ * name: "custom_calculator",
134
+ * label: "Custom Calculator",
135
+ * description: "Performs custom calculations",
136
+ * parameters: Type.Object({ expression: Type.String() }),
137
+ * execute: async (toolCallId, params) => ({
138
+ * content: [{ type: "text", text: String(eval(params.expression)) }],
139
+ * details: {}
140
+ * })
141
+ * });
142
+ * ```
143
+ */
144
+ registerTool(tool: AgentTool<any>): void;
145
+ /**
146
+ * Register multiple tools at once.
147
+ *
148
+ * @param tools - Array of tools to register
149
+ */
150
+ registerTools(tools: AgentTool<any>[]): void;
151
+ /**
152
+ * Unregister a tool by name.
153
+ * The tool will no longer be available in subsequent runs.
154
+ *
155
+ * @param toolName - The name of the tool to unregister
156
+ * @returns true if the tool was found and removed, false otherwise
157
+ */
158
+ unregisterTool(toolName: string): boolean;
159
+ /**
160
+ * Get a tool by name.
161
+ *
162
+ * @param toolName - The name of the tool to retrieve
163
+ * @returns The tool if found, undefined otherwise
164
+ */
165
+ getTool(toolName: string): AgentTool<any> | undefined;
166
+ /**
167
+ * List all available tools with their metadata.
168
+ *
169
+ * @returns Array of tool metadata (name, label, description)
170
+ */
171
+ listTools(): Array<{
172
+ name: string;
173
+ label: string;
174
+ description?: string;
175
+ }>;
91
176
  replaceMessages(ms: AgentMessage[]): void;
92
177
  appendMessage(m: AgentMessage): void;
93
178
  /**
@@ -107,10 +192,31 @@ export declare class Agent {
107
192
  abort(): void;
108
193
  waitForIdle(): Promise<void>;
109
194
  reset(): void;
195
+ /**
196
+ * Dequeue steering messages based on steering mode.
197
+ * Used by continue() to handle queued steering messages.
198
+ * @private
199
+ */
200
+ private dequeueSteeringMessages;
201
+ /**
202
+ * Dequeue follow-up messages based on follow-up mode.
203
+ * Used by continue() to handle queued follow-up messages.
204
+ * @private
205
+ */
206
+ private dequeueFollowUpMessages;
110
207
  /** Send a prompt with an AgentMessage */
111
208
  prompt(message: AgentMessage | AgentMessage[]): Promise<void>;
112
209
  prompt(input: string, images?: ImageContent[]): Promise<void>;
113
- /** Continue from current context (for retry after overflow) */
210
+ /**
211
+ * Continue from current context (used for retries and resuming queued messages).
212
+ *
213
+ * If last message is from assistant:
214
+ * 1. Try dequeuing steering messages first (high priority interrupts)
215
+ * 2. If no steering, try dequeuing follow-up messages (continuation)
216
+ * 3. If neither, throw error
217
+ *
218
+ * If last message is from user, just continue the loop normally.
219
+ */
114
220
  continue(): Promise<void>;
115
221
  /**
116
222
  * Run the agent loop.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -13,22 +13,36 @@ function defaultConvertToLlm(messages) {
13
13
  return messages.filter((m) => m.role === "user" || m.role === "assistant" || m.role === "toolResult");
14
14
  }
15
15
  export class Agent {
16
+ _state = {
17
+ systemPrompt: "",
18
+ model: getModel("google", "gemini-2.5-flash-lite-preview-06-17"),
19
+ thinkingLevel: "off",
20
+ tools: [],
21
+ messages: [],
22
+ isStreaming: false,
23
+ streamMessage: null,
24
+ pendingToolCalls: new Set(),
25
+ error: undefined,
26
+ };
27
+ eventBus = new AgentEventBus();
28
+ stateManager = new AgentStateManager(this._state);
29
+ abortController;
30
+ convertToLlm;
31
+ transformContext;
32
+ steeringQueue = [];
33
+ followUpQueue = [];
34
+ steeringMode;
35
+ followUpMode;
36
+ streamFn;
37
+ _sessionId;
38
+ getApiKey;
39
+ runningPrompt;
40
+ resolveRunningPrompt;
41
+ _thinkingBudgets;
42
+ _onPayload;
43
+ _transport;
44
+ _maxRetryDelayMs;
16
45
  constructor(opts = {}) {
17
- this._state = {
18
- systemPrompt: "",
19
- model: getModel("google", "gemini-2.5-flash-lite-preview-06-17"),
20
- thinkingLevel: "off",
21
- tools: [],
22
- messages: [],
23
- isStreaming: false,
24
- streamMessage: null,
25
- pendingToolCalls: new Set(),
26
- error: undefined,
27
- };
28
- this.eventBus = new AgentEventBus();
29
- this.stateManager = new AgentStateManager(this._state);
30
- this.steeringQueue = [];
31
- this.followUpQueue = [];
32
46
  Object.assign(this._state, opts.initialState ?? {});
33
47
  this.convertToLlm = opts.convertToLlm || defaultConvertToLlm;
34
48
  this.transformContext = opts.transformContext;
@@ -36,6 +50,9 @@ export class Agent {
36
50
  this.followUpMode = opts.followUpMode || "one-at-a-time";
37
51
  this.streamFn = opts.streamFn || streamSimple;
38
52
  this._sessionId = opts.sessionId;
53
+ this._onPayload = opts.onPayload;
54
+ this._transport = opts.transport ?? "sse";
55
+ this._maxRetryDelayMs = opts.maxRetryDelayMs;
39
56
  this.getApiKey = opts.getApiKey;
40
57
  this._thinkingBudgets = opts.thinkingBudgets;
41
58
  }
@@ -64,6 +81,30 @@ export class Agent {
64
81
  set thinkingBudgets(value) {
65
82
  this._thinkingBudgets = value;
66
83
  }
84
+ /**
85
+ * Get the preferred transport for providers that support multiple transports.
86
+ */
87
+ get transport() {
88
+ return this._transport;
89
+ }
90
+ /**
91
+ * Set the preferred transport for providers that support multiple transports.
92
+ */
93
+ set transport(value) {
94
+ this._transport = value;
95
+ }
96
+ /**
97
+ * Get the maximum retry delay in milliseconds.
98
+ */
99
+ get maxRetryDelayMs() {
100
+ return this._maxRetryDelayMs;
101
+ }
102
+ /**
103
+ * Set the maximum retry delay in milliseconds.
104
+ */
105
+ set maxRetryDelayMs(value) {
106
+ this._maxRetryDelayMs = value;
107
+ }
67
108
  get state() {
68
109
  return this._state;
69
110
  }
@@ -95,6 +136,85 @@ export class Agent {
95
136
  setTools(t) {
96
137
  this.stateManager.setTools(t);
97
138
  }
139
+ /**
140
+ * Register a tool dynamically at runtime.
141
+ * The tool is added to the agent's available tools and can be used in subsequent runs.
142
+ *
143
+ * @param tool - The tool to register
144
+ * @example
145
+ * ```typescript
146
+ * agent.registerTool({
147
+ * name: "custom_calculator",
148
+ * label: "Custom Calculator",
149
+ * description: "Performs custom calculations",
150
+ * parameters: Type.Object({ expression: Type.String() }),
151
+ * execute: async (toolCallId, params) => ({
152
+ * content: [{ type: "text", text: String(eval(params.expression)) }],
153
+ * details: {}
154
+ * })
155
+ * });
156
+ * ```
157
+ */
158
+ registerTool(tool) {
159
+ const tools = this._state.tools;
160
+ // Check if tool already exists and replace it
161
+ const existingIndex = tools.findIndex((t) => t.name === tool.name);
162
+ if (existingIndex >= 0) {
163
+ tools[existingIndex] = tool;
164
+ }
165
+ else {
166
+ tools.push(tool);
167
+ }
168
+ this.stateManager.setTools([...tools]);
169
+ }
170
+ /**
171
+ * Register multiple tools at once.
172
+ *
173
+ * @param tools - Array of tools to register
174
+ */
175
+ registerTools(tools) {
176
+ for (const tool of tools) {
177
+ this.registerTool(tool);
178
+ }
179
+ }
180
+ /**
181
+ * Unregister a tool by name.
182
+ * The tool will no longer be available in subsequent runs.
183
+ *
184
+ * @param toolName - The name of the tool to unregister
185
+ * @returns true if the tool was found and removed, false otherwise
186
+ */
187
+ unregisterTool(toolName) {
188
+ const tools = this._state.tools;
189
+ const index = tools.findIndex((t) => t.name === toolName);
190
+ if (index >= 0) {
191
+ tools.splice(index, 1);
192
+ this.stateManager.setTools([...tools]);
193
+ return true;
194
+ }
195
+ return false;
196
+ }
197
+ /**
198
+ * Get a tool by name.
199
+ *
200
+ * @param toolName - The name of the tool to retrieve
201
+ * @returns The tool if found, undefined otherwise
202
+ */
203
+ getTool(toolName) {
204
+ return this._state.tools.find((t) => t.name === toolName);
205
+ }
206
+ /**
207
+ * List all available tools with their metadata.
208
+ *
209
+ * @returns Array of tool metadata (name, label, description)
210
+ */
211
+ listTools() {
212
+ return this._state.tools.map((t) => ({
213
+ name: t.name,
214
+ label: t.label,
215
+ description: t.description,
216
+ }));
217
+ }
98
218
  replaceMessages(ms) {
99
219
  this.stateManager.replaceMessages(ms);
100
220
  }
@@ -139,6 +259,46 @@ export class Agent {
139
259
  this.steeringQueue = [];
140
260
  this.followUpQueue = [];
141
261
  }
262
+ /**
263
+ * Dequeue steering messages based on steering mode.
264
+ * Used by continue() to handle queued steering messages.
265
+ * @private
266
+ */
267
+ dequeueSteeringMessages() {
268
+ if (this.steeringMode === "one-at-a-time") {
269
+ if (this.steeringQueue.length > 0) {
270
+ const first = this.steeringQueue[0];
271
+ this.steeringQueue = this.steeringQueue.slice(1);
272
+ return [first];
273
+ }
274
+ return [];
275
+ }
276
+ else {
277
+ const steering = this.steeringQueue.slice();
278
+ this.steeringQueue = [];
279
+ return steering;
280
+ }
281
+ }
282
+ /**
283
+ * Dequeue follow-up messages based on follow-up mode.
284
+ * Used by continue() to handle queued follow-up messages.
285
+ * @private
286
+ */
287
+ dequeueFollowUpMessages() {
288
+ if (this.followUpMode === "one-at-a-time") {
289
+ if (this.followUpQueue.length > 0) {
290
+ const first = this.followUpQueue[0];
291
+ this.followUpQueue = this.followUpQueue.slice(1);
292
+ return [first];
293
+ }
294
+ return [];
295
+ }
296
+ else {
297
+ const followUp = this.followUpQueue.slice();
298
+ this.followUpQueue = [];
299
+ return followUp;
300
+ }
301
+ }
142
302
  async prompt(input, images) {
143
303
  if (this._state.isStreaming) {
144
304
  throw new Error("Agent is already processing a prompt. Use steer() or followUp() to queue messages, or wait for completion.");
@@ -168,7 +328,16 @@ export class Agent {
168
328
  }
169
329
  await this._runLoop(msgs);
170
330
  }
171
- /** Continue from current context (for retry after overflow) */
331
+ /**
332
+ * Continue from current context (used for retries and resuming queued messages).
333
+ *
334
+ * If last message is from assistant:
335
+ * 1. Try dequeuing steering messages first (high priority interrupts)
336
+ * 2. If no steering, try dequeuing follow-up messages (continuation)
337
+ * 3. If neither, throw error
338
+ *
339
+ * If last message is from user, just continue the loop normally.
340
+ */
172
341
  async continue() {
173
342
  if (this._state.isStreaming) {
174
343
  throw new Error("Agent is already processing. Wait for completion before continuing.");
@@ -177,9 +346,24 @@ export class Agent {
177
346
  if (messages.length === 0) {
178
347
  throw new Error("No messages to continue from");
179
348
  }
349
+ // Handle assistant message case: check for queued messages first
180
350
  if (messages[messages.length - 1].role === "assistant") {
351
+ // Try steering messages first (higher priority - user interruptions)
352
+ const queuedSteering = this.dequeueSteeringMessages();
353
+ if (queuedSteering.length > 0) {
354
+ await this._runLoop(queuedSteering, { skipInitialSteeringPoll: true });
355
+ return;
356
+ }
357
+ // Then try follow-up messages (continuation)
358
+ const queuedFollowUp = this.dequeueFollowUpMessages();
359
+ if (queuedFollowUp.length > 0) {
360
+ await this._runLoop(queuedFollowUp);
361
+ return;
362
+ }
363
+ // No queued messages available
181
364
  throw new Error("Cannot continue from message role: assistant");
182
365
  }
366
+ // User message case: continue normally
183
367
  await this._runLoop(undefined);
184
368
  }
185
369
  /**
@@ -187,7 +371,7 @@ export class Agent {
187
371
  * If messages are provided, starts a new conversation turn with those messages.
188
372
  * Otherwise, continues from existing context.
189
373
  */
190
- async _runLoop(messages) {
374
+ async _runLoop(messages, options) {
191
375
  const model = this._state.model;
192
376
  if (!model)
193
377
  throw new Error("No model configured");
@@ -204,15 +388,24 @@ export class Agent {
204
388
  messages: this._state.messages.slice(),
205
389
  tools: this._state.tools,
206
390
  };
391
+ let skipInitialSteeringPoll = options?.skipInitialSteeringPoll === true;
207
392
  const config = {
208
393
  model,
209
394
  reasoning,
210
395
  sessionId: this._sessionId,
396
+ onPayload: this._onPayload,
397
+ transport: this._transport,
398
+ maxRetryDelayMs: this._maxRetryDelayMs,
211
399
  thinkingBudgets: this._thinkingBudgets,
212
400
  convertToLlm: this.convertToLlm,
213
401
  transformContext: this.transformContext,
214
402
  getApiKey: this.getApiKey,
215
403
  getSteeringMessages: async () => {
404
+ // Skip initial steering poll if explicitly requested (e.g., when continuing with dequeued steering)
405
+ if (skipInitialSteeringPoll) {
406
+ skipInitialSteeringPoll = false;
407
+ return [];
408
+ }
216
409
  if (this.steeringMode === "one-at-a-time") {
217
410
  if (this.steeringQueue.length > 0) {
218
411
  const first = this.steeringQueue[0];