mcp-agent-foundry 1.0.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/LICENSE +21 -0
- package/README.md +477 -0
- package/dist/cli/install-skills.d.ts +11 -0
- package/dist/cli/install-skills.d.ts.map +1 -0
- package/dist/cli/install-skills.js +143 -0
- package/dist/cli/install-skills.js.map +1 -0
- package/dist/cli/recovery-commands.d.ts +41 -0
- package/dist/cli/recovery-commands.d.ts.map +1 -0
- package/dist/cli/recovery-commands.js +241 -0
- package/dist/cli/recovery-commands.js.map +1 -0
- package/dist/cli/setup-wizard.d.ts +25 -0
- package/dist/cli/setup-wizard.d.ts.map +1 -0
- package/dist/cli/setup-wizard.js +1417 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/test-connection.d.ts +45 -0
- package/dist/cli/test-connection.d.ts.map +1 -0
- package/dist/cli/test-connection.js +317 -0
- package/dist/cli/test-connection.js.map +1 -0
- package/dist/cli.d.ts +75 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +704 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +57 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +99 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +14 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +22 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +184 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +347 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/merger.d.ts +76 -0
- package/dist/config/merger.d.ts.map +1 -0
- package/dist/config/merger.js +189 -0
- package/dist/config/merger.js.map +1 -0
- package/dist/config/schema.d.ts +20 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +20 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +254 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +363 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/config/worktree-defaults.d.ts +23 -0
- package/dist/config/worktree-defaults.d.ts.map +1 -0
- package/dist/config/worktree-defaults.js +78 -0
- package/dist/config/worktree-defaults.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/tools/compare-agents.d.ts +25 -0
- package/dist/mcp/tools/compare-agents.d.ts.map +1 -0
- package/dist/mcp/tools/compare-agents.js +177 -0
- package/dist/mcp/tools/compare-agents.js.map +1 -0
- package/dist/mcp/tools/critique-plan.d.ts +26 -0
- package/dist/mcp/tools/critique-plan.d.ts.map +1 -0
- package/dist/mcp/tools/critique-plan.js +162 -0
- package/dist/mcp/tools/critique-plan.js.map +1 -0
- package/dist/mcp/tools/design-feedback.d.ts +26 -0
- package/dist/mcp/tools/design-feedback.d.ts.map +1 -0
- package/dist/mcp/tools/design-feedback.js +216 -0
- package/dist/mcp/tools/design-feedback.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +50 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +191 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/invoke-agent.d.ts +25 -0
- package/dist/mcp/tools/invoke-agent.d.ts.map +1 -0
- package/dist/mcp/tools/invoke-agent.js +141 -0
- package/dist/mcp/tools/invoke-agent.js.map +1 -0
- package/dist/mcp/tools/review-code.d.ts +25 -0
- package/dist/mcp/tools/review-code.d.ts.map +1 -0
- package/dist/mcp/tools/review-code.js +170 -0
- package/dist/mcp/tools/review-code.js.map +1 -0
- package/dist/mcp/tools/tasks/claim-next-task.d.ts +22 -0
- package/dist/mcp/tools/tasks/claim-next-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/claim-next-task.js +203 -0
- package/dist/mcp/tools/tasks/claim-next-task.js.map +1 -0
- package/dist/mcp/tools/tasks/create-routed-task.d.ts +17 -0
- package/dist/mcp/tools/tasks/create-routed-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/create-routed-task.js +178 -0
- package/dist/mcp/tools/tasks/create-routed-task.js.map +1 -0
- package/dist/mcp/tools/tasks/execute-pipeline.d.ts +22 -0
- package/dist/mcp/tools/tasks/execute-pipeline.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/execute-pipeline.js +401 -0
- package/dist/mcp/tools/tasks/execute-pipeline.js.map +1 -0
- package/dist/mcp/tools/tasks/execute-task.d.ts +32 -0
- package/dist/mcp/tools/tasks/execute-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/execute-task.js +284 -0
- package/dist/mcp/tools/tasks/execute-task.js.map +1 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.d.ts +26 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.js +460 -0
- package/dist/mcp/tools/tasks/get-pipeline-status.js.map +1 -0
- package/dist/mcp/tools/tasks/index.d.ts +36 -0
- package/dist/mcp/tools/tasks/index.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/index.js +66 -0
- package/dist/mcp/tools/tasks/index.js.map +1 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts +17 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.js +147 -0
- package/dist/mcp/tools/worktree/cleanup-worktrees.js.map +1 -0
- package/dist/mcp/tools/worktree/get-worktree-status.d.ts +17 -0
- package/dist/mcp/tools/worktree/get-worktree-status.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/get-worktree-status.js +123 -0
- package/dist/mcp/tools/worktree/get-worktree-status.js.map +1 -0
- package/dist/mcp/tools/worktree/index.d.ts +41 -0
- package/dist/mcp/tools/worktree/index.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/index.js +69 -0
- package/dist/mcp/tools/worktree/index.js.map +1 -0
- package/dist/mcp/tools/worktree/list-worktrees.d.ts +17 -0
- package/dist/mcp/tools/worktree/list-worktrees.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/list-worktrees.js +136 -0
- package/dist/mcp/tools/worktree/list-worktrees.js.map +1 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.d.ts +19 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.d.ts.map +1 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.js +228 -0
- package/dist/mcp/tools/worktree/resolve-conflicts.js.map +1 -0
- package/dist/mcp/transport/stdio.d.ts +13 -0
- package/dist/mcp/transport/stdio.d.ts.map +1 -0
- package/dist/mcp/transport/stdio.js +15 -0
- package/dist/mcp/transport/stdio.js.map +1 -0
- package/dist/observability/logger.d.ts +137 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +235 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +250 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +364 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/persistence/index.d.ts +9 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +9 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/state-schema.d.ts +116 -0
- package/dist/persistence/state-schema.d.ts.map +1 -0
- package/dist/persistence/state-schema.js +28 -0
- package/dist/persistence/state-schema.js.map +1 -0
- package/dist/persistence/state-store.d.ts +111 -0
- package/dist/persistence/state-store.d.ts.map +1 -0
- package/dist/persistence/state-store.js +291 -0
- package/dist/persistence/state-store.js.map +1 -0
- package/dist/providers/anthropic.d.ts +164 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +500 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +151 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +227 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/gemini.d.ts +85 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +414 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/kimi.d.ts +19 -0
- package/dist/providers/kimi.d.ts.map +1 -0
- package/dist/providers/kimi.js +20 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/manager.d.ts +160 -0
- package/dist/providers/manager.d.ts.map +1 -0
- package/dist/providers/manager.js +264 -0
- package/dist/providers/manager.js.map +1 -0
- package/dist/providers/ollama.d.ts +83 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +453 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +96 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +457 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/zai.d.ts +19 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +20 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/router/context-manager.d.ts +2 -0
- package/dist/router/context-manager.d.ts.map +1 -0
- package/dist/router/context-manager.js +3 -0
- package/dist/router/context-manager.js.map +1 -0
- package/dist/router/engine.d.ts +169 -0
- package/dist/router/engine.d.ts.map +1 -0
- package/dist/router/engine.js +435 -0
- package/dist/router/engine.js.map +1 -0
- package/dist/router/pattern-executor.d.ts +317 -0
- package/dist/router/pattern-executor.d.ts.map +1 -0
- package/dist/router/pattern-executor.js +571 -0
- package/dist/router/pattern-executor.js.map +1 -0
- package/dist/router/role-resolver.d.ts +59 -0
- package/dist/router/role-resolver.d.ts.map +1 -0
- package/dist/router/role-resolver.js +95 -0
- package/dist/router/role-resolver.js.map +1 -0
- package/dist/server.d.ts +32 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +223 -0
- package/dist/server.js.map +1 -0
- package/dist/startup.d.ts +78 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +107 -0
- package/dist/startup.js.map +1 -0
- package/dist/tasks/coordinator.d.ts +141 -0
- package/dist/tasks/coordinator.d.ts.map +1 -0
- package/dist/tasks/coordinator.js +331 -0
- package/dist/tasks/coordinator.js.map +1 -0
- package/dist/tasks/index.d.ts +13 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +13 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/persistent-state-coordinator.d.ts +89 -0
- package/dist/tasks/persistent-state-coordinator.d.ts.map +1 -0
- package/dist/tasks/persistent-state-coordinator.js +371 -0
- package/dist/tasks/persistent-state-coordinator.js.map +1 -0
- package/dist/tasks/pipeline-manager.d.ts +103 -0
- package/dist/tasks/pipeline-manager.d.ts.map +1 -0
- package/dist/tasks/pipeline-manager.js +358 -0
- package/dist/tasks/pipeline-manager.js.map +1 -0
- package/dist/tasks/state-coordinator.d.ts +79 -0
- package/dist/tasks/state-coordinator.d.ts.map +1 -0
- package/dist/tasks/state-coordinator.js +200 -0
- package/dist/tasks/state-coordinator.js.map +1 -0
- package/dist/tasks/worker-mode.d.ts +65 -0
- package/dist/tasks/worker-mode.d.ts.map +1 -0
- package/dist/tasks/worker-mode.js +208 -0
- package/dist/tasks/worker-mode.js.map +1 -0
- package/dist/translation/errors.d.ts +203 -0
- package/dist/translation/errors.d.ts.map +1 -0
- package/dist/translation/errors.js +477 -0
- package/dist/translation/errors.js.map +1 -0
- package/dist/translation/index.d.ts +12 -0
- package/dist/translation/index.d.ts.map +1 -0
- package/dist/translation/index.js +32 -0
- package/dist/translation/index.js.map +1 -0
- package/dist/translation/messages.d.ts +295 -0
- package/dist/translation/messages.d.ts.map +1 -0
- package/dist/translation/messages.js +557 -0
- package/dist/translation/messages.js.map +1 -0
- package/dist/translation/streaming.d.ts +226 -0
- package/dist/translation/streaming.d.ts.map +1 -0
- package/dist/translation/streaming.js +520 -0
- package/dist/translation/streaming.js.map +1 -0
- package/dist/translation/tools.d.ts +209 -0
- package/dist/translation/tools.d.ts.map +1 -0
- package/dist/translation/tools.js +331 -0
- package/dist/translation/tools.js.map +1 -0
- package/dist/types.d.ts +747 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +86 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +175 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +315 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +3 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/git.d.ts +58 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +197 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/merge-ordering.d.ts +45 -0
- package/dist/utils/merge-ordering.d.ts.map +1 -0
- package/dist/utils/merge-ordering.js +128 -0
- package/dist/utils/merge-ordering.js.map +1 -0
- package/dist/utils/retry.d.ts +106 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +188 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/worktrees/branch-manager.d.ts +55 -0
- package/dist/worktrees/branch-manager.d.ts.map +1 -0
- package/dist/worktrees/branch-manager.js +129 -0
- package/dist/worktrees/branch-manager.js.map +1 -0
- package/dist/worktrees/conflict-handler.d.ts +72 -0
- package/dist/worktrees/conflict-handler.d.ts.map +1 -0
- package/dist/worktrees/conflict-handler.js +287 -0
- package/dist/worktrees/conflict-handler.js.map +1 -0
- package/dist/worktrees/conflict-parser.d.ts +28 -0
- package/dist/worktrees/conflict-parser.d.ts.map +1 -0
- package/dist/worktrees/conflict-parser.js +140 -0
- package/dist/worktrees/conflict-parser.js.map +1 -0
- package/dist/worktrees/index.d.ts +20 -0
- package/dist/worktrees/index.d.ts.map +1 -0
- package/dist/worktrees/index.js +20 -0
- package/dist/worktrees/index.js.map +1 -0
- package/dist/worktrees/instructions.d.ts +20 -0
- package/dist/worktrees/instructions.d.ts.map +1 -0
- package/dist/worktrees/instructions.js +84 -0
- package/dist/worktrees/instructions.js.map +1 -0
- package/dist/worktrees/manager.d.ts +76 -0
- package/dist/worktrees/manager.d.ts.map +1 -0
- package/dist/worktrees/manager.js +277 -0
- package/dist/worktrees/manager.js.map +1 -0
- package/dist/worktrees/pipeline-merge-orchestrator.d.ts +55 -0
- package/dist/worktrees/pipeline-merge-orchestrator.d.ts.map +1 -0
- package/dist/worktrees/pipeline-merge-orchestrator.js +221 -0
- package/dist/worktrees/pipeline-merge-orchestrator.js.map +1 -0
- package/dist/worktrees/pool.d.ts +95 -0
- package/dist/worktrees/pool.d.ts.map +1 -0
- package/dist/worktrees/pool.js +271 -0
- package/dist/worktrees/pool.js.map +1 -0
- package/dist/worktrees/recovery.d.ts +94 -0
- package/dist/worktrees/recovery.d.ts.map +1 -0
- package/dist/worktrees/recovery.js +371 -0
- package/dist/worktrees/recovery.js.map +1 -0
- package/dist/worktrees/resource-manager.d.ts +74 -0
- package/dist/worktrees/resource-manager.d.ts.map +1 -0
- package/dist/worktrees/resource-manager.js +228 -0
- package/dist/worktrees/resource-manager.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Translation Layer
|
|
3
|
+
*
|
|
4
|
+
* Normalizes error formats from different LLM providers (Anthropic, OpenAI, Gemini)
|
|
5
|
+
* into AgentRouter's standardized error types. This allows consistent error handling
|
|
6
|
+
* regardless of which provider produced the error.
|
|
7
|
+
*
|
|
8
|
+
* Provider error format differences:
|
|
9
|
+
* - Anthropic: { type: "error", error: { type, message } }
|
|
10
|
+
* - OpenAI: { error: { message, type, code } }
|
|
11
|
+
* - Gemini: { error: { message, status, code } }
|
|
12
|
+
*
|
|
13
|
+
* All errors are mapped to the appropriate AgentRouterError subclass with the
|
|
14
|
+
* original error preserved in the `cause` property for debugging.
|
|
15
|
+
*/
|
|
16
|
+
import { AgentRouterError, AuthenticationError, RateLimitError, ProviderError, TimeoutError, ConfigurationError, } from '../types.js';
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Error Type Detection Helpers
|
|
19
|
+
// ============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Extract HTTP status code from various error formats.
|
|
22
|
+
*/
|
|
23
|
+
function extractStatusCode(error) {
|
|
24
|
+
if (typeof error !== 'object' || error === null) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const err = error;
|
|
28
|
+
// Check common status code properties
|
|
29
|
+
if (typeof err['status'] === 'number') {
|
|
30
|
+
return err['status'];
|
|
31
|
+
}
|
|
32
|
+
if (typeof err['statusCode'] === 'number') {
|
|
33
|
+
return err['statusCode'];
|
|
34
|
+
}
|
|
35
|
+
if (typeof err['response'] === 'object' && err['response'] !== null) {
|
|
36
|
+
const response = err['response'];
|
|
37
|
+
if (typeof response['status'] === 'number') {
|
|
38
|
+
return response['status'];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract error message from various error formats.
|
|
45
|
+
*/
|
|
46
|
+
function extractMessage(error, defaultMessage) {
|
|
47
|
+
if (error instanceof Error) {
|
|
48
|
+
return error.message || defaultMessage;
|
|
49
|
+
}
|
|
50
|
+
if (typeof error === 'object' && error !== null) {
|
|
51
|
+
const err = error;
|
|
52
|
+
if (typeof err['message'] === 'string') {
|
|
53
|
+
return err['message'];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (typeof error === 'string') {
|
|
57
|
+
return error;
|
|
58
|
+
}
|
|
59
|
+
return defaultMessage;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if an error indicates a timeout.
|
|
63
|
+
*/
|
|
64
|
+
function isTimeoutError(error) {
|
|
65
|
+
if (error instanceof Error) {
|
|
66
|
+
// AbortError is typically thrown for timeouts
|
|
67
|
+
if (error.name === 'AbortError') {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
// Check for timeout-related messages
|
|
71
|
+
const message = error.message.toLowerCase();
|
|
72
|
+
if (message.includes('timeout') ||
|
|
73
|
+
message.includes('timed out') ||
|
|
74
|
+
message.includes('etimedout') ||
|
|
75
|
+
message.includes('econnaborted')) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Check for code property
|
|
80
|
+
if (typeof error === 'object' && error !== null) {
|
|
81
|
+
const err = error;
|
|
82
|
+
if (err['code'] === 'ETIMEDOUT' ||
|
|
83
|
+
err['code'] === 'ECONNABORTED' ||
|
|
84
|
+
err['code'] === 'ESOCKETTIMEDOUT') {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Extract retry-after value from error (for rate limit errors).
|
|
92
|
+
* Returns value in milliseconds.
|
|
93
|
+
*/
|
|
94
|
+
function extractRetryAfter(error) {
|
|
95
|
+
if (typeof error !== 'object' || error === null) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
const err = error;
|
|
99
|
+
// Check for retryAfter property (may be in seconds or milliseconds)
|
|
100
|
+
const retryAfterValue = err['retryAfter'];
|
|
101
|
+
if (typeof retryAfterValue === 'number') {
|
|
102
|
+
// Assume seconds if small value, milliseconds if large
|
|
103
|
+
return retryAfterValue > 1000 ? retryAfterValue : retryAfterValue * 1000;
|
|
104
|
+
}
|
|
105
|
+
// Check response headers (if available)
|
|
106
|
+
const headersValue = err['headers'];
|
|
107
|
+
if (typeof headersValue === 'object' && headersValue !== null) {
|
|
108
|
+
const headers = headersValue;
|
|
109
|
+
const retryAfter = headers['retry-after'] || headers['Retry-After'];
|
|
110
|
+
if (retryAfter) {
|
|
111
|
+
const seconds = parseInt(retryAfter, 10);
|
|
112
|
+
if (!isNaN(seconds)) {
|
|
113
|
+
return seconds * 1000;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Create an appropriate AgentRouterError based on HTTP status code.
|
|
121
|
+
*/
|
|
122
|
+
function createErrorFromStatusCode(statusCode, message, provider, cause) {
|
|
123
|
+
switch (statusCode) {
|
|
124
|
+
case 400:
|
|
125
|
+
return new ConfigurationError(`Invalid request: ${message}`, cause);
|
|
126
|
+
case 401:
|
|
127
|
+
case 403:
|
|
128
|
+
return new AuthenticationError(provider, cause);
|
|
129
|
+
case 429:
|
|
130
|
+
return new RateLimitError(provider, undefined, cause);
|
|
131
|
+
case 500:
|
|
132
|
+
case 502:
|
|
133
|
+
case 503:
|
|
134
|
+
case 504:
|
|
135
|
+
return new ProviderError(`Provider error (${statusCode}): ${message}`, provider, statusCode, cause);
|
|
136
|
+
default:
|
|
137
|
+
return new ProviderError(message, provider, statusCode, cause);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// ============================================================================
|
|
141
|
+
// Provider-Specific Translation Functions
|
|
142
|
+
// ============================================================================
|
|
143
|
+
/**
|
|
144
|
+
* Translate an Anthropic API error to an AgentRouterError.
|
|
145
|
+
*
|
|
146
|
+
* Anthropic error format:
|
|
147
|
+
* ```json
|
|
148
|
+
* {
|
|
149
|
+
* "type": "error",
|
|
150
|
+
* "error": {
|
|
151
|
+
* "type": "invalid_request_error" | "authentication_error" | "rate_limit_error" | ...,
|
|
152
|
+
* "message": "Human-readable error message"
|
|
153
|
+
* }
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* Error types from Anthropic:
|
|
158
|
+
* - invalid_request_error: Bad request parameters (400)
|
|
159
|
+
* - authentication_error: Invalid API key (401)
|
|
160
|
+
* - permission_error: Forbidden (403)
|
|
161
|
+
* - not_found_error: Resource not found (404)
|
|
162
|
+
* - rate_limit_error: Rate limited (429)
|
|
163
|
+
* - api_error: Internal server error (500)
|
|
164
|
+
* - overloaded_error: Overloaded (529)
|
|
165
|
+
*
|
|
166
|
+
* @param error - The raw Anthropic error
|
|
167
|
+
* @returns Normalized AgentRouterError
|
|
168
|
+
*/
|
|
169
|
+
export function translateAnthropicError(error) {
|
|
170
|
+
const provider = 'anthropic';
|
|
171
|
+
const originalError = error instanceof Error ? error : new Error(JSON.stringify(error));
|
|
172
|
+
// Extract message from nested error structure
|
|
173
|
+
const message = error.error?.message ||
|
|
174
|
+
error.message ||
|
|
175
|
+
'Unknown Anthropic error';
|
|
176
|
+
// Extract error type
|
|
177
|
+
const errorType = error.error?.type;
|
|
178
|
+
// Extract status code
|
|
179
|
+
const statusCode = extractStatusCode(error);
|
|
180
|
+
// Handle timeout errors
|
|
181
|
+
if (isTimeoutError(error)) {
|
|
182
|
+
return new TimeoutError(provider, 60000, originalError);
|
|
183
|
+
}
|
|
184
|
+
// Map Anthropic error types to AgentRouter errors
|
|
185
|
+
switch (errorType) {
|
|
186
|
+
case 'invalid_request_error':
|
|
187
|
+
return new ConfigurationError(`Invalid request: ${message}`, originalError);
|
|
188
|
+
case 'authentication_error':
|
|
189
|
+
return new AuthenticationError(provider, originalError);
|
|
190
|
+
case 'permission_error':
|
|
191
|
+
return new AuthenticationError(provider, originalError);
|
|
192
|
+
case 'rate_limit_error': {
|
|
193
|
+
const retryAfter = extractRetryAfter(error);
|
|
194
|
+
return new RateLimitError(provider, retryAfter, originalError);
|
|
195
|
+
}
|
|
196
|
+
case 'api_error':
|
|
197
|
+
return new ProviderError(`Anthropic API error: ${message}`, provider, statusCode ?? 500, originalError);
|
|
198
|
+
case 'overloaded_error':
|
|
199
|
+
return new ProviderError(`Anthropic API overloaded: ${message}`, provider, 529, originalError);
|
|
200
|
+
default:
|
|
201
|
+
// Fall back to status code based mapping
|
|
202
|
+
if (statusCode !== undefined) {
|
|
203
|
+
return createErrorFromStatusCode(statusCode, message, provider, originalError);
|
|
204
|
+
}
|
|
205
|
+
return new ProviderError(message, provider, undefined, originalError);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Translate an OpenAI API error to an AgentRouterError.
|
|
210
|
+
*
|
|
211
|
+
* OpenAI error format:
|
|
212
|
+
* ```json
|
|
213
|
+
* {
|
|
214
|
+
* "error": {
|
|
215
|
+
* "message": "Human-readable error message",
|
|
216
|
+
* "type": "invalid_request_error" | "authentication_error" | "rate_limit_error" | ...,
|
|
217
|
+
* "code": "specific_error_code" | null,
|
|
218
|
+
* "param": "parameter_name" | null
|
|
219
|
+
* }
|
|
220
|
+
* }
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* Common error types from OpenAI:
|
|
224
|
+
* - invalid_request_error: Bad request (400)
|
|
225
|
+
* - invalid_api_key: Invalid API key (401)
|
|
226
|
+
* - insufficient_quota: Quota exceeded (429)
|
|
227
|
+
* - rate_limit_exceeded: Rate limited (429)
|
|
228
|
+
* - server_error: Internal error (500)
|
|
229
|
+
* - engine_overloaded: Overloaded (503)
|
|
230
|
+
*
|
|
231
|
+
* @param error - The raw OpenAI error
|
|
232
|
+
* @returns Normalized AgentRouterError
|
|
233
|
+
*/
|
|
234
|
+
export function translateOpenAIError(error) {
|
|
235
|
+
const provider = 'openai';
|
|
236
|
+
const originalError = error instanceof Error ? error : new Error(JSON.stringify(error));
|
|
237
|
+
// Extract message from nested error structure
|
|
238
|
+
const message = error.error?.message ||
|
|
239
|
+
error.message ||
|
|
240
|
+
'Unknown OpenAI error';
|
|
241
|
+
// Extract error type and code
|
|
242
|
+
const errorType = error.error?.type;
|
|
243
|
+
const errorCode = error.error?.code;
|
|
244
|
+
// Extract status code
|
|
245
|
+
const statusCode = extractStatusCode(error);
|
|
246
|
+
// Handle timeout errors
|
|
247
|
+
if (isTimeoutError(error)) {
|
|
248
|
+
return new TimeoutError(provider, 60000, originalError);
|
|
249
|
+
}
|
|
250
|
+
// Map OpenAI error types/codes to AgentRouter errors
|
|
251
|
+
// First check specific error codes
|
|
252
|
+
switch (errorCode) {
|
|
253
|
+
case 'invalid_api_key':
|
|
254
|
+
return new AuthenticationError(provider, originalError);
|
|
255
|
+
case 'insufficient_quota':
|
|
256
|
+
case 'rate_limit_exceeded': {
|
|
257
|
+
const retryAfter = extractRetryAfter(error);
|
|
258
|
+
return new RateLimitError(provider, retryAfter, originalError);
|
|
259
|
+
}
|
|
260
|
+
case 'model_not_found':
|
|
261
|
+
return new ConfigurationError(`Model not found: ${message}`, originalError);
|
|
262
|
+
case 'context_length_exceeded':
|
|
263
|
+
return new ConfigurationError(`Context length exceeded: ${message}`, originalError);
|
|
264
|
+
}
|
|
265
|
+
// Then check error type
|
|
266
|
+
switch (errorType) {
|
|
267
|
+
case 'invalid_request_error':
|
|
268
|
+
return new ConfigurationError(`Invalid request: ${message}`, originalError);
|
|
269
|
+
case 'authentication_error':
|
|
270
|
+
return new AuthenticationError(provider, originalError);
|
|
271
|
+
case 'rate_limit_error': {
|
|
272
|
+
const retryAfter = extractRetryAfter(error);
|
|
273
|
+
return new RateLimitError(provider, retryAfter, originalError);
|
|
274
|
+
}
|
|
275
|
+
case 'server_error':
|
|
276
|
+
return new ProviderError(`OpenAI server error: ${message}`, provider, statusCode ?? 500, originalError);
|
|
277
|
+
}
|
|
278
|
+
// Fall back to status code based mapping
|
|
279
|
+
if (statusCode !== undefined) {
|
|
280
|
+
return createErrorFromStatusCode(statusCode, message, provider, originalError);
|
|
281
|
+
}
|
|
282
|
+
return new ProviderError(message, provider, undefined, originalError);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Translate a Google Gemini API error to an AgentRouterError.
|
|
286
|
+
*
|
|
287
|
+
* Gemini error format:
|
|
288
|
+
* ```json
|
|
289
|
+
* {
|
|
290
|
+
* "error": {
|
|
291
|
+
* "code": 400,
|
|
292
|
+
* "message": "Human-readable error message",
|
|
293
|
+
* "status": "INVALID_ARGUMENT" | "UNAUTHENTICATED" | "RESOURCE_EXHAUSTED" | ...,
|
|
294
|
+
* "details": [...]
|
|
295
|
+
* }
|
|
296
|
+
* }
|
|
297
|
+
* ```
|
|
298
|
+
*
|
|
299
|
+
* Common status values from Gemini:
|
|
300
|
+
* - INVALID_ARGUMENT: Bad request (400)
|
|
301
|
+
* - UNAUTHENTICATED: Invalid API key (401)
|
|
302
|
+
* - PERMISSION_DENIED: Forbidden (403)
|
|
303
|
+
* - NOT_FOUND: Resource not found (404)
|
|
304
|
+
* - RESOURCE_EXHAUSTED: Rate limited or quota exceeded (429)
|
|
305
|
+
* - INTERNAL: Internal server error (500)
|
|
306
|
+
* - UNAVAILABLE: Service unavailable (503)
|
|
307
|
+
*
|
|
308
|
+
* @param error - The raw Gemini error
|
|
309
|
+
* @returns Normalized AgentRouterError
|
|
310
|
+
*/
|
|
311
|
+
export function translateGeminiError(error) {
|
|
312
|
+
const provider = 'google';
|
|
313
|
+
const originalError = error instanceof Error ? error : new Error(JSON.stringify(error));
|
|
314
|
+
// Extract message from nested error structure
|
|
315
|
+
const message = error.error?.message ||
|
|
316
|
+
error.message ||
|
|
317
|
+
'Unknown Gemini error';
|
|
318
|
+
// Extract status (string status like "INVALID_ARGUMENT")
|
|
319
|
+
const status = error.error?.status;
|
|
320
|
+
// Extract numeric code
|
|
321
|
+
const code = error.error?.code;
|
|
322
|
+
// Get status code from various sources
|
|
323
|
+
const statusCode = extractStatusCode(error) ?? code;
|
|
324
|
+
// Handle timeout errors
|
|
325
|
+
if (isTimeoutError(error)) {
|
|
326
|
+
return new TimeoutError(provider, 60000, originalError);
|
|
327
|
+
}
|
|
328
|
+
// Map Gemini status values to AgentRouter errors
|
|
329
|
+
switch (status) {
|
|
330
|
+
case 'INVALID_ARGUMENT':
|
|
331
|
+
return new ConfigurationError(`Invalid argument: ${message}`, originalError);
|
|
332
|
+
case 'UNAUTHENTICATED':
|
|
333
|
+
return new AuthenticationError(provider, originalError);
|
|
334
|
+
case 'PERMISSION_DENIED':
|
|
335
|
+
return new AuthenticationError(provider, originalError);
|
|
336
|
+
case 'NOT_FOUND':
|
|
337
|
+
return new ConfigurationError(`Resource not found: ${message}`, originalError);
|
|
338
|
+
case 'RESOURCE_EXHAUSTED': {
|
|
339
|
+
const retryAfter = extractRetryAfter(error);
|
|
340
|
+
return new RateLimitError(provider, retryAfter, originalError);
|
|
341
|
+
}
|
|
342
|
+
case 'INTERNAL':
|
|
343
|
+
return new ProviderError(`Gemini internal error: ${message}`, provider, statusCode ?? 500, originalError);
|
|
344
|
+
case 'UNAVAILABLE':
|
|
345
|
+
return new ProviderError(`Gemini service unavailable: ${message}`, provider, statusCode ?? 503, originalError);
|
|
346
|
+
case 'DEADLINE_EXCEEDED':
|
|
347
|
+
return new TimeoutError(provider, 60000, originalError);
|
|
348
|
+
}
|
|
349
|
+
// Fall back to status code based mapping
|
|
350
|
+
if (statusCode !== undefined) {
|
|
351
|
+
return createErrorFromStatusCode(statusCode, message, provider, originalError);
|
|
352
|
+
}
|
|
353
|
+
return new ProviderError(message, provider, undefined, originalError);
|
|
354
|
+
}
|
|
355
|
+
// ============================================================================
|
|
356
|
+
// Generic Error Translation
|
|
357
|
+
// ============================================================================
|
|
358
|
+
/**
|
|
359
|
+
* Translate any error into an AgentRouterError.
|
|
360
|
+
* Used when the provider is unknown or for generic error handling.
|
|
361
|
+
*
|
|
362
|
+
* @param error - Any error object
|
|
363
|
+
* @param provider - Provider name for error context
|
|
364
|
+
* @returns Normalized AgentRouterError
|
|
365
|
+
*/
|
|
366
|
+
export function translateGenericError(error, provider) {
|
|
367
|
+
// Already an AgentRouterError - return as-is
|
|
368
|
+
if (error instanceof AgentRouterError) {
|
|
369
|
+
return error;
|
|
370
|
+
}
|
|
371
|
+
const originalError = error instanceof Error ? error : new Error(String(error));
|
|
372
|
+
const message = extractMessage(error, 'Unknown error');
|
|
373
|
+
const statusCode = extractStatusCode(error);
|
|
374
|
+
// Handle timeout errors
|
|
375
|
+
if (isTimeoutError(error)) {
|
|
376
|
+
return new TimeoutError(provider, 60000, originalError);
|
|
377
|
+
}
|
|
378
|
+
// Map by status code if available
|
|
379
|
+
if (statusCode !== undefined) {
|
|
380
|
+
return createErrorFromStatusCode(statusCode, message, provider, originalError);
|
|
381
|
+
}
|
|
382
|
+
// Default to generic provider error
|
|
383
|
+
return new ProviderError(message, provider, undefined, originalError);
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Translate an error from a specific provider.
|
|
387
|
+
* Routes to the appropriate provider-specific translator.
|
|
388
|
+
*
|
|
389
|
+
* @param error - The raw error from the provider
|
|
390
|
+
* @param provider - Provider name ('anthropic', 'openai', 'google', etc.)
|
|
391
|
+
* @returns Normalized AgentRouterError
|
|
392
|
+
*/
|
|
393
|
+
export function translateProviderError(error, provider) {
|
|
394
|
+
// Already an AgentRouterError - return as-is
|
|
395
|
+
if (error instanceof AgentRouterError) {
|
|
396
|
+
return error;
|
|
397
|
+
}
|
|
398
|
+
switch (provider.toLowerCase()) {
|
|
399
|
+
case 'anthropic':
|
|
400
|
+
return translateAnthropicError(error);
|
|
401
|
+
case 'openai':
|
|
402
|
+
return translateOpenAIError(error);
|
|
403
|
+
case 'google':
|
|
404
|
+
case 'gemini':
|
|
405
|
+
return translateGeminiError(error);
|
|
406
|
+
default:
|
|
407
|
+
return translateGenericError(error, provider);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Wrap an async function to translate provider errors.
|
|
412
|
+
* Useful for wrapping provider calls to ensure consistent error handling.
|
|
413
|
+
*
|
|
414
|
+
* @param fn - Async function to wrap
|
|
415
|
+
* @param provider - Provider name for error context
|
|
416
|
+
* @returns Wrapped function that translates errors
|
|
417
|
+
*/
|
|
418
|
+
export function withErrorTranslation(fn, provider) {
|
|
419
|
+
return async (...args) => {
|
|
420
|
+
try {
|
|
421
|
+
return await fn(...args);
|
|
422
|
+
}
|
|
423
|
+
catch (error) {
|
|
424
|
+
throw translateProviderError(error, provider);
|
|
425
|
+
}
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Check if an error is retryable (transient error that may succeed on retry).
|
|
430
|
+
*
|
|
431
|
+
* @param error - The error to check
|
|
432
|
+
* @returns True if the error is retryable
|
|
433
|
+
*/
|
|
434
|
+
export function isRetryableError(error) {
|
|
435
|
+
if (error instanceof RateLimitError) {
|
|
436
|
+
return true;
|
|
437
|
+
}
|
|
438
|
+
if (error instanceof TimeoutError) {
|
|
439
|
+
return true;
|
|
440
|
+
}
|
|
441
|
+
if (error instanceof ProviderError) {
|
|
442
|
+
const status = error.statusCode;
|
|
443
|
+
// 5xx errors are generally retryable
|
|
444
|
+
if (status !== undefined && status >= 500 && status < 600) {
|
|
445
|
+
return true;
|
|
446
|
+
}
|
|
447
|
+
// 429 is also retryable (rate limit)
|
|
448
|
+
if (status === 429) {
|
|
449
|
+
return true;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Get recommended retry delay for an error.
|
|
456
|
+
*
|
|
457
|
+
* @param error - The error to get retry delay for
|
|
458
|
+
* @param attempt - Current attempt number (1-based)
|
|
459
|
+
* @param baseDelayMs - Base delay in milliseconds (default: 1000)
|
|
460
|
+
* @returns Recommended delay in milliseconds, or undefined if not retryable
|
|
461
|
+
*/
|
|
462
|
+
export function getRetryDelay(error, attempt, baseDelayMs = 1000) {
|
|
463
|
+
if (!isRetryableError(error)) {
|
|
464
|
+
return undefined;
|
|
465
|
+
}
|
|
466
|
+
// Use retry-after if available
|
|
467
|
+
if (error instanceof RateLimitError && error.retryAfterMs !== undefined) {
|
|
468
|
+
return error.retryAfterMs;
|
|
469
|
+
}
|
|
470
|
+
// Exponential backoff with jitter
|
|
471
|
+
const exponentialDelay = baseDelayMs * Math.pow(2, attempt - 1);
|
|
472
|
+
const jitter = Math.random() * 0.1 * exponentialDelay; // 10% jitter
|
|
473
|
+
const delay = exponentialDelay + jitter;
|
|
474
|
+
// Cap at 60 seconds
|
|
475
|
+
return Math.min(delay, 60000);
|
|
476
|
+
}
|
|
477
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/translation/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translation Layer
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for translating between different LLM provider
|
|
5
|
+
* formats. It normalizes messages, tools, and streaming events to a common
|
|
6
|
+
* AgentRouter format.
|
|
7
|
+
*
|
|
8
|
+
* @module translation
|
|
9
|
+
*/
|
|
10
|
+
export { parseAnthropicStream, parseOpenAIStream, parseGeminiStream, parseSSE, createStreamTransformer, collectStreamText, collectStreamChunks, type AnthropicStreamEvent, type OpenAIStreamChunk, type GeminiStreamChunk, } from './streaming.js';
|
|
11
|
+
export { translateAnthropicError, translateOpenAIError, translateGeminiError, translateGenericError, translateProviderError, withErrorTranslation, isRetryableError, getRetryDelay, type AnthropicError, type OpenAIError, type GeminiError, type HttpError, } from './errors.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAEjB,QAAQ,EAER,uBAAuB,EAEvB,iBAAiB,EACjB,mBAAmB,EAEnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AASxB,OAAO,EAEL,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAEpB,qBAAqB,EACrB,sBAAsB,EAEtB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EAEb,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translation Layer
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for translating between different LLM provider
|
|
5
|
+
* formats. It normalizes messages, tools, and streaming events to a common
|
|
6
|
+
* AgentRouter format.
|
|
7
|
+
*
|
|
8
|
+
* @module translation
|
|
9
|
+
*/
|
|
10
|
+
// Streaming response translation
|
|
11
|
+
export {
|
|
12
|
+
// Stream parsers
|
|
13
|
+
parseAnthropicStream, parseOpenAIStream, parseGeminiStream,
|
|
14
|
+
// SSE utilities
|
|
15
|
+
parseSSE,
|
|
16
|
+
// Transform stream helpers
|
|
17
|
+
createStreamTransformer,
|
|
18
|
+
// Collection utilities
|
|
19
|
+
collectStreamText, collectStreamChunks, } from './streaming.js';
|
|
20
|
+
// Re-export from messages when implemented
|
|
21
|
+
// export * from './messages.js';
|
|
22
|
+
// Re-export from tools when implemented
|
|
23
|
+
// export * from './tools.js';
|
|
24
|
+
// Error translation
|
|
25
|
+
export {
|
|
26
|
+
// Provider-specific translators
|
|
27
|
+
translateAnthropicError, translateOpenAIError, translateGeminiError,
|
|
28
|
+
// Generic translators
|
|
29
|
+
translateGenericError, translateProviderError,
|
|
30
|
+
// Utilities
|
|
31
|
+
withErrorTranslation, isRetryableError, getRetryDelay, } from './errors.js';
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iCAAiC;AACjC,OAAO;AACL,iBAAiB;AACjB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB;AACjB,gBAAgB;AAChB,QAAQ;AACR,2BAA2B;AAC3B,uBAAuB;AACvB,uBAAuB;AACvB,iBAAiB,EACjB,mBAAmB,GAKpB,MAAM,gBAAgB,CAAC;AAExB,2CAA2C;AAC3C,iCAAiC;AAEjC,wCAAwC;AACxC,8BAA8B;AAE9B,oBAAoB;AACpB,OAAO;AACL,gCAAgC;AAChC,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB;AACpB,sBAAsB;AACtB,qBAAqB,EACrB,sBAAsB;AACtB,YAAY;AACZ,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GAMd,MAAM,aAAa,CAAC"}
|