@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.
- package/CHANGELOG.md +169 -0
- package/README.md +824 -198
- package/dist/agent/Agent.d.ts +16 -5
- package/dist/agent/Agent.d.ts.map +1 -1
- package/dist/agent/Agent.js +283 -2
- package/dist/agent/Agent.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/types.d.ts +27 -3
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/config/config.d.ts +22 -3
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +194 -47
- package/dist/config/config.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/errors.d.ts +74 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +186 -0
- package/dist/errors.js.map +1 -0
- package/dist/executors/base-executor.d.ts +14 -0
- package/dist/executors/base-executor.d.ts.map +1 -0
- package/dist/executors/base-executor.js +31 -0
- package/dist/executors/base-executor.js.map +1 -0
- package/dist/executors/base.d.ts +36 -5
- package/dist/executors/base.d.ts.map +1 -1
- package/dist/executors/chat-request-builder.d.ts +10 -0
- package/dist/executors/chat-request-builder.d.ts.map +1 -0
- package/dist/executors/chat-request-builder.js +96 -0
- package/dist/executors/chat-request-builder.js.map +1 -0
- package/dist/executors/index.d.ts +4 -1
- package/dist/executors/index.d.ts.map +1 -1
- package/dist/executors/index.js +6 -1
- package/dist/executors/index.js.map +1 -1
- package/dist/executors/rag-executor.js +1 -1
- package/dist/executors/rag-executor.js.map +1 -1
- package/dist/executors/simple-chat-executor.d.ts +4 -2
- package/dist/executors/simple-chat-executor.d.ts.map +1 -1
- package/dist/executors/simple-chat-executor.js +59 -57
- package/dist/executors/simple-chat-executor.js.map +1 -1
- package/dist/executors/tool-calling-executor.d.ts +20 -2
- package/dist/executors/tool-calling-executor.d.ts.map +1 -1
- package/dist/executors/tool-calling-executor.js +189 -91
- package/dist/executors/tool-calling-executor.js.map +1 -1
- package/dist/history/base.d.ts +55 -2
- package/dist/history/base.d.ts.map +1 -1
- package/dist/history/base.js +49 -0
- package/dist/history/base.js.map +1 -1
- package/dist/history/compression.d.ts +49 -0
- package/dist/history/compression.d.ts.map +1 -0
- package/dist/history/compression.js +53 -0
- package/dist/history/compression.js.map +1 -0
- package/dist/history/context-window.d.ts +33 -0
- package/dist/history/context-window.d.ts.map +1 -0
- package/dist/history/context-window.js +68 -0
- package/dist/history/context-window.js.map +1 -0
- package/dist/history/in-memory.d.ts +6 -4
- package/dist/history/in-memory.d.ts.map +1 -1
- package/dist/history/in-memory.js +25 -39
- package/dist/history/in-memory.js.map +1 -1
- package/dist/history/index.d.ts +9 -2
- package/dist/history/index.d.ts.map +1 -1
- package/dist/history/index.js +18 -1
- package/dist/history/index.js.map +1 -1
- package/dist/history/postgres/index.d.ts +4 -0
- package/dist/history/postgres/index.d.ts.map +1 -0
- package/dist/history/postgres/index.js +20 -0
- package/dist/history/postgres/index.js.map +1 -0
- package/dist/history/postgres/postgres-message-history-store.d.ts +35 -0
- package/dist/history/postgres/postgres-message-history-store.d.ts.map +1 -0
- package/dist/history/postgres/postgres-message-history-store.js +195 -0
- package/dist/history/postgres/postgres-message-history-store.js.map +1 -0
- package/dist/history/postgres/schema.d.ts +18 -0
- package/dist/history/postgres/schema.d.ts.map +1 -0
- package/dist/history/postgres/schema.js +46 -0
- package/dist/history/postgres/schema.js.map +1 -0
- package/dist/history/postgres/sql.d.ts +29 -0
- package/dist/history/postgres/sql.d.ts.map +1 -0
- package/dist/history/postgres/sql.js +102 -0
- package/dist/history/postgres/sql.js.map +1 -0
- package/dist/history/postgres/types.d.ts +20 -0
- package/dist/history/postgres/types.d.ts.map +1 -0
- package/dist/history/postgres/types.js +3 -0
- package/dist/history/postgres/types.js.map +1 -0
- package/dist/history/tool-pairing.d.ts +11 -0
- package/dist/history/tool-pairing.d.ts.map +1 -0
- package/dist/history/tool-pairing.js +52 -0
- package/dist/history/tool-pairing.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/LLM.d.ts +1 -0
- package/dist/llm/LLM.d.ts.map +1 -1
- package/dist/llm/LLM.js +136 -26
- package/dist/llm/LLM.js.map +1 -1
- package/dist/llm/errors.d.ts +11 -1
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +50 -1
- package/dist/llm/errors.js.map +1 -1
- package/dist/llm/factory.d.ts +14 -2
- package/dist/llm/factory.d.ts.map +1 -1
- package/dist/llm/factory.js +48 -9
- package/dist/llm/factory.js.map +1 -1
- package/dist/llm/index.d.ts +8 -3
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +10 -1
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/providers/anthropic.d.ts +14 -0
- package/dist/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/llm/providers/anthropic.js +336 -0
- package/dist/llm/providers/anthropic.js.map +1 -0
- package/dist/llm/providers/openai-compatible.d.ts +7 -0
- package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
- package/dist/llm/providers/openai-compatible.js +151 -47
- package/dist/llm/providers/openai-compatible.js.map +1 -1
- package/dist/llm/stream-accumulator.d.ts +17 -0
- package/dist/llm/stream-accumulator.d.ts.map +1 -0
- package/dist/llm/stream-accumulator.js +83 -0
- package/dist/llm/stream-accumulator.js.map +1 -0
- package/dist/llm/tool-arguments.d.ts +6 -0
- package/dist/llm/tool-arguments.d.ts.map +1 -0
- package/dist/llm/tool-arguments.js +20 -0
- package/dist/llm/tool-arguments.js.map +1 -0
- package/dist/llm/types.d.ts +76 -4
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/messages/content.d.ts +36 -0
- package/dist/messages/content.d.ts.map +1 -0
- package/dist/messages/content.js +70 -0
- package/dist/messages/content.js.map +1 -0
- package/dist/messages/index.d.ts +4 -2
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js +10 -1
- package/dist/messages/index.js.map +1 -1
- package/dist/messages/message.d.ts +11 -9
- package/dist/messages/message.d.ts.map +1 -1
- package/dist/messages/message.js +69 -4
- package/dist/messages/message.js.map +1 -1
- package/dist/messages/types.d.ts +12 -0
- package/dist/messages/types.d.ts.map +1 -1
- package/dist/observability/collecting-observer.d.ts +8 -0
- package/dist/observability/collecting-observer.d.ts.map +1 -0
- package/dist/observability/collecting-observer.js +15 -0
- package/dist/observability/collecting-observer.js.map +1 -0
- package/dist/observability/index.d.ts +1 -0
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +3 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/observer.d.ts.map +1 -1
- package/dist/observability/observer.js +14 -1
- package/dist/observability/observer.js.map +1 -1
- package/dist/observability/types.d.ts +16 -1
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/rag/chunking/auto-chunker.d.ts +7 -0
- package/dist/rag/chunking/auto-chunker.d.ts.map +1 -1
- package/dist/rag/chunking/auto-chunker.js +13 -0
- package/dist/rag/chunking/auto-chunker.js.map +1 -1
- package/dist/rag/chunking/chunker.d.ts.map +1 -1
- package/dist/rag/chunking/chunker.js +29 -5
- package/dist/rag/chunking/chunker.js.map +1 -1
- package/dist/rag/chunking/index.d.ts +2 -0
- package/dist/rag/chunking/index.d.ts.map +1 -1
- package/dist/rag/chunking/index.js +2 -0
- package/dist/rag/chunking/index.js.map +1 -1
- package/dist/rag/chunking/markdown-chunker.d.ts.map +1 -1
- package/dist/rag/chunking/markdown-chunker.js.map +1 -1
- package/dist/rag/chunking/qa-pair-chunker.d.ts +23 -0
- package/dist/rag/chunking/qa-pair-chunker.d.ts.map +1 -0
- package/dist/rag/chunking/qa-pair-chunker.js +162 -0
- package/dist/rag/chunking/qa-pair-chunker.js.map +1 -0
- package/dist/rag/chunking/semantic-chunker.d.ts +19 -0
- package/dist/rag/chunking/semantic-chunker.d.ts.map +1 -0
- package/dist/rag/chunking/semantic-chunker.js +291 -0
- package/dist/rag/chunking/semantic-chunker.js.map +1 -0
- package/dist/rag/embeddings/embedder.d.ts.map +1 -1
- package/dist/rag/embeddings/embedder.js +6 -0
- package/dist/rag/embeddings/embedder.js.map +1 -1
- package/dist/rag/generation/context-builder.d.ts +7 -0
- package/dist/rag/generation/context-builder.d.ts.map +1 -1
- package/dist/rag/generation/context-builder.js +4 -1
- package/dist/rag/generation/context-builder.js.map +1 -1
- package/dist/rag/ingestion/metadata.d.ts +6 -1
- package/dist/rag/ingestion/metadata.d.ts.map +1 -1
- package/dist/rag/ingestion/metadata.js +6 -2
- package/dist/rag/ingestion/metadata.js.map +1 -1
- package/dist/rag/pipeline.d.ts.map +1 -1
- package/dist/rag/pipeline.js +34 -11
- package/dist/rag/pipeline.js.map +1 -1
- package/dist/rag/retrieval/index.d.ts +1 -0
- package/dist/rag/retrieval/index.d.ts.map +1 -1
- package/dist/rag/retrieval/index.js +1 -0
- package/dist/rag/retrieval/index.js.map +1 -1
- package/dist/rag/retrieval/parent-child-expanding-retriever.d.ts +31 -0
- package/dist/rag/retrieval/parent-child-expanding-retriever.d.ts.map +1 -0
- package/dist/rag/retrieval/parent-child-expanding-retriever.js +194 -0
- package/dist/rag/retrieval/parent-child-expanding-retriever.js.map +1 -0
- package/dist/rag/stores/in-memory-keyword-store.d.ts.map +1 -1
- package/dist/rag/stores/in-memory-keyword-store.js +3 -8
- package/dist/rag/stores/in-memory-keyword-store.js.map +1 -1
- package/dist/rag/stores/keyword-tokenizer.d.ts +4 -0
- package/dist/rag/stores/keyword-tokenizer.d.ts.map +1 -0
- package/dist/rag/stores/keyword-tokenizer.js +113 -0
- package/dist/rag/stores/keyword-tokenizer.js.map +1 -0
- package/dist/rag/stores/postgres/pg-vector-store.d.ts.map +1 -1
- package/dist/rag/stores/postgres/pg-vector-store.js +21 -8
- package/dist/rag/stores/postgres/pg-vector-store.js.map +1 -1
- package/dist/rag/stores/postgres/postgres-document-store.d.ts.map +1 -1
- package/dist/rag/stores/postgres/postgres-document-store.js +26 -13
- package/dist/rag/stores/postgres/postgres-document-store.js.map +1 -1
- package/dist/rag/stores/postgres/postgres-keyword-store.d.ts.map +1 -1
- package/dist/rag/stores/postgres/postgres-keyword-store.js +43 -43
- package/dist/rag/stores/postgres/postgres-keyword-store.js.map +1 -1
- package/dist/rag/stores/postgres/sql.d.ts +22 -0
- package/dist/rag/stores/postgres/sql.d.ts.map +1 -1
- package/dist/rag/stores/postgres/sql.js +42 -0
- package/dist/rag/stores/postgres/sql.js.map +1 -1
- package/dist/rag/stores/types.d.ts +5 -0
- package/dist/rag/stores/types.d.ts.map +1 -1
- package/dist/rag/types.d.ts +6 -0
- package/dist/rag/types.d.ts.map +1 -1
- package/dist/testing/agent.d.ts +11 -0
- package/dist/testing/agent.d.ts.map +1 -0
- package/dist/testing/agent.js +45 -0
- package/dist/testing/agent.js.map +1 -0
- package/dist/testing/history-contract.d.ts +12 -0
- package/dist/testing/history-contract.d.ts.map +1 -0
- package/dist/testing/history-contract.js +111 -0
- package/dist/testing/history-contract.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +16 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/models.d.ts +34 -0
- package/dist/testing/models.d.ts.map +1 -0
- package/dist/testing/models.js +74 -0
- package/dist/testing/models.js.map +1 -0
- package/dist/testing/tool-schema.d.ts +6 -0
- package/dist/testing/tool-schema.d.ts.map +1 -0
- package/dist/testing/tool-schema.js +29 -0
- package/dist/testing/tool-schema.js.map +1 -0
- package/dist/testing/tools.d.ts +21 -0
- package/dist/testing/tools.d.ts.map +1 -0
- package/dist/testing/tools.js +43 -0
- package/dist/testing/tools.js.map +1 -0
- package/dist/tools/base.d.ts +38 -7
- package/dist/tools/base.d.ts.map +1 -1
- package/dist/tools/base.js +238 -11
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/builtin/advancedSearchTool.d.ts.map +1 -1
- package/dist/tools/builtin/advancedSearchTool.js +30 -4
- package/dist/tools/builtin/advancedSearchTool.js.map +1 -1
- package/dist/tools/builtin/ragSearchTool.d.ts +6 -3
- package/dist/tools/builtin/ragSearchTool.d.ts.map +1 -1
- package/dist/tools/builtin/ragSearchTool.js +8 -6
- package/dist/tools/builtin/ragSearchTool.js.map +1 -1
- package/dist/tools/executor.d.ts +30 -2
- package/dist/tools/executor.d.ts.map +1 -1
- package/dist/tools/executor.js +83 -15
- package/dist/tools/executor.js.map +1 -1
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/registry.d.ts +15 -3
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +21 -2
- package/dist/tools/registry.js.map +1 -1
- package/package.json +58 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/messages/content.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,YAAY,EAAE,CAAC;AAErD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAErD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAQ7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAyBpE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAMxE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAWnE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.textBlock = textBlock;
|
|
4
|
+
exports.imageUrlBlock = imageUrlBlock;
|
|
5
|
+
exports.imageBase64Block = imageBase64Block;
|
|
6
|
+
exports.contentToText = contentToText;
|
|
7
|
+
exports.isContentBlock = isContentBlock;
|
|
8
|
+
exports.isMessageContent = isMessageContent;
|
|
9
|
+
exports.assertMessageContent = assertMessageContent;
|
|
10
|
+
const errors_1 = require("../errors");
|
|
11
|
+
function textBlock(text) {
|
|
12
|
+
return { type: 'text', text };
|
|
13
|
+
}
|
|
14
|
+
function imageUrlBlock(url) {
|
|
15
|
+
return { type: 'image', source: { kind: 'url', url } };
|
|
16
|
+
}
|
|
17
|
+
function imageBase64Block(mediaType, data) {
|
|
18
|
+
return { type: 'image', source: { kind: 'base64', mediaType, data } };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 把内容降级为纯文本。
|
|
22
|
+
* 用于 toString、输出长度统计,以及不支持多模态的下游(例如 OpenAI 的
|
|
23
|
+
* assistant/tool 消息只接受字符串 content)。
|
|
24
|
+
*/
|
|
25
|
+
function contentToText(content) {
|
|
26
|
+
if (typeof content === 'string') {
|
|
27
|
+
return content;
|
|
28
|
+
}
|
|
29
|
+
return content
|
|
30
|
+
.map((block) => (block.type === 'text' ? block.text : '[image]'))
|
|
31
|
+
.join('\n');
|
|
32
|
+
}
|
|
33
|
+
function isContentBlock(value) {
|
|
34
|
+
if (typeof value !== 'object' || value === null) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const block = value;
|
|
38
|
+
if (block.type === 'text') {
|
|
39
|
+
return typeof block.text === 'string';
|
|
40
|
+
}
|
|
41
|
+
if (block.type === 'image') {
|
|
42
|
+
const source = block.source;
|
|
43
|
+
if (typeof source !== 'object' || source === null) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (source.kind === 'url') {
|
|
47
|
+
return typeof source.url === 'string' && source.url.length > 0;
|
|
48
|
+
}
|
|
49
|
+
if (source.kind === 'base64') {
|
|
50
|
+
return typeof source.mediaType === 'string' && typeof source.data === 'string';
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
function isMessageContent(value) {
|
|
57
|
+
if (typeof value === 'string') {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
return Array.isArray(value) && value.every(isContentBlock);
|
|
61
|
+
}
|
|
62
|
+
function assertMessageContent(value) {
|
|
63
|
+
if (!isMessageContent(value)) {
|
|
64
|
+
throw new errors_1.HistoryError('Message content must be a string or an array of content blocks.', {
|
|
65
|
+
code: 'invalid_message_content',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/messages/content.ts"],"names":[],"mappings":";;AAyBA,8BAEC;AAED,sCAEC;AAED,4CAEC;AAOD,sCAQC;AAED,wCAyBC;AAED,4CAMC;AAED,oDAWC;AAlGD,sCAAyC;AAyBzC,SAAgB,SAAS,CAAC,IAAY;IAClC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,IAAY;IAC5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAuB;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO,OAAO;SACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAChE,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6C,CAAC;QACnE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAc;IAC/C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,qBAAY,CAClB,iEAAiE,EACjE;YACI,IAAI,EAAE,yBAAyB;SAClC,CACJ,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/dist/messages/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
1
|
+
export { assertMessageContent, contentToText, imageBase64Block, imageUrlBlock, isContentBlock, isMessageContent, textBlock, } from './content';
|
|
2
|
+
export type { ContentBlock, ImageBlock, ImageBlockSource, MessageContent, TextBlock, } from './content';
|
|
3
|
+
export { Message, reviveMessage } from './message';
|
|
4
|
+
export type { MessageJSON, MessageMetadata, MessageOptions, MessageRole, } from './types';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,SAAS,GACZ,MAAM,WAAW,CAAC;AACnB,YAAY,EACR,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,SAAS,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnD,YAAY,EACR,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,GACd,MAAM,SAAS,CAAC"}
|
package/dist/messages/index.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Message = void 0;
|
|
3
|
+
exports.reviveMessage = exports.Message = exports.textBlock = exports.isMessageContent = exports.isContentBlock = exports.imageUrlBlock = exports.imageBase64Block = exports.contentToText = exports.assertMessageContent = void 0;
|
|
4
|
+
var content_1 = require("./content");
|
|
5
|
+
Object.defineProperty(exports, "assertMessageContent", { enumerable: true, get: function () { return content_1.assertMessageContent; } });
|
|
6
|
+
Object.defineProperty(exports, "contentToText", { enumerable: true, get: function () { return content_1.contentToText; } });
|
|
7
|
+
Object.defineProperty(exports, "imageBase64Block", { enumerable: true, get: function () { return content_1.imageBase64Block; } });
|
|
8
|
+
Object.defineProperty(exports, "imageUrlBlock", { enumerable: true, get: function () { return content_1.imageUrlBlock; } });
|
|
9
|
+
Object.defineProperty(exports, "isContentBlock", { enumerable: true, get: function () { return content_1.isContentBlock; } });
|
|
10
|
+
Object.defineProperty(exports, "isMessageContent", { enumerable: true, get: function () { return content_1.isMessageContent; } });
|
|
11
|
+
Object.defineProperty(exports, "textBlock", { enumerable: true, get: function () { return content_1.textBlock; } });
|
|
4
12
|
var message_1 = require("./message");
|
|
5
13
|
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return message_1.Message; } });
|
|
14
|
+
Object.defineProperty(exports, "reviveMessage", { enumerable: true, get: function () { return message_1.reviveMessage; } });
|
|
6
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";;;AAAA,qCAQmB;AAPf,+GAAA,oBAAoB,OAAA;AACpB,wGAAA,aAAa,OAAA;AACb,2GAAA,gBAAgB,OAAA;AAChB,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,2GAAA,gBAAgB,OAAA;AAChB,oGAAA,SAAS,OAAA;AASb,qCAAmD;AAA1C,kGAAA,OAAO,OAAA;AAAE,wGAAA,aAAa,OAAA"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import type { ChatMessage } from '../llm/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MessageContent } from './content';
|
|
3
|
+
import type { MessageJSON, MessageMetadata, MessageOptions, MessageRole } from './types';
|
|
3
4
|
export declare class Message {
|
|
4
|
-
readonly content:
|
|
5
|
+
readonly content: MessageContent;
|
|
5
6
|
readonly role: MessageRole;
|
|
6
7
|
readonly timestamp: Date;
|
|
7
8
|
readonly metadata: Readonly<MessageMetadata>;
|
|
8
|
-
constructor(content:
|
|
9
|
+
constructor(content: MessageContent, role: MessageRole, options?: MessageOptions);
|
|
10
|
+
/**
|
|
11
|
+
* 内容的纯文本视图。非文本 block 以占位符表示。
|
|
12
|
+
*/
|
|
13
|
+
get text(): string;
|
|
9
14
|
/**
|
|
10
15
|
* ChatModel 只需要稳定的消息结构,不需要关心 Message 类的时间戳等运行时信息。
|
|
11
16
|
* 因此这里把领域对象转换为 LLM 层的纯数据对象。
|
|
@@ -14,12 +19,9 @@ export declare class Message {
|
|
|
14
19
|
/**
|
|
15
20
|
* 保留一个简单对象格式,方便调试、测试和序列化。
|
|
16
21
|
*/
|
|
17
|
-
toJSON():
|
|
18
|
-
|
|
19
|
-
content: string;
|
|
20
|
-
timestamp: string;
|
|
21
|
-
metadata: MessageMetadata;
|
|
22
|
-
};
|
|
22
|
+
toJSON(): MessageJSON;
|
|
23
|
+
static fromJSON(value: MessageJSON): Message;
|
|
23
24
|
toString(): string;
|
|
24
25
|
}
|
|
26
|
+
export declare function reviveMessage(value: unknown): Message;
|
|
25
27
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/messages/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/messages/message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EACR,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACd,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAO;IAChB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAEjC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,cAAmB;IAOpF;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,aAAa,IAAI,WAAW;IAmB5B;;OAEG;IACH,MAAM,IAAI,WAAW;IASrB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAI5C,QAAQ,IAAI,MAAM;CAGrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA0CrD"}
|
package/dist/messages/message.js
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Message = void 0;
|
|
4
|
+
exports.reviveMessage = reviveMessage;
|
|
5
|
+
const errors_1 = require("../errors");
|
|
6
|
+
const content_1 = require("./content");
|
|
4
7
|
class Message {
|
|
5
8
|
content;
|
|
6
9
|
role;
|
|
7
10
|
timestamp;
|
|
8
11
|
metadata;
|
|
9
12
|
constructor(content, role, options = {}) {
|
|
10
|
-
this.content = content;
|
|
13
|
+
this.content = freezeValue(cloneValue(content));
|
|
11
14
|
this.role = role;
|
|
12
15
|
this.timestamp = options.timestamp ?? new Date();
|
|
13
16
|
this.metadata = freezeMetadata(cloneMetadata(options.metadata));
|
|
14
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* 内容的纯文本视图。非文本 block 以占位符表示。
|
|
20
|
+
*/
|
|
21
|
+
get text() {
|
|
22
|
+
return (0, content_1.contentToText)(this.content);
|
|
23
|
+
}
|
|
15
24
|
/**
|
|
16
25
|
* ChatModel 只需要稳定的消息结构,不需要关心 Message 类的时间戳等运行时信息。
|
|
17
26
|
* 因此这里把领域对象转换为 LLM 层的纯数据对象。
|
|
@@ -20,7 +29,7 @@ class Message {
|
|
|
20
29
|
const metadata = cloneMetadata(this.metadata);
|
|
21
30
|
const message = {
|
|
22
31
|
role: this.role,
|
|
23
|
-
content: this.content,
|
|
32
|
+
content: cloneValue(this.content),
|
|
24
33
|
metadata,
|
|
25
34
|
};
|
|
26
35
|
if (metadata.toolCallId !== undefined) {
|
|
@@ -37,16 +46,53 @@ class Message {
|
|
|
37
46
|
toJSON() {
|
|
38
47
|
return {
|
|
39
48
|
role: this.role,
|
|
40
|
-
content: this.content,
|
|
49
|
+
content: cloneValue(this.content),
|
|
41
50
|
timestamp: this.timestamp.toISOString(),
|
|
42
51
|
metadata: cloneMetadata(this.metadata),
|
|
43
52
|
};
|
|
44
53
|
}
|
|
54
|
+
static fromJSON(value) {
|
|
55
|
+
return reviveMessage(value);
|
|
56
|
+
}
|
|
45
57
|
toString() {
|
|
46
|
-
return `[${this.role}] ${this.
|
|
58
|
+
return `[${this.role}] ${this.text}`;
|
|
47
59
|
}
|
|
48
60
|
}
|
|
49
61
|
exports.Message = Message;
|
|
62
|
+
function reviveMessage(value) {
|
|
63
|
+
if (!isRecord(value)) {
|
|
64
|
+
throw invalidMessageJSON('Message JSON must be an object.');
|
|
65
|
+
}
|
|
66
|
+
const role = value.role;
|
|
67
|
+
if (!isMessageRole(role)) {
|
|
68
|
+
throw invalidMessageJSON('Message JSON has an invalid role.', 'role');
|
|
69
|
+
}
|
|
70
|
+
const content = value.content;
|
|
71
|
+
let validContent;
|
|
72
|
+
try {
|
|
73
|
+
validContent = (0, content_1.assertMessageContent)(content);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw invalidMessageJSON('Message JSON content must be a string or an array of content blocks.', 'content');
|
|
77
|
+
}
|
|
78
|
+
const timestampValue = value.timestamp;
|
|
79
|
+
if (typeof timestampValue !== 'string') {
|
|
80
|
+
throw invalidMessageJSON('Message JSON timestamp must be a string.', 'timestamp');
|
|
81
|
+
}
|
|
82
|
+
const timestamp = new Date(timestampValue);
|
|
83
|
+
if (Number.isNaN(timestamp.getTime())) {
|
|
84
|
+
throw invalidMessageJSON('Message JSON timestamp is invalid.', 'timestamp');
|
|
85
|
+
}
|
|
86
|
+
const options = { timestamp };
|
|
87
|
+
const metadataValue = value.metadata;
|
|
88
|
+
if (metadataValue !== undefined) {
|
|
89
|
+
if (!isRecord(metadataValue)) {
|
|
90
|
+
throw invalidMessageJSON('Message JSON metadata must be an object.', 'metadata');
|
|
91
|
+
}
|
|
92
|
+
options.metadata = metadataValue;
|
|
93
|
+
}
|
|
94
|
+
return new Message(validContent, role, options);
|
|
95
|
+
}
|
|
50
96
|
function cloneMetadata(metadata) {
|
|
51
97
|
return cloneValue(metadata ?? {});
|
|
52
98
|
}
|
|
@@ -107,4 +153,23 @@ function freezeValue(value, seen = new WeakSet()) {
|
|
|
107
153
|
}
|
|
108
154
|
return value;
|
|
109
155
|
}
|
|
156
|
+
function isRecord(value) {
|
|
157
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
158
|
+
}
|
|
159
|
+
function isMessageRole(value) {
|
|
160
|
+
return value === 'user'
|
|
161
|
+
|| value === 'assistant'
|
|
162
|
+
|| value === 'system'
|
|
163
|
+
|| value === 'tool';
|
|
164
|
+
}
|
|
165
|
+
function invalidMessageJSON(message, field) {
|
|
166
|
+
const metadata = {};
|
|
167
|
+
if (field !== undefined) {
|
|
168
|
+
metadata.field = field;
|
|
169
|
+
}
|
|
170
|
+
return new errors_1.HistoryError(message, {
|
|
171
|
+
code: 'invalid_message_json',
|
|
172
|
+
metadata,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
110
175
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/messages/message.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/messages/message.ts"],"names":[],"mappings":"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"}
|
package/dist/messages/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChatToolCall } from '../llm/types';
|
|
2
|
+
import type { MessageContent } from './content';
|
|
2
3
|
export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
3
4
|
export interface MessageMetadata {
|
|
4
5
|
/**
|
|
@@ -11,10 +12,21 @@ export interface MessageMetadata {
|
|
|
11
12
|
* 把它放进元数据里,可以让 MessageHistory 保存完整推理轨迹。
|
|
12
13
|
*/
|
|
13
14
|
toolCalls?: ChatToolCall[];
|
|
15
|
+
/**
|
|
16
|
+
* tool role 消息可以标记结果是否为执行错误,
|
|
17
|
+
* 供上层区分正常工具输出与错误反馈。
|
|
18
|
+
*/
|
|
19
|
+
isError?: boolean;
|
|
14
20
|
[key: string]: unknown;
|
|
15
21
|
}
|
|
16
22
|
export interface MessageOptions {
|
|
17
23
|
timestamp?: Date;
|
|
18
24
|
metadata?: MessageMetadata;
|
|
19
25
|
}
|
|
26
|
+
export interface MessageJSON {
|
|
27
|
+
role: MessageRole;
|
|
28
|
+
content: MessageContent;
|
|
29
|
+
timestamp: string;
|
|
30
|
+
metadata: MessageMetadata;
|
|
31
|
+
}
|
|
20
32
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAE3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;CAC7B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Observer, RuntimeEvent } from './types';
|
|
2
|
+
export declare class CollectingObserver implements Observer {
|
|
3
|
+
readonly events: RuntimeEvent[];
|
|
4
|
+
redactEvent: Observer['redactEvent'] | undefined;
|
|
5
|
+
onEvent(event: RuntimeEvent): void;
|
|
6
|
+
clear(): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=collecting-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collecting-observer.d.ts","sourceRoot":"","sources":["../../src/observability/collecting-observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD,qBAAa,kBAAmB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAM;IACrC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAEjD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CollectingObserver = void 0;
|
|
4
|
+
class CollectingObserver {
|
|
5
|
+
events = [];
|
|
6
|
+
redactEvent;
|
|
7
|
+
onEvent(event) {
|
|
8
|
+
this.events.push(event);
|
|
9
|
+
}
|
|
10
|
+
clear() {
|
|
11
|
+
this.events.length = 0;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.CollectingObserver = CollectingObserver;
|
|
15
|
+
//# sourceMappingURL=collecting-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collecting-observer.js","sourceRoot":"","sources":["../../src/observability/collecting-observer.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAClB,MAAM,GAAmB,EAAE,CAAC;IACrC,WAAW,CAAsC;IAEjD,OAAO,CAAC,KAAmB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ;AAXD,gDAWC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { CollectingObserver } from './collecting-observer';
|
|
1
2
|
export { ConsoleObserver } from './console-observer';
|
|
2
3
|
export type { ConsoleObserverOptions } from './console-observer';
|
|
3
4
|
export { NoopObserver, createRunId, emitRuntimeEvent, toObservedError, } from './observer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACH,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACf,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACH,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toObservedError = exports.emitRuntimeEvent = exports.createRunId = exports.NoopObserver = exports.ConsoleObserver = void 0;
|
|
3
|
+
exports.toObservedError = exports.emitRuntimeEvent = exports.createRunId = exports.NoopObserver = exports.ConsoleObserver = exports.CollectingObserver = void 0;
|
|
4
|
+
var collecting_observer_1 = require("./collecting-observer");
|
|
5
|
+
Object.defineProperty(exports, "CollectingObserver", { enumerable: true, get: function () { return collecting_observer_1.CollectingObserver; } });
|
|
4
6
|
var console_observer_1 = require("./console-observer");
|
|
5
7
|
Object.defineProperty(exports, "ConsoleObserver", { enumerable: true, get: function () { return console_observer_1.ConsoleObserver; } });
|
|
6
8
|
var observer_1 = require("./observer");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,uCAKoB;AAJhB,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,uCAKoB;AAJhB,wGAAA,YAAY,OAAA;AACZ,uGAAA,WAAW,OAAA;AACX,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/observability/observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,YAAa,YAAW,QAAQ;IACzC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAGtC;AAED,wBAAsB,gBAAgB,CAClC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/observability/observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,qBAAa,YAAa,YAAW,QAAQ;IACzC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;CAGtC;AAED,wBAAsB,gBAAgB,CAClC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAc7D"}
|
|
@@ -15,7 +15,11 @@ async function emitRuntimeEvent(observer, event) {
|
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
|
-
|
|
18
|
+
const normalizedEvent = normalizeRuntimeEvent(event);
|
|
19
|
+
const redactedEvent = observer.redactEvent
|
|
20
|
+
? observer.redactEvent(normalizedEvent)
|
|
21
|
+
: normalizedEvent;
|
|
22
|
+
await observer.onEvent(redactedEvent);
|
|
19
23
|
}
|
|
20
24
|
catch {
|
|
21
25
|
// Observer 是旁路能力,日志/监控失败不应该影响 Agent 主流程。
|
|
@@ -43,4 +47,13 @@ function getErrorCode(error) {
|
|
|
43
47
|
const maybeCode = error.code;
|
|
44
48
|
return typeof maybeCode === 'string' ? maybeCode : undefined;
|
|
45
49
|
}
|
|
50
|
+
function normalizeRuntimeEvent(event) {
|
|
51
|
+
if (event.level !== undefined) {
|
|
52
|
+
return event;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
...event,
|
|
56
|
+
level: event.type.endsWith(':error') ? 'error' : 'info',
|
|
57
|
+
};
|
|
58
|
+
}
|
|
46
59
|
//# sourceMappingURL=observer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../../src/observability/observer.ts"],"names":[],"mappings":";;;AAQA,
|
|
1
|
+
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../../src/observability/observer.ts"],"names":[],"mappings":";;;AAQA,4CAkBC;AAED,kCAGC;AAED,0CAcC;AA7CD,MAAa,YAAY;IACrB,OAAO,CAAC,MAAoB;QACxB,qCAAqC;IACzC,CAAC;CACJ;AAJD,oCAIC;AAEM,KAAK,UAAU,gBAAgB,CAClC,QAA8B,EAC9B,KAAmB;IAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW;YACtC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;YACvC,CAAC,CAAC,eAAe,CAAC;QAEtB,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACL,yCAAyC;IAC7C,CAAC;AACL,CAAC;AAED,SAAgB,WAAW;IACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IACnD,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrG,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO;YACH,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;YACzB,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;KACzB,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,KAAY;IAC9B,MAAM,SAAS,GAAI,KAAoC,CAAC,IAAI,CAAC;IAC7D,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAmB;IAC9C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO;QACH,GAAG,KAAK;QACR,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KAC1D,CAAC;AACN,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { TokenUsage } from '../llm/types';
|
|
2
|
+
export type RuntimeEventType = 'agent:start' | 'agent:end' | 'agent:error' | 'llm:start' | 'llm:end' | 'llm:error' | 'llm:retry' | 'tool:start' | 'tool:end' | 'tool:error';
|
|
2
3
|
export interface ObservedError {
|
|
3
4
|
name: string;
|
|
4
5
|
message: string;
|
|
@@ -9,6 +10,9 @@ export interface RuntimeEvent {
|
|
|
9
10
|
type: RuntimeEventType;
|
|
10
11
|
runId: string;
|
|
11
12
|
timestamp: Date;
|
|
13
|
+
level?: 'debug' | 'info' | 'warn' | 'error' | undefined;
|
|
14
|
+
spanId?: string | undefined;
|
|
15
|
+
parentSpanId?: string | undefined;
|
|
12
16
|
durationMs?: number | undefined;
|
|
13
17
|
agentName?: string | undefined;
|
|
14
18
|
sessionId?: string | undefined;
|
|
@@ -19,10 +23,19 @@ export interface RuntimeEvent {
|
|
|
19
23
|
messageCount?: number | undefined;
|
|
20
24
|
toolCount?: number | undefined;
|
|
21
25
|
outputLength?: number | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* llm:end / agent:end 携带的 token 用量,供成本核算。
|
|
28
|
+
*/
|
|
29
|
+
usage?: TokenUsage | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* llm:retry 携带的重试序号(1 = 第一次重试)。
|
|
32
|
+
*/
|
|
33
|
+
attempt?: number | undefined;
|
|
22
34
|
error?: ObservedError | undefined;
|
|
23
35
|
metadata?: Record<string, unknown> | undefined;
|
|
24
36
|
}
|
|
25
37
|
export interface Observer {
|
|
38
|
+
redactEvent?: ((event: RuntimeEvent) => RuntimeEvent) | undefined;
|
|
26
39
|
onEvent(event: RuntimeEvent): void | Promise<void>;
|
|
27
40
|
}
|
|
28
41
|
export interface TraceContext {
|
|
@@ -30,5 +43,7 @@ export interface TraceContext {
|
|
|
30
43
|
observer?: Observer | undefined;
|
|
31
44
|
agentName?: string | undefined;
|
|
32
45
|
sessionId?: string | undefined;
|
|
46
|
+
spanId?: string | undefined;
|
|
47
|
+
parentSpanId?: string | undefined;
|
|
33
48
|
}
|
|
34
49
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/observability/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,WAAW,GACX,aAAa,GACb,WAAW,GACX,SAAS,GACT,WAAW,GACX,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/observability/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,WAAW,GACX,aAAa,GACb,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,QAAQ;IACrB,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,YAAY,CAAC,GAAG,SAAS,CAAC;IAClE,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC"}
|
|
@@ -2,20 +2,27 @@ import type { Chunk, RawDocument } from '../types';
|
|
|
2
2
|
import type { Chunker } from './chunker';
|
|
3
3
|
export interface AutoChunkerOptions {
|
|
4
4
|
markdownChunker?: Chunker;
|
|
5
|
+
qaPairChunker?: Chunker;
|
|
5
6
|
parentChildChunker?: Chunker;
|
|
6
7
|
recursiveChunker?: Chunker;
|
|
8
|
+
enableQaPairChunker?: boolean;
|
|
9
|
+
qaPairMinPairs?: number;
|
|
7
10
|
parentChildMinContentLength?: number;
|
|
8
11
|
}
|
|
9
12
|
/**
|
|
10
13
|
* AutoChunker 根据文档形态选择切块策略:
|
|
11
14
|
* - 有 Markdown 结构或明确来自 Markdown 转换链路:使用 MarkdownChunker,保留标题、表格、代码等结构。
|
|
15
|
+
* - 非 Markdown 的 FAQ / QA 文本:使用 QaPairChunker,把问答对作为稳定检索单元。
|
|
12
16
|
* - 无结构但内容较长:使用 ParentChildChunker,用小块召回、大块补上下文。
|
|
13
17
|
* - 其余短文本:使用 RecursiveChunker,按通用文本边界切块。
|
|
14
18
|
*/
|
|
15
19
|
export declare class AutoChunker implements Chunker {
|
|
16
20
|
private readonly markdownChunker;
|
|
21
|
+
private readonly qaPairChunker;
|
|
17
22
|
private readonly parentChildChunker;
|
|
18
23
|
private readonly recursiveChunker;
|
|
24
|
+
private readonly enableQaPairChunker;
|
|
25
|
+
private readonly qaPairMinPairs;
|
|
19
26
|
private readonly parentChildMinContentLength;
|
|
20
27
|
constructor(options?: AutoChunkerOptions);
|
|
21
28
|
chunk(document: RawDocument): Promise<Chunk[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-chunker.d.ts","sourceRoot":"","sources":["../../../src/rag/chunking/auto-chunker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,KAAK,EAEL,WAAW,EACd,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EACR,OAAO,EACV,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-chunker.d.ts","sourceRoot":"","sources":["../../../src/rag/chunking/auto-chunker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,KAAK,EAEL,WAAW,EACd,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EACR,OAAO,EACV,MAAM,WAAW,CAAC;AAenB,MAAM,WAAW,kBAAkB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACxC;AAeD;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,OAAO;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAS;gBAEzC,OAAO,GAAE,kBAAuB;IAgBtC,KAAK,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9C,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI3D,OAAO,CAAC,cAAc;CAkBzB"}
|
|
@@ -4,8 +4,10 @@ exports.AutoChunker = void 0;
|
|
|
4
4
|
const chunker_1 = require("./chunker");
|
|
5
5
|
const markdown_chunker_1 = require("./markdown-chunker");
|
|
6
6
|
const parent_child_1 = require("./parent-child");
|
|
7
|
+
const qa_pair_chunker_1 = require("./qa-pair-chunker");
|
|
7
8
|
const recursive_chunker_1 = require("./recursive-chunker");
|
|
8
9
|
const DEFAULT_PARENT_CHILD_MIN_CONTENT_LENGTH = 6000;
|
|
10
|
+
const DEFAULT_QA_PAIR_MIN_PAIRS = 2;
|
|
9
11
|
const MARKDOWN_MIME_TYPES = new Set([
|
|
10
12
|
'text/markdown',
|
|
11
13
|
'text/x-markdown',
|
|
@@ -19,18 +21,25 @@ const MARKDOWN_EXTENSIONS = new Set([
|
|
|
19
21
|
/**
|
|
20
22
|
* AutoChunker 根据文档形态选择切块策略:
|
|
21
23
|
* - 有 Markdown 结构或明确来自 Markdown 转换链路:使用 MarkdownChunker,保留标题、表格、代码等结构。
|
|
24
|
+
* - 非 Markdown 的 FAQ / QA 文本:使用 QaPairChunker,把问答对作为稳定检索单元。
|
|
22
25
|
* - 无结构但内容较长:使用 ParentChildChunker,用小块召回、大块补上下文。
|
|
23
26
|
* - 其余短文本:使用 RecursiveChunker,按通用文本边界切块。
|
|
24
27
|
*/
|
|
25
28
|
class AutoChunker {
|
|
26
29
|
markdownChunker;
|
|
30
|
+
qaPairChunker;
|
|
27
31
|
parentChildChunker;
|
|
28
32
|
recursiveChunker;
|
|
33
|
+
enableQaPairChunker;
|
|
34
|
+
qaPairMinPairs;
|
|
29
35
|
parentChildMinContentLength;
|
|
30
36
|
constructor(options = {}) {
|
|
31
37
|
this.markdownChunker = options.markdownChunker ?? new markdown_chunker_1.MarkdownChunker();
|
|
38
|
+
this.qaPairChunker = options.qaPairChunker ?? new qa_pair_chunker_1.QaPairChunker();
|
|
32
39
|
this.parentChildChunker = options.parentChildChunker ?? new parent_child_1.ParentChildChunker();
|
|
33
40
|
this.recursiveChunker = options.recursiveChunker ?? new recursive_chunker_1.RecursiveChunker();
|
|
41
|
+
this.enableQaPairChunker = options.enableQaPairChunker ?? true;
|
|
42
|
+
this.qaPairMinPairs = toPositiveInteger(options.qaPairMinPairs, DEFAULT_QA_PAIR_MIN_PAIRS);
|
|
34
43
|
this.parentChildMinContentLength = toPositiveInteger(options.parentChildMinContentLength, DEFAULT_PARENT_CHILD_MIN_CONTENT_LENGTH);
|
|
35
44
|
}
|
|
36
45
|
async chunk(document) {
|
|
@@ -43,6 +52,10 @@ class AutoChunker {
|
|
|
43
52
|
if (shouldUseMarkdownChunker(document)) {
|
|
44
53
|
return this.markdownChunker;
|
|
45
54
|
}
|
|
55
|
+
if (this.enableQaPairChunker
|
|
56
|
+
&& (0, qa_pair_chunker_1.hasQaPairs)(document.content, this.qaPairMinPairs)) {
|
|
57
|
+
return this.qaPairChunker;
|
|
58
|
+
}
|
|
46
59
|
if (document.content.length >= this.parentChildMinContentLength) {
|
|
47
60
|
return this.parentChildChunker;
|
|
48
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-chunker.js","sourceRoot":"","sources":["../../../src/rag/chunking/auto-chunker.ts"],"names":[],"mappings":";;;AAKA,uCAEmB;AAInB,yDAE4B;AAC5B,iDAEwB;AACxB,2DAE6B;
|
|
1
|
+
{"version":3,"file":"auto-chunker.js","sourceRoot":"","sources":["../../../src/rag/chunking/auto-chunker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../../src/rag/chunking/chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,KAAK,EACL,SAAS,EAET,WAAW,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,OAAO;IACpB,KAAK,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,sBAAsB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../../src/rag/chunking/chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,KAAK,EACL,SAAS,EAET,WAAW,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,OAAO;IACpB,KAAK,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAyB1C,wBAAsB,kBAAkB,CACpC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,WAAW,EAAE,GACzB,OAAO,CAAC,KAAK,EAAE,CAAC,CAIlB;AAED,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC/B,WAAW,EAAE,CA4Cf;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CA2C1D;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CASzD"}
|