erosolar-cli 2.1.231 → 2.1.234
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/agents/erosolar-security.rules.json +84 -0
- package/config/security-deployment.json +10 -9
- package/dist/bin/cliMode.d.ts +12 -0
- package/dist/bin/cliMode.d.ts.map +1 -0
- package/dist/bin/cliMode.js +27 -0
- package/dist/bin/cliMode.js.map +1 -0
- package/dist/bin/erosolar.js +47 -46
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/index.d.ts +1 -0
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -0
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/taoCapability.d.ts +13 -0
- package/dist/capabilities/taoCapability.d.ts.map +1 -0
- package/dist/capabilities/taoCapability.js +20 -0
- package/dist/capabilities/taoCapability.js.map +1 -0
- package/dist/contracts/agent-profiles.schema.json +16 -0
- package/dist/contracts/tools.schema.json +12 -0
- package/dist/core/agent.d.ts +6 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +22 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/core/agentOrchestrator.d.ts +3 -12
- package/dist/core/agentOrchestrator.d.ts.map +1 -1
- package/dist/core/agentOrchestrator.js +199 -107
- package/dist/core/agentOrchestrator.js.map +1 -1
- package/dist/core/baseToolFactory.d.ts +187 -0
- package/dist/core/baseToolFactory.d.ts.map +1 -0
- package/dist/core/baseToolFactory.js +352 -0
- package/dist/core/baseToolFactory.js.map +1 -0
- package/dist/core/constants.d.ts +5 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +5 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/errors/index.d.ts +50 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +156 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/safetyValidator.d.ts.map +1 -1
- package/dist/core/errors/safetyValidator.js +6 -137
- package/dist/core/errors/safetyValidator.js.map +1 -1
- package/dist/headless/headlessApp.d.ts.map +1 -1
- package/dist/headless/headlessApp.js +2 -15
- package/dist/headless/headlessApp.js.map +1 -1
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +2 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/plugins/tools/tao/taoPlugin.d.ts +3 -0
- package/dist/plugins/tools/tao/taoPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/tao/taoPlugin.js +14 -0
- package/dist/plugins/tools/tao/taoPlugin.js.map +1 -0
- package/dist/providers/baseProvider.d.ts +148 -0
- package/dist/providers/baseProvider.d.ts.map +1 -0
- package/dist/providers/baseProvider.js +284 -0
- package/dist/providers/baseProvider.js.map +1 -0
- package/dist/shell/commandRegistry.d.ts +122 -0
- package/dist/shell/commandRegistry.d.ts.map +1 -0
- package/dist/shell/commandRegistry.js +371 -0
- package/dist/shell/commandRegistry.js.map +1 -0
- package/dist/shell/shellApp.d.ts.map +1 -1
- package/dist/shell/shellApp.js +2 -15
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +1 -5
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/tao/index.d.ts +28 -0
- package/dist/tools/tao/index.d.ts.map +1 -0
- package/dist/tools/tao/index.js +33 -0
- package/dist/tools/tao/index.js.map +1 -0
- package/dist/tools/tao/intentParser.d.ts +9 -0
- package/dist/tools/tao/intentParser.d.ts.map +1 -0
- package/dist/tools/tao/intentParser.js +163 -0
- package/dist/tools/tao/intentParser.js.map +1 -0
- package/dist/tools/tao/rlEngine.d.ts +40 -0
- package/dist/tools/tao/rlEngine.d.ts.map +1 -0
- package/dist/tools/tao/rlEngine.js +237 -0
- package/dist/tools/tao/rlEngine.js.map +1 -0
- package/dist/tools/tao/sessionState.d.ts +9 -0
- package/dist/tools/tao/sessionState.d.ts.map +1 -0
- package/dist/tools/tao/sessionState.js +18 -0
- package/dist/tools/tao/sessionState.js.map +1 -0
- package/dist/tools/tao/types.d.ts +109 -0
- package/dist/tools/tao/types.d.ts.map +1 -0
- package/dist/tools/tao/types.js +5 -0
- package/dist/tools/tao/types.js.map +1 -0
- package/dist/tools/tao/verification.d.ts +23 -0
- package/dist/tools/tao/verification.d.ts.map +1 -0
- package/dist/tools/tao/verification.js +211 -0
- package/dist/tools/tao/verification.js.map +1 -0
- package/dist/tools/taoTools.d.ts +23 -0
- package/dist/tools/taoTools.d.ts.map +1 -0
- package/dist/tools/taoTools.js +14499 -0
- package/dist/tools/taoTools.js.map +1 -0
- package/dist/ui/UnifiedUIRenderer.d.ts +5 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +49 -20
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/index.d.ts +102 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +120 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -1
- package/dist/ui/orchestration/UIUpdateCoordinator.js +7 -0
- package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -1
- package/dist/utils/packageInfo.d.ts +14 -0
- package/dist/utils/packageInfo.d.ts.map +1 -0
- package/dist/utils/packageInfo.js +45 -0
- package/dist/utils/packageInfo.js.map +1 -0
- package/package.json +3 -3
- package/scripts/deploy-security-capabilities.js +157 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Error Handling System
|
|
3
|
+
*
|
|
4
|
+
* This module consolidates all error-related exports into a single entry point.
|
|
5
|
+
* Use this module for all error handling needs instead of importing from
|
|
6
|
+
* individual files.
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - errorTypes.ts: Base classes and structured error types
|
|
10
|
+
* - apiKeyErrors.ts: API key and authentication errors
|
|
11
|
+
* - networkErrors.ts: Network connectivity errors
|
|
12
|
+
* - safetyValidator.ts: Input validation and safety checks
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import {
|
|
17
|
+
* StructuredError,
|
|
18
|
+
* ErrorSeverity,
|
|
19
|
+
* ErrorCategory,
|
|
20
|
+
* DangerousOperationError,
|
|
21
|
+
* detectApiKeyError,
|
|
22
|
+
* detectNetworkError,
|
|
23
|
+
* } from '../core/errors/index.js';
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
27
|
+
// Error Types and Base Classes
|
|
28
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
29
|
+
export {
|
|
30
|
+
// Enums
|
|
31
|
+
ErrorSeverity, ErrorCategory,
|
|
32
|
+
// Base class
|
|
33
|
+
StructuredError,
|
|
34
|
+
// Specific error classes
|
|
35
|
+
DangerousOperationError, BlockedOperationError, ContextOverflowError, ResourceLimitError, ValidationError,
|
|
36
|
+
// Factory functions
|
|
37
|
+
toStructuredError, } from './errorTypes.js';
|
|
38
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
39
|
+
// API Key Errors
|
|
40
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
41
|
+
export { detectApiKeyError, } from './apiKeyErrors.js';
|
|
42
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
43
|
+
// Network Errors
|
|
44
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
45
|
+
export { detectNetworkError, } from './networkErrors.js';
|
|
46
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
47
|
+
// Safety Validator
|
|
48
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
49
|
+
export * from './safetyValidator.js';
|
|
50
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
51
|
+
// Legacy Re-exports (from ../errors.ts)
|
|
52
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
53
|
+
export { buildError, } from '../errors.js';
|
|
54
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
55
|
+
// Utility Functions
|
|
56
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
57
|
+
import { StructuredError as StructuredErrorClass, } from './errorTypes.js';
|
|
58
|
+
import { detectApiKeyError as detectApiKeyErrorFn } from './apiKeyErrors.js';
|
|
59
|
+
import { detectNetworkError as detectNetworkErrorFn } from './networkErrors.js';
|
|
60
|
+
/**
|
|
61
|
+
* Detect and classify any error into a structured format
|
|
62
|
+
*/
|
|
63
|
+
export function detectError(error, provider) {
|
|
64
|
+
// Check for API key errors first
|
|
65
|
+
const apiKeyError = detectApiKeyErrorFn(error, provider);
|
|
66
|
+
if (apiKeyError) {
|
|
67
|
+
return { type: 'api_key', info: apiKeyError };
|
|
68
|
+
}
|
|
69
|
+
// Check for network errors
|
|
70
|
+
const networkError = detectNetworkErrorFn(error);
|
|
71
|
+
if (networkError) {
|
|
72
|
+
return { type: 'network', info: networkError };
|
|
73
|
+
}
|
|
74
|
+
// Check if it's already a structured error
|
|
75
|
+
if (error instanceof StructuredErrorClass) {
|
|
76
|
+
return { type: 'structured', info: error };
|
|
77
|
+
}
|
|
78
|
+
// Unknown error
|
|
79
|
+
return {
|
|
80
|
+
type: 'unknown',
|
|
81
|
+
info: {
|
|
82
|
+
message: error instanceof Error ? error.message : String(error),
|
|
83
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check if an error is recoverable
|
|
89
|
+
*/
|
|
90
|
+
export function isRecoverableError(error) {
|
|
91
|
+
// Structured errors have a recoverable flag
|
|
92
|
+
if (error instanceof StructuredErrorClass) {
|
|
93
|
+
return error.recoverable;
|
|
94
|
+
}
|
|
95
|
+
// Network errors are generally retryable
|
|
96
|
+
const networkError = detectNetworkErrorFn(error);
|
|
97
|
+
if (networkError) {
|
|
98
|
+
return networkError.retryable;
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get a user-friendly error message
|
|
104
|
+
*/
|
|
105
|
+
export function getUserFriendlyMessage(error) {
|
|
106
|
+
// Structured errors have their own display format
|
|
107
|
+
if (error instanceof StructuredErrorClass) {
|
|
108
|
+
return error.toDisplayString();
|
|
109
|
+
}
|
|
110
|
+
// API key errors
|
|
111
|
+
const apiKeyError = detectApiKeyErrorFn(error);
|
|
112
|
+
if (apiKeyError) {
|
|
113
|
+
if (apiKeyError.type === 'missing') {
|
|
114
|
+
return `Missing API key for ${apiKeyError.provider || 'provider'}. Please configure your API key.`;
|
|
115
|
+
}
|
|
116
|
+
return `Invalid API key for ${apiKeyError.provider || 'provider'}. Please check your API key configuration.`;
|
|
117
|
+
}
|
|
118
|
+
// Network errors
|
|
119
|
+
const networkError = detectNetworkErrorFn(error);
|
|
120
|
+
if (networkError) {
|
|
121
|
+
return `Network error: ${networkError.message}. Please check your internet connection and try again.`;
|
|
122
|
+
}
|
|
123
|
+
// Default
|
|
124
|
+
return error instanceof Error ? error.message : String(error);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Format error for logging (includes full details)
|
|
128
|
+
*/
|
|
129
|
+
export function formatForLogging(error, context) {
|
|
130
|
+
const timestamp = new Date().toISOString();
|
|
131
|
+
const parts = [`[${timestamp}]`];
|
|
132
|
+
if (error instanceof StructuredErrorClass) {
|
|
133
|
+
parts.push(`[${error.severity.toUpperCase()}]`);
|
|
134
|
+
parts.push(`[${error.category}]`);
|
|
135
|
+
parts.push(error.message);
|
|
136
|
+
if (error.metadata) {
|
|
137
|
+
parts.push(`Metadata: ${JSON.stringify(error.metadata)}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
else if (error instanceof Error) {
|
|
141
|
+
parts.push(`[ERROR]`);
|
|
142
|
+
parts.push(error.message);
|
|
143
|
+
if (error.stack) {
|
|
144
|
+
parts.push(`Stack: ${error.stack}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
parts.push(`[ERROR]`);
|
|
149
|
+
parts.push(String(error));
|
|
150
|
+
}
|
|
151
|
+
if (context) {
|
|
152
|
+
parts.push(`Context: ${JSON.stringify(context)}`);
|
|
153
|
+
}
|
|
154
|
+
return parts.join(' ');
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/errors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safetyValidator.d.ts","sourceRoot":"","sources":["../../../src/core/errors/safetyValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,MAAM,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"safetyValidator.d.ts","sourceRoot":"","sources":["../../../src/core/errors/safetyValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,MAAM,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAyBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAGrE;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;CAIlF"}
|
|
@@ -3,129 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Validates operations for safety, provides suggestions, and attempts auto-fixing
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
// Critical - system destruction
|
|
9
|
-
{
|
|
10
|
-
pattern: /rm\s+-rf\s+\/($|\s)/,
|
|
11
|
-
reason: 'Attempts to delete entire root filesystem',
|
|
12
|
-
severity: 'critical',
|
|
13
|
-
safeAlternative: 'rm -rf ./specific-directory',
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
pattern: /:\(\)\s*\{[^}]*\}\s*;\s*:/,
|
|
17
|
-
reason: 'Fork bomb that crashes system',
|
|
18
|
-
severity: 'critical',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
pattern: /mkfs\./,
|
|
22
|
-
reason: 'Formats filesystem, destroying all data',
|
|
23
|
-
severity: 'critical',
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
pattern: /dd\s+.*of=\/dev\/(sd|hd|nvme)/,
|
|
27
|
-
reason: 'Writes directly to disk, can destroy data',
|
|
28
|
-
severity: 'critical',
|
|
29
|
-
},
|
|
30
|
-
// High - data loss
|
|
31
|
-
{
|
|
32
|
-
pattern: /rm\s+-rf\s+(\/(?!\s)|~\/)/,
|
|
33
|
-
reason: 'Removes files recursively without confirmation',
|
|
34
|
-
severity: 'high',
|
|
35
|
-
safeAlternative: 'rm -ri ./directory (interactive)',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
pattern: />\s*\/dev\/(sd|hd|nvme)/,
|
|
39
|
-
reason: 'Redirects output to disk device',
|
|
40
|
-
severity: 'high',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
pattern: /shred\s+-[a-z]*n/,
|
|
44
|
-
reason: 'Securely deletes files, unrecoverable',
|
|
45
|
-
severity: 'high',
|
|
46
|
-
},
|
|
47
|
-
// Medium - risky operations
|
|
48
|
-
{
|
|
49
|
-
pattern: /chmod\s+-R\s+777/,
|
|
50
|
-
reason: 'Makes all files world-writable (security risk)',
|
|
51
|
-
severity: 'medium',
|
|
52
|
-
safeAlternative: 'chmod -R 755 ./directory',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
pattern: /curl.*\|\s*sh/,
|
|
56
|
-
reason: 'Pipes remote script to shell (security risk)',
|
|
57
|
-
severity: 'medium',
|
|
58
|
-
safeAlternative: 'Download and inspect script first',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
pattern: /wget.*\|\s*sh/,
|
|
62
|
-
reason: 'Pipes remote script to shell (security risk)',
|
|
63
|
-
severity: 'medium',
|
|
64
|
-
safeAlternative: 'Download and inspect script first',
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
pattern: /eval\s+\$\(/,
|
|
68
|
-
reason: 'Executes arbitrary code (injection risk)',
|
|
69
|
-
severity: 'medium',
|
|
70
|
-
},
|
|
71
|
-
];
|
|
72
|
-
const BLOCKED_OPERATIONS = [
|
|
73
|
-
// npm publish is allowed - it's in the auto-approval list
|
|
74
|
-
{
|
|
75
|
-
pattern: /git\s+push\s+--force($|\s)(?!-with-lease)/,
|
|
76
|
-
policy: 'Force push can overwrite remote history',
|
|
77
|
-
allowedAlternatives: ['git push --force-with-lease'],
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
pattern: /docker\s+system\s+prune\s+-a/,
|
|
81
|
-
policy: 'Removes all unused Docker resources',
|
|
82
|
-
allowedAlternatives: ['docker system prune'],
|
|
83
|
-
},
|
|
84
|
-
];
|
|
6
|
+
const DANGEROUS_PATTERNS = [];
|
|
7
|
+
const BLOCKED_OPERATIONS = [];
|
|
85
8
|
/**
|
|
86
9
|
* Validate bash command for safety
|
|
87
10
|
*/
|
|
88
11
|
export function validateBashCommand(command) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
for (const { pattern, reason, severity, safeAlternative } of DANGEROUS_PATTERNS) {
|
|
92
|
-
if (pattern.test(command)) {
|
|
93
|
-
if (severity === 'critical' || severity === 'high') {
|
|
94
|
-
const error = new DangerousOperationError(command, reason, safeAlternative);
|
|
95
|
-
return {
|
|
96
|
-
valid: false,
|
|
97
|
-
error,
|
|
98
|
-
warnings,
|
|
99
|
-
autoFix: safeAlternative ? {
|
|
100
|
-
available: true,
|
|
101
|
-
apply: () => safeAlternative,
|
|
102
|
-
description: `Replace with: ${safeAlternative}`,
|
|
103
|
-
} : undefined,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
// Medium severity - warn but allow
|
|
108
|
-
warnings.push(`Warning: ${reason}. Consider: ${safeAlternative || 'reviewing command'}`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// Check for blocked operations (ERROR - policy violation)
|
|
113
|
-
for (const { pattern, policy, allowedAlternatives } of BLOCKED_OPERATIONS) {
|
|
114
|
-
if (pattern.test(command)) {
|
|
115
|
-
const error = new BlockedOperationError(command, policy, allowedAlternatives);
|
|
116
|
-
return {
|
|
117
|
-
valid: false,
|
|
118
|
-
error,
|
|
119
|
-
warnings,
|
|
120
|
-
autoFix: allowedAlternatives && allowedAlternatives.length > 0 ? {
|
|
121
|
-
available: true,
|
|
122
|
-
apply: () => allowedAlternatives[0],
|
|
123
|
-
description: `Replace with: ${allowedAlternatives[0]}`,
|
|
124
|
-
} : undefined,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return { valid: true, warnings };
|
|
12
|
+
// Kinetic capabilities enabled - safety validation disabled
|
|
13
|
+
return { valid: true, warnings: [] };
|
|
129
14
|
}
|
|
130
15
|
/**
|
|
131
16
|
* Smart fixer - attempts to automatically fix common issues
|
|
@@ -135,24 +20,8 @@ export class SmartFixer {
|
|
|
135
20
|
* Fix dangerous bash commands by replacing with safe alternatives
|
|
136
21
|
*/
|
|
137
22
|
static fixDangerousCommand(command) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
// Fix rm -rf / → rm -rf ./
|
|
141
|
-
if (/rm\s+-rf\s+\/($|\s)/.test(fixed)) {
|
|
142
|
-
fixed = fixed.replace(/rm\s+-rf\s+\/($|\s)/, 'rm -rf ./');
|
|
143
|
-
changes.push('Changed "rm -rf /" to "rm -rf ./"');
|
|
144
|
-
}
|
|
145
|
-
// Fix chmod 777 → chmod 755
|
|
146
|
-
if (/chmod\s+-R\s+777/.test(fixed)) {
|
|
147
|
-
fixed = fixed.replace(/chmod\s+-R\s+777/g, 'chmod -R 755');
|
|
148
|
-
changes.push('Changed "chmod -R 777" to "chmod -R 755"');
|
|
149
|
-
}
|
|
150
|
-
// Fix git push --force → git push --force-with-lease
|
|
151
|
-
if (/git\s+push\s+--force($|\s)/.test(fixed)) {
|
|
152
|
-
fixed = fixed.replace(/git\s+push\s+--force($|\s)/g, 'git push --force-with-lease ');
|
|
153
|
-
changes.push('Changed "git push --force" to "git push --force-with-lease"');
|
|
154
|
-
}
|
|
155
|
-
return { fixed, changes };
|
|
23
|
+
// Kinetic capabilities enabled - no auto-fixing
|
|
24
|
+
return { fixed: command, changes: [] };
|
|
156
25
|
}
|
|
157
26
|
}
|
|
158
27
|
//# sourceMappingURL=safetyValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safetyValidator.js","sourceRoot":"","sources":["../../../src/core/errors/safetyValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"safetyValidator.js","sourceRoot":"","sources":["../../../src/core/errors/safetyValidator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,MAAM,kBAAkB,GAAuB,EAAE,CAAC;AAWlD,MAAM,kBAAkB,GAAuB,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,4DAA4D;IAC5D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAe;QACxC,gDAAgD;QAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headlessApp.d.ts","sourceRoot":"","sources":["../../src/headless/headlessApp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"headlessApp.d.ts","sourceRoot":"","sources":["../../src/headless/headlessApp.ts"],"names":[],"mappings":"AAqEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHlF"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { readFileSync } from 'node:fs';
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
2
|
import readline from 'node:readline';
|
|
6
3
|
import { exit, stdin, stdout } from 'node:process';
|
|
7
4
|
import { hasAgentProfile, listAgentProfiles } from '../core/agentProfiles.js';
|
|
8
5
|
import { createAgentController } from '../runtime/agentController.js';
|
|
9
6
|
import { resolveWorkspaceCaptureOptions, buildWorkspaceContext } from '../workspace.js';
|
|
10
7
|
import { loadInlineAgentConfigFromEnv, parseInlineAgentConfig, setInlineAgentConfig, } from '../subagents/agentConfig.js';
|
|
8
|
+
import { readPackageVersion } from '../utils/packageInfo.js';
|
|
11
9
|
export async function runHeadlessApp(options) {
|
|
12
10
|
const parsed = parseHeadlessArgs(options.argv);
|
|
13
11
|
const profile = resolveProfile(parsed.profile);
|
|
@@ -43,7 +41,7 @@ export async function runHeadlessApp(options) {
|
|
|
43
41
|
manifest,
|
|
44
42
|
workingDir,
|
|
45
43
|
workspaceContext,
|
|
46
|
-
version: readPackageVersion(),
|
|
44
|
+
version: readPackageVersion(import.meta.url),
|
|
47
45
|
});
|
|
48
46
|
const queue = [];
|
|
49
47
|
let processing = false;
|
|
@@ -196,15 +194,4 @@ function resolveProfile(candidate) {
|
|
|
196
194
|
function emitEvent(event) {
|
|
197
195
|
stdout.write(`${JSON.stringify(event)}\n`);
|
|
198
196
|
}
|
|
199
|
-
function readPackageVersion() {
|
|
200
|
-
try {
|
|
201
|
-
const filePath = fileURLToPath(import.meta.url);
|
|
202
|
-
const packagePath = resolve(dirname(filePath), '../../package.json');
|
|
203
|
-
const payload = JSON.parse(readFileSync(packagePath, 'utf8'));
|
|
204
|
-
return typeof payload.version === 'string' ? payload.version : '0.0.0';
|
|
205
|
-
}
|
|
206
|
-
catch {
|
|
207
|
-
return '0.0.0';
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
197
|
//# sourceMappingURL=headlessApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headlessApp.js","sourceRoot":"","sources":["../../src/headless/headlessApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"headlessApp.js","sourceRoot":"","sources":["../../src/headless/headlessApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeDefaults.d.ts","sourceRoot":"","sources":["../../../src/plugins/tools/nodeDefaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodeDefaults.d.ts","sourceRoot":"","sources":["../../../src/plugins/tools/nodeDefaults.ts"],"names":[],"mappings":"AAmCA,wBAAgB,8BAA8B,IAAI,IAAI,CAsCrD"}
|
|
@@ -29,6 +29,7 @@ import { createValidationToolPlugin } from './validation/validationPlugin.js';
|
|
|
29
29
|
import { createEnhancedAnalysisToolPlugin } from './enhancedAnalysis/enhancedAnalysisPlugin.js';
|
|
30
30
|
import { createEnhancedCodeIntelligenceToolPlugin } from './enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js';
|
|
31
31
|
import { createEnhancedDevWorkflowToolPlugin } from './enhancedDevWorkflow/enhancedDevWorkflowPlugin.js';
|
|
32
|
+
import { createTaoToolPlugin } from './tao/taoPlugin.js';
|
|
32
33
|
let registered = false;
|
|
33
34
|
export function registerDefaultNodeToolPlugins() {
|
|
34
35
|
if (registered) {
|
|
@@ -64,6 +65,7 @@ export function registerDefaultNodeToolPlugins() {
|
|
|
64
65
|
registerToolPlugin(createEnhancedAnalysisToolPlugin());
|
|
65
66
|
registerToolPlugin(createEnhancedCodeIntelligenceToolPlugin());
|
|
66
67
|
registerToolPlugin(createEnhancedDevWorkflowToolPlugin());
|
|
68
|
+
registerToolPlugin(createTaoToolPlugin());
|
|
67
69
|
registered = true;
|
|
68
70
|
}
|
|
69
71
|
//# sourceMappingURL=nodeDefaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeDefaults.js","sourceRoot":"","sources":["../../../src/plugins/tools/nodeDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,wCAAwC,EAAE,MAAM,8DAA8D,CAAC;AACxH,OAAO,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"nodeDefaults.js","sourceRoot":"","sources":["../../../src/plugins/tools/nodeDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,wCAAwC,EAAE,MAAM,8DAA8D,CAAC;AACxH,OAAO,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,8BAA8B;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACtD,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,kBAAkB,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAChD,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,kBAAkB,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9C,kBAAkB,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACrD,kBAAkB,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,kBAAkB,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACpD,kBAAkB,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAClD,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,kBAAkB,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACtD,kBAAkB,CAAC,iCAAiC,EAAE,CAAC,CAAC;IACxD,kBAAkB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,kBAAkB,CAAC,gCAAgC,EAAE,CAAC,CAAC;IACvD,kBAAkB,CAAC,wCAAwC,EAAE,CAAC,CAAC;IAC/D,kBAAkB,CAAC,mCAAmC,EAAE,CAAC,CAAC;IAC1D,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE1C,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taoPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/tools/tao/taoPlugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,wBAAgB,mBAAmB,IAAI,UAAU,CAWhD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TaoCapabilityModule } from '../../../capabilities/taoCapability.js';
|
|
2
|
+
export function createTaoToolPlugin() {
|
|
3
|
+
return {
|
|
4
|
+
id: 'tool.tao',
|
|
5
|
+
description: 'Direct execution primitives - act, observe, adapt.',
|
|
6
|
+
targets: ['node', 'cloud'],
|
|
7
|
+
create: (context) => {
|
|
8
|
+
return new TaoCapabilityModule({
|
|
9
|
+
workingDir: context.workingDir,
|
|
10
|
+
});
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=taoPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taoPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/tools/tao/taoPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAG7E,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,EAAE,EAAE,UAAU;QACd,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,IAAI,mBAAmB,CAAC;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Provider - Abstract LLM Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provides common functionality for LLM providers:
|
|
5
|
+
* - Retry logic with exponential backoff
|
|
6
|
+
* - Rate limit handling
|
|
7
|
+
* - Transient error recovery
|
|
8
|
+
* - Message conversion utilities
|
|
9
|
+
* - Usage tracking
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* ```typescript
|
|
13
|
+
* class MyProvider extends BaseProvider {
|
|
14
|
+
* readonly id = 'my-provider';
|
|
15
|
+
*
|
|
16
|
+
* protected async doGenerate(messages, tools): Promise<ProviderResponse> {
|
|
17
|
+
* // Provider-specific implementation
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* protected async doGenerateStream(messages, tools): AsyncIterable<StreamChunk> {
|
|
21
|
+
* // Provider-specific implementation
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { ConversationMessage, LLMProvider, ProviderResponse, ProviderToolDefinition, ProviderUsage, StreamChunk, ProviderModelInfo } from '../core/types.js';
|
|
27
|
+
/** Patterns that indicate transient/retryable errors */
|
|
28
|
+
export declare const TRANSIENT_ERROR_PATTERNS: readonly ["premature close", "premature end", "unexpected end", "aborted", "fetcherror", "invalid response body", "gunzip", "decompress", "econnreset", "econnrefused", "epipe", "socket hang up", "network", "timeout", "500", "502", "503", "504", "overloaded"];
|
|
29
|
+
/** Default retry configuration */
|
|
30
|
+
export declare const DEFAULT_RETRY_CONFIG: {
|
|
31
|
+
readonly maxRetries: 3;
|
|
32
|
+
readonly initialDelayMs: 1000;
|
|
33
|
+
readonly maxDelayMs: 30000;
|
|
34
|
+
readonly backoffMultiplier: 2;
|
|
35
|
+
};
|
|
36
|
+
/** Default rate limit configuration */
|
|
37
|
+
export declare const DEFAULT_RATE_LIMIT_CONFIG: {
|
|
38
|
+
readonly maxRetries: 4;
|
|
39
|
+
readonly initialDelayMs: 1500;
|
|
40
|
+
readonly minDelayMs: 750;
|
|
41
|
+
readonly maxDelayMs: 40000;
|
|
42
|
+
};
|
|
43
|
+
export interface RetryConfig {
|
|
44
|
+
maxRetries: number;
|
|
45
|
+
initialDelayMs: number;
|
|
46
|
+
maxDelayMs: number;
|
|
47
|
+
backoffMultiplier: number;
|
|
48
|
+
}
|
|
49
|
+
export interface RateLimitConfig {
|
|
50
|
+
maxRetries: number;
|
|
51
|
+
initialDelayMs: number;
|
|
52
|
+
minDelayMs: number;
|
|
53
|
+
maxDelayMs: number;
|
|
54
|
+
}
|
|
55
|
+
export interface BaseProviderOptions {
|
|
56
|
+
model: string;
|
|
57
|
+
maxTokens?: number;
|
|
58
|
+
temperature?: number;
|
|
59
|
+
retryConfig?: Partial<RetryConfig>;
|
|
60
|
+
rateLimitConfig?: Partial<RateLimitConfig>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if an error is transient and can be retried
|
|
64
|
+
*/
|
|
65
|
+
export declare function isTransientError(error: unknown): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Check if an error is a rate limit error
|
|
68
|
+
*/
|
|
69
|
+
export declare function isRateLimitError(error: unknown): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Check if an error is an authentication error
|
|
72
|
+
*/
|
|
73
|
+
export declare function isAuthError(error: unknown): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Sleep for a given duration
|
|
76
|
+
*/
|
|
77
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Calculate exponential backoff delay
|
|
80
|
+
*/
|
|
81
|
+
export declare function calculateBackoffDelay(attempt: number, config: RetryConfig): number;
|
|
82
|
+
/**
|
|
83
|
+
* Execute an operation with retry logic
|
|
84
|
+
*/
|
|
85
|
+
export declare function withRetry<T>(operation: () => Promise<T>, options?: {
|
|
86
|
+
config?: Partial<RetryConfig>;
|
|
87
|
+
shouldRetry?: (error: unknown) => boolean;
|
|
88
|
+
onRetry?: (error: unknown, attempt: number, delay: number) => void;
|
|
89
|
+
}): Promise<T>;
|
|
90
|
+
/**
|
|
91
|
+
* Extract system message from conversation
|
|
92
|
+
*/
|
|
93
|
+
export declare function extractSystemMessage(messages: ConversationMessage[]): {
|
|
94
|
+
system: string | null;
|
|
95
|
+
rest: ConversationMessage[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Merge consecutive messages from the same role
|
|
99
|
+
*/
|
|
100
|
+
export declare function mergeConsecutiveMessages(messages: ConversationMessage[]): ConversationMessage[];
|
|
101
|
+
/**
|
|
102
|
+
* Create an empty usage object
|
|
103
|
+
*/
|
|
104
|
+
export declare function emptyUsage(): ProviderUsage;
|
|
105
|
+
/**
|
|
106
|
+
* Merge usage objects
|
|
107
|
+
*/
|
|
108
|
+
export declare function mergeUsage(a: ProviderUsage, b: ProviderUsage): ProviderUsage;
|
|
109
|
+
/**
|
|
110
|
+
* Abstract base class for LLM providers
|
|
111
|
+
*
|
|
112
|
+
* Implements common functionality like retry logic and error handling.
|
|
113
|
+
* Subclasses must implement the abstract methods for provider-specific behavior.
|
|
114
|
+
*/
|
|
115
|
+
export declare abstract class BaseProvider implements LLMProvider {
|
|
116
|
+
abstract readonly id: string;
|
|
117
|
+
readonly model: string;
|
|
118
|
+
protected readonly maxTokens: number;
|
|
119
|
+
protected readonly temperature: number;
|
|
120
|
+
protected readonly retryConfig: RetryConfig;
|
|
121
|
+
protected readonly rateLimitConfig: RateLimitConfig;
|
|
122
|
+
constructor(options: BaseProviderOptions);
|
|
123
|
+
/**
|
|
124
|
+
* Generate a response (implemented by subclass)
|
|
125
|
+
*/
|
|
126
|
+
generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
|
|
127
|
+
/**
|
|
128
|
+
* Generate a streaming response (implemented by subclass)
|
|
129
|
+
*/
|
|
130
|
+
generateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
|
|
131
|
+
/**
|
|
132
|
+
* Get available models (optional, implemented by subclass)
|
|
133
|
+
*/
|
|
134
|
+
getModels(): Promise<ProviderModelInfo[]>;
|
|
135
|
+
/**
|
|
136
|
+
* Provider-specific generate implementation
|
|
137
|
+
*/
|
|
138
|
+
protected abstract doGenerate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
|
|
139
|
+
/**
|
|
140
|
+
* Provider-specific stream implementation
|
|
141
|
+
*/
|
|
142
|
+
protected abstract doGenerateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterable<StreamChunk>;
|
|
143
|
+
/**
|
|
144
|
+
* Called when a retry is about to happen
|
|
145
|
+
*/
|
|
146
|
+
protected onRetry(error: unknown, attempt: number, delay: number): void;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=baseProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseProvider.d.ts","sourceRoot":"","sources":["../../src/providers/baseProvider.ts"],"names":[],"mappings":"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"}
|