claude-chrome-parallel 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +501 -0
- package/assets/demo.svg +278 -0
- package/dist/cdp/client.d.ts +218 -0
- package/dist/cdp/client.d.ts.map +1 -0
- package/dist/cdp/client.js +797 -0
- package/dist/cdp/client.js.map +1 -0
- package/dist/cdp/connection-pool.d.ts +125 -0
- package/dist/cdp/connection-pool.d.ts.map +1 -0
- package/dist/cdp/connection-pool.js +443 -0
- package/dist/cdp/connection-pool.js.map +1 -0
- package/dist/cdp/screenshot-scheduler.d.ts +54 -0
- package/dist/cdp/screenshot-scheduler.d.ts.map +1 -0
- package/dist/cdp/screenshot-scheduler.js +87 -0
- package/dist/cdp/screenshot-scheduler.js.map +1 -0
- package/dist/chrome/launcher.d.ts +55 -0
- package/dist/chrome/launcher.d.ts.map +1 -0
- package/dist/chrome/launcher.js +383 -0
- package/dist/chrome/launcher.js.map +1 -0
- package/dist/chrome/pool.d.ts +54 -0
- package/dist/chrome/pool.d.ts.map +1 -0
- package/dist/chrome/pool.js +301 -0
- package/dist/chrome/pool.js.map +1 -0
- package/dist/chrome/profile-detector.d.ts +52 -0
- package/dist/chrome/profile-detector.d.ts.map +1 -0
- package/dist/chrome/profile-detector.js +246 -0
- package/dist/chrome/profile-detector.js.map +1 -0
- package/dist/cli/claude-session.d.ts +11 -0
- package/dist/cli/claude-session.js +349 -0
- package/dist/cli/claude-session.js.map +1 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.js +858 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +16 -0
- package/dist/cli/install.js +185 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/uninstall.d.ts +7 -0
- package/dist/cli/uninstall.js +126 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/update-check.d.ts +9 -0
- package/dist/cli/update-check.js +141 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/config/config-recovery.d.ts +69 -0
- package/dist/config/config-recovery.d.ts.map +1 -0
- package/dist/config/config-recovery.js +302 -0
- package/dist/config/config-recovery.js.map +1 -0
- package/dist/config/global.d.ts +49 -0
- package/dist/config/global.d.ts.map +1 -0
- package/dist/config/global.js +24 -0
- package/dist/config/global.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +23 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/session-isolator.d.ts +76 -0
- package/dist/config/session-isolator.d.ts.map +1 -0
- package/dist/config/session-isolator.js +268 -0
- package/dist/config/session-isolator.js.map +1 -0
- package/dist/dashboard/activity-tracker.d.ts +76 -0
- package/dist/dashboard/activity-tracker.d.ts.map +1 -0
- package/dist/dashboard/activity-tracker.js +219 -0
- package/dist/dashboard/activity-tracker.js.map +1 -0
- package/dist/dashboard/ansi.d.ts +117 -0
- package/dist/dashboard/ansi.d.ts.map +1 -0
- package/dist/dashboard/ansi.js +199 -0
- package/dist/dashboard/ansi.js.map +1 -0
- package/dist/dashboard/index.d.ts +110 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +412 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/keyboard-handler.d.ts +43 -0
- package/dist/dashboard/keyboard-handler.d.ts.map +1 -0
- package/dist/dashboard/keyboard-handler.js +215 -0
- package/dist/dashboard/keyboard-handler.js.map +1 -0
- package/dist/dashboard/operation-controller.d.ts +76 -0
- package/dist/dashboard/operation-controller.d.ts.map +1 -0
- package/dist/dashboard/operation-controller.js +167 -0
- package/dist/dashboard/operation-controller.js.map +1 -0
- package/dist/dashboard/renderer.d.ts +76 -0
- package/dist/dashboard/renderer.d.ts.map +1 -0
- package/dist/dashboard/renderer.js +193 -0
- package/dist/dashboard/renderer.js.map +1 -0
- package/dist/dashboard/types.d.ts +56 -0
- package/dist/dashboard/types.d.ts.map +1 -0
- package/dist/dashboard/types.js +12 -0
- package/dist/dashboard/types.js.map +1 -0
- package/dist/dashboard/views/main-view.d.ts +23 -0
- package/dist/dashboard/views/main-view.d.ts.map +1 -0
- package/dist/dashboard/views/main-view.js +143 -0
- package/dist/dashboard/views/main-view.js.map +1 -0
- package/dist/dashboard/views/sessions-view.d.ts +22 -0
- package/dist/dashboard/views/sessions-view.d.ts.map +1 -0
- package/dist/dashboard/views/sessions-view.js +104 -0
- package/dist/dashboard/views/sessions-view.js.map +1 -0
- package/dist/dashboard/views/tabs-view.d.ts +21 -0
- package/dist/dashboard/views/tabs-view.d.ts.map +1 -0
- package/dist/dashboard/views/tabs-view.js +92 -0
- package/dist/dashboard/views/tabs-view.js.map +1 -0
- package/dist/hints/hint-engine.d.ts +77 -0
- package/dist/hints/hint-engine.d.ts.map +1 -0
- package/dist/hints/hint-engine.js +191 -0
- package/dist/hints/hint-engine.js.map +1 -0
- package/dist/hints/index.d.ts +8 -0
- package/dist/hints/index.d.ts.map +1 -0
- package/dist/hints/index.js +11 -0
- package/dist/hints/index.js.map +1 -0
- package/dist/hints/pattern-learner.d.ts +76 -0
- package/dist/hints/pattern-learner.d.ts.map +1 -0
- package/dist/hints/pattern-learner.js +254 -0
- package/dist/hints/pattern-learner.js.map +1 -0
- package/dist/hints/rules/composite-suggestions.d.ts +6 -0
- package/dist/hints/rules/composite-suggestions.d.ts.map +1 -0
- package/dist/hints/rules/composite-suggestions.js +66 -0
- package/dist/hints/rules/composite-suggestions.js.map +1 -0
- package/dist/hints/rules/error-recovery.d.ts +7 -0
- package/dist/hints/rules/error-recovery.d.ts.map +1 -0
- package/dist/hints/rules/error-recovery.js +55 -0
- package/dist/hints/rules/error-recovery.js.map +1 -0
- package/dist/hints/rules/learned-rules.d.ts +13 -0
- package/dist/hints/rules/learned-rules.d.ts.map +1 -0
- package/dist/hints/rules/learned-rules.js +27 -0
- package/dist/hints/rules/learned-rules.js.map +1 -0
- package/dist/hints/rules/repetition-detection.d.ts +7 -0
- package/dist/hints/rules/repetition-detection.d.ts.map +1 -0
- package/dist/hints/rules/repetition-detection.js +82 -0
- package/dist/hints/rules/repetition-detection.js.map +1 -0
- package/dist/hints/rules/sequence-detection.d.ts +6 -0
- package/dist/hints/rules/sequence-detection.d.ts.map +1 -0
- package/dist/hints/rules/sequence-detection.js +89 -0
- package/dist/hints/rules/sequence-detection.js.map +1 -0
- package/dist/hints/rules/success-hints.d.ts +6 -0
- package/dist/hints/rules/success-hints.d.ts.map +1 -0
- package/dist/hints/rules/success-hints.js +62 -0
- package/dist/hints/rules/success-hints.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/dist/lightpanda/launcher.d.ts +58 -0
- package/dist/lightpanda/launcher.d.ts.map +1 -0
- package/dist/lightpanda/launcher.js +199 -0
- package/dist/lightpanda/launcher.js.map +1 -0
- package/dist/mcp-server.d.ts +129 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +641 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/memory/domain-memory.d.ts +68 -0
- package/dist/memory/domain-memory.d.ts.map +1 -0
- package/dist/memory/domain-memory.js +227 -0
- package/dist/memory/domain-memory.js.map +1 -0
- package/dist/orchestration/plan-executor.d.ts +19 -0
- package/dist/orchestration/plan-executor.d.ts.map +1 -0
- package/dist/orchestration/plan-executor.js +284 -0
- package/dist/orchestration/plan-executor.js.map +1 -0
- package/dist/orchestration/plan-registry.d.ts +55 -0
- package/dist/orchestration/plan-registry.d.ts.map +1 -0
- package/dist/orchestration/plan-registry.js +255 -0
- package/dist/orchestration/plan-registry.js.map +1 -0
- package/dist/orchestration/state-manager.d.ts +127 -0
- package/dist/orchestration/state-manager.d.ts.map +1 -0
- package/dist/orchestration/state-manager.js +438 -0
- package/dist/orchestration/state-manager.js.map +1 -0
- package/dist/orchestration/workflow-engine.d.ts +162 -0
- package/dist/orchestration/workflow-engine.d.ts.map +1 -0
- package/dist/orchestration/workflow-engine.js +731 -0
- package/dist/orchestration/workflow-engine.js.map +1 -0
- package/dist/resources/usage-guide.d.ts +13 -0
- package/dist/resources/usage-guide.d.ts.map +1 -0
- package/dist/resources/usage-guide.js +101 -0
- package/dist/resources/usage-guide.js.map +1 -0
- package/dist/router/browser-router.d.ts +51 -0
- package/dist/router/browser-router.d.ts.map +1 -0
- package/dist/router/browser-router.js +178 -0
- package/dist/router/browser-router.js.map +1 -0
- package/dist/router/cookie-sync.d.ts +48 -0
- package/dist/router/cookie-sync.d.ts.map +1 -0
- package/dist/router/cookie-sync.js +106 -0
- package/dist/router/cookie-sync.js.map +1 -0
- package/dist/router/index.d.ts +5 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +10 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/tool-routing-registry.d.ts +21 -0
- package/dist/router/tool-routing-registry.d.ts.map +1 -0
- package/dist/router/tool-routing-registry.js +90 -0
- package/dist/router/tool-routing-registry.js.map +1 -0
- package/dist/session-manager.d.ts +251 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +912 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/tools/batch-execute.d.ts +11 -0
- package/dist/tools/batch-execute.d.ts.map +1 -0
- package/dist/tools/batch-execute.js +226 -0
- package/dist/tools/batch-execute.js.map +1 -0
- package/dist/tools/click-element.d.ts +8 -0
- package/dist/tools/click-element.d.ts.map +1 -0
- package/dist/tools/click-element.js +455 -0
- package/dist/tools/click-element.js.map +1 -0
- package/dist/tools/computer.d.ts +6 -0
- package/dist/tools/computer.d.ts.map +1 -0
- package/dist/tools/computer.js +638 -0
- package/dist/tools/computer.js.map +1 -0
- package/dist/tools/console-capture.d.ts +6 -0
- package/dist/tools/console-capture.d.ts.map +1 -0
- package/dist/tools/console-capture.js +320 -0
- package/dist/tools/console-capture.js.map +1 -0
- package/dist/tools/cookies.d.ts +6 -0
- package/dist/tools/cookies.d.ts.map +1 -0
- package/dist/tools/cookies.js +263 -0
- package/dist/tools/cookies.js.map +1 -0
- package/dist/tools/drag-drop.d.ts +6 -0
- package/dist/tools/drag-drop.d.ts.map +1 -0
- package/dist/tools/drag-drop.js +252 -0
- package/dist/tools/drag-drop.js.map +1 -0
- package/dist/tools/emulate-device.d.ts +6 -0
- package/dist/tools/emulate-device.d.ts.map +1 -0
- package/dist/tools/emulate-device.js +221 -0
- package/dist/tools/emulate-device.js.map +1 -0
- package/dist/tools/file-upload.d.ts +6 -0
- package/dist/tools/file-upload.d.ts.map +1 -0
- package/dist/tools/file-upload.js +208 -0
- package/dist/tools/file-upload.js.map +1 -0
- package/dist/tools/fill-form.d.ts +8 -0
- package/dist/tools/fill-form.d.ts.map +1 -0
- package/dist/tools/fill-form.js +342 -0
- package/dist/tools/fill-form.js.map +1 -0
- package/dist/tools/find.d.ts +6 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +330 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/form-input.d.ts +6 -0
- package/dist/tools/form-input.d.ts.map +1 -0
- package/dist/tools/form-input.js +181 -0
- package/dist/tools/form-input.js.map +1 -0
- package/dist/tools/geolocation.d.ts +6 -0
- package/dist/tools/geolocation.d.ts.map +1 -0
- package/dist/tools/geolocation.js +172 -0
- package/dist/tools/geolocation.js.map +1 -0
- package/dist/tools/http-auth.d.ts +6 -0
- package/dist/tools/http-auth.d.ts.map +1 -0
- package/dist/tools/http-auth.js +136 -0
- package/dist/tools/http-auth.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +104 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/javascript.d.ts +6 -0
- package/dist/tools/javascript.d.ts.map +1 -0
- package/dist/tools/javascript.js +138 -0
- package/dist/tools/javascript.js.map +1 -0
- package/dist/tools/lightweight-scroll.d.ts +11 -0
- package/dist/tools/lightweight-scroll.d.ts.map +1 -0
- package/dist/tools/lightweight-scroll.js +266 -0
- package/dist/tools/lightweight-scroll.js.map +1 -0
- package/dist/tools/memory.d.ts +10 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +141 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/navigate.d.ts +6 -0
- package/dist/tools/navigate.d.ts.map +1 -0
- package/dist/tools/navigate.js +241 -0
- package/dist/tools/navigate.js.map +1 -0
- package/dist/tools/network.d.ts +6 -0
- package/dist/tools/network.d.ts.map +1 -0
- package/dist/tools/network.js +215 -0
- package/dist/tools/network.js.map +1 -0
- package/dist/tools/orchestration.d.ts +6 -0
- package/dist/tools/orchestration.d.ts.map +1 -0
- package/dist/tools/orchestration.js +746 -0
- package/dist/tools/orchestration.js.map +1 -0
- package/dist/tools/page-content.d.ts +6 -0
- package/dist/tools/page-content.d.ts.map +1 -0
- package/dist/tools/page-content.js +120 -0
- package/dist/tools/page-content.js.map +1 -0
- package/dist/tools/page-pdf.d.ts +6 -0
- package/dist/tools/page-pdf.d.ts.map +1 -0
- package/dist/tools/page-pdf.js +245 -0
- package/dist/tools/page-pdf.js.map +1 -0
- package/dist/tools/page-reload.d.ts +6 -0
- package/dist/tools/page-reload.d.ts.map +1 -0
- package/dist/tools/page-reload.js +89 -0
- package/dist/tools/page-reload.js.map +1 -0
- package/dist/tools/performance-metrics.d.ts +6 -0
- package/dist/tools/performance-metrics.d.ts.map +1 -0
- package/dist/tools/performance-metrics.js +158 -0
- package/dist/tools/performance-metrics.js.map +1 -0
- package/dist/tools/read-page.d.ts +6 -0
- package/dist/tools/read-page.d.ts.map +1 -0
- package/dist/tools/read-page.js +287 -0
- package/dist/tools/read-page.js.map +1 -0
- package/dist/tools/request-intercept.d.ts +6 -0
- package/dist/tools/request-intercept.d.ts.map +1 -0
- package/dist/tools/request-intercept.js +439 -0
- package/dist/tools/request-intercept.js.map +1 -0
- package/dist/tools/selector-query.d.ts +6 -0
- package/dist/tools/selector-query.d.ts.map +1 -0
- package/dist/tools/selector-query.js +206 -0
- package/dist/tools/selector-query.js.map +1 -0
- package/dist/tools/shutdown.d.ts +12 -0
- package/dist/tools/shutdown.d.ts.map +1 -0
- package/dist/tools/shutdown.js +120 -0
- package/dist/tools/shutdown.js.map +1 -0
- package/dist/tools/storage.d.ts +6 -0
- package/dist/tools/storage.d.ts.map +1 -0
- package/dist/tools/storage.js +264 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/tools/tabs-close.d.ts +6 -0
- package/dist/tools/tabs-close.d.ts.map +1 -0
- package/dist/tools/tabs-close.js +124 -0
- package/dist/tools/tabs-close.js.map +1 -0
- package/dist/tools/tabs-context.d.ts +6 -0
- package/dist/tools/tabs-context.d.ts.map +1 -0
- package/dist/tools/tabs-context.js +92 -0
- package/dist/tools/tabs-context.js.map +1 -0
- package/dist/tools/tabs-create.d.ts +6 -0
- package/dist/tools/tabs-create.d.ts.map +1 -0
- package/dist/tools/tabs-create.js +73 -0
- package/dist/tools/tabs-create.js.map +1 -0
- package/dist/tools/user-agent.d.ts +6 -0
- package/dist/tools/user-agent.d.ts.map +1 -0
- package/dist/tools/user-agent.js +128 -0
- package/dist/tools/user-agent.js.map +1 -0
- package/dist/tools/wait-and-click.d.ts +8 -0
- package/dist/tools/wait-and-click.d.ts.map +1 -0
- package/dist/tools/wait-and-click.js +290 -0
- package/dist/tools/wait-and-click.js.map +1 -0
- package/dist/tools/wait-for.d.ts +6 -0
- package/dist/tools/wait-for.d.ts.map +1 -0
- package/dist/tools/wait-for.js +248 -0
- package/dist/tools/wait-for.js.map +1 -0
- package/dist/tools/worker-create.d.ts +7 -0
- package/dist/tools/worker-create.d.ts.map +1 -0
- package/dist/tools/worker-create.js +62 -0
- package/dist/tools/worker-create.js.map +1 -0
- package/dist/tools/worker-delete.d.ts +6 -0
- package/dist/tools/worker-delete.d.ts.map +1 -0
- package/dist/tools/worker-delete.js +80 -0
- package/dist/tools/worker-delete.js.map +1 -0
- package/dist/tools/worker-list.d.ts +6 -0
- package/dist/tools/worker-list.d.ts.map +1 -0
- package/dist/tools/worker-list.js +67 -0
- package/dist/tools/worker-list.js.map +1 -0
- package/dist/tools/xpath-query.d.ts +6 -0
- package/dist/tools/xpath-query.d.ts.map +1 -0
- package/dist/tools/xpath-query.js +230 -0
- package/dist/tools/xpath-query.js.map +1 -0
- package/dist/types/browser-backend.d.ts +30 -0
- package/dist/types/browser-backend.d.ts.map +1 -0
- package/dist/types/browser-backend.js +9 -0
- package/dist/types/browser-backend.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +54 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +14 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/plan-cache.d.ts +121 -0
- package/dist/types/plan-cache.d.ts.map +1 -0
- package/dist/types/plan-cache.js +9 -0
- package/dist/types/plan-cache.js.map +1 -0
- package/dist/types/profile.d.ts +76 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +35 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/types/session.d.ts +65 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +6 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/tool-manifest.d.ts +52 -0
- package/dist/types/tool-manifest.d.ts.map +1 -0
- package/dist/types/tool-manifest.js +37 -0
- package/dist/types/tool-manifest.js.map +1 -0
- package/dist/utils/atomic-file.d.ts +50 -0
- package/dist/utils/atomic-file.d.ts.map +1 -0
- package/dist/utils/atomic-file.js +217 -0
- package/dist/utils/atomic-file.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-validator.d.ts +40 -0
- package/dist/utils/json-validator.d.ts.map +1 -0
- package/dist/utils/json-validator.js +295 -0
- package/dist/utils/json-validator.js.map +1 -0
- package/dist/utils/ref-id-manager.d.ts +26 -0
- package/dist/utils/ref-id-manager.d.ts.map +1 -0
- package/dist/utils/ref-id-manager.js +81 -0
- package/dist/utils/ref-id-manager.js.map +1 -0
- package/dist/utils/request-queue.d.ts +37 -0
- package/dist/utils/request-queue.d.ts.map +1 -0
- package/dist/utils/request-queue.js +110 -0
- package/dist/utils/request-queue.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* XPath Query Tool - Query elements using XPath expressions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerXpathQueryTool = registerXpathQueryTool;
|
|
7
|
+
const session_manager_1 = require("../session-manager");
|
|
8
|
+
const definition = {
|
|
9
|
+
name: 'xpath_query',
|
|
10
|
+
description: `Query elements on the page using XPath expressions.
|
|
11
|
+
Returns element information including tag, attributes, text, and position.
|
|
12
|
+
Examples:
|
|
13
|
+
- //button[contains(text(), 'Submit')]
|
|
14
|
+
- //div[@class='product']//span[@class='price']
|
|
15
|
+
- //input[@type='text'][@name='email']`,
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties: {
|
|
19
|
+
tabId: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Tab ID to query',
|
|
22
|
+
},
|
|
23
|
+
xpath: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'XPath expression to evaluate',
|
|
26
|
+
},
|
|
27
|
+
multiple: {
|
|
28
|
+
type: 'boolean',
|
|
29
|
+
description: 'Whether to return multiple results (default: false)',
|
|
30
|
+
},
|
|
31
|
+
limit: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
description: 'Maximum number of results to return (for multiple: true)',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ['tabId', 'xpath'],
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const handler = async (sessionId, args) => {
|
|
40
|
+
const tabId = args.tabId;
|
|
41
|
+
const xpath = args.xpath;
|
|
42
|
+
const multiple = args.multiple ?? false;
|
|
43
|
+
const limit = args.limit ?? 50;
|
|
44
|
+
const sessionManager = (0, session_manager_1.getSessionManager)();
|
|
45
|
+
if (!tabId) {
|
|
46
|
+
return {
|
|
47
|
+
content: [{ type: 'text', text: 'Error: tabId is required' }],
|
|
48
|
+
isError: true,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (!xpath) {
|
|
52
|
+
return {
|
|
53
|
+
content: [{ type: 'text', text: 'Error: xpath is required' }],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const page = await sessionManager.getPage(sessionId, tabId, undefined, 'xpath_query');
|
|
59
|
+
if (!page) {
|
|
60
|
+
return {
|
|
61
|
+
content: [{ type: 'text', text: `Error: Tab ${tabId} not found` }],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (multiple) {
|
|
66
|
+
// Return multiple results
|
|
67
|
+
const result = await page.evaluate((xpathExpr, maxResults) => {
|
|
68
|
+
function extractElementInfo(element, xpathStr) {
|
|
69
|
+
const tagName = element.tagName.toLowerCase();
|
|
70
|
+
const id = element.id || undefined;
|
|
71
|
+
const classNameAttr = element.getAttribute('class');
|
|
72
|
+
const className = classNameAttr || undefined;
|
|
73
|
+
const text = element.textContent?.trim().slice(0, 200) || undefined;
|
|
74
|
+
const attributes = {};
|
|
75
|
+
for (let i = 0; i < element.attributes.length; i++) {
|
|
76
|
+
const attr = element.attributes[i];
|
|
77
|
+
if (attr.name !== 'id' && attr.name !== 'class') {
|
|
78
|
+
attributes[attr.name] = attr.value.slice(0, 100);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const rect = element.getBoundingClientRect();
|
|
82
|
+
return {
|
|
83
|
+
tagName,
|
|
84
|
+
id,
|
|
85
|
+
className,
|
|
86
|
+
text,
|
|
87
|
+
attributes,
|
|
88
|
+
rect: {
|
|
89
|
+
x: Math.round(rect.x),
|
|
90
|
+
y: Math.round(rect.y),
|
|
91
|
+
width: Math.round(rect.width),
|
|
92
|
+
height: Math.round(rect.height),
|
|
93
|
+
},
|
|
94
|
+
xpath: xpathStr,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const xpathResult = document.evaluate(xpathExpr, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
98
|
+
const elements = [];
|
|
99
|
+
const count = Math.min(xpathResult.snapshotLength, maxResults);
|
|
100
|
+
for (let i = 0; i < count; i++) {
|
|
101
|
+
const node = xpathResult.snapshotItem(i);
|
|
102
|
+
if (node instanceof Element) {
|
|
103
|
+
const simpleXpath = `(${xpathExpr})[${i + 1}]`;
|
|
104
|
+
elements.push(extractElementInfo(node, simpleXpath));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
elements,
|
|
109
|
+
totalCount: xpathResult.snapshotLength,
|
|
110
|
+
};
|
|
111
|
+
}, xpath, limit);
|
|
112
|
+
return {
|
|
113
|
+
content: [
|
|
114
|
+
{
|
|
115
|
+
type: 'text',
|
|
116
|
+
text: JSON.stringify({
|
|
117
|
+
action: 'xpath_query',
|
|
118
|
+
xpath,
|
|
119
|
+
multiple: true,
|
|
120
|
+
results: result.elements,
|
|
121
|
+
count: result.elements.length,
|
|
122
|
+
totalCount: result.totalCount,
|
|
123
|
+
message: result.elements.length > 0
|
|
124
|
+
? `Found ${result.totalCount} element(s), returned ${result.elements.length}`
|
|
125
|
+
: 'No elements found',
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// Return single result
|
|
133
|
+
const element = await page.evaluate((xpathExpr) => {
|
|
134
|
+
function extractElementInfo(el, xpathStr) {
|
|
135
|
+
const tagName = el.tagName.toLowerCase();
|
|
136
|
+
const id = el.id || undefined;
|
|
137
|
+
const classNameAttr = el.getAttribute('class');
|
|
138
|
+
const className = classNameAttr || undefined;
|
|
139
|
+
const text = el.textContent?.trim().slice(0, 200) || undefined;
|
|
140
|
+
const attributes = {};
|
|
141
|
+
for (let i = 0; i < el.attributes.length; i++) {
|
|
142
|
+
const attr = el.attributes[i];
|
|
143
|
+
if (attr.name !== 'id' && attr.name !== 'class') {
|
|
144
|
+
attributes[attr.name] = attr.value.slice(0, 100);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const rect = el.getBoundingClientRect();
|
|
148
|
+
return {
|
|
149
|
+
tagName,
|
|
150
|
+
id,
|
|
151
|
+
className,
|
|
152
|
+
text,
|
|
153
|
+
attributes,
|
|
154
|
+
rect: {
|
|
155
|
+
x: Math.round(rect.x),
|
|
156
|
+
y: Math.round(rect.y),
|
|
157
|
+
width: Math.round(rect.width),
|
|
158
|
+
height: Math.round(rect.height),
|
|
159
|
+
},
|
|
160
|
+
xpath: xpathStr,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const xpathResult = document.evaluate(xpathExpr, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
|
|
164
|
+
const node = xpathResult.singleNodeValue;
|
|
165
|
+
if (!node || !(node instanceof Element)) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
return extractElementInfo(node, xpathExpr);
|
|
169
|
+
}, xpath);
|
|
170
|
+
if (!element) {
|
|
171
|
+
return {
|
|
172
|
+
content: [
|
|
173
|
+
{
|
|
174
|
+
type: 'text',
|
|
175
|
+
text: JSON.stringify({
|
|
176
|
+
action: 'xpath_query',
|
|
177
|
+
xpath,
|
|
178
|
+
multiple: false,
|
|
179
|
+
result: null,
|
|
180
|
+
message: 'No element found matching XPath',
|
|
181
|
+
}),
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
content: [
|
|
188
|
+
{
|
|
189
|
+
type: 'text',
|
|
190
|
+
text: JSON.stringify({
|
|
191
|
+
action: 'xpath_query',
|
|
192
|
+
xpath,
|
|
193
|
+
multiple: false,
|
|
194
|
+
result: element,
|
|
195
|
+
message: `Found element: <${element.tagName}${element.id ? ` id="${element.id}"` : ''}>`,
|
|
196
|
+
}),
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
// Check for XPath syntax errors
|
|
204
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
205
|
+
if (errorMessage.includes('XPath') || errorMessage.includes('syntax')) {
|
|
206
|
+
return {
|
|
207
|
+
content: [
|
|
208
|
+
{
|
|
209
|
+
type: 'text',
|
|
210
|
+
text: `XPath syntax error: ${errorMessage}`,
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
isError: true,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
content: [
|
|
218
|
+
{
|
|
219
|
+
type: 'text',
|
|
220
|
+
text: `XPath query error: ${errorMessage}`,
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
isError: true,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
function registerXpathQueryTool(server) {
|
|
228
|
+
server.registerTool('xpath_query', handler, definition);
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=xpath-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xpath-query.js","sourceRoot":"","sources":["../../src/tools/xpath-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare enum BrowserBackend {
|
|
2
|
+
CHROME = "chrome",
|
|
3
|
+
LIGHTPANDA = "lightpanda"
|
|
4
|
+
}
|
|
5
|
+
export type ToolRouting = 'chrome-only' | 'prefer-lightpanda';
|
|
6
|
+
export interface RouterStats {
|
|
7
|
+
chromeRequests: number;
|
|
8
|
+
lightpandaRequests: number;
|
|
9
|
+
fallbacks: number;
|
|
10
|
+
circuitBreakerTrips: number;
|
|
11
|
+
}
|
|
12
|
+
export interface HybridConfig {
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
lightpandaPort: number;
|
|
15
|
+
circuitBreaker: {
|
|
16
|
+
maxFailures: number;
|
|
17
|
+
cooldownMs: number;
|
|
18
|
+
};
|
|
19
|
+
cookieSync: {
|
|
20
|
+
intervalMs: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface EscalationResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
previousBackend: BrowserBackend;
|
|
26
|
+
newBackend: BrowserBackend;
|
|
27
|
+
cookiesSynced: boolean;
|
|
28
|
+
url?: string;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=browser-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-backend.d.ts","sourceRoot":"","sources":["../../src/types/browser-backend.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,cAAc,CAAC;IAChC,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrowserBackend = void 0;
|
|
4
|
+
var BrowserBackend;
|
|
5
|
+
(function (BrowserBackend) {
|
|
6
|
+
BrowserBackend["CHROME"] = "chrome";
|
|
7
|
+
BrowserBackend["LIGHTPANDA"] = "lightpanda";
|
|
8
|
+
})(BrowserBackend || (exports.BrowserBackend = BrowserBackend = {}));
|
|
9
|
+
//# sourceMappingURL=browser-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-backend.js","sourceRoot":"","sources":["../../src/types/browser-backend.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./mcp"), exports);
|
|
18
|
+
__exportStar(require("./session"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,4CAA0B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Protocol Types - Ported from extension
|
|
3
|
+
*/
|
|
4
|
+
export interface MCPRequest {
|
|
5
|
+
jsonrpc: '2.0';
|
|
6
|
+
id: number | string;
|
|
7
|
+
method: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export interface MCPResponse {
|
|
11
|
+
jsonrpc: '2.0';
|
|
12
|
+
id: number | string;
|
|
13
|
+
result?: MCPResult;
|
|
14
|
+
error?: MCPError;
|
|
15
|
+
}
|
|
16
|
+
export interface MCPResult {
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
content?: MCPContent[];
|
|
19
|
+
isError?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface MCPContent {
|
|
22
|
+
type: 'text' | 'image' | 'resource';
|
|
23
|
+
text?: string;
|
|
24
|
+
data?: string;
|
|
25
|
+
mimeType?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface MCPError {
|
|
28
|
+
code: number;
|
|
29
|
+
message: string;
|
|
30
|
+
data?: unknown;
|
|
31
|
+
}
|
|
32
|
+
export interface MCPToolDefinition {
|
|
33
|
+
name: string;
|
|
34
|
+
description: string;
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: 'object';
|
|
37
|
+
properties: Record<string, unknown>;
|
|
38
|
+
required?: string[];
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export type ToolHandler = (sessionId: string, params: Record<string, unknown>) => Promise<MCPResult>;
|
|
42
|
+
export interface ToolRegistry {
|
|
43
|
+
name: string;
|
|
44
|
+
handler: ToolHandler;
|
|
45
|
+
definition: MCPToolDefinition;
|
|
46
|
+
}
|
|
47
|
+
export declare const MCPErrorCodes: {
|
|
48
|
+
readonly PARSE_ERROR: -32700;
|
|
49
|
+
readonly INVALID_REQUEST: -32600;
|
|
50
|
+
readonly METHOD_NOT_FOUND: -32601;
|
|
51
|
+
readonly INVALID_PARAMS: -32602;
|
|
52
|
+
readonly INTERNAL_ERROR: -32603;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,SAAS,CAAC,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Protocol Types - Ported from extension
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MCPErrorCodes = void 0;
|
|
7
|
+
exports.MCPErrorCodes = {
|
|
8
|
+
PARSE_ERROR: -32700,
|
|
9
|
+
INVALID_REQUEST: -32600,
|
|
10
|
+
METHOD_NOT_FOUND: -32601,
|
|
11
|
+
INVALID_PARAMS: -32602,
|
|
12
|
+
INTERNAL_ERROR: -32603,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAwDU,QAAA,aAAa,GAAG;IAC3B,WAAW,EAAE,CAAC,KAAK;IACnB,eAAe,EAAE,CAAC,KAAK;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;CACd,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan Cache Types - Compiled Plan Cache for repeated task patterns
|
|
3
|
+
*
|
|
4
|
+
* Enables server-side execution of cached tool sequences,
|
|
5
|
+
* bypassing per-step agent LLM round-trips.
|
|
6
|
+
*/
|
|
7
|
+
/** A single step in a compiled plan */
|
|
8
|
+
export interface CompiledStep {
|
|
9
|
+
/** Execution order (1-based) */
|
|
10
|
+
order: number;
|
|
11
|
+
/** MCP tool name (e.g. "javascript_tool", "computer") */
|
|
12
|
+
tool: string;
|
|
13
|
+
/** Tool arguments — supports ${param} template variables */
|
|
14
|
+
args: Record<string, unknown>;
|
|
15
|
+
/** Step-level timeout in milliseconds */
|
|
16
|
+
timeout: number;
|
|
17
|
+
/** Whether to retry this step on failure */
|
|
18
|
+
retryOnFail?: boolean;
|
|
19
|
+
/** How to parse and store the result for subsequent steps */
|
|
20
|
+
parseResult?: {
|
|
21
|
+
format: 'json' | 'text';
|
|
22
|
+
/** JSON field to extract from result */
|
|
23
|
+
extractField?: string;
|
|
24
|
+
/** Variable name to store result for later steps */
|
|
25
|
+
storeAs?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** Error handler for a compiled plan */
|
|
29
|
+
export interface PlanErrorHandler {
|
|
30
|
+
/** Condition that triggers this handler (e.g. "step2_empty_result") */
|
|
31
|
+
condition: string;
|
|
32
|
+
/** Human-readable action name */
|
|
33
|
+
action: string;
|
|
34
|
+
/** Recovery steps to execute */
|
|
35
|
+
steps: CompiledStep[];
|
|
36
|
+
}
|
|
37
|
+
/** Success criteria for plan validation */
|
|
38
|
+
export interface PlanSuccessCriteria {
|
|
39
|
+
/** Minimum number of data items in result */
|
|
40
|
+
minDataItems?: number;
|
|
41
|
+
/** Required fields in extracted data */
|
|
42
|
+
requiredFields?: string[];
|
|
43
|
+
/** Custom validation JS expression (evaluated against params) */
|
|
44
|
+
customCheck?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Task pattern for matching incoming tasks to cached plans */
|
|
47
|
+
export interface TaskPattern {
|
|
48
|
+
/** URL regex pattern (e.g. "https://x\\.com/.*") */
|
|
49
|
+
urlPattern?: string;
|
|
50
|
+
/** Required keywords in task description (AND logic) */
|
|
51
|
+
taskKeywords: string[];
|
|
52
|
+
/** Expected tool sequence signature */
|
|
53
|
+
toolSequence?: string[];
|
|
54
|
+
/** DOM structure selector to verify page compatibility */
|
|
55
|
+
pageStructure?: string;
|
|
56
|
+
}
|
|
57
|
+
/** A complete compiled plan — a cached sequence of tool calls */
|
|
58
|
+
export interface CompiledPlan {
|
|
59
|
+
/** Unique plan identifier */
|
|
60
|
+
id: string;
|
|
61
|
+
/** Plan version for cache invalidation */
|
|
62
|
+
version: string;
|
|
63
|
+
/** Human-readable description */
|
|
64
|
+
description: string;
|
|
65
|
+
/** Parameters with sources and defaults */
|
|
66
|
+
parameters: Record<string, {
|
|
67
|
+
source?: 'worker_config' | 'task_args' | 'runtime';
|
|
68
|
+
default?: unknown;
|
|
69
|
+
}>;
|
|
70
|
+
/** Ordered execution steps */
|
|
71
|
+
steps: CompiledStep[];
|
|
72
|
+
/** Error handlers */
|
|
73
|
+
errorHandlers: PlanErrorHandler[];
|
|
74
|
+
/** Success validation criteria */
|
|
75
|
+
successCriteria: PlanSuccessCriteria;
|
|
76
|
+
}
|
|
77
|
+
/** Registry entry for a plan with usage statistics */
|
|
78
|
+
export interface PlanEntry {
|
|
79
|
+
/** Plan ID */
|
|
80
|
+
id: string;
|
|
81
|
+
/** Task matching pattern */
|
|
82
|
+
pattern: TaskPattern;
|
|
83
|
+
/** Path to the plan JSON file */
|
|
84
|
+
planPath: string;
|
|
85
|
+
/** Usage statistics */
|
|
86
|
+
stats: {
|
|
87
|
+
totalExecutions: number;
|
|
88
|
+
successCount: number;
|
|
89
|
+
failCount: number;
|
|
90
|
+
avgDurationMs: number;
|
|
91
|
+
lastUsed: number;
|
|
92
|
+
};
|
|
93
|
+
/** Confidence score (0.0 - 1.0) based on success rate */
|
|
94
|
+
confidence: number;
|
|
95
|
+
/** Minimum confidence required to use this plan */
|
|
96
|
+
minConfidenceToUse: number;
|
|
97
|
+
}
|
|
98
|
+
/** The plan registry index */
|
|
99
|
+
export interface PlanRegistryData {
|
|
100
|
+
version: string;
|
|
101
|
+
plans: PlanEntry[];
|
|
102
|
+
updatedAt: number;
|
|
103
|
+
}
|
|
104
|
+
/** Result of plan execution */
|
|
105
|
+
export interface PlanExecutionResult {
|
|
106
|
+
/** Whether the plan executed successfully */
|
|
107
|
+
success: boolean;
|
|
108
|
+
/** Plan ID that was executed */
|
|
109
|
+
planId: string;
|
|
110
|
+
/** Extracted data (if successful) */
|
|
111
|
+
data?: Record<string, unknown>;
|
|
112
|
+
/** Error message (if failed) */
|
|
113
|
+
error?: string;
|
|
114
|
+
/** Execution duration in milliseconds */
|
|
115
|
+
durationMs: number;
|
|
116
|
+
/** Number of steps executed */
|
|
117
|
+
stepsExecuted: number;
|
|
118
|
+
/** Total steps in plan */
|
|
119
|
+
totalSteps: number;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=plan-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-cache.d.ts","sourceRoot":"","sources":["../../src/types/plan-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,wCAAwC;QACxC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,oDAAoD;QACpD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS,CAAC;QACnD,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,8BAA8B;IAC9B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,qBAAqB;IACrB,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,kCAAkC;IAClC,eAAe,EAAE,mBAAmB,CAAC;CACtC;AAED,sDAAsD;AACtD,MAAM,WAAW,SAAS;IACxB,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,8BAA8B;AAC9B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Plan Cache Types - Compiled Plan Cache for repeated task patterns
|
|
4
|
+
*
|
|
5
|
+
* Enables server-side execution of cached tool sequences,
|
|
6
|
+
* bypassing per-step agent LLM round-trips.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=plan-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-cache.js","sourceRoot":"","sources":["../../src/types/plan-cache.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chrome Profile Types - Type definitions for profile management
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Represents a Chrome profile
|
|
6
|
+
*/
|
|
7
|
+
export interface ChromeProfile {
|
|
8
|
+
/** Profile directory name (e.g., "Default", "Profile 1") */
|
|
9
|
+
id: string;
|
|
10
|
+
/** Display name from profile metadata */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Full path to profile directory */
|
|
13
|
+
path: string;
|
|
14
|
+
/** Google account email if signed in */
|
|
15
|
+
email?: string;
|
|
16
|
+
/** Whether the profile is currently in use (lock file exists) */
|
|
17
|
+
isInUse: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Result of profile detection
|
|
21
|
+
*/
|
|
22
|
+
export interface ProfileListResult {
|
|
23
|
+
/** Chrome user data directory path */
|
|
24
|
+
userDataDir: string;
|
|
25
|
+
/** List of detected profiles */
|
|
26
|
+
profiles: ChromeProfile[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Profile configuration for GlobalConfig
|
|
30
|
+
*/
|
|
31
|
+
export interface ProfileConfig {
|
|
32
|
+
/** Profile ID to use (e.g., "Default", "Profile 1") */
|
|
33
|
+
useProfile?: string;
|
|
34
|
+
/** Custom Chrome user data directory path */
|
|
35
|
+
chromeUserDataDir?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Chrome Local State file structure (partial)
|
|
39
|
+
*/
|
|
40
|
+
export interface LocalState {
|
|
41
|
+
profile: {
|
|
42
|
+
info_cache: Record<string, ProfileInfo>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Profile info from Local State
|
|
47
|
+
*/
|
|
48
|
+
export interface ProfileInfo {
|
|
49
|
+
/** Display name */
|
|
50
|
+
name: string;
|
|
51
|
+
/** Shortcut name */
|
|
52
|
+
shortcut_name?: string;
|
|
53
|
+
/** Google account email */
|
|
54
|
+
user_name?: string;
|
|
55
|
+
/** GAIA (Google Account ID) name */
|
|
56
|
+
gaia_name?: string;
|
|
57
|
+
/** Avatar icon index */
|
|
58
|
+
avatar_icon?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Error thrown when profile is already in use
|
|
62
|
+
*/
|
|
63
|
+
export declare class ProfileInUseError extends Error {
|
|
64
|
+
readonly profileId: string;
|
|
65
|
+
readonly profilePath: string;
|
|
66
|
+
constructor(profileId: string, profilePath: string);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Error thrown when profile is not found
|
|
70
|
+
*/
|
|
71
|
+
export declare class ProfileNotFoundError extends Error {
|
|
72
|
+
readonly profileId: string;
|
|
73
|
+
readonly availableProfiles: string[];
|
|
74
|
+
constructor(profileId: string, availableProfiles: string[]);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACzC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;gBADnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM;CAKtC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,SAAS,EAAE,MAAM;aACjB,iBAAiB,EAAE,MAAM,EAAE;gBAD3B,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EAAE;CAO9C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chrome Profile Types - Type definitions for profile management
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ProfileNotFoundError = exports.ProfileInUseError = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when profile is already in use
|
|
9
|
+
*/
|
|
10
|
+
class ProfileInUseError extends Error {
|
|
11
|
+
profileId;
|
|
12
|
+
profilePath;
|
|
13
|
+
constructor(profileId, profilePath) {
|
|
14
|
+
super(`Profile "${profileId}" is already in use. Please close Chrome or use a different profile.`);
|
|
15
|
+
this.profileId = profileId;
|
|
16
|
+
this.profilePath = profilePath;
|
|
17
|
+
this.name = 'ProfileInUseError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.ProfileInUseError = ProfileInUseError;
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when profile is not found
|
|
23
|
+
*/
|
|
24
|
+
class ProfileNotFoundError extends Error {
|
|
25
|
+
profileId;
|
|
26
|
+
availableProfiles;
|
|
27
|
+
constructor(profileId, availableProfiles) {
|
|
28
|
+
super(`Profile "${profileId}" not found. Available profiles: ${availableProfiles.join(', ') || 'none'}`);
|
|
29
|
+
this.profileId = profileId;
|
|
30
|
+
this.availableProfiles = availableProfiles;
|
|
31
|
+
this.name = 'ProfileNotFoundError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ProfileNotFoundError = ProfileNotFoundError;
|
|
35
|
+
//# sourceMappingURL=profile.js.map
|