@bowenqt/qiniu-ai-sdk 0.14.0 → 0.16.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 (107) hide show
  1. package/dist/ai/agent-graph.d.ts +8 -0
  2. package/dist/ai/agent-graph.d.ts.map +1 -1
  3. package/dist/ai/agent-graph.js +23 -3
  4. package/dist/ai/agent-graph.js.map +1 -1
  5. package/dist/ai/agent-graph.mjs +23 -3
  6. package/dist/ai/create-agent.d.ts +101 -0
  7. package/dist/ai/create-agent.d.ts.map +1 -0
  8. package/dist/ai/create-agent.js +88 -0
  9. package/dist/ai/create-agent.js.map +1 -0
  10. package/dist/ai/create-agent.mjs +85 -0
  11. package/dist/ai/generate-object.d.ts +99 -0
  12. package/dist/ai/generate-object.d.ts.map +1 -0
  13. package/dist/ai/generate-object.js +237 -0
  14. package/dist/ai/generate-object.js.map +1 -0
  15. package/dist/ai/generate-object.mjs +201 -0
  16. package/dist/ai/generate-text.d.ts +13 -1
  17. package/dist/ai/generate-text.d.ts.map +1 -1
  18. package/dist/ai/generate-text.js +35 -5
  19. package/dist/ai/generate-text.js.map +1 -1
  20. package/dist/ai/generate-text.mjs +35 -5
  21. package/dist/ai/graph/checkpointer.d.ts +72 -2
  22. package/dist/ai/graph/checkpointer.d.ts.map +1 -1
  23. package/dist/ai/graph/checkpointer.js +99 -1
  24. package/dist/ai/graph/checkpointer.js.map +1 -1
  25. package/dist/ai/graph/checkpointer.mjs +96 -1
  26. package/dist/ai/graph/index.d.ts +2 -2
  27. package/dist/ai/graph/index.d.ts.map +1 -1
  28. package/dist/ai/graph/index.js +5 -1
  29. package/dist/ai/graph/index.js.map +1 -1
  30. package/dist/ai/graph/index.mjs +3 -1
  31. package/dist/ai/graph/postgres-checkpointer.d.ts +1 -1
  32. package/dist/ai/graph/postgres-checkpointer.d.ts.map +1 -1
  33. package/dist/ai/graph/postgres-checkpointer.js +13 -3
  34. package/dist/ai/graph/postgres-checkpointer.js.map +1 -1
  35. package/dist/ai/graph/postgres-checkpointer.mjs +13 -3
  36. package/dist/ai/graph/redis-checkpointer.d.ts +1 -1
  37. package/dist/ai/graph/redis-checkpointer.d.ts.map +1 -1
  38. package/dist/ai/graph/redis-checkpointer.js +6 -2
  39. package/dist/ai/graph/redis-checkpointer.js.map +1 -1
  40. package/dist/ai/graph/redis-checkpointer.mjs +6 -2
  41. package/dist/ai/internal-types.d.ts +14 -0
  42. package/dist/ai/internal-types.d.ts.map +1 -1
  43. package/dist/ai/internal-types.js +15 -0
  44. package/dist/ai/internal-types.js.map +1 -1
  45. package/dist/ai/internal-types.mjs +13 -0
  46. package/dist/ai/memory/index.d.ts +147 -0
  47. package/dist/ai/memory/index.d.ts.map +1 -0
  48. package/dist/ai/memory/index.js +240 -0
  49. package/dist/ai/memory/index.js.map +1 -0
  50. package/dist/ai/memory/index.mjs +234 -0
  51. package/dist/ai/nodes/execute-node.d.ts +2 -1
  52. package/dist/ai/nodes/execute-node.d.ts.map +1 -1
  53. package/dist/ai/nodes/execute-node.js +11 -33
  54. package/dist/ai/nodes/execute-node.js.map +1 -1
  55. package/dist/ai/nodes/execute-node.mjs +11 -33
  56. package/dist/ai/nodes/memory-node.d.ts.map +1 -1
  57. package/dist/ai/nodes/memory-node.js +14 -16
  58. package/dist/ai/nodes/memory-node.js.map +1 -1
  59. package/dist/ai/nodes/memory-node.mjs +15 -17
  60. package/dist/ai/stream-object.d.ts +109 -0
  61. package/dist/ai/stream-object.d.ts.map +1 -0
  62. package/dist/ai/stream-object.js +383 -0
  63. package/dist/ai/stream-object.js.map +1 -0
  64. package/dist/ai/stream-object.mjs +347 -0
  65. package/dist/ai/tool-approval.d.ts +90 -0
  66. package/dist/ai/tool-approval.d.ts.map +1 -0
  67. package/dist/ai/tool-approval.js +151 -0
  68. package/dist/ai/tool-approval.js.map +1 -0
  69. package/dist/ai/tool-approval.mjs +147 -0
  70. package/dist/index.d.ts +17 -5
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +28 -3
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.mjs +16 -4
  75. package/dist/lib/capability-cache.d.ts +72 -0
  76. package/dist/lib/capability-cache.d.ts.map +1 -0
  77. package/dist/lib/capability-cache.js +117 -0
  78. package/dist/lib/capability-cache.js.map +1 -0
  79. package/dist/lib/capability-cache.mjs +113 -0
  80. package/dist/lib/content-converter.d.ts +33 -0
  81. package/dist/lib/content-converter.d.ts.map +1 -0
  82. package/dist/lib/content-converter.js +166 -0
  83. package/dist/lib/content-converter.js.map +1 -0
  84. package/dist/lib/content-converter.mjs +161 -0
  85. package/dist/lib/errors.d.ts +15 -0
  86. package/dist/lib/errors.d.ts.map +1 -1
  87. package/dist/lib/errors.js +13 -1
  88. package/dist/lib/errors.js.map +1 -1
  89. package/dist/lib/errors.mjs +11 -0
  90. package/dist/lib/messages.js +4 -3
  91. package/dist/lib/messages.js.map +1 -1
  92. package/dist/lib/messages.mjs +4 -3
  93. package/dist/lib/partial-json-parser.d.ts +63 -0
  94. package/dist/lib/partial-json-parser.d.ts.map +1 -0
  95. package/dist/lib/partial-json-parser.js +142 -0
  96. package/dist/lib/partial-json-parser.js.map +1 -0
  97. package/dist/lib/partial-json-parser.mjs +137 -0
  98. package/dist/lib/token-estimator.d.ts.map +1 -1
  99. package/dist/lib/token-estimator.js +3 -2
  100. package/dist/lib/token-estimator.js.map +1 -1
  101. package/dist/lib/token-estimator.mjs +3 -2
  102. package/dist/lib/tool-registry.d.ts +21 -0
  103. package/dist/lib/tool-registry.d.ts.map +1 -1
  104. package/dist/lib/tool-registry.js.map +1 -1
  105. package/dist/lib/types.d.ts +20 -4
  106. package/dist/lib/types.d.ts.map +1 -1
  107. package/package.json +1 -1
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Tool Approval - Unified approval mechanism for tool execution.
3
+ * Implements Human-in-the-Loop pattern with configurable policies.
4
+ */
5
+ // ============================================================================
6
+ // Rejection Message
7
+ // ============================================================================
8
+ const REJECTION_MESSAGE = '[Approval Rejected] Tool execution was denied by user.';
9
+ // ============================================================================
10
+ // Approval Logic
11
+ // ============================================================================
12
+ /**
13
+ * Check if a tool source matches an auto-approve pattern.
14
+ */
15
+ function isSourceAutoApproved(source, patterns) {
16
+ for (const pattern of patterns) {
17
+ // Match full source (e.g., 'mcp:github')
18
+ if (pattern === `${source.type}:${source.namespace}`) {
19
+ return true;
20
+ }
21
+ // Match type only (e.g., 'builtin')
22
+ if (pattern === source.type) {
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+ /**
29
+ * Determine if approval is needed and execute handler if so.
30
+ */
31
+ export async function checkApproval(tool, toolCall, args, messages, config) {
32
+ // Tool doesn't require approval
33
+ if (!tool.requiresApproval) {
34
+ return { approved: true };
35
+ }
36
+ // Check auto-approve sources
37
+ if (config?.autoApproveSources && tool.source) {
38
+ if (isSourceAutoApproved(tool.source, config.autoApproveSources)) {
39
+ return { approved: true };
40
+ }
41
+ }
42
+ // Get handler (per-tool overrides global)
43
+ const handler = tool.approvalHandler ?? config?.onApprovalRequired;
44
+ // No handler configured but approval required - FAIL CLOSED
45
+ if (!handler) {
46
+ return {
47
+ approved: false,
48
+ rejectionMessage: '[Approval Required] No handler configured. Tool execution denied.',
49
+ };
50
+ }
51
+ // Execute handler
52
+ const context = {
53
+ toolCall,
54
+ toolName: tool.name,
55
+ toolDescription: tool.description ?? '',
56
+ args,
57
+ messages,
58
+ };
59
+ try {
60
+ const approved = await handler(context);
61
+ return {
62
+ approved,
63
+ rejectionMessage: approved ? undefined : REJECTION_MESSAGE,
64
+ };
65
+ }
66
+ catch (error) {
67
+ // Handler error = rejection
68
+ const errorMessage = error instanceof Error ? error.message : String(error);
69
+ return {
70
+ approved: false,
71
+ rejectionMessage: `[Approval Error] ${errorMessage}`,
72
+ };
73
+ }
74
+ }
75
+ /**
76
+ * Execute a single tool with approval check.
77
+ * Returns result or rejection message.
78
+ */
79
+ export async function executeToolWithApproval(tool, toolCall, args, messages, config, abortSignal) {
80
+ // Check approval
81
+ const approvalResult = await checkApproval(tool, toolCall, args, messages, config);
82
+ if (!approvalResult.approved) {
83
+ return {
84
+ result: approvalResult.rejectionMessage ?? REJECTION_MESSAGE,
85
+ isError: false, // Not an error, just rejected
86
+ isRejected: true,
87
+ };
88
+ }
89
+ // Check abort
90
+ if (abortSignal?.aborted) {
91
+ return {
92
+ result: 'Execution cancelled',
93
+ isError: true,
94
+ isRejected: false,
95
+ };
96
+ }
97
+ // Execute tool
98
+ if (!tool.execute) {
99
+ return {
100
+ result: `Tool ${tool.name} has no execute function`,
101
+ isError: true,
102
+ isRejected: false,
103
+ };
104
+ }
105
+ try {
106
+ const execContext = {
107
+ toolCallId: toolCall.id,
108
+ messages: messages,
109
+ abortSignal,
110
+ };
111
+ const result = await tool.execute(args, execContext);
112
+ return {
113
+ result: serializeResult(result),
114
+ isError: false,
115
+ isRejected: false,
116
+ };
117
+ }
118
+ catch (error) {
119
+ const errorMessage = error instanceof Error ? error.message : String(error);
120
+ return {
121
+ result: `Error: ${errorMessage}`,
122
+ isError: true,
123
+ isRejected: false,
124
+ };
125
+ }
126
+ }
127
+ // ============================================================================
128
+ // Helpers
129
+ // ============================================================================
130
+ /**
131
+ * Serialize tool result to string.
132
+ */
133
+ function serializeResult(result) {
134
+ if (result === undefined || result === null) {
135
+ return '';
136
+ }
137
+ if (typeof result === 'string') {
138
+ return result;
139
+ }
140
+ try {
141
+ return JSON.stringify(result, null, 2);
142
+ }
143
+ catch {
144
+ return String(result);
145
+ }
146
+ }
147
+ //# sourceMappingURL=tool-approval.js.map
package/dist/index.d.ts CHANGED
@@ -3,12 +3,19 @@ export { CHAT_MODELS, IMAGE_MODELS, VIDEO_MODELS, MODEL_CATALOG, } from './model
3
3
  export type { ChatModel, ImageModel as ImageModelType, VideoModel as VideoModelType, Model, ModelInfo, } from './models';
4
4
  export type { QiniuAIOptions, Logger, LogLevel, FetchAdapter, Middleware, MiddlewareRequest, MiddlewareResponse, RequestOptions, } from './client';
5
5
  export { APIError } from './lib/request';
6
- export { AIError, ToolExecutionError, MaxStepsExceededError } from './lib/errors';
6
+ export { AIError, ToolExecutionError, MaxStepsExceededError, StructuredOutputError } from './lib/errors';
7
+ export type { ValidationErrorItem } from './lib/errors';
7
8
  export * from './lib/types';
8
9
  export { appendMessages, truncateHistory } from './lib/messages';
9
10
  export type { TruncateOptions } from './lib/messages';
10
11
  export { generateText, serializeToolResult } from './ai/generate-text';
11
12
  export type { GenerateTextOptions, GenerateTextResult, StepResult, Tool, ToolResult, } from './ai/generate-text';
13
+ export { generateObject } from './ai/generate-object';
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';
12
19
  export type { ChatCompletionRequest, ChatCompletionResponse, ChatCompletionChunk, ChatMessage, ContentPart, ToolCall, ChatDelta, ToolCallDelta, } from './lib/types';
13
20
  export type { StreamOptions, StreamResult } from './modules/chat';
14
21
  export { parseSSEStream, createStreamAccumulator, accumulateDelta } from './lib/sse';
@@ -27,14 +34,19 @@ export { generateTextWithGraph } from './ai/generate-text';
27
34
  export type { GenerateTextWithGraphOptions, GenerateTextWithGraphResult } from './ai/generate-text';
28
35
  export { AgentGraph } from './ai/agent-graph';
29
36
  export type { AgentGraphOptions, AgentGraphResult } from './ai/agent-graph';
30
- export type { InternalMessage, AgentState, StepResult as GraphStepResult, AgentGraphEvents } from './ai/internal-types';
31
- export { stripMeta, isDroppable, getSkillId } from './ai/internal-types';
37
+ export { createAgent } from './ai/create-agent';
38
+ export type { AgentConfig, Agent, AgentRunOptions, AgentRunWithThreadOptions } from './ai/create-agent';
39
+ export type { ApprovalConfig, ApprovalHandler, ApprovalContext, ApprovalResult } from './ai/tool-approval';
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';
32
44
  export { SkillLoader } from './modules/skills';
33
45
  export type { Skill } from './modules/skills';
34
46
  export { MCPClient, MCPClientError, adaptMCPToolsToRegistry, getAllMCPToolsAsRegistered, MCPHttpTransport, MCPHttpTransportError, PKCEFlow, DeviceCodeFlow, OAuthError, generateCodeVerifier, generateCodeChallenge, generateState, refreshAccessToken, MemoryTokenStore, FileTokenStore, TokenManager, } from './modules/mcp';
35
47
  export type { MCPClientConfig, MCPServerConfig, MCPStdioServerConfig, MCPHttpServerConfig, MCPOAuthConfig, MCPToolDefinition, MCPToolResult, MCPConnectionState, MCPTransport, TokenProvider, OAuthTokens, TokenStore, FileTokenStoreConfig, } from './modules/mcp';
36
- export { MemoryCheckpointer, deserializeCheckpoint, RedisCheckpointer, PostgresCheckpointer, } from './ai/graph';
37
- export type { Checkpointer, Checkpoint, CheckpointMetadata, SerializedAgentState, RedisClient, RedisCheckpointerConfig, PostgresClient, PostgresCheckpointerConfig, } from './ai/graph';
48
+ export { MemoryCheckpointer, deserializeCheckpoint, RedisCheckpointer, PostgresCheckpointer, isPendingApproval, getPendingApproval, resumeWithApproval, } from './ai/graph';
49
+ export type { Checkpointer, Checkpoint, CheckpointMetadata, SerializedAgentState, RedisClient, RedisCheckpointerConfig, PostgresClient, PostgresCheckpointerConfig, CheckpointStatus, CheckpointSaveOptions, PendingApproval, ResumeWithApprovalResult, ToolExecutor, } from './ai/graph';
38
50
  export { ToolRegistry, ToolConflictError } from './lib/tool-registry';
39
51
  export type { RegisteredTool, ToolSource, ToolSourceType, ToolParameters, ToolRegistryConfig, ConflictStrategy } from './lib/tool-registry';
40
52
  export { StateGraph, END, MaxGraphStepsError } from './ai/graph';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,OAAO,EACP,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GAChB,MAAM,UAAU,CAAC;AAElB,YAAY,EACR,SAAS,EACT,UAAU,IAAI,cAAc,EAC5B,UAAU,IAAI,cAAc,EAC5B,KAAK,EACL,SAAS,GACZ,MAAM,UAAU,CAAC;AAElB,YAAY,EACR,cAAc,EACd,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACjB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGlF,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,IAAI,EACJ,UAAU,GACb,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACR,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,aAAa,GAChB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG9D,YAAY,EACR,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,IAAI,gBAAgB,EAC/B,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,cAAc,GACjB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,IAAI,gBAAgB,EAC/B,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGzE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGvE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGtF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGnG,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGzH,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGpG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,IAAI,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EACH,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAE1B,gBAAgB,EAChB,qBAAqB,EAErB,QAAQ,EACR,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAElB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,EACV,oBAAoB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACH,kBAAkB,EAClB,qBAAqB,EAErB,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,YAAY,CAAC;AACpB,YAAY,EACR,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,0BAA0B,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5I,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG7G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG9F,OAAO,EACH,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,OAAO,EACH,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,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.deserializeCheckpoint = exports.MemoryCheckpointer = exports.TokenManager = exports.FileTokenStore = exports.MemoryTokenStore = exports.refreshAccessToken = exports.generateState = exports.generateCodeChallenge = exports.generateCodeVerifier = exports.OAuthError = exports.DeviceCodeFlow = exports.PKCEFlow = exports.MCPHttpTransportError = exports.MCPHttpTransport = exports.getAllMCPToolsAsRegistered = exports.adaptMCPToolsToRegistry = exports.MCPClientError = exports.MCPClient = exports.SkillLoader = exports.getSkillId = exports.isDroppable = exports.stripMeta = exports.AgentGraph = exports.generateTextWithGraph = exports.createPoller = exports.pollUntilComplete = exports.accumulateDelta = exports.createStreamAccumulator = exports.parseSSEStream = exports.serializeToolResult = exports.generateText = exports.truncateHistory = exports.appendMessages = exports.MaxStepsExceededError = exports.ToolExecutionError = exports.AIError = exports.APIError = exports.MODEL_CATALOG = exports.VIDEO_MODELS = exports.IMAGE_MODELS = exports.CHAT_MODELS = exports.timingMiddleware = exports.headersMiddleware = exports.retryMiddleware = exports.composeMiddleware = exports.defaultFetchAdapter = exports.createFilteredLogger = exports.noopLogger = exports.consoleLogger = exports.QiniuAI = void 0;
18
- exports.OTelTracer = exports.PRODUCTION_TRACER_CONFIG = exports.DEFAULT_TRACER_CONFIG = exports.redactAttributes = exports.redactContent = exports.getGlobalTracer = exports.setGlobalTracer = exports.ConsoleTracer = exports.NoopTracer = exports.DEFAULT_ESTIMATOR_CONFIG = exports.estimateMessagesTokens = exports.estimateMessageTokens = exports.defaultContentEstimator = exports.createTokenEstimator = exports.ContextOverflowError = exports.buildToolPairs = exports.compactMessages = exports.MaxGraphStepsError = exports.END = exports.StateGraph = exports.ToolConflictError = exports.ToolRegistry = exports.PostgresCheckpointer = exports.RedisCheckpointer = void 0;
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; } });
@@ -40,6 +40,7 @@ var errors_1 = require("./lib/errors");
40
40
  Object.defineProperty(exports, "AIError", { enumerable: true, get: function () { return errors_1.AIError; } });
41
41
  Object.defineProperty(exports, "ToolExecutionError", { enumerable: true, get: function () { return errors_1.ToolExecutionError; } });
42
42
  Object.defineProperty(exports, "MaxStepsExceededError", { enumerable: true, get: function () { return errors_1.MaxStepsExceededError; } });
43
+ Object.defineProperty(exports, "StructuredOutputError", { enumerable: true, get: function () { return errors_1.StructuredOutputError; } });
43
44
  // Shared types
44
45
  __exportStar(require("./lib/types"), exports);
45
46
  // Message helpers
@@ -50,6 +51,16 @@ Object.defineProperty(exports, "truncateHistory", { enumerable: true, get: funct
50
51
  var generate_text_1 = require("./ai/generate-text");
51
52
  Object.defineProperty(exports, "generateText", { enumerable: true, get: function () { return generate_text_1.generateText; } });
52
53
  Object.defineProperty(exports, "serializeToolResult", { enumerable: true, get: function () { return generate_text_1.serializeToolResult; } });
54
+ // generateObject (structured output)
55
+ var generate_object_1 = require("./ai/generate-object");
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; } });
53
64
  // SSE utilities (for advanced users who want to parse streams manually)
54
65
  var sse_1 = require("./lib/sse");
55
66
  Object.defineProperty(exports, "parseSSEStream", { enumerable: true, get: function () { return sse_1.parseSSEStream; } });
@@ -68,10 +79,20 @@ Object.defineProperty(exports, "generateTextWithGraph", { enumerable: true, get:
68
79
  // AgentGraph
69
80
  var agent_graph_1 = require("./ai/agent-graph");
70
81
  Object.defineProperty(exports, "AgentGraph", { enumerable: true, get: function () { return agent_graph_1.AgentGraph; } });
82
+ // createAgent (reusable agent wrapper)
83
+ var create_agent_1 = require("./ai/create-agent");
84
+ Object.defineProperty(exports, "createAgent", { enumerable: true, get: function () { return create_agent_1.createAgent; } });
71
85
  var internal_types_1 = require("./ai/internal-types");
72
86
  Object.defineProperty(exports, "stripMeta", { enumerable: true, get: function () { return internal_types_1.stripMeta; } });
73
87
  Object.defineProperty(exports, "isDroppable", { enumerable: true, get: function () { return internal_types_1.isDroppable; } });
74
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; } });
75
96
  // Skills
76
97
  var skills_1 = require("./modules/skills");
77
98
  Object.defineProperty(exports, "SkillLoader", { enumerable: true, get: function () { return skills_1.SkillLoader; } });
@@ -96,13 +117,17 @@ Object.defineProperty(exports, "refreshAccessToken", { enumerable: true, get: fu
96
117
  Object.defineProperty(exports, "MemoryTokenStore", { enumerable: true, get: function () { return mcp_1.MemoryTokenStore; } });
97
118
  Object.defineProperty(exports, "FileTokenStore", { enumerable: true, get: function () { return mcp_1.FileTokenStore; } });
98
119
  Object.defineProperty(exports, "TokenManager", { enumerable: true, get: function () { return mcp_1.TokenManager; } });
99
- // Checkpointer (Phase 1 + Phase 3)
120
+ // Checkpointer (Phase 1 + Phase 3 + Phase 5)
100
121
  var graph_1 = require("./ai/graph");
101
122
  Object.defineProperty(exports, "MemoryCheckpointer", { enumerable: true, get: function () { return graph_1.MemoryCheckpointer; } });
102
123
  Object.defineProperty(exports, "deserializeCheckpoint", { enumerable: true, get: function () { return graph_1.deserializeCheckpoint; } });
103
124
  // Phase 3: Redis + Postgres
104
125
  Object.defineProperty(exports, "RedisCheckpointer", { enumerable: true, get: function () { return graph_1.RedisCheckpointer; } });
105
126
  Object.defineProperty(exports, "PostgresCheckpointer", { enumerable: true, get: function () { return graph_1.PostgresCheckpointer; } });
127
+ // Phase 5: Async Approval
128
+ Object.defineProperty(exports, "isPendingApproval", { enumerable: true, get: function () { return graph_1.isPendingApproval; } });
129
+ Object.defineProperty(exports, "getPendingApproval", { enumerable: true, get: function () { return graph_1.getPendingApproval; } });
130
+ Object.defineProperty(exports, "resumeWithApproval", { enumerable: true, get: function () { return graph_1.resumeWithApproval; } });
106
131
  // Tool Registry
107
132
  var tool_registry_1 = require("./lib/tool-registry");
108
133
  Object.defineProperty(exports, "ToolRegistry", { enumerable: true, get: function () { return tool_registry_1.ToolRegistry; } });
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
@@ -4,13 +4,19 @@ export { QiniuAI, consoleLogger, noopLogger, createFilteredLogger, defaultFetchA
4
4
  export { CHAT_MODELS, IMAGE_MODELS, VIDEO_MODELS, MODEL_CATALOG, } from './models.mjs';
5
5
  // Error types
6
6
  export { APIError } from './lib/request.mjs';
7
- export { AIError, ToolExecutionError, MaxStepsExceededError } from './lib/errors.mjs';
7
+ export { AIError, ToolExecutionError, MaxStepsExceededError, StructuredOutputError } from './lib/errors.mjs';
8
8
  // Shared types
9
9
  export * from './lib/types.mjs';
10
10
  // Message helpers
11
11
  export { appendMessages, truncateHistory } from './lib/messages.mjs';
12
12
  // Native generateText
13
13
  export { generateText, serializeToolResult } from './ai/generate-text.mjs';
14
+ // generateObject (structured output)
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';
14
20
  // SSE utilities (for advanced users who want to parse streams manually)
15
21
  export { parseSSEStream, createStreamAccumulator, accumulateDelta } from './lib/sse.mjs';
16
22
  // Polling utilities (for advanced users who want to create custom pollers)
@@ -22,7 +28,11 @@ export { pollUntilComplete, createPoller } from './lib/poller.mjs';
22
28
  export { generateTextWithGraph } from './ai/generate-text.mjs';
23
29
  // AgentGraph
24
30
  export { AgentGraph } from './ai/agent-graph.mjs';
25
- export { stripMeta, isDroppable, getSkillId } from './ai/internal-types.mjs';
31
+ // createAgent (reusable agent wrapper)
32
+ export { createAgent } from './ai/create-agent.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';
26
36
  // Skills
27
37
  export { SkillLoader } from './modules/skills.mjs';
28
38
  // MCP (Phase 1 + Phase 3)
@@ -33,10 +43,12 @@ MCPHttpTransport, MCPHttpTransportError,
33
43
  PKCEFlow, DeviceCodeFlow, OAuthError, generateCodeVerifier, generateCodeChallenge, generateState, refreshAccessToken,
34
44
  // Phase 3: Token Store
35
45
  MemoryTokenStore, FileTokenStore, TokenManager, } from './modules/mcp.mjs';
36
- // Checkpointer (Phase 1 + Phase 3)
46
+ // Checkpointer (Phase 1 + Phase 3 + Phase 5)
37
47
  export { MemoryCheckpointer, deserializeCheckpoint,
38
48
  // Phase 3: Redis + Postgres
39
- RedisCheckpointer, PostgresCheckpointer, } from './ai/graph.mjs';
49
+ RedisCheckpointer, PostgresCheckpointer,
50
+ // Phase 5: Async Approval
51
+ isPendingApproval, getPendingApproval, resumeWithApproval, } from './ai/graph.mjs';
40
52
  // Tool Registry
41
53
  export { ToolRegistry, ToolConflictError } from './lib/tool-registry.mjs';
42
54
  // Graph (for advanced users)
@@ -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"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /**
3
+ * Capability cache for model feature detection.
4
+ * Caches model capabilities per client/baseUrl to avoid redundant probing.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { capabilityCache } from './capability-cache';
9
+ *
10
+ * // Check if model supports streaming JSON
11
+ * const supports = capabilityCache.get(client, 'gemini-2.5-flash', 'stream_json_schema');
12
+ *
13
+ * // Cache result after probing
14
+ * capabilityCache.set(client, 'gemini-2.5-flash', 'stream_json_schema', true);
15
+ * ```
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.capabilityCache = void 0;
19
+ exports.createCapabilityCache = createCapabilityCache;
20
+ /**
21
+ * Default TTL for cache entries (1 hour).
22
+ */
23
+ const DEFAULT_TTL_MS = 60 * 60 * 1000;
24
+ /**
25
+ * Capability cache implementation.
26
+ * Scoped by baseUrl + model + capability to avoid cross-provider contamination.
27
+ */
28
+ class CapabilityCache {
29
+ constructor(ttlMs = DEFAULT_TTL_MS) {
30
+ this.cache = new Map();
31
+ this.ttlMs = ttlMs;
32
+ }
33
+ /**
34
+ * Generate cache key from client, model, and capability.
35
+ */
36
+ getKey(client, model, capability) {
37
+ const baseUrl = client.getBaseUrl();
38
+ return `${baseUrl}:${model}:${capability}`;
39
+ }
40
+ /**
41
+ * Get cached capability status.
42
+ * Returns undefined if not cached or expired.
43
+ */
44
+ get(client, model, capability) {
45
+ const key = this.getKey(client, model, capability);
46
+ const entry = this.cache.get(key);
47
+ if (!entry) {
48
+ return undefined;
49
+ }
50
+ // Check expiration
51
+ if (Date.now() - entry.timestamp > this.ttlMs) {
52
+ this.cache.delete(key);
53
+ return undefined;
54
+ }
55
+ return entry.supported;
56
+ }
57
+ /**
58
+ * Set capability status.
59
+ */
60
+ set(client, model, capability, supported) {
61
+ const key = this.getKey(client, model, capability);
62
+ this.cache.set(key, {
63
+ supported,
64
+ timestamp: Date.now(),
65
+ });
66
+ }
67
+ /**
68
+ * Check if capability is cached and supported.
69
+ */
70
+ isSupported(client, model, capability) {
71
+ return this.get(client, model, capability) === true;
72
+ }
73
+ /**
74
+ * Check if capability is cached and not supported.
75
+ */
76
+ isNotSupported(client, model, capability) {
77
+ return this.get(client, model, capability) === false;
78
+ }
79
+ /**
80
+ * Clear all cached entries.
81
+ */
82
+ clear() {
83
+ this.cache.clear();
84
+ }
85
+ /**
86
+ * Clear entries for a specific client.
87
+ */
88
+ clearForClient(client) {
89
+ const baseUrl = client.getBaseUrl();
90
+ const keysToDelete = [];
91
+ for (const key of this.cache.keys()) {
92
+ if (key.startsWith(baseUrl + ':')) {
93
+ keysToDelete.push(key);
94
+ }
95
+ }
96
+ for (const key of keysToDelete) {
97
+ this.cache.delete(key);
98
+ }
99
+ }
100
+ /**
101
+ * Get cache size.
102
+ */
103
+ size() {
104
+ return this.cache.size;
105
+ }
106
+ }
107
+ /**
108
+ * Global capability cache instance.
109
+ */
110
+ exports.capabilityCache = new CapabilityCache();
111
+ /**
112
+ * Create a new capability cache with custom TTL (for testing).
113
+ */
114
+ function createCapabilityCache(ttlMs) {
115
+ return new CapabilityCache(ttlMs);
116
+ }
117
+ //# sourceMappingURL=capability-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-cache.js","sourceRoot":"","sources":["../../src/lib/capability-cache.ts"],"names":[],"mappings":"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"}