erosolar-cli 2.1.249 → 2.1.253
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/general.rules.json +10 -133
- package/agents/general.rules.json.bak +278 -0
- package/agents/general.rules.json.bak2 +306 -0
- package/dist/bin/erosolar.js +9 -5
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/bidirectionalAuditCapability.d.ts +26 -0
- package/dist/capabilities/bidirectionalAuditCapability.d.ts.map +1 -0
- package/dist/capabilities/bidirectionalAuditCapability.js +44 -0
- package/dist/capabilities/bidirectionalAuditCapability.js.map +1 -0
- package/dist/capabilities/globCapability.d.ts +3 -6
- package/dist/capabilities/globCapability.d.ts.map +1 -1
- package/dist/capabilities/globCapability.js +6 -10
- package/dist/capabilities/globCapability.js.map +1 -1
- package/dist/capabilities/index.d.ts +1 -18
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -18
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/orchestrationCapability.d.ts +2 -0
- package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +980 -2
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/capabilities/searchCapability.d.ts +8 -2
- package/dist/capabilities/searchCapability.d.ts.map +1 -1
- package/dist/capabilities/searchCapability.js +11 -6
- package/dist/capabilities/searchCapability.js.map +1 -1
- package/dist/contracts/tools.schema.json +9 -133
- package/dist/core/aiErrorFixer.d.ts +1 -14
- package/dist/core/aiErrorFixer.d.ts.map +1 -1
- package/dist/core/aiErrorFixer.js +51 -239
- package/dist/core/aiErrorFixer.js.map +1 -1
- package/dist/core/alphaZeroEngine.d.ts +16 -256
- package/dist/core/alphaZeroEngine.d.ts.map +1 -1
- package/dist/core/alphaZeroEngine.js +22 -513
- package/dist/core/alphaZeroEngine.js.map +1 -1
- package/dist/core/completeAttackOrchestrator.d.ts +102 -0
- package/dist/core/completeAttackOrchestrator.d.ts.map +1 -0
- package/dist/core/completeAttackOrchestrator.js +293 -0
- package/dist/core/completeAttackOrchestrator.js.map +1 -0
- package/dist/core/defensiveSecurityToolkit.d.ts +373 -0
- package/dist/core/defensiveSecurityToolkit.d.ts.map +1 -0
- package/dist/core/defensiveSecurityToolkit.js +1304 -0
- package/dist/core/defensiveSecurityToolkit.js.map +1 -0
- package/dist/core/errors/errorTypes.d.ts +30 -57
- package/dist/core/errors/errorTypes.d.ts.map +1 -1
- package/dist/core/errors/errorTypes.js +51 -228
- package/dist/core/errors/errorTypes.js.map +1 -1
- package/dist/core/errors/safetyValidator.d.ts +19 -3
- package/dist/core/errors/safetyValidator.d.ts.map +1 -1
- package/dist/core/errors/safetyValidator.js +33 -71
- package/dist/core/errors/safetyValidator.js.map +1 -1
- package/dist/core/failureRecovery.d.ts +4 -100
- package/dist/core/failureRecovery.d.ts.map +1 -1
- package/dist/core/failureRecovery.js +16 -440
- package/dist/core/failureRecovery.js.map +1 -1
- package/dist/core/intelligentTargetResearcher.d.ts +142 -0
- package/dist/core/intelligentTargetResearcher.d.ts.map +1 -0
- package/dist/core/intelligentTargetResearcher.js +367 -0
- package/dist/core/intelligentTargetResearcher.js.map +1 -0
- package/dist/core/intelligentTestFlows.d.ts +26 -107
- package/dist/core/intelligentTestFlows.d.ts.map +1 -1
- package/dist/core/intelligentTestFlows.js +15 -659
- package/dist/core/intelligentTestFlows.js.map +1 -1
- package/dist/core/learningPersistence.d.ts +45 -132
- package/dist/core/learningPersistence.d.ts.map +1 -1
- package/dist/core/learningPersistence.js +32 -463
- package/dist/core/learningPersistence.js.map +1 -1
- package/dist/core/metricsTracker.d.ts +22 -139
- package/dist/core/metricsTracker.d.ts.map +1 -1
- package/dist/core/metricsTracker.js +51 -241
- package/dist/core/metricsTracker.js.map +1 -1
- package/dist/core/performanceMonitor.d.ts +15 -109
- package/dist/core/performanceMonitor.d.ts.map +1 -1
- package/dist/core/performanceMonitor.js +27 -184
- package/dist/core/performanceMonitor.js.map +1 -1
- package/dist/core/reliabilityPrompt.d.ts.map +1 -1
- package/dist/core/reliabilityPrompt.js +14 -0
- package/dist/core/reliabilityPrompt.js.map +1 -1
- package/dist/core/resultVerification.d.ts +6 -100
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +31 -400
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/core/selfEvolution.d.ts +32 -126
- package/dist/core/selfEvolution.d.ts.map +1 -1
- package/dist/core/selfEvolution.js +24 -967
- package/dist/core/selfEvolution.js.map +1 -1
- package/dist/core/selfImprovement.d.ts +50 -109
- package/dist/core/selfImprovement.d.ts.map +1 -1
- package/dist/core/selfImprovement.js +14 -689
- package/dist/core/selfImprovement.js.map +1 -1
- package/dist/core/sourceCodeManager.d.ts +89 -0
- package/dist/core/sourceCodeManager.d.ts.map +1 -0
- package/dist/core/sourceCodeManager.js +332 -0
- package/dist/core/sourceCodeManager.js.map +1 -0
- package/dist/core/unifiedOrchestrator.d.ts +88 -0
- package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
- package/dist/core/unifiedOrchestrator.js +284 -0
- package/dist/core/unifiedOrchestrator.js.map +1 -0
- package/dist/core/userDefenseOrchestrator.d.ts +202 -0
- package/dist/core/userDefenseOrchestrator.d.ts.map +1 -0
- package/dist/core/userDefenseOrchestrator.js +1006 -0
- package/dist/core/userDefenseOrchestrator.js.map +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +36 -26
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts +8 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js +17 -0
- package/dist/plugins/tools/bidirectionalAudit/bidirectionalAuditPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts +14 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +17 -54
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +9 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +18 -0
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +97 -2
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +1001 -6
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/appleExposureTools.d.ts +108 -0
- package/dist/tools/appleExposureTools.d.ts.map +1 -0
- package/dist/tools/appleExposureTools.js +850 -0
- package/dist/tools/appleExposureTools.js.map +1 -0
- package/dist/tools/bidirectionalAuditTools.d.ts +104 -0
- package/dist/tools/bidirectionalAuditTools.d.ts.map +1 -0
- package/dist/tools/bidirectionalAuditTools.js +1280 -0
- package/dist/tools/bidirectionalAuditTools.js.map +1 -0
- package/dist/tools/defensiveSecurityTools.d.ts +152 -0
- package/dist/tools/defensiveSecurityTools.d.ts.map +1 -0
- package/dist/tools/defensiveSecurityTools.js +576 -0
- package/dist/tools/defensiveSecurityTools.js.map +1 -0
- package/dist/tools/forwardAttackChainTracer.d.ts +73 -0
- package/dist/tools/forwardAttackChainTracer.d.ts.map +1 -0
- package/dist/tools/forwardAttackChainTracer.js +604 -0
- package/dist/tools/forwardAttackChainTracer.js.map +1 -0
- package/dist/tools/localExplore.d.ts +12 -199
- package/dist/tools/localExplore.d.ts.map +1 -1
- package/dist/tools/localExplore.js +18 -1352
- package/dist/tools/localExplore.js.map +1 -1
- package/dist/tools/offensiveTransparencyTools.d.ts +188 -0
- package/dist/tools/offensiveTransparencyTools.d.ts.map +1 -0
- package/dist/tools/offensiveTransparencyTools.js +890 -0
- package/dist/tools/offensiveTransparencyTools.js.map +1 -0
- package/dist/tools/planningTools.d.ts +8 -17
- package/dist/tools/planningTools.d.ts.map +1 -1
- package/dist/tools/planningTools.js +31 -141
- package/dist/tools/planningTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts +9 -0
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +305 -189
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/skillTools.d.ts +7 -5
- package/dist/tools/skillTools.d.ts.map +1 -1
- package/dist/tools/skillTools.js +13 -155
- package/dist/tools/skillTools.js.map +1 -1
- package/dist/tools/threatIntelligenceTools.d.ts +128 -0
- package/dist/tools/threatIntelligenceTools.d.ts.map +1 -0
- package/dist/tools/threatIntelligenceTools.js +712 -0
- package/dist/tools/threatIntelligenceTools.js.map +1 -0
- package/dist/ui/PromptController.d.ts +4 -0
- package/dist/ui/PromptController.d.ts.map +1 -1
- package/dist/ui/PromptController.js +32 -11
- package/dist/ui/PromptController.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +20 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +235 -28
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/animatedStatus.d.ts +2 -0
- package/dist/ui/animatedStatus.d.ts.map +1 -1
- package/dist/ui/animatedStatus.js +36 -2
- package/dist/ui/animatedStatus.js.map +1 -1
- package/dist/ui/orchestration/StatusOrchestrator.d.ts +10 -0
- package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -1
- package/dist/ui/orchestration/StatusOrchestrator.js +36 -4
- package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -1
- package/package.json +1 -1
- package/dist/capabilities/advancedTestGenerationCapability.d.ts +0 -17
- package/dist/capabilities/advancedTestGenerationCapability.d.ts.map +0 -1
- package/dist/capabilities/advancedTestGenerationCapability.js +0 -28
- package/dist/capabilities/advancedTestGenerationCapability.js.map +0 -1
- package/dist/capabilities/browserAutomationCapability.d.ts +0 -37
- package/dist/capabilities/browserAutomationCapability.d.ts.map +0 -1
- package/dist/capabilities/browserAutomationCapability.js +0 -49
- package/dist/capabilities/browserAutomationCapability.js.map +0 -1
- package/dist/capabilities/buildCapability.d.ts +0 -24
- package/dist/capabilities/buildCapability.d.ts.map +0 -1
- package/dist/capabilities/buildCapability.js +0 -25
- package/dist/capabilities/buildCapability.js.map +0 -1
- package/dist/capabilities/cloudCapability.d.ts +0 -13
- package/dist/capabilities/cloudCapability.d.ts.map +0 -1
- package/dist/capabilities/cloudCapability.js +0 -38
- package/dist/capabilities/cloudCapability.js.map +0 -1
- package/dist/capabilities/codeAnalysisCapability.d.ts +0 -13
- package/dist/capabilities/codeAnalysisCapability.d.ts.map +0 -1
- package/dist/capabilities/codeAnalysisCapability.js +0 -24
- package/dist/capabilities/codeAnalysisCapability.js.map +0 -1
- package/dist/capabilities/codeQualityCapability.d.ts +0 -13
- package/dist/capabilities/codeQualityCapability.d.ts.map +0 -1
- package/dist/capabilities/codeQualityCapability.js +0 -25
- package/dist/capabilities/codeQualityCapability.js.map +0 -1
- package/dist/capabilities/dependencySecurityCapability.d.ts +0 -13
- package/dist/capabilities/dependencySecurityCapability.d.ts.map +0 -1
- package/dist/capabilities/dependencySecurityCapability.js +0 -24
- package/dist/capabilities/dependencySecurityCapability.js.map +0 -1
- package/dist/capabilities/devCapability.d.ts +0 -13
- package/dist/capabilities/devCapability.d.ts.map +0 -1
- package/dist/capabilities/devCapability.js +0 -24
- package/dist/capabilities/devCapability.js.map +0 -1
- package/dist/capabilities/emailCapability.d.ts +0 -12
- package/dist/capabilities/emailCapability.d.ts.map +0 -1
- package/dist/capabilities/emailCapability.js +0 -22
- package/dist/capabilities/emailCapability.js.map +0 -1
- package/dist/capabilities/enhancedAnalysisCapability.d.ts +0 -13
- package/dist/capabilities/enhancedAnalysisCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedAnalysisCapability.js +0 -20
- package/dist/capabilities/enhancedAnalysisCapability.js.map +0 -1
- package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts +0 -17
- package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedCodeIntelligenceCapability.js +0 -28
- package/dist/capabilities/enhancedCodeIntelligenceCapability.js.map +0 -1
- package/dist/capabilities/enhancedDevWorkflowCapability.d.ts +0 -17
- package/dist/capabilities/enhancedDevWorkflowCapability.d.ts.map +0 -1
- package/dist/capabilities/enhancedDevWorkflowCapability.js +0 -28
- package/dist/capabilities/enhancedDevWorkflowCapability.js.map +0 -1
- package/dist/capabilities/frontendTestingCapability.d.ts +0 -13
- package/dist/capabilities/frontendTestingCapability.d.ts.map +0 -1
- package/dist/capabilities/frontendTestingCapability.js +0 -28
- package/dist/capabilities/frontendTestingCapability.js.map +0 -1
- package/dist/capabilities/interactionCapability.d.ts +0 -12
- package/dist/capabilities/interactionCapability.d.ts.map +0 -1
- package/dist/capabilities/interactionCapability.js +0 -22
- package/dist/capabilities/interactionCapability.js.map +0 -1
- package/dist/capabilities/learnCapability.d.ts +0 -22
- package/dist/capabilities/learnCapability.d.ts.map +0 -1
- package/dist/capabilities/learnCapability.js +0 -37
- package/dist/capabilities/learnCapability.js.map +0 -1
- package/dist/capabilities/notebookCapability.d.ts +0 -17
- package/dist/capabilities/notebookCapability.d.ts.map +0 -1
- package/dist/capabilities/notebookCapability.js +0 -27
- package/dist/capabilities/notebookCapability.js.map +0 -1
- package/dist/capabilities/planningCapability.d.ts +0 -16
- package/dist/capabilities/planningCapability.d.ts.map +0 -1
- package/dist/capabilities/planningCapability.js +0 -26
- package/dist/capabilities/planningCapability.js.map +0 -1
- package/dist/capabilities/refactoringCapability.d.ts +0 -13
- package/dist/capabilities/refactoringCapability.d.ts.map +0 -1
- package/dist/capabilities/refactoringCapability.js +0 -25
- package/dist/capabilities/refactoringCapability.js.map +0 -1
- package/dist/capabilities/repoChecksCapability.d.ts +0 -10
- package/dist/capabilities/repoChecksCapability.d.ts.map +0 -1
- package/dist/capabilities/repoChecksCapability.js +0 -24
- package/dist/capabilities/repoChecksCapability.js.map +0 -1
- package/dist/capabilities/taskManagementCapability.d.ts +0 -12
- package/dist/capabilities/taskManagementCapability.d.ts.map +0 -1
- package/dist/capabilities/taskManagementCapability.js +0 -22
- package/dist/capabilities/taskManagementCapability.js.map +0 -1
- package/dist/capabilities/testingCapability.d.ts +0 -13
- package/dist/capabilities/testingCapability.d.ts.map +0 -1
- package/dist/capabilities/testingCapability.js +0 -25
- package/dist/capabilities/testingCapability.js.map +0 -1
- package/dist/capabilities/validationCapability.d.ts +0 -13
- package/dist/capabilities/validationCapability.d.ts.map +0 -1
- package/dist/capabilities/validationCapability.js +0 -24
- package/dist/capabilities/validationCapability.js.map +0 -1
- package/dist/capabilities/webCapability.d.ts +0 -12
- package/dist/capabilities/webCapability.d.ts.map +0 -1
- package/dist/capabilities/webCapability.js +0 -22
- package/dist/capabilities/webCapability.js.map +0 -1
- package/dist/core/deepBugAnalyzer.d.ts +0 -128
- package/dist/core/deepBugAnalyzer.d.ts.map +0 -1
- package/dist/core/deepBugAnalyzer.js +0 -406
- package/dist/core/deepBugAnalyzer.js.map +0 -1
- package/dist/core/hypothesisEngine.d.ts +0 -113
- package/dist/core/hypothesisEngine.d.ts.map +0 -1
- package/dist/core/hypothesisEngine.js +0 -264
- package/dist/core/hypothesisEngine.js.map +0 -1
- package/dist/core/productTestHarness.d.ts +0 -113
- package/dist/core/productTestHarness.d.ts.map +0 -1
- package/dist/core/productTestHarness.js +0 -351
- package/dist/core/productTestHarness.js.map +0 -1
- package/dist/core/validationRunner.d.ts +0 -106
- package/dist/core/validationRunner.d.ts.map +0 -1
- package/dist/core/validationRunner.js +0 -892
- package/dist/core/validationRunner.js.map +0 -1
- package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +0 -14
- package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/browser/browserAutomationPlugin.js +0 -26
- package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +0 -1
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +0 -3
- package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js +0 -14
- package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +0 -1
- package/dist/plugins/tools/cloud/cloudPlugin.d.ts +0 -3
- package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/cloud/cloudPlugin.js +0 -14
- package/dist/plugins/tools/cloud/cloudPlugin.js.map +0 -1
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +0 -3
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +0 -14
- package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +0 -1
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +0 -3
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +0 -14
- package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +0 -1
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +0 -3
- package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/dependency/dependencyPlugin.js +0 -12
- package/dist/plugins/tools/dependency/dependencyPlugin.js.map +0 -1
- package/dist/plugins/tools/development/devPlugin.d.ts +0 -3
- package/dist/plugins/tools/development/devPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/development/devPlugin.js +0 -14
- package/dist/plugins/tools/development/devPlugin.js.map +0 -1
- package/dist/plugins/tools/email/emailPlugin.d.ts +0 -3
- package/dist/plugins/tools/email/emailPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/email/emailPlugin.js +0 -12
- package/dist/plugins/tools/email/emailPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js +0 -14
- package/dist/plugins/tools/enhancedAnalysis/enhancedAnalysisPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js +0 -12
- package/dist/plugins/tools/enhancedCodeIntelligence/enhancedCodeIntelligencePlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js +0 -12
- package/dist/plugins/tools/enhancedDevWorkflow/enhancedDevWorkflowPlugin.js.map +0 -1
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +0 -3
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +0 -14
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +0 -1
- package/dist/plugins/tools/interaction/interactionPlugin.d.ts +0 -3
- package/dist/plugins/tools/interaction/interactionPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/interaction/interactionPlugin.js +0 -12
- package/dist/plugins/tools/interaction/interactionPlugin.js.map +0 -1
- package/dist/plugins/tools/learn/learnPlugin.d.ts +0 -3
- package/dist/plugins/tools/learn/learnPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/learn/learnPlugin.js +0 -14
- package/dist/plugins/tools/learn/learnPlugin.js.map +0 -1
- package/dist/plugins/tools/notebook/notebookPlugin.d.ts +0 -9
- package/dist/plugins/tools/notebook/notebookPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/notebook/notebookPlugin.js +0 -15
- package/dist/plugins/tools/notebook/notebookPlugin.js.map +0 -1
- package/dist/plugins/tools/planning/planningPlugin.d.ts +0 -9
- package/dist/plugins/tools/planning/planningPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/planning/planningPlugin.js +0 -15
- package/dist/plugins/tools/planning/planningPlugin.js.map +0 -1
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +0 -3
- package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/refactoring/refactoringPlugin.js +0 -12
- package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +0 -1
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts +0 -3
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.js +0 -12
- package/dist/plugins/tools/taskManagement/taskManagementPlugin.js.map +0 -1
- package/dist/plugins/tools/testing/testingPlugin.d.ts +0 -3
- package/dist/plugins/tools/testing/testingPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/testing/testingPlugin.js +0 -12
- package/dist/plugins/tools/testing/testingPlugin.js.map +0 -1
- package/dist/plugins/tools/validation/validationPlugin.d.ts +0 -3
- package/dist/plugins/tools/validation/validationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/validation/validationPlugin.js +0 -14
- package/dist/plugins/tools/validation/validationPlugin.js.map +0 -1
- package/dist/plugins/tools/web/webPlugin.d.ts +0 -3
- package/dist/plugins/tools/web/webPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/web/webPlugin.js +0 -12
- package/dist/plugins/tools/web/webPlugin.js.map +0 -1
- package/dist/tools/advancedTestGenerationTools.d.ts +0 -21
- package/dist/tools/advancedTestGenerationTools.d.ts.map +0 -1
- package/dist/tools/advancedTestGenerationTools.js +0 -304
- package/dist/tools/advancedTestGenerationTools.js.map +0 -1
- package/dist/tools/browserAutomationTools.d.ts +0 -23
- package/dist/tools/browserAutomationTools.d.ts.map +0 -1
- package/dist/tools/browserAutomationTools.js +0 -916
- package/dist/tools/browserAutomationTools.js.map +0 -1
- package/dist/tools/buildTools.d.ts +0 -9
- package/dist/tools/buildTools.d.ts.map +0 -1
- package/dist/tools/buildTools.js +0 -346
- package/dist/tools/buildTools.js.map +0 -1
- package/dist/tools/cloudTools.d.ts +0 -49
- package/dist/tools/cloudTools.d.ts.map +0 -1
- package/dist/tools/cloudTools.js +0 -1258
- package/dist/tools/cloudTools.js.map +0 -1
- package/dist/tools/codeAnalysisTools.d.ts +0 -74
- package/dist/tools/codeAnalysisTools.d.ts.map +0 -1
- package/dist/tools/codeAnalysisTools.js +0 -664
- package/dist/tools/codeAnalysisTools.js.map +0 -1
- package/dist/tools/codeGenerationTools.d.ts +0 -3
- package/dist/tools/codeGenerationTools.d.ts.map +0 -1
- package/dist/tools/codeGenerationTools.js +0 -439
- package/dist/tools/codeGenerationTools.js.map +0 -1
- package/dist/tools/codeQualityTools.d.ts +0 -3
- package/dist/tools/codeQualityTools.d.ts.map +0 -1
- package/dist/tools/codeQualityTools.js +0 -297
- package/dist/tools/codeQualityTools.js.map +0 -1
- package/dist/tools/dependencyTools.d.ts +0 -3
- package/dist/tools/dependencyTools.d.ts.map +0 -1
- package/dist/tools/dependencyTools.js +0 -284
- package/dist/tools/dependencyTools.js.map +0 -1
- package/dist/tools/devTools.d.ts +0 -10
- package/dist/tools/devTools.d.ts.map +0 -1
- package/dist/tools/devTools.js +0 -2126
- package/dist/tools/devTools.js.map +0 -1
- package/dist/tools/emailTools.d.ts +0 -21
- package/dist/tools/emailTools.d.ts.map +0 -1
- package/dist/tools/emailTools.js +0 -449
- package/dist/tools/emailTools.js.map +0 -1
- package/dist/tools/enhancedAnalysisTools.d.ts +0 -9
- package/dist/tools/enhancedAnalysisTools.d.ts.map +0 -1
- package/dist/tools/enhancedAnalysisTools.js +0 -370
- package/dist/tools/enhancedAnalysisTools.js.map +0 -1
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts +0 -7
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +0 -1
- package/dist/tools/enhancedCodeIntelligenceTools.js +0 -540
- package/dist/tools/enhancedCodeIntelligenceTools.js.map +0 -1
- package/dist/tools/enhancedDevWorkflowTools.d.ts +0 -7
- package/dist/tools/enhancedDevWorkflowTools.d.ts.map +0 -1
- package/dist/tools/enhancedDevWorkflowTools.js +0 -432
- package/dist/tools/enhancedDevWorkflowTools.js.map +0 -1
- package/dist/tools/frontendTestingTools.d.ts +0 -35
- package/dist/tools/frontendTestingTools.d.ts.map +0 -1
- package/dist/tools/frontendTestingTools.js +0 -1258
- package/dist/tools/frontendTestingTools.js.map +0 -1
- package/dist/tools/globTools.d.ts +0 -15
- package/dist/tools/globTools.d.ts.map +0 -1
- package/dist/tools/globTools.js +0 -174
- package/dist/tools/globTools.js.map +0 -1
- package/dist/tools/grepTools.d.ts +0 -19
- package/dist/tools/grepTools.d.ts.map +0 -1
- package/dist/tools/grepTools.js +0 -411
- package/dist/tools/grepTools.js.map +0 -1
- package/dist/tools/interactionTools.d.ts +0 -6
- package/dist/tools/interactionTools.d.ts.map +0 -1
- package/dist/tools/interactionTools.js +0 -209
- package/dist/tools/interactionTools.js.map +0 -1
- package/dist/tools/learnTools.d.ts +0 -164
- package/dist/tools/learnTools.d.ts.map +0 -1
- package/dist/tools/learnTools.js +0 -2098
- package/dist/tools/learnTools.js.map +0 -1
- package/dist/tools/notebookEditTools.d.ts +0 -15
- package/dist/tools/notebookEditTools.d.ts.map +0 -1
- package/dist/tools/notebookEditTools.js +0 -197
- package/dist/tools/notebookEditTools.js.map +0 -1
- package/dist/tools/refactoringTools.d.ts +0 -3
- package/dist/tools/refactoringTools.d.ts.map +0 -1
- package/dist/tools/refactoringTools.js +0 -294
- package/dist/tools/refactoringTools.js.map +0 -1
- package/dist/tools/repoChecksTools.d.ts +0 -3
- package/dist/tools/repoChecksTools.d.ts.map +0 -1
- package/dist/tools/repoChecksTools.js +0 -276
- package/dist/tools/repoChecksTools.js.map +0 -1
- package/dist/tools/taskManagementTools.d.ts +0 -10
- package/dist/tools/taskManagementTools.d.ts.map +0 -1
- package/dist/tools/taskManagementTools.js +0 -133
- package/dist/tools/taskManagementTools.js.map +0 -1
- package/dist/tools/testingTools.d.ts +0 -3
- package/dist/tools/testingTools.d.ts.map +0 -1
- package/dist/tools/testingTools.js +0 -237
- package/dist/tools/testingTools.js.map +0 -1
- package/dist/tools/validationTools.d.ts +0 -7
- package/dist/tools/validationTools.d.ts.map +0 -1
- package/dist/tools/validationTools.js +0 -344
- package/dist/tools/validationTools.js.map +0 -1
- package/dist/tools/webTools.d.ts +0 -3
- package/dist/tools/webTools.d.ts.map +0 -1
- package/dist/tools/webTools.js +0 -502
- package/dist/tools/webTools.js.map +0 -1
|
@@ -1,916 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Browser Automation Tools - AI-driven browser control and automation
|
|
3
|
-
*
|
|
4
|
-
* Provides browser-use-like functionality for AI agents:
|
|
5
|
-
* - Browser session management
|
|
6
|
-
* - Navigation and interaction
|
|
7
|
-
* - Authentication helpers
|
|
8
|
-
* - Cookie/session persistence
|
|
9
|
-
* - Screenshot and content extraction
|
|
10
|
-
* - Form filling and submission
|
|
11
|
-
*
|
|
12
|
-
* @license MIT
|
|
13
|
-
* @author Bo Shang
|
|
14
|
-
*/
|
|
15
|
-
import { getDefaultBrowserSessionManager, } from '../browser/BrowserSessionManager.js';
|
|
16
|
-
// Singleton manager for tools
|
|
17
|
-
let sessionManager = null;
|
|
18
|
-
function getManager() {
|
|
19
|
-
if (!sessionManager) {
|
|
20
|
-
sessionManager = getDefaultBrowserSessionManager();
|
|
21
|
-
}
|
|
22
|
-
return sessionManager;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Create browser automation tools
|
|
26
|
-
*/
|
|
27
|
-
export function createBrowserAutomationTools() {
|
|
28
|
-
return [
|
|
29
|
-
// Session Management Tools
|
|
30
|
-
{
|
|
31
|
-
name: 'browser_create_session',
|
|
32
|
-
description: `Create a new browser session for web automation.
|
|
33
|
-
|
|
34
|
-
Creates a browser instance that can be controlled programmatically.
|
|
35
|
-
Sessions persist cookies and authentication state across operations.
|
|
36
|
-
|
|
37
|
-
Features:
|
|
38
|
-
- Multiple browser types (Chromium, Firefox, WebKit)
|
|
39
|
-
- Headless or headed mode
|
|
40
|
-
- Stealth mode for avoiding bot detection
|
|
41
|
-
- Proxy support
|
|
42
|
-
- Custom viewport and user agent
|
|
43
|
-
|
|
44
|
-
Example: Create a session for automated testing or web scraping.`,
|
|
45
|
-
parameters: {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {
|
|
48
|
-
sessionId: {
|
|
49
|
-
type: 'string',
|
|
50
|
-
description: 'Unique identifier for the session (auto-generated if not provided)',
|
|
51
|
-
},
|
|
52
|
-
browserType: {
|
|
53
|
-
type: 'string',
|
|
54
|
-
enum: ['chromium', 'firefox', 'webkit'],
|
|
55
|
-
description: 'Browser engine to use (default: chromium)',
|
|
56
|
-
},
|
|
57
|
-
headless: {
|
|
58
|
-
type: 'boolean',
|
|
59
|
-
description: 'Run browser in headless mode (default: true)',
|
|
60
|
-
},
|
|
61
|
-
stealthMode: {
|
|
62
|
-
type: 'boolean',
|
|
63
|
-
description: 'Enable anti-bot-detection measures (default: false)',
|
|
64
|
-
},
|
|
65
|
-
viewport: {
|
|
66
|
-
type: 'object',
|
|
67
|
-
properties: {
|
|
68
|
-
width: { type: 'number' },
|
|
69
|
-
height: { type: 'number' },
|
|
70
|
-
},
|
|
71
|
-
description: 'Browser viewport size (default: 1920x1080)',
|
|
72
|
-
},
|
|
73
|
-
userAgent: {
|
|
74
|
-
type: 'string',
|
|
75
|
-
description: 'Custom user agent string',
|
|
76
|
-
},
|
|
77
|
-
proxy: {
|
|
78
|
-
type: 'object',
|
|
79
|
-
properties: {
|
|
80
|
-
server: { type: 'string' },
|
|
81
|
-
username: { type: 'string' },
|
|
82
|
-
password: { type: 'string' },
|
|
83
|
-
},
|
|
84
|
-
description: 'Proxy configuration',
|
|
85
|
-
},
|
|
86
|
-
timeout: {
|
|
87
|
-
type: 'number',
|
|
88
|
-
description: 'Default timeout in milliseconds (default: 30000)',
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
handler: async (args) => {
|
|
93
|
-
const config = {
|
|
94
|
-
sessionId: args['sessionId'] || `session-${Date.now()}`,
|
|
95
|
-
browserType: args['browserType'],
|
|
96
|
-
headless: args['headless'] !== false,
|
|
97
|
-
stealthMode: args['stealthMode'] === true,
|
|
98
|
-
viewport: args['viewport'],
|
|
99
|
-
userAgent: args['userAgent'],
|
|
100
|
-
proxy: args['proxy'],
|
|
101
|
-
timeout: args['timeout'],
|
|
102
|
-
};
|
|
103
|
-
try {
|
|
104
|
-
const sessionId = await getManager().createSession(config);
|
|
105
|
-
const info = getManager().getSessionInfo(sessionId);
|
|
106
|
-
return `✅ Browser session created
|
|
107
|
-
|
|
108
|
-
Session ID: ${sessionId}
|
|
109
|
-
Browser: ${config.browserType || 'chromium'}
|
|
110
|
-
Headless: ${config.headless !== false}
|
|
111
|
-
Stealth Mode: ${config.stealthMode || false}
|
|
112
|
-
Viewport: ${config.viewport ? `${config.viewport.width}x${config.viewport.height}` : '1920x1080'}
|
|
113
|
-
${info?.isAuthenticated ? `Authenticated: Yes (${info.authDomain})` : 'Authenticated: No'}
|
|
114
|
-
${info?.cookies?.length ? `Stored Cookies: ${info.cookies.length}` : ''}
|
|
115
|
-
|
|
116
|
-
The session is ready for navigation and interaction.`;
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
return `❌ Failed to create browser session: ${error instanceof Error ? error.message : String(error)}`;
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
name: 'browser_navigate',
|
|
125
|
-
description: `Navigate to a URL in an active browser session.
|
|
126
|
-
|
|
127
|
-
Loads a webpage and waits for it to be ready.
|
|
128
|
-
Supports different wait strategies for SPAs and dynamic content.
|
|
129
|
-
|
|
130
|
-
Use this to:
|
|
131
|
-
- Open websites
|
|
132
|
-
- Navigate between pages
|
|
133
|
-
- Follow links programmatically`,
|
|
134
|
-
parameters: {
|
|
135
|
-
type: 'object',
|
|
136
|
-
properties: {
|
|
137
|
-
sessionId: {
|
|
138
|
-
type: 'string',
|
|
139
|
-
description: 'Session ID to use',
|
|
140
|
-
},
|
|
141
|
-
url: {
|
|
142
|
-
type: 'string',
|
|
143
|
-
description: 'URL to navigate to',
|
|
144
|
-
},
|
|
145
|
-
waitUntil: {
|
|
146
|
-
type: 'string',
|
|
147
|
-
enum: ['load', 'domcontentloaded', 'networkidle'],
|
|
148
|
-
description: 'Wait strategy (default: domcontentloaded)',
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
required: ['sessionId', 'url'],
|
|
152
|
-
},
|
|
153
|
-
handler: async (args) => {
|
|
154
|
-
const sessionId = args['sessionId'];
|
|
155
|
-
const url = args['url'];
|
|
156
|
-
const waitUntil = args['waitUntil'];
|
|
157
|
-
const result = await getManager().navigateTo(sessionId, url, { waitUntil });
|
|
158
|
-
if (result.success) {
|
|
159
|
-
return `✅ Navigation successful
|
|
160
|
-
|
|
161
|
-
URL: ${result.url}
|
|
162
|
-
Title: ${result.title}`;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
return `❌ Navigation failed: ${result.error}`;
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
// Authentication Tools
|
|
170
|
-
{
|
|
171
|
-
name: 'browser_login',
|
|
172
|
-
description: `Authenticate to a website using various methods.
|
|
173
|
-
|
|
174
|
-
Supports multiple authentication types:
|
|
175
|
-
- form: Fill login form and submit
|
|
176
|
-
- basic: HTTP Basic Authentication
|
|
177
|
-
- cookie: Load saved authentication cookies
|
|
178
|
-
- token: Set Bearer token in headers
|
|
179
|
-
|
|
180
|
-
For form authentication, provide selectors for username/password fields and submit button.
|
|
181
|
-
Successful authentication state is saved and can be reused in future sessions.`,
|
|
182
|
-
parameters: {
|
|
183
|
-
type: 'object',
|
|
184
|
-
properties: {
|
|
185
|
-
sessionId: {
|
|
186
|
-
type: 'string',
|
|
187
|
-
description: 'Session ID to use',
|
|
188
|
-
},
|
|
189
|
-
authType: {
|
|
190
|
-
type: 'string',
|
|
191
|
-
enum: ['form', 'basic', 'cookie', 'token'],
|
|
192
|
-
description: 'Authentication method',
|
|
193
|
-
},
|
|
194
|
-
loginUrl: {
|
|
195
|
-
type: 'string',
|
|
196
|
-
description: 'URL of the login page (for form auth)',
|
|
197
|
-
},
|
|
198
|
-
username: {
|
|
199
|
-
type: 'string',
|
|
200
|
-
description: 'Username or email',
|
|
201
|
-
},
|
|
202
|
-
password: {
|
|
203
|
-
type: 'string',
|
|
204
|
-
description: 'Password',
|
|
205
|
-
},
|
|
206
|
-
token: {
|
|
207
|
-
type: 'string',
|
|
208
|
-
description: 'Authentication token (for token auth)',
|
|
209
|
-
},
|
|
210
|
-
usernameSelector: {
|
|
211
|
-
type: 'string',
|
|
212
|
-
description: 'CSS selector for username field (default: input[name="username"], input[type="email"])',
|
|
213
|
-
},
|
|
214
|
-
passwordSelector: {
|
|
215
|
-
type: 'string',
|
|
216
|
-
description: 'CSS selector for password field (default: input[type="password"])',
|
|
217
|
-
},
|
|
218
|
-
submitSelector: {
|
|
219
|
-
type: 'string',
|
|
220
|
-
description: 'CSS selector for submit button (default: button[type="submit"])',
|
|
221
|
-
},
|
|
222
|
-
successUrl: {
|
|
223
|
-
type: 'string',
|
|
224
|
-
description: 'URL pattern that indicates successful login',
|
|
225
|
-
},
|
|
226
|
-
successSelector: {
|
|
227
|
-
type: 'string',
|
|
228
|
-
description: 'CSS selector that appears after successful login',
|
|
229
|
-
},
|
|
230
|
-
},
|
|
231
|
-
required: ['sessionId', 'authType'],
|
|
232
|
-
},
|
|
233
|
-
handler: async (args) => {
|
|
234
|
-
const sessionId = args['sessionId'];
|
|
235
|
-
const authType = args['authType'];
|
|
236
|
-
const authConfig = {
|
|
237
|
-
type: authType,
|
|
238
|
-
credentials: {
|
|
239
|
-
username: args['username'],
|
|
240
|
-
password: args['password'],
|
|
241
|
-
token: args['token'],
|
|
242
|
-
},
|
|
243
|
-
loginUrl: args['loginUrl'],
|
|
244
|
-
formSelectors: authType === 'form' ? {
|
|
245
|
-
usernameField: args['usernameSelector'] || 'input[name="username"], input[type="email"], input[name="email"]',
|
|
246
|
-
passwordField: args['passwordSelector'] || 'input[type="password"]',
|
|
247
|
-
submitButton: args['submitSelector'] || 'button[type="submit"], input[type="submit"]',
|
|
248
|
-
} : undefined,
|
|
249
|
-
successUrl: args['successUrl'],
|
|
250
|
-
successSelector: args['successSelector'],
|
|
251
|
-
};
|
|
252
|
-
const result = await getManager().authenticate(sessionId, authConfig);
|
|
253
|
-
if (result.success) {
|
|
254
|
-
const info = getManager().getSessionInfo(sessionId);
|
|
255
|
-
return `✅ Authentication successful
|
|
256
|
-
|
|
257
|
-
${result.message}
|
|
258
|
-
${info?.authDomain ? `Domain: ${info.authDomain}` : ''}
|
|
259
|
-
Cookies saved for future sessions.`;
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
return `❌ Authentication failed: ${result.message}`;
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
// Interaction Tools
|
|
267
|
-
{
|
|
268
|
-
name: 'browser_click',
|
|
269
|
-
description: `Click on an element in the browser.
|
|
270
|
-
|
|
271
|
-
Uses CSS selectors to find and click elements.
|
|
272
|
-
Waits for the element to be visible before clicking.
|
|
273
|
-
|
|
274
|
-
Examples:
|
|
275
|
-
- Click a button: button.submit-btn
|
|
276
|
-
- Click a link: a[href="/dashboard"]
|
|
277
|
-
- Click by text: text="Sign In"`,
|
|
278
|
-
parameters: {
|
|
279
|
-
type: 'object',
|
|
280
|
-
properties: {
|
|
281
|
-
sessionId: {
|
|
282
|
-
type: 'string',
|
|
283
|
-
description: 'Session ID to use',
|
|
284
|
-
},
|
|
285
|
-
selector: {
|
|
286
|
-
type: 'string',
|
|
287
|
-
description: 'CSS selector or text selector for the element',
|
|
288
|
-
},
|
|
289
|
-
timeout: {
|
|
290
|
-
type: 'number',
|
|
291
|
-
description: 'Timeout in milliseconds (default: 10000)',
|
|
292
|
-
},
|
|
293
|
-
force: {
|
|
294
|
-
type: 'boolean',
|
|
295
|
-
description: 'Force click even if element is not visible',
|
|
296
|
-
},
|
|
297
|
-
},
|
|
298
|
-
required: ['sessionId', 'selector'],
|
|
299
|
-
},
|
|
300
|
-
handler: async (args) => {
|
|
301
|
-
const sessionId = args['sessionId'];
|
|
302
|
-
const selector = args['selector'];
|
|
303
|
-
const timeout = args['timeout'];
|
|
304
|
-
const force = args['force'];
|
|
305
|
-
const result = await getManager().click(sessionId, selector, { timeout, force });
|
|
306
|
-
if (result.success) {
|
|
307
|
-
return `✅ Clicked element: ${selector}`;
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
return `❌ Failed to click: ${result.error}`;
|
|
311
|
-
}
|
|
312
|
-
},
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
name: 'browser_type',
|
|
316
|
-
description: `Type text into an input field.
|
|
317
|
-
|
|
318
|
-
Simulates human-like typing with configurable delay.
|
|
319
|
-
Can optionally clear the field before typing.
|
|
320
|
-
|
|
321
|
-
Use for:
|
|
322
|
-
- Filling form fields
|
|
323
|
-
- Search inputs
|
|
324
|
-
- Text areas`,
|
|
325
|
-
parameters: {
|
|
326
|
-
type: 'object',
|
|
327
|
-
properties: {
|
|
328
|
-
sessionId: {
|
|
329
|
-
type: 'string',
|
|
330
|
-
description: 'Session ID to use',
|
|
331
|
-
},
|
|
332
|
-
selector: {
|
|
333
|
-
type: 'string',
|
|
334
|
-
description: 'CSS selector for the input element',
|
|
335
|
-
},
|
|
336
|
-
text: {
|
|
337
|
-
type: 'string',
|
|
338
|
-
description: 'Text to type',
|
|
339
|
-
},
|
|
340
|
-
delay: {
|
|
341
|
-
type: 'number',
|
|
342
|
-
description: 'Delay between keystrokes in ms (default: 50)',
|
|
343
|
-
},
|
|
344
|
-
clear: {
|
|
345
|
-
type: 'boolean',
|
|
346
|
-
description: 'Clear field before typing (default: false)',
|
|
347
|
-
},
|
|
348
|
-
},
|
|
349
|
-
required: ['sessionId', 'selector', 'text'],
|
|
350
|
-
},
|
|
351
|
-
handler: async (args) => {
|
|
352
|
-
const sessionId = args['sessionId'];
|
|
353
|
-
const selector = args['selector'];
|
|
354
|
-
const text = args['text'];
|
|
355
|
-
const delay = args['delay'];
|
|
356
|
-
const clear = args['clear'];
|
|
357
|
-
const result = await getManager().type(sessionId, selector, text, { delay, clear });
|
|
358
|
-
if (result.success) {
|
|
359
|
-
return `✅ Typed "${text.slice(0, 50)}${text.length > 50 ? '...' : ''}" into ${selector}`;
|
|
360
|
-
}
|
|
361
|
-
else {
|
|
362
|
-
return `❌ Failed to type: ${result.error}`;
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
name: 'browser_fill',
|
|
368
|
-
description: `Fill an input field instantly (faster than type).
|
|
369
|
-
|
|
370
|
-
Sets the value of an input field directly.
|
|
371
|
-
Use this for quick form filling when typing simulation isn't needed.`,
|
|
372
|
-
parameters: {
|
|
373
|
-
type: 'object',
|
|
374
|
-
properties: {
|
|
375
|
-
sessionId: {
|
|
376
|
-
type: 'string',
|
|
377
|
-
description: 'Session ID to use',
|
|
378
|
-
},
|
|
379
|
-
selector: {
|
|
380
|
-
type: 'string',
|
|
381
|
-
description: 'CSS selector for the input element',
|
|
382
|
-
},
|
|
383
|
-
value: {
|
|
384
|
-
type: 'string',
|
|
385
|
-
description: 'Value to fill',
|
|
386
|
-
},
|
|
387
|
-
},
|
|
388
|
-
required: ['sessionId', 'selector', 'value'],
|
|
389
|
-
},
|
|
390
|
-
handler: async (args) => {
|
|
391
|
-
const sessionId = args['sessionId'];
|
|
392
|
-
const selector = args['selector'];
|
|
393
|
-
const value = args['value'];
|
|
394
|
-
const result = await getManager().fill(sessionId, selector, value);
|
|
395
|
-
if (result.success) {
|
|
396
|
-
return `✅ Filled ${selector} with "${value.slice(0, 50)}${value.length > 50 ? '...' : ''}"`;
|
|
397
|
-
}
|
|
398
|
-
else {
|
|
399
|
-
return `❌ Failed to fill: ${result.error}`;
|
|
400
|
-
}
|
|
401
|
-
},
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
name: 'browser_select',
|
|
405
|
-
description: `Select an option from a dropdown menu.
|
|
406
|
-
|
|
407
|
-
Works with <select> elements.
|
|
408
|
-
Can select by value, label, or index.`,
|
|
409
|
-
parameters: {
|
|
410
|
-
type: 'object',
|
|
411
|
-
properties: {
|
|
412
|
-
sessionId: {
|
|
413
|
-
type: 'string',
|
|
414
|
-
description: 'Session ID to use',
|
|
415
|
-
},
|
|
416
|
-
selector: {
|
|
417
|
-
type: 'string',
|
|
418
|
-
description: 'CSS selector for the select element',
|
|
419
|
-
},
|
|
420
|
-
value: {
|
|
421
|
-
type: 'string',
|
|
422
|
-
description: 'Option value to select',
|
|
423
|
-
},
|
|
424
|
-
},
|
|
425
|
-
required: ['sessionId', 'selector', 'value'],
|
|
426
|
-
},
|
|
427
|
-
handler: async (args) => {
|
|
428
|
-
const sessionId = args['sessionId'];
|
|
429
|
-
const selector = args['selector'];
|
|
430
|
-
const value = args['value'];
|
|
431
|
-
const result = await getManager().selectOption(sessionId, selector, value);
|
|
432
|
-
if (result.success) {
|
|
433
|
-
return `✅ Selected "${value}" in ${selector}`;
|
|
434
|
-
}
|
|
435
|
-
else {
|
|
436
|
-
return `❌ Failed to select: ${result.error}`;
|
|
437
|
-
}
|
|
438
|
-
},
|
|
439
|
-
},
|
|
440
|
-
{
|
|
441
|
-
name: 'browser_checkbox',
|
|
442
|
-
description: `Check or uncheck a checkbox.`,
|
|
443
|
-
parameters: {
|
|
444
|
-
type: 'object',
|
|
445
|
-
properties: {
|
|
446
|
-
sessionId: {
|
|
447
|
-
type: 'string',
|
|
448
|
-
description: 'Session ID to use',
|
|
449
|
-
},
|
|
450
|
-
selector: {
|
|
451
|
-
type: 'string',
|
|
452
|
-
description: 'CSS selector for the checkbox',
|
|
453
|
-
},
|
|
454
|
-
checked: {
|
|
455
|
-
type: 'boolean',
|
|
456
|
-
description: 'Whether to check (true) or uncheck (false)',
|
|
457
|
-
},
|
|
458
|
-
},
|
|
459
|
-
required: ['sessionId', 'selector', 'checked'],
|
|
460
|
-
},
|
|
461
|
-
handler: async (args) => {
|
|
462
|
-
const sessionId = args['sessionId'];
|
|
463
|
-
const selector = args['selector'];
|
|
464
|
-
const checked = args['checked'];
|
|
465
|
-
const result = await getManager().setChecked(sessionId, selector, checked);
|
|
466
|
-
if (result.success) {
|
|
467
|
-
return `✅ ${checked ? 'Checked' : 'Unchecked'} ${selector}`;
|
|
468
|
-
}
|
|
469
|
-
else {
|
|
470
|
-
return `❌ Failed to set checkbox: ${result.error}`;
|
|
471
|
-
}
|
|
472
|
-
},
|
|
473
|
-
},
|
|
474
|
-
{
|
|
475
|
-
name: 'browser_upload_file',
|
|
476
|
-
description: `Upload a file using a file input.`,
|
|
477
|
-
parameters: {
|
|
478
|
-
type: 'object',
|
|
479
|
-
properties: {
|
|
480
|
-
sessionId: {
|
|
481
|
-
type: 'string',
|
|
482
|
-
description: 'Session ID to use',
|
|
483
|
-
},
|
|
484
|
-
selector: {
|
|
485
|
-
type: 'string',
|
|
486
|
-
description: 'CSS selector for the file input',
|
|
487
|
-
},
|
|
488
|
-
filePath: {
|
|
489
|
-
type: 'string',
|
|
490
|
-
description: 'Path to the file to upload',
|
|
491
|
-
},
|
|
492
|
-
},
|
|
493
|
-
required: ['sessionId', 'selector', 'filePath'],
|
|
494
|
-
},
|
|
495
|
-
handler: async (args) => {
|
|
496
|
-
const sessionId = args['sessionId'];
|
|
497
|
-
const selector = args['selector'];
|
|
498
|
-
const filePath = args['filePath'];
|
|
499
|
-
const result = await getManager().uploadFile(sessionId, selector, filePath);
|
|
500
|
-
if (result.success) {
|
|
501
|
-
return `✅ Uploaded file to ${selector}`;
|
|
502
|
-
}
|
|
503
|
-
else {
|
|
504
|
-
return `❌ Failed to upload: ${result.error}`;
|
|
505
|
-
}
|
|
506
|
-
},
|
|
507
|
-
},
|
|
508
|
-
// Content Extraction Tools
|
|
509
|
-
{
|
|
510
|
-
name: 'browser_get_text',
|
|
511
|
-
description: `Get the text content of an element.
|
|
512
|
-
|
|
513
|
-
Extracts visible text from the specified element.
|
|
514
|
-
Useful for reading labels, content, or verification.`,
|
|
515
|
-
parameters: {
|
|
516
|
-
type: 'object',
|
|
517
|
-
properties: {
|
|
518
|
-
sessionId: {
|
|
519
|
-
type: 'string',
|
|
520
|
-
description: 'Session ID to use',
|
|
521
|
-
},
|
|
522
|
-
selector: {
|
|
523
|
-
type: 'string',
|
|
524
|
-
description: 'CSS selector for the element',
|
|
525
|
-
},
|
|
526
|
-
},
|
|
527
|
-
required: ['sessionId', 'selector'],
|
|
528
|
-
},
|
|
529
|
-
handler: async (args) => {
|
|
530
|
-
const sessionId = args['sessionId'];
|
|
531
|
-
const selector = args['selector'];
|
|
532
|
-
const result = await getManager().getText(sessionId, selector);
|
|
533
|
-
if (result.success) {
|
|
534
|
-
return `Text content of ${selector}:\n\n${result.text}`;
|
|
535
|
-
}
|
|
536
|
-
else {
|
|
537
|
-
return `❌ Failed to get text: ${result.error}`;
|
|
538
|
-
}
|
|
539
|
-
},
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
name: 'browser_get_page_content',
|
|
543
|
-
description: `Get the full HTML content of the current page.
|
|
544
|
-
|
|
545
|
-
Returns the complete HTML source of the page.
|
|
546
|
-
Useful for:
|
|
547
|
-
- Analyzing page structure
|
|
548
|
-
- Extracting data
|
|
549
|
-
- Debugging`,
|
|
550
|
-
parameters: {
|
|
551
|
-
type: 'object',
|
|
552
|
-
properties: {
|
|
553
|
-
sessionId: {
|
|
554
|
-
type: 'string',
|
|
555
|
-
description: 'Session ID to use',
|
|
556
|
-
},
|
|
557
|
-
},
|
|
558
|
-
required: ['sessionId'],
|
|
559
|
-
},
|
|
560
|
-
handler: async (args) => {
|
|
561
|
-
const sessionId = args['sessionId'];
|
|
562
|
-
const result = await getManager().getPageContent(sessionId);
|
|
563
|
-
if (result.success) {
|
|
564
|
-
const html = result.html || '';
|
|
565
|
-
if (html.length > 50000) {
|
|
566
|
-
// CRITICAL: Check if truncated portion might contain error indicators
|
|
567
|
-
const truncatedPortion = html.slice(50000);
|
|
568
|
-
const errorIndicators = ['error', 'failed', 'exception', '404', '500', 'denied', 'unauthorized'];
|
|
569
|
-
const mayContainErrors = errorIndicators.some(indicator => truncatedPortion.toLowerCase().includes(indicator));
|
|
570
|
-
let warning = '';
|
|
571
|
-
if (mayContainErrors) {
|
|
572
|
-
warning = '\n\n⚠️ WARNING: Truncated content may contain error indicators. Full content should be reviewed if operation appears to have failed.';
|
|
573
|
-
}
|
|
574
|
-
return `Page HTML (truncated to 50000 chars):\n\n${html.slice(0, 50000)}\n\n[... ${html.length - 50000} more characters truncated]${warning}`;
|
|
575
|
-
}
|
|
576
|
-
return `Page HTML:\n\n${html}`;
|
|
577
|
-
}
|
|
578
|
-
else {
|
|
579
|
-
return `❌ Failed to get page content: ${result.error}`;
|
|
580
|
-
}
|
|
581
|
-
},
|
|
582
|
-
},
|
|
583
|
-
{
|
|
584
|
-
name: 'browser_screenshot',
|
|
585
|
-
description: `Take a screenshot of the current page.
|
|
586
|
-
|
|
587
|
-
Captures the visible area or full page.
|
|
588
|
-
Returns base64-encoded PNG image data or saves to file.`,
|
|
589
|
-
parameters: {
|
|
590
|
-
type: 'object',
|
|
591
|
-
properties: {
|
|
592
|
-
sessionId: {
|
|
593
|
-
type: 'string',
|
|
594
|
-
description: 'Session ID to use',
|
|
595
|
-
},
|
|
596
|
-
fullPage: {
|
|
597
|
-
type: 'boolean',
|
|
598
|
-
description: 'Capture full scrollable page (default: false)',
|
|
599
|
-
},
|
|
600
|
-
path: {
|
|
601
|
-
type: 'string',
|
|
602
|
-
description: 'File path to save screenshot (optional)',
|
|
603
|
-
},
|
|
604
|
-
},
|
|
605
|
-
required: ['sessionId'],
|
|
606
|
-
},
|
|
607
|
-
handler: async (args) => {
|
|
608
|
-
const sessionId = args['sessionId'];
|
|
609
|
-
const fullPage = args['fullPage'];
|
|
610
|
-
const path = args['path'];
|
|
611
|
-
const result = await getManager().takeScreenshot(sessionId, { fullPage, path });
|
|
612
|
-
if (result.success) {
|
|
613
|
-
if (result.path) {
|
|
614
|
-
return `✅ Screenshot saved to: ${result.path}`;
|
|
615
|
-
}
|
|
616
|
-
else {
|
|
617
|
-
return `✅ Screenshot captured (base64):\n\ndata:image/png;base64,${result.data?.slice(0, 100)}...\n\n[${result.data?.length || 0} characters total]`;
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
else {
|
|
621
|
-
return `❌ Failed to take screenshot: ${result.error}`;
|
|
622
|
-
}
|
|
623
|
-
},
|
|
624
|
-
},
|
|
625
|
-
// Wait Tools
|
|
626
|
-
{
|
|
627
|
-
name: 'browser_wait_for',
|
|
628
|
-
description: `Wait for an element to appear on the page.
|
|
629
|
-
|
|
630
|
-
Useful for waiting for:
|
|
631
|
-
- Dynamic content to load
|
|
632
|
-
- AJAX responses
|
|
633
|
-
- Animations to complete
|
|
634
|
-
- Elements to become visible`,
|
|
635
|
-
parameters: {
|
|
636
|
-
type: 'object',
|
|
637
|
-
properties: {
|
|
638
|
-
sessionId: {
|
|
639
|
-
type: 'string',
|
|
640
|
-
description: 'Session ID to use',
|
|
641
|
-
},
|
|
642
|
-
selector: {
|
|
643
|
-
type: 'string',
|
|
644
|
-
description: 'CSS selector to wait for',
|
|
645
|
-
},
|
|
646
|
-
state: {
|
|
647
|
-
type: 'string',
|
|
648
|
-
enum: ['attached', 'visible', 'hidden'],
|
|
649
|
-
description: 'Element state to wait for (default: visible)',
|
|
650
|
-
},
|
|
651
|
-
timeout: {
|
|
652
|
-
type: 'number',
|
|
653
|
-
description: 'Timeout in milliseconds (default: 30000)',
|
|
654
|
-
},
|
|
655
|
-
},
|
|
656
|
-
required: ['sessionId', 'selector'],
|
|
657
|
-
},
|
|
658
|
-
handler: async (args) => {
|
|
659
|
-
const sessionId = args['sessionId'];
|
|
660
|
-
const selector = args['selector'];
|
|
661
|
-
const state = args['state'];
|
|
662
|
-
const timeout = args['timeout'];
|
|
663
|
-
const result = await getManager().waitForSelector(sessionId, selector, { state, timeout });
|
|
664
|
-
if (result.success) {
|
|
665
|
-
return `✅ Element ${selector} is now ${state || 'visible'}`;
|
|
666
|
-
}
|
|
667
|
-
else {
|
|
668
|
-
return `❌ Wait failed: ${result.error}`;
|
|
669
|
-
}
|
|
670
|
-
},
|
|
671
|
-
},
|
|
672
|
-
// JavaScript Execution
|
|
673
|
-
{
|
|
674
|
-
name: 'browser_execute_script',
|
|
675
|
-
description: `Execute JavaScript in the browser context.
|
|
676
|
-
|
|
677
|
-
Run custom JavaScript code on the page.
|
|
678
|
-
Can return values from the page context.
|
|
679
|
-
|
|
680
|
-
Use for:
|
|
681
|
-
- Complex interactions not supported by other tools
|
|
682
|
-
- Reading JavaScript variables
|
|
683
|
-
- Triggering custom events`,
|
|
684
|
-
parameters: {
|
|
685
|
-
type: 'object',
|
|
686
|
-
properties: {
|
|
687
|
-
sessionId: {
|
|
688
|
-
type: 'string',
|
|
689
|
-
description: 'Session ID to use',
|
|
690
|
-
},
|
|
691
|
-
script: {
|
|
692
|
-
type: 'string',
|
|
693
|
-
description: 'JavaScript code to execute',
|
|
694
|
-
},
|
|
695
|
-
},
|
|
696
|
-
required: ['sessionId', 'script'],
|
|
697
|
-
},
|
|
698
|
-
handler: async (args) => {
|
|
699
|
-
const sessionId = args['sessionId'];
|
|
700
|
-
const script = args['script'];
|
|
701
|
-
const result = await getManager().executeScript(sessionId, script);
|
|
702
|
-
if (result.success) {
|
|
703
|
-
const resultStr = typeof result.result === 'object'
|
|
704
|
-
? JSON.stringify(result.result, null, 2)
|
|
705
|
-
: String(result.result);
|
|
706
|
-
return `✅ Script executed\n\nResult:\n${resultStr}`;
|
|
707
|
-
}
|
|
708
|
-
else {
|
|
709
|
-
return `❌ Script execution failed: ${result.error}`;
|
|
710
|
-
}
|
|
711
|
-
},
|
|
712
|
-
},
|
|
713
|
-
// Cookie Management
|
|
714
|
-
{
|
|
715
|
-
name: 'browser_get_cookies',
|
|
716
|
-
description: `Get all cookies from the browser session.
|
|
717
|
-
|
|
718
|
-
Returns cookies for the current session.
|
|
719
|
-
Can filter by specific URLs.`,
|
|
720
|
-
parameters: {
|
|
721
|
-
type: 'object',
|
|
722
|
-
properties: {
|
|
723
|
-
sessionId: {
|
|
724
|
-
type: 'string',
|
|
725
|
-
description: 'Session ID to use',
|
|
726
|
-
},
|
|
727
|
-
urls: {
|
|
728
|
-
type: 'array',
|
|
729
|
-
items: { type: 'string' },
|
|
730
|
-
description: 'Filter cookies by URLs (optional)',
|
|
731
|
-
},
|
|
732
|
-
},
|
|
733
|
-
required: ['sessionId'],
|
|
734
|
-
},
|
|
735
|
-
handler: async (args) => {
|
|
736
|
-
const sessionId = args['sessionId'];
|
|
737
|
-
const urls = args['urls'];
|
|
738
|
-
const result = await getManager().getCookies(sessionId, urls);
|
|
739
|
-
if (result.success) {
|
|
740
|
-
const cookies = result.cookies || [];
|
|
741
|
-
if (cookies.length === 0) {
|
|
742
|
-
return 'No cookies found';
|
|
743
|
-
}
|
|
744
|
-
const cookieList = cookies.map(c => `- ${c.name}: ${c.value.slice(0, 30)}${c.value.length > 30 ? '...' : ''} (${c.domain})`).join('\n');
|
|
745
|
-
return `Cookies (${cookies.length}):\n\n${cookieList}`;
|
|
746
|
-
}
|
|
747
|
-
else {
|
|
748
|
-
return `❌ Failed to get cookies: ${result.error}`;
|
|
749
|
-
}
|
|
750
|
-
},
|
|
751
|
-
},
|
|
752
|
-
{
|
|
753
|
-
name: 'browser_clear_cookies',
|
|
754
|
-
description: `Clear all cookies from the browser session.
|
|
755
|
-
|
|
756
|
-
Removes all cookies and resets authentication state.`,
|
|
757
|
-
parameters: {
|
|
758
|
-
type: 'object',
|
|
759
|
-
properties: {
|
|
760
|
-
sessionId: {
|
|
761
|
-
type: 'string',
|
|
762
|
-
description: 'Session ID to use',
|
|
763
|
-
},
|
|
764
|
-
},
|
|
765
|
-
required: ['sessionId'],
|
|
766
|
-
},
|
|
767
|
-
handler: async (args) => {
|
|
768
|
-
const sessionId = args['sessionId'];
|
|
769
|
-
const result = await getManager().clearCookies(sessionId);
|
|
770
|
-
if (result.success) {
|
|
771
|
-
return '✅ Cookies cleared';
|
|
772
|
-
}
|
|
773
|
-
else {
|
|
774
|
-
return `❌ Failed to clear cookies: ${result.error}`;
|
|
775
|
-
}
|
|
776
|
-
},
|
|
777
|
-
},
|
|
778
|
-
// Session Management
|
|
779
|
-
{
|
|
780
|
-
name: 'browser_close_session',
|
|
781
|
-
description: `Close a browser session.
|
|
782
|
-
|
|
783
|
-
Closes the browser and optionally saves cookies for future use.`,
|
|
784
|
-
parameters: {
|
|
785
|
-
type: 'object',
|
|
786
|
-
properties: {
|
|
787
|
-
sessionId: {
|
|
788
|
-
type: 'string',
|
|
789
|
-
description: 'Session ID to close',
|
|
790
|
-
},
|
|
791
|
-
saveCookies: {
|
|
792
|
-
type: 'boolean',
|
|
793
|
-
description: 'Save cookies before closing (default: true)',
|
|
794
|
-
},
|
|
795
|
-
},
|
|
796
|
-
required: ['sessionId'],
|
|
797
|
-
},
|
|
798
|
-
handler: async (args) => {
|
|
799
|
-
const sessionId = args['sessionId'];
|
|
800
|
-
const saveCookies = args['saveCookies'] !== false;
|
|
801
|
-
await getManager().closeSession(sessionId, saveCookies);
|
|
802
|
-
return `✅ Session ${sessionId} closed${saveCookies ? ' (cookies saved)' : ''}`;
|
|
803
|
-
},
|
|
804
|
-
},
|
|
805
|
-
{
|
|
806
|
-
name: 'browser_list_sessions',
|
|
807
|
-
description: `List all stored browser sessions.
|
|
808
|
-
|
|
809
|
-
Shows sessions that have been saved and can be resumed.`,
|
|
810
|
-
parameters: {
|
|
811
|
-
type: 'object',
|
|
812
|
-
properties: {},
|
|
813
|
-
},
|
|
814
|
-
handler: async () => {
|
|
815
|
-
const sessions = getManager().listStoredSessions();
|
|
816
|
-
if (sessions.length === 0) {
|
|
817
|
-
return 'No stored sessions found';
|
|
818
|
-
}
|
|
819
|
-
const sessionInfo = sessions.map(id => {
|
|
820
|
-
const info = getManager().getSessionInfo(id);
|
|
821
|
-
if (info) {
|
|
822
|
-
return `- ${id}
|
|
823
|
-
Browser: ${info.browserType}
|
|
824
|
-
Created: ${new Date(info.createdAt).toISOString()}
|
|
825
|
-
Authenticated: ${info.isAuthenticated ? `Yes (${info.authDomain})` : 'No'}
|
|
826
|
-
Cookies: ${info.cookies?.length || 0}`;
|
|
827
|
-
}
|
|
828
|
-
return `- ${id} (no info available)`;
|
|
829
|
-
}).join('\n\n');
|
|
830
|
-
return `Stored Sessions:\n\n${sessionInfo}`;
|
|
831
|
-
},
|
|
832
|
-
},
|
|
833
|
-
{
|
|
834
|
-
name: 'browser_delete_session',
|
|
835
|
-
description: `Delete stored session data.
|
|
836
|
-
|
|
837
|
-
Removes saved cookies and authentication state for a session.`,
|
|
838
|
-
parameters: {
|
|
839
|
-
type: 'object',
|
|
840
|
-
properties: {
|
|
841
|
-
sessionId: {
|
|
842
|
-
type: 'string',
|
|
843
|
-
description: 'Session ID to delete',
|
|
844
|
-
},
|
|
845
|
-
},
|
|
846
|
-
required: ['sessionId'],
|
|
847
|
-
},
|
|
848
|
-
handler: async (args) => {
|
|
849
|
-
const sessionId = args['sessionId'];
|
|
850
|
-
const deleted = getManager().deleteStoredSession(sessionId);
|
|
851
|
-
if (deleted) {
|
|
852
|
-
return `✅ Session ${sessionId} data deleted`;
|
|
853
|
-
}
|
|
854
|
-
else {
|
|
855
|
-
return `Session ${sessionId} not found in storage`;
|
|
856
|
-
}
|
|
857
|
-
},
|
|
858
|
-
},
|
|
859
|
-
// Form Automation
|
|
860
|
-
{
|
|
861
|
-
name: 'browser_fill_form',
|
|
862
|
-
description: `Fill multiple form fields at once.
|
|
863
|
-
|
|
864
|
-
Accepts a mapping of selectors to values and fills them all.
|
|
865
|
-
More efficient than individual fill calls for complex forms.`,
|
|
866
|
-
parameters: {
|
|
867
|
-
type: 'object',
|
|
868
|
-
properties: {
|
|
869
|
-
sessionId: {
|
|
870
|
-
type: 'string',
|
|
871
|
-
description: 'Session ID to use',
|
|
872
|
-
},
|
|
873
|
-
fields: {
|
|
874
|
-
type: 'object',
|
|
875
|
-
additionalProperties: true,
|
|
876
|
-
description: 'Object mapping selectors to values (selector: value pairs)',
|
|
877
|
-
},
|
|
878
|
-
submit: {
|
|
879
|
-
type: 'string',
|
|
880
|
-
description: 'Optional selector for submit button to click after filling',
|
|
881
|
-
},
|
|
882
|
-
},
|
|
883
|
-
required: ['sessionId', 'fields'],
|
|
884
|
-
},
|
|
885
|
-
handler: async (args) => {
|
|
886
|
-
const sessionId = args['sessionId'];
|
|
887
|
-
const fields = args['fields'];
|
|
888
|
-
const submit = args['submit'];
|
|
889
|
-
const results = [];
|
|
890
|
-
let hasError = false;
|
|
891
|
-
for (const [selector, value] of Object.entries(fields)) {
|
|
892
|
-
const result = await getManager().fill(sessionId, selector, value);
|
|
893
|
-
if (result.success) {
|
|
894
|
-
results.push(`✅ ${selector}: "${value.slice(0, 20)}${value.length > 20 ? '...' : ''}"`);
|
|
895
|
-
}
|
|
896
|
-
else {
|
|
897
|
-
results.push(`❌ ${selector}: ${result.error}`);
|
|
898
|
-
hasError = true;
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
if (submit && !hasError) {
|
|
902
|
-
const clickResult = await getManager().click(sessionId, submit);
|
|
903
|
-
if (clickResult.success) {
|
|
904
|
-
results.push(`✅ Form submitted via ${submit}`);
|
|
905
|
-
}
|
|
906
|
-
else {
|
|
907
|
-
results.push(`❌ Submit failed: ${clickResult.error}`);
|
|
908
|
-
}
|
|
909
|
-
}
|
|
910
|
-
return `Form Fill Results:\n\n${results.join('\n')}`;
|
|
911
|
-
},
|
|
912
|
-
},
|
|
913
|
-
];
|
|
914
|
-
}
|
|
915
|
-
export { getManager as getBrowserSessionManager };
|
|
916
|
-
//# sourceMappingURL=browserAutomationTools.js.map
|