@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.
- package/dist/ai/agent-graph.d.ts +8 -0
- package/dist/ai/agent-graph.d.ts.map +1 -1
- package/dist/ai/agent-graph.js +23 -3
- package/dist/ai/agent-graph.js.map +1 -1
- package/dist/ai/agent-graph.mjs +23 -3
- package/dist/ai/create-agent.d.ts +101 -0
- package/dist/ai/create-agent.d.ts.map +1 -0
- package/dist/ai/create-agent.js +88 -0
- package/dist/ai/create-agent.js.map +1 -0
- package/dist/ai/create-agent.mjs +85 -0
- package/dist/ai/generate-object.d.ts +99 -0
- package/dist/ai/generate-object.d.ts.map +1 -0
- package/dist/ai/generate-object.js +237 -0
- package/dist/ai/generate-object.js.map +1 -0
- package/dist/ai/generate-object.mjs +201 -0
- package/dist/ai/generate-text.d.ts +13 -1
- package/dist/ai/generate-text.d.ts.map +1 -1
- package/dist/ai/generate-text.js +35 -5
- package/dist/ai/generate-text.js.map +1 -1
- package/dist/ai/generate-text.mjs +35 -5
- package/dist/ai/graph/checkpointer.d.ts +72 -2
- package/dist/ai/graph/checkpointer.d.ts.map +1 -1
- package/dist/ai/graph/checkpointer.js +99 -1
- package/dist/ai/graph/checkpointer.js.map +1 -1
- package/dist/ai/graph/checkpointer.mjs +96 -1
- package/dist/ai/graph/index.d.ts +2 -2
- package/dist/ai/graph/index.d.ts.map +1 -1
- package/dist/ai/graph/index.js +5 -1
- package/dist/ai/graph/index.js.map +1 -1
- package/dist/ai/graph/index.mjs +3 -1
- package/dist/ai/graph/postgres-checkpointer.d.ts +1 -1
- package/dist/ai/graph/postgres-checkpointer.d.ts.map +1 -1
- package/dist/ai/graph/postgres-checkpointer.js +13 -3
- package/dist/ai/graph/postgres-checkpointer.js.map +1 -1
- package/dist/ai/graph/postgres-checkpointer.mjs +13 -3
- package/dist/ai/graph/redis-checkpointer.d.ts +1 -1
- package/dist/ai/graph/redis-checkpointer.d.ts.map +1 -1
- package/dist/ai/graph/redis-checkpointer.js +6 -2
- package/dist/ai/graph/redis-checkpointer.js.map +1 -1
- package/dist/ai/graph/redis-checkpointer.mjs +6 -2
- package/dist/ai/internal-types.d.ts +14 -0
- package/dist/ai/internal-types.d.ts.map +1 -1
- package/dist/ai/internal-types.js +15 -0
- package/dist/ai/internal-types.js.map +1 -1
- package/dist/ai/internal-types.mjs +13 -0
- package/dist/ai/memory/index.d.ts +147 -0
- package/dist/ai/memory/index.d.ts.map +1 -0
- package/dist/ai/memory/index.js +240 -0
- package/dist/ai/memory/index.js.map +1 -0
- package/dist/ai/memory/index.mjs +234 -0
- package/dist/ai/nodes/execute-node.d.ts +2 -1
- package/dist/ai/nodes/execute-node.d.ts.map +1 -1
- package/dist/ai/nodes/execute-node.js +11 -33
- package/dist/ai/nodes/execute-node.js.map +1 -1
- package/dist/ai/nodes/execute-node.mjs +11 -33
- package/dist/ai/nodes/memory-node.d.ts.map +1 -1
- package/dist/ai/nodes/memory-node.js +14 -16
- package/dist/ai/nodes/memory-node.js.map +1 -1
- package/dist/ai/nodes/memory-node.mjs +15 -17
- package/dist/ai/stream-object.d.ts +109 -0
- package/dist/ai/stream-object.d.ts.map +1 -0
- package/dist/ai/stream-object.js +383 -0
- package/dist/ai/stream-object.js.map +1 -0
- package/dist/ai/stream-object.mjs +347 -0
- package/dist/ai/tool-approval.d.ts +90 -0
- package/dist/ai/tool-approval.d.ts.map +1 -0
- package/dist/ai/tool-approval.js +151 -0
- package/dist/ai/tool-approval.js.map +1 -0
- package/dist/ai/tool-approval.mjs +147 -0
- package/dist/index.d.ts +17 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -4
- package/dist/lib/capability-cache.d.ts +72 -0
- package/dist/lib/capability-cache.d.ts.map +1 -0
- package/dist/lib/capability-cache.js +117 -0
- package/dist/lib/capability-cache.js.map +1 -0
- package/dist/lib/capability-cache.mjs +113 -0
- package/dist/lib/content-converter.d.ts +33 -0
- package/dist/lib/content-converter.d.ts.map +1 -0
- package/dist/lib/content-converter.js +166 -0
- package/dist/lib/content-converter.js.map +1 -0
- package/dist/lib/content-converter.mjs +161 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +13 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/errors.mjs +11 -0
- package/dist/lib/messages.js +4 -3
- package/dist/lib/messages.js.map +1 -1
- package/dist/lib/messages.mjs +4 -3
- package/dist/lib/partial-json-parser.d.ts +63 -0
- package/dist/lib/partial-json-parser.d.ts.map +1 -0
- package/dist/lib/partial-json-parser.js +142 -0
- package/dist/lib/partial-json-parser.js.map +1 -0
- package/dist/lib/partial-json-parser.mjs +137 -0
- package/dist/lib/token-estimator.d.ts.map +1 -1
- package/dist/lib/token-estimator.js +3 -2
- package/dist/lib/token-estimator.js.map +1 -1
- package/dist/lib/token-estimator.mjs +3 -2
- package/dist/lib/tool-registry.d.ts +21 -0
- package/dist/lib/tool-registry.d.ts.map +1 -1
- package/dist/lib/tool-registry.js.map +1 -1
- package/dist/lib/types.d.ts +20 -4
- package/dist/lib/types.d.ts.map +1 -1
- 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
|
|
31
|
-
export {
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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":";;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,mCAUkB;AATd,iGAAA,OAAO,OAAA;AACP,uGAAA,aAAa,OAAA;AACb,oGAAA,UAAU,OAAA;AACV,8GAAA,oBAAoB,OAAA;AACpB,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AACjB,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAGpB,gBAAgB;AAChB,mCAKkB;AAJd,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AAsBjB,cAAc;AACd,yCAAyC;AAAhC,mGAAA,QAAQ,OAAA;AACjB,
|
|
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
|
-
|
|
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,
|
|
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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"}
|