@yeshwanthyk/ai 0.1.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.
Files changed (94) hide show
  1. package/README.md +1142 -0
  2. package/dist/agent/agent-loop.d.ts +16 -0
  3. package/dist/agent/agent-loop.d.ts.map +1 -0
  4. package/dist/agent/agent-loop.js +307 -0
  5. package/dist/agent/agent-loop.js.map +1 -0
  6. package/dist/agent/index.d.ts +4 -0
  7. package/dist/agent/index.d.ts.map +1 -0
  8. package/dist/agent/index.js +3 -0
  9. package/dist/agent/index.js.map +1 -0
  10. package/dist/agent/tools/calculate.d.ts +15 -0
  11. package/dist/agent/tools/calculate.d.ts.map +1 -0
  12. package/dist/agent/tools/calculate.js +23 -0
  13. package/dist/agent/tools/calculate.js.map +1 -0
  14. package/dist/agent/tools/get-current-time.d.ts +15 -0
  15. package/dist/agent/tools/get-current-time.d.ts.map +1 -0
  16. package/dist/agent/tools/get-current-time.js +38 -0
  17. package/dist/agent/tools/get-current-time.js.map +1 -0
  18. package/dist/agent/tools/index.d.ts +3 -0
  19. package/dist/agent/tools/index.d.ts.map +1 -0
  20. package/dist/agent/tools/index.js +3 -0
  21. package/dist/agent/tools/index.js.map +1 -0
  22. package/dist/agent/types.d.ts +69 -0
  23. package/dist/agent/types.d.ts.map +1 -0
  24. package/dist/agent/types.js +2 -0
  25. package/dist/agent/types.js.map +1 -0
  26. package/dist/index.d.ts +15 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +15 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/models.d.ts +11 -0
  31. package/dist/models.d.ts.map +1 -0
  32. package/dist/models.generated.d.ts +7406 -0
  33. package/dist/models.generated.d.ts.map +1 -0
  34. package/dist/models.generated.js +7268 -0
  35. package/dist/models.generated.js.map +1 -0
  36. package/dist/models.js +35 -0
  37. package/dist/models.js.map +1 -0
  38. package/dist/providers/anthropic.d.ts +12 -0
  39. package/dist/providers/anthropic.d.ts.map +1 -0
  40. package/dist/providers/anthropic.js +538 -0
  41. package/dist/providers/anthropic.js.map +1 -0
  42. package/dist/providers/google.d.ts +12 -0
  43. package/dist/providers/google.d.ts.map +1 -0
  44. package/dist/providers/google.js +427 -0
  45. package/dist/providers/google.js.map +1 -0
  46. package/dist/providers/openai-completions.d.ts +12 -0
  47. package/dist/providers/openai-completions.d.ts.map +1 -0
  48. package/dist/providers/openai-completions.js +540 -0
  49. package/dist/providers/openai-completions.js.map +1 -0
  50. package/dist/providers/openai-responses.d.ts +14 -0
  51. package/dist/providers/openai-responses.d.ts.map +1 -0
  52. package/dist/providers/openai-responses.js +553 -0
  53. package/dist/providers/openai-responses.js.map +1 -0
  54. package/dist/providers/transform-messages.d.ts +3 -0
  55. package/dist/providers/transform-messages.d.ts.map +1 -0
  56. package/dist/providers/transform-messages.js +111 -0
  57. package/dist/providers/transform-messages.js.map +1 -0
  58. package/dist/stream.d.ts +11 -0
  59. package/dist/stream.d.ts.map +1 -0
  60. package/dist/stream.js +204 -0
  61. package/dist/stream.js.map +1 -0
  62. package/dist/types.d.ts +203 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +4 -0
  65. package/dist/types.js.map +1 -0
  66. package/dist/utils/event-stream.d.ts +19 -0
  67. package/dist/utils/event-stream.d.ts.map +1 -0
  68. package/dist/utils/event-stream.js +77 -0
  69. package/dist/utils/event-stream.js.map +1 -0
  70. package/dist/utils/json-parse.d.ts +9 -0
  71. package/dist/utils/json-parse.d.ts.map +1 -0
  72. package/dist/utils/json-parse.js +29 -0
  73. package/dist/utils/json-parse.js.map +1 -0
  74. package/dist/utils/oauth/anthropic.d.ts +20 -0
  75. package/dist/utils/oauth/anthropic.d.ts.map +1 -0
  76. package/dist/utils/oauth/anthropic.js +103 -0
  77. package/dist/utils/oauth/anthropic.js.map +1 -0
  78. package/dist/utils/overflow.d.ts +51 -0
  79. package/dist/utils/overflow.d.ts.map +1 -0
  80. package/dist/utils/overflow.js +106 -0
  81. package/dist/utils/overflow.js.map +1 -0
  82. package/dist/utils/sanitize-unicode.d.ts +22 -0
  83. package/dist/utils/sanitize-unicode.d.ts.map +1 -0
  84. package/dist/utils/sanitize-unicode.js +26 -0
  85. package/dist/utils/sanitize-unicode.js.map +1 -0
  86. package/dist/utils/typebox-helpers.d.ts +17 -0
  87. package/dist/utils/typebox-helpers.d.ts.map +1 -0
  88. package/dist/utils/typebox-helpers.js +21 -0
  89. package/dist/utils/typebox-helpers.js.map +1 -0
  90. package/dist/utils/validation.d.ts +18 -0
  91. package/dist/utils/validation.d.ts.map +1 -0
  92. package/dist/utils/validation.js +69 -0
  93. package/dist/utils/validation.js.map +1 -0
  94. package/package.json +60 -0
@@ -0,0 +1,16 @@
1
+ import { streamSimple } from "../stream.js";
2
+ import type { UserMessage } from "../types.js";
3
+ import { EventStream } from "../utils/event-stream.js";
4
+ import type { AgentContext, AgentEvent, AgentLoopConfig } from "./types.js";
5
+ /**
6
+ * Start an agent loop with a new user message.
7
+ * The prompt is added to the context and events are emitted for it.
8
+ */
9
+ export declare function agentLoop(prompt: UserMessage, context: AgentContext, config: AgentLoopConfig, signal?: AbortSignal, streamFn?: typeof streamSimple): EventStream<AgentEvent, AgentContext["messages"]>;
10
+ /**
11
+ * Continue an agent loop from the current context without adding a new message.
12
+ * Used for retry after overflow - context already has user message or tool results.
13
+ * Throws if the last message is not a user message or tool result.
14
+ */
15
+ export declare function agentLoopContinue(context: AgentContext, config: AgentLoopConfig, signal?: AbortSignal, streamFn?: typeof streamSimple): EventStream<AgentEvent, AgentContext["messages"]>;
16
+ //# sourceMappingURL=agent-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agent/agent-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAyD,WAAW,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EAKf,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,OAAO,YAAY,GAC5B,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAmBnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,OAAO,YAAY,GAC5B,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAwBnD"}
@@ -0,0 +1,307 @@
1
+ import { streamSimple } from "../stream.js";
2
+ import { EventStream } from "../utils/event-stream.js";
3
+ import { validateToolArguments } from "../utils/validation.js";
4
+ /**
5
+ * Start an agent loop with a new user message.
6
+ * The prompt is added to the context and events are emitted for it.
7
+ */
8
+ export function agentLoop(prompt, context, config, signal, streamFn) {
9
+ const stream = createAgentStream();
10
+ (async () => {
11
+ const newMessages = [prompt];
12
+ const currentContext = {
13
+ ...context,
14
+ messages: [...context.messages, prompt],
15
+ };
16
+ stream.push({ type: "agent_start" });
17
+ stream.push({ type: "turn_start" });
18
+ stream.push({ type: "message_start", message: prompt });
19
+ stream.push({ type: "message_end", message: prompt });
20
+ await runLoop(currentContext, newMessages, config, signal, stream, streamFn);
21
+ })();
22
+ return stream;
23
+ }
24
+ /**
25
+ * Continue an agent loop from the current context without adding a new message.
26
+ * Used for retry after overflow - context already has user message or tool results.
27
+ * Throws if the last message is not a user message or tool result.
28
+ */
29
+ export function agentLoopContinue(context, config, signal, streamFn) {
30
+ // Validate that we can continue from this context
31
+ const lastMessage = context.messages[context.messages.length - 1];
32
+ if (!lastMessage) {
33
+ throw new Error("Cannot continue: no messages in context");
34
+ }
35
+ if (lastMessage.role !== "user" && lastMessage.role !== "toolResult") {
36
+ throw new Error(`Cannot continue from message role: ${lastMessage.role}. Expected 'user' or 'toolResult'.`);
37
+ }
38
+ const stream = createAgentStream();
39
+ (async () => {
40
+ const newMessages = [];
41
+ const currentContext = { ...context };
42
+ stream.push({ type: "agent_start" });
43
+ stream.push({ type: "turn_start" });
44
+ // No user message events - we're continuing from existing context
45
+ await runLoop(currentContext, newMessages, config, signal, stream, streamFn);
46
+ })();
47
+ return stream;
48
+ }
49
+ function createAgentStream() {
50
+ return new EventStream((event) => event.type === "agent_end", (event) => (event.type === "agent_end" ? event.messages : []));
51
+ }
52
+ function classifyQueuedMessages(messages = []) {
53
+ const steering = [];
54
+ const followUps = [];
55
+ const all = [];
56
+ for (const msg of messages) {
57
+ all.push(msg);
58
+ const mode = msg.mode || "followUp";
59
+ if (mode === "steer") {
60
+ steering.push(msg);
61
+ }
62
+ else {
63
+ followUps.push(msg);
64
+ }
65
+ }
66
+ return { steering, followUps, all };
67
+ }
68
+ async function runLoop(currentContext, newMessages, config, signal, stream, streamFn) {
69
+ let hasMoreToolCalls = true;
70
+ let firstTurn = true;
71
+ let pendingSteering = [];
72
+ let pendingFollowUps = [];
73
+ let pendingGeneral = [];
74
+ const refreshQueueState = async () => {
75
+ const general = await config.getQueuedMessages?.();
76
+ const steering = await config.getSteeringMessages?.();
77
+ const followUps = await config.getFollowUpMessages?.();
78
+ const classifiedGeneral = classifyQueuedMessages((general || []));
79
+ const classifiedSteering = classifyQueuedMessages((steering || []));
80
+ const classifiedFollowUps = classifyQueuedMessages((followUps || []));
81
+ const steeringUpdates = [...classifiedGeneral.steering, ...classifiedSteering.all];
82
+ const followUpUpdates = [...classifiedGeneral.followUps, ...classifiedFollowUps.all];
83
+ const generalUpdates = classifiedGeneral.all;
84
+ if (steeringUpdates.length > 0) {
85
+ pendingSteering = [...pendingSteering, ...steeringUpdates];
86
+ }
87
+ if (followUpUpdates.length > 0) {
88
+ pendingFollowUps = [...pendingFollowUps, ...followUpUpdates];
89
+ }
90
+ if (generalUpdates.length > 0) {
91
+ pendingGeneral = [...pendingGeneral, ...generalUpdates];
92
+ }
93
+ };
94
+ await refreshQueueState();
95
+ while (hasMoreToolCalls || pendingSteering.length > 0 || pendingFollowUps.length > 0 || pendingGeneral.length > 0) {
96
+ if (!firstTurn) {
97
+ stream.push({ type: "turn_start" });
98
+ }
99
+ else {
100
+ firstTurn = false;
101
+ }
102
+ const steeringBatch = pendingSteering;
103
+ pendingSteering = [];
104
+ if (steeringBatch.length > 0) {
105
+ for (const { original, llm } of steeringBatch) {
106
+ stream.push({ type: "message_start", message: original });
107
+ stream.push({ type: "message_end", message: original });
108
+ if (llm) {
109
+ currentContext.messages.push(llm);
110
+ newMessages.push(llm);
111
+ }
112
+ }
113
+ }
114
+ // Stream assistant response
115
+ const message = await streamAssistantResponse(currentContext, config, signal, stream, streamFn);
116
+ newMessages.push(message);
117
+ if (message.stopReason === "error" || message.stopReason === "aborted") {
118
+ // Stop the loop on error or abort
119
+ stream.push({ type: "turn_end", message, toolResults: [] });
120
+ stream.push({ type: "agent_end", messages: newMessages });
121
+ stream.end(newMessages);
122
+ return;
123
+ }
124
+ // Check for tool calls
125
+ const toolCalls = message.content.filter((c) => c.type === "toolCall");
126
+ hasMoreToolCalls = toolCalls.length > 0;
127
+ const toolResults = [];
128
+ if (hasMoreToolCalls) {
129
+ const { results, interrupted } = await executeToolCalls(currentContext.tools, message, signal, stream, async () => {
130
+ await refreshQueueState();
131
+ return pendingSteering.length > 0;
132
+ });
133
+ toolResults.push(...results);
134
+ currentContext.messages.push(...results);
135
+ newMessages.push(...results);
136
+ if (interrupted) {
137
+ hasMoreToolCalls = false;
138
+ }
139
+ }
140
+ stream.push({ type: "turn_end", message, toolResults: toolResults });
141
+ await refreshQueueState();
142
+ if (pendingSteering.length > 0) {
143
+ continue;
144
+ }
145
+ if (pendingGeneral.length > 0) {
146
+ continue;
147
+ }
148
+ if (!hasMoreToolCalls && pendingFollowUps.length > 0) {
149
+ const followUps = pendingFollowUps;
150
+ pendingFollowUps = [];
151
+ for (const { original, llm } of followUps) {
152
+ stream.push({ type: "message_start", message: original });
153
+ stream.push({ type: "message_end", message: original });
154
+ if (llm) {
155
+ currentContext.messages.push(llm);
156
+ newMessages.push(llm);
157
+ }
158
+ }
159
+ await refreshQueueState();
160
+ continue;
161
+ }
162
+ }
163
+ stream.push({ type: "agent_end", messages: newMessages });
164
+ stream.end(newMessages);
165
+ }
166
+ // Helper functions
167
+ async function streamAssistantResponse(context, config, signal, stream, streamFn) {
168
+ // Convert AgentContext to Context for streamSimple
169
+ // Use a copy of messages to avoid mutating the original context
170
+ const processedMessages = config.preprocessor
171
+ ? await config.preprocessor(context.messages, signal)
172
+ : [...context.messages];
173
+ const processedContext = {
174
+ systemPrompt: context.systemPrompt,
175
+ messages: [...processedMessages].map((m) => {
176
+ if (m.role === "toolResult") {
177
+ const { details, ...rest } = m;
178
+ return rest;
179
+ }
180
+ else {
181
+ return m;
182
+ }
183
+ }),
184
+ ...(context.tools ? { tools: context.tools } : {}),
185
+ };
186
+ // Use custom stream function if provided, otherwise use default streamSimple
187
+ const streamFunction = streamFn || streamSimple;
188
+ const streamOptions = signal ? { ...config, signal } : config;
189
+ const response = await streamFunction(config.model, processedContext, streamOptions);
190
+ let partialMessage = null;
191
+ let addedPartial = false;
192
+ for await (const event of response) {
193
+ switch (event.type) {
194
+ case "start":
195
+ const startedMessage = event.partial;
196
+ partialMessage = startedMessage;
197
+ context.messages.push(startedMessage);
198
+ addedPartial = true;
199
+ stream.push({ type: "message_start", message: { ...startedMessage } });
200
+ break;
201
+ case "text_start":
202
+ case "text_delta":
203
+ case "text_end":
204
+ case "thinking_start":
205
+ case "thinking_delta":
206
+ case "thinking_end":
207
+ case "toolcall_start":
208
+ case "toolcall_delta":
209
+ case "toolcall_end":
210
+ if (partialMessage) {
211
+ const updatedMessage = event.partial;
212
+ partialMessage = updatedMessage;
213
+ context.messages[context.messages.length - 1] = updatedMessage;
214
+ stream.push({ type: "message_update", assistantMessageEvent: event, message: { ...updatedMessage } });
215
+ }
216
+ break;
217
+ case "done":
218
+ case "error": {
219
+ const finalMessage = await response.result();
220
+ if (addedPartial) {
221
+ context.messages[context.messages.length - 1] = finalMessage;
222
+ }
223
+ else {
224
+ context.messages.push(finalMessage);
225
+ }
226
+ if (!addedPartial) {
227
+ stream.push({ type: "message_start", message: { ...finalMessage } });
228
+ }
229
+ stream.push({ type: "message_end", message: finalMessage });
230
+ return finalMessage;
231
+ }
232
+ }
233
+ }
234
+ return await response.result();
235
+ }
236
+ async function executeToolCalls(tools, assistantMessage, signal, stream, shouldInterrupt) {
237
+ const toolCalls = assistantMessage.content.filter((c) => c.type === "toolCall");
238
+ const toolResults = [];
239
+ let interrupted = false;
240
+ for (const toolCall of toolCalls) {
241
+ const result = await executeSingleToolCall(toolCall, tools, signal, stream);
242
+ toolResults.push(result);
243
+ if (shouldInterrupt && (await shouldInterrupt())) {
244
+ interrupted = true;
245
+ break;
246
+ }
247
+ }
248
+ return { results: toolResults, interrupted };
249
+ }
250
+ /**
251
+ * Execute a single tool call and return the result message.
252
+ * Handles all event streaming and error handling.
253
+ */
254
+ async function executeSingleToolCall(toolCall, tools, signal, stream) {
255
+ const tool = tools?.find((t) => t.name === toolCall.name);
256
+ stream.push({
257
+ type: "tool_execution_start",
258
+ toolCallId: toolCall.id,
259
+ toolName: toolCall.name,
260
+ args: toolCall.arguments,
261
+ });
262
+ let result;
263
+ let isError = false;
264
+ try {
265
+ if (!tool)
266
+ throw new Error(`Tool ${toolCall.name} not found`);
267
+ // Validate arguments using shared validation function
268
+ const validatedArgs = validateToolArguments(tool, toolCall);
269
+ // Execute with validated, typed arguments, passing update callback
270
+ result = await tool.execute(toolCall.id, validatedArgs, signal, (partialResult) => {
271
+ stream.push({
272
+ type: "tool_execution_update",
273
+ toolCallId: toolCall.id,
274
+ toolName: toolCall.name,
275
+ args: toolCall.arguments,
276
+ partialResult,
277
+ });
278
+ });
279
+ }
280
+ catch (e) {
281
+ result = {
282
+ content: [{ type: "text", text: e instanceof Error ? e.message : String(e) }],
283
+ details: {},
284
+ };
285
+ isError = true;
286
+ }
287
+ stream.push({
288
+ type: "tool_execution_end",
289
+ toolCallId: toolCall.id,
290
+ toolName: toolCall.name,
291
+ result,
292
+ isError,
293
+ });
294
+ const toolResultMessage = {
295
+ role: "toolResult",
296
+ toolCallId: toolCall.id,
297
+ toolName: toolCall.name,
298
+ content: result.content,
299
+ details: result.details,
300
+ isError,
301
+ timestamp: Date.now(),
302
+ };
303
+ stream.push({ type: "message_start", message: toolResultMessage });
304
+ stream.push({ type: "message_end", message: toolResultMessage });
305
+ return toolResultMessage;
306
+ }
307
+ //# sourceMappingURL=agent-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/agent/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { agentLoop, agentLoopContinue } from "./agent-loop.js";
2
+ export * from "./tools/index.js";
3
+ export type { AgentContext, AgentEvent, AgentLoopConfig, AgentTool, AgentToolResult, AgentToolUpdateCallback, QueueDeliveryMode, QueuedMessage, } from "./types.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,YAAY,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,GACb,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { agentLoop, agentLoopContinue } from "./agent-loop.js";
2
+ export * from "./tools/index.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AgentTool, AgentToolResult } from "../../agent/types.js";
2
+ export interface CalculateResult extends AgentToolResult<undefined> {
3
+ content: Array<{
4
+ type: "text";
5
+ text: string;
6
+ }>;
7
+ details: undefined;
8
+ }
9
+ export declare function calculate(expression: string): CalculateResult;
10
+ declare const calculateSchema: import("@sinclair/typebox").TObject<{
11
+ expression: import("@sinclair/typebox").TString;
12
+ }>;
13
+ export declare const calculateTool: AgentTool<typeof calculateSchema, undefined>;
14
+ export {};
15
+ //# sourceMappingURL=calculate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/calculate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,WAAW,eAAgB,SAAQ,eAAe,CAAC,SAAS,CAAC;IAClE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAO7D;AAED,QAAA,MAAM,eAAe;;EAEnB,CAAC;AAIH,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,OAAO,eAAe,EAAE,SAAS,CAQtE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export function calculate(expression) {
3
+ try {
4
+ const result = new Function("return " + expression)();
5
+ return { content: [{ type: "text", text: `${expression} = ${result}` }], details: undefined };
6
+ }
7
+ catch (e) {
8
+ throw new Error(e.message || String(e));
9
+ }
10
+ }
11
+ const calculateSchema = Type.Object({
12
+ expression: Type.String({ description: "The mathematical expression to evaluate" }),
13
+ });
14
+ export const calculateTool = {
15
+ label: "Calculator",
16
+ name: "calculate",
17
+ description: "Evaluate mathematical expressions",
18
+ parameters: calculateSchema,
19
+ execute: async (_toolCallId, args) => {
20
+ return calculate(args.expression);
21
+ },
22
+ };
23
+ //# sourceMappingURL=calculate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.js","sourceRoot":"","sources":["../../../src/agent/tools/calculate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAQtD,MAAM,UAAU,SAAS,CAAC,UAAkB,EAAmB;IAC9D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,MAAM,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC/F,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;AAAA,CACD;AAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;CACnF,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAiD;IAC1E,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,mCAAmC;IAChD,UAAU,EAAE,eAAe;IAC3B,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,IAAqB,EAAE,EAAE,CAAC;QAC9D,OAAO,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAAA,CAClC;CACD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { AgentTool } from "../../agent/index.js";
2
+ import type { AgentToolResult } from "../types.js";
3
+ export interface GetCurrentTimeResult extends AgentToolResult<{
4
+ utcTimestamp: number;
5
+ }> {
6
+ }
7
+ export declare function getCurrentTime(timezone?: string): Promise<GetCurrentTimeResult>;
8
+ declare const getCurrentTimeSchema: import("@sinclair/typebox").TObject<{
9
+ timezone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ }>;
11
+ export declare const getCurrentTimeTool: AgentTool<typeof getCurrentTimeSchema, {
12
+ utcTimestamp: number;
13
+ }>;
14
+ export {};
15
+ //# sourceMappingURL=get-current-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-time.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/get-current-time.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,oBAAqB,SAAQ,eAAe,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;CAAG;AAE1F,wBAAsB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsBrF;AAED,QAAA,MAAM,oBAAoB;;EAIxB,CAAC;AAIH,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,OAAO,oBAAoB,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAQ/F,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export async function getCurrentTime(timezone) {
3
+ const date = new Date();
4
+ if (timezone) {
5
+ try {
6
+ const timeStr = date.toLocaleString("en-US", {
7
+ timeZone: timezone,
8
+ dateStyle: "full",
9
+ timeStyle: "long",
10
+ });
11
+ return {
12
+ content: [{ type: "text", text: timeStr }],
13
+ details: { utcTimestamp: date.getTime() },
14
+ };
15
+ }
16
+ catch (e) {
17
+ throw new Error(`Invalid timezone: ${timezone}. Current UTC time: ${date.toISOString()}`);
18
+ }
19
+ }
20
+ const timeStr = date.toLocaleString("en-US", { dateStyle: "full", timeStyle: "long" });
21
+ return {
22
+ content: [{ type: "text", text: timeStr }],
23
+ details: { utcTimestamp: date.getTime() },
24
+ };
25
+ }
26
+ const getCurrentTimeSchema = Type.Object({
27
+ timezone: Type.Optional(Type.String({ description: "Optional timezone (e.g., 'America/New_York', 'Europe/London')" })),
28
+ });
29
+ export const getCurrentTimeTool = {
30
+ label: "Current Time",
31
+ name: "get_current_time",
32
+ description: "Get the current date and time",
33
+ parameters: getCurrentTimeSchema,
34
+ execute: async (_toolCallId, args) => {
35
+ return getCurrentTime(args.timezone);
36
+ },
37
+ };
38
+ //# sourceMappingURL=get-current-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-time.js","sourceRoot":"","sources":["../../../src/agent/tools/get-current-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAiB,EAAiC;IACtF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;gBAC5C,QAAQ,EAAE,QAAQ;gBAClB,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,MAAM;aACjB,CAAC,CAAC;YACH,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC1C,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;aACzC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,uBAAuB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3F,CAAC;IACF,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACvF,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;KACzC,CAAC;AAAA,CACF;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+DAA+D,EAAE,CAAC,CAC7F;CACD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAqE;IACnG,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+BAA+B;IAC5C,UAAU,EAAE,oBAAoB;IAChC,OAAO,EAAE,KAAK,EAAE,WAAmB,EAAE,IAA0B,EAAE,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAAA,CACrC;CACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { calculate, calculateTool } from "./calculate.js";
2
+ export { getCurrentTime, getCurrentTimeTool } from "./get-current-time.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { calculate, calculateTool } from "./calculate.js";
2
+ export { getCurrentTime, getCurrentTimeTool } from "./get-current-time.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { Static, TSchema } from "@sinclair/typebox";
2
+ import type { AssistantMessage, AssistantMessageEvent, ImageContent, Message, Model, SimpleStreamOptions, TextContent, Tool, ToolResultMessage } from "../types.js";
3
+ export interface AgentToolResult<T> {
4
+ content: (TextContent | ImageContent)[];
5
+ details: T;
6
+ }
7
+ export type AgentToolUpdateCallback<T = any> = (partialResult: AgentToolResult<T>) => void;
8
+ export interface AgentTool<TParameters extends TSchema = TSchema, TDetails = any> extends Tool<TParameters> {
9
+ label: string;
10
+ execute(toolCallId: string, params: Static<TParameters>, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback<TDetails>): Promise<AgentToolResult<TDetails>>;
11
+ }
12
+ export interface AgentContext {
13
+ systemPrompt: string;
14
+ messages: Message[];
15
+ tools?: AgentTool<any>[];
16
+ }
17
+ export type AgentEvent = {
18
+ type: "agent_start";
19
+ } | {
20
+ type: "turn_start";
21
+ } | {
22
+ type: "message_start";
23
+ message: Message;
24
+ } | {
25
+ type: "message_update";
26
+ assistantMessageEvent: AssistantMessageEvent;
27
+ message: AssistantMessage;
28
+ } | {
29
+ type: "message_end";
30
+ message: Message;
31
+ } | {
32
+ type: "tool_execution_start";
33
+ toolCallId: string;
34
+ toolName: string;
35
+ args: any;
36
+ } | {
37
+ type: "tool_execution_update";
38
+ toolCallId: string;
39
+ toolName: string;
40
+ args: any;
41
+ partialResult: AgentToolResult<any>;
42
+ } | {
43
+ type: "tool_execution_end";
44
+ toolCallId: string;
45
+ toolName: string;
46
+ result: AgentToolResult<any>;
47
+ isError: boolean;
48
+ } | {
49
+ type: "turn_end";
50
+ message: AssistantMessage;
51
+ toolResults: ToolResultMessage[];
52
+ } | {
53
+ type: "agent_end";
54
+ messages: AgentContext["messages"];
55
+ };
56
+ export type QueueDeliveryMode = "steer" | "followUp";
57
+ export interface QueuedMessage<TApp = Message> {
58
+ original: TApp;
59
+ llm?: Message;
60
+ mode?: QueueDeliveryMode;
61
+ }
62
+ export interface AgentLoopConfig extends SimpleStreamOptions {
63
+ model: Model<any>;
64
+ preprocessor?: (messages: AgentContext["messages"], abortSignal?: AbortSignal) => Promise<AgentContext["messages"]>;
65
+ getQueuedMessages?: <T>() => Promise<QueuedMessage<T>[]>;
66
+ getSteeringMessages?: <T>() => Promise<QueuedMessage<T>[]>;
67
+ getFollowUpMessages?: <T>() => Promise<QueuedMessage<T>[]>;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export * from "./agent/index.js";
2
+ export * from "./models.js";
3
+ export * from "./providers/anthropic.js";
4
+ export * from "./providers/google.js";
5
+ export * from "./providers/openai-completions.js";
6
+ export * from "./providers/openai-responses.js";
7
+ export * from "./stream.js";
8
+ export * from "./types.js";
9
+ export * from "./utils/overflow.js";
10
+ export * from "./utils/event-stream.js";
11
+ export * from "./utils/json-parse.js";
12
+ export * from "./utils/typebox-helpers.js";
13
+ export * from "./utils/validation.js";
14
+ export * from "./utils/oauth/anthropic.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from "./agent/index.js";
2
+ export * from "./models.js";
3
+ export * from "./providers/anthropic.js";
4
+ export * from "./providers/google.js";
5
+ export * from "./providers/openai-completions.js";
6
+ export * from "./providers/openai-responses.js";
7
+ export * from "./stream.js";
8
+ export * from "./types.js";
9
+ export * from "./utils/overflow.js";
10
+ export * from "./utils/event-stream.js";
11
+ export * from "./utils/json-parse.js";
12
+ export * from "./utils/typebox-helpers.js";
13
+ export * from "./utils/validation.js";
14
+ export * from "./utils/oauth/anthropic.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { MODELS } from "./models.generated.js";
2
+ import type { Api, KnownProvider, Model, Usage } from "./types.js";
3
+ type ModelApi<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]> = (typeof MODELS)[TProvider][TModelId] extends {
4
+ api: infer TApi;
5
+ } ? TApi extends Api ? TApi : never : never;
6
+ export declare function getModel<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]>(provider: TProvider, modelId: TModelId): Model<ModelApi<TProvider, TModelId>>;
7
+ export declare function getProviders(): KnownProvider[];
8
+ export declare function getModels<TProvider extends KnownProvider>(provider: TProvider): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[];
9
+ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
10
+ export {};
11
+ //# sourceMappingURL=models.d.ts.map