erosolar-cli 1.0.2 → 1.0.5
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 +80 -44
- package/agents/erosolar-code.rules.json +167 -0
- package/agents/general.rules.json +188 -0
- package/dist/adapters/browser/index.d.ts +12 -0
- package/dist/adapters/browser/index.d.ts.map +1 -0
- package/dist/adapters/browser/index.js +1 -0
- package/dist/adapters/browser/index.js.map +1 -0
- package/dist/adapters/node/index.d.ts +17 -0
- package/dist/adapters/node/index.d.ts.map +1 -0
- package/dist/adapters/node/index.js +1 -0
- package/dist/adapters/node/index.js.map +1 -0
- package/dist/adapters/remote/index.d.ts +13 -0
- package/dist/adapters/remote/index.d.ts.map +1 -0
- package/dist/adapters/remote/index.js +1 -0
- package/dist/adapters/remote/index.js.map +1 -0
- package/dist/adapters/types.d.ts +14 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +1 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/bin/erosolar.d.ts +3 -0
- package/dist/bin/erosolar.d.ts.map +1 -0
- package/dist/bin/erosolar.js +1 -0
- package/dist/bin/erosolar.js.map +1 -0
- package/dist/capabilities/bashCapability.d.ts +13 -0
- package/dist/capabilities/bashCapability.d.ts.map +1 -0
- package/dist/capabilities/bashCapability.js +1 -0
- package/dist/capabilities/bashCapability.js.map +1 -0
- package/dist/capabilities/codeAnalysisCapability.d.ts +13 -0
- package/dist/capabilities/codeAnalysisCapability.d.ts.map +1 -0
- package/dist/capabilities/codeAnalysisCapability.js +24 -0
- package/dist/capabilities/codeAnalysisCapability.js.map +1 -0
- package/dist/capabilities/codeGenerationCapability.d.ts +13 -0
- package/dist/capabilities/codeGenerationCapability.d.ts.map +1 -0
- package/dist/capabilities/codeGenerationCapability.js +25 -0
- package/dist/capabilities/codeGenerationCapability.js.map +1 -0
- package/dist/capabilities/codeQualityCapability.d.ts +13 -0
- package/dist/capabilities/codeQualityCapability.d.ts.map +1 -0
- package/dist/capabilities/codeQualityCapability.js +25 -0
- package/dist/capabilities/codeQualityCapability.js.map +1 -0
- package/dist/capabilities/dependencySecurityCapability.d.ts +13 -0
- package/dist/capabilities/dependencySecurityCapability.d.ts.map +1 -0
- package/dist/capabilities/dependencySecurityCapability.js +24 -0
- package/dist/capabilities/dependencySecurityCapability.js.map +1 -0
- package/dist/capabilities/devCapability.d.ts +13 -0
- package/dist/capabilities/devCapability.d.ts.map +1 -0
- package/dist/capabilities/devCapability.js +24 -0
- package/dist/capabilities/devCapability.js.map +1 -0
- package/dist/capabilities/filesystemCapability.d.ts +13 -0
- package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
- package/dist/capabilities/filesystemCapability.js +1 -0
- package/dist/capabilities/filesystemCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +10 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +7 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/refactoringCapability.d.ts +13 -0
- package/dist/capabilities/refactoringCapability.d.ts.map +1 -0
- package/dist/capabilities/refactoringCapability.js +25 -0
- package/dist/capabilities/refactoringCapability.js.map +1 -0
- package/dist/capabilities/repoChecksCapability.d.ts +10 -0
- package/dist/capabilities/repoChecksCapability.d.ts.map +1 -0
- package/dist/capabilities/repoChecksCapability.js +24 -0
- package/dist/capabilities/repoChecksCapability.js.map +1 -0
- package/dist/capabilities/searchCapability.d.ts +13 -0
- package/dist/capabilities/searchCapability.d.ts.map +1 -0
- package/dist/capabilities/searchCapability.js +1 -0
- package/dist/capabilities/searchCapability.js.map +1 -0
- package/dist/capabilities/testingCapability.d.ts +13 -0
- package/dist/capabilities/testingCapability.d.ts.map +1 -0
- package/dist/capabilities/testingCapability.js +25 -0
- package/dist/capabilities/testingCapability.js.map +1 -0
- package/dist/capabilities/toolManifest.d.ts +3 -0
- package/dist/capabilities/toolManifest.d.ts.map +1 -0
- package/dist/capabilities/toolManifest.js +160 -0
- package/dist/capabilities/toolManifest.js.map +1 -0
- package/dist/capabilities/toolRegistry.d.ts +22 -0
- package/dist/capabilities/toolRegistry.d.ts.map +1 -0
- package/dist/capabilities/toolRegistry.js +49 -32
- package/dist/capabilities/toolRegistry.js.map +1 -0
- package/dist/config.d.ts +25 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +103 -23
- package/dist/config.js.map +1 -0
- package/dist/contracts/agent-profiles.schema.json +43 -0
- package/dist/contracts/agent-schemas.json +293 -0
- package/dist/contracts/schemas/agent-profile.schema.json +157 -0
- package/dist/contracts/schemas/agent-rules.schema.json +238 -0
- package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
- package/dist/contracts/schemas/agent.schema.json +89 -0
- package/dist/contracts/schemas/tool-selection.schema.json +174 -0
- package/dist/contracts/tools.schema.json +100 -0
- package/dist/contracts/v1/agent.d.ts +147 -0
- package/dist/contracts/v1/agent.d.ts.map +1 -0
- package/dist/contracts/v1/agent.js +1 -0
- package/dist/contracts/v1/agent.js.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.js +9 -0
- package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
- package/dist/contracts/v1/agentRules.d.ts +60 -0
- package/dist/contracts/v1/agentRules.d.ts.map +1 -0
- package/dist/contracts/v1/agentRules.js +10 -0
- package/dist/contracts/v1/agentRules.js.map +1 -0
- package/dist/contracts/v1/provider.d.ts +149 -0
- package/dist/contracts/v1/provider.d.ts.map +1 -0
- package/dist/contracts/v1/provider.js +1 -0
- package/dist/contracts/v1/provider.js.map +1 -0
- package/dist/contracts/v1/tool.d.ts +136 -0
- package/dist/contracts/v1/tool.d.ts.map +1 -0
- package/dist/contracts/v1/tool.js +1 -0
- package/dist/contracts/v1/tool.js.map +1 -0
- package/dist/contracts/v1/toolAccess.d.ts +43 -0
- package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
- package/dist/contracts/v1/toolAccess.js +9 -0
- package/dist/contracts/v1/toolAccess.js.map +1 -0
- package/dist/core/agent.d.ts +35 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +17 -9
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentProfileManifest.d.ts +3 -0
- package/dist/core/agentProfileManifest.d.ts.map +1 -0
- package/dist/core/agentProfileManifest.js +188 -0
- package/dist/core/agentProfileManifest.js.map +1 -0
- package/dist/core/agentProfiles.d.ts +22 -0
- package/dist/core/agentProfiles.d.ts.map +1 -0
- package/dist/core/agentProfiles.js +1 -0
- package/dist/core/agentProfiles.js.map +1 -0
- package/dist/core/agentRulebook.d.ts +11 -0
- package/dist/core/agentRulebook.d.ts.map +1 -0
- package/dist/core/agentRulebook.js +136 -0
- package/dist/core/agentRulebook.js.map +1 -0
- package/dist/core/agentSchemaLoader.d.ts +131 -0
- package/dist/core/agentSchemaLoader.d.ts.map +1 -0
- package/dist/core/agentSchemaLoader.js +221 -0
- package/dist/core/agentSchemaLoader.js.map +1 -0
- package/dist/core/contextWindow.d.ts +6 -0
- package/dist/core/contextWindow.d.ts.map +1 -0
- package/dist/core/contextWindow.js +1 -0
- package/dist/core/contextWindow.js.map +1 -0
- package/dist/core/errors/apiKeyErrors.d.ts +11 -0
- package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
- package/dist/core/errors/apiKeyErrors.js +1 -0
- package/dist/core/errors/apiKeyErrors.js.map +1 -0
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +33 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/preferences.d.ts +21 -0
- package/dist/core/preferences.d.ts.map +1 -0
- package/dist/core/preferences.js +13 -7
- package/dist/core/preferences.js.map +1 -0
- package/dist/core/schemaValidator.d.ts +6 -0
- package/dist/core/schemaValidator.d.ts.map +1 -0
- package/dist/core/schemaValidator.js +93 -0
- package/dist/core/schemaValidator.js.map +1 -0
- package/dist/core/secretStore.d.ts +20 -0
- package/dist/core/secretStore.d.ts.map +1 -0
- package/dist/core/secretStore.js +3 -8
- package/dist/core/secretStore.js.map +1 -0
- package/dist/core/toolRuntime.d.ts +42 -0
- package/dist/core/toolRuntime.d.ts.map +1 -0
- package/dist/core/toolRuntime.js +25 -10
- package/dist/core/toolRuntime.js.map +1 -0
- package/dist/core/types.d.ts +86 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +1 -0
- package/dist/core/types.js.map +1 -0
- package/dist/plugins/providers/anthropic/index.d.ts +2 -0
- package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
- package/dist/plugins/providers/anthropic/index.js +6 -4
- package/dist/plugins/providers/anthropic/index.js.map +1 -0
- package/dist/plugins/providers/deepseek/index.d.ts +2 -0
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
- package/dist/plugins/providers/deepseek/index.js +1 -0
- package/dist/plugins/providers/deepseek/index.js.map +1 -0
- package/dist/plugins/providers/google/index.d.ts +2 -0
- package/dist/plugins/providers/google/index.d.ts.map +1 -0
- package/dist/plugins/providers/google/index.js +6 -4
- package/dist/plugins/providers/google/index.js.map +1 -0
- package/dist/plugins/providers/index.d.ts +2 -0
- package/dist/plugins/providers/index.d.ts.map +1 -0
- package/dist/plugins/providers/index.js +1 -0
- package/dist/plugins/providers/index.js.map +1 -0
- package/dist/plugins/providers/openai/index.d.ts +3 -0
- package/dist/plugins/providers/openai/index.d.ts.map +1 -0
- package/dist/plugins/providers/openai/index.js +6 -4
- package/dist/plugins/providers/openai/index.js.map +1 -0
- package/dist/plugins/providers/xai/index.d.ts +2 -0
- package/dist/plugins/providers/xai/index.d.ts.map +1 -0
- package/dist/plugins/providers/xai/index.js +1 -0
- package/dist/plugins/providers/xai/index.js.map +1 -0
- package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
- package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/bash/localBashPlugin.js +1 -0
- package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +3 -0
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js +14 -0
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +1 -0
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +3 -0
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +14 -0
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +1 -0
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +3 -0
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +14 -0
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +1 -0
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +3 -0
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/dependency/dependencyPlugin.js +12 -0
- package/dist/plugins/tools/dependency/dependencyPlugin.js.map +1 -0
- package/dist/plugins/tools/development/devPlugin.d.ts +3 -0
- package/dist/plugins/tools/development/devPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/development/devPlugin.js +14 -0
- package/dist/plugins/tools/development/devPlugin.js.map +1 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +1 -0
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
- package/dist/plugins/tools/index.d.ts +3 -0
- package/dist/plugins/tools/index.d.ts.map +1 -0
- package/dist/plugins/tools/index.js +1 -0
- package/dist/plugins/tools/index.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts +2 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
- package/dist/plugins/tools/nodeDefaults.js +15 -2
- package/dist/plugins/tools/nodeDefaults.js.map +1 -0
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +3 -0
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/refactoring/refactoringPlugin.js +12 -0
- package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +1 -0
- package/dist/plugins/tools/registry.d.ts +22 -0
- package/dist/plugins/tools/registry.d.ts.map +1 -0
- package/dist/plugins/tools/registry.js +1 -0
- package/dist/plugins/tools/registry.js.map +1 -0
- package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
- package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/search/localSearchPlugin.js +1 -0
- package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
- package/dist/plugins/tools/testing/testingPlugin.d.ts +3 -0
- package/dist/plugins/tools/testing/testingPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/testing/testingPlugin.js +12 -0
- package/dist/plugins/tools/testing/testingPlugin.js.map +1 -0
- package/dist/providers/anthropicProvider.d.ts +23 -0
- package/dist/providers/anthropicProvider.d.ts.map +1 -0
- package/dist/providers/anthropicProvider.js +3 -2
- package/dist/providers/anthropicProvider.js.map +1 -0
- package/dist/providers/googleProvider.d.ts +19 -0
- package/dist/providers/googleProvider.d.ts.map +1 -0
- package/dist/providers/googleProvider.js +1 -1
- package/dist/providers/googleProvider.js.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts +16 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.js +1 -0
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
- package/dist/providers/openaiResponsesProvider.d.ts +20 -0
- package/dist/providers/openaiResponsesProvider.d.ts.map +1 -0
- package/dist/providers/openaiResponsesProvider.js +1 -0
- package/dist/providers/openaiResponsesProvider.js.map +1 -0
- package/dist/providers/providerFactory.d.ts +18 -0
- package/dist/providers/providerFactory.d.ts.map +1 -0
- package/dist/providers/providerFactory.js +5 -1
- package/dist/providers/providerFactory.js.map +1 -0
- package/dist/runtime/agentHost.d.ts +61 -0
- package/dist/runtime/agentHost.d.ts.map +1 -0
- package/dist/runtime/agentHost.js +5 -1
- package/dist/runtime/agentHost.js.map +1 -0
- package/dist/runtime/agentSession.d.ts +32 -0
- package/dist/runtime/agentSession.d.ts.map +1 -0
- package/dist/runtime/agentSession.js +17 -1
- package/dist/runtime/agentSession.js.map +1 -0
- package/dist/runtime/browser.d.ts +7 -0
- package/dist/runtime/browser.d.ts.map +1 -0
- package/dist/runtime/browser.js +1 -0
- package/dist/runtime/browser.js.map +1 -0
- package/dist/runtime/cloud.d.ts +7 -0
- package/dist/runtime/cloud.d.ts.map +1 -0
- package/dist/runtime/cloud.js +1 -0
- package/dist/runtime/cloud.js.map +1 -0
- package/dist/runtime/node.d.ts +8 -0
- package/dist/runtime/node.d.ts.map +1 -0
- package/dist/runtime/node.js +1 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/runtime/universal.d.ts +21 -0
- package/dist/runtime/universal.d.ts.map +1 -0
- package/dist/runtime/universal.js +1 -0
- package/dist/runtime/universal.js.map +1 -0
- package/dist/shell/bracketedPasteManager.d.ts +23 -0
- package/dist/shell/bracketedPasteManager.d.ts.map +1 -0
- package/dist/shell/bracketedPasteManager.js +1 -0
- package/dist/shell/bracketedPasteManager.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +131 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -0
- package/dist/shell/interactiveShell.js +325 -262
- package/dist/shell/interactiveShell.js.map +1 -0
- package/dist/shell/liveStatus.d.ts +29 -0
- package/dist/shell/liveStatus.d.ts.map +1 -0
- package/dist/shell/liveStatus.js +77 -0
- package/dist/shell/liveStatus.js.map +1 -0
- package/dist/shell/promptSkin.d.ts +43 -0
- package/dist/shell/promptSkin.d.ts.map +1 -0
- package/dist/shell/promptSkin.js +330 -0
- package/dist/shell/promptSkin.js.map +1 -0
- package/dist/shell/shellApp.d.ts +10 -0
- package/dist/shell/shellApp.d.ts.map +1 -0
- package/dist/shell/shellApp.js +149 -78
- package/dist/shell/shellApp.js.map +1 -0
- package/dist/shell/systemPrompt.d.ts +3 -0
- package/dist/shell/systemPrompt.d.ts.map +1 -0
- package/dist/shell/systemPrompt.js +64 -0
- package/dist/shell/systemPrompt.js.map +1 -0
- package/dist/shell/updateManager.d.ts +2 -0
- package/dist/shell/updateManager.d.ts.map +1 -0
- package/dist/shell/updateManager.js +109 -0
- package/dist/shell/updateManager.js.map +1 -0
- package/dist/tools/bashTools.d.ts +8 -0
- package/dist/tools/bashTools.d.ts.map +1 -0
- package/dist/tools/bashTools.js +18 -15
- package/dist/tools/bashTools.js.map +1 -0
- package/dist/tools/codeAnalysisTools.d.ts +74 -0
- package/dist/tools/codeAnalysisTools.d.ts.map +1 -0
- package/dist/tools/codeAnalysisTools.js +642 -0
- package/dist/tools/codeAnalysisTools.js.map +1 -0
- package/dist/tools/codeGenerationTools.d.ts +3 -0
- package/dist/tools/codeGenerationTools.d.ts.map +1 -0
- package/dist/tools/codeGenerationTools.js +369 -0
- package/dist/tools/codeGenerationTools.js.map +1 -0
- package/dist/tools/codeQualityTools.d.ts +3 -0
- package/dist/tools/codeQualityTools.d.ts.map +1 -0
- package/dist/tools/codeQualityTools.js +295 -0
- package/dist/tools/codeQualityTools.js.map +1 -0
- package/dist/tools/dependencyTools.d.ts +3 -0
- package/dist/tools/dependencyTools.d.ts.map +1 -0
- package/dist/tools/dependencyTools.js +283 -0
- package/dist/tools/dependencyTools.js.map +1 -0
- package/dist/tools/devTools.d.ts +10 -0
- package/dist/tools/devTools.d.ts.map +1 -0
- package/dist/tools/devTools.js +239 -0
- package/dist/tools/devTools.js.map +1 -0
- package/dist/tools/diffUtils.d.ts +8 -0
- package/dist/tools/diffUtils.d.ts.map +1 -0
- package/dist/tools/diffUtils.js +2 -1
- package/dist/tools/diffUtils.js.map +1 -0
- package/dist/tools/fileTools.d.ts +3 -0
- package/dist/tools/fileTools.d.ts.map +1 -0
- package/dist/tools/fileTools.js +72 -21
- package/dist/tools/fileTools.js.map +1 -0
- package/dist/tools/refactoringTools.d.ts +3 -0
- package/dist/tools/refactoringTools.d.ts.map +1 -0
- package/dist/tools/refactoringTools.js +294 -0
- package/dist/tools/refactoringTools.js.map +1 -0
- package/dist/tools/repoChecksTools.d.ts +3 -0
- package/dist/tools/repoChecksTools.d.ts.map +1 -0
- package/dist/tools/repoChecksTools.js +161 -0
- package/dist/tools/repoChecksTools.js.map +1 -0
- package/dist/tools/searchTools.d.ts +3 -0
- package/dist/tools/searchTools.d.ts.map +1 -0
- package/dist/tools/searchTools.js +50 -22
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/testingTools.d.ts +3 -0
- package/dist/tools/testingTools.d.ts.map +1 -0
- package/dist/tools/testingTools.js +233 -0
- package/dist/tools/testingTools.js.map +1 -0
- package/dist/ui/ShellUIAdapter.d.ts +96 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -0
- package/dist/ui/ShellUIAdapter.js +442 -0
- package/dist/ui/ShellUIAdapter.js.map +1 -0
- package/dist/ui/UnifiedUIController.d.ts +196 -0
- package/dist/ui/UnifiedUIController.d.ts.map +1 -0
- package/dist/ui/UnifiedUIController.js +640 -0
- package/dist/ui/UnifiedUIController.js.map +1 -0
- package/dist/ui/animation/AnimationScheduler.d.ts +192 -0
- package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
- package/dist/ui/animation/AnimationScheduler.js +432 -0
- package/dist/ui/animation/AnimationScheduler.js.map +1 -0
- package/dist/ui/codeHighlighter.d.ts +6 -0
- package/dist/ui/codeHighlighter.d.ts.map +1 -0
- package/dist/ui/codeHighlighter.js +41 -29
- package/dist/ui/codeHighlighter.js.map +1 -0
- package/dist/ui/designSystem.d.ts +26 -0
- package/dist/ui/designSystem.d.ts.map +1 -0
- package/dist/ui/designSystem.js +17 -1
- package/dist/ui/designSystem.js.map +1 -0
- package/dist/ui/display.d.ts +160 -0
- package/dist/ui/display.d.ts.map +1 -0
- package/dist/ui/display.js +492 -231
- package/dist/ui/display.js.map +1 -0
- package/dist/ui/interrupts/InterruptManager.d.ts +142 -0
- package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
- package/dist/ui/interrupts/InterruptManager.js +439 -0
- package/dist/ui/interrupts/InterruptManager.js.map +1 -0
- package/dist/ui/layout.d.ts +17 -0
- package/dist/ui/layout.d.ts.map +1 -0
- package/dist/ui/layout.js +12 -7
- package/dist/ui/layout.js.map +1 -0
- package/dist/ui/orchestration/StatusOrchestrator.d.ts +156 -0
- package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -0
- package/dist/ui/orchestration/StatusOrchestrator.js +405 -0
- package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -0
- package/dist/ui/overlay/OverlayManager.d.ts +105 -0
- package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
- package/dist/ui/overlay/OverlayManager.js +291 -0
- package/dist/ui/overlay/OverlayManager.js.map +1 -0
- package/dist/ui/richText.d.ts +6 -0
- package/dist/ui/richText.d.ts.map +1 -0
- package/dist/ui/richText.js +13 -4
- package/dist/ui/richText.js.map +1 -0
- package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
- package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
- package/dist/ui/telemetry/UITelemetry.js +446 -0
- package/dist/ui/telemetry/UITelemetry.js.map +1 -0
- package/dist/ui/theme.d.ts +77 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +19 -6
- package/dist/ui/theme.js.map +1 -0
- package/dist/utils/errorUtils.d.ts +16 -0
- package/dist/utils/errorUtils.d.ts.map +1 -0
- package/dist/utils/errorUtils.js +66 -0
- package/dist/utils/errorUtils.js.map +1 -0
- package/dist/utils/nodeVersion.d.ts +3 -0
- package/dist/utils/nodeVersion.d.ts.map +1 -0
- package/dist/utils/nodeVersion.js +51 -0
- package/dist/utils/nodeVersion.js.map +1 -0
- package/dist/workspace.d.ts +8 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +72 -11
- package/dist/workspace.js.map +1 -0
- package/package.json +35 -16
- package/scripts/health-check.mjs +176 -0
- package/ARCHITECTURE.json +0 -157
- package/Agents.md +0 -207
- package/SOURCE_OF_TRUTH.json +0 -103
- package/dist/capabilities/tavilyCapability.js +0 -26
- package/dist/plugins/tools/tavily/tavilyPlugin.js +0 -16
- package/dist/shell/__tests__/bracketedPasteManager.test.js +0 -35
- package/dist/tools/tavilyTools.js +0 -176
- package/dist/ui/__tests__/richText.test.js +0 -36
package/dist/shell/shellApp.js
CHANGED
|
@@ -3,20 +3,25 @@ import { readFileSync } from 'node:fs';
|
|
|
3
3
|
import { dirname, relative, resolve } from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import '../config.js';
|
|
6
|
-
import { buildWorkspaceContext } from '../workspace.js';
|
|
6
|
+
import { buildWorkspaceContext, resolveWorkspaceCaptureOptions } from '../workspace.js';
|
|
7
7
|
import { InteractiveShell } from './interactiveShell.js';
|
|
8
8
|
import { display } from '../ui/display.js';
|
|
9
9
|
import { loadActiveProfilePreference, loadModelPreference, loadToolSettings, } from '../core/preferences.js';
|
|
10
10
|
import { createNodeRuntime } from '../runtime/node.js';
|
|
11
11
|
import { buildEnabledToolSet, evaluateToolPermissions, isPluginEnabled, } from '../capabilities/toolRegistry.js';
|
|
12
12
|
import { listAgentProfiles, hasAgentProfile } from '../core/agentProfiles.js';
|
|
13
|
+
import { maybeOfferCliUpdate } from './updateManager.js';
|
|
14
|
+
import { LiveStatusTracker } from './liveStatus.js';
|
|
15
|
+
import { buildInteractiveSystemPrompt } from './systemPrompt.js';
|
|
16
|
+
import { ShellUIAdapter } from '../ui/ShellUIAdapter.js';
|
|
17
|
+
import { stdout } from 'node:process';
|
|
13
18
|
/**
|
|
14
19
|
* Launch the interactive shell with full capability awareness for the selected profile.
|
|
15
20
|
*/
|
|
16
21
|
export async function launchShell(defaultProfile, options = {}) {
|
|
17
22
|
try {
|
|
18
23
|
const { profileOverride, promptArgs } = parseLaunchArguments(process.argv.slice(2));
|
|
19
|
-
const envProfileOverride = process.env
|
|
24
|
+
const envProfileOverride = process.env['EROSOLAR_PROFILE']?.trim() || null;
|
|
20
25
|
const allowProfileSelection = Boolean(options.enableProfileSelection);
|
|
21
26
|
const availableProfiles = listAgentProfiles();
|
|
22
27
|
const rawSavedProfile = allowProfileSelection ? loadActiveProfilePreference() : null;
|
|
@@ -30,9 +35,18 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
30
35
|
allowSavedProfile: allowProfileSelection,
|
|
31
36
|
});
|
|
32
37
|
const workingDir = process.cwd();
|
|
33
|
-
|
|
34
|
-
const workspaceContext = buildWorkspaceContext(workingDir);
|
|
35
|
-
const
|
|
38
|
+
const workspaceOptions = resolveWorkspaceCaptureOptions(process.env);
|
|
39
|
+
const workspaceContext = buildWorkspaceContext(workingDir, workspaceOptions);
|
|
40
|
+
const statusTracker = new LiveStatusTracker();
|
|
41
|
+
// Create unified UI adapter early to get the tool observer
|
|
42
|
+
const uiAdapter = new ShellUIAdapter(stdout, display, {
|
|
43
|
+
useUnifiedUI: true,
|
|
44
|
+
preserveCompatibility: true,
|
|
45
|
+
enableTelemetry: true,
|
|
46
|
+
debugMode: false,
|
|
47
|
+
});
|
|
48
|
+
// Use the unified UI adapter's tool observer instead of the legacy one
|
|
49
|
+
const toolObserver = uiAdapter.createToolObserver();
|
|
36
50
|
const toolSettings = loadToolSettings();
|
|
37
51
|
const toolSelection = buildEnabledToolSet(toolSettings);
|
|
38
52
|
const permissionSummary = evaluateToolPermissions(toolSelection);
|
|
@@ -58,11 +72,14 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
58
72
|
temperature: profileConfig.temperature,
|
|
59
73
|
maxTokens: profileConfig.maxTokens,
|
|
60
74
|
};
|
|
61
|
-
// Update system prompt for interactive mode
|
|
62
75
|
const enhancedSystemPrompt = buildInteractiveSystemPrompt(profileConfig.systemPrompt, profileConfig.label, providerTools);
|
|
63
76
|
const version = readPackageVersion();
|
|
64
|
-
// Show welcome banner
|
|
65
77
|
display.showWelcome(profileConfig.label, profile, initialModel.model, initialModel.provider, workingDir, version);
|
|
78
|
+
display.showAvailableTools(providerTools);
|
|
79
|
+
const continueLaunch = await maybeOfferCliUpdate(version);
|
|
80
|
+
if (!continueLaunch) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
66
83
|
if (permissionSummary.warnings.length) {
|
|
67
84
|
reportSkippedTools(permissionSummary.warnings);
|
|
68
85
|
}
|
|
@@ -73,7 +90,6 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
73
90
|
options: availableProfiles,
|
|
74
91
|
}
|
|
75
92
|
: undefined;
|
|
76
|
-
// Create and start interactive shell
|
|
77
93
|
const shell = new InteractiveShell({
|
|
78
94
|
profile,
|
|
79
95
|
profileLabel: profileConfig.label,
|
|
@@ -82,8 +98,10 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
82
98
|
baseSystemPrompt: enhancedSystemPrompt,
|
|
83
99
|
initialModel,
|
|
84
100
|
agentSelection,
|
|
101
|
+
statusTracker,
|
|
102
|
+
uiAdapter,
|
|
103
|
+
workspaceOptions,
|
|
85
104
|
});
|
|
86
|
-
// Check for initial command from CLI args
|
|
87
105
|
const initialPrompt = promptArgs.join(' ').trim();
|
|
88
106
|
await shell.start(initialPrompt || undefined);
|
|
89
107
|
}
|
|
@@ -104,6 +122,9 @@ function parseLaunchArguments(argv) {
|
|
|
104
122
|
};
|
|
105
123
|
for (let index = 0; index < argv.length; index += 1) {
|
|
106
124
|
const token = argv[index];
|
|
125
|
+
if (!token) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
107
128
|
if (token === '--profile' || token === '-p') {
|
|
108
129
|
const value = expectValue(token, argv[index + 1]);
|
|
109
130
|
override = value;
|
|
@@ -176,69 +197,6 @@ function reportSkippedTools(entries) {
|
|
|
176
197
|
display.showWarning(`Skipped ${warning.label} — ${details}${suffix}`);
|
|
177
198
|
}
|
|
178
199
|
}
|
|
179
|
-
function buildInteractiveSystemPrompt(basePrompt, profileLabel, tools) {
|
|
180
|
-
const name = profileLabel || 'Active Agent';
|
|
181
|
-
const toolSummary = formatToolSummary(tools);
|
|
182
|
-
const hasTavilySearch = tools.some((tool) => tool.name === 'tavily_search');
|
|
183
|
-
const hasTavilyExtract = tools.some((tool) => tool.name === 'tavily_extract');
|
|
184
|
-
const capabilityLines = [
|
|
185
|
-
'✓ Full file system read/write access',
|
|
186
|
-
'✓ Bash command execution',
|
|
187
|
-
'✓ Advanced code search and analysis',
|
|
188
|
-
'✓ Workspace snapshot is guaranteed and immutable',
|
|
189
|
-
'✓ Tool usage is narrated to the operator in real time',
|
|
190
|
-
];
|
|
191
|
-
if (hasTavilySearch) {
|
|
192
|
-
const suffix = hasTavilyExtract ? ' and tavily_extract' : '';
|
|
193
|
-
capabilityLines.push(`✓ Live Tavily web search via tavily_search${suffix} for questions outside the repository.`);
|
|
194
|
-
}
|
|
195
|
-
const behaviorGuidelines = [
|
|
196
|
-
'Narrate your intent before reaching for a tool so the operator knows the plan.',
|
|
197
|
-
'Prefer evidence from README.md, SOURCE_OF_TRUTH.json, ARCHITECTURE.json, and package.json. Cite exact files/lines.',
|
|
198
|
-
'Use read/search tools before modifying code. Re-read files after edits to confirm changes.',
|
|
199
|
-
'Keep responses concise, but reference the commands, files, or tests you actually ran.',
|
|
200
|
-
'When running bash commands, summarize the important output.',
|
|
201
|
-
'If information is missing from the captured snapshot, say so explicitly and request the authoritative source.',
|
|
202
|
-
];
|
|
203
|
-
if (hasTavilySearch) {
|
|
204
|
-
const extra = hasTavilyExtract
|
|
205
|
-
? 'Run `tavily_search` when the user asks about current events or information not present in the repo, cite returned URLs, and use `tavily_extract` when you need more detail from a specific link.'
|
|
206
|
-
: 'Run `tavily_search` when the user asks about current events or information not present in the repo and cite the returned URLs.';
|
|
207
|
-
behaviorGuidelines.push(extra);
|
|
208
|
-
}
|
|
209
|
-
const behaviorSection = behaviorGuidelines
|
|
210
|
-
.map((line, index) => `${index + 1}. ${line}`)
|
|
211
|
-
.join('\n');
|
|
212
|
-
const reminderSuffix = hasTavilySearch ? ' Cite Tavily sources you rely on.' : '';
|
|
213
|
-
return `${basePrompt}
|
|
214
|
-
|
|
215
|
-
You are ${name}, running in an interactive shell with full capabilities:
|
|
216
|
-
|
|
217
|
-
AVAILABLE TOOLS:
|
|
218
|
-
${toolSummary}
|
|
219
|
-
|
|
220
|
-
CAPABILITIES:
|
|
221
|
-
${capabilityLines.join('\n')}
|
|
222
|
-
|
|
223
|
-
BEHAVIOR GUIDELINES:
|
|
224
|
-
${behaviorSection}
|
|
225
|
-
|
|
226
|
-
Remember: answer truthfully, ground everything in the workspace, and let the logs show what you actually did.${reminderSuffix}`;
|
|
227
|
-
}
|
|
228
|
-
function formatToolSummary(tools) {
|
|
229
|
-
if (!tools.length) {
|
|
230
|
-
return '- (no tools are registered in this session)';
|
|
231
|
-
}
|
|
232
|
-
return tools
|
|
233
|
-
.map((tool) => {
|
|
234
|
-
const description = tool.description ? sanitizeWhitespace(tool.description) : 'No description provided.';
|
|
235
|
-
return `- ${tool.name}: ${description}`;
|
|
236
|
-
})
|
|
237
|
-
.join('\n');
|
|
238
|
-
}
|
|
239
|
-
function sanitizeWhitespace(value) {
|
|
240
|
-
return value.replace(/\s+/g, ' ').trim();
|
|
241
|
-
}
|
|
242
200
|
function readPackageVersion() {
|
|
243
201
|
try {
|
|
244
202
|
const filePath = fileURLToPath(import.meta.url);
|
|
@@ -250,20 +208,35 @@ function readPackageVersion() {
|
|
|
250
208
|
return '0.0.0';
|
|
251
209
|
}
|
|
252
210
|
}
|
|
253
|
-
|
|
211
|
+
/**
|
|
212
|
+
* @deprecated This function is replaced by ShellUIAdapter.createToolObserver()
|
|
213
|
+
* which provides unified UI integration. Kept for backward compatibility.
|
|
214
|
+
*/
|
|
215
|
+
// @ts-expect-error - Legacy function kept for reference, not currently used
|
|
216
|
+
function createToolObserver(root, statusTracker) {
|
|
254
217
|
const inflight = new Map();
|
|
255
218
|
const popTitle = (call) => {
|
|
256
219
|
const title = inflight.get(call.id);
|
|
257
220
|
inflight.delete(call.id);
|
|
258
221
|
return title ?? formatToolTitle(call, root);
|
|
259
222
|
};
|
|
223
|
+
const statusId = (call) => `tool:${call.id}`;
|
|
224
|
+
const clearStatus = (call) => {
|
|
225
|
+
statusTracker.clearOverride(statusId(call));
|
|
226
|
+
};
|
|
260
227
|
return {
|
|
261
228
|
onToolStart: (call) => {
|
|
262
229
|
inflight.set(call.id, formatToolTitle(call, root));
|
|
230
|
+
const overlay = describeToolOverlay(call, root);
|
|
231
|
+
statusTracker.pushOverride(statusId(call), overlay.text, {
|
|
232
|
+
detail: overlay.detail,
|
|
233
|
+
tone: overlay.tone,
|
|
234
|
+
});
|
|
263
235
|
},
|
|
264
236
|
onToolResult: (call, output) => {
|
|
265
237
|
const summary = summarizeToolResult(call, output);
|
|
266
238
|
const title = popTitle(call);
|
|
239
|
+
clearStatus(call);
|
|
267
240
|
display.showAction(title, 'success');
|
|
268
241
|
if (summary) {
|
|
269
242
|
display.showSubAction(summary, 'success');
|
|
@@ -271,6 +244,7 @@ function createToolObserver(root) {
|
|
|
271
244
|
},
|
|
272
245
|
onToolError: (call, message) => {
|
|
273
246
|
const title = popTitle(call);
|
|
247
|
+
clearStatus(call);
|
|
274
248
|
display.showAction(title, 'error');
|
|
275
249
|
display.showSubAction(message, 'error');
|
|
276
250
|
},
|
|
@@ -278,11 +252,11 @@ function createToolObserver(root) {
|
|
|
278
252
|
}
|
|
279
253
|
function formatToolTitle(call, root) {
|
|
280
254
|
const getPath = () => {
|
|
281
|
-
const value = stringArg(call.arguments?.path);
|
|
255
|
+
const value = stringArg(call.arguments?.['path']);
|
|
282
256
|
return formatPath(value, root);
|
|
283
257
|
};
|
|
284
258
|
const getCommand = () => {
|
|
285
|
-
return truncate(stringArg(call.arguments?.command), 32);
|
|
259
|
+
return truncate(stringArg(call.arguments?.['command']), 32);
|
|
286
260
|
};
|
|
287
261
|
switch (call.name) {
|
|
288
262
|
case 'read_file':
|
|
@@ -292,11 +266,11 @@ function formatToolTitle(call, root) {
|
|
|
292
266
|
case 'list_files':
|
|
293
267
|
return `List(${getPath() || '.'})`;
|
|
294
268
|
case 'search_files':
|
|
295
|
-
return `Search(${stringArg(call.arguments?.pattern, '*')})`;
|
|
269
|
+
return `Search(${stringArg(call.arguments?.['pattern'], '*')})`;
|
|
296
270
|
case 'grep_search':
|
|
297
|
-
return `Grep(${stringArg(call.arguments?.pattern)})`;
|
|
271
|
+
return `Grep(${stringArg(call.arguments?.['pattern'])})`;
|
|
298
272
|
case 'find_definition':
|
|
299
|
-
return `Find(${stringArg(call.arguments?.name)})`;
|
|
273
|
+
return `Find(${stringArg(call.arguments?.['name'])})`;
|
|
300
274
|
case 'execute_bash':
|
|
301
275
|
return `Bash(${getCommand()})`;
|
|
302
276
|
case 'context_snapshot':
|
|
@@ -309,6 +283,102 @@ function formatToolTitle(call, root) {
|
|
|
309
283
|
return call.name;
|
|
310
284
|
}
|
|
311
285
|
}
|
|
286
|
+
function describeToolOverlay(call, root) {
|
|
287
|
+
const describePath = () => {
|
|
288
|
+
const value = stringArg(call.arguments?.['path']);
|
|
289
|
+
return formatPath(value, root) || '.';
|
|
290
|
+
};
|
|
291
|
+
const describePattern = (key) => {
|
|
292
|
+
const raw = stringArg(call.arguments?.[key]);
|
|
293
|
+
return raw ? truncate(raw, 32) : key === 'pattern' ? 'pattern' : 'target';
|
|
294
|
+
};
|
|
295
|
+
const describeCommand = () => {
|
|
296
|
+
const raw = stringArg(call.arguments?.['command']);
|
|
297
|
+
return raw ? truncate(raw, 40) : 'shell command';
|
|
298
|
+
};
|
|
299
|
+
switch (call.name) {
|
|
300
|
+
case 'read_file': {
|
|
301
|
+
const path = describePath();
|
|
302
|
+
return {
|
|
303
|
+
text: `Reading ${path}`,
|
|
304
|
+
detail: 'read_file tool running',
|
|
305
|
+
tone: 'info',
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
case 'write_file': {
|
|
309
|
+
const path = describePath();
|
|
310
|
+
return {
|
|
311
|
+
text: `Writing ${path}`,
|
|
312
|
+
detail: 'write_file tool running',
|
|
313
|
+
tone: 'warning',
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
case 'list_files': {
|
|
317
|
+
const path = describePath();
|
|
318
|
+
return {
|
|
319
|
+
text: `Listing ${path}`,
|
|
320
|
+
detail: 'list_files tool running',
|
|
321
|
+
tone: 'info',
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
case 'search_files': {
|
|
325
|
+
const pattern = describePattern('pattern');
|
|
326
|
+
return {
|
|
327
|
+
text: `Searching files for ${pattern}`,
|
|
328
|
+
detail: 'search_files tool running',
|
|
329
|
+
tone: 'info',
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
case 'grep_search': {
|
|
333
|
+
const pattern = describePattern('pattern');
|
|
334
|
+
return {
|
|
335
|
+
text: `Grep search for ${pattern}`,
|
|
336
|
+
detail: 'grep_search tool running',
|
|
337
|
+
tone: 'info',
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
case 'find_definition': {
|
|
341
|
+
const name = describePattern('name');
|
|
342
|
+
return {
|
|
343
|
+
text: `Locating ${name}`,
|
|
344
|
+
detail: 'find_definition tool running',
|
|
345
|
+
tone: 'info',
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
case 'execute_bash': {
|
|
349
|
+
const command = describeCommand();
|
|
350
|
+
return {
|
|
351
|
+
text: `Running bash: ${command}`,
|
|
352
|
+
detail: 'execute_bash tool running',
|
|
353
|
+
tone: 'warning',
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
case 'context_snapshot':
|
|
357
|
+
return {
|
|
358
|
+
text: 'Replaying workspace snapshot',
|
|
359
|
+
detail: 'context_snapshot tool running',
|
|
360
|
+
tone: 'info',
|
|
361
|
+
};
|
|
362
|
+
case 'capabilities_overview':
|
|
363
|
+
return {
|
|
364
|
+
text: 'Summarizing runtime capabilities',
|
|
365
|
+
detail: 'capabilities_overview tool running',
|
|
366
|
+
tone: 'info',
|
|
367
|
+
};
|
|
368
|
+
case 'profile_details':
|
|
369
|
+
return {
|
|
370
|
+
text: 'Describing profile metadata',
|
|
371
|
+
detail: 'profile_details tool running',
|
|
372
|
+
tone: 'info',
|
|
373
|
+
};
|
|
374
|
+
default:
|
|
375
|
+
return {
|
|
376
|
+
text: `Running ${call.name}`,
|
|
377
|
+
detail: 'Tool execution in progress',
|
|
378
|
+
tone: 'info',
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
}
|
|
312
382
|
function summarizeToolResult(call, output) {
|
|
313
383
|
switch (call.name) {
|
|
314
384
|
case 'read_file':
|
|
@@ -390,3 +460,4 @@ function truncate(value, max = 64) {
|
|
|
390
460
|
function stringArg(value, fallback = '') {
|
|
391
461
|
return typeof value === 'string' && value.trim().length > 0 ? value : fallback;
|
|
392
462
|
}
|
|
463
|
+
//# sourceMappingURL=shellApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellApp.js","sourceRoot":"","sources":["../../src/shell/shellApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,sBAAsB,EAAE,GAC9B,MAAM,CA4CR"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export function buildInteractiveSystemPrompt(basePrompt, profileLabel, tools) {
|
|
2
|
+
const name = profileLabel || 'Active Agent';
|
|
3
|
+
const toolSummary = formatToolSummary(tools);
|
|
4
|
+
const conciseToolSummary = formatToolSummary(tools, { maxDescriptionLength: 120 });
|
|
5
|
+
const capabilityLines = [
|
|
6
|
+
'✓ Full file system read/write access',
|
|
7
|
+
'✓ Bash command execution',
|
|
8
|
+
'✓ Advanced code search and analysis',
|
|
9
|
+
'✓ Workspace snapshot is guaranteed and immutable',
|
|
10
|
+
'✓ Tool usage is narrated to the operator in real time',
|
|
11
|
+
];
|
|
12
|
+
const behaviorGuidelines = [
|
|
13
|
+
'Narrate your intent before reaching for a tool so the operator knows the plan.',
|
|
14
|
+
'Treat src/contracts/agent-profiles.schema.json (contract: src/contracts/schemas/agent-profile.schema.json) and agents/*.rules.json (contract: src/contracts/schemas/agent-rules.schema.json) as the canonical guardrails; cite rule IDs and manifest versions when referencing instructions.',
|
|
15
|
+
'Prefer evidence from README.md, package.json, and the captured workspace context before editing.',
|
|
16
|
+
'Use read/search tools before modifying code. Re-read files after edits to confirm changes.',
|
|
17
|
+
'Keep responses concise, but reference the commands, files, or tests you actually ran.',
|
|
18
|
+
'When running bash commands, summarize the important output.',
|
|
19
|
+
'If information is missing from the captured snapshot, say so explicitly and request the authoritative source.',
|
|
20
|
+
];
|
|
21
|
+
const behaviorSection = behaviorGuidelines
|
|
22
|
+
.map((line, index) => `${index + 1}. ${line}`)
|
|
23
|
+
.join('\n');
|
|
24
|
+
return `${basePrompt}
|
|
25
|
+
|
|
26
|
+
You are ${name}, running in an interactive shell with full capabilities:
|
|
27
|
+
|
|
28
|
+
TOOL SUMMARY (concise, for the model):
|
|
29
|
+
${conciseToolSummary}
|
|
30
|
+
|
|
31
|
+
AVAILABLE TOOLS:
|
|
32
|
+
${toolSummary}
|
|
33
|
+
|
|
34
|
+
CAPABILITIES:
|
|
35
|
+
${capabilityLines.join('\n')}
|
|
36
|
+
|
|
37
|
+
BEHAVIOR GUIDELINES:
|
|
38
|
+
${behaviorSection}
|
|
39
|
+
|
|
40
|
+
Remember: answer truthfully, ground everything in the workspace, and let the logs show what you actually did.`;
|
|
41
|
+
}
|
|
42
|
+
function formatToolSummary(tools, options = {}) {
|
|
43
|
+
if (!tools.length) {
|
|
44
|
+
return '- (no tools are registered in this session)';
|
|
45
|
+
}
|
|
46
|
+
return tools
|
|
47
|
+
.map((tool) => {
|
|
48
|
+
const description = tool.description ? sanitizeWhitespace(tool.description) : 'No description provided.';
|
|
49
|
+
const summary = truncate(description, options.maxDescriptionLength);
|
|
50
|
+
return `- ${tool.name}: ${summary}`;
|
|
51
|
+
})
|
|
52
|
+
.join('\n');
|
|
53
|
+
}
|
|
54
|
+
function sanitizeWhitespace(value) {
|
|
55
|
+
return value.replace(/\s+/g, ' ').trim();
|
|
56
|
+
}
|
|
57
|
+
function truncate(value, maxLength) {
|
|
58
|
+
if (!maxLength || value.length <= maxLength) {
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
const safeLength = Math.max(0, maxLength - 3);
|
|
62
|
+
return `${value.slice(0, safeLength).trimEnd()}...`;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=systemPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,YAAoB,EACpB,KAA+B;IAE/B,MAAM,IAAI,GAAG,YAAY,IAAI,cAAc,CAAC;IAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnF,MAAM,eAAe,GAAG;QACtB,sCAAsC;QACtC,0BAA0B;QAC1B,qCAAqC;QACrC,kDAAkD;QAClD,uDAAuD;KACxD,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,gFAAgF;QAChF,8RAA8R;QAC9R,kGAAkG;QAClG,4FAA4F;QAC5F,uFAAuF;QACvF,6DAA6D;QAC7D,+GAA+G;KAChH,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB;SACvC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,GAAG,UAAU;;UAEZ,IAAI;;;EAGZ,kBAAkB;;;EAGlB,WAAW;;;EAGX,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG1B,eAAe;;8GAE6F,CAAC;AAC/G,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAA+B,EAAE,UAA8B,EAAE;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6CAA6C,CAAC;IACvD,CAAC;IACD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACzG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACpE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAkB;IACjD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateManager.d.ts","sourceRoot":"","sources":["../../src/shell/updateManager.ts"],"names":[],"mappings":"AASA,wBAAsB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDlF"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
3
|
+
import { createInterface } from 'node:readline/promises';
|
|
4
|
+
import { display } from '../ui/display.js';
|
|
5
|
+
const PACKAGE_NAME = 'erosolar-cli';
|
|
6
|
+
const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
7
|
+
const FETCH_TIMEOUT_MS = 4000;
|
|
8
|
+
export async function maybeOfferCliUpdate(currentVersion) {
|
|
9
|
+
try {
|
|
10
|
+
const latestVersion = await fetchLatestVersion();
|
|
11
|
+
if (!latestVersion) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
if (!isNewerVersion(latestVersion, currentVersion)) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
display.showInfo([
|
|
18
|
+
`A new Erosolar CLI release is available.`,
|
|
19
|
+
`Current version: ${currentVersion}`,
|
|
20
|
+
`Latest version: ${latestVersion}`,
|
|
21
|
+
].join('\n'));
|
|
22
|
+
if (!input.isTTY || !output.isTTY) {
|
|
23
|
+
display.showInfo(`Run "npm install -g ${PACKAGE_NAME}@latest" when you're ready to upgrade.`);
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
const shouldUpdate = await promptForUpdate();
|
|
27
|
+
if (!shouldUpdate) {
|
|
28
|
+
display.showInfo(`Continuing with ${currentVersion}. You can upgrade later via "npm install -g ${PACKAGE_NAME}@latest".`);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const success = await installLatestVersion();
|
|
32
|
+
if (success) {
|
|
33
|
+
display.showInfo(`Update complete. Relaunch the CLI to start using ${PACKAGE_NAME}@${latestVersion}.`);
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
display.showWarning(`Failed to install ${PACKAGE_NAME}@latest. Please run "npm install -g ${PACKAGE_NAME}@latest" manually.`);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function fetchLatestVersion() {
|
|
44
|
+
const controller = new AbortController();
|
|
45
|
+
const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
|
|
46
|
+
timeout.unref?.();
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetch(REGISTRY_URL, {
|
|
49
|
+
headers: { 'user-agent': `${PACKAGE_NAME}/update-check` },
|
|
50
|
+
signal: controller.signal,
|
|
51
|
+
});
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const payload = (await response.json());
|
|
56
|
+
return typeof payload.version === 'string' ? payload.version : null;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
clearTimeout(timeout);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function isNewerVersion(latest, current) {
|
|
66
|
+
const latestParts = normalizeVersion(latest);
|
|
67
|
+
const currentParts = normalizeVersion(current);
|
|
68
|
+
const length = Math.max(latestParts.length, currentParts.length);
|
|
69
|
+
for (let index = 0; index < length; index += 1) {
|
|
70
|
+
const nextLatest = latestParts[index] ?? 0;
|
|
71
|
+
const nextCurrent = currentParts[index] ?? 0;
|
|
72
|
+
if (nextLatest > nextCurrent) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
if (nextLatest < nextCurrent) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
function normalizeVersion(value) {
|
|
82
|
+
const sanitized = value.split('-')[0] ?? '';
|
|
83
|
+
return sanitized
|
|
84
|
+
.split('.')
|
|
85
|
+
.map((segment) => Number.parseInt(segment, 10))
|
|
86
|
+
.filter((segment) => Number.isFinite(segment) && segment >= 0);
|
|
87
|
+
}
|
|
88
|
+
async function promptForUpdate() {
|
|
89
|
+
const prompt = createInterface({ input, output });
|
|
90
|
+
try {
|
|
91
|
+
const answer = await prompt.question('Update now? (Y/n): ');
|
|
92
|
+
const normalized = answer.trim().toLowerCase();
|
|
93
|
+
return normalized === '' || normalized === 'y' || normalized === 'yes';
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
prompt.close();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function installLatestVersion() {
|
|
100
|
+
const binary = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
101
|
+
return new Promise((resolve) => {
|
|
102
|
+
const child = spawn(binary, ['install', '-g', `${PACKAGE_NAME}@latest`], {
|
|
103
|
+
stdio: 'inherit',
|
|
104
|
+
});
|
|
105
|
+
child.on('error', () => resolve(false));
|
|
106
|
+
child.on('close', (code) => resolve(code === 0));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=updateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateManager.js","sourceRoot":"","sources":["../../src/shell/updateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../core/toolRuntime.js';
|
|
2
|
+
export declare function createBashTools(workingDir: string): ToolDefinition[];
|
|
3
|
+
interface SandboxEnvOptions {
|
|
4
|
+
preserveHome?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function buildSandboxEnv(workingDir: string, options?: SandboxEnvOptions): Promise<NodeJS.ProcessEnv>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=bashTools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bashTools.d.ts","sourceRoot":"","sources":["../../src/tools/bashTools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAc7D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,EAAE,CAqEpE;AAED,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CA6B5B"}
|