@bowenqt/qiniu-ai-sdk 0.15.0 → 0.17.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 (68) hide show
  1. package/dist/ai/agent-graph.d.ts +5 -0
  2. package/dist/ai/agent-graph.d.ts.map +1 -1
  3. package/dist/ai/agent-graph.js +21 -2
  4. package/dist/ai/agent-graph.js.map +1 -1
  5. package/dist/ai/agent-graph.mjs +21 -2
  6. package/dist/ai/create-agent.d.ts +3 -0
  7. package/dist/ai/create-agent.d.ts.map +1 -1
  8. package/dist/ai/create-agent.js +6 -5
  9. package/dist/ai/create-agent.js.map +1 -1
  10. package/dist/ai/create-agent.mjs +6 -5
  11. package/dist/ai/generate-object.d.ts.map +1 -1
  12. package/dist/ai/generate-object.js +7 -1
  13. package/dist/ai/generate-object.js.map +1 -1
  14. package/dist/ai/generate-object.mjs +7 -1
  15. package/dist/ai/generate-text.d.ts +9 -1
  16. package/dist/ai/generate-text.d.ts.map +1 -1
  17. package/dist/ai/generate-text.js +25 -4
  18. package/dist/ai/generate-text.js.map +1 -1
  19. package/dist/ai/generate-text.mjs +25 -4
  20. package/dist/ai/internal-types.d.ts +11 -0
  21. package/dist/ai/internal-types.d.ts.map +1 -1
  22. package/dist/ai/internal-types.js +15 -0
  23. package/dist/ai/internal-types.js.map +1 -1
  24. package/dist/ai/internal-types.mjs +13 -0
  25. package/dist/ai/memory/index.d.ts +147 -0
  26. package/dist/ai/memory/index.d.ts.map +1 -0
  27. package/dist/ai/memory/index.js +240 -0
  28. package/dist/ai/memory/index.js.map +1 -0
  29. package/dist/ai/memory/index.mjs +234 -0
  30. package/dist/ai/nodes/memory-node.d.ts.map +1 -1
  31. package/dist/ai/nodes/memory-node.js +14 -16
  32. package/dist/ai/nodes/memory-node.js.map +1 -1
  33. package/dist/ai/nodes/memory-node.mjs +15 -17
  34. package/dist/ai/stream-object.d.ts +109 -0
  35. package/dist/ai/stream-object.d.ts.map +1 -0
  36. package/dist/ai/stream-object.js +383 -0
  37. package/dist/ai/stream-object.js.map +1 -0
  38. package/dist/ai/stream-object.mjs +347 -0
  39. package/dist/index.d.ts +8 -2
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +16 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +7 -1
  44. package/dist/lib/capability-cache.d.ts +72 -0
  45. package/dist/lib/capability-cache.d.ts.map +1 -0
  46. package/dist/lib/capability-cache.js +117 -0
  47. package/dist/lib/capability-cache.js.map +1 -0
  48. package/dist/lib/capability-cache.mjs +113 -0
  49. package/dist/lib/content-converter.d.ts +33 -0
  50. package/dist/lib/content-converter.d.ts.map +1 -0
  51. package/dist/lib/content-converter.js +166 -0
  52. package/dist/lib/content-converter.js.map +1 -0
  53. package/dist/lib/content-converter.mjs +161 -0
  54. package/dist/lib/messages.js +4 -3
  55. package/dist/lib/messages.js.map +1 -1
  56. package/dist/lib/messages.mjs +4 -3
  57. package/dist/lib/partial-json-parser.d.ts +63 -0
  58. package/dist/lib/partial-json-parser.d.ts.map +1 -0
  59. package/dist/lib/partial-json-parser.js +142 -0
  60. package/dist/lib/partial-json-parser.js.map +1 -0
  61. package/dist/lib/partial-json-parser.mjs +137 -0
  62. package/dist/lib/token-estimator.d.ts.map +1 -1
  63. package/dist/lib/token-estimator.js +3 -2
  64. package/dist/lib/token-estimator.js.map +1 -1
  65. package/dist/lib/token-estimator.mjs +3 -2
  66. package/dist/lib/types.d.ts +20 -4
  67. package/dist/lib/types.d.ts.map +1 -1
  68. package/package.json +1 -1
@@ -0,0 +1,347 @@
1
+ /**
2
+ * streamObject - Stream structured output with incremental parsing.
3
+ * Bypasses predict-node to enable streaming with JSON schema.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { streamObject } from '@bowenqt/qiniu-ai-sdk';
8
+ * import { z } from 'zod';
9
+ *
10
+ * const { partialObjectStream, object } = await streamObject({
11
+ * client,
12
+ * model: 'gemini-2.5-flash',
13
+ * schema: z.object({
14
+ * title: z.string(),
15
+ * chapters: z.array(z.object({
16
+ * title: z.string(),
17
+ * content: z.string(),
18
+ * })),
19
+ * }),
20
+ * prompt: 'Generate a book outline about AI',
21
+ * });
22
+ *
23
+ * // Stream partial objects
24
+ * for await (const partial of partialObjectStream) {
25
+ * console.log(partial);
26
+ * }
27
+ *
28
+ * // Get final validated object
29
+ * const result = await object;
30
+ * ```
31
+ */
32
+ import { StructuredOutputError } from '../lib/errors.mjs';
33
+ import { PartialJsonParser } from '../lib/partial-json-parser.mjs';
34
+ import { capabilityCache } from '../lib/capability-cache.mjs';
35
+ import { generateObject } from './generate-object.mjs';
36
+ import { normalizeContent } from '../lib/content-converter.mjs';
37
+ // ============================================================================
38
+ // JSON Schema Conversion (reuse from generate-object)
39
+ // ============================================================================
40
+ // Dynamic import cache for zod-to-json-schema
41
+ let loadAttempted = false;
42
+ let cachedZodToJsonSchema = null;
43
+ async function zodToJsonSchemaAsync(schema) {
44
+ if (!loadAttempted) {
45
+ loadAttempted = true;
46
+ try {
47
+ const zodToJsonSchemaModule = await import('zod-to-json-schema');
48
+ cachedZodToJsonSchema = zodToJsonSchemaModule.zodToJsonSchema;
49
+ }
50
+ catch {
51
+ cachedZodToJsonSchema = null;
52
+ }
53
+ }
54
+ if (cachedZodToJsonSchema) {
55
+ const result = cachedZodToJsonSchema(schema);
56
+ const { $schema, ...rest } = result;
57
+ return rest;
58
+ }
59
+ return parseZodSchemaToJsonSchema(schema);
60
+ }
61
+ function parseZodSchemaToJsonSchema(schema) {
62
+ const def = schema._def;
63
+ if (!def) {
64
+ return { type: 'object' };
65
+ }
66
+ const typeName = def.typeName;
67
+ switch (typeName) {
68
+ case 'ZodString':
69
+ return { type: 'string' };
70
+ case 'ZodNumber':
71
+ return { type: 'number' };
72
+ case 'ZodBoolean':
73
+ return { type: 'boolean' };
74
+ case 'ZodArray':
75
+ return {
76
+ type: 'array',
77
+ items: def.type ? parseZodSchemaToJsonSchema(def.type) : {},
78
+ };
79
+ case 'ZodObject': {
80
+ const shape = def.shape?.() ?? {};
81
+ const properties = {};
82
+ const required = [];
83
+ for (const [key, value] of Object.entries(shape)) {
84
+ properties[key] = parseZodSchemaToJsonSchema(value);
85
+ const innerDef = value?._def;
86
+ if (innerDef?.typeName !== 'ZodOptional') {
87
+ required.push(key);
88
+ }
89
+ }
90
+ return {
91
+ type: 'object',
92
+ properties,
93
+ ...(required.length > 0 ? { required } : {}),
94
+ };
95
+ }
96
+ default:
97
+ return { type: 'object' };
98
+ }
99
+ }
100
+ // ============================================================================
101
+ // Error Classification
102
+ // ============================================================================
103
+ /**
104
+ * Check if error indicates unsupported streaming format.
105
+ */
106
+ function isUnsupportedStreamError(error) {
107
+ // Check error code
108
+ const code = error?.code;
109
+ if (code === 'UNSUPPORTED_STREAM_FORMAT' ||
110
+ code === 'INVALID_RESPONSE_FORMAT' ||
111
+ code === 'unsupported_response_format') {
112
+ return true;
113
+ }
114
+ // Check HTTP status
115
+ const status = error?.status;
116
+ if (status === 400 || status === 422) {
117
+ const message = String(error?.message ?? '').toLowerCase();
118
+ if (message.includes('stream') ||
119
+ message.includes('response_format') ||
120
+ message.includes('json_schema')) {
121
+ return true;
122
+ }
123
+ }
124
+ return false;
125
+ }
126
+ // ============================================================================
127
+ // Main Function
128
+ // ============================================================================
129
+ /**
130
+ * Stream structured output with JSON schema validation.
131
+ */
132
+ export async function streamObject(options) {
133
+ const { client, model, schema, allowFallback = false } = options;
134
+ // Check capability cache
135
+ if (capabilityCache.isNotSupported(client, model, 'stream_json_schema')) {
136
+ if (allowFallback) {
137
+ return createFallbackResult(options);
138
+ }
139
+ throw new Error(`Model ${model} does not support streaming JSON schema. Set allowFallback: true to use non-streaming.`);
140
+ }
141
+ // Try streaming
142
+ try {
143
+ return await streamObjectInternal(options);
144
+ }
145
+ catch (error) {
146
+ if (isUnsupportedStreamError(error)) {
147
+ // Cache the failure
148
+ capabilityCache.set(client, model, 'stream_json_schema', false);
149
+ if (allowFallback) {
150
+ console.warn('streamObject: API does not support streaming JSON schema, falling back to non-streaming');
151
+ return createFallbackResult(options);
152
+ }
153
+ }
154
+ throw error;
155
+ }
156
+ }
157
+ /**
158
+ * Internal streaming implementation.
159
+ */
160
+ async function streamObjectInternal(options) {
161
+ const { client, model, schema, prompt, messages, system, temperature, topP, maxTokens, abortSignal } = options;
162
+ // Build messages
163
+ const apiMessages = [];
164
+ if (system) {
165
+ apiMessages.push({ role: 'system', content: system });
166
+ }
167
+ if (messages) {
168
+ apiMessages.push(...messages);
169
+ }
170
+ if (prompt) {
171
+ apiMessages.push({ role: 'user', content: prompt });
172
+ }
173
+ // Convert schema to JSON Schema
174
+ const jsonSchema = await zodToJsonSchemaAsync(schema);
175
+ // Build response format
176
+ const responseFormat = {
177
+ type: 'json_schema',
178
+ json_schema: {
179
+ name: 'response',
180
+ strict: true,
181
+ schema: jsonSchema,
182
+ },
183
+ };
184
+ // Normalize multimodal content (image -> image_url) for API compatibility
185
+ const normalizedMessages = apiMessages.map(msg => ({
186
+ ...msg,
187
+ content: normalizeContent(msg.content),
188
+ }));
189
+ // Create streaming request - bypass predict-node, go directly to client
190
+ const response = await client.chat.createStream({
191
+ model,
192
+ messages: normalizedMessages,
193
+ temperature,
194
+ top_p: topP,
195
+ max_tokens: maxTokens,
196
+ response_format: responseFormat,
197
+ }, { signal: abortSignal });
198
+ // NOTE: capabilityCache is set AFTER stream completes successfully (in background consumer)
199
+ // Create parser and state
200
+ const parser = new PartialJsonParser();
201
+ let rawText = '';
202
+ let usage;
203
+ let resolveObject;
204
+ let rejectObject;
205
+ let resolveRaw;
206
+ let resolveUsage;
207
+ const objectPromise = new Promise((resolve, reject) => {
208
+ resolveObject = resolve;
209
+ rejectObject = reject;
210
+ });
211
+ const rawTextPromise = new Promise((resolve) => {
212
+ resolveRaw = resolve;
213
+ });
214
+ const usagePromise = new Promise((resolve) => {
215
+ resolveUsage = resolve;
216
+ });
217
+ // Shared state for background consumer and partial stream
218
+ const partialValues = [];
219
+ let streamComplete = false;
220
+ let streamError = null;
221
+ const waiters = [];
222
+ // Background consumer - ensures object resolves even if partialObjectStream is not iterated
223
+ const backgroundConsumer = (async () => {
224
+ try {
225
+ for await (const chunk of response) {
226
+ const delta = chunk.choices?.[0]?.delta?.content ?? '';
227
+ if (delta) {
228
+ rawText += delta;
229
+ parser.append(delta);
230
+ // Try to parse partial object
231
+ const result = parser.parsePartial();
232
+ if (result.value !== null) {
233
+ partialValues.push(result.value);
234
+ // Wake up any waiting iterators
235
+ while (waiters.length > 0) {
236
+ waiters.shift().resolve(false);
237
+ }
238
+ }
239
+ }
240
+ // Capture usage from final chunk
241
+ if (chunk.usage) {
242
+ usage = chunk.usage;
243
+ }
244
+ }
245
+ // Stream complete - cache success
246
+ capabilityCache.set(client, model, 'stream_json_schema', true);
247
+ // Resolve final values
248
+ streamComplete = true;
249
+ resolveRaw(rawText);
250
+ resolveUsage(usage);
251
+ // Validate final object
252
+ try {
253
+ const parseResult = schema.safeParse(JSON.parse(rawText));
254
+ if (parseResult.success) {
255
+ resolveObject(parseResult.data);
256
+ }
257
+ else {
258
+ const validationErrors = parseResult.error.errors.map(e => ({
259
+ path: e.path.map(String),
260
+ message: e.message,
261
+ }));
262
+ const error = new StructuredOutputError('Validation failed', rawText, validationErrors);
263
+ streamError = error; // Ensure partialObjectStream also throws
264
+ rejectObject(error);
265
+ }
266
+ }
267
+ catch (e) {
268
+ const error = e instanceof Error ? e : new Error(String(e));
269
+ streamError = error; // Ensure partialObjectStream also throws
270
+ rejectObject(error);
271
+ }
272
+ // Wake up any waiting iterators
273
+ while (waiters.length > 0) {
274
+ waiters.shift().resolve(true);
275
+ }
276
+ }
277
+ catch (error) {
278
+ streamError = error instanceof Error ? error : new Error(String(error));
279
+ streamComplete = true;
280
+ resolveRaw(rawText);
281
+ resolveUsage(usage);
282
+ rejectObject(streamError);
283
+ // Wake up any waiting iterators
284
+ while (waiters.length > 0) {
285
+ waiters.shift().resolve(true);
286
+ }
287
+ }
288
+ })();
289
+ // Create async generator for partial objects (consumes from shared state)
290
+ async function* generatePartials() {
291
+ let yieldedCount = 0;
292
+ while (true) {
293
+ // Yield any new partial values
294
+ while (yieldedCount < partialValues.length) {
295
+ yield partialValues[yieldedCount++];
296
+ }
297
+ // Check if stream is complete
298
+ if (streamComplete) {
299
+ if (streamError)
300
+ throw streamError;
301
+ break;
302
+ }
303
+ // Wait for more data
304
+ await new Promise((resolve) => {
305
+ waiters.push({ resolve });
306
+ });
307
+ }
308
+ }
309
+ return {
310
+ partialObjectStream: generatePartials(),
311
+ object: objectPromise,
312
+ rawText: rawTextPromise,
313
+ usage: usagePromise,
314
+ streamed: true,
315
+ };
316
+ }
317
+ /**
318
+ * Create fallback result using non-streaming generateObject.
319
+ */
320
+ async function createFallbackResult(options) {
321
+ // Use generateObject (non-streaming)
322
+ const result = await generateObject({
323
+ client: options.client,
324
+ model: options.model,
325
+ schema: options.schema,
326
+ prompt: options.prompt,
327
+ messages: options.messages,
328
+ system: options.system,
329
+ temperature: options.temperature,
330
+ topP: options.topP,
331
+ maxTokens: options.maxTokens,
332
+ mode: 'strict',
333
+ abortSignal: options.abortSignal,
334
+ });
335
+ // Create single-yield async iterable
336
+ async function* singleYield() {
337
+ yield result.object;
338
+ }
339
+ return {
340
+ partialObjectStream: singleYield(),
341
+ object: Promise.resolve(result.object),
342
+ rawText: Promise.resolve(result.raw),
343
+ usage: Promise.resolve(result.usage),
344
+ streamed: false,
345
+ };
346
+ }
347
+ //# sourceMappingURL=stream-object.js.map
package/dist/index.d.ts CHANGED
@@ -12,6 +12,10 @@ export { generateText, serializeToolResult } from './ai/generate-text';
12
12
  export type { GenerateTextOptions, GenerateTextResult, StepResult, Tool, ToolResult, } from './ai/generate-text';
13
13
  export { generateObject } from './ai/generate-object';
14
14
  export type { GenerateObjectOptions, GenerateObjectResult, GenerateObjectMode, } from './ai/generate-object';
15
+ export { streamObject } from './ai/stream-object';
16
+ export type { StreamObjectOptions, StreamObjectResult, DeepPartial, } from './ai/stream-object';
17
+ export { PartialJsonParser, parsePartialJson } from './lib/partial-json-parser';
18
+ export type { ParseResult } from './lib/partial-json-parser';
15
19
  export type { ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ChatMessage, ContentPart, ToolCall, ChatDelta, ToolCallDelta, } from './lib/types';
16
20
  export type { StreamOptions, StreamResult } from './modules/chat';
17
21
  export { parseSSEStream, createStreamAccumulator, accumulateDelta } from './lib/sse';
@@ -33,8 +37,10 @@ export type { AgentGraphOptions, AgentGraphResult } from './ai/agent-graph';
33
37
  export { createAgent } from './ai/create-agent';
34
38
  export type { AgentConfig, Agent, AgentRunOptions, AgentRunWithThreadOptions } from './ai/create-agent';
35
39
  export type { ApprovalConfig, ApprovalHandler, ApprovalContext, ApprovalResult } from './ai/tool-approval';
36
- export type { InternalMessage, AgentState, StepResult as GraphStepResult, AgentGraphEvents } from './ai/internal-types';
37
- export { stripMeta, isDroppable, getSkillId } from './ai/internal-types';
40
+ export type { InternalMessage, AgentState, StepResult as GraphStepResult, AgentGraphEvents, MessageMeta } from './ai/internal-types';
41
+ export { stripMeta, isDroppable, getSkillId, getSummaryId, getDroppableId } from './ai/internal-types';
42
+ export { MemoryManager, InMemoryVectorStore, isDroppable as isMessageDroppable } from './ai/memory';
43
+ export type { MemoryConfig, MemoryProcessOptions, MemoryProcessResult, ShortTermMemoryConfig, SummarizerConfig, LongTermMemoryConfig, VectorStore, VectorDocument, } from './ai/memory';
38
44
  export { SkillLoader } from './modules/skills';
39
45
  export type { Skill } from './modules/skills';
40
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
@@ -14,8 +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.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.createAgent = exports.AgentGraph = exports.generateTextWithGraph = exports.createPoller = exports.pollUntilComplete = exports.accumulateDelta = exports.createStreamAccumulator = exports.parseSSEStream = exports.generateObject = exports.serializeToolResult = exports.generateText = exports.truncateHistory = exports.appendMessages = exports.StructuredOutputError = 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.resumeWithApproval = exports.getPendingApproval = exports.isPendingApproval = exports.PostgresCheckpointer = exports.RedisCheckpointer = exports.deserializeCheckpoint = exports.MemoryCheckpointer = exports.TokenManager = void 0;
17
+ exports.PKCEFlow = exports.MCPHttpTransportError = exports.MCPHttpTransport = exports.getAllMCPToolsAsRegistered = exports.adaptMCPToolsToRegistry = exports.MCPClientError = exports.MCPClient = exports.SkillLoader = exports.isMessageDroppable = exports.InMemoryVectorStore = exports.MemoryManager = exports.getDroppableId = exports.getSummaryId = exports.getSkillId = exports.isDroppable = exports.stripMeta = exports.createAgent = exports.AgentGraph = exports.generateTextWithGraph = exports.createPoller = exports.pollUntilComplete = exports.accumulateDelta = exports.createStreamAccumulator = exports.parseSSEStream = exports.parsePartialJson = exports.PartialJsonParser = exports.streamObject = exports.generateObject = exports.serializeToolResult = exports.generateText = exports.truncateHistory = exports.appendMessages = exports.StructuredOutputError = 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.resumeWithApproval = exports.getPendingApproval = exports.isPendingApproval = exports.PostgresCheckpointer = exports.RedisCheckpointer = exports.deserializeCheckpoint = exports.MemoryCheckpointer = exports.TokenManager = exports.FileTokenStore = exports.MemoryTokenStore = exports.refreshAccessToken = exports.generateState = exports.generateCodeChallenge = exports.generateCodeVerifier = exports.OAuthError = exports.DeviceCodeFlow = void 0;
19
19
  // Main client
20
20
  var client_1 = require("./client");
21
21
  Object.defineProperty(exports, "QiniuAI", { enumerable: true, get: function () { return client_1.QiniuAI; } });
@@ -54,6 +54,13 @@ Object.defineProperty(exports, "serializeToolResult", { enumerable: true, get: f
54
54
  // generateObject (structured output)
55
55
  var generate_object_1 = require("./ai/generate-object");
56
56
  Object.defineProperty(exports, "generateObject", { enumerable: true, get: function () { return generate_object_1.generateObject; } });
57
+ // streamObject (streaming structured output)
58
+ var stream_object_1 = require("./ai/stream-object");
59
+ Object.defineProperty(exports, "streamObject", { enumerable: true, get: function () { return stream_object_1.streamObject; } });
60
+ // Partial JSON parser (for advanced users)
61
+ var partial_json_parser_1 = require("./lib/partial-json-parser");
62
+ Object.defineProperty(exports, "PartialJsonParser", { enumerable: true, get: function () { return partial_json_parser_1.PartialJsonParser; } });
63
+ Object.defineProperty(exports, "parsePartialJson", { enumerable: true, get: function () { return partial_json_parser_1.parsePartialJson; } });
57
64
  // SSE utilities (for advanced users who want to parse streams manually)
58
65
  var sse_1 = require("./lib/sse");
59
66
  Object.defineProperty(exports, "parseSSEStream", { enumerable: true, get: function () { return sse_1.parseSSEStream; } });
@@ -79,6 +86,13 @@ var internal_types_1 = require("./ai/internal-types");
79
86
  Object.defineProperty(exports, "stripMeta", { enumerable: true, get: function () { return internal_types_1.stripMeta; } });
80
87
  Object.defineProperty(exports, "isDroppable", { enumerable: true, get: function () { return internal_types_1.isDroppable; } });
81
88
  Object.defineProperty(exports, "getSkillId", { enumerable: true, get: function () { return internal_types_1.getSkillId; } });
89
+ Object.defineProperty(exports, "getSummaryId", { enumerable: true, get: function () { return internal_types_1.getSummaryId; } });
90
+ Object.defineProperty(exports, "getDroppableId", { enumerable: true, get: function () { return internal_types_1.getDroppableId; } });
91
+ // Memory Manager
92
+ var memory_1 = require("./ai/memory");
93
+ Object.defineProperty(exports, "MemoryManager", { enumerable: true, get: function () { return memory_1.MemoryManager; } });
94
+ Object.defineProperty(exports, "InMemoryVectorStore", { enumerable: true, get: function () { return memory_1.InMemoryVectorStore; } });
95
+ Object.defineProperty(exports, "isMessageDroppable", { enumerable: true, get: function () { return memory_1.isDroppable; } });
82
96
  // Skills
83
97
  var skills_1 = require("./modules/skills");
84
98
  Object.defineProperty(exports, "SkillLoader", { enumerable: true, get: function () { return skills_1.SkillLoader; } });
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
@@ -13,6 +13,10 @@ export { appendMessages, truncateHistory } from './lib/messages.mjs';
13
13
  export { generateText, serializeToolResult } from './ai/generate-text.mjs';
14
14
  // generateObject (structured output)
15
15
  export { generateObject } from './ai/generate-object.mjs';
16
+ // streamObject (streaming structured output)
17
+ export { streamObject } from './ai/stream-object.mjs';
18
+ // Partial JSON parser (for advanced users)
19
+ export { PartialJsonParser, parsePartialJson } from './lib/partial-json-parser.mjs';
16
20
  // SSE utilities (for advanced users who want to parse streams manually)
17
21
  export { parseSSEStream, createStreamAccumulator, accumulateDelta } from './lib/sse.mjs';
18
22
  // Polling utilities (for advanced users who want to create custom pollers)
@@ -26,7 +30,9 @@ export { generateTextWithGraph } from './ai/generate-text.mjs';
26
30
  export { AgentGraph } from './ai/agent-graph.mjs';
27
31
  // createAgent (reusable agent wrapper)
28
32
  export { createAgent } from './ai/create-agent.mjs';
29
- export { stripMeta, isDroppable, getSkillId } from './ai/internal-types.mjs';
33
+ export { stripMeta, isDroppable, getSkillId, getSummaryId, getDroppableId } from './ai/internal-types.mjs';
34
+ // Memory Manager
35
+ export { MemoryManager, InMemoryVectorStore, isDroppable as isMessageDroppable } from './ai/memory.mjs';
30
36
  // Skills
31
37
  export { SkillLoader } from './modules/skills.mjs';
32
38
  // MCP (Phase 1 + Phase 3)
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Capability cache for model feature detection.
3
+ * Caches model capabilities per client/baseUrl to avoid redundant probing.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { capabilityCache } from './capability-cache';
8
+ *
9
+ * // Check if model supports streaming JSON
10
+ * const supports = capabilityCache.get(client, 'gemini-2.5-flash', 'stream_json_schema');
11
+ *
12
+ * // Cache result after probing
13
+ * capabilityCache.set(client, 'gemini-2.5-flash', 'stream_json_schema', true);
14
+ * ```
15
+ */
16
+ import type { IQiniuClient } from './types';
17
+ /**
18
+ * Capability types that can be cached.
19
+ */
20
+ export type CapabilityType = 'stream_json_schema' | 'stream_json_object' | 'vision' | 'tools' | 'reasoning';
21
+ /**
22
+ * Capability cache implementation.
23
+ * Scoped by baseUrl + model + capability to avoid cross-provider contamination.
24
+ */
25
+ declare class CapabilityCache {
26
+ private cache;
27
+ private ttlMs;
28
+ constructor(ttlMs?: number);
29
+ /**
30
+ * Generate cache key from client, model, and capability.
31
+ */
32
+ private getKey;
33
+ /**
34
+ * Get cached capability status.
35
+ * Returns undefined if not cached or expired.
36
+ */
37
+ get(client: IQiniuClient, model: string, capability: CapabilityType): boolean | undefined;
38
+ /**
39
+ * Set capability status.
40
+ */
41
+ set(client: IQiniuClient, model: string, capability: CapabilityType, supported: boolean): void;
42
+ /**
43
+ * Check if capability is cached and supported.
44
+ */
45
+ isSupported(client: IQiniuClient, model: string, capability: CapabilityType): boolean;
46
+ /**
47
+ * Check if capability is cached and not supported.
48
+ */
49
+ isNotSupported(client: IQiniuClient, model: string, capability: CapabilityType): boolean;
50
+ /**
51
+ * Clear all cached entries.
52
+ */
53
+ clear(): void;
54
+ /**
55
+ * Clear entries for a specific client.
56
+ */
57
+ clearForClient(client: IQiniuClient): void;
58
+ /**
59
+ * Get cache size.
60
+ */
61
+ size(): number;
62
+ }
63
+ /**
64
+ * Global capability cache instance.
65
+ */
66
+ export declare const capabilityCache: CapabilityCache;
67
+ /**
68
+ * Create a new capability cache with custom TTL (for testing).
69
+ */
70
+ export declare function createCapabilityCache(ttlMs?: number): CapabilityCache;
71
+ export {};
72
+ //# sourceMappingURL=capability-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-cache.d.ts","sourceRoot":"","sources":["../../src/lib/capability-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,cAAc,GACpB,oBAAoB,GACpB,oBAAoB,GACpB,QAAQ,GACR,OAAO,GACP,WAAW,CAAC;AAelB;;;GAGG;AACH,cAAM,eAAe;IACjB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,SAAiB;IAIlC;;OAEG;IACH,OAAO,CAAC,MAAM;IAKd;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS;IAiBzF;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ9F;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO;IAIrF;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO;IAIxF;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAiB1C;;OAEG;IACH,IAAI,IAAI,MAAM;CAGjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAErE"}