@codebolt/codeboltjs 2.0.7 → 2.0.12

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 (52) hide show
  1. package/dist/agentlib/agent.js +12 -4
  2. package/dist/agentlib/promptbuilder.d.ts +228 -0
  3. package/dist/agentlib/promptbuilder.js +487 -0
  4. package/dist/agentlib/taskInstruction.d.ts +3 -25
  5. package/dist/agentlib/usermessage.d.ts +13 -43
  6. package/dist/agentlib/usermessage.js +8 -8
  7. package/dist/core/messageManager.d.ts +4 -6
  8. package/dist/core/messageManager.js +24 -17
  9. package/dist/core/websocket.d.ts +10 -0
  10. package/dist/core/websocket.js +92 -8
  11. package/dist/index.d.ts +97 -95
  12. package/dist/index.js +63 -57
  13. package/dist/modules/agent.d.ts +9 -8
  14. package/dist/modules/agent.js +4 -4
  15. package/dist/modules/browser.d.ts +17 -17
  16. package/dist/modules/browser.js +7 -7
  17. package/dist/modules/chat.d.ts +1 -1
  18. package/dist/modules/codeparsers.d.ts +1 -16
  19. package/dist/modules/codeutils.d.ts +3 -18
  20. package/dist/modules/dbmemory.d.ts +1 -1
  21. package/dist/modules/debug.d.ts +1 -1
  22. package/dist/modules/fs.d.ts +1 -1
  23. package/dist/modules/git.d.ts +21 -20
  24. package/dist/modules/git.js +10 -10
  25. package/dist/modules/history.d.ts +6 -8
  26. package/dist/modules/history.js +4 -1
  27. package/dist/modules/llm.d.ts +13 -5
  28. package/dist/modules/llm.js +29 -4
  29. package/dist/modules/{tools.d.ts → mcp.d.ts} +9 -8
  30. package/dist/modules/{tools.js → mcp.js} +6 -6
  31. package/dist/modules/project.d.ts +1 -1
  32. package/dist/modules/state.d.ts +2 -1
  33. package/dist/modules/task.js +0 -1
  34. package/dist/modules/terminal.d.ts +1 -1
  35. package/dist/modules/tokenizer.d.ts +1 -1
  36. package/dist/modules/utils.d.ts +11 -1
  37. package/dist/modules/utils.js +9 -0
  38. package/dist/modules/vectordb.d.ts +1 -1
  39. package/dist/types/InternalTypes.d.ts +501 -0
  40. package/dist/types/InternalTypes.js +30 -0
  41. package/dist/types/commonTypes.d.ts +346 -0
  42. package/dist/types/commonTypes.js +37 -0
  43. package/dist/types/libFunctionTypes.d.ts +589 -0
  44. package/dist/types/libFunctionTypes.js +11 -0
  45. package/dist/types/socketMessageTypes.d.ts +951 -0
  46. package/dist/types/socketMessageTypes.js +51 -0
  47. package/dist/utils/{toolBox.d.ts → mcpServer.d.ts} +1 -1
  48. package/dist/utils/{toolBox.js → mcpServer.js} +36 -36
  49. package/dist/utils/parse-source-code/languageParser.d.ts +1 -7
  50. package/dist/utils.d.ts +1 -1
  51. package/dist/utils.js +3 -3
  52. package/package.json +7 -2
@@ -0,0 +1,501 @@
1
+ /**
2
+ * Internal TypeScript types for the codeboltjs library implementation
3
+ *
4
+ * This file contains types that are used internally by the library:
5
+ * - Internal class structures
6
+ * - Implementation-specific interfaces
7
+ * - Private API types
8
+ * - Module-specific types
9
+ * - WebSocket management types
10
+ */
11
+ /// <reference types="node" />
12
+ /// <reference types="node" />
13
+ /// <reference types="node" />
14
+ import { EventEmitter } from 'events';
15
+ import WebSocket from 'ws';
16
+ import type { PendingRequest } from './commonTypes';
17
+ export interface WebSocketManager {
18
+ websocket: WebSocket | null;
19
+ isConnected: boolean;
20
+ reconnectAttempts: number;
21
+ maxReconnectAttempts: number;
22
+ reconnectInterval: number;
23
+ messageQueue: any[];
24
+ pendingRequests: Map<string, PendingRequest>;
25
+ }
26
+ export interface WebSocketConfig {
27
+ url: string;
28
+ timeout: number;
29
+ reconnectInterval: number;
30
+ maxReconnectAttempts: number;
31
+ autoReconnect: boolean;
32
+ }
33
+ export interface MessageManagerConfig {
34
+ timeout: number;
35
+ retryAttempts: number;
36
+ retryDelay: number;
37
+ }
38
+ export interface MessageQueueItem {
39
+ message: any;
40
+ timestamp: number;
41
+ priority: number;
42
+ retryCount: number;
43
+ maxRetries: number;
44
+ }
45
+ export interface ModuleManager {
46
+ fs: any;
47
+ git: any;
48
+ llm: any;
49
+ browser: any;
50
+ chat: any;
51
+ terminal: any;
52
+ codeutils: any;
53
+ crawler: any;
54
+ search: any;
55
+ knowledge: any;
56
+ rag: any;
57
+ codeparsers: any;
58
+ outputparsers: any;
59
+ project: any;
60
+ dbmemory: any;
61
+ cbstate: any;
62
+ taskplaner: any;
63
+ vectordb: any;
64
+ debug: any;
65
+ tokenizer: any;
66
+ chatSummary: any;
67
+ mcp: any;
68
+ agent: any;
69
+ utils: any;
70
+ }
71
+ export interface ASTNode {
72
+ /** Type of the AST node */
73
+ type: string;
74
+ /** Start position in the source code */
75
+ start?: number;
76
+ /** End position in the source code */
77
+ end?: number;
78
+ /** Line number where the node starts */
79
+ line?: number;
80
+ /** Column number where the node starts */
81
+ column?: number;
82
+ /** Child nodes */
83
+ children?: ASTNode[];
84
+ /** Node value/content */
85
+ value?: any;
86
+ /** Additional node properties */
87
+ [key: string]: any;
88
+ }
89
+ export interface ParserConfig {
90
+ language: string;
91
+ options: {
92
+ includeComments?: boolean;
93
+ includeLocations?: boolean;
94
+ tolerant?: boolean;
95
+ };
96
+ }
97
+ export interface JSTreeStructureItem {
98
+ /** Type of the item (function, class, variable, etc.) */
99
+ type: string;
100
+ /** Name of the code structure item */
101
+ name: string;
102
+ /** Start line number */
103
+ startLine: number;
104
+ /** End line number */
105
+ endLine: number;
106
+ /** Start column number */
107
+ startColumn: number;
108
+ /** End column number */
109
+ endColumn: number;
110
+ /** Node type from the AST */
111
+ nodeType: string;
112
+ }
113
+ export interface JSTreeResponse {
114
+ /** Event type */
115
+ event: string;
116
+ /** Response payload */
117
+ payload?: {
118
+ /** File path that was parsed */
119
+ filePath: string;
120
+ /** Parsed structure items */
121
+ structure: JSTreeStructureItem[];
122
+ };
123
+ /** Error message if parsing failed */
124
+ error?: string;
125
+ }
126
+ export interface LanguageParser {
127
+ [key: string]: {
128
+ parser: any;
129
+ query: any;
130
+ };
131
+ }
132
+ export interface CacheManager {
133
+ get<T>(key: string): T | undefined;
134
+ set<T>(key: string, value: T, ttl?: number): void;
135
+ delete(key: string): boolean;
136
+ clear(): void;
137
+ size(): number;
138
+ }
139
+ export interface CacheEntry<T = any> {
140
+ value: T;
141
+ timestamp: number;
142
+ ttl: number;
143
+ accessCount: number;
144
+ lastAccessed: number;
145
+ }
146
+ export interface InternalState {
147
+ isInitialized: boolean;
148
+ isConnected: boolean;
149
+ lastHeartbeat: number;
150
+ sessionId: string;
151
+ userId?: string;
152
+ activeRequests: Set<string>;
153
+ moduleStates: Map<string, any>;
154
+ errorCount: number;
155
+ lastError?: Error;
156
+ }
157
+ export interface StateChangeEvent {
158
+ type: 'state_change';
159
+ property: keyof InternalState;
160
+ oldValue: any;
161
+ newValue: any;
162
+ timestamp: number;
163
+ }
164
+ export interface InternalError extends Error {
165
+ code: string;
166
+ module: string;
167
+ severity: 'low' | 'medium' | 'high' | 'critical';
168
+ context?: Record<string, any>;
169
+ timestamp: number;
170
+ stackTrace?: string;
171
+ }
172
+ export declare class InternalError extends Error {
173
+ code: string;
174
+ module: string;
175
+ severity: 'low' | 'medium' | 'high' | 'critical';
176
+ context?: Record<string, any> | undefined;
177
+ constructor(message: string, code: string, module: string, severity?: 'low' | 'medium' | 'high' | 'critical', context?: Record<string, any> | undefined);
178
+ }
179
+ export interface InternalEventMap {
180
+ 'websocket:connected': () => void;
181
+ 'websocket:disconnected': () => void;
182
+ 'websocket:error': (error: Error) => void;
183
+ 'websocket:message': (message: any) => void;
184
+ 'websocket:reconnecting': (attempt: number) => void;
185
+ 'module:loaded': (moduleName: string) => void;
186
+ 'module:error': (moduleName: string, error: Error) => void;
187
+ 'cache:hit': (key: string) => void;
188
+ 'cache:miss': (key: string) => void;
189
+ 'cache:evicted': (key: string) => void;
190
+ 'state:changed': (event: StateChangeEvent) => void;
191
+ 'request:started': (requestId: string) => void;
192
+ 'request:completed': (requestId: string, duration: number) => void;
193
+ 'request:failed': (requestId: string, error: Error) => void;
194
+ }
195
+ export interface InternalEventEmitter extends EventEmitter {
196
+ on<K extends keyof InternalEventMap>(event: K, listener: InternalEventMap[K]): this;
197
+ off<K extends keyof InternalEventMap>(event: K, listener: InternalEventMap[K]): this;
198
+ emit<K extends keyof InternalEventMap>(event: K, ...args: Parameters<InternalEventMap[K]>): boolean;
199
+ }
200
+ export interface RequestTracker {
201
+ id: string;
202
+ type: string;
203
+ module: string;
204
+ startTime: number;
205
+ endTime?: number;
206
+ status: 'pending' | 'success' | 'error' | 'timeout';
207
+ error?: Error;
208
+ metadata?: Record<string, any>;
209
+ }
210
+ export interface RequestMetrics {
211
+ totalRequests: number;
212
+ successfulRequests: number;
213
+ failedRequests: number;
214
+ averageResponseTime: number;
215
+ requestsByModule: Map<string, number>;
216
+ errorsByType: Map<string, number>;
217
+ }
218
+ export interface PerformanceMetrics {
219
+ memoryUsage: {
220
+ rss: number;
221
+ heapTotal: number;
222
+ heapUsed: number;
223
+ external: number;
224
+ };
225
+ cpuUsage: {
226
+ user: number;
227
+ system: number;
228
+ };
229
+ eventLoopLag: number;
230
+ gcStats?: {
231
+ totalHeapSize: number;
232
+ totalHeapSizeExecutable: number;
233
+ totalPhysicalSize: number;
234
+ totalAvailableSize: number;
235
+ usedHeapSize: number;
236
+ heapSizeLimit: number;
237
+ };
238
+ }
239
+ export interface PerformanceMonitor {
240
+ start(): void;
241
+ stop(): void;
242
+ getMetrics(): PerformanceMetrics;
243
+ reset(): void;
244
+ isRunning(): boolean;
245
+ }
246
+ export interface InternalLogger {
247
+ debug(message: string, meta?: Record<string, any>): void;
248
+ info(message: string, meta?: Record<string, any>): void;
249
+ warn(message: string, meta?: Record<string, any>): void;
250
+ error(message: string, error?: Error, meta?: Record<string, any>): void;
251
+ setLevel(level: 'debug' | 'info' | 'warn' | 'error'): void;
252
+ getLevel(): string;
253
+ }
254
+ export interface LogEntry {
255
+ level: 'debug' | 'info' | 'warn' | 'error';
256
+ message: string;
257
+ timestamp: number;
258
+ module?: string;
259
+ requestId?: string;
260
+ meta?: Record<string, any>;
261
+ error?: {
262
+ name: string;
263
+ message: string;
264
+ stack?: string;
265
+ };
266
+ }
267
+ export interface ModuleDefinition {
268
+ name: string;
269
+ path: string;
270
+ dependencies: string[];
271
+ version: string;
272
+ exports: string[];
273
+ config?: Record<string, any>;
274
+ }
275
+ export interface ModuleLoader {
276
+ load(name: string): Promise<any>;
277
+ unload(name: string): Promise<void>;
278
+ reload(name: string): Promise<any>;
279
+ isLoaded(name: string): boolean;
280
+ getLoadedModules(): string[];
281
+ }
282
+ export interface ConfigurationManager {
283
+ get<T>(key: string): T | undefined;
284
+ set<T>(key: string, value: T): void;
285
+ has(key: string): boolean;
286
+ delete(key: string): boolean;
287
+ getAll(): Record<string, any>;
288
+ merge(config: Record<string, any>): void;
289
+ validate(schema: any): boolean;
290
+ }
291
+ export interface ConfigurationSchema {
292
+ type: 'object';
293
+ properties: Record<string, {
294
+ type: string;
295
+ required?: boolean;
296
+ default?: any;
297
+ description?: string;
298
+ }>;
299
+ required?: string[];
300
+ }
301
+ export interface QueueManager<T = any> {
302
+ enqueue(item: T, priority?: number): void;
303
+ dequeue(): T | undefined;
304
+ peek(): T | undefined;
305
+ size(): number;
306
+ isEmpty(): boolean;
307
+ clear(): void;
308
+ }
309
+ export interface PriorityQueue<T = any> extends QueueManager<T> {
310
+ enqueuePriority(item: T, priority: number): void;
311
+ dequeuePriority(): T | undefined;
312
+ }
313
+ export interface ConnectionPool {
314
+ acquire(): Promise<WebSocket>;
315
+ release(connection: WebSocket): void;
316
+ destroy(connection: WebSocket): void;
317
+ size(): number;
318
+ available(): number;
319
+ pending(): number;
320
+ close(): Promise<void>;
321
+ }
322
+ export interface PoolConfiguration {
323
+ min: number;
324
+ max: number;
325
+ acquireTimeoutMillis: number;
326
+ idleTimeoutMillis: number;
327
+ createTimeoutMillis: number;
328
+ destroyTimeoutMillis: number;
329
+ reapIntervalMillis: number;
330
+ }
331
+ export interface SecurityContext {
332
+ userId?: string;
333
+ sessionId: string;
334
+ permissions: string[];
335
+ roles: string[];
336
+ isAuthenticated: boolean;
337
+ expiresAt?: number;
338
+ }
339
+ export interface SecurityManager {
340
+ authenticate(credentials: any): Promise<SecurityContext>;
341
+ authorize(action: string, resource?: string): boolean;
342
+ validateSession(sessionId: string): boolean;
343
+ revokeSession(sessionId: string): void;
344
+ hasPermission(permission: string): boolean;
345
+ }
346
+ export interface ValidationRule {
347
+ field: string;
348
+ type: 'required' | 'string' | 'number' | 'boolean' | 'array' | 'object' | 'custom';
349
+ message?: string;
350
+ validator?: (value: any) => boolean;
351
+ options?: Record<string, any>;
352
+ }
353
+ export interface ValidationResult {
354
+ isValid: boolean;
355
+ errors: Array<{
356
+ field: string;
357
+ message: string;
358
+ value?: any;
359
+ }>;
360
+ }
361
+ export interface Validator {
362
+ validate(data: any, rules: ValidationRule[]): ValidationResult;
363
+ addRule(rule: ValidationRule): void;
364
+ removeRule(field: string): void;
365
+ hasRule(field: string): boolean;
366
+ }
367
+ export interface Serializer<T = any> {
368
+ serialize(data: T): string | Buffer;
369
+ deserialize(data: string | Buffer): T;
370
+ getContentType(): string;
371
+ }
372
+ export interface SerializationManager {
373
+ register(name: string, serializer: Serializer): void;
374
+ unregister(name: string): void;
375
+ get(name: string): Serializer | undefined;
376
+ serialize(data: any, format?: string): string | Buffer;
377
+ deserialize(data: string | Buffer, format?: string): any;
378
+ }
379
+ export interface Plugin {
380
+ name: string;
381
+ version: string;
382
+ initialize(context: PluginContext): Promise<void>;
383
+ destroy(): Promise<void>;
384
+ dependencies?: string[];
385
+ config?: Record<string, any>;
386
+ }
387
+ export interface PluginContext {
388
+ logger: InternalLogger;
389
+ config: ConfigurationManager;
390
+ events: InternalEventEmitter;
391
+ state: InternalState;
392
+ registerHandler(type: string, handler: Function): void;
393
+ unregisterHandler(type: string, handler: Function): void;
394
+ }
395
+ export interface PluginManager {
396
+ load(plugin: Plugin): Promise<void>;
397
+ unload(name: string): Promise<void>;
398
+ isLoaded(name: string): boolean;
399
+ getLoaded(): Plugin[];
400
+ enable(name: string): void;
401
+ disable(name: string): void;
402
+ }
403
+ export interface HealthCheck {
404
+ name: string;
405
+ check(): Promise<HealthStatus>;
406
+ timeout?: number;
407
+ interval?: number;
408
+ }
409
+ export interface HealthStatus {
410
+ status: 'healthy' | 'unhealthy' | 'degraded';
411
+ message?: string;
412
+ timestamp: number;
413
+ metadata?: Record<string, any>;
414
+ }
415
+ export interface HealthMonitor {
416
+ register(check: HealthCheck): void;
417
+ unregister(name: string): void;
418
+ checkAll(): Promise<Map<string, HealthStatus>>;
419
+ getStatus(name: string): HealthStatus | undefined;
420
+ isHealthy(): boolean;
421
+ }
422
+ export interface CircuitBreakerConfig {
423
+ failureThreshold: number;
424
+ resetTimeout: number;
425
+ monitoringPeriod: number;
426
+ expectedErrorCodes?: string[];
427
+ }
428
+ export interface CircuitBreaker {
429
+ execute<T>(operation: () => Promise<T>): Promise<T>;
430
+ getState(): 'closed' | 'open' | 'half-open';
431
+ getFailureRate(): number;
432
+ reset(): void;
433
+ forceOpen(): void;
434
+ forceClose(): void;
435
+ }
436
+ /**
437
+ * Interface for tools that can be used within tasks.
438
+ */
439
+ export interface Tools {
440
+ [key: string]: {
441
+ /** Description of what the tool does */
442
+ description: string;
443
+ /** How to use the tool correctly */
444
+ usage: string;
445
+ /** Optional example demonstrating tool usage */
446
+ example?: string;
447
+ };
448
+ }
449
+ /**
450
+ * Interface for task data structure as loaded from YAML.
451
+ */
452
+ export interface TaskData {
453
+ [key: string]: {
454
+ /** Description of what the task should accomplish */
455
+ description: string;
456
+ /** Expected output format or content */
457
+ expected_output: string;
458
+ };
459
+ }
460
+ /**
461
+ * Interface for user message structure in tasks.
462
+ */
463
+ export interface UserMessages {
464
+ /** The type of user message */
465
+ type: string;
466
+ /** The text content of the message */
467
+ text: string;
468
+ }
469
+ /**
470
+ * Interface for system prompt data loaded from YAML.
471
+ */
472
+ export interface PromptData {
473
+ [key: string]: {
474
+ prompt: string;
475
+ };
476
+ }
477
+ /**
478
+ * Interface for user message structure in agent lib.
479
+ */
480
+ export interface Message {
481
+ /** The actual text content of the user message */
482
+ userMessage: string;
483
+ /** Optional list of files mentioned in the message */
484
+ mentionedFiles?: string[];
485
+ /** List of MCP (Model Context Protocol) tools mentioned */
486
+ mentionedMCPs: {
487
+ toolbox: string;
488
+ toolName: string;
489
+ }[];
490
+ /** List of agents mentioned in the message */
491
+ mentionedAgents: any[];
492
+ }
493
+ /**
494
+ * Interface for file listing result.
495
+ */
496
+ export interface FileListResult {
497
+ /** Whether the listing operation was successful */
498
+ success: boolean;
499
+ /** The result of the listing operation as a string */
500
+ result: string;
501
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * Internal TypeScript types for the codeboltjs library implementation
4
+ *
5
+ * This file contains types that are used internally by the library:
6
+ * - Internal class structures
7
+ * - Implementation-specific interfaces
8
+ * - Private API types
9
+ * - Module-specific types
10
+ * - WebSocket management types
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.InternalError = void 0;
14
+ class InternalError extends Error {
15
+ constructor(message, code, module, severity = 'medium', context) {
16
+ super(message);
17
+ this.code = code;
18
+ this.module = module;
19
+ this.severity = severity;
20
+ this.context = context;
21
+ this.name = 'InternalError';
22
+ this.timestamp = Date.now();
23
+ this.stackTrace = this.stack;
24
+ }
25
+ }
26
+ exports.InternalError = InternalError;
27
+ // ================================
28
+ // Parser Internal Types
29
+ // ================================
30
+ // LanguageParser interface already defined above at line 154