@sowonai/crewx-sdk 0.1.0-dev.3 → 0.1.0-dev.30

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 (84) hide show
  1. package/README.md +28 -0
  2. package/dist/config/yaml-loader.js +6 -2
  3. package/dist/config/yaml-loader.js.map +1 -1
  4. package/dist/conversation/conversation-history.interface.d.ts +6 -4
  5. package/dist/core/agent/agent-factory.d.ts +7 -7
  6. package/dist/core/agent/agent-factory.js +23 -0
  7. package/dist/core/agent/agent-factory.js.map +1 -1
  8. package/dist/core/agent/agent-runtime.d.ts +18 -2
  9. package/dist/core/agent/agent-runtime.js +128 -24
  10. package/dist/core/agent/agent-runtime.js.map +1 -1
  11. package/dist/core/agent/index.d.ts +1 -1
  12. package/dist/core/agent/index.js +2 -1
  13. package/dist/core/agent/index.js.map +1 -1
  14. package/dist/core/providers/ai-provider.interface.d.ts +1 -0
  15. package/dist/core/providers/ai-provider.interface.js.map +1 -1
  16. package/dist/core/providers/base-ai.provider.d.ts +7 -0
  17. package/dist/core/providers/base-ai.provider.js +8 -4
  18. package/dist/core/providers/base-ai.provider.js.map +1 -1
  19. package/dist/core/providers/dynamic-provider.factory.d.ts +64 -0
  20. package/dist/core/providers/dynamic-provider.factory.js +533 -0
  21. package/dist/core/providers/dynamic-provider.factory.js.map +1 -0
  22. package/dist/core/providers/index.d.ts +3 -0
  23. package/dist/core/providers/index.js +7 -1
  24. package/dist/core/providers/index.js.map +1 -1
  25. package/dist/core/providers/mock.provider.d.ts +13 -0
  26. package/dist/core/providers/mock.provider.js +55 -0
  27. package/dist/core/providers/mock.provider.js.map +1 -0
  28. package/dist/core/providers/provider-factory.d.ts +3 -0
  29. package/dist/core/providers/provider-factory.js +27 -0
  30. package/dist/core/providers/provider-factory.js.map +1 -0
  31. package/dist/index.d.ts +17 -4
  32. package/dist/index.js +31 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/schema/skills-parser.d.ts +8 -0
  35. package/dist/schema/skills-parser.js +421 -0
  36. package/dist/schema/skills-parser.js.map +1 -0
  37. package/dist/schema/skills.types.d.ts +144 -0
  38. package/dist/schema/skills.types.js +41 -0
  39. package/dist/schema/skills.types.js.map +1 -0
  40. package/dist/services/index.d.ts +2 -0
  41. package/dist/services/index.js +19 -0
  42. package/dist/services/index.js.map +1 -0
  43. package/dist/services/layout-loader.service.d.ts +18 -0
  44. package/dist/services/layout-loader.service.js +266 -0
  45. package/dist/services/layout-loader.service.js.map +1 -0
  46. package/dist/services/layout-renderer.service.d.ts +25 -0
  47. package/dist/services/layout-renderer.service.js +226 -0
  48. package/dist/services/layout-renderer.service.js.map +1 -0
  49. package/dist/services/props-validator.service.d.ts +29 -0
  50. package/dist/services/props-validator.service.js +332 -0
  51. package/dist/services/props-validator.service.js.map +1 -0
  52. package/dist/skills/adapter/claude-skill-adapter.d.ts +11 -0
  53. package/dist/skills/adapter/claude-skill-adapter.js +222 -0
  54. package/dist/skills/adapter/claude-skill-adapter.js.map +1 -0
  55. package/dist/skills/index.d.ts +6 -0
  56. package/dist/skills/index.js +31 -0
  57. package/dist/skills/index.js.map +1 -0
  58. package/dist/skills/runtime/progressive-loader.d.ts +27 -0
  59. package/dist/skills/runtime/progressive-loader.js +186 -0
  60. package/dist/skills/runtime/progressive-loader.js.map +1 -0
  61. package/dist/skills/runtime/runtime-requirements-validator.d.ts +23 -0
  62. package/dist/skills/runtime/runtime-requirements-validator.js +248 -0
  63. package/dist/skills/runtime/runtime-requirements-validator.js.map +1 -0
  64. package/dist/skills/runtime/skill-runtime.service.d.ts +42 -0
  65. package/dist/skills/runtime/skill-runtime.service.js +434 -0
  66. package/dist/skills/runtime/skill-runtime.service.js.map +1 -0
  67. package/dist/types/agent.types.d.ts +10 -2
  68. package/dist/types/agent.types.js.map +1 -1
  69. package/dist/types/index.d.ts +3 -0
  70. package/dist/types/index.js +3 -0
  71. package/dist/types/index.js.map +1 -1
  72. package/dist/types/layout.types.d.ts +113 -0
  73. package/dist/types/layout.types.js +22 -0
  74. package/dist/types/layout.types.js.map +1 -0
  75. package/dist/types/provider.types.d.ts +12 -0
  76. package/dist/types/provider.types.js +3 -0
  77. package/dist/types/provider.types.js.map +1 -0
  78. package/dist/types/skill-runtime.types.d.ts +244 -0
  79. package/dist/types/skill-runtime.types.js +44 -0
  80. package/dist/types/skill-runtime.types.js.map +1 -0
  81. package/dist/types/template.types.d.ts +38 -0
  82. package/dist/types/template.types.js +3 -0
  83. package/dist/types/template.types.js.map +1 -0
  84. package/package.json +14 -13
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BaseDynamicProviderFactory = void 0;
37
+ const base_ai_provider_1 = require("./base-ai.provider");
38
+ const ai_provider_interface_1 = require("./ai-provider.interface");
39
+ const timeout_config_1 = require("../../config/timeout.config");
40
+ class ConsoleLogger {
41
+ constructor(context) {
42
+ this.context = context;
43
+ }
44
+ log(message, ...optionalParams) {
45
+ console.log(`[${this.context}]`, message, ...optionalParams);
46
+ }
47
+ warn(message, ...optionalParams) {
48
+ console.warn(`[${this.context}]`, message, ...optionalParams);
49
+ }
50
+ error(message, ...optionalParams) {
51
+ const resolved = message instanceof Error ? message.message : message;
52
+ console.error(`[${this.context}]`, resolved, ...optionalParams);
53
+ }
54
+ }
55
+ class BaseDynamicProviderFactory {
56
+ constructor(options = {}) {
57
+ this.timeoutConfig = (0, timeout_config_1.getTimeoutConfig)();
58
+ this.logger = options.logger ?? new ConsoleLogger('DynamicProviderFactory');
59
+ }
60
+ createProvider(config) {
61
+ this.logger.log(`Creating dynamic provider: ${config.id}`);
62
+ if (config.type === 'plugin') {
63
+ return this.createPluginProvider(config);
64
+ }
65
+ if (config.type === 'remote') {
66
+ return this.createRemoteProvider(config);
67
+ }
68
+ throw new Error(`Unknown provider type: ${config.type}`);
69
+ }
70
+ validateConfig(config) {
71
+ if (!config || typeof config !== 'object') {
72
+ return false;
73
+ }
74
+ const base = config;
75
+ if (!base.id || typeof base.id !== 'string') {
76
+ return false;
77
+ }
78
+ if (base.type === 'plugin') {
79
+ return (typeof base.cli_command === 'string' &&
80
+ Array.isArray(base.query_args) &&
81
+ Array.isArray(base.execute_args) &&
82
+ typeof base.prompt_in_args === 'boolean');
83
+ }
84
+ if (base.type === 'remote') {
85
+ return (typeof base.location === 'string' &&
86
+ typeof base.external_agent_id === 'string');
87
+ }
88
+ return false;
89
+ }
90
+ createPluginProvider(config) {
91
+ this.validateCliCommand(config.cli_command);
92
+ this.validateCliArgs(config.query_args);
93
+ this.validateCliArgs(config.execute_args);
94
+ this.validateErrorPatterns(config.error_patterns);
95
+ this.validateEnv(config.env);
96
+ const factory = this;
97
+ class DynamicAIProvider extends base_ai_provider_1.BaseAIProvider {
98
+ constructor() {
99
+ super(`DynamicProvider:${ai_provider_interface_1.ProviderNamespace.PLUGIN}/${config.id}`);
100
+ this.name = `${ai_provider_interface_1.ProviderNamespace.PLUGIN}/${config.id}`;
101
+ }
102
+ getCliCommand() {
103
+ return config.cli_command;
104
+ }
105
+ getDefaultArgs() {
106
+ return config.query_args || [];
107
+ }
108
+ getExecuteArgs() {
109
+ return config.execute_args || [];
110
+ }
111
+ getDefaultModel() {
112
+ return config.default_model || 'default';
113
+ }
114
+ getPromptInArgs() {
115
+ return config.prompt_in_args ?? false;
116
+ }
117
+ shouldPipeContext() {
118
+ if (this.getPromptInArgs()) {
119
+ return false;
120
+ }
121
+ return super.shouldPipeContext();
122
+ }
123
+ getNotInstalledMessage() {
124
+ return (config.not_installed_message ||
125
+ `${config.display_name || config.id} CLI is not installed.`);
126
+ }
127
+ getDefaultQueryTimeout() {
128
+ return config.timeout?.query ?? 600000;
129
+ }
130
+ getDefaultExecuteTimeout() {
131
+ return config.timeout?.execute ?? factory.timeoutConfig.parallel;
132
+ }
133
+ getEnv() {
134
+ return config.env || {};
135
+ }
136
+ async isAvailable() {
137
+ const cliCommand = this.getCliCommand();
138
+ if (cliCommand.includes('/') || cliCommand.includes('\\')) {
139
+ try {
140
+ const { access } = await Promise.resolve().then(() => __importStar(require('fs/promises')));
141
+ const { constants } = await Promise.resolve().then(() => __importStar(require('fs')));
142
+ const { resolve } = await Promise.resolve().then(() => __importStar(require('path')));
143
+ const absolutePath = resolve(process.cwd(), cliCommand);
144
+ await access(absolutePath, constants.X_OK);
145
+ return true;
146
+ }
147
+ catch {
148
+ return false;
149
+ }
150
+ }
151
+ return super.isAvailable();
152
+ }
153
+ parseProviderError(stderr, stdout) {
154
+ if (!config.error_patterns) {
155
+ return super.parseProviderError(stderr, stdout);
156
+ }
157
+ const combinedOutput = stderr || stdout;
158
+ for (const errorPattern of config.error_patterns) {
159
+ if (combinedOutput.includes(errorPattern.pattern)) {
160
+ return {
161
+ error: true,
162
+ message: errorPattern.message,
163
+ };
164
+ }
165
+ }
166
+ return super.parseProviderError(stderr, stdout);
167
+ }
168
+ }
169
+ return new DynamicAIProvider();
170
+ }
171
+ createRemoteProvider(config) {
172
+ this.logger.log(`Creating remote provider: ${config.id}`);
173
+ this.validateRemoteConfig(config);
174
+ const factory = this;
175
+ class RemoteAIProvider extends base_ai_provider_1.BaseAIProvider {
176
+ constructor() {
177
+ super(`RemoteProvider:${ai_provider_interface_1.ProviderNamespace.REMOTE}/${config.id}`);
178
+ this.name = `${ai_provider_interface_1.ProviderNamespace.REMOTE}/${config.id}`;
179
+ }
180
+ getCliCommand() {
181
+ if (config.location.startsWith('file://')) {
182
+ return 'crewx';
183
+ }
184
+ return 'curl';
185
+ }
186
+ getDefaultArgs() {
187
+ if (config.location.startsWith('file://')) {
188
+ const configPath = config.location.replace('file://', '');
189
+ return [
190
+ 'query',
191
+ '--raw',
192
+ `--config=${configPath}`,
193
+ ];
194
+ }
195
+ const args = [
196
+ '-X', 'POST',
197
+ `${config.location}/mcp/query`,
198
+ '-H', 'Content-Type: application/json',
199
+ ];
200
+ const authHeader = this.getAuthHeader();
201
+ if (authHeader) {
202
+ args.push('-H', `Authorization: ${authHeader}`);
203
+ }
204
+ return args;
205
+ }
206
+ getExecuteArgs() {
207
+ if (config.location.startsWith('file://')) {
208
+ const configPath = config.location.replace('file://', '');
209
+ return [
210
+ 'execute',
211
+ '--raw',
212
+ `--config=${configPath}`,
213
+ ];
214
+ }
215
+ const args = [
216
+ '-X', 'POST',
217
+ `${config.location}/mcp/execute`,
218
+ '-H', 'Content-Type: application/json',
219
+ ];
220
+ const authHeader = this.getAuthHeader();
221
+ if (authHeader) {
222
+ args.push('-H', `Authorization: ${authHeader}`);
223
+ }
224
+ return args;
225
+ }
226
+ getDefaultModel() {
227
+ return config.default_model || 'default';
228
+ }
229
+ getPromptInArgs() {
230
+ return true;
231
+ }
232
+ getNotInstalledMessage() {
233
+ if (config.location.startsWith('file://')) {
234
+ const configPath = config.location.replace('file://', '');
235
+ return `Remote CrewX configuration not found: ${configPath}`;
236
+ }
237
+ return `Remote CrewX server not accessible: ${config.location}`;
238
+ }
239
+ getDefaultQueryTimeout() {
240
+ return config.timeout?.query ?? 300000;
241
+ }
242
+ getDefaultExecuteTimeout() {
243
+ return config.timeout?.execute ?? 600000;
244
+ }
245
+ getAuthHeader() {
246
+ if (!config.auth || config.auth.type === 'none') {
247
+ return '';
248
+ }
249
+ if (config.auth.type === 'bearer' && config.auth.token) {
250
+ return `Bearer ${config.auth.token}`;
251
+ }
252
+ if (config.auth.type === 'api_key' && config.auth.token) {
253
+ return `Api-Key ${config.auth.token}`;
254
+ }
255
+ return '';
256
+ }
257
+ getAuthHeaders() {
258
+ const headers = {};
259
+ if (!config.auth || config.auth.type === 'none') {
260
+ return headers;
261
+ }
262
+ if (config.auth.token) {
263
+ if (config.auth.type === 'bearer') {
264
+ headers['Authorization'] = `Bearer ${config.auth.token}`;
265
+ }
266
+ else if (config.auth.type === 'api_key') {
267
+ headers['Api-Key'] = config.auth.token;
268
+ }
269
+ }
270
+ return headers;
271
+ }
272
+ async isAvailable() {
273
+ if (config.location.startsWith('file://')) {
274
+ try {
275
+ const { access } = await Promise.resolve().then(() => __importStar(require('fs/promises')));
276
+ const { constants } = await Promise.resolve().then(() => __importStar(require('fs')));
277
+ const configPath = config.location.replace('file://', '');
278
+ await access(configPath, constants.R_OK);
279
+ const cliAvailable = await super.isAvailable();
280
+ return cliAvailable;
281
+ }
282
+ catch {
283
+ return false;
284
+ }
285
+ }
286
+ try {
287
+ const controller = new AbortController();
288
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
289
+ const healthHeaders = {
290
+ ...(config.headers || {}),
291
+ ...this.getAuthHeaders(),
292
+ };
293
+ const response = await fetch(`${config.location}/health`, {
294
+ method: 'GET',
295
+ signal: controller.signal,
296
+ headers: healthHeaders,
297
+ });
298
+ clearTimeout(timeoutId);
299
+ return response.ok;
300
+ }
301
+ catch {
302
+ return false;
303
+ }
304
+ }
305
+ async query(prompt, options) {
306
+ if (config.location.startsWith('http')) {
307
+ return this.httpQuery(prompt, options);
308
+ }
309
+ const validated = await this.ensureFileConfigExists(options);
310
+ if (!validated.ok) {
311
+ return validated.response;
312
+ }
313
+ const userQuery = this.parseUserQueryForRemote(prompt);
314
+ const formattedPrompt = userQuery
315
+ ? `@${config.external_agent_id} ${userQuery}`
316
+ : `@${config.external_agent_id}`;
317
+ const structuredPayload = this.normalizeStructuredPayload(prompt, options);
318
+ const extendedOptions = {
319
+ ...options,
320
+ };
321
+ if (structuredPayload) {
322
+ extendedOptions.pipedContext = structuredPayload;
323
+ }
324
+ else {
325
+ delete extendedOptions.pipedContext;
326
+ }
327
+ return super.query(formattedPrompt, extendedOptions);
328
+ }
329
+ async execute(prompt, options) {
330
+ if (config.location.startsWith('http')) {
331
+ return super.execute(prompt, options);
332
+ }
333
+ const validated = await this.ensureFileConfigExists(options);
334
+ if (!validated.ok) {
335
+ return validated.response;
336
+ }
337
+ const userQuery = this.parseUserQueryForRemote(prompt);
338
+ const formattedPrompt = userQuery
339
+ ? `@${config.external_agent_id} ${userQuery}`
340
+ : `@${config.external_agent_id}`;
341
+ const structuredPayload = this.normalizeStructuredPayload(prompt, options);
342
+ const extendedOptions = {
343
+ ...options,
344
+ };
345
+ if (structuredPayload) {
346
+ extendedOptions.pipedContext = structuredPayload;
347
+ }
348
+ else {
349
+ delete extendedOptions.pipedContext;
350
+ }
351
+ return super.execute(formattedPrompt, extendedOptions);
352
+ }
353
+ async httpQuery(prompt, options) {
354
+ const requestBody = {
355
+ prompt,
356
+ agent_id: config.external_agent_id,
357
+ task_id: options?.taskId,
358
+ model: options?.model || this.getDefaultModel(),
359
+ working_directory: options?.workingDirectory,
360
+ };
361
+ const structuredPayload = this.normalizeStructuredPayload(prompt, options);
362
+ if (structuredPayload) {
363
+ requestBody.structured_payload = structuredPayload;
364
+ }
365
+ if (options?.messages && options.messages.length > 0) {
366
+ requestBody.messages = options.messages;
367
+ }
368
+ if (options?.pipedContext) {
369
+ const trimmed = options.pipedContext.trim();
370
+ if (!this.isStructuredPayload(trimmed)) {
371
+ requestBody.context = trimmed;
372
+ }
373
+ }
374
+ try {
375
+ const controller = new AbortController();
376
+ const timeoutMs = options?.timeout || this.getDefaultQueryTimeout();
377
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
378
+ const response = await fetch(`${config.location}/mcp/query`, {
379
+ method: 'POST',
380
+ headers: {
381
+ 'Content-Type': 'application/json',
382
+ ...this.getAuthHeaders(),
383
+ ...(config.headers || {}),
384
+ },
385
+ body: JSON.stringify(requestBody),
386
+ signal: controller.signal,
387
+ });
388
+ clearTimeout(timeoutId);
389
+ if (!response.ok) {
390
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
391
+ }
392
+ const result = await response.json();
393
+ return {
394
+ content: result.content,
395
+ provider: this.name,
396
+ command: `remote query to ${config.location}`,
397
+ success: result.success !== false,
398
+ error: result.error,
399
+ taskId: result.task_id,
400
+ toolCall: result.tool_call,
401
+ };
402
+ }
403
+ catch (error) {
404
+ return {
405
+ content: '',
406
+ provider: this.name,
407
+ command: `remote query to ${config.location}`,
408
+ success: false,
409
+ error: error.message,
410
+ taskId: options?.taskId,
411
+ };
412
+ }
413
+ }
414
+ parseUserQueryForRemote(prompt) {
415
+ if (!prompt) {
416
+ return '';
417
+ }
418
+ const match = prompt.match(/<user_query key="[^"]+">\s*([\s\S]*?)\s*<\/user_query>/i);
419
+ if (match && match[1]) {
420
+ return match[1].trim();
421
+ }
422
+ return prompt.trim();
423
+ }
424
+ normalizeStructuredPayload(prompt, options) {
425
+ const existing = options?.pipedContext?.trim();
426
+ if (existing) {
427
+ if (this.isStructuredPayload(existing)) {
428
+ return existing;
429
+ }
430
+ return this.createStructuredPayload(prompt, existing, options);
431
+ }
432
+ if (options?.messages && options.messages.length > 0) {
433
+ return this.createStructuredPayload(prompt, null, options);
434
+ }
435
+ return null;
436
+ }
437
+ async ensureFileConfigExists(options) {
438
+ if (!config.location.startsWith('file://')) {
439
+ return { ok: true };
440
+ }
441
+ const configPath = config.location.replace('file://', '');
442
+ try {
443
+ const { access } = await Promise.resolve().then(() => __importStar(require('fs/promises')));
444
+ const { constants } = await Promise.resolve().then(() => __importStar(require('fs')));
445
+ await access(configPath, constants.R_OK);
446
+ return { ok: true };
447
+ }
448
+ catch {
449
+ return {
450
+ ok: false,
451
+ response: {
452
+ content: `Remote CrewX configuration not found: ${configPath}`,
453
+ provider: this.name,
454
+ command: `crewx --config=${configPath}`,
455
+ success: false,
456
+ error: `Remote CrewX configuration not found: ${configPath}`,
457
+ taskId: options?.taskId,
458
+ },
459
+ };
460
+ }
461
+ }
462
+ }
463
+ return new RemoteAIProvider();
464
+ }
465
+ validateCliCommand(cliCommand) {
466
+ if (!cliCommand || typeof cliCommand !== 'string') {
467
+ throw new Error('Plugin provider requires a CLI command');
468
+ }
469
+ }
470
+ validateCliArgs(args) {
471
+ if (!Array.isArray(args)) {
472
+ throw new Error('CLI arguments must be an array');
473
+ }
474
+ for (const arg of args) {
475
+ if (typeof arg !== 'string') {
476
+ throw new Error('CLI argument must be a string');
477
+ }
478
+ }
479
+ }
480
+ validateErrorPatterns(patterns) {
481
+ if (!patterns) {
482
+ return;
483
+ }
484
+ for (const { pattern } of patterns) {
485
+ try {
486
+ new RegExp(pattern);
487
+ }
488
+ catch (error) {
489
+ throw new Error(`Invalid regex pattern '${pattern}': ${error.message}`);
490
+ }
491
+ }
492
+ }
493
+ validateEnv(env) {
494
+ if (!env) {
495
+ return;
496
+ }
497
+ for (const [key, value] of Object.entries(env)) {
498
+ if (typeof key !== 'string' || typeof value !== 'string') {
499
+ throw new Error('Environment variables must be string key/value pairs');
500
+ }
501
+ }
502
+ }
503
+ validateRemoteConfig(config) {
504
+ if (!config.location) {
505
+ throw new Error('Remote provider requires a location (file:// or http(s):// URL)');
506
+ }
507
+ if (!config.external_agent_id) {
508
+ throw new Error('Remote provider requires an external_agent_id');
509
+ }
510
+ if (!config.location.startsWith('file://') &&
511
+ !config.location.startsWith('http://') &&
512
+ !config.location.startsWith('https://')) {
513
+ throw new Error('Remote location must start with file://, http://, or https://');
514
+ }
515
+ if (config.location.startsWith('file://')) {
516
+ const filePath = config.location.replace('file://', '');
517
+ if (filePath.includes('..')) {
518
+ throw new Error('Path traversal (..) is not allowed in remote file locations');
519
+ }
520
+ }
521
+ if (config.auth) {
522
+ const validAuthTypes = ['bearer', 'api_key', 'none'];
523
+ if (!validAuthTypes.includes(config.auth.type)) {
524
+ throw new Error(`Invalid auth type: ${config.auth.type}. Must be one of: ${validAuthTypes.join(', ')}`);
525
+ }
526
+ if (config.auth.type !== 'none' && !config.auth.token) {
527
+ throw new Error(`Auth type '${config.auth.type}' requires a token`);
528
+ }
529
+ }
530
+ }
531
+ }
532
+ exports.BaseDynamicProviderFactory = BaseDynamicProviderFactory;
533
+ //# sourceMappingURL=dynamic-provider.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-provider.factory.js","sourceRoot":"","sources":["../../../src/core/providers/dynamic-provider.factory.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,6 @@ export { ClaudeProvider } from './claude.provider';
3
3
  export { GeminiProvider } from './gemini.provider';
4
4
  export { CopilotProvider } from './copilot.provider';
5
5
  export { CodexProvider } from './codex.provider';
6
+ export { MockProvider } from './mock.provider';
7
+ export { BaseDynamicProviderFactory, type PluginProviderConfig, type RemoteProviderConfig, type DynamicProviderConfig, type DynamicProviderFactoryOptions, } from './dynamic-provider.factory';
8
+ export { createProviderFromConfig } from './provider-factory';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CodexProvider = exports.CopilotProvider = exports.GeminiProvider = exports.ClaudeProvider = exports.BaseAIProvider = void 0;
3
+ exports.createProviderFromConfig = exports.BaseDynamicProviderFactory = exports.MockProvider = exports.CodexProvider = exports.CopilotProvider = exports.GeminiProvider = exports.ClaudeProvider = exports.BaseAIProvider = void 0;
4
4
  var base_ai_provider_1 = require("./base-ai.provider");
5
5
  Object.defineProperty(exports, "BaseAIProvider", { enumerable: true, get: function () { return base_ai_provider_1.BaseAIProvider; } });
6
6
  var claude_provider_1 = require("./claude.provider");
@@ -11,4 +11,10 @@ var copilot_provider_1 = require("./copilot.provider");
11
11
  Object.defineProperty(exports, "CopilotProvider", { enumerable: true, get: function () { return copilot_provider_1.CopilotProvider; } });
12
12
  var codex_provider_1 = require("./codex.provider");
13
13
  Object.defineProperty(exports, "CodexProvider", { enumerable: true, get: function () { return codex_provider_1.CodexProvider; } });
14
+ var mock_provider_1 = require("./mock.provider");
15
+ Object.defineProperty(exports, "MockProvider", { enumerable: true, get: function () { return mock_provider_1.MockProvider; } });
16
+ var dynamic_provider_factory_1 = require("./dynamic-provider.factory");
17
+ Object.defineProperty(exports, "BaseDynamicProviderFactory", { enumerable: true, get: function () { return dynamic_provider_factory_1.BaseDynamicProviderFactory; } });
18
+ var provider_factory_1 = require("./provider-factory");
19
+ Object.defineProperty(exports, "createProviderFromConfig", { enumerable: true, get: function () { return provider_factory_1.createProviderFromConfig; } });
14
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/providers/index.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/providers/index.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,uEAMoC;AALlC,sIAAA,0BAA0B,OAAA;AAM5B,uDAA8D;AAArD,4HAAA,wBAAwB,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { AIProvider, AIQueryOptions, AIResponse } from './ai-provider.interface';
2
+ export declare class MockProvider implements AIProvider {
3
+ readonly name = "mock/default";
4
+ private responses;
5
+ private defaultResponse;
6
+ setResponse(prompt: string, response: Partial<AIResponse>): void;
7
+ setDefaultResponse(response: Partial<AIResponse>): void;
8
+ clearResponses(): void;
9
+ isAvailable(): Promise<boolean>;
10
+ query(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
11
+ execute(prompt: string, options?: AIQueryOptions): Promise<AIResponse>;
12
+ getToolPath(): Promise<string | null>;
13
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockProvider = void 0;
4
+ class MockProvider {
5
+ constructor() {
6
+ this.name = 'mock/default';
7
+ this.responses = new Map();
8
+ this.defaultResponse = {
9
+ content: 'Mock response',
10
+ provider: this.name,
11
+ command: 'mock-command',
12
+ success: true,
13
+ };
14
+ }
15
+ setResponse(prompt, response) {
16
+ this.responses.set(prompt, {
17
+ ...this.defaultResponse,
18
+ ...response,
19
+ });
20
+ }
21
+ setDefaultResponse(response) {
22
+ this.defaultResponse = {
23
+ ...this.defaultResponse,
24
+ ...response,
25
+ };
26
+ }
27
+ clearResponses() {
28
+ this.responses.clear();
29
+ }
30
+ async isAvailable() {
31
+ return true;
32
+ }
33
+ async query(prompt, options = {}) {
34
+ const custom = this.responses.get(prompt);
35
+ if (custom) {
36
+ return {
37
+ ...custom,
38
+ taskId: options.taskId,
39
+ };
40
+ }
41
+ return {
42
+ ...this.defaultResponse,
43
+ content: `Mock response for: ${prompt}`,
44
+ taskId: options.taskId,
45
+ };
46
+ }
47
+ async execute(prompt, options = {}) {
48
+ return this.query(prompt, options);
49
+ }
50
+ async getToolPath() {
51
+ return null;
52
+ }
53
+ }
54
+ exports.MockProvider = MockProvider;
55
+ //# sourceMappingURL=mock.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.provider.js","sourceRoot":"","sources":["../../../src/core/providers/mock.provider.ts"],"names":[],"mappings":";;;AAQA,MAAa,YAAY;IAAzB;QACW,SAAI,GAAG,cAAc,CAAC;QAEvB,cAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC1C,oBAAe,GAAe;YACpC,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,IAAI;SACd,CAAC;IAwDJ,CAAC;IAnDC,WAAW,CAAC,MAAc,EAAE,QAA6B;QACvD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;YACzB,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,QAAQ;SACZ,CAAC,CAAC;IACL,CAAC;IAKD,kBAAkB,CAAC,QAA6B;QAC9C,IAAI,CAAC,eAAe,GAAG;YACrB,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IAKD,cAAc;QACZ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,UAA0B,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,GAAG,MAAM;gBACT,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,IAAI,CAAC,eAAe;YACvB,OAAO,EAAE,sBAAsB,MAAM,EAAE;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAA0B,EAAE;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjED,oCAiEC"}