erosolar-cli 1.7.260 → 1.7.262

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 (247) hide show
  1. package/README.md +22 -148
  2. package/dist/core/customCommands.d.ts +1 -0
  3. package/dist/core/customCommands.d.ts.map +1 -1
  4. package/dist/core/customCommands.js +3 -0
  5. package/dist/core/customCommands.js.map +1 -1
  6. package/dist/core/hooks.d.ts +113 -0
  7. package/dist/core/hooks.d.ts.map +1 -0
  8. package/dist/core/hooks.js +267 -0
  9. package/dist/core/hooks.js.map +1 -0
  10. package/dist/core/metricsTracker.d.ts +122 -0
  11. package/dist/core/metricsTracker.d.ts.map +1 -0
  12. package/dist/{alpha-zero → core}/metricsTracker.js +2 -5
  13. package/dist/core/metricsTracker.js.map +1 -0
  14. package/dist/core/toolPreconditions.d.ts.map +1 -1
  15. package/dist/core/toolPreconditions.js +0 -14
  16. package/dist/core/toolPreconditions.js.map +1 -1
  17. package/dist/core/toolRuntime.d.ts.map +1 -1
  18. package/dist/core/toolRuntime.js +0 -5
  19. package/dist/core/toolRuntime.js.map +1 -1
  20. package/dist/core/toolValidation.d.ts.map +1 -1
  21. package/dist/core/toolValidation.js +14 -3
  22. package/dist/core/toolValidation.js.map +1 -1
  23. package/dist/core/validationRunner.d.ts +1 -3
  24. package/dist/core/validationRunner.d.ts.map +1 -1
  25. package/dist/core/validationRunner.js.map +1 -1
  26. package/dist/mcp/sseClient.d.ts.map +1 -1
  27. package/dist/mcp/sseClient.js +9 -18
  28. package/dist/mcp/sseClient.js.map +1 -1
  29. package/dist/plugins/tools/build/buildPlugin.d.ts +0 -6
  30. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  31. package/dist/plugins/tools/build/buildPlugin.js +4 -10
  32. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  33. package/dist/shell/interactiveShell.d.ts +10 -2
  34. package/dist/shell/interactiveShell.d.ts.map +1 -1
  35. package/dist/shell/interactiveShell.js +182 -36
  36. package/dist/shell/interactiveShell.js.map +1 -1
  37. package/dist/shell/terminalInput.d.ts +68 -140
  38. package/dist/shell/terminalInput.d.ts.map +1 -1
  39. package/dist/shell/terminalInput.js +424 -685
  40. package/dist/shell/terminalInput.js.map +1 -1
  41. package/dist/shell/terminalInputAdapter.d.ts +20 -15
  42. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  43. package/dist/shell/terminalInputAdapter.js +14 -22
  44. package/dist/shell/terminalInputAdapter.js.map +1 -1
  45. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  46. package/dist/ui/ShellUIAdapter.js +13 -12
  47. package/dist/ui/ShellUIAdapter.js.map +1 -1
  48. package/dist/ui/display.d.ts +19 -0
  49. package/dist/ui/display.d.ts.map +1 -1
  50. package/dist/ui/display.js +131 -33
  51. package/dist/ui/display.js.map +1 -1
  52. package/dist/ui/theme.d.ts.map +1 -1
  53. package/dist/ui/theme.js +6 -8
  54. package/dist/ui/theme.js.map +1 -1
  55. package/dist/ui/toolDisplay.d.ts +0 -158
  56. package/dist/ui/toolDisplay.d.ts.map +1 -1
  57. package/dist/ui/toolDisplay.js +0 -348
  58. package/dist/ui/toolDisplay.js.map +1 -1
  59. package/dist/ui/unified/layout.d.ts +1 -0
  60. package/dist/ui/unified/layout.d.ts.map +1 -1
  61. package/dist/ui/unified/layout.js +15 -25
  62. package/dist/ui/unified/layout.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/alpha-zero/agentWrapper.d.ts +0 -84
  65. package/dist/alpha-zero/agentWrapper.d.ts.map +0 -1
  66. package/dist/alpha-zero/agentWrapper.js +0 -171
  67. package/dist/alpha-zero/agentWrapper.js.map +0 -1
  68. package/dist/alpha-zero/codeEvaluator.d.ts +0 -25
  69. package/dist/alpha-zero/codeEvaluator.d.ts.map +0 -1
  70. package/dist/alpha-zero/codeEvaluator.js +0 -273
  71. package/dist/alpha-zero/codeEvaluator.js.map +0 -1
  72. package/dist/alpha-zero/competitiveRunner.d.ts +0 -66
  73. package/dist/alpha-zero/competitiveRunner.d.ts.map +0 -1
  74. package/dist/alpha-zero/competitiveRunner.js +0 -224
  75. package/dist/alpha-zero/competitiveRunner.js.map +0 -1
  76. package/dist/alpha-zero/index.d.ts +0 -67
  77. package/dist/alpha-zero/index.d.ts.map +0 -1
  78. package/dist/alpha-zero/index.js +0 -99
  79. package/dist/alpha-zero/index.js.map +0 -1
  80. package/dist/alpha-zero/introspection.d.ts +0 -128
  81. package/dist/alpha-zero/introspection.d.ts.map +0 -1
  82. package/dist/alpha-zero/introspection.js +0 -300
  83. package/dist/alpha-zero/introspection.js.map +0 -1
  84. package/dist/alpha-zero/metricsTracker.d.ts +0 -71
  85. package/dist/alpha-zero/metricsTracker.d.ts.map +0 -1
  86. package/dist/alpha-zero/metricsTracker.js.map +0 -1
  87. package/dist/alpha-zero/security/core.d.ts +0 -125
  88. package/dist/alpha-zero/security/core.d.ts.map +0 -1
  89. package/dist/alpha-zero/security/core.js +0 -271
  90. package/dist/alpha-zero/security/core.js.map +0 -1
  91. package/dist/alpha-zero/security/google.d.ts +0 -125
  92. package/dist/alpha-zero/security/google.d.ts.map +0 -1
  93. package/dist/alpha-zero/security/google.js +0 -311
  94. package/dist/alpha-zero/security/google.js.map +0 -1
  95. package/dist/alpha-zero/security/googleLoader.d.ts +0 -17
  96. package/dist/alpha-zero/security/googleLoader.d.ts.map +0 -1
  97. package/dist/alpha-zero/security/googleLoader.js +0 -41
  98. package/dist/alpha-zero/security/googleLoader.js.map +0 -1
  99. package/dist/alpha-zero/security/index.d.ts +0 -29
  100. package/dist/alpha-zero/security/index.d.ts.map +0 -1
  101. package/dist/alpha-zero/security/index.js +0 -32
  102. package/dist/alpha-zero/security/index.js.map +0 -1
  103. package/dist/alpha-zero/security/simulation.d.ts +0 -124
  104. package/dist/alpha-zero/security/simulation.d.ts.map +0 -1
  105. package/dist/alpha-zero/security/simulation.js +0 -277
  106. package/dist/alpha-zero/security/simulation.js.map +0 -1
  107. package/dist/alpha-zero/selfModification.d.ts +0 -109
  108. package/dist/alpha-zero/selfModification.d.ts.map +0 -1
  109. package/dist/alpha-zero/selfModification.js +0 -233
  110. package/dist/alpha-zero/selfModification.js.map +0 -1
  111. package/dist/alpha-zero/types.d.ts +0 -170
  112. package/dist/alpha-zero/types.d.ts.map +0 -1
  113. package/dist/alpha-zero/types.js +0 -31
  114. package/dist/alpha-zero/types.js.map +0 -1
  115. package/dist/core/aiFlowOptimizer.d.ts +0 -26
  116. package/dist/core/aiFlowOptimizer.d.ts.map +0 -1
  117. package/dist/core/aiFlowOptimizer.js +0 -31
  118. package/dist/core/aiFlowOptimizer.js.map +0 -1
  119. package/dist/core/aiOptimizationEngine.d.ts +0 -158
  120. package/dist/core/aiOptimizationEngine.d.ts.map +0 -1
  121. package/dist/core/aiOptimizationEngine.js +0 -428
  122. package/dist/core/aiOptimizationEngine.js.map +0 -1
  123. package/dist/core/aiOptimizationIntegration.d.ts +0 -93
  124. package/dist/core/aiOptimizationIntegration.d.ts.map +0 -1
  125. package/dist/core/aiOptimizationIntegration.js +0 -250
  126. package/dist/core/aiOptimizationIntegration.js.map +0 -1
  127. package/dist/core/enhancedErrorRecovery.d.ts +0 -100
  128. package/dist/core/enhancedErrorRecovery.d.ts.map +0 -1
  129. package/dist/core/enhancedErrorRecovery.js +0 -345
  130. package/dist/core/enhancedErrorRecovery.js.map +0 -1
  131. package/dist/core/unified/errors.d.ts +0 -189
  132. package/dist/core/unified/errors.d.ts.map +0 -1
  133. package/dist/core/unified/errors.js +0 -497
  134. package/dist/core/unified/errors.js.map +0 -1
  135. package/dist/core/unified/index.d.ts +0 -19
  136. package/dist/core/unified/index.d.ts.map +0 -1
  137. package/dist/core/unified/index.js +0 -68
  138. package/dist/core/unified/index.js.map +0 -1
  139. package/dist/core/unified/schema.d.ts +0 -101
  140. package/dist/core/unified/schema.d.ts.map +0 -1
  141. package/dist/core/unified/schema.js +0 -350
  142. package/dist/core/unified/schema.js.map +0 -1
  143. package/dist/core/unified/toolRuntime.d.ts +0 -179
  144. package/dist/core/unified/toolRuntime.d.ts.map +0 -1
  145. package/dist/core/unified/toolRuntime.js +0 -517
  146. package/dist/core/unified/toolRuntime.js.map +0 -1
  147. package/dist/core/unified/tools.d.ts +0 -127
  148. package/dist/core/unified/tools.d.ts.map +0 -1
  149. package/dist/core/unified/tools.js +0 -1333
  150. package/dist/core/unified/tools.js.map +0 -1
  151. package/dist/core/unified/types.d.ts +0 -352
  152. package/dist/core/unified/types.d.ts.map +0 -1
  153. package/dist/core/unified/types.js +0 -12
  154. package/dist/core/unified/types.js.map +0 -1
  155. package/dist/core/unified/version.d.ts +0 -209
  156. package/dist/core/unified/version.d.ts.map +0 -1
  157. package/dist/core/unified/version.js +0 -454
  158. package/dist/core/unified/version.js.map +0 -1
  159. package/dist/security/active-stack-security.d.ts +0 -112
  160. package/dist/security/active-stack-security.d.ts.map +0 -1
  161. package/dist/security/active-stack-security.js +0 -296
  162. package/dist/security/active-stack-security.js.map +0 -1
  163. package/dist/security/advanced-persistence-research.d.ts +0 -92
  164. package/dist/security/advanced-persistence-research.d.ts.map +0 -1
  165. package/dist/security/advanced-persistence-research.js +0 -195
  166. package/dist/security/advanced-persistence-research.js.map +0 -1
  167. package/dist/security/advanced-targeting.d.ts +0 -119
  168. package/dist/security/advanced-targeting.d.ts.map +0 -1
  169. package/dist/security/advanced-targeting.js +0 -233
  170. package/dist/security/advanced-targeting.js.map +0 -1
  171. package/dist/security/assessment/vulnerabilityAssessment.d.ts +0 -104
  172. package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +0 -1
  173. package/dist/security/assessment/vulnerabilityAssessment.js +0 -315
  174. package/dist/security/assessment/vulnerabilityAssessment.js.map +0 -1
  175. package/dist/security/authorization/securityAuthorization.d.ts +0 -88
  176. package/dist/security/authorization/securityAuthorization.d.ts.map +0 -1
  177. package/dist/security/authorization/securityAuthorization.js +0 -172
  178. package/dist/security/authorization/securityAuthorization.js.map +0 -1
  179. package/dist/security/comprehensive-targeting.d.ts +0 -85
  180. package/dist/security/comprehensive-targeting.d.ts.map +0 -1
  181. package/dist/security/comprehensive-targeting.js +0 -438
  182. package/dist/security/comprehensive-targeting.js.map +0 -1
  183. package/dist/security/global-security-integration.d.ts +0 -91
  184. package/dist/security/global-security-integration.d.ts.map +0 -1
  185. package/dist/security/global-security-integration.js +0 -218
  186. package/dist/security/global-security-integration.js.map +0 -1
  187. package/dist/security/index.d.ts +0 -38
  188. package/dist/security/index.d.ts.map +0 -1
  189. package/dist/security/index.js +0 -47
  190. package/dist/security/index.js.map +0 -1
  191. package/dist/security/persistence-analyzer.d.ts +0 -56
  192. package/dist/security/persistence-analyzer.d.ts.map +0 -1
  193. package/dist/security/persistence-analyzer.js +0 -187
  194. package/dist/security/persistence-analyzer.js.map +0 -1
  195. package/dist/security/persistence-cli.d.ts +0 -36
  196. package/dist/security/persistence-cli.d.ts.map +0 -1
  197. package/dist/security/persistence-cli.js +0 -160
  198. package/dist/security/persistence-cli.js.map +0 -1
  199. package/dist/security/persistence-research.d.ts +0 -92
  200. package/dist/security/persistence-research.d.ts.map +0 -1
  201. package/dist/security/persistence-research.js +0 -364
  202. package/dist/security/persistence-research.js.map +0 -1
  203. package/dist/security/research/persistenceResearch.d.ts +0 -97
  204. package/dist/security/research/persistenceResearch.d.ts.map +0 -1
  205. package/dist/security/research/persistenceResearch.js +0 -282
  206. package/dist/security/research/persistenceResearch.js.map +0 -1
  207. package/dist/security/security-integration.d.ts +0 -74
  208. package/dist/security/security-integration.d.ts.map +0 -1
  209. package/dist/security/security-integration.js +0 -137
  210. package/dist/security/security-integration.js.map +0 -1
  211. package/dist/security/security-testing-framework.d.ts +0 -112
  212. package/dist/security/security-testing-framework.d.ts.map +0 -1
  213. package/dist/security/security-testing-framework.js +0 -364
  214. package/dist/security/security-testing-framework.js.map +0 -1
  215. package/dist/security/simulation/attackSimulation.d.ts +0 -93
  216. package/dist/security/simulation/attackSimulation.d.ts.map +0 -1
  217. package/dist/security/simulation/attackSimulation.js +0 -341
  218. package/dist/security/simulation/attackSimulation.js.map +0 -1
  219. package/dist/security/strategic-operations.d.ts +0 -100
  220. package/dist/security/strategic-operations.d.ts.map +0 -1
  221. package/dist/security/strategic-operations.js +0 -276
  222. package/dist/security/strategic-operations.js.map +0 -1
  223. package/dist/security/tool-security-wrapper.d.ts +0 -58
  224. package/dist/security/tool-security-wrapper.d.ts.map +0 -1
  225. package/dist/security/tool-security-wrapper.js +0 -156
  226. package/dist/security/tool-security-wrapper.js.map +0 -1
  227. package/dist/shell/claudeCodeStreamHandler.d.ts +0 -145
  228. package/dist/shell/claudeCodeStreamHandler.d.ts.map +0 -1
  229. package/dist/shell/claudeCodeStreamHandler.js +0 -322
  230. package/dist/shell/claudeCodeStreamHandler.js.map +0 -1
  231. package/dist/shell/inputQueueManager.d.ts +0 -144
  232. package/dist/shell/inputQueueManager.d.ts.map +0 -1
  233. package/dist/shell/inputQueueManager.js +0 -290
  234. package/dist/shell/inputQueueManager.js.map +0 -1
  235. package/dist/shell/streamingOutputManager.d.ts +0 -115
  236. package/dist/shell/streamingOutputManager.d.ts.map +0 -1
  237. package/dist/shell/streamingOutputManager.js +0 -225
  238. package/dist/shell/streamingOutputManager.js.map +0 -1
  239. package/dist/ui/persistentPrompt.d.ts +0 -50
  240. package/dist/ui/persistentPrompt.d.ts.map +0 -1
  241. package/dist/ui/persistentPrompt.js +0 -92
  242. package/dist/ui/persistentPrompt.js.map +0 -1
  243. package/dist/ui/terminalUISchema.d.ts +0 -195
  244. package/dist/ui/terminalUISchema.d.ts.map +0 -1
  245. package/dist/ui/terminalUISchema.js +0 -113
  246. package/dist/ui/terminalUISchema.js.map +0 -1
  247. package/scripts/deploy-security-capabilities.js +0 -178
@@ -1,101 +0,0 @@
1
- /**
2
- * Unified Schema Loader and Validator
3
- *
4
- * Provides cached loading of the unified schema and validation utilities.
5
- * Single source of truth for all schema operations.
6
- *
7
- * Principal Investigator: Bo Shang
8
- * Framework: erosolar-cli
9
- */
10
- import type { UnifiedSchema, ProviderConfig, TaskTypeConfig, SchemaToolDefinition, ToolCategoryConfig, JSONSchemaObject, ProviderId, TaskTypeId, ProviderCapability } from './types.js';
11
- /**
12
- * Load the unified schema with caching
13
- */
14
- export declare function loadUnifiedSchema(forceReload?: boolean): UnifiedSchema;
15
- /**
16
- * Clear the schema cache
17
- */
18
- export declare function clearSchemaCache(): void;
19
- /**
20
- * Get provider configuration by ID
21
- */
22
- export declare function getProviderConfig(providerId: ProviderId): ProviderConfig | null;
23
- /**
24
- * Get all available providers
25
- */
26
- export declare function getAllProviders(): ProviderConfig[];
27
- /**
28
- * Get providers with specific capabilities
29
- */
30
- export declare function getProvidersWithCapabilities(required: ProviderCapability[], preferred?: ProviderCapability[]): ProviderConfig[];
31
- /**
32
- * Get recommended providers for a task type
33
- */
34
- export declare function getRecommendedProviders(taskType: TaskTypeId): ProviderConfig[];
35
- /**
36
- * Get task type configuration
37
- */
38
- export declare function getTaskTypeConfig(taskTypeId: TaskTypeId): TaskTypeConfig | null;
39
- /**
40
- * Get all task types
41
- */
42
- export declare function getAllTaskTypes(): TaskTypeConfig[];
43
- /**
44
- * Determine best task type for a given prompt
45
- */
46
- export declare function inferTaskType(prompt: string): TaskTypeId;
47
- /**
48
- * Get tool definition by ID
49
- */
50
- export declare function getToolDefinition(toolId: string): SchemaToolDefinition | null;
51
- /**
52
- * Get all tools in a category
53
- */
54
- export declare function getToolsByCategory(categoryId: string): SchemaToolDefinition[];
55
- /**
56
- * Get tool category configuration
57
- */
58
- export declare function getToolCategory(categoryId: string): ToolCategoryConfig | null;
59
- /**
60
- * Get all enabled tools (including always-enabled categories)
61
- */
62
- export declare function getEnabledTools(enabledCategories?: string[]): SchemaToolDefinition[];
63
- /**
64
- * Check if a tool requires authentication
65
- */
66
- export declare function toolRequiresAuth(toolId: string): boolean;
67
- /**
68
- * Validation error for tool arguments
69
- */
70
- export declare class ToolArgumentValidationError extends Error {
71
- readonly toolName: string;
72
- readonly field: string;
73
- readonly reason: string;
74
- readonly value?: unknown | undefined;
75
- constructor(toolName: string, field: string, reason: string, value?: unknown | undefined);
76
- }
77
- /**
78
- * Validate tool arguments against schema
79
- */
80
- export declare function validateToolArguments(toolName: string, schema: JSONSchemaObject | undefined, args: Record<string, unknown>): void;
81
- /**
82
- * Get schema defaults
83
- */
84
- export declare function getSchemaDefaults(): UnifiedSchema['defaults'];
85
- /**
86
- * Get schema metadata
87
- */
88
- export declare function getSchemaMetadata(): UnifiedSchema['metadata'];
89
- /**
90
- * Get schema version
91
- */
92
- export declare function getSchemaVersion(): string;
93
- /**
94
- * Check if provider supports a capability
95
- */
96
- export declare function providerSupportsCapability(providerId: ProviderId, capability: ProviderCapability): boolean;
97
- /**
98
- * Get best provider for capabilities
99
- */
100
- export declare function selectBestProvider(required: ProviderCapability[], preferred?: ProviderCapability[]): ProviderConfig | null;
101
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/unified/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAEhB,UAAU,EACV,UAAU,EACV,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,UAAQ,GAAG,aAAa,CAkBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,SAAS,GAAE,kBAAkB,EAAO,GACnC,cAAc,EAAE,CAWlB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,cAAc,EAAE,CAW9E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAgDxD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAG7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAG7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAG7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,iBAAiB,GAAE,MAAM,EAAO,GAAG,oBAAoB,EAAE,CASxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQxD;AAMD;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;aAElC,QAAQ,EAAE,MAAM;aAChB,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,MAAM;aACd,KAAK,CAAC,EAAE,OAAO;gBAHf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CA2BN;AAoID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAAC,UAAU,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,CAAC,UAAU,CAAC,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,SAAS,GAAE,kBAAkB,EAAO,GACnC,cAAc,GAAG,IAAI,CAGvB"}
@@ -1,350 +0,0 @@
1
- /**
2
- * Unified Schema Loader and Validator
3
- *
4
- * Provides cached loading of the unified schema and validation utilities.
5
- * Single source of truth for all schema operations.
6
- *
7
- * Principal Investigator: Bo Shang
8
- * Framework: erosolar-cli
9
- */
10
- import { readFileSync } from 'fs';
11
- import { resolve } from 'path';
12
- // ============================================================================
13
- // Schema Cache
14
- // ============================================================================
15
- let _schemaCache = null;
16
- let _schemaCacheTime = 0;
17
- const CACHE_TTL_MS = 60 * 1000; // 1 minute
18
- /**
19
- * Load the unified schema with caching
20
- */
21
- export function loadUnifiedSchema(forceReload = false) {
22
- const now = Date.now();
23
- if (!forceReload && _schemaCache && now - _schemaCacheTime < CACHE_TTL_MS) {
24
- return _schemaCache;
25
- }
26
- // Use process.cwd() relative path or __dirname equivalent
27
- const schemaPath = resolve(process.cwd(), 'src/contracts/unified-schema.json');
28
- try {
29
- const content = readFileSync(schemaPath, 'utf-8');
30
- _schemaCache = JSON.parse(content);
31
- _schemaCacheTime = now;
32
- return _schemaCache;
33
- }
34
- catch (error) {
35
- throw new Error(`Failed to load unified schema: ${error}`);
36
- }
37
- }
38
- /**
39
- * Clear the schema cache
40
- */
41
- export function clearSchemaCache() {
42
- _schemaCache = null;
43
- _schemaCacheTime = 0;
44
- }
45
- // ============================================================================
46
- // Provider Lookups
47
- // ============================================================================
48
- /**
49
- * Get provider configuration by ID
50
- */
51
- export function getProviderConfig(providerId) {
52
- const schema = loadUnifiedSchema();
53
- return schema.providers.find((p) => p.id === providerId) || null;
54
- }
55
- /**
56
- * Get all available providers
57
- */
58
- export function getAllProviders() {
59
- return loadUnifiedSchema().providers;
60
- }
61
- /**
62
- * Get providers with specific capabilities
63
- */
64
- export function getProvidersWithCapabilities(required, preferred = []) {
65
- const schema = loadUnifiedSchema();
66
- return schema.providers
67
- .filter((p) => required.every((cap) => p.capabilities.includes(cap)))
68
- .sort((a, b) => {
69
- // Sort by number of preferred capabilities matched
70
- const aPreferred = preferred.filter((cap) => a.capabilities.includes(cap)).length;
71
- const bPreferred = preferred.filter((cap) => b.capabilities.includes(cap)).length;
72
- return bPreferred - aPreferred;
73
- });
74
- }
75
- /**
76
- * Get recommended providers for a task type
77
- */
78
- export function getRecommendedProviders(taskType) {
79
- const schema = loadUnifiedSchema();
80
- const taskConfig = schema.taskTypes.find((t) => t.id === taskType);
81
- if (!taskConfig) {
82
- return [];
83
- }
84
- return taskConfig.recommendedProviders
85
- .map((id) => schema.providers.find((p) => p.id === id))
86
- .filter((p) => p !== undefined);
87
- }
88
- // ============================================================================
89
- // Task Type Lookups
90
- // ============================================================================
91
- /**
92
- * Get task type configuration
93
- */
94
- export function getTaskTypeConfig(taskTypeId) {
95
- const schema = loadUnifiedSchema();
96
- return schema.taskTypes.find((t) => t.id === taskTypeId) || null;
97
- }
98
- /**
99
- * Get all task types
100
- */
101
- export function getAllTaskTypes() {
102
- return loadUnifiedSchema().taskTypes;
103
- }
104
- /**
105
- * Determine best task type for a given prompt
106
- */
107
- export function inferTaskType(prompt) {
108
- const promptLower = prompt.toLowerCase();
109
- // Simple heuristics for task type inference
110
- if (promptLower.includes('security') ||
111
- promptLower.includes('vulnerability') ||
112
- promptLower.includes('audit')) {
113
- return 'security';
114
- }
115
- if (promptLower.includes('test') || promptLower.includes('spec')) {
116
- return 'testing';
117
- }
118
- if (promptLower.includes('document') || promptLower.includes('readme')) {
119
- return 'documentation';
120
- }
121
- if (promptLower.includes('search') || promptLower.includes('find information')) {
122
- return 'research';
123
- }
124
- if (promptLower.includes('image') || promptLower.includes('screenshot')) {
125
- return 'multimodal';
126
- }
127
- if (promptLower.includes('analyze') ||
128
- promptLower.includes('review') ||
129
- promptLower.includes('complexity')) {
130
- return 'analysis';
131
- }
132
- if (promptLower.includes('think') ||
133
- promptLower.includes('reason') ||
134
- promptLower.includes('plan')) {
135
- return 'reasoning';
136
- }
137
- if (promptLower.includes('code') ||
138
- promptLower.includes('function') ||
139
- promptLower.includes('implement') ||
140
- promptLower.includes('fix') ||
141
- promptLower.includes('refactor')) {
142
- return 'coding';
143
- }
144
- return 'chat';
145
- }
146
- // ============================================================================
147
- // Tool Lookups
148
- // ============================================================================
149
- /**
150
- * Get tool definition by ID
151
- */
152
- export function getToolDefinition(toolId) {
153
- const schema = loadUnifiedSchema();
154
- return schema.tools.find((t) => t.id === toolId) || null;
155
- }
156
- /**
157
- * Get all tools in a category
158
- */
159
- export function getToolsByCategory(categoryId) {
160
- const schema = loadUnifiedSchema();
161
- return schema.tools.filter((t) => t.category === categoryId);
162
- }
163
- /**
164
- * Get tool category configuration
165
- */
166
- export function getToolCategory(categoryId) {
167
- const schema = loadUnifiedSchema();
168
- return schema.toolCategories.find((c) => c.id === categoryId) || null;
169
- }
170
- /**
171
- * Get all enabled tools (including always-enabled categories)
172
- */
173
- export function getEnabledTools(enabledCategories = []) {
174
- const schema = loadUnifiedSchema();
175
- const enabledCategoryIds = new Set([
176
- ...schema.toolCategories.filter((c) => c.alwaysEnabled).map((c) => c.id),
177
- ...enabledCategories,
178
- ]);
179
- return schema.tools.filter((t) => enabledCategoryIds.has(t.category));
180
- }
181
- /**
182
- * Check if a tool requires authentication
183
- */
184
- export function toolRequiresAuth(toolId) {
185
- const tool = getToolDefinition(toolId);
186
- if (!tool)
187
- return false;
188
- if (tool.requiresAuth)
189
- return true;
190
- const category = getToolCategory(tool.category);
191
- return category?.requiresAuth ?? false;
192
- }
193
- // ============================================================================
194
- // Schema Validation
195
- // ============================================================================
196
- /**
197
- * Validation error for tool arguments
198
- */
199
- export class ToolArgumentValidationError extends Error {
200
- toolName;
201
- field;
202
- reason;
203
- value;
204
- constructor(toolName, field, reason, value) {
205
- super(`Tool ${toolName}: ${field} - ${reason}`);
206
- this.toolName = toolName;
207
- this.field = field;
208
- this.reason = reason;
209
- this.value = value;
210
- this.name = 'ToolArgumentValidationError';
211
- }
212
- }
213
- /**
214
- * Validate tool arguments against schema
215
- */
216
- export function validateToolArguments(toolName, schema, args) {
217
- if (!schema)
218
- return;
219
- // Check required fields
220
- if (schema.required) {
221
- for (const field of schema.required) {
222
- if (!(field in args) || args[field] === undefined || args[field] === null) {
223
- throw new ToolArgumentValidationError(toolName, field, 'Required field is missing');
224
- }
225
- }
226
- }
227
- // Validate each property
228
- if (schema.properties) {
229
- for (const [field, value] of Object.entries(args)) {
230
- const propSchema = schema.properties[field];
231
- if (!propSchema) {
232
- if (schema.additionalProperties === false) {
233
- throw new ToolArgumentValidationError(toolName, field, 'Unknown field');
234
- }
235
- continue;
236
- }
237
- validateProperty(toolName, field, propSchema, value);
238
- }
239
- }
240
- }
241
- /**
242
- * Validate a single property
243
- */
244
- function validateProperty(toolName, field, schema, value) {
245
- if (value === undefined || value === null) {
246
- return; // Required check is done separately
247
- }
248
- const types = Array.isArray(schema.type) ? schema.type : [schema.type];
249
- // Type checking
250
- const actualType = getValueType(value);
251
- if (!types.includes(actualType)) {
252
- throw new ToolArgumentValidationError(toolName, field, `Expected ${types.join(' | ')}, got ${actualType}`, value);
253
- }
254
- // Enum validation
255
- if (schema.enum && !schema.enum.includes(value)) {
256
- throw new ToolArgumentValidationError(toolName, field, `Value must be one of: ${schema.enum.join(', ')}`, value);
257
- }
258
- // String validations
259
- if (actualType === 'string') {
260
- const strValue = value;
261
- if (schema.minLength !== undefined && strValue.length < schema.minLength) {
262
- throw new ToolArgumentValidationError(toolName, field, `String length must be at least ${schema.minLength}`, value);
263
- }
264
- if (schema.maxLength !== undefined && strValue.length > schema.maxLength) {
265
- throw new ToolArgumentValidationError(toolName, field, `String length must be at most ${schema.maxLength}`, value);
266
- }
267
- if (schema.pattern) {
268
- const regex = new RegExp(schema.pattern);
269
- if (!regex.test(strValue)) {
270
- throw new ToolArgumentValidationError(toolName, field, `String must match pattern: ${schema.pattern}`, value);
271
- }
272
- }
273
- }
274
- // Number validations
275
- if (actualType === 'number' || actualType === 'integer') {
276
- const numValue = value;
277
- if (schema.minimum !== undefined && numValue < schema.minimum) {
278
- throw new ToolArgumentValidationError(toolName, field, `Value must be at least ${schema.minimum}`, value);
279
- }
280
- if (schema.maximum !== undefined && numValue > schema.maximum) {
281
- throw new ToolArgumentValidationError(toolName, field, `Value must be at most ${schema.maximum}`, value);
282
- }
283
- }
284
- // Array validations
285
- if (actualType === 'array' && schema.items) {
286
- const arrValue = value;
287
- for (let i = 0; i < arrValue.length; i++) {
288
- validateProperty(toolName, `${field}[${i}]`, schema.items, arrValue[i]);
289
- }
290
- }
291
- // Object validations
292
- if (actualType === 'object' && schema.properties) {
293
- const objValue = value;
294
- for (const [key, val] of Object.entries(objValue)) {
295
- const propSchema = schema.properties[key];
296
- if (propSchema) {
297
- validateProperty(toolName, `${field}.${key}`, propSchema, val);
298
- }
299
- }
300
- }
301
- }
302
- /**
303
- * Get the JSON Schema type of a value
304
- */
305
- function getValueType(value) {
306
- if (value === null)
307
- return 'null';
308
- if (Array.isArray(value))
309
- return 'array';
310
- if (typeof value === 'number') {
311
- return Number.isInteger(value) ? 'integer' : 'number';
312
- }
313
- return typeof value;
314
- }
315
- // ============================================================================
316
- // Schema Utilities
317
- // ============================================================================
318
- /**
319
- * Get schema defaults
320
- */
321
- export function getSchemaDefaults() {
322
- return loadUnifiedSchema().defaults;
323
- }
324
- /**
325
- * Get schema metadata
326
- */
327
- export function getSchemaMetadata() {
328
- return loadUnifiedSchema().metadata;
329
- }
330
- /**
331
- * Get schema version
332
- */
333
- export function getSchemaVersion() {
334
- return loadUnifiedSchema().contractVersion;
335
- }
336
- /**
337
- * Check if provider supports a capability
338
- */
339
- export function providerSupportsCapability(providerId, capability) {
340
- const provider = getProviderConfig(providerId);
341
- return provider?.capabilities.includes(capability) ?? false;
342
- }
343
- /**
344
- * Get best provider for capabilities
345
- */
346
- export function selectBestProvider(required, preferred = []) {
347
- const providers = getProvidersWithCapabilities(required, preferred);
348
- return providers[0] || null;
349
- }
350
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/unified/schema.ts"],"names":[],"mappings":"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"}
@@ -1,179 +0,0 @@
1
- /**
2
- * Unified Tool Runtime
3
- *
4
- * Core tool execution engine with caching, validation, and lifecycle management.
5
- * Combines the best features from both TypeScript and Python implementations.
6
- *
7
- * Principal Investigator: Bo Shang
8
- * Framework: erosolar-cli
9
- */
10
- import type { ToolDefinition, ToolSuite, ToolRecord, ToolCallRequest, ToolCallResult, ProviderToolDefinition } from './types.js';
11
- import { ToolArgumentValidationError } from './schema.js';
12
- import { validateToolPreconditions, type PreflightWarning } from '../toolPreconditions.js';
13
- /**
14
- * Tools that can be safely cached based on their arguments
15
- */
16
- export declare const CACHEABLE_TOOLS: Set<string>;
17
- export interface ToolRuntimeConfig {
18
- enableCache: boolean;
19
- cacheTtlMs: number;
20
- maxCacheSize: number;
21
- defaultTimeoutMs: number;
22
- networkTimeoutMs: number;
23
- maxOutputLength: number;
24
- verbose: boolean;
25
- }
26
- export interface CacheEntry {
27
- output: string;
28
- timestamp: number;
29
- ttl: number;
30
- hitCount: number;
31
- }
32
- /**
33
- * Observer interface for tool lifecycle events
34
- */
35
- export interface ToolRuntimeObserver {
36
- onToolStart?(call: ToolCallRequest): void;
37
- onToolResult?(call: ToolCallRequest, result: ToolCallResult): void;
38
- onToolError?(call: ToolCallRequest, error: Error): void;
39
- onToolWarning?(call: ToolCallRequest, warning: PreflightWarning | string): void;
40
- onCacheHit?(call: ToolCallRequest, entry: CacheEntry): void;
41
- onCacheMiss?(call: ToolCallRequest): void;
42
- onValidationError?(call: ToolCallRequest, error: ToolArgumentValidationError): void;
43
- }
44
- /**
45
- * Unified Tool Runtime
46
- *
47
- * Manages tool registration, execution, caching, and validation.
48
- */
49
- export declare class ToolRuntime {
50
- private registry;
51
- private cache;
52
- private config;
53
- private observers;
54
- private executionStats;
55
- constructor(config?: Partial<ToolRuntimeConfig>);
56
- /**
57
- * Register a tool suite
58
- */
59
- registerSuite(suite: ToolSuite): void;
60
- /**
61
- * Register a single tool
62
- */
63
- registerTool(tool: ToolDefinition, suiteName?: string): void;
64
- /**
65
- * Unregister a tool
66
- */
67
- unregisterTool(name: string): boolean;
68
- /**
69
- * Get a tool by name
70
- */
71
- getTool(name: string): ToolRecord | undefined;
72
- /**
73
- * Check if a tool exists
74
- */
75
- hasTool(name: string): boolean;
76
- /**
77
- * Enable or disable a tool
78
- */
79
- setToolEnabled(name: string, enabled: boolean): boolean;
80
- /**
81
- * Execute a tool call
82
- */
83
- execute(call: ToolCallRequest): Promise<ToolCallResult>;
84
- /**
85
- * Execute with timeout
86
- */
87
- private executeWithTimeout;
88
- /**
89
- * Create an error result
90
- */
91
- private createErrorResult;
92
- /**
93
- * Check if a tool's results can be cached
94
- */
95
- private isCacheable;
96
- /**
97
- * Generate cache key for a tool call
98
- */
99
- private getCacheKey;
100
- /**
101
- * Check if a cache entry has expired
102
- */
103
- private isCacheExpired;
104
- /**
105
- * Cache a result
106
- */
107
- private cacheResult;
108
- /**
109
- * Evict oldest cache entries
110
- */
111
- private evictOldestCacheEntries;
112
- /**
113
- * Clear all cache entries
114
- */
115
- clearCache(): void;
116
- /**
117
- * Clear expired cache entries
118
- */
119
- clearExpiredCache(): number;
120
- /**
121
- * Truncate output if too long
122
- *
123
- * PERF: Uses efficient slicing - O(1) for length check, O(n) for truncation only when needed.
124
- * Binary search not applicable here as we need character boundaries, not search.
125
- */
126
- private truncateOutput;
127
- /**
128
- * Add an observer
129
- */
130
- addObserver(observer: ToolRuntimeObserver): void;
131
- /**
132
- * Remove an observer
133
- */
134
- removeObserver(observer: ToolRuntimeObserver): boolean;
135
- /**
136
- * Notify observers of an event
137
- */
138
- private notifyObservers;
139
- /**
140
- * Get tools in provider format
141
- */
142
- listProviderTools(): ProviderToolDefinition[];
143
- /**
144
- * Get tools for a specific category
145
- */
146
- getToolsByCategory(category: string): ToolRecord[];
147
- /**
148
- * Get execution statistics
149
- */
150
- getStats(): {
151
- totalCalls: number;
152
- cacheHits: number;
153
- cacheHitRate: number;
154
- errors: number;
155
- errorRate: number;
156
- avgExecutionTimeMs: number;
157
- registeredTools: number;
158
- cacheSize: number;
159
- };
160
- /**
161
- * Reset statistics
162
- */
163
- resetStats(): void;
164
- /**
165
- * Get tool execution counts
166
- */
167
- getToolExecutionCounts(): Map<string, number>;
168
- }
169
- /**
170
- * Create a tool runtime with default configuration
171
- */
172
- export declare function createToolRuntime(config?: Partial<ToolRuntimeConfig>): ToolRuntime;
173
- /**
174
- * Create a tool suite from definitions
175
- */
176
- export declare function createToolSuite(name: string, version: string, tools: ToolDefinition[], description?: string): ToolSuite;
177
- export { validateToolPreconditions };
178
- export type { PreflightWarning };
179
- //# sourceMappingURL=toolRuntime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolRuntime.d.ts","sourceRoot":"","sources":["../../../src/core/unified/toolRuntime.ts"],"names":[],"mappings":"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"}