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 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentRouter Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the AgentRouter MCP server.
|
|
5
|
+
* These types define the data structures for configuration, agents,
|
|
6
|
+
* messages, providers, and MCP tools.
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Error Types
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Base error class for AgentRouter errors.
|
|
13
|
+
*/
|
|
14
|
+
export class AgentRouterError extends Error {
|
|
15
|
+
code;
|
|
16
|
+
constructor(message, code, cause) {
|
|
17
|
+
super(message, { cause });
|
|
18
|
+
this.name = 'AgentRouterError';
|
|
19
|
+
this.code = code;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Error thrown when configuration is invalid.
|
|
24
|
+
*/
|
|
25
|
+
export class ConfigurationError extends AgentRouterError {
|
|
26
|
+
constructor(message, cause) {
|
|
27
|
+
super(message, 'CONFIGURATION_ERROR', cause);
|
|
28
|
+
this.name = 'ConfigurationError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Error thrown when a provider API call fails.
|
|
33
|
+
*/
|
|
34
|
+
export class ProviderError extends AgentRouterError {
|
|
35
|
+
provider;
|
|
36
|
+
statusCode;
|
|
37
|
+
constructor(message, provider, statusCode, cause) {
|
|
38
|
+
super(message, 'PROVIDER_ERROR', cause);
|
|
39
|
+
this.provider = provider;
|
|
40
|
+
this.statusCode = statusCode;
|
|
41
|
+
this.name = 'ProviderError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Error thrown when hitting rate limits.
|
|
46
|
+
*/
|
|
47
|
+
export class RateLimitError extends ProviderError {
|
|
48
|
+
retryAfterMs;
|
|
49
|
+
constructor(provider, retryAfterMs, cause) {
|
|
50
|
+
super(`Rate limit exceeded for provider: ${provider}`, provider, 429, cause);
|
|
51
|
+
this.retryAfterMs = retryAfterMs;
|
|
52
|
+
this.name = 'RateLimitError';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Error thrown when authentication fails.
|
|
57
|
+
*/
|
|
58
|
+
export class AuthenticationError extends ProviderError {
|
|
59
|
+
constructor(provider, cause) {
|
|
60
|
+
super(`Authentication failed for provider: ${provider}`, provider, 401, cause);
|
|
61
|
+
this.name = 'AuthenticationError';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Error thrown when a request times out.
|
|
66
|
+
*/
|
|
67
|
+
export class TimeoutError extends ProviderError {
|
|
68
|
+
constructor(provider, timeoutMs, cause) {
|
|
69
|
+
super(`Request to ${provider} timed out after ${timeoutMs}ms`, provider, undefined, cause);
|
|
70
|
+
this.name = 'TimeoutError';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Error thrown when message/tool translation fails.
|
|
75
|
+
*/
|
|
76
|
+
export class TranslationError extends AgentRouterError {
|
|
77
|
+
sourceFormat;
|
|
78
|
+
targetFormat;
|
|
79
|
+
constructor(message, sourceFormat, targetFormat, cause) {
|
|
80
|
+
super(message, 'TRANSLATION_ERROR', cause);
|
|
81
|
+
this.sourceFormat = sourceFormat;
|
|
82
|
+
this.targetFormat = targetFormat;
|
|
83
|
+
this.name = 'TranslationError';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoYH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzB,IAAI,CAAS;IAE7B,YAAY,OAAe,EAAE,IAAY,EAAE,KAAa;QACtD,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAG/B;IACA;IAHlB,YACE,OAAe,EACC,QAAgB,EAChB,UAAmB,EACnC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAJxB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAU,GAAV,UAAU,CAAS;QAInC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAG7B;IAFlB,YACE,QAAgB,EACA,YAAqB,EACrC,KAAa;QAEb,KAAK,CAAC,qCAAqC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAH7D,iBAAY,GAAZ,YAAY,CAAS;QAIrC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,YAAY,QAAgB,EAAE,SAAiB,EAAE,KAAa;QAC5D,KAAK,CAAC,cAAc,QAAQ,oBAAoB,SAAS,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAGlC;IACA;IAHlB,YACE,OAAe,EACC,YAAoB,EACpB,YAAoB,EACpC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAJ3B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,iBAAY,GAAZ,YAAY,CAAQ;QAIpC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit Breaker Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provides fault tolerance for provider operations by preventing cascading failures.
|
|
5
|
+
* Implements the circuit breaker pattern with three states:
|
|
6
|
+
* - CLOSED: Normal operation, requests pass through
|
|
7
|
+
* - OPEN: Failing, requests rejected immediately
|
|
8
|
+
* - HALF_OPEN: Testing recovery, limited requests allowed
|
|
9
|
+
*/
|
|
10
|
+
import { AgentRouterError } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Circuit breaker states.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum CircuitState {
|
|
15
|
+
/** Normal operation - requests pass through */
|
|
16
|
+
CLOSED = "CLOSED",
|
|
17
|
+
/** Circuit is open - requests rejected immediately */
|
|
18
|
+
OPEN = "OPEN",
|
|
19
|
+
/** Testing recovery - limited requests allowed */
|
|
20
|
+
HALF_OPEN = "HALF_OPEN"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configuration options for the circuit breaker.
|
|
24
|
+
*/
|
|
25
|
+
export interface CircuitBreakerOptions {
|
|
26
|
+
/** Number of failures before opening the circuit (default: 5) */
|
|
27
|
+
failureThreshold: number;
|
|
28
|
+
/** Number of successes needed to close from half-open (default: 2) */
|
|
29
|
+
successThreshold: number;
|
|
30
|
+
/** Milliseconds to wait before trying half-open (default: 30000) */
|
|
31
|
+
timeout: number;
|
|
32
|
+
/** Milliseconds to reset failure count in closed state (default: 60000) */
|
|
33
|
+
resetTimeout?: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Callback function type for state change notifications.
|
|
37
|
+
*/
|
|
38
|
+
export type StateChangeCallback = (previousState: CircuitState, newState: CircuitState, metadata: StateChangeMetadata) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Metadata provided with state change notifications.
|
|
41
|
+
*/
|
|
42
|
+
export interface StateChangeMetadata {
|
|
43
|
+
/** Current failure count */
|
|
44
|
+
failureCount: number;
|
|
45
|
+
/** Current success count (relevant in HALF_OPEN state) */
|
|
46
|
+
successCount: number;
|
|
47
|
+
/** Timestamp of the state change */
|
|
48
|
+
timestamp: Date;
|
|
49
|
+
/** The error that caused the state change (if applicable) */
|
|
50
|
+
error?: Error;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Error thrown when the circuit is open and requests are rejected.
|
|
54
|
+
*/
|
|
55
|
+
export declare class CircuitOpenError extends AgentRouterError {
|
|
56
|
+
/** Time remaining until the circuit may transition to half-open */
|
|
57
|
+
readonly retryAfterMs: number;
|
|
58
|
+
constructor(retryAfterMs: number, cause?: Error);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Circuit Breaker for provider resilience.
|
|
62
|
+
*
|
|
63
|
+
* Implements the circuit breaker pattern to prevent cascading failures
|
|
64
|
+
* when a provider is experiencing issues. The circuit breaker monitors
|
|
65
|
+
* failures and opens the circuit when the failure threshold is reached,
|
|
66
|
+
* rejecting requests immediately until the timeout expires.
|
|
67
|
+
*
|
|
68
|
+
* State Transitions:
|
|
69
|
+
* - CLOSED → OPEN: When failureCount >= failureThreshold
|
|
70
|
+
* - OPEN → HALF_OPEN: When timeout expires
|
|
71
|
+
* - HALF_OPEN → CLOSED: When successCount >= successThreshold
|
|
72
|
+
* - HALF_OPEN → OPEN: On any failure
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const breaker = new CircuitBreaker({
|
|
77
|
+
* failureThreshold: 5,
|
|
78
|
+
* successThreshold: 2,
|
|
79
|
+
* timeout: 30000,
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* // Wrap provider calls
|
|
83
|
+
* const result = await breaker.execute(async () => {
|
|
84
|
+
* return provider.complete(request);
|
|
85
|
+
* });
|
|
86
|
+
*
|
|
87
|
+
* // Subscribe to state changes
|
|
88
|
+
* breaker.onStateChange((prev, next, meta) => {
|
|
89
|
+
* console.log(`Circuit changed from ${prev} to ${next}`);
|
|
90
|
+
* });
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare class CircuitBreaker {
|
|
94
|
+
/** Configuration options */
|
|
95
|
+
private readonly options;
|
|
96
|
+
/** Internal state */
|
|
97
|
+
private state;
|
|
98
|
+
/** State change subscribers */
|
|
99
|
+
private readonly listeners;
|
|
100
|
+
/**
|
|
101
|
+
* Create a new CircuitBreaker instance.
|
|
102
|
+
*
|
|
103
|
+
* @param options - Configuration options (all have sensible defaults)
|
|
104
|
+
*/
|
|
105
|
+
constructor(options?: Partial<CircuitBreakerOptions>);
|
|
106
|
+
/**
|
|
107
|
+
* Execute an async operation through the circuit breaker.
|
|
108
|
+
*
|
|
109
|
+
* In CLOSED state, the operation is executed normally and failures are tracked.
|
|
110
|
+
* In OPEN state, a CircuitOpenError is thrown immediately without executing.
|
|
111
|
+
* In HALF_OPEN state, the operation is executed and success/failure determines
|
|
112
|
+
* whether to close or re-open the circuit.
|
|
113
|
+
*
|
|
114
|
+
* @param fn - The async operation to execute
|
|
115
|
+
* @returns The result of the operation
|
|
116
|
+
* @throws CircuitOpenError if the circuit is open
|
|
117
|
+
* @throws The original error if the operation fails
|
|
118
|
+
*/
|
|
119
|
+
execute<T>(fn: () => Promise<T>): Promise<T>;
|
|
120
|
+
/**
|
|
121
|
+
* Get the current circuit state.
|
|
122
|
+
*
|
|
123
|
+
* @returns The current CircuitState
|
|
124
|
+
*/
|
|
125
|
+
getState(): CircuitState;
|
|
126
|
+
/**
|
|
127
|
+
* Manually reset the circuit breaker to CLOSED state.
|
|
128
|
+
*
|
|
129
|
+
* This clears all failure/success counts and allows normal operation
|
|
130
|
+
* to resume. Use this when you know the underlying issue has been resolved.
|
|
131
|
+
*/
|
|
132
|
+
reset(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Subscribe to state change notifications.
|
|
135
|
+
*
|
|
136
|
+
* The callback will be invoked whenever the circuit state changes.
|
|
137
|
+
* Returns an unsubscribe function to remove the listener.
|
|
138
|
+
*
|
|
139
|
+
* @param callback - Function to call on state changes
|
|
140
|
+
* @returns Unsubscribe function
|
|
141
|
+
*/
|
|
142
|
+
onStateChange(callback: StateChangeCallback): () => void;
|
|
143
|
+
/**
|
|
144
|
+
* Get current statistics about the circuit breaker.
|
|
145
|
+
*
|
|
146
|
+
* @returns Object with current state and counts
|
|
147
|
+
*/
|
|
148
|
+
getStats(): {
|
|
149
|
+
state: CircuitState;
|
|
150
|
+
failureCount: number;
|
|
151
|
+
successCount: number;
|
|
152
|
+
lastFailureTime: Date | null;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Check if we should transition from OPEN to HALF_OPEN based on timeout.
|
|
156
|
+
*/
|
|
157
|
+
private checkStateTransition;
|
|
158
|
+
/**
|
|
159
|
+
* Record a successful operation.
|
|
160
|
+
*/
|
|
161
|
+
private recordSuccess;
|
|
162
|
+
/**
|
|
163
|
+
* Record a failed operation.
|
|
164
|
+
*/
|
|
165
|
+
private recordFailure;
|
|
166
|
+
/**
|
|
167
|
+
* Transition to a new state and notify listeners.
|
|
168
|
+
*/
|
|
169
|
+
private transitionTo;
|
|
170
|
+
/**
|
|
171
|
+
* Notify all listeners of a state change.
|
|
172
|
+
*/
|
|
173
|
+
private notifyStateChange;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAM/C;;GAEG;AACH,oBAAY,YAAY;IACtB,+CAA+C;IAC/C,MAAM,WAAW;IACjB,sDAAsD;IACtD,IAAI,SAAS;IACb,kDAAkD;IAClD,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,mBAAmB,KAC1B,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,SAAS,EAAE,IAAI,CAAC;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAsBD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,mEAAmE;IACnE,SAAgB,YAAY,EAAE,MAAM,CAAC;gBAEzB,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAShD;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,cAAc;IACzB,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAsB;IAEnC,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;;;OAIG;gBACS,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAiBxD;;;;;;;;;;;;OAYG;IACU,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuBzD;;;;OAIG;IACI,QAAQ,IAAI,YAAY;IAM/B;;;;;OAKG;IACI,KAAK,IAAI,IAAI;IAgBpB;;;;;;;;OAQG;IACI,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAO/D;;;;OAIG;IACI,QAAQ,IAAI;QACjB,KAAK,EAAE,YAAY,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;KAC9B;IAgBD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAwB1B"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit Breaker Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provides fault tolerance for provider operations by preventing cascading failures.
|
|
5
|
+
* Implements the circuit breaker pattern with three states:
|
|
6
|
+
* - CLOSED: Normal operation, requests pass through
|
|
7
|
+
* - OPEN: Failing, requests rejected immediately
|
|
8
|
+
* - HALF_OPEN: Testing recovery, limited requests allowed
|
|
9
|
+
*/
|
|
10
|
+
import { AgentRouterError } from '../types.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Types and Interfaces
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Circuit breaker states.
|
|
16
|
+
*/
|
|
17
|
+
export var CircuitState;
|
|
18
|
+
(function (CircuitState) {
|
|
19
|
+
/** Normal operation - requests pass through */
|
|
20
|
+
CircuitState["CLOSED"] = "CLOSED";
|
|
21
|
+
/** Circuit is open - requests rejected immediately */
|
|
22
|
+
CircuitState["OPEN"] = "OPEN";
|
|
23
|
+
/** Testing recovery - limited requests allowed */
|
|
24
|
+
CircuitState["HALF_OPEN"] = "HALF_OPEN";
|
|
25
|
+
})(CircuitState || (CircuitState = {}));
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Error Classes
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Error thrown when the circuit is open and requests are rejected.
|
|
31
|
+
*/
|
|
32
|
+
export class CircuitOpenError extends AgentRouterError {
|
|
33
|
+
/** Time remaining until the circuit may transition to half-open */
|
|
34
|
+
retryAfterMs;
|
|
35
|
+
constructor(retryAfterMs, cause) {
|
|
36
|
+
super(`Circuit breaker is open. Retry after ${retryAfterMs}ms`, 'CIRCUIT_OPEN', cause);
|
|
37
|
+
this.name = 'CircuitOpenError';
|
|
38
|
+
this.retryAfterMs = retryAfterMs;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// Default Configuration
|
|
43
|
+
// ============================================================================
|
|
44
|
+
const DEFAULT_OPTIONS = {
|
|
45
|
+
failureThreshold: 5,
|
|
46
|
+
successThreshold: 2,
|
|
47
|
+
timeout: 30000,
|
|
48
|
+
resetTimeout: 60000,
|
|
49
|
+
};
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// Circuit Breaker Implementation
|
|
52
|
+
// ============================================================================
|
|
53
|
+
/**
|
|
54
|
+
* Circuit Breaker for provider resilience.
|
|
55
|
+
*
|
|
56
|
+
* Implements the circuit breaker pattern to prevent cascading failures
|
|
57
|
+
* when a provider is experiencing issues. The circuit breaker monitors
|
|
58
|
+
* failures and opens the circuit when the failure threshold is reached,
|
|
59
|
+
* rejecting requests immediately until the timeout expires.
|
|
60
|
+
*
|
|
61
|
+
* State Transitions:
|
|
62
|
+
* - CLOSED → OPEN: When failureCount >= failureThreshold
|
|
63
|
+
* - OPEN → HALF_OPEN: When timeout expires
|
|
64
|
+
* - HALF_OPEN → CLOSED: When successCount >= successThreshold
|
|
65
|
+
* - HALF_OPEN → OPEN: On any failure
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const breaker = new CircuitBreaker({
|
|
70
|
+
* failureThreshold: 5,
|
|
71
|
+
* successThreshold: 2,
|
|
72
|
+
* timeout: 30000,
|
|
73
|
+
* });
|
|
74
|
+
*
|
|
75
|
+
* // Wrap provider calls
|
|
76
|
+
* const result = await breaker.execute(async () => {
|
|
77
|
+
* return provider.complete(request);
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* // Subscribe to state changes
|
|
81
|
+
* breaker.onStateChange((prev, next, meta) => {
|
|
82
|
+
* console.log(`Circuit changed from ${prev} to ${next}`);
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export class CircuitBreaker {
|
|
87
|
+
/** Configuration options */
|
|
88
|
+
options;
|
|
89
|
+
/** Internal state */
|
|
90
|
+
state;
|
|
91
|
+
/** State change subscribers */
|
|
92
|
+
listeners;
|
|
93
|
+
/**
|
|
94
|
+
* Create a new CircuitBreaker instance.
|
|
95
|
+
*
|
|
96
|
+
* @param options - Configuration options (all have sensible defaults)
|
|
97
|
+
*/
|
|
98
|
+
constructor(options = {}) {
|
|
99
|
+
this.options = {
|
|
100
|
+
...DEFAULT_OPTIONS,
|
|
101
|
+
...options,
|
|
102
|
+
};
|
|
103
|
+
this.state = {
|
|
104
|
+
state: CircuitState.CLOSED,
|
|
105
|
+
failureCount: 0,
|
|
106
|
+
successCount: 0,
|
|
107
|
+
lastFailureTime: null,
|
|
108
|
+
firstFailureTime: null,
|
|
109
|
+
};
|
|
110
|
+
this.listeners = new Set();
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Execute an async operation through the circuit breaker.
|
|
114
|
+
*
|
|
115
|
+
* In CLOSED state, the operation is executed normally and failures are tracked.
|
|
116
|
+
* In OPEN state, a CircuitOpenError is thrown immediately without executing.
|
|
117
|
+
* In HALF_OPEN state, the operation is executed and success/failure determines
|
|
118
|
+
* whether to close or re-open the circuit.
|
|
119
|
+
*
|
|
120
|
+
* @param fn - The async operation to execute
|
|
121
|
+
* @returns The result of the operation
|
|
122
|
+
* @throws CircuitOpenError if the circuit is open
|
|
123
|
+
* @throws The original error if the operation fails
|
|
124
|
+
*/
|
|
125
|
+
async execute(fn) {
|
|
126
|
+
// Check if we should transition from OPEN to HALF_OPEN
|
|
127
|
+
this.checkStateTransition();
|
|
128
|
+
const currentState = this.state.state;
|
|
129
|
+
// If circuit is open, reject immediately
|
|
130
|
+
if (currentState === CircuitState.OPEN) {
|
|
131
|
+
const timeElapsed = Date.now() - (this.state.lastFailureTime || 0);
|
|
132
|
+
const retryAfterMs = Math.max(0, this.options.timeout - timeElapsed);
|
|
133
|
+
throw new CircuitOpenError(retryAfterMs);
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const result = await fn();
|
|
137
|
+
this.recordSuccess();
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
this.recordFailure(error instanceof Error ? error : new Error(String(error)));
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get the current circuit state.
|
|
147
|
+
*
|
|
148
|
+
* @returns The current CircuitState
|
|
149
|
+
*/
|
|
150
|
+
getState() {
|
|
151
|
+
// Check for state transition before returning
|
|
152
|
+
this.checkStateTransition();
|
|
153
|
+
return this.state.state;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Manually reset the circuit breaker to CLOSED state.
|
|
157
|
+
*
|
|
158
|
+
* This clears all failure/success counts and allows normal operation
|
|
159
|
+
* to resume. Use this when you know the underlying issue has been resolved.
|
|
160
|
+
*/
|
|
161
|
+
reset() {
|
|
162
|
+
const previousState = this.state.state;
|
|
163
|
+
this.state = {
|
|
164
|
+
state: CircuitState.CLOSED,
|
|
165
|
+
failureCount: 0,
|
|
166
|
+
successCount: 0,
|
|
167
|
+
lastFailureTime: null,
|
|
168
|
+
firstFailureTime: null,
|
|
169
|
+
};
|
|
170
|
+
if (previousState !== CircuitState.CLOSED) {
|
|
171
|
+
this.notifyStateChange(previousState, CircuitState.CLOSED);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Subscribe to state change notifications.
|
|
176
|
+
*
|
|
177
|
+
* The callback will be invoked whenever the circuit state changes.
|
|
178
|
+
* Returns an unsubscribe function to remove the listener.
|
|
179
|
+
*
|
|
180
|
+
* @param callback - Function to call on state changes
|
|
181
|
+
* @returns Unsubscribe function
|
|
182
|
+
*/
|
|
183
|
+
onStateChange(callback) {
|
|
184
|
+
this.listeners.add(callback);
|
|
185
|
+
return () => {
|
|
186
|
+
this.listeners.delete(callback);
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get current statistics about the circuit breaker.
|
|
191
|
+
*
|
|
192
|
+
* @returns Object with current state and counts
|
|
193
|
+
*/
|
|
194
|
+
getStats() {
|
|
195
|
+
this.checkStateTransition();
|
|
196
|
+
return {
|
|
197
|
+
state: this.state.state,
|
|
198
|
+
failureCount: this.state.failureCount,
|
|
199
|
+
successCount: this.state.successCount,
|
|
200
|
+
lastFailureTime: this.state.lastFailureTime
|
|
201
|
+
? new Date(this.state.lastFailureTime)
|
|
202
|
+
: null,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// ============================================================================
|
|
206
|
+
// Private Methods
|
|
207
|
+
// ============================================================================
|
|
208
|
+
/**
|
|
209
|
+
* Check if we should transition from OPEN to HALF_OPEN based on timeout.
|
|
210
|
+
*/
|
|
211
|
+
checkStateTransition() {
|
|
212
|
+
if (this.state.state === CircuitState.OPEN && this.state.lastFailureTime) {
|
|
213
|
+
const timeElapsed = Date.now() - this.state.lastFailureTime;
|
|
214
|
+
if (timeElapsed >= this.options.timeout) {
|
|
215
|
+
this.transitionTo(CircuitState.HALF_OPEN);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Reset failure count if we're in CLOSED state and the reset timeout has elapsed
|
|
219
|
+
if (this.state.state === CircuitState.CLOSED &&
|
|
220
|
+
this.state.firstFailureTime &&
|
|
221
|
+
this.options.resetTimeout) {
|
|
222
|
+
const timeSinceFirstFailure = Date.now() - this.state.firstFailureTime;
|
|
223
|
+
if (timeSinceFirstFailure >= this.options.resetTimeout) {
|
|
224
|
+
this.state.failureCount = 0;
|
|
225
|
+
this.state.firstFailureTime = null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Record a successful operation.
|
|
231
|
+
*/
|
|
232
|
+
recordSuccess() {
|
|
233
|
+
const currentState = this.state.state;
|
|
234
|
+
if (currentState === CircuitState.HALF_OPEN) {
|
|
235
|
+
this.state.successCount++;
|
|
236
|
+
if (this.state.successCount >= this.options.successThreshold) {
|
|
237
|
+
// Enough successes to close the circuit
|
|
238
|
+
this.state.failureCount = 0;
|
|
239
|
+
this.state.successCount = 0;
|
|
240
|
+
this.state.lastFailureTime = null;
|
|
241
|
+
this.state.firstFailureTime = null;
|
|
242
|
+
this.transitionTo(CircuitState.CLOSED);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else if (currentState === CircuitState.CLOSED) {
|
|
246
|
+
// Reset failure tracking on success in closed state
|
|
247
|
+
// This implements a "consecutive failures" model
|
|
248
|
+
this.state.failureCount = 0;
|
|
249
|
+
this.state.firstFailureTime = null;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Record a failed operation.
|
|
254
|
+
*/
|
|
255
|
+
recordFailure(error) {
|
|
256
|
+
const currentState = this.state.state;
|
|
257
|
+
const now = Date.now();
|
|
258
|
+
if (currentState === CircuitState.HALF_OPEN) {
|
|
259
|
+
// Any failure in half-open state immediately opens the circuit
|
|
260
|
+
this.state.lastFailureTime = now;
|
|
261
|
+
this.state.successCount = 0;
|
|
262
|
+
this.transitionTo(CircuitState.OPEN, error);
|
|
263
|
+
}
|
|
264
|
+
else if (currentState === CircuitState.CLOSED) {
|
|
265
|
+
// Track the first failure time for reset timeout
|
|
266
|
+
if (this.state.firstFailureTime === null) {
|
|
267
|
+
this.state.firstFailureTime = now;
|
|
268
|
+
}
|
|
269
|
+
this.state.failureCount++;
|
|
270
|
+
this.state.lastFailureTime = now;
|
|
271
|
+
if (this.state.failureCount >= this.options.failureThreshold) {
|
|
272
|
+
// Threshold reached, open the circuit
|
|
273
|
+
this.transitionTo(CircuitState.OPEN, error);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Transition to a new state and notify listeners.
|
|
279
|
+
*/
|
|
280
|
+
transitionTo(newState, error) {
|
|
281
|
+
const previousState = this.state.state;
|
|
282
|
+
if (previousState === newState) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
this.state.state = newState;
|
|
286
|
+
// Reset success count when transitioning to HALF_OPEN
|
|
287
|
+
if (newState === CircuitState.HALF_OPEN) {
|
|
288
|
+
this.state.successCount = 0;
|
|
289
|
+
}
|
|
290
|
+
this.notifyStateChange(previousState, newState, error);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Notify all listeners of a state change.
|
|
294
|
+
*/
|
|
295
|
+
notifyStateChange(previousState, newState, error) {
|
|
296
|
+
const metadata = {
|
|
297
|
+
failureCount: this.state.failureCount,
|
|
298
|
+
successCount: this.state.successCount,
|
|
299
|
+
timestamp: new Date(),
|
|
300
|
+
};
|
|
301
|
+
// Only add error property if it's defined (exactOptionalPropertyTypes)
|
|
302
|
+
if (error !== undefined) {
|
|
303
|
+
metadata.error = error;
|
|
304
|
+
}
|
|
305
|
+
for (const listener of this.listeners) {
|
|
306
|
+
try {
|
|
307
|
+
listener(previousState, newState, metadata);
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// Ignore errors from listeners to prevent them from affecting the circuit
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+CAA+C;IAC/C,iCAAiB,CAAA;IACjB,sDAAsD;IACtD,6BAAa,CAAA;IACb,kDAAkD;IAClD,uCAAuB,CAAA;AACzB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAuDD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,mEAAmE;IACnD,YAAY,CAAS;IAErC,YAAY,YAAoB,EAAE,KAAa;QAC7C,KAAK,CACH,wCAAwC,YAAY,IAAI,EACxD,cAAc,EACd,KAAK,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,MAAM,eAAe,GAAoC;IACvD,gBAAgB,EAAE,CAAC;IACnB,gBAAgB,EAAE,CAAC;IACnB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,cAAc;IACzB,4BAA4B;IACX,OAAO,CAAkC;IAE1D,qBAAqB;IACb,KAAK,CAAsB;IAEnC,+BAA+B;IACd,SAAS,CAA2B;IAErD;;;;OAIG;IACH,YAAY,UAA0C,EAAE;QACtD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,eAAe;YAClB,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,OAAO,CAAI,EAAoB;QAC1C,uDAAuD;QACvD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEtC,yCAAyC;QACzC,IAAI,YAAY,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,8CAA8C;QAC9C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,KAAK;QACV,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEvC,IAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QAEF,IAAI,aAAa,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,aAAa,CAAC,QAA6B;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,QAAQ;QAMb,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBACzC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACtC,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;OAEG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YACzE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YAC5D,IAAI,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,IACE,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,YAAY,CAAC,MAAM;YACxC,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC3B,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,CAAC;YACD,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACvE,IAAI,qBAAqB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEtC,IAAI,YAAY,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAE1B,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,wCAAwC;gBACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAChD,oDAAoD;YACpD,iDAAiD;YACjD,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAY;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,YAAY,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YAC5C,+DAA+D;YAC/D,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAChD,iDAAiD;YACjD,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;YAEjC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,sCAAsC;gBACtC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,QAAsB,EAAE,KAAa;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAEvC,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;QAE5B,sDAAsD;QACtD,IAAI,QAAQ,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,aAA2B,EAC3B,QAAsB,EACtB,KAAa;QAEb,MAAM,QAAQ,GAAwB;YACpC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,uEAAuE;QACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/utils/env.ts"],"names":[],"mappings":";AAAA,kBAAkB"}
|