visionclaw 0.1.208-beta.9 → 0.1.208
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/CHANGELOG.md +16 -0
- package/dist/agent/applied-credential-signature.d.ts +53 -0
- package/dist/agent/applied-credential-signature.d.ts.map +1 -0
- package/dist/agent/applied-credential-signature.js +137 -0
- package/dist/agent/applied-credential-signature.js.map +1 -0
- package/dist/agent/engine-switch-handler.d.ts +3 -2
- package/dist/agent/engine-switch-handler.d.ts.map +1 -1
- package/dist/agent/engine-switch-handler.js +10 -10
- package/dist/agent/engine-switch-handler.js.map +1 -1
- package/dist/agent/engine-switch-target.d.ts +11 -23
- package/dist/agent/engine-switch-target.d.ts.map +1 -1
- package/dist/agent/engine-switch-target.js +36 -40
- package/dist/agent/engine-switch-target.js.map +1 -1
- package/dist/agent/engines/claude/session-browser-policy.d.ts +9 -10
- package/dist/agent/engines/claude/session-browser-policy.d.ts.map +1 -1
- package/dist/agent/engines/claude/session-browser-policy.js +95 -17
- package/dist/agent/engines/claude/session-browser-policy.js.map +1 -1
- package/dist/agent/engines/client-factory.d.ts +63 -0
- package/dist/agent/engines/client-factory.d.ts.map +1 -0
- package/dist/agent/engines/client-factory.js +382 -0
- package/dist/agent/engines/client-factory.js.map +1 -0
- package/dist/agent/engines/engine-factory.d.ts +1 -3
- package/dist/agent/engines/engine-factory.d.ts.map +1 -1
- package/dist/agent/engines/engine-factory.js +6 -8
- package/dist/agent/engines/engine-factory.js.map +1 -1
- package/dist/agent/engines/engine.d.ts +8 -0
- package/dist/agent/engines/engine.d.ts.map +1 -0
- package/dist/agent/engines/engine.js +15 -0
- package/dist/agent/engines/engine.js.map +1 -0
- package/dist/agent/engines/openai/file-session.d.ts +19 -0
- package/dist/agent/engines/openai/file-session.d.ts.map +1 -0
- package/dist/agent/engines/openai/file-session.js +78 -0
- package/dist/agent/engines/openai/file-session.js.map +1 -0
- package/dist/agent/engines/openai/file-tools.d.ts +35 -0
- package/dist/agent/engines/openai/file-tools.d.ts.map +1 -0
- package/dist/agent/engines/openai/file-tools.js +194 -0
- package/dist/agent/engines/openai/file-tools.js.map +1 -0
- package/dist/agent/engines/openai/session.d.ts +55 -0
- package/dist/agent/engines/openai/session.d.ts.map +1 -0
- package/dist/agent/engines/openai/session.js +447 -0
- package/dist/agent/engines/openai/session.js.map +1 -0
- package/dist/agent/engines/openai/tools.d.ts +15 -0
- package/dist/agent/engines/openai/tools.d.ts.map +1 -0
- package/dist/agent/engines/openai/tools.js +221 -0
- package/dist/agent/engines/openai/tools.js.map +1 -0
- package/dist/agent/engines/pi/session.d.ts +49 -0
- package/dist/agent/engines/pi/session.d.ts.map +1 -0
- package/dist/agent/engines/pi/session.js +309 -0
- package/dist/agent/engines/pi/session.js.map +1 -0
- package/dist/agent/engines/pi-coding/session.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/session.js +1 -2
- package/dist/agent/engines/pi-coding/session.js.map +1 -1
- package/dist/agent/heartbeat-manager.d.ts +6 -0
- package/dist/agent/heartbeat-manager.d.ts.map +1 -1
- package/dist/agent/heartbeat-manager.js +110 -19
- package/dist/agent/heartbeat-manager.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +31 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-preload.d.ts +55 -0
- package/dist/agent/memory-preload.d.ts.map +1 -0
- package/dist/agent/memory-preload.js +166 -0
- package/dist/agent/memory-preload.js.map +1 -0
- package/dist/agent/model-provider.d.ts +21 -9
- package/dist/agent/model-provider.d.ts.map +1 -1
- package/dist/agent/model-provider.js +167 -70
- package/dist/agent/model-provider.js.map +1 -1
- package/dist/agent/onboarding-gate.d.ts.map +1 -1
- package/dist/agent/onboarding-gate.js +112 -48
- package/dist/agent/onboarding-gate.js.map +1 -1
- package/dist/agent/provider-fallback.js +2 -2
- package/dist/agent/provider-fallback.js.map +1 -1
- package/dist/agent/providers/claude/cli-resolver.d.ts +16 -0
- package/dist/agent/providers/claude/cli-resolver.d.ts.map +1 -0
- package/dist/agent/providers/claude/cli-resolver.js +83 -0
- package/dist/agent/providers/claude/cli-resolver.js.map +1 -0
- package/dist/agent/providers/claude/session-browser-policy.d.ts +9 -0
- package/dist/agent/providers/claude/session-browser-policy.d.ts.map +1 -0
- package/dist/agent/providers/claude/session-browser-policy.js +49 -0
- package/dist/agent/providers/claude/session-browser-policy.js.map +1 -0
- package/dist/agent/providers/claude/session.d.ts +304 -0
- package/dist/agent/providers/claude/session.d.ts.map +1 -0
- package/dist/agent/providers/claude/session.js +1236 -0
- package/dist/agent/providers/claude/session.js.map +1 -0
- package/dist/agent/providers/client-factory.d.ts +60 -0
- package/dist/agent/providers/client-factory.d.ts.map +1 -0
- package/dist/agent/providers/client-factory.js +400 -0
- package/dist/agent/providers/client-factory.js.map +1 -0
- package/dist/agent/providers/openai/file-session.d.ts +19 -0
- package/dist/agent/providers/openai/file-session.d.ts.map +1 -0
- package/dist/agent/providers/openai/file-session.js +78 -0
- package/dist/agent/providers/openai/file-session.js.map +1 -0
- package/dist/agent/providers/openai/session.d.ts +55 -0
- package/dist/agent/providers/openai/session.d.ts.map +1 -0
- package/dist/agent/providers/openai/session.js +447 -0
- package/dist/agent/providers/openai/session.js.map +1 -0
- package/dist/agent/providers/openai/tools.d.ts +15 -0
- package/dist/agent/providers/openai/tools.d.ts.map +1 -0
- package/dist/agent/providers/openai/tools.js +229 -0
- package/dist/agent/providers/openai/tools.js.map +1 -0
- package/dist/agent/providers/session-types.d.ts +153 -0
- package/dist/agent/providers/session-types.d.ts.map +1 -0
- package/dist/agent/providers/session-types.js +2 -0
- package/dist/agent/providers/session-types.js.map +1 -0
- package/dist/agent/providers/system-prompt-log.d.ts +9 -0
- package/dist/agent/providers/system-prompt-log.d.ts.map +1 -0
- package/dist/agent/providers/system-prompt-log.js +46 -0
- package/dist/agent/providers/system-prompt-log.js.map +1 -0
- package/dist/agent/qq-claim-signal.d.ts +9 -0
- package/dist/agent/qq-claim-signal.d.ts.map +1 -0
- package/dist/agent/qq-claim-signal.js +38 -0
- package/dist/agent/qq-claim-signal.js.map +1 -0
- package/dist/agent/runtime-surface.d.ts +2 -2
- package/dist/agent/runtime-surface.d.ts.map +1 -1
- package/dist/agent/runtime-surface.js +7 -8
- package/dist/agent/runtime-surface.js.map +1 -1
- package/dist/agent/status.d.ts +1 -3
- package/dist/agent/status.d.ts.map +1 -1
- package/dist/agent/status.js +2 -4
- package/dist/agent/status.js.map +1 -1
- package/dist/agent/transcript-backfill.d.ts +54 -0
- package/dist/agent/transcript-backfill.d.ts.map +1 -0
- package/dist/agent/transcript-backfill.js +604 -0
- package/dist/agent/transcript-backfill.js.map +1 -0
- package/dist/agent/transcript-indexer.d.ts +200 -0
- package/dist/agent/transcript-indexer.d.ts.map +1 -0
- package/dist/agent/transcript-indexer.js +775 -0
- package/dist/agent/transcript-indexer.js.map +1 -0
- package/dist/agent/transcript-memory-migrations.d.ts +25 -0
- package/dist/agent/transcript-memory-migrations.d.ts.map +1 -0
- package/dist/agent/transcript-memory-migrations.js +87 -0
- package/dist/agent/transcript-memory-migrations.js.map +1 -0
- package/dist/agent/tunnel-credential-handler.d.ts +90 -0
- package/dist/agent/tunnel-credential-handler.d.ts.map +1 -0
- package/dist/agent/tunnel-credential-handler.js +162 -0
- package/dist/agent/tunnel-credential-handler.js.map +1 -0
- package/dist/agent/usage/usage-report-builder.d.ts.map +1 -1
- package/dist/agent/usage/usage-report-builder.js +2 -1
- package/dist/agent/usage/usage-report-builder.js.map +1 -1
- package/dist/agent/usage-backfill-handler.d.ts +18 -0
- package/dist/agent/usage-backfill-handler.d.ts.map +1 -0
- package/dist/agent/usage-backfill-handler.js +69 -0
- package/dist/agent/usage-backfill-handler.js.map +1 -0
- package/dist/agent/usage-gate.d.ts +25 -0
- package/dist/agent/usage-gate.d.ts.map +1 -0
- package/dist/agent/usage-gate.js +83 -0
- package/dist/agent/usage-gate.js.map +1 -0
- package/dist/agent/usage-handler.d.ts +7 -0
- package/dist/agent/usage-handler.d.ts.map +1 -0
- package/dist/agent/usage-handler.js +28 -0
- package/dist/agent/usage-handler.js.map +1 -0
- package/dist/agent/usage-report-builder.d.ts +26 -0
- package/dist/agent/usage-report-builder.d.ts.map +1 -0
- package/dist/agent/usage-report-builder.js +80 -0
- package/dist/agent/usage-report-builder.js.map +1 -0
- package/dist/agent/usage-report-queue.d.ts +26 -0
- package/dist/agent/usage-report-queue.d.ts.map +1 -0
- package/dist/agent/usage-report-queue.js +199 -0
- package/dist/agent/usage-report-queue.js.map +1 -0
- package/dist/agent/usage-report-types.d.ts +41 -0
- package/dist/agent/usage-report-types.d.ts.map +1 -0
- package/dist/agent/usage-report-types.js +2 -0
- package/dist/agent/usage-report-types.js.map +1 -0
- package/dist/agent/usage-reporter.d.ts +31 -0
- package/dist/agent/usage-reporter.d.ts.map +1 -0
- package/dist/agent/usage-reporter.js +102 -0
- package/dist/agent/usage-reporter.js.map +1 -0
- package/dist/agent/wake-cycle-runner.d.ts.map +1 -1
- package/dist/agent/wake-cycle-runner.js +69 -3
- package/dist/agent/wake-cycle-runner.js.map +1 -1
- package/dist/agent/wake-cycle-tool-tracker.d.ts +39 -0
- package/dist/agent/wake-cycle-tool-tracker.d.ts.map +1 -0
- package/dist/agent/wake-cycle-tool-tracker.js +72 -0
- package/dist/agent/wake-cycle-tool-tracker.js.map +1 -0
- package/dist/anthropic-credentials.d.ts +24 -0
- package/dist/anthropic-credentials.d.ts.map +1 -0
- package/dist/anthropic-credentials.js +37 -0
- package/dist/anthropic-credentials.js.map +1 -0
- package/dist/billing/payg-handler.d.ts +29 -0
- package/dist/billing/payg-handler.d.ts.map +1 -0
- package/dist/billing/payg-handler.js +92 -0
- package/dist/billing/payg-handler.js.map +1 -0
- package/dist/billing/payment-handler.d.ts +24 -0
- package/dist/billing/payment-handler.d.ts.map +1 -0
- package/dist/billing/payment-handler.js +101 -0
- package/dist/billing/payment-handler.js.map +1 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +412 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +132 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +166 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +87 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +174 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +274 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +111 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +87 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +176 -0
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +67 -0
- package/dist/builtin-skills/transcribe-audio/SKILL.md +122 -0
- package/dist/calendar/google-calendar.d.ts +54 -0
- package/dist/calendar/google-calendar.d.ts.map +1 -0
- package/dist/calendar/google-calendar.js +156 -0
- package/dist/calendar/google-calendar.js.map +1 -0
- package/dist/channels/queue.d.ts +11 -0
- package/dist/channels/queue.d.ts.map +1 -1
- package/dist/channels/queue.js +15 -0
- package/dist/channels/queue.js.map +1 -1
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +6 -4
- package/dist/channels/telegram.js.map +1 -1
- package/dist/channels/web.d.ts +40 -0
- package/dist/channels/web.d.ts.map +1 -0
- package/dist/channels/web.js +137 -0
- package/dist/channels/web.js.map +1 -0
- package/dist/channels/zoho-mail.d.ts +1 -0
- package/dist/channels/zoho-mail.d.ts.map +1 -1
- package/dist/channels/zoho-mail.js +35 -17
- package/dist/channels/zoho-mail.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -18
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +15 -21
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +29 -35
- package/dist/config/types.js.map +1 -1
- package/dist/data-processing/convert-demo-cli.d.ts +7 -0
- package/dist/data-processing/convert-demo-cli.d.ts.map +1 -0
- package/dist/data-processing/convert-demo-cli.js +30 -0
- package/dist/data-processing/convert-demo-cli.js.map +1 -0
- package/dist/data-processing/convert-demo.d.ts +26 -0
- package/dist/data-processing/convert-demo.d.ts.map +1 -0
- package/dist/data-processing/convert-demo.js +233 -0
- package/dist/data-processing/convert-demo.js.map +1 -0
- package/dist/drive/google-drive.d.ts +83 -0
- package/dist/drive/google-drive.d.ts.map +1 -0
- package/dist/drive/google-drive.js +219 -0
- package/dist/drive/google-drive.js.map +1 -0
- package/dist/email/gmail-email.d.ts +64 -0
- package/dist/email/gmail-email.d.ts.map +1 -0
- package/dist/email/gmail-email.js +167 -0
- package/dist/email/gmail-email.js.map +1 -0
- package/dist/entry/playwriter-relay.js +11 -5
- package/dist/entry/playwriter-relay.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/obs/auth.d.ts +45 -0
- package/dist/obs/auth.d.ts.map +1 -0
- package/dist/obs/auth.js +181 -0
- package/dist/obs/auth.js.map +1 -0
- package/dist/obs/mini-app/tasks.d.ts +2 -0
- package/dist/obs/mini-app/tasks.d.ts.map +1 -0
- package/dist/obs/mini-app/tasks.js +506 -0
- package/dist/obs/mini-app/tasks.js.map +1 -0
- package/dist/obs/rdp/icons/icons/app_windows.svg +4 -0
- package/dist/obs/rdp/icons/icons/clip_get.svg +4 -0
- package/dist/obs/rdp/icons/icons/clip_send.svg +4 -0
- package/dist/obs/rdp/icons/icons/clip_shared.svg +4 -0
- package/dist/obs/rdp/icons/icons/clipboard.svg +4 -0
- package/dist/obs/rdp/icons/icons/clipboard_shared.svg +4 -0
- package/dist/obs/rdp/icons/icons/control.svg +4 -0
- package/dist/obs/rdp/icons/icons/desktop.svg +4 -0
- package/dist/obs/rdp/icons/icons/display.svg +4 -0
- package/dist/obs/rdp/icons/icons/launchpad.svg +4 -0
- package/dist/obs/rdp/icons/icons/mission_control.svg +4 -0
- package/dist/obs/rdp/icons/icons/screenshot.svg +4 -0
- package/dist/obs/rdp/icons/icons/zoom_actual.svg +4 -0
- package/dist/obs/rdp/icons/icons/zoom_fit.svg +4 -0
- package/dist/obs/rdp/icons/icons/zoom_in.svg +4 -0
- package/dist/obs/rdp/icons/icons/zoom_out.svg +4 -0
- package/dist/obs/server.d.ts.map +1 -1
- package/dist/obs/server.js +5 -8
- package/dist/obs/server.js.map +1 -1
- package/dist/obs/tunnel-telemetry.d.ts +46 -0
- package/dist/obs/tunnel-telemetry.d.ts.map +1 -0
- package/dist/obs/tunnel-telemetry.js +70 -0
- package/dist/obs/tunnel-telemetry.js.map +1 -0
- package/dist/onboarding/bootstrap-client.d.ts +35 -0
- package/dist/onboarding/bootstrap-client.d.ts.map +1 -0
- package/dist/onboarding/bootstrap-client.js +59 -0
- package/dist/onboarding/bootstrap-client.js.map +1 -0
- package/dist/onboarding/cloudflared-cert.d.ts +15 -0
- package/dist/onboarding/cloudflared-cert.d.ts.map +1 -0
- package/dist/onboarding/cloudflared-cert.js +57 -0
- package/dist/onboarding/cloudflared-cert.js.map +1 -0
- package/dist/onboarding/finalize-channel-binding.d.ts +102 -0
- package/dist/onboarding/finalize-channel-binding.d.ts.map +1 -0
- package/dist/onboarding/finalize-channel-binding.js +131 -0
- package/dist/onboarding/finalize-channel-binding.js.map +1 -0
- package/dist/onboarding/gh-auth-browser.d.ts +10 -0
- package/dist/onboarding/gh-auth-browser.d.ts.map +1 -0
- package/dist/onboarding/gh-auth-browser.js +70 -0
- package/dist/onboarding/gh-auth-browser.js.map +1 -0
- package/dist/onboarding/onboarding-service-client.d.ts +25 -21
- package/dist/onboarding/onboarding-service-client.d.ts.map +1 -1
- package/dist/onboarding/onboarding-service-client.js.map +1 -1
- package/dist/onboarding/playwriter-extension.d.ts +17 -6
- package/dist/onboarding/playwriter-extension.d.ts.map +1 -1
- package/dist/onboarding/playwriter-extension.js +61 -8
- package/dist/onboarding/playwriter-extension.js.map +1 -1
- package/dist/onboarding/pre-owner-bind-redeemer.d.ts +73 -0
- package/dist/onboarding/pre-owner-bind-redeemer.d.ts.map +1 -0
- package/dist/onboarding/pre-owner-bind-redeemer.js +48 -0
- package/dist/onboarding/pre-owner-bind-redeemer.js.map +1 -0
- package/dist/onboarding/provision-eth-wallet.d.ts +7 -0
- package/dist/onboarding/provision-eth-wallet.d.ts.map +1 -0
- package/dist/onboarding/provision-eth-wallet.js +14 -0
- package/dist/onboarding/provision-eth-wallet.js.map +1 -0
- package/dist/onboarding/provision-workspace-account.d.ts +14 -0
- package/dist/onboarding/provision-workspace-account.d.ts.map +1 -0
- package/dist/onboarding/provision-workspace-account.js +165 -0
- package/dist/onboarding/provision-workspace-account.js.map +1 -0
- package/dist/onboarding/remote-set-owner.d.ts.map +1 -1
- package/dist/onboarding/remote-set-owner.js +1 -0
- package/dist/onboarding/remote-set-owner.js.map +1 -1
- package/dist/onboarding/resume-channel-binding.d.ts +67 -0
- package/dist/onboarding/resume-channel-binding.d.ts.map +1 -0
- package/dist/onboarding/resume-channel-binding.js +82 -0
- package/dist/onboarding/resume-channel-binding.js.map +1 -0
- package/dist/onboarding/send-identity-credentials.d.ts +11 -0
- package/dist/onboarding/send-identity-credentials.d.ts.map +1 -0
- package/dist/onboarding/send-identity-credentials.js +110 -0
- package/dist/onboarding/send-identity-credentials.js.map +1 -0
- package/dist/onboarding/set-owner.d.ts.map +1 -1
- package/dist/onboarding/set-owner.js +1 -0
- package/dist/onboarding/set-owner.js.map +1 -1
- package/dist/onboarding/setup-shared.d.ts +1 -3
- package/dist/onboarding/setup-shared.d.ts.map +1 -1
- package/dist/onboarding/setup-shared.js +1 -2
- package/dist/onboarding/setup-shared.js.map +1 -1
- package/dist/onboarding/setup-steps.d.ts.map +1 -1
- package/dist/onboarding/setup-steps.js +0 -5
- package/dist/onboarding/setup-steps.js.map +1 -1
- package/dist/openai-credentials.d.ts +30 -0
- package/dist/openai-credentials.d.ts.map +1 -0
- package/dist/openai-credentials.js +37 -0
- package/dist/openai-credentials.js.map +1 -0
- package/dist/phonecall-credentials.d.ts +21 -0
- package/dist/phonecall-credentials.d.ts.map +1 -0
- package/dist/phonecall-credentials.js +34 -0
- package/dist/phonecall-credentials.js.map +1 -0
- package/dist/realtime/agent-bridge.d.ts +7 -0
- package/dist/realtime/agent-bridge.d.ts.map +1 -0
- package/dist/realtime/agent-bridge.js +31 -0
- package/dist/realtime/agent-bridge.js.map +1 -0
- package/dist/realtime/assets/index.html +1058 -0
- package/dist/realtime/assets/samples/alloy.mp3 +0 -0
- package/dist/realtime/assets/samples/ash.mp3 +0 -0
- package/dist/realtime/assets/samples/ballad.mp3 +0 -0
- package/dist/realtime/assets/samples/cedar.mp3 +0 -0
- package/dist/realtime/assets/samples/coral.mp3 +0 -0
- package/dist/realtime/assets/samples/echo.mp3 +0 -0
- package/dist/realtime/assets/samples/marin.mp3 +0 -0
- package/dist/realtime/assets/samples/sage.mp3 +0 -0
- package/dist/realtime/assets/samples/shimmer.mp3 +0 -0
- package/dist/realtime/assets/samples/verse.mp3 +0 -0
- package/dist/realtime/context.d.ts +14 -0
- package/dist/realtime/context.d.ts.map +1 -0
- package/dist/realtime/context.js +153 -0
- package/dist/realtime/context.js.map +1 -0
- package/dist/realtime/http-helpers.d.ts +5 -0
- package/dist/realtime/http-helpers.d.ts.map +1 -0
- package/dist/realtime/http-helpers.js +29 -0
- package/dist/realtime/http-helpers.js.map +1 -0
- package/dist/realtime/index.d.ts +62 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +94 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/server.d.ts +6 -0
- package/dist/realtime/server.d.ts.map +1 -0
- package/dist/realtime/server.js +479 -0
- package/dist/realtime/server.js.map +1 -0
- package/dist/realtime/telegram-auth.d.ts +2 -0
- package/dist/realtime/telegram-auth.d.ts.map +1 -0
- package/dist/realtime/telegram-auth.js +24 -0
- package/dist/realtime/telegram-auth.js.map +1 -0
- package/dist/realtime/tools.d.ts +829 -0
- package/dist/realtime/tools.d.ts.map +1 -0
- package/dist/realtime/tools.js +611 -0
- package/dist/realtime/tools.js.map +1 -0
- package/dist/realtime/types.d.ts +62 -0
- package/dist/realtime/types.d.ts.map +1 -0
- package/dist/realtime/types.js +3 -0
- package/dist/realtime/types.js.map +1 -0
- package/dist/realtime/voice-summarizer.d.ts +4 -0
- package/dist/realtime/voice-summarizer.d.ts.map +1 -0
- package/dist/realtime/voice-summarizer.js +123 -0
- package/dist/realtime/voice-summarizer.js.map +1 -0
- package/dist/realtime/websocket.d.ts +7 -0
- package/dist/realtime/websocket.d.ts.map +1 -0
- package/dist/realtime/websocket.js +65 -0
- package/dist/realtime/websocket.js.map +1 -0
- package/dist/reconfigure.d.ts.map +1 -1
- package/dist/reconfigure.js +19 -38
- package/dist/reconfigure.js.map +1 -1
- package/dist/service/gbox-tun.d.ts +14 -0
- package/dist/service/gbox-tun.d.ts.map +1 -0
- package/dist/service/gbox-tun.js +315 -0
- package/dist/service/gbox-tun.js.map +1 -0
- package/dist/skills/installed.d.ts +11 -0
- package/dist/skills/installed.d.ts.map +1 -0
- package/dist/skills/installed.js +35 -0
- package/dist/skills/installed.js.map +1 -0
- package/dist/threads/supervisor.d.ts +2 -3
- package/dist/threads/supervisor.d.ts.map +1 -1
- package/dist/threads/supervisor.js +5 -12
- package/dist/threads/supervisor.js.map +1 -1
- package/dist/threads/thread-meta.d.ts +11 -8
- package/dist/threads/thread-meta.d.ts.map +1 -1
- package/dist/threads/thread-meta.js +10 -11
- package/dist/threads/thread-meta.js.map +1 -1
- package/dist/threads/worker-entry.d.ts.map +1 -1
- package/dist/threads/worker-entry.js +5 -24
- package/dist/threads/worker-entry.js.map +1 -1
- package/dist/tools/card.d.ts +11 -0
- package/dist/tools/card.d.ts.map +1 -0
- package/dist/tools/card.js +87 -0
- package/dist/tools/card.js.map +1 -0
- package/dist/tools/coordinate-resolver.d.ts +30 -0
- package/dist/tools/coordinate-resolver.d.ts.map +1 -0
- package/dist/tools/coordinate-resolver.js +104 -0
- package/dist/tools/coordinate-resolver.js.map +1 -0
- package/dist/tools/sms.d.ts +16 -0
- package/dist/tools/sms.d.ts.map +1 -0
- package/dist/tools/sms.js +78 -0
- package/dist/tools/sms.js.map +1 -0
- package/dist/tools/stock-data.d.ts +70 -0
- package/dist/tools/stock-data.d.ts.map +1 -0
- package/dist/tools/stock-data.js +596 -0
- package/dist/tools/stock-data.js.map +1 -0
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +26 -13
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/webapp.d.ts +30 -0
- package/dist/tools/webapp.d.ts.map +1 -0
- package/dist/tools/webapp.js +114 -0
- package/dist/tools/webapp.js.map +1 -0
- package/dist/utils/playwriter-relay.d.ts.map +1 -1
- package/dist/utils/playwriter-relay.js +3 -4
- package/dist/utils/playwriter-relay.js.map +1 -1
- package/dist/utils/wechat-monitor.d.ts +21 -0
- package/dist/utils/wechat-monitor.d.ts.map +1 -0
- package/dist/utils/wechat-monitor.js +88 -0
- package/dist/utils/wechat-monitor.js.map +1 -0
- package/dist/webapp/index.d.ts +28 -0
- package/dist/webapp/index.d.ts.map +1 -0
- package/dist/webapp/index.js +75 -0
- package/dist/webapp/index.js.map +1 -0
- package/dist/webapp/server.d.ts +32 -0
- package/dist/webapp/server.d.ts.map +1 -0
- package/dist/webapp/server.js +375 -0
- package/dist/webapp/server.js.map +1 -0
- package/dist/webapp/storage.d.ts +64 -0
- package/dist/webapp/storage.d.ts.map +1 -0
- package/dist/webapp/storage.js +103 -0
- package/dist/webapp/storage.js.map +1 -0
- package/dist/webapp/ui.d.ts +2 -0
- package/dist/webapp/ui.d.ts.map +1 -0
- package/dist/webapp/ui.js +319 -0
- package/dist/webapp/ui.js.map +1 -0
- package/dist/workspace/provider-factory.d.ts.map +1 -1
- package/dist/workspace/provider-factory.js +13 -2
- package/dist/workspace/provider-factory.js.map +1 -1
- package/dist/workspace/zoho/zoho-calendar.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-calendar.js +7 -6
- package/dist/workspace/zoho/zoho-calendar.js.map +1 -1
- package/dist/workspace/zoho/zoho-mail.d.ts +10 -0
- package/dist/workspace/zoho/zoho-mail.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-mail.js +64 -14
- package/dist/workspace/zoho/zoho-mail.js.map +1 -1
- package/dist/workspace/zoho/zoho-workdrive.d.ts.map +1 -1
- package/dist/workspace/zoho/zoho-workdrive.js +8 -3
- package/dist/workspace/zoho/zoho-workdrive.js.map +1 -1
- package/dist-agent/assets/index.html +1058 -0
- package/dist-agent/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/assets/samples/ash.mp3 +0 -0
- package/dist-agent/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/assets/samples/coral.mp3 +0 -0
- package/dist-agent/assets/samples/echo.mp3 +0 -0
- package/dist-agent/assets/samples/marin.mp3 +0 -0
- package/dist-agent/assets/samples/sage.mp3 +0 -0
- package/dist-agent/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/assets/samples/verse.mp3 +0 -0
- package/dist-agent/bundle.cjs +2578 -2064
- package/dist-agent/playwriter-relay.cjs +10 -1
- package/dist-agent/realtime/assets/index.html +1058 -0
- package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
- package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## [0.1.208](https://github.com/babelcloud/visionclaw/compare/v0.1.207...v0.1.208) (2026-08-05)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **browser:** bypass Playwriter external approval prompt (#1168) ([1f30324](https://github.com/babelcloud/visionclaw/commit/1f30324dff7fbac459735cf7da532e91151c08c9))
|
|
6
|
+
* **agent:** refresh invalid Pi sessions immediately ([4c22cfe](https://github.com/babelcloud/visionclaw/commit/4c22cfe63a1e6c0c1a28a7924b05168846b63f4e))
|
|
7
|
+
* **calendar:** name actions in the tool description and scope the empty summary (#1112) ([4ced69f](https://github.com/babelcloud/visionclaw/commit/4ced69fc759f642d9efb3efd836652f4649f48ea))
|
|
8
|
+
* **financial-tool:** detect upstream forward-adjusted rescales instead of waiting out the TTL (#1077) ([32e22ec](https://github.com/babelcloud/visionclaw/commit/32e22ecc3f1eac508076f5f816d178cc238542f0))
|
|
9
|
+
* **financial-tool:** add adjusted to cache key + bound settled bars TTL (#1071) ([276d6df](https://github.com/babelcloud/visionclaw/commit/276d6dfbaa9e4f6b35dee50487dfb2ddb66dd1ec))
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **web-fetch:** enhance Jina Reader fetching with cache handling ([f99fbe5](https://github.com/babelcloud/visionclaw/commit/f99fbe59e1d0c9e7ea33183597f3bb08bce3e1a1))
|
|
13
|
+
* **llm:** make server routing authoritative (#1158) ([a548a28](https://github.com/babelcloud/visionclaw/commit/a548a28dc72ba5541a19e85379379947a73e1cfe))
|
|
14
|
+
* **agent:** standardize LLM Gateway and harden context maintenance (#1108) ([27d4841](https://github.com/babelcloud/visionclaw/commit/27d4841180420332d95b45d192f2d723f2015e38))
|
|
15
|
+
* **financial-tool:** resolve non-US instrument reference from market-data (#1097) ([e3ec364](https://github.com/babelcloud/visionclaw/commit/e3ec364b48dc59e586cedf50b48b4a4c5f6916d8))
|
|
16
|
+
|
|
1
17
|
## [0.1.207](https://github.com/babelcloud/visionclaw/compare/v0.1.206...v0.1.207) (2026-08-01)
|
|
2
18
|
|
|
3
19
|
### Bug Fixes
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applied-credential signature manifest.
|
|
3
|
+
*
|
|
4
|
+
* Persisted alongside materialised tunnel credentials at
|
|
5
|
+
* `<profileTunnelDir>/.applied-signature.json`. Records the signature
|
|
6
|
+
* the server handed us with the last bundle we successfully applied.
|
|
7
|
+
*
|
|
8
|
+
* The manifest is the *only* piece of state the agent has to remember
|
|
9
|
+
* across process restarts about credential bundles — everything else
|
|
10
|
+
* (creds JSON, config.yml) is reconstructable from a fresh server
|
|
11
|
+
* delivery. The signature is opaque to us; we just echo it back on the
|
|
12
|
+
* next heartbeat so the server can decide whether to re-ship the body.
|
|
13
|
+
*
|
|
14
|
+
* Self-healing properties (intentional):
|
|
15
|
+
* - Manifest missing on disk → no signature sent → server sends
|
|
16
|
+
* bundle → we re-apply and rewrite the manifest. Recovers any
|
|
17
|
+
* install where the manifest was deleted but credentials weren't,
|
|
18
|
+
* or vice versa.
|
|
19
|
+
* - Manifest present but probe says no live tunnel files → we treat
|
|
20
|
+
* the manifest as unusable (return null from `loadIfValid`), the
|
|
21
|
+
* next heartbeat goes signature-free, the server re-ships the
|
|
22
|
+
* bundle, and we land back in a coherent state.
|
|
23
|
+
* - Process restart with everything intact → manifest signature is
|
|
24
|
+
* sent on the startup heartbeat, server replies with no
|
|
25
|
+
* `credentialBundle`, no disk writes, no tunnel restart.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Read the persisted signature, if any. Returns `null` when the file
|
|
29
|
+
* does not exist, fails to parse, has the wrong shape, or refers to a
|
|
30
|
+
* tunnel state that no longer matches what's on disk.
|
|
31
|
+
*
|
|
32
|
+
* The on-disk-coherence check (`probeLocalTunnelCredential()`) is what
|
|
33
|
+
* gives us self-healing: a stranded manifest from a wiped tunnel dir
|
|
34
|
+
* gets ignored, forcing a fresh bundle on the next heartbeat.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadAppliedSignatureIfValid(): string | null;
|
|
37
|
+
/**
|
|
38
|
+
* Persist the signature for the most recently applied bundle. Best-
|
|
39
|
+
* effort: a write failure is logged but does not throw, since the
|
|
40
|
+
* worst case is just an extra full-bundle delivery on the next
|
|
41
|
+
* heartbeat.
|
|
42
|
+
*
|
|
43
|
+
* The file is written with 0o600 to match the credentials sitting next
|
|
44
|
+
* to it; the directory itself is already 0o700 from
|
|
45
|
+
* `runtime-credentials.ts`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function writeAppliedSignature(signature: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Forget the persisted signature. Used by tests; production code never
|
|
50
|
+
* needs to delete it explicitly because writes overwrite in place.
|
|
51
|
+
*/
|
|
52
|
+
export declare function __clearAppliedSignatureForTests(): void;
|
|
53
|
+
//# sourceMappingURL=applied-credential-signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-credential-signature.d.ts","sourceRoot":"","sources":["../../src/agent/applied-credential-signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAwBH;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CA2C3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAgC7D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAMtD"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applied-credential signature manifest.
|
|
3
|
+
*
|
|
4
|
+
* Persisted alongside materialised tunnel credentials at
|
|
5
|
+
* `<profileTunnelDir>/.applied-signature.json`. Records the signature
|
|
6
|
+
* the server handed us with the last bundle we successfully applied.
|
|
7
|
+
*
|
|
8
|
+
* The manifest is the *only* piece of state the agent has to remember
|
|
9
|
+
* across process restarts about credential bundles — everything else
|
|
10
|
+
* (creds JSON, config.yml) is reconstructable from a fresh server
|
|
11
|
+
* delivery. The signature is opaque to us; we just echo it back on the
|
|
12
|
+
* next heartbeat so the server can decide whether to re-ship the body.
|
|
13
|
+
*
|
|
14
|
+
* Self-healing properties (intentional):
|
|
15
|
+
* - Manifest missing on disk → no signature sent → server sends
|
|
16
|
+
* bundle → we re-apply and rewrite the manifest. Recovers any
|
|
17
|
+
* install where the manifest was deleted but credentials weren't,
|
|
18
|
+
* or vice versa.
|
|
19
|
+
* - Manifest present but probe says no live tunnel files → we treat
|
|
20
|
+
* the manifest as unusable (return null from `loadIfValid`), the
|
|
21
|
+
* next heartbeat goes signature-free, the server re-ships the
|
|
22
|
+
* bundle, and we land back in a coherent state.
|
|
23
|
+
* - Process restart with everything intact → manifest signature is
|
|
24
|
+
* sent on the startup heartbeat, server replies with no
|
|
25
|
+
* `credentialBundle`, no disk writes, no tunnel restart.
|
|
26
|
+
*/
|
|
27
|
+
import fs from "node:fs";
|
|
28
|
+
import path from "node:path";
|
|
29
|
+
import { getProfileTunnelDir } from "../config/index.js";
|
|
30
|
+
import { probeLocalTunnelCredential } from "./runtime-credentials.js";
|
|
31
|
+
import { logger } from "../logger.js";
|
|
32
|
+
const MANIFEST_FILENAME = ".applied-signature.json";
|
|
33
|
+
const MANIFEST_VERSION = 1;
|
|
34
|
+
function getManifestPath() {
|
|
35
|
+
return path.join(getProfileTunnelDir(), MANIFEST_FILENAME);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Read the persisted signature, if any. Returns `null` when the file
|
|
39
|
+
* does not exist, fails to parse, has the wrong shape, or refers to a
|
|
40
|
+
* tunnel state that no longer matches what's on disk.
|
|
41
|
+
*
|
|
42
|
+
* The on-disk-coherence check (`probeLocalTunnelCredential()`) is what
|
|
43
|
+
* gives us self-healing: a stranded manifest from a wiped tunnel dir
|
|
44
|
+
* gets ignored, forcing a fresh bundle on the next heartbeat.
|
|
45
|
+
*/
|
|
46
|
+
export function loadAppliedSignatureIfValid() {
|
|
47
|
+
const manifestPath = getManifestPath();
|
|
48
|
+
if (!fs.existsSync(manifestPath))
|
|
49
|
+
return null;
|
|
50
|
+
let raw;
|
|
51
|
+
try {
|
|
52
|
+
raw = fs.readFileSync(manifestPath, "utf-8");
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
logger.warn(`Applied-signature manifest unreadable: ${err instanceof Error ? err.message : String(err)}`);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
let parsed;
|
|
59
|
+
try {
|
|
60
|
+
parsed = JSON.parse(raw);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
logger.warn(`Applied-signature manifest malformed; ignoring`);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
if (!parsed ||
|
|
67
|
+
typeof parsed !== "object" ||
|
|
68
|
+
!("signature" in parsed) ||
|
|
69
|
+
typeof parsed.signature !== "string" ||
|
|
70
|
+
parsed.signature.trim() === "") {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const signature = parsed.signature.trim();
|
|
74
|
+
// Coherence: a manifest is only meaningful when the credentials it
|
|
75
|
+
// refers to actually still exist on disk. If the tunnel files were
|
|
76
|
+
// wiped (e.g. operator deleted `~/.visionclaw/profiles/default/tunnel`)
|
|
77
|
+
// the stored signature lies about our state, so pretend we have none
|
|
78
|
+
// and let the server reissue the bundle.
|
|
79
|
+
if (probeLocalTunnelCredential() === null) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return signature;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Persist the signature for the most recently applied bundle. Best-
|
|
86
|
+
* effort: a write failure is logged but does not throw, since the
|
|
87
|
+
* worst case is just an extra full-bundle delivery on the next
|
|
88
|
+
* heartbeat.
|
|
89
|
+
*
|
|
90
|
+
* The file is written with 0o600 to match the credentials sitting next
|
|
91
|
+
* to it; the directory itself is already 0o700 from
|
|
92
|
+
* `runtime-credentials.ts`.
|
|
93
|
+
*/
|
|
94
|
+
export function writeAppliedSignature(signature) {
|
|
95
|
+
if (typeof signature !== "string" || signature.trim() === "")
|
|
96
|
+
return;
|
|
97
|
+
const manifestPath = getManifestPath();
|
|
98
|
+
const dir = path.dirname(manifestPath);
|
|
99
|
+
try {
|
|
100
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// best-effort; the credential apply path will have created it
|
|
104
|
+
}
|
|
105
|
+
const payload = {
|
|
106
|
+
version: MANIFEST_VERSION,
|
|
107
|
+
signature: signature.trim(),
|
|
108
|
+
appliedAt: new Date().toISOString(),
|
|
109
|
+
};
|
|
110
|
+
try {
|
|
111
|
+
fs.writeFileSync(manifestPath, JSON.stringify(payload, null, 2), "utf-8");
|
|
112
|
+
if (process.platform !== "win32") {
|
|
113
|
+
try {
|
|
114
|
+
fs.chmodSync(manifestPath, 0o600);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// best-effort; directory perms still protect
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
logger.warn(`Failed to persist applied-signature manifest: ${err instanceof Error ? err.message : String(err)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Forget the persisted signature. Used by tests; production code never
|
|
127
|
+
* needs to delete it explicitly because writes overwrite in place.
|
|
128
|
+
*/
|
|
129
|
+
export function __clearAppliedSignatureForTests() {
|
|
130
|
+
try {
|
|
131
|
+
fs.rmSync(getManifestPath(), { force: true });
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// ignore
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=applied-credential-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-credential-signature.js","sourceRoot":"","sources":["../../src/agent/applied-credential-signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import type { VisionClawConfig } from "../config/types.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates a CommandHandler for the "switch_engine" remote command.
|
|
5
5
|
*
|
|
6
|
-
* Payload `{ engine: "gpt" | "claude" | "<modelId>" }`:
|
|
7
|
-
* -
|
|
6
|
+
* Payload `{ engine: "default" | "gpt" | "claude" | "<modelId>" }`:
|
|
7
|
+
* - default → follow the server default
|
|
8
|
+
* - gpt/claude → persistent local engine override
|
|
8
9
|
* - other → pinned model id (Pi + llm-gateway), validated via `/v1/models`
|
|
9
10
|
*/
|
|
10
11
|
export declare function createEngineSwitchHandler(config: VisionClawConfig): CommandHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch-handler.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine-switch-handler.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAmB3D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CA4ElF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { saveConfig, writePendingRestart } from "../config/index.js";
|
|
3
3
|
import { logger } from "../logger.js";
|
|
4
|
-
import { describeEngineTarget, isAlreadyOnEngineTarget, resolveEngineSwitchTarget, validateEngineSwitchTarget, } from "./engine-switch-target.js";
|
|
4
|
+
import { applyEngineSwitchTarget, describeEngineTarget, isAlreadyOnEngineTarget, resolveEngineSwitchTarget, validateEngineSwitchTarget, } from "./engine-switch-target.js";
|
|
5
5
|
import { LlmGatewayModelsError } from "./llm-gateway-models.js";
|
|
6
6
|
/** Family aliases or a concrete pinned model id (e.g. kimi-k3). */
|
|
7
7
|
const EngineSwitchPayloadSchema = z.object({
|
|
@@ -11,15 +11,16 @@ const RESTART_DELAY = 5_000;
|
|
|
11
11
|
/**
|
|
12
12
|
* Creates a CommandHandler for the "switch_engine" remote command.
|
|
13
13
|
*
|
|
14
|
-
* Payload `{ engine: "gpt" | "claude" | "<modelId>" }`:
|
|
15
|
-
* -
|
|
14
|
+
* Payload `{ engine: "default" | "gpt" | "claude" | "<modelId>" }`:
|
|
15
|
+
* - default → follow the server default
|
|
16
|
+
* - gpt/claude → persistent local engine override
|
|
16
17
|
* - other → pinned model id (Pi + llm-gateway), validated via `/v1/models`
|
|
17
18
|
*/
|
|
18
19
|
export function createEngineSwitchHandler(config) {
|
|
19
20
|
return async (commandId, payload) => {
|
|
20
21
|
const parsed = EngineSwitchPayloadSchema.safeParse(payload);
|
|
21
22
|
if (!parsed.success) {
|
|
22
|
-
const errMsg = `Invalid switch_engine payload: expected { engine: "gpt" | "claude" | "<modelId>" }`;
|
|
23
|
+
const errMsg = `Invalid switch_engine payload: expected { engine: "default" | "gpt" | "claude" | "<modelId>" }`;
|
|
23
24
|
logger.err(`[engine-switch-handler] ${errMsg} (id=${commandId})`);
|
|
24
25
|
return {
|
|
25
26
|
status: "failed",
|
|
@@ -37,10 +38,10 @@ export function createEngineSwitchHandler(config) {
|
|
|
37
38
|
}
|
|
38
39
|
if (isAlreadyOnEngineTarget(config, target)) {
|
|
39
40
|
const label = describeEngineTarget(target);
|
|
40
|
-
logger.system(`[engine-switch-handler] Already on ${label}
|
|
41
|
+
logger.system(`[engine-switch-handler] Already on ${label}; no-op (id=${commandId})`);
|
|
41
42
|
return {
|
|
42
43
|
status: "completed",
|
|
43
|
-
result: JSON.stringify({ message: `Already using ${label}
|
|
44
|
+
result: JSON.stringify({ message: `Already using ${label}` }),
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
try {
|
|
@@ -68,16 +69,15 @@ export function createEngineSwitchHandler(config) {
|
|
|
68
69
|
});
|
|
69
70
|
const { scheduleRestart } = await import("../utils/restart.js");
|
|
70
71
|
const { runGracefulShutdown } = await import("./state.js");
|
|
71
|
-
config
|
|
72
|
-
config.provider = target.provider;
|
|
72
|
+
applyEngineSwitchTarget(config, target);
|
|
73
73
|
saveConfig(config);
|
|
74
74
|
const label = describeEngineTarget(target);
|
|
75
|
-
logger.system(`[engine-switch-handler] Engine switch to ${label}
|
|
75
|
+
logger.system(`[engine-switch-handler] Engine switch to ${label} requested via onboarding server (id=${commandId})`);
|
|
76
76
|
scheduleRestart(RESTART_DELAY, runGracefulShutdown);
|
|
77
77
|
return {
|
|
78
78
|
status: "completed",
|
|
79
79
|
result: JSON.stringify({
|
|
80
|
-
message: `Switching to ${label}
|
|
80
|
+
message: `Switching to ${label}; restarting in ${RESTART_DELAY / 1000}s`,
|
|
81
81
|
}),
|
|
82
82
|
};
|
|
83
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch-handler.js","sourceRoot":"","sources":["../../src/agent/engine-switch-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,mEAAmE;AACnE,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"engine-switch-handler.js","sourceRoot":"","sources":["../../src/agent/engine-switch-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
import { getEngineSwitchKey, isPinnedModel } from "../config/models.js";
|
|
5
|
-
import { type Model, type Provider, type VisionClawConfig } from "../config/types.js";
|
|
1
|
+
/** Shared resolution for `/engine` / `switch_engine` targets. */
|
|
2
|
+
import type { Engine, VisionClawConfig } from "../config/types.js";
|
|
6
3
|
export type EngineSwitchTarget = {
|
|
7
|
-
kind: "
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
kind: "default";
|
|
5
|
+
} | {
|
|
6
|
+
kind: "engine";
|
|
7
|
+
engine: Engine;
|
|
11
8
|
} | {
|
|
12
9
|
kind: "pinned";
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
engine: "gpt";
|
|
11
|
+
model: string;
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
export declare function parseEngineSwitchToken(token: string): {
|
|
18
|
-
family: "claude" | "gpt";
|
|
19
|
-
} | {
|
|
20
|
-
pinnedModelId: string;
|
|
21
|
-
} | null;
|
|
13
|
+
export declare function parseEngineSwitchToken(token: string): EngineSwitchTarget | null;
|
|
22
14
|
export declare function resolveEngineSwitchTarget(token: string): EngineSwitchTarget | null;
|
|
23
|
-
export declare function isAlreadyOnEngineTarget(config: Pick<VisionClawConfig, "
|
|
24
|
-
/**
|
|
25
|
-
* Validate a pinned switch against LLM Gateway `/v1/models`.
|
|
26
|
-
* Family switches are no-ops here.
|
|
27
|
-
*/
|
|
15
|
+
export declare function isAlreadyOnEngineTarget(config: Pick<VisionClawConfig, "engineOverride" | "pinnedModel">, target: EngineSwitchTarget): boolean;
|
|
28
16
|
export declare function validateEngineSwitchTarget(config: VisionClawConfig, target: EngineSwitchTarget, options?: {
|
|
29
17
|
fetchImpl?: typeof fetch;
|
|
30
18
|
}): Promise<void>;
|
|
19
|
+
export declare function applyEngineSwitchTarget(config: VisionClawConfig, target: EngineSwitchTarget): void;
|
|
31
20
|
export declare function describeEngineTarget(target: EngineSwitchTarget): string;
|
|
32
|
-
export { isPinnedModel, getEngineSwitchKey };
|
|
33
21
|
//# sourceMappingURL=engine-switch-target.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch-target.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch-target.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine-switch-target.d.ts","sourceRoot":"","sources":["../../src/agent/engine-switch-target.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAInE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAY/E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAElF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,aAAa,CAAC,EAChE,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAQT;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GACzC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,kBAAkB,GACzB,IAAI,CAQN;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAIvE"}
|
|
@@ -1,68 +1,64 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared resolution for `/engine` / `switch_engine` targets.
|
|
3
|
-
*/
|
|
4
|
-
import { DEFAULT_CLAUDE_MODEL, GPT_HEAVY_MODEL, getEngineSwitchKey, isKnownModel, isPinnedModel, } from "../config/models.js";
|
|
5
|
-
import { getSupportedProvidersForModel, } from "../config/types.js";
|
|
1
|
+
/** Shared resolution for `/engine` / `switch_engine` targets. */
|
|
6
2
|
import { assertLlmGatewaySupportsModel } from "./llm-gateway-models.js";
|
|
7
|
-
|
|
3
|
+
import { getEffectiveRoute } from "./model-provider.js";
|
|
8
4
|
export function parseEngineSwitchToken(token) {
|
|
9
5
|
const trimmed = token.trim();
|
|
10
6
|
if (!trimmed)
|
|
11
7
|
return null;
|
|
12
8
|
const lower = trimmed.toLowerCase();
|
|
9
|
+
if (lower === "default")
|
|
10
|
+
return { kind: "default" };
|
|
13
11
|
if (lower === "claude" || lower === "gpt") {
|
|
14
|
-
return {
|
|
12
|
+
return { kind: "engine", engine: lower };
|
|
15
13
|
}
|
|
16
|
-
// Reject reserved runtime aliases that are not valid pinned gateway model ids.
|
|
17
14
|
if (lower === "pi" || lower === "pi-coding" || lower === "coding") {
|
|
18
15
|
return null;
|
|
19
16
|
}
|
|
20
|
-
|
|
21
|
-
// they are NOT pinned models — isPinnedModel() would be false after the
|
|
22
|
-
// switch, so routing would silently fall back to family behavior. Users
|
|
23
|
-
// should switch families via `/engine claude` / `/engine gpt` instead.
|
|
24
|
-
if (isKnownModel(trimmed)) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return { pinnedModelId: trimmed };
|
|
17
|
+
return { kind: "pinned", engine: "gpt", model: trimmed };
|
|
28
18
|
}
|
|
29
19
|
export function resolveEngineSwitchTarget(token) {
|
|
30
|
-
|
|
31
|
-
if (!parsed)
|
|
32
|
-
return null;
|
|
33
|
-
if ("family" in parsed) {
|
|
34
|
-
const model = parsed.family === "gpt" ? GPT_HEAVY_MODEL : DEFAULT_CLAUDE_MODEL;
|
|
35
|
-
const [provider] = getSupportedProvidersForModel(model);
|
|
36
|
-
return { kind: "family", family: parsed.family, model, provider };
|
|
37
|
-
}
|
|
38
|
-
const model = parsed.pinnedModelId;
|
|
39
|
-
const [provider] = getSupportedProvidersForModel(model);
|
|
40
|
-
return { kind: "pinned", model, provider };
|
|
20
|
+
return parseEngineSwitchToken(token);
|
|
41
21
|
}
|
|
42
22
|
export function isAlreadyOnEngineTarget(config, target) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
23
|
+
if (target.kind === "default") {
|
|
24
|
+
return config.engineOverride === undefined && config.pinnedModel === undefined;
|
|
25
|
+
}
|
|
26
|
+
if (target.kind === "engine") {
|
|
27
|
+
return config.engineOverride === target.engine && config.pinnedModel === undefined;
|
|
46
28
|
}
|
|
47
|
-
return
|
|
29
|
+
return config.engineOverride === "gpt" && config.pinnedModel === target.model;
|
|
48
30
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Validate a pinned switch against LLM Gateway `/v1/models`.
|
|
51
|
-
* Family switches are no-ops here.
|
|
52
|
-
*/
|
|
53
31
|
export async function validateEngineSwitchTarget(config, target, options = {}) {
|
|
54
|
-
if (target.kind
|
|
32
|
+
if (target.kind === "default")
|
|
33
|
+
return;
|
|
34
|
+
const route = getEffectiveRoute({
|
|
35
|
+
provider: config.provider,
|
|
36
|
+
engineOverride: target.engine,
|
|
37
|
+
});
|
|
38
|
+
if (!route) {
|
|
39
|
+
throw new Error(`Engine "${target.engine}" has no enabled LLM route`);
|
|
40
|
+
}
|
|
41
|
+
if (target.kind === "engine")
|
|
55
42
|
return;
|
|
56
43
|
await assertLlmGatewaySupportsModel({
|
|
57
44
|
llmGatewayBaseUrl: config.llmGatewayBaseUrl,
|
|
58
45
|
llmGatewayApiKey: config.llmGatewayApiKey,
|
|
59
46
|
}, target.model, options);
|
|
60
47
|
}
|
|
61
|
-
export function
|
|
62
|
-
if (target.kind === "
|
|
63
|
-
|
|
48
|
+
export function applyEngineSwitchTarget(config, target) {
|
|
49
|
+
if (target.kind === "default") {
|
|
50
|
+
config.engineOverride = undefined;
|
|
51
|
+
config.pinnedModel = undefined;
|
|
52
|
+
return;
|
|
64
53
|
}
|
|
54
|
+
config.engineOverride = target.engine;
|
|
55
|
+
config.pinnedModel = target.kind === "pinned" ? target.model : undefined;
|
|
56
|
+
}
|
|
57
|
+
export function describeEngineTarget(target) {
|
|
58
|
+
if (target.kind === "default")
|
|
59
|
+
return "server default engine";
|
|
60
|
+
if (target.kind === "engine")
|
|
61
|
+
return `${target.engine} engine override`;
|
|
65
62
|
return `pinned model "${target.model}"`;
|
|
66
63
|
}
|
|
67
|
-
export { isPinnedModel, getEngineSwitchKey };
|
|
68
64
|
//# sourceMappingURL=engine-switch-target.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine-switch-target.js","sourceRoot":"","sources":["../../src/agent/engine-switch-target.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"engine-switch-target.js","sourceRoot":"","sources":["../../src/agent/engine-switch-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,20 +11,19 @@ export declare function killPlaywrightProfileCdpChrome(): void;
|
|
|
11
11
|
* {@link killPlaywrightProfileCdpChrome}, which only targets the CDP profile's
|
|
12
12
|
* `--remote-debugging-port=9222` flag.
|
|
13
13
|
*/
|
|
14
|
-
export declare function killPlaywriterChrome(): void
|
|
14
|
+
export declare function killPlaywriterChrome(timeoutMs?: number): Promise<void>;
|
|
15
15
|
/**
|
|
16
16
|
* Launch Chrome with a dedicated user-data-dir for Playwriter.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* Chrome 137+ (and fully on 149), so it silently loads nothing (issue #534).
|
|
18
|
+
* A new macOS External Extensions install is disabled until the user approves
|
|
19
|
+
* it, which leaves the relay with zero sockets and produces the misleading
|
|
20
|
+
* "Multiple extensions" 4003. When the profile has no usable extension (or is
|
|
21
|
+
* in that exact approval state), launch Chrome with a temporary debugging port
|
|
22
|
+
* and install the bundled extension using `Extensions.loadUnpacked`. This CDP
|
|
23
|
+
* command is supported in branded Chrome 137+ even though `--load-extension`
|
|
24
|
+
* is not. The profile-scoped External Extensions JSON remains a fallback.
|
|
26
25
|
*/
|
|
27
|
-
export declare function launchPlaywriterProfileChrome(): void
|
|
26
|
+
export declare function launchPlaywriterProfileChrome(): Promise<void>;
|
|
28
27
|
/**
|
|
29
28
|
* Check whether a Chrome process with the Playwriter data dir is running.
|
|
30
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-browser-policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-browser-policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session-browser-policy.ts"],"names":[],"mappings":"AA+FA;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,SAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CA8CnE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAO1D;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,2BAA2B,EAAE,OAAO,EACpC,IAAI,SAAc,EAClB,IAAI,SAAQ,GACX,OAAO,CAAC,OAAO,CAAC,CA0BlB"}
|