@bowenqt/qiniu-ai-sdk 0.17.0 → 0.18.1

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.
@@ -21,6 +21,7 @@
21
21
  * ```
22
22
  */
23
23
  import type { InternalMessage, MessageMeta } from '../internal-types';
24
+ import type { QiniuAI } from '../../client';
24
25
  /** Short-term memory configuration */
25
26
  export interface ShortTermMemoryConfig {
26
27
  /** Maximum number of recent messages to keep */
@@ -32,6 +33,12 @@ export interface SummarizerConfig {
32
33
  enabled: boolean;
33
34
  /** Message count threshold to trigger summarization */
34
35
  threshold?: number;
36
+ /** Summarization type: 'simple' (concatenation) or 'llm' (LLM-based) */
37
+ type?: 'simple' | 'llm';
38
+ /** QiniuAI client for LLM summarization (required if type='llm') */
39
+ client?: QiniuAI;
40
+ /** Model for LLM summarization */
41
+ model?: string;
35
42
  /** System prompt for summarization */
36
43
  systemPrompt?: string;
37
44
  }
@@ -58,6 +65,15 @@ export interface LongTermMemoryConfig {
58
65
  /** Number of documents to retrieve */
59
66
  retrieveLimit?: number;
60
67
  }
68
+ /** Fine-grained token budget configuration */
69
+ export interface TokenBudgetConfig {
70
+ /** Token budget for summary messages */
71
+ summary?: number;
72
+ /** Token budget for retrieved context */
73
+ context?: number;
74
+ /** Token budget for active conversation */
75
+ active?: number;
76
+ }
61
77
  /** Memory manager configuration */
62
78
  export interface MemoryConfig {
63
79
  /** Short-term memory (sliding window) */
@@ -66,6 +82,8 @@ export interface MemoryConfig {
66
82
  longTerm?: LongTermMemoryConfig;
67
83
  /** Automatic summarization */
68
84
  summarizer?: SummarizerConfig;
85
+ /** Fine-grained token budget control */
86
+ tokenBudget?: TokenBudgetConfig;
69
87
  }
70
88
  /** Memory processing options */
71
89
  export interface MemoryProcessOptions {
@@ -116,9 +134,27 @@ export declare class MemoryManager {
116
134
  process(messages: InternalMessage[], options?: MemoryProcessOptions): Promise<MemoryProcessResult>;
117
135
  /**
118
136
  * Generate summary from messages.
119
- * Override this method for custom summarization logic.
137
+ * Supports 'simple' (concatenation) and 'llm' (LLM-based) modes.
138
+ */
139
+ protected generateSummary(messages: InternalMessage[], _threadId: string, abortSignal?: AbortSignal): Promise<string>;
140
+ /**
141
+ * Simple concatenation summarization.
142
+ */
143
+ private simpleConcat;
144
+ /**
145
+ * Serialize message content for summarization.
146
+ * Handles string, multimodal arrays, and tool calls.
147
+ * Priority: tool_calls > string content > multimodal > unknown
148
+ */
149
+ private serializeMessage;
150
+ /**
151
+ * Apply token budget enforcement to messages.
152
+ * Trims summary, context, and active messages to fit within budgets.
153
+ * PRESERVES original message order (important for system prompt precedence).
154
+ *
155
+ * @returns [trimmedMessages, droppedByBudget]
120
156
  */
121
- protected generateSummary(messages: InternalMessage[], _threadId: string): Promise<string>;
157
+ private applyTokenBudget;
122
158
  /**
123
159
  * Store messages to long-term memory.
124
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/memory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/memory/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.MemoryManager = exports.InMemoryVectorStore = void 0;
26
26
  exports.isDroppable = isDroppable;
27
+ const token_estimator_1 = require("../../lib/token-estimator");
27
28
  // ============================================================================
28
29
  // In-Memory Vector Store (Simple Implementation)
29
30
  // ============================================================================
@@ -157,6 +158,12 @@ class MemoryManager {
157
158
  }
158
159
  }
159
160
  }
161
+ // 5. Apply token budget enforcement
162
+ if (this.config.tokenBudget) {
163
+ const [trimmed, budgetDropped] = this.applyTokenBudget(processedMessages, threadId);
164
+ processedMessages = trimmed;
165
+ droppedCount += budgetDropped;
166
+ }
160
167
  return {
161
168
  messages: processedMessages,
162
169
  summarized,
@@ -166,21 +173,183 @@ class MemoryManager {
166
173
  }
167
174
  /**
168
175
  * Generate summary from messages.
169
- * Override this method for custom summarization logic.
176
+ * Supports 'simple' (concatenation) and 'llm' (LLM-based) modes.
177
+ */
178
+ async generateSummary(messages, _threadId, abortSignal) {
179
+ const config = this.config.summarizer;
180
+ // LLM-based summarization
181
+ if (config?.type === 'llm') {
182
+ if (!config.client) {
183
+ console.warn('[MemoryManager] type=llm but no client provided, using simple');
184
+ }
185
+ else {
186
+ try {
187
+ const serializedMessages = messages
188
+ .map(m => this.serializeMessage(m))
189
+ .join('\n');
190
+ const systemPrompt = config.systemPrompt ??
191
+ 'Summarize the following conversation concisely, preserving key facts, decisions, and tool actions. Output only the summary.';
192
+ const response = await config.client.chat.create({
193
+ model: config.model ?? 'gemini-2.5-flash',
194
+ messages: [
195
+ { role: 'system', content: systemPrompt },
196
+ { role: 'user', content: serializedMessages },
197
+ ],
198
+ });
199
+ const content = response.choices[0]?.message?.content;
200
+ if (content && typeof content === 'string' && content.trim()) {
201
+ return content.trim();
202
+ }
203
+ // Empty response: fallback to simple
204
+ console.warn('[MemoryManager] LLM returned empty summary, using simple');
205
+ }
206
+ catch (error) {
207
+ console.warn('[MemoryManager] LLM summarization failed, using simple:', error);
208
+ }
209
+ }
210
+ }
211
+ // Fallback: simple concatenation
212
+ return this.simpleConcat(messages);
213
+ }
214
+ /**
215
+ * Simple concatenation summarization.
170
216
  */
171
- async generateSummary(messages, _threadId) {
172
- // Default: Simple concatenation (override for LLM-based summarization)
217
+ simpleConcat(messages) {
173
218
  const userMessages = messages
174
- .filter(m => m.role === 'user' && typeof m.content === 'string')
175
- .map(m => m.content);
219
+ .filter(m => m.role === 'user')
220
+ .map(m => this.serializeMessage(m))
221
+ .slice(0, 3);
176
222
  const assistantMessages = messages
177
- .filter(m => m.role === 'assistant' && typeof m.content === 'string')
178
- .map(m => m.content);
223
+ .filter(m => m.role === 'assistant')
224
+ .map(m => this.serializeMessage(m))
225
+ .slice(0, 3);
179
226
  return [
180
- `User discussed: ${userMessages.slice(0, 3).join(', ').slice(0, 200)}...`,
181
- `Assistant covered: ${assistantMessages.slice(0, 3).join(', ').slice(0, 200)}...`,
227
+ `User discussed: ${userMessages.join(', ').slice(0, 200)}...`,
228
+ `Assistant covered: ${assistantMessages.join(', ').slice(0, 200)}...`,
182
229
  ].join('\n');
183
230
  }
231
+ /**
232
+ * Serialize message content for summarization.
233
+ * Handles string, multimodal arrays, and tool calls.
234
+ * Priority: tool_calls > string content > multimodal > unknown
235
+ */
236
+ serializeMessage(msg) {
237
+ // Tool calls (check first - common case where content is '')
238
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
239
+ const toolCalls = msg.tool_calls;
240
+ const toolNames = toolCalls.map((t) => t.function?.name || 'unknown').join(', ');
241
+ // Include content if non-empty
242
+ const content = typeof msg.content === 'string' && msg.content.trim()
243
+ ? ` - ${msg.content}`
244
+ : '';
245
+ return `[Tool calls: ${toolNames}]${content}`;
246
+ }
247
+ // Tool result
248
+ if (msg.role === 'tool') {
249
+ const content = typeof msg.content === 'string' ? msg.content : '[result]';
250
+ return `[Tool result: ${content.slice(0, 100)}]`;
251
+ }
252
+ // String content
253
+ if (typeof msg.content === 'string') {
254
+ return msg.content;
255
+ }
256
+ // Multimodal content (array of parts)
257
+ if (Array.isArray(msg.content)) {
258
+ const textParts = msg.content
259
+ .filter((p) => p.type === 'text')
260
+ .map((p) => p.text)
261
+ .join(' ');
262
+ return textParts || '[non-text content]';
263
+ }
264
+ return '[unknown content]';
265
+ }
266
+ /**
267
+ * Apply token budget enforcement to messages.
268
+ * Trims summary, context, and active messages to fit within budgets.
269
+ * PRESERVES original message order (important for system prompt precedence).
270
+ *
271
+ * @returns [trimmedMessages, droppedByBudget]
272
+ */
273
+ applyTokenBudget(messages, threadId) {
274
+ const budget = this.config.tokenBudget;
275
+ let droppedByBudget = 0;
276
+ // Track which messages to keep (by index)
277
+ const keepIndices = new Set();
278
+ // Categorize messages by index
279
+ const summaryIndices = [];
280
+ const contextIndices = [];
281
+ const activeIndices = [];
282
+ messages.forEach((msg, idx) => {
283
+ if (msg._meta?.summaryId?.startsWith('summary_')) {
284
+ summaryIndices.push(idx);
285
+ }
286
+ else if (msg._meta?.summaryId?.startsWith('context_')) {
287
+ contextIndices.push(idx);
288
+ }
289
+ else {
290
+ activeIndices.push(idx);
291
+ }
292
+ });
293
+ // 1. Apply summary budget (undefined = no limit, 0 = drop all)
294
+ if (budget.summary !== undefined) {
295
+ let tokens = 0;
296
+ for (const idx of summaryIndices) {
297
+ const msgTokens = (0, token_estimator_1.estimateMessageTokens)(messages[idx]);
298
+ if (tokens + msgTokens <= budget.summary) {
299
+ keepIndices.add(idx);
300
+ tokens += msgTokens;
301
+ }
302
+ else {
303
+ droppedByBudget++;
304
+ }
305
+ }
306
+ }
307
+ else {
308
+ summaryIndices.forEach(idx => keepIndices.add(idx));
309
+ }
310
+ // 2. Apply context budget (undefined = no limit, 0 = drop all)
311
+ if (budget.context !== undefined) {
312
+ let tokens = 0;
313
+ for (const idx of contextIndices) {
314
+ const msgTokens = (0, token_estimator_1.estimateMessageTokens)(messages[idx]);
315
+ if (tokens + msgTokens <= budget.context) {
316
+ keepIndices.add(idx);
317
+ tokens += msgTokens;
318
+ }
319
+ else {
320
+ droppedByBudget++;
321
+ }
322
+ }
323
+ }
324
+ else {
325
+ contextIndices.forEach(idx => keepIndices.add(idx));
326
+ }
327
+ // 3. Apply active budget (undefined = no limit, 0 = drop all)
328
+ // Process from end to keep most recent, but ALWAYS keep at least 1
329
+ if (budget.active !== undefined) {
330
+ let tokens = 0;
331
+ const keptActiveIndices = [];
332
+ for (let i = activeIndices.length - 1; i >= 0; i--) {
333
+ const idx = activeIndices[i];
334
+ const msgTokens = (0, token_estimator_1.estimateMessageTokens)(messages[idx]);
335
+ if (tokens + msgTokens <= budget.active || keptActiveIndices.length === 0) {
336
+ // Always keep at least the most recent message
337
+ keptActiveIndices.push(idx);
338
+ tokens += msgTokens;
339
+ }
340
+ else {
341
+ droppedByBudget++;
342
+ }
343
+ }
344
+ keptActiveIndices.forEach(idx => keepIndices.add(idx));
345
+ }
346
+ else {
347
+ activeIndices.forEach(idx => keepIndices.add(idx));
348
+ }
349
+ // Rebuild messages preserving original order
350
+ const result = messages.filter((_, idx) => keepIndices.has(idx));
351
+ return [result, droppedByBudget];
352
+ }
184
353
  /**
185
354
  * Store messages to long-term memory.
186
355
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/memory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/memory/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  * const processedMessages = await memory.process(messages, options);
21
21
  * ```
22
22
  */
23
+ import { estimateMessageTokens } from '../../lib/token-estimator.mjs';
23
24
  // ============================================================================
24
25
  // In-Memory Vector Store (Simple Implementation)
25
26
  // ============================================================================
@@ -152,6 +153,12 @@ export class MemoryManager {
152
153
  }
153
154
  }
154
155
  }
156
+ // 5. Apply token budget enforcement
157
+ if (this.config.tokenBudget) {
158
+ const [trimmed, budgetDropped] = this.applyTokenBudget(processedMessages, threadId);
159
+ processedMessages = trimmed;
160
+ droppedCount += budgetDropped;
161
+ }
155
162
  return {
156
163
  messages: processedMessages,
157
164
  summarized,
@@ -161,21 +168,183 @@ export class MemoryManager {
161
168
  }
162
169
  /**
163
170
  * Generate summary from messages.
164
- * Override this method for custom summarization logic.
171
+ * Supports 'simple' (concatenation) and 'llm' (LLM-based) modes.
172
+ */
173
+ async generateSummary(messages, _threadId, abortSignal) {
174
+ const config = this.config.summarizer;
175
+ // LLM-based summarization
176
+ if (config?.type === 'llm') {
177
+ if (!config.client) {
178
+ console.warn('[MemoryManager] type=llm but no client provided, using simple');
179
+ }
180
+ else {
181
+ try {
182
+ const serializedMessages = messages
183
+ .map(m => this.serializeMessage(m))
184
+ .join('\n');
185
+ const systemPrompt = config.systemPrompt ??
186
+ 'Summarize the following conversation concisely, preserving key facts, decisions, and tool actions. Output only the summary.';
187
+ const response = await config.client.chat.create({
188
+ model: config.model ?? 'gemini-2.5-flash',
189
+ messages: [
190
+ { role: 'system', content: systemPrompt },
191
+ { role: 'user', content: serializedMessages },
192
+ ],
193
+ });
194
+ const content = response.choices[0]?.message?.content;
195
+ if (content && typeof content === 'string' && content.trim()) {
196
+ return content.trim();
197
+ }
198
+ // Empty response: fallback to simple
199
+ console.warn('[MemoryManager] LLM returned empty summary, using simple');
200
+ }
201
+ catch (error) {
202
+ console.warn('[MemoryManager] LLM summarization failed, using simple:', error);
203
+ }
204
+ }
205
+ }
206
+ // Fallback: simple concatenation
207
+ return this.simpleConcat(messages);
208
+ }
209
+ /**
210
+ * Simple concatenation summarization.
165
211
  */
166
- async generateSummary(messages, _threadId) {
167
- // Default: Simple concatenation (override for LLM-based summarization)
212
+ simpleConcat(messages) {
168
213
  const userMessages = messages
169
- .filter(m => m.role === 'user' && typeof m.content === 'string')
170
- .map(m => m.content);
214
+ .filter(m => m.role === 'user')
215
+ .map(m => this.serializeMessage(m))
216
+ .slice(0, 3);
171
217
  const assistantMessages = messages
172
- .filter(m => m.role === 'assistant' && typeof m.content === 'string')
173
- .map(m => m.content);
218
+ .filter(m => m.role === 'assistant')
219
+ .map(m => this.serializeMessage(m))
220
+ .slice(0, 3);
174
221
  return [
175
- `User discussed: ${userMessages.slice(0, 3).join(', ').slice(0, 200)}...`,
176
- `Assistant covered: ${assistantMessages.slice(0, 3).join(', ').slice(0, 200)}...`,
222
+ `User discussed: ${userMessages.join(', ').slice(0, 200)}...`,
223
+ `Assistant covered: ${assistantMessages.join(', ').slice(0, 200)}...`,
177
224
  ].join('\n');
178
225
  }
226
+ /**
227
+ * Serialize message content for summarization.
228
+ * Handles string, multimodal arrays, and tool calls.
229
+ * Priority: tool_calls > string content > multimodal > unknown
230
+ */
231
+ serializeMessage(msg) {
232
+ // Tool calls (check first - common case where content is '')
233
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
234
+ const toolCalls = msg.tool_calls;
235
+ const toolNames = toolCalls.map((t) => t.function?.name || 'unknown').join(', ');
236
+ // Include content if non-empty
237
+ const content = typeof msg.content === 'string' && msg.content.trim()
238
+ ? ` - ${msg.content}`
239
+ : '';
240
+ return `[Tool calls: ${toolNames}]${content}`;
241
+ }
242
+ // Tool result
243
+ if (msg.role === 'tool') {
244
+ const content = typeof msg.content === 'string' ? msg.content : '[result]';
245
+ return `[Tool result: ${content.slice(0, 100)}]`;
246
+ }
247
+ // String content
248
+ if (typeof msg.content === 'string') {
249
+ return msg.content;
250
+ }
251
+ // Multimodal content (array of parts)
252
+ if (Array.isArray(msg.content)) {
253
+ const textParts = msg.content
254
+ .filter((p) => p.type === 'text')
255
+ .map((p) => p.text)
256
+ .join(' ');
257
+ return textParts || '[non-text content]';
258
+ }
259
+ return '[unknown content]';
260
+ }
261
+ /**
262
+ * Apply token budget enforcement to messages.
263
+ * Trims summary, context, and active messages to fit within budgets.
264
+ * PRESERVES original message order (important for system prompt precedence).
265
+ *
266
+ * @returns [trimmedMessages, droppedByBudget]
267
+ */
268
+ applyTokenBudget(messages, threadId) {
269
+ const budget = this.config.tokenBudget;
270
+ let droppedByBudget = 0;
271
+ // Track which messages to keep (by index)
272
+ const keepIndices = new Set();
273
+ // Categorize messages by index
274
+ const summaryIndices = [];
275
+ const contextIndices = [];
276
+ const activeIndices = [];
277
+ messages.forEach((msg, idx) => {
278
+ if (msg._meta?.summaryId?.startsWith('summary_')) {
279
+ summaryIndices.push(idx);
280
+ }
281
+ else if (msg._meta?.summaryId?.startsWith('context_')) {
282
+ contextIndices.push(idx);
283
+ }
284
+ else {
285
+ activeIndices.push(idx);
286
+ }
287
+ });
288
+ // 1. Apply summary budget (undefined = no limit, 0 = drop all)
289
+ if (budget.summary !== undefined) {
290
+ let tokens = 0;
291
+ for (const idx of summaryIndices) {
292
+ const msgTokens = estimateMessageTokens(messages[idx]);
293
+ if (tokens + msgTokens <= budget.summary) {
294
+ keepIndices.add(idx);
295
+ tokens += msgTokens;
296
+ }
297
+ else {
298
+ droppedByBudget++;
299
+ }
300
+ }
301
+ }
302
+ else {
303
+ summaryIndices.forEach(idx => keepIndices.add(idx));
304
+ }
305
+ // 2. Apply context budget (undefined = no limit, 0 = drop all)
306
+ if (budget.context !== undefined) {
307
+ let tokens = 0;
308
+ for (const idx of contextIndices) {
309
+ const msgTokens = estimateMessageTokens(messages[idx]);
310
+ if (tokens + msgTokens <= budget.context) {
311
+ keepIndices.add(idx);
312
+ tokens += msgTokens;
313
+ }
314
+ else {
315
+ droppedByBudget++;
316
+ }
317
+ }
318
+ }
319
+ else {
320
+ contextIndices.forEach(idx => keepIndices.add(idx));
321
+ }
322
+ // 3. Apply active budget (undefined = no limit, 0 = drop all)
323
+ // Process from end to keep most recent, but ALWAYS keep at least 1
324
+ if (budget.active !== undefined) {
325
+ let tokens = 0;
326
+ const keptActiveIndices = [];
327
+ for (let i = activeIndices.length - 1; i >= 0; i--) {
328
+ const idx = activeIndices[i];
329
+ const msgTokens = estimateMessageTokens(messages[idx]);
330
+ if (tokens + msgTokens <= budget.active || keptActiveIndices.length === 0) {
331
+ // Always keep at least the most recent message
332
+ keptActiveIndices.push(idx);
333
+ tokens += msgTokens;
334
+ }
335
+ else {
336
+ droppedByBudget++;
337
+ }
338
+ }
339
+ keptActiveIndices.forEach(idx => keepIndices.add(idx));
340
+ }
341
+ else {
342
+ activeIndices.forEach(idx => keepIndices.add(idx));
343
+ }
344
+ // Rebuild messages preserving original order
345
+ const result = messages.filter((_, idx) => keepIndices.has(idx));
346
+ return [result, droppedByBudget];
347
+ }
179
348
  /**
180
349
  * Store messages to long-term memory.
181
350
  */
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Browser-safe exports.
3
+ * Re-exports the core SDK without Node.js-specific modules.
4
+ */
5
+ export * from '../index';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /**
3
+ * Browser-safe exports.
4
+ * Re-exports the core SDK without Node.js-specific modules.
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Core SDK - browser safe
22
+ __exportStar(require("../index"), exports);
23
+ // Explicitly exclude Node-only modules by not exporting them
24
+ // Users who need SkillLoader or MCPClient should import from '@bowenqt/qiniu-ai-sdk/node'
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,0BAA0B;AAC1B,2CAAyB;AAEzB,6DAA6D;AAC7D,0FAA0F"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Browser-safe exports.
3
+ * Re-exports the core SDK without Node.js-specific modules.
4
+ */
5
+ // Core SDK - browser safe
6
+ export * from '../index.mjs';
7
+ // Explicitly exclude Node-only modules by not exporting them
8
+ // Users who need SkillLoader or MCPClient should import from '@bowenqt/qiniu-ai-sdk/node'
9
+ //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -40,7 +40,7 @@ export type { ApprovalConfig, ApprovalHandler, ApprovalContext, ApprovalResult }
40
40
  export type { InternalMessage, AgentState, StepResult as GraphStepResult, AgentGraphEvents, MessageMeta } from './ai/internal-types';
41
41
  export { stripMeta, isDroppable, getSkillId, getSummaryId, getDroppableId } from './ai/internal-types';
42
42
  export { MemoryManager, InMemoryVectorStore, isDroppable as isMessageDroppable } from './ai/memory';
43
- export type { MemoryConfig, MemoryProcessOptions, MemoryProcessResult, ShortTermMemoryConfig, SummarizerConfig, LongTermMemoryConfig, VectorStore, VectorDocument, } from './ai/memory';
43
+ export type { MemoryConfig, MemoryProcessOptions, MemoryProcessResult, ShortTermMemoryConfig, SummarizerConfig, LongTermMemoryConfig, TokenBudgetConfig, VectorStore, VectorDocument, } from './ai/memory';
44
44
  export { SkillLoader } from './modules/skills';
45
45
  export type { Skill } from './modules/skills';
46
46
  export { MCPClient, MCPClientError, adaptMCPToolsToRegistry, getAllMCPToolsAsRegistered, MCPHttpTransport, MCPHttpTransportError, PKCEFlow, DeviceCodeFlow, OAuthError, generateCodeVerifier, generateCodeChallenge, generateState, refreshAccessToken, MemoryTokenStore, FileTokenStore, TokenManager, } from './modules/mcp';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -93,10 +93,13 @@ var memory_1 = require("./ai/memory");
93
93
  Object.defineProperty(exports, "MemoryManager", { enumerable: true, get: function () { return memory_1.MemoryManager; } });
94
94
  Object.defineProperty(exports, "InMemoryVectorStore", { enumerable: true, get: function () { return memory_1.InMemoryVectorStore; } });
95
95
  Object.defineProperty(exports, "isMessageDroppable", { enumerable: true, get: function () { return memory_1.isDroppable; } });
96
- // Skills
96
+ // Skills (NOTE: SkillLoader requires Node.js - use '@bowenqt/qiniu-ai-sdk/node' for explicit import)
97
+ // Kept here for backward compatibility, will be excluded in browser bundle
97
98
  var skills_1 = require("./modules/skills");
98
99
  Object.defineProperty(exports, "SkillLoader", { enumerable: true, get: function () { return skills_1.SkillLoader; } });
99
100
  // MCP (Phase 1 + Phase 3)
101
+ // NOTE: MCPClient stdio transport requires Node.js - use '@bowenqt/qiniu-ai-sdk/node' for explicit import
102
+ // HTTP transport (MCPHttpTransport) is browser-compatible
100
103
  var mcp_1 = require("./modules/mcp");
101
104
  Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return mcp_1.MCPClient; } });
102
105
  Object.defineProperty(exports, "MCPClientError", { enumerable: true, get: function () { return mcp_1.MCPClientError; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -33,9 +33,12 @@ export { createAgent } from './ai/create-agent.mjs';
33
33
  export { stripMeta, isDroppable, getSkillId, getSummaryId, getDroppableId } from './ai/internal-types.mjs';
34
34
  // Memory Manager
35
35
  export { MemoryManager, InMemoryVectorStore, isDroppable as isMessageDroppable } from './ai/memory.mjs';
36
- // Skills
36
+ // Skills (NOTE: SkillLoader requires Node.js - use '@bowenqt/qiniu-ai-sdk/node' for explicit import)
37
+ // Kept here for backward compatibility, will be excluded in browser bundle
37
38
  export { SkillLoader } from './modules/skills.mjs';
38
39
  // MCP (Phase 1 + Phase 3)
40
+ // NOTE: MCPClient stdio transport requires Node.js - use '@bowenqt/qiniu-ai-sdk/node' for explicit import
41
+ // HTTP transport (MCPHttpTransport) is browser-compatible
39
42
  export { MCPClient, MCPClientError, adaptMCPToolsToRegistry, getAllMCPToolsAsRegistered,
40
43
  // Phase 3: HTTP Transport
41
44
  MCPHttpTransport, MCPHttpTransportError,
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Node.js specific exports.
3
+ * Contains modules that require Node.js APIs (fs, path, child_process).
4
+ * Browser/Edge builds should NOT import from this module.
5
+ */
6
+ export { SkillLoader, SkillSecurityError, SkillNotFoundError } from '../modules/skills/loader';
7
+ export type { Skill, SkillLoaderConfig, SkillReference, SkillInjectionConfig, SkillInjectionPosition, SkillBudget, } from '../modules/skills/types';
8
+ export { DEFAULT_SKILL_CONFIG, DEFAULT_SKILL_BUDGET } from '../modules/skills/types';
9
+ export { MCPClient, MCPClientError } from '../modules/mcp/client';
10
+ export type { MCPClientConfig, MCPServerConfig, MCPHttpServerConfig, MCPToolDefinition, MCPToolResult, MCPConnectionState, } from '../modules/mcp/types';
11
+ export { DEFAULT_MCP_CONFIG } from '../modules/mcp/types';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,YAAY,EACR,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClE,YAAY,EACR,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Node.js specific exports.
4
+ * Contains modules that require Node.js APIs (fs, path, child_process).
5
+ * Browser/Edge builds should NOT import from this module.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DEFAULT_MCP_CONFIG = exports.MCPClientError = exports.MCPClient = exports.DEFAULT_SKILL_BUDGET = exports.DEFAULT_SKILL_CONFIG = exports.SkillNotFoundError = exports.SkillSecurityError = exports.SkillLoader = void 0;
9
+ // Re-export skill loader (requires fs, path)
10
+ var loader_1 = require("../modules/skills/loader");
11
+ Object.defineProperty(exports, "SkillLoader", { enumerable: true, get: function () { return loader_1.SkillLoader; } });
12
+ Object.defineProperty(exports, "SkillSecurityError", { enumerable: true, get: function () { return loader_1.SkillSecurityError; } });
13
+ Object.defineProperty(exports, "SkillNotFoundError", { enumerable: true, get: function () { return loader_1.SkillNotFoundError; } });
14
+ var types_1 = require("../modules/skills/types");
15
+ Object.defineProperty(exports, "DEFAULT_SKILL_CONFIG", { enumerable: true, get: function () { return types_1.DEFAULT_SKILL_CONFIG; } });
16
+ Object.defineProperty(exports, "DEFAULT_SKILL_BUDGET", { enumerable: true, get: function () { return types_1.DEFAULT_SKILL_BUDGET; } });
17
+ // Re-export MCP client (requires child_process for stdio transport)
18
+ var client_1 = require("../modules/mcp/client");
19
+ Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return client_1.MCPClient; } });
20
+ Object.defineProperty(exports, "MCPClientError", { enumerable: true, get: function () { return client_1.MCPClientError; } });
21
+ var types_2 = require("../modules/mcp/types");
22
+ Object.defineProperty(exports, "DEFAULT_MCP_CONFIG", { enumerable: true, get: function () { return types_2.DEFAULT_MCP_CONFIG; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAA6C;AAC7C,mDAA+F;AAAtF,qGAAA,WAAW,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAS5D,iDAAqF;AAA5E,6GAAA,oBAAoB,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AAEnD,oEAAoE;AACpE,gDAAkE;AAAzD,mGAAA,SAAS,OAAA;AAAE,wGAAA,cAAc,OAAA;AASlC,8CAA0D;AAAjD,2GAAA,kBAAkB,OAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Node.js specific exports.
3
+ * Contains modules that require Node.js APIs (fs, path, child_process).
4
+ * Browser/Edge builds should NOT import from this module.
5
+ */
6
+ // Re-export skill loader (requires fs, path)
7
+ export { SkillLoader, SkillSecurityError, SkillNotFoundError } from '../modules/skills/loader.mjs';
8
+ export { DEFAULT_SKILL_CONFIG, DEFAULT_SKILL_BUDGET } from '../modules/skills/types.mjs';
9
+ // Re-export MCP client (requires child_process for stdio transport)
10
+ export { MCPClient, MCPClientError } from '../modules/mcp/client.mjs';
11
+ export { DEFAULT_MCP_CONFIG } from '../modules/mcp/types.mjs';
12
+ //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bowenqt/qiniu-ai-sdk",
3
- "version": "0.17.0",
3
+ "version": "0.18.1",
4
4
  "description": "TypeScript SDK for Qiniu Cloud AI Token API - Chat, Image, Video generation and more",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -16,6 +16,26 @@
16
16
  "default": "./dist/index.mjs"
17
17
  }
18
18
  },
19
+ "./node": {
20
+ "require": {
21
+ "types": "./dist/node/index.d.ts",
22
+ "default": "./dist/node/index.js"
23
+ },
24
+ "import": {
25
+ "types": "./dist/node/index.d.ts",
26
+ "default": "./dist/node/index.mjs"
27
+ }
28
+ },
29
+ "./browser": {
30
+ "require": {
31
+ "types": "./dist/browser/index.d.ts",
32
+ "default": "./dist/browser/index.js"
33
+ },
34
+ "import": {
35
+ "types": "./dist/browser/index.d.ts",
36
+ "default": "./dist/browser/index.mjs"
37
+ }
38
+ },
19
39
  "./adapter": {
20
40
  "require": {
21
41
  "types": "./dist/adapter/index.d.ts",