visionclaw 0.1.195-beta.0 → 0.1.195-dev.feat-e2e-test-system.1
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/dist/agent/command-handlers.d.ts.map +1 -1
- package/dist/agent/command-handlers.js +17 -0
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/builtin-skills/catalog/equity-research/SKILL.md +256 -0
- package/dist/builtin-skills/catalog/financial-modeling/SKILL.md +186 -0
- package/dist/builtin-skills/catalog/investment-banking/SKILL.md +213 -0
- package/dist/builtin-skills/catalog/private-equity/SKILL.md +282 -0
- package/dist/builtin-skills/catalog/wealth-management/SKILL.md +252 -0
- package/dist/channels/interface.d.ts +9 -0
- package/dist/channels/interface.d.ts.map +1 -1
- package/dist/channels/manager.d.ts.map +1 -1
- package/dist/channels/manager.js +3 -0
- package/dist/channels/manager.js.map +1 -1
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +7 -1
- package/dist/channels/telegram.js.map +1 -1
- package/dist/config/types.d.ts +6 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +10 -0
- package/dist/config/types.js.map +1 -1
- package/dist/e2e/artifacts.d.ts +8 -0
- package/dist/e2e/artifacts.d.ts.map +1 -0
- package/dist/e2e/artifacts.js +35 -0
- package/dist/e2e/artifacts.js.map +1 -0
- package/dist/e2e/cleanup.d.ts +8 -0
- package/dist/e2e/cleanup.d.ts.map +1 -0
- package/dist/e2e/cleanup.js +108 -0
- package/dist/e2e/cleanup.js.map +1 -0
- package/dist/e2e/cli.d.ts +4 -0
- package/dist/e2e/cli.d.ts.map +1 -0
- package/dist/e2e/cli.js +16 -0
- package/dist/e2e/cli.js.map +1 -0
- package/dist/e2e/index.d.ts +5 -0
- package/dist/e2e/index.d.ts.map +1 -0
- package/dist/e2e/index.js +4 -0
- package/dist/e2e/index.js.map +1 -0
- package/dist/e2e/local-test-server.d.ts +7 -0
- package/dist/e2e/local-test-server.d.ts.map +1 -0
- package/dist/e2e/local-test-server.js +75 -0
- package/dist/e2e/local-test-server.js.map +1 -0
- package/dist/e2e/oauth-setup-store.d.ts +28 -0
- package/dist/e2e/oauth-setup-store.d.ts.map +1 -0
- package/dist/e2e/oauth-setup-store.js +56 -0
- package/dist/e2e/oauth-setup-store.js.map +1 -0
- package/dist/e2e/parser.d.ts +4 -0
- package/dist/e2e/parser.d.ts.map +1 -0
- package/dist/e2e/parser.js +52 -0
- package/dist/e2e/parser.js.map +1 -0
- package/dist/e2e/registry.d.ts +3 -0
- package/dist/e2e/registry.d.ts.map +1 -0
- package/dist/e2e/registry.js +44 -0
- package/dist/e2e/registry.js.map +1 -0
- package/dist/e2e/reporter.d.ts +6 -0
- package/dist/e2e/reporter.d.ts.map +1 -0
- package/dist/e2e/reporter.js +56 -0
- package/dist/e2e/reporter.js.map +1 -0
- package/dist/e2e/runner.d.ts +4 -0
- package/dist/e2e/runner.d.ts.map +1 -0
- package/dist/e2e/runner.js +116 -0
- package/dist/e2e/runner.js.map +1 -0
- package/dist/e2e/setup-google-guest.d.ts +19 -0
- package/dist/e2e/setup-google-guest.d.ts.map +1 -0
- package/dist/e2e/setup-google-guest.js +205 -0
- package/dist/e2e/setup-google-guest.js.map +1 -0
- package/dist/e2e/suite-utils.d.ts +19 -0
- package/dist/e2e/suite-utils.d.ts.map +1 -0
- package/dist/e2e/suite-utils.js +60 -0
- package/dist/e2e/suite-utils.js.map +1 -0
- package/dist/e2e/suites/agent.d.ts +3 -0
- package/dist/e2e/suites/agent.d.ts.map +1 -0
- package/dist/e2e/suites/agent.js +33 -0
- package/dist/e2e/suites/agent.js.map +1 -0
- package/dist/e2e/suites/browser.d.ts +3 -0
- package/dist/e2e/suites/browser.d.ts.map +1 -0
- package/dist/e2e/suites/browser.js +58 -0
- package/dist/e2e/suites/browser.js.map +1 -0
- package/dist/e2e/suites/cua.d.ts +3 -0
- package/dist/e2e/suites/cua.d.ts.map +1 -0
- package/dist/e2e/suites/cua.js +68 -0
- package/dist/e2e/suites/cua.js.map +1 -0
- package/dist/e2e/suites/google.d.ts +3 -0
- package/dist/e2e/suites/google.d.ts.map +1 -0
- package/dist/e2e/suites/google.js +145 -0
- package/dist/e2e/suites/google.js.map +1 -0
- package/dist/e2e/suites/memory.d.ts +3 -0
- package/dist/e2e/suites/memory.d.ts.map +1 -0
- package/dist/e2e/suites/memory.js +50 -0
- package/dist/e2e/suites/memory.js.map +1 -0
- package/dist/e2e/suites/obs.d.ts +3 -0
- package/dist/e2e/suites/obs.d.ts.map +1 -0
- package/dist/e2e/suites/obs.js +29 -0
- package/dist/e2e/suites/obs.js.map +1 -0
- package/dist/e2e/suites/self.d.ts +3 -0
- package/dist/e2e/suites/self.d.ts.map +1 -0
- package/dist/e2e/suites/self.js +65 -0
- package/dist/e2e/suites/self.js.map +1 -0
- package/dist/e2e/suites/upgrade.d.ts +3 -0
- package/dist/e2e/suites/upgrade.d.ts.map +1 -0
- package/dist/e2e/suites/upgrade.js +31 -0
- package/dist/e2e/suites/upgrade.js.map +1 -0
- package/dist/e2e/types.d.ts +91 -0
- package/dist/e2e/types.d.ts.map +1 -0
- package/dist/e2e/types.js +2 -0
- package/dist/e2e/types.js.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/daemon.d.ts +1 -0
- package/dist/service/daemon.d.ts.map +1 -1
- package/dist/service/daemon.js +110 -15
- package/dist/service/daemon.js.map +1 -1
- package/dist/tools/upgrade.d.ts +8 -0
- package/dist/tools/upgrade.d.ts.map +1 -1
- package/dist/tools/upgrade.js +64 -8
- package/dist/tools/upgrade.js.map +1 -1
- package/dist-agent/bundle.cjs +32037 -30064
- package/package.json +1 -1
- package/dist/agent/applied-credential-signature.d.ts +0 -53
- package/dist/agent/applied-credential-signature.d.ts.map +0 -1
- package/dist/agent/applied-credential-signature.js +0 -137
- package/dist/agent/applied-credential-signature.js.map +0 -1
- package/dist/agent/engines/claude/cli-resolver.d.ts +0 -16
- package/dist/agent/engines/claude/cli-resolver.d.ts.map +0 -1
- package/dist/agent/engines/claude/cli-resolver.js +0 -83
- package/dist/agent/engines/claude/cli-resolver.js.map +0 -1
- package/dist/agent/engines/claude/session-browser-policy.d.ts +0 -9
- package/dist/agent/engines/claude/session-browser-policy.d.ts.map +0 -1
- package/dist/agent/engines/claude/session-browser-policy.js +0 -49
- package/dist/agent/engines/claude/session-browser-policy.js.map +0 -1
- package/dist/agent/engines/claude/session.d.ts +0 -304
- package/dist/agent/engines/claude/session.d.ts.map +0 -1
- package/dist/agent/engines/claude/session.js +0 -1233
- package/dist/agent/engines/claude/session.js.map +0 -1
- package/dist/agent/engines/client-factory.d.ts +0 -63
- package/dist/agent/engines/client-factory.d.ts.map +0 -1
- package/dist/agent/engines/client-factory.js +0 -382
- package/dist/agent/engines/client-factory.js.map +0 -1
- package/dist/agent/engines/engine-factory.d.ts +0 -5
- package/dist/agent/engines/engine-factory.d.ts.map +0 -1
- package/dist/agent/engines/engine-factory.js +0 -7
- package/dist/agent/engines/engine-factory.js.map +0 -1
- package/dist/agent/engines/engine.d.ts +0 -8
- package/dist/agent/engines/engine.d.ts.map +0 -1
- package/dist/agent/engines/engine.js +0 -15
- package/dist/agent/engines/engine.js.map +0 -1
- package/dist/agent/engines/openai/file-session.d.ts +0 -19
- package/dist/agent/engines/openai/file-session.d.ts.map +0 -1
- package/dist/agent/engines/openai/file-session.js +0 -78
- package/dist/agent/engines/openai/file-session.js.map +0 -1
- package/dist/agent/engines/openai/file-tools.d.ts +0 -35
- package/dist/agent/engines/openai/file-tools.d.ts.map +0 -1
- package/dist/agent/engines/openai/file-tools.js +0 -194
- package/dist/agent/engines/openai/file-tools.js.map +0 -1
- package/dist/agent/engines/openai/session.d.ts +0 -55
- package/dist/agent/engines/openai/session.d.ts.map +0 -1
- package/dist/agent/engines/openai/session.js +0 -447
- package/dist/agent/engines/openai/session.js.map +0 -1
- package/dist/agent/engines/openai/tools.d.ts +0 -15
- package/dist/agent/engines/openai/tools.d.ts.map +0 -1
- package/dist/agent/engines/openai/tools.js +0 -221
- package/dist/agent/engines/openai/tools.js.map +0 -1
- package/dist/agent/engines/pi/session.d.ts +0 -54
- package/dist/agent/engines/pi/session.d.ts.map +0 -1
- package/dist/agent/engines/pi/session.js +0 -397
- package/dist/agent/engines/pi/session.js.map +0 -1
- package/dist/agent/engines/pi/tools.d.ts +0 -19
- package/dist/agent/engines/pi/tools.d.ts.map +0 -1
- package/dist/agent/engines/pi/tools.js +0 -127
- package/dist/agent/engines/pi/tools.js.map +0 -1
- package/dist/agent/engines/session-types.d.ts +0 -153
- package/dist/agent/engines/session-types.d.ts.map +0 -1
- package/dist/agent/engines/session-types.js +0 -2
- package/dist/agent/engines/session-types.js.map +0 -1
- package/dist/agent/engines/system-prompt-log.d.ts +0 -9
- package/dist/agent/engines/system-prompt-log.d.ts.map +0 -1
- package/dist/agent/engines/system-prompt-log.js +0 -46
- package/dist/agent/engines/system-prompt-log.js.map +0 -1
- package/dist/agent/model-provider.d.ts +0 -103
- package/dist/agent/model-provider.d.ts.map +0 -1
- package/dist/agent/model-provider.js +0 -540
- package/dist/agent/model-provider.js.map +0 -1
- package/dist/agent/transcript/transcript-backfill.d.ts +0 -54
- package/dist/agent/transcript/transcript-backfill.d.ts.map +0 -1
- package/dist/agent/transcript/transcript-backfill.js +0 -604
- package/dist/agent/transcript/transcript-backfill.js.map +0 -1
- package/dist/agent/transcript/transcript-indexer.d.ts +0 -273
- package/dist/agent/transcript/transcript-indexer.d.ts.map +0 -1
- package/dist/agent/transcript/transcript-indexer.js +0 -1217
- package/dist/agent/transcript/transcript-indexer.js.map +0 -1
- package/dist/agent/transcript/transcript-memory-migrations.d.ts +0 -25
- package/dist/agent/transcript/transcript-memory-migrations.d.ts.map +0 -1
- package/dist/agent/transcript/transcript-memory-migrations.js +0 -87
- package/dist/agent/transcript/transcript-memory-migrations.js.map +0 -1
- package/dist/agent/transcript-memory-migrations.d.ts +0 -25
- package/dist/agent/transcript-memory-migrations.d.ts.map +0 -1
- package/dist/agent/transcript-memory-migrations.js +0 -87
- package/dist/agent/transcript-memory-migrations.js.map +0 -1
- package/dist/agent/tunnel-credential-handler.d.ts +0 -90
- package/dist/agent/tunnel-credential-handler.d.ts.map +0 -1
- package/dist/agent/tunnel-credential-handler.js +0 -162
- package/dist/agent/tunnel-credential-handler.js.map +0 -1
- package/dist/agent/usage/usage-backfill-handler.d.ts +0 -18
- package/dist/agent/usage/usage-backfill-handler.d.ts.map +0 -1
- package/dist/agent/usage/usage-backfill-handler.js +0 -69
- package/dist/agent/usage/usage-backfill-handler.js.map +0 -1
- package/dist/agent/usage/usage-gate.d.ts +0 -25
- package/dist/agent/usage/usage-gate.d.ts.map +0 -1
- package/dist/agent/usage/usage-gate.js +0 -83
- package/dist/agent/usage/usage-gate.js.map +0 -1
- package/dist/agent/usage/usage-handler.d.ts +0 -7
- package/dist/agent/usage/usage-handler.d.ts.map +0 -1
- package/dist/agent/usage/usage-handler.js +0 -28
- package/dist/agent/usage/usage-handler.js.map +0 -1
- package/dist/agent/usage/usage-report-builder.d.ts +0 -26
- package/dist/agent/usage/usage-report-builder.d.ts.map +0 -1
- package/dist/agent/usage/usage-report-builder.js +0 -80
- package/dist/agent/usage/usage-report-builder.js.map +0 -1
- package/dist/agent/usage/usage-report-queue.d.ts +0 -26
- package/dist/agent/usage/usage-report-queue.d.ts.map +0 -1
- package/dist/agent/usage/usage-report-queue.js +0 -199
- package/dist/agent/usage/usage-report-queue.js.map +0 -1
- package/dist/agent/usage/usage-report-types.d.ts +0 -41
- package/dist/agent/usage/usage-report-types.d.ts.map +0 -1
- package/dist/agent/usage/usage-report-types.js +0 -2
- package/dist/agent/usage/usage-report-types.js.map +0 -1
- package/dist/agent/usage/usage-reporter.d.ts +0 -31
- package/dist/agent/usage/usage-reporter.d.ts.map +0 -1
- package/dist/agent/usage/usage-reporter.js +0 -102
- package/dist/agent/usage/usage-reporter.js.map +0 -1
- package/dist/agent/usage-backfill-handler.d.ts +0 -18
- package/dist/agent/usage-backfill-handler.d.ts.map +0 -1
- package/dist/agent/usage-backfill-handler.js +0 -69
- package/dist/agent/usage-backfill-handler.js.map +0 -1
- package/dist/agent/usage-gate.d.ts +0 -25
- package/dist/agent/usage-gate.d.ts.map +0 -1
- package/dist/agent/usage-gate.js +0 -83
- package/dist/agent/usage-gate.js.map +0 -1
- package/dist/agent/usage-report-builder.d.ts +0 -26
- package/dist/agent/usage-report-builder.d.ts.map +0 -1
- package/dist/agent/usage-report-builder.js +0 -80
- package/dist/agent/usage-report-builder.js.map +0 -1
- package/dist/agent/usage-report-queue.d.ts +0 -26
- package/dist/agent/usage-report-queue.d.ts.map +0 -1
- package/dist/agent/usage-report-queue.js +0 -199
- package/dist/agent/usage-report-queue.js.map +0 -1
- package/dist/agent/usage-report-types.d.ts +0 -41
- package/dist/agent/usage-report-types.d.ts.map +0 -1
- package/dist/agent/usage-report-types.js +0 -2
- package/dist/agent/usage-report-types.js.map +0 -1
- package/dist/agent/usage-reporter.d.ts +0 -31
- package/dist/agent/usage-reporter.d.ts.map +0 -1
- package/dist/agent/usage-reporter.js +0 -102
- package/dist/agent/usage-reporter.js.map +0 -1
- package/dist/agent/wake-cycle-tool-tracker.d.ts +0 -39
- package/dist/agent/wake-cycle-tool-tracker.d.ts.map +0 -1
- package/dist/agent/wake-cycle-tool-tracker.js +0 -72
- package/dist/agent/wake-cycle-tool-tracker.js.map +0 -1
- package/dist/billing/payg-handler.d.ts +0 -29
- package/dist/billing/payg-handler.d.ts.map +0 -1
- package/dist/billing/payg-handler.js +0 -92
- package/dist/billing/payg-handler.js.map +0 -1
- package/dist/billing/payment-handler.d.ts +0 -24
- package/dist/billing/payment-handler.d.ts.map +0 -1
- package/dist/billing/payment-handler.js +0 -101
- package/dist/billing/payment-handler.js.map +0 -1
- package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
- package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
- package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
- package/dist/data-processing/convert-demo-cli.d.ts +0 -7
- package/dist/data-processing/convert-demo-cli.d.ts.map +0 -1
- package/dist/data-processing/convert-demo-cli.js +0 -30
- package/dist/data-processing/convert-demo-cli.js.map +0 -1
- package/dist/data-processing/convert-demo.d.ts +0 -26
- package/dist/data-processing/convert-demo.d.ts.map +0 -1
- package/dist/data-processing/convert-demo.js +0 -233
- package/dist/data-processing/convert-demo.js.map +0 -1
- package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
- package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
- package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
- package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
- package/dist/obs/rdp/icons/icons/control.svg +0 -4
- package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
- package/dist/obs/rdp/icons/icons/display.svg +0 -4
- package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
- package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
- package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
- package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
- package/dist/obs/tunnel-telemetry.d.ts +0 -46
- package/dist/obs/tunnel-telemetry.d.ts.map +0 -1
- package/dist/obs/tunnel-telemetry.js +0 -70
- package/dist/obs/tunnel-telemetry.js.map +0 -1
- package/dist/onboarding/cloudflared-cert.d.ts +0 -15
- package/dist/onboarding/cloudflared-cert.d.ts.map +0 -1
- package/dist/onboarding/cloudflared-cert.js +0 -57
- package/dist/onboarding/cloudflared-cert.js.map +0 -1
- package/dist/onboarding/playwriter-extension.d.ts +0 -19
- package/dist/onboarding/playwriter-extension.d.ts.map +0 -1
- package/dist/onboarding/playwriter-extension.js +0 -246
- package/dist/onboarding/playwriter-extension.js.map +0 -1
- package/dist/realtime/websocket.d.ts +0 -7
- package/dist/realtime/websocket.d.ts.map +0 -1
- package/dist/realtime/websocket.js +0 -65
- package/dist/realtime/websocket.js.map +0 -1
- package/dist/service/gbox-tun.d.ts +0 -14
- package/dist/service/gbox-tun.d.ts.map +0 -1
- package/dist/service/gbox-tun.js +0 -315
- package/dist/service/gbox-tun.js.map +0 -1
- package/dist/skills/installed.d.ts +0 -11
- package/dist/skills/installed.d.ts.map +0 -1
- package/dist/skills/installed.js +0 -35
- package/dist/skills/installed.js.map +0 -1
- package/dist/tools/coordinate-resolver.d.ts +0 -30
- package/dist/tools/coordinate-resolver.d.ts.map +0 -1
- package/dist/tools/coordinate-resolver.js +0 -104
- package/dist/tools/coordinate-resolver.js.map +0 -1
- package/dist/utils/playwriter-relay.d.ts +0 -9
- package/dist/utils/playwriter-relay.d.ts.map +0 -1
- package/dist/utils/playwriter-relay.js +0 -77
- package/dist/utils/playwriter-relay.js.map +0 -1
- package/dist/utils/wechat-monitor.d.ts +0 -21
- package/dist/utils/wechat-monitor.d.ts.map +0 -1
- package/dist/utils/wechat-monitor.js +0 -88
- package/dist/utils/wechat-monitor.js.map +0 -1
- package/dist-agent/realtime/assets/index.html +0 -1058
- 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
|
@@ -1,540 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves provider/model wiring for Claude-compatible runtimes and
|
|
3
|
-
* OpenAI-compatible Pi runtimes, including 9Router's Claude vs GPT split.
|
|
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 { zodOutputFormat } from "@anthropic-ai/sdk/helpers/zod";
|
|
9
|
-
import { complete, getModel } from "@earendil-works/pi-ai";
|
|
10
|
-
import { zodResponseFormat } from "openai/helpers/zod";
|
|
11
|
-
import { assertSupportedModelProvider, } from "../config/types.js";
|
|
12
|
-
import { startApiProxy } from "./api-proxy.js";
|
|
13
|
-
import { getConfigDir } from "../config/index.js";
|
|
14
|
-
import path from "node:path";
|
|
15
|
-
import { logger } from "../logger.js";
|
|
16
|
-
import { resolveAnthropicApiKey } from "../anthropic-credentials.js";
|
|
17
|
-
import { resolveOpenAIApiKey } from "../openai-credentials.js";
|
|
18
|
-
/** Detect dev mode: tsx runs .ts entry, production runs compiled .js. */
|
|
19
|
-
const isDevMode = process.argv[1]?.endsWith(".ts") ?? false;
|
|
20
|
-
/** Singleton proxy handle - lazily started on first Anthropic dev-mode query. */
|
|
21
|
-
let proxyHandle = null;
|
|
22
|
-
const ANTHROPIC_SONNET_MODEL = "claude-sonnet-4-6";
|
|
23
|
-
const ANTHROPIC_OPUS_MODEL = "claude-opus-4-6";
|
|
24
|
-
// const BEDROCK_SONNET_MODEL = "us.anthropic.claude-sonnet-4-6";
|
|
25
|
-
// const BEDROCK_OPUS_MODEL = "us.anthropic.claude-opus-4-6-v1";
|
|
26
|
-
const BEDROCK_SONNET_MODEL = "global.anthropic.claude-sonnet-4-6";
|
|
27
|
-
const BEDROCK_OPUS_MODEL = "global.anthropic.claude-opus-4-6-v1";
|
|
28
|
-
//const NINEROUTER_MODEL_PREFIX = "cc/";
|
|
29
|
-
const NINEROUTER_MODEL_PREFIX = "";
|
|
30
|
-
const NINEROUTER_SONNET_MODEL = `${NINEROUTER_MODEL_PREFIX}claude-sonnet-4-6`;
|
|
31
|
-
const NINEROUTER_OPUS_MODEL = `${NINEROUTER_MODEL_PREFIX}claude-opus-4-6`;
|
|
32
|
-
export const OPENAI_MODEL = "gpt-5.5";
|
|
33
|
-
export function isOpenAIProvider(provider) {
|
|
34
|
-
return provider === "openai" || provider === "azure-openai";
|
|
35
|
-
}
|
|
36
|
-
export function isGptModel(model) {
|
|
37
|
-
return model === "gpt-5.5";
|
|
38
|
-
}
|
|
39
|
-
export function getProviderLabel(provider) {
|
|
40
|
-
switch (provider) {
|
|
41
|
-
case "bedrock":
|
|
42
|
-
return "Bedrock";
|
|
43
|
-
case "vertex":
|
|
44
|
-
return "Vertex AI";
|
|
45
|
-
case "9router":
|
|
46
|
-
return "9Router";
|
|
47
|
-
case "openai":
|
|
48
|
-
return "OpenAI";
|
|
49
|
-
case "azure-openai":
|
|
50
|
-
return "Azure OpenAI";
|
|
51
|
-
default:
|
|
52
|
-
return "Anthropic";
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
export function getRuntimeLabel(config) {
|
|
56
|
-
if (isGptModel(config.model)) {
|
|
57
|
-
return config.provider === "9router"
|
|
58
|
-
? "9Router via Pi Agent SDK"
|
|
59
|
-
: "Pi Agent SDK";
|
|
60
|
-
}
|
|
61
|
-
if (config.provider === "bedrock")
|
|
62
|
-
return "Amazon Bedrock via Claude Agent SDK";
|
|
63
|
-
if (config.provider === "vertex")
|
|
64
|
-
return "Google Vertex AI via Claude Agent SDK";
|
|
65
|
-
if (config.provider === "9router")
|
|
66
|
-
return "9Router via Claude Agent SDK";
|
|
67
|
-
return "Claude Agent SDK";
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Create an Anthropic-compatible client for Claude model paths.
|
|
71
|
-
*
|
|
72
|
-
* - `"anthropic"`: uses the direct API with `anthropicApiKey`.
|
|
73
|
-
* - `"bedrock"`: uses `AnthropicBedrock` with explicit AWS credentials when
|
|
74
|
-
* provided, otherwise falls back to the default AWS credential provider chain.
|
|
75
|
-
* - `"vertex"`: uses `AnthropicVertex` with Google Cloud project/region config.
|
|
76
|
-
* - `"9router"`: uses 9Router as an Anthropic-compatible proxy for Claude models.
|
|
77
|
-
*
|
|
78
|
-
* OpenAI-compatible providers and GPT models use the Pi Agent SDK instead.
|
|
79
|
-
*/
|
|
80
|
-
export function createClient(config) {
|
|
81
|
-
assertSupportedModelProvider(config.model, config.provider);
|
|
82
|
-
if (isOpenAIProvider(config.provider) || isGptModel(config.model)) {
|
|
83
|
-
throw new Error("createClient() only supports Claude-compatible Anthropic, Bedrock, Vertex, and 9Router providers");
|
|
84
|
-
}
|
|
85
|
-
if (config.provider === "vertex") {
|
|
86
|
-
// Set credentials env var for ADC before constructing the client
|
|
87
|
-
if (config.googleApplicationCredentials) {
|
|
88
|
-
process.env.GOOGLE_APPLICATION_CREDENTIALS = config.googleApplicationCredentials;
|
|
89
|
-
}
|
|
90
|
-
const projectId = config.vertexProjectId ?? process.env.GOOGLE_CLOUD_PROJECT;
|
|
91
|
-
const region = config.vertexRegion;
|
|
92
|
-
return new AnthropicVertex({
|
|
93
|
-
projectId,
|
|
94
|
-
region,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (config.provider === "bedrock") {
|
|
98
|
-
const region = config.awsRegion ?? "us-west-2";
|
|
99
|
-
if (config.awsAccessKeyId && config.awsSecretAccessKey) {
|
|
100
|
-
return new AnthropicBedrock({
|
|
101
|
-
awsRegion: region,
|
|
102
|
-
awsAccessKey: config.awsAccessKeyId,
|
|
103
|
-
awsSecretKey: config.awsSecretAccessKey,
|
|
104
|
-
awsSessionToken: config.awsSessionToken ?? null,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
return new AnthropicBedrock({ awsRegion: region });
|
|
108
|
-
}
|
|
109
|
-
if (config.provider === "9router") {
|
|
110
|
-
return new Anthropic({
|
|
111
|
-
apiKey: config.ninerouterApiKey ?? "unused",
|
|
112
|
-
baseURL: config.ninerouterBaseUrl,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
return new Anthropic({
|
|
116
|
-
apiKey: resolveAnthropicApiKey(config),
|
|
117
|
-
...(config.anthropicBaseUrl ? { baseURL: config.anthropicBaseUrl } : {}),
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
export function hasProviderCredentials(provider, config) {
|
|
121
|
-
switch (provider) {
|
|
122
|
-
case "bedrock":
|
|
123
|
-
// purposely ignore awsBearerToken
|
|
124
|
-
return !!(config.awsAccessKeyId && config.awsSecretAccessKey);
|
|
125
|
-
case "anthropic":
|
|
126
|
-
return !!resolveAnthropicApiKey(config);
|
|
127
|
-
case "9router":
|
|
128
|
-
return !!config.ninerouterApiKey;
|
|
129
|
-
case "vertex":
|
|
130
|
-
return !!(config.googleApplicationCredentials ?? process.env.GOOGLE_APPLICATION_CREDENTIALS);
|
|
131
|
-
case "openai":
|
|
132
|
-
return !!resolveOpenAIApiKey(config);
|
|
133
|
-
case "azure-openai":
|
|
134
|
-
return !!(config.azureOpenAIEndpoint && config.azureOpenAIApiKey && config.azureOpenAIDeployment);
|
|
135
|
-
default:
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Return the correct model identifier for direct SDK calls
|
|
141
|
-
* (fast-responder, tool-alarm-evaluator, etc.).
|
|
142
|
-
*
|
|
143
|
-
* Agent SDK `query()` calls do NOT need this - the SDK maps models
|
|
144
|
-
* internally when `CLAUDE_CODE_USE_BEDROCK=1` or `CLAUDE_CODE_USE_VERTEX=1` is set.
|
|
145
|
-
*/
|
|
146
|
-
export function getModelId(config) {
|
|
147
|
-
assertSupportedModelProvider(config.model, config.provider);
|
|
148
|
-
if (config.model === "claude-sonnet-4-6") {
|
|
149
|
-
if (config.provider === "bedrock")
|
|
150
|
-
return BEDROCK_SONNET_MODEL;
|
|
151
|
-
if (config.provider === "9router")
|
|
152
|
-
return NINEROUTER_SONNET_MODEL;
|
|
153
|
-
return ANTHROPIC_SONNET_MODEL;
|
|
154
|
-
}
|
|
155
|
-
if (config.model === "claude-opus-4-6") {
|
|
156
|
-
if (config.provider === "bedrock")
|
|
157
|
-
return BEDROCK_OPUS_MODEL;
|
|
158
|
-
if (config.provider === "9router")
|
|
159
|
-
return NINEROUTER_OPUS_MODEL;
|
|
160
|
-
return ANTHROPIC_OPUS_MODEL;
|
|
161
|
-
}
|
|
162
|
-
return OPENAI_MODEL;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Return the Sonnet model identifier for lightweight side-calls
|
|
166
|
-
* (fast-responder, etc.) that don't need the full Opus model.
|
|
167
|
-
* For non-Claude providers, falls back to the main model.
|
|
168
|
-
*/
|
|
169
|
-
export function getFastResponderModelId(config) {
|
|
170
|
-
if (config.model === "claude-opus-4-6" || config.model === "claude-sonnet-4-6") {
|
|
171
|
-
if (config.provider === "bedrock")
|
|
172
|
-
return BEDROCK_SONNET_MODEL;
|
|
173
|
-
if (config.provider === "9router")
|
|
174
|
-
return NINEROUTER_SONNET_MODEL;
|
|
175
|
-
return ANTHROPIC_SONNET_MODEL;
|
|
176
|
-
}
|
|
177
|
-
return getModelId(config);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Build the `env` record for runtime SDK calls.
|
|
181
|
-
*
|
|
182
|
-
* - Anthropic: passes `ANTHROPIC_API_KEY`.
|
|
183
|
-
* - Bedrock: passes `CLAUDE_CODE_USE_BEDROCK`, `AWS_REGION`,
|
|
184
|
-
* `AWS_BEARER_TOKEN_BEDROCK` (for the Claude Code CLI), and IAM
|
|
185
|
-
* credentials when available.
|
|
186
|
-
* - Vertex: passes `CLAUDE_CODE_USE_VERTEX`, `CLOUD_ML_REGION`,
|
|
187
|
-
* and `GOOGLE_APPLICATION_CREDENTIALS` for service account auth.
|
|
188
|
-
* - OpenAI: passes `OPENAI_API_KEY` for Pi Agent SDK calls.
|
|
189
|
-
* - Azure OpenAI: passes Azure OpenAI endpoint/key/deployment env vars.
|
|
190
|
-
* - 9Router: passes Anthropic-compatible env vars for Claude models and
|
|
191
|
-
* OpenAI-compatible env vars for GPT models.
|
|
192
|
-
*/
|
|
193
|
-
export function buildAgentEnv(config) {
|
|
194
|
-
assertSupportedModelProvider(config.model, config.provider);
|
|
195
|
-
const base = { ...process.env };
|
|
196
|
-
// Trigger SDK auto-compaction at 80% context usage (default is ~95%).
|
|
197
|
-
// This fires between turns within a single query() call, preventing
|
|
198
|
-
// unbounded context growth during long-running agent sessions.
|
|
199
|
-
base.CLAUDE_AUTOCOMPACT_PCT_OVERRIDE = "80";
|
|
200
|
-
// TODO: Consider enabling session-memory compaction for higher-quality
|
|
201
|
-
// summaries: base.ENABLE_CLAUDE_CODE_SM_COMPACT = "1";
|
|
202
|
-
// --- CLI auto-memory ---
|
|
203
|
-
//
|
|
204
|
-
// The Claude Code CLI binary owns auto-memory: it picks up a project
|
|
205
|
-
// memory directory (reported as `memory_paths` on `system/init`), writes
|
|
206
|
-
// `CLAUDE.md` / `MEMORY.md` there after long-running sessions, and
|
|
207
|
-
// surfaces relevant files back into future turns via the recall
|
|
208
|
-
// supervisor (`system/memory_recall` events). We keep the default-ON
|
|
209
|
-
// behavior and observe it in stream-handler.
|
|
210
|
-
//
|
|
211
|
-
// The CLI reads its on/off switch via the env var `CLAUDE_CODE_DISABLE_AUTO_MEMORY`
|
|
212
|
-
// and the settings field `autoMemoryEnabled`. `buildAgentEnv()` spreads
|
|
213
|
-
// `process.env` at the top of this function, so whatever the operator has
|
|
214
|
-
// in their shell (or MDM-managed config) wins. If we ever add our own
|
|
215
|
-
// dial to this, put it here.
|
|
216
|
-
//
|
|
217
|
-
// Defensive: if the outer process has accidentally set
|
|
218
|
-
// `CLAUDE_CODE_DISABLE_AUTO_MEMORY` to a truthy value, log a warning so
|
|
219
|
-
// operators notice. We do not override it — killing a legitimately
|
|
220
|
-
// opted-out environment would be more surprising than losing the
|
|
221
|
-
// observability we just added.
|
|
222
|
-
const disableAutoMemory = base.CLAUDE_CODE_DISABLE_AUTO_MEMORY;
|
|
223
|
-
if (disableAutoMemory && /^(1|true|yes)$/i.test(disableAutoMemory)) {
|
|
224
|
-
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.`);
|
|
225
|
-
}
|
|
226
|
-
if (config.provider === "vertex") {
|
|
227
|
-
base.CLAUDE_CODE_USE_VERTEX = "1";
|
|
228
|
-
base.CLOUD_ML_REGION = config.vertexRegion;
|
|
229
|
-
// Vertex doesn't support all beta features yet; disable to avoid unsupported-header errors
|
|
230
|
-
base.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1";
|
|
231
|
-
if (config.googleApplicationCredentials) {
|
|
232
|
-
base.GOOGLE_APPLICATION_CREDENTIALS = config.googleApplicationCredentials;
|
|
233
|
-
}
|
|
234
|
-
if (config.vertexProjectId) {
|
|
235
|
-
base.GOOGLE_CLOUD_PROJECT = config.vertexProjectId;
|
|
236
|
-
}
|
|
237
|
-
delete base.ANTHROPIC_API_KEY;
|
|
238
|
-
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
239
|
-
delete base.AWS_REGION;
|
|
240
|
-
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
241
|
-
delete base.AWS_ACCESS_KEY_ID;
|
|
242
|
-
delete base.AWS_SECRET_ACCESS_KEY;
|
|
243
|
-
delete base.AWS_SESSION_TOKEN;
|
|
244
|
-
return base;
|
|
245
|
-
}
|
|
246
|
-
if (config.provider === "bedrock") {
|
|
247
|
-
base.CLAUDE_CODE_USE_BEDROCK = "1";
|
|
248
|
-
base.AWS_REGION = config.awsRegion ?? "us-west-2";
|
|
249
|
-
if (config.awsBearerToken)
|
|
250
|
-
base.AWS_BEARER_TOKEN_BEDROCK = config.awsBearerToken;
|
|
251
|
-
if (config.awsAccessKeyId)
|
|
252
|
-
base.AWS_ACCESS_KEY_ID = config.awsAccessKeyId;
|
|
253
|
-
if (config.awsSecretAccessKey)
|
|
254
|
-
base.AWS_SECRET_ACCESS_KEY = config.awsSecretAccessKey;
|
|
255
|
-
if (config.awsSessionToken)
|
|
256
|
-
base.AWS_SESSION_TOKEN = config.awsSessionToken;
|
|
257
|
-
delete base.ANTHROPIC_API_KEY;
|
|
258
|
-
return base;
|
|
259
|
-
}
|
|
260
|
-
if (config.provider === "openai") {
|
|
261
|
-
base.OPENAI_API_KEY = resolveOpenAIApiKey(config);
|
|
262
|
-
delete base.AZURE_OPENAI_ENDPOINT;
|
|
263
|
-
delete base.AZURE_OPENAI_API_KEY;
|
|
264
|
-
delete base.AZURE_OPENAI_API_VERSION;
|
|
265
|
-
delete base.AZURE_OPENAI_DEPLOYMENT;
|
|
266
|
-
delete base.ANTHROPIC_API_KEY;
|
|
267
|
-
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
268
|
-
delete base.AWS_REGION;
|
|
269
|
-
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
270
|
-
delete base.AWS_ACCESS_KEY_ID;
|
|
271
|
-
delete base.AWS_SECRET_ACCESS_KEY;
|
|
272
|
-
delete base.AWS_SESSION_TOKEN;
|
|
273
|
-
return base;
|
|
274
|
-
}
|
|
275
|
-
if (config.provider === "9router" && isGptModel(config.model)) {
|
|
276
|
-
base.OPENAI_API_KEY = config.ninerouterApiKey ?? "unused";
|
|
277
|
-
delete base.ANTHROPIC_API_KEY;
|
|
278
|
-
delete base.ANTHROPIC_BASE_URL;
|
|
279
|
-
delete base.AZURE_OPENAI_ENDPOINT;
|
|
280
|
-
delete base.AZURE_OPENAI_API_KEY;
|
|
281
|
-
delete base.AZURE_OPENAI_API_VERSION;
|
|
282
|
-
delete base.AZURE_OPENAI_DEPLOYMENT;
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
// Anthropic direct API or 9Router (Anthropic-compatible proxy).
|
|
286
|
-
if (config.provider === "9router") {
|
|
287
|
-
base.ANTHROPIC_API_KEY = config.ninerouterApiKey ?? "unused";
|
|
288
|
-
base.ANTHROPIC_BASE_URL = config.ninerouterBaseUrl;
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
base.ANTHROPIC_API_KEY = resolveAnthropicApiKey(config);
|
|
292
|
-
if (config.anthropicBaseUrl) {
|
|
293
|
-
base.ANTHROPIC_BASE_URL = config.anthropicBaseUrl;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
// Dev-mode only: route API calls through the logging proxy
|
|
297
|
-
if (isDevMode && proxyHandle) {
|
|
298
|
-
base.ANTHROPIC_BASE_URL = `http://127.0.0.1:${proxyHandle.port}`;
|
|
299
|
-
}
|
|
300
|
-
delete base.OPENAI_API_KEY;
|
|
301
|
-
delete base.AZURE_OPENAI_ENDPOINT;
|
|
302
|
-
delete base.AZURE_OPENAI_API_KEY;
|
|
303
|
-
delete base.AZURE_OPENAI_API_VERSION;
|
|
304
|
-
delete base.AZURE_OPENAI_DEPLOYMENT;
|
|
305
|
-
}
|
|
306
|
-
delete base.CLAUDE_CODE_USE_BEDROCK;
|
|
307
|
-
delete base.CLAUDE_CODE_USE_VERTEX;
|
|
308
|
-
delete base.AWS_REGION;
|
|
309
|
-
delete base.AWS_BEARER_TOKEN_BEDROCK;
|
|
310
|
-
delete base.AWS_ACCESS_KEY_ID;
|
|
311
|
-
delete base.AWS_SECRET_ACCESS_KEY;
|
|
312
|
-
delete base.AWS_SESSION_TOKEN;
|
|
313
|
-
return base;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Start the API logging proxy for Claude-compatible dev-mode API calls.
|
|
317
|
-
* No-ops in production, for Bedrock/Vertex, for OpenAI-compatible providers,
|
|
318
|
-
* and for 9Router GPT models.
|
|
319
|
-
*
|
|
320
|
-
* Call once at startup, before the first `buildAgentEnv()` call.
|
|
321
|
-
*/
|
|
322
|
-
export async function maybeStartApiProxy(config) {
|
|
323
|
-
if (!isDevMode)
|
|
324
|
-
return;
|
|
325
|
-
if (config.provider !== "anthropic" && config.provider !== "9router")
|
|
326
|
-
return;
|
|
327
|
-
if (isGptModel(config.model))
|
|
328
|
-
return;
|
|
329
|
-
if (proxyHandle)
|
|
330
|
-
return;
|
|
331
|
-
try {
|
|
332
|
-
const logDir = path.join(getConfigDir(), "logs");
|
|
333
|
-
const targetBaseUrl = config.provider === "9router"
|
|
334
|
-
? config.ninerouterBaseUrl
|
|
335
|
-
: (config.anthropicBaseUrl ?? "https://api.anthropic.com");
|
|
336
|
-
proxyHandle = await startApiProxy({ logDir, targetBaseUrl });
|
|
337
|
-
}
|
|
338
|
-
catch (err) {
|
|
339
|
-
logger.warn(`[api-proxy] Failed to start: ${err instanceof Error ? err.message : String(err)}`);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Resolve the Pi `Model<Api>` + API key for the configured provider, so Pi
|
|
344
|
-
* side-calls (fast-responder, tool alarm evaluator, etc.) go through the same
|
|
345
|
-
* provider routing the main Pi agent uses.
|
|
346
|
-
*
|
|
347
|
-
* Mirrors `PiAgentSession.resolvePiModel()` / `getApiKey()` — keep them in
|
|
348
|
-
* sync if you change one.
|
|
349
|
-
*/
|
|
350
|
-
export function resolvePiSideCallModel(config) {
|
|
351
|
-
const modelId = getModelId(config);
|
|
352
|
-
if (config.provider === "azure-openai") {
|
|
353
|
-
const endpoint = requireConfigSetting("azureOpenAIEndpoint", config.azureOpenAIEndpoint);
|
|
354
|
-
const deployment = requireConfigSetting("azureOpenAIDeployment", config.azureOpenAIDeployment);
|
|
355
|
-
return {
|
|
356
|
-
model: {
|
|
357
|
-
id: deployment,
|
|
358
|
-
name: modelId,
|
|
359
|
-
api: "azure-openai-responses",
|
|
360
|
-
provider: "azure-openai-responses",
|
|
361
|
-
baseUrl: endpoint,
|
|
362
|
-
reasoning: true,
|
|
363
|
-
input: ["text", "image"],
|
|
364
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
365
|
-
contextWindow: 1_000_000,
|
|
366
|
-
maxTokens: 100_000,
|
|
367
|
-
},
|
|
368
|
-
apiKey: requireConfigSetting("azureOpenAIApiKey", config.azureOpenAIApiKey),
|
|
369
|
-
};
|
|
370
|
-
}
|
|
371
|
-
if (config.provider === "9router") {
|
|
372
|
-
const apiKey = requireConfigSetting("ninerouterApiKey", config.ninerouterApiKey);
|
|
373
|
-
const baseUrl = normalizeOpenAICompatibleBaseUrl(requireConfigSetting("ninerouterBaseUrl", config.ninerouterBaseUrl));
|
|
374
|
-
return {
|
|
375
|
-
model: {
|
|
376
|
-
id: modelId,
|
|
377
|
-
name: modelId,
|
|
378
|
-
api: "openai-completions",
|
|
379
|
-
provider: "9router",
|
|
380
|
-
baseUrl,
|
|
381
|
-
reasoning: false,
|
|
382
|
-
input: ["text", "image"],
|
|
383
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
384
|
-
contextWindow: 1_000_000,
|
|
385
|
-
maxTokens: 100_000,
|
|
386
|
-
},
|
|
387
|
-
apiKey,
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
if (modelId === "gpt-5.5" || modelId === "gpt-5.5-pro") {
|
|
391
|
-
return {
|
|
392
|
-
model: getModel("openai", modelId),
|
|
393
|
-
apiKey: requireConfigSetting("openaiApiKey", resolveOpenAIApiKey(config)),
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
return {
|
|
397
|
-
model: {
|
|
398
|
-
id: modelId,
|
|
399
|
-
name: modelId,
|
|
400
|
-
api: "openai-responses",
|
|
401
|
-
provider: "openai",
|
|
402
|
-
baseUrl: "https://api.openai.com",
|
|
403
|
-
reasoning: true,
|
|
404
|
-
input: ["text", "image"],
|
|
405
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
406
|
-
contextWindow: 1_000_000,
|
|
407
|
-
maxTokens: 100_000,
|
|
408
|
-
},
|
|
409
|
-
apiKey: requireConfigSetting("openaiApiKey", resolveOpenAIApiKey(config)),
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
export async function runSideCall(config, options) {
|
|
413
|
-
const maxTokens = options.maxTokens ?? 2048;
|
|
414
|
-
if (isGptModel(config.model)) {
|
|
415
|
-
const piOptions = {
|
|
416
|
-
systemPrompt: options.systemPrompt,
|
|
417
|
-
userMessage: options.userMessage,
|
|
418
|
-
maxTokens,
|
|
419
|
-
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
420
|
-
};
|
|
421
|
-
if ("schema" in options) {
|
|
422
|
-
const schemaName = options.schemaName ?? "side_call_response";
|
|
423
|
-
const openAIResponseFormat = zodResponseFormat(options.schema, schemaName);
|
|
424
|
-
piOptions.systemPrompt = appendPiStructuredOutputHint(options.systemPrompt, openAIResponseFormat);
|
|
425
|
-
piOptions.onPayload = (payload, model) => injectPiStructuredOutput(payload, model, openAIResponseFormat);
|
|
426
|
-
}
|
|
427
|
-
const text = await runPiSideCallText(config, piOptions);
|
|
428
|
-
return "schema" in options ? options.schema.parse(JSON.parse(stripJsonFence(text))) : text;
|
|
429
|
-
}
|
|
430
|
-
const client = createClient(config);
|
|
431
|
-
const response = await client.messages.create({
|
|
432
|
-
model: options.modelId ?? getFastResponderModelId(config),
|
|
433
|
-
max_tokens: maxTokens,
|
|
434
|
-
...("schema" in options
|
|
435
|
-
? {
|
|
436
|
-
output_config: {
|
|
437
|
-
format: zodOutputFormat(options.schema),
|
|
438
|
-
effort: "low",
|
|
439
|
-
},
|
|
440
|
-
}
|
|
441
|
-
: {}),
|
|
442
|
-
system: options.systemPrompt,
|
|
443
|
-
messages: [{ role: "user", content: options.userMessage }],
|
|
444
|
-
stream: false,
|
|
445
|
-
}, options.timeoutMs !== undefined ? { timeout: options.timeoutMs } : undefined);
|
|
446
|
-
const text = response.content[0]?.type === "text" ? response.content[0].text : "";
|
|
447
|
-
if (!text) {
|
|
448
|
-
throw new Error("Claude side call returned no text content");
|
|
449
|
-
}
|
|
450
|
-
return "schema" in options ? options.schema.parse(JSON.parse(text)) : text;
|
|
451
|
-
}
|
|
452
|
-
function appendPiStructuredOutputHint(systemPrompt, responseFormat) {
|
|
453
|
-
return [
|
|
454
|
-
systemPrompt,
|
|
455
|
-
"",
|
|
456
|
-
"## Output format",
|
|
457
|
-
"Return exactly one valid JSON object. Do not include markdown fences, prose, or any text outside the JSON object.",
|
|
458
|
-
`The JSON object must conform to this schema: ${JSON.stringify(responseFormat.json_schema.schema)}`,
|
|
459
|
-
].join("\n");
|
|
460
|
-
}
|
|
461
|
-
async function runPiSideCallText(config, options) {
|
|
462
|
-
const { model, apiKey } = resolvePiSideCallModel(config);
|
|
463
|
-
const result = await complete(model, {
|
|
464
|
-
systemPrompt: options.systemPrompt,
|
|
465
|
-
messages: [
|
|
466
|
-
{
|
|
467
|
-
role: "user",
|
|
468
|
-
content: [{ type: "text", text: options.userMessage }],
|
|
469
|
-
timestamp: Date.now(),
|
|
470
|
-
},
|
|
471
|
-
],
|
|
472
|
-
}, {
|
|
473
|
-
apiKey,
|
|
474
|
-
maxTokens: options.maxTokens,
|
|
475
|
-
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
476
|
-
...(options.onPayload ? { onPayload: options.onPayload } : {}),
|
|
477
|
-
});
|
|
478
|
-
if (result.errorMessage) {
|
|
479
|
-
throw new Error(`Pi side call failed: ${result.errorMessage}`);
|
|
480
|
-
}
|
|
481
|
-
const text = result.content
|
|
482
|
-
.filter((block) => block.type === "text")
|
|
483
|
-
.map((block) => block.text)
|
|
484
|
-
.join("")
|
|
485
|
-
.trim();
|
|
486
|
-
if (!text) {
|
|
487
|
-
throw new Error("Pi side call returned no text content");
|
|
488
|
-
}
|
|
489
|
-
return text;
|
|
490
|
-
}
|
|
491
|
-
function injectPiStructuredOutput(payload, model, responseFormat) {
|
|
492
|
-
if (typeof payload !== "object" || payload === null)
|
|
493
|
-
return payload;
|
|
494
|
-
const record = payload;
|
|
495
|
-
if (model.api === "openai-responses" || model.api === "azure-openai-responses") {
|
|
496
|
-
const existingText = typeof record.text === "object" && record.text !== null
|
|
497
|
-
? record.text
|
|
498
|
-
: {};
|
|
499
|
-
return {
|
|
500
|
-
...record,
|
|
501
|
-
text: {
|
|
502
|
-
...existingText,
|
|
503
|
-
format: toOpenAIResponsesTextFormat(responseFormat),
|
|
504
|
-
},
|
|
505
|
-
};
|
|
506
|
-
}
|
|
507
|
-
if (model.api === "openai-completions") {
|
|
508
|
-
return {
|
|
509
|
-
...record,
|
|
510
|
-
response_format: { type: "json_object" },
|
|
511
|
-
};
|
|
512
|
-
}
|
|
513
|
-
return payload;
|
|
514
|
-
}
|
|
515
|
-
function toOpenAIResponsesTextFormat(responseFormat) {
|
|
516
|
-
const { name, schema, strict, description } = responseFormat.json_schema;
|
|
517
|
-
return {
|
|
518
|
-
type: "json_schema",
|
|
519
|
-
name,
|
|
520
|
-
schema,
|
|
521
|
-
...(strict !== undefined ? { strict } : {}),
|
|
522
|
-
...(description !== undefined ? { description } : {}),
|
|
523
|
-
};
|
|
524
|
-
}
|
|
525
|
-
function normalizeOpenAICompatibleBaseUrl(baseUrl) {
|
|
526
|
-
const trimmed = baseUrl.trim().replace(/\/+$/, "");
|
|
527
|
-
return trimmed.endsWith("/v1") ? trimmed : `${trimmed}/v1`;
|
|
528
|
-
}
|
|
529
|
-
function requireConfigSetting(name, value) {
|
|
530
|
-
const trimmed = value?.trim();
|
|
531
|
-
if (trimmed)
|
|
532
|
-
return trimmed;
|
|
533
|
-
throw new Error(`Side-call provider requires ${name}`);
|
|
534
|
-
}
|
|
535
|
-
function stripJsonFence(text) {
|
|
536
|
-
const trimmed = text.trim();
|
|
537
|
-
const fenceMatch = /^```(?:json)?\s*([\s\S]*?)\s*```$/i.exec(trimmed);
|
|
538
|
-
return fenceMatch ? fenceMatch[1].trim() : trimmed;
|
|
539
|
-
}
|
|
540
|
-
//# sourceMappingURL=model-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-provider.js","sourceRoot":"","sources":["../../src/agent/model-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Backfill historical VisionClaw runtime logs into the transcript-memory
|
|
3
|
-
* database.
|
|
4
|
-
*
|
|
5
|
-
* IMPORTANT — terminology:
|
|
6
|
-
* - "Log files" = VisionClaw runtime logs stored at
|
|
7
|
-
* `~/.visionclaw/profiles/<profile>/logs/YYYY-MM-DD.jsonl(.gz)`.
|
|
8
|
-
* Format: `{timestamp, level, category, message, data}`.
|
|
9
|
-
* - "Transcript files" = Claude Agent SDK model transcripts stored at
|
|
10
|
-
* `~/.claude/projects/<slug>/<sessionId>.jsonl`.
|
|
11
|
-
* Format: `{type:"user"|"assistant", message:{...}}`.
|
|
12
|
-
*
|
|
13
|
-
* This module operates on **log files** (not Claude transcripts).
|
|
14
|
-
*
|
|
15
|
-
* Reads JSONL (and JSONL.gz) log files from the configured logs directory,
|
|
16
|
-
* segments them into wake cycles (wake → next wake / end-of-file boundaries),
|
|
17
|
-
* matching the existing data-processing segmenter, then generates
|
|
18
|
-
* summaries + embeddings via Gemini, and inserts them into the same SQLite
|
|
19
|
-
* DB used by the live transcript indexer.
|
|
20
|
-
*
|
|
21
|
-
* Usage:
|
|
22
|
-
* visionclaw backfill-memory [--dry-run] [--since YYYY-MM-DD] [--concurrency N]
|
|
23
|
-
*/
|
|
24
|
-
import type { VisionClawConfig } from "../../config/types.js";
|
|
25
|
-
export declare function runBackfillMemory(args: string[]): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Cancel any in-progress auto-backfill. Safe to call multiple times or when
|
|
28
|
-
* no backfill is running.
|
|
29
|
-
*/
|
|
30
|
-
export declare function cancelAutoBackfill(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Check whether auto-backfill should run and execute it if needed.
|
|
33
|
-
* Called from the agent loop on startup (fire-and-forget).
|
|
34
|
-
*
|
|
35
|
-
* Conditions for auto-backfill:
|
|
36
|
-
* 1. No marker file exists (hasn't been done before)
|
|
37
|
-
* 2. The transcript-memory DB has no entries (empty/new)
|
|
38
|
-
* 3. Historical log files exist in the logs directory
|
|
39
|
-
*
|
|
40
|
-
* Robustness:
|
|
41
|
-
* - Respects an AbortSignal so the agent can stop it on shutdown.
|
|
42
|
-
* - Idempotent: already-indexed cycles are skipped via `wakeCycleExists()`.
|
|
43
|
-
* - Crash-safe: the marker file is only written after all cycles are
|
|
44
|
-
* processed. On restart the backfill resumes, skipping existing records.
|
|
45
|
-
* - Concurrent writes: live `indexWakeCycle()` can run in parallel. SQLite
|
|
46
|
-
* WAL mode + in-process synchronous driver ensures serialized writes.
|
|
47
|
-
* - DB closed during backfill: all DB operations are wrapped in try/catch
|
|
48
|
-
* so a closed-DB error does not crash the process.
|
|
49
|
-
*
|
|
50
|
-
* The backfill runs with a longer delay between API calls (500ms)
|
|
51
|
-
* to avoid competing with the agent's own Gemini usage.
|
|
52
|
-
*/
|
|
53
|
-
export declare function maybeAutoBackfill(config: VisionClawConfig): Promise<void>;
|
|
54
|
-
//# sourceMappingURL=transcript-backfill.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transcript-backfill.d.ts","sourceRoot":"","sources":["../../../src/agent/transcript/transcript-backfill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA2a9D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkIrE;AAyBD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAiJf"}
|