@bowenqt/qiniu-ai-sdk 0.10.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +225 -0
- package/dist/ai/agent-graph.d.ts +99 -0
- package/dist/ai/agent-graph.d.ts.map +1 -0
- package/dist/ai/agent-graph.js +321 -0
- package/dist/ai/agent-graph.js.map +1 -0
- package/dist/ai/agent-graph.mjs +317 -0
- package/dist/ai/generate-text.d.ts +51 -0
- package/dist/ai/generate-text.d.ts.map +1 -1
- package/dist/ai/generate-text.js +132 -0
- package/dist/ai/generate-text.js.map +1 -1
- package/dist/ai/generate-text.mjs +131 -0
- package/dist/ai/graph/checkpointer.d.ts +112 -0
- package/dist/ai/graph/checkpointer.d.ts.map +1 -0
- package/dist/ai/graph/checkpointer.js +131 -0
- package/dist/ai/graph/checkpointer.js.map +1 -0
- package/dist/ai/graph/checkpointer.mjs +126 -0
- package/dist/ai/graph/index.d.ts +13 -0
- package/dist/ai/graph/index.d.ts.map +1 -0
- package/dist/ai/graph/index.js +22 -0
- package/dist/ai/graph/index.js.map +1 -0
- package/dist/ai/graph/index.mjs +12 -0
- package/dist/ai/graph/postgres-checkpointer.d.ts +54 -0
- package/dist/ai/graph/postgres-checkpointer.d.ts.map +1 -0
- package/dist/ai/graph/postgres-checkpointer.js +134 -0
- package/dist/ai/graph/postgres-checkpointer.js.map +1 -0
- package/dist/ai/graph/postgres-checkpointer.mjs +130 -0
- package/dist/ai/graph/redis-checkpointer.d.ts +51 -0
- package/dist/ai/graph/redis-checkpointer.d.ts.map +1 -0
- package/dist/ai/graph/redis-checkpointer.js +124 -0
- package/dist/ai/graph/redis-checkpointer.js.map +1 -0
- package/dist/ai/graph/redis-checkpointer.mjs +120 -0
- package/dist/ai/graph/state-graph.d.ts +41 -0
- package/dist/ai/graph/state-graph.d.ts.map +1 -0
- package/dist/ai/graph/state-graph.js +149 -0
- package/dist/ai/graph/state-graph.js.map +1 -0
- package/dist/ai/graph/state-graph.mjs +144 -0
- package/dist/ai/graph/types.d.ts +41 -0
- package/dist/ai/graph/types.d.ts.map +1 -0
- package/dist/ai/graph/types.js +10 -0
- package/dist/ai/graph/types.js.map +1 -0
- package/dist/ai/graph/types.mjs +7 -0
- package/dist/ai/internal-types.d.ts +109 -0
- package/dist/ai/internal-types.d.ts.map +1 -0
- package/dist/ai/internal-types.js +28 -0
- package/dist/ai/internal-types.js.map +1 -0
- package/dist/ai/internal-types.mjs +23 -0
- package/dist/ai/nodes/execute-node.d.ts +27 -0
- package/dist/ai/nodes/execute-node.d.ts.map +1 -0
- package/dist/ai/nodes/execute-node.js +118 -0
- package/dist/ai/nodes/execute-node.js.map +1 -0
- package/dist/ai/nodes/execute-node.mjs +114 -0
- package/dist/ai/nodes/index.d.ts +8 -0
- package/dist/ai/nodes/index.d.ts.map +1 -0
- package/dist/ai/nodes/index.js +16 -0
- package/dist/ai/nodes/index.js.map +1 -0
- package/dist/ai/nodes/index.mjs +7 -0
- package/dist/ai/nodes/memory-node.d.ts +34 -0
- package/dist/ai/nodes/memory-node.d.ts.map +1 -0
- package/dist/ai/nodes/memory-node.js +164 -0
- package/dist/ai/nodes/memory-node.js.map +1 -0
- package/dist/ai/nodes/memory-node.mjs +158 -0
- package/dist/ai/nodes/predict-node.d.ts +42 -0
- package/dist/ai/nodes/predict-node.d.ts.map +1 -0
- package/dist/ai/nodes/predict-node.js +89 -0
- package/dist/ai/nodes/predict-node.js.map +1 -0
- package/dist/ai/nodes/predict-node.mjs +86 -0
- package/dist/ai/nodes/types.d.ts +44 -0
- package/dist/ai/nodes/types.d.ts.map +1 -0
- package/dist/ai/nodes/types.js +6 -0
- package/dist/ai/nodes/types.js.map +1 -0
- package/dist/ai/nodes/types.mjs +5 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +80 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -0
- package/dist/lib/otel-tracer.d.ts +47 -0
- package/dist/lib/otel-tracer.d.ts.map +1 -0
- package/dist/lib/otel-tracer.js +79 -0
- package/dist/lib/otel-tracer.js.map +1 -0
- package/dist/lib/otel-tracer.mjs +75 -0
- package/dist/lib/token-estimator.d.ts +62 -0
- package/dist/lib/token-estimator.d.ts.map +1 -0
- package/dist/lib/token-estimator.js +106 -0
- package/dist/lib/token-estimator.js.map +1 -0
- package/dist/lib/token-estimator.mjs +100 -0
- package/dist/lib/tool-registry.d.ts +103 -0
- package/dist/lib/tool-registry.d.ts.map +1 -0
- package/dist/lib/tool-registry.js +159 -0
- package/dist/lib/tool-registry.js.map +1 -0
- package/dist/lib/tool-registry.mjs +154 -0
- package/dist/lib/tracer.d.ts +85 -0
- package/dist/lib/tracer.d.ts.map +1 -0
- package/dist/lib/tracer.js +170 -0
- package/dist/lib/tracer.js.map +1 -0
- package/dist/lib/tracer.mjs +161 -0
- package/dist/lib/types.d.ts +11 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/modules/mcp/adapter.d.ts +23 -0
- package/dist/modules/mcp/adapter.d.ts.map +1 -0
- package/dist/modules/mcp/adapter.js +63 -0
- package/dist/modules/mcp/adapter.js.map +1 -0
- package/dist/modules/mcp/adapter.mjs +58 -0
- package/dist/modules/mcp/client.d.ts +75 -0
- package/dist/modules/mcp/client.d.ts.map +1 -0
- package/dist/modules/mcp/client.js +300 -0
- package/dist/modules/mcp/client.js.map +1 -0
- package/dist/modules/mcp/client.mjs +295 -0
- package/dist/modules/mcp/http-transport.d.ts +51 -0
- package/dist/modules/mcp/http-transport.d.ts.map +1 -0
- package/dist/modules/mcp/http-transport.js +146 -0
- package/dist/modules/mcp/http-transport.js.map +1 -0
- package/dist/modules/mcp/http-transport.mjs +141 -0
- package/dist/modules/mcp/index.d.ts +11 -0
- package/dist/modules/mcp/index.d.ts.map +1 -0
- package/dist/modules/mcp/index.js +34 -0
- package/dist/modules/mcp/index.js.map +1 -0
- package/dist/modules/mcp/index.mjs +14 -0
- package/dist/modules/mcp/oauth.d.ts +101 -0
- package/dist/modules/mcp/oauth.d.ts.map +1 -0
- package/dist/modules/mcp/oauth.js +347 -0
- package/dist/modules/mcp/oauth.js.map +1 -0
- package/dist/modules/mcp/oauth.mjs +304 -0
- package/dist/modules/mcp/token-store.d.ts +69 -0
- package/dist/modules/mcp/token-store.d.ts.map +1 -0
- package/dist/modules/mcp/token-store.js +174 -0
- package/dist/modules/mcp/token-store.js.map +1 -0
- package/dist/modules/mcp/token-store.mjs +135 -0
- package/dist/modules/mcp/types.d.ts +91 -0
- package/dist/modules/mcp/types.d.ts.map +1 -0
- package/dist/modules/mcp/types.js +14 -0
- package/dist/modules/mcp/types.js.map +1 -0
- package/dist/modules/mcp/types.mjs +11 -0
- package/dist/modules/skills/index.d.ts +7 -0
- package/dist/modules/skills/index.d.ts.map +1 -0
- package/dist/modules/skills/index.js +14 -0
- package/dist/modules/skills/index.js.map +1 -0
- package/dist/modules/skills/index.mjs +6 -0
- package/dist/modules/skills/loader.d.ts +51 -0
- package/dist/modules/skills/loader.d.ts.map +1 -0
- package/dist/modules/skills/loader.js +237 -0
- package/dist/modules/skills/loader.js.map +1 -0
- package/dist/modules/skills/loader.mjs +198 -0
- package/dist/modules/skills/types.d.ts +60 -0
- package/dist/modules/skills/types.d.ts.map +1 -0
- package/dist/modules/skills/types.js +20 -0
- package/dist/modules/skills/types.js.map +1 -0
- package/dist/modules/skills/types.mjs +17 -0
- package/package.json +4 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PredictNode - LLM call abstraction.
|
|
3
|
+
* Extracted from generateText for modular use in Graph Runtime.
|
|
4
|
+
*/
|
|
5
|
+
import type { QiniuAI } from '../../client';
|
|
6
|
+
import type { ChatMessage, ResponseFormat } from '../../lib/types';
|
|
7
|
+
import type { RegisteredTool } from '../../lib/tool-registry';
|
|
8
|
+
/** Predict options */
|
|
9
|
+
export interface PredictOptions {
|
|
10
|
+
client: QiniuAI;
|
|
11
|
+
model: string;
|
|
12
|
+
messages: ChatMessage[];
|
|
13
|
+
tools?: RegisteredTool[];
|
|
14
|
+
temperature?: number;
|
|
15
|
+
topP?: number;
|
|
16
|
+
maxTokens?: number;
|
|
17
|
+
responseFormat?: ResponseFormat;
|
|
18
|
+
toolChoice?: 'none' | 'auto' | {
|
|
19
|
+
type: 'function';
|
|
20
|
+
function: {
|
|
21
|
+
name: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
abortSignal?: AbortSignal;
|
|
25
|
+
}
|
|
26
|
+
/** Predict result */
|
|
27
|
+
export interface PredictResult {
|
|
28
|
+
message: ChatMessage;
|
|
29
|
+
reasoning?: string;
|
|
30
|
+
finishReason: string | null;
|
|
31
|
+
usage?: {
|
|
32
|
+
prompt_tokens: number;
|
|
33
|
+
completion_tokens: number;
|
|
34
|
+
total_tokens: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Execute a single LLM prediction.
|
|
39
|
+
* For JSON mode (json_object/json_schema), uses non-streaming to avoid partial JSON.
|
|
40
|
+
*/
|
|
41
|
+
export declare function predict(options: PredictOptions): Promise<PredictResult>;
|
|
42
|
+
//# sourceMappingURL=predict-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predict-node.d.ts","sourceRoot":"","sources":["../../../src/ai/nodes/predict-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAmC,MAAM,iBAAiB,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAChF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAqC7E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PredictNode - LLM call abstraction.
|
|
4
|
+
* Extracted from generateText for modular use in Graph Runtime.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.predict = predict;
|
|
8
|
+
/**
|
|
9
|
+
* Execute a single LLM prediction.
|
|
10
|
+
* For JSON mode (json_object/json_schema), uses non-streaming to avoid partial JSON.
|
|
11
|
+
*/
|
|
12
|
+
async function predict(options) {
|
|
13
|
+
const { client, model, messages, tools, abortSignal, temperature, topP, maxTokens, responseFormat, toolChoice } = options;
|
|
14
|
+
// Check if JSON mode - use non-streaming to avoid partial JSON
|
|
15
|
+
const isJsonMode = responseFormat?.type === 'json_object' || responseFormat?.type === 'json_schema';
|
|
16
|
+
// Build request with explicit field mapping (camelCase -> snake_case for API)
|
|
17
|
+
const request = {
|
|
18
|
+
model,
|
|
19
|
+
messages,
|
|
20
|
+
stream: !isJsonMode, // Non-streaming for JSON mode
|
|
21
|
+
temperature,
|
|
22
|
+
top_p: topP,
|
|
23
|
+
max_tokens: maxTokens,
|
|
24
|
+
response_format: responseFormat,
|
|
25
|
+
tool_choice: toolChoice,
|
|
26
|
+
};
|
|
27
|
+
// Add tools if provided
|
|
28
|
+
if (tools && tools.length > 0) {
|
|
29
|
+
request.tools = tools.map(t => ({
|
|
30
|
+
type: 'function',
|
|
31
|
+
function: {
|
|
32
|
+
name: t.name,
|
|
33
|
+
description: t.description,
|
|
34
|
+
parameters: t.parameters,
|
|
35
|
+
},
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
if (isJsonMode) {
|
|
39
|
+
// Non-streaming path for JSON mode
|
|
40
|
+
return predictNonStreaming(client, request, abortSignal);
|
|
41
|
+
}
|
|
42
|
+
// Streaming path (default)
|
|
43
|
+
return predictStreaming(client, request, abortSignal);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Streaming prediction.
|
|
47
|
+
*/
|
|
48
|
+
async function predictStreaming(client, request, abortSignal) {
|
|
49
|
+
// Execute streaming request and consume to get final result
|
|
50
|
+
const generator = client.chat.createStream(request, { signal: abortSignal });
|
|
51
|
+
// Consume all chunks (we don't need them, just the final result)
|
|
52
|
+
let result;
|
|
53
|
+
do {
|
|
54
|
+
result = await generator.next();
|
|
55
|
+
} while (!result.done);
|
|
56
|
+
// result.value is the StreamResult from the generator's return
|
|
57
|
+
const streamResult = result.value;
|
|
58
|
+
// Build message
|
|
59
|
+
const message = {
|
|
60
|
+
role: 'assistant',
|
|
61
|
+
content: streamResult.content,
|
|
62
|
+
};
|
|
63
|
+
if (streamResult.toolCalls.length > 0) {
|
|
64
|
+
message.tool_calls = streamResult.toolCalls;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
message,
|
|
68
|
+
reasoning: streamResult.reasoningContent || undefined,
|
|
69
|
+
finishReason: streamResult.finishReason,
|
|
70
|
+
usage: streamResult.usage,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Non-streaming prediction for JSON mode.
|
|
75
|
+
* Returns single final step, no token events.
|
|
76
|
+
*/
|
|
77
|
+
async function predictNonStreaming(client, request, abortSignal) {
|
|
78
|
+
// Medium fix: pass abortSignal to create method
|
|
79
|
+
const response = await client.chat.create(request, { signal: abortSignal });
|
|
80
|
+
const choice = response.choices?.[0];
|
|
81
|
+
const message = choice?.message || { role: 'assistant', content: '' };
|
|
82
|
+
return {
|
|
83
|
+
message,
|
|
84
|
+
reasoning: undefined,
|
|
85
|
+
finishReason: choice?.finish_reason || null,
|
|
86
|
+
usage: response.usage,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=predict-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predict-node.js","sourceRoot":"","sources":["../../../src/ai/nodes/predict-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PredictNode - LLM call abstraction.
|
|
3
|
+
* Extracted from generateText for modular use in Graph Runtime.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Execute a single LLM prediction.
|
|
7
|
+
* For JSON mode (json_object/json_schema), uses non-streaming to avoid partial JSON.
|
|
8
|
+
*/
|
|
9
|
+
export async function predict(options) {
|
|
10
|
+
const { client, model, messages, tools, abortSignal, temperature, topP, maxTokens, responseFormat, toolChoice } = options;
|
|
11
|
+
// Check if JSON mode - use non-streaming to avoid partial JSON
|
|
12
|
+
const isJsonMode = responseFormat?.type === 'json_object' || responseFormat?.type === 'json_schema';
|
|
13
|
+
// Build request with explicit field mapping (camelCase -> snake_case for API)
|
|
14
|
+
const request = {
|
|
15
|
+
model,
|
|
16
|
+
messages,
|
|
17
|
+
stream: !isJsonMode, // Non-streaming for JSON mode
|
|
18
|
+
temperature,
|
|
19
|
+
top_p: topP,
|
|
20
|
+
max_tokens: maxTokens,
|
|
21
|
+
response_format: responseFormat,
|
|
22
|
+
tool_choice: toolChoice,
|
|
23
|
+
};
|
|
24
|
+
// Add tools if provided
|
|
25
|
+
if (tools && tools.length > 0) {
|
|
26
|
+
request.tools = tools.map(t => ({
|
|
27
|
+
type: 'function',
|
|
28
|
+
function: {
|
|
29
|
+
name: t.name,
|
|
30
|
+
description: t.description,
|
|
31
|
+
parameters: t.parameters,
|
|
32
|
+
},
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
if (isJsonMode) {
|
|
36
|
+
// Non-streaming path for JSON mode
|
|
37
|
+
return predictNonStreaming(client, request, abortSignal);
|
|
38
|
+
}
|
|
39
|
+
// Streaming path (default)
|
|
40
|
+
return predictStreaming(client, request, abortSignal);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Streaming prediction.
|
|
44
|
+
*/
|
|
45
|
+
async function predictStreaming(client, request, abortSignal) {
|
|
46
|
+
// Execute streaming request and consume to get final result
|
|
47
|
+
const generator = client.chat.createStream(request, { signal: abortSignal });
|
|
48
|
+
// Consume all chunks (we don't need them, just the final result)
|
|
49
|
+
let result;
|
|
50
|
+
do {
|
|
51
|
+
result = await generator.next();
|
|
52
|
+
} while (!result.done);
|
|
53
|
+
// result.value is the StreamResult from the generator's return
|
|
54
|
+
const streamResult = result.value;
|
|
55
|
+
// Build message
|
|
56
|
+
const message = {
|
|
57
|
+
role: 'assistant',
|
|
58
|
+
content: streamResult.content,
|
|
59
|
+
};
|
|
60
|
+
if (streamResult.toolCalls.length > 0) {
|
|
61
|
+
message.tool_calls = streamResult.toolCalls;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
message,
|
|
65
|
+
reasoning: streamResult.reasoningContent || undefined,
|
|
66
|
+
finishReason: streamResult.finishReason,
|
|
67
|
+
usage: streamResult.usage,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Non-streaming prediction for JSON mode.
|
|
72
|
+
* Returns single final step, no token events.
|
|
73
|
+
*/
|
|
74
|
+
async function predictNonStreaming(client, request, abortSignal) {
|
|
75
|
+
// Medium fix: pass abortSignal to create method
|
|
76
|
+
const response = await client.chat.create(request, { signal: abortSignal });
|
|
77
|
+
const choice = response.choices?.[0];
|
|
78
|
+
const message = choice?.message || { role: 'assistant', content: '' };
|
|
79
|
+
return {
|
|
80
|
+
message,
|
|
81
|
+
reasoning: undefined,
|
|
82
|
+
finishReason: choice?.finish_reason || null,
|
|
83
|
+
usage: response.usage,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=predict-node.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Compaction types and result.
|
|
3
|
+
*/
|
|
4
|
+
import type { ChatMessage } from '../../lib/types';
|
|
5
|
+
/** Compaction result returned to callers */
|
|
6
|
+
export interface CompactionResult {
|
|
7
|
+
/** Compacted messages */
|
|
8
|
+
messages: ChatMessage[];
|
|
9
|
+
/** Whether compaction occurred */
|
|
10
|
+
occurred: boolean;
|
|
11
|
+
/** Skills dropped during compaction */
|
|
12
|
+
droppedSkills: string[];
|
|
13
|
+
/** Number of messages dropped */
|
|
14
|
+
droppedMessages: number;
|
|
15
|
+
/** Orphan tool calls (no matching result) */
|
|
16
|
+
orphanToolCalls: string[];
|
|
17
|
+
/** Recommendation for reducing context */
|
|
18
|
+
recommendation?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Compaction configuration */
|
|
21
|
+
export interface CompactionConfig {
|
|
22
|
+
/** Maximum tokens allowed */
|
|
23
|
+
maxTokens: number;
|
|
24
|
+
/** Token estimator function */
|
|
25
|
+
estimateTokens: (messages: ChatMessage[]) => number;
|
|
26
|
+
}
|
|
27
|
+
/** Tool pair tracking */
|
|
28
|
+
export interface ToolPair {
|
|
29
|
+
callMessageIndex: number;
|
|
30
|
+
callId: string;
|
|
31
|
+
resultMessageIndex: number | null;
|
|
32
|
+
}
|
|
33
|
+
/** Skill injection metadata */
|
|
34
|
+
export interface InjectedSkill {
|
|
35
|
+
/** Skill name */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Priority for compaction (lower = drop first) */
|
|
38
|
+
priority: number;
|
|
39
|
+
/** Message index in messages array */
|
|
40
|
+
messageIndex: number;
|
|
41
|
+
/** Estimated token count */
|
|
42
|
+
tokenCount: number;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai/nodes/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC7B,yBAAyB;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,kCAAkC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC7B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,cAAc,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;CACvD;AAED,yBAAyB;AACzB,MAAM,WAAW,QAAQ;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,+BAA+B;AAC/B,MAAM,WAAW,aAAa;IAC1B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ai/nodes/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,27 @@ export type { AsrRequest, AsrResponse, AudioFormat, WordTiming } from './modules
|
|
|
23
23
|
export type { TtsRequest, TtsResponse, TtsEncoding, TtsStreamOptions, Voice } from './modules/tts';
|
|
24
24
|
export type { UsageQuery, UsageResponse, UsageModelStat, UsageItem, UsageCategory, UsageValue } from './modules/account';
|
|
25
25
|
export type { CreateKeysRequest, ApiKey } from './modules/admin';
|
|
26
|
+
export { generateTextWithGraph } from './ai/generate-text';
|
|
27
|
+
export type { GenerateTextWithGraphOptions, GenerateTextWithGraphResult } from './ai/generate-text';
|
|
28
|
+
export { AgentGraph } from './ai/agent-graph';
|
|
29
|
+
export type { AgentGraphOptions, AgentGraphResult } from './ai/agent-graph';
|
|
30
|
+
export type { InternalMessage, AgentState, StepResult as GraphStepResult, AgentGraphEvents } from './ai/internal-types';
|
|
31
|
+
export { stripMeta, isDroppable, getSkillId } from './ai/internal-types';
|
|
32
|
+
export { SkillLoader } from './modules/skills';
|
|
33
|
+
export type { Skill } from './modules/skills';
|
|
34
|
+
export { MCPClient, MCPClientError, adaptMCPToolsToRegistry, getAllMCPToolsAsRegistered, MCPHttpTransport, MCPHttpTransportError, PKCEFlow, DeviceCodeFlow, OAuthError, generateCodeVerifier, generateCodeChallenge, generateState, refreshAccessToken, MemoryTokenStore, FileTokenStore, TokenManager, } from './modules/mcp';
|
|
35
|
+
export type { MCPClientConfig, MCPServerConfig, MCPStdioServerConfig, MCPHttpServerConfig, MCPOAuthConfig, MCPToolDefinition, MCPToolResult, MCPConnectionState, MCPTransport, TokenProvider, OAuthTokens, TokenStore, FileTokenStoreConfig, } from './modules/mcp';
|
|
36
|
+
export { MemoryCheckpointer, deserializeCheckpoint, RedisCheckpointer, PostgresCheckpointer, } from './ai/graph';
|
|
37
|
+
export type { Checkpointer, Checkpoint, CheckpointMetadata, SerializedAgentState, RedisClient, RedisCheckpointerConfig, PostgresClient, PostgresCheckpointerConfig, } from './ai/graph';
|
|
38
|
+
export { ToolRegistry, ToolConflictError } from './lib/tool-registry';
|
|
39
|
+
export type { RegisteredTool, ToolSource, ToolSourceType, ToolParameters, ToolRegistryConfig, ConflictStrategy } from './lib/tool-registry';
|
|
40
|
+
export { StateGraph, END, MaxGraphStepsError } from './ai/graph';
|
|
41
|
+
export type { NodeFunction, EdgeResolver, CompiledGraph, InvokeOptions, StateGraphConfig } from './ai/graph';
|
|
42
|
+
export { compactMessages, buildToolPairs, ContextOverflowError } from './ai/nodes/memory-node';
|
|
43
|
+
export type { CompactionResult, CompactionConfig, ToolPair, InjectedSkill } from './ai/nodes';
|
|
44
|
+
export { createTokenEstimator, defaultContentEstimator, estimateMessageTokens, estimateMessagesTokens, DEFAULT_ESTIMATOR_CONFIG, } from './lib/token-estimator';
|
|
45
|
+
export type { TokenEstimatorConfig, ContentEstimator, EstimableMessage } from './lib/token-estimator';
|
|
46
|
+
export { NoopTracer, ConsoleTracer, setGlobalTracer, getGlobalTracer, redactContent, redactAttributes, DEFAULT_TRACER_CONFIG, PRODUCTION_TRACER_CONFIG, } from './lib/tracer';
|
|
47
|
+
export type { Span, Tracer, TracerConfig } from './lib/tracer';
|
|
48
|
+
export { OTelTracer } from './lib/otel-tracer';
|
|
26
49
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,OAAO,EACP,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GAChB,MAAM,UAAU,CAAC;AAElB,YAAY,EACR,SAAS,EACT,UAAU,IAAI,cAAc,EAC5B,UAAU,IAAI,cAAc,EAC5B,KAAK,EACL,SAAS,GACZ,MAAM,UAAU,CAAC;AAElB,YAAY,EACR,cAAc,EACd,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACjB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGlF,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,IAAI,EACJ,UAAU,GACb,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACR,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,aAAa,GAChB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG9D,YAAY,EACR,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,IAAI,gBAAgB,EAC/B,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,cAAc,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,IAAI,gBAAgB,EAC/B,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGzE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGnG,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGzH,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.createPoller = exports.pollUntilComplete = exports.accumulateDelta = exports.createStreamAccumulator = exports.parseSSEStream = exports.serializeToolResult = exports.generateText = exports.truncateHistory = exports.appendMessages = exports.MaxStepsExceededError = exports.ToolExecutionError = exports.AIError = exports.APIError = exports.MODEL_CATALOG = exports.VIDEO_MODELS = exports.IMAGE_MODELS = exports.CHAT_MODELS = exports.timingMiddleware = exports.headersMiddleware = exports.retryMiddleware = exports.composeMiddleware = exports.defaultFetchAdapter = exports.createFilteredLogger = exports.noopLogger = exports.consoleLogger = exports.QiniuAI = void 0;
|
|
17
|
+
exports.deserializeCheckpoint = exports.MemoryCheckpointer = exports.TokenManager = exports.FileTokenStore = exports.MemoryTokenStore = exports.refreshAccessToken = exports.generateState = exports.generateCodeChallenge = exports.generateCodeVerifier = exports.OAuthError = exports.DeviceCodeFlow = exports.PKCEFlow = exports.MCPHttpTransportError = exports.MCPHttpTransport = exports.getAllMCPToolsAsRegistered = exports.adaptMCPToolsToRegistry = exports.MCPClientError = exports.MCPClient = exports.SkillLoader = exports.getSkillId = exports.isDroppable = exports.stripMeta = exports.AgentGraph = exports.generateTextWithGraph = exports.createPoller = exports.pollUntilComplete = exports.accumulateDelta = exports.createStreamAccumulator = exports.parseSSEStream = exports.serializeToolResult = exports.generateText = exports.truncateHistory = exports.appendMessages = exports.MaxStepsExceededError = exports.ToolExecutionError = exports.AIError = exports.APIError = exports.MODEL_CATALOG = exports.VIDEO_MODELS = exports.IMAGE_MODELS = exports.CHAT_MODELS = exports.timingMiddleware = exports.headersMiddleware = exports.retryMiddleware = exports.composeMiddleware = exports.defaultFetchAdapter = exports.createFilteredLogger = exports.noopLogger = exports.consoleLogger = exports.QiniuAI = void 0;
|
|
18
|
+
exports.OTelTracer = exports.PRODUCTION_TRACER_CONFIG = exports.DEFAULT_TRACER_CONFIG = exports.redactAttributes = exports.redactContent = exports.getGlobalTracer = exports.setGlobalTracer = exports.ConsoleTracer = exports.NoopTracer = exports.DEFAULT_ESTIMATOR_CONFIG = exports.estimateMessagesTokens = exports.estimateMessageTokens = exports.defaultContentEstimator = exports.createTokenEstimator = exports.ContextOverflowError = exports.buildToolPairs = exports.compactMessages = exports.MaxGraphStepsError = exports.END = exports.StateGraph = exports.ToolConflictError = exports.ToolRegistry = exports.PostgresCheckpointer = exports.RedisCheckpointer = void 0;
|
|
18
19
|
// Main client
|
|
19
20
|
var client_1 = require("./client");
|
|
20
21
|
Object.defineProperty(exports, "QiniuAI", { enumerable: true, get: function () { return client_1.QiniuAI; } });
|
|
@@ -58,4 +59,82 @@ Object.defineProperty(exports, "accumulateDelta", { enumerable: true, get: funct
|
|
|
58
59
|
var poller_1 = require("./lib/poller");
|
|
59
60
|
Object.defineProperty(exports, "pollUntilComplete", { enumerable: true, get: function () { return poller_1.pollUntilComplete; } });
|
|
60
61
|
Object.defineProperty(exports, "createPoller", { enumerable: true, get: function () { return poller_1.createPoller; } });
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Agent SDK v7 - Skills, MCP, Graph, Checkpointer
|
|
64
|
+
// ============================================================================
|
|
65
|
+
// generateTextWithGraph
|
|
66
|
+
var generate_text_2 = require("./ai/generate-text");
|
|
67
|
+
Object.defineProperty(exports, "generateTextWithGraph", { enumerable: true, get: function () { return generate_text_2.generateTextWithGraph; } });
|
|
68
|
+
// AgentGraph
|
|
69
|
+
var agent_graph_1 = require("./ai/agent-graph");
|
|
70
|
+
Object.defineProperty(exports, "AgentGraph", { enumerable: true, get: function () { return agent_graph_1.AgentGraph; } });
|
|
71
|
+
var internal_types_1 = require("./ai/internal-types");
|
|
72
|
+
Object.defineProperty(exports, "stripMeta", { enumerable: true, get: function () { return internal_types_1.stripMeta; } });
|
|
73
|
+
Object.defineProperty(exports, "isDroppable", { enumerable: true, get: function () { return internal_types_1.isDroppable; } });
|
|
74
|
+
Object.defineProperty(exports, "getSkillId", { enumerable: true, get: function () { return internal_types_1.getSkillId; } });
|
|
75
|
+
// Skills
|
|
76
|
+
var skills_1 = require("./modules/skills");
|
|
77
|
+
Object.defineProperty(exports, "SkillLoader", { enumerable: true, get: function () { return skills_1.SkillLoader; } });
|
|
78
|
+
// MCP (Phase 1 + Phase 3)
|
|
79
|
+
var mcp_1 = require("./modules/mcp");
|
|
80
|
+
Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return mcp_1.MCPClient; } });
|
|
81
|
+
Object.defineProperty(exports, "MCPClientError", { enumerable: true, get: function () { return mcp_1.MCPClientError; } });
|
|
82
|
+
Object.defineProperty(exports, "adaptMCPToolsToRegistry", { enumerable: true, get: function () { return mcp_1.adaptMCPToolsToRegistry; } });
|
|
83
|
+
Object.defineProperty(exports, "getAllMCPToolsAsRegistered", { enumerable: true, get: function () { return mcp_1.getAllMCPToolsAsRegistered; } });
|
|
84
|
+
// Phase 3: HTTP Transport
|
|
85
|
+
Object.defineProperty(exports, "MCPHttpTransport", { enumerable: true, get: function () { return mcp_1.MCPHttpTransport; } });
|
|
86
|
+
Object.defineProperty(exports, "MCPHttpTransportError", { enumerable: true, get: function () { return mcp_1.MCPHttpTransportError; } });
|
|
87
|
+
// Phase 3: OAuth
|
|
88
|
+
Object.defineProperty(exports, "PKCEFlow", { enumerable: true, get: function () { return mcp_1.PKCEFlow; } });
|
|
89
|
+
Object.defineProperty(exports, "DeviceCodeFlow", { enumerable: true, get: function () { return mcp_1.DeviceCodeFlow; } });
|
|
90
|
+
Object.defineProperty(exports, "OAuthError", { enumerable: true, get: function () { return mcp_1.OAuthError; } });
|
|
91
|
+
Object.defineProperty(exports, "generateCodeVerifier", { enumerable: true, get: function () { return mcp_1.generateCodeVerifier; } });
|
|
92
|
+
Object.defineProperty(exports, "generateCodeChallenge", { enumerable: true, get: function () { return mcp_1.generateCodeChallenge; } });
|
|
93
|
+
Object.defineProperty(exports, "generateState", { enumerable: true, get: function () { return mcp_1.generateState; } });
|
|
94
|
+
Object.defineProperty(exports, "refreshAccessToken", { enumerable: true, get: function () { return mcp_1.refreshAccessToken; } });
|
|
95
|
+
// Phase 3: Token Store
|
|
96
|
+
Object.defineProperty(exports, "MemoryTokenStore", { enumerable: true, get: function () { return mcp_1.MemoryTokenStore; } });
|
|
97
|
+
Object.defineProperty(exports, "FileTokenStore", { enumerable: true, get: function () { return mcp_1.FileTokenStore; } });
|
|
98
|
+
Object.defineProperty(exports, "TokenManager", { enumerable: true, get: function () { return mcp_1.TokenManager; } });
|
|
99
|
+
// Checkpointer (Phase 1 + Phase 3)
|
|
100
|
+
var graph_1 = require("./ai/graph");
|
|
101
|
+
Object.defineProperty(exports, "MemoryCheckpointer", { enumerable: true, get: function () { return graph_1.MemoryCheckpointer; } });
|
|
102
|
+
Object.defineProperty(exports, "deserializeCheckpoint", { enumerable: true, get: function () { return graph_1.deserializeCheckpoint; } });
|
|
103
|
+
// Phase 3: Redis + Postgres
|
|
104
|
+
Object.defineProperty(exports, "RedisCheckpointer", { enumerable: true, get: function () { return graph_1.RedisCheckpointer; } });
|
|
105
|
+
Object.defineProperty(exports, "PostgresCheckpointer", { enumerable: true, get: function () { return graph_1.PostgresCheckpointer; } });
|
|
106
|
+
// Tool Registry
|
|
107
|
+
var tool_registry_1 = require("./lib/tool-registry");
|
|
108
|
+
Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return tool_registry_1.ToolRegistry; } });
|
|
109
|
+
Object.defineProperty(exports, "ToolConflictError", { enumerable: true, get: function () { return tool_registry_1.ToolConflictError; } });
|
|
110
|
+
// Graph (for advanced users)
|
|
111
|
+
var graph_2 = require("./ai/graph");
|
|
112
|
+
Object.defineProperty(exports, "StateGraph", { enumerable: true, get: function () { return graph_2.StateGraph; } });
|
|
113
|
+
Object.defineProperty(exports, "END", { enumerable: true, get: function () { return graph_2.END; } });
|
|
114
|
+
Object.defineProperty(exports, "MaxGraphStepsError", { enumerable: true, get: function () { return graph_2.MaxGraphStepsError; } });
|
|
115
|
+
// Memory Node
|
|
116
|
+
var memory_node_1 = require("./ai/nodes/memory-node");
|
|
117
|
+
Object.defineProperty(exports, "compactMessages", { enumerable: true, get: function () { return memory_node_1.compactMessages; } });
|
|
118
|
+
Object.defineProperty(exports, "buildToolPairs", { enumerable: true, get: function () { return memory_node_1.buildToolPairs; } });
|
|
119
|
+
Object.defineProperty(exports, "ContextOverflowError", { enumerable: true, get: function () { return memory_node_1.ContextOverflowError; } });
|
|
120
|
+
// Token Estimator
|
|
121
|
+
var token_estimator_1 = require("./lib/token-estimator");
|
|
122
|
+
Object.defineProperty(exports, "createTokenEstimator", { enumerable: true, get: function () { return token_estimator_1.createTokenEstimator; } });
|
|
123
|
+
Object.defineProperty(exports, "defaultContentEstimator", { enumerable: true, get: function () { return token_estimator_1.defaultContentEstimator; } });
|
|
124
|
+
Object.defineProperty(exports, "estimateMessageTokens", { enumerable: true, get: function () { return token_estimator_1.estimateMessageTokens; } });
|
|
125
|
+
Object.defineProperty(exports, "estimateMessagesTokens", { enumerable: true, get: function () { return token_estimator_1.estimateMessagesTokens; } });
|
|
126
|
+
Object.defineProperty(exports, "DEFAULT_ESTIMATOR_CONFIG", { enumerable: true, get: function () { return token_estimator_1.DEFAULT_ESTIMATOR_CONFIG; } });
|
|
127
|
+
// Tracer (Observability)
|
|
128
|
+
var tracer_1 = require("./lib/tracer");
|
|
129
|
+
Object.defineProperty(exports, "NoopTracer", { enumerable: true, get: function () { return tracer_1.NoopTracer; } });
|
|
130
|
+
Object.defineProperty(exports, "ConsoleTracer", { enumerable: true, get: function () { return tracer_1.ConsoleTracer; } });
|
|
131
|
+
Object.defineProperty(exports, "setGlobalTracer", { enumerable: true, get: function () { return tracer_1.setGlobalTracer; } });
|
|
132
|
+
Object.defineProperty(exports, "getGlobalTracer", { enumerable: true, get: function () { return tracer_1.getGlobalTracer; } });
|
|
133
|
+
Object.defineProperty(exports, "redactContent", { enumerable: true, get: function () { return tracer_1.redactContent; } });
|
|
134
|
+
Object.defineProperty(exports, "redactAttributes", { enumerable: true, get: function () { return tracer_1.redactAttributes; } });
|
|
135
|
+
Object.defineProperty(exports, "DEFAULT_TRACER_CONFIG", { enumerable: true, get: function () { return tracer_1.DEFAULT_TRACER_CONFIG; } });
|
|
136
|
+
Object.defineProperty(exports, "PRODUCTION_TRACER_CONFIG", { enumerable: true, get: function () { return tracer_1.PRODUCTION_TRACER_CONFIG; } });
|
|
137
|
+
// OTel Tracer (optional)
|
|
138
|
+
var otel_tracer_1 = require("./lib/otel-tracer");
|
|
139
|
+
Object.defineProperty(exports, "OTelTracer", { enumerable: true, get: function () { return otel_tracer_1.OTelTracer; } });
|
|
61
140
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -15,4 +15,38 @@ export { generateText, serializeToolResult } from './ai/generate-text.mjs';
|
|
|
15
15
|
export { parseSSEStream, createStreamAccumulator, accumulateDelta } from './lib/sse.mjs';
|
|
16
16
|
// Polling utilities (for advanced users who want to create custom pollers)
|
|
17
17
|
export { pollUntilComplete, createPoller } from './lib/poller.mjs';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Agent SDK v7 - Skills, MCP, Graph, Checkpointer
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// generateTextWithGraph
|
|
22
|
+
export { generateTextWithGraph } from './ai/generate-text.mjs';
|
|
23
|
+
// AgentGraph
|
|
24
|
+
export { AgentGraph } from './ai/agent-graph.mjs';
|
|
25
|
+
export { stripMeta, isDroppable, getSkillId } from './ai/internal-types.mjs';
|
|
26
|
+
// Skills
|
|
27
|
+
export { SkillLoader } from './modules/skills.mjs';
|
|
28
|
+
// MCP (Phase 1 + Phase 3)
|
|
29
|
+
export { MCPClient, MCPClientError, adaptMCPToolsToRegistry, getAllMCPToolsAsRegistered,
|
|
30
|
+
// Phase 3: HTTP Transport
|
|
31
|
+
MCPHttpTransport, MCPHttpTransportError,
|
|
32
|
+
// Phase 3: OAuth
|
|
33
|
+
PKCEFlow, DeviceCodeFlow, OAuthError, generateCodeVerifier, generateCodeChallenge, generateState, refreshAccessToken,
|
|
34
|
+
// Phase 3: Token Store
|
|
35
|
+
MemoryTokenStore, FileTokenStore, TokenManager, } from './modules/mcp.mjs';
|
|
36
|
+
// Checkpointer (Phase 1 + Phase 3)
|
|
37
|
+
export { MemoryCheckpointer, deserializeCheckpoint,
|
|
38
|
+
// Phase 3: Redis + Postgres
|
|
39
|
+
RedisCheckpointer, PostgresCheckpointer, } from './ai/graph.mjs';
|
|
40
|
+
// Tool Registry
|
|
41
|
+
export { ToolRegistry, ToolConflictError } from './lib/tool-registry.mjs';
|
|
42
|
+
// Graph (for advanced users)
|
|
43
|
+
export { StateGraph, END, MaxGraphStepsError } from './ai/graph.mjs';
|
|
44
|
+
// Memory Node
|
|
45
|
+
export { compactMessages, buildToolPairs, ContextOverflowError } from './ai/nodes/memory-node.mjs';
|
|
46
|
+
// Token Estimator
|
|
47
|
+
export { createTokenEstimator, defaultContentEstimator, estimateMessageTokens, estimateMessagesTokens, DEFAULT_ESTIMATOR_CONFIG, } from './lib/token-estimator.mjs';
|
|
48
|
+
// Tracer (Observability)
|
|
49
|
+
export { NoopTracer, ConsoleTracer, setGlobalTracer, getGlobalTracer, redactContent, redactAttributes, DEFAULT_TRACER_CONFIG, PRODUCTION_TRACER_CONFIG, } from './lib/tracer.mjs';
|
|
50
|
+
// OTel Tracer (optional)
|
|
51
|
+
export { OTelTracer } from './lib/otel-tracer.mjs';
|
|
18
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Tracer adapter.
|
|
3
|
+
* Wraps @opentelemetry/api for seamless integration.
|
|
4
|
+
*
|
|
5
|
+
* @optional - This file only works if @opentelemetry/api is installed.
|
|
6
|
+
*/
|
|
7
|
+
import type { Span, Tracer, TracerConfig } from './tracer';
|
|
8
|
+
/** OTel API types (to avoid hard dependency) */
|
|
9
|
+
interface IOTelSpan {
|
|
10
|
+
setAttribute(key: string, value: string | number | boolean | string[] | number[] | boolean[]): this;
|
|
11
|
+
setAttributes(attributes: Record<string, string | number | boolean>): this;
|
|
12
|
+
recordException(exception: Error): void;
|
|
13
|
+
addEvent(name: string, attributes?: Record<string, string | number | boolean>): this;
|
|
14
|
+
end(): void;
|
|
15
|
+
}
|
|
16
|
+
interface IOTelTracer {
|
|
17
|
+
startSpan(name: string, options?: {
|
|
18
|
+
attributes?: Record<string, string | number | boolean>;
|
|
19
|
+
}): IOTelSpan;
|
|
20
|
+
}
|
|
21
|
+
interface IOTelTracerProvider {
|
|
22
|
+
getTracer(name: string, version?: string): IOTelTracer;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* OpenTelemetry Tracer implementation.
|
|
26
|
+
* Requires @opentelemetry/api as a peer dependency.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { trace } from '@opentelemetry/api';
|
|
31
|
+
* import { OTelTracer, setGlobalTracer } from '@bowenqt/qiniu-ai-sdk';
|
|
32
|
+
*
|
|
33
|
+
* const provider = trace.getTracerProvider();
|
|
34
|
+
* const tracer = new OTelTracer(provider, { recordPrompts: false });
|
|
35
|
+
* setGlobalTracer(tracer);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class OTelTracer implements Tracer {
|
|
39
|
+
private readonly otelTracer;
|
|
40
|
+
private readonly config;
|
|
41
|
+
constructor(provider: IOTelTracerProvider, config?: TracerConfig);
|
|
42
|
+
startSpan(name: string, attributes?: Record<string, string | number | boolean>): Span;
|
|
43
|
+
withSpan<T>(name: string, fn: (span: Span) => Promise<T> | T): Promise<T>;
|
|
44
|
+
getConfig(): TracerConfig;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=otel-tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-tracer.d.ts","sourceRoot":"","sources":["../../src/lib/otel-tracer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3D,gDAAgD;AAChD,UAAU,SAAS;IACf,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IACpG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3E,eAAe,CAAC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACrF,GAAG,IAAI,IAAI,CAAC;CACf;AAED,UAAU,WAAW;IACjB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;CAC5G;AAED,UAAU,mBAAmB;IACzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CAC1D;AAgCD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,YAAW,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,GAAE,YAAiB;IAKpE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI;IAO/E,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAa/E,SAAS,IAAI,YAAY;CAG5B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenTelemetry Tracer adapter.
|
|
4
|
+
* Wraps @opentelemetry/api for seamless integration.
|
|
5
|
+
*
|
|
6
|
+
* @optional - This file only works if @opentelemetry/api is installed.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.OTelTracer = void 0;
|
|
10
|
+
const tracer_1 = require("./tracer");
|
|
11
|
+
/**
|
|
12
|
+
* Span wrapper around OTel span.
|
|
13
|
+
*/
|
|
14
|
+
class OTelSpanWrapper {
|
|
15
|
+
constructor(otelSpan, config) {
|
|
16
|
+
this.otelSpan = otelSpan;
|
|
17
|
+
this.config = config;
|
|
18
|
+
}
|
|
19
|
+
setAttribute(key, value) {
|
|
20
|
+
this.otelSpan.setAttribute(key, value);
|
|
21
|
+
}
|
|
22
|
+
setAttributes(attributes) {
|
|
23
|
+
this.otelSpan.setAttributes((0, tracer_1.redactAttributes)(attributes, this.config));
|
|
24
|
+
}
|
|
25
|
+
recordException(error) {
|
|
26
|
+
this.otelSpan.recordException(error);
|
|
27
|
+
}
|
|
28
|
+
addEvent(name, attributes) {
|
|
29
|
+
this.otelSpan.addEvent(name, attributes ? (0, tracer_1.redactAttributes)(attributes, this.config) : undefined);
|
|
30
|
+
}
|
|
31
|
+
end() {
|
|
32
|
+
this.otelSpan.end();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* OpenTelemetry Tracer implementation.
|
|
37
|
+
* Requires @opentelemetry/api as a peer dependency.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import { trace } from '@opentelemetry/api';
|
|
42
|
+
* import { OTelTracer, setGlobalTracer } from '@bowenqt/qiniu-ai-sdk';
|
|
43
|
+
*
|
|
44
|
+
* const provider = trace.getTracerProvider();
|
|
45
|
+
* const tracer = new OTelTracer(provider, { recordPrompts: false });
|
|
46
|
+
* setGlobalTracer(tracer);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
class OTelTracer {
|
|
50
|
+
constructor(provider, config = {}) {
|
|
51
|
+
this.otelTracer = provider.getTracer('qiniu-ai-sdk', '0.13.0');
|
|
52
|
+
this.config = { ...tracer_1.DEFAULT_TRACER_CONFIG, ...config };
|
|
53
|
+
}
|
|
54
|
+
startSpan(name, attributes) {
|
|
55
|
+
const otelSpan = this.otelTracer.startSpan(name, {
|
|
56
|
+
attributes: attributes ? (0, tracer_1.redactAttributes)(attributes, this.config) : undefined,
|
|
57
|
+
});
|
|
58
|
+
return new OTelSpanWrapper(otelSpan, this.config);
|
|
59
|
+
}
|
|
60
|
+
async withSpan(name, fn) {
|
|
61
|
+
const span = this.startSpan(name);
|
|
62
|
+
try {
|
|
63
|
+
const result = await fn(span);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
span.recordException(error);
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
span.end();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
getConfig() {
|
|
75
|
+
return this.config;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.OTelTracer = OTelTracer;
|
|
79
|
+
//# sourceMappingURL=otel-tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-tracer.js","sourceRoot":"","sources":["../../src/lib/otel-tracer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,qCAAmE;AAmBnE;;GAEG;AACH,MAAM,eAAe;IACjB,YACqB,QAAmB,EACnB,MAAoB;QADpB,aAAQ,GAAR,QAAQ,CAAW;QACnB,WAAM,GAAN,MAAM,CAAc;IACrC,CAAC;IAEL,YAAY,CAAC,GAAW,EAAE,KAAgC;QACtD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,UAAqD;QAC/D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAA,yBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,eAAe,CAAC,KAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,UAAsD;QACzE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,yBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC;IAED,GAAG;QACC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;CACJ;AAED;;;;;;;;;;;;;GAaG;AACH,MAAa,UAAU;IAInB,YAAY,QAA6B,EAAE,SAAuB,EAAE;QAChE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,8BAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1D,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,UAAsD;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;YAC7C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,yBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC,CAAC;QACH,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,IAAY,EAAE,EAAkC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;YACrC,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAhCD,gCAgCC"}
|