@tenex-chat/backend 0.9.1
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/README.md +194 -0
- package/dist/backend-wrapper.cjs +3 -0
- package/dist/src/index.js +331928 -0
- package/package.json +103 -0
- package/src/agents/AgentRegistry.ts +418 -0
- package/src/agents/AgentStorage.ts +1133 -0
- package/src/agents/ConfigResolver.ts +229 -0
- package/src/agents/agent-installer.ts +236 -0
- package/src/agents/agent-loader.ts +241 -0
- package/src/agents/constants.ts +82 -0
- package/src/agents/errors.ts +48 -0
- package/src/agents/execution/AgentExecutor.ts +561 -0
- package/src/agents/execution/ExecutionContextFactory.ts +112 -0
- package/src/agents/execution/MessageCompiler.ts +597 -0
- package/src/agents/execution/MessageSyncer.ts +100 -0
- package/src/agents/execution/PostCompletionChecker.ts +278 -0
- package/src/agents/execution/ProgressMonitor.ts +50 -0
- package/src/agents/execution/RALResolver.ts +177 -0
- package/src/agents/execution/SessionManager.ts +181 -0
- package/src/agents/execution/StreamCallbacks.ts +312 -0
- package/src/agents/execution/StreamExecutionHandler.ts +579 -0
- package/src/agents/execution/StreamSetup.ts +313 -0
- package/src/agents/execution/ToolEventHandlers.ts +239 -0
- package/src/agents/execution/ToolExecutionTracker.ts +498 -0
- package/src/agents/execution/ToolResultUtils.ts +97 -0
- package/src/agents/execution/ToolSupervisionWrapper.ts +174 -0
- package/src/agents/execution/constants.ts +16 -0
- package/src/agents/execution/index.ts +3 -0
- package/src/agents/execution/types.ts +96 -0
- package/src/agents/execution/utils.ts +26 -0
- package/src/agents/index.ts +4 -0
- package/src/agents/script-installer.ts +266 -0
- package/src/agents/supervision/SupervisorLLMService.ts +253 -0
- package/src/agents/supervision/SupervisorOrchestrator.ts +471 -0
- package/src/agents/supervision/heuristics/ConsecutiveToolsWithoutTodoHeuristic.ts +73 -0
- package/src/agents/supervision/heuristics/DelegationClaimHeuristic.ts +80 -0
- package/src/agents/supervision/heuristics/HeuristicRegistry.ts +114 -0
- package/src/agents/supervision/heuristics/PendingTodosHeuristic.ts +93 -0
- package/src/agents/supervision/heuristics/SilentAgentHeuristic.ts +54 -0
- package/src/agents/supervision/heuristics/index.ts +5 -0
- package/src/agents/supervision/index.ts +28 -0
- package/src/agents/supervision/registerHeuristics.ts +110 -0
- package/src/agents/supervision/supervisionHealthCheck.ts +123 -0
- package/src/agents/supervision/types.ts +171 -0
- package/src/agents/tool-names.ts +46 -0
- package/src/agents/tool-normalization.ts +184 -0
- package/src/agents/types/index.ts +2 -0
- package/src/agents/types/runtime.ts +74 -0
- package/src/agents/types/storage.ts +145 -0
- package/src/commands/agent/import/index.ts +6 -0
- package/src/commands/agent/import/openclaw-distiller.ts +57 -0
- package/src/commands/agent/import/openclaw-reader.ts +141 -0
- package/src/commands/agent/import/openclaw.ts +154 -0
- package/src/commands/agent/index.ts +6 -0
- package/src/commands/agent.ts +215 -0
- package/src/commands/daemon.ts +198 -0
- package/src/commands/doctor.ts +134 -0
- package/src/commands/setup/embed.ts +228 -0
- package/src/commands/setup/global-system-prompt.ts +223 -0
- package/src/commands/setup/image.ts +179 -0
- package/src/commands/setup/index.ts +16 -0
- package/src/commands/setup/interactive.ts +95 -0
- package/src/commands/setup/llm.ts +38 -0
- package/src/commands/setup/onboarding.ts +294 -0
- package/src/commands/setup/providers.ts +27 -0
- package/src/constants.ts +34 -0
- package/src/conversations/ConversationDiskReader.ts +148 -0
- package/src/conversations/ConversationRegistry.ts +728 -0
- package/src/conversations/ConversationStore.ts +868 -0
- package/src/conversations/MessageBuilder.ts +866 -0
- package/src/conversations/executionTime.ts +62 -0
- package/src/conversations/formatters/DelegationXmlFormatter.ts +64 -0
- package/src/conversations/formatters/ThreadedConversationFormatter.ts +303 -0
- package/src/conversations/formatters/index.ts +9 -0
- package/src/conversations/formatters/utils/MessageFormatter.ts +46 -0
- package/src/conversations/formatters/utils/TimestampFormatter.ts +56 -0
- package/src/conversations/formatters/utils/TreeBuilder.ts +131 -0
- package/src/conversations/formatters/utils/TreeRenderer.ts +49 -0
- package/src/conversations/index.ts +2 -0
- package/src/conversations/persistence/ToolMessageStorage.ts +143 -0
- package/src/conversations/search/ConversationIndexManager.ts +393 -0
- package/src/conversations/search/QueryParser.ts +114 -0
- package/src/conversations/search/SearchEngine.ts +175 -0
- package/src/conversations/search/SnippetExtractor.ts +345 -0
- package/src/conversations/search/embeddings/ConversationEmbeddingService.ts +484 -0
- package/src/conversations/search/embeddings/ConversationIndexingJob.ts +320 -0
- package/src/conversations/search/embeddings/IndexingStateManager.ts +338 -0
- package/src/conversations/search/embeddings/index.ts +18 -0
- package/src/conversations/search/index.ts +49 -0
- package/src/conversations/search/types.ts +124 -0
- package/src/conversations/services/CategoryManager.ts +160 -0
- package/src/conversations/services/ConversationResolver.ts +296 -0
- package/src/conversations/services/ConversationSummarizer.ts +234 -0
- package/src/conversations/services/MetadataDebounceManager.ts +188 -0
- package/src/conversations/services/index.ts +2 -0
- package/src/conversations/types.ts +148 -0
- package/src/conversations/utils/content-utils.ts +69 -0
- package/src/conversations/utils/image-placeholder.ts +281 -0
- package/src/conversations/utils/image-url-utils.ts +171 -0
- package/src/conversations/utils/multimodal-content.ts +90 -0
- package/src/conversations/utils/tool-result-truncator.ts +159 -0
- package/src/daemon/Daemon.ts +1883 -0
- package/src/daemon/ProjectRuntime.ts +657 -0
- package/src/daemon/RestartState.ts +152 -0
- package/src/daemon/RuntimeLifecycle.ts +268 -0
- package/src/daemon/SubscriptionManager.ts +305 -0
- package/src/daemon/UnixSocketTransport.ts +318 -0
- package/src/daemon/filters/SubscriptionFilterBuilder.ts +119 -0
- package/src/daemon/index.ts +9 -0
- package/src/daemon/routing/DaemonRouter.ts +491 -0
- package/src/daemon/types.ts +150 -0
- package/src/daemon/utils/routing-log.ts +76 -0
- package/src/daemon/utils/telemetry.ts +173 -0
- package/src/event-handler/agentDeletion.ts +383 -0
- package/src/event-handler/index.ts +749 -0
- package/src/event-handler/newConversation.ts +165 -0
- package/src/event-handler/project.ts +166 -0
- package/src/event-handler/reply.ts +18 -0
- package/src/events/NDKAgentDefinition.ts +292 -0
- package/src/events/NDKAgentLesson.ts +106 -0
- package/src/events/NDKEventMetadata.ts +34 -0
- package/src/events/NDKMCPTool.ts +60 -0
- package/src/events/NDKProjectStatus.ts +384 -0
- package/src/events/index.ts +4 -0
- package/src/index.ts +126 -0
- package/src/lib/agent-home.ts +334 -0
- package/src/lib/error-formatter.ts +200 -0
- package/src/lib/fs/filesystem.ts +128 -0
- package/src/lib/fs/index.ts +1 -0
- package/src/lib/json-parser.ts +30 -0
- package/src/lib/string.ts +15 -0
- package/src/lib/time.ts +74 -0
- package/src/llm/ChunkHandler.ts +277 -0
- package/src/llm/FinishHandler.ts +250 -0
- package/src/llm/LLMConfigEditor.ts +154 -0
- package/src/llm/LLMServiceFactory.ts +230 -0
- package/src/llm/MessageProcessor.ts +90 -0
- package/src/llm/RecordingState.ts +37 -0
- package/src/llm/StreamPublisher.ts +40 -0
- package/src/llm/TracingUtils.ts +77 -0
- package/src/llm/chunk-validators.ts +57 -0
- package/src/llm/constants.ts +6 -0
- package/src/llm/index.ts +12 -0
- package/src/llm/meta/MetaModelResolver.ts +352 -0
- package/src/llm/meta/index.ts +11 -0
- package/src/llm/middleware/flight-recorder.ts +188 -0
- package/src/llm/providers/MockProvider.ts +332 -0
- package/src/llm/providers/agent/ClaudeCodeProvider.ts +343 -0
- package/src/llm/providers/agent/ClaudeCodeToolsAdapter.ts +203 -0
- package/src/llm/providers/agent/CodexAppServerProvider.ts +214 -0
- package/src/llm/providers/agent/CodexAppServerToolsAdapter.ts +91 -0
- package/src/llm/providers/agent/index.ts +10 -0
- package/src/llm/providers/base/AgentProvider.ts +107 -0
- package/src/llm/providers/base/BaseProvider.ts +114 -0
- package/src/llm/providers/base/StandardProvider.ts +38 -0
- package/src/llm/providers/base/index.ts +9 -0
- package/src/llm/providers/index.ts +106 -0
- package/src/llm/providers/key-manager.ts +238 -0
- package/src/llm/providers/ollama-models.ts +105 -0
- package/src/llm/providers/openrouter-models.ts +102 -0
- package/src/llm/providers/provider-ids.ts +18 -0
- package/src/llm/providers/registry/ProviderRegistry.ts +414 -0
- package/src/llm/providers/registry/index.ts +7 -0
- package/src/llm/providers/standard/AnthropicProvider.ts +71 -0
- package/src/llm/providers/standard/OllamaProvider.ts +59 -0
- package/src/llm/providers/standard/OpenAIProvider.ts +44 -0
- package/src/llm/providers/standard/OpenRouterProvider.ts +103 -0
- package/src/llm/providers/standard/index.ts +10 -0
- package/src/llm/providers/types.ts +194 -0
- package/src/llm/providers/usage-metadata.ts +78 -0
- package/src/llm/service.ts +713 -0
- package/src/llm/types.ts +167 -0
- package/src/llm/utils/ConfigurationManager.ts +650 -0
- package/src/llm/utils/ConfigurationTester.ts +229 -0
- package/src/llm/utils/ModelSelector.ts +212 -0
- package/src/llm/utils/ProviderConfigUI.ts +177 -0
- package/src/llm/utils/claudeCodePromptCompiler.ts +141 -0
- package/src/llm/utils/codex-models.ts +53 -0
- package/src/llm/utils/context-window-cache.ts +30 -0
- package/src/llm/utils/models-dev-cache.ts +267 -0
- package/src/llm/utils/provider-setup.ts +50 -0
- package/src/llm/utils/tool-errors.ts +78 -0
- package/src/llm/utils/usage.ts +74 -0
- package/src/logging/EventRoutingLogger.ts +205 -0
- package/src/nostr/AgentEventDecoder.ts +357 -0
- package/src/nostr/AgentEventEncoder.ts +677 -0
- package/src/nostr/AgentProfilePublisher.ts +657 -0
- package/src/nostr/AgentPublisher.ts +437 -0
- package/src/nostr/BlossomService.ts +226 -0
- package/src/nostr/InterventionPublisher.ts +132 -0
- package/src/nostr/TagExtractor.ts +228 -0
- package/src/nostr/collectEvents.ts +83 -0
- package/src/nostr/constants.ts +38 -0
- package/src/nostr/encryption.ts +26 -0
- package/src/nostr/index.ts +31 -0
- package/src/nostr/keys.ts +17 -0
- package/src/nostr/kinds.ts +37 -0
- package/src/nostr/ndkClient.ts +72 -0
- package/src/nostr/relays.ts +43 -0
- package/src/nostr/trace-context.ts +39 -0
- package/src/nostr/types.ts +227 -0
- package/src/nostr/utils.ts +84 -0
- package/src/prompts/core/FragmentRegistry.ts +30 -0
- package/src/prompts/core/PromptBuilder.ts +98 -0
- package/src/prompts/core/index.ts +3 -0
- package/src/prompts/core/types.ts +13 -0
- package/src/prompts/fragments/00-global-system-prompt.ts +44 -0
- package/src/prompts/fragments/01-agent-identity.ts +69 -0
- package/src/prompts/fragments/02-agent-home-directory.ts +114 -0
- package/src/prompts/fragments/03-system-reminders-explanation.ts +14 -0
- package/src/prompts/fragments/04-relay-configuration.ts +38 -0
- package/src/prompts/fragments/05-delegation-chain.ts +45 -0
- package/src/prompts/fragments/06-agent-todos.ts +74 -0
- package/src/prompts/fragments/06-todo-usage-guidance.ts +34 -0
- package/src/prompts/fragments/07-meta-project-context.ts +234 -0
- package/src/prompts/fragments/08-active-conversations.ts +382 -0
- package/src/prompts/fragments/09-recent-conversations.ts +153 -0
- package/src/prompts/fragments/10-referenced-article.ts +21 -0
- package/src/prompts/fragments/11-nudges.ts +134 -0
- package/src/prompts/fragments/12-skills.ts +127 -0
- package/src/prompts/fragments/13-available-nudges.ts +122 -0
- package/src/prompts/fragments/15-available-agents.ts +53 -0
- package/src/prompts/fragments/16-stay-in-your-lane.ts +41 -0
- package/src/prompts/fragments/17-todo-before-delegation.ts +39 -0
- package/src/prompts/fragments/20-voice-mode.ts +62 -0
- package/src/prompts/fragments/22-scheduled-tasks.ts +175 -0
- package/src/prompts/fragments/24-retrieved-lessons.ts +26 -0
- package/src/prompts/fragments/25-rag-instructions.ts +333 -0
- package/src/prompts/fragments/26-mcp-resources.ts +237 -0
- package/src/prompts/fragments/27-memorized-reports.ts +77 -0
- package/src/prompts/fragments/28-agent-directed-monitoring.ts +32 -0
- package/src/prompts/fragments/29-rag-collections.ts +50 -0
- package/src/prompts/fragments/30-worktree-context.ts +98 -0
- package/src/prompts/fragments/31-agents-md-guidance.ts +96 -0
- package/src/prompts/fragments/32-process-metrics.ts +72 -0
- package/src/prompts/fragments/debug-mode.ts +48 -0
- package/src/prompts/fragments/delegation-completion.ts +44 -0
- package/src/prompts/fragments/index.ts +91 -0
- package/src/prompts/index.ts +21 -0
- package/src/prompts/utils/systemPromptBuilder.ts +777 -0
- package/src/scripts/migrate-prefix-index.ts +157 -0
- package/src/services/AgentDefinitionMonitor.ts +701 -0
- package/src/services/ConfigService.ts +723 -0
- package/src/services/CooldownRegistry.ts +199 -0
- package/src/services/LLMOperationsRegistry.ts +424 -0
- package/src/services/OwnerAgentListService.ts +354 -0
- package/src/services/PubkeyService.ts +308 -0
- package/src/services/agents/AgentMetadataStore.ts +72 -0
- package/src/services/agents/AgentResolution.ts +59 -0
- package/src/services/agents/EscalationService.ts +281 -0
- package/src/services/agents/NDKAgentDiscovery.ts +95 -0
- package/src/services/agents/index.ts +7 -0
- package/src/services/agents-md/AgentsMdService.ts +184 -0
- package/src/services/agents-md/SystemReminderInjector.ts +238 -0
- package/src/services/agents-md/index.ts +11 -0
- package/src/services/apns/APNsClient.ts +203 -0
- package/src/services/apns/APNsService.ts +358 -0
- package/src/services/apns/index.ts +11 -0
- package/src/services/apns/types.ts +80 -0
- package/src/services/compression/CompressionService.ts +445 -0
- package/src/services/compression/compression-schema.ts +28 -0
- package/src/services/compression/compression-types.ts +74 -0
- package/src/services/compression/compression-utils.ts +587 -0
- package/src/services/config/types.ts +394 -0
- package/src/services/dispatch/AgentDispatchService.ts +937 -0
- package/src/services/dispatch/AgentRouter.ts +181 -0
- package/src/services/dispatch/DelegationCompletionHandler.ts +232 -0
- package/src/services/embedding/EmbeddingProvider.ts +188 -0
- package/src/services/embedding/index.ts +5 -0
- package/src/services/event-context/EventContextService.ts +108 -0
- package/src/services/event-context/index.ts +2 -0
- package/src/services/heuristics/ContextBuilder.ts +106 -0
- package/src/services/heuristics/HeuristicEngine.ts +200 -0
- package/src/services/heuristics/formatters.ts +58 -0
- package/src/services/heuristics/index.ts +12 -0
- package/src/services/heuristics/rules/index.ts +25 -0
- package/src/services/heuristics/rules/todoBeforeDelegation.ts +69 -0
- package/src/services/heuristics/rules/todoReminderOnToolUse.ts +63 -0
- package/src/services/heuristics/types.ts +144 -0
- package/src/services/image/ImageGenerationService.ts +389 -0
- package/src/services/image/index.ts +12 -0
- package/src/services/intervention/InterventionService.ts +1352 -0
- package/src/services/intervention/index.ts +7 -0
- package/src/services/mcp/MCPManager.ts +683 -0
- package/src/services/mcp/McpNotificationDelivery.ts +139 -0
- package/src/services/mcp/McpSubscriptionService.ts +653 -0
- package/src/services/mcp/mcpInstaller.ts +130 -0
- package/src/services/nip46/Nip46SigningLog.ts +81 -0
- package/src/services/nip46/Nip46SigningService.ts +467 -0
- package/src/services/nip46/index.ts +4 -0
- package/src/services/nudge/NudgeService.ts +224 -0
- package/src/services/nudge/NudgeWhitelistService.ts +382 -0
- package/src/services/nudge/index.ts +5 -0
- package/src/services/nudge/types.ts +83 -0
- package/src/services/projects/ProjectContext.ts +672 -0
- package/src/services/projects/ProjectContextStore.ts +102 -0
- package/src/services/projects/index.ts +6 -0
- package/src/services/prompt-compiler/index.ts +15 -0
- package/src/services/prompt-compiler/prompt-compiler-service.ts +1143 -0
- package/src/services/pubkey-gate/PubkeyGateService.ts +93 -0
- package/src/services/pubkey-gate/index.ts +1 -0
- package/src/services/rag/EmbeddingProviderFactory.ts +292 -0
- package/src/services/rag/LanceDBMaintenanceService.ts +211 -0
- package/src/services/rag/RAGDatabaseService.ts +173 -0
- package/src/services/rag/RAGOperations.ts +682 -0
- package/src/services/rag/RAGService.ts +240 -0
- package/src/services/rag/RagSubscriptionService.ts +618 -0
- package/src/services/rag/rag-utils.ts +174 -0
- package/src/services/ral/PendingDelegationsRegistry.ts +168 -0
- package/src/services/ral/RALRegistry.ts +2782 -0
- package/src/services/ral/index.ts +4 -0
- package/src/services/ral/types.ts +292 -0
- package/src/services/reports/LocalReportStore.ts +380 -0
- package/src/services/reports/ReportEmbeddingService.ts +430 -0
- package/src/services/reports/ReportService.ts +440 -0
- package/src/services/reports/articleUtils.ts +52 -0
- package/src/services/reports/index.ts +7 -0
- package/src/services/scheduling/SchedulerService.ts +1057 -0
- package/src/services/scheduling/errors.ts +14 -0
- package/src/services/scheduling/index.ts +7 -0
- package/src/services/scheduling/utils.ts +77 -0
- package/src/services/search/SearchProviderRegistry.ts +78 -0
- package/src/services/search/UnifiedSearchService.ts +218 -0
- package/src/services/search/index.ts +47 -0
- package/src/services/search/projectFilter.ts +22 -0
- package/src/services/search/providers/ConversationSearchProvider.ts +48 -0
- package/src/services/search/providers/LessonSearchProvider.ts +75 -0
- package/src/services/search/providers/ReportSearchProvider.ts +49 -0
- package/src/services/search/types.ts +144 -0
- package/src/services/skill/SkillService.ts +482 -0
- package/src/services/skill/index.ts +2 -0
- package/src/services/skill/types.ts +70 -0
- package/src/services/status/OperationsStatusService.ts +276 -0
- package/src/services/status/ProjectStatusService.ts +522 -0
- package/src/services/status/index.ts +11 -0
- package/src/services/storage/PrefixKVStore.ts +242 -0
- package/src/services/storage/index.ts +1 -0
- package/src/services/system-reminder/SystemReminderUtils.ts +96 -0
- package/src/services/system-reminder/index.ts +7 -0
- package/src/services/trust-pubkeys/TrustPubkeyService.ts +325 -0
- package/src/services/trust-pubkeys/index.ts +2 -0
- package/src/telemetry/ConversationSpanManager.ts +111 -0
- package/src/telemetry/EventLoopMonitor.ts +206 -0
- package/src/telemetry/LLMSpanRegistry.ts +20 -0
- package/src/telemetry/NostrSpanProcessor.ts +89 -0
- package/src/telemetry/ToolCallSpanProcessor.ts +66 -0
- package/src/telemetry/diagnostics.ts +27 -0
- package/src/telemetry/setup.ts +120 -0
- package/src/tools/implementations/agents_discover.ts +121 -0
- package/src/tools/implementations/agents_hire.ts +127 -0
- package/src/tools/implementations/agents_list.ts +96 -0
- package/src/tools/implementations/agents_publish.ts +611 -0
- package/src/tools/implementations/agents_read.ts +173 -0
- package/src/tools/implementations/agents_write.ts +200 -0
- package/src/tools/implementations/ask.ts +411 -0
- package/src/tools/implementations/change_model.ts +141 -0
- package/src/tools/implementations/conversation_get.ts +661 -0
- package/src/tools/implementations/conversation_list.ts +377 -0
- package/src/tools/implementations/conversation_search.ts +370 -0
- package/src/tools/implementations/delegate.ts +327 -0
- package/src/tools/implementations/delegate_crossproject.ts +209 -0
- package/src/tools/implementations/delegate_followup.ts +300 -0
- package/src/tools/implementations/fs_edit.ts +162 -0
- package/src/tools/implementations/fs_glob.ts +182 -0
- package/src/tools/implementations/fs_grep.ts +513 -0
- package/src/tools/implementations/fs_read.ts +332 -0
- package/src/tools/implementations/fs_write.ts +113 -0
- package/src/tools/implementations/generate_image.ts +259 -0
- package/src/tools/implementations/home_fs.ts +515 -0
- package/src/tools/implementations/kill.ts +651 -0
- package/src/tools/implementations/learn.ts +166 -0
- package/src/tools/implementations/lesson-formatter.ts +38 -0
- package/src/tools/implementations/lesson_delete.ts +164 -0
- package/src/tools/implementations/lesson_get.ts +105 -0
- package/src/tools/implementations/lessons_list.ts +153 -0
- package/src/tools/implementations/mcp_resource_read.ts +161 -0
- package/src/tools/implementations/mcp_subscribe.ts +158 -0
- package/src/tools/implementations/mcp_subscription_stop.ts +85 -0
- package/src/tools/implementations/nostr_fetch.ts +149 -0
- package/src/tools/implementations/nostr_publish_as_user.ts +353 -0
- package/src/tools/implementations/project_list.ts +146 -0
- package/src/tools/implementations/rag_add_documents.ts +573 -0
- package/src/tools/implementations/rag_create_collection.ts +65 -0
- package/src/tools/implementations/rag_delete_collection.ts +68 -0
- package/src/tools/implementations/rag_list_collections.ts +77 -0
- package/src/tools/implementations/rag_query.ts +107 -0
- package/src/tools/implementations/rag_subscription_create.ts +105 -0
- package/src/tools/implementations/rag_subscription_delete.ts +80 -0
- package/src/tools/implementations/rag_subscription_get.ts +123 -0
- package/src/tools/implementations/rag_subscription_list.ts +128 -0
- package/src/tools/implementations/report_delete.ts +79 -0
- package/src/tools/implementations/report_read.ts +160 -0
- package/src/tools/implementations/report_write.ts +278 -0
- package/src/tools/implementations/reports_list.ts +77 -0
- package/src/tools/implementations/schedule_task.ts +104 -0
- package/src/tools/implementations/schedule_task_cancel.ts +62 -0
- package/src/tools/implementations/schedule_task_once.ts +128 -0
- package/src/tools/implementations/schedule_tasks_list.ts +79 -0
- package/src/tools/implementations/search.ts +160 -0
- package/src/tools/implementations/shell.ts +553 -0
- package/src/tools/implementations/todo.ts +260 -0
- package/src/tools/implementations/upload_blob.ts +381 -0
- package/src/tools/implementations/web_fetch.ts +153 -0
- package/src/tools/implementations/web_search.ts +250 -0
- package/src/tools/registry.ts +670 -0
- package/src/tools/types.ts +177 -0
- package/src/tools/utils.ts +256 -0
- package/src/types/event-ids.ts +320 -0
- package/src/types/index.ts +46 -0
- package/src/utils/agentFetcher.ts +107 -0
- package/src/utils/cli-error.ts +29 -0
- package/src/utils/conversation-id.ts +27 -0
- package/src/utils/conversation-utils.ts +1 -0
- package/src/utils/delegation-chain.ts +357 -0
- package/src/utils/error-handler.ts +42 -0
- package/src/utils/git/gitignore.ts +69 -0
- package/src/utils/git/index.ts +2 -0
- package/src/utils/git/initializeGitRepo.ts +204 -0
- package/src/utils/git/worktree.ts +260 -0
- package/src/utils/lessonFormatter.ts +70 -0
- package/src/utils/lessonTrust.ts +24 -0
- package/src/utils/lockfile.ts +123 -0
- package/src/utils/logger.ts +149 -0
- package/src/utils/nostr-entity-parser.ts +365 -0
- package/src/utils/process.ts +49 -0
- package/src/wrapper.ts +262 -0
- package/tsconfig.json +41 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Providers Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all standard AI SDK providers.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { OpenRouterProvider } from "./OpenRouterProvider";
|
|
8
|
+
export { AnthropicProvider } from "./AnthropicProvider";
|
|
9
|
+
export { OpenAIProvider } from "./OpenAIProvider";
|
|
10
|
+
export { OllamaProvider } from "./OllamaProvider";
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider type definitions for the modular LLM provider registry
|
|
3
|
+
*
|
|
4
|
+
* This module defines the interfaces and types for creating modular,
|
|
5
|
+
* pluggable LLM providers that can be easily registered and used.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { LanguageModel } from "ai";
|
|
9
|
+
import type { AISdkTool } from "@/tools/types";
|
|
10
|
+
import type { OnStreamStartCallback } from "@/llm/types";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Provider categories
|
|
14
|
+
*/
|
|
15
|
+
export type ProviderCategory = "standard" | "agent";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Provider capability flags
|
|
19
|
+
*/
|
|
20
|
+
export interface ProviderCapabilities {
|
|
21
|
+
/** Whether the provider supports streaming responses */
|
|
22
|
+
streaming: boolean;
|
|
23
|
+
/** Whether the provider supports tool/function calling */
|
|
24
|
+
toolCalling: boolean;
|
|
25
|
+
/** Whether the provider has built-in tools (like claude-code) */
|
|
26
|
+
builtInTools: boolean;
|
|
27
|
+
/** Whether the provider supports session resumption */
|
|
28
|
+
sessionResumption: boolean;
|
|
29
|
+
/** Whether the provider requires an API key */
|
|
30
|
+
requiresApiKey: boolean;
|
|
31
|
+
/** Whether the provider supports MCP servers */
|
|
32
|
+
mcpSupport: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Provider metadata for display and configuration
|
|
37
|
+
*/
|
|
38
|
+
export interface ProviderMetadata {
|
|
39
|
+
/** Unique identifier for the provider */
|
|
40
|
+
id: string;
|
|
41
|
+
/** Human-readable display name */
|
|
42
|
+
displayName: string;
|
|
43
|
+
/** Short description of the provider */
|
|
44
|
+
description: string;
|
|
45
|
+
/** Provider category */
|
|
46
|
+
category: ProviderCategory;
|
|
47
|
+
/** Provider capabilities */
|
|
48
|
+
capabilities: ProviderCapabilities;
|
|
49
|
+
/** Default model for this provider */
|
|
50
|
+
defaultModel: string;
|
|
51
|
+
/** Website/documentation URL */
|
|
52
|
+
documentationUrl?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Configuration for initializing a provider
|
|
57
|
+
*/
|
|
58
|
+
export interface ProviderInitConfig {
|
|
59
|
+
/** API key or authentication token (always a single resolved key for providers) */
|
|
60
|
+
apiKey?: string;
|
|
61
|
+
/** Base URL for the API (for self-hosted providers) */
|
|
62
|
+
baseUrl?: string;
|
|
63
|
+
/** Additional provider-specific options */
|
|
64
|
+
options?: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Configuration accepted by the registry's initialize method.
|
|
69
|
+
* Supports multiple API keys per provider for rotation/fallback.
|
|
70
|
+
*/
|
|
71
|
+
export interface ProviderPoolConfig {
|
|
72
|
+
/** API key(s) — single string or array for multi-key rotation */
|
|
73
|
+
apiKey?: string | string[];
|
|
74
|
+
/** Base URL for the API (for self-hosted providers) */
|
|
75
|
+
baseUrl?: string;
|
|
76
|
+
/** Additional provider-specific options */
|
|
77
|
+
options?: Record<string, unknown>;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* MCP server configuration for agent providers
|
|
82
|
+
*/
|
|
83
|
+
export interface MCPServerConfig {
|
|
84
|
+
command: string;
|
|
85
|
+
args: string[];
|
|
86
|
+
env?: Record<string, string>;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* MCP configuration passed to providers
|
|
91
|
+
*/
|
|
92
|
+
export interface MCPConfig {
|
|
93
|
+
enabled: boolean;
|
|
94
|
+
servers: Record<string, MCPServerConfig>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Runtime context for creating LLM services
|
|
99
|
+
*/
|
|
100
|
+
export interface ProviderRuntimeContext {
|
|
101
|
+
/** Available tools for the agent */
|
|
102
|
+
tools?: Record<string, AISdkTool>;
|
|
103
|
+
/** Agent name for telemetry */
|
|
104
|
+
agentName?: string;
|
|
105
|
+
/** Session ID for resumable sessions */
|
|
106
|
+
sessionId?: string;
|
|
107
|
+
/** Working directory for agent execution */
|
|
108
|
+
workingDirectory?: string;
|
|
109
|
+
/** MCP configuration - passed from services layer to avoid layer violations */
|
|
110
|
+
mcpConfig?: MCPConfig;
|
|
111
|
+
/** Reasoning effort level (for codex-app-server) */
|
|
112
|
+
reasoningEffort?: "none" | "low" | "medium" | "high" | "xhigh";
|
|
113
|
+
/** Callback invoked when Claude Code stream starts, providing the message injector */
|
|
114
|
+
onStreamStart?: OnStreamStartCallback;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Result of creating a language model from a provider
|
|
119
|
+
*/
|
|
120
|
+
export interface ProviderModelResult {
|
|
121
|
+
/** The language model instance */
|
|
122
|
+
model: LanguageModel;
|
|
123
|
+
/** Provider function for agent providers (claude-code, codex-app-server) */
|
|
124
|
+
providerFunction?: (model: string, options?: unknown) => LanguageModel;
|
|
125
|
+
/** Whether this provider bypasses the standard registry */
|
|
126
|
+
bypassRegistry: boolean;
|
|
127
|
+
/** Agent settings (cwd, env, mcpServers, etc.) for agent providers */
|
|
128
|
+
agentSettings?: unknown;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Interface for LLM providers
|
|
133
|
+
*
|
|
134
|
+
* Providers implement this interface to be registered in the provider registry.
|
|
135
|
+
* There are two types:
|
|
136
|
+
* - Standard providers: Use AI SDK's createProviderRegistry
|
|
137
|
+
* - Agent providers: Have their own provider functions (claude-code, codex-app-server)
|
|
138
|
+
*/
|
|
139
|
+
export interface ILLMProvider {
|
|
140
|
+
/** Provider metadata */
|
|
141
|
+
readonly metadata: ProviderMetadata;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Initialize the provider with configuration
|
|
145
|
+
* @param config Provider configuration (API key, etc.)
|
|
146
|
+
* @returns Promise that resolves when initialization is complete
|
|
147
|
+
*/
|
|
148
|
+
initialize(config: ProviderInitConfig): Promise<void>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Check if the provider is initialized
|
|
152
|
+
*/
|
|
153
|
+
isInitialized(): boolean;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Check if the provider is available (initialized and ready to use)
|
|
157
|
+
*/
|
|
158
|
+
isAvailable(): boolean;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Get the AI SDK provider instance for standard providers
|
|
162
|
+
* Used by createProviderRegistry
|
|
163
|
+
* @returns The provider instance or null for agent providers
|
|
164
|
+
*/
|
|
165
|
+
getProviderInstance(): unknown | null;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Create a language model for this provider
|
|
169
|
+
* @param modelId The model ID to use
|
|
170
|
+
* @param context Runtime context for the model
|
|
171
|
+
* @returns The model result with language model and metadata
|
|
172
|
+
*/
|
|
173
|
+
createModel(modelId: string, context?: ProviderRuntimeContext): ProviderModelResult;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Reset the provider state
|
|
177
|
+
*/
|
|
178
|
+
reset(): void;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Provider constructor type
|
|
183
|
+
*/
|
|
184
|
+
export type ProviderConstructor = new () => ILLMProvider;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Provider registration entry
|
|
188
|
+
*/
|
|
189
|
+
export interface ProviderRegistration {
|
|
190
|
+
/** The provider class constructor */
|
|
191
|
+
Provider: ProviderConstructor;
|
|
192
|
+
/** Provider metadata (cached for quick access) */
|
|
193
|
+
metadata: ProviderMetadata;
|
|
194
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage metadata extraction dispatcher
|
|
3
|
+
*
|
|
4
|
+
* Routes usage metadata extraction to the appropriate provider-specific extractor.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LanguageModelUsage } from "ai";
|
|
8
|
+
import type { LanguageModelUsageWithCostUsd } from "../types";
|
|
9
|
+
import { PROVIDER_IDS } from "./provider-ids";
|
|
10
|
+
import { OpenRouterProvider } from "./standard/OpenRouterProvider";
|
|
11
|
+
import { ClaudeCodeProvider } from "./agent/ClaudeCodeProvider";
|
|
12
|
+
import { CodexAppServerProvider } from "./agent/CodexAppServerProvider";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* AI SDK usage with optional extended fields (for standard providers)
|
|
16
|
+
*/
|
|
17
|
+
interface ExtendedUsage extends LanguageModelUsage {
|
|
18
|
+
cachedInputTokens?: number;
|
|
19
|
+
reasoningTokens?: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Extract usage metadata from standard providers that report directly in totalUsage
|
|
24
|
+
*/
|
|
25
|
+
function extractStandardUsage(
|
|
26
|
+
model: string,
|
|
27
|
+
totalUsage: LanguageModelUsage | undefined
|
|
28
|
+
): LanguageModelUsageWithCostUsd {
|
|
29
|
+
const extendedUsage = totalUsage as ExtendedUsage | undefined;
|
|
30
|
+
|
|
31
|
+
const inputTokens = totalUsage?.inputTokens;
|
|
32
|
+
const outputTokens = totalUsage?.outputTokens;
|
|
33
|
+
const totalTokens = totalUsage?.totalTokens ??
|
|
34
|
+
(inputTokens !== undefined && outputTokens !== undefined
|
|
35
|
+
? inputTokens + outputTokens
|
|
36
|
+
: undefined);
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
model,
|
|
40
|
+
inputTokens,
|
|
41
|
+
outputTokens,
|
|
42
|
+
totalTokens,
|
|
43
|
+
cachedInputTokens: extendedUsage?.cachedInputTokens,
|
|
44
|
+
reasoningTokens: extendedUsage?.reasoningTokens,
|
|
45
|
+
} as LanguageModelUsageWithCostUsd;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Extract usage metadata from provider response
|
|
50
|
+
*
|
|
51
|
+
* Dispatches to the appropriate provider-specific extractor based on provider ID.
|
|
52
|
+
*/
|
|
53
|
+
export function extractUsageMetadata(
|
|
54
|
+
provider: string,
|
|
55
|
+
model: string,
|
|
56
|
+
totalUsage: LanguageModelUsage | undefined,
|
|
57
|
+
providerMetadata: Record<string, unknown> | undefined
|
|
58
|
+
): LanguageModelUsageWithCostUsd {
|
|
59
|
+
switch (provider) {
|
|
60
|
+
case PROVIDER_IDS.OPENROUTER:
|
|
61
|
+
return OpenRouterProvider.extractUsageMetadata(model, totalUsage, providerMetadata);
|
|
62
|
+
case PROVIDER_IDS.CLAUDE_CODE:
|
|
63
|
+
return ClaudeCodeProvider.extractUsageMetadata(model, totalUsage, providerMetadata);
|
|
64
|
+
case PROVIDER_IDS.CODEX_APP_SERVER:
|
|
65
|
+
return CodexAppServerProvider.extractUsageMetadata(model, totalUsage, providerMetadata);
|
|
66
|
+
default:
|
|
67
|
+
return extractStandardUsage(model, totalUsage);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Extract OpenRouter generation ID for trace correlation
|
|
73
|
+
*/
|
|
74
|
+
export function extractOpenRouterGenerationId(
|
|
75
|
+
providerMetadata: Record<string, unknown> | undefined
|
|
76
|
+
): string | undefined {
|
|
77
|
+
return OpenRouterProvider.extractGenerationId(providerMetadata);
|
|
78
|
+
}
|