@bowenqt/qiniu-ai-sdk 0.10.0 → 0.14.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 +101 -0
  3. package/dist/ai/agent-graph.d.ts.map +1 -0
  4. package/dist/ai/agent-graph.js +322 -0
  5. package/dist/ai/agent-graph.js.map +1 -0
  6. package/dist/ai/agent-graph.mjs +318 -0
  7. package/dist/ai/generate-text.d.ts +58 -0
  8. package/dist/ai/generate-text.d.ts.map +1 -1
  9. package/dist/ai/generate-text.js +157 -0
  10. package/dist/ai/generate-text.js.map +1 -1
  11. package/dist/ai/generate-text.mjs +156 -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,318 @@
1
+ /**
2
+ * AgentGraph - High-level agent execution wrapper.
3
+ * Encapsulates predict→execute→memory loop with event bridging.
4
+ *
5
+ * IMPORTANT: All compaction uses estimateMessageTokens from token-estimator.ts
6
+ */
7
+ import { StateGraph, END } from './graph.mjs';
8
+ import { predict } from './nodes/predict-node.mjs';
9
+ import { executeTools, toolResultsToMessages } from './nodes/execute-node.mjs';
10
+ import { compactMessages } from './nodes/memory-node.mjs';
11
+ import { estimateMessageTokens } from '../lib/token-estimator.mjs';
12
+ import { stripMeta } from './internal-types.mjs';
13
+ import { getGlobalTracer } from '../lib/tracer.mjs';
14
+ /**
15
+ * AgentGraph class for agent execution.
16
+ */
17
+ export class AgentGraph {
18
+ constructor(options) {
19
+ this.steps = [];
20
+ /** Compaction tracking */
21
+ this.compactionOccurred = false;
22
+ this.droppedSkills = [];
23
+ this.droppedMessages = 0;
24
+ this.options = options;
25
+ this.graph = this.buildGraph();
26
+ }
27
+ /**
28
+ * Compact messages if needed based on maxContextTokens.
29
+ * Uses estimateMessageTokens from token-estimator.ts for all estimation.
30
+ */
31
+ compactIfNeeded(state) {
32
+ const { maxContextTokens, tokenEstimatorConfig } = this.options;
33
+ // Skip if no budget specified
34
+ if (!maxContextTokens) {
35
+ return state;
36
+ }
37
+ // Build compaction config using estimateMessageTokens
38
+ const config = {
39
+ maxTokens: maxContextTokens,
40
+ estimateTokens: (msgs) => {
41
+ return msgs.reduce((sum, msg) => sum + estimateMessageTokens(msg, tokenEstimatorConfig), 0);
42
+ },
43
+ };
44
+ // Get current skills from _meta
45
+ const currentSkills = this.getInjectedSkillsFromMessages(state.messages);
46
+ // Perform compaction
47
+ const result = compactMessages(state.messages, config, currentSkills);
48
+ // Track compaction results
49
+ if (result.occurred) {
50
+ this.compactionOccurred = true;
51
+ this.droppedSkills.push(...result.droppedSkills);
52
+ this.droppedMessages += result.droppedMessages;
53
+ }
54
+ return {
55
+ ...state,
56
+ messages: result.messages,
57
+ skills: this.getInjectedSkillsFromMessages(result.messages),
58
+ };
59
+ }
60
+ /**
61
+ * Get injected skills from message _meta.
62
+ * Priority is derived from skill name ASCII order, not message order.
63
+ */
64
+ getInjectedSkillsFromMessages(messages) {
65
+ const skills = messages
66
+ .map((msg, idx) => ({ msg, idx }))
67
+ .filter(({ msg }) => msg._meta?.skillId && msg._meta?.droppable)
68
+ .map(({ msg, idx }) => ({
69
+ name: msg._meta.skillId,
70
+ priority: msg._meta.priority ?? 0,
71
+ messageIndex: idx,
72
+ tokenCount: estimateMessageTokens(msg, this.options.tokenEstimatorConfig),
73
+ }));
74
+ // Sort by name for stable priority
75
+ return skills.sort((a, b) => a.name.localeCompare(b.name))
76
+ .map((s, idx) => ({ ...s, priority: idx }));
77
+ }
78
+ /**
79
+ * Execute the agent graph.
80
+ */
81
+ async invoke(messages) {
82
+ const tracer = getGlobalTracer();
83
+ return tracer.withSpan('agent_graph.invoke', async (span) => {
84
+ span.setAttribute('model', this.options.model);
85
+ span.setAttribute('max_steps', this.options.maxSteps ?? 10);
86
+ span.setAttribute('message_count', messages.length);
87
+ // Reset steps and compaction tracking
88
+ this.steps = [];
89
+ this.compactionOccurred = false;
90
+ this.droppedSkills = [];
91
+ this.droppedMessages = 0;
92
+ // Build tools map
93
+ const toolsMap = new Map();
94
+ if (this.options.tools) {
95
+ for (const [name, tool] of Object.entries(this.options.tools)) {
96
+ toolsMap.set(name, { ...tool, name });
97
+ }
98
+ }
99
+ // Initialize state
100
+ const initialState = {
101
+ messages: [...messages],
102
+ skills: [],
103
+ tools: toolsMap,
104
+ stepCount: 0,
105
+ maxSteps: this.options.maxSteps ?? 10,
106
+ done: false,
107
+ output: '',
108
+ reasoning: '',
109
+ finishReason: null,
110
+ abortSignal: this.options.abortSignal,
111
+ };
112
+ // Inject skills if provided
113
+ if (this.options.skills?.length) {
114
+ const injected = this.injectSkills(initialState.messages, this.options.skills);
115
+ initialState.messages = injected.messages;
116
+ initialState.skills = injected.skills;
117
+ span.setAttribute('skills_injected', this.options.skills.length);
118
+ }
119
+ // Execute graph
120
+ const finalState = await this.graph.invoke(initialState, {
121
+ maxSteps: this.options.maxSteps ? this.options.maxSteps * 3 : 30,
122
+ });
123
+ span.setAttribute('final_step_count', finalState.stepCount);
124
+ span.setAttribute('finish_reason', finalState.finishReason ?? 'unknown');
125
+ if (this.compactionOccurred) {
126
+ span.setAttribute('compaction_occurred', true);
127
+ span.setAttribute('dropped_skills', this.droppedSkills.length);
128
+ span.setAttribute('dropped_messages', this.droppedMessages);
129
+ }
130
+ return {
131
+ text: finalState.output,
132
+ reasoning: finalState.reasoning || undefined,
133
+ steps: this.steps,
134
+ usage: finalState.usage,
135
+ finishReason: finalState.finishReason,
136
+ compaction: this.compactionOccurred ? {
137
+ occurred: true,
138
+ droppedSkills: this.droppedSkills,
139
+ droppedMessages: this.droppedMessages,
140
+ } : undefined,
141
+ state: finalState,
142
+ };
143
+ });
144
+ }
145
+ /**
146
+ * Build the internal state graph.
147
+ */
148
+ buildGraph() {
149
+ const graph = new StateGraph()
150
+ .addNode('predict', async (state) => this.predictNode(state))
151
+ .addNode('execute', async (state) => this.executeNode(state))
152
+ .addConditionalEdge('predict', (state) => {
153
+ if (state.done)
154
+ return END;
155
+ return 'execute';
156
+ })
157
+ .addEdge('execute', 'predict')
158
+ .setEntryPoint('predict');
159
+ return graph.compile();
160
+ }
161
+ /**
162
+ * Predict node - calls LLM.
163
+ */
164
+ async predictNode(state) {
165
+ const tracer = getGlobalTracer();
166
+ const { events } = this.options;
167
+ return tracer.withSpan('agent_graph.predict', async (span) => {
168
+ span.setAttribute('step_count', state.stepCount);
169
+ span.setAttribute('message_count', state.messages.length);
170
+ // Notify node entry
171
+ events?.onNodeEnter?.('predict');
172
+ // Check step limit
173
+ if (state.stepCount >= state.maxSteps) {
174
+ events?.onNodeExit?.('predict');
175
+ return { done: true };
176
+ }
177
+ // Compact messages before prediction (if needed)
178
+ const compactedState = this.compactIfNeeded(state);
179
+ // Strip metadata before API call
180
+ const apiMessages = stripMeta(compactedState.messages);
181
+ // Execute prediction
182
+ const result = await predict({
183
+ client: this.options.client,
184
+ model: this.options.model,
185
+ messages: apiMessages,
186
+ tools: Array.from(state.tools.values()),
187
+ temperature: this.options.temperature,
188
+ topP: this.options.topP,
189
+ maxTokens: this.options.maxTokens,
190
+ responseFormat: this.options.responseFormat,
191
+ toolChoice: this.options.toolChoice,
192
+ abortSignal: state.abortSignal,
193
+ });
194
+ // Build step result
195
+ const textStep = {
196
+ type: 'text',
197
+ content: result.message.content || '',
198
+ reasoning: result.reasoning,
199
+ toolCalls: result.message.tool_calls,
200
+ };
201
+ this.steps.push(textStep);
202
+ events?.onStepFinish?.(textStep);
203
+ // Check if done - use hasToolCalls as primary gate
204
+ // High fix: finishReason can be null/missing, but tool_calls presence is reliable
205
+ const hasToolCalls = (result.message.tool_calls?.length ?? 0) > 0;
206
+ const isDone = !hasToolCalls;
207
+ // Update state with compacted messages
208
+ const newMessages = [
209
+ ...compactedState.messages,
210
+ { ...result.message },
211
+ ];
212
+ events?.onNodeExit?.('predict');
213
+ return {
214
+ messages: newMessages,
215
+ skills: compactedState.skills, // Preserve updated skill list
216
+ stepCount: state.stepCount + 1,
217
+ output: isDone ? (result.message.content || state.output) : state.output,
218
+ reasoning: (state.reasoning || '') + (result.reasoning || ''),
219
+ finishReason: result.finishReason,
220
+ usage: result.usage,
221
+ done: isDone,
222
+ };
223
+ });
224
+ }
225
+ /**
226
+ * Execute node - runs tools.
227
+ */
228
+ async executeNode(state) {
229
+ const tracer = getGlobalTracer();
230
+ const { events } = this.options;
231
+ return tracer.withSpan('agent_graph.execute', async (span) => {
232
+ // Notify node entry
233
+ events?.onNodeEnter?.('execute');
234
+ // Get last message with tool calls
235
+ const lastMessage = state.messages[state.messages.length - 1];
236
+ const toolCalls = lastMessage.tool_calls;
237
+ if (!toolCalls?.length) {
238
+ events?.onNodeExit?.('execute');
239
+ return {};
240
+ }
241
+ // Create tool call steps
242
+ for (const tc of toolCalls) {
243
+ const callStep = {
244
+ type: 'tool_call',
245
+ content: tc.function.arguments,
246
+ toolCalls: [tc],
247
+ };
248
+ this.steps.push(callStep);
249
+ events?.onStepFinish?.(callStep);
250
+ }
251
+ // Execute tools
252
+ const results = await executeTools(toolCalls, state.tools, {
253
+ messages: stripMeta(state.messages),
254
+ abortSignal: state.abortSignal,
255
+ });
256
+ // Create tool result steps and messages
257
+ const toolMessages = toolResultsToMessages(results);
258
+ for (const result of results) {
259
+ const resultStep = {
260
+ type: 'tool_result',
261
+ content: result.result,
262
+ toolResults: [{ toolCallId: result.toolCallId, result: result.result }],
263
+ };
264
+ this.steps.push(resultStep);
265
+ events?.onStepFinish?.(resultStep);
266
+ }
267
+ events?.onNodeExit?.('execute');
268
+ // Build new messages with tool results
269
+ const newMessages = [...state.messages, ...toolMessages.map(m => m)];
270
+ // Compact after execute if needed (tool results can be large)
271
+ const postExecuteState = this.compactIfNeeded({ ...state, messages: newMessages });
272
+ return {
273
+ messages: postExecuteState.messages,
274
+ skills: postExecuteState.skills,
275
+ };
276
+ });
277
+ }
278
+ /**
279
+ * Inject skills into messages.
280
+ * Each skill becomes a separate system message with _meta.
281
+ */
282
+ injectSkills(messages, skills) {
283
+ // Sort skills by name (ASCII order)
284
+ const sortedSkills = [...skills].sort((a, b) => a.name.localeCompare(b.name));
285
+ // Find insertion point (after first system message, or at start)
286
+ let insertIndex = 0;
287
+ for (let i = 0; i < messages.length; i++) {
288
+ if (messages[i].role === 'system') {
289
+ insertIndex = i + 1;
290
+ break;
291
+ }
292
+ }
293
+ // Create skill messages
294
+ const skillMessages = sortedSkills.map((skill, idx) => ({
295
+ role: 'system',
296
+ content: skill.content,
297
+ _meta: {
298
+ skillId: skill.name,
299
+ droppable: true,
300
+ },
301
+ }));
302
+ // Build injected skill metadata
303
+ const injectedSkills = sortedSkills.map((skill, idx) => ({
304
+ name: skill.name,
305
+ priority: idx, // Lower index = lower priority = drop first
306
+ messageIndex: insertIndex + idx,
307
+ tokenCount: skill.tokenCount,
308
+ }));
309
+ // Insert skill messages
310
+ const newMessages = [
311
+ ...messages.slice(0, insertIndex),
312
+ ...skillMessages,
313
+ ...messages.slice(insertIndex),
314
+ ];
315
+ return { messages: newMessages, skills: injectedSkills };
316
+ }
317
+ }
318
+ //# sourceMappingURL=agent-graph.js.map
@@ -1,5 +1,6 @@
1
1
  import type { QiniuAI } from '../client';
2
2
  import type { ChatMessage, ToolCall, ResponseFormat } from '../lib/types';
3
+ import type { Checkpointer } from './graph/checkpointer';
3
4
  export interface ToolExecutionContext {
4
5
  toolCallId: string;
5
6
  messages: ChatMessage[];
@@ -60,4 +61,61 @@ export interface GenerateTextResult {
60
61
  }
61
62
  export declare function generateText(options: GenerateTextOptions): Promise<GenerateTextResult>;
62
63
  export declare function serializeToolResult(result: unknown): string;
64
+ import type { Skill } from '../modules/skills';
65
+ /**
66
+ * Extended options for graph-based generation.
67
+ */
68
+ export interface GenerateTextWithGraphOptions extends GenerateTextOptions {
69
+ /** Skills to inject into the conversation */
70
+ skills?: Skill[];
71
+ /** Context token budget for compaction */
72
+ maxContextTokens?: number;
73
+ /** Event handler for node entry */
74
+ onNodeEnter?: (nodeName: string) => void;
75
+ /** Event handler for node exit */
76
+ onNodeExit?: (nodeName: string) => void;
77
+ /** Checkpointer for state persistence */
78
+ checkpointer?: Checkpointer;
79
+ /** Thread ID for checkpoint (required if checkpointer provided) */
80
+ threadId?: string;
81
+ /** Resume from checkpoint if available (default: true) */
82
+ resumeFromCheckpoint?: boolean;
83
+ }
84
+ /**
85
+ * Extended result with graph-specific information.
86
+ */
87
+ export interface GenerateTextWithGraphResult extends GenerateTextResult {
88
+ /** Graph execution details */
89
+ graphInfo?: {
90
+ nodesVisited: string[];
91
+ skillsInjected: string[];
92
+ /** Compaction information */
93
+ compaction?: {
94
+ occurred: boolean;
95
+ droppedSkills: string[];
96
+ droppedMessages: number;
97
+ };
98
+ };
99
+ }
100
+ /**
101
+ * Generate text using the AgentGraph runtime.
102
+ *
103
+ * Benefits over generateText:
104
+ * - Skills injection with automatic compaction
105
+ * - Node-level event hooks (onNodeEnter/onNodeExit)
106
+ * - Consistent event ordering (text→tool_call→tool_result)
107
+ * - JSON mode non-streaming fallback
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const result = await generateTextWithGraph({
112
+ * client,
113
+ * model: 'deepseek-v3',
114
+ * messages: [{ role: 'user', content: 'Hello' }],
115
+ * skills: [await skillLoader.load('my-skill')],
116
+ * onStepFinish: (step) => console.log(step),
117
+ * });
118
+ * ```
119
+ */
120
+ export declare function generateTextWithGraph(options: GenerateTextWithGraphOptions): Promise<GenerateTextWithGraphResult>;
63
121
  //# sourceMappingURL=generate-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../src/ai/generate-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAyB,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIjG,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,WAAW,IAAI;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC1F;AAED,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACnF;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiG5F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAc3D"}
1
+ {"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../src/ai/generate-text.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateText = generateText;
4
4
  exports.serializeToolResult = serializeToolResult;
5
+ exports.generateTextWithGraph = generateTextWithGraph;
5
6
  const errors_1 = require("../lib/errors");
6
7
  async function generateText(options) {
7
8
  const { client, model, tools, maxSteps = 1, onStepFinish, abortSignal, temperature, topP, maxTokens, responseFormat, toolChoice, } = options;
@@ -308,4 +309,160 @@ function parseToolArguments(payload) {
308
309
  return payload;
309
310
  }
310
311
  }
312
+ // ============================================================================
313
+ // G2/G4: Graph-based generateText implementation
314
+ // ============================================================================
315
+ const agent_graph_1 = require("./agent-graph");
316
+ /**
317
+ * Generate text using the AgentGraph runtime.
318
+ *
319
+ * Benefits over generateText:
320
+ * - Skills injection with automatic compaction
321
+ * - Node-level event hooks (onNodeEnter/onNodeExit)
322
+ * - Consistent event ordering (text→tool_call→tool_result)
323
+ * - JSON mode non-streaming fallback
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * const result = await generateTextWithGraph({
328
+ * client,
329
+ * model: 'deepseek-v3',
330
+ * messages: [{ role: 'user', content: 'Hello' }],
331
+ * skills: [await skillLoader.load('my-skill')],
332
+ * onStepFinish: (step) => console.log(step),
333
+ * });
334
+ * ```
335
+ */
336
+ async function generateTextWithGraph(options) {
337
+ const { client, model, tools, skills, maxSteps = 10, maxContextTokens, onStepFinish, onNodeEnter, onNodeExit, abortSignal, temperature, topP, maxTokens, responseFormat, toolChoice, checkpointer, threadId, resumeFromCheckpoint = true, } = options;
338
+ // Validate checkpointer + threadId combination
339
+ if (checkpointer && !threadId) {
340
+ throw new Error('threadId is required when checkpointer is provided');
341
+ }
342
+ // Try to resume from checkpoint if available
343
+ let resumedMessages = null;
344
+ if (checkpointer && threadId && resumeFromCheckpoint) {
345
+ const checkpoint = await checkpointer.load(threadId);
346
+ if (checkpoint) {
347
+ // Extract historical messages and append new input
348
+ const historicalMessages = checkpoint.state.messages;
349
+ const newMessages = normalizeMessages(options);
350
+ // Only append new messages if there are any (avoid duplicating history)
351
+ if (newMessages.length > 0) {
352
+ resumedMessages = [...historicalMessages, ...newMessages];
353
+ }
354
+ else {
355
+ resumedMessages = historicalMessages;
356
+ }
357
+ }
358
+ }
359
+ // Normalize messages - use resumed messages if available, otherwise input
360
+ const messages = resumedMessages ?? normalizeMessages(options);
361
+ // Track current messages for tool context (will be updated during execution)
362
+ let currentMessages = [...messages];
363
+ // Convert tools to RegisteredTool format
364
+ // High fix: use convertToolParameters for Zod support and preserve required fields
365
+ const registeredTools = {};
366
+ if (tools) {
367
+ for (const [name, tool] of Object.entries(tools)) {
368
+ // Convert parameters using same logic as generateText
369
+ const convertedParams = convertToolParameters(tool.parameters);
370
+ registeredTools[name] = {
371
+ name,
372
+ description: tool.description || '',
373
+ parameters: {
374
+ type: 'object',
375
+ properties: convertedParams.properties || convertedParams,
376
+ required: convertedParams.required,
377
+ },
378
+ source: { type: 'user', namespace: 'generateText' },
379
+ execute: tool.execute
380
+ ? async (args, execContext) => {
381
+ // Use context from execute-node (has real toolCallId), fallback to currentMessages
382
+ const context = execContext
383
+ ? {
384
+ toolCallId: execContext.toolCallId,
385
+ messages: execContext.messages,
386
+ abortSignal: execContext.abortSignal,
387
+ }
388
+ : {
389
+ toolCallId: '',
390
+ messages: currentMessages,
391
+ abortSignal,
392
+ };
393
+ return tool.execute(args, context);
394
+ }
395
+ : undefined,
396
+ };
397
+ }
398
+ }
399
+ // Track nodes visited
400
+ const nodesVisited = [];
401
+ // Create AgentGraph
402
+ const graph = new agent_graph_1.AgentGraph({
403
+ client,
404
+ model,
405
+ tools: registeredTools,
406
+ skills,
407
+ maxSteps,
408
+ maxContextTokens, // Pass through for compaction
409
+ temperature,
410
+ topP,
411
+ maxTokens,
412
+ responseFormat,
413
+ toolChoice,
414
+ abortSignal,
415
+ events: {
416
+ onStepFinish: (step) => {
417
+ if (onStepFinish) {
418
+ // Convert internal StepResult to public StepResult
419
+ const publicStep = {
420
+ type: step.type,
421
+ content: step.content,
422
+ reasoning: step.reasoning,
423
+ toolCalls: step.toolCalls,
424
+ toolResults: step.toolResults?.map(r => ({
425
+ toolCallId: r.toolCallId,
426
+ result: r.result,
427
+ })),
428
+ };
429
+ onStepFinish(publicStep);
430
+ }
431
+ },
432
+ onNodeEnter: (nodeName) => {
433
+ nodesVisited.push(nodeName);
434
+ onNodeEnter?.(nodeName);
435
+ },
436
+ onNodeExit: onNodeExit,
437
+ },
438
+ });
439
+ // Execute graph
440
+ const graphResult = await graph.invoke(messages);
441
+ // Save checkpoint if checkpointer provided
442
+ if (checkpointer && threadId) {
443
+ await checkpointer.save(threadId, graphResult.state);
444
+ }
445
+ // Build result
446
+ return {
447
+ text: graphResult.text,
448
+ reasoning: graphResult.reasoning,
449
+ steps: graphResult.steps.map(s => ({
450
+ type: s.type,
451
+ content: s.content,
452
+ reasoning: s.reasoning,
453
+ toolCalls: s.toolCalls,
454
+ toolResults: s.toolResults?.map(r => ({
455
+ toolCallId: r.toolCallId,
456
+ result: r.result,
457
+ })),
458
+ })),
459
+ usage: graphResult.usage,
460
+ finishReason: graphResult.finishReason,
461
+ graphInfo: {
462
+ nodesVisited,
463
+ skillsInjected: skills?.map(s => s.name) || [],
464
+ compaction: graphResult.compaction,
465
+ },
466
+ };
467
+ }
311
468
  //# sourceMappingURL=generate-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-text.js","sourceRoot":"","sources":["../../src/ai/generate-text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-text.js","sourceRoot":"","sources":["../../src/ai/generate-text.ts"],"names":[],"mappings":"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"}