@nexus-cortex/core 4.26.0
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/LICENSE +202 -0
- package/NOTICE +2 -0
- package/README.md +13 -0
- package/dist/adapters/AdapterRegistry.d.ts +118 -0
- package/dist/adapters/AdapterRegistry.d.ts.map +1 -0
- package/dist/adapters/AdapterRegistry.js +195 -0
- package/dist/adapters/AdapterRegistry.js.map +1 -0
- package/dist/adapters/ChatCompletionsAPIAdapter.d.ts +254 -0
- package/dist/adapters/ChatCompletionsAPIAdapter.d.ts.map +1 -0
- package/dist/adapters/ChatCompletionsAPIAdapter.js +531 -0
- package/dist/adapters/ChatCompletionsAPIAdapter.js.map +1 -0
- package/dist/adapters/FormatAdapter.interface.d.ts +66 -0
- package/dist/adapters/FormatAdapter.interface.d.ts.map +1 -0
- package/dist/adapters/FormatAdapter.interface.js +89 -0
- package/dist/adapters/FormatAdapter.interface.js.map +1 -0
- package/dist/adapters/GatewayTranslationLayer.d.ts +222 -0
- package/dist/adapters/GatewayTranslationLayer.d.ts.map +1 -0
- package/dist/adapters/GatewayTranslationLayer.js +679 -0
- package/dist/adapters/GatewayTranslationLayer.js.map +1 -0
- package/dist/adapters/GenerateContentAPIAdapter.d.ts +240 -0
- package/dist/adapters/GenerateContentAPIAdapter.d.ts.map +1 -0
- package/dist/adapters/GenerateContentAPIAdapter.js +489 -0
- package/dist/adapters/GenerateContentAPIAdapter.js.map +1 -0
- package/dist/adapters/GoogleGenAPIAdapter.d.ts +217 -0
- package/dist/adapters/GoogleGenAPIAdapter.d.ts.map +1 -0
- package/dist/adapters/GoogleGenAPIAdapter.js +310 -0
- package/dist/adapters/GoogleGenAPIAdapter.js.map +1 -0
- package/dist/adapters/MessagesAPIAdapter.d.ts +280 -0
- package/dist/adapters/MessagesAPIAdapter.d.ts.map +1 -0
- package/dist/adapters/MessagesAPIAdapter.js +586 -0
- package/dist/adapters/MessagesAPIAdapter.js.map +1 -0
- package/dist/adapters/ResponsesAPIAdapter.d.ts +323 -0
- package/dist/adapters/ResponsesAPIAdapter.d.ts.map +1 -0
- package/dist/adapters/ResponsesAPIAdapter.js +584 -0
- package/dist/adapters/ResponsesAPIAdapter.js.map +1 -0
- package/dist/adapters/ServerSideToolDetection.d.ts +105 -0
- package/dist/adapters/ServerSideToolDetection.d.ts.map +1 -0
- package/dist/adapters/ServerSideToolDetection.js +249 -0
- package/dist/adapters/ServerSideToolDetection.js.map +1 -0
- package/dist/adapters/ToolNamingHandler.d.ts +129 -0
- package/dist/adapters/ToolNamingHandler.d.ts.map +1 -0
- package/dist/adapters/ToolNamingHandler.js +227 -0
- package/dist/adapters/ToolNamingHandler.js.map +1 -0
- package/dist/adapters/index.d.ts +19 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/node/NodeConfigProvider.d.ts +19 -0
- package/dist/adapters/node/NodeConfigProvider.d.ts.map +1 -0
- package/dist/adapters/node/NodeConfigProvider.js +37 -0
- package/dist/adapters/node/NodeConfigProvider.js.map +1 -0
- package/dist/adapters/node/NodeHistoryStoreAdapter.d.ts +26 -0
- package/dist/adapters/node/NodeHistoryStoreAdapter.d.ts.map +1 -0
- package/dist/adapters/node/NodeHistoryStoreAdapter.js +61 -0
- package/dist/adapters/node/NodeHistoryStoreAdapter.js.map +1 -0
- package/dist/adapters/node/NodePermissionAdapter.d.ts +21 -0
- package/dist/adapters/node/NodePermissionAdapter.d.ts.map +1 -0
- package/dist/adapters/node/NodePermissionAdapter.js +39 -0
- package/dist/adapters/node/NodePermissionAdapter.js.map +1 -0
- package/dist/adapters/node/NodeToolExecutorAdapter.d.ts +22 -0
- package/dist/adapters/node/NodeToolExecutorAdapter.d.ts.map +1 -0
- package/dist/adapters/node/NodeToolExecutorAdapter.js +33 -0
- package/dist/adapters/node/NodeToolExecutorAdapter.js.map +1 -0
- package/dist/adapters/node/index.d.ts +18 -0
- package/dist/adapters/node/index.d.ts.map +1 -0
- package/dist/adapters/node/index.js +18 -0
- package/dist/adapters/node/index.js.map +1 -0
- package/dist/agents/AgentStore.d.ts +172 -0
- package/dist/agents/AgentStore.d.ts.map +1 -0
- package/dist/agents/AgentStore.js +649 -0
- package/dist/agents/AgentStore.js.map +1 -0
- package/dist/agents/index.d.ts +9 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +8 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/projectRoot.d.ts +2 -0
- package/dist/agents/projectRoot.d.ts.map +1 -0
- package/dist/agents/projectRoot.js +37 -0
- package/dist/agents/projectRoot.js.map +1 -0
- package/dist/commands/SlashCommandCompleter.d.ts +116 -0
- package/dist/commands/SlashCommandCompleter.d.ts.map +1 -0
- package/dist/commands/SlashCommandCompleter.js +321 -0
- package/dist/commands/SlashCommandCompleter.js.map +1 -0
- package/dist/commands/SlashCommandParser.d.ts +139 -0
- package/dist/commands/SlashCommandParser.d.ts.map +1 -0
- package/dist/commands/SlashCommandParser.js +338 -0
- package/dist/commands/SlashCommandParser.js.map +1 -0
- package/dist/commands/SlashCommandRegistry.d.ts +92 -0
- package/dist/commands/SlashCommandRegistry.d.ts.map +1 -0
- package/dist/commands/SlashCommandRegistry.js +983 -0
- package/dist/commands/SlashCommandRegistry.js.map +1 -0
- package/dist/commands/index.d.ts +13 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/types.d.ts +154 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +10 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/config/AnthropicCredentialService.d.ts +107 -0
- package/dist/config/AnthropicCredentialService.d.ts.map +1 -0
- package/dist/config/AnthropicCredentialService.js +209 -0
- package/dist/config/AnthropicCredentialService.js.map +1 -0
- package/dist/config/InteractiveConfigurator.d.ts +26 -0
- package/dist/config/InteractiveConfigurator.d.ts.map +1 -0
- package/dist/config/InteractiveConfigurator.js +330 -0
- package/dist/config/InteractiveConfigurator.js.map +1 -0
- package/dist/config/MentorshipConfigService.d.ts +90 -0
- package/dist/config/MentorshipConfigService.d.ts.map +1 -0
- package/dist/config/MentorshipConfigService.js +318 -0
- package/dist/config/MentorshipConfigService.js.map +1 -0
- package/dist/config/RuntimeConfigRegistry.d.ts +20 -0
- package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -0
- package/dist/config/RuntimeConfigRegistry.js +57 -0
- package/dist/config/RuntimeConfigRegistry.js.map +1 -0
- package/dist/config/SettingsLoader.d.ts +128 -0
- package/dist/config/SettingsLoader.d.ts.map +1 -0
- package/dist/config/SettingsLoader.js +487 -0
- package/dist/config/SettingsLoader.js.map +1 -0
- package/dist/config/SettingsSchema.d.ts +219 -0
- package/dist/config/SettingsSchema.d.ts.map +1 -0
- package/dist/config/SettingsSchema.js +855 -0
- package/dist/config/SettingsSchema.js.map +1 -0
- package/dist/config/SettingsWriter.d.ts +83 -0
- package/dist/config/SettingsWriter.d.ts.map +1 -0
- package/dist/config/SettingsWriter.js +256 -0
- package/dist/config/SettingsWriter.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +13 -0
- package/dist/config/index.js.map +1 -0
- package/dist/conversation/ContextBudgetManager.d.ts +172 -0
- package/dist/conversation/ContextBudgetManager.d.ts.map +1 -0
- package/dist/conversation/ContextBudgetManager.js +445 -0
- package/dist/conversation/ContextBudgetManager.js.map +1 -0
- package/dist/conversation/StoredCompactionManager.d.ts +208 -0
- package/dist/conversation/StoredCompactionManager.d.ts.map +1 -0
- package/dist/conversation/StoredCompactionManager.js +314 -0
- package/dist/conversation/StoredCompactionManager.js.map +1 -0
- package/dist/conversation/SummaryTemplates.d.ts +35 -0
- package/dist/conversation/SummaryTemplates.d.ts.map +1 -0
- package/dist/conversation/SummaryTemplates.js +174 -0
- package/dist/conversation/SummaryTemplates.js.map +1 -0
- package/dist/conversation/index.d.ts +8 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +8 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/file-tracking/ContentAddressableStore.d.ts +86 -0
- package/dist/file-tracking/ContentAddressableStore.d.ts.map +1 -0
- package/dist/file-tracking/ContentAddressableStore.js +187 -0
- package/dist/file-tracking/ContentAddressableStore.js.map +1 -0
- package/dist/file-tracking/FileCheckpointManager.d.ts +103 -0
- package/dist/file-tracking/FileCheckpointManager.d.ts.map +1 -0
- package/dist/file-tracking/FileCheckpointManager.js +269 -0
- package/dist/file-tracking/FileCheckpointManager.js.map +1 -0
- package/dist/file-tracking/index.d.ts +7 -0
- package/dist/file-tracking/index.d.ts.map +1 -0
- package/dist/file-tracking/index.js +7 -0
- package/dist/file-tracking/index.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/APITransport.d.ts +120 -0
- package/dist/interfaces/APITransport.d.ts.map +1 -0
- package/dist/interfaces/APITransport.js +14 -0
- package/dist/interfaces/APITransport.js.map +1 -0
- package/dist/interfaces/ConfigProvider.d.ts +52 -0
- package/dist/interfaces/ConfigProvider.d.ts.map +1 -0
- package/dist/interfaces/ConfigProvider.js +14 -0
- package/dist/interfaces/ConfigProvider.js.map +1 -0
- package/dist/interfaces/CredentialResolver.d.ts +57 -0
- package/dist/interfaces/CredentialResolver.d.ts.map +1 -0
- package/dist/interfaces/CredentialResolver.js +13 -0
- package/dist/interfaces/CredentialResolver.js.map +1 -0
- package/dist/interfaces/HistoryStore.d.ts +108 -0
- package/dist/interfaces/HistoryStore.d.ts.map +1 -0
- package/dist/interfaces/HistoryStore.js +14 -0
- package/dist/interfaces/HistoryStore.js.map +1 -0
- package/dist/interfaces/PermissionHandler.d.ts +74 -0
- package/dist/interfaces/PermissionHandler.d.ts.map +1 -0
- package/dist/interfaces/PermissionHandler.js +13 -0
- package/dist/interfaces/PermissionHandler.js.map +1 -0
- package/dist/interfaces/ToolExecutorRegistry.d.ts +126 -0
- package/dist/interfaces/ToolExecutorRegistry.d.ts.map +1 -0
- package/dist/interfaces/ToolExecutorRegistry.js +14 -0
- package/dist/interfaces/ToolExecutorRegistry.js.map +1 -0
- package/dist/interfaces/index.d.ts +19 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +14 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/mcp/McpClient.d.ts +142 -0
- package/dist/mcp/McpClient.d.ts.map +1 -0
- package/dist/mcp/McpClient.js +349 -0
- package/dist/mcp/McpClient.js.map +1 -0
- package/dist/mcp/McpClientManager.d.ts +148 -0
- package/dist/mcp/McpClientManager.d.ts.map +1 -0
- package/dist/mcp/McpClientManager.js +366 -0
- package/dist/mcp/McpClientManager.js.map +1 -0
- package/dist/mcp/McpConfigManager.d.ts +125 -0
- package/dist/mcp/McpConfigManager.d.ts.map +1 -0
- package/dist/mcp/McpConfigManager.js +448 -0
- package/dist/mcp/McpConfigManager.js.map +1 -0
- package/dist/mcp/McpServerRegistry.d.ts +102 -0
- package/dist/mcp/McpServerRegistry.d.ts.map +1 -0
- package/dist/mcp/McpServerRegistry.js +281 -0
- package/dist/mcp/McpServerRegistry.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +9 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcpToolNamespacing.d.ts +26 -0
- package/dist/mcp/mcpToolNamespacing.d.ts.map +1 -0
- package/dist/mcp/mcpToolNamespacing.js +36 -0
- package/dist/mcp/mcpToolNamespacing.js.map +1 -0
- package/dist/mcp/test-mcp-integration.d.ts +8 -0
- package/dist/mcp/test-mcp-integration.d.ts.map +1 -0
- package/dist/mcp/test-mcp-integration.js +115 -0
- package/dist/mcp/test-mcp-integration.js.map +1 -0
- package/dist/middleware/ErrorClassificationMiddleware.d.ts +116 -0
- package/dist/middleware/ErrorClassificationMiddleware.d.ts.map +1 -0
- package/dist/middleware/ErrorClassificationMiddleware.js +225 -0
- package/dist/middleware/ErrorClassificationMiddleware.js.map +1 -0
- package/dist/middleware/HelperModelMiddleware.d.ts +337 -0
- package/dist/middleware/HelperModelMiddleware.d.ts.map +1 -0
- package/dist/middleware/HelperModelMiddleware.js +1376 -0
- package/dist/middleware/HelperModelMiddleware.js.map +1 -0
- package/dist/middleware/MentorshipMiddleware.d.ts +210 -0
- package/dist/middleware/MentorshipMiddleware.d.ts.map +1 -0
- package/dist/middleware/MentorshipMiddleware.js +427 -0
- package/dist/middleware/MentorshipMiddleware.js.map +1 -0
- package/dist/middleware/PermissionsMiddleware.d.ts +193 -0
- package/dist/middleware/PermissionsMiddleware.d.ts.map +1 -0
- package/dist/middleware/PermissionsMiddleware.js +344 -0
- package/dist/middleware/PermissionsMiddleware.js.map +1 -0
- package/dist/middleware/RetryMiddleware.d.ts +159 -0
- package/dist/middleware/RetryMiddleware.d.ts.map +1 -0
- package/dist/middleware/RetryMiddleware.js +268 -0
- package/dist/middleware/RetryMiddleware.js.map +1 -0
- package/dist/middleware/SystemMessageMiddleware.d.ts +165 -0
- package/dist/middleware/SystemMessageMiddleware.d.ts.map +1 -0
- package/dist/middleware/SystemMessageMiddleware.js +354 -0
- package/dist/middleware/SystemMessageMiddleware.js.map +1 -0
- package/dist/middleware/contracts/MiddlewareContracts.d.ts +294 -0
- package/dist/middleware/contracts/MiddlewareContracts.d.ts.map +1 -0
- package/dist/middleware/contracts/MiddlewareContracts.js +12 -0
- package/dist/middleware/contracts/MiddlewareContracts.js.map +1 -0
- package/dist/middleware/helpers/HelperMiddlewareAdapter.interface.d.ts +211 -0
- package/dist/middleware/helpers/HelperMiddlewareAdapter.interface.d.ts.map +1 -0
- package/dist/middleware/helpers/HelperMiddlewareAdapter.interface.js +211 -0
- package/dist/middleware/helpers/HelperMiddlewareAdapter.interface.js.map +1 -0
- package/dist/middleware/helpers/HelperModelMiddlewareRegistry.d.ts +106 -0
- package/dist/middleware/helpers/HelperModelMiddlewareRegistry.d.ts.map +1 -0
- package/dist/middleware/helpers/HelperModelMiddlewareRegistry.js +148 -0
- package/dist/middleware/helpers/HelperModelMiddlewareRegistry.js.map +1 -0
- package/dist/middleware/helpers/adapters/ChatCompletionsAPIHelperAdapter.d.ts +76 -0
- package/dist/middleware/helpers/adapters/ChatCompletionsAPIHelperAdapter.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/ChatCompletionsAPIHelperAdapter.js +277 -0
- package/dist/middleware/helpers/adapters/ChatCompletionsAPIHelperAdapter.js.map +1 -0
- package/dist/middleware/helpers/adapters/GenerateContentAPIHelperAdapter.d.ts +57 -0
- package/dist/middleware/helpers/adapters/GenerateContentAPIHelperAdapter.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/GenerateContentAPIHelperAdapter.js +155 -0
- package/dist/middleware/helpers/adapters/GenerateContentAPIHelperAdapter.js.map +1 -0
- package/dist/middleware/helpers/adapters/GoogleGenAPIHelperAdapter.d.ts +124 -0
- package/dist/middleware/helpers/adapters/GoogleGenAPIHelperAdapter.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/GoogleGenAPIHelperAdapter.js +276 -0
- package/dist/middleware/helpers/adapters/GoogleGenAPIHelperAdapter.js.map +1 -0
- package/dist/middleware/helpers/adapters/MessagesAPIHelperAdapter.d.ts +71 -0
- package/dist/middleware/helpers/adapters/MessagesAPIHelperAdapter.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/MessagesAPIHelperAdapter.js +264 -0
- package/dist/middleware/helpers/adapters/MessagesAPIHelperAdapter.js.map +1 -0
- package/dist/middleware/helpers/adapters/ResponsesAPIHelperAdapter.d.ts +64 -0
- package/dist/middleware/helpers/adapters/ResponsesAPIHelperAdapter.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/ResponsesAPIHelperAdapter.js +189 -0
- package/dist/middleware/helpers/adapters/ResponsesAPIHelperAdapter.js.map +1 -0
- package/dist/middleware/helpers/adapters/index.d.ts +31 -0
- package/dist/middleware/helpers/adapters/index.d.ts.map +1 -0
- package/dist/middleware/helpers/adapters/index.js +40 -0
- package/dist/middleware/helpers/adapters/index.js.map +1 -0
- package/dist/middleware/helpers/index.d.ts +10 -0
- package/dist/middleware/helpers/index.d.ts.map +1 -0
- package/dist/middleware/helpers/index.js +13 -0
- package/dist/middleware/helpers/index.js.map +1 -0
- package/dist/middleware/index.d.ts +12 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +13 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/permissions/ApprovalHandler.d.ts +22 -0
- package/dist/middleware/permissions/ApprovalHandler.d.ts.map +1 -0
- package/dist/middleware/permissions/ApprovalHandler.js +27 -0
- package/dist/middleware/permissions/ApprovalHandler.js.map +1 -0
- package/dist/middleware/permissions/AutoApproveHandler.d.ts +62 -0
- package/dist/middleware/permissions/AutoApproveHandler.d.ts.map +1 -0
- package/dist/middleware/permissions/AutoApproveHandler.js +68 -0
- package/dist/middleware/permissions/AutoApproveHandler.js.map +1 -0
- package/dist/middleware/permissions/BashCommandPolicy.d.ts +134 -0
- package/dist/middleware/permissions/BashCommandPolicy.d.ts.map +1 -0
- package/dist/middleware/permissions/BashCommandPolicy.js +239 -0
- package/dist/middleware/permissions/BashCommandPolicy.js.map +1 -0
- package/dist/middleware/permissions/BlacklistPolicy.d.ts +66 -0
- package/dist/middleware/permissions/BlacklistPolicy.d.ts.map +1 -0
- package/dist/middleware/permissions/BlacklistPolicy.js +82 -0
- package/dist/middleware/permissions/BlacklistPolicy.js.map +1 -0
- package/dist/middleware/permissions/CLIApprovalHandler.d.ts +124 -0
- package/dist/middleware/permissions/CLIApprovalHandler.d.ts.map +1 -0
- package/dist/middleware/permissions/CLIApprovalHandler.js +366 -0
- package/dist/middleware/permissions/CLIApprovalHandler.js.map +1 -0
- package/dist/middleware/permissions/DefaultPolicies.d.ts +53 -0
- package/dist/middleware/permissions/DefaultPolicies.d.ts.map +1 -0
- package/dist/middleware/permissions/DefaultPolicies.js +307 -0
- package/dist/middleware/permissions/DefaultPolicies.js.map +1 -0
- package/dist/middleware/permissions/DenyAllHandler.d.ts +58 -0
- package/dist/middleware/permissions/DenyAllHandler.d.ts.map +1 -0
- package/dist/middleware/permissions/DenyAllHandler.js +59 -0
- package/dist/middleware/permissions/DenyAllHandler.js.map +1 -0
- package/dist/middleware/permissions/FileOperationPolicy.d.ts +117 -0
- package/dist/middleware/permissions/FileOperationPolicy.d.ts.map +1 -0
- package/dist/middleware/permissions/FileOperationPolicy.js +222 -0
- package/dist/middleware/permissions/FileOperationPolicy.js.map +1 -0
- package/dist/middleware/permissions/IPCApprovalHandler.d.ts +94 -0
- package/dist/middleware/permissions/IPCApprovalHandler.d.ts.map +1 -0
- package/dist/middleware/permissions/IPCApprovalHandler.js +178 -0
- package/dist/middleware/permissions/IPCApprovalHandler.js.map +1 -0
- package/dist/middleware/permissions/PermissionAuditLogger.d.ts +169 -0
- package/dist/middleware/permissions/PermissionAuditLogger.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionAuditLogger.js +267 -0
- package/dist/middleware/permissions/PermissionAuditLogger.js.map +1 -0
- package/dist/middleware/permissions/PermissionConfig.d.ts +181 -0
- package/dist/middleware/permissions/PermissionConfig.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionConfig.js +110 -0
- package/dist/middleware/permissions/PermissionConfig.js.map +1 -0
- package/dist/middleware/permissions/PermissionConfigLoader.d.ts +89 -0
- package/dist/middleware/permissions/PermissionConfigLoader.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionConfigLoader.js +296 -0
- package/dist/middleware/permissions/PermissionConfigLoader.js.map +1 -0
- package/dist/middleware/permissions/PermissionEvaluator.d.ts +111 -0
- package/dist/middleware/permissions/PermissionEvaluator.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionEvaluator.js +196 -0
- package/dist/middleware/permissions/PermissionEvaluator.js.map +1 -0
- package/dist/middleware/permissions/PermissionPolicy.d.ts +59 -0
- package/dist/middleware/permissions/PermissionPolicy.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionPolicy.js +67 -0
- package/dist/middleware/permissions/PermissionPolicy.js.map +1 -0
- package/dist/middleware/permissions/PermissionProfileStore.d.ts +77 -0
- package/dist/middleware/permissions/PermissionProfileStore.d.ts.map +1 -0
- package/dist/middleware/permissions/PermissionProfileStore.js +167 -0
- package/dist/middleware/permissions/PermissionProfileStore.js.map +1 -0
- package/dist/middleware/permissions/WhitelistPolicy.d.ts +66 -0
- package/dist/middleware/permissions/WhitelistPolicy.d.ts.map +1 -0
- package/dist/middleware/permissions/WhitelistPolicy.js +82 -0
- package/dist/middleware/permissions/WhitelistPolicy.js.map +1 -0
- package/dist/middleware/permissions/index.d.ts +40 -0
- package/dist/middleware/permissions/index.d.ts.map +1 -0
- package/dist/middleware/permissions/index.js +30 -0
- package/dist/middleware/permissions/index.js.map +1 -0
- package/dist/middleware/permissions/profilePath.d.ts +15 -0
- package/dist/middleware/permissions/profilePath.d.ts.map +1 -0
- package/dist/middleware/permissions/profilePath.js +35 -0
- package/dist/middleware/permissions/profilePath.js.map +1 -0
- package/dist/models/ModelConfig.interface.d.ts +18 -0
- package/dist/models/ModelConfig.interface.d.ts.map +1 -0
- package/dist/models/ModelConfig.interface.js +157 -0
- package/dist/models/ModelConfig.interface.js.map +1 -0
- package/dist/models/cards/anthropic/claude-3-5-haiku.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-3-5-haiku.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-3-5-haiku.js +19 -0
- package/dist/models/cards/anthropic/claude-3-5-haiku.js.map +1 -0
- package/dist/models/cards/anthropic/claude-3-5-sonnet.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-3-5-sonnet.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-3-5-sonnet.js +19 -0
- package/dist/models/cards/anthropic/claude-3-5-sonnet.js.map +1 -0
- package/dist/models/cards/anthropic/claude-3-haiku.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-3-haiku.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-3-haiku.js +19 -0
- package/dist/models/cards/anthropic/claude-3-haiku.js.map +1 -0
- package/dist/models/cards/anthropic/claude-4-5-haiku.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-4-5-haiku.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-4-5-haiku.js +26 -0
- package/dist/models/cards/anthropic/claude-4-5-haiku.js.map +1 -0
- package/dist/models/cards/anthropic/claude-fable-5.d.ts +14 -0
- package/dist/models/cards/anthropic/claude-fable-5.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-fable-5.js +30 -0
- package/dist/models/cards/anthropic/claude-fable-5.js.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-1.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-opus-4-1.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-1.js +19 -0
- package/dist/models/cards/anthropic/claude-opus-4-1.js.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-5.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-opus-4-5.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-5.js +27 -0
- package/dist/models/cards/anthropic/claude-opus-4-5.js.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-6.d.ts +10 -0
- package/dist/models/cards/anthropic/claude-opus-4-6.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-6.js +26 -0
- package/dist/models/cards/anthropic/claude-opus-4-6.js.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-7.d.ts +10 -0
- package/dist/models/cards/anthropic/claude-opus-4-7.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-7.js +26 -0
- package/dist/models/cards/anthropic/claude-opus-4-7.js.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-8.d.ts +12 -0
- package/dist/models/cards/anthropic/claude-opus-4-8.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-opus-4-8.js +28 -0
- package/dist/models/cards/anthropic/claude-opus-4-8.js.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-5.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-5.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-5.js +27 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-5.js.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-6.d.ts +10 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-6.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-6.js +26 -0
- package/dist/models/cards/anthropic/claude-sonnet-4-6.js.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4.d.ts +11 -0
- package/dist/models/cards/anthropic/claude-sonnet-4.d.ts.map +1 -0
- package/dist/models/cards/anthropic/claude-sonnet-4.js +19 -0
- package/dist/models/cards/anthropic/claude-sonnet-4.js.map +1 -0
- package/dist/models/cards/anthropic/index.d.ts +15 -0
- package/dist/models/cards/anthropic/index.d.ts.map +1 -0
- package/dist/models/cards/anthropic/index.js +15 -0
- package/dist/models/cards/anthropic/index.js.map +1 -0
- package/dist/models/cards/cloudflare/gemma-4-26b.d.ts +3 -0
- package/dist/models/cards/cloudflare/gemma-4-26b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/gemma-4-26b.js +17 -0
- package/dist/models/cards/cloudflare/gemma-4-26b.js.map +1 -0
- package/dist/models/cards/cloudflare/glm-4-7-flash.d.ts +3 -0
- package/dist/models/cards/cloudflare/glm-4-7-flash.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/glm-4-7-flash.js +18 -0
- package/dist/models/cards/cloudflare/glm-4-7-flash.js.map +1 -0
- package/dist/models/cards/cloudflare/gpt-oss-120b.d.ts +3 -0
- package/dist/models/cards/cloudflare/gpt-oss-120b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/gpt-oss-120b.js +18 -0
- package/dist/models/cards/cloudflare/gpt-oss-120b.js.map +1 -0
- package/dist/models/cards/cloudflare/gpt-oss-20b.d.ts +3 -0
- package/dist/models/cards/cloudflare/gpt-oss-20b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/gpt-oss-20b.js +18 -0
- package/dist/models/cards/cloudflare/gpt-oss-20b.js.map +1 -0
- package/dist/models/cards/cloudflare/granite-4.d.ts +3 -0
- package/dist/models/cards/cloudflare/granite-4.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/granite-4.js +17 -0
- package/dist/models/cards/cloudflare/granite-4.js.map +1 -0
- package/dist/models/cards/cloudflare/index.d.ts +24 -0
- package/dist/models/cards/cloudflare/index.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/index.js +24 -0
- package/dist/models/cards/cloudflare/index.js.map +1 -0
- package/dist/models/cards/cloudflare/kimi-k2-5.d.ts +3 -0
- package/dist/models/cards/cloudflare/kimi-k2-5.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/kimi-k2-5.js +17 -0
- package/dist/models/cards/cloudflare/kimi-k2-5.js.map +1 -0
- package/dist/models/cards/cloudflare/kimi-k2-6.d.ts +3 -0
- package/dist/models/cards/cloudflare/kimi-k2-6.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/kimi-k2-6.js +20 -0
- package/dist/models/cards/cloudflare/kimi-k2-6.js.map +1 -0
- package/dist/models/cards/cloudflare/llama-3-3-70b.d.ts +3 -0
- package/dist/models/cards/cloudflare/llama-3-3-70b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/llama-3-3-70b.js +17 -0
- package/dist/models/cards/cloudflare/llama-3-3-70b.js.map +1 -0
- package/dist/models/cards/cloudflare/llama-4-scout.d.ts +3 -0
- package/dist/models/cards/cloudflare/llama-4-scout.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/llama-4-scout.js +18 -0
- package/dist/models/cards/cloudflare/llama-4-scout.js.map +1 -0
- package/dist/models/cards/cloudflare/mistral-small-3-1.d.ts +3 -0
- package/dist/models/cards/cloudflare/mistral-small-3-1.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/mistral-small-3-1.js +18 -0
- package/dist/models/cards/cloudflare/mistral-small-3-1.js.map +1 -0
- package/dist/models/cards/cloudflare/nemotron-3-120b.d.ts +3 -0
- package/dist/models/cards/cloudflare/nemotron-3-120b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/nemotron-3-120b.js +16 -0
- package/dist/models/cards/cloudflare/nemotron-3-120b.js.map +1 -0
- package/dist/models/cards/cloudflare/qwen3-30b.d.ts +3 -0
- package/dist/models/cards/cloudflare/qwen3-30b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/qwen3-30b.js +17 -0
- package/dist/models/cards/cloudflare/qwen3-30b.js.map +1 -0
- package/dist/models/cards/cloudflare/qwq-32b.d.ts +3 -0
- package/dist/models/cards/cloudflare/qwq-32b.d.ts.map +1 -0
- package/dist/models/cards/cloudflare/qwq-32b.js +18 -0
- package/dist/models/cards/cloudflare/qwq-32b.js.map +1 -0
- package/dist/models/cards/deepseek/deepseek-v4-flash.d.ts +11 -0
- package/dist/models/cards/deepseek/deepseek-v4-flash.d.ts.map +1 -0
- package/dist/models/cards/deepseek/deepseek-v4-flash.js +25 -0
- package/dist/models/cards/deepseek/deepseek-v4-flash.js.map +1 -0
- package/dist/models/cards/deepseek/deepseek-v4-pro.d.ts +11 -0
- package/dist/models/cards/deepseek/deepseek-v4-pro.d.ts.map +1 -0
- package/dist/models/cards/deepseek/deepseek-v4-pro.js +25 -0
- package/dist/models/cards/deepseek/deepseek-v4-pro.js.map +1 -0
- package/dist/models/cards/deepseek/index.d.ts +22 -0
- package/dist/models/cards/deepseek/index.d.ts.map +1 -0
- package/dist/models/cards/deepseek/index.js +22 -0
- package/dist/models/cards/deepseek/index.js.map +1 -0
- package/dist/models/cards/gemma/gemma-3-12b-it.d.ts +10 -0
- package/dist/models/cards/gemma/gemma-3-12b-it.d.ts.map +1 -0
- package/dist/models/cards/gemma/gemma-3-12b-it.js +16 -0
- package/dist/models/cards/gemma/gemma-3-12b-it.js.map +1 -0
- package/dist/models/cards/gemma/gemma-3-1b-it.d.ts +10 -0
- package/dist/models/cards/gemma/gemma-3-1b-it.d.ts.map +1 -0
- package/dist/models/cards/gemma/gemma-3-1b-it.js +16 -0
- package/dist/models/cards/gemma/gemma-3-1b-it.js.map +1 -0
- package/dist/models/cards/gemma/gemma-3-27b-it.d.ts +10 -0
- package/dist/models/cards/gemma/gemma-3-27b-it.d.ts.map +1 -0
- package/dist/models/cards/gemma/gemma-3-27b-it.js +16 -0
- package/dist/models/cards/gemma/gemma-3-27b-it.js.map +1 -0
- package/dist/models/cards/gemma/gemma-3-4b-it.d.ts +10 -0
- package/dist/models/cards/gemma/gemma-3-4b-it.d.ts.map +1 -0
- package/dist/models/cards/gemma/gemma-3-4b-it.js +16 -0
- package/dist/models/cards/gemma/gemma-3-4b-it.js.map +1 -0
- package/dist/models/cards/gemma/index.d.ts +9 -0
- package/dist/models/cards/gemma/index.d.ts.map +1 -0
- package/dist/models/cards/gemma/index.js +9 -0
- package/dist/models/cards/gemma/index.js.map +1 -0
- package/dist/models/cards/glm/glm-4-5-air.d.ts +17 -0
- package/dist/models/cards/glm/glm-4-5-air.d.ts.map +1 -0
- package/dist/models/cards/glm/glm-4-5-air.js +27 -0
- package/dist/models/cards/glm/glm-4-5-air.js.map +1 -0
- package/dist/models/cards/glm/glm-4-5.d.ts +16 -0
- package/dist/models/cards/glm/glm-4-5.d.ts.map +1 -0
- package/dist/models/cards/glm/glm-4-5.js +26 -0
- package/dist/models/cards/glm/glm-4-5.js.map +1 -0
- package/dist/models/cards/glm/glm-4-6.d.ts +17 -0
- package/dist/models/cards/glm/glm-4-6.d.ts.map +1 -0
- package/dist/models/cards/glm/glm-4-6.js +27 -0
- package/dist/models/cards/glm/glm-4-6.js.map +1 -0
- package/dist/models/cards/glm/glm-4-flash.d.ts +12 -0
- package/dist/models/cards/glm/glm-4-flash.d.ts.map +1 -0
- package/dist/models/cards/glm/glm-4-flash.js +20 -0
- package/dist/models/cards/glm/glm-4-flash.js.map +1 -0
- package/dist/models/cards/glm/glm-4.d.ts +12 -0
- package/dist/models/cards/glm/glm-4.d.ts.map +1 -0
- package/dist/models/cards/glm/glm-4.js +21 -0
- package/dist/models/cards/glm/glm-4.js.map +1 -0
- package/dist/models/cards/glm/index.d.ts +13 -0
- package/dist/models/cards/glm/index.d.ts.map +1 -0
- package/dist/models/cards/glm/index.js +13 -0
- package/dist/models/cards/glm/index.js.map +1 -0
- package/dist/models/cards/google/gemini-1-5-flash.d.ts +10 -0
- package/dist/models/cards/google/gemini-1-5-flash.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-1-5-flash.js +18 -0
- package/dist/models/cards/google/gemini-1-5-flash.js.map +1 -0
- package/dist/models/cards/google/gemini-1-5-pro.d.ts +10 -0
- package/dist/models/cards/google/gemini-1-5-pro.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-1-5-pro.js +18 -0
- package/dist/models/cards/google/gemini-1-5-pro.js.map +1 -0
- package/dist/models/cards/google/gemini-2-0-flash-lite.d.ts +10 -0
- package/dist/models/cards/google/gemini-2-0-flash-lite.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-0-flash-lite.js +18 -0
- package/dist/models/cards/google/gemini-2-0-flash-lite.js.map +1 -0
- package/dist/models/cards/google/gemini-2-0-flash.d.ts +10 -0
- package/dist/models/cards/google/gemini-2-0-flash.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-0-flash.js +24 -0
- package/dist/models/cards/google/gemini-2-0-flash.js.map +1 -0
- package/dist/models/cards/google/gemini-2-5-computer-use-preview.d.ts +18 -0
- package/dist/models/cards/google/gemini-2-5-computer-use-preview.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-5-computer-use-preview.js +26 -0
- package/dist/models/cards/google/gemini-2-5-computer-use-preview.js.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash-lite.d.ts +10 -0
- package/dist/models/cards/google/gemini-2-5-flash-lite.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash-lite.js +18 -0
- package/dist/models/cards/google/gemini-2-5-flash-lite.js.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash-sdk.d.ts +11 -0
- package/dist/models/cards/google/gemini-2-5-flash-sdk.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash-sdk.js +25 -0
- package/dist/models/cards/google/gemini-2-5-flash-sdk.js.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash.d.ts +10 -0
- package/dist/models/cards/google/gemini-2-5-flash.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-5-flash.js +24 -0
- package/dist/models/cards/google/gemini-2-5-flash.js.map +1 -0
- package/dist/models/cards/google/gemini-2-5-pro.d.ts +10 -0
- package/dist/models/cards/google/gemini-2-5-pro.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-2-5-pro.js +24 -0
- package/dist/models/cards/google/gemini-2-5-pro.js.map +1 -0
- package/dist/models/cards/google/gemini-3-1-flash-lite-preview.d.ts +11 -0
- package/dist/models/cards/google/gemini-3-1-flash-lite-preview.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-3-1-flash-lite-preview.js +20 -0
- package/dist/models/cards/google/gemini-3-1-flash-lite-preview.js.map +1 -0
- package/dist/models/cards/google/gemini-3-1-pro-preview.d.ts +10 -0
- package/dist/models/cards/google/gemini-3-1-pro-preview.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-3-1-pro-preview.js +19 -0
- package/dist/models/cards/google/gemini-3-1-pro-preview.js.map +1 -0
- package/dist/models/cards/google/gemini-3-5-flash.d.ts +10 -0
- package/dist/models/cards/google/gemini-3-5-flash.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-3-5-flash.js +19 -0
- package/dist/models/cards/google/gemini-3-5-flash.js.map +1 -0
- package/dist/models/cards/google/gemini-3-flash-preview.d.ts +11 -0
- package/dist/models/cards/google/gemini-3-flash-preview.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-3-flash-preview.js +20 -0
- package/dist/models/cards/google/gemini-3-flash-preview.js.map +1 -0
- package/dist/models/cards/google/gemini-3.d.ts +11 -0
- package/dist/models/cards/google/gemini-3.d.ts.map +1 -0
- package/dist/models/cards/google/gemini-3.js +20 -0
- package/dist/models/cards/google/gemini-3.js.map +1 -0
- package/dist/models/cards/google/index.d.ts +17 -0
- package/dist/models/cards/google/index.d.ts.map +1 -0
- package/dist/models/cards/google/index.js +17 -0
- package/dist/models/cards/google/index.js.map +1 -0
- package/dist/models/cards/huggingface/index.d.ts +10 -0
- package/dist/models/cards/huggingface/index.d.ts.map +1 -0
- package/dist/models/cards/huggingface/index.js +10 -0
- package/dist/models/cards/huggingface/index.js.map +1 -0
- package/dist/models/cards/huggingface/llama-3-8b-instruct.d.ts +17 -0
- package/dist/models/cards/huggingface/llama-3-8b-instruct.d.ts.map +1 -0
- package/dist/models/cards/huggingface/llama-3-8b-instruct.js +25 -0
- package/dist/models/cards/huggingface/llama-3-8b-instruct.js.map +1 -0
- package/dist/models/cards/huggingface/mistral-7b-instruct.d.ts +10 -0
- package/dist/models/cards/huggingface/mistral-7b-instruct.d.ts.map +1 -0
- package/dist/models/cards/huggingface/mistral-7b-instruct.js +18 -0
- package/dist/models/cards/huggingface/mistral-7b-instruct.js.map +1 -0
- package/dist/models/cards/local/codellama-13b-local.d.ts +19 -0
- package/dist/models/cards/local/codellama-13b-local.d.ts.map +1 -0
- package/dist/models/cards/local/codellama-13b-local.js +28 -0
- package/dist/models/cards/local/codellama-13b-local.js.map +1 -0
- package/dist/models/cards/local/index.d.ts +17 -0
- package/dist/models/cards/local/index.d.ts.map +1 -0
- package/dist/models/cards/local/index.js +17 -0
- package/dist/models/cards/local/index.js.map +1 -0
- package/dist/models/cards/local/llama-3-8b-local.d.ts +25 -0
- package/dist/models/cards/local/llama-3-8b-local.d.ts.map +1 -0
- package/dist/models/cards/local/llama-3-8b-local.js +34 -0
- package/dist/models/cards/local/llama-3-8b-local.js.map +1 -0
- package/dist/models/cards/local/mistral-7b-ollama.d.ts +18 -0
- package/dist/models/cards/local/mistral-7b-ollama.d.ts.map +1 -0
- package/dist/models/cards/local/mistral-7b-ollama.js +27 -0
- package/dist/models/cards/local/mistral-7b-ollama.js.map +1 -0
- package/dist/models/cards/mercury/index.d.ts +10 -0
- package/dist/models/cards/mercury/index.d.ts.map +1 -0
- package/dist/models/cards/mercury/index.js +10 -0
- package/dist/models/cards/mercury/index.js.map +1 -0
- package/dist/models/cards/mercury/mercury-2.d.ts +24 -0
- package/dist/models/cards/mercury/mercury-2.d.ts.map +1 -0
- package/dist/models/cards/mercury/mercury-2.js +33 -0
- package/dist/models/cards/mercury/mercury-2.js.map +1 -0
- package/dist/models/cards/minimax/index.d.ts +10 -0
- package/dist/models/cards/minimax/index.d.ts.map +1 -0
- package/dist/models/cards/minimax/index.js +10 -0
- package/dist/models/cards/minimax/index.js.map +1 -0
- package/dist/models/cards/minimax/minimax-m2-stable.d.ts +21 -0
- package/dist/models/cards/minimax/minimax-m2-stable.d.ts.map +1 -0
- package/dist/models/cards/minimax/minimax-m2-stable.js +31 -0
- package/dist/models/cards/minimax/minimax-m2-stable.js.map +1 -0
- package/dist/models/cards/minimax/minimax-m2.d.ts +20 -0
- package/dist/models/cards/minimax/minimax-m2.d.ts.map +1 -0
- package/dist/models/cards/minimax/minimax-m2.js +30 -0
- package/dist/models/cards/minimax/minimax-m2.js.map +1 -0
- package/dist/models/cards/moonshot/index.d.ts +9 -0
- package/dist/models/cards/moonshot/index.d.ts.map +1 -0
- package/dist/models/cards/moonshot/index.js +9 -0
- package/dist/models/cards/moonshot/index.js.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat-128k.d.ts +10 -0
- package/dist/models/cards/moonshot/kimi-chat-128k.d.ts.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat-128k.js +18 -0
- package/dist/models/cards/moonshot/kimi-chat-128k.js.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat-32k.d.ts +10 -0
- package/dist/models/cards/moonshot/kimi-chat-32k.d.ts.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat-32k.js +18 -0
- package/dist/models/cards/moonshot/kimi-chat-32k.js.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat.d.ts +12 -0
- package/dist/models/cards/moonshot/kimi-chat.d.ts.map +1 -0
- package/dist/models/cards/moonshot/kimi-chat.js +20 -0
- package/dist/models/cards/moonshot/kimi-chat.js.map +1 -0
- package/dist/models/cards/moonshot/kimi-k2-instruct.d.ts +17 -0
- package/dist/models/cards/moonshot/kimi-k2-instruct.d.ts.map +1 -0
- package/dist/models/cards/moonshot/kimi-k2-instruct.js +26 -0
- package/dist/models/cards/moonshot/kimi-k2-instruct.js.map +1 -0
- package/dist/models/cards/moonshot/kimi-k2-thinking.d.ts +18 -0
- package/dist/models/cards/moonshot/kimi-k2-thinking.d.ts.map +1 -0
- package/dist/models/cards/moonshot/kimi-k2-thinking.js +27 -0
- package/dist/models/cards/moonshot/kimi-k2-thinking.js.map +1 -0
- package/dist/models/cards/openai/gpt-4-1-mini.d.ts +10 -0
- package/dist/models/cards/openai/gpt-4-1-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-4-1-mini.js +18 -0
- package/dist/models/cards/openai/gpt-4-1-mini.js.map +1 -0
- package/dist/models/cards/openai/gpt-4-1-nano.d.ts +10 -0
- package/dist/models/cards/openai/gpt-4-1-nano.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-4-1-nano.js +18 -0
- package/dist/models/cards/openai/gpt-4-1-nano.js.map +1 -0
- package/dist/models/cards/openai/gpt-4-1.d.ts +10 -0
- package/dist/models/cards/openai/gpt-4-1.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-4-1.js +18 -0
- package/dist/models/cards/openai/gpt-4-1.js.map +1 -0
- package/dist/models/cards/openai/gpt-4o-mini.d.ts +10 -0
- package/dist/models/cards/openai/gpt-4o-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-4o-mini.js +19 -0
- package/dist/models/cards/openai/gpt-4o-mini.js.map +1 -0
- package/dist/models/cards/openai/gpt-4o.d.ts +10 -0
- package/dist/models/cards/openai/gpt-4o.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-4o.js +19 -0
- package/dist/models/cards/openai/gpt-4o.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-1-reasoning.d.ts +14 -0
- package/dist/models/cards/openai/gpt-5-1-reasoning.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-1-reasoning.js +29 -0
- package/dist/models/cards/openai/gpt-5-1-reasoning.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-1.d.ts +11 -0
- package/dist/models/cards/openai/gpt-5-1.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-1.js +27 -0
- package/dist/models/cards/openai/gpt-5-1.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-2.d.ts +21 -0
- package/dist/models/cards/openai/gpt-5-2.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-2.js +37 -0
- package/dist/models/cards/openai/gpt-5-2.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-4-mini.d.ts +11 -0
- package/dist/models/cards/openai/gpt-5-4-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-4-mini.js +27 -0
- package/dist/models/cards/openai/gpt-5-4-mini.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-4.d.ts +11 -0
- package/dist/models/cards/openai/gpt-5-4.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-4.js +27 -0
- package/dist/models/cards/openai/gpt-5-4.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-5.d.ts +11 -0
- package/dist/models/cards/openai/gpt-5-5.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-5.js +27 -0
- package/dist/models/cards/openai/gpt-5-5.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-chat-latest.d.ts +10 -0
- package/dist/models/cards/openai/gpt-5-chat-latest.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-chat-latest.js +26 -0
- package/dist/models/cards/openai/gpt-5-chat-latest.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-codex.d.ts +11 -0
- package/dist/models/cards/openai/gpt-5-codex.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-codex.js +19 -0
- package/dist/models/cards/openai/gpt-5-codex.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-mini.d.ts +10 -0
- package/dist/models/cards/openai/gpt-5-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-mini.js +26 -0
- package/dist/models/cards/openai/gpt-5-mini.js.map +1 -0
- package/dist/models/cards/openai/gpt-5-nano.d.ts +10 -0
- package/dist/models/cards/openai/gpt-5-nano.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5-nano.js +26 -0
- package/dist/models/cards/openai/gpt-5-nano.js.map +1 -0
- package/dist/models/cards/openai/gpt-5.d.ts +10 -0
- package/dist/models/cards/openai/gpt-5.d.ts.map +1 -0
- package/dist/models/cards/openai/gpt-5.js +26 -0
- package/dist/models/cards/openai/gpt-5.js.map +1 -0
- package/dist/models/cards/openai/index.d.ts +32 -0
- package/dist/models/cards/openai/index.d.ts.map +1 -0
- package/dist/models/cards/openai/index.js +38 -0
- package/dist/models/cards/openai/index.js.map +1 -0
- package/dist/models/cards/openai/o1-mini.d.ts +11 -0
- package/dist/models/cards/openai/o1-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/o1-mini.js +28 -0
- package/dist/models/cards/openai/o1-mini.js.map +1 -0
- package/dist/models/cards/openai/o1-pro.d.ts +11 -0
- package/dist/models/cards/openai/o1-pro.d.ts.map +1 -0
- package/dist/models/cards/openai/o1-pro.js +28 -0
- package/dist/models/cards/openai/o1-pro.js.map +1 -0
- package/dist/models/cards/openai/o1.d.ts +11 -0
- package/dist/models/cards/openai/o1.d.ts.map +1 -0
- package/dist/models/cards/openai/o1.js +28 -0
- package/dist/models/cards/openai/o1.js.map +1 -0
- package/dist/models/cards/openai/o3-mini.d.ts +11 -0
- package/dist/models/cards/openai/o3-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/o3-mini.js +30 -0
- package/dist/models/cards/openai/o3-mini.js.map +1 -0
- package/dist/models/cards/openai/o3-pro.d.ts +11 -0
- package/dist/models/cards/openai/o3-pro.d.ts.map +1 -0
- package/dist/models/cards/openai/o3-pro.js +28 -0
- package/dist/models/cards/openai/o3-pro.js.map +1 -0
- package/dist/models/cards/openai/o3.d.ts +11 -0
- package/dist/models/cards/openai/o3.d.ts.map +1 -0
- package/dist/models/cards/openai/o3.js +28 -0
- package/dist/models/cards/openai/o3.js.map +1 -0
- package/dist/models/cards/openai/o4-mini.d.ts +11 -0
- package/dist/models/cards/openai/o4-mini.d.ts.map +1 -0
- package/dist/models/cards/openai/o4-mini.js +27 -0
- package/dist/models/cards/openai/o4-mini.js.map +1 -0
- package/dist/models/cards/qwen/index.d.ts +13 -0
- package/dist/models/cards/qwen/index.d.ts.map +1 -0
- package/dist/models/cards/qwen/index.js +13 -0
- package/dist/models/cards/qwen/index.js.map +1 -0
- package/dist/models/cards/qwen/qwen-3-coder.d.ts +17 -0
- package/dist/models/cards/qwen/qwen-3-coder.d.ts.map +1 -0
- package/dist/models/cards/qwen/qwen-3-coder.js +27 -0
- package/dist/models/cards/qwen/qwen-3-coder.js.map +1 -0
- package/dist/models/cards/qwen/qwen-3-max-preview.d.ts +17 -0
- package/dist/models/cards/qwen/qwen-3-max-preview.d.ts.map +1 -0
- package/dist/models/cards/qwen/qwen-3-max-preview.js +27 -0
- package/dist/models/cards/qwen/qwen-3-max-preview.js.map +1 -0
- package/dist/models/cards/qwen/qwen-max.d.ts +10 -0
- package/dist/models/cards/qwen/qwen-max.d.ts.map +1 -0
- package/dist/models/cards/qwen/qwen-max.js +18 -0
- package/dist/models/cards/qwen/qwen-max.js.map +1 -0
- package/dist/models/cards/qwen/qwen-plus.d.ts +10 -0
- package/dist/models/cards/qwen/qwen-plus.d.ts.map +1 -0
- package/dist/models/cards/qwen/qwen-plus.js +18 -0
- package/dist/models/cards/qwen/qwen-plus.js.map +1 -0
- package/dist/models/cards/qwen/qwen-turbo.d.ts +10 -0
- package/dist/models/cards/qwen/qwen-turbo.d.ts.map +1 -0
- package/dist/models/cards/qwen/qwen-turbo.js +18 -0
- package/dist/models/cards/qwen/qwen-turbo.js.map +1 -0
- package/dist/models/cards/xai/grok-4-1-fast-non-reasoning.d.ts +15 -0
- package/dist/models/cards/xai/grok-4-1-fast-non-reasoning.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-1-fast-non-reasoning.js +24 -0
- package/dist/models/cards/xai/grok-4-1-fast-non-reasoning.js.map +1 -0
- package/dist/models/cards/xai/grok-4-1.d.ts +14 -0
- package/dist/models/cards/xai/grok-4-1.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-1.js +24 -0
- package/dist/models/cards/xai/grok-4-1.js.map +1 -0
- package/dist/models/cards/xai/grok-4-20-multi-agent.d.ts +13 -0
- package/dist/models/cards/xai/grok-4-20-multi-agent.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-20-multi-agent.js +23 -0
- package/dist/models/cards/xai/grok-4-20-multi-agent.js.map +1 -0
- package/dist/models/cards/xai/grok-4-20-non-reasoning.d.ts +10 -0
- package/dist/models/cards/xai/grok-4-20-non-reasoning.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-20-non-reasoning.js +19 -0
- package/dist/models/cards/xai/grok-4-20-non-reasoning.js.map +1 -0
- package/dist/models/cards/xai/grok-4-20-reasoning.d.ts +10 -0
- package/dist/models/cards/xai/grok-4-20-reasoning.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-20-reasoning.js +20 -0
- package/dist/models/cards/xai/grok-4-20-reasoning.js.map +1 -0
- package/dist/models/cards/xai/grok-4-3.d.ts +11 -0
- package/dist/models/cards/xai/grok-4-3.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-3.js +22 -0
- package/dist/models/cards/xai/grok-4-3.js.map +1 -0
- package/dist/models/cards/xai/grok-4-fast-non-reasoning.d.ts +13 -0
- package/dist/models/cards/xai/grok-4-fast-non-reasoning.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-fast-non-reasoning.js +22 -0
- package/dist/models/cards/xai/grok-4-fast-non-reasoning.js.map +1 -0
- package/dist/models/cards/xai/grok-4-fast.d.ts +12 -0
- package/dist/models/cards/xai/grok-4-fast.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-4-fast.js +21 -0
- package/dist/models/cards/xai/grok-4-fast.js.map +1 -0
- package/dist/models/cards/xai/grok-build-0-1-responses.d.ts +22 -0
- package/dist/models/cards/xai/grok-build-0-1-responses.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-build-0-1-responses.js +39 -0
- package/dist/models/cards/xai/grok-build-0-1-responses.js.map +1 -0
- package/dist/models/cards/xai/grok-build-0-1.d.ts +17 -0
- package/dist/models/cards/xai/grok-build-0-1.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-build-0-1.js +31 -0
- package/dist/models/cards/xai/grok-build-0-1.js.map +1 -0
- package/dist/models/cards/xai/grok-code-fast-1.d.ts +10 -0
- package/dist/models/cards/xai/grok-code-fast-1.d.ts.map +1 -0
- package/dist/models/cards/xai/grok-code-fast-1.js +22 -0
- package/dist/models/cards/xai/grok-code-fast-1.js.map +1 -0
- package/dist/models/cards/xai/index.d.ts +17 -0
- package/dist/models/cards/xai/index.d.ts.map +1 -0
- package/dist/models/cards/xai/index.js +18 -0
- package/dist/models/cards/xai/index.js.map +1 -0
- package/dist/models/configurators/AnthropicConfigurator.d.ts +57 -0
- package/dist/models/configurators/AnthropicConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/AnthropicConfigurator.js +108 -0
- package/dist/models/configurators/AnthropicConfigurator.js.map +1 -0
- package/dist/models/configurators/CloudflareConfigurator.d.ts +46 -0
- package/dist/models/configurators/CloudflareConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/CloudflareConfigurator.js +112 -0
- package/dist/models/configurators/CloudflareConfigurator.js.map +1 -0
- package/dist/models/configurators/DeepSeekConfigurator.d.ts +26 -0
- package/dist/models/configurators/DeepSeekConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/DeepSeekConfigurator.js +81 -0
- package/dist/models/configurators/DeepSeekConfigurator.js.map +1 -0
- package/dist/models/configurators/GLMConfigurator.d.ts +22 -0
- package/dist/models/configurators/GLMConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/GLMConfigurator.js +82 -0
- package/dist/models/configurators/GLMConfigurator.js.map +1 -0
- package/dist/models/configurators/GemmaConfigurator.d.ts +18 -0
- package/dist/models/configurators/GemmaConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/GemmaConfigurator.js +89 -0
- package/dist/models/configurators/GemmaConfigurator.js.map +1 -0
- package/dist/models/configurators/GoogleConfigurator.d.ts +26 -0
- package/dist/models/configurators/GoogleConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/GoogleConfigurator.js +91 -0
- package/dist/models/configurators/GoogleConfigurator.js.map +1 -0
- package/dist/models/configurators/GoogleSDKConfigurator.d.ts +29 -0
- package/dist/models/configurators/GoogleSDKConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/GoogleSDKConfigurator.js +95 -0
- package/dist/models/configurators/GoogleSDKConfigurator.js.map +1 -0
- package/dist/models/configurators/HuggingFaceConfigurator.d.ts +31 -0
- package/dist/models/configurators/HuggingFaceConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/HuggingFaceConfigurator.js +85 -0
- package/dist/models/configurators/HuggingFaceConfigurator.js.map +1 -0
- package/dist/models/configurators/LocalModelConfigurator.d.ts +30 -0
- package/dist/models/configurators/LocalModelConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/LocalModelConfigurator.js +88 -0
- package/dist/models/configurators/LocalModelConfigurator.js.map +1 -0
- package/dist/models/configurators/MercuryConfigurator.d.ts +27 -0
- package/dist/models/configurators/MercuryConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/MercuryConfigurator.js +91 -0
- package/dist/models/configurators/MercuryConfigurator.js.map +1 -0
- package/dist/models/configurators/MiniMaxConfigurator.d.ts +47 -0
- package/dist/models/configurators/MiniMaxConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/MiniMaxConfigurator.js +103 -0
- package/dist/models/configurators/MiniMaxConfigurator.js.map +1 -0
- package/dist/models/configurators/MoonshotConfigurator.d.ts +21 -0
- package/dist/models/configurators/MoonshotConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/MoonshotConfigurator.js +81 -0
- package/dist/models/configurators/MoonshotConfigurator.js.map +1 -0
- package/dist/models/configurators/OpenAIConfigurator.d.ts +52 -0
- package/dist/models/configurators/OpenAIConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/OpenAIConfigurator.js +128 -0
- package/dist/models/configurators/OpenAIConfigurator.js.map +1 -0
- package/dist/models/configurators/OpenAIResponsesConfigurator.d.ts +23 -0
- package/dist/models/configurators/OpenAIResponsesConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/OpenAIResponsesConfigurator.js +113 -0
- package/dist/models/configurators/OpenAIResponsesConfigurator.js.map +1 -0
- package/dist/models/configurators/QwenConfigurator.d.ts +26 -0
- package/dist/models/configurators/QwenConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/QwenConfigurator.js +87 -0
- package/dist/models/configurators/QwenConfigurator.js.map +1 -0
- package/dist/models/configurators/XAIConfigurator.d.ts +52 -0
- package/dist/models/configurators/XAIConfigurator.d.ts.map +1 -0
- package/dist/models/configurators/XAIConfigurator.js +130 -0
- package/dist/models/configurators/XAIConfigurator.js.map +1 -0
- package/dist/models/configurators/index.d.ts +19 -0
- package/dist/models/configurators/index.d.ts.map +1 -0
- package/dist/models/configurators/index.js +19 -0
- package/dist/models/configurators/index.js.map +1 -0
- package/dist/models/index.d.ts +7 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +7 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/registry/ModelAliasResolver.d.ts +109 -0
- package/dist/models/registry/ModelAliasResolver.d.ts.map +1 -0
- package/dist/models/registry/ModelAliasResolver.js +255 -0
- package/dist/models/registry/ModelAliasResolver.js.map +1 -0
- package/dist/models/registry/ModelCardLoader.d.ts +44 -0
- package/dist/models/registry/ModelCardLoader.d.ts.map +1 -0
- package/dist/models/registry/ModelCardLoader.js +124 -0
- package/dist/models/registry/ModelCardLoader.js.map +1 -0
- package/dist/models/registry/ModularModelRegistry.d.ts +86 -0
- package/dist/models/registry/ModularModelRegistry.d.ts.map +1 -0
- package/dist/models/registry/ModularModelRegistry.js +311 -0
- package/dist/models/registry/ModularModelRegistry.js.map +1 -0
- package/dist/models/registry/index.d.ts +8 -0
- package/dist/models/registry/index.d.ts.map +1 -0
- package/dist/models/registry/index.js +9 -0
- package/dist/models/registry/index.js.map +1 -0
- package/dist/orchestrator/APIClient.d.ts +274 -0
- package/dist/orchestrator/APIClient.d.ts.map +1 -0
- package/dist/orchestrator/APIClient.js +2770 -0
- package/dist/orchestrator/APIClient.js.map +1 -0
- package/dist/orchestrator/CortexOrchestrator.d.ts +986 -0
- package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -0
- package/dist/orchestrator/CortexOrchestrator.js +6374 -0
- package/dist/orchestrator/CortexOrchestrator.js.map +1 -0
- package/dist/orchestrator/OrchestratorFactory.d.ts +81 -0
- package/dist/orchestrator/OrchestratorFactory.d.ts.map +1 -0
- package/dist/orchestrator/OrchestratorFactory.js +433 -0
- package/dist/orchestrator/OrchestratorFactory.js.map +1 -0
- package/dist/orchestrator/PauseController.d.ts +126 -0
- package/dist/orchestrator/PauseController.d.ts.map +1 -0
- package/dist/orchestrator/PauseController.js +248 -0
- package/dist/orchestrator/PauseController.js.map +1 -0
- package/dist/orchestrator/SubAgentEventEmitter.d.ts +152 -0
- package/dist/orchestrator/SubAgentEventEmitter.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentEventEmitter.js +372 -0
- package/dist/orchestrator/SubAgentEventEmitter.js.map +1 -0
- package/dist/orchestrator/SubAgentIPC.d.ts +242 -0
- package/dist/orchestrator/SubAgentIPC.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentIPC.js +85 -0
- package/dist/orchestrator/SubAgentIPC.js.map +1 -0
- package/dist/orchestrator/SubAgentManager.d.ts +215 -0
- package/dist/orchestrator/SubAgentManager.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentManager.js +477 -0
- package/dist/orchestrator/SubAgentManager.js.map +1 -0
- package/dist/orchestrator/SubAgentOrchestrator.d.ts +125 -0
- package/dist/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentOrchestrator.js +395 -0
- package/dist/orchestrator/SubAgentOrchestrator.js.map +1 -0
- package/dist/orchestrator/SubAgentPermissionChecker.d.ts +132 -0
- package/dist/orchestrator/SubAgentPermissionChecker.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentPermissionChecker.js +239 -0
- package/dist/orchestrator/SubAgentPermissionChecker.js.map +1 -0
- package/dist/orchestrator/SubAgentProcessManager.d.ts +228 -0
- package/dist/orchestrator/SubAgentProcessManager.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentProcessManager.js +679 -0
- package/dist/orchestrator/SubAgentProcessManager.js.map +1 -0
- package/dist/orchestrator/SubAgentTypes.d.ts +428 -0
- package/dist/orchestrator/SubAgentTypes.d.ts.map +1 -0
- package/dist/orchestrator/SubAgentTypes.js +12 -0
- package/dist/orchestrator/SubAgentTypes.js.map +1 -0
- package/dist/orchestrator/apiErrorClassifier.d.ts +17 -0
- package/dist/orchestrator/apiErrorClassifier.d.ts.map +1 -0
- package/dist/orchestrator/apiErrorClassifier.js +38 -0
- package/dist/orchestrator/apiErrorClassifier.js.map +1 -0
- package/dist/orchestrator/assistantTextPresence.d.ts +32 -0
- package/dist/orchestrator/assistantTextPresence.d.ts.map +1 -0
- package/dist/orchestrator/assistantTextPresence.js +47 -0
- package/dist/orchestrator/assistantTextPresence.js.map +1 -0
- package/dist/orchestrator/citationVerification.d.ts +32 -0
- package/dist/orchestrator/citationVerification.d.ts.map +1 -0
- package/dist/orchestrator/citationVerification.js +47 -0
- package/dist/orchestrator/citationVerification.js.map +1 -0
- package/dist/orchestrator/coordinateVerification.d.ts +50 -0
- package/dist/orchestrator/coordinateVerification.d.ts.map +1 -0
- package/dist/orchestrator/coordinateVerification.js +114 -0
- package/dist/orchestrator/coordinateVerification.js.map +1 -0
- package/dist/orchestrator/cortexTrainingRecord.d.ts +88 -0
- package/dist/orchestrator/cortexTrainingRecord.d.ts.map +1 -0
- package/dist/orchestrator/cortexTrainingRecord.js +102 -0
- package/dist/orchestrator/cortexTrainingRecord.js.map +1 -0
- package/dist/orchestrator/index.d.ts +20 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +18 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/mcpAutoInjectPolicy.d.ts +18 -0
- package/dist/orchestrator/mcpAutoInjectPolicy.d.ts.map +1 -0
- package/dist/orchestrator/mcpAutoInjectPolicy.js +24 -0
- package/dist/orchestrator/mcpAutoInjectPolicy.js.map +1 -0
- package/dist/orchestrator/staticSystemPromptPin.d.ts +20 -0
- package/dist/orchestrator/staticSystemPromptPin.d.ts.map +1 -0
- package/dist/orchestrator/staticSystemPromptPin.js +33 -0
- package/dist/orchestrator/staticSystemPromptPin.js.map +1 -0
- package/dist/orchestrator/toolBudgetSignal.d.ts +41 -0
- package/dist/orchestrator/toolBudgetSignal.d.ts.map +1 -0
- package/dist/orchestrator/toolBudgetSignal.js +77 -0
- package/dist/orchestrator/toolBudgetSignal.js.map +1 -0
- package/dist/orchestrator/toolNameMatcher.d.ts +21 -0
- package/dist/orchestrator/toolNameMatcher.d.ts.map +1 -0
- package/dist/orchestrator/toolNameMatcher.js +69 -0
- package/dist/orchestrator/toolNameMatcher.js.map +1 -0
- package/dist/session/CacheMetricsAccumulator.d.ts +72 -0
- package/dist/session/CacheMetricsAccumulator.d.ts.map +1 -0
- package/dist/session/CacheMetricsAccumulator.js +144 -0
- package/dist/session/CacheMetricsAccumulator.js.map +1 -0
- package/dist/session/CheckpointManager.d.ts +106 -0
- package/dist/session/CheckpointManager.d.ts.map +1 -0
- package/dist/session/CheckpointManager.js +223 -0
- package/dist/session/CheckpointManager.js.map +1 -0
- package/dist/session/JSONLHistoryStore.d.ts +154 -0
- package/dist/session/JSONLHistoryStore.d.ts.map +1 -0
- package/dist/session/JSONLHistoryStore.js +393 -0
- package/dist/session/JSONLHistoryStore.js.map +1 -0
- package/dist/session/MessageTypes.d.ts +269 -0
- package/dist/session/MessageTypes.d.ts.map +1 -0
- package/dist/session/MessageTypes.js +38 -0
- package/dist/session/MessageTypes.js.map +1 -0
- package/dist/session/SessionTimeline.d.ts +304 -0
- package/dist/session/SessionTimeline.d.ts.map +1 -0
- package/dist/session/SessionTimeline.js +396 -0
- package/dist/session/SessionTimeline.js.map +1 -0
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +10 -0
- package/dist/session/index.js.map +1 -0
- package/dist/system-messages/MessageValidator.d.ts +71 -0
- package/dist/system-messages/MessageValidator.d.ts.map +1 -0
- package/dist/system-messages/MessageValidator.js +305 -0
- package/dist/system-messages/MessageValidator.js.map +1 -0
- package/dist/system-messages/SystemMessageLoader.d.ts +154 -0
- package/dist/system-messages/SystemMessageLoader.d.ts.map +1 -0
- package/dist/system-messages/SystemMessageLoader.js +695 -0
- package/dist/system-messages/SystemMessageLoader.js.map +1 -0
- package/dist/system-messages/SystemMessageRegistry.d.ts +67 -0
- package/dist/system-messages/SystemMessageRegistry.d.ts.map +1 -0
- package/dist/system-messages/SystemMessageRegistry.interface.d.ts +166 -0
- package/dist/system-messages/SystemMessageRegistry.interface.d.ts.map +1 -0
- package/dist/system-messages/SystemMessageRegistry.interface.js +6 -0
- package/dist/system-messages/SystemMessageRegistry.interface.js.map +1 -0
- package/dist/system-messages/SystemMessageRegistry.js +164 -0
- package/dist/system-messages/SystemMessageRegistry.js.map +1 -0
- package/dist/system-messages/SystemMessageStore.d.ts +207 -0
- package/dist/system-messages/SystemMessageStore.d.ts.map +1 -0
- package/dist/system-messages/SystemMessageStore.js +748 -0
- package/dist/system-messages/SystemMessageStore.js.map +1 -0
- package/dist/system-messages/SystemReminderInjector.d.ts +148 -0
- package/dist/system-messages/SystemReminderInjector.d.ts.map +1 -0
- package/dist/system-messages/SystemReminderInjector.js +331 -0
- package/dist/system-messages/SystemReminderInjector.js.map +1 -0
- package/dist/system-messages/docTruncation.d.ts +31 -0
- package/dist/system-messages/docTruncation.d.ts.map +1 -0
- package/dist/system-messages/docTruncation.js +26 -0
- package/dist/system-messages/docTruncation.js.map +1 -0
- package/dist/system-messages/index.d.ts +12 -0
- package/dist/system-messages/index.d.ts.map +1 -0
- package/dist/system-messages/index.js +15 -0
- package/dist/system-messages/index.js.map +1 -0
- package/dist/system-messages/messages/ACTIVE_DISCOVERY.md +26 -0
- package/dist/system-messages/messages/EXAMPLES.md +73 -0
- package/dist/system-messages/messages/PERIODIC_REMINDER.md +6 -0
- package/dist/system-messages/messages/REASONING_GUIDE.md +12 -0
- package/dist/system-messages/messages/SYSTEM_PROMPT.md +47 -0
- package/dist/system-messages/messages/TASK_AGENT_GUIDE.md +5 -0
- package/dist/system-messages/messages/TOOL_USAGE_GUIDE.md +131 -0
- package/dist/system-messages/system-message-registry.json +233 -0
- package/dist/system-messages/turnVaryingClassifier.d.ts +20 -0
- package/dist/system-messages/turnVaryingClassifier.d.ts.map +1 -0
- package/dist/system-messages/turnVaryingClassifier.js +27 -0
- package/dist/system-messages/turnVaryingClassifier.js.map +1 -0
- package/dist/system-messages/types.d.ts +184 -0
- package/dist/system-messages/types.d.ts.map +1 -0
- package/dist/system-messages/types.js +7 -0
- package/dist/system-messages/types.js.map +1 -0
- package/dist/tools/ClientSideToolFilter.d.ts +35 -0
- package/dist/tools/ClientSideToolFilter.d.ts.map +1 -0
- package/dist/tools/ClientSideToolFilter.js +74 -0
- package/dist/tools/ClientSideToolFilter.js.map +1 -0
- package/dist/tools/ServerSideTools.d.ts +181 -0
- package/dist/tools/ServerSideTools.d.ts.map +1 -0
- package/dist/tools/ServerSideTools.js +309 -0
- package/dist/tools/ServerSideTools.js.map +1 -0
- package/dist/tools/ToolFactory.d.ts +88 -0
- package/dist/tools/ToolFactory.d.ts.map +1 -0
- package/dist/tools/ToolFactory.js +153 -0
- package/dist/tools/ToolFactory.js.map +1 -0
- package/dist/tools/context-management/InitCortexContext.d.ts +184 -0
- package/dist/tools/context-management/InitCortexContext.d.ts.map +1 -0
- package/dist/tools/context-management/InitCortexContext.js +1063 -0
- package/dist/tools/context-management/InitCortexContext.js.map +1 -0
- package/dist/tools/context-management/index.d.ts +8 -0
- package/dist/tools/context-management/index.d.ts.map +1 -0
- package/dist/tools/context-management/index.js +7 -0
- package/dist/tools/context-management/index.js.map +1 -0
- package/dist/tools/historical/GetConversationSegment.d.ts +131 -0
- package/dist/tools/historical/GetConversationSegment.d.ts.map +1 -0
- package/dist/tools/historical/GetConversationSegment.js +306 -0
- package/dist/tools/historical/GetConversationSegment.js.map +1 -0
- package/dist/tools/historical/HistoricalContextService.d.ts +229 -0
- package/dist/tools/historical/HistoricalContextService.d.ts.map +1 -0
- package/dist/tools/historical/HistoricalContextService.js +206 -0
- package/dist/tools/historical/HistoricalContextService.js.map +1 -0
- package/dist/tools/historical/ListCompactionBoundaries.d.ts +107 -0
- package/dist/tools/historical/ListCompactionBoundaries.d.ts.map +1 -0
- package/dist/tools/historical/ListCompactionBoundaries.js +175 -0
- package/dist/tools/historical/ListCompactionBoundaries.js.map +1 -0
- package/dist/tools/historical/ListSessions.d.ts +50 -0
- package/dist/tools/historical/ListSessions.d.ts.map +1 -0
- package/dist/tools/historical/ListSessions.js +93 -0
- package/dist/tools/historical/ListSessions.js.map +1 -0
- package/dist/tools/historical/LoadSession.d.ts +51 -0
- package/dist/tools/historical/LoadSession.d.ts.map +1 -0
- package/dist/tools/historical/LoadSession.js +89 -0
- package/dist/tools/historical/LoadSession.js.map +1 -0
- package/dist/tools/historical/RequestHistoricalContext.d.ts +122 -0
- package/dist/tools/historical/RequestHistoricalContext.d.ts.map +1 -0
- package/dist/tools/historical/RequestHistoricalContext.js +250 -0
- package/dist/tools/historical/RequestHistoricalContext.js.map +1 -0
- package/dist/tools/historical/SearchConversationHistory.d.ts +117 -0
- package/dist/tools/historical/SearchConversationHistory.d.ts.map +1 -0
- package/dist/tools/historical/SearchConversationHistory.js +239 -0
- package/dist/tools/historical/SearchConversationHistory.js.map +1 -0
- package/dist/tools/historical/index.d.ts +14 -0
- package/dist/tools/historical/index.d.ts.map +1 -0
- package/dist/tools/historical/index.js +14 -0
- package/dist/tools/historical/index.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +21 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/mcp-management/ConfigureMcpServer.d.ts +41 -0
- package/dist/tools/mcp-management/ConfigureMcpServer.d.ts.map +1 -0
- package/dist/tools/mcp-management/ConfigureMcpServer.js +147 -0
- package/dist/tools/mcp-management/ConfigureMcpServer.js.map +1 -0
- package/dist/tools/mcp-management/DisableMcpServer.d.ts +39 -0
- package/dist/tools/mcp-management/DisableMcpServer.d.ts.map +1 -0
- package/dist/tools/mcp-management/DisableMcpServer.js +108 -0
- package/dist/tools/mcp-management/DisableMcpServer.js.map +1 -0
- package/dist/tools/mcp-management/EnableMcpServer.d.ts +49 -0
- package/dist/tools/mcp-management/EnableMcpServer.d.ts.map +1 -0
- package/dist/tools/mcp-management/EnableMcpServer.js +134 -0
- package/dist/tools/mcp-management/EnableMcpServer.js.map +1 -0
- package/dist/tools/mcp-management/GetMcpConfig.d.ts +52 -0
- package/dist/tools/mcp-management/GetMcpConfig.d.ts.map +1 -0
- package/dist/tools/mcp-management/GetMcpConfig.js +95 -0
- package/dist/tools/mcp-management/GetMcpConfig.js.map +1 -0
- package/dist/tools/mcp-management/InitMcpConfig.d.ts +113 -0
- package/dist/tools/mcp-management/InitMcpConfig.d.ts.map +1 -0
- package/dist/tools/mcp-management/InitMcpConfig.js +421 -0
- package/dist/tools/mcp-management/InitMcpConfig.js.map +1 -0
- package/dist/tools/mcp-management/ListAvailableMcpServers.d.ts +50 -0
- package/dist/tools/mcp-management/ListAvailableMcpServers.d.ts.map +1 -0
- package/dist/tools/mcp-management/ListAvailableMcpServers.js +92 -0
- package/dist/tools/mcp-management/ListAvailableMcpServers.js.map +1 -0
- package/dist/tools/mcp-management/SearchMcpServers.d.ts +44 -0
- package/dist/tools/mcp-management/SearchMcpServers.d.ts.map +1 -0
- package/dist/tools/mcp-management/SearchMcpServers.js +96 -0
- package/dist/tools/mcp-management/SearchMcpServers.js.map +1 -0
- package/dist/tools/mcp-management/index.d.ts +23 -0
- package/dist/tools/mcp-management/index.d.ts.map +1 -0
- package/dist/tools/mcp-management/index.js +16 -0
- package/dist/tools/mcp-management/index.js.map +1 -0
- package/dist/tools/registries/AddonToolRegistry.d.ts +70 -0
- package/dist/tools/registries/AddonToolRegistry.d.ts.map +1 -0
- package/dist/tools/registries/AddonToolRegistry.js +138 -0
- package/dist/tools/registries/AddonToolRegistry.js.map +1 -0
- package/dist/tools/registries/BaseToolRegistry.d.ts +38 -0
- package/dist/tools/registries/BaseToolRegistry.d.ts.map +1 -0
- package/dist/tools/registries/BaseToolRegistry.js +2058 -0
- package/dist/tools/registries/BaseToolRegistry.js.map +1 -0
- package/dist/tools/registries/index.d.ts +8 -0
- package/dist/tools/registries/index.d.ts.map +1 -0
- package/dist/tools/registries/index.js +8 -0
- package/dist/tools/registries/index.js.map +1 -0
- package/dist/tools/types/CanonicalTool.d.ts +130 -0
- package/dist/tools/types/CanonicalTool.d.ts.map +1 -0
- package/dist/tools/types/CanonicalTool.js +10 -0
- package/dist/tools/types/CanonicalTool.js.map +1 -0
- package/dist/tools/types/index.d.ts +7 -0
- package/dist/tools/types/index.d.ts.map +1 -0
- package/dist/tools/types/index.js +7 -0
- package/dist/tools/types/index.js.map +1 -0
- package/dist/training/AutoResearchGate.d.ts +64 -0
- package/dist/training/AutoResearchGate.d.ts.map +1 -0
- package/dist/training/AutoResearchGate.js +94 -0
- package/dist/training/AutoResearchGate.js.map +1 -0
- package/dist/training/AutoResearchStats.d.ts +128 -0
- package/dist/training/AutoResearchStats.d.ts.map +1 -0
- package/dist/training/AutoResearchStats.js +210 -0
- package/dist/training/AutoResearchStats.js.map +1 -0
- package/dist/training/BenchRunner.d.ts +177 -0
- package/dist/training/BenchRunner.d.ts.map +1 -0
- package/dist/training/BenchRunner.js +211 -0
- package/dist/training/BenchRunner.js.map +1 -0
- package/dist/training/DecisionPriorInjector.d.ts +18 -0
- package/dist/training/DecisionPriorInjector.d.ts.map +1 -0
- package/dist/training/DecisionPriorInjector.js +34 -0
- package/dist/training/DecisionPriorInjector.js.map +1 -0
- package/dist/training/DecisionStore.d.ts +78 -0
- package/dist/training/DecisionStore.d.ts.map +1 -0
- package/dist/training/DecisionStore.js +171 -0
- package/dist/training/DecisionStore.js.map +1 -0
- package/dist/training/ExperimentLedger.d.ts +138 -0
- package/dist/training/ExperimentLedger.d.ts.map +1 -0
- package/dist/training/ExperimentLedger.js +160 -0
- package/dist/training/ExperimentLedger.js.map +1 -0
- package/dist/training/ExperimentRunner.d.ts +88 -0
- package/dist/training/ExperimentRunner.d.ts.map +1 -0
- package/dist/training/ExperimentRunner.js +97 -0
- package/dist/training/ExperimentRunner.js.map +1 -0
- package/dist/training/ModelRouterMatrix.d.ts +197 -0
- package/dist/training/ModelRouterMatrix.d.ts.map +1 -0
- package/dist/training/ModelRouterMatrix.js +0 -0
- package/dist/training/ModelRouterMatrix.js.map +1 -0
- package/dist/training/ResearchBacklog.d.ts +102 -0
- package/dist/training/ResearchBacklog.d.ts.map +1 -0
- package/dist/training/ResearchBacklog.js +149 -0
- package/dist/training/ResearchBacklog.js.map +1 -0
- package/dist/training/TaskClassifier.d.ts +16 -0
- package/dist/training/TaskClassifier.d.ts.map +1 -0
- package/dist/training/TaskClassifier.js +70 -0
- package/dist/training/TaskClassifier.js.map +1 -0
- package/dist/training/ThompsonRouter.d.ts +53 -0
- package/dist/training/ThompsonRouter.d.ts.map +1 -0
- package/dist/training/ThompsonRouter.js +73 -0
- package/dist/training/ThompsonRouter.js.map +1 -0
- package/dist/training/VersionComparison.d.ts +90 -0
- package/dist/training/VersionComparison.d.ts.map +1 -0
- package/dist/training/VersionComparison.js +117 -0
- package/dist/training/VersionComparison.js.map +1 -0
- package/dist/ui/index.d.ts +13 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +15 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/menu-types.d.ts +314 -0
- package/dist/ui/menu-types.d.ts.map +1 -0
- package/dist/ui/menu-types.js +138 -0
- package/dist/ui/menu-types.js.map +1 -0
- package/dist/ui/types.d.ts +86 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +12 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/utils/ContextResolver.d.ts +132 -0
- package/dist/utils/ContextResolver.d.ts.map +1 -0
- package/dist/utils/ContextResolver.js +269 -0
- package/dist/utils/ContextResolver.js.map +1 -0
- package/dist/utils/DiffParser.d.ts +101 -0
- package/dist/utils/DiffParser.d.ts.map +1 -0
- package/dist/utils/DiffParser.js +193 -0
- package/dist/utils/DiffParser.js.map +1 -0
- package/dist/utils/ErrorDetector.d.ts +99 -0
- package/dist/utils/ErrorDetector.d.ts.map +1 -0
- package/dist/utils/ErrorDetector.js +258 -0
- package/dist/utils/ErrorDetector.js.map +1 -0
- package/dist/utils/TokenCounter.d.ts +97 -0
- package/dist/utils/TokenCounter.d.ts.map +1 -0
- package/dist/utils/TokenCounter.js +193 -0
- package/dist/utils/TokenCounter.js.map +1 -0
- package/dist/utils/agentDiscovery.d.ts +12 -0
- package/dist/utils/agentDiscovery.d.ts.map +1 -0
- package/dist/utils/agentDiscovery.js +72 -0
- package/dist/utils/agentDiscovery.js.map +1 -0
- package/dist/utils/ids.d.ts +5 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +14 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/index.d.ts +14 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +44 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,1376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper Model Middleware
|
|
3
|
+
* Based on: CORTEX_V4_PHASE_1.5_ARCHITECTURE.md Part 6
|
|
4
|
+
*
|
|
5
|
+
* Two-Tier Token Economy:
|
|
6
|
+
* - Expensive models (Claude, GPT-4) for actual work
|
|
7
|
+
* - Cheap helper models (Haiku, GPT-3.5, Flash) for context management
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Automatic fallback on context rejection
|
|
11
|
+
* - Transparent processing (helper does work, returns to main)
|
|
12
|
+
* - Cost tracking (60-80% savings on context operations)
|
|
13
|
+
*
|
|
14
|
+
* Week 2 Integration:
|
|
15
|
+
* - Uses independent helper middleware adapter system
|
|
16
|
+
* - Real API calls via pattern-based adapters
|
|
17
|
+
* - Supports Messages API, Chat Completions API, Google GenAI API
|
|
18
|
+
*/
|
|
19
|
+
import { helperRegistry, registerDefaultHelperAdapters } from './helpers/index.js';
|
|
20
|
+
import { TokenCounter } from '../utils/TokenCounter.js';
|
|
21
|
+
import { ErrorDetector } from '../utils/ErrorDetector.js';
|
|
22
|
+
/**
|
|
23
|
+
* Helper Model Registry
|
|
24
|
+
*
|
|
25
|
+
* Maps main model providers to their appropriate helper models
|
|
26
|
+
*/
|
|
27
|
+
export const HELPER_MODEL_REGISTRY = {
|
|
28
|
+
// Anthropic: Claude -> Haiku ($1/1M tokens)
|
|
29
|
+
anthropic: 'claude-haiku-4-5',
|
|
30
|
+
// OpenAI: cheap helper -> GPT-4.1 mini (registered, current; gpt-3.5-turbo deprecated/unregistered)
|
|
31
|
+
openai: 'gpt-4.1-mini',
|
|
32
|
+
// Google: cheap helper -> Gemini 2.5 Flash Lite (registered, current; 1.5/2.0-flash deprecated)
|
|
33
|
+
google: 'gemini-2.5-flash-lite',
|
|
34
|
+
// XAI: -> grok-4.3 (the live model; grok-4 family incl. -1-fast-* deprecated → redirects here anyway)
|
|
35
|
+
xai: 'grok-4.3',
|
|
36
|
+
// DeepSeek: -> DeepSeek V4 Flash ($0.14/1M tokens; supersedes the deprecated deepseek-chat)
|
|
37
|
+
deepseek: 'deepseek-v4-flash',
|
|
38
|
+
// Mistral: Use same model (cost-effective already)
|
|
39
|
+
mistral: 'mistral-small',
|
|
40
|
+
// Groq: Use same model (fast and cheap)
|
|
41
|
+
groq: 'llama-3.1-8b-instant',
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Helper Model Middleware
|
|
45
|
+
*
|
|
46
|
+
* Automatically handles context rejections by routing to cheaper helper models
|
|
47
|
+
*/
|
|
48
|
+
export class HelperModelMiddleware {
|
|
49
|
+
costTracking = {
|
|
50
|
+
helperModelCalls: 0,
|
|
51
|
+
helperTokensProcessed: 0,
|
|
52
|
+
helperCost: 0,
|
|
53
|
+
mainModelCalls: 0,
|
|
54
|
+
mainTokensProcessed: 0,
|
|
55
|
+
mainCost: 0,
|
|
56
|
+
totalCost: 0,
|
|
57
|
+
savings: 0,
|
|
58
|
+
savingsPercentage: 0,
|
|
59
|
+
};
|
|
60
|
+
helperAdapterRegistry;
|
|
61
|
+
compactionManager;
|
|
62
|
+
timeline;
|
|
63
|
+
modelRegistry;
|
|
64
|
+
constructor(options) {
|
|
65
|
+
// Initialize helper adapter registry
|
|
66
|
+
this.helperAdapterRegistry = helperRegistry;
|
|
67
|
+
// Register default adapters (Messages API, Chat Completions API, Google GenAI API)
|
|
68
|
+
registerDefaultHelperAdapters(this.helperAdapterRegistry);
|
|
69
|
+
// Optional integrations for persistence
|
|
70
|
+
this.compactionManager = options?.compactionManager;
|
|
71
|
+
this.timeline = options?.timeline;
|
|
72
|
+
this.modelRegistry = options?.modelRegistry;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Handle context rejection with automatic fallback
|
|
76
|
+
*
|
|
77
|
+
* Main entry point for context limit errors
|
|
78
|
+
*/
|
|
79
|
+
async handleContextRejection(originalRequest, rejectionError, mainModel) {
|
|
80
|
+
console.log('⚠ Context limit reached - activating helper model...');
|
|
81
|
+
// Select appropriate helper model
|
|
82
|
+
// Priority: 1) User-configured helperModelId, 2) Provider-based default
|
|
83
|
+
const helperModelId = mainModel.compaction?.behavior?.helperModelId
|
|
84
|
+
|| this.selectHelperModel(mainModel.provider);
|
|
85
|
+
const source = mainModel.compaction?.behavior?.helperModelId ? 'user-configured' : 'provider-default';
|
|
86
|
+
console.log(` Using helper model: ${helperModelId} (${source})`);
|
|
87
|
+
// Analyze rejection to determine strategy
|
|
88
|
+
const analysis = this.analyzeRejection(originalRequest, rejectionError, mainModel);
|
|
89
|
+
console.log(` Reason: ${analysis.reason} (${analysis.excessTokens} tokens over limit)`);
|
|
90
|
+
// Route to appropriate handler based on rejection reason
|
|
91
|
+
let response;
|
|
92
|
+
switch (analysis.reason) {
|
|
93
|
+
case 'history_too_large':
|
|
94
|
+
response = await this.handleHistoryOverflow(originalRequest, mainModel, helperModelId, analysis);
|
|
95
|
+
break;
|
|
96
|
+
case 'tool_results_too_large':
|
|
97
|
+
response = await this.handleToolResultOverflow(originalRequest, mainModel, helperModelId, analysis);
|
|
98
|
+
break;
|
|
99
|
+
case 'combined_overflow':
|
|
100
|
+
response = await this.handleCombinedOverflow(originalRequest, mainModel, helperModelId, analysis);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
console.log('[OK] Request processed via helper model fallback');
|
|
104
|
+
return response;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Handle history overflow
|
|
108
|
+
*
|
|
109
|
+
* Strategy: Compact conversation history via helper model
|
|
110
|
+
*/
|
|
111
|
+
async handleHistoryOverflow(request, mainModel, helperModelId, analysis) {
|
|
112
|
+
const startTime = Date.now();
|
|
113
|
+
// Calculate target token count (main model's available history budget)
|
|
114
|
+
const targetTokens = this.calculateHistoryBudget(mainModel);
|
|
115
|
+
// Get helper model configuration from ID
|
|
116
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
117
|
+
// Compact history using helper model
|
|
118
|
+
const compaction = await this.compactHistoryViaHelper(request.messages, targetTokens, helperConfig);
|
|
119
|
+
// Store compaction record (integrated with timeline in Week 3)
|
|
120
|
+
if (this.compactionManager && this.timeline) {
|
|
121
|
+
try {
|
|
122
|
+
const currentConversation = this.timeline.getCurrentConversation();
|
|
123
|
+
if (currentConversation) {
|
|
124
|
+
// Prepare timeline reference
|
|
125
|
+
const timelineRef = {
|
|
126
|
+
sessionId: this.timeline.sessionId,
|
|
127
|
+
conversationId: currentConversation.id,
|
|
128
|
+
eventId: `compaction-${Date.now()}`,
|
|
129
|
+
turnRange: {
|
|
130
|
+
start: Math.max(0, currentConversation.turnCount - request.messages.length),
|
|
131
|
+
end: currentConversation.turnCount
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
// Prepare compaction summaries
|
|
135
|
+
const summaries = {
|
|
136
|
+
compressed: compaction.summary.substring(0, 500), // ~100-200 tokens
|
|
137
|
+
standard: compaction.summary, // Full summary
|
|
138
|
+
detailed: compaction.summary, // Use same for now
|
|
139
|
+
metadata: {
|
|
140
|
+
topics: this.extractTopics(compaction.summary),
|
|
141
|
+
decisions: [],
|
|
142
|
+
toolsUsed: this.extractTools(request.messages),
|
|
143
|
+
filesModified: [],
|
|
144
|
+
modelsInvolved: [mainModel.id, helperModelId],
|
|
145
|
+
keyMoments: []
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
// Prepare processing details
|
|
149
|
+
const processing = {
|
|
150
|
+
helperModelId: compaction.helperModelId,
|
|
151
|
+
helperProvider: helperConfig.provider,
|
|
152
|
+
processingTime: compaction.processingTime,
|
|
153
|
+
cost: compaction.cost,
|
|
154
|
+
tokens: {
|
|
155
|
+
input: compaction.originalTokens,
|
|
156
|
+
output: compaction.compressedTokens
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
// Convert compacted messages to Message format
|
|
160
|
+
// Use a simple user message format for storage
|
|
161
|
+
const originalMessages = request.messages.map((msg, idx) => ({
|
|
162
|
+
uuid: `msg-${idx}-${Date.now()}`,
|
|
163
|
+
type: 'user',
|
|
164
|
+
role: 'user',
|
|
165
|
+
message: {
|
|
166
|
+
role: msg.role || 'user',
|
|
167
|
+
content: msg.content || ''
|
|
168
|
+
},
|
|
169
|
+
timestamp: new Date().toISOString()
|
|
170
|
+
}));
|
|
171
|
+
// Store compaction
|
|
172
|
+
await this.compactionManager.createCompaction({
|
|
173
|
+
type: 'helper-fallback',
|
|
174
|
+
timeline: timelineRef,
|
|
175
|
+
originalMessages,
|
|
176
|
+
summaries,
|
|
177
|
+
processing
|
|
178
|
+
});
|
|
179
|
+
// Record compaction in timeline
|
|
180
|
+
this.timeline.recordCompaction(timelineRef.eventId, timelineRef.turnRange.start, timelineRef.turnRange.end, request.messages.length, compaction.originalTokens, compaction.compressedTokens, 'helper-fallback', helperModelId);
|
|
181
|
+
console.log(` [OK] Compaction stored (ID: ${timelineRef.eventId})`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
console.warn(` ⚠ Failed to store compaction: ${error.message}`);
|
|
186
|
+
// Continue even if storage fails - compaction still worked
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const processingTime = Date.now() - startTime;
|
|
190
|
+
// Track costs
|
|
191
|
+
this.trackHelperModelUsage(compaction.originalTokens + compaction.compressedTokens, compaction.cost);
|
|
192
|
+
// Return response that indicates caller should retry with compacted messages
|
|
193
|
+
// The actual main model request is made by the calling code, not by this middleware
|
|
194
|
+
return {
|
|
195
|
+
content: compaction.compactedMessages,
|
|
196
|
+
usage: {
|
|
197
|
+
inputTokens: compaction.compressedTokens,
|
|
198
|
+
outputTokens: 0, // No output yet - this is for retry
|
|
199
|
+
totalTokens: compaction.compressedTokens,
|
|
200
|
+
},
|
|
201
|
+
stopReason: 'needs_retry',
|
|
202
|
+
metadata: {
|
|
203
|
+
usedHelperModel: true,
|
|
204
|
+
helperModelId,
|
|
205
|
+
compaction: {
|
|
206
|
+
...compaction,
|
|
207
|
+
analysis, // Include original analysis
|
|
208
|
+
compactedMessages: compaction.compactedMessages
|
|
209
|
+
},
|
|
210
|
+
processingTime,
|
|
211
|
+
action: 'retry_with_compacted_history'
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Handle tool result overflow
|
|
217
|
+
*
|
|
218
|
+
* Strategy: Summarize large tool results via helper model
|
|
219
|
+
*/
|
|
220
|
+
async handleToolResultOverflow(request, _mainModel, helperModelId, analysis) {
|
|
221
|
+
const startTime = Date.now();
|
|
222
|
+
// Get helper model configuration
|
|
223
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
224
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
225
|
+
// Find messages with large tool results
|
|
226
|
+
const modifiedMessages = [...request.messages];
|
|
227
|
+
let totalSaved = 0;
|
|
228
|
+
let totalCost = 0;
|
|
229
|
+
for (let i = 0; i < modifiedMessages.length; i++) {
|
|
230
|
+
const msg = modifiedMessages[i];
|
|
231
|
+
// Check if this is a tool result message
|
|
232
|
+
if (msg.role === 'tool' || msg.type === 'tool_result') {
|
|
233
|
+
const content = typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content);
|
|
234
|
+
const estimatedTokens = content.length / 4;
|
|
235
|
+
// If tool result is large (>2000 tokens), summarize it
|
|
236
|
+
if (estimatedTokens > 2000) {
|
|
237
|
+
const targetTokens = Math.min(500, Math.floor(estimatedTokens * 0.25)); // Reduce to 25%
|
|
238
|
+
console.log(` Summarizing tool result ${i} (${Math.floor(estimatedTokens)} → ${targetTokens} tokens)...`);
|
|
239
|
+
try {
|
|
240
|
+
// Summarize via helper model
|
|
241
|
+
const result = await adapter.summarizeToolResult(content, helperConfig, targetTokens);
|
|
242
|
+
// Replace with summarized version
|
|
243
|
+
modifiedMessages[i] = {
|
|
244
|
+
...msg,
|
|
245
|
+
content: result.summary,
|
|
246
|
+
metadata: {
|
|
247
|
+
...msg.metadata,
|
|
248
|
+
summarized: true,
|
|
249
|
+
originalTokens: result.originalTokens,
|
|
250
|
+
summaryTokens: result.summaryTokens
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
totalSaved += result.tokensSaved;
|
|
254
|
+
totalCost += result.cost;
|
|
255
|
+
console.log(` [OK] Tool result ${i} summarized: ${result.originalTokens} → ${result.summaryTokens} tokens`);
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
console.warn(` ⚠ Failed to summarize tool result ${i}: ${error.message}`);
|
|
259
|
+
// Keep original message if summarization fails
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const processingTime = Date.now() - startTime;
|
|
265
|
+
// Track costs
|
|
266
|
+
this.trackHelperModelUsage(analysis.toolResultTokens + totalSaved, totalCost);
|
|
267
|
+
// Return response with modified messages for retry
|
|
268
|
+
return {
|
|
269
|
+
content: modifiedMessages,
|
|
270
|
+
usage: {
|
|
271
|
+
inputTokens: analysis.totalTokens - totalSaved,
|
|
272
|
+
outputTokens: 0,
|
|
273
|
+
totalTokens: analysis.totalTokens - totalSaved,
|
|
274
|
+
},
|
|
275
|
+
stopReason: 'needs_retry',
|
|
276
|
+
metadata: {
|
|
277
|
+
usedHelperModel: true,
|
|
278
|
+
helperModelId,
|
|
279
|
+
strategy: 'tool_result_summarization',
|
|
280
|
+
summarization: {
|
|
281
|
+
toolResultsSummarized: modifiedMessages.filter(m => m.metadata?.summarized).length,
|
|
282
|
+
tokensSaved: totalSaved,
|
|
283
|
+
cost: totalCost
|
|
284
|
+
},
|
|
285
|
+
processingTime,
|
|
286
|
+
action: 'retry_with_summarized_tools'
|
|
287
|
+
},
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Handle combined overflow
|
|
292
|
+
*
|
|
293
|
+
* Strategy: Compact history AND summarize tool results
|
|
294
|
+
*/
|
|
295
|
+
async handleCombinedOverflow(request, mainModel, helperModelId, analysis) {
|
|
296
|
+
const startTime = Date.now();
|
|
297
|
+
console.log(' Using combined strategy: compacting history AND summarizing tool results...');
|
|
298
|
+
// Step 1: Summarize tool results first (more targeted reduction)
|
|
299
|
+
const toolSummarizationResult = await this.handleToolResultOverflow(request, mainModel, helperModelId, analysis);
|
|
300
|
+
// Extract modified messages from tool summarization
|
|
301
|
+
const messagesAfterToolSummary = toolSummarizationResult.content;
|
|
302
|
+
const toolSummaryCost = toolSummarizationResult.metadata?.summarization?.cost || 0;
|
|
303
|
+
const toolTokensSaved = toolSummarizationResult.metadata?.summarization?.tokensSaved || 0;
|
|
304
|
+
// Step 2: Check if we still need history compaction
|
|
305
|
+
const remainingTokens = analysis.totalTokens - toolTokensSaved;
|
|
306
|
+
const maxTokens = analysis.maxTokens;
|
|
307
|
+
if (remainingTokens > maxTokens * 0.9) {
|
|
308
|
+
// Still need history compaction
|
|
309
|
+
console.log(` Still ${remainingTokens} tokens (limit: ${maxTokens}), compacting history...`);
|
|
310
|
+
const historyCompactionRequest = {
|
|
311
|
+
...request,
|
|
312
|
+
messages: messagesAfterToolSummary
|
|
313
|
+
};
|
|
314
|
+
const historyResult = await this.handleHistoryOverflow(historyCompactionRequest, mainModel, helperModelId, {
|
|
315
|
+
...analysis,
|
|
316
|
+
totalTokens: remainingTokens,
|
|
317
|
+
excessTokens: remainingTokens - maxTokens
|
|
318
|
+
});
|
|
319
|
+
const processingTime = Date.now() - startTime;
|
|
320
|
+
const historyCost = historyResult.metadata?.compaction?.cost || 0;
|
|
321
|
+
const historyTokensSaved = historyResult.metadata?.compaction?.tokensSaved || 0;
|
|
322
|
+
// Return combined result
|
|
323
|
+
return {
|
|
324
|
+
content: historyResult.content, // Compacted messages
|
|
325
|
+
usage: {
|
|
326
|
+
inputTokens: remainingTokens - historyTokensSaved,
|
|
327
|
+
outputTokens: 0,
|
|
328
|
+
totalTokens: remainingTokens - historyTokensSaved,
|
|
329
|
+
},
|
|
330
|
+
stopReason: 'needs_retry',
|
|
331
|
+
metadata: {
|
|
332
|
+
usedHelperModel: true,
|
|
333
|
+
helperModelId,
|
|
334
|
+
strategy: 'combined',
|
|
335
|
+
combined: {
|
|
336
|
+
toolSummarization: toolSummarizationResult.metadata?.summarization,
|
|
337
|
+
historyCompaction: historyResult.metadata?.compaction,
|
|
338
|
+
totalTokensSaved: toolTokensSaved + historyTokensSaved,
|
|
339
|
+
totalCost: toolSummaryCost + historyCost
|
|
340
|
+
},
|
|
341
|
+
processingTime,
|
|
342
|
+
action: 'retry_with_combined_reduction'
|
|
343
|
+
},
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
// Tool summarization was enough
|
|
348
|
+
const processingTime = Date.now() - startTime;
|
|
349
|
+
console.log(` [OK] Tool summarization sufficient (now ${remainingTokens} tokens)`);
|
|
350
|
+
return {
|
|
351
|
+
content: messagesAfterToolSummary,
|
|
352
|
+
usage: {
|
|
353
|
+
inputTokens: remainingTokens,
|
|
354
|
+
outputTokens: 0,
|
|
355
|
+
totalTokens: remainingTokens,
|
|
356
|
+
},
|
|
357
|
+
stopReason: 'needs_retry',
|
|
358
|
+
metadata: {
|
|
359
|
+
usedHelperModel: true,
|
|
360
|
+
helperModelId,
|
|
361
|
+
strategy: 'combined',
|
|
362
|
+
combined: {
|
|
363
|
+
toolSummarization: toolSummarizationResult.metadata?.summarization,
|
|
364
|
+
historyCompaction: null,
|
|
365
|
+
totalTokensSaved: toolTokensSaved,
|
|
366
|
+
totalCost: toolSummaryCost
|
|
367
|
+
},
|
|
368
|
+
processingTime,
|
|
369
|
+
action: 'retry_with_tool_summarization_only'
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Compact conversation history using helper model
|
|
376
|
+
*
|
|
377
|
+
* Week 2 Integration: Uses real API calls via helper middleware adapters
|
|
378
|
+
*/
|
|
379
|
+
async compactHistoryViaHelper(messages, targetTokens, helperConfig) {
|
|
380
|
+
console.log(` Compacting ${messages.length} messages via ${helperConfig.id}...`);
|
|
381
|
+
// Convert messages to HelperCanonicalMessage format
|
|
382
|
+
const canonicalMessages = messages.map(msg => ({
|
|
383
|
+
role: msg.role || 'user',
|
|
384
|
+
content: msg.content || '',
|
|
385
|
+
timestamp: msg.timestamp
|
|
386
|
+
}));
|
|
387
|
+
// Get the appropriate adapter for this helper model's API pattern
|
|
388
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
389
|
+
console.log(` Using adapter: ${adapter.name} (pattern: ${adapter.apiPattern})`);
|
|
390
|
+
// Make REAL API call via adapter
|
|
391
|
+
const result = await adapter.compact(canonicalMessages, helperConfig, targetTokens);
|
|
392
|
+
console.log(` [OK] Compaction complete: ${result.originalTokens} → ${result.compressedTokens} tokens ` +
|
|
393
|
+
`(saved ${result.tokensSaved}, cost: $${result.cost.toFixed(4)})`);
|
|
394
|
+
// Update cost tracking
|
|
395
|
+
this.costTracking.helperModelCalls++;
|
|
396
|
+
this.costTracking.helperTokensProcessed += result.originalTokens + result.compressedTokens;
|
|
397
|
+
this.costTracking.helperCost += result.cost;
|
|
398
|
+
// Convert back to the original message format expected by CompactionResult
|
|
399
|
+
const compactedMessages = result.compactedMessages.map(msg => ({
|
|
400
|
+
role: msg.role,
|
|
401
|
+
content: msg.content,
|
|
402
|
+
...(msg.timestamp && { timestamp: msg.timestamp })
|
|
403
|
+
}));
|
|
404
|
+
return {
|
|
405
|
+
compactedMessages,
|
|
406
|
+
summary: result.summary,
|
|
407
|
+
originalTokens: result.originalTokens,
|
|
408
|
+
compressedTokens: result.compressedTokens,
|
|
409
|
+
tokensSaved: result.tokensSaved,
|
|
410
|
+
helperModelId: result.helperModelId,
|
|
411
|
+
processingTime: result.processingTime,
|
|
412
|
+
cost: result.cost
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Select helper model based on main model provider
|
|
417
|
+
*/
|
|
418
|
+
selectHelperModel(provider) {
|
|
419
|
+
// Last-resort default = Gemma 4 on Cloudflare Workers AI
|
|
420
|
+
// (@cf/google/gemma-4-26b-a4b-it). Cheap, registered, strong for the
|
|
421
|
+
// text-only helper role (compaction/mentorship — no tool-calling, so
|
|
422
|
+
// the gemma-4 function-synthesis caveat doesn't apply here).
|
|
423
|
+
return HELPER_MODEL_REGISTRY[provider.toLowerCase()] || '@cf/google/gemma-4-26b-a4b-it';
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Get ModelConfig for a helper/mentorship model by ID
|
|
427
|
+
*
|
|
428
|
+
* Priority:
|
|
429
|
+
* 1. Main model registry (allows ANY model including premium models for mentorship)
|
|
430
|
+
* 2. Fallback to hardcoded cheap helper models (for backward compatibility)
|
|
431
|
+
*/
|
|
432
|
+
static _helperConfigsCache = null;
|
|
433
|
+
/**
|
|
434
|
+
* R11 (Opus finding): the helper-config dictionary was rebuilt as an
|
|
435
|
+
* object literal on every getHelperModelConfig call. Hoisted to a
|
|
436
|
+
* memoized static — built once, same reference across calls.
|
|
437
|
+
*/
|
|
438
|
+
static getHelperConfigsCached() {
|
|
439
|
+
if (HelperModelMiddleware._helperConfigsCache) {
|
|
440
|
+
return HelperModelMiddleware._helperConfigsCache;
|
|
441
|
+
}
|
|
442
|
+
const helperConfigs = {
|
|
443
|
+
// Messages API (pattern: 'messages')
|
|
444
|
+
'claude-haiku-4-5': {
|
|
445
|
+
id: 'claude-haiku-4-5',
|
|
446
|
+
displayName: 'Claude 3.5 Haiku',
|
|
447
|
+
provider: 'anthropic',
|
|
448
|
+
family: 'claude-3.5',
|
|
449
|
+
api: {
|
|
450
|
+
pattern: 'messages',
|
|
451
|
+
endpoint: 'https://api.anthropic.com/v1/messages',
|
|
452
|
+
apiKeyEnvVar: 'ANTHROPIC_API_KEY',
|
|
453
|
+
authHeader: 'x-api-key',
|
|
454
|
+
authPrefix: '',
|
|
455
|
+
versionHeader: { name: 'anthropic-version', value: '2023-06-01' }
|
|
456
|
+
},
|
|
457
|
+
limits: {
|
|
458
|
+
contextWindow: 200000,
|
|
459
|
+
outputTokens: 8192,
|
|
460
|
+
requestsPerMinute: 4000,
|
|
461
|
+
tokensPerMinute: 400000
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
// Chat Completions API (pattern: 'chat/completions')
|
|
465
|
+
'gpt-3.5-turbo': {
|
|
466
|
+
id: 'gpt-3.5-turbo',
|
|
467
|
+
displayName: 'GPT-3.5 Turbo',
|
|
468
|
+
provider: 'openai',
|
|
469
|
+
family: 'gpt-3.5',
|
|
470
|
+
api: {
|
|
471
|
+
pattern: 'chat/completions',
|
|
472
|
+
endpoint: 'https://api.openai.com/v1/chat/completions',
|
|
473
|
+
apiKeyEnvVar: 'OPENAI_API_KEY',
|
|
474
|
+
authHeader: 'Authorization',
|
|
475
|
+
authPrefix: 'Bearer'
|
|
476
|
+
},
|
|
477
|
+
limits: {
|
|
478
|
+
contextWindow: 16385,
|
|
479
|
+
outputTokens: 4096,
|
|
480
|
+
requestsPerMinute: 10000,
|
|
481
|
+
tokensPerMinute: 2000000
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
// Google GenAI API (pattern: 'google-genai') - FREE Gemma models
|
|
485
|
+
'gemma-3-27b-it': {
|
|
486
|
+
id: 'gemma-3-27b-it',
|
|
487
|
+
displayName: 'Gemma 3 27B (FREE)',
|
|
488
|
+
provider: 'google',
|
|
489
|
+
family: 'gemma-3',
|
|
490
|
+
api: {
|
|
491
|
+
pattern: 'google-genai',
|
|
492
|
+
endpoint: 'https://generativelanguage.googleapis.com/v1beta/models/gemma-3-27b-it:generateContent',
|
|
493
|
+
apiKeyEnvVar: 'GOOGLE_API_KEY',
|
|
494
|
+
authHeader: 'x-goog-api-key',
|
|
495
|
+
authPrefix: ''
|
|
496
|
+
},
|
|
497
|
+
limits: {
|
|
498
|
+
contextWindow: 128000,
|
|
499
|
+
outputTokens: 8192,
|
|
500
|
+
requestsPerMinute: 60,
|
|
501
|
+
tokensPerMinute: 1000000
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
// GenerateContent API (pattern: 'generateContent') - Paid Gemini models
|
|
505
|
+
'gemini-2.0-flash-lite': {
|
|
506
|
+
id: 'gemini-2.0-flash-lite',
|
|
507
|
+
displayName: 'Gemini 2.0 Flash Lite',
|
|
508
|
+
provider: 'google',
|
|
509
|
+
family: 'gemini-2.0',
|
|
510
|
+
api: {
|
|
511
|
+
pattern: 'generateContent',
|
|
512
|
+
endpoint: 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-lite:generateContent',
|
|
513
|
+
apiKeyEnvVar: 'GOOGLE_API_KEY',
|
|
514
|
+
authHeader: 'x-goog-api-key',
|
|
515
|
+
authPrefix: ''
|
|
516
|
+
},
|
|
517
|
+
limits: {
|
|
518
|
+
contextWindow: 1000000,
|
|
519
|
+
outputTokens: 8192,
|
|
520
|
+
requestsPerMinute: 1000,
|
|
521
|
+
tokensPerMinute: 4000000
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
// ResponsesAPI (pattern: 'responses') - OpenAI stateful conversation API
|
|
525
|
+
'gpt-5-codex': {
|
|
526
|
+
id: 'gpt-5-codex',
|
|
527
|
+
displayName: 'GPT-5 Codex',
|
|
528
|
+
provider: 'openai',
|
|
529
|
+
family: 'gpt-5',
|
|
530
|
+
api: {
|
|
531
|
+
pattern: 'responses',
|
|
532
|
+
endpoint: 'https://api.openai.com/v1/responses',
|
|
533
|
+
apiKeyEnvVar: 'OPENAI_API_KEY',
|
|
534
|
+
authHeader: 'Authorization',
|
|
535
|
+
authPrefix: 'Bearer'
|
|
536
|
+
},
|
|
537
|
+
limits: {
|
|
538
|
+
contextWindow: 400000,
|
|
539
|
+
outputTokens: 128000,
|
|
540
|
+
requestsPerMinute: 500,
|
|
541
|
+
tokensPerMinute: 1000000
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
// X.AI Grok 4.1 Fast Non-Reasoning (pattern: 'chat/completions') - OpenAI-compatible API
|
|
545
|
+
'grok-4-1-fast-non-reasoning': {
|
|
546
|
+
id: 'grok-4-1-fast-non-reasoning',
|
|
547
|
+
displayName: 'Grok 4.1 Fast (Non-Reasoning)',
|
|
548
|
+
provider: 'xai',
|
|
549
|
+
family: 'grok-4',
|
|
550
|
+
api: {
|
|
551
|
+
pattern: 'chat/completions',
|
|
552
|
+
endpoint: 'https://api.x.ai/v1/chat/completions',
|
|
553
|
+
apiKeyEnvVar: 'XAI_API_KEY',
|
|
554
|
+
authHeader: 'Authorization',
|
|
555
|
+
authPrefix: 'Bearer'
|
|
556
|
+
},
|
|
557
|
+
limits: {
|
|
558
|
+
contextWindow: 131072,
|
|
559
|
+
outputTokens: 16384,
|
|
560
|
+
requestsPerMinute: 60,
|
|
561
|
+
tokensPerMinute: 100000
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
// X.AI Grok Beta (legacy alias, pattern: 'chat/completions')
|
|
565
|
+
'grok-beta': {
|
|
566
|
+
id: 'grok-beta',
|
|
567
|
+
displayName: 'Grok Beta (deprecated)',
|
|
568
|
+
provider: 'xai',
|
|
569
|
+
family: 'grok',
|
|
570
|
+
api: {
|
|
571
|
+
pattern: 'chat/completions',
|
|
572
|
+
endpoint: 'https://api.x.ai/v1/chat/completions',
|
|
573
|
+
apiKeyEnvVar: 'XAI_API_KEY',
|
|
574
|
+
authHeader: 'Authorization',
|
|
575
|
+
authPrefix: 'Bearer'
|
|
576
|
+
},
|
|
577
|
+
limits: {
|
|
578
|
+
contextWindow: 131072,
|
|
579
|
+
outputTokens: 4096,
|
|
580
|
+
requestsPerMinute: 60,
|
|
581
|
+
tokensPerMinute: 100000
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
};
|
|
585
|
+
// grok-4.3 = live xAI model (grok-4 family deprecated → redirects here).
|
|
586
|
+
helperConfigs['grok-4.3'] = {
|
|
587
|
+
id: 'grok-4.3',
|
|
588
|
+
displayName: 'Grok 4.3',
|
|
589
|
+
provider: 'xai',
|
|
590
|
+
family: 'grok-4.3',
|
|
591
|
+
api: {
|
|
592
|
+
pattern: 'chat/completions',
|
|
593
|
+
endpoint: 'https://api.x.ai/v1/chat/completions',
|
|
594
|
+
apiKeyEnvVar: 'XAI_API_KEY',
|
|
595
|
+
authHeader: 'Authorization',
|
|
596
|
+
authPrefix: 'Bearer'
|
|
597
|
+
},
|
|
598
|
+
limits: {
|
|
599
|
+
contextWindow: 1000000,
|
|
600
|
+
outputTokens: 16384,
|
|
601
|
+
requestsPerMinute: 60,
|
|
602
|
+
tokensPerMinute: 100000
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
// Current cheap helpers matching the modernized HELPER_MODEL_REGISTRY
|
|
606
|
+
// defaults — so the no-registry fallback path resolves them too.
|
|
607
|
+
helperConfigs['gpt-4.1-mini'] = {
|
|
608
|
+
id: 'gpt-4.1-mini',
|
|
609
|
+
displayName: 'GPT-4.1 mini',
|
|
610
|
+
provider: 'openai',
|
|
611
|
+
family: 'gpt-4.1',
|
|
612
|
+
api: {
|
|
613
|
+
pattern: 'chat/completions',
|
|
614
|
+
endpoint: 'https://api.openai.com/v1/chat/completions',
|
|
615
|
+
apiKeyEnvVar: 'OPENAI_API_KEY',
|
|
616
|
+
authHeader: 'Authorization',
|
|
617
|
+
authPrefix: 'Bearer'
|
|
618
|
+
},
|
|
619
|
+
limits: {
|
|
620
|
+
contextWindow: 1000000,
|
|
621
|
+
outputTokens: 32768,
|
|
622
|
+
requestsPerMinute: 5000,
|
|
623
|
+
tokensPerMinute: 2000000
|
|
624
|
+
}
|
|
625
|
+
};
|
|
626
|
+
helperConfigs['gemini-2.5-flash-lite'] = {
|
|
627
|
+
id: 'gemini-2.5-flash-lite',
|
|
628
|
+
displayName: 'Gemini 2.5 Flash Lite',
|
|
629
|
+
provider: 'google',
|
|
630
|
+
family: 'gemini-2.5',
|
|
631
|
+
api: {
|
|
632
|
+
pattern: 'generateContent',
|
|
633
|
+
endpoint: 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-lite:generateContent',
|
|
634
|
+
apiKeyEnvVar: 'GOOGLE_API_KEY',
|
|
635
|
+
authHeader: 'x-goog-api-key',
|
|
636
|
+
authPrefix: ''
|
|
637
|
+
},
|
|
638
|
+
limits: {
|
|
639
|
+
contextWindow: 1000000,
|
|
640
|
+
outputTokens: 8192,
|
|
641
|
+
requestsPerMinute: 1000,
|
|
642
|
+
tokensPerMinute: 4000000
|
|
643
|
+
}
|
|
644
|
+
};
|
|
645
|
+
// DeepSeek — current cheap helper (OpenAI-compatible chat/completions).
|
|
646
|
+
// (deepseek-chat removed 2026-06-10 — DeepSeek deprecating it 2026-07-24;
|
|
647
|
+
// deepseek-v4-flash supersedes it at the same price.)
|
|
648
|
+
helperConfigs['deepseek-v4-flash'] = {
|
|
649
|
+
id: 'deepseek-v4-flash',
|
|
650
|
+
displayName: 'DeepSeek V4 Flash',
|
|
651
|
+
provider: 'deepseek',
|
|
652
|
+
family: 'deepseek-v4',
|
|
653
|
+
api: {
|
|
654
|
+
pattern: 'chat/completions',
|
|
655
|
+
endpoint: 'https://api.deepseek.com/chat/completions',
|
|
656
|
+
apiKeyEnvVar: 'DEEPSEEK_API_KEY',
|
|
657
|
+
authHeader: 'Authorization',
|
|
658
|
+
authPrefix: 'Bearer'
|
|
659
|
+
},
|
|
660
|
+
limits: {
|
|
661
|
+
contextWindow: 1000000,
|
|
662
|
+
outputTokens: 8192,
|
|
663
|
+
requestsPerMinute: 1000,
|
|
664
|
+
tokensPerMinute: 1000000
|
|
665
|
+
}
|
|
666
|
+
};
|
|
667
|
+
// FREE Gemma 3 family — zero-cost helpers (provider google, google-genai
|
|
668
|
+
// pattern). Preferred for compaction/mentorship since they cost nothing.
|
|
669
|
+
for (const g of [
|
|
670
|
+
{ id: 'gemma-3-1b-it', name: 'Gemma 3 1B IT (FREE)' },
|
|
671
|
+
{ id: 'gemma-3-4b-it', name: 'Gemma 3 4B IT (FREE)' },
|
|
672
|
+
{ id: 'gemma-3-12b-it', name: 'Gemma 3 12B IT (FREE)' },
|
|
673
|
+
{ id: 'gemma-3-27b-it', name: 'Gemma 3 27B IT (FREE)' },
|
|
674
|
+
]) {
|
|
675
|
+
helperConfigs[g.id] = {
|
|
676
|
+
id: g.id,
|
|
677
|
+
displayName: g.name,
|
|
678
|
+
provider: 'google',
|
|
679
|
+
family: 'gemma-3',
|
|
680
|
+
api: {
|
|
681
|
+
pattern: 'google-genai',
|
|
682
|
+
endpoint: 'https://generativelanguage.googleapis.com/v1beta/models',
|
|
683
|
+
apiKeyEnvVar: 'GEMINI_API_KEY',
|
|
684
|
+
authHeader: 'x-goog-api-key',
|
|
685
|
+
authPrefix: ''
|
|
686
|
+
},
|
|
687
|
+
limits: {
|
|
688
|
+
contextWindow: 8192,
|
|
689
|
+
outputTokens: 8192,
|
|
690
|
+
requestsPerMinute: 1000,
|
|
691
|
+
tokensPerMinute: 1000000
|
|
692
|
+
}
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
// Gemma 4 via Cloudflare Workers AI (OpenAI-compatible chat/completions).
|
|
696
|
+
// The default helper; also the "function gemma" model (gemma-4 +
|
|
697
|
+
// function-call synthesis — N/A for the text-only helper role).
|
|
698
|
+
helperConfigs['@cf/google/gemma-4-26b-a4b-it'] = {
|
|
699
|
+
id: '@cf/google/gemma-4-26b-a4b-it',
|
|
700
|
+
displayName: 'Gemma 4 26B A4B (Cloudflare)',
|
|
701
|
+
provider: 'cloudflare',
|
|
702
|
+
family: 'gemma',
|
|
703
|
+
api: {
|
|
704
|
+
pattern: 'chat/completions',
|
|
705
|
+
endpoint: 'https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1/chat/completions',
|
|
706
|
+
apiKeyEnvVar: 'CLOUDFLARE_API_TOKEN',
|
|
707
|
+
authHeader: 'Authorization',
|
|
708
|
+
authPrefix: 'Bearer'
|
|
709
|
+
},
|
|
710
|
+
limits: {
|
|
711
|
+
contextWindow: 256000,
|
|
712
|
+
outputTokens: 8192,
|
|
713
|
+
requestsPerMinute: 300,
|
|
714
|
+
tokensPerMinute: 1000000
|
|
715
|
+
}
|
|
716
|
+
};
|
|
717
|
+
HelperModelMiddleware._helperConfigsCache = helperConfigs;
|
|
718
|
+
return helperConfigs;
|
|
719
|
+
}
|
|
720
|
+
getHelperModelConfig(modelId) {
|
|
721
|
+
// PRIORITY 1: Try main model registry first (enables premium models for mentorship)
|
|
722
|
+
if (this.modelRegistry && this.modelRegistry.hasModel(modelId)) {
|
|
723
|
+
return this.modelRegistry.getModel(modelId);
|
|
724
|
+
}
|
|
725
|
+
// PRIORITY 2: Fallback to hardcoded cheap helper configurations
|
|
726
|
+
// Using partial configs with type assertion - full configs should come from central registry
|
|
727
|
+
// Covers ALL 5 API patterns: messages, chat/completions, google-genai, generateContent, responses
|
|
728
|
+
const helperConfigs = HelperModelMiddleware.getHelperConfigsCached();
|
|
729
|
+
const config = helperConfigs[modelId];
|
|
730
|
+
if (!config) {
|
|
731
|
+
throw new Error(`HelperModelMiddleware: No configuration found for helper model "${modelId}". ` +
|
|
732
|
+
`Available: ${Object.keys(helperConfigs).join(', ')}`);
|
|
733
|
+
}
|
|
734
|
+
// Type assertion: These partial configs have all fields needed by helper adapters
|
|
735
|
+
// Full ModelConfig validation should happen in central model registry
|
|
736
|
+
return config;
|
|
737
|
+
}
|
|
738
|
+
/**
|
|
739
|
+
* Analyze context rejection to determine cause
|
|
740
|
+
*/
|
|
741
|
+
analyzeRejection(request, _error, model) {
|
|
742
|
+
// Use provider-specific tokenizer for accurate counting
|
|
743
|
+
const countTokens = (obj) => {
|
|
744
|
+
return TokenCounter.count(obj, model).tokens;
|
|
745
|
+
};
|
|
746
|
+
const historyTokens = request.messages.reduce((sum, m) => sum + countTokens(m), 0);
|
|
747
|
+
// Calculate token count specifically from tool result messages
|
|
748
|
+
const toolResultTokens = request.messages.reduce((sum, msg) => {
|
|
749
|
+
if (msg.role === 'tool' || msg.type === 'tool_result') {
|
|
750
|
+
return sum + countTokens(msg);
|
|
751
|
+
}
|
|
752
|
+
return sum;
|
|
753
|
+
}, 0);
|
|
754
|
+
// R11 (Cortex finding): toolResultTokens is a SUBSET breakdown of
|
|
755
|
+
// historyTokens (tool messages are already counted in historyTokens) —
|
|
756
|
+
// adding it again double-counts every tool_result.
|
|
757
|
+
const totalTokens = historyTokens;
|
|
758
|
+
const maxTokens = model.limits.contextWindow;
|
|
759
|
+
const excessTokens = totalTokens - maxTokens;
|
|
760
|
+
// Determine primary cause
|
|
761
|
+
let reason;
|
|
762
|
+
if (toolResultTokens > maxTokens * 0.3) {
|
|
763
|
+
if (historyTokens > maxTokens * 0.5) {
|
|
764
|
+
reason = 'combined_overflow';
|
|
765
|
+
}
|
|
766
|
+
else {
|
|
767
|
+
reason = 'tool_results_too_large';
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
else {
|
|
771
|
+
reason = 'history_too_large';
|
|
772
|
+
}
|
|
773
|
+
return {
|
|
774
|
+
reason,
|
|
775
|
+
historyTokens,
|
|
776
|
+
toolResultTokens,
|
|
777
|
+
totalTokens,
|
|
778
|
+
maxTokens,
|
|
779
|
+
excessTokens,
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* Calculate available history budget for a model
|
|
784
|
+
*/
|
|
785
|
+
calculateHistoryBudget(model) {
|
|
786
|
+
const total = model.limits.contextWindow;
|
|
787
|
+
const outputReserve = model.limits.outputTokens || 4096;
|
|
788
|
+
const toolsReserve = 2000; // Reserve for tool definitions
|
|
789
|
+
const systemReserve = 500; // Reserve for system prompts
|
|
790
|
+
return total - outputReserve - toolsReserve - systemReserve;
|
|
791
|
+
}
|
|
792
|
+
/**
|
|
793
|
+
* Check if error is a context limit error using provider-specific detection
|
|
794
|
+
*/
|
|
795
|
+
isContextLimitError(error, provider) {
|
|
796
|
+
// Use ErrorDetector for provider-specific detection
|
|
797
|
+
return ErrorDetector.isContextLimitError(error, provider);
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* Track helper model usage for cost analysis
|
|
801
|
+
*/
|
|
802
|
+
trackHelperModelUsage(tokens, cost) {
|
|
803
|
+
this.costTracking.helperModelCalls++;
|
|
804
|
+
this.costTracking.helperTokensProcessed += tokens;
|
|
805
|
+
this.costTracking.helperCost += cost;
|
|
806
|
+
this.costTracking.totalCost += cost;
|
|
807
|
+
// Calculate savings (compared to using main model)
|
|
808
|
+
// Assuming main model is ~10x more expensive
|
|
809
|
+
const mainModelEquivalentCost = cost * 10;
|
|
810
|
+
this.costTracking.savings += mainModelEquivalentCost - cost;
|
|
811
|
+
this.costTracking.savingsPercentage =
|
|
812
|
+
(this.costTracking.savings / (this.costTracking.totalCost + this.costTracking.savings)) *
|
|
813
|
+
100;
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* Track main model usage
|
|
817
|
+
*/
|
|
818
|
+
trackMainModelUsage(tokens, cost) {
|
|
819
|
+
this.costTracking.mainModelCalls++;
|
|
820
|
+
this.costTracking.mainTokensProcessed += tokens;
|
|
821
|
+
this.costTracking.mainCost += cost;
|
|
822
|
+
this.costTracking.totalCost += cost;
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* Get cost tracking statistics
|
|
826
|
+
*/
|
|
827
|
+
getCostTracking() {
|
|
828
|
+
return { ...this.costTracking };
|
|
829
|
+
}
|
|
830
|
+
/**
|
|
831
|
+
* Reset cost tracking
|
|
832
|
+
*/
|
|
833
|
+
resetCostTracking() {
|
|
834
|
+
this.costTracking = {
|
|
835
|
+
helperModelCalls: 0,
|
|
836
|
+
helperTokensProcessed: 0,
|
|
837
|
+
helperCost: 0,
|
|
838
|
+
mainModelCalls: 0,
|
|
839
|
+
mainTokensProcessed: 0,
|
|
840
|
+
mainCost: 0,
|
|
841
|
+
totalCost: 0,
|
|
842
|
+
savings: 0,
|
|
843
|
+
savingsPercentage: 0,
|
|
844
|
+
};
|
|
845
|
+
}
|
|
846
|
+
/**
|
|
847
|
+
* Extract topics from summary text
|
|
848
|
+
* Simple heuristic: look for key phrases and noun phrases
|
|
849
|
+
*/
|
|
850
|
+
extractTopics(summary) {
|
|
851
|
+
const topics = [];
|
|
852
|
+
const lines = summary.split('\n');
|
|
853
|
+
for (const line of lines) {
|
|
854
|
+
// Look for bullet points or numbered items
|
|
855
|
+
if (line.match(/^[-*•]\s+/) || line.match(/^\d+\.\s+/)) {
|
|
856
|
+
const topic = line.replace(/^[-*•]\s+/, '').replace(/^\d+\.\s+/, '').trim();
|
|
857
|
+
if (topic.length > 10 && topic.length < 100) {
|
|
858
|
+
topics.push(topic);
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
// If no topics found, extract first few sentences
|
|
863
|
+
if (topics.length === 0) {
|
|
864
|
+
const sentences = summary.match(/[^.!?]+[.!?]+/g) || [];
|
|
865
|
+
topics.push(...sentences.slice(0, 3).map(s => s.trim()));
|
|
866
|
+
}
|
|
867
|
+
return topics.slice(0, 10); // Max 10 topics
|
|
868
|
+
}
|
|
869
|
+
/**
|
|
870
|
+
* Extract tool names from messages
|
|
871
|
+
*/
|
|
872
|
+
extractTools(messages) {
|
|
873
|
+
const tools = new Set();
|
|
874
|
+
for (const msg of messages) {
|
|
875
|
+
if (msg.type === 'tool_use' || msg.role === 'assistant') {
|
|
876
|
+
// Check for tool calls in various formats
|
|
877
|
+
if (msg.tool_calls) {
|
|
878
|
+
for (const call of msg.tool_calls) {
|
|
879
|
+
if (call.function?.name)
|
|
880
|
+
tools.add(call.function.name);
|
|
881
|
+
if (call.name)
|
|
882
|
+
tools.add(call.name);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
if (msg.toolUse) {
|
|
886
|
+
tools.add(msg.toolUse.name || msg.toolUse.toolName);
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
return Array.from(tools);
|
|
891
|
+
}
|
|
892
|
+
// ============================================
|
|
893
|
+
// REACTIVE MENTORSHIP METHODS
|
|
894
|
+
// ============================================
|
|
895
|
+
/**
|
|
896
|
+
* Generate error guidance using helper model
|
|
897
|
+
*
|
|
898
|
+
* Reactive Mentorship: Phase 1 - Error-Triggered Mentorship
|
|
899
|
+
*
|
|
900
|
+
* Analyzes tool errors and provides strategic guidance for recovery
|
|
901
|
+
*/
|
|
902
|
+
async generateErrorGuidance(context) {
|
|
903
|
+
// Format error for display
|
|
904
|
+
const errorText = typeof context.error === 'string'
|
|
905
|
+
? context.error
|
|
906
|
+
: JSON.stringify(context.error, null, 2);
|
|
907
|
+
// Format recent history for context
|
|
908
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
909
|
+
// Build mentorship prompt
|
|
910
|
+
const prompt = `You are an AI mentor analyzing a tool execution error. Provide concise, actionable guidance.
|
|
911
|
+
|
|
912
|
+
**Tool Used**: ${context.toolName}
|
|
913
|
+
**Tool Use ID**: ${context.toolUseId}
|
|
914
|
+
**Error**: ${errorText}
|
|
915
|
+
|
|
916
|
+
**Recent Actions**:
|
|
917
|
+
${historyContext}
|
|
918
|
+
|
|
919
|
+
Provide your analysis in this exact format:
|
|
920
|
+
|
|
921
|
+
<thinking>
|
|
922
|
+
**Error Analysis**: [What went wrong - 1-2 sentences]
|
|
923
|
+
**Immediate Fix**: [Specific steps to fix - 2-3 bullet points]
|
|
924
|
+
**Why This Works**: [Brief explanation of the solution]
|
|
925
|
+
</thinking>
|
|
926
|
+
|
|
927
|
+
Keep it concise and actionable. Focus on the immediate next steps.`;
|
|
928
|
+
// Get helper model configuration
|
|
929
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning'; // Default to grok-beta for mentorship
|
|
930
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
931
|
+
// Get appropriate adapter for helper model
|
|
932
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
933
|
+
// Convert prompt to HelperCanonicalMessage format
|
|
934
|
+
const messages = [{
|
|
935
|
+
role: 'user',
|
|
936
|
+
content: prompt
|
|
937
|
+
}];
|
|
938
|
+
// Make API call via adapter (using compact method as it does single-turn generation)
|
|
939
|
+
// We use targetTokens=500 for concise guidance
|
|
940
|
+
const result = await adapter.compact(messages, helperConfig, 500);
|
|
941
|
+
// Extract thinking content from the response
|
|
942
|
+
return this.extractThinkingContent(result.summary);
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Generate a concise session title from the first user message.
|
|
946
|
+
* Fire-and-forget on turn 0 — result is saved to session metadata.
|
|
947
|
+
*/
|
|
948
|
+
async generateSessionTitle(firstUserMessage, helperModelId) {
|
|
949
|
+
const truncated = firstUserMessage.slice(0, 500);
|
|
950
|
+
const prompt = `Generate a concise 5-10 word title for this conversation. Return ONLY the title, no quotes, no explanation.\n\nUser message: ${truncated}`;
|
|
951
|
+
const modelId = helperModelId || process.env.HELPER_MODEL_ID || 'deepseek-v4-flash';
|
|
952
|
+
const helperConfig = this.getHelperModelConfig(modelId);
|
|
953
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
954
|
+
const messages = [{ role: 'user', content: prompt }];
|
|
955
|
+
const text = await adapter.generate(messages, helperConfig, 100);
|
|
956
|
+
return (text || '').split('\n')[0].trim().replace(/^["']|["']$/g, '');
|
|
957
|
+
}
|
|
958
|
+
/**
|
|
959
|
+
* Generate a turn summary and predict the user's next action.
|
|
960
|
+
* Called post-turn when TURN_SUMMARY_PREDICTION=true.
|
|
961
|
+
*/
|
|
962
|
+
async generateTurnSummaryAndPrediction(context) {
|
|
963
|
+
const assistantSnippet = context.lastAssistantText.slice(0, 800);
|
|
964
|
+
const userSnippet = context.lastUserText.slice(0, 400);
|
|
965
|
+
const tools = context.toolsUsed.length > 0
|
|
966
|
+
? `Tools used: ${context.toolsUsed.join(', ')}\n`
|
|
967
|
+
: '';
|
|
968
|
+
const prompt = `Given this conversation turn, produce two things:
|
|
969
|
+
1. SUMMARY: A single sentence (under 15 words) describing what just happened.
|
|
970
|
+
2. PREDICTION: The most likely thing the user will type next (a realistic prompt, 5-20 words).
|
|
971
|
+
|
|
972
|
+
User said: ${userSnippet}
|
|
973
|
+
${tools}Assistant responded: ${assistantSnippet}
|
|
974
|
+
|
|
975
|
+
Respond in exactly this format (no other text):
|
|
976
|
+
SUMMARY: <summary>
|
|
977
|
+
PREDICTION: <prediction>`;
|
|
978
|
+
const modelId = context.helperModelId || process.env.HELPER_MODEL_ID || 'deepseek-v4-flash';
|
|
979
|
+
const helperConfig = this.getHelperModelConfig(modelId);
|
|
980
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
981
|
+
const messages = [{ role: 'user', content: prompt }];
|
|
982
|
+
const text = await adapter.generate(messages, helperConfig, 150);
|
|
983
|
+
const summaryMatch = text.match(/SUMMARY:\s*(.+)/i);
|
|
984
|
+
const predictionMatch = text.match(/PREDICTION:\s*(.+)/i);
|
|
985
|
+
return {
|
|
986
|
+
summary: (summaryMatch?.[1] || '').trim(),
|
|
987
|
+
prediction: (predictionMatch?.[1] || '').trim(),
|
|
988
|
+
};
|
|
989
|
+
}
|
|
990
|
+
/**
|
|
991
|
+
* Generate keyword-based guidance using helper model
|
|
992
|
+
*
|
|
993
|
+
* Reactive Mentorship: Phase 1 - Keyword-Triggered Mentorship
|
|
994
|
+
*
|
|
995
|
+
* Handles @ultrathink, @analyze, @rethink keyword requests
|
|
996
|
+
*/
|
|
997
|
+
async generateKeywordGuidance(context) {
|
|
998
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
999
|
+
// Build keyword-specific prompt
|
|
1000
|
+
const prompt = this.buildKeywordPrompt(context.keyword, historyContext);
|
|
1001
|
+
// Get helper model configuration
|
|
1002
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1003
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1004
|
+
// Get appropriate adapter
|
|
1005
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1006
|
+
// Convert to message format
|
|
1007
|
+
const messages = [{
|
|
1008
|
+
role: 'user',
|
|
1009
|
+
content: prompt
|
|
1010
|
+
}];
|
|
1011
|
+
// Get guidance (use higher token limit for keyword-based analysis)
|
|
1012
|
+
const targetTokens = context.keyword === '@ultrathink' ? 1000 : 500;
|
|
1013
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1014
|
+
// Extract thinking content
|
|
1015
|
+
return this.extractThinkingContent(result.summary);
|
|
1016
|
+
}
|
|
1017
|
+
/**
|
|
1018
|
+
* Format recent history for mentorship context
|
|
1019
|
+
*/
|
|
1020
|
+
formatRecentHistory(messages) {
|
|
1021
|
+
// Take last 5 messages for context
|
|
1022
|
+
const recentMessages = messages.slice(-5);
|
|
1023
|
+
return recentMessages.map((msg, idx) => {
|
|
1024
|
+
const role = msg.type || 'unknown';
|
|
1025
|
+
const content = this.extractTextContent(msg);
|
|
1026
|
+
return `${idx + 1}. [${role}] ${content.substring(0, 200)}${content.length > 200 ? '...' : ''}`;
|
|
1027
|
+
}).join('\n');
|
|
1028
|
+
}
|
|
1029
|
+
/**
|
|
1030
|
+
* Extract text content from a message
|
|
1031
|
+
*/
|
|
1032
|
+
extractTextContent(msg) {
|
|
1033
|
+
const content = msg.message?.content || msg.content;
|
|
1034
|
+
if (typeof content === 'string') {
|
|
1035
|
+
return content;
|
|
1036
|
+
}
|
|
1037
|
+
if (Array.isArray(content)) {
|
|
1038
|
+
return content
|
|
1039
|
+
.filter(block => block.type === 'text')
|
|
1040
|
+
.map(block => block.text)
|
|
1041
|
+
.join(' ');
|
|
1042
|
+
}
|
|
1043
|
+
return JSON.stringify(content);
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* Build keyword-specific prompt
|
|
1047
|
+
*/
|
|
1048
|
+
buildKeywordPrompt(keyword, historyContext) {
|
|
1049
|
+
const keywordPrompts = {
|
|
1050
|
+
'@ultrathink': `You are an AI mentor providing comprehensive strategic analysis.
|
|
1051
|
+
|
|
1052
|
+
**Recent Context**:
|
|
1053
|
+
${historyContext}
|
|
1054
|
+
|
|
1055
|
+
The user requested @ultrathink - provide deep strategic guidance:
|
|
1056
|
+
|
|
1057
|
+
<thinking>
|
|
1058
|
+
**Current Situation**: [What's happening - 2-3 sentences]
|
|
1059
|
+
**Strategy Options**:
|
|
1060
|
+
1. [Option 1: Approach and trade-offs]
|
|
1061
|
+
2. [Option 2: Approach and trade-offs]
|
|
1062
|
+
3. [Option 3: Approach and trade-offs]
|
|
1063
|
+
**Recommended Approach**: [Which option and why - 2-3 sentences]
|
|
1064
|
+
**Next Steps**: [Concrete actions to take]
|
|
1065
|
+
</thinking>`,
|
|
1066
|
+
'@analyze': `You are an AI mentor providing efficiency assessment.
|
|
1067
|
+
|
|
1068
|
+
**Recent Context**:
|
|
1069
|
+
${historyContext}
|
|
1070
|
+
|
|
1071
|
+
The user requested @analyze - provide quick efficiency analysis:
|
|
1072
|
+
|
|
1073
|
+
<thinking>
|
|
1074
|
+
**What Worked**: [Successful approaches - 2-3 bullet points]
|
|
1075
|
+
**What Could Improve**: [Inefficiencies identified - 2-3 bullet points]
|
|
1076
|
+
**Quick Wins**: [Immediate improvements to try]
|
|
1077
|
+
</thinking>`,
|
|
1078
|
+
'@rethink': `You are an AI mentor challenging current assumptions.
|
|
1079
|
+
|
|
1080
|
+
**Recent Context**:
|
|
1081
|
+
${historyContext}
|
|
1082
|
+
|
|
1083
|
+
The user requested @rethink - reconsider from first principles:
|
|
1084
|
+
|
|
1085
|
+
<thinking>
|
|
1086
|
+
**Current Assumptions**: [What we're assuming - 2-3 points]
|
|
1087
|
+
**Alternative Perspectives**: [Different ways to think about this]
|
|
1088
|
+
**Recommended Shift**: [New approach to try and why]
|
|
1089
|
+
</thinking>`
|
|
1090
|
+
};
|
|
1091
|
+
// Return the matching prompt or default to @analyze
|
|
1092
|
+
const prompt = keywordPrompts[keyword];
|
|
1093
|
+
return prompt !== undefined ? prompt : keywordPrompts['@analyze'];
|
|
1094
|
+
}
|
|
1095
|
+
/**
|
|
1096
|
+
* Extract thinking content from response
|
|
1097
|
+
*/
|
|
1098
|
+
extractThinkingContent(response) {
|
|
1099
|
+
// Look for <thinking>...</thinking> tags
|
|
1100
|
+
const thinkingMatch = response.match(/<thinking>([\s\S]*?)<\/thinking>/);
|
|
1101
|
+
if (thinkingMatch && thinkingMatch[1]) {
|
|
1102
|
+
return thinkingMatch[1].trim();
|
|
1103
|
+
}
|
|
1104
|
+
// If no tags, return the response as-is
|
|
1105
|
+
return response;
|
|
1106
|
+
}
|
|
1107
|
+
// ============================================================
|
|
1108
|
+
// Phase 2 Mentorship Features
|
|
1109
|
+
// ============================================================
|
|
1110
|
+
/**
|
|
1111
|
+
* Generate periodic review guidance (Phase 2)
|
|
1112
|
+
* Triggered every N turns for strategic check-in
|
|
1113
|
+
*/
|
|
1114
|
+
async generatePeriodicReview(context) {
|
|
1115
|
+
// Build appropriate prompt
|
|
1116
|
+
const prompt = context.includeStrategicAdvice
|
|
1117
|
+
? this.buildStrategicReviewPrompt(context)
|
|
1118
|
+
: this.buildSummaryReviewPrompt(context);
|
|
1119
|
+
// Get helper model configuration
|
|
1120
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1121
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1122
|
+
// Get appropriate adapter
|
|
1123
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1124
|
+
// Convert to message format
|
|
1125
|
+
const messages = [{
|
|
1126
|
+
role: 'user',
|
|
1127
|
+
content: prompt
|
|
1128
|
+
}];
|
|
1129
|
+
// Get guidance (strategic reviews get more tokens)
|
|
1130
|
+
const targetTokens = context.includeStrategicAdvice ? 800 : 400;
|
|
1131
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1132
|
+
// Extract thinking content
|
|
1133
|
+
return this.extractThinkingContent(result.summary);
|
|
1134
|
+
}
|
|
1135
|
+
/**
|
|
1136
|
+
* Build strategic review prompt (comprehensive)
|
|
1137
|
+
*/
|
|
1138
|
+
buildStrategicReviewPrompt(context) {
|
|
1139
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
1140
|
+
return `You are an AI mentor conducting a periodic review.
|
|
1141
|
+
|
|
1142
|
+
**Current Turn**: ${context.turnNumber}
|
|
1143
|
+
**Conversation Snapshot** (last 5 messages):
|
|
1144
|
+
${historyContext}
|
|
1145
|
+
|
|
1146
|
+
Provide strategic review:
|
|
1147
|
+
|
|
1148
|
+
<thinking>
|
|
1149
|
+
**Periodic Review (Turn ${context.turnNumber})**
|
|
1150
|
+
|
|
1151
|
+
**Progress Summary**: [What's been accomplished in recent turns - 2-3 sentences]
|
|
1152
|
+
|
|
1153
|
+
**Current Trajectory**: [Is the approach effective? Any concerns?]
|
|
1154
|
+
|
|
1155
|
+
**Strategic Recommendations**:
|
|
1156
|
+
- [Recommendation 1]
|
|
1157
|
+
- [Recommendation 2]
|
|
1158
|
+
|
|
1159
|
+
**Watch Out For**: [Potential issues to monitor]
|
|
1160
|
+
</thinking>
|
|
1161
|
+
|
|
1162
|
+
Be concise but insightful. Focus on maintaining momentum.`;
|
|
1163
|
+
}
|
|
1164
|
+
/**
|
|
1165
|
+
* Build summary review prompt (lightweight)
|
|
1166
|
+
*/
|
|
1167
|
+
buildSummaryReviewPrompt(context) {
|
|
1168
|
+
const historyContext = this.formatRecentHistory(context.recentHistory.slice(-3));
|
|
1169
|
+
return `Provide brief progress summary.
|
|
1170
|
+
|
|
1171
|
+
**Turn**: ${context.turnNumber}
|
|
1172
|
+
**Recent**: ${historyContext}
|
|
1173
|
+
|
|
1174
|
+
<thinking>
|
|
1175
|
+
**Progress Check (Turn ${context.turnNumber})**
|
|
1176
|
+
|
|
1177
|
+
**Summary**: [What's been done - 1-2 sentences]
|
|
1178
|
+
**Status**: [On track / Needs adjustment / Going well]
|
|
1179
|
+
</thinking>
|
|
1180
|
+
|
|
1181
|
+
Very brief - just a quick check-in.`;
|
|
1182
|
+
}
|
|
1183
|
+
/**
|
|
1184
|
+
* Generate pattern detection guidance (Phase 2)
|
|
1185
|
+
* Triggered when repeated error patterns are detected
|
|
1186
|
+
*/
|
|
1187
|
+
async generatePatternDetectionGuidance(context) {
|
|
1188
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
1189
|
+
const prompt = `You are an AI mentor detecting a repeated error pattern.
|
|
1190
|
+
|
|
1191
|
+
**Pattern Detected**: ${context.errorPattern}
|
|
1192
|
+
**Occurrences**: ${context.occurrences} times
|
|
1193
|
+
|
|
1194
|
+
**Recent Context**:
|
|
1195
|
+
${historyContext}
|
|
1196
|
+
|
|
1197
|
+
Provide pattern-breaking guidance:
|
|
1198
|
+
|
|
1199
|
+
<thinking>
|
|
1200
|
+
**Pattern Detected: ${context.errorPattern}**
|
|
1201
|
+
|
|
1202
|
+
**Why This Keeps Happening**: [Root cause analysis - 2-3 sentences]
|
|
1203
|
+
|
|
1204
|
+
**Breaking the Pattern**:
|
|
1205
|
+
1. [First step to try a different approach]
|
|
1206
|
+
2. [Second step to avoid the error]
|
|
1207
|
+
3. [Third step to verify success]
|
|
1208
|
+
|
|
1209
|
+
**Alternative Strategy**: [Completely different approach to consider]
|
|
1210
|
+
</thinking>
|
|
1211
|
+
|
|
1212
|
+
Focus on helping break out of the repeated failure loop.`;
|
|
1213
|
+
// Get helper model configuration
|
|
1214
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1215
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1216
|
+
// Get appropriate adapter
|
|
1217
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1218
|
+
// Convert to message format
|
|
1219
|
+
const messages = [{
|
|
1220
|
+
role: 'user',
|
|
1221
|
+
content: prompt
|
|
1222
|
+
}];
|
|
1223
|
+
// Get guidance
|
|
1224
|
+
const targetTokens = 600;
|
|
1225
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1226
|
+
// Extract thinking content
|
|
1227
|
+
return this.extractThinkingContent(result.summary);
|
|
1228
|
+
}
|
|
1229
|
+
/**
|
|
1230
|
+
* Generate interleaved thinking assistance (Phase 2)
|
|
1231
|
+
* Provides reasoning guidance for non-reasoning models
|
|
1232
|
+
*/
|
|
1233
|
+
async generateInterleavedThinking(context) {
|
|
1234
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
1235
|
+
const prompt = `You are an AI mentor helping a non-reasoning model think through a problem.
|
|
1236
|
+
|
|
1237
|
+
**User Request**: ${context.userMessage}
|
|
1238
|
+
|
|
1239
|
+
**Recent Context**:
|
|
1240
|
+
${historyContext}
|
|
1241
|
+
|
|
1242
|
+
Provide thinking assistance:
|
|
1243
|
+
|
|
1244
|
+
<thinking>
|
|
1245
|
+
**Thinking Assistance**
|
|
1246
|
+
|
|
1247
|
+
**Problem Understanding**: [Restate the core challenge - 2 sentences]
|
|
1248
|
+
|
|
1249
|
+
**Key Considerations**:
|
|
1250
|
+
- [Important factor 1]
|
|
1251
|
+
- [Important factor 2]
|
|
1252
|
+
- [Important factor 3]
|
|
1253
|
+
|
|
1254
|
+
**Approach**: [Suggested reasoning path to solve this]
|
|
1255
|
+
|
|
1256
|
+
**First Step**: [Concrete action to start with]
|
|
1257
|
+
</thinking>
|
|
1258
|
+
|
|
1259
|
+
Help the model reason through the problem step by step.`;
|
|
1260
|
+
// Get helper model configuration
|
|
1261
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1262
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1263
|
+
// Get appropriate adapter
|
|
1264
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1265
|
+
// Convert to message format
|
|
1266
|
+
const messages = [{
|
|
1267
|
+
role: 'user',
|
|
1268
|
+
content: prompt
|
|
1269
|
+
}];
|
|
1270
|
+
// Get guidance
|
|
1271
|
+
const targetTokens = 500;
|
|
1272
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1273
|
+
// Extract thinking content
|
|
1274
|
+
return this.extractThinkingContent(result.summary);
|
|
1275
|
+
}
|
|
1276
|
+
/**
|
|
1277
|
+
* Generate interleaved continuation thinking (between tool iterations)
|
|
1278
|
+
* Short, subtle inner monologue — not a full structured analysis.
|
|
1279
|
+
* Reflects on what just happened and suggests next step.
|
|
1280
|
+
*/
|
|
1281
|
+
async generateInterleavedContinuationThinking(context) {
|
|
1282
|
+
const toolResultsSummary = context.toolResults
|
|
1283
|
+
.map(r => `- ${r.toolName}: ${r.isError ? 'FAILED — ' : ''}${r.summary}`)
|
|
1284
|
+
.join('\n');
|
|
1285
|
+
const prompt = `You are providing brief inner thoughts for an AI assistant between tool calls.
|
|
1286
|
+
Be concise — 2-3 sentences max. Think out loud about what just happened and what to do next.
|
|
1287
|
+
Do NOT use headers, bullet points, or structured formatting. Write naturally, like stream of consciousness.
|
|
1288
|
+
|
|
1289
|
+
Tool call iteration ${context.iterationNumber} just completed.
|
|
1290
|
+
|
|
1291
|
+
Tool results:
|
|
1292
|
+
${toolResultsSummary}
|
|
1293
|
+
|
|
1294
|
+
Original user request: ${context.userMessage}
|
|
1295
|
+
|
|
1296
|
+
Provide a brief reflection:`;
|
|
1297
|
+
// Get helper model configuration
|
|
1298
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1299
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1300
|
+
// Get appropriate adapter
|
|
1301
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1302
|
+
// Convert to message format
|
|
1303
|
+
const messages = [{
|
|
1304
|
+
role: 'user',
|
|
1305
|
+
content: prompt
|
|
1306
|
+
}];
|
|
1307
|
+
// Short target — this is a subtle nudge, not a lecture
|
|
1308
|
+
const targetTokens = 150;
|
|
1309
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1310
|
+
// Extract thinking content
|
|
1311
|
+
return this.extractThinkingContent(result.summary);
|
|
1312
|
+
}
|
|
1313
|
+
/**
|
|
1314
|
+
* Generate Active Discovery guidance (Phase 2)
|
|
1315
|
+
* Encourages thorough file reading and evidence-based analysis
|
|
1316
|
+
* Works for ALL models (reasoning and non-reasoning)
|
|
1317
|
+
*/
|
|
1318
|
+
async generateActiveDiscoveryGuidance(context) {
|
|
1319
|
+
const historyContext = this.formatRecentHistory(context.recentHistory);
|
|
1320
|
+
const filesReadList = context.filesRead.length > 0
|
|
1321
|
+
? context.filesRead.join('\n- ')
|
|
1322
|
+
: 'None yet';
|
|
1323
|
+
const prompt = `You are an AI research methodology advisor enforcing the Active Discovery methodology.
|
|
1324
|
+
|
|
1325
|
+
**Core Rule**: NEVER infer how code works from documentation, imports, or comments alone. ALWAYS verify by reading the actual source.
|
|
1326
|
+
|
|
1327
|
+
**User Request**: ${context.userMessage}
|
|
1328
|
+
|
|
1329
|
+
**Files Already Read**:
|
|
1330
|
+
- ${filesReadList}
|
|
1331
|
+
|
|
1332
|
+
**Recent Context**:
|
|
1333
|
+
${historyContext}
|
|
1334
|
+
|
|
1335
|
+
Analyze what the user is asking about and provide guidance on what files MUST be read to answer accurately:
|
|
1336
|
+
|
|
1337
|
+
<thinking>
|
|
1338
|
+
**Active Discovery Guidance**
|
|
1339
|
+
|
|
1340
|
+
**What needs investigation**: [Identify the core question or system being analyzed]
|
|
1341
|
+
|
|
1342
|
+
**Files read so far**: [List what's been read — are these sufficient?]
|
|
1343
|
+
|
|
1344
|
+
**Critical gaps — files that MUST be read**:
|
|
1345
|
+
- [File 1 — why it's needed: what import, function call, or type reference leads here]
|
|
1346
|
+
- [File 2 — why it's needed]
|
|
1347
|
+
- [File 3 — why it's needed]
|
|
1348
|
+
|
|
1349
|
+
**Anti-pattern warning**: Do NOT:
|
|
1350
|
+
- Infer behavior from documentation or file names
|
|
1351
|
+
- Cite line numbers in files you haven't read
|
|
1352
|
+
- Say "this likely calls..." without verifying
|
|
1353
|
+
- Use CLAUDE.md or system message context as a substitute for reading source
|
|
1354
|
+
|
|
1355
|
+
**Research plan**: [Specific files to read and what to look for in each]
|
|
1356
|
+
</thinking>
|
|
1357
|
+
|
|
1358
|
+
Focus on tracing the complete dependency chain — imports, function calls, type references. Every claim must cite a specific file and line that was actually read.`;
|
|
1359
|
+
// Get helper model configuration
|
|
1360
|
+
const helperModelId = context.helperModelId || 'grok-4-1-fast-non-reasoning';
|
|
1361
|
+
const helperConfig = this.getHelperModelConfig(helperModelId);
|
|
1362
|
+
// Get appropriate adapter
|
|
1363
|
+
const adapter = this.helperAdapterRegistry.getAdapterForModel(helperConfig);
|
|
1364
|
+
// Convert to message format
|
|
1365
|
+
const messages = [{
|
|
1366
|
+
role: 'user',
|
|
1367
|
+
content: prompt
|
|
1368
|
+
}];
|
|
1369
|
+
// Get guidance (slightly more tokens for detailed file analysis)
|
|
1370
|
+
const targetTokens = 600;
|
|
1371
|
+
const result = await adapter.compact(messages, helperConfig, targetTokens);
|
|
1372
|
+
// Extract thinking content
|
|
1373
|
+
return this.extractThinkingContent(result.summary);
|
|
1374
|
+
}
|
|
1375
|
+
}
|
|
1376
|
+
//# sourceMappingURL=HelperModelMiddleware.js.map
|