@trenchwork/erosolar 1.1.40 → 1.1.41

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 (81) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +236 -225
  3. package/agents/erosolar-code.rules.json +199 -199
  4. package/dist/bin/deepseek.js +18 -198
  5. package/dist/bin/deepseek.js.map +1 -1
  6. package/dist/bin/erosolar.js +0 -0
  7. package/dist/capabilities/enhancedGitCapability.js +63 -63
  8. package/dist/config.js +12 -12
  9. package/dist/contracts/agent-profiles.schema.json +5 -23
  10. package/dist/contracts/agent-schemas.json +31 -343
  11. package/dist/contracts/models.schema.json +9 -9
  12. package/dist/contracts/module-schema.json +367 -367
  13. package/dist/contracts/schemas/agent-profile.schema.json +157 -157
  14. package/dist/contracts/schemas/agent-rules.schema.json +238 -238
  15. package/dist/contracts/schemas/agent-schemas.schema.json +528 -528
  16. package/dist/contracts/schemas/agent.schema.json +90 -90
  17. package/dist/contracts/schemas/tool-selection.schema.json +174 -174
  18. package/dist/contracts/tools.schema.json +42 -42
  19. package/dist/contracts/unified-schema.json +8 -628
  20. package/dist/core/constants.js +7 -7
  21. package/dist/core/contextManager.js +16 -16
  22. package/dist/core/modelDiscovery.d.ts +0 -3
  23. package/dist/core/modelDiscovery.d.ts.map +1 -1
  24. package/dist/core/modelDiscovery.js +3 -355
  25. package/dist/core/modelDiscovery.js.map +1 -1
  26. package/dist/core/quotaErrors.d.ts +42 -0
  27. package/dist/core/quotaErrors.d.ts.map +1 -0
  28. package/dist/core/quotaErrors.js +88 -0
  29. package/dist/core/quotaErrors.js.map +1 -0
  30. package/dist/core/secretStore.d.ts.map +1 -1
  31. package/dist/core/secretStore.js +1 -14
  32. package/dist/core/secretStore.js.map +1 -1
  33. package/dist/core/taskCompletionDetector.js +17 -17
  34. package/dist/headless/interactiveShell.d.ts.map +1 -1
  35. package/dist/headless/interactiveShell.js +7 -58
  36. package/dist/headless/interactiveShell.js.map +1 -1
  37. package/dist/leanAgent.js +38 -38
  38. package/dist/plugins/providers/deepseek/index.d.ts +1 -0
  39. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  40. package/dist/plugins/providers/deepseek/index.js +65 -4
  41. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  42. package/dist/plugins/providers/index.d.ts.map +1 -1
  43. package/dist/plugins/providers/index.js +0 -7
  44. package/dist/plugins/providers/index.js.map +1 -1
  45. package/dist/providers/openaiChatCompletionsProvider.js +7 -30
  46. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  47. package/dist/providers/resilientProvider.d.ts.map +1 -1
  48. package/dist/providers/resilientProvider.js +0 -31
  49. package/dist/providers/resilientProvider.js.map +1 -1
  50. package/dist/runtime/agentSession.js +4 -4
  51. package/dist/shell/vimMode.js +29 -29
  52. package/dist/tools/hitlTools.js +18 -18
  53. package/dist/tools/webTools.d.ts.map +1 -1
  54. package/dist/tools/webTools.js +10 -0
  55. package/dist/tools/webTools.js.map +1 -1
  56. package/package.json +116 -123
  57. package/scripts/postinstall.cjs +57 -58
  58. package/dist/bin/cliMode.d.ts +0 -8
  59. package/dist/bin/cliMode.d.ts.map +0 -1
  60. package/dist/bin/cliMode.js +0 -20
  61. package/dist/bin/cliMode.js.map +0 -1
  62. package/dist/bin/selfTest.d.ts +0 -14
  63. package/dist/bin/selfTest.d.ts.map +0 -1
  64. package/dist/bin/selfTest.js +0 -298
  65. package/dist/bin/selfTest.js.map +0 -1
  66. package/dist/headless/printMode.d.ts +0 -17
  67. package/dist/headless/printMode.d.ts.map +0 -1
  68. package/dist/headless/printMode.js +0 -40
  69. package/dist/headless/printMode.js.map +0 -1
  70. package/dist/plugins/providers/anthropic/index.d.ts +0 -9
  71. package/dist/plugins/providers/anthropic/index.d.ts.map +0 -1
  72. package/dist/plugins/providers/anthropic/index.js +0 -48
  73. package/dist/plugins/providers/anthropic/index.js.map +0 -1
  74. package/dist/plugins/providers/openai/index.d.ts +0 -10
  75. package/dist/plugins/providers/openai/index.d.ts.map +0 -1
  76. package/dist/plugins/providers/openai/index.js +0 -47
  77. package/dist/plugins/providers/openai/index.js.map +0 -1
  78. package/dist/plugins/providers/xai/index.d.ts +0 -10
  79. package/dist/plugins/providers/xai/index.d.ts.map +0 -1
  80. package/dist/plugins/providers/xai/index.js +0 -47
  81. package/dist/plugins/providers/xai/index.js.map +0 -1
@@ -1,298 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Self-Test Runner for Erosolar CLI
4
- *
5
- * Launches the CLI in a separate process and runs extensive tests
6
- * to verify functionality works correctly in a real runtime environment.
7
- *
8
- * @license MIT
9
- */
10
- import { spawn } from 'node:child_process';
11
- import { dirname, join } from 'node:path';
12
- import { fileURLToPath } from 'node:url';
13
- import { ComposableMessageBuilder } from '../shell/composableMessage.js';
14
- const __filename = fileURLToPath(import.meta.url);
15
- const __dirname = dirname(__filename);
16
- const PROJECT_DIR = join(__dirname, '../..');
17
- // ANSI escape codes
18
- const COLORS = {
19
- reset: '\x1b[0m',
20
- green: '\x1b[32m',
21
- red: '\x1b[31m',
22
- yellow: '\x1b[33m',
23
- cyan: '\x1b[36m',
24
- dim: '\x1b[2m',
25
- bold: '\x1b[1m',
26
- };
27
- /**
28
- * Run all self-tests
29
- */
30
- export async function runSelfTest() {
31
- console.log(`\n${COLORS.bold}╔══════════════════════════════════════════════════════════╗${COLORS.reset}`);
32
- console.log(`${COLORS.bold}║ Erosolar CLI SELF-TEST SUITE ║${COLORS.reset}`);
33
- console.log(`${COLORS.bold}╚══════════════════════════════════════════════════════════╝${COLORS.reset}\n`);
34
- const results = [];
35
- // Phase 1: Unit tests (fast, in-process)
36
- console.log(`${COLORS.cyan}▶ Phase 1: Unit Tests (in-process)${COLORS.reset}\n`);
37
- results.push(...await runUnitTests());
38
- // Phase 2: CLI launch tests (separate process)
39
- console.log(`\n${COLORS.cyan}▶ Phase 2: CLI Runtime Tests (separate process)${COLORS.reset}\n`);
40
- results.push(...await runCLITests());
41
- // Phase 3: Integration tests (if time permits)
42
- console.log(`\n${COLORS.cyan}▶ Phase 3: Integration Tests${COLORS.reset}\n`);
43
- results.push(...await runIntegrationTests());
44
- // Summary
45
- printSummary(results);
46
- return results.every(r => r.passed);
47
- }
48
- /**
49
- * Run unit tests for core modules
50
- */
51
- async function runUnitTests() {
52
- const results = [];
53
- // Test 1: ComposableMessageBuilder - Paste handling (paste chips removed)
54
- results.push(await runTest('ComposableMessageBuilder: Basic paste handling', () => {
55
- const builder = new ComposableMessageBuilder();
56
- const code = 'function test() {\n return true;\n}';
57
- const id = builder.addPaste(code);
58
- if (!id)
59
- throw new Error('Paste should be accepted');
60
- const part = builder.getPart(id);
61
- if (!part || part.type !== 'paste')
62
- throw new Error('Paste part not found');
63
- if (part.content !== code)
64
- throw new Error('Paste content mismatch');
65
- }));
66
- return results;
67
- }
68
- /**
69
- * Run CLI tests in separate process
70
- */
71
- async function runCLITests() {
72
- const results = [];
73
- // Test 1: CLI starts successfully
74
- results.push(await runTest('CLI: Starts without errors', async () => {
75
- const ctx = await launchCLI();
76
- try {
77
- await waitForOutput(ctx, /agi|welcome|ready/i, 10000);
78
- }
79
- finally {
80
- await stopCLI(ctx);
81
- }
82
- }));
83
- // Test 2: CLI responds to /help
84
- results.push(await runTest('CLI: /help command works', async () => {
85
- const ctx = await launchCLI();
86
- try {
87
- await waitForOutput(ctx, /agi|welcome|ready/i, 10000);
88
- ctx.cli?.stdin?.write('/help\n');
89
- await waitForOutput(ctx, /command|help|available/i, 5000);
90
- }
91
- finally {
92
- await stopCLI(ctx);
93
- }
94
- }));
95
- // Test 3: CLI handles /clear command
96
- results.push(await runTest('CLI: /clear command works', async () => {
97
- const ctx = await launchCLI();
98
- try {
99
- await waitForOutput(ctx, /agi|welcome|ready/i, 10000);
100
- ctx.cli?.stdin?.write('/clear\n');
101
- await wait(500);
102
- // Should not crash
103
- if (ctx.errors.toLowerCase().includes('crash') || ctx.errors.toLowerCase().includes('fatal')) {
104
- throw new Error(`CLI crashed on /clear: ${ctx.errors}`);
105
- }
106
- }
107
- finally {
108
- await stopCLI(ctx);
109
- }
110
- }));
111
- // Test 4: CLI exits cleanly with /exit or Ctrl+D
112
- results.push(await runTest('CLI: Graceful shutdown (Ctrl+C/D)', async () => {
113
- const ctx = await launchCLI();
114
- try {
115
- await waitForOutput(ctx, /agi|welcome|ready/i, 10000);
116
- // Send Ctrl+C followed by Ctrl+D for graceful shutdown
117
- ctx.cli?.stdin?.write('\x03'); // Ctrl+C
118
- await wait(300);
119
- ctx.cli?.stdin?.write('\x04'); // Ctrl+D
120
- // Wait for process to exit
121
- await new Promise((resolve) => {
122
- const timeout = setTimeout(() => {
123
- // Force kill if graceful shutdown didn't work - this is acceptable
124
- ctx.cli?.kill('SIGTERM');
125
- resolve();
126
- }, 3000);
127
- ctx.cli?.on('exit', () => {
128
- clearTimeout(timeout);
129
- resolve();
130
- });
131
- });
132
- }
133
- finally {
134
- // Already handled
135
- }
136
- }));
137
- return results;
138
- }
139
- /**
140
- * Run integration tests
141
- */
142
- async function runIntegrationTests() {
143
- const results = [];
144
- // Test 1: Version flag works
145
- results.push(await runTest('Integration: --version flag', async () => {
146
- const result = await runCLICommand(['--version']);
147
- if (!result.output.includes('agi-cli v')) {
148
- throw new Error(`Version not shown: ${result.output}`);
149
- }
150
- }));
151
- // Test 2: Help flag works
152
- results.push(await runTest('Integration: --help flag', async () => {
153
- const result = await runCLICommand(['--help']);
154
- if (!result.output.includes('Usage:')) {
155
- throw new Error(`Help not shown: ${result.output}`);
156
- }
157
- }));
158
- // Test 3: Invalid flag handling
159
- results.push(await runTest('Integration: Invalid flag handling', async () => {
160
- // Should not crash on unknown flags (just pass them through or ignore)
161
- const result = await runCLICommand(['--invalid-flag-xyz'], 3000);
162
- // Just check it doesn't crash with unhandled exception
163
- if (result.errors.includes('unhandled') || result.errors.includes('uncaught')) {
164
- throw new Error(`Unhandled exception on invalid flag: ${result.errors}`);
165
- }
166
- }));
167
- return results;
168
- }
169
- // ============================================================================
170
- // HELPER FUNCTIONS
171
- // ============================================================================
172
- async function runTest(name, fn) {
173
- const start = Date.now();
174
- try {
175
- await fn();
176
- const duration = Date.now() - start;
177
- console.log(` ${COLORS.green}✓${COLORS.reset} ${name} ${COLORS.dim}(${duration}ms)${COLORS.reset}`);
178
- return { name, passed: true, duration };
179
- }
180
- catch (error) {
181
- const duration = Date.now() - start;
182
- const message = error instanceof Error ? error.message : String(error);
183
- console.log(` ${COLORS.red}✗${COLORS.reset} ${name} ${COLORS.dim}(${duration}ms)${COLORS.reset}`);
184
- console.log(` ${COLORS.red}${message}${COLORS.reset}`);
185
- return { name, passed: false, duration, error: message };
186
- }
187
- }
188
- async function launchCLI() {
189
- const ctx = {
190
- cli: null,
191
- output: '',
192
- errors: '',
193
- };
194
- const cliPath = join(PROJECT_DIR, 'dist/bin/agi.js');
195
- ctx.cli = spawn('node', [cliPath], {
196
- cwd: PROJECT_DIR,
197
- env: {
198
- ...process.env,
199
- NO_COLOR: '1',
200
- FORCE_COLOR: '0',
201
- CI: '1',
202
- },
203
- stdio: ['pipe', 'pipe', 'pipe'],
204
- });
205
- ctx.cli.stdout?.on('data', (data) => {
206
- ctx.output += data.toString();
207
- });
208
- ctx.cli.stderr?.on('data', (data) => {
209
- ctx.errors += data.toString();
210
- });
211
- return ctx;
212
- }
213
- async function stopCLI(ctx) {
214
- if (!ctx.cli)
215
- return;
216
- return new Promise((resolve) => {
217
- const timeout = setTimeout(() => {
218
- ctx.cli?.kill('SIGKILL');
219
- resolve();
220
- }, 3000);
221
- ctx.cli.on('exit', () => {
222
- clearTimeout(timeout);
223
- resolve();
224
- });
225
- ctx.cli?.stdin?.write('\x03'); // Ctrl+C
226
- setTimeout(() => {
227
- ctx.cli?.stdin?.write('\x04'); // Ctrl+D
228
- }, 500);
229
- });
230
- }
231
- async function waitForOutput(ctx, pattern, timeout) {
232
- const start = Date.now();
233
- return new Promise((resolve, reject) => {
234
- const check = () => {
235
- if (pattern.test(ctx.output)) {
236
- resolve();
237
- return;
238
- }
239
- if (Date.now() - start > timeout) {
240
- reject(new Error(`Timeout waiting for pattern ${pattern}. Output: ${ctx.output.slice(-500)}`));
241
- return;
242
- }
243
- setTimeout(check, 100);
244
- };
245
- check();
246
- });
247
- }
248
- async function wait(ms) {
249
- return new Promise(resolve => setTimeout(resolve, ms));
250
- }
251
- async function runCLICommand(args, timeout = 5000) {
252
- return new Promise((resolve) => {
253
- const cliPath = join(PROJECT_DIR, 'dist/bin/agi.js');
254
- let output = '';
255
- let errors = '';
256
- const proc = spawn('node', [cliPath, ...args], {
257
- cwd: PROJECT_DIR,
258
- env: { ...process.env, NO_COLOR: '1' },
259
- stdio: ['pipe', 'pipe', 'pipe'],
260
- });
261
- const timer = setTimeout(() => {
262
- proc.kill('SIGKILL');
263
- }, timeout);
264
- proc.stdout?.on('data', (data) => { output += data.toString(); });
265
- proc.stderr?.on('data', (data) => { errors += data.toString(); });
266
- proc.on('exit', (code) => {
267
- clearTimeout(timer);
268
- resolve({ output, errors, exitCode: code ?? 0 });
269
- });
270
- });
271
- }
272
- function printSummary(results) {
273
- const passed = results.filter(r => r.passed).length;
274
- const failed = results.filter(r => !r.passed).length;
275
- const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
276
- console.log(`\n${COLORS.bold}════════════════════════════════════════════════════════════${COLORS.reset}`);
277
- console.log(`${COLORS.bold} TEST SUMMARY${COLORS.reset}`);
278
- console.log(`${COLORS.bold}════════════════════════════════════════════════════════════${COLORS.reset}`);
279
- console.log(` Total: ${results.length}`);
280
- console.log(` ${COLORS.green}Passed: ${passed}${COLORS.reset}`);
281
- if (failed > 0) {
282
- console.log(` ${COLORS.red}Failed: ${failed}${COLORS.reset}`);
283
- }
284
- console.log(` Duration: ${(totalDuration / 1000).toFixed(2)}s`);
285
- console.log();
286
- if (failed === 0) {
287
- console.log(`${COLORS.green}${COLORS.bold} ✓ ALL TESTS PASSED${COLORS.reset}\n`);
288
- }
289
- else {
290
- console.log(`${COLORS.red}${COLORS.bold} ✗ SOME TESTS FAILED${COLORS.reset}`);
291
- console.log(`\n Failed tests:`);
292
- for (const r of results.filter(r => !r.passed)) {
293
- console.log(` - ${r.name}: ${r.error}`);
294
- }
295
- console.log();
296
- }
297
- }
298
- //# sourceMappingURL=selfTest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selfTest.js","sourceRoot":"","sources":["../../src/bin/selfTest.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Non-interactive print mode. Runs the coding agent once on a single prompt
3
- * and returns its final answer, for `erosolar -p "..."` / piped stdin —
4
- * scripting, pipelines, and CI where there is no TTY. Bring-your-own-key:
5
- * createProvider throws a clear "set your DeepSeek key" error if no key is
6
- * configured, which the caller surfaces on stderr.
7
- */
8
- export interface PrintResult {
9
- content: string;
10
- toolsUsed: string[];
11
- elapsedMs?: number;
12
- model: string;
13
- }
14
- export declare function runPrintMode(prompt: string, opts?: {
15
- model?: string;
16
- }): Promise<PrintResult>;
17
- //# sourceMappingURL=printMode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"printMode.d.ts","sourceRoot":"","sources":["../../src/headless/printMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA6BtG"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Non-interactive print mode. Runs the coding agent once on a single prompt
3
- * and returns its final answer, for `erosolar -p "..."` / piped stdin —
4
- * scripting, pipelines, and CI where there is no TTY. Bring-your-own-key:
5
- * createProvider throws a clear "set your DeepSeek key" error if no key is
6
- * configured, which the caller surfaces on stderr.
7
- */
8
- import { loadAllSecrets } from '../core/secretStore.js';
9
- import { registerDefaultProviderPlugins } from '../plugins/providers/index.js';
10
- import { createProvider } from '../providers/providerFactory.js';
11
- import { resolveProfileConfig } from '../config.js';
12
- import { listAgentProfiles } from '../core/agentProfiles.js';
13
- import { createLeanAgent } from '../leanAgent.js';
14
- export async function runPrintMode(prompt, opts = {}) {
15
- // Pick up a key set via `erosolar --key` / /secrets (stored on disk), then
16
- // env. Importing config.js above has already registered the agent profiles.
17
- loadAllSecrets();
18
- registerDefaultProviderPlugins();
19
- const profile = listAgentProfiles()[0];
20
- const cfg = resolveProfileConfig(profile ? profile.name : 'erosolar-code', null);
21
- // --model selects the DeepSeek variant for this run (e.g. deepseek-v4-flash).
22
- const model = opts.model?.trim() || cfg.model;
23
- const provider = createProvider({
24
- provider: cfg.provider,
25
- model,
26
- ...(typeof cfg.temperature === 'number' ? { temperature: cfg.temperature } : {}),
27
- ...(typeof cfg.maxTokens === 'number' ? { maxTokens: cfg.maxTokens } : {}),
28
- });
29
- const agent = createLeanAgent({
30
- provider,
31
- providerId: cfg.provider,
32
- modelId: model,
33
- systemPrompt: cfg.systemPrompt,
34
- workingDir: process.cwd(),
35
- });
36
- // Non-streaming so stdout is the clean final answer, nothing else.
37
- const res = await agent.chat(prompt, false);
38
- return { content: res.content, toolsUsed: res.toolsUsed, elapsedMs: res.elapsedMs, model };
39
- }
40
- //# sourceMappingURL=printMode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"printMode.js","sourceRoot":"","sources":["../../src/headless/printMode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASlD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,OAA2B,EAAE;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,cAAc,EAAE,CAAC;IACjB,8BAA8B,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACjF,8EAA8E;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;IAE9C,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK;QACL,GAAG,CAAC,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,QAAQ;QACR,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;KAC1B,CAAC,CAAC;IAEH,mEAAmE;IACnE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7F,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Anthropic Provider Plugin
3
- *
4
- * Registers the Anthropic provider for Claude models via OpenAI-compatible endpoint.
5
- * Note: Uses OpenRouter or similar proxy for OpenAI-compatible Anthropic access.
6
- * For direct Anthropic API, use ANTHROPIC_BASE_URL env var.
7
- */
8
- export declare function registerAnthropicProviderPlugin(): void;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAgCtD"}
@@ -1,48 +0,0 @@
1
- import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
- import { registerProvider } from '../../../providers/providerFactory.js';
3
- import { withProviderResilience } from '../../../providers/resilientProvider.js';
4
- let registered = false;
5
- /**
6
- * Anthropic Provider Plugin
7
- *
8
- * Registers the Anthropic provider for Claude models via OpenAI-compatible endpoint.
9
- * Note: Uses OpenRouter or similar proxy for OpenAI-compatible Anthropic access.
10
- * For direct Anthropic API, use ANTHROPIC_BASE_URL env var.
11
- */
12
- export function registerAnthropicProviderPlugin() {
13
- if (registered) {
14
- return;
15
- }
16
- registerProvider('anthropic', (config) => {
17
- // Support custom base URL for OpenAI-compatible Anthropic proxies
18
- const baseURL = process.env['ANTHROPIC_BASE_URL'] || 'https://api.anthropic.com/v1';
19
- const baseProvider = new OpenAIChatCompletionsProvider({
20
- apiKey: requireEnv('ANTHROPIC_API_KEY'),
21
- model: config.model,
22
- baseURL,
23
- providerId: 'anthropic',
24
- timeout: 24 * 60 * 60 * 1000, // 24 hours
25
- maxRetries: 3,
26
- ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
27
- ...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
28
- });
29
- return withProviderResilience(baseProvider, 'anthropic', {
30
- maxRequestsPerMinute: 60,
31
- maxRetries: 3,
32
- baseDelayMs: 1000,
33
- maxDelayMs: 30000,
34
- enableCircuitBreaker: true,
35
- circuitBreakerThreshold: 5,
36
- circuitBreakerResetMs: 60000,
37
- });
38
- });
39
- registered = true;
40
- }
41
- function requireEnv(name) {
42
- const value = process.env[name];
43
- if (!value) {
44
- throw new Error(`Missing required environment variable ${name}.`);
45
- }
46
- return value;
47
- }
48
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/anthropic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;QACvC,kEAAkE;QAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,8BAA8B,CAAC;QAEpF,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACrD,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO;YACP,UAAU,EAAE,WAAW;YACvB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;YACzC,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC,YAAY,EAAE,WAAW,EAAE;YACvD,oBAAoB,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,oBAAoB,EAAE,IAAI;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * OpenAI Provider Plugin
3
- *
4
- * Registers the OpenAI provider with resilience for:
5
- * - GPT-5, GPT-4, o1, o3 series models
6
- * - Rate limiting with exponential backoff
7
- * - Circuit breaker for cascading failure prevention
8
- */
9
- export declare function registerOpenAIProviderPlugin(): void;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CA6BnD"}
@@ -1,47 +0,0 @@
1
- import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
- import { registerProvider } from '../../../providers/providerFactory.js';
3
- import { withProviderResilience } from '../../../providers/resilientProvider.js';
4
- let registered = false;
5
- /**
6
- * OpenAI Provider Plugin
7
- *
8
- * Registers the OpenAI provider with resilience for:
9
- * - GPT-5, GPT-4, o1, o3 series models
10
- * - Rate limiting with exponential backoff
11
- * - Circuit breaker for cascading failure prevention
12
- */
13
- export function registerOpenAIProviderPlugin() {
14
- if (registered) {
15
- return;
16
- }
17
- registerProvider('openai', (config) => {
18
- const baseProvider = new OpenAIChatCompletionsProvider({
19
- apiKey: requireEnv('OPENAI_API_KEY'),
20
- model: config.model,
21
- baseURL: 'https://api.openai.com/v1',
22
- providerId: 'openai',
23
- timeout: 24 * 60 * 60 * 1000, // 24 hours
24
- maxRetries: 3,
25
- ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
26
- ...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
27
- });
28
- return withProviderResilience(baseProvider, 'openai', {
29
- maxRequestsPerMinute: 60,
30
- maxRetries: 3,
31
- baseDelayMs: 1000,
32
- maxDelayMs: 30000,
33
- enableCircuitBreaker: true,
34
- circuitBreakerThreshold: 5,
35
- circuitBreakerResetMs: 60000,
36
- });
37
- });
38
- registered = true;
39
- }
40
- function requireEnv(name) {
41
- const value = process.env[name];
42
- if (!value) {
43
- throw new Error(`Missing required environment variable ${name}.`);
44
- }
45
- return value;
46
- }
47
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/openai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B;IAC1C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACrD,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;YACzC,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC,YAAY,EAAE,QAAQ,EAAE;YACpD,oBAAoB,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,oBAAoB,EAAE,IAAI;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * xAI Provider Plugin
3
- *
4
- * Registers the xAI provider for Grok models:
5
- * - Grok 4.1 Fast Reasoning
6
- * - Grok 4
7
- * - OpenAI-compatible API
8
- */
9
- export declare function registerXAIProviderPlugin(): void;
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/providers/xai/index.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CA6BhD"}
@@ -1,47 +0,0 @@
1
- import { OpenAIChatCompletionsProvider } from '../../../providers/openaiChatCompletionsProvider.js';
2
- import { registerProvider } from '../../../providers/providerFactory.js';
3
- import { withProviderResilience } from '../../../providers/resilientProvider.js';
4
- let registered = false;
5
- /**
6
- * xAI Provider Plugin
7
- *
8
- * Registers the xAI provider for Grok models:
9
- * - Grok 4.1 Fast Reasoning
10
- * - Grok 4
11
- * - OpenAI-compatible API
12
- */
13
- export function registerXAIProviderPlugin() {
14
- if (registered) {
15
- return;
16
- }
17
- registerProvider('xai', (config) => {
18
- const baseProvider = new OpenAIChatCompletionsProvider({
19
- apiKey: requireEnv('XAI_API_KEY'),
20
- model: config.model,
21
- baseURL: 'https://api.x.ai/v1',
22
- providerId: 'xai',
23
- timeout: 24 * 60 * 60 * 1000, // 24 hours
24
- maxRetries: 3,
25
- ...(typeof config.temperature === 'number' ? { temperature: config.temperature } : {}),
26
- ...(typeof config.maxTokens === 'number' ? { maxTokens: config.maxTokens } : {}),
27
- });
28
- return withProviderResilience(baseProvider, 'xai', {
29
- maxRequestsPerMinute: 60,
30
- maxRetries: 3,
31
- baseDelayMs: 1000,
32
- maxDelayMs: 30000,
33
- enableCircuitBreaker: true,
34
- circuitBreakerThreshold: 5,
35
- circuitBreakerResetMs: 60000,
36
- });
37
- });
38
- registered = true;
39
- }
40
- function requireEnv(name) {
41
- const value = process.env[name];
42
- if (!value) {
43
- throw new Error(`Missing required environment variable ${name}.`);
44
- }
45
- return value;
46
- }
47
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/providers/xai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,qDAAqD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;QACjC,MAAM,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACrD,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,qBAAqB;YAC9B,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;YACzC,UAAU,EAAE,CAAC;YACb,GAAG,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC,YAAY,EAAE,KAAK,EAAE;YACjD,oBAAoB,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;YACjB,oBAAoB,EAAE,IAAI;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}