@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.
Files changed (149) hide show
  1. package/README.md +225 -0
  2. package/dist/ai/agent-graph.d.ts +99 -0
  3. package/dist/ai/agent-graph.d.ts.map +1 -0
  4. package/dist/ai/agent-graph.js +321 -0
  5. package/dist/ai/agent-graph.js.map +1 -0
  6. package/dist/ai/agent-graph.mjs +317 -0
  7. package/dist/ai/generate-text.d.ts +51 -0
  8. package/dist/ai/generate-text.d.ts.map +1 -1
  9. package/dist/ai/generate-text.js +132 -0
  10. package/dist/ai/generate-text.js.map +1 -1
  11. package/dist/ai/generate-text.mjs +131 -0
  12. package/dist/ai/graph/checkpointer.d.ts +112 -0
  13. package/dist/ai/graph/checkpointer.d.ts.map +1 -0
  14. package/dist/ai/graph/checkpointer.js +131 -0
  15. package/dist/ai/graph/checkpointer.js.map +1 -0
  16. package/dist/ai/graph/checkpointer.mjs +126 -0
  17. package/dist/ai/graph/index.d.ts +13 -0
  18. package/dist/ai/graph/index.d.ts.map +1 -0
  19. package/dist/ai/graph/index.js +22 -0
  20. package/dist/ai/graph/index.js.map +1 -0
  21. package/dist/ai/graph/index.mjs +12 -0
  22. package/dist/ai/graph/postgres-checkpointer.d.ts +54 -0
  23. package/dist/ai/graph/postgres-checkpointer.d.ts.map +1 -0
  24. package/dist/ai/graph/postgres-checkpointer.js +134 -0
  25. package/dist/ai/graph/postgres-checkpointer.js.map +1 -0
  26. package/dist/ai/graph/postgres-checkpointer.mjs +130 -0
  27. package/dist/ai/graph/redis-checkpointer.d.ts +51 -0
  28. package/dist/ai/graph/redis-checkpointer.d.ts.map +1 -0
  29. package/dist/ai/graph/redis-checkpointer.js +124 -0
  30. package/dist/ai/graph/redis-checkpointer.js.map +1 -0
  31. package/dist/ai/graph/redis-checkpointer.mjs +120 -0
  32. package/dist/ai/graph/state-graph.d.ts +41 -0
  33. package/dist/ai/graph/state-graph.d.ts.map +1 -0
  34. package/dist/ai/graph/state-graph.js +149 -0
  35. package/dist/ai/graph/state-graph.js.map +1 -0
  36. package/dist/ai/graph/state-graph.mjs +144 -0
  37. package/dist/ai/graph/types.d.ts +41 -0
  38. package/dist/ai/graph/types.d.ts.map +1 -0
  39. package/dist/ai/graph/types.js +10 -0
  40. package/dist/ai/graph/types.js.map +1 -0
  41. package/dist/ai/graph/types.mjs +7 -0
  42. package/dist/ai/internal-types.d.ts +109 -0
  43. package/dist/ai/internal-types.d.ts.map +1 -0
  44. package/dist/ai/internal-types.js +28 -0
  45. package/dist/ai/internal-types.js.map +1 -0
  46. package/dist/ai/internal-types.mjs +23 -0
  47. package/dist/ai/nodes/execute-node.d.ts +27 -0
  48. package/dist/ai/nodes/execute-node.d.ts.map +1 -0
  49. package/dist/ai/nodes/execute-node.js +118 -0
  50. package/dist/ai/nodes/execute-node.js.map +1 -0
  51. package/dist/ai/nodes/execute-node.mjs +114 -0
  52. package/dist/ai/nodes/index.d.ts +8 -0
  53. package/dist/ai/nodes/index.d.ts.map +1 -0
  54. package/dist/ai/nodes/index.js +16 -0
  55. package/dist/ai/nodes/index.js.map +1 -0
  56. package/dist/ai/nodes/index.mjs +7 -0
  57. package/dist/ai/nodes/memory-node.d.ts +34 -0
  58. package/dist/ai/nodes/memory-node.d.ts.map +1 -0
  59. package/dist/ai/nodes/memory-node.js +164 -0
  60. package/dist/ai/nodes/memory-node.js.map +1 -0
  61. package/dist/ai/nodes/memory-node.mjs +158 -0
  62. package/dist/ai/nodes/predict-node.d.ts +42 -0
  63. package/dist/ai/nodes/predict-node.d.ts.map +1 -0
  64. package/dist/ai/nodes/predict-node.js +89 -0
  65. package/dist/ai/nodes/predict-node.js.map +1 -0
  66. package/dist/ai/nodes/predict-node.mjs +86 -0
  67. package/dist/ai/nodes/types.d.ts +44 -0
  68. package/dist/ai/nodes/types.d.ts.map +1 -0
  69. package/dist/ai/nodes/types.js +6 -0
  70. package/dist/ai/nodes/types.js.map +1 -0
  71. package/dist/ai/nodes/types.mjs +5 -0
  72. package/dist/index.d.ts +23 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +80 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/index.mjs +34 -0
  77. package/dist/lib/otel-tracer.d.ts +47 -0
  78. package/dist/lib/otel-tracer.d.ts.map +1 -0
  79. package/dist/lib/otel-tracer.js +79 -0
  80. package/dist/lib/otel-tracer.js.map +1 -0
  81. package/dist/lib/otel-tracer.mjs +75 -0
  82. package/dist/lib/token-estimator.d.ts +62 -0
  83. package/dist/lib/token-estimator.d.ts.map +1 -0
  84. package/dist/lib/token-estimator.js +106 -0
  85. package/dist/lib/token-estimator.js.map +1 -0
  86. package/dist/lib/token-estimator.mjs +100 -0
  87. package/dist/lib/tool-registry.d.ts +103 -0
  88. package/dist/lib/tool-registry.d.ts.map +1 -0
  89. package/dist/lib/tool-registry.js +159 -0
  90. package/dist/lib/tool-registry.js.map +1 -0
  91. package/dist/lib/tool-registry.mjs +154 -0
  92. package/dist/lib/tracer.d.ts +85 -0
  93. package/dist/lib/tracer.d.ts.map +1 -0
  94. package/dist/lib/tracer.js +170 -0
  95. package/dist/lib/tracer.js.map +1 -0
  96. package/dist/lib/tracer.mjs +161 -0
  97. package/dist/lib/types.d.ts +11 -0
  98. package/dist/lib/types.d.ts.map +1 -1
  99. package/dist/modules/mcp/adapter.d.ts +23 -0
  100. package/dist/modules/mcp/adapter.d.ts.map +1 -0
  101. package/dist/modules/mcp/adapter.js +63 -0
  102. package/dist/modules/mcp/adapter.js.map +1 -0
  103. package/dist/modules/mcp/adapter.mjs +58 -0
  104. package/dist/modules/mcp/client.d.ts +75 -0
  105. package/dist/modules/mcp/client.d.ts.map +1 -0
  106. package/dist/modules/mcp/client.js +300 -0
  107. package/dist/modules/mcp/client.js.map +1 -0
  108. package/dist/modules/mcp/client.mjs +295 -0
  109. package/dist/modules/mcp/http-transport.d.ts +51 -0
  110. package/dist/modules/mcp/http-transport.d.ts.map +1 -0
  111. package/dist/modules/mcp/http-transport.js +146 -0
  112. package/dist/modules/mcp/http-transport.js.map +1 -0
  113. package/dist/modules/mcp/http-transport.mjs +141 -0
  114. package/dist/modules/mcp/index.d.ts +11 -0
  115. package/dist/modules/mcp/index.d.ts.map +1 -0
  116. package/dist/modules/mcp/index.js +34 -0
  117. package/dist/modules/mcp/index.js.map +1 -0
  118. package/dist/modules/mcp/index.mjs +14 -0
  119. package/dist/modules/mcp/oauth.d.ts +101 -0
  120. package/dist/modules/mcp/oauth.d.ts.map +1 -0
  121. package/dist/modules/mcp/oauth.js +347 -0
  122. package/dist/modules/mcp/oauth.js.map +1 -0
  123. package/dist/modules/mcp/oauth.mjs +304 -0
  124. package/dist/modules/mcp/token-store.d.ts +69 -0
  125. package/dist/modules/mcp/token-store.d.ts.map +1 -0
  126. package/dist/modules/mcp/token-store.js +174 -0
  127. package/dist/modules/mcp/token-store.js.map +1 -0
  128. package/dist/modules/mcp/token-store.mjs +135 -0
  129. package/dist/modules/mcp/types.d.ts +91 -0
  130. package/dist/modules/mcp/types.d.ts.map +1 -0
  131. package/dist/modules/mcp/types.js +14 -0
  132. package/dist/modules/mcp/types.js.map +1 -0
  133. package/dist/modules/mcp/types.mjs +11 -0
  134. package/dist/modules/skills/index.d.ts +7 -0
  135. package/dist/modules/skills/index.d.ts.map +1 -0
  136. package/dist/modules/skills/index.js +14 -0
  137. package/dist/modules/skills/index.js.map +1 -0
  138. package/dist/modules/skills/index.mjs +6 -0
  139. package/dist/modules/skills/loader.d.ts +51 -0
  140. package/dist/modules/skills/loader.d.ts.map +1 -0
  141. package/dist/modules/skills/loader.js +237 -0
  142. package/dist/modules/skills/loader.js.map +1 -0
  143. package/dist/modules/skills/loader.mjs +198 -0
  144. package/dist/modules/skills/types.d.ts +60 -0
  145. package/dist/modules/skills/types.d.ts.map +1 -0
  146. package/dist/modules/skills/types.js +20 -0
  147. package/dist/modules/skills/types.js.map +1 -0
  148. package/dist/modules/skills/types.mjs +17 -0
  149. 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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Context Compaction types and result.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ai/nodes/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Context Compaction types and result.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
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
@@ -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":";;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,mCAUkB;AATd,iGAAA,OAAO,OAAA;AACP,uGAAA,aAAa,OAAA;AACb,oGAAA,UAAU,OAAA;AACV,8GAAA,oBAAoB,OAAA;AACpB,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AACjB,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAGpB,gBAAgB;AAChB,mCAKkB;AAJd,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AAsBjB,cAAc;AACd,yCAAyC;AAAhC,mGAAA,QAAQ,OAAA;AACjB,uCAAkF;AAAzE,iGAAA,OAAO,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAE3D,eAAe;AACf,8CAA4B;AAE5B,kBAAkB;AAClB,2CAAiE;AAAxD,0GAAA,cAAc,OAAA;AAAE,2GAAA,eAAe,OAAA;AAGxC,sBAAsB;AACtB,oDAAuE;AAA9D,6GAAA,YAAY,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAwB1C,wEAAwE;AACxE,iCAAqF;AAA5E,qGAAA,cAAc,OAAA;AAAE,8GAAA,uBAAuB,OAAA;AAAE,sGAAA,eAAe,OAAA;AAGjE,2EAA2E;AAC3E,uCAA+D;AAAtD,2GAAA,iBAAiB,OAAA;AAAE,sGAAA,YAAY,OAAA"}
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"}