erosolar-cli 1.0.2 → 1.0.3
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/Agents.md +411 -200
- package/README.md +77 -44
- 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 +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +98 -23
- package/dist/config.js.map +1 -0
- package/dist/contracts/agent-profiles.schema.json +43 -0
- package/dist/contracts/agent-schema.snapshot.json +437 -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.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 +52 -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 +176 -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 +10 -0
- package/dist/core/agentRulebook.d.ts.map +1 -0
- package/dist/core/agentRulebook.js +153 -0
- package/dist/core/agentRulebook.js.map +1 -0
- package/dist/core/agentSchemaSnapshot.d.ts +14 -0
- package/dist/core/agentSchemaSnapshot.d.ts.map +1 -0
- package/dist/core/agentSchemaSnapshot.js +38 -0
- package/dist/core/agentSchemaSnapshot.js.map +1 -0
- package/dist/core/agentsDocument.d.ts +4 -0
- package/dist/core/agentsDocument.d.ts.map +1 -0
- package/dist/core/agentsDocument.js +70 -0
- package/dist/core/agentsDocument.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 +48 -0
- package/dist/core/toolRuntime.d.ts.map +1 -0
- package/dist/core/toolRuntime.js +34 -11
- 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 +23 -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 +128 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -0
- package/dist/shell/interactiveShell.js +264 -146
- package/dist/shell/interactiveShell.js.map +1 -0
- package/dist/shell/liveStatus.d.ts +33 -0
- package/dist/shell/liveStatus.d.ts.map +1 -0
- package/dist/shell/liveStatus.js +89 -0
- package/dist/shell/liveStatus.js.map +1 -0
- package/dist/shell/promptSkin.d.ts +50 -0
- package/dist/shell/promptSkin.d.ts.map +1 -0
- package/dist/shell/promptSkin.js +380 -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 +155 -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/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 +1 -0
- package/dist/ui/designSystem.js.map +1 -0
- package/dist/ui/display.d.ts +78 -0
- package/dist/ui/display.d.ts.map +1 -0
- package/dist/ui/display.js +211 -153
- package/dist/ui/display.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/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/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/ui/unified/UIEventBus.d.ts +93 -0
- package/dist/ui/unified/UIEventBus.d.ts.map +1 -0
- package/dist/ui/unified/UIEventBus.js +124 -0
- package/dist/ui/unified/UIEventBus.js.map +1 -0
- package/dist/ui/unified/UIState.d.ts +123 -0
- package/dist/ui/unified/UIState.d.ts.map +1 -0
- package/dist/ui/unified/UIState.js +188 -0
- package/dist/ui/unified/UIState.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 +68 -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 +63 -11
- package/dist/workspace.js.map +1 -0
- package/package.json +27 -14
- package/scripts/health-check.mjs +179 -0
- package/ARCHITECTURE.json +0 -157
- 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,23 @@ 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, INTERRUPT_HINT } from './liveStatus.js';
|
|
15
|
+
import { buildInteractiveSystemPrompt } from './systemPrompt.js';
|
|
13
16
|
/**
|
|
14
17
|
* Launch the interactive shell with full capability awareness for the selected profile.
|
|
15
18
|
*/
|
|
16
19
|
export async function launchShell(defaultProfile, options = {}) {
|
|
17
20
|
try {
|
|
18
21
|
const { profileOverride, promptArgs } = parseLaunchArguments(process.argv.slice(2));
|
|
19
|
-
const envProfileOverride = process.env
|
|
22
|
+
const envProfileOverride = process.env['EROSOLAR_PROFILE']?.trim() || null;
|
|
20
23
|
const allowProfileSelection = Boolean(options.enableProfileSelection);
|
|
21
24
|
const availableProfiles = listAgentProfiles();
|
|
22
25
|
const rawSavedProfile = allowProfileSelection ? loadActiveProfilePreference() : null;
|
|
@@ -30,9 +33,10 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
30
33
|
allowSavedProfile: allowProfileSelection,
|
|
31
34
|
});
|
|
32
35
|
const workingDir = process.cwd();
|
|
33
|
-
|
|
34
|
-
const workspaceContext = buildWorkspaceContext(workingDir);
|
|
35
|
-
const
|
|
36
|
+
const workspaceOptions = resolveWorkspaceCaptureOptions(process.env);
|
|
37
|
+
const workspaceContext = buildWorkspaceContext(workingDir, workspaceOptions);
|
|
38
|
+
const statusTracker = new LiveStatusTracker();
|
|
39
|
+
const toolObserver = createToolObserver(workingDir, statusTracker);
|
|
36
40
|
const toolSettings = loadToolSettings();
|
|
37
41
|
const toolSelection = buildEnabledToolSet(toolSettings);
|
|
38
42
|
const permissionSummary = evaluateToolPermissions(toolSelection);
|
|
@@ -58,11 +62,14 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
58
62
|
temperature: profileConfig.temperature,
|
|
59
63
|
maxTokens: profileConfig.maxTokens,
|
|
60
64
|
};
|
|
61
|
-
// Update system prompt for interactive mode
|
|
62
65
|
const enhancedSystemPrompt = buildInteractiveSystemPrompt(profileConfig.systemPrompt, profileConfig.label, providerTools);
|
|
63
66
|
const version = readPackageVersion();
|
|
64
|
-
// Show welcome banner
|
|
65
67
|
display.showWelcome(profileConfig.label, profile, initialModel.model, initialModel.provider, workingDir, version);
|
|
68
|
+
display.showAvailableTools(providerTools);
|
|
69
|
+
const continueLaunch = await maybeOfferCliUpdate(version);
|
|
70
|
+
if (!continueLaunch) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
66
73
|
if (permissionSummary.warnings.length) {
|
|
67
74
|
reportSkippedTools(permissionSummary.warnings);
|
|
68
75
|
}
|
|
@@ -73,7 +80,6 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
73
80
|
options: availableProfiles,
|
|
74
81
|
}
|
|
75
82
|
: undefined;
|
|
76
|
-
// Create and start interactive shell
|
|
77
83
|
const shell = new InteractiveShell({
|
|
78
84
|
profile,
|
|
79
85
|
profileLabel: profileConfig.label,
|
|
@@ -82,8 +88,9 @@ export async function launchShell(defaultProfile, options = {}) {
|
|
|
82
88
|
baseSystemPrompt: enhancedSystemPrompt,
|
|
83
89
|
initialModel,
|
|
84
90
|
agentSelection,
|
|
91
|
+
statusTracker,
|
|
92
|
+
workspaceOptions,
|
|
85
93
|
});
|
|
86
|
-
// Check for initial command from CLI args
|
|
87
94
|
const initialPrompt = promptArgs.join(' ').trim();
|
|
88
95
|
await shell.start(initialPrompt || undefined);
|
|
89
96
|
}
|
|
@@ -104,6 +111,9 @@ function parseLaunchArguments(argv) {
|
|
|
104
111
|
};
|
|
105
112
|
for (let index = 0; index < argv.length; index += 1) {
|
|
106
113
|
const token = argv[index];
|
|
114
|
+
if (!token) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
107
117
|
if (token === '--profile' || token === '-p') {
|
|
108
118
|
const value = expectValue(token, argv[index + 1]);
|
|
109
119
|
override = value;
|
|
@@ -176,69 +186,6 @@ function reportSkippedTools(entries) {
|
|
|
176
186
|
display.showWarning(`Skipped ${warning.label} — ${details}${suffix}`);
|
|
177
187
|
}
|
|
178
188
|
}
|
|
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
189
|
function readPackageVersion() {
|
|
243
190
|
try {
|
|
244
191
|
const filePath = fileURLToPath(import.meta.url);
|
|
@@ -250,20 +197,31 @@ function readPackageVersion() {
|
|
|
250
197
|
return '0.0.0';
|
|
251
198
|
}
|
|
252
199
|
}
|
|
253
|
-
function createToolObserver(root) {
|
|
200
|
+
function createToolObserver(root, statusTracker) {
|
|
254
201
|
const inflight = new Map();
|
|
255
202
|
const popTitle = (call) => {
|
|
256
203
|
const title = inflight.get(call.id);
|
|
257
204
|
inflight.delete(call.id);
|
|
258
205
|
return title ?? formatToolTitle(call, root);
|
|
259
206
|
};
|
|
207
|
+
const statusId = (call) => `tool:${call.id}`;
|
|
208
|
+
const clearStatus = (call) => {
|
|
209
|
+
statusTracker.clearOverride(statusId(call));
|
|
210
|
+
};
|
|
260
211
|
return {
|
|
261
212
|
onToolStart: (call) => {
|
|
262
213
|
inflight.set(call.id, formatToolTitle(call, root));
|
|
214
|
+
const overlay = describeToolOverlay(call, root);
|
|
215
|
+
statusTracker.pushOverride(statusId(call), overlay.text, {
|
|
216
|
+
detail: overlay.detail,
|
|
217
|
+
tone: overlay.tone,
|
|
218
|
+
animate: overlay.animate ?? true,
|
|
219
|
+
});
|
|
263
220
|
},
|
|
264
221
|
onToolResult: (call, output) => {
|
|
265
222
|
const summary = summarizeToolResult(call, output);
|
|
266
223
|
const title = popTitle(call);
|
|
224
|
+
clearStatus(call);
|
|
267
225
|
display.showAction(title, 'success');
|
|
268
226
|
if (summary) {
|
|
269
227
|
display.showSubAction(summary, 'success');
|
|
@@ -271,6 +229,7 @@ function createToolObserver(root) {
|
|
|
271
229
|
},
|
|
272
230
|
onToolError: (call, message) => {
|
|
273
231
|
const title = popTitle(call);
|
|
232
|
+
clearStatus(call);
|
|
274
233
|
display.showAction(title, 'error');
|
|
275
234
|
display.showSubAction(message, 'error');
|
|
276
235
|
},
|
|
@@ -278,11 +237,11 @@ function createToolObserver(root) {
|
|
|
278
237
|
}
|
|
279
238
|
function formatToolTitle(call, root) {
|
|
280
239
|
const getPath = () => {
|
|
281
|
-
const value = stringArg(call.arguments?.path);
|
|
240
|
+
const value = stringArg(call.arguments?.['path']);
|
|
282
241
|
return formatPath(value, root);
|
|
283
242
|
};
|
|
284
243
|
const getCommand = () => {
|
|
285
|
-
return truncate(stringArg(call.arguments?.command), 32);
|
|
244
|
+
return truncate(stringArg(call.arguments?.['command']), 32);
|
|
286
245
|
};
|
|
287
246
|
switch (call.name) {
|
|
288
247
|
case 'read_file':
|
|
@@ -292,11 +251,11 @@ function formatToolTitle(call, root) {
|
|
|
292
251
|
case 'list_files':
|
|
293
252
|
return `List(${getPath() || '.'})`;
|
|
294
253
|
case 'search_files':
|
|
295
|
-
return `Search(${stringArg(call.arguments?.pattern, '*')})`;
|
|
254
|
+
return `Search(${stringArg(call.arguments?.['pattern'], '*')})`;
|
|
296
255
|
case 'grep_search':
|
|
297
|
-
return `Grep(${stringArg(call.arguments?.pattern)})`;
|
|
256
|
+
return `Grep(${stringArg(call.arguments?.['pattern'])})`;
|
|
298
257
|
case 'find_definition':
|
|
299
|
-
return `Find(${stringArg(call.arguments?.name)})`;
|
|
258
|
+
return `Find(${stringArg(call.arguments?.['name'])})`;
|
|
300
259
|
case 'execute_bash':
|
|
301
260
|
return `Bash(${getCommand()})`;
|
|
302
261
|
case 'context_snapshot':
|
|
@@ -309,6 +268,123 @@ function formatToolTitle(call, root) {
|
|
|
309
268
|
return call.name;
|
|
310
269
|
}
|
|
311
270
|
}
|
|
271
|
+
function describeToolOverlay(call, root) {
|
|
272
|
+
const describePath = () => {
|
|
273
|
+
const value = stringArg(call.arguments?.['path']);
|
|
274
|
+
return formatPath(value, root) || '.';
|
|
275
|
+
};
|
|
276
|
+
const describePattern = (key) => {
|
|
277
|
+
const raw = stringArg(call.arguments?.[key]);
|
|
278
|
+
return raw ? truncate(raw, 32) : key === 'pattern' ? 'pattern' : 'target';
|
|
279
|
+
};
|
|
280
|
+
const describeCommand = () => {
|
|
281
|
+
const raw = stringArg(call.arguments?.['command']);
|
|
282
|
+
return raw ? truncate(raw, 40) : 'shell command';
|
|
283
|
+
};
|
|
284
|
+
const withInterruptHint = (...segments) => {
|
|
285
|
+
const normalized = segments
|
|
286
|
+
.map((value) => (typeof value === 'string' ? value.trim() : ''))
|
|
287
|
+
.filter((value) => Boolean(value));
|
|
288
|
+
normalized.push(INTERRUPT_HINT);
|
|
289
|
+
return normalized;
|
|
290
|
+
};
|
|
291
|
+
switch (call.name) {
|
|
292
|
+
case 'read_file': {
|
|
293
|
+
const path = describePath();
|
|
294
|
+
return {
|
|
295
|
+
text: 'Requesting more file content',
|
|
296
|
+
detail: withInterruptHint(`Reading ${path}`),
|
|
297
|
+
tone: 'info',
|
|
298
|
+
animate: true,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
case 'write_file': {
|
|
302
|
+
const path = describePath();
|
|
303
|
+
return {
|
|
304
|
+
text: `Writing ${path}`,
|
|
305
|
+
detail: withInterruptHint('write_file tool running'),
|
|
306
|
+
tone: 'warning',
|
|
307
|
+
animate: true,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
case 'list_files': {
|
|
311
|
+
const path = describePath();
|
|
312
|
+
return {
|
|
313
|
+
text: `Listing ${path}`,
|
|
314
|
+
detail: withInterruptHint('list_files tool running'),
|
|
315
|
+
tone: 'info',
|
|
316
|
+
animate: true,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
case 'search_files': {
|
|
320
|
+
const pattern = describePattern('pattern');
|
|
321
|
+
return {
|
|
322
|
+
text: `Searching files for ${pattern}`,
|
|
323
|
+
detail: withInterruptHint('search_files tool running'),
|
|
324
|
+
tone: 'info',
|
|
325
|
+
animate: true,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
case 'grep_search': {
|
|
329
|
+
const pattern = describePattern('pattern');
|
|
330
|
+
return {
|
|
331
|
+
text: `Grep search for ${pattern}`,
|
|
332
|
+
detail: withInterruptHint('grep_search tool running'),
|
|
333
|
+
tone: 'info',
|
|
334
|
+
animate: true,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
case 'find_definition': {
|
|
338
|
+
const name = describePattern('name');
|
|
339
|
+
return {
|
|
340
|
+
text: `Locating ${name}`,
|
|
341
|
+
detail: withInterruptHint('find_definition tool running'),
|
|
342
|
+
tone: 'info',
|
|
343
|
+
animate: true,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
case 'execute_bash': {
|
|
347
|
+
const command = describeCommand();
|
|
348
|
+
return {
|
|
349
|
+
text: `Running bash: ${command}`,
|
|
350
|
+
detail: withInterruptHint('execute_bash tool running'),
|
|
351
|
+
tone: 'warning',
|
|
352
|
+
animate: true,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
case 'context_snapshot': {
|
|
356
|
+
return {
|
|
357
|
+
text: 'Replaying workspace snapshot',
|
|
358
|
+
detail: withInterruptHint('context_snapshot tool running'),
|
|
359
|
+
tone: 'info',
|
|
360
|
+
animate: true,
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
case 'capabilities_overview': {
|
|
364
|
+
return {
|
|
365
|
+
text: 'Summarizing runtime capabilities',
|
|
366
|
+
detail: withInterruptHint('capabilities_overview tool running'),
|
|
367
|
+
tone: 'info',
|
|
368
|
+
animate: true,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
case 'profile_details': {
|
|
372
|
+
return {
|
|
373
|
+
text: 'Describing profile metadata',
|
|
374
|
+
detail: withInterruptHint('profile_details tool running'),
|
|
375
|
+
tone: 'info',
|
|
376
|
+
animate: true,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
default:
|
|
380
|
+
return {
|
|
381
|
+
text: `Running ${call.name}`,
|
|
382
|
+
detail: withInterruptHint('Tool execution in progress'),
|
|
383
|
+
tone: 'info',
|
|
384
|
+
animate: true,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
312
388
|
function summarizeToolResult(call, output) {
|
|
313
389
|
switch (call.name) {
|
|
314
390
|
case 'read_file':
|
|
@@ -390,3 +466,4 @@ function truncate(value, max = 64) {
|
|
|
390
466
|
function stringArg(value, fallback = '') {
|
|
391
467
|
return typeof value === 'string' && value.trim().length > 0 ? value : fallback;
|
|
392
468
|
}
|
|
469
|
+
//# 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 Agents.md (contracts: src/contracts/schemas/agent-profile.schema.json and src/contracts/schemas/agent-rules.schema.json) as the canonical guardrail ledger; 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,sOAAsO;QACtO,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"}
|