@0xmaxma/claude-gateway 2.0.9 → 2.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -1
- package/config.template.json +6 -4
- package/dist/agent/runner.d.ts +126 -11
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +102 -10
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
- package/dist/agent/skill-learning/reviewer.js +1 -2
- package/dist/agent/skill-learning/reviewer.js.map +1 -1
- package/dist/api/browser-bindings-router.d.ts +6 -0
- package/dist/api/browser-bindings-router.d.ts.map +1 -0
- package/dist/api/browser-bindings-router.js +150 -0
- package/dist/api/browser-bindings-router.js.map +1 -0
- package/dist/api/capabilities.d.ts +53 -0
- package/dist/api/capabilities.d.ts.map +1 -0
- package/dist/api/capabilities.js +66 -0
- package/dist/api/capabilities.js.map +1 -0
- package/dist/api/connectors-router.js +1 -1
- package/dist/api/connectors-router.js.map +1 -1
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +38 -14
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/api/gateway-version.d.ts +9 -0
- package/dist/api/gateway-version.d.ts.map +1 -0
- package/dist/api/gateway-version.js +57 -0
- package/dist/api/gateway-version.js.map +1 -0
- package/dist/api/jev-router.d.ts +8 -0
- package/dist/api/jev-router.d.ts.map +1 -0
- package/dist/api/jev-router.js +128 -0
- package/dist/api/jev-router.js.map +1 -0
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +53 -6
- package/dist/api/router.js.map +1 -1
- package/dist/api/voice-router.d.ts.map +1 -1
- package/dist/api/voice-router.js +42 -3
- package/dist/api/voice-router.js.map +1 -1
- package/dist/automation/browser-command.d.ts +79 -0
- package/dist/automation/browser-command.d.ts.map +1 -0
- package/dist/automation/browser-command.js +118 -0
- package/dist/automation/browser-command.js.map +1 -0
- package/dist/automation/browser-outcome.d.ts +3 -0
- package/dist/automation/browser-outcome.d.ts.map +1 -0
- package/dist/automation/browser-outcome.js +78 -0
- package/dist/automation/browser-outcome.js.map +1 -0
- package/dist/automation/browser-steps.d.ts +33 -0
- package/dist/automation/browser-steps.d.ts.map +1 -0
- package/dist/automation/browser-steps.js +293 -0
- package/dist/automation/browser-steps.js.map +1 -0
- package/dist/automation/browser-trace.d.ts +60 -0
- package/dist/automation/browser-trace.d.ts.map +1 -0
- package/dist/automation/browser-trace.js +24 -0
- package/dist/automation/browser-trace.js.map +1 -0
- package/dist/automation/browser-use.d.ts +210 -0
- package/dist/automation/browser-use.d.ts.map +1 -0
- package/dist/automation/browser-use.js +1271 -0
- package/dist/automation/browser-use.js.map +1 -0
- package/dist/automation/command-speech.d.ts +33 -0
- package/dist/automation/command-speech.d.ts.map +1 -0
- package/dist/automation/command-speech.js +117 -0
- package/dist/automation/command-speech.js.map +1 -0
- package/dist/automation/command-steps.d.ts +35 -0
- package/dist/automation/command-steps.d.ts.map +1 -0
- package/dist/automation/command-steps.js +155 -0
- package/dist/automation/command-steps.js.map +1 -0
- package/dist/automation/computer-choice-ids.d.ts +7 -0
- package/dist/automation/computer-choice-ids.d.ts.map +1 -0
- package/dist/automation/computer-choice-ids.js +24 -0
- package/dist/automation/computer-choice-ids.js.map +1 -0
- package/dist/automation/computer-command.d.ts +126 -0
- package/dist/automation/computer-command.d.ts.map +1 -0
- package/dist/automation/computer-command.js +313 -0
- package/dist/automation/computer-command.js.map +1 -0
- package/dist/automation/computer-outcome.d.ts +8 -0
- package/dist/automation/computer-outcome.d.ts.map +1 -0
- package/dist/automation/computer-outcome.js +82 -0
- package/dist/automation/computer-outcome.js.map +1 -0
- package/dist/automation/computer-policy.d.ts +84 -0
- package/dist/automation/computer-policy.d.ts.map +1 -0
- package/dist/automation/computer-policy.js +56 -0
- package/dist/automation/computer-policy.js.map +1 -0
- package/dist/automation/computer-safety.d.ts +27 -0
- package/dist/automation/computer-safety.d.ts.map +1 -0
- package/dist/automation/computer-safety.js +47 -0
- package/dist/automation/computer-safety.js.map +1 -0
- package/dist/automation/computer-steps.d.ts +20 -0
- package/dist/automation/computer-steps.d.ts.map +1 -0
- package/dist/automation/computer-steps.js +251 -0
- package/dist/automation/computer-steps.js.map +1 -0
- package/dist/automation/computer-use.d.ts +315 -0
- package/dist/automation/computer-use.d.ts.map +1 -0
- package/dist/automation/computer-use.js +864 -0
- package/dist/automation/computer-use.js.map +1 -0
- package/dist/automation/direct-command.d.ts +51 -0
- package/dist/automation/direct-command.d.ts.map +1 -0
- package/dist/automation/direct-command.js +152 -0
- package/dist/automation/direct-command.js.map +1 -0
- package/dist/automation/interrupt.d.ts +4 -0
- package/dist/automation/interrupt.d.ts.map +1 -0
- package/dist/automation/interrupt.js +26 -0
- package/dist/automation/interrupt.js.map +1 -0
- package/dist/build-provenance.json +4 -4
- package/dist/child-env-exclusions.d.ts +4 -0
- package/dist/child-env-exclusions.d.ts.map +1 -0
- package/dist/child-env-exclusions.js +23 -0
- package/dist/child-env-exclusions.js.map +1 -0
- package/dist/cli/startup-diagnostics.d.ts.map +1 -1
- package/dist/cli/startup-diagnostics.js +19 -0
- package/dist/cli/startup-diagnostics.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/reload-policy.d.ts.map +1 -1
- package/dist/config/reload-policy.js +2 -1
- package/dist/config/reload-policy.js.map +1 -1
- package/dist/jev/automatic-browser-bindings.d.ts +15 -0
- package/dist/jev/automatic-browser-bindings.d.ts.map +1 -0
- package/dist/jev/automatic-browser-bindings.js +115 -0
- package/dist/jev/automatic-browser-bindings.js.map +1 -0
- package/dist/jev/browser-connector.d.ts +29 -0
- package/dist/jev/browser-connector.d.ts.map +1 -0
- package/dist/jev/browser-connector.js +347 -0
- package/dist/jev/browser-connector.js.map +1 -0
- package/dist/jev/browser-consent.d.ts +6 -0
- package/dist/jev/browser-consent.d.ts.map +1 -0
- package/dist/jev/browser-consent.js +50 -0
- package/dist/jev/browser-consent.js.map +1 -0
- package/dist/jev/browser-contract.d.ts +215 -0
- package/dist/jev/browser-contract.d.ts.map +1 -0
- package/dist/jev/browser-contract.js +10 -0
- package/dist/jev/browser-contract.js.map +1 -0
- package/dist/jev/browser-evidence-summary.d.ts +73 -0
- package/dist/jev/browser-evidence-summary.d.ts.map +1 -0
- package/dist/jev/browser-evidence-summary.js +22 -0
- package/dist/jev/browser-evidence-summary.js.map +1 -0
- package/dist/jev/browser-module-import.d.ts +3 -0
- package/dist/jev/browser-module-import.d.ts.map +1 -0
- package/dist/jev/browser-module-import.js +6 -0
- package/dist/jev/browser-module-import.js.map +1 -0
- package/dist/jev/child-env.d.ts +11 -0
- package/dist/jev/child-env.d.ts.map +1 -0
- package/dist/jev/child-env.js +60 -0
- package/dist/jev/child-env.js.map +1 -0
- package/dist/jev/computer-connector.d.ts +34 -0
- package/dist/jev/computer-connector.d.ts.map +1 -0
- package/dist/jev/computer-connector.js +82 -0
- package/dist/jev/computer-connector.js.map +1 -0
- package/dist/jev/computer-inputs.d.ts +41 -0
- package/dist/jev/computer-inputs.d.ts.map +1 -0
- package/dist/jev/computer-inputs.js +7 -0
- package/dist/jev/computer-inputs.js.map +1 -0
- package/dist/jev/index.d.ts +6 -0
- package/dist/jev/index.d.ts.map +1 -0
- package/dist/jev/index.js +25 -0
- package/dist/jev/index.js.map +1 -0
- package/dist/jev/relay-grants.d.ts +9 -0
- package/dist/jev/relay-grants.d.ts.map +1 -0
- package/dist/jev/relay-grants.js +49 -0
- package/dist/jev/relay-grants.js.map +1 -0
- package/dist/jev/service.d.ts +27 -0
- package/dist/jev/service.d.ts.map +1 -0
- package/dist/jev/service.js +264 -0
- package/dist/jev/service.js.map +1 -0
- package/dist/jev/thinking-provider.d.ts +7 -0
- package/dist/jev/thinking-provider.d.ts.map +1 -0
- package/dist/jev/thinking-provider.js +25 -0
- package/dist/jev/thinking-provider.js.map +1 -0
- package/dist/jev/types.d.ts +124 -0
- package/dist/jev/types.d.ts.map +1 -0
- package/dist/jev/types.js +13 -0
- package/dist/jev/types.js.map +1 -0
- package/dist/jev/validation.d.ts +45 -0
- package/dist/jev/validation.d.ts.map +1 -0
- package/dist/jev/validation.js +179 -0
- package/dist/jev/validation.js.map +1 -0
- package/dist/load-dotenv.d.ts.map +1 -1
- package/dist/load-dotenv.js +5 -1
- package/dist/load-dotenv.js.map +1 -1
- package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -1
- package/dist/orchestration/agent-tool-schemas.js +12 -7
- package/dist/orchestration/agent-tool-schemas.js.map +1 -1
- package/dist/orchestration/background-work.d.ts +1 -0
- package/dist/orchestration/background-work.d.ts.map +1 -1
- package/dist/orchestration/background-work.js +1 -0
- package/dist/orchestration/background-work.js.map +1 -1
- package/dist/orchestration/bridge.d.ts +4 -0
- package/dist/orchestration/bridge.d.ts.map +1 -1
- package/dist/orchestration/bridge.js +227 -41
- package/dist/orchestration/bridge.js.map +1 -1
- package/dist/orchestration/browser-fields.d.ts +25 -0
- package/dist/orchestration/browser-fields.d.ts.map +1 -0
- package/dist/orchestration/browser-fields.js +23 -0
- package/dist/orchestration/browser-fields.js.map +1 -0
- package/dist/orchestration/browser-routing.d.ts +1 -1
- package/dist/orchestration/browser-routing.d.ts.map +1 -1
- package/dist/orchestration/browser-routing.js +7 -3
- package/dist/orchestration/browser-routing.js.map +1 -1
- package/dist/orchestration/capabilities.d.ts +5 -2
- package/dist/orchestration/capabilities.d.ts.map +1 -1
- package/dist/orchestration/capabilities.js +24 -24
- package/dist/orchestration/capabilities.js.map +1 -1
- package/dist/orchestration/channel-controls.js +1 -1
- package/dist/orchestration/channel-controls.js.map +1 -1
- package/dist/orchestration/cli-skills.d.ts +1 -1
- package/dist/orchestration/cli-skills.d.ts.map +1 -1
- package/dist/orchestration/cli-skills.js +16 -10
- package/dist/orchestration/cli-skills.js.map +1 -1
- package/dist/orchestration/computer-end-screenshot.d.ts +11 -0
- package/dist/orchestration/computer-end-screenshot.d.ts.map +1 -0
- package/dist/orchestration/computer-end-screenshot.js +37 -0
- package/dist/orchestration/computer-end-screenshot.js.map +1 -0
- package/dist/orchestration/computer-prompt.d.ts +6 -0
- package/dist/orchestration/computer-prompt.d.ts.map +1 -0
- package/dist/orchestration/computer-prompt.js +24 -0
- package/dist/orchestration/computer-prompt.js.map +1 -0
- package/dist/orchestration/config.d.ts +17 -0
- package/dist/orchestration/config.d.ts.map +1 -1
- package/dist/orchestration/config.js +10 -4
- package/dist/orchestration/config.js.map +1 -1
- package/dist/orchestration/container-tool-schemas.d.ts +47 -3
- package/dist/orchestration/container-tool-schemas.d.ts.map +1 -1
- package/dist/orchestration/container-tool-schemas.js +41 -6
- package/dist/orchestration/container-tool-schemas.js.map +1 -1
- package/dist/orchestration/container.d.ts +4 -1
- package/dist/orchestration/container.d.ts.map +1 -1
- package/dist/orchestration/container.js +48 -29
- package/dist/orchestration/container.js.map +1 -1
- package/dist/orchestration/context-footprint.d.ts +1 -1
- package/dist/orchestration/context-footprint.d.ts.map +1 -1
- package/dist/orchestration/context-footprint.js +5 -5
- package/dist/orchestration/context-footprint.js.map +1 -1
- package/dist/orchestration/control-notification.d.ts +6 -0
- package/dist/orchestration/control-notification.d.ts.map +1 -0
- package/dist/orchestration/control-notification.js +23 -0
- package/dist/orchestration/control-notification.js.map +1 -0
- package/dist/orchestration/dashboard-reader-worker.js +2 -2
- package/dist/orchestration/dashboard-reader-worker.js.map +1 -1
- package/dist/orchestration/execution-observation.d.ts +3 -0
- package/dist/orchestration/execution-observation.d.ts.map +1 -1
- package/dist/orchestration/execution-observation.js.map +1 -1
- package/dist/orchestration/gateway-tasks/browser.d.ts +59 -0
- package/dist/orchestration/gateway-tasks/browser.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/browser.js +426 -0
- package/dist/orchestration/gateway-tasks/browser.js.map +1 -0
- package/dist/orchestration/gateway-tasks/computer-context.d.ts +6 -0
- package/dist/orchestration/gateway-tasks/computer-context.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/computer-context.js +19 -0
- package/dist/orchestration/gateway-tasks/computer-context.js.map +1 -0
- package/dist/orchestration/gateway-tasks/computer.d.ts +123 -0
- package/dist/orchestration/gateway-tasks/computer.d.ts.map +1 -0
- package/dist/orchestration/gateway-tasks/computer.js +519 -0
- package/dist/orchestration/gateway-tasks/computer.js.map +1 -0
- package/dist/orchestration/gateway-tasks/controller.d.ts +40 -6
- package/dist/orchestration/gateway-tasks/controller.d.ts.map +1 -1
- package/dist/orchestration/gateway-tasks/controller.js +118 -12
- package/dist/orchestration/gateway-tasks/controller.js.map +1 -1
- package/dist/orchestration/gateway-tasks/safemode.d.ts.map +1 -1
- package/dist/orchestration/gateway-tasks/safemode.js +2 -1
- package/dist/orchestration/gateway-tasks/safemode.js.map +1 -1
- package/dist/orchestration/jev-gateway.d.ts +25 -0
- package/dist/orchestration/jev-gateway.d.ts.map +1 -0
- package/dist/orchestration/jev-gateway.js +103 -0
- package/dist/orchestration/jev-gateway.js.map +1 -0
- package/dist/orchestration/jev-tool.d.ts +45 -0
- package/dist/orchestration/jev-tool.d.ts.map +1 -0
- package/dist/orchestration/jev-tool.js +10 -0
- package/dist/orchestration/jev-tool.js.map +1 -0
- package/dist/orchestration/live-execution-input.d.ts +26 -0
- package/dist/orchestration/live-execution-input.d.ts.map +1 -0
- package/dist/orchestration/live-execution-input.js +70 -0
- package/dist/orchestration/live-execution-input.js.map +1 -0
- package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
- package/dist/orchestration/notification-mailbox.js +5 -2
- package/dist/orchestration/notification-mailbox.js.map +1 -1
- package/dist/orchestration/process-activity.d.ts +4 -2
- package/dist/orchestration/process-activity.d.ts.map +1 -1
- package/dist/orchestration/process-activity.js +31 -42
- package/dist/orchestration/process-activity.js.map +1 -1
- package/dist/orchestration/process-platform.d.ts +72 -0
- package/dist/orchestration/process-platform.d.ts.map +1 -0
- package/dist/orchestration/process-platform.js +396 -0
- package/dist/orchestration/process-platform.js.map +1 -0
- package/dist/orchestration/process-supervisor.d.ts +31 -7
- package/dist/orchestration/process-supervisor.d.ts.map +1 -1
- package/dist/orchestration/process-supervisor.js +89 -61
- package/dist/orchestration/process-supervisor.js.map +1 -1
- package/dist/orchestration/process-turn.d.ts +8 -0
- package/dist/orchestration/process-turn.d.ts.map +1 -1
- package/dist/orchestration/process-turn.js +97 -13
- package/dist/orchestration/process-turn.js.map +1 -1
- package/dist/orchestration/progress-review.d.ts +1 -1
- package/dist/orchestration/progress-review.d.ts.map +1 -1
- package/dist/orchestration/progress-review.js +5 -1
- package/dist/orchestration/progress-review.js.map +1 -1
- package/dist/orchestration/report-fidelity.d.ts +31 -0
- package/dist/orchestration/report-fidelity.d.ts.map +1 -0
- package/dist/orchestration/report-fidelity.js +34 -0
- package/dist/orchestration/report-fidelity.js.map +1 -0
- package/dist/orchestration/response-errors.d.ts.map +1 -1
- package/dist/orchestration/response-errors.js +1 -0
- package/dist/orchestration/response-errors.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +51 -1
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +404 -33
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration/skill-catalog-budget.d.ts +6 -0
- package/dist/orchestration/skill-catalog-budget.d.ts.map +1 -0
- package/dist/orchestration/skill-catalog-budget.js +9 -0
- package/dist/orchestration/skill-catalog-budget.js.map +1 -0
- package/dist/orchestration/skills.d.ts +4 -2
- package/dist/orchestration/skills.d.ts.map +1 -1
- package/dist/orchestration/skills.js +44 -3
- package/dist/orchestration/skills.js.map +1 -1
- package/dist/orchestration/speech.d.ts +1 -1
- package/dist/orchestration/speech.d.ts.map +1 -1
- package/dist/orchestration/speech.js +1 -1
- package/dist/orchestration/store.d.ts +1 -0
- package/dist/orchestration/store.d.ts.map +1 -1
- package/dist/orchestration/store.js +2 -0
- package/dist/orchestration/store.js.map +1 -1
- package/dist/orchestration/task-controls.d.ts +78 -8
- package/dist/orchestration/task-controls.d.ts.map +1 -1
- package/dist/orchestration/task-controls.js +6 -1
- package/dist/orchestration/task-controls.js.map +1 -1
- package/dist/orchestration/task-questions.js +2 -2
- package/dist/orchestration/task-questions.js.map +1 -1
- package/dist/orchestration/tasks/automation-session.d.ts +25 -0
- package/dist/orchestration/tasks/automation-session.d.ts.map +1 -0
- package/dist/orchestration/tasks/automation-session.js +68 -0
- package/dist/orchestration/tasks/automation-session.js.map +1 -0
- package/dist/orchestration/tasks/driver.d.ts.map +1 -1
- package/dist/orchestration/tasks/driver.js +7 -5
- package/dist/orchestration/tasks/driver.js.map +1 -1
- package/dist/orchestration/tasks/failure.d.ts +6 -0
- package/dist/orchestration/tasks/failure.d.ts.map +1 -1
- package/dist/orchestration/tasks/failure.js +26 -2
- package/dist/orchestration/tasks/failure.js.map +1 -1
- package/dist/orchestration/tasks/scheduler.d.ts +1 -1
- package/dist/orchestration/tasks/scheduler.d.ts.map +1 -1
- package/dist/orchestration/tasks/scheduler.js +3 -1
- package/dist/orchestration/tasks/scheduler.js.map +1 -1
- package/dist/orchestration/tasks/service.d.ts +68 -7
- package/dist/orchestration/tasks/service.d.ts.map +1 -1
- package/dist/orchestration/tasks/service.js +647 -45
- package/dist/orchestration/tasks/service.js.map +1 -1
- package/dist/orchestration/types.d.ts +90 -3
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/orchestration/types.js.map +1 -1
- package/dist/safemode/native.d.ts.map +1 -1
- package/dist/safemode/native.js +8 -3
- package/dist/safemode/native.js.map +1 -1
- package/dist/session/claude-bin.d.ts +29 -0
- package/dist/session/claude-bin.d.ts.map +1 -1
- package/dist/session/claude-bin.js +63 -12
- package/dist/session/claude-bin.js.map +1 -1
- package/dist/session/codex-extension-discovery.d.ts.map +1 -1
- package/dist/session/codex-extension-discovery.js +4 -2
- package/dist/session/codex-extension-discovery.js.map +1 -1
- package/dist/session/codex-native-mcp-client.d.ts.map +1 -1
- package/dist/session/codex-native-mcp-client.js +2 -1
- package/dist/session/codex-native-mcp-client.js.map +1 -1
- package/dist/session/codex-process.d.ts +4 -0
- package/dist/session/codex-process.d.ts.map +1 -1
- package/dist/session/codex-process.js +16 -6
- package/dist/session/codex-process.js.map +1 -1
- package/dist/session/compactor.d.ts.map +1 -1
- package/dist/session/compactor.js +1 -2
- package/dist/session/compactor.js.map +1 -1
- package/dist/session/process.d.ts +18 -0
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +175 -67
- package/dist/session/process.js.map +1 -1
- package/dist/session/runtime-profile.d.ts +18 -0
- package/dist/session/runtime-profile.d.ts.map +1 -1
- package/dist/session/runtime-profile.js +23 -0
- package/dist/session/runtime-profile.js.map +1 -1
- package/dist/session/worker-extensions.d.ts.map +1 -1
- package/dist/session/worker-extensions.js +4 -3
- package/dist/session/worker-extensions.js.map +1 -1
- package/dist/shell/claude-pty-shell.js +5 -4
- package/dist/shell/claude-pty-shell.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/dashboard-client.d.ts.map +1 -1
- package/dist/ui/dashboard-client.js +33 -3
- package/dist/ui/dashboard-client.js.map +1 -1
- package/dist/ui/web-ui.js +1 -1
- package/dist/utils/paths.d.ts +8 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +11 -0
- package/dist/utils/paths.js.map +1 -1
- package/lib/automation/browser-thinking.cjs +9 -0
- package/lib/automation/browser-thinking.d.cts +2 -0
- package/lib/automation/computer-thinking.cjs +10 -0
- package/lib/automation/computer-thinking.d.cts +2 -0
- package/lib/automation/index.cjs +47 -0
- package/lib/automation/index.d.cts +3 -0
- package/lib/automation/reasoning-instructions.cjs +5 -0
- package/lib/automation/thinking.cjs +35 -0
- package/lib/automation/thinking.d.cts +2 -0
- package/mcp/capability-catalog.ts +2 -2
- package/mcp/server.ts +1 -1
- package/mcp/tools/tasks/module.ts +9 -0
- package/mcp/tools/telegram/receiver-server.ts +4 -2
- package/package.json +6 -4
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { BrowserTrace, BrowserTraceEvent } from '../automation/browser-trace';
|
|
2
|
+
import type { JevRequest, JevResult } from './types';
|
|
3
|
+
/** Consumer protocol v1. No provider keys, executable code or URLs in task arguments. */
|
|
4
|
+
export interface BrowserScope {
|
|
5
|
+
device_id: string;
|
|
6
|
+
grant_id: string;
|
|
7
|
+
tab_id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BrowserProgress {
|
|
10
|
+
contractVersion?: 1;
|
|
11
|
+
phase?: 'waiting_consent' | 'evaluating' | 'decided' | 'acting' | 'acted';
|
|
12
|
+
requestId?: string;
|
|
13
|
+
operationId?: string;
|
|
14
|
+
steps: number;
|
|
15
|
+
evaluations: number;
|
|
16
|
+
model?: string;
|
|
17
|
+
decision_ms?: number;
|
|
18
|
+
operation_confidence?: number;
|
|
19
|
+
target_confidence?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface BrowserExecutionResult {
|
|
22
|
+
trace?: BrowserTrace;
|
|
23
|
+
status: 'succeeded' | 'blocked' | 'cancelled' | 'failed' | 'needs_verification';
|
|
24
|
+
reason: string;
|
|
25
|
+
providerFailure?: BrowserProviderFailure;
|
|
26
|
+
verification?: {
|
|
27
|
+
source: 'parent';
|
|
28
|
+
evidence: string;
|
|
29
|
+
at: number;
|
|
30
|
+
};
|
|
31
|
+
steps: number;
|
|
32
|
+
evaluations: number;
|
|
33
|
+
staleRetries?: number;
|
|
34
|
+
textCalls?: number;
|
|
35
|
+
lastAction?: {
|
|
36
|
+
operationId: string;
|
|
37
|
+
operation: string;
|
|
38
|
+
outcome: 'confirmed' | 'unknown' | 'not_executed';
|
|
39
|
+
};
|
|
40
|
+
observation?: unknown;
|
|
41
|
+
contractVersion?: 1;
|
|
42
|
+
fieldRequest?: {
|
|
43
|
+
ref: string;
|
|
44
|
+
label: string;
|
|
45
|
+
reason: 'missing' | 'ambiguous';
|
|
46
|
+
};
|
|
47
|
+
lastEvaluation?: {
|
|
48
|
+
requestId: string;
|
|
49
|
+
model?: string;
|
|
50
|
+
};
|
|
51
|
+
lastConfirmedAction?: {
|
|
52
|
+
operationId: string;
|
|
53
|
+
operation: string;
|
|
54
|
+
outcome: 'confirmed';
|
|
55
|
+
};
|
|
56
|
+
/** Direct user command: what it did, or why nothing was done. */
|
|
57
|
+
commandOutcome?: import('../automation/browser-command').BrowserCommandOutcome;
|
|
58
|
+
stepRun?: import('../automation/command-steps').CommandStepRun;
|
|
59
|
+
}
|
|
60
|
+
export interface BrowserExecutionContext {
|
|
61
|
+
requestConsent?: boolean;
|
|
62
|
+
interruptSignal?: AbortSignal;
|
|
63
|
+
trace?: (event: BrowserTraceEvent) => void;
|
|
64
|
+
startUrl?: string;
|
|
65
|
+
goal: string;
|
|
66
|
+
/** The goal is the user's own direct command (user-controlled session). */
|
|
67
|
+
command?: boolean;
|
|
68
|
+
/** Previous direct command context; references only, never replayed. */
|
|
69
|
+
interactionContext?: string;
|
|
70
|
+
/** The agent's command for a handed-off utterance: a high-impact action waits for the user's confirmation. */
|
|
71
|
+
agentCommand?: boolean;
|
|
72
|
+
/** The user's reply to that confirmation question; yes runs the agent's command. */
|
|
73
|
+
confirmation?: {
|
|
74
|
+
command: string;
|
|
75
|
+
label: string;
|
|
76
|
+
};
|
|
77
|
+
/** The agent's opening text for a session the user drives; no action means ready. */
|
|
78
|
+
sessionStart?: boolean;
|
|
79
|
+
/** The user's explicit step list (step mode). */
|
|
80
|
+
steps?: string[];
|
|
81
|
+
fields?: Array<{
|
|
82
|
+
label: string;
|
|
83
|
+
text: string;
|
|
84
|
+
}>;
|
|
85
|
+
signal: AbortSignal;
|
|
86
|
+
authorized(): boolean;
|
|
87
|
+
evaluate(request: JevRequest, signal: AbortSignal): Promise<JevResult>;
|
|
88
|
+
progress(event: BrowserProgress): void;
|
|
89
|
+
/** Synchronous durable fence in the MCP transport, before any page mutation. */
|
|
90
|
+
beforeMutation?(operationId: string, operation: string): void;
|
|
91
|
+
}
|
|
92
|
+
export interface BrowserConnectorConfig {
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
agentId: string;
|
|
96
|
+
principalId: string;
|
|
97
|
+
conversationId: string;
|
|
98
|
+
endpoint?: string;
|
|
99
|
+
apiKeyEnv?: string;
|
|
100
|
+
apiKeyFile?: string;
|
|
101
|
+
connectorId?: string;
|
|
102
|
+
scope: BrowserScope;
|
|
103
|
+
fields?: Array<{
|
|
104
|
+
label: string;
|
|
105
|
+
text: string;
|
|
106
|
+
}>;
|
|
107
|
+
budget?: {
|
|
108
|
+
maxSteps?: number;
|
|
109
|
+
maxEvaluations?: number;
|
|
110
|
+
timeoutMs?: number;
|
|
111
|
+
maxTextCalls?: number;
|
|
112
|
+
maxStaleRetries?: number;
|
|
113
|
+
operationConfidence?: number;
|
|
114
|
+
targetConfidence?: number;
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** Host-owned connection for Jev Loop tool-free reasoning. */
|
|
118
|
+
export interface BrowserTextHelperConfig {
|
|
119
|
+
api?: 'openai-chat' | 'anthropic-messages';
|
|
120
|
+
baseUrl: string;
|
|
121
|
+
model: string;
|
|
122
|
+
apiKeyEnv?: string;
|
|
123
|
+
apiKeyFile?: string;
|
|
124
|
+
}
|
|
125
|
+
export interface BrowserIntegrationConfig {
|
|
126
|
+
bindings: BrowserConnectorConfig[];
|
|
127
|
+
textHelper?: BrowserTextHelperConfig;
|
|
128
|
+
}
|
|
129
|
+
export type BrowserToolCall = (name: string, args: Record<string, unknown>, signal: AbortSignal) => Promise<unknown>;
|
|
130
|
+
export interface BrowserLogicModule {
|
|
131
|
+
BROWSER_USE_CONTRACT_VERSION: 1;
|
|
132
|
+
/** Optional v1 inputs the module accepts: 'direct_command' (command, interactionContext, agentCommand, confirmation) and 'steps'. */
|
|
133
|
+
BROWSER_USE_FEATURES?: readonly string[];
|
|
134
|
+
runBrowserSteps?: (input: Record<string, unknown>, dependencies: Parameters<BrowserLogicModule['runBrowserUse']>[1], signal: AbortSignal) => Promise<BrowserExecutionResult>;
|
|
135
|
+
runBrowserUse(input: {
|
|
136
|
+
yieldAfterAction?: boolean;
|
|
137
|
+
command?: boolean;
|
|
138
|
+
interactionContext?: string;
|
|
139
|
+
contractVersion: 1;
|
|
140
|
+
goal: string;
|
|
141
|
+
startUrl?: string;
|
|
142
|
+
scope: BrowserScope;
|
|
143
|
+
fields?: BrowserConnectorConfig['fields'];
|
|
144
|
+
} & BrowserConnectorConfig['budget'], dependencies: {
|
|
145
|
+
interruptSignal?: AbortSignal;
|
|
146
|
+
trace?: (event: BrowserTraceEvent) => void;
|
|
147
|
+
call: BrowserToolCall;
|
|
148
|
+
evaluate(request: JevRequest, signal: AbortSignal): Promise<{
|
|
149
|
+
model: string;
|
|
150
|
+
answers: JevResult['answers'];
|
|
151
|
+
}>;
|
|
152
|
+
progress(event: BrowserProgress): void;
|
|
153
|
+
/** Synchronous durable fence in the MCP transport, before any page mutation. */
|
|
154
|
+
beforeMutation?(operationId: string, operation: string): void;
|
|
155
|
+
verify?: (observation: unknown, signal: AbortSignal) => Promise<boolean>;
|
|
156
|
+
recover?: (request: Record<string, unknown>, signal: AbortSignal) => Promise<{
|
|
157
|
+
guidance: string | null;
|
|
158
|
+
fields: Array<{
|
|
159
|
+
label: string;
|
|
160
|
+
text: string;
|
|
161
|
+
}>;
|
|
162
|
+
}>;
|
|
163
|
+
snapshot?: (leaseToken: string, signal: AbortSignal) => Promise<{
|
|
164
|
+
mimeType: 'image/png';
|
|
165
|
+
data: string;
|
|
166
|
+
}>;
|
|
167
|
+
resolveFieldText?: (request: unknown, signal: AbortSignal) => Promise<{
|
|
168
|
+
text: string | null;
|
|
169
|
+
}>;
|
|
170
|
+
}, signal: AbortSignal): Promise<BrowserExecutionResult>;
|
|
171
|
+
mcpBrowserTransport(invoke: (name: string, args: Record<string, unknown>, signal: AbortSignal) => Promise<{
|
|
172
|
+
content: unknown[];
|
|
173
|
+
isError?: boolean;
|
|
174
|
+
}>): BrowserToolCall;
|
|
175
|
+
/** Optional trusted integration hooks. Never generated from page/model code. */
|
|
176
|
+
verifyBrowserTask?: (goal: string, observation: unknown, signal: AbortSignal) => Promise<boolean>;
|
|
177
|
+
resolveFieldText?: (request: unknown, signal: AbortSignal) => Promise<{
|
|
178
|
+
text: string | null;
|
|
179
|
+
}>;
|
|
180
|
+
}
|
|
181
|
+
export interface BrowserMutationCheckpoint {
|
|
182
|
+
operationId: string;
|
|
183
|
+
operation: string;
|
|
184
|
+
recordedAt: number;
|
|
185
|
+
}
|
|
186
|
+
export interface BrowserEvidence {
|
|
187
|
+
trace?: BrowserTrace;
|
|
188
|
+
lastDispatchedMutation?: BrowserMutationCheckpoint;
|
|
189
|
+
requestId: string;
|
|
190
|
+
recordedAt: number;
|
|
191
|
+
evidenceId?: string;
|
|
192
|
+
result?: BrowserExecutionResult;
|
|
193
|
+
executionState: 'ended' | 'interrupted';
|
|
194
|
+
fresh?: {
|
|
195
|
+
observedAt: number;
|
|
196
|
+
observation: unknown;
|
|
197
|
+
operationStatus?: unknown;
|
|
198
|
+
screenshot?: {
|
|
199
|
+
type: 'image';
|
|
200
|
+
mimeType: 'image/png';
|
|
201
|
+
data: string;
|
|
202
|
+
};
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export interface BrowserProviderFailure {
|
|
206
|
+
code: string;
|
|
207
|
+
validationReason?: string;
|
|
208
|
+
status?: number;
|
|
209
|
+
retryAfter?: string;
|
|
210
|
+
resetAt?: string;
|
|
211
|
+
}
|
|
212
|
+
export type BrowserTaskReport = Omit<BrowserExecutionResult, 'observation' | 'trace'>;
|
|
213
|
+
/** Independent parent verification is valid only after a known non-ambiguous stop. */
|
|
214
|
+
export declare function parentVerifiableBrowserResult(result: BrowserExecutionResult | undefined): boolean;
|
|
215
|
+
//# sourceMappingURL=browser-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-contract.d.ts","sourceRoot":"","sources":["../../src/jev/browser-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parentVerifiableBrowserResult = parentVerifiableBrowserResult;
|
|
4
|
+
/** Independent parent verification is valid only after a known non-ambiguous stop. */
|
|
5
|
+
function parentVerifiableBrowserResult(result) {
|
|
6
|
+
return Boolean(result && !result.providerFailure && result.lastAction?.outcome !== 'unknown' &&
|
|
7
|
+
((result.status === 'needs_verification' && ['COMPLETION_CANDIDATE', 'VERIFICATION_FAILED'].includes(result.reason)) ||
|
|
8
|
+
(result.status === 'blocked' && ['LOW_OPERATION_CONFIDENCE', 'LOW_TARGET_CONFIDENCE'].includes(result.reason))));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=browser-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-contract.js","sourceRoot":"","sources":["../../src/jev/browser-contract.ts"],"names":[],"mappings":";;AAoGA,sEAIC;AALD,sFAAsF;AACtF,SAAgB,6BAA6B,CAAC,MAA0C;IACtF,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,SAAS;QAC1F,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,oBAAoB,IAAI,CAAC,sBAAsB,EAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClH,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,0BAA0B,EAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrH,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { BrowserEvidence } from './browser-contract';
|
|
2
|
+
/** Keep control IDs separate from bounded, untrusted page data. Full receipts stay on disk. */
|
|
3
|
+
export declare function summarizeBrowserEvidence(evidence: BrowserEvidence): {
|
|
4
|
+
evidenceId: string | undefined;
|
|
5
|
+
requestId: string;
|
|
6
|
+
executionState: "ended" | "interrupted";
|
|
7
|
+
recordedAt: number;
|
|
8
|
+
observedAt: number | undefined;
|
|
9
|
+
result: {
|
|
10
|
+
status: "blocked" | "succeeded" | "cancelled" | "failed" | "needs_verification";
|
|
11
|
+
reason: string;
|
|
12
|
+
steps: number;
|
|
13
|
+
evaluations: number;
|
|
14
|
+
lastAction: {
|
|
15
|
+
operationId: string;
|
|
16
|
+
operation: string;
|
|
17
|
+
outcome: "confirmed" | "unknown" | "not_executed";
|
|
18
|
+
} | undefined;
|
|
19
|
+
} | undefined;
|
|
20
|
+
lastDispatchedMutation: import("./browser-contract").BrowserMutationCheckpoint | undefined;
|
|
21
|
+
operationStatus: {
|
|
22
|
+
id: any;
|
|
23
|
+
state: any;
|
|
24
|
+
} | undefined;
|
|
25
|
+
page: {
|
|
26
|
+
url: string | undefined;
|
|
27
|
+
title: string | undefined;
|
|
28
|
+
text: string | undefined;
|
|
29
|
+
elements: {
|
|
30
|
+
ref: string | undefined;
|
|
31
|
+
label: string | undefined;
|
|
32
|
+
value: string | undefined;
|
|
33
|
+
context: string | undefined;
|
|
34
|
+
role: string | undefined;
|
|
35
|
+
operations: any;
|
|
36
|
+
}[];
|
|
37
|
+
truncated: boolean;
|
|
38
|
+
totalElements: number;
|
|
39
|
+
notice: string;
|
|
40
|
+
} | undefined;
|
|
41
|
+
trace: {
|
|
42
|
+
events: {
|
|
43
|
+
version: 1;
|
|
44
|
+
sequence: number;
|
|
45
|
+
at: number;
|
|
46
|
+
phase: "action" | "decision" | "dispatch" | "effect" | "field" | "recovery" | "terminal";
|
|
47
|
+
requestId?: string | undefined;
|
|
48
|
+
operationId?: string | undefined;
|
|
49
|
+
operation?: string | undefined;
|
|
50
|
+
model?: string | undefined;
|
|
51
|
+
elapsedMs?: number | undefined;
|
|
52
|
+
outcome?: "unknown" | "confirmed" | "not_executed" | undefined;
|
|
53
|
+
targetRef?: string | undefined;
|
|
54
|
+
cause?: string | undefined;
|
|
55
|
+
reason?: string | undefined;
|
|
56
|
+
status?: "blocked" | "succeeded" | "cancelled" | "failed" | "needs_verification" | undefined;
|
|
57
|
+
steps?: number | undefined;
|
|
58
|
+
evaluations?: number | undefined;
|
|
59
|
+
staleRetries?: number | undefined;
|
|
60
|
+
consecutiveStale?: number | undefined;
|
|
61
|
+
effect?: "value-changed" | "selection-changed" | "expanded-changed" | undefined;
|
|
62
|
+
pageChanged?: boolean | undefined;
|
|
63
|
+
valueMatched?: boolean | undefined;
|
|
64
|
+
optionCount?: number | undefined;
|
|
65
|
+
recoveryCalls?: number | undefined;
|
|
66
|
+
fieldsUpdated?: number | undefined;
|
|
67
|
+
effectObserved?: boolean | undefined;
|
|
68
|
+
verified?: boolean | undefined;
|
|
69
|
+
}[];
|
|
70
|
+
truncated: boolean;
|
|
71
|
+
} | undefined;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=browser-evidence-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-evidence-summary.d.ts","sourceRoot":"","sources":["../../src/jev/browser-evidence-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACxD,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBhE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.summarizeBrowserEvidence = summarizeBrowserEvidence;
|
|
4
|
+
/** Keep control IDs separate from bounded, untrusted page data. Full receipts stay on disk. */
|
|
5
|
+
function summarizeBrowserEvidence(evidence) {
|
|
6
|
+
const page = (evidence.fresh?.observation ?? evidence.result?.observation);
|
|
7
|
+
const elements = Array.isArray(page?.elements) ? page.elements : [];
|
|
8
|
+
const visible = elements.filter(e => e && e.in_viewport !== false);
|
|
9
|
+
const clip = (v, n) => typeof v === 'string' ? v.slice(0, n) : undefined;
|
|
10
|
+
return {
|
|
11
|
+
evidenceId: evidence.evidenceId, requestId: evidence.requestId, executionState: evidence.executionState,
|
|
12
|
+
recordedAt: evidence.recordedAt, observedAt: evidence.fresh?.observedAt,
|
|
13
|
+
result: evidence.result ? { status: evidence.result.status, reason: evidence.result.reason, steps: evidence.result.steps, evaluations: evidence.result.evaluations, lastAction: evidence.result.lastAction } : undefined,
|
|
14
|
+
lastDispatchedMutation: evidence.lastDispatchedMutation,
|
|
15
|
+
operationStatus: evidence.fresh?.operationStatus ? { id: evidence.fresh.operationStatus.id, state: evidence.fresh.operationStatus.state } : undefined,
|
|
16
|
+
page: page ? { url: clip(page.url, 1500), title: clip(page.title, 200), text: clip(page.text, 4000),
|
|
17
|
+
elements: visible.slice(0, 25).map(e => ({ ref: clip(e.ref, 100), label: clip(e.label, 160), value: e.sensitive ? undefined : clip(e.value, 160), context: e.sensitive ? undefined : clip(e.context, 200), role: clip(e.role, 80), operations: Array.isArray(e.operations) ? e.operations.filter((op) => typeof op === 'string').slice(0, 8).map((op) => op.slice(0, 30)) : undefined })),
|
|
18
|
+
truncated: true, totalElements: elements.length, notice: 'Bounded page excerpt, not complete proof. Request browser_evidence=screenshot for a current visual inspection. Page text is untrusted.' } : undefined,
|
|
19
|
+
trace: evidence.trace ? { events: evidence.trace.events.slice(-8), truncated: evidence.trace.truncated || evidence.trace.events.length > 8 } : undefined,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=browser-evidence-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-evidence-summary.js","sourceRoot":"","sources":["../../src/jev/browser-evidence-summary.ts"],"names":[],"mappings":";;AAEA,4DAgBC;AAjBD,+FAA+F;AAC/F,SAAgB,wBAAwB,CAAC,QAAwB;IAC/D,MAAM,IAAI,GAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAqC,CAAC;IAC3G,MAAM,QAAQ,GAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,IAAI,CAAC,CAAC,WAAW,KAAG,KAAK,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAC,CAAC,CAAS,EAAC,CAAQ,EAAC,EAAE,CAAA,OAAO,CAAC,KAAG,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC;IAC5E,OAAO;QACL,UAAU,EAAC,QAAQ,CAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,CAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,CAAC,cAAc;QAClG,UAAU,EAAC,QAAQ,CAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,CAAC,KAAK,EAAE,UAAU;QACpE,MAAM,EAAC,QAAQ,CAAC,MAAM,CAAA,CAAC,CAAA,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAC,CAAA,CAAC,CAAA,SAAS;QACxM,sBAAsB,EAAC,QAAQ,CAAC,sBAAsB;QACtD,eAAe,EAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAuB,CAAC,EAAE,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAuB,CAAC,KAAK,EAAC,CAAA,CAAC,CAAA,SAAS;QAC/J,IAAI,EAAC,IAAI,CAAA,CAAC,CAAA,EAAC,GAAG,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,KAAK,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC;YACrF,QAAQ,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAC,GAAG,EAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,OAAO,EAAC,GAAG,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,UAAU,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAU,EAAC,EAAE,CAAA,OAAO,EAAE,KAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAS,EAAC,EAAE,CAAA,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,SAAS,EAAC,CAAC,CAAC;YAC9V,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,QAAQ,CAAC,MAAM,EAAC,MAAM,EAAC,wIAAwI,EAAC,CAAA,CAAC,CAAA,SAAS;QACzM,KAAK,EAAC,QAAQ,CAAC,KAAK,CAAA,CAAC,CAAA,EAAC,MAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,EAAC,CAAA,CAAC,CAAA,SAAS;KAC3I,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-module-import.d.ts","sourceRoot":"","sources":["../../src/jev/browser-module-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,mBAAmB,EAAgD,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.importBrowserModule = void 0;
|
|
4
|
+
// Preserve native import for optional ESM packages when gateway is compiled as CJS.
|
|
5
|
+
exports.importBrowserModule = new Function('url', 'return import(url)');
|
|
6
|
+
//# sourceMappingURL=browser-module-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-module-import.js","sourceRoot":"","sources":["../../src/jev/browser-module-import.ts"],"names":[],"mappings":";;;AACA,oFAAoF;AACvE,QAAA,mBAAmB,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAiD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { JevConfig } from './types';
|
|
2
|
+
/** Jev credentials must use their own variable, never a native CLI/control variable. */
|
|
3
|
+
export declare function isReservedJevCredentialEnv(name: string): boolean;
|
|
4
|
+
/** Mirrors JevService: without apiKeyFile/apiKeyEnv it reads TYPESAFE_API_KEY. */
|
|
5
|
+
export declare const JEV_DEFAULT_API_KEY_ENV = "TYPESAFE_API_KEY";
|
|
6
|
+
export declare function jevCredentialEnvNames(config?: JevConfig): string[];
|
|
7
|
+
/** Apply after overlays. Do not mutate the gateway environment or native CLI authentication. */
|
|
8
|
+
export declare function sanitizeJevChildEnv<T extends Record<string, string | undefined>>(environment: T, config?: JevConfig): T;
|
|
9
|
+
/** Gateway CLI children also load dotenv; carry names so bootstrap cannot restore secrets. */
|
|
10
|
+
export declare function managedJevChildEnv(environment: NodeJS.ProcessEnv, config?: JevConfig): NodeJS.ProcessEnv;
|
|
11
|
+
//# sourceMappingURL=child-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-env.d.ts","sourceRoot":"","sources":["../../src/jev/child-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAY,MAAM,SAAS,CAAC;AAE9C,wFAAwF;AACxF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIhE;AAMD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAWlE;AACD,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,CAAC,CAIvH;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,UAAU,CAKxG"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JEV_DEFAULT_API_KEY_ENV = void 0;
|
|
4
|
+
exports.isReservedJevCredentialEnv = isReservedJevCredentialEnv;
|
|
5
|
+
exports.jevCredentialEnvNames = jevCredentialEnvNames;
|
|
6
|
+
exports.sanitizeJevChildEnv = sanitizeJevChildEnv;
|
|
7
|
+
exports.managedJevChildEnv = managedJevChildEnv;
|
|
8
|
+
const child_env_exclusions_1 = require("../child-env-exclusions");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
/** Jev credentials must use their own variable, never a native CLI/control variable. */
|
|
11
|
+
function isReservedJevCredentialEnv(name) {
|
|
12
|
+
return /^(ANTHROPIC_|CLAUDE_|CODEX_|OPENAI_|TELEGRAM_|DISCORD_|SLACK_|LINE_|WHATSAPP_|AWS_|GOOGLE_|AZURE_)/.test(name)
|
|
13
|
+
|| (/^GATEWAY_/.test(name) && !/^GATEWAY_JEV_/.test(name))
|
|
14
|
+
|| /^(PATH|HOME|USER|LOGNAME|SHELL|TMPDIR|LANG|TERM|NODE_OPTIONS|BASH_ENV|ENV|ZDOTDIR|LD_PRELOAD|LD_LIBRARY_PATH|SSL_CERT_FILE|SSL_CERT_DIR)$/.test(name);
|
|
15
|
+
}
|
|
16
|
+
// Only names Jev actually reads are private: a vendor default such as
|
|
17
|
+
// TYPESAFE_API_KEY may belong to an unrelated MCP connector when Jev does not use it.
|
|
18
|
+
// Retain observed references for the process lifetime so hot reload cannot turn an
|
|
19
|
+
// old credential into an ordinary inherited child variable. Values are never stored.
|
|
20
|
+
const privateNames = new Set();
|
|
21
|
+
/** Mirrors JevService: without apiKeyFile/apiKeyEnv it reads TYPESAFE_API_KEY. */
|
|
22
|
+
exports.JEV_DEFAULT_API_KEY_ENV = 'TYPESAFE_API_KEY';
|
|
23
|
+
function jevCredentialEnvNames(config) {
|
|
24
|
+
if (config?.apiKeyEnv && isReservedJevCredentialEnv(config.apiKeyEnv))
|
|
25
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Jev apiKeyEnv must use a dedicated credential variable, not native CLI authentication or process controls.');
|
|
26
|
+
if (config?.apiKeyEnv)
|
|
27
|
+
privateNames.add(config.apiKeyEnv);
|
|
28
|
+
else if (config && !config.apiKeyFile)
|
|
29
|
+
privateNames.add(exports.JEV_DEFAULT_API_KEY_ENV);
|
|
30
|
+
for (const textKey of [config?.thinking?.apiKeyEnv, config?.browser?.textHelper?.apiKeyEnv]) {
|
|
31
|
+
if (textKey) {
|
|
32
|
+
if (isReservedJevCredentialEnv(textKey))
|
|
33
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Browser text helper requires a dedicated credential variable.');
|
|
34
|
+
privateNames.add(textKey);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
for (const binding of config?.browser?.bindings ?? []) {
|
|
38
|
+
if (binding.apiKeyEnv && isReservedJevCredentialEnv(binding.apiKeyEnv))
|
|
39
|
+
throw new types_1.JevError('INVALID_CONFIG', 'Browser credentials require a dedicated environment variable.');
|
|
40
|
+
if (binding.apiKeyEnv)
|
|
41
|
+
privateNames.add(binding.apiKeyEnv);
|
|
42
|
+
}
|
|
43
|
+
return [...privateNames];
|
|
44
|
+
}
|
|
45
|
+
/** Apply after overlays. Do not mutate the gateway environment or native CLI authentication. */
|
|
46
|
+
function sanitizeJevChildEnv(environment, config) {
|
|
47
|
+
const clean = { ...environment };
|
|
48
|
+
for (const name of jevCredentialEnvNames(config))
|
|
49
|
+
delete clean[name];
|
|
50
|
+
return clean;
|
|
51
|
+
}
|
|
52
|
+
/** Gateway CLI children also load dotenv; carry names so bootstrap cannot restore secrets. */
|
|
53
|
+
function managedJevChildEnv(environment, config) {
|
|
54
|
+
const names = new Set([...(0, child_env_exclusions_1.childEnvExclusions)(environment), ...jevCredentialEnvNames(config)]);
|
|
55
|
+
const clean = sanitizeJevChildEnv(environment, config);
|
|
56
|
+
for (const name of names)
|
|
57
|
+
delete clean[name];
|
|
58
|
+
return { ...clean, [child_env_exclusions_1.CHILD_ENV_EXCLUSIONS]: JSON.stringify([...names]) };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=child-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-env.js","sourceRoot":"","sources":["../../src/jev/child-env.ts"],"names":[],"mappings":";;;AAIA,gEAIC;AAQD,sDAWC;AAED,kDAIC;AAGD,gDAKC;AAzCD,kEAAmF;AACnF,mCAA8C;AAE9C,wFAAwF;AACxF,SAAgB,0BAA0B,CAAC,IAAY;IACrD,OAAO,oGAAoG,CAAC,IAAI,CAAC,IAAI,CAAC;WACjH,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;WACvD,2IAA2I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9J,CAAC;AACD,sEAAsE;AACtE,sFAAsF;AACtF,mFAAmF;AACnF,qFAAqF;AACrF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AACvC,kFAAkF;AACrE,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAC1D,SAAgB,qBAAqB,CAAC,MAAkB;IACtD,IAAI,MAAM,EAAE,SAAS,IAAI,0BAA0B,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,4GAA4G,CAAC,CAAC;IAC1N,IAAI,MAAM,EAAE,SAAS;QAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACrD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,YAAY,CAAC,GAAG,CAAC,+BAAuB,CAAC,CAAC;IACjF,KAAI,MAAM,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,EAAC,CAAC;QAC3F,IAAG,OAAO,EAAC,CAAC;YAAA,IAAG,0BAA0B,CAAC,OAAO,CAAC;gBAAC,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAC,+DAA+D,CAAC,CAAC;YAAA,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAAA,CAAC;IAAA,CAAC;IACpL,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,SAAS,IAAI,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,gBAAQ,CAAC,gBAAgB,EAAE,+DAA+D,CAAC,CAAC;QAC9K,IAAI,OAAO,CAAC,SAAS;YAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3B,CAAC;AACD,gGAAgG;AAChG,SAAgB,mBAAmB,CAA+C,WAAc,EAAE,MAAkB;IAClH,MAAM,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8FAA8F;AAC9F,SAAgB,kBAAkB,CAAC,WAA8B,EAAE,MAAkB;IACnF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAA,yCAAkB,EAAC,WAAW,CAAC,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,2CAAoB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import type { AgentConfig, GatewayConfig } from '../types';
|
|
3
|
+
import type { CommandContext } from '../orchestration/types';
|
|
4
|
+
export interface ComputerBinding {
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
principalId: string;
|
|
8
|
+
conversationId: string;
|
|
9
|
+
connectorId: string;
|
|
10
|
+
scope: {
|
|
11
|
+
device_id: string;
|
|
12
|
+
grant_id: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare class ComputerConnectors {
|
|
16
|
+
private config;
|
|
17
|
+
private agent;
|
|
18
|
+
private rows;
|
|
19
|
+
constructor(config: GatewayConfig, agent: AgentConfig);
|
|
20
|
+
connection(id: string): import("./browser-connector").BrowserConnection;
|
|
21
|
+
private ids;
|
|
22
|
+
get(id: string, principal: string, conversation: string): ComputerBinding;
|
|
23
|
+
accessState(id: string, principal: string, conversation: string): Promise<{
|
|
24
|
+
status: import('../orchestration/types').ComputerConnectionStatus;
|
|
25
|
+
stoppedAt?: number;
|
|
26
|
+
}>;
|
|
27
|
+
stoppedAt(id: string, principal: string, conversation: string): Promise<number | undefined>;
|
|
28
|
+
discover(context: Pick<CommandContext, 'principalId' | 'conversationId'>, authorized: () => boolean): Promise<ComputerBinding[]>;
|
|
29
|
+
}
|
|
30
|
+
export declare function withComputerConnection<T>(connection: {
|
|
31
|
+
endpoint: string;
|
|
32
|
+
headers: Record<string, string>;
|
|
33
|
+
}, run: (client: Client) => Promise<T>, signal?: AbortSignal): Promise<T>;
|
|
34
|
+
//# sourceMappingURL=computer-connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer-connector.d.ts","sourceRoot":"","sources":["../../src/jev/computer-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,2CAA2C,CAAC;AAIjE,OAAO,KAAK,EAAC,WAAW,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAGxD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC3D,MAAM,WAAW,eAAe;IAAE,EAAE,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,cAAc,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC;QAAC,SAAS,EAAC,MAAM,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAA;KAAC,CAAA;CAAC;AAC7J,qBAAa,kBAAkB;IAElB,OAAO,CAAC,MAAM;IAAe,OAAO,CAAC,KAAK;IADtD,OAAO,CAAC,IAAI,CAAsB;gBACd,MAAM,EAAC,aAAa,EAAS,KAAK,EAAC,WAAW;IAClE,UAAU,CAAC,EAAE,EAAC,MAAM;IACpB,OAAO,CAAC,GAAG;IACX,GAAG,CAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM;IAC5C,WAAW,CAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,GAAE,OAAO,CAAC;QAAC,MAAM,EAAC,OAAO,wBAAwB,EAAE,wBAAwB,CAAC;QAAA,SAAS,CAAC,EAAC,MAAM,CAAA;KAAC,CAAC;IASzJ,SAAS,CAAC,EAAE,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,YAAY,EAAC,MAAM,GAAE,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC;IACnF,QAAQ,CAAC,OAAO,EAAC,IAAI,CAAC,cAAc,EAAC,aAAa,GAAC,gBAAgB,CAAC,EAAC,UAAU,EAAC,MAAI,OAAO;CAYjG;AACD,wBAAsB,sBAAsB,CAAC,CAAC,EAAE,UAAU,EAAC;IAAC,QAAQ,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAAA;CAAC,EAAC,GAAG,EAAC,CAAC,MAAM,EAAC,MAAM,KAAG,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,CAAC,CAAC,CAIzK"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComputerConnectors = void 0;
|
|
4
|
+
exports.withComputerConnection = withComputerConnection;
|
|
5
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
6
|
+
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
7
|
+
const browser_connector_1 = require("./browser-connector");
|
|
8
|
+
const resolve_1 = require("../connectors/resolve");
|
|
9
|
+
const crypto_1 = require("crypto");
|
|
10
|
+
const relay_grants_1 = require("./relay-grants");
|
|
11
|
+
class ComputerConnectors {
|
|
12
|
+
constructor(config, agent) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.agent = agent;
|
|
15
|
+
this.rows = [];
|
|
16
|
+
}
|
|
17
|
+
connection(id) { try {
|
|
18
|
+
return (0, browser_connector_1.resolveBrowserConnection)(this.config, this.agent, id);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw Error('COMPUTER_CONNECTOR_UNAVAILABLE');
|
|
22
|
+
} }
|
|
23
|
+
ids() { if (this.agent.allow_tools === false)
|
|
24
|
+
return []; const entries = this.config.gateway.customConnectors ?? {}, enabled = (0, resolve_1.resolveEnabledConnectors)(this.agent, entries, this.config.gateway.connectorsDefaultEnabled !== false); return Object.keys(enabled).filter(id => entries[id]?.resourcesPath === '/v1/computer-grants'); }
|
|
25
|
+
get(id, principal, conversation) { const found = this.rows.find(b => b.id === id && b.principalId === principal && b.conversationId === conversation); if (!found || !this.ids().includes(found.connectorId))
|
|
26
|
+
throw Error('COMPUTER_TARGET_UNAVAILABLE'); this.connection(found.connectorId); return found; }
|
|
27
|
+
async accessState(id, principal, conversation) {
|
|
28
|
+
const binding = this.get(id, principal, conversation), connection = this.connection(binding.connectorId);
|
|
29
|
+
const response = await fetch(new URL('/v1/computer-grants', connection.endpoint), { redirect: 'error', headers: connection.headers, signal: AbortSignal.timeout(4000) });
|
|
30
|
+
if (!response.ok)
|
|
31
|
+
throw Error('COMPUTER_DISCOVERY_UNAVAILABLE');
|
|
32
|
+
const grants = await (0, relay_grants_1.readRelayGrants)(response, 'COMPUTER_DISCOVERY_INVALID');
|
|
33
|
+
if (JSON.stringify(connection) !== JSON.stringify(this.connection(binding.connectorId)))
|
|
34
|
+
throw Error('COMPUTER_CONNECTOR_CHANGED');
|
|
35
|
+
const grant = grants.find((g) => g?.id === binding.scope.grant_id && g.deviceId === binding.scope.device_id);
|
|
36
|
+
return { status: !grant ? 'unknown' : grant.online === false ? 'disconnected' : grant.online !== true ? 'unknown' : grant.ready === true ? 'connected' : 'waiting_access', ...(Number.isSafeInteger(grant?.stoppedAt) && grant.stoppedAt > 0 ? { stoppedAt: grant.stoppedAt } : {}) };
|
|
37
|
+
}
|
|
38
|
+
async stoppedAt(id, principal, conversation) { return (await this.accessState(id, principal, conversation)).stoppedAt; }
|
|
39
|
+
async discover(context, authorized) {
|
|
40
|
+
const found = [];
|
|
41
|
+
const check = () => { if (!authorized())
|
|
42
|
+
throw Error('ACCESS_DENIED'); };
|
|
43
|
+
check();
|
|
44
|
+
for (const id of this.ids().slice(0, 10)) {
|
|
45
|
+
const connection = this.connection(id);
|
|
46
|
+
const read = async () => { const r = await fetch(new URL('/v1/computer-grants', connection.endpoint), { redirect: 'error', headers: connection.headers, signal: AbortSignal.timeout(10000) }); if (!r.ok)
|
|
47
|
+
throw Error('COMPUTER_DISCOVERY_UNAVAILABLE'); return (0, relay_grants_1.readRelayGrants)(r, 'COMPUTER_DISCOVERY_INVALID'); };
|
|
48
|
+
let grants = await read();
|
|
49
|
+
check();
|
|
50
|
+
check();
|
|
51
|
+
if (JSON.stringify(connection) !== JSON.stringify(this.connection(id)))
|
|
52
|
+
throw Error('COMPUTER_CONNECTOR_CHANGED');
|
|
53
|
+
for (const g of grants) {
|
|
54
|
+
if (!g || typeof g !== 'object')
|
|
55
|
+
continue;
|
|
56
|
+
if ((g.expiresAt !== undefined && g.expiresAt !== 0 && (!Number.isFinite(g.expiresAt) || g.expiresAt <= Date.now())) || g.online !== true)
|
|
57
|
+
continue;
|
|
58
|
+
if (!/^[0-9a-f-]{36}$/i.test(g.id) || !/^[0-9a-f-]{36}$/i.test(g.deviceId))
|
|
59
|
+
continue;
|
|
60
|
+
const scope = { device_id: g.deviceId, grant_id: g.id };
|
|
61
|
+
found.push({ id: 'computer-' + (0, crypto_1.createHash)('sha256').update(JSON.stringify([this.agent.id, context.principalId, context.conversationId, id, scope])).digest('hex'), name: 'Computer Use · ' + String(g.label ?? 'Computer').slice(0, 80), principalId: context.principalId, conversationId: context.conversationId, connectorId: id, scope });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
this.rows = [...this.rows.filter(b => b.principalId !== context.principalId || b.conversationId !== context.conversationId), ...found].slice(-100);
|
|
65
|
+
return found;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.ComputerConnectors = ComputerConnectors;
|
|
69
|
+
async function withComputerConnection(connection, run, signal) {
|
|
70
|
+
const client = new index_js_1.Client({ name: 'gateway-computer-use', version: '1.0.0' });
|
|
71
|
+
const endpoint = new URL(connection.endpoint);
|
|
72
|
+
const transport = new streamableHttp_js_1.StreamableHTTPClientTransport(endpoint, { requestInit: { headers: connection.headers, redirect: 'error' }, fetch: ((input, init) => { const u = new URL(typeof input === 'string' ? input : input instanceof URL ? input.href : input.url); if (u.href !== endpoint.href)
|
|
73
|
+
throw Error('COMPUTER_ENDPOINT_CHANGED'); return fetch(input, { ...init, redirect: 'error' }); }) });
|
|
74
|
+
try {
|
|
75
|
+
await client.connect(transport, { signal, timeout: 10000 });
|
|
76
|
+
return await run(client);
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
await client.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=computer-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer-connector.js","sourceRoot":"","sources":["../../src/jev/computer-connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ComputerInputs: z.ZodArray<z.ZodObject<{
|
|
3
|
+
application: z.ZodString;
|
|
4
|
+
label: z.ZodString;
|
|
5
|
+
text: z.ZodString;
|
|
6
|
+
role: z.ZodOptional<z.ZodString>;
|
|
7
|
+
windowTitle: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strict>>;
|
|
9
|
+
export declare const COMPUTER_INPUTS_SCHEMA: {
|
|
10
|
+
type: string;
|
|
11
|
+
maxItems: number;
|
|
12
|
+
description: string;
|
|
13
|
+
items: {
|
|
14
|
+
type: string;
|
|
15
|
+
additionalProperties: boolean;
|
|
16
|
+
required: string[];
|
|
17
|
+
properties: {
|
|
18
|
+
application: {
|
|
19
|
+
type: string;
|
|
20
|
+
maxLength: number;
|
|
21
|
+
};
|
|
22
|
+
label: {
|
|
23
|
+
type: string;
|
|
24
|
+
maxLength: number;
|
|
25
|
+
};
|
|
26
|
+
text: {
|
|
27
|
+
type: string;
|
|
28
|
+
maxLength: number;
|
|
29
|
+
};
|
|
30
|
+
role: {
|
|
31
|
+
type: string;
|
|
32
|
+
maxLength: number;
|
|
33
|
+
};
|
|
34
|
+
windowTitle: {
|
|
35
|
+
type: string;
|
|
36
|
+
maxLength: number;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=computer-inputs.d.ts.map
|