visionclaw 0.1.211-beta.6 → 0.1.211
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 +18 -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/capabilities.d.ts +56 -0
- package/dist/agent/capabilities.d.ts.map +1 -0
- package/dist/agent/capabilities.js +121 -0
- package/dist/agent/capabilities.js.map +1 -0
- 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.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/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/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-telemetry-redaction.d.ts +4 -0
- package/dist/agent/runtime-telemetry-redaction.d.ts.map +1 -0
- package/dist/agent/runtime-telemetry-redaction.js +92 -0
- package/dist/agent/runtime-telemetry-redaction.js.map +1 -0
- 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-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-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/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/config/models.d.ts +32 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +57 -0
- package/dist/config/models.js.map +1 -0
- 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/factcheck/agent.d.ts +50 -0
- package/dist/factcheck/agent.d.ts.map +1 -0
- package/dist/factcheck/agent.js +508 -0
- package/dist/factcheck/agent.js.map +1 -0
- package/dist/factcheck/financial-verifier.d.ts +49 -0
- package/dist/factcheck/financial-verifier.d.ts.map +1 -0
- package/dist/factcheck/financial-verifier.js +109 -0
- package/dist/factcheck/financial-verifier.js.map +1 -0
- package/dist/factcheck/setup.d.ts +32 -0
- package/dist/factcheck/setup.d.ts.map +1 -0
- package/dist/factcheck/setup.js +70 -0
- package/dist/factcheck/setup.js.map +1 -0
- package/dist/factcheck/sidecar.d.ts +131 -0
- package/dist/factcheck/sidecar.d.ts.map +1 -0
- package/dist/factcheck/sidecar.js +348 -0
- package/dist/factcheck/sidecar.js.map +1 -0
- package/dist/factcheck/store.d.ts +111 -0
- package/dist/factcheck/store.d.ts.map +1 -0
- package/dist/factcheck/store.js +246 -0
- package/dist/factcheck/store.js.map +1 -0
- package/dist/factcheck/web-searcher.d.ts +22 -0
- package/dist/factcheck/web-searcher.d.ts.map +1 -0
- package/dist/factcheck/web-searcher.js +90 -0
- package/dist/factcheck/web-searcher.js.map +1 -0
- 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/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/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/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/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/provisioning-spec.d.ts +62 -0
- package/dist/onboarding/provisioning-spec.d.ts.map +1 -0
- package/dist/onboarding/provisioning-spec.js +159 -0
- package/dist/onboarding/provisioning-spec.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/setup-credentials.d.ts +7 -0
- package/dist/onboarding/setup-credentials.d.ts.map +1 -0
- package/dist/onboarding/setup-credentials.js +44 -0
- package/dist/onboarding/setup-credentials.js.map +1 -0
- package/dist/onboarding/telegram-claim.d.ts +42 -0
- package/dist/onboarding/telegram-claim.d.ts.map +1 -0
- package/dist/onboarding/telegram-claim.js +76 -0
- package/dist/onboarding/telegram-claim.js.map +1 -0
- 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/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/worker-desktop-runtime.d.ts +6 -0
- package/dist/threads/worker-desktop-runtime.d.ts.map +1 -0
- package/dist/threads/worker-desktop-runtime.js +26 -0
- package/dist/threads/worker-desktop-runtime.js.map +1 -0
- 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/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/tui/auth.d.ts +6 -0
- package/dist/tui/auth.d.ts.map +1 -0
- package/dist/tui/auth.js +65 -0
- package/dist/tui/auth.js.map +1 -0
- package/dist/tui/run-store.d.ts +47 -0
- package/dist/tui/run-store.d.ts.map +1 -0
- package/dist/tui/run-store.js +166 -0
- package/dist/tui/run-store.js.map +1 -0
- 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-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 +10 -19
- 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 +1 -1
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating the correct Anthropic client (direct API vs Bedrock)
|
|
3
|
+
* and resolving provider-specific model IDs.
|
|
4
|
+
*/
|
|
5
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
6
|
+
import { AnthropicBedrock } from "@anthropic-ai/bedrock-sdk";
|
|
7
|
+
import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
|
|
8
|
+
import OpenAI, { AzureOpenAI } from "openai";
|
|
9
|
+
import { setDefaultOpenAIClient, setOpenAIAPI, setTracingExportApiKey } from "@openai/agents";
|
|
10
|
+
import { assertSupportedModelProvider, } from "../../config/types.js";
|
|
11
|
+
import { startApiProxy } from "../api-proxy.js";
|
|
12
|
+
import { getConfigDir } from "../../config/index.js";
|
|
13
|
+
import path from "node:path";
|
|
14
|
+
import { logger } from "../../logger.js";
|
|
15
|
+
import { resolveAnthropicApiKey } from "../../anthropic-credentials.js";
|
|
16
|
+
import { resolveOpenAIApiKey } from "../../openai-credentials.js";
|
|
17
|
+
/** Detect dev mode: tsx runs .ts entry, production runs compiled .js. */
|
|
18
|
+
const isDevMode = process.argv[1]?.endsWith(".ts") ?? false;
|
|
19
|
+
/** Singleton proxy handle - lazily started on first Anthropic dev-mode query. */
|
|
20
|
+
let proxyHandle = null;
|
|
21
|
+
const ANTHROPIC_SONNET_MODEL = "claude-sonnet-4-6";
|
|
22
|
+
const ANTHROPIC_OPUS_MODEL = "claude-opus-4-6";
|
|
23
|
+
const BEDROCK_SONNET_MODEL = "us.anthropic.claude-sonnet-4-6";
|
|
24
|
+
const BEDROCK_OPUS_MODEL = "us.anthropic.claude-opus-4-6-v1";
|
|
25
|
+
const NINEROUTER_MODEL_PREFIX = "cc";
|
|
26
|
+
const NINEROUTER_SONNET_MODEL = `${NINEROUTER_MODEL_PREFIX}/claude-sonnet-4-6`;
|
|
27
|
+
const NINEROUTER_OPUS_MODEL = `${NINEROUTER_MODEL_PREFIX}/claude-opus-4-6`;
|
|
28
|
+
export const OPENAI_MODEL = "gpt-5.5";
|
|
29
|
+
export const AZURE_OPENAI_API_VERSION = "preview";
|
|
30
|
+
export function isOpenAIProvider(provider) {
|
|
31
|
+
return provider === "openai" || provider === "azure-openai";
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* True for any GPT-family model (e.g. "gpt-5.5", future "gpt-6", "gpt-5.5-mini").
|
|
35
|
+
* Routing to the OpenAI Agents SDK only depends on the family, not the exact
|
|
36
|
+
* version, so we match by prefix instead of pinning to a single literal.
|
|
37
|
+
*/
|
|
38
|
+
export function isGptModel(model) {
|
|
39
|
+
return typeof model === "string" && model.startsWith("gpt-");
|
|
40
|
+
}
|
|
41
|
+
export function getProviderLabel(provider) {
|
|
42
|
+
switch (provider) {
|
|
43
|
+
case "bedrock":
|
|
44
|
+
return "Bedrock";
|
|
45
|
+
case "vertex":
|
|
46
|
+
return "Vertex AI";
|
|
47
|
+
case "9router":
|
|
48
|
+
return "9Router";
|
|
49
|
+
case "openai":
|
|
50
|
+
return "OpenAI";
|
|
51
|
+
case "azure-openai":
|
|
52
|
+
return "Azure OpenAI";
|
|
53
|
+
default:
|
|
54
|
+
return "Anthropic";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function getRuntimeLabel(config) {
|
|
58
|
+
if (isGptModel(config.model)) {
|
|
59
|
+
return config.provider === "azure-openai"
|
|
60
|
+
? "Azure OpenAI via OpenAI Agents SDK"
|
|
61
|
+
: "OpenAI Agents SDK";
|
|
62
|
+
}
|
|
63
|
+
if (config.provider === "bedrock")
|
|
64
|
+
return "Amazon Bedrock via Claude Agent SDK";
|
|
65
|
+
if (config.provider === "vertex")
|
|
66
|
+
return "Google Vertex AI via Claude Agent SDK";
|
|
67
|
+
if (config.provider === "9router")
|
|
68
|
+
return "9Router via Claude Agent SDK";
|
|
69
|
+
return "Claude Agent SDK";
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create an Anthropic-compatible client based on the provider in the config.
|
|
73
|
+
*
|
|
74
|
+
* - `"anthropic"`: uses the direct API with `anthropicApiKey`.
|
|
75
|
+
* - `"bedrock"`: uses `AnthropicBedrock` with explicit AWS credentials when
|
|
76
|
+
* provided, otherwise falls back to the default AWS credential provider chain.
|
|
77
|
+
*/
|
|
78
|
+
export function createClient(config) {
|
|
79
|
+
assertSupportedModelProvider(config.model, config.provider);
|
|
80
|
+
if (isOpenAIProvider(config.provider)) {
|
|
81
|
+
throw new Error("createClient() only supports Anthropic, Bedrock, Vertex, and 9Router providers");
|
|
82
|
+
}
|
|
83
|
+
if (config.provider === "vertex") {
|
|
84
|
+
// Set credentials env var for ADC before constructing the client
|
|
85
|
+
if (config.googleApplicationCredentials) {
|
|
86
|
+
process.env.GOOGLE_APPLICATION_CREDENTIALS = config.googleApplicationCredentials;
|
|
87
|
+
}
|
|
88
|
+
const projectId = config.vertexProjectId ?? process.env.GOOGLE_CLOUD_PROJECT;
|
|
89
|
+
const region = config.vertexRegion;
|
|
90
|
+
return new AnthropicVertex({
|
|
91
|
+
projectId,
|
|
92
|
+
region,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
if (config.provider === "bedrock") {
|
|
96
|
+
const region = config.awsRegion ?? "us-west-2";
|
|
97
|
+
if (config.awsAccessKeyId && config.awsSecretAccessKey) {
|
|
98
|
+
return new AnthropicBedrock({
|
|
99
|
+
awsRegion: region,
|
|
100
|
+
awsAccessKey: config.awsAccessKeyId,
|
|
101
|
+
awsSecretKey: config.awsSecretAccessKey,
|
|
102
|
+
awsSessionToken: config.awsSessionToken ?? null,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return new AnthropicBedrock({ awsRegion: region });
|
|
106
|
+
}
|
|
107
|
+
if (config.provider === "9router") {
|
|
108
|
+
return new Anthropic({
|
|
109
|
+
apiKey: config.ninerouterApiKey ?? "unused",
|
|
110
|
+
baseURL: config.ninerouterBaseUrl,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return new Anthropic({
|
|
114
|
+
apiKey: resolveAnthropicApiKey(config),
|
|
115
|
+
...(config.anthropicBaseUrl ? { baseURL: config.anthropicBaseUrl } : {}),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export function hasProviderCredentials(provider, config) {
|
|
119
|
+
switch (provider) {
|
|
120
|
+
case "bedrock":
|
|
121
|
+
// purposely ignore awsBearerToken
|
|
122
|
+
return !!(config.awsAccessKeyId && config.awsSecretAccessKey);
|
|
123
|
+
case "anthropic":
|
|
124
|
+
return !!resolveAnthropicApiKey(config);
|
|
125
|
+
case "9router":
|
|
126
|
+
return !!config.ninerouterApiKey;
|
|
127
|
+
case "vertex":
|
|
128
|
+
return !!(config.googleApplicationCredentials ?? process.env.GOOGLE_APPLICATION_CREDENTIALS);
|
|
129
|
+
case "openai":
|
|
130
|
+
return !!resolveOpenAIApiKey(config);
|
|
131
|
+
case "azure-openai":
|
|
132
|
+
return !!(config.azureOpenAIEndpoint && config.azureOpenAIApiKey && config.azureOpenAIDeployment);
|
|
133
|
+
default:
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export function createOpenAIClient(config) {
|
|
138
|
+
assertSupportedModelProvider(config.model, config.provider);
|
|
139
|
+
if (!isOpenAIProvider(config.provider)) {
|
|
140
|
+
throw new Error("createOpenAIClient() requires the OpenAI or Azure OpenAI provider");
|
|
141
|
+
}
|
|
142
|
+
if (config.provider === "azure-openai") {
|
|
143
|
+
if (!config.azureOpenAIEndpoint) {
|
|
144
|
+
throw new Error("Azure OpenAI endpoint is not configured");
|
|
145
|
+
}
|
|
146
|
+
if (!config.azureOpenAIApiKey) {
|
|
147
|
+
throw new Error("Azure OpenAI API key is not configured");
|
|
148
|
+
}
|
|
149
|
+
if (!config.azureOpenAIDeployment) {
|
|
150
|
+
throw new Error("Azure OpenAI deployment is not configured");
|
|
151
|
+
}
|
|
152
|
+
return new AzureOpenAI({
|
|
153
|
+
endpoint: config.azureOpenAIEndpoint,
|
|
154
|
+
apiKey: config.azureOpenAIApiKey,
|
|
155
|
+
apiVersion: config.azureOpenAIApiVersion ?? AZURE_OPENAI_API_VERSION,
|
|
156
|
+
deployment: config.azureOpenAIDeployment,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return new OpenAI({ apiKey: resolveOpenAIApiKey(config) });
|
|
160
|
+
}
|
|
161
|
+
export function configureOpenAIProvider(config) {
|
|
162
|
+
assertSupportedModelProvider(config.model, config.provider);
|
|
163
|
+
if (!isGptModel(config.model)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (config.provider === "openai" && !resolveOpenAIApiKey(config)) {
|
|
167
|
+
throw new Error("OpenAI API key is not configured");
|
|
168
|
+
}
|
|
169
|
+
setDefaultOpenAIClient(createOpenAIClient(config));
|
|
170
|
+
if (config.provider === "openai") {
|
|
171
|
+
setTracingExportApiKey(resolveOpenAIApiKey(config) ?? "");
|
|
172
|
+
}
|
|
173
|
+
setOpenAIAPI("responses");
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Return the correct model identifier for direct SDK calls
|
|
177
|
+
* (fast-responder, tool-alarm-evaluator, etc.).
|
|
178
|
+
*
|
|
179
|
+
* Agent SDK `query()` calls do NOT need this - the SDK maps models
|
|
180
|
+
* internally when `CLAUDE_CODE_USE_BEDROCK=1` or `CLAUDE_CODE_USE_VERTEX=1` is set.
|
|
181
|
+
*/
|
|
182
|
+
export function getModelId(config) {
|
|
183
|
+
assertSupportedModelProvider(config.model, config.provider);
|
|
184
|
+
if (config.model === "claude-sonnet-4-6") {
|
|
185
|
+
if (config.provider === "bedrock")
|
|
186
|
+
return BEDROCK_SONNET_MODEL;
|
|
187
|
+
if (config.provider === "9router")
|
|
188
|
+
return NINEROUTER_SONNET_MODEL;
|
|
189
|
+
return ANTHROPIC_SONNET_MODEL;
|
|
190
|
+
}
|
|
191
|
+
if (config.model === "claude-opus-4-6") {
|
|
192
|
+
if (config.provider === "bedrock")
|
|
193
|
+
return BEDROCK_OPUS_MODEL;
|
|
194
|
+
if (config.provider === "9router")
|
|
195
|
+
return NINEROUTER_OPUS_MODEL;
|
|
196
|
+
return ANTHROPIC_OPUS_MODEL;
|
|
197
|
+
}
|
|
198
|
+
if (config.provider === "azure-openai") {
|
|
199
|
+
if (!config.azureOpenAIDeployment) {
|
|
200
|
+
throw new Error("Azure OpenAI deployment is not configured");
|
|
201
|
+
}
|
|
202
|
+
return config.azureOpenAIDeployment;
|
|
203
|
+
}
|
|
204
|
+
return OPENAI_MODEL;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Return the Sonnet model identifier for lightweight side-calls
|
|
208
|
+
* (fast-responder, etc.) that don't need the full Opus model.
|
|
209
|
+
* For non-Claude providers, falls back to the main model.
|
|
210
|
+
*/
|
|
211
|
+
export function getFastResponderModelId(config) {
|
|
212
|
+
if (config.model === "claude-opus-4-6" || config.model === "claude-sonnet-4-6") {
|
|
213
|
+
if (config.provider === "bedrock")
|
|
214
|
+
return BEDROCK_SONNET_MODEL;
|
|
215
|
+
if (config.provider === "9router")
|
|
216
|
+
return NINEROUTER_SONNET_MODEL;
|
|
217
|
+
return ANTHROPIC_SONNET_MODEL;
|
|
218
|
+
}
|
|
219
|
+
return getModelId(config);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Build the `env` record for the Agent SDK `query()` options.
|
|
223
|
+
*
|
|
224
|
+
* - Anthropic: passes `ANTHROPIC_API_KEY`.
|
|
225
|
+
* - Bedrock: passes `CLAUDE_CODE_USE_BEDROCK`, `AWS_REGION`,
|
|
226
|
+
* `AWS_BEARER_TOKEN_BEDROCK` (for the Claude Code CLI), and IAM
|
|
227
|
+
* credentials when available.
|
|
228
|
+
* - Vertex: passes `CLAUDE_CODE_USE_VERTEX`, `CLOUD_ML_REGION`,
|
|
229
|
+
* and `GOOGLE_APPLICATION_CREDENTIALS` for service account auth.
|
|
230
|
+
*/
|
|
231
|
+
export function buildAgentEnv(config) {
|
|
232
|
+
assertSupportedModelProvider(config.model, config.provider);
|
|
233
|
+
const base = { ...process.env };
|
|
234
|
+
// Trigger SDK auto-compaction at 80% context usage (default is ~95%).
|
|
235
|
+
// This fires between turns within a single query() call, preventing
|
|
236
|
+
// unbounded context growth during long-running agent sessions.
|
|
237
|
+
base.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE = "80";
|
|
238
|
+
// TODO: Consider enabling session-memory compaction for higher-quality
|
|
239
|
+
// summaries: base.ENABLE_CLAUDE_CODE_SM_COMPACT = "1";
|
|
240
|
+
// --- CLI auto-memory ---
|
|
241
|
+
//
|
|
242
|
+
// The Claude Code CLI binary owns auto-memory: it picks up a project
|
|
243
|
+
// memory directory (reported as `memory_paths` on `system/init`), writes
|
|
244
|
+
// `CLAUDE.md` / `MEMORY.md` there after long-running sessions, and
|
|
245
|
+
// surfaces relevant files back into future turns via the recall
|
|
246
|
+
// supervisor (`system/memory_recall` events). We keep the default-ON
|
|
247
|
+
// behavior and observe it in stream-handler.
|
|
248
|
+
//
|
|
249
|
+
// The CLI reads its on/off switch via the env var `CLAUDE_CODE_DISABLE_AUTO_MEMORY`
|
|
250
|
+
// and the settings field `autoMemoryEnabled`. `buildAgentEnv()` spreads
|
|
251
|
+
// `process.env` at the top of this function, so whatever the operator has
|
|
252
|
+
// in their shell (or MDM-managed config) wins. If we ever add our own
|
|
253
|
+
// dial to this, put it here.
|
|
254
|
+
//
|
|
255
|
+
// Defensive: if the outer process has accidentally set
|
|
256
|
+
// `CLAUDE_CODE_DISABLE_AUTO_MEMORY` to a truthy value, log a warning so
|
|
257
|
+
// operators notice. We do not override it — killing a legitimately
|
|
258
|
+
// opted-out environment would be more surprising than losing the
|
|
259
|
+
// observability we just added.
|
|
260
|
+
const disableAutoMemory = base.CLAUDE_CODE_DISABLE_AUTO_MEMORY;
|
|
261
|
+
if (disableAutoMemory && /^(1|true|yes)$/i.test(disableAutoMemory)) {
|
|
262
|
+
logger.warn(`[auto-memory] CLAUDE_CODE_DISABLE_AUTO_MEMORY=${disableAutoMemory} in process.env; CLI auto-memory will be disabled. Unset it to enable memory_recall observability.`);
|
|
263
|
+
}
|
|
264
|
+
if (config.provider === "vertex") {
|
|
265
|
+
base.CLAUDE_CODE_USE_VERTEX = "1";
|
|
266
|
+
base.CLOUD_ML_REGION = config.vertexRegion;
|
|
267
|
+
// Vertex doesn't support all beta features yet; disable to avoid unsupported-header errors
|
|
268
|
+
base.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1";
|
|
269
|
+
if (config.googleApplicationCredentials) {
|
|
270
|
+
base.GOOGLE_APPLICATION_CREDENTIALS = config.googleApplicationCredentials;
|
|
271
|
+
}
|
|
272
|
+
if (config.vertexProjectId) {
|
|
273
|
+
base.GOOGLE_CLOUD_PROJECT = config.vertexProjectId;
|
|
274
|
+
}
|
|
275
|
+
delete base.ANTHROPIC_API_KEY;
|
|
276
|
+
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
277
|
+
delete base.AWS_REGION;
|
|
278
|
+
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
279
|
+
delete base.AWS_ACCESS_KEY_ID;
|
|
280
|
+
delete base.AWS_SECRET_ACCESS_KEY;
|
|
281
|
+
delete base.AWS_SESSION_TOKEN;
|
|
282
|
+
return base;
|
|
283
|
+
}
|
|
284
|
+
if (config.provider === "bedrock") {
|
|
285
|
+
base.CLAUDE_CODE_USE_BEDROCK = "1";
|
|
286
|
+
base.AWS_REGION = config.awsRegion ?? "us-west-2";
|
|
287
|
+
if (config.awsBearerToken)
|
|
288
|
+
base.AWS_BEARER_TOKEN_BEDROCK = config.awsBearerToken;
|
|
289
|
+
if (config.awsAccessKeyId)
|
|
290
|
+
base.AWS_ACCESS_KEY_ID = config.awsAccessKeyId;
|
|
291
|
+
if (config.awsSecretAccessKey)
|
|
292
|
+
base.AWS_SECRET_ACCESS_KEY = config.awsSecretAccessKey;
|
|
293
|
+
if (config.awsSessionToken)
|
|
294
|
+
base.AWS_SESSION_TOKEN = config.awsSessionToken;
|
|
295
|
+
delete base.ANTHROPIC_API_KEY;
|
|
296
|
+
return base;
|
|
297
|
+
}
|
|
298
|
+
if (config.provider === "azure-openai") {
|
|
299
|
+
base.AZURE_OPENAI_ENDPOINT = config.azureOpenAIEndpoint;
|
|
300
|
+
base.AZURE_OPENAI_API_KEY = config.azureOpenAIApiKey;
|
|
301
|
+
base.AZURE_OPENAI_API_VERSION = config.azureOpenAIApiVersion ?? AZURE_OPENAI_API_VERSION;
|
|
302
|
+
base.AZURE_OPENAI_DEPLOYMENT = config.azureOpenAIDeployment;
|
|
303
|
+
delete base.OPENAI_API_KEY;
|
|
304
|
+
delete base.ANTHROPIC_API_KEY;
|
|
305
|
+
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
306
|
+
delete base.AWS_REGION;
|
|
307
|
+
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
308
|
+
delete base.AWS_ACCESS_KEY_ID;
|
|
309
|
+
delete base.AWS_SECRET_ACCESS_KEY;
|
|
310
|
+
delete base.AWS_SESSION_TOKEN;
|
|
311
|
+
return base;
|
|
312
|
+
}
|
|
313
|
+
if (config.provider === "openai") {
|
|
314
|
+
base.OPENAI_API_KEY = resolveOpenAIApiKey(config);
|
|
315
|
+
delete base.AZURE_OPENAI_ENDPOINT;
|
|
316
|
+
delete base.AZURE_OPENAI_API_KEY;
|
|
317
|
+
delete base.AZURE_OPENAI_API_VERSION;
|
|
318
|
+
delete base.AZURE_OPENAI_DEPLOYMENT;
|
|
319
|
+
delete base.ANTHROPIC_API_KEY;
|
|
320
|
+
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
321
|
+
delete base.AWS_REGION;
|
|
322
|
+
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
323
|
+
delete base.AWS_ACCESS_KEY_ID;
|
|
324
|
+
delete base.AWS_SECRET_ACCESS_KEY;
|
|
325
|
+
delete base.AWS_SESSION_TOKEN;
|
|
326
|
+
return base;
|
|
327
|
+
}
|
|
328
|
+
// Anthropic direct API or 9Router (Anthropic-compatible proxy).
|
|
329
|
+
if (config.provider === "9router") {
|
|
330
|
+
base.ANTHROPIC_API_KEY = config.ninerouterApiKey ?? "unused";
|
|
331
|
+
base.ANTHROPIC_BASE_URL = config.ninerouterBaseUrl;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
base.ANTHROPIC_API_KEY = resolveAnthropicApiKey(config);
|
|
335
|
+
if (config.anthropicBaseUrl) {
|
|
336
|
+
base.ANTHROPIC_BASE_URL = config.anthropicBaseUrl;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
// Dev-mode only: route API calls through the logging proxy
|
|
340
|
+
if (isDevMode && proxyHandle) {
|
|
341
|
+
base.ANTHROPIC_BASE_URL = `http://127.0.0.1:${proxyHandle.port}`;
|
|
342
|
+
}
|
|
343
|
+
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
344
|
+
delete base.CLAUDE_CODE_USE_VERTEX;
|
|
345
|
+
delete base.AWS_REGION;
|
|
346
|
+
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
347
|
+
delete base.AWS_ACCESS_KEY_ID;
|
|
348
|
+
delete base.AWS_SECRET_ACCESS_KEY;
|
|
349
|
+
delete base.AWS_SESSION_TOKEN;
|
|
350
|
+
delete base.OPENAI_API_KEY;
|
|
351
|
+
delete base.AZURE_OPENAI_ENDPOINT;
|
|
352
|
+
delete base.AZURE_OPENAI_API_KEY;
|
|
353
|
+
delete base.AZURE_OPENAI_API_VERSION;
|
|
354
|
+
delete base.AZURE_OPENAI_DEPLOYMENT;
|
|
355
|
+
return base;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Start the API logging proxy if running in dev mode with the Anthropic
|
|
359
|
+
* or 9Router provider. No-ops (and returns immediately) in production,
|
|
360
|
+
* for Bedrock (which bypasses ANTHROPIC_BASE_URL), or for OpenAI providers.
|
|
361
|
+
*
|
|
362
|
+
* Call once at startup, before the first `buildAgentEnv()` call.
|
|
363
|
+
*/
|
|
364
|
+
export async function maybeStartApiProxy(config) {
|
|
365
|
+
if (!isDevMode)
|
|
366
|
+
return;
|
|
367
|
+
if (config.provider !== "anthropic" && config.provider !== "9router")
|
|
368
|
+
return;
|
|
369
|
+
if (proxyHandle)
|
|
370
|
+
return;
|
|
371
|
+
try {
|
|
372
|
+
const logDir = path.join(getConfigDir(), "logs");
|
|
373
|
+
const targetBaseUrl = config.provider === "9router"
|
|
374
|
+
? config.ninerouterBaseUrl
|
|
375
|
+
: (config.anthropicBaseUrl ?? "https://api.anthropic.com");
|
|
376
|
+
proxyHandle = await startApiProxy({ logDir, targetBaseUrl });
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
logger.warn(`[api-proxy] Failed to start: ${err instanceof Error ? err.message : String(err)}`);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../../../src/agent/engines/client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Model, VisionClawConfig } from "../../config/types.js";
|
|
2
|
+
export declare const AgentEngineSchemaValues: readonly ["claude-agent-sdk", "openai-agents-sdk"];
|
|
3
|
+
export type AgentEngine = typeof AgentEngineSchemaValues[number];
|
|
4
|
+
export declare function getEngineForModel(model: Model): AgentEngine;
|
|
5
|
+
export declare function getEngineForConfig(config: Pick<VisionClawConfig, "model">): AgentEngine;
|
|
6
|
+
export declare function isEngineSwitch(fromConfig: Pick<VisionClawConfig, "model">, toConfig: Pick<VisionClawConfig, "model">): boolean;
|
|
7
|
+
export declare function getEngineLabel(engine: AgentEngine): string;
|
|
8
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engines/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGrE,eAAO,MAAM,uBAAuB,oDAAqD,CAAC;AAC1F,MAAM,MAAM,WAAW,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,WAAW,CAEvF;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAC3C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAET;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isGptModel } from "./client-factory.js";
|
|
2
|
+
export const AgentEngineSchemaValues = ["claude-agent-sdk", "openai-agents-sdk"];
|
|
3
|
+
export function getEngineForModel(model) {
|
|
4
|
+
return isGptModel(model) ? "openai-agents-sdk" : "claude-agent-sdk";
|
|
5
|
+
}
|
|
6
|
+
export function getEngineForConfig(config) {
|
|
7
|
+
return getEngineForModel(config.model);
|
|
8
|
+
}
|
|
9
|
+
export function isEngineSwitch(fromConfig, toConfig) {
|
|
10
|
+
return getEngineForConfig(fromConfig) !== getEngineForConfig(toConfig);
|
|
11
|
+
}
|
|
12
|
+
export function getEngineLabel(engine) {
|
|
13
|
+
return engine === "openai-agents-sdk" ? "OpenAI Agents SDK" : "Claude Agent SDK";
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/agent/engines/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAU,CAAC;AAG1F,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAuC;IACxE,OAAO,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAA2C,EAC3C,QAAyC;IAEzC,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,OAAO,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgentInputItem, Session } from "@openai/agents";
|
|
2
|
+
export declare class OpenAIFileSession implements Session {
|
|
3
|
+
private readonly filePath;
|
|
4
|
+
private sessionId;
|
|
5
|
+
private items;
|
|
6
|
+
constructor(options: {
|
|
7
|
+
fileName: string;
|
|
8
|
+
sessionId?: string | null;
|
|
9
|
+
});
|
|
10
|
+
getSessionId(): Promise<string>;
|
|
11
|
+
getSessionIdSync(): string;
|
|
12
|
+
getItems(limit?: number): Promise<AgentInputItem[]>;
|
|
13
|
+
addItems(items: AgentInputItem[]): Promise<void>;
|
|
14
|
+
popItem(): Promise<AgentInputItem | undefined>;
|
|
15
|
+
clearSession(): Promise<void>;
|
|
16
|
+
private load;
|
|
17
|
+
private persist;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=file-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-session.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-session.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAS9D,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAmB;gBAEpB,OAAO,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B;IAYD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKnD,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAM9C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,OAAO,CAAC,IAAI;IA0BZ,OAAO,CAAC,OAAO;CAgBhB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
import { getConfigDir } from "../../../config/index.js";
|
|
5
|
+
export class OpenAIFileSession {
|
|
6
|
+
filePath;
|
|
7
|
+
sessionId;
|
|
8
|
+
items;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.filePath = path.join(getConfigDir(), options.fileName);
|
|
11
|
+
const existing = this.load();
|
|
12
|
+
this.sessionId = existing?.sessionId ?? options.sessionId ?? randomUUID();
|
|
13
|
+
this.items = existing?.items ?? [];
|
|
14
|
+
if (!existing) {
|
|
15
|
+
this.persist();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
getSessionId() {
|
|
19
|
+
return Promise.resolve(this.sessionId);
|
|
20
|
+
}
|
|
21
|
+
getSessionIdSync() {
|
|
22
|
+
return this.sessionId;
|
|
23
|
+
}
|
|
24
|
+
getItems(limit) {
|
|
25
|
+
const items = limit && limit > 0 ? this.items.slice(-limit) : this.items;
|
|
26
|
+
return Promise.resolve(structuredClone(items));
|
|
27
|
+
}
|
|
28
|
+
addItems(items) {
|
|
29
|
+
if (items.length === 0) {
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
}
|
|
32
|
+
this.items.push(...structuredClone(items));
|
|
33
|
+
this.persist();
|
|
34
|
+
return Promise.resolve();
|
|
35
|
+
}
|
|
36
|
+
popItem() {
|
|
37
|
+
const item = this.items.pop();
|
|
38
|
+
this.persist();
|
|
39
|
+
return Promise.resolve(item ? structuredClone(item) : undefined);
|
|
40
|
+
}
|
|
41
|
+
clearSession() {
|
|
42
|
+
this.items = [];
|
|
43
|
+
this.persist();
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
load() {
|
|
47
|
+
if (!fs.existsSync(this.filePath)) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const raw = JSON.parse(fs.readFileSync(this.filePath, "utf-8"));
|
|
52
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const parsed = raw;
|
|
56
|
+
if (!parsed.sessionId || !Array.isArray(parsed.items)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
sessionId: parsed.sessionId,
|
|
61
|
+
items: parsed.items,
|
|
62
|
+
updatedAt: typeof parsed.updatedAt === "string" ? parsed.updatedAt : new Date().toISOString(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
persist() {
|
|
70
|
+
fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
|
|
71
|
+
fs.writeFileSync(this.filePath, JSON.stringify({
|
|
72
|
+
sessionId: this.sessionId,
|
|
73
|
+
items: this.items,
|
|
74
|
+
updatedAt: new Date().toISOString(),
|
|
75
|
+
}, null, 2), "utf-8");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=file-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-session.js","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQxD,MAAM,OAAO,iBAAiB;IACX,QAAQ,CAAS;IAC1B,SAAS,CAAS;IAClB,KAAK,CAAmB;IAEhC,YAAY,OAGX;QACC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;QAC1E,IAAI,CAAC,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QAEnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACzE,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,KAAuB;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAY,CAAC;YAC3E,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,GAAiC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC9F,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,OAAO;QACb,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACZ;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACR,EAC7B,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Shell and Editor adapters for the OpenAI Agents SDK's `shellTool`
|
|
3
|
+
* and `applyPatchTool`.
|
|
4
|
+
*
|
|
5
|
+
* VisionClaw runs autonomously and Claude already has broad local tool
|
|
6
|
+
* access, so these adapters intentionally allow broad filesystem scope
|
|
7
|
+
* (bounded only by OS/user permissions). They still apply practical
|
|
8
|
+
* runtime limits (timeout + output truncation) and log every invocation
|
|
9
|
+
* so we have an audit trail.
|
|
10
|
+
*/
|
|
11
|
+
import { type ApplyPatchOperation, type ApplyPatchResult, type Editor, type Shell, type ShellAction, type ShellResult } from "@openai/agents-core";
|
|
12
|
+
/**
|
|
13
|
+
* Local Shell adapter: executes each command sequentially, capturing
|
|
14
|
+
* stdout/stderr with a per-command timeout and output cap.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LocalShell implements Shell {
|
|
17
|
+
run(action: ShellAction): Promise<ShellResult>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Local Editor adapter: handles `create_file`, `update_file`, and
|
|
21
|
+
* `delete_file` ApplyPatch operations using the SDK's `applyDiff` helper
|
|
22
|
+
* for V4A patch semantics.
|
|
23
|
+
*/
|
|
24
|
+
export declare class LocalEditor implements Editor {
|
|
25
|
+
createFile(operation: Extract<ApplyPatchOperation, {
|
|
26
|
+
type: "create_file";
|
|
27
|
+
}>): Promise<ApplyPatchResult>;
|
|
28
|
+
updateFile(operation: Extract<ApplyPatchOperation, {
|
|
29
|
+
type: "update_file";
|
|
30
|
+
}>): Promise<ApplyPatchResult>;
|
|
31
|
+
deleteFile(operation: Extract<ApplyPatchOperation, {
|
|
32
|
+
type: "delete_file";
|
|
33
|
+
}>): Promise<ApplyPatchResult>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=file-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/openai/file-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,WAAW,EAEhB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAuH7B;;;GAGG;AACH,qBAAa,UAAW,YAAW,KAAK;IAChC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAgBrD;AAED;;;;GAIG;AACH,qBAAa,WAAY,YAAW,MAAM;IAClC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoBvG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAcvG,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAW9G"}
|