@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
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPostgresMessageHistorySchemaSql = createPostgresMessageHistorySchemaSql;
4
+ const sql_1 = require("./sql");
5
+ /**
6
+ * 消息历史建表 SQL。设计约束:
7
+ *
8
+ * - sessions.version 是乐观并发的 CAS 目标:0 表示尚无成功写入,
9
+ * 每次成功 addMany +1(clear 也 +1,防止版本回卷造成 ABA)。
10
+ * - messages.seq 用全局 IDENTITY 而不是 per-session 连续序号:READ COMMITTED
11
+ * 下单条语句的快照看不到并发已提交的行,无法无竞态地计算 MAX(seq)+1;
12
+ * IDENTITY 保证全局唯一且批内有序。因此 seq 在会话内单调递增但不保证连续,
13
+ * 排序语义不受影响。
14
+ * - content 直接存 Message.toJSON() 的 content 字段:字符串与 block 数组
15
+ * 都能落进 jsonb。
16
+ */
17
+ function createPostgresMessageHistorySchemaSql(options = {}) {
18
+ const tables = (0, sql_1.resolvePostgresHistoryTableNames)(options.tablePrefix);
19
+ const statements = [];
20
+ statements.push(`
21
+ CREATE TABLE IF NOT EXISTS ${tables.sessions} (
22
+ session_id text PRIMARY KEY,
23
+ version bigint NOT NULL DEFAULT 0
24
+ );`.trim());
25
+ statements.push(`
26
+ CREATE TABLE IF NOT EXISTS ${tables.messages} (
27
+ session_id text NOT NULL REFERENCES ${tables.sessions}(session_id) ON DELETE CASCADE,
28
+ seq bigint GENERATED ALWAYS AS IDENTITY,
29
+ role text NOT NULL,
30
+ content jsonb NOT NULL,
31
+ "timestamp" timestamptz NOT NULL,
32
+ metadata jsonb NOT NULL DEFAULT '{}'::jsonb,
33
+ PRIMARY KEY (session_id, seq)
34
+ );`.trim());
35
+ if (options.createIndexes ?? true) {
36
+ // get({ before }) 的时间窗口查询走 (session_id, "timestamp");
37
+ // 主键 (session_id, seq) 已覆盖按序读取。
38
+ statements.push(`CREATE INDEX IF NOT EXISTS ${indexName(options.tablePrefix, 'messages_session_timestamp_idx')} ON ${tables.messages} (session_id, "timestamp");`);
39
+ }
40
+ return `${statements.join('\n\n')}\n`;
41
+ }
42
+ function indexName(tablePrefix, suffix) {
43
+ const prefix = tablePrefix ?? 'history';
44
+ return `"${prefix}_${suffix}"`;
45
+ }
46
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/history/postgres/schema.ts"],"names":[],"mappings":";;AAqBA,sFA8BC;AAnDD,+BAEe;AAOf;;;;;;;;;;;GAWG;AACH,SAAgB,qCAAqC,CACjD,UAA+C,EAAE;IAEjD,MAAM,MAAM,GAAG,IAAA,sCAAgC,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,UAAU,CAAC,IAAI,CAAC;6BACS,MAAM,CAAC,QAAQ;;;GAGzC,CAAC,IAAI,EAAE,CAAC,CAAC;IAER,UAAU,CAAC,IAAI,CAAC;6BACS,MAAM,CAAC,QAAQ;0CACF,MAAM,CAAC,QAAQ;;;;;;;GAOtD,CAAC,IAAI,EAAE,CAAC,CAAC;IAER,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAChC,sDAAsD;QACtD,gCAAgC;QAChC,UAAU,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,gCAAgC,CAAC,OAAO,MAAM,CAAC,QAAQ,6BAA6B,CAAC,CAAC;IACvK,CAAC;IAED,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,WAA+B,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAG,WAAW,IAAI,SAAS,CAAC;IAExC,OAAO,IAAI,MAAM,IAAI,MAAM,GAAG,CAAC;AACnC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Message } from '../../messages';
2
+ import type { PostgresHistoryTableNames } from './types';
3
+ export declare function resolvePostgresHistoryTableNames(tablePrefix?: string): PostgresHistoryTableNames;
4
+ export declare function quoteIdentifier(identifier: string): string;
5
+ export declare function createJson(value: unknown): string;
6
+ /**
7
+ * content 列直接存 Message.toJSON() 的 content 字段(jsonb):
8
+ * 字符串内容是 jsonb 字符串标量,block 数组是 jsonb 数组。
9
+ * 读取时驱动可能返回已解析的值(node-pg 对 jsonb 的默认行为),也可能返回
10
+ * JSON 文本(text 模式执行器),这里统一还原:
11
+ * - 非字符串(数组等)→ 已解析,原样返回;
12
+ * - 字符串 → 先尝试按 JSON 文本解析,仅当结果是字符串或合法 block 数组时
13
+ * 采用,否则视为已解析的纯文本内容本身。
14
+ */
15
+ export declare function readMessageContentColumn(value: unknown): unknown;
16
+ export declare function readJsonObjectColumn(value: unknown): Record<string, unknown>;
17
+ export declare function readTimestampColumn(value: unknown): string;
18
+ /**
19
+ * sessions.version 是 bigint,node-pg 默认以字符串返回,统一转成 number。
20
+ * 行缺失(会话不存在)视为版本 0。
21
+ */
22
+ export declare function readVersionColumn(value: unknown): number;
23
+ /**
24
+ * 从 SELECT 行复原 Message。
25
+ * reviveMessage 负责校验 role/content/timestamp:坏行会以
26
+ * invalid_message_json 报错,而不是悄悄产出畸形消息。
27
+ */
28
+ export declare function rowToMessage(row: Record<string, unknown>): Message;
29
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../src/history/postgres/sql.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAKzD,wBAAgB,gCAAgC,CAC5C,WAAW,SAAuB,GACnC,yBAAyB,CAO3B;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmBhE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOlE"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvePostgresHistoryTableNames = resolvePostgresHistoryTableNames;
4
+ exports.quoteIdentifier = quoteIdentifier;
5
+ exports.createJson = createJson;
6
+ exports.readMessageContentColumn = readMessageContentColumn;
7
+ exports.readJsonObjectColumn = readJsonObjectColumn;
8
+ exports.readTimestampColumn = readTimestampColumn;
9
+ exports.readVersionColumn = readVersionColumn;
10
+ exports.rowToMessage = rowToMessage;
11
+ const messages_1 = require("../../messages");
12
+ const DEFAULT_TABLE_PREFIX = 'history';
13
+ const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
14
+ function resolvePostgresHistoryTableNames(tablePrefix = DEFAULT_TABLE_PREFIX) {
15
+ assertSafeIdentifier(tablePrefix, 'tablePrefix');
16
+ return {
17
+ sessions: quoteIdentifier(`${tablePrefix}_sessions`),
18
+ messages: quoteIdentifier(`${tablePrefix}_messages`),
19
+ };
20
+ }
21
+ function quoteIdentifier(identifier) {
22
+ assertSafeIdentifier(identifier, 'identifier');
23
+ return `"${identifier}"`;
24
+ }
25
+ function createJson(value) {
26
+ return JSON.stringify(value ?? null);
27
+ }
28
+ /**
29
+ * content 列直接存 Message.toJSON() 的 content 字段(jsonb):
30
+ * 字符串内容是 jsonb 字符串标量,block 数组是 jsonb 数组。
31
+ * 读取时驱动可能返回已解析的值(node-pg 对 jsonb 的默认行为),也可能返回
32
+ * JSON 文本(text 模式执行器),这里统一还原:
33
+ * - 非字符串(数组等)→ 已解析,原样返回;
34
+ * - 字符串 → 先尝试按 JSON 文本解析,仅当结果是字符串或合法 block 数组时
35
+ * 采用,否则视为已解析的纯文本内容本身。
36
+ */
37
+ function readMessageContentColumn(value) {
38
+ if (typeof value !== 'string') {
39
+ return value;
40
+ }
41
+ try {
42
+ const parsed = JSON.parse(value);
43
+ if (typeof parsed === 'string') {
44
+ return parsed;
45
+ }
46
+ if (Array.isArray(parsed) && parsed.every(messages_1.isContentBlock)) {
47
+ return parsed;
48
+ }
49
+ }
50
+ catch {
51
+ // 不是 JSON 文本:驱动已把 jsonb 字符串标量解析为纯文本。
52
+ }
53
+ return value;
54
+ }
55
+ function readJsonObjectColumn(value) {
56
+ const parsed = typeof value === 'string' ? parseJsonSafely(value) : value;
57
+ return isRecord(parsed) ? parsed : {};
58
+ }
59
+ function readTimestampColumn(value) {
60
+ if (value instanceof Date) {
61
+ return value.toISOString();
62
+ }
63
+ return String(value);
64
+ }
65
+ /**
66
+ * sessions.version 是 bigint,node-pg 默认以字符串返回,统一转成 number。
67
+ * 行缺失(会话不存在)视为版本 0。
68
+ */
69
+ function readVersionColumn(value) {
70
+ const version = typeof value === 'number' ? value : Number(value);
71
+ return Number.isFinite(version) ? version : 0;
72
+ }
73
+ /**
74
+ * 从 SELECT 行复原 Message。
75
+ * reviveMessage 负责校验 role/content/timestamp:坏行会以
76
+ * invalid_message_json 报错,而不是悄悄产出畸形消息。
77
+ */
78
+ function rowToMessage(row) {
79
+ return (0, messages_1.reviveMessage)({
80
+ role: row.role,
81
+ content: readMessageContentColumn(row.content),
82
+ timestamp: readTimestampColumn(row.timestamp),
83
+ metadata: readJsonObjectColumn(row.metadata),
84
+ });
85
+ }
86
+ function parseJsonSafely(value) {
87
+ try {
88
+ return JSON.parse(value);
89
+ }
90
+ catch {
91
+ return undefined;
92
+ }
93
+ }
94
+ function isRecord(value) {
95
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
96
+ }
97
+ function assertSafeIdentifier(value, label) {
98
+ if (!IDENTIFIER_PATTERN.test(value)) {
99
+ throw new Error(`Invalid PostgreSQL ${label}: ${value}`);
100
+ }
101
+ }
102
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/history/postgres/sql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { PostgresQueryExecutor } from '../../rag/stores/postgres/types';
2
+ /**
3
+ * 复用 RAG Postgres 存储的查询执行器类型(仅类型层依赖,不引入 pg 包):
4
+ * 同一个 pg.Pool / pg.Client 对象可以同时注入 RAG 存储与消息历史存储。
5
+ * 用 re-export 而不是重新声明,避免根 barrel 里出现两个同名类型。
6
+ */
7
+ export type { PostgresQueryExecutor, PostgresQueryResult, } from '../../rag/stores/postgres/types';
8
+ export interface PostgresMessageHistoryStoreOptions {
9
+ /**
10
+ * 注入的查询客户端:任何提供 query(sql, params) 的对象(例如 pg.Pool)。
11
+ * 实现不依赖客户端事务 API,所有原子写路径都压缩为单条 SQL 语句。
12
+ */
13
+ db: PostgresQueryExecutor;
14
+ tablePrefix?: string;
15
+ }
16
+ export interface PostgresHistoryTableNames {
17
+ sessions: string;
18
+ messages: string;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/history/postgres/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;;;GAIG;AACH,YAAY,EACR,qBAAqB,EACrB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,kCAAkC;IAC/C;;;OAGG;IACH,EAAE,EAAE,qBAAqB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/history/postgres/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { Message } from '../messages';
2
+ /**
3
+ * 修复消息序列开头被截断产生的孤儿 tool 上下文:
4
+ * - 序列不能以 tool 消息开头;
5
+ * - 带 toolCalls 的 assistant 消息若缺少对应的 tool 响应,则连同其后的
6
+ * tool 消息一起移除。
7
+ * 否则把这段历史发给 OpenAI-compatible 端点会直接 400。
8
+ */
9
+ export declare function repairLeadingToolContext(messages: Message[]): void;
10
+ export declare function withRepairedLeadingToolContext(messages: readonly Message[]): Message[];
11
+ //# sourceMappingURL=tool-pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pairing.d.ts","sourceRoot":"","sources":["../../src/history/tool-pairing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CA+BlE;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAItF"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.repairLeadingToolContext = repairLeadingToolContext;
4
+ exports.withRepairedLeadingToolContext = withRepairedLeadingToolContext;
5
+ /**
6
+ * 修复消息序列开头被截断产生的孤儿 tool 上下文:
7
+ * - 序列不能以 tool 消息开头;
8
+ * - 带 toolCalls 的 assistant 消息若缺少对应的 tool 响应,则连同其后的
9
+ * tool 消息一起移除。
10
+ * 否则把这段历史发给 OpenAI-compatible 端点会直接 400。
11
+ */
12
+ function repairLeadingToolContext(messages) {
13
+ while (messages.length > 0) {
14
+ const firstMessage = messages[0];
15
+ if (firstMessage?.role === 'tool') {
16
+ messages.shift();
17
+ continue;
18
+ }
19
+ if (firstMessage === undefined || !hasToolCalls(firstMessage)) {
20
+ return;
21
+ }
22
+ const toolCalls = firstMessage.metadata.toolCalls ?? [];
23
+ const toolResponseEnd = findFollowingToolResponseEnd(messages);
24
+ const toolResponseIds = new Set(messages
25
+ .slice(1, toolResponseEnd)
26
+ .map((message) => message.metadata.toolCallId)
27
+ .filter((toolCallId) => toolCallId !== undefined));
28
+ const hasAllToolResponses = toolCalls.every((toolCall) => (toolResponseIds.has(toolCall.id)));
29
+ if (hasAllToolResponses) {
30
+ return;
31
+ }
32
+ messages.splice(0, toolResponseEnd);
33
+ }
34
+ }
35
+ function withRepairedLeadingToolContext(messages) {
36
+ const result = [...messages];
37
+ repairLeadingToolContext(result);
38
+ return result;
39
+ }
40
+ function hasToolCalls(message) {
41
+ return message.role === 'assistant'
42
+ && message.metadata.toolCalls !== undefined
43
+ && message.metadata.toolCalls.length > 0;
44
+ }
45
+ function findFollowingToolResponseEnd(messages) {
46
+ let index = 1;
47
+ while (messages[index]?.role === 'tool') {
48
+ index += 1;
49
+ }
50
+ return index;
51
+ }
52
+ //# sourceMappingURL=tool-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pairing.js","sourceRoot":"","sources":["../../src/history/tool-pairing.ts"],"names":[],"mappings":";;AASA,4DA+BC;AAED,wEAIC;AA5CD;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,QAAmB;IACxD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,YAAY,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,SAAS;QACb,CAAC;QAED,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,CAC3B,QAAQ;aACH,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;aACzB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;aAC7C,MAAM,CAAC,CAAC,UAAU,EAAwB,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAC9E,CAAC;QACF,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CACnC,CAAC,CAAC;QAEH,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAED,SAAgB,8BAA8B,CAAC,QAA4B;IACvE,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IAClC,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW;WAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS;WACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAmB;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  export * from './agent';
2
2
  export * from './config';
3
+ export * from './errors';
3
4
  export * from './executors';
4
5
  export * from './history';
5
6
  export * from './llm';
6
7
  export * from './messages';
7
8
  export * from './observability';
8
9
  export * from './rag';
10
+ export * from './testing';
9
11
  export * from './tools';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -16,11 +16,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./agent"), exports);
18
18
  __exportStar(require("./config"), exports);
19
+ __exportStar(require("./errors"), exports);
19
20
  __exportStar(require("./executors"), exports);
20
21
  __exportStar(require("./history"), exports);
21
22
  __exportStar(require("./llm"), exports);
22
23
  __exportStar(require("./messages"), exports);
23
24
  __exportStar(require("./observability"), exports);
24
25
  __exportStar(require("./rag"), exports);
26
+ __exportStar(require("./testing"), exports);
25
27
  __exportStar(require("./tools"), exports);
26
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,wCAAsB;AACtB,6CAA2B;AAC3B,kDAAgC;AAChC,wCAAsB;AACtB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,wCAAsB;AACtB,6CAA2B;AAC3B,kDAAgC;AAChC,wCAAsB;AACtB,4CAA0B;AAC1B,0CAAwB"}
package/dist/llm/LLM.d.ts CHANGED
@@ -18,6 +18,7 @@ export declare class LLM<TClient = unknown> implements ChatModel<TClient> {
18
18
  private runSingleAttempt;
19
19
  private observeStream;
20
20
  private runStreamWithRetries;
21
+ private emitRetryEvent;
21
22
  private runStreamSingleAttempt;
22
23
  }
23
24
  //# sourceMappingURL=LLM.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LLM.d.ts","sourceRoot":"","sources":["../../src/llm/LLM.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EAET,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAejB,qBAAa,GAAG,CAAC,OAAO,GAAG,OAAO,CAAE,YAAW,SAAS,CAAC,OAAO,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE/C,MAAM,GAAE,SAAc;IAsBlC,IAAI,IAAI,IAAI,iBAAiB,CAE5B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,OAAO,GAAG,SAAS,CAEhC;IAED,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAI/C;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAuDjD,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAmClG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC;YAU9C,cAAc;YA0Bd,gBAAgB;YAoCf,aAAa;YAwDb,oBAAoB;YA+BpB,sBAAsB;CAsDxC"}
1
+ {"version":3,"file":"LLM.d.ts","sourceRoot":"","sources":["../../src/llm/LLM.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EAET,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAejB,qBAAa,GAAG,CAAC,OAAO,GAAG,OAAO,CAAE,YAAW,SAAS,CAAC,OAAO,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAE/C,MAAM,GAAE,SAAc;IA0BlC,IAAI,IAAI,IAAI,iBAAiB,CAE5B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,OAAO,GAAG,SAAS,CAEhC;IAED,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAI/C;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAgEjD,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAmClG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC;YAU9C,cAAc;YA2Bd,gBAAgB;YAoCf,aAAa;YAgEb,oBAAoB;YAgCrB,cAAc;YAoBb,sBAAsB;CA0DxC"}