mcp-agent-foundry 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +22 -2
  2. package/dist/cli/setup-wizard.d.ts +4 -2
  3. package/dist/cli/setup-wizard.d.ts.map +1 -1
  4. package/dist/cli/setup-wizard.js +1024 -37
  5. package/dist/cli/setup-wizard.js.map +1 -1
  6. package/dist/cli/test-connection.d.ts +34 -2
  7. package/dist/cli/test-connection.d.ts.map +1 -1
  8. package/dist/cli/test-connection.js +384 -2
  9. package/dist/cli/test-connection.js.map +1 -1
  10. package/dist/cli.d.ts +15 -3
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +198 -30
  13. package/dist/cli.js.map +1 -1
  14. package/dist/config/defaults.d.ts +2 -2
  15. package/dist/config/defaults.js +16 -16
  16. package/dist/config/defaults.js.map +1 -1
  17. package/dist/config/validator.d.ts +113 -0
  18. package/dist/config/validator.d.ts.map +1 -1
  19. package/dist/config/validator.js +113 -0
  20. package/dist/config/validator.js.map +1 -1
  21. package/dist/failover/health-tracker.d.ts +175 -0
  22. package/dist/failover/health-tracker.d.ts.map +1 -0
  23. package/dist/failover/health-tracker.js +350 -0
  24. package/dist/failover/health-tracker.js.map +1 -0
  25. package/dist/failover/index.d.ts +9 -0
  26. package/dist/failover/index.d.ts.map +1 -0
  27. package/dist/failover/index.js +9 -0
  28. package/dist/failover/index.js.map +1 -0
  29. package/dist/failover/orchestrator.d.ts +189 -0
  30. package/dist/failover/orchestrator.d.ts.map +1 -0
  31. package/dist/failover/orchestrator.js +488 -0
  32. package/dist/failover/orchestrator.js.map +1 -0
  33. package/dist/failover/pricing.d.ts +115 -0
  34. package/dist/failover/pricing.d.ts.map +1 -0
  35. package/dist/failover/pricing.js +283 -0
  36. package/dist/failover/pricing.js.map +1 -0
  37. package/dist/persistence/state-schema.d.ts +50 -0
  38. package/dist/persistence/state-schema.d.ts.map +1 -1
  39. package/dist/persistence/state-schema.js +2 -0
  40. package/dist/persistence/state-schema.js.map +1 -1
  41. package/dist/providers/fireworks.d.ts +23 -0
  42. package/dist/providers/fireworks.d.ts.map +1 -0
  43. package/dist/providers/fireworks.js +31 -0
  44. package/dist/providers/fireworks.js.map +1 -0
  45. package/dist/providers/groq.d.ts +23 -0
  46. package/dist/providers/groq.d.ts.map +1 -0
  47. package/dist/providers/groq.js +31 -0
  48. package/dist/providers/groq.js.map +1 -0
  49. package/dist/providers/kimi-code.d.ts +32 -0
  50. package/dist/providers/kimi-code.d.ts.map +1 -0
  51. package/dist/providers/kimi-code.js +46 -0
  52. package/dist/providers/kimi-code.js.map +1 -0
  53. package/dist/providers/kimi.d.ts +1 -1
  54. package/dist/providers/kimi.js +1 -1
  55. package/dist/providers/openrouter.d.ts +23 -0
  56. package/dist/providers/openrouter.d.ts.map +1 -0
  57. package/dist/providers/openrouter.js +31 -0
  58. package/dist/providers/openrouter.js.map +1 -0
  59. package/dist/providers/perplexity.d.ts +29 -0
  60. package/dist/providers/perplexity.d.ts.map +1 -0
  61. package/dist/providers/perplexity.js +51 -0
  62. package/dist/providers/perplexity.js.map +1 -0
  63. package/dist/providers/together.d.ts +23 -0
  64. package/dist/providers/together.d.ts.map +1 -0
  65. package/dist/providers/together.js +31 -0
  66. package/dist/providers/together.js.map +1 -0
  67. package/dist/router/engine.d.ts +21 -0
  68. package/dist/router/engine.d.ts.map +1 -1
  69. package/dist/router/engine.js +81 -21
  70. package/dist/router/engine.js.map +1 -1
  71. package/dist/server.d.ts.map +1 -1
  72. package/dist/server.js +49 -0
  73. package/dist/server.js.map +1 -1
  74. package/dist/types.d.ts +52 -1
  75. package/dist/types.d.ts.map +1 -1
  76. package/dist/types.js +14 -0
  77. package/dist/types.js.map +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ /**
2
+ * OpenRouter Provider Implementation
3
+ *
4
+ * OpenRouter provides a unified gateway to 300+ AI models via a single API.
5
+ * It uses an OpenAI-compatible API format.
6
+ * This provider extends OpenAIProvider with the correct name identifier.
7
+ */
8
+ import { OpenAIProvider } from './openai.js';
9
+ // Default base URL for OpenRouter API
10
+ const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
11
+ /**
12
+ * OpenRouter API provider adapter.
13
+ *
14
+ * Uses OpenAI-compatible API format with OpenRouter endpoints.
15
+ * Provides access to 300+ models via a single API.
16
+ *
17
+ * Default base URL: https://openrouter.ai/api/v1
18
+ * Default model: openrouter/auto (automatically selects best model)
19
+ */
20
+ export class OpenRouterProvider extends OpenAIProvider {
21
+ name = 'openrouter';
22
+ constructor(config) {
23
+ // Ensure base_url defaults to OpenRouter endpoint if not specified
24
+ const configWithDefaults = {
25
+ ...config,
26
+ base_url: config.base_url ?? OPENROUTER_BASE_URL,
27
+ };
28
+ super(configWithDefaults);
29
+ }
30
+ }
31
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAC3B,IAAI,GAAG,YAAY,CAAC;IAE7C,YAAY,MAAsB;QAChC,mEAAmE;QACnE,MAAM,kBAAkB,GAAmB;YACzC,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,mBAAmB;SACjD,CAAC;QACF,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Perplexity Provider Implementation
3
+ *
4
+ * Perplexity uses an OpenAI-compatible API format.
5
+ * This provider extends OpenAIProvider with the correct name identifier.
6
+ *
7
+ * NOTE: Perplexity does NOT have a /models endpoint, so health check uses chat completion.
8
+ */
9
+ import { OpenAIProvider } from './openai.js';
10
+ import type { ProviderConfig } from '../types.js';
11
+ /**
12
+ * Perplexity API provider adapter.
13
+ *
14
+ * Uses OpenAI-compatible API format with Perplexity endpoints.
15
+ * Provides web search grounded responses with citations.
16
+ *
17
+ * Default base URL: https://api.perplexity.ai
18
+ * Available models: sonar-deep-research, sonar-reasoning-pro, sonar-reasoning, sonar-pro, sonar, r1-1776
19
+ */
20
+ export declare class PerplexityProvider extends OpenAIProvider {
21
+ readonly name = "perplexity";
22
+ constructor(config: ProviderConfig);
23
+ /**
24
+ * Check if the provider is available and configured correctly.
25
+ * Perplexity does NOT have a /models endpoint, so we use a minimal chat completion test.
26
+ */
27
+ healthCheck(): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=perplexity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perplexity.d.ts","sourceRoot":"","sources":["../../src/providers/perplexity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,SAAyB,IAAI,gBAAgB;gBAEjC,MAAM,EAAE,cAAc;IASlC;;;OAGG;IACmB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBnD"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Perplexity Provider Implementation
3
+ *
4
+ * Perplexity uses an OpenAI-compatible API format.
5
+ * This provider extends OpenAIProvider with the correct name identifier.
6
+ *
7
+ * NOTE: Perplexity does NOT have a /models endpoint, so health check uses chat completion.
8
+ */
9
+ import { OpenAIProvider } from './openai.js';
10
+ // Default base URL for Perplexity API
11
+ const PERPLEXITY_BASE_URL = 'https://api.perplexity.ai';
12
+ /**
13
+ * Perplexity API provider adapter.
14
+ *
15
+ * Uses OpenAI-compatible API format with Perplexity endpoints.
16
+ * Provides web search grounded responses with citations.
17
+ *
18
+ * Default base URL: https://api.perplexity.ai
19
+ * Available models: sonar-deep-research, sonar-reasoning-pro, sonar-reasoning, sonar-pro, sonar, r1-1776
20
+ */
21
+ export class PerplexityProvider extends OpenAIProvider {
22
+ name = 'perplexity';
23
+ constructor(config) {
24
+ // Ensure base_url defaults to Perplexity endpoint if not specified
25
+ const configWithDefaults = {
26
+ ...config,
27
+ base_url: config.base_url ?? PERPLEXITY_BASE_URL,
28
+ };
29
+ super(configWithDefaults);
30
+ }
31
+ /**
32
+ * Check if the provider is available and configured correctly.
33
+ * Perplexity does NOT have a /models endpoint, so we use a minimal chat completion test.
34
+ */
35
+ async healthCheck() {
36
+ // Use a minimal chat completion to test the connection
37
+ const url = `${this.getBaseUrl(PERPLEXITY_BASE_URL)}/chat/completions`;
38
+ await this.makeRequest({
39
+ method: 'POST',
40
+ url,
41
+ headers: this.buildHeaders(),
42
+ body: {
43
+ model: 'sonar',
44
+ messages: [{ role: 'user', content: 'Hi' }],
45
+ max_tokens: 1,
46
+ },
47
+ timeoutMs: 15000,
48
+ });
49
+ }
50
+ }
51
+ //# sourceMappingURL=perplexity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perplexity.js","sourceRoot":"","sources":["../../src/providers/perplexity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAC3B,IAAI,GAAG,YAAY,CAAC;IAE7C,YAAY,MAAsB;QAChC,mEAAmE;QACnE,MAAM,kBAAkB,GAAmB;YACzC,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,mBAAmB;SACjD,CAAC;QACF,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACa,KAAK,CAAC,WAAW;QAC/B,uDAAuD;QACvD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;QAEvE,MAAM,IAAI,CAAC,WAAW,CAAiB;YACrC,MAAM,EAAE,MAAM;YACd,GAAG;YACH,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC3C,UAAU,EAAE,CAAC;aACd;YACD,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Together AI Provider Implementation
3
+ *
4
+ * Together AI provides access to 200+ open models with sub-100ms latency.
5
+ * It uses an OpenAI-compatible API format.
6
+ * This provider extends OpenAIProvider with the correct name identifier.
7
+ */
8
+ import { OpenAIProvider } from './openai.js';
9
+ import type { ProviderConfig } from '../types.js';
10
+ /**
11
+ * Together AI API provider adapter.
12
+ *
13
+ * Uses OpenAI-compatible API format with Together AI endpoints.
14
+ * Provides access to 200+ open models with sub-100ms latency.
15
+ *
16
+ * Default base URL: https://api.together.xyz/v1
17
+ * Available models: meta-llama/Llama-3.3-70B-Instruct-Turbo, deepseek-ai/DeepSeek-V3, Qwen/Qwen2.5-72B-Instruct-Turbo
18
+ */
19
+ export declare class TogetherProvider extends OpenAIProvider {
20
+ readonly name = "together";
21
+ constructor(config: ProviderConfig);
22
+ }
23
+ //# sourceMappingURL=together.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../src/providers/together.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,SAAyB,IAAI,cAAc;gBAE/B,MAAM,EAAE,cAAc;CAQnC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Together AI Provider Implementation
3
+ *
4
+ * Together AI provides access to 200+ open models with sub-100ms latency.
5
+ * It uses an OpenAI-compatible API format.
6
+ * This provider extends OpenAIProvider with the correct name identifier.
7
+ */
8
+ import { OpenAIProvider } from './openai.js';
9
+ // Default base URL for Together AI API
10
+ const TOGETHER_BASE_URL = 'https://api.together.xyz/v1';
11
+ /**
12
+ * Together AI API provider adapter.
13
+ *
14
+ * Uses OpenAI-compatible API format with Together AI endpoints.
15
+ * Provides access to 200+ open models with sub-100ms latency.
16
+ *
17
+ * Default base URL: https://api.together.xyz/v1
18
+ * Available models: meta-llama/Llama-3.3-70B-Instruct-Turbo, deepseek-ai/DeepSeek-V3, Qwen/Qwen2.5-72B-Instruct-Turbo
19
+ */
20
+ export class TogetherProvider extends OpenAIProvider {
21
+ name = 'together';
22
+ constructor(config) {
23
+ // Ensure base_url defaults to Together AI endpoint if not specified
24
+ const configWithDefaults = {
25
+ ...config,
26
+ base_url: config.base_url ?? TOGETHER_BASE_URL,
27
+ };
28
+ super(configWithDefaults);
29
+ }
30
+ }
31
+ //# sourceMappingURL=together.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"together.js","sourceRoot":"","sources":["../../src/providers/together.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,uCAAuC;AACvC,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IACzB,IAAI,GAAG,UAAU,CAAC;IAE3C,YAAY,MAAsB;QAChC,oEAAoE;QACpE,MAAM,kBAAkB,GAAmB;YACzC,GAAG,MAAM;YACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,iBAAiB;SAC/C,CAAC;QACF,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { type Logger } from '../observability/logger.js';
15
15
  import { type Config, type InvokeAgentInput, type AgentResponse, type AgentConfig } from '../types.js';
16
+ import { FailoverOrchestrator, type FailoverOrchestratorConfig } from '../failover/orchestrator.js';
16
17
  import type { ProviderManager } from '../providers/manager.js';
17
18
  /**
18
19
  * Options for configuring the RouterEngine.
@@ -22,6 +23,8 @@ export interface RouterEngineOptions {
22
23
  enableFallback?: boolean;
23
24
  /** Maximum retries before attempting fallback (default: 0) */
24
25
  maxRetries?: number;
26
+ /** Failover orchestrator configuration */
27
+ failoverConfig?: FailoverOrchestratorConfig;
25
28
  }
26
29
  /**
27
30
  * Result of a comparison operation for a single role.
@@ -65,6 +68,8 @@ export declare class RouterEngine {
65
68
  private readonly providers;
66
69
  private readonly logger;
67
70
  private readonly options;
71
+ private readonly config;
72
+ private failoverOrchestrator?;
68
73
  /**
69
74
  * Create a new RouterEngine instance.
70
75
  *
@@ -132,6 +137,22 @@ export declare class RouterEngine {
132
137
  * @throws Error if the role does not exist
133
138
  */
134
139
  resolveRole(role: string): AgentConfig;
140
+ /**
141
+ * Get the failover orchestrator (if enabled).
142
+ *
143
+ * @returns The failover orchestrator instance or undefined if not enabled
144
+ */
145
+ getFailoverOrchestrator(): FailoverOrchestrator | undefined;
146
+ /**
147
+ * Initialize the router engine (starts health checks, fetches pricing).
148
+ * Should be called after construction before handling requests.
149
+ */
150
+ initialize(): Promise<void>;
151
+ /**
152
+ * Shutdown the router engine.
153
+ * Stops health checks and cleans up resources.
154
+ */
155
+ shutdown(): void;
135
156
  /**
136
157
  * Build the messages array for a completion request.
137
158
  *
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/router/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAmB,KAAM,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAiB,KACtB,MAAM,EAAC,KACP,gBAAgB,EAAC,KACjB,aAAa,EAAC,KACd,WAAW,EAGZ,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD;;;;;;;OAOG;gBAED,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB;IAWnC;;;;;;;;;;;;;;;;;OAiBG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAgHlE;;;;;;;;;OASG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAkEvF;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASlC;;;;OAIG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAQtC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAoCrB;;;;;;;;OAQG;YACW,kBAAkB;CAoGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,YAAY,CAEd"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/router/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAmB,KAAM,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAiB,KACtB,MAAM,EAAC,KACP,gBAAgB,EAAC,KACjB,aAAa,EAAC,KACd,WAAW,EAIZ,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuE;IAC/F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IAEpD;;;;;;;OAOG;gBAED,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB;IAsBnC;;;;;;;;;;;;;;;;;OAiBG;IACG,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAgJlE;;;;;;;;;OASG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAkEvF;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASlC;;;;OAIG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAItC;;;;OAIG;IACH,uBAAuB,IAAI,oBAAoB,GAAG,SAAS;IAI3D;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAUhB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAoCrB;;;;;;;;OAQG;YACW,kBAAkB;CAoGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,YAAY,CAEd"}
@@ -14,6 +14,7 @@
14
14
  import { generateTraceId } from '../observability/logger.js';
15
15
  import { ProviderError, } from '../types.js';
16
16
  import { RoleResolver } from './role-resolver.js';
17
+ import { FailoverOrchestrator } from '../failover/orchestrator.js';
17
18
  // ============================================================================
18
19
  // RouterEngine Class
19
20
  // ============================================================================
@@ -50,6 +51,8 @@ export class RouterEngine {
50
51
  providers;
51
52
  logger;
52
53
  options;
54
+ config;
55
+ failoverOrchestrator;
53
56
  /**
54
57
  * Create a new RouterEngine instance.
55
58
  *
@@ -62,10 +65,15 @@ export class RouterEngine {
62
65
  this.roleResolver = new RoleResolver(config);
63
66
  this.providers = providers;
64
67
  this.logger = logger;
68
+ this.config = config;
65
69
  this.options = {
66
70
  enableFallback: options.enableFallback ?? true,
67
71
  maxRetries: options.maxRetries ?? 0,
68
72
  };
73
+ // Initialize failover orchestrator if configured
74
+ if (config.defaults.failover?.enabled !== false) {
75
+ this.failoverOrchestrator = new FailoverOrchestrator(providers, config, logger, options.failoverConfig);
76
+ }
69
77
  }
70
78
  /**
71
79
  * Invoke an agent by role.
@@ -108,39 +116,65 @@ export class RouterEngine {
108
116
  });
109
117
  // 2. Build messages with system prompt and context
110
118
  const messages = this.buildMessages(agentConfig, input);
111
- // 3. Get provider for this agent
112
- const provider = this.providers.get(agentConfig.provider);
113
- // 4. Build completion request
114
- const request = {
115
- model: agentConfig.model,
116
- messages,
117
- temperature: agentConfig.temperature,
118
- max_tokens: agentConfig.max_tokens,
119
- timeout_ms: agentConfig.timeout_ms,
120
- };
121
- // Only add tools if provided (exactOptionalPropertyTypes compliance)
122
- if (input.tools && input.tools.length > 0) {
123
- request.tools = input.tools;
119
+ let response;
120
+ let actualProvider = agentConfig.provider;
121
+ let actualModel = agentConfig.model;
122
+ let usedFailover = false;
123
+ // 3. Execute with or without failover orchestrator
124
+ if (this.failoverOrchestrator) {
125
+ const result = await this.failoverOrchestrator.executeWithFailover(input.role, messages, {
126
+ temperature: agentConfig.temperature,
127
+ max_tokens: agentConfig.max_tokens,
128
+ timeout_ms: agentConfig.timeout_ms,
129
+ });
130
+ response = result.response;
131
+ actualProvider = result.provider;
132
+ actualModel = result.model;
133
+ usedFailover = result.usedFailover;
134
+ if (usedFailover) {
135
+ this.logger.info('Request used failover', {
136
+ traceId,
137
+ role: input.role,
138
+ originalProvider: agentConfig.provider,
139
+ actualProvider,
140
+ failoverCount: result.failoverCount,
141
+ });
142
+ }
124
143
  }
125
- // 5. Execute request
126
- const response = await provider.complete(request);
127
- // 6. Calculate duration and log success
144
+ else {
145
+ // 4. Get provider and execute without failover
146
+ const provider = this.providers.get(agentConfig.provider);
147
+ const request = {
148
+ model: agentConfig.model,
149
+ messages,
150
+ temperature: agentConfig.temperature,
151
+ max_tokens: agentConfig.max_tokens,
152
+ timeout_ms: agentConfig.timeout_ms,
153
+ };
154
+ // Only add tools if provided (exactOptionalPropertyTypes compliance)
155
+ if (input.tools && input.tools.length > 0) {
156
+ request.tools = input.tools;
157
+ }
158
+ response = await provider.complete(request);
159
+ }
160
+ // 5. Calculate duration and log success
128
161
  const durationMs = Date.now() - startTime;
129
162
  this.logger.info('Agent response received', {
130
163
  traceId,
131
164
  role: input.role,
132
- provider: agentConfig.provider,
133
- model: agentConfig.model,
165
+ provider: actualProvider,
166
+ model: actualModel,
134
167
  durationMs,
135
168
  inputTokens: response.usage?.input_tokens,
136
169
  outputTokens: response.usage?.output_tokens,
137
170
  stopReason: response.stop_reason,
171
+ usedFailover,
138
172
  });
139
- // 7. Return formatted response
173
+ // 6. Return formatted response
140
174
  const result = {
141
175
  role: input.role,
142
- provider: agentConfig.provider,
143
- model: agentConfig.model,
176
+ provider: actualProvider,
177
+ model: actualModel,
144
178
  content: response.content,
145
179
  metadata: {
146
180
  traceId,
@@ -288,6 +322,32 @@ export class RouterEngine {
288
322
  resolveRole(role) {
289
323
  return this.roleResolver.resolve(role);
290
324
  }
325
+ /**
326
+ * Get the failover orchestrator (if enabled).
327
+ *
328
+ * @returns The failover orchestrator instance or undefined if not enabled
329
+ */
330
+ getFailoverOrchestrator() {
331
+ return this.failoverOrchestrator;
332
+ }
333
+ /**
334
+ * Initialize the router engine (starts health checks, fetches pricing).
335
+ * Should be called after construction before handling requests.
336
+ */
337
+ async initialize() {
338
+ if (this.failoverOrchestrator) {
339
+ await this.failoverOrchestrator.initialize();
340
+ }
341
+ }
342
+ /**
343
+ * Shutdown the router engine.
344
+ * Stops health checks and cleans up resources.
345
+ */
346
+ shutdown() {
347
+ if (this.failoverOrchestrator) {
348
+ this.failoverOrchestrator.shutdown();
349
+ }
350
+ }
291
351
  // ==========================================================================
292
352
  // Private Methods
293
353
  // ==========================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/router/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/router/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAW1D;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAgLvD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,SAAS,CAEhD;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAY1D;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAwNvD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,SAAS,CAEtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,SAAS,CAEhD;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
package/dist/server.js CHANGED
@@ -15,6 +15,12 @@ import { OllamaProvider } from "./providers/ollama.js";
15
15
  import { OpenAIProvider } from "./providers/openai.js";
16
16
  import { ZAIProvider } from "./providers/zai.js";
17
17
  import { KimiProvider } from "./providers/kimi.js";
18
+ import { KimiCodeProvider } from "./providers/kimi-code.js";
19
+ import { PerplexityProvider } from "./providers/perplexity.js";
20
+ import { OpenRouterProvider } from "./providers/openrouter.js";
21
+ import { GroqProvider } from "./providers/groq.js";
22
+ import { TogetherProvider } from "./providers/together.js";
23
+ import { FireworksProvider } from "./providers/fireworks.js";
18
24
  import { RouterEngine } from "./router/engine.js";
19
25
  import { TaskCoordinator, PipelineManager } from "./tasks/index.js";
20
26
  import { WorktreeManager } from "./worktrees/manager.js";
@@ -23,6 +29,7 @@ import { initializeWithRecovery, shutdown } from "./startup.js";
23
29
  // Module-level state for shutdown handling
24
30
  let activeStateStore;
25
31
  let activeRepoPath;
32
+ let activeRouter;
26
33
  const SERVER_NAME = "agent-router";
27
34
  const SERVER_VERSION = "3.0.2";
28
35
  /**
@@ -70,6 +77,18 @@ export async function createServer() {
70
77
  providers.registerFactory("zai", (providerConfig) => new ZAIProvider(providerConfig));
71
78
  // kimi (Moonshot AI) uses dedicated Kimi provider (OpenAI-compatible API with correct name)
72
79
  providers.registerFactory("kimi", (providerConfig) => new KimiProvider(providerConfig));
80
+ // kimi-code (Kimi Code API) - separate endpoint with User-Agent requirement
81
+ providers.registerFactory("kimi-code", (providerConfig) => new KimiCodeProvider(providerConfig));
82
+ // perplexity - web search grounded responses with citations
83
+ providers.registerFactory("perplexity", (providerConfig) => new PerplexityProvider(providerConfig));
84
+ // openrouter - gateway to 300+ models via single API
85
+ providers.registerFactory("openrouter", (providerConfig) => new OpenRouterProvider(providerConfig));
86
+ // groq - ultra-fast LPU inference (18x faster)
87
+ providers.registerFactory("groq", (providerConfig) => new GroqProvider(providerConfig));
88
+ // together - 200+ open models, sub-100ms latency
89
+ providers.registerFactory("together", (providerConfig) => new TogetherProvider(providerConfig));
90
+ // fireworks - fast inference for DeepSeek, Llama, etc.
91
+ providers.registerFactory("fireworks", (providerConfig) => new FireworksProvider(providerConfig));
73
92
  logger.debug("Provider factories registered", {
74
93
  providers: providers.listProviders(),
75
94
  });
@@ -83,6 +102,30 @@ export async function createServer() {
83
102
  logger.debug("RouterEngine created", {
84
103
  availableRoles: router.listRoles(),
85
104
  });
105
+ // Initialize the router (starts health checks, fetches pricing)
106
+ try {
107
+ await router.initialize();
108
+ // Log provider status summary
109
+ const orchestrator = router.getFailoverOrchestrator();
110
+ if (orchestrator) {
111
+ const pricingService = orchestrator.getPricingService();
112
+ const configuredProviders = providers.listConfigured();
113
+ if (configuredProviders.length > 0) {
114
+ const providerInfo = configuredProviders.map(name => {
115
+ const providerConfig = config.providers[name];
116
+ const defaultModel = providerConfig?.default_model || 'default';
117
+ return { provider: name, model: defaultModel };
118
+ });
119
+ logger.info('Provider cost summary:\n' + pricingService.formatCostSummary(providerInfo));
120
+ }
121
+ }
122
+ }
123
+ catch (error) {
124
+ const errorMessage = error instanceof Error ? error.message : String(error);
125
+ logger.warn('Router initialization partially failed', { errorMessage });
126
+ }
127
+ // Store router reference for shutdown handling
128
+ activeRouter = router;
86
129
  // Create task integration modules if enabled
87
130
  let taskCoordinator;
88
131
  let pipelineManager;
@@ -211,6 +254,12 @@ export function getRepoPath() {
211
254
  */
212
255
  export async function shutdownServer() {
213
256
  const logger = new Logger({ name: SERVER_NAME });
257
+ // Shutdown router to stop health checks
258
+ if (activeRouter) {
259
+ logger.debug("Stopping router health checks...");
260
+ activeRouter.shutdown();
261
+ activeRouter = undefined;
262
+ }
214
263
  if (activeStateStore && activeRepoPath) {
215
264
  logger.info("Shutting down, saving final state...");
216
265
  await shutdown(activeStateStore, activeRepoPath);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}