@fllf/agent-sdk 0.1.2 → 0.1.3

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 (266) hide show
  1. package/CHANGELOG.md +169 -0
  2. package/README.md +824 -198
  3. package/dist/agent/Agent.d.ts +16 -5
  4. package/dist/agent/Agent.d.ts.map +1 -1
  5. package/dist/agent/Agent.js +283 -2
  6. package/dist/agent/Agent.js.map +1 -1
  7. package/dist/agent/index.d.ts +1 -1
  8. package/dist/agent/index.d.ts.map +1 -1
  9. package/dist/agent/types.d.ts +27 -3
  10. package/dist/agent/types.d.ts.map +1 -1
  11. package/dist/config/config.d.ts +22 -3
  12. package/dist/config/config.d.ts.map +1 -1
  13. package/dist/config/config.js +194 -47
  14. package/dist/config/config.js.map +1 -1
  15. package/dist/config/index.d.ts +1 -1
  16. package/dist/config/index.d.ts.map +1 -1
  17. package/dist/errors.d.ts +74 -0
  18. package/dist/errors.d.ts.map +1 -0
  19. package/dist/errors.js +186 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/executors/base-executor.d.ts +14 -0
  22. package/dist/executors/base-executor.d.ts.map +1 -0
  23. package/dist/executors/base-executor.js +31 -0
  24. package/dist/executors/base-executor.js.map +1 -0
  25. package/dist/executors/base.d.ts +36 -5
  26. package/dist/executors/base.d.ts.map +1 -1
  27. package/dist/executors/chat-request-builder.d.ts +10 -0
  28. package/dist/executors/chat-request-builder.d.ts.map +1 -0
  29. package/dist/executors/chat-request-builder.js +96 -0
  30. package/dist/executors/chat-request-builder.js.map +1 -0
  31. package/dist/executors/index.d.ts +4 -1
  32. package/dist/executors/index.d.ts.map +1 -1
  33. package/dist/executors/index.js +6 -1
  34. package/dist/executors/index.js.map +1 -1
  35. package/dist/executors/rag-executor.js +1 -1
  36. package/dist/executors/rag-executor.js.map +1 -1
  37. package/dist/executors/simple-chat-executor.d.ts +4 -2
  38. package/dist/executors/simple-chat-executor.d.ts.map +1 -1
  39. package/dist/executors/simple-chat-executor.js +59 -57
  40. package/dist/executors/simple-chat-executor.js.map +1 -1
  41. package/dist/executors/tool-calling-executor.d.ts +20 -2
  42. package/dist/executors/tool-calling-executor.d.ts.map +1 -1
  43. package/dist/executors/tool-calling-executor.js +189 -91
  44. package/dist/executors/tool-calling-executor.js.map +1 -1
  45. package/dist/history/base.d.ts +55 -2
  46. package/dist/history/base.d.ts.map +1 -1
  47. package/dist/history/base.js +49 -0
  48. package/dist/history/base.js.map +1 -1
  49. package/dist/history/compression.d.ts +49 -0
  50. package/dist/history/compression.d.ts.map +1 -0
  51. package/dist/history/compression.js +53 -0
  52. package/dist/history/compression.js.map +1 -0
  53. package/dist/history/context-window.d.ts +33 -0
  54. package/dist/history/context-window.d.ts.map +1 -0
  55. package/dist/history/context-window.js +68 -0
  56. package/dist/history/context-window.js.map +1 -0
  57. package/dist/history/in-memory.d.ts +6 -4
  58. package/dist/history/in-memory.d.ts.map +1 -1
  59. package/dist/history/in-memory.js +25 -39
  60. package/dist/history/in-memory.js.map +1 -1
  61. package/dist/history/index.d.ts +9 -2
  62. package/dist/history/index.d.ts.map +1 -1
  63. package/dist/history/index.js +18 -1
  64. package/dist/history/index.js.map +1 -1
  65. package/dist/history/postgres/index.d.ts +4 -0
  66. package/dist/history/postgres/index.d.ts.map +1 -0
  67. package/dist/history/postgres/index.js +20 -0
  68. package/dist/history/postgres/index.js.map +1 -0
  69. package/dist/history/postgres/postgres-message-history-store.d.ts +35 -0
  70. package/dist/history/postgres/postgres-message-history-store.d.ts.map +1 -0
  71. package/dist/history/postgres/postgres-message-history-store.js +195 -0
  72. package/dist/history/postgres/postgres-message-history-store.js.map +1 -0
  73. package/dist/history/postgres/schema.d.ts +18 -0
  74. package/dist/history/postgres/schema.d.ts.map +1 -0
  75. package/dist/history/postgres/schema.js +46 -0
  76. package/dist/history/postgres/schema.js.map +1 -0
  77. package/dist/history/postgres/sql.d.ts +29 -0
  78. package/dist/history/postgres/sql.d.ts.map +1 -0
  79. package/dist/history/postgres/sql.js +102 -0
  80. package/dist/history/postgres/sql.js.map +1 -0
  81. package/dist/history/postgres/types.d.ts +20 -0
  82. package/dist/history/postgres/types.d.ts.map +1 -0
  83. package/dist/history/postgres/types.js +3 -0
  84. package/dist/history/postgres/types.js.map +1 -0
  85. package/dist/history/tool-pairing.d.ts +11 -0
  86. package/dist/history/tool-pairing.d.ts.map +1 -0
  87. package/dist/history/tool-pairing.js +52 -0
  88. package/dist/history/tool-pairing.js.map +1 -0
  89. package/dist/index.d.ts +2 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +2 -0
  92. package/dist/index.js.map +1 -1
  93. package/dist/llm/LLM.d.ts +1 -0
  94. package/dist/llm/LLM.d.ts.map +1 -1
  95. package/dist/llm/LLM.js +136 -26
  96. package/dist/llm/LLM.js.map +1 -1
  97. package/dist/llm/errors.d.ts +11 -1
  98. package/dist/llm/errors.d.ts.map +1 -1
  99. package/dist/llm/errors.js +50 -1
  100. package/dist/llm/errors.js.map +1 -1
  101. package/dist/llm/factory.d.ts +14 -2
  102. package/dist/llm/factory.d.ts.map +1 -1
  103. package/dist/llm/factory.js +48 -9
  104. package/dist/llm/factory.js.map +1 -1
  105. package/dist/llm/index.d.ts +8 -3
  106. package/dist/llm/index.d.ts.map +1 -1
  107. package/dist/llm/index.js +10 -1
  108. package/dist/llm/index.js.map +1 -1
  109. package/dist/llm/providers/anthropic.d.ts +14 -0
  110. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  111. package/dist/llm/providers/anthropic.js +336 -0
  112. package/dist/llm/providers/anthropic.js.map +1 -0
  113. package/dist/llm/providers/openai-compatible.d.ts +7 -0
  114. package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
  115. package/dist/llm/providers/openai-compatible.js +151 -47
  116. package/dist/llm/providers/openai-compatible.js.map +1 -1
  117. package/dist/llm/stream-accumulator.d.ts +17 -0
  118. package/dist/llm/stream-accumulator.d.ts.map +1 -0
  119. package/dist/llm/stream-accumulator.js +83 -0
  120. package/dist/llm/stream-accumulator.js.map +1 -0
  121. package/dist/llm/tool-arguments.d.ts +6 -0
  122. package/dist/llm/tool-arguments.d.ts.map +1 -0
  123. package/dist/llm/tool-arguments.js +20 -0
  124. package/dist/llm/tool-arguments.js.map +1 -0
  125. package/dist/llm/types.d.ts +76 -4
  126. package/dist/llm/types.d.ts.map +1 -1
  127. package/dist/messages/content.d.ts +36 -0
  128. package/dist/messages/content.d.ts.map +1 -0
  129. package/dist/messages/content.js +70 -0
  130. package/dist/messages/content.js.map +1 -0
  131. package/dist/messages/index.d.ts +4 -2
  132. package/dist/messages/index.d.ts.map +1 -1
  133. package/dist/messages/index.js +10 -1
  134. package/dist/messages/index.js.map +1 -1
  135. package/dist/messages/message.d.ts +11 -9
  136. package/dist/messages/message.d.ts.map +1 -1
  137. package/dist/messages/message.js +69 -4
  138. package/dist/messages/message.js.map +1 -1
  139. package/dist/messages/types.d.ts +12 -0
  140. package/dist/messages/types.d.ts.map +1 -1
  141. package/dist/observability/collecting-observer.d.ts +8 -0
  142. package/dist/observability/collecting-observer.d.ts.map +1 -0
  143. package/dist/observability/collecting-observer.js +15 -0
  144. package/dist/observability/collecting-observer.js.map +1 -0
  145. package/dist/observability/index.d.ts +1 -0
  146. package/dist/observability/index.d.ts.map +1 -1
  147. package/dist/observability/index.js +3 -1
  148. package/dist/observability/index.js.map +1 -1
  149. package/dist/observability/observer.d.ts.map +1 -1
  150. package/dist/observability/observer.js +14 -1
  151. package/dist/observability/observer.js.map +1 -1
  152. package/dist/observability/types.d.ts +16 -1
  153. package/dist/observability/types.d.ts.map +1 -1
  154. package/dist/rag/chunking/auto-chunker.d.ts +7 -0
  155. package/dist/rag/chunking/auto-chunker.d.ts.map +1 -1
  156. package/dist/rag/chunking/auto-chunker.js +13 -0
  157. package/dist/rag/chunking/auto-chunker.js.map +1 -1
  158. package/dist/rag/chunking/chunker.d.ts.map +1 -1
  159. package/dist/rag/chunking/chunker.js +29 -5
  160. package/dist/rag/chunking/chunker.js.map +1 -1
  161. package/dist/rag/chunking/index.d.ts +2 -0
  162. package/dist/rag/chunking/index.d.ts.map +1 -1
  163. package/dist/rag/chunking/index.js +2 -0
  164. package/dist/rag/chunking/index.js.map +1 -1
  165. package/dist/rag/chunking/markdown-chunker.d.ts.map +1 -1
  166. package/dist/rag/chunking/markdown-chunker.js.map +1 -1
  167. package/dist/rag/chunking/qa-pair-chunker.d.ts +23 -0
  168. package/dist/rag/chunking/qa-pair-chunker.d.ts.map +1 -0
  169. package/dist/rag/chunking/qa-pair-chunker.js +162 -0
  170. package/dist/rag/chunking/qa-pair-chunker.js.map +1 -0
  171. package/dist/rag/chunking/semantic-chunker.d.ts +19 -0
  172. package/dist/rag/chunking/semantic-chunker.d.ts.map +1 -0
  173. package/dist/rag/chunking/semantic-chunker.js +291 -0
  174. package/dist/rag/chunking/semantic-chunker.js.map +1 -0
  175. package/dist/rag/embeddings/embedder.d.ts.map +1 -1
  176. package/dist/rag/embeddings/embedder.js +6 -0
  177. package/dist/rag/embeddings/embedder.js.map +1 -1
  178. package/dist/rag/generation/context-builder.d.ts +7 -0
  179. package/dist/rag/generation/context-builder.d.ts.map +1 -1
  180. package/dist/rag/generation/context-builder.js +4 -1
  181. package/dist/rag/generation/context-builder.js.map +1 -1
  182. package/dist/rag/ingestion/metadata.d.ts +6 -1
  183. package/dist/rag/ingestion/metadata.d.ts.map +1 -1
  184. package/dist/rag/ingestion/metadata.js +6 -2
  185. package/dist/rag/ingestion/metadata.js.map +1 -1
  186. package/dist/rag/pipeline.d.ts.map +1 -1
  187. package/dist/rag/pipeline.js +34 -11
  188. package/dist/rag/pipeline.js.map +1 -1
  189. package/dist/rag/retrieval/index.d.ts +1 -0
  190. package/dist/rag/retrieval/index.d.ts.map +1 -1
  191. package/dist/rag/retrieval/index.js +1 -0
  192. package/dist/rag/retrieval/index.js.map +1 -1
  193. package/dist/rag/retrieval/parent-child-expanding-retriever.d.ts +31 -0
  194. package/dist/rag/retrieval/parent-child-expanding-retriever.d.ts.map +1 -0
  195. package/dist/rag/retrieval/parent-child-expanding-retriever.js +194 -0
  196. package/dist/rag/retrieval/parent-child-expanding-retriever.js.map +1 -0
  197. package/dist/rag/stores/in-memory-keyword-store.d.ts.map +1 -1
  198. package/dist/rag/stores/in-memory-keyword-store.js +3 -8
  199. package/dist/rag/stores/in-memory-keyword-store.js.map +1 -1
  200. package/dist/rag/stores/keyword-tokenizer.d.ts +4 -0
  201. package/dist/rag/stores/keyword-tokenizer.d.ts.map +1 -0
  202. package/dist/rag/stores/keyword-tokenizer.js +113 -0
  203. package/dist/rag/stores/keyword-tokenizer.js.map +1 -0
  204. package/dist/rag/stores/postgres/pg-vector-store.d.ts.map +1 -1
  205. package/dist/rag/stores/postgres/pg-vector-store.js +21 -8
  206. package/dist/rag/stores/postgres/pg-vector-store.js.map +1 -1
  207. package/dist/rag/stores/postgres/postgres-document-store.d.ts.map +1 -1
  208. package/dist/rag/stores/postgres/postgres-document-store.js +26 -13
  209. package/dist/rag/stores/postgres/postgres-document-store.js.map +1 -1
  210. package/dist/rag/stores/postgres/postgres-keyword-store.d.ts.map +1 -1
  211. package/dist/rag/stores/postgres/postgres-keyword-store.js +43 -43
  212. package/dist/rag/stores/postgres/postgres-keyword-store.js.map +1 -1
  213. package/dist/rag/stores/postgres/sql.d.ts +22 -0
  214. package/dist/rag/stores/postgres/sql.d.ts.map +1 -1
  215. package/dist/rag/stores/postgres/sql.js +42 -0
  216. package/dist/rag/stores/postgres/sql.js.map +1 -1
  217. package/dist/rag/stores/types.d.ts +5 -0
  218. package/dist/rag/stores/types.d.ts.map +1 -1
  219. package/dist/rag/types.d.ts +6 -0
  220. package/dist/rag/types.d.ts.map +1 -1
  221. package/dist/testing/agent.d.ts +11 -0
  222. package/dist/testing/agent.d.ts.map +1 -0
  223. package/dist/testing/agent.js +45 -0
  224. package/dist/testing/agent.js.map +1 -0
  225. package/dist/testing/history-contract.d.ts +12 -0
  226. package/dist/testing/history-contract.d.ts.map +1 -0
  227. package/dist/testing/history-contract.js +111 -0
  228. package/dist/testing/history-contract.js.map +1 -0
  229. package/dist/testing/index.d.ts +11 -0
  230. package/dist/testing/index.d.ts.map +1 -0
  231. package/dist/testing/index.js +16 -0
  232. package/dist/testing/index.js.map +1 -0
  233. package/dist/testing/models.d.ts +34 -0
  234. package/dist/testing/models.d.ts.map +1 -0
  235. package/dist/testing/models.js +74 -0
  236. package/dist/testing/models.js.map +1 -0
  237. package/dist/testing/tool-schema.d.ts +6 -0
  238. package/dist/testing/tool-schema.d.ts.map +1 -0
  239. package/dist/testing/tool-schema.js +29 -0
  240. package/dist/testing/tool-schema.js.map +1 -0
  241. package/dist/testing/tools.d.ts +21 -0
  242. package/dist/testing/tools.d.ts.map +1 -0
  243. package/dist/testing/tools.js +43 -0
  244. package/dist/testing/tools.js.map +1 -0
  245. package/dist/tools/base.d.ts +38 -7
  246. package/dist/tools/base.d.ts.map +1 -1
  247. package/dist/tools/base.js +238 -11
  248. package/dist/tools/base.js.map +1 -1
  249. package/dist/tools/builtin/advancedSearchTool.d.ts.map +1 -1
  250. package/dist/tools/builtin/advancedSearchTool.js +30 -4
  251. package/dist/tools/builtin/advancedSearchTool.js.map +1 -1
  252. package/dist/tools/builtin/ragSearchTool.d.ts +6 -3
  253. package/dist/tools/builtin/ragSearchTool.d.ts.map +1 -1
  254. package/dist/tools/builtin/ragSearchTool.js +8 -6
  255. package/dist/tools/builtin/ragSearchTool.js.map +1 -1
  256. package/dist/tools/executor.d.ts +30 -2
  257. package/dist/tools/executor.d.ts.map +1 -1
  258. package/dist/tools/executor.js +83 -15
  259. package/dist/tools/executor.js.map +1 -1
  260. package/dist/tools/index.d.ts +3 -1
  261. package/dist/tools/index.d.ts.map +1 -1
  262. package/dist/tools/registry.d.ts +15 -3
  263. package/dist/tools/registry.d.ts.map +1 -1
  264. package/dist/tools/registry.js +21 -2
  265. package/dist/tools/registry.js.map +1 -1
  266. package/package.json +58 -4
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Config = void 0;
4
+ const errors_1 = require("../errors");
4
5
  class Config {
5
6
  defaultModel;
6
7
  defaultProvider;
7
8
  temperature;
8
9
  maxTokens;
10
+ maxInputTokens;
9
11
  requestTimeoutMs;
10
12
  maxRetries;
11
13
  retryDelayMs;
@@ -13,11 +15,16 @@ class Config {
13
15
  debug;
14
16
  logLevel;
15
17
  maxHistoryLength;
16
- constructor(options = {}) {
18
+ envWarnings;
19
+ constructor(options = {}, envWarnings = []) {
20
+ validateConfigOptions(options);
17
21
  this.defaultModel = options.defaultModel;
18
22
  this.defaultProvider = options.defaultProvider;
19
- this.temperature = options.temperature ?? 0.7;
23
+ // 不再默认 0.7:未显式配置时把 temperature 留给模型自身的默认值,
24
+ // 也避免对拒绝该参数的推理模型强行下发。
25
+ this.temperature = options.temperature;
20
26
  this.maxTokens = options.maxTokens;
27
+ this.maxInputTokens = options.maxInputTokens;
21
28
  this.requestTimeoutMs = options.requestTimeoutMs;
22
29
  this.maxRetries = options.maxRetries;
23
30
  this.retryDelayMs = options.retryDelayMs;
@@ -25,76 +32,90 @@ class Config {
25
32
  this.debug = options.debug ?? false;
26
33
  this.logLevel = options.logLevel ?? 'INFO';
27
34
  this.maxHistoryLength = options.maxHistoryLength ?? 100;
35
+ this.envWarnings = Object.freeze([...envWarnings]);
28
36
  }
29
37
  /**
30
38
  * 环境变量只负责覆盖运行参数。
31
39
  * 如果没有显式 MODEL,就让 LLM provider 使用自己的默认模型。
32
40
  */
33
- static fromEnv() {
41
+ static fromEnv(fromEnvOptions = {}) {
42
+ const env = fromEnvOptions.env ?? process.env;
34
43
  const options = {};
35
- if (process.env.MODEL) {
36
- options.defaultModel = process.env.MODEL;
37
- }
38
- if (process.env.MODEL_PROVIDER) {
39
- options.defaultProvider = process.env.MODEL_PROVIDER;
40
- }
41
- if (process.env.DEBUG !== undefined) {
42
- options.debug = process.env.DEBUG.toLowerCase() === 'true';
43
- }
44
- if (process.env.LOG_LEVEL) {
45
- options.logLevel = process.env.LOG_LEVEL;
46
- }
47
- if (process.env.TEMPERATURE !== undefined) {
48
- const temperature = Number.parseFloat(process.env.TEMPERATURE);
49
- if (!Number.isNaN(temperature)) {
50
- options.temperature = temperature;
44
+ const warnings = [];
45
+ if (env.MODEL !== undefined) {
46
+ const model = readNonEmptyString(env, 'MODEL', warnings);
47
+ if (model !== undefined) {
48
+ options.defaultModel = model;
51
49
  }
52
50
  }
53
- if (process.env.MAX_TOKENS !== undefined) {
54
- const maxTokens = Number.parseInt(process.env.MAX_TOKENS, 10);
55
- if (!Number.isNaN(maxTokens)) {
56
- options.maxTokens = maxTokens;
51
+ if (env.MODEL_PROVIDER !== undefined) {
52
+ const provider = readNonEmptyString(env, 'MODEL_PROVIDER', warnings);
53
+ if (provider !== undefined) {
54
+ options.defaultProvider = provider;
57
55
  }
58
56
  }
59
- if (process.env.REQUEST_TIMEOUT_MS !== undefined) {
60
- const requestTimeoutMs = Number.parseInt(process.env.REQUEST_TIMEOUT_MS, 10);
61
- if (!Number.isNaN(requestTimeoutMs)) {
62
- options.requestTimeoutMs = requestTimeoutMs;
57
+ if (env.DEBUG !== undefined) {
58
+ const debug = readBoolean(env, 'DEBUG', warnings);
59
+ if (debug !== undefined) {
60
+ options.debug = debug;
63
61
  }
64
62
  }
65
- if (process.env.MAX_RETRIES !== undefined) {
66
- const maxRetries = Number.parseInt(process.env.MAX_RETRIES, 10);
67
- if (!Number.isNaN(maxRetries)) {
68
- options.maxRetries = maxRetries;
63
+ if (env.LOG_LEVEL !== undefined) {
64
+ const logLevel = readNonEmptyString(env, 'LOG_LEVEL', warnings);
65
+ if (logLevel !== undefined) {
66
+ options.logLevel = logLevel;
69
67
  }
70
68
  }
71
- if (process.env.RETRY_DELAY_MS !== undefined) {
72
- const retryDelayMs = Number.parseInt(process.env.RETRY_DELAY_MS, 10);
73
- if (!Number.isNaN(retryDelayMs)) {
74
- options.retryDelayMs = retryDelayMs;
75
- }
69
+ if (env.TEMPERATURE !== undefined) {
70
+ assignIfDefined(options, 'temperature', readNumber(env, 'TEMPERATURE', 'a finite number', warnings));
76
71
  }
77
- if (process.env.RETRY_MAX_DELAY_MS !== undefined) {
78
- const retryMaxDelayMs = Number.parseInt(process.env.RETRY_MAX_DELAY_MS, 10);
79
- if (!Number.isNaN(retryMaxDelayMs)) {
80
- options.retryMaxDelayMs = retryMaxDelayMs;
81
- }
72
+ if (env.MAX_TOKENS !== undefined) {
73
+ assignIfDefined(options, 'maxTokens', readPositiveInteger(env, 'MAX_TOKENS', warnings));
74
+ }
75
+ if (env.MAX_INPUT_TOKENS !== undefined) {
76
+ assignIfDefined(options, 'maxInputTokens', readPositiveInteger(env, 'MAX_INPUT_TOKENS', warnings));
77
+ }
78
+ if (env.REQUEST_TIMEOUT_MS !== undefined) {
79
+ assignIfDefined(options, 'requestTimeoutMs', readNonNegativeInteger(env, 'REQUEST_TIMEOUT_MS', warnings));
80
+ }
81
+ if (env.MAX_RETRIES !== undefined) {
82
+ assignIfDefined(options, 'maxRetries', readNonNegativeInteger(env, 'MAX_RETRIES', warnings));
83
+ }
84
+ if (env.RETRY_DELAY_MS !== undefined) {
85
+ assignIfDefined(options, 'retryDelayMs', readNonNegativeInteger(env, 'RETRY_DELAY_MS', warnings));
86
+ }
87
+ if (env.RETRY_MAX_DELAY_MS !== undefined) {
88
+ assignIfDefined(options, 'retryMaxDelayMs', readNonNegativeInteger(env, 'RETRY_MAX_DELAY_MS', warnings));
89
+ }
90
+ if (env.MAX_HISTORY_LENGTH !== undefined) {
91
+ assignIfDefined(options, 'maxHistoryLength', readPositiveInteger(env, 'MAX_HISTORY_LENGTH', warnings));
82
92
  }
83
- if (process.env.MAX_HISTORY_LENGTH !== undefined) {
84
- const maxHistoryLength = Number.parseInt(process.env.MAX_HISTORY_LENGTH, 10);
85
- if (!Number.isNaN(maxHistoryLength)) {
86
- options.maxHistoryLength = maxHistoryLength;
93
+ for (const warning of warnings) {
94
+ fromEnvOptions.onWarning?.(warning);
95
+ }
96
+ if (fromEnvOptions.strict && warnings.length > 0) {
97
+ const warning = warnings[0];
98
+ if (warning !== undefined) {
99
+ throw new errors_1.ConfigError(warning.message, {
100
+ code: 'invalid_env_config',
101
+ metadata: { ...warning },
102
+ });
87
103
  }
104
+ throw new errors_1.ConfigError('Invalid environment configuration.', {
105
+ code: 'invalid_env_config',
106
+ });
88
107
  }
89
- return new Config(options);
108
+ return new Config(options, warnings);
90
109
  }
91
110
  toJSON() {
92
111
  const options = {
93
- temperature: this.temperature,
94
112
  debug: this.debug,
95
113
  logLevel: this.logLevel,
96
114
  maxHistoryLength: this.maxHistoryLength,
97
115
  };
116
+ if (this.temperature !== undefined) {
117
+ options.temperature = this.temperature;
118
+ }
98
119
  if (this.defaultModel !== undefined) {
99
120
  options.defaultModel = this.defaultModel;
100
121
  }
@@ -104,6 +125,9 @@ class Config {
104
125
  if (this.maxTokens !== undefined) {
105
126
  options.maxTokens = this.maxTokens;
106
127
  }
128
+ if (this.maxInputTokens !== undefined) {
129
+ options.maxInputTokens = this.maxInputTokens;
130
+ }
107
131
  if (this.requestTimeoutMs !== undefined) {
108
132
  options.requestTimeoutMs = this.requestTimeoutMs;
109
133
  }
@@ -120,4 +144,127 @@ class Config {
120
144
  }
121
145
  }
122
146
  exports.Config = Config;
147
+ function validateConfigOptions(options) {
148
+ validateOptionalString('defaultModel', options.defaultModel);
149
+ validateOptionalString('defaultProvider', options.defaultProvider);
150
+ validateOptionalFiniteNumber('temperature', options.temperature);
151
+ validateOptionalPositiveInteger('maxTokens', options.maxTokens);
152
+ validateOptionalPositiveInteger('maxInputTokens', options.maxInputTokens);
153
+ validateOptionalNonNegativeNumber('requestTimeoutMs', options.requestTimeoutMs);
154
+ validateOptionalNonNegativeInteger('maxRetries', options.maxRetries);
155
+ validateOptionalNonNegativeNumber('retryDelayMs', options.retryDelayMs);
156
+ validateOptionalNonNegativeNumber('retryMaxDelayMs', options.retryMaxDelayMs);
157
+ validateOptionalBoolean('debug', options.debug);
158
+ validateOptionalString('logLevel', options.logLevel);
159
+ validateOptionalPositiveInteger('maxHistoryLength', options.maxHistoryLength);
160
+ }
161
+ function validateOptionalString(option, value) {
162
+ if (value !== undefined && (typeof value !== 'string' || value.trim().length === 0)) {
163
+ throwInvalidConfigOption(option, 'must be a non-empty string');
164
+ }
165
+ }
166
+ function validateOptionalBoolean(option, value) {
167
+ if (value !== undefined && typeof value !== 'boolean') {
168
+ throwInvalidConfigOption(option, 'must be a boolean');
169
+ }
170
+ }
171
+ function validateOptionalFiniteNumber(option, value) {
172
+ if (value !== undefined && (typeof value !== 'number' || !Number.isFinite(value))) {
173
+ throwInvalidConfigOption(option, 'must be a finite number');
174
+ }
175
+ }
176
+ function validateOptionalPositiveInteger(option, value) {
177
+ if (value !== undefined
178
+ && (typeof value !== 'number' || !Number.isInteger(value) || value <= 0)) {
179
+ throwInvalidConfigOption(option, 'must be a positive integer');
180
+ }
181
+ }
182
+ function validateOptionalNonNegativeNumber(option, value) {
183
+ if (value !== undefined
184
+ && (typeof value !== 'number' || !Number.isFinite(value) || value < 0)) {
185
+ throwInvalidConfigOption(option, 'must be a non-negative finite number');
186
+ }
187
+ }
188
+ function validateOptionalNonNegativeInteger(option, value) {
189
+ if (value !== undefined
190
+ && (typeof value !== 'number' || !Number.isInteger(value) || value < 0)) {
191
+ throwInvalidConfigOption(option, 'must be a non-negative integer');
192
+ }
193
+ }
194
+ function throwInvalidConfigOption(option, reason) {
195
+ throw new errors_1.ConfigError(`Invalid ConfigOptions.${option}: ${reason}.`, {
196
+ code: 'invalid_config_options',
197
+ metadata: {
198
+ option,
199
+ },
200
+ });
201
+ }
202
+ function readNonEmptyString(env, variable, warnings) {
203
+ const rawValue = env[variable];
204
+ const value = rawValue?.trim();
205
+ if (!value) {
206
+ addEnvWarning(warnings, variable, 'a non-empty string', 'empty_env_var');
207
+ return undefined;
208
+ }
209
+ return value;
210
+ }
211
+ function readBoolean(env, variable, warnings) {
212
+ const rawValue = env[variable]?.trim().toLowerCase();
213
+ if (rawValue === 'true') {
214
+ return true;
215
+ }
216
+ if (rawValue === 'false') {
217
+ return false;
218
+ }
219
+ addEnvWarning(warnings, variable, '"true" or "false"', 'invalid_env_var');
220
+ return undefined;
221
+ }
222
+ function readNumber(env, variable, expected, warnings) {
223
+ const rawValue = env[variable]?.trim();
224
+ if (!rawValue) {
225
+ addEnvWarning(warnings, variable, expected, 'empty_env_var');
226
+ return undefined;
227
+ }
228
+ const value = Number(rawValue);
229
+ if (!Number.isFinite(value)) {
230
+ addEnvWarning(warnings, variable, expected, 'invalid_env_var');
231
+ return undefined;
232
+ }
233
+ return value;
234
+ }
235
+ function readPositiveInteger(env, variable, warnings) {
236
+ const value = readNumber(env, variable, 'a positive integer', warnings);
237
+ if (value === undefined) {
238
+ return undefined;
239
+ }
240
+ if (!Number.isInteger(value) || value <= 0) {
241
+ addEnvWarning(warnings, variable, 'a positive integer', 'invalid_env_var');
242
+ return undefined;
243
+ }
244
+ return value;
245
+ }
246
+ function readNonNegativeInteger(env, variable, warnings) {
247
+ const value = readNumber(env, variable, 'a non-negative integer', warnings);
248
+ if (value === undefined) {
249
+ return undefined;
250
+ }
251
+ if (!Number.isInteger(value) || value < 0) {
252
+ addEnvWarning(warnings, variable, 'a non-negative integer', 'invalid_env_var');
253
+ return undefined;
254
+ }
255
+ return value;
256
+ }
257
+ function addEnvWarning(warnings, variable, expected, code) {
258
+ warnings.push({
259
+ code,
260
+ variable,
261
+ expected,
262
+ message: `Invalid environment variable ${variable}: expected ${expected}.`,
263
+ });
264
+ }
265
+ function assignIfDefined(options, key, value) {
266
+ if (value !== undefined) {
267
+ options[key] = value;
268
+ }
269
+ }
123
270
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { Config } from './config';
2
- export type { ConfigOptions } from './config';
2
+ export type { ConfigEnvWarning, ConfigEnvWarningCode, ConfigFromEnvOptions, ConfigOptions, } from './config';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,GAChB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,74 @@
1
+ export interface SDKErrorOptions {
2
+ code: string;
3
+ retryable?: boolean;
4
+ cause?: unknown;
5
+ metadata?: Record<string, unknown>;
6
+ }
7
+ export interface ComponentErrorOptions {
8
+ code?: string;
9
+ retryable?: boolean;
10
+ cause?: unknown;
11
+ metadata?: Record<string, unknown>;
12
+ }
13
+ export declare class AgentSDKError extends Error {
14
+ readonly code: string;
15
+ readonly retryable: boolean;
16
+ readonly metadata: Readonly<Record<string, unknown>> | undefined;
17
+ constructor(message: string, options: SDKErrorOptions);
18
+ }
19
+ export declare class AgentError extends AgentSDKError {
20
+ constructor(message: string, options?: ComponentErrorOptions);
21
+ }
22
+ export declare class AgentSessionError extends AgentError {
23
+ constructor(message: string, options?: ComponentErrorOptions);
24
+ }
25
+ export declare class AgentExecutionError extends AgentError {
26
+ constructor(message: string, options?: ComponentErrorOptions);
27
+ }
28
+ export declare class ToolError extends AgentSDKError {
29
+ readonly toolName: string | undefined;
30
+ constructor(message: string, options?: ComponentErrorOptions & {
31
+ toolName?: string;
32
+ });
33
+ }
34
+ export declare class ToolNotFoundError extends ToolError {
35
+ constructor(toolName: string, options?: ComponentErrorOptions);
36
+ }
37
+ export declare class ToolExecutionError extends ToolError {
38
+ constructor(toolName: string, cause: unknown, options?: ComponentErrorOptions);
39
+ }
40
+ export declare class ToolConfigurationError extends ToolError {
41
+ constructor(message: string, options?: ComponentErrorOptions & {
42
+ toolName?: string;
43
+ });
44
+ }
45
+ export declare class ToolPermissionError extends ToolError {
46
+ constructor(toolName: string, options?: ComponentErrorOptions);
47
+ }
48
+ export declare class ToolTimeoutError extends ToolError {
49
+ constructor(toolName: string, timeoutMs: number, options?: ComponentErrorOptions);
50
+ }
51
+ export declare class ToolAbortError extends ToolError {
52
+ constructor(toolName: string, options?: ComponentErrorOptions);
53
+ }
54
+ export declare class HistoryError extends AgentSDKError {
55
+ constructor(message: string, options?: ComponentErrorOptions);
56
+ }
57
+ export interface HistoryVersionConflictInput {
58
+ expectedVersion: number;
59
+ actualVersion: number;
60
+ sessionId?: string;
61
+ }
62
+ /**
63
+ * 乐观并发写入冲突:addMany 携带的 expectedVersion 与存储中的实际版本不一致。
64
+ * 默认 retryable:CAS 冲突的预期处理方式就是重读 getVersion/get 之后重试。
65
+ */
66
+ export declare class HistoryVersionConflictError extends HistoryError {
67
+ readonly expectedVersion: number;
68
+ readonly actualVersion: number;
69
+ constructor(input: HistoryVersionConflictInput, options?: ComponentErrorOptions);
70
+ }
71
+ export declare class ConfigError extends AgentSDKError {
72
+ constructor(message: string, options?: ComponentErrorOptions);
73
+ }
74
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,qBAAa,aAAc,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;gBAErD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe;CAOxD;AAED,qBAAa,UAAW,SAAQ,aAAa;gBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAGnE;AAED,qBAAa,iBAAkB,SAAQ,UAAU;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAGnE;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAGnE;AAED,qBAAa,SAAU,SAAQ,aAAa;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE1B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAAqB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;CAI3F;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAChC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAYpE;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACjC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,qBAA0B;CAapF;AAED,qBAAa,sBAAuB,SAAQ,SAAS;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAAqB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;CAY3F;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBAClC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAYpE;AAED,qBAAa,gBAAiB,SAAQ,SAAS;gBAC/B,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAavF;AAED,qBAAa,cAAe,SAAQ,SAAS;gBAC7B,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAYpE;AAED,qBAAa,YAAa,SAAQ,aAAa;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAGnE;AAED,MAAM,WAAW,2BAA2B;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,YAAY;IACzD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEnB,KAAK,EAAE,2BAA2B,EAAE,OAAO,GAAE,qBAA0B;CAkBtF;AAED,qBAAa,WAAY,SAAQ,aAAa;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;CAGnE"}
package/dist/errors.js ADDED
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigError = exports.HistoryVersionConflictError = exports.HistoryError = exports.ToolAbortError = exports.ToolTimeoutError = exports.ToolPermissionError = exports.ToolConfigurationError = exports.ToolExecutionError = exports.ToolNotFoundError = exports.ToolError = exports.AgentExecutionError = exports.AgentSessionError = exports.AgentError = exports.AgentSDKError = void 0;
4
+ class AgentSDKError extends Error {
5
+ code;
6
+ retryable;
7
+ metadata;
8
+ constructor(message, options) {
9
+ super(message, { cause: options.cause });
10
+ this.name = new.target.name;
11
+ this.code = options.code;
12
+ this.retryable = options.retryable ?? false;
13
+ this.metadata = options.metadata ? Object.freeze({ ...options.metadata }) : undefined;
14
+ }
15
+ }
16
+ exports.AgentSDKError = AgentSDKError;
17
+ class AgentError extends AgentSDKError {
18
+ constructor(message, options = {}) {
19
+ super(message, withDefaults(options, 'agent_error', false));
20
+ }
21
+ }
22
+ exports.AgentError = AgentError;
23
+ class AgentSessionError extends AgentError {
24
+ constructor(message, options = {}) {
25
+ super(message, withDefaults(options, 'agent_session', false));
26
+ }
27
+ }
28
+ exports.AgentSessionError = AgentSessionError;
29
+ class AgentExecutionError extends AgentError {
30
+ constructor(message, options = {}) {
31
+ super(message, withDefaults(options, 'agent_execution', false));
32
+ }
33
+ }
34
+ exports.AgentExecutionError = AgentExecutionError;
35
+ class ToolError extends AgentSDKError {
36
+ toolName;
37
+ constructor(message, options = {}) {
38
+ super(message, withDefaults(options, 'tool_error', false));
39
+ this.toolName = options.toolName;
40
+ }
41
+ }
42
+ exports.ToolError = ToolError;
43
+ class ToolNotFoundError extends ToolError {
44
+ constructor(toolName, options = {}) {
45
+ super(`Tool "${toolName}" is not registered.`, {
46
+ ...options,
47
+ code: options.code ?? 'tool_not_found',
48
+ retryable: options.retryable ?? false,
49
+ toolName,
50
+ metadata: {
51
+ ...options.metadata,
52
+ toolName,
53
+ },
54
+ });
55
+ }
56
+ }
57
+ exports.ToolNotFoundError = ToolNotFoundError;
58
+ class ToolExecutionError extends ToolError {
59
+ constructor(toolName, cause, options = {}) {
60
+ super(`Tool "${toolName}" failed: ${getErrorMessage(cause)}`, {
61
+ ...options,
62
+ code: options.code ?? 'tool_execution',
63
+ retryable: options.retryable ?? false,
64
+ cause,
65
+ toolName,
66
+ metadata: {
67
+ ...options.metadata,
68
+ toolName,
69
+ },
70
+ });
71
+ }
72
+ }
73
+ exports.ToolExecutionError = ToolExecutionError;
74
+ class ToolConfigurationError extends ToolError {
75
+ constructor(message, options = {}) {
76
+ const errorOptions = {
77
+ ...options,
78
+ code: options.code ?? 'invalid_tool_options',
79
+ retryable: options.retryable ?? false,
80
+ };
81
+ if (options.toolName !== undefined) {
82
+ errorOptions.toolName = options.toolName;
83
+ }
84
+ super(message, errorOptions);
85
+ }
86
+ }
87
+ exports.ToolConfigurationError = ToolConfigurationError;
88
+ class ToolPermissionError extends ToolError {
89
+ constructor(toolName, options = {}) {
90
+ super(`Tool "${toolName}" was denied by the permission policy.`, {
91
+ ...options,
92
+ code: options.code ?? 'tool_permission_denied',
93
+ retryable: options.retryable ?? false,
94
+ toolName,
95
+ metadata: {
96
+ ...options.metadata,
97
+ toolName,
98
+ },
99
+ });
100
+ }
101
+ }
102
+ exports.ToolPermissionError = ToolPermissionError;
103
+ class ToolTimeoutError extends ToolError {
104
+ constructor(toolName, timeoutMs, options = {}) {
105
+ super(`Tool "${toolName}" timed out after ${timeoutMs}ms.`, {
106
+ ...options,
107
+ code: options.code ?? 'tool_timeout',
108
+ retryable: options.retryable ?? true,
109
+ toolName,
110
+ metadata: {
111
+ ...options.metadata,
112
+ toolName,
113
+ timeoutMs,
114
+ },
115
+ });
116
+ }
117
+ }
118
+ exports.ToolTimeoutError = ToolTimeoutError;
119
+ class ToolAbortError extends ToolError {
120
+ constructor(toolName, options = {}) {
121
+ super(`Tool "${toolName}" was aborted.`, {
122
+ ...options,
123
+ code: options.code ?? 'tool_aborted',
124
+ retryable: options.retryable ?? false,
125
+ toolName,
126
+ metadata: {
127
+ ...options.metadata,
128
+ toolName,
129
+ },
130
+ });
131
+ }
132
+ }
133
+ exports.ToolAbortError = ToolAbortError;
134
+ class HistoryError extends AgentSDKError {
135
+ constructor(message, options = {}) {
136
+ super(message, withDefaults(options, 'history_error', false));
137
+ }
138
+ }
139
+ exports.HistoryError = HistoryError;
140
+ /**
141
+ * 乐观并发写入冲突:addMany 携带的 expectedVersion 与存储中的实际版本不一致。
142
+ * 默认 retryable:CAS 冲突的预期处理方式就是重读 getVersion/get 之后重试。
143
+ */
144
+ class HistoryVersionConflictError extends HistoryError {
145
+ expectedVersion;
146
+ actualVersion;
147
+ constructor(input, options = {}) {
148
+ super(`Message history version conflict: expected version ${input.expectedVersion}, actual version ${input.actualVersion}.`, {
149
+ ...options,
150
+ code: options.code ?? 'history_version_conflict',
151
+ retryable: options.retryable ?? true,
152
+ metadata: {
153
+ ...options.metadata,
154
+ expectedVersion: input.expectedVersion,
155
+ actualVersion: input.actualVersion,
156
+ ...(input.sessionId !== undefined ? { sessionId: input.sessionId } : {}),
157
+ },
158
+ });
159
+ this.expectedVersion = input.expectedVersion;
160
+ this.actualVersion = input.actualVersion;
161
+ }
162
+ }
163
+ exports.HistoryVersionConflictError = HistoryVersionConflictError;
164
+ class ConfigError extends AgentSDKError {
165
+ constructor(message, options = {}) {
166
+ super(message, withDefaults(options, 'config_error', false));
167
+ }
168
+ }
169
+ exports.ConfigError = ConfigError;
170
+ function withDefaults(options, code, retryable) {
171
+ const normalized = {
172
+ code: options.code ?? code,
173
+ retryable: options.retryable ?? retryable,
174
+ };
175
+ if ('cause' in options) {
176
+ normalized.cause = options.cause;
177
+ }
178
+ if (options.metadata !== undefined) {
179
+ normalized.metadata = options.metadata;
180
+ }
181
+ return normalized;
182
+ }
183
+ function getErrorMessage(error) {
184
+ return error instanceof Error ? error.message : String(error);
185
+ }
186
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ChatMessage, ChatRequest } from '../llm';
2
+ import { Message } from '../messages';
3
+ import type { AgentContext, AgentExecutor, AgentResult } from './base';
4
+ import type { ChatRequestBuilderOptions } from './chat-request-builder';
5
+ export declare abstract class BaseExecutor implements AgentExecutor {
6
+ abstract run(context: AgentContext): Promise<AgentResult>;
7
+ protected createUserMessage(context: AgentContext): Message;
8
+ protected createAssistantMessage(content: string, metadata?: Record<string, unknown>): Message;
9
+ protected getHistoryWithUserMessage(context: AgentContext, userMessage: Message): Promise<Message[]>;
10
+ protected buildChatMessages(context: AgentContext, messages: Message[]): Promise<ChatMessage[]>;
11
+ protected buildChatRequest(context: AgentContext, messages: ChatMessage[], options?: ChatRequestBuilderOptions): ChatRequest;
12
+ protected commitMessages(context: AgentContext, messages: Message[]): Promise<Message[]>;
13
+ }
14
+ //# sourceMappingURL=base-executor.d.ts.map