visionclaw 0.1.212-beta.8 → 0.1.212
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/claude/session.d.ts +1 -1
- package/dist/agent/engines/claude/session.d.ts.map +1 -1
- package/dist/agent/engines/claude/session.js +12 -8
- package/dist/agent/engines/claude/session.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.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 +2 -1
- package/dist/agent/engines/pi-coding/session.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/session.js +11 -5
- package/dist/agent/engines/pi-coding/session.js.map +1 -1
- package/dist/agent/engines/pi-coding/tools.d.ts +1 -0
- package/dist/agent/engines/pi-coding/tools.d.ts.map +1 -1
- package/dist/agent/engines/pi-coding/tools.js +9 -9
- package/dist/agent/engines/pi-coding/tools.js.map +1 -1
- package/dist/agent/engines/session-types.d.ts +2 -0
- package/dist/agent/engines/session-types.d.ts.map +1 -1
- package/dist/agent/lab-run-system-prompt.d.ts.map +1 -1
- package/dist/agent/lab-run-system-prompt.js +5 -1
- package/dist/agent/lab-run-system-prompt.js.map +1 -1
- package/dist/agent/loop.d.ts +2 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +5 -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.map +1 -1
- package/dist/agent/model-provider.js +5 -2
- package/dist/agent/model-provider.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-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/session-manager.d.ts +3 -0
- package/dist/agent/session-manager.d.ts.map +1 -1
- package/dist/agent/session-manager.js +94 -19
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +7 -0
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +34 -1
- package/dist/agent/system-prompt.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-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 +3 -1
- 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/agent/workspace-cwd.d.ts +10 -0
- package/dist/agent/workspace-cwd.d.ts.map +1 -0
- package/dist/agent/workspace-cwd.js +47 -0
- package/dist/agent/workspace-cwd.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/fin-app/SKILL.md +1 -1
- package/dist/builtin-skills/transcribe-audio/SKILL.md +122 -0
- package/dist/builtin-skills/visionclaw-manual/SKILL.md +13 -7
- 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/console/ui.d.ts +2 -0
- package/dist/obs/console/ui.d.ts.map +1 -0
- package/dist/obs/console/ui.js +459 -0
- package/dist/obs/console/ui.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/obs/ui.d.ts +2 -0
- package/dist/obs/ui.d.ts.map +1 -0
- package/dist/obs/ui.js +1129 -0
- package/dist/obs/ui.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/service/systemd.d.ts.map +1 -1
- package/dist/service/systemd.js +29 -2
- package/dist/service/systemd.js.map +1 -1
- 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/lab-run-runtime.d.ts +4 -1
- package/dist/threads/lab-run-runtime.d.ts.map +1 -1
- package/dist/threads/lab-run-runtime.js +29 -4
- package/dist/threads/lab-run-runtime.js.map +1 -1
- package/dist/threads/lab-workspace.d.ts +7 -0
- package/dist/threads/lab-workspace.d.ts.map +1 -0
- package/dist/threads/lab-workspace.js +77 -0
- package/dist/threads/lab-workspace.js.map +1 -0
- package/dist/threads/supervisor.d.ts.map +1 -1
- package/dist/threads/supervisor.js +4 -0
- package/dist/threads/supervisor.js.map +1 -1
- 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/threads/worker-entry.d.ts.map +1 -1
- package/dist/threads/worker-entry.js +35 -2
- 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/data-service.d.ts +1 -1
- package/dist/tools/data-service.d.ts.map +1 -1
- package/dist/tools/data-service.js +3 -3
- package/dist/tools/data-service.js.map +1 -1
- 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/switch-session.d.ts.map +1 -1
- package/dist/tools/switch-session.js +35 -3
- package/dist/tools/switch-session.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/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 +6562 -6266
- 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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## [0.1.212](https://github.com/babelcloud/visionclaw/compare/v0.1.211...v0.1.212) (2026-08-30)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
* **notify:** refuse an unreadable attachment path instead of reporting it as sent (#1902) ([533596b](https://github.com/babelcloud/visionclaw/commit/533596b3674425a220cc582c84e0480aa5049419))
|
|
5
|
+
* **linux:** grant the agent user NOPASSWD sudo so host timezone syncs (#1898) ([9114dc7](https://github.com/babelcloud/visionclaw/commit/9114dc78758a346024c516fe0900f5e5a6dc68ae))
|
|
6
|
+
* **market-data:** close residual quality findings ([2007119](https://github.com/babelcloud/visionclaw/commit/2007119318d45bda2cdd55ba4b51f3ba175fe141))
|
|
7
|
+
* **linux:** run agent under a dedicated visionclaw user so self-upgrade works (#1886) ([0077c82](https://github.com/babelcloud/visionclaw/commit/0077c827e6ebe376f40280821c79ae9e45d9e68c))
|
|
8
|
+
* **memory:** clarify virtual memory paths (#1882) ([b89f3e7](https://github.com/babelcloud/visionclaw/commit/b89f3e765dd343e49ca110576da5d0817d6ba686))
|
|
9
|
+
* **channels:** fold display-label channel names before delivery (#1871) ([9561c6b](https://github.com/babelcloud/visionclaw/commit/9561c6bb974045ac4ddfd7f64267a5ce9a7d9029))
|
|
10
|
+
* **scripts:** unset the Enrollment Key before `visionclaw setup` (#1863) ([d16b6b1](https://github.com/babelcloud/visionclaw/commit/d16b6b11e3d9c7677b8be38fcc68ae673b19e63c))
|
|
11
|
+
* **agent:** surface watchdog tool aborts to model (#1844) ([fb8767b](https://github.com/babelcloud/visionclaw/commit/fb8767b415d7ef614254f2ebc14b725397cd55e3))
|
|
12
|
+
* **linux:** install ca-certificates so the agent image can curl cloudflared ([6978dcc](https://github.com/babelcloud/visionclaw/commit/6978dcc558a4748251a78208718e8de76eabdc9c))
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
* **financial-tool:** add capability readiness matrix (#1864) ([bca90cd](https://github.com/babelcloud/visionclaw/commit/bca90cd0a688ac44523494e24e14bc24073a573c))
|
|
16
|
+
* **calendar:** add internal reminders without workspace (#1849) ([d35f097](https://github.com/babelcloud/visionclaw/commit/d35f097654cefff8d7aa34a734303c391fdbc6d3))
|
|
17
|
+
* **onboarding:** support unattended Linux fleet enrollment ([ee57ddd](https://github.com/babelcloud/visionclaw/commit/ee57ddddad279559ff2e94d7aafd3418829938e1))
|
|
18
|
+
|
|
1
19
|
## [0.1.211](https://github.com/babelcloud/visionclaw/compare/v0.1.210...v0.1.211) (2026-08-26)
|
|
2
20
|
|
|
3
21
|
### 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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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned, server-authoritative optional runtime surfaces.
|
|
3
|
+
*
|
|
4
|
+
* Core model routing, local execution, localhost health/status, and the TUI
|
|
5
|
+
* control channel are deliberately not switches: every Agent needs them to be
|
|
6
|
+
* operable. Everything in this list may be omitted by an explicit setup.
|
|
7
|
+
*/
|
|
8
|
+
export declare const AGENT_CAPABILITIES: readonly ["managed_workspace", "messaging_channels", "interactive_onboarding", "heartbeat", "tunnel", "gemini", "computer_use", "memory", "skills", "dynamic_mcp", "upgrade", "event_trigger", "external_integrations"];
|
|
9
|
+
export type AgentCapability = (typeof AGENT_CAPABILITIES)[number];
|
|
10
|
+
export interface AgentCapabilitySetData {
|
|
11
|
+
schemaVersion: 1;
|
|
12
|
+
enabled: AgentCapability[];
|
|
13
|
+
}
|
|
14
|
+
interface CapabilityCredentialBody {
|
|
15
|
+
tunnel?: unknown;
|
|
16
|
+
tunnelRotation?: unknown;
|
|
17
|
+
google?: unknown;
|
|
18
|
+
zoho?: unknown;
|
|
19
|
+
serpapi?: unknown;
|
|
20
|
+
gemini?: unknown;
|
|
21
|
+
llmGateway?: unknown;
|
|
22
|
+
eventTrigger?: unknown;
|
|
23
|
+
finApp?: unknown;
|
|
24
|
+
financialTool?: unknown;
|
|
25
|
+
}
|
|
26
|
+
interface CapabilityConfigShape {
|
|
27
|
+
capabilitySet?: AgentCapabilitySetData;
|
|
28
|
+
workspaceEnabled?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Central capability policy object. Call sites ask a positive question
|
|
32
|
+
* (`capabilities.has("gemini")`) instead of re-implementing legacy defaults or
|
|
33
|
+
* decoding the wire object themselves.
|
|
34
|
+
*/
|
|
35
|
+
export declare class CapabilitySet {
|
|
36
|
+
private readonly enabled;
|
|
37
|
+
private readonly legacyMode;
|
|
38
|
+
private constructor();
|
|
39
|
+
/** Today's behavior. Only the pre-existing Workspace flag can narrow it. */
|
|
40
|
+
static legacy(options?: {
|
|
41
|
+
workspaceEnabled?: boolean;
|
|
42
|
+
}): CapabilitySet;
|
|
43
|
+
static explicit(data: AgentCapabilitySetData): CapabilitySet;
|
|
44
|
+
static parse(value: unknown): CapabilitySet;
|
|
45
|
+
/** Missing capability data is the compatibility contract, never an empty set. */
|
|
46
|
+
static fromConfig(config: CapabilityConfigShape): CapabilitySet;
|
|
47
|
+
has(capability: AgentCapability): boolean;
|
|
48
|
+
/** Client-side defense in depth for a mistakenly over-broad bundle. */
|
|
49
|
+
filterCredentialBody<T extends CapabilityCredentialBody>(body: T): Partial<T>;
|
|
50
|
+
/** Unknown admin commands remain compatible only for legacy/full Agents. */
|
|
51
|
+
allowsPendingCommand(command: string): boolean;
|
|
52
|
+
toJSON(): AgentCapabilitySetData;
|
|
53
|
+
}
|
|
54
|
+
export declare function hasAgentCapability(config: CapabilityConfigShape, capability: AgentCapability): boolean;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/agent/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,yNAcrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,UAAU,wBAAwB;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,OAAO;IAKP,4EAA4E;IAC5E,MAAM,CAAC,MAAM,CAAC,OAAO,GAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,aAAa;IAO1E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa;IAI5D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAkB3C,iFAAiF;IACjF,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,qBAAqB,GAC5B,aAAa;IAMhB,GAAG,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO;IAIzC,uEAAuE;IACvE,oBAAoB,CAAC,CAAC,SAAS,wBAAwB,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqB7E,4EAA4E;IAC5E,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAY9C,MAAM,IAAI,sBAAsB;CAMjC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,qBAAqB,EAC7B,UAAU,EAAE,eAAe,GAC1B,OAAO,CAET"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned, server-authoritative optional runtime surfaces.
|
|
3
|
+
*
|
|
4
|
+
* Core model routing, local execution, localhost health/status, and the TUI
|
|
5
|
+
* control channel are deliberately not switches: every Agent needs them to be
|
|
6
|
+
* operable. Everything in this list may be omitted by an explicit setup.
|
|
7
|
+
*/
|
|
8
|
+
export const AGENT_CAPABILITIES = [
|
|
9
|
+
"managed_workspace",
|
|
10
|
+
"messaging_channels",
|
|
11
|
+
"interactive_onboarding",
|
|
12
|
+
"heartbeat",
|
|
13
|
+
"tunnel",
|
|
14
|
+
"gemini",
|
|
15
|
+
"computer_use",
|
|
16
|
+
"memory",
|
|
17
|
+
"skills",
|
|
18
|
+
"dynamic_mcp",
|
|
19
|
+
"upgrade",
|
|
20
|
+
"event_trigger",
|
|
21
|
+
"external_integrations",
|
|
22
|
+
];
|
|
23
|
+
const KNOWN_CAPABILITIES = new Set(AGENT_CAPABILITIES);
|
|
24
|
+
function canonicalCapabilities(values) {
|
|
25
|
+
const selected = new Set(values);
|
|
26
|
+
return AGENT_CAPABILITIES.filter((capability) => selected.has(capability));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Central capability policy object. Call sites ask a positive question
|
|
30
|
+
* (`capabilities.has("gemini")`) instead of re-implementing legacy defaults or
|
|
31
|
+
* decoding the wire object themselves.
|
|
32
|
+
*/
|
|
33
|
+
export class CapabilitySet {
|
|
34
|
+
enabled;
|
|
35
|
+
legacyMode;
|
|
36
|
+
constructor(enabled, legacyMode = false) {
|
|
37
|
+
this.enabled = new Set(canonicalCapabilities(enabled));
|
|
38
|
+
this.legacyMode = legacyMode;
|
|
39
|
+
}
|
|
40
|
+
/** Today's behavior. Only the pre-existing Workspace flag can narrow it. */
|
|
41
|
+
static legacy(options = {}) {
|
|
42
|
+
const enabled = options.workspaceEnabled === false
|
|
43
|
+
? AGENT_CAPABILITIES.filter((capability) => capability !== "managed_workspace")
|
|
44
|
+
: AGENT_CAPABILITIES;
|
|
45
|
+
return new CapabilitySet(enabled, true);
|
|
46
|
+
}
|
|
47
|
+
static explicit(data) {
|
|
48
|
+
return CapabilitySet.parse(data);
|
|
49
|
+
}
|
|
50
|
+
static parse(value) {
|
|
51
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
52
|
+
throw new Error("Agent capability set must be an object");
|
|
53
|
+
}
|
|
54
|
+
const data = value;
|
|
55
|
+
if (data.schemaVersion !== 1 || !Array.isArray(data.enabled)) {
|
|
56
|
+
throw new Error("Unsupported Agent capability schema");
|
|
57
|
+
}
|
|
58
|
+
const enabled = [];
|
|
59
|
+
for (const rawCapability of data.enabled) {
|
|
60
|
+
if (typeof rawCapability !== "string" || !KNOWN_CAPABILITIES.has(rawCapability)) {
|
|
61
|
+
throw new Error(`Unknown Agent capability: ${String(rawCapability)}`);
|
|
62
|
+
}
|
|
63
|
+
enabled.push(rawCapability);
|
|
64
|
+
}
|
|
65
|
+
return new CapabilitySet(enabled);
|
|
66
|
+
}
|
|
67
|
+
/** Missing capability data is the compatibility contract, never an empty set. */
|
|
68
|
+
static fromConfig(config) {
|
|
69
|
+
return config.capabilitySet
|
|
70
|
+
? CapabilitySet.explicit(config.capabilitySet)
|
|
71
|
+
: CapabilitySet.legacy({ workspaceEnabled: config.workspaceEnabled });
|
|
72
|
+
}
|
|
73
|
+
has(capability) {
|
|
74
|
+
return this.enabled.has(capability);
|
|
75
|
+
}
|
|
76
|
+
/** Client-side defense in depth for a mistakenly over-broad bundle. */
|
|
77
|
+
filterCredentialBody(body) {
|
|
78
|
+
return {
|
|
79
|
+
...(this.has("tunnel") && body.tunnel !== undefined ? { tunnel: body.tunnel } : {}),
|
|
80
|
+
...(this.has("tunnel") && body.tunnelRotation !== undefined
|
|
81
|
+
? { tunnelRotation: body.tunnelRotation }
|
|
82
|
+
: {}),
|
|
83
|
+
...(this.has("managed_workspace") && body.google !== undefined ? { google: body.google } : {}),
|
|
84
|
+
...(this.has("managed_workspace") && body.zoho !== undefined ? { zoho: body.zoho } : {}),
|
|
85
|
+
...(this.has("external_integrations") && body.serpapi !== undefined ? { serpapi: body.serpapi } : {}),
|
|
86
|
+
...(this.has("gemini") && body.gemini !== undefined ? { gemini: body.gemini } : {}),
|
|
87
|
+
...(body.llmGateway !== undefined ? { llmGateway: body.llmGateway } : {}),
|
|
88
|
+
...(this.has("event_trigger") && body.eventTrigger !== undefined
|
|
89
|
+
? { eventTrigger: body.eventTrigger }
|
|
90
|
+
: {}),
|
|
91
|
+
...(this.has("messaging_channels") && body.finApp !== undefined ? { finApp: body.finApp } : {}),
|
|
92
|
+
...(this.has("external_integrations") && body.financialTool !== undefined
|
|
93
|
+
? { financialTool: body.financialTool }
|
|
94
|
+
: {}),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Unknown admin commands remain compatible only for legacy/full Agents. */
|
|
98
|
+
allowsPendingCommand(command) {
|
|
99
|
+
if (command === "upgrade" || command === "upgrade_beta")
|
|
100
|
+
return this.has("upgrade");
|
|
101
|
+
if (command === "create_rdp_session") {
|
|
102
|
+
return this.has("computer_use") && this.has("tunnel");
|
|
103
|
+
}
|
|
104
|
+
if (command === "notify")
|
|
105
|
+
return this.has("messaging_channels");
|
|
106
|
+
if (["collect_data", "usage", "usage_backfill", "switch_engine"].includes(command)) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return this.legacyMode;
|
|
110
|
+
}
|
|
111
|
+
toJSON() {
|
|
112
|
+
return {
|
|
113
|
+
schemaVersion: 1,
|
|
114
|
+
enabled: canonicalCapabilities([...this.enabled]),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export function hasAgentCapability(config, capability) {
|
|
119
|
+
return CapabilitySet.fromConfig(config).has(capability);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/agent/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ export declare class ClaudeAgentSession implements AgentSessionLike {
|
|
|
93
93
|
private warmRefreshTimer;
|
|
94
94
|
private lastUsageSnapshot;
|
|
95
95
|
private playwriterConnectionsResetThisTurn;
|
|
96
|
-
constructor({ config, buildSystemPrompt, runtimeSurface, sessionContext, }: AgentSessionConstructorArgs);
|
|
96
|
+
constructor({ config, buildSystemPrompt, runtimeSurface, sessionContext, workspaceCwd, }: AgentSessionConstructorArgs);
|
|
97
97
|
set screenshotInjector(injector: ScreenshotInjector | null);
|
|
98
98
|
/**
|
|
99
99
|
* Seed `<profile>/.claude/settings.local.json` once per process so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EAQpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiBpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAElB,oBAAoB,EACpB,oBAAoB,EAEpB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAqB7B,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAU3D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAoE1C;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,WAAW,CAAgC;IACnD,kFAAkF;IAClF,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,yBAAyB,CAAuB;IACxD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAuB;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B,CAAK;IAE1C,OAAO,CAAC,aAAa,CAAS;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAAS;IAEnC,sEAAsE;IACtE,OAAO,CAAC,mBAAmB,CAAmC;IAE9D,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,kCAAkC,CAAS;gBAEvC,EACV,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,cAAc,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/agent/engines/claude/session.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EAQpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiBpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAElB,oBAAoB,EACpB,oBAAoB,EAEpB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAqB7B,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAC3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAU3D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAoE1C;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,WAAW,CAAgC;IACnD,kFAAkF;IAClF,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,yBAAyB,CAAuB;IACxD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAuB;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,sBAAsB,CAAK;IAEnC,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B,CAAK;IAE1C,OAAO,CAAC,aAAa,CAAS;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAAS;IAEnC,sEAAsE;IACtE,OAAO,CAAC,mBAAmB,CAAmC;IAE9D,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,kCAAkC,CAAS;gBAEvC,EACV,MAAM,EACN,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,GACb,EAAE,2BAA2B;IAsB9B,IAAI,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EAEzD;IAED;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,UAAU;IA6MlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2EzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;;;;OAUG;YACW,kBAAkB;IAgDhC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA2F7B;;;;;;;;;;;;;OAaG;IACH,gBAAgB,IAAI,IAAI;IAgBxB,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IAoJlH;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO;IAyBxF;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAalB;;OAEG;IACH,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,iFAAiF;IACjF,gBAAgB,IAAI,IAAI;IAYxB,WAAW,IAAI,IAAI;IAwBnB,eAAe,IAAI,OAAO;IAI1B,SAAS,IAAI,IAAI;IAQjB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAM9C,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI;IAMzD,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,OAAO,CAAC,mBAAmB,CAAuB;IAElD,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAc1C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpC;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAMpC;;;;;;OAMG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyKxC,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAYnD;;;;;OAKG;IACH,6BAA6B,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI;IAmBjE;;;;;;;;OAQG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE;QAC3B;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoEjB,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAIlC,iBAAiB,IAAI;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAQrF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAK5B,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIxC,gCAAgC,IAAI,MAAM;IAI1C,oEAAoE;IACpE,eAAe,IAAI,KAAK,GAAG,IAAI;IAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkF1D,iFAAiF;IACjF,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAI5E,kDAAkD;IAClD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAGhE"}
|
|
@@ -173,16 +173,15 @@ export class ClaudeAgentSession {
|
|
|
173
173
|
warmRefreshTimer = null;
|
|
174
174
|
lastUsageSnapshot = null;
|
|
175
175
|
playwriterConnectionsResetThisTurn = false;
|
|
176
|
-
constructor({ config, buildSystemPrompt, runtimeSurface, sessionContext, }) {
|
|
176
|
+
constructor({ config, buildSystemPrompt, runtimeSurface, sessionContext, workspaceCwd, }) {
|
|
177
177
|
this.config = config;
|
|
178
178
|
this.buildSystemPrompt = buildSystemPrompt;
|
|
179
179
|
this.runtimeSurface = runtimeSurface;
|
|
180
180
|
this.getDualSessionEnabled = sessionContext.getDualSessionEnabled;
|
|
181
181
|
this.getAndroidUseEnabled = sessionContext.getAndroidUseEnabled;
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
|
|
185
|
-
this.sessionCwd = getConfigDir();
|
|
182
|
+
// Claude stores transcripts by sanitized cwd. A resumed session therefore
|
|
183
|
+
// must reopen with the exact persisted workspace path.
|
|
184
|
+
this.sessionCwd = workspaceCwd ?? getConfigDir();
|
|
186
185
|
this.nativeTools = runtimeSurface.nativeTools;
|
|
187
186
|
this.externalMcpServers = runtimeSurface.externalMcpServers;
|
|
188
187
|
this.dynamicMcpServers = {};
|
|
@@ -210,7 +209,7 @@ export class ClaudeAgentSession {
|
|
|
210
209
|
* the session.
|
|
211
210
|
*/
|
|
212
211
|
ensureAutoMemorySeeded() {
|
|
213
|
-
if (this.autoMemorySeedDone)
|
|
212
|
+
if (this.runtimeSurface.labRuntimePolicy || this.autoMemorySeedDone)
|
|
214
213
|
return;
|
|
215
214
|
try {
|
|
216
215
|
this.autoMemorySeedDone = seedClaudeAutoMemorySetting();
|
|
@@ -445,6 +444,11 @@ export class ClaudeAgentSession {
|
|
|
445
444
|
allowDangerouslySkipPermissions: true,
|
|
446
445
|
cwd: this.sessionCwd,
|
|
447
446
|
settingSources: this.runtimeSurface.labRuntimePolicy ? [] : ["project"],
|
|
447
|
+
// Lab runs must not read or write profile/project auto-memory. Their
|
|
448
|
+
// only durable filesystem surface is the tenant-bound Lab workspace.
|
|
449
|
+
...(this.runtimeSurface.labRuntimePolicy
|
|
450
|
+
? { settings: { autoMemoryEnabled: false } }
|
|
451
|
+
: {}),
|
|
448
452
|
mcpServers: this.buildMcpServers(),
|
|
449
453
|
hooks: this.buildHooks(),
|
|
450
454
|
env: this.runtimeSurface.labRuntimePolicy
|
|
@@ -1231,7 +1235,7 @@ export class ClaudeAgentSession {
|
|
|
1231
1235
|
return {
|
|
1232
1236
|
kind: "claude",
|
|
1233
1237
|
...(this.transcriptPath ? { sessionFilePath: this.transcriptPath } : {}),
|
|
1234
|
-
sessionDir: getClaudeTranscriptDirForProfileDir(
|
|
1238
|
+
sessionDir: getClaudeTranscriptDirForProfileDir(this.sessionCwd),
|
|
1235
1239
|
};
|
|
1236
1240
|
}
|
|
1237
1241
|
/**
|
|
@@ -1239,7 +1243,7 @@ export class ClaudeAgentSession {
|
|
|
1239
1243
|
* the SDK subprocess has started and reported it via hooks.
|
|
1240
1244
|
*/
|
|
1241
1245
|
deriveTranscriptPath(sessionId) {
|
|
1242
|
-
const dir = getClaudeTranscriptDirForProfileDir(
|
|
1246
|
+
const dir = getClaudeTranscriptDirForProfileDir(this.sessionCwd);
|
|
1243
1247
|
return path.join(dir, `${sessionId}.jsonl`);
|
|
1244
1248
|
}
|
|
1245
1249
|
getUsageSnapshot() {
|