@n8n/agents 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 (231) hide show
  1. package/LICENSE.md +88 -0
  2. package/dist/build.tsbuildinfo +1 -0
  3. package/dist/evals/categorization.d.ts +2 -0
  4. package/dist/evals/categorization.js +23 -0
  5. package/dist/evals/categorization.js.map +1 -0
  6. package/dist/evals/contains-keywords.d.ts +2 -0
  7. package/dist/evals/contains-keywords.js +29 -0
  8. package/dist/evals/contains-keywords.js.map +1 -0
  9. package/dist/evals/correctness.d.ts +2 -0
  10. package/dist/evals/correctness.js +28 -0
  11. package/dist/evals/correctness.js.map +1 -0
  12. package/dist/evals/helpfulness.d.ts +2 -0
  13. package/dist/evals/helpfulness.js +26 -0
  14. package/dist/evals/helpfulness.js.map +1 -0
  15. package/dist/evals/index.d.ts +7 -0
  16. package/dist/evals/index.js +18 -0
  17. package/dist/evals/index.js.map +1 -0
  18. package/dist/evals/json-validity.d.ts +2 -0
  19. package/dist/evals/json-validity.js +21 -0
  20. package/dist/evals/json-validity.js.map +1 -0
  21. package/dist/evals/parse-judge-response.d.ts +2 -0
  22. package/dist/evals/parse-judge-response.js +25 -0
  23. package/dist/evals/parse-judge-response.js.map +1 -0
  24. package/dist/evals/string-similarity.d.ts +2 -0
  25. package/dist/evals/string-similarity.js +42 -0
  26. package/dist/evals/string-similarity.js.map +1 -0
  27. package/dist/evals/tool-call-accuracy.d.ts +2 -0
  28. package/dist/evals/tool-call-accuracy.js +29 -0
  29. package/dist/evals/tool-call-accuracy.js.map +1 -0
  30. package/dist/index.d.ts +34 -0
  31. package/dist/index.js +85 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/integrations/langsmith.d.ts +13 -0
  34. package/dist/integrations/langsmith.js +77 -0
  35. package/dist/integrations/langsmith.js.map +1 -0
  36. package/dist/runtime/agent-runtime.d.ts +80 -0
  37. package/dist/runtime/agent-runtime.js +1246 -0
  38. package/dist/runtime/agent-runtime.js.map +1 -0
  39. package/dist/runtime/event-bus.d.ts +14 -0
  40. package/dist/runtime/event-bus.js +53 -0
  41. package/dist/runtime/event-bus.js.map +1 -0
  42. package/dist/runtime/logger.d.ts +22 -0
  43. package/dist/runtime/logger.js +40 -0
  44. package/dist/runtime/logger.js.map +1 -0
  45. package/dist/runtime/mcp-connection.d.ts +23 -0
  46. package/dist/runtime/mcp-connection.js +135 -0
  47. package/dist/runtime/mcp-connection.js.map +1 -0
  48. package/dist/runtime/mcp-tool-resolver.d.ts +7 -0
  49. package/dist/runtime/mcp-tool-resolver.js +64 -0
  50. package/dist/runtime/mcp-tool-resolver.js.map +1 -0
  51. package/dist/runtime/memory-store.d.ts +29 -0
  52. package/dist/runtime/memory-store.js +68 -0
  53. package/dist/runtime/memory-store.js.map +1 -0
  54. package/dist/runtime/message-list.d.ts +25 -0
  55. package/dist/runtime/message-list.js +79 -0
  56. package/dist/runtime/message-list.js.map +1 -0
  57. package/dist/runtime/messages.d.ts +8 -0
  58. package/dist/runtime/messages.js +239 -0
  59. package/dist/runtime/messages.js.map +1 -0
  60. package/dist/runtime/model-factory.d.ts +33 -0
  61. package/dist/runtime/model-factory.js +68 -0
  62. package/dist/runtime/model-factory.js.map +1 -0
  63. package/dist/runtime/run-state.d.ts +9 -0
  64. package/dist/runtime/run-state.js +49 -0
  65. package/dist/runtime/run-state.js.map +1 -0
  66. package/dist/runtime/runtime-helpers.d.ts +21 -0
  67. package/dist/runtime/runtime-helpers.js +96 -0
  68. package/dist/runtime/runtime-helpers.js.map +1 -0
  69. package/dist/runtime/stream.d.ts +15 -0
  70. package/dist/runtime/stream.js +94 -0
  71. package/dist/runtime/stream.js.map +1 -0
  72. package/dist/runtime/strip-orphaned-tool-messages.d.ts +2 -0
  73. package/dist/runtime/strip-orphaned-tool-messages.js +48 -0
  74. package/dist/runtime/strip-orphaned-tool-messages.js.map +1 -0
  75. package/dist/runtime/title-generation.d.ts +11 -0
  76. package/dist/runtime/title-generation.js +56 -0
  77. package/dist/runtime/title-generation.js.map +1 -0
  78. package/dist/runtime/tool-adapter.d.ts +23 -0
  79. package/dist/runtime/tool-adapter.js +104 -0
  80. package/dist/runtime/tool-adapter.js.map +1 -0
  81. package/dist/runtime/working-memory.d.ts +21 -0
  82. package/dist/runtime/working-memory.js +138 -0
  83. package/dist/runtime/working-memory.js.map +1 -0
  84. package/dist/sdk/agent.d.ts +88 -0
  85. package/dist/sdk/agent.js +327 -0
  86. package/dist/sdk/agent.js.map +1 -0
  87. package/dist/sdk/catalog.d.ts +31 -0
  88. package/dist/sdk/catalog.js +80 -0
  89. package/dist/sdk/catalog.js.map +1 -0
  90. package/dist/sdk/eval.d.ts +23 -0
  91. package/dist/sdk/eval.js +99 -0
  92. package/dist/sdk/eval.js.map +1 -0
  93. package/dist/sdk/evaluate.d.ts +13 -0
  94. package/dist/sdk/evaluate.js +84 -0
  95. package/dist/sdk/evaluate.js.map +1 -0
  96. package/dist/sdk/guardrail.d.ts +14 -0
  97. package/dist/sdk/guardrail.js +41 -0
  98. package/dist/sdk/guardrail.js.map +1 -0
  99. package/dist/sdk/mcp-client.d.ts +16 -0
  100. package/dist/sdk/mcp-client.js +128 -0
  101. package/dist/sdk/mcp-client.js.map +1 -0
  102. package/dist/sdk/memory.d.ts +22 -0
  103. package/dist/sdk/memory.js +101 -0
  104. package/dist/sdk/memory.js.map +1 -0
  105. package/dist/sdk/message.d.ts +4 -0
  106. package/dist/sdk/message.js +18 -0
  107. package/dist/sdk/message.js.map +1 -0
  108. package/dist/sdk/network.d.ts +20 -0
  109. package/dist/sdk/network.js +46 -0
  110. package/dist/sdk/network.js.map +1 -0
  111. package/dist/sdk/provider-tools.d.ts +18 -0
  112. package/dist/sdk/provider-tools.js +31 -0
  113. package/dist/sdk/provider-tools.js.map +1 -0
  114. package/dist/sdk/telemetry.d.ts +31 -0
  115. package/dist/sdk/telemetry.js +186 -0
  116. package/dist/sdk/telemetry.js.map +1 -0
  117. package/dist/sdk/tool.d.ts +38 -0
  118. package/dist/sdk/tool.js +143 -0
  119. package/dist/sdk/tool.js.map +1 -0
  120. package/dist/sdk/verify.d.ts +5 -0
  121. package/dist/sdk/verify.js +37 -0
  122. package/dist/sdk/verify.js.map +1 -0
  123. package/dist/storage/postgres-memory.d.ts +79 -0
  124. package/dist/storage/postgres-memory.js +411 -0
  125. package/dist/storage/postgres-memory.js.map +1 -0
  126. package/dist/storage/sqlite-memory.d.ts +60 -0
  127. package/dist/storage/sqlite-memory.js +349 -0
  128. package/dist/storage/sqlite-memory.js.map +1 -0
  129. package/dist/types/index.d.ts +13 -0
  130. package/dist/types/index.js +6 -0
  131. package/dist/types/index.js.map +1 -0
  132. package/dist/types/runtime/event.d.ts +41 -0
  133. package/dist/types/runtime/event.js +14 -0
  134. package/dist/types/runtime/event.js.map +1 -0
  135. package/dist/types/runtime/message-list.d.ts +7 -0
  136. package/dist/types/runtime/message-list.js +3 -0
  137. package/dist/types/runtime/message-list.js.map +1 -0
  138. package/dist/types/sdk/agent.d.ts +174 -0
  139. package/dist/types/sdk/agent.js +3 -0
  140. package/dist/types/sdk/agent.js.map +1 -0
  141. package/dist/types/sdk/eval.d.ts +41 -0
  142. package/dist/types/sdk/eval.js +3 -0
  143. package/dist/types/sdk/eval.js.map +1 -0
  144. package/dist/types/sdk/guardrail.d.ts +9 -0
  145. package/dist/types/sdk/guardrail.js +3 -0
  146. package/dist/types/sdk/guardrail.js.map +1 -0
  147. package/dist/types/sdk/mcp.d.ts +24 -0
  148. package/dist/types/sdk/mcp.js +3 -0
  149. package/dist/types/sdk/mcp.js.map +1 -0
  150. package/dist/types/sdk/memory.d.ts +99 -0
  151. package/dist/types/sdk/memory.js +3 -0
  152. package/dist/types/sdk/memory.js.map +1 -0
  153. package/dist/types/sdk/message.d.ts +79 -0
  154. package/dist/types/sdk/message.js +3 -0
  155. package/dist/types/sdk/message.js.map +1 -0
  156. package/dist/types/sdk/provider.d.ts +16 -0
  157. package/dist/types/sdk/provider.js +3 -0
  158. package/dist/types/sdk/provider.js.map +1 -0
  159. package/dist/types/sdk/tool.d.ts +32 -0
  160. package/dist/types/sdk/tool.js +3 -0
  161. package/dist/types/sdk/tool.js.map +1 -0
  162. package/dist/types/telemetry.d.ts +18 -0
  163. package/dist/types/telemetry.js +3 -0
  164. package/dist/types/telemetry.js.map +1 -0
  165. package/dist/types/utils/json.d.ts +5 -0
  166. package/dist/types/utils/json.js +3 -0
  167. package/dist/types/utils/json.js.map +1 -0
  168. package/dist/utils/zod.d.ts +3 -0
  169. package/dist/utils/zod.js +7 -0
  170. package/dist/utils/zod.js.map +1 -0
  171. package/dist/workspace/filesystem/base-filesystem.d.ts +40 -0
  172. package/dist/workspace/filesystem/base-filesystem.js +99 -0
  173. package/dist/workspace/filesystem/base-filesystem.js.map +1 -0
  174. package/dist/workspace/index.d.ts +8 -0
  175. package/dist/workspace/index.js +17 -0
  176. package/dist/workspace/index.js.map +1 -0
  177. package/dist/workspace/lifecycle.d.ts +13 -0
  178. package/dist/workspace/lifecycle.js +11 -0
  179. package/dist/workspace/lifecycle.js.map +1 -0
  180. package/dist/workspace/process.d.ts +36 -0
  181. package/dist/workspace/process.js +76 -0
  182. package/dist/workspace/process.js.map +1 -0
  183. package/dist/workspace/sandbox/base-sandbox.d.ts +28 -0
  184. package/dist/workspace/sandbox/base-sandbox.js +163 -0
  185. package/dist/workspace/sandbox/base-sandbox.js.map +1 -0
  186. package/dist/workspace/tools/append-file.d.ts +3 -0
  187. package/dist/workspace/tools/append-file.js +22 -0
  188. package/dist/workspace/tools/append-file.js.map +1 -0
  189. package/dist/workspace/tools/copy-file.d.ts +3 -0
  190. package/dist/workspace/tools/copy-file.js +26 -0
  191. package/dist/workspace/tools/copy-file.js.map +1 -0
  192. package/dist/workspace/tools/delete-file.d.ts +3 -0
  193. package/dist/workspace/tools/delete-file.js +26 -0
  194. package/dist/workspace/tools/delete-file.js.map +1 -0
  195. package/dist/workspace/tools/execute-command.d.ts +3 -0
  196. package/dist/workspace/tools/execute-command.js +39 -0
  197. package/dist/workspace/tools/execute-command.js.map +1 -0
  198. package/dist/workspace/tools/file-stat.d.ts +3 -0
  199. package/dist/workspace/tools/file-stat.js +33 -0
  200. package/dist/workspace/tools/file-stat.js.map +1 -0
  201. package/dist/workspace/tools/list-files.d.ts +3 -0
  202. package/dist/workspace/tools/list-files.js +28 -0
  203. package/dist/workspace/tools/list-files.js.map +1 -0
  204. package/dist/workspace/tools/mkdir.d.ts +3 -0
  205. package/dist/workspace/tools/mkdir.js +22 -0
  206. package/dist/workspace/tools/mkdir.js.map +1 -0
  207. package/dist/workspace/tools/move-file.d.ts +3 -0
  208. package/dist/workspace/tools/move-file.js +26 -0
  209. package/dist/workspace/tools/move-file.js.map +1 -0
  210. package/dist/workspace/tools/process-tools.d.ts +4 -0
  211. package/dist/workspace/tools/process-tools.js +37 -0
  212. package/dist/workspace/tools/process-tools.js.map +1 -0
  213. package/dist/workspace/tools/read-file.d.ts +3 -0
  214. package/dist/workspace/tools/read-file.js +24 -0
  215. package/dist/workspace/tools/read-file.js.map +1 -0
  216. package/dist/workspace/tools/rmdir.d.ts +3 -0
  217. package/dist/workspace/tools/rmdir.js +26 -0
  218. package/dist/workspace/tools/rmdir.js.map +1 -0
  219. package/dist/workspace/tools/workspace-tools.d.ts +8 -0
  220. package/dist/workspace/tools/workspace-tools.js +39 -0
  221. package/dist/workspace/tools/workspace-tools.js.map +1 -0
  222. package/dist/workspace/tools/write-file.d.ts +3 -0
  223. package/dist/workspace/tools/write-file.js +26 -0
  224. package/dist/workspace/tools/write-file.js.map +1 -0
  225. package/dist/workspace/types.d.ts +178 -0
  226. package/dist/workspace/types.js +7 -0
  227. package/dist/workspace/types.js.map +1 -0
  228. package/dist/workspace/workspace.d.ts +21 -0
  229. package/dist/workspace/workspace.js +131 -0
  230. package/dist/workspace/workspace.js.map +1 -0
  231. package/package.json +65 -0
@@ -0,0 +1,15 @@
1
+ import type { TextStreamPart, ToolSet } from 'ai';
2
+ import type { StreamChunk, TokenUsage } from '../types';
3
+ export declare function toTokenUsage(usage: {
4
+ inputTokens?: number;
5
+ outputTokens?: number;
6
+ totalTokens?: number;
7
+ inputTokenDetails?: {
8
+ cacheReadTokens?: number;
9
+ cacheWriteTokens?: number;
10
+ };
11
+ outputTokenDetails?: {
12
+ reasoningTokens?: number;
13
+ };
14
+ } | undefined): TokenUsage | undefined;
15
+ export declare function convertChunk(c: TextStreamPart<ToolSet>): StreamChunk | undefined;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTokenUsage = toTokenUsage;
4
+ exports.convertChunk = convertChunk;
5
+ function toTokenUsage(usage) {
6
+ if (!usage)
7
+ return undefined;
8
+ const result = {
9
+ promptTokens: usage.inputTokens ?? 0,
10
+ completionTokens: usage.outputTokens ?? 0,
11
+ totalTokens: usage.totalTokens ?? (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0),
12
+ };
13
+ const cacheRead = usage.inputTokenDetails?.cacheReadTokens;
14
+ const cacheWrite = usage.inputTokenDetails?.cacheWriteTokens;
15
+ if (cacheRead || cacheWrite) {
16
+ result.inputTokenDetails = {
17
+ ...(cacheRead && { cacheRead }),
18
+ ...(cacheWrite && { cacheWrite }),
19
+ };
20
+ }
21
+ if (usage.outputTokenDetails?.reasoningTokens !== undefined) {
22
+ result.outputTokenDetails = { reasoning: usage.outputTokenDetails.reasoningTokens };
23
+ }
24
+ return result;
25
+ }
26
+ function convertChunk(c) {
27
+ switch (c.type) {
28
+ case 'text-delta':
29
+ return { type: 'text-delta', delta: c.text ?? '' };
30
+ case 'reasoning-delta':
31
+ return { type: 'reasoning-delta', delta: c.text ?? '' };
32
+ case 'tool-call':
33
+ return {
34
+ type: 'message',
35
+ message: {
36
+ role: 'tool',
37
+ content: [
38
+ {
39
+ type: 'tool-call',
40
+ toolCallId: c.toolCallId,
41
+ toolName: c.toolName ?? '',
42
+ input: c.input,
43
+ },
44
+ ],
45
+ },
46
+ };
47
+ case 'tool-input-start':
48
+ return {
49
+ type: 'tool-call-delta',
50
+ name: c.toolName,
51
+ };
52
+ case 'tool-input-delta':
53
+ return {
54
+ type: 'tool-call-delta',
55
+ ...(c.delta !== undefined && { argumentsDelta: c.delta }),
56
+ };
57
+ case 'tool-result':
58
+ return {
59
+ type: 'message',
60
+ message: {
61
+ role: 'tool',
62
+ content: [
63
+ {
64
+ type: 'tool-result',
65
+ toolCallId: c.toolCallId ?? '',
66
+ toolName: c.toolName ?? '',
67
+ result: c.output && 'value' in c.output ? c.output.value : null,
68
+ },
69
+ ],
70
+ },
71
+ };
72
+ case 'error':
73
+ return { type: 'error', error: c.error };
74
+ case 'finish-step': {
75
+ const usage = toTokenUsage(c.usage);
76
+ return {
77
+ type: 'finish',
78
+ finishReason: (c.finishReason ?? 'stop'),
79
+ ...(usage && { usage }),
80
+ };
81
+ }
82
+ case 'finish': {
83
+ const usage = toTokenUsage(c.totalUsage);
84
+ return {
85
+ type: 'finish',
86
+ finishReason: (c.finishReason ?? 'stop'),
87
+ ...(usage && { usage }),
88
+ };
89
+ }
90
+ default:
91
+ return undefined;
92
+ }
93
+ }
94
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/runtime/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { AgentDbMessage } from '../types/sdk/message';
2
+ export declare function stripOrphanedToolMessages(messages: AgentDbMessage[]): AgentDbMessage[];
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stripOrphanedToolMessages = stripOrphanedToolMessages;
4
+ const message_1 = require("../sdk/message");
5
+ function stripOrphanedToolMessages(messages) {
6
+ const callIds = new Set();
7
+ const resultIds = new Set();
8
+ for (const msg of messages) {
9
+ if (!(0, message_1.isLlmMessage)(msg))
10
+ continue;
11
+ for (const block of msg.content) {
12
+ if (block.type === 'tool-call' && block.toolCallId) {
13
+ callIds.add(block.toolCallId);
14
+ }
15
+ else if (block.type === 'tool-result' && block.toolCallId) {
16
+ resultIds.add(block.toolCallId);
17
+ }
18
+ }
19
+ }
20
+ const orphanedCallIds = new Set([...callIds].filter((id) => !resultIds.has(id)));
21
+ const orphanedResultIds = new Set([...resultIds].filter((id) => !callIds.has(id)));
22
+ if (orphanedCallIds.size === 0 && orphanedResultIds.size === 0) {
23
+ return messages;
24
+ }
25
+ const result = [];
26
+ for (const msg of messages) {
27
+ if (!(0, message_1.isLlmMessage)(msg)) {
28
+ result.push(msg);
29
+ continue;
30
+ }
31
+ const filtered = msg.content.filter((block) => {
32
+ if (block.type === 'tool-call' && block.toolCallId && orphanedCallIds.has(block.toolCallId)) {
33
+ return false;
34
+ }
35
+ if (block.type === 'tool-result' &&
36
+ block.toolCallId &&
37
+ orphanedResultIds.has(block.toolCallId)) {
38
+ return false;
39
+ }
40
+ return true;
41
+ });
42
+ if (filtered.length === 0)
43
+ continue;
44
+ result.push({ ...msg, content: filtered });
45
+ }
46
+ return result;
47
+ }
48
+ //# sourceMappingURL=strip-orphaned-tool-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-orphaned-tool-messages.js","sourceRoot":"","sources":["../../src/runtime/strip-orphaned-tool-messages.ts"],"names":[],"mappings":";;AAmBA,8DAkDC;AArED,4CAA8C;AAmB9C,SAAgB,yBAAyB,CAAC,QAA0B;IACnE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC;YAAE,SAAS;QACjC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC7D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnF,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,SAAS;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAqB,EAAE,EAAE;YAC7D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7F,OAAO,KAAK,CAAC;YACd,CAAC;YACD,IACC,KAAK,CAAC,IAAI,KAAK,aAAa;gBAC5B,KAAK,CAAC,UAAU;gBAChB,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EACtC,CAAC;gBACF,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEpC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { BuiltMemory, TitleGenerationConfig } from '../types';
2
+ import type { ModelConfig } from '../types/sdk/agent';
3
+ import type { AgentDbMessage } from '../types/sdk/message';
4
+ export declare function generateThreadTitle(opts: {
5
+ memory: BuiltMemory;
6
+ threadId: string;
7
+ resourceId: string;
8
+ titleConfig: TitleGenerationConfig;
9
+ agentModel: ModelConfig;
10
+ turnDelta: AgentDbMessage[];
11
+ }): Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateThreadTitle = generateThreadTitle;
4
+ const ai_1 = require("ai");
5
+ const logger_1 = require("./logger");
6
+ const model_factory_1 = require("./model-factory");
7
+ const logger = (0, logger_1.createFilteredLogger)();
8
+ const DEFAULT_TITLE_INSTRUCTIONS = [
9
+ '- you will generate a short title based on the first message a user begins a conversation with',
10
+ '- ensure it is not more than 80 characters long',
11
+ "- the title should be a summary of the user's message",
12
+ '- do not use quotes or colons',
13
+ '- the entire text you return will be used as the title',
14
+ ].join('\n');
15
+ async function generateThreadTitle(opts) {
16
+ try {
17
+ const thread = await opts.memory.getThread(opts.threadId);
18
+ if (thread?.title)
19
+ return;
20
+ const userMessage = opts.turnDelta.find((m) => 'role' in m && m.role === 'user');
21
+ if (!userMessage || !('content' in userMessage))
22
+ return;
23
+ const userText = userMessage.content
24
+ .filter((c) => c.type === 'text' && c.text)
25
+ .map((c) => c.text)
26
+ .join(' ');
27
+ if (!userText)
28
+ return;
29
+ const titleModelId = opts.titleConfig.model ?? opts.agentModel;
30
+ const titleModel = (0, model_factory_1.createModel)(titleModelId);
31
+ const instructions = opts.titleConfig.instructions ?? DEFAULT_TITLE_INSTRUCTIONS;
32
+ const result = await (0, ai_1.generateText)({
33
+ model: titleModel,
34
+ messages: [
35
+ { role: 'system', content: instructions },
36
+ { role: 'user', content: userText },
37
+ ],
38
+ });
39
+ let title = result.text?.trim();
40
+ if (!title)
41
+ return;
42
+ title = title.replace(/<think>[\s\S]*?<\/think>/g, '').trim();
43
+ if (!title)
44
+ return;
45
+ await opts.memory.saveThread({
46
+ id: opts.threadId,
47
+ resourceId: opts.resourceId,
48
+ title,
49
+ metadata: thread?.metadata,
50
+ });
51
+ }
52
+ catch (error) {
53
+ logger.warn('Failed to generate thread title', { error });
54
+ }
55
+ }
56
+ //# sourceMappingURL=title-generation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-generation.js","sourceRoot":"","sources":["../../src/runtime/title-generation.ts"],"names":[],"mappings":";;AAyBA,kDAmDC;AA5ED,2BAAkC;AAGlC,qCAAgD;AAChD,mDAA8C;AAI9C,MAAM,MAAM,GAAG,IAAA,6BAAoB,GAAE,CAAC;AAEtC,MAAM,0BAA0B,GAAG;IAClC,gGAAgG;IAChG,iDAAiD;IACjD,uDAAuD;IACvD,+BAA+B;IAC/B,wDAAwD;CACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AASN,KAAK,UAAU,mBAAmB,CAAC,IASzC;IACA,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE,KAAK;YAAE,OAAO;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC;YAAE,OAAO;QAExD,MAAM,QAAQ,GAAI,WAAW,CAAC,OAAkD;aAC9E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;aACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAA,2BAAW,EAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,0BAA0B,CAAC;QAEjF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAY,EAAC;YACjC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;aACnC;SACD,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK;YACL,QAAQ,EAAE,MAAM,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Tool as AiSdkTool } from 'ai';
2
+ import { type BuiltProviderTool, type BuiltTool, type BuiltTelemetry } from '../types';
3
+ import type { SubAgentUsage } from '../types/sdk/agent';
4
+ declare const SUSPEND_BRAND: unique symbol;
5
+ declare const AGENT_TOOL_BRAND: unique symbol;
6
+ export interface SuspendedToolResult {
7
+ readonly [SUSPEND_BRAND]: true;
8
+ payload: unknown;
9
+ }
10
+ export declare function isSuspendedToolResult(value: unknown): value is SuspendedToolResult;
11
+ export interface AgentToolResult {
12
+ readonly [AGENT_TOOL_BRAND]: true;
13
+ readonly output: unknown;
14
+ readonly subAgentUsage: SubAgentUsage[];
15
+ }
16
+ export declare function isAgentToolResult(value: unknown): value is AgentToolResult;
17
+ export declare function createAgentToolResult(output: unknown, subAgentUsage: SubAgentUsage[]): never;
18
+ export declare function toAiSdkProviderTools(tools?: BuiltProviderTool[]): Record<string, AiSdkTool>;
19
+ export declare function toAiSdkTools(tools?: BuiltTool[]): Record<string, AiSdkTool>;
20
+ export declare function executeTool(args: unknown, builtTool: BuiltTool, resumeData?: unknown, parentTelemetry?: BuiltTelemetry): Promise<unknown>;
21
+ export declare function isInterruptible(toolName: string, toolMap: Map<string, BuiltTool>): boolean;
22
+ export declare function buildToolMap(tools?: BuiltTool[]): Map<string, BuiltTool>;
23
+ export {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSuspendedToolResult = isSuspendedToolResult;
4
+ exports.isAgentToolResult = isAgentToolResult;
5
+ exports.createAgentToolResult = createAgentToolResult;
6
+ exports.toAiSdkProviderTools = toAiSdkProviderTools;
7
+ exports.toAiSdkTools = toAiSdkTools;
8
+ exports.executeTool = executeTool;
9
+ exports.isInterruptible = isInterruptible;
10
+ exports.buildToolMap = buildToolMap;
11
+ const ai_1 = require("ai");
12
+ const zod_1 = require("zod");
13
+ const zod_2 = require("../utils/zod");
14
+ const SUSPEND_BRAND = Symbol('SuspendBrand');
15
+ const AGENT_TOOL_BRAND = Symbol('AgentToolBrand');
16
+ function isSuspendedToolResult(value) {
17
+ return typeof value === 'object' && value !== null && SUSPEND_BRAND in value;
18
+ }
19
+ function isAgentToolResult(value) {
20
+ return typeof value === 'object' && value !== null && AGENT_TOOL_BRAND in value;
21
+ }
22
+ function createAgentToolResult(output, subAgentUsage) {
23
+ const base = typeof output === 'object' && output !== null ? output : {};
24
+ return { ...base, [AGENT_TOOL_BRAND]: true, output, subAgentUsage };
25
+ }
26
+ function toAiSdkProviderTools(tools) {
27
+ if (!tools || tools.length === 0)
28
+ return {};
29
+ const result = {};
30
+ for (const t of tools) {
31
+ const providerTool = {
32
+ type: 'provider',
33
+ id: t.name,
34
+ args: t.args,
35
+ inputSchema: t.inputSchema ?? zod_1.z.any(),
36
+ };
37
+ result[t.name] = providerTool;
38
+ }
39
+ return result;
40
+ }
41
+ const fixSchema = (schema) => {
42
+ if (typeof schema === 'object' &&
43
+ schema !== null &&
44
+ 'properties' in schema &&
45
+ !('type' in schema)) {
46
+ return { ...schema, type: 'object' };
47
+ }
48
+ return schema;
49
+ };
50
+ function toAiSdkTools(tools) {
51
+ if (!tools || tools.length === 0)
52
+ return {};
53
+ const result = {};
54
+ for (const t of tools) {
55
+ if (t.inputSchema) {
56
+ if ((0, zod_2.isZodSchema)(t.inputSchema)) {
57
+ result[t.name] = (0, ai_1.tool)({
58
+ description: t.description,
59
+ inputSchema: t.inputSchema,
60
+ providerOptions: t.providerOptions,
61
+ });
62
+ }
63
+ else {
64
+ result[t.name] = (0, ai_1.tool)({
65
+ description: t.description,
66
+ inputSchema: (0, ai_1.jsonSchema)(fixSchema(t.inputSchema)),
67
+ providerOptions: t.providerOptions,
68
+ });
69
+ }
70
+ }
71
+ }
72
+ return result;
73
+ }
74
+ async function executeTool(args, builtTool, resumeData, parentTelemetry) {
75
+ if (!builtTool.handler) {
76
+ throw new Error(`No handler found for tool "${builtTool.name}"`);
77
+ }
78
+ if (builtTool.suspendSchema) {
79
+ const ctx = {
80
+ suspend: async (payload) => {
81
+ return await Promise.resolve({ [SUSPEND_BRAND]: true, payload });
82
+ },
83
+ resumeData,
84
+ parentTelemetry,
85
+ };
86
+ return await builtTool.handler(args, ctx);
87
+ }
88
+ const ctx = { parentTelemetry };
89
+ return await builtTool.handler(args, ctx);
90
+ }
91
+ function isInterruptible(toolName, toolMap) {
92
+ const builtTool = toolMap.get(toolName);
93
+ return !!builtTool?.suspendSchema;
94
+ }
95
+ function buildToolMap(tools) {
96
+ const map = new Map();
97
+ if (tools) {
98
+ for (const t of tools) {
99
+ map.set(t.name, t);
100
+ }
101
+ }
102
+ return map;
103
+ }
104
+ //# sourceMappingURL=tool-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/runtime/tool-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { z } from 'zod';
2
+ import type { StreamChunk } from '../types';
3
+ type ZodObjectSchema = z.ZodObject<z.ZodRawShape>;
4
+ export declare function parseWorkingMemory(text: string): {
5
+ cleanText: string;
6
+ workingMemory: string | null;
7
+ };
8
+ export declare function buildWorkingMemoryInstruction(template: string, structured: boolean): string;
9
+ export declare function templateFromSchema(schema: ZodObjectSchema): string;
10
+ type PersistFn = (content: string) => Promise<void>;
11
+ export declare class WorkingMemoryStreamFilter {
12
+ private writer;
13
+ private persist;
14
+ private state;
15
+ private buffer;
16
+ private pendingText;
17
+ constructor(writer: WritableStreamDefaultWriter<StreamChunk>, persist: PersistFn);
18
+ write(chunk: StreamChunk): Promise<void>;
19
+ flush(): Promise<void>;
20
+ }
21
+ export {};
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkingMemoryStreamFilter = void 0;
4
+ exports.parseWorkingMemory = parseWorkingMemory;
5
+ exports.buildWorkingMemoryInstruction = buildWorkingMemoryInstruction;
6
+ exports.templateFromSchema = templateFromSchema;
7
+ const logger_1 = require("./logger");
8
+ const logger = (0, logger_1.createFilteredLogger)();
9
+ const OPEN_TAG = '<working_memory>';
10
+ const CLOSE_TAG = '</working_memory>';
11
+ function parseWorkingMemory(text) {
12
+ const openIdx = text.indexOf(OPEN_TAG);
13
+ if (openIdx === -1)
14
+ return { cleanText: text, workingMemory: null };
15
+ const closeIdx = text.indexOf(CLOSE_TAG, openIdx);
16
+ if (closeIdx === -1)
17
+ return { cleanText: text, workingMemory: null };
18
+ const contentStart = openIdx + OPEN_TAG.length;
19
+ const rawContent = text.slice(contentStart, closeIdx);
20
+ const workingMemory = rawContent.replace(/^\n/, '').replace(/\n$/, '');
21
+ const before = text.slice(0, openIdx).replace(/\n$/, '');
22
+ const after = text.slice(closeIdx + CLOSE_TAG.length).replace(/^\n/, '');
23
+ const cleanText = (before + (after ? '\n' + after : '')).trim();
24
+ return { cleanText, workingMemory };
25
+ }
26
+ function buildWorkingMemoryInstruction(template, structured) {
27
+ const format = structured
28
+ ? 'Emit the updated state as valid JSON matching the schema'
29
+ : 'Update the template with any new information learned';
30
+ return [
31
+ '',
32
+ '## Working Memory',
33
+ '',
34
+ 'You have persistent working memory that survives across conversations.',
35
+ 'The current state will be shown to you in a system message.',
36
+ 'IMPORTANT: Always respond to the user first with your normal reply.',
37
+ `Then, at the very end of your response, emit your updated working memory inside ${OPEN_TAG}...${CLOSE_TAG} tags on a new line.`,
38
+ `${format}. If nothing changed, emit the current state unchanged.`,
39
+ 'The working memory block must be the last thing in your response, after your reply to the user.',
40
+ '',
41
+ 'Current template:',
42
+ '```',
43
+ template,
44
+ '```',
45
+ ].join('\n');
46
+ }
47
+ function templateFromSchema(schema) {
48
+ const obj = {};
49
+ for (const [key, field] of Object.entries(schema.shape)) {
50
+ const desc = field.description;
51
+ obj[key] = desc ?? '';
52
+ }
53
+ return JSON.stringify(obj, null, 2);
54
+ }
55
+ class WorkingMemoryStreamFilter {
56
+ constructor(writer, persist) {
57
+ this.state = 'normal';
58
+ this.buffer = '';
59
+ this.pendingText = '';
60
+ this.writer = writer;
61
+ this.persist = persist;
62
+ }
63
+ async write(chunk) {
64
+ if (chunk.type !== 'text-delta') {
65
+ await this.writer.write(chunk);
66
+ return;
67
+ }
68
+ this.pendingText += chunk.delta;
69
+ while (this.pendingText.length > 0) {
70
+ if (this.state === 'normal') {
71
+ const openIdx = this.pendingText.indexOf(OPEN_TAG);
72
+ if (openIdx === -1) {
73
+ const lastLt = this.pendingText.lastIndexOf('<');
74
+ if (lastLt !== -1 &&
75
+ this.pendingText.length - lastLt < OPEN_TAG.length &&
76
+ OPEN_TAG.startsWith(this.pendingText.slice(lastLt))) {
77
+ if (lastLt > 0) {
78
+ await this.writer.write({
79
+ type: 'text-delta',
80
+ delta: this.pendingText.slice(0, lastLt),
81
+ });
82
+ }
83
+ this.pendingText = this.pendingText.slice(lastLt);
84
+ }
85
+ else {
86
+ await this.writer.write({ type: 'text-delta', delta: this.pendingText });
87
+ this.pendingText = '';
88
+ }
89
+ break;
90
+ }
91
+ if (openIdx > 0) {
92
+ await this.writer.write({
93
+ type: 'text-delta',
94
+ delta: this.pendingText.slice(0, openIdx),
95
+ });
96
+ }
97
+ this.state = 'inside';
98
+ this.pendingText = this.pendingText.slice(openIdx + OPEN_TAG.length);
99
+ this.buffer = '';
100
+ }
101
+ else {
102
+ const closeIdx = this.pendingText.indexOf(CLOSE_TAG);
103
+ if (closeIdx === -1) {
104
+ const lastLt = this.pendingText.lastIndexOf('<');
105
+ if (lastLt !== -1 &&
106
+ this.pendingText.length - lastLt < CLOSE_TAG.length &&
107
+ CLOSE_TAG.startsWith(this.pendingText.slice(lastLt))) {
108
+ this.buffer += this.pendingText.slice(0, lastLt);
109
+ this.pendingText = this.pendingText.slice(lastLt);
110
+ }
111
+ else {
112
+ this.buffer += this.pendingText;
113
+ this.pendingText = '';
114
+ }
115
+ break;
116
+ }
117
+ this.buffer += this.pendingText.slice(0, closeIdx);
118
+ this.pendingText = this.pendingText.slice(closeIdx + CLOSE_TAG.length);
119
+ this.state = 'normal';
120
+ const content = this.buffer.replace(/^\n/, '').replace(/\n$/, '');
121
+ this.persist(content).catch((error) => {
122
+ logger.warn('Failed to persist working memory', { error });
123
+ });
124
+ this.buffer = '';
125
+ }
126
+ }
127
+ }
128
+ async flush() {
129
+ if (this.state === 'normal' && this.pendingText.length > 0) {
130
+ await this.writer.write({ type: 'text-delta', delta: this.pendingText });
131
+ }
132
+ this.pendingText = '';
133
+ this.buffer = '';
134
+ this.state = 'normal';
135
+ }
136
+ }
137
+ exports.WorkingMemoryStreamFilter = WorkingMemoryStreamFilter;
138
+ //# sourceMappingURL=working-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"working-memory.js","sourceRoot":"","sources":["../../src/runtime/working-memory.ts"],"names":[],"mappings":";;;AAgBA,gDAmBC;AAKD,sEAqBC;AAKD,gDAOC;AAtED,qCAAgD;AAEhD,MAAM,MAAM,GAAG,IAAA,6BAAoB,GAAE,CAAC;AAItC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAMtC,SAAgB,kBAAkB,CAAC,IAAY;IAI9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAErE,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC;AAKD,SAAgB,6BAA6B,CAAC,QAAgB,EAAE,UAAmB;IAClF,MAAM,MAAM,GAAG,UAAU;QACxB,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,sDAAsD,CAAC;IAE1D,OAAO;QACN,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,wEAAwE;QACxE,6DAA6D;QAC7D,qEAAqE;QACrE,mFAAmF,QAAQ,MAAM,SAAS,sBAAsB;QAChI,GAAG,MAAM,yDAAyD;QAClE,iGAAiG;QACjG,EAAE;QACF,mBAAmB;QACnB,KAAK;QACL,QAAQ;QACR,KAAK;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAuB;IACzD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AASD,MAAa,yBAAyB;IAWrC,YAAY,MAAgD,EAAE,OAAkB;QANxE,UAAK,GAAwB,QAAQ,CAAC;QAEtC,WAAM,GAAG,EAAE,CAAC;QAEZ,gBAAW,GAAG,EAAE,CAAC;QAGxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAkB;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO;QACR,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC;QAEhC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;oBAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjD,IACC,MAAM,KAAK,CAAC,CAAC;wBACb,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM;wBAClD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAClD,CAAC;wBAEF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;4BAChB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gCACvB,IAAI,EAAE,YAAY;gCAClB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;6BACxC,CAAC,CAAC;wBACJ,CAAC;wBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBAEP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;wBACzE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACvB,CAAC;oBACD,MAAM;gBACP,CAAC;gBAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;wBACvB,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;qBACzC,CAAC,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YAClB,CAAC;iBAAM,CAAC;gBAEP,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBAErB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjD,IACC,MAAM,KAAK,CAAC,CAAC;wBACb,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM;wBACnD,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACnD,CAAC;wBACF,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;wBACjD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;wBAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;oBACvB,CAAC;oBACD,MAAM;gBACP,CAAC;gBACD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBAC9C,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5D,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YAClB,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACvB,CAAC;CACD;AApGD,8DAoGC"}
@@ -0,0 +1,88 @@
1
+ import type { ProviderOptions } from '@ai-sdk/provider-utils';
2
+ import { z } from 'zod';
3
+ import type { Eval } from './eval';
4
+ import type { McpClient } from './mcp-client';
5
+ import { Memory } from './memory';
6
+ import { Telemetry } from './telemetry';
7
+ import { AgentRuntime } from '../runtime/agent-runtime';
8
+ import type { AgentEvent, AgentEventHandler, AgentMiddleware, BuiltAgent, BuiltEval, BuiltGuardrail, BuiltMemory, BuiltProviderTool, BuiltTool, BuiltTelemetry, CheckpointStore, ExecutionOptions, GenerateResult, MemoryConfig, ModelConfig, Provider, RunOptions, SerializableAgentState, StreamResult, ThinkingConfigFor, ResumeOptions } from '../types';
9
+ import type { AgentMessage } from '../types/sdk/message';
10
+ import type { Workspace } from '../workspace/workspace';
11
+ type ToolParameter = BuiltTool | {
12
+ build(): BuiltTool;
13
+ };
14
+ export declare class Agent implements BuiltAgent {
15
+ readonly name: string;
16
+ private modelId?;
17
+ private modelConfigObj?;
18
+ private instructionProviderOpts?;
19
+ private instructionsText?;
20
+ private tools;
21
+ private providerTools;
22
+ private memoryConfig?;
23
+ private inputGuardrails;
24
+ private outputGuardrails;
25
+ private agentEvals;
26
+ private outputSchema?;
27
+ private checkpointStore?;
28
+ private thinkingConfig?;
29
+ private credentialName?;
30
+ private resolvedKey?;
31
+ private runtime?;
32
+ private concurrencyValue?;
33
+ private telemetryBuilder?;
34
+ private telemetryConfig?;
35
+ private middlewares;
36
+ private requireToolApprovalValue;
37
+ private mcpClients;
38
+ private buildPromise;
39
+ private eventBus;
40
+ private workspaceInstance?;
41
+ constructor(name: string);
42
+ model(providerOrIdOrConfig: string | ModelConfig, modelName?: string): this;
43
+ instructions(text: string, options?: {
44
+ providerOptions?: ProviderOptions;
45
+ }): this;
46
+ tool(t: ToolParameter | ToolParameter[]): this;
47
+ providerTool(builtProviderTool: BuiltProviderTool): this;
48
+ memory(m: MemoryConfig | Memory | BuiltMemory): this;
49
+ middleware(m: AgentMiddleware): this;
50
+ inputGuardrail(g: BuiltGuardrail | {
51
+ build(): BuiltGuardrail;
52
+ }): this;
53
+ outputGuardrail(g: BuiltGuardrail | {
54
+ build(): BuiltGuardrail;
55
+ }): this;
56
+ eval(e: Eval | BuiltEval | {
57
+ ensureBuilt(): BuiltEval;
58
+ }): this;
59
+ checkpoint(storage: 'memory' | CheckpointStore): this;
60
+ credential(name: string): this;
61
+ protected get declaredCredential(): string | undefined;
62
+ protected set resolvedApiKey(key: string);
63
+ structuredOutput(schema: z.ZodType): this;
64
+ thinking<P extends Provider>(_provider: P, config?: ThinkingConfigFor<P>): this;
65
+ telemetry(t: Telemetry | BuiltTelemetry): this;
66
+ protected get declaredTelemetry(): Telemetry | undefined;
67
+ toolCallConcurrency(n: number): this;
68
+ requireToolApproval(): this;
69
+ workspace(ws: Workspace): this;
70
+ mcp(client: McpClient): this;
71
+ get evaluations(): BuiltEval[];
72
+ on(event: AgentEvent, handler: AgentEventHandler): void;
73
+ asTool(description: string): BuiltTool;
74
+ getState(): SerializableAgentState;
75
+ abort(): void;
76
+ generate(input: AgentMessage[] | string, options?: RunOptions & ExecutionOptions): Promise<GenerateResult>;
77
+ stream(input: AgentMessage[] | string, options?: RunOptions & ExecutionOptions): Promise<StreamResult>;
78
+ resume(method: 'generate', data: unknown, options: ResumeOptions & ExecutionOptions): Promise<GenerateResult>;
79
+ resume(method: 'stream', data: unknown, options: ResumeOptions & ExecutionOptions): Promise<StreamResult>;
80
+ approve(method: 'generate', options: ResumeOptions & ExecutionOptions): Promise<GenerateResult>;
81
+ approve(method: 'stream', options: ResumeOptions & ExecutionOptions): Promise<StreamResult>;
82
+ deny(method: 'generate', options: ResumeOptions & ExecutionOptions): Promise<GenerateResult>;
83
+ deny(method: 'stream', options: ResumeOptions & ExecutionOptions): Promise<StreamResult>;
84
+ private ensureBuilt;
85
+ private toMessages;
86
+ protected build(): Promise<AgentRuntime>;
87
+ }
88
+ export {};