profclaw 0.0.1-beta.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/.env.example +215 -0
- package/CHANGELOG.md +49 -0
- package/CONTRIBUTING.md +119 -0
- package/Dockerfile +107 -0
- package/LICENSE +661 -0
- package/README.md +196 -0
- package/config/agents.yml +55 -0
- package/config/budget.yml +15 -0
- package/config/pricing.yml +46 -0
- package/config/settings.yml +168 -0
- package/dist/adapters/claude-code.d.ts +46 -0
- package/dist/adapters/claude-code.js +215 -0
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.js +4 -0
- package/dist/adapters/ollama.d.ts +45 -0
- package/dist/adapters/ollama.js +277 -0
- package/dist/adapters/openclaw.d.ts +60 -0
- package/dist/adapters/openclaw.js +289 -0
- package/dist/adapters/registry.d.ts +56 -0
- package/dist/adapters/registry.js +163 -0
- package/dist/agents/executor.d.ts +78 -0
- package/dist/agents/executor.js +657 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.js +27 -0
- package/dist/agents/stop-conditions.d.ts +108 -0
- package/dist/agents/stop-conditions.js +299 -0
- package/dist/agents/types.d.ts +185 -0
- package/dist/agents/types.js +14 -0
- package/dist/ai/embedding-service.d.ts +96 -0
- package/dist/ai/embedding-service.js +333 -0
- package/dist/auth/api-tokens.d.ts +71 -0
- package/dist/auth/api-tokens.js +235 -0
- package/dist/auth/auth-service.d.ts +75 -0
- package/dist/auth/auth-service.js +557 -0
- package/dist/auth/device-identity.d.ts +96 -0
- package/dist/auth/device-identity.js +250 -0
- package/dist/auth/github-oauth.d.ts +20 -0
- package/dist/auth/github-oauth.js +59 -0
- package/dist/auth/jira-oauth.d.ts +25 -0
- package/dist/auth/jira-oauth.js +75 -0
- package/dist/auth/linear-oauth.d.ts +21 -0
- package/dist/auth/linear-oauth.js +59 -0
- package/dist/auth/middleware.d.ts +44 -0
- package/dist/auth/middleware.js +190 -0
- package/dist/auth/pairing-codes.d.ts +109 -0
- package/dist/auth/pairing-codes.js +274 -0
- package/dist/auth/password.d.ts +53 -0
- package/dist/auth/password.js +126 -0
- package/dist/auth/qr-pairing.d.ts +36 -0
- package/dist/auth/qr-pairing.js +138 -0
- package/dist/auth/slack-oauth.d.ts +31 -0
- package/dist/auth/slack-oauth.js +80 -0
- package/dist/backup/index.d.ts +50 -0
- package/dist/backup/index.js +184 -0
- package/dist/browser/adapters.d.ts +25 -0
- package/dist/browser/adapters.js +32 -0
- package/dist/browser/cli.d.ts +19 -0
- package/dist/browser/cli.js +277 -0
- package/dist/browser/compression.d.ts +32 -0
- package/dist/browser/compression.js +269 -0
- package/dist/browser/extensions.d.ts +144 -0
- package/dist/browser/extensions.js +251 -0
- package/dist/browser/index.d.ts +37 -0
- package/dist/browser/index.js +43 -0
- package/dist/browser/refs.d.ts +46 -0
- package/dist/browser/refs.js +120 -0
- package/dist/browser/search.d.ts +36 -0
- package/dist/browser/search.js +193 -0
- package/dist/browser/service.d.ts +94 -0
- package/dist/browser/service.js +358 -0
- package/dist/browser/snapshot.d.ts +19 -0
- package/dist/browser/snapshot.js +250 -0
- package/dist/browser/tools.d.ts +259 -0
- package/dist/browser/tools.js +463 -0
- package/dist/browser/types.d.ts +134 -0
- package/dist/browser/types.js +17 -0
- package/dist/chat/agentic-executor.d.ts +108 -0
- package/dist/chat/agentic-executor.js +739 -0
- package/dist/chat/api-key-detector.d.ts +41 -0
- package/dist/chat/api-key-detector.js +290 -0
- package/dist/chat/auto-reply.d.ts +90 -0
- package/dist/chat/auto-reply.js +272 -0
- package/dist/chat/conversations.d.ts +91 -0
- package/dist/chat/conversations.js +297 -0
- package/dist/chat/execution/audit.d.ts +192 -0
- package/dist/chat/execution/audit.js +323 -0
- package/dist/chat/execution/executor.d.ts +56 -0
- package/dist/chat/execution/executor.js +654 -0
- package/dist/chat/execution/guardrails.d.ts +98 -0
- package/dist/chat/execution/guardrails.js +571 -0
- package/dist/chat/execution/index.d.ts +61 -0
- package/dist/chat/execution/index.js +129 -0
- package/dist/chat/execution/model-capability.d.ts +34 -0
- package/dist/chat/execution/model-capability.js +96 -0
- package/dist/chat/execution/process-pool.d.ts +110 -0
- package/dist/chat/execution/process-pool.js +290 -0
- package/dist/chat/execution/pty.d.ts +92 -0
- package/dist/chat/execution/pty.js +285 -0
- package/dist/chat/execution/rate-limiter.d.ts +87 -0
- package/dist/chat/execution/rate-limiter.js +305 -0
- package/dist/chat/execution/registry.d.ts +54 -0
- package/dist/chat/execution/registry.js +220 -0
- package/dist/chat/execution/sandbox.d.ts +109 -0
- package/dist/chat/execution/sandbox.js +684 -0
- package/dist/chat/execution/secrets.d.ts +45 -0
- package/dist/chat/execution/secrets.js +338 -0
- package/dist/chat/execution/security.d.ts +179 -0
- package/dist/chat/execution/security.js +739 -0
- package/dist/chat/execution/self-correction.d.ts +162 -0
- package/dist/chat/execution/self-correction.js +557 -0
- package/dist/chat/execution/session-manager.d.ts +79 -0
- package/dist/chat/execution/session-manager.js +356 -0
- package/dist/chat/execution/session-spawn/config.d.ts +37 -0
- package/dist/chat/execution/session-spawn/config.js +83 -0
- package/dist/chat/execution/session-spawn/index.d.ts +10 -0
- package/dist/chat/execution/session-spawn/index.js +10 -0
- package/dist/chat/execution/session-spawn/manager.d.ts +35 -0
- package/dist/chat/execution/session-spawn/manager.js +418 -0
- package/dist/chat/execution/session-spawn/types.d.ts +117 -0
- package/dist/chat/execution/session-spawn/types.js +16 -0
- package/dist/chat/execution/smart-prompts.d.ts +34 -0
- package/dist/chat/execution/smart-prompts.js +151 -0
- package/dist/chat/execution/stream-results.d.ts +65 -0
- package/dist/chat/execution/stream-results.js +156 -0
- package/dist/chat/execution/tool-router.d.ts +76 -0
- package/dist/chat/execution/tool-router.js +296 -0
- package/dist/chat/execution/tools/agents-list.d.ts +49 -0
- package/dist/chat/execution/tools/agents-list.js +165 -0
- package/dist/chat/execution/tools/browser.d.ts +12 -0
- package/dist/chat/execution/tools/browser.js +14 -0
- package/dist/chat/execution/tools/canvas.d.ts +61 -0
- package/dist/chat/execution/tools/canvas.js +150 -0
- package/dist/chat/execution/tools/complete-task.d.ts +72 -0
- package/dist/chat/execution/tools/complete-task.js +104 -0
- package/dist/chat/execution/tools/cron-tool.d.ts +204 -0
- package/dist/chat/execution/tools/cron-tool.js +680 -0
- package/dist/chat/execution/tools/discord-actions.d.ts +120 -0
- package/dist/chat/execution/tools/discord-actions.js +361 -0
- package/dist/chat/execution/tools/exec.d.ts +43 -0
- package/dist/chat/execution/tools/exec.js +223 -0
- package/dist/chat/execution/tools/file-ops.d.ts +175 -0
- package/dist/chat/execution/tools/file-ops.js +723 -0
- package/dist/chat/execution/tools/git.d.ts +143 -0
- package/dist/chat/execution/tools/git.js +395 -0
- package/dist/chat/execution/tools/github.d.ts +42 -0
- package/dist/chat/execution/tools/github.js +184 -0
- package/dist/chat/execution/tools/glinr-ops.d.ts +202 -0
- package/dist/chat/execution/tools/glinr-ops.js +694 -0
- package/dist/chat/execution/tools/image-analyze.d.ts +29 -0
- package/dist/chat/execution/tools/image-analyze.js +127 -0
- package/dist/chat/execution/tools/index.d.ts +64 -0
- package/dist/chat/execution/tools/index.js +245 -0
- package/dist/chat/execution/tools/integrations.d.ts +109 -0
- package/dist/chat/execution/tools/integrations.js +237 -0
- package/dist/chat/execution/tools/link-understand.d.ts +34 -0
- package/dist/chat/execution/tools/link-understand.js +307 -0
- package/dist/chat/execution/tools/maintenance.d.ts +29 -0
- package/dist/chat/execution/tools/maintenance.js +105 -0
- package/dist/chat/execution/tools/memory-tools.d.ts +76 -0
- package/dist/chat/execution/tools/memory-tools.js +278 -0
- package/dist/chat/execution/tools/openai-image-gen.d.ts +51 -0
- package/dist/chat/execution/tools/openai-image-gen.js +212 -0
- package/dist/chat/execution/tools/profclaw-ops.d.ts +204 -0
- package/dist/chat/execution/tools/profclaw-ops.js +665 -0
- package/dist/chat/execution/tools/session-spawn.d.ts +146 -0
- package/dist/chat/execution/tools/session-spawn.js +544 -0
- package/dist/chat/execution/tools/session-status.d.ts +38 -0
- package/dist/chat/execution/tools/session-status.js +185 -0
- package/dist/chat/execution/tools/sessions-list.d.ts +49 -0
- package/dist/chat/execution/tools/sessions-list.js +153 -0
- package/dist/chat/execution/tools/sessions-send.d.ts +48 -0
- package/dist/chat/execution/tools/sessions-send.js +207 -0
- package/dist/chat/execution/tools/sessions-spawn.d.ts +51 -0
- package/dist/chat/execution/tools/sessions-spawn.js +137 -0
- package/dist/chat/execution/tools/slack-actions.d.ts +90 -0
- package/dist/chat/execution/tools/slack-actions.js +272 -0
- package/dist/chat/execution/tools/subagent-orchestrate.d.ts +66 -0
- package/dist/chat/execution/tools/subagent-orchestrate.js +313 -0
- package/dist/chat/execution/tools/system.d.ts +121 -0
- package/dist/chat/execution/tools/system.js +415 -0
- package/dist/chat/execution/tools/telegram-actions.d.ts +126 -0
- package/dist/chat/execution/tools/telegram-actions.js +339 -0
- package/dist/chat/execution/tools/test-run.d.ts +43 -0
- package/dist/chat/execution/tools/test-run.js +391 -0
- package/dist/chat/execution/tools/tts-speak.d.ts +39 -0
- package/dist/chat/execution/tools/tts-speak.js +199 -0
- package/dist/chat/execution/tools/web-fetch.d.ts +42 -0
- package/dist/chat/execution/tools/web-fetch.js +247 -0
- package/dist/chat/execution/tools/web-search.d.ts +53 -0
- package/dist/chat/execution/tools/web-search.js +130 -0
- package/dist/chat/execution/types.d.ts +337 -0
- package/dist/chat/execution/types.js +8 -0
- package/dist/chat/execution/workflows/built-in.d.ts +10 -0
- package/dist/chat/execution/workflows/built-in.js +249 -0
- package/dist/chat/execution/workflows/executor.d.ts +13 -0
- package/dist/chat/execution/workflows/executor.js +259 -0
- package/dist/chat/execution/workflows/index.d.ts +5 -0
- package/dist/chat/execution/workflows/index.js +5 -0
- package/dist/chat/execution/workflows/trigger.d.ts +15 -0
- package/dist/chat/execution/workflows/trigger.js +111 -0
- package/dist/chat/execution/workflows/types.d.ts +80 -0
- package/dist/chat/execution/workflows/types.js +2 -0
- package/dist/chat/failover/error.d.ts +73 -0
- package/dist/chat/failover/error.js +412 -0
- package/dist/chat/failover/index.d.ts +10 -0
- package/dist/chat/failover/index.js +11 -0
- package/dist/chat/failover/model-fallback.d.ts +97 -0
- package/dist/chat/failover/model-fallback.js +328 -0
- package/dist/chat/failover/types.d.ts +47 -0
- package/dist/chat/failover/types.js +8 -0
- package/dist/chat/format/chunk.d.ts +59 -0
- package/dist/chat/format/chunk.js +253 -0
- package/dist/chat/format/index.d.ts +7 -0
- package/dist/chat/format/index.js +7 -0
- package/dist/chat/format/tool-result-formatter.d.ts +30 -0
- package/dist/chat/format/tool-result-formatter.js +177 -0
- package/dist/chat/group.d.ts +232 -0
- package/dist/chat/group.js +311 -0
- package/dist/chat/index.d.ts +21 -0
- package/dist/chat/index.js +30 -0
- package/dist/chat/memory.d.ts +108 -0
- package/dist/chat/memory.js +343 -0
- package/dist/chat/message-handler.d.ts +38 -0
- package/dist/chat/message-handler.js +274 -0
- package/dist/chat/proactive/index.d.ts +167 -0
- package/dist/chat/proactive/index.js +721 -0
- package/dist/chat/prompt-adapter.d.ts +52 -0
- package/dist/chat/prompt-adapter.js +245 -0
- package/dist/chat/providers/dingtalk/index.d.ts +69 -0
- package/dist/chat/providers/dingtalk/index.js +225 -0
- package/dist/chat/providers/discord/index.d.ts +264 -0
- package/dist/chat/providers/discord/index.js +657 -0
- package/dist/chat/providers/feishu/index.d.ts +97 -0
- package/dist/chat/providers/feishu/index.js +362 -0
- package/dist/chat/providers/googlechat/index.d.ts +269 -0
- package/dist/chat/providers/googlechat/index.js +634 -0
- package/dist/chat/providers/imessage/index.d.ts +61 -0
- package/dist/chat/providers/imessage/index.js +166 -0
- package/dist/chat/providers/index.d.ts +76 -0
- package/dist/chat/providers/index.js +430 -0
- package/dist/chat/providers/irc/index.d.ts +101 -0
- package/dist/chat/providers/irc/index.js +557 -0
- package/dist/chat/providers/line/index.d.ts +113 -0
- package/dist/chat/providers/line/index.js +434 -0
- package/dist/chat/providers/matrix/index.d.ts +161 -0
- package/dist/chat/providers/matrix/index.js +559 -0
- package/dist/chat/providers/mattermost/index.d.ts +106 -0
- package/dist/chat/providers/mattermost/index.js +425 -0
- package/dist/chat/providers/msteams/index.d.ts +198 -0
- package/dist/chat/providers/msteams/index.js +694 -0
- package/dist/chat/providers/nextcloud/index.d.ts +52 -0
- package/dist/chat/providers/nextcloud/index.js +156 -0
- package/dist/chat/providers/nostr/index.d.ts +60 -0
- package/dist/chat/providers/nostr/index.js +200 -0
- package/dist/chat/providers/qq/index.d.ts +57 -0
- package/dist/chat/providers/qq/index.js +260 -0
- package/dist/chat/providers/registry.d.ts +89 -0
- package/dist/chat/providers/registry.js +213 -0
- package/dist/chat/providers/signal/index.d.ts +88 -0
- package/dist/chat/providers/signal/index.js +357 -0
- package/dist/chat/providers/slack/index.d.ts +52 -0
- package/dist/chat/providers/slack/index.js +477 -0
- package/dist/chat/providers/synology/index.d.ts +50 -0
- package/dist/chat/providers/synology/index.js +138 -0
- package/dist/chat/providers/telegram/index.d.ts +148 -0
- package/dist/chat/providers/telegram/index.js +492 -0
- package/dist/chat/providers/tlon/index.d.ts +44 -0
- package/dist/chat/providers/tlon/index.js +243 -0
- package/dist/chat/providers/twitch/index.d.ts +79 -0
- package/dist/chat/providers/twitch/index.js +349 -0
- package/dist/chat/providers/types.d.ts +437 -0
- package/dist/chat/providers/types.js +14 -0
- package/dist/chat/providers/webchat/index.d.ts +38 -0
- package/dist/chat/providers/webchat/index.js +214 -0
- package/dist/chat/providers/wecom/index.d.ts +62 -0
- package/dist/chat/providers/wecom/index.js +228 -0
- package/dist/chat/providers/whatsapp/index.d.ts +147 -0
- package/dist/chat/providers/whatsapp/index.js +396 -0
- package/dist/chat/providers/zalo/index.d.ts +54 -0
- package/dist/chat/providers/zalo/index.js +158 -0
- package/dist/chat/providers/zalo-personal/index.d.ts +53 -0
- package/dist/chat/providers/zalo-personal/index.js +212 -0
- package/dist/chat/skills.d.ts +82 -0
- package/dist/chat/skills.js +410 -0
- package/dist/chat/system-prompts.d.ts +76 -0
- package/dist/chat/system-prompts.js +407 -0
- package/dist/chat/tool-handler.d.ts +57 -0
- package/dist/chat/tool-handler.js +336 -0
- package/dist/chat/tools.d.ts +373 -0
- package/dist/chat/tools.js +512 -0
- package/dist/cli/commands/agent.d.ts +3 -0
- package/dist/cli/commands/agent.js +108 -0
- package/dist/cli/commands/auth.d.ts +12 -0
- package/dist/cli/commands/auth.js +301 -0
- package/dist/cli/commands/browser.d.ts +3 -0
- package/dist/cli/commands/browser.js +138 -0
- package/dist/cli/commands/canvas.d.ts +3 -0
- package/dist/cli/commands/canvas.js +155 -0
- package/dist/cli/commands/channels.d.ts +3 -0
- package/dist/cli/commands/channels.js +167 -0
- package/dist/cli/commands/chat.d.ts +9 -0
- package/dist/cli/commands/chat.js +360 -0
- package/dist/cli/commands/completion.d.ts +3 -0
- package/dist/cli/commands/completion.js +170 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.js +193 -0
- package/dist/cli/commands/cost.d.ts +3 -0
- package/dist/cli/commands/cost.js +134 -0
- package/dist/cli/commands/daemon.d.ts +3 -0
- package/dist/cli/commands/daemon.js +381 -0
- package/dist/cli/commands/devices.d.ts +3 -0
- package/dist/cli/commands/devices.js +150 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +295 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.js +139 -0
- package/dist/cli/commands/mcp.d.ts +15 -0
- package/dist/cli/commands/mcp.js +157 -0
- package/dist/cli/commands/memory.d.ts +3 -0
- package/dist/cli/commands/memory.js +170 -0
- package/dist/cli/commands/models.d.ts +3 -0
- package/dist/cli/commands/models.js +197 -0
- package/dist/cli/commands/nodes.d.ts +3 -0
- package/dist/cli/commands/nodes.js +193 -0
- package/dist/cli/commands/onboard.d.ts +13 -0
- package/dist/cli/commands/onboard.js +360 -0
- package/dist/cli/commands/plugin.d.ts +15 -0
- package/dist/cli/commands/plugin.js +226 -0
- package/dist/cli/commands/provider.d.ts +16 -0
- package/dist/cli/commands/provider.js +320 -0
- package/dist/cli/commands/security.d.ts +3 -0
- package/dist/cli/commands/security.js +180 -0
- package/dist/cli/commands/serve.d.ts +3 -0
- package/dist/cli/commands/serve.js +179 -0
- package/dist/cli/commands/session.d.ts +3 -0
- package/dist/cli/commands/session.js +172 -0
- package/dist/cli/commands/setup.d.ts +13 -0
- package/dist/cli/commands/setup.js +636 -0
- package/dist/cli/commands/skill.d.ts +15 -0
- package/dist/cli/commands/skill.js +191 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.js +71 -0
- package/dist/cli/commands/summary.d.ts +3 -0
- package/dist/cli/commands/summary.js +160 -0
- package/dist/cli/commands/task.d.ts +3 -0
- package/dist/cli/commands/task.js +170 -0
- package/dist/cli/commands/ticket.d.ts +3 -0
- package/dist/cli/commands/ticket.js +421 -0
- package/dist/cli/commands/tools.d.ts +9 -0
- package/dist/cli/commands/tools.js +508 -0
- package/dist/cli/commands/tui.d.ts +3 -0
- package/dist/cli/commands/tui.js +158 -0
- package/dist/cli/commands/tunnel.d.ts +3 -0
- package/dist/cli/commands/tunnel.js +135 -0
- package/dist/cli/commands/webhooks.d.ts +3 -0
- package/dist/cli/commands/webhooks.js +191 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/utils/api.d.ts +17 -0
- package/dist/cli/utils/api.js +63 -0
- package/dist/cli/utils/config.d.ts +31 -0
- package/dist/cli/utils/config.js +81 -0
- package/dist/cli/utils/output.d.ts +58 -0
- package/dist/cli/utils/output.js +148 -0
- package/dist/core/deployment.d.ts +30 -0
- package/dist/core/deployment.js +114 -0
- package/dist/core/sandbox-config.d.ts +63 -0
- package/dist/core/sandbox-config.js +148 -0
- package/dist/costs/budget.d.ts +28 -0
- package/dist/costs/budget.js +57 -0
- package/dist/costs/persistence.d.ts +77 -0
- package/dist/costs/persistence.js +210 -0
- package/dist/costs/pricing.d.ts +16 -0
- package/dist/costs/pricing.js +39 -0
- package/dist/costs/token-tracker.d.ts +34 -0
- package/dist/costs/token-tracker.js +141 -0
- package/dist/cron/heartbeat.d.ts +23 -0
- package/dist/cron/heartbeat.js +109 -0
- package/dist/cron/index.d.ts +22 -0
- package/dist/cron/index.js +37 -0
- package/dist/cron/issue-poller.d.ts +15 -0
- package/dist/cron/issue-poller.js +174 -0
- package/dist/cron/scheduler.d.ts +315 -0
- package/dist/cron/scheduler.js +1008 -0
- package/dist/cron/stale-checker.d.ts +16 -0
- package/dist/cron/stale-checker.js +61 -0
- package/dist/cron/templates.d.ts +107 -0
- package/dist/cron/templates.js +395 -0
- package/dist/diagnostics/exporters.d.ts +21 -0
- package/dist/diagnostics/exporters.js +138 -0
- package/dist/diagnostics/index.d.ts +10 -0
- package/dist/diagnostics/index.js +9 -0
- package/dist/diagnostics/middleware.d.ts +12 -0
- package/dist/diagnostics/middleware.js +58 -0
- package/dist/diagnostics/tracer.d.ts +133 -0
- package/dist/diagnostics/tracer.js +257 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.js +7 -0
- package/dist/discovery/mdns.d.ts +40 -0
- package/dist/discovery/mdns.js +249 -0
- package/dist/gateway/index.d.ts +35 -0
- package/dist/gateway/index.js +36 -0
- package/dist/gateway/router.d.ts +110 -0
- package/dist/gateway/router.js +649 -0
- package/dist/gateway/types.d.ts +275 -0
- package/dist/gateway/types.js +2 -0
- package/dist/gateway/workflows.d.ts +37 -0
- package/dist/gateway/workflows.js +748 -0
- package/dist/hooks/agent-webhook.d.ts +277 -0
- package/dist/hooks/agent-webhook.js +197 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.js +15 -0
- package/dist/hooks/prompt-submit.d.ts +45 -0
- package/dist/hooks/prompt-submit.js +111 -0
- package/dist/hooks/schemas.d.ts +563 -0
- package/dist/hooks/schemas.js +108 -0
- package/dist/hooks/session-end.d.ts +25 -0
- package/dist/hooks/session-end.js +153 -0
- package/dist/hooks/tool-use.d.ts +41 -0
- package/dist/hooks/tool-use.js +201 -0
- package/dist/hooks/types.d.ts +76 -0
- package/dist/hooks/types.js +7 -0
- package/dist/integrations/cloudflare-tunnel.d.ts +78 -0
- package/dist/integrations/cloudflare-tunnel.js +268 -0
- package/dist/integrations/github-client.d.ts +27 -0
- package/dist/integrations/github-client.js +79 -0
- package/dist/integrations/github-projects.d.ts +97 -0
- package/dist/integrations/github-projects.js +433 -0
- package/dist/integrations/github-ticket-sync.d.ts +82 -0
- package/dist/integrations/github-ticket-sync.js +352 -0
- package/dist/integrations/github.d.ts +11 -0
- package/dist/integrations/github.js +241 -0
- package/dist/integrations/jira-client.d.ts +30 -0
- package/dist/integrations/jira-client.js +67 -0
- package/dist/integrations/jira.d.ts +13 -0
- package/dist/integrations/jira.js +108 -0
- package/dist/integrations/linear-client.d.ts +23 -0
- package/dist/integrations/linear-client.js +52 -0
- package/dist/integrations/linear.d.ts +15 -0
- package/dist/integrations/linear.js +312 -0
- package/dist/integrations/tailscale.d.ts +68 -0
- package/dist/integrations/tailscale.js +173 -0
- package/dist/integrations/web-search.d.ts +112 -0
- package/dist/integrations/web-search.js +287 -0
- package/dist/intelligence/index.d.ts +8 -0
- package/dist/intelligence/index.js +8 -0
- package/dist/intelligence/ollama.d.ts +50 -0
- package/dist/intelligence/ollama.js +213 -0
- package/dist/intelligence/rules.d.ts +39 -0
- package/dist/intelligence/rules.js +308 -0
- package/dist/labels/index.d.ts +93 -0
- package/dist/labels/index.js +248 -0
- package/dist/mcp/browser-tools.d.ts +10 -0
- package/dist/mcp/browser-tools.js +16 -0
- package/dist/mcp/client.d.ts +54 -0
- package/dist/mcp/client.js +153 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.js +13 -0
- package/dist/mcp/server.d.ts +40 -0
- package/dist/mcp/server.js +826 -0
- package/dist/mcp/tool-adapter.d.ts +49 -0
- package/dist/mcp/tool-adapter.js +193 -0
- package/dist/memory/experience-store.d.ts +121 -0
- package/dist/memory/experience-store.js +439 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.js +25 -0
- package/dist/memory/memory-service.d.ts +312 -0
- package/dist/memory/memory-service.js +1172 -0
- package/dist/memory/memory-watcher.d.ts +116 -0
- package/dist/memory/memory-watcher.js +239 -0
- package/dist/middleware/logging.d.ts +34 -0
- package/dist/middleware/logging.js +184 -0
- package/dist/middleware/rate-limit.d.ts +29 -0
- package/dist/middleware/rate-limit.js +91 -0
- package/dist/notifications/in-app.d.ts +28 -0
- package/dist/notifications/in-app.js +53 -0
- package/dist/notifications/index.d.ts +3 -0
- package/dist/notifications/index.js +3 -0
- package/dist/notifications/push.d.ts +74 -0
- package/dist/notifications/push.js +175 -0
- package/dist/notifications/slack.d.ts +32 -0
- package/dist/notifications/slack.js +157 -0
- package/dist/plugins/clawhub.d.ts +70 -0
- package/dist/plugins/clawhub.js +260 -0
- package/dist/plugins/loader.d.ts +23 -0
- package/dist/plugins/loader.js +140 -0
- package/dist/plugins/marketplace.d.ts +77 -0
- package/dist/plugins/marketplace.js +275 -0
- package/dist/plugins/registry.d.ts +122 -0
- package/dist/plugins/registry.js +352 -0
- package/dist/plugins/sandbox.d.ts +77 -0
- package/dist/plugins/sandbox.js +287 -0
- package/dist/plugins/scaffolder.d.ts +28 -0
- package/dist/plugins/scaffolder.js +409 -0
- package/dist/plugins/sdk.d.ts +35 -0
- package/dist/plugins/sdk.js +8 -0
- package/dist/plugins/search/brave.d.ts +9 -0
- package/dist/plugins/search/brave.js +157 -0
- package/dist/plugins/search/duckduckgo.d.ts +9 -0
- package/dist/plugins/search/duckduckgo.js +171 -0
- package/dist/plugins/search/index.d.ts +13 -0
- package/dist/plugins/search/index.js +23 -0
- package/dist/plugins/search/searxng.d.ts +9 -0
- package/dist/plugins/search/searxng.js +170 -0
- package/dist/plugins/search/serper.d.ts +9 -0
- package/dist/plugins/search/serper.js +135 -0
- package/dist/plugins/search/tavily.d.ts +9 -0
- package/dist/plugins/search/tavily.js +146 -0
- package/dist/plugins/types.d.ts +174 -0
- package/dist/plugins/types.js +8 -0
- package/dist/projects/index.d.ts +133 -0
- package/dist/projects/index.js +897 -0
- package/dist/projects/types.d.ts +444 -0
- package/dist/projects/types.js +207 -0
- package/dist/providers/adapters/anthropic.d.ts +26 -0
- package/dist/providers/adapters/anthropic.js +306 -0
- package/dist/providers/adapters/base.d.ts +53 -0
- package/dist/providers/adapters/base.js +99 -0
- package/dist/providers/adapters/ollama.d.ts +30 -0
- package/dist/providers/adapters/ollama.js +292 -0
- package/dist/providers/ai-sdk.d.ts +178 -0
- package/dist/providers/ai-sdk.js +1552 -0
- package/dist/providers/core/index.d.ts +8 -0
- package/dist/providers/core/index.js +10 -0
- package/dist/providers/core/models.d.ts +31 -0
- package/dist/providers/core/models.js +949 -0
- package/dist/providers/core/types.d.ts +117 -0
- package/dist/providers/core/types.js +83 -0
- package/dist/providers/index.d.ts +7 -0
- package/dist/providers/index.js +7 -0
- package/dist/providers/registry.d.ts +93 -0
- package/dist/providers/registry.js +228 -0
- package/dist/providers/schema-utils.d.ts +23 -0
- package/dist/providers/schema-utils.js +545 -0
- package/dist/providers/types.d.ts +609 -0
- package/dist/providers/types.js +279 -0
- package/dist/queue/failure-handler.d.ts +93 -0
- package/dist/queue/failure-handler.js +379 -0
- package/dist/queue/index.d.ts +23 -0
- package/dist/queue/index.js +86 -0
- package/dist/queue/memory-queue.d.ts +30 -0
- package/dist/queue/memory-queue.js +429 -0
- package/dist/queue/notifications.d.ts +6 -0
- package/dist/queue/notifications.js +128 -0
- package/dist/queue/task-queue.d.ts +55 -0
- package/dist/queue/task-queue.js +518 -0
- package/dist/queue/webhook-queue.d.ts +47 -0
- package/dist/queue/webhook-queue.js +158 -0
- package/dist/routes/agents.d.ts +4 -0
- package/dist/routes/agents.js +45 -0
- package/dist/routes/auth.d.ts +19 -0
- package/dist/routes/auth.js +492 -0
- package/dist/routes/backup.d.ts +6 -0
- package/dist/routes/backup.js +71 -0
- package/dist/routes/chat.d.ts +10 -0
- package/dist/routes/chat.js +1678 -0
- package/dist/routes/clawhub.d.ts +8 -0
- package/dist/routes/clawhub.js +89 -0
- package/dist/routes/costs.d.ts +4 -0
- package/dist/routes/costs.js +78 -0
- package/dist/routes/cron.d.ts +11 -0
- package/dist/routes/cron.js +708 -0
- package/dist/routes/devices.d.ts +9 -0
- package/dist/routes/devices.js +490 -0
- package/dist/routes/discord.d.ts +15 -0
- package/dist/routes/discord.js +524 -0
- package/dist/routes/dlq.d.ts +4 -0
- package/dist/routes/dlq.js +64 -0
- package/dist/routes/gateway.d.ts +4 -0
- package/dist/routes/gateway.js +253 -0
- package/dist/routes/health.d.ts +29 -0
- package/dist/routes/health.js +296 -0
- package/dist/routes/hooks.d.ts +4 -0
- package/dist/routes/hooks.js +170 -0
- package/dist/routes/import.d.ts +9 -0
- package/dist/routes/import.js +540 -0
- package/dist/routes/index.d.ts +38 -0
- package/dist/routes/index.js +39 -0
- package/dist/routes/integrations.d.ts +10 -0
- package/dist/routes/integrations.js +200 -0
- package/dist/routes/labels.d.ts +8 -0
- package/dist/routes/labels.js +240 -0
- package/dist/routes/mcp.d.ts +14 -0
- package/dist/routes/mcp.js +125 -0
- package/dist/routes/memory.d.ts +10 -0
- package/dist/routes/memory.js +622 -0
- package/dist/routes/notifications.d.ts +9 -0
- package/dist/routes/notifications.js +154 -0
- package/dist/routes/oobe.d.ts +10 -0
- package/dist/routes/oobe.js +405 -0
- package/dist/routes/openapi.d.ts +9 -0
- package/dist/routes/openapi.js +537 -0
- package/dist/routes/plugins.d.ts +8 -0
- package/dist/routes/plugins.js +108 -0
- package/dist/routes/projects.d.ts +8 -0
- package/dist/routes/projects.js +592 -0
- package/dist/routes/push.d.ts +8 -0
- package/dist/routes/push.js +75 -0
- package/dist/routes/search.d.ts +4 -0
- package/dist/routes/search.js +189 -0
- package/dist/routes/security.d.ts +10 -0
- package/dist/routes/security.js +189 -0
- package/dist/routes/settings.d.ts +4 -0
- package/dist/routes/settings.js +119 -0
- package/dist/routes/setup.d.ts +11 -0
- package/dist/routes/setup.js +525 -0
- package/dist/routes/skills.d.ts +13 -0
- package/dist/routes/skills.js +152 -0
- package/dist/routes/slack.d.ts +12 -0
- package/dist/routes/slack.js +999 -0
- package/dist/routes/states.d.ts +8 -0
- package/dist/routes/states.js +123 -0
- package/dist/routes/stats.d.ts +6 -0
- package/dist/routes/stats.js +369 -0
- package/dist/routes/summaries.d.ts +4 -0
- package/dist/routes/summaries.js +344 -0
- package/dist/routes/sync.d.ts +13 -0
- package/dist/routes/sync.js +268 -0
- package/dist/routes/tasks.d.ts +4 -0
- package/dist/routes/tasks.js +473 -0
- package/dist/routes/telegram.d.ts +14 -0
- package/dist/routes/telegram.js +420 -0
- package/dist/routes/tickets.d.ts +4 -0
- package/dist/routes/tickets.js +1090 -0
- package/dist/routes/tokens.d.ts +4 -0
- package/dist/routes/tokens.js +83 -0
- package/dist/routes/tools.d.ts +14 -0
- package/dist/routes/tools.js +790 -0
- package/dist/routes/tunnels.d.ts +8 -0
- package/dist/routes/tunnels.js +145 -0
- package/dist/routes/users.d.ts +15 -0
- package/dist/routes/users.js +998 -0
- package/dist/routes/voice.d.ts +8 -0
- package/dist/routes/voice.js +127 -0
- package/dist/routes/webchat.d.ts +11 -0
- package/dist/routes/webchat.js +173 -0
- package/dist/routes/webhook-dedup.d.ts +11 -0
- package/dist/routes/webhook-dedup.js +49 -0
- package/dist/routes/webhooks.d.ts +4 -0
- package/dist/routes/webhooks.js +71 -0
- package/dist/routes/whatsapp.d.ts +14 -0
- package/dist/routes/whatsapp.js +391 -0
- package/dist/security/audit-scanner.d.ts +32 -0
- package/dist/security/audit-scanner.js +217 -0
- package/dist/security/fs-guard.d.ts +41 -0
- package/dist/security/fs-guard.js +206 -0
- package/dist/security/prompt-guard.d.ts +47 -0
- package/dist/security/prompt-guard.js +198 -0
- package/dist/security/ssrf-guard.d.ts +38 -0
- package/dist/security/ssrf-guard.js +266 -0
- package/dist/security/types.d.ts +92 -0
- package/dist/security/types.js +8 -0
- package/dist/server/route-loader.d.ts +15 -0
- package/dist/server/route-loader.js +135 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +835 -0
- package/dist/settings/index.d.ts +841 -0
- package/dist/settings/index.js +451 -0
- package/dist/skills/compiler.d.ts +83 -0
- package/dist/skills/compiler.js +358 -0
- package/dist/skills/frontmatter.d.ts +33 -0
- package/dist/skills/frontmatter.js +175 -0
- package/dist/skills/index.d.ts +19 -0
- package/dist/skills/index.js +24 -0
- package/dist/skills/installer.d.ts +22 -0
- package/dist/skills/installer.js +220 -0
- package/dist/skills/loader.d.ts +72 -0
- package/dist/skills/loader.js +484 -0
- package/dist/skills/prompt-builder.d.ts +48 -0
- package/dist/skills/prompt-builder.js +135 -0
- package/dist/skills/registry.d.ts +115 -0
- package/dist/skills/registry.js +225 -0
- package/dist/skills/types.d.ts +202 -0
- package/dist/skills/types.js +24 -0
- package/dist/states/index.d.ts +64 -0
- package/dist/states/index.js +142 -0
- package/dist/storage/adapter.d.ts +146 -0
- package/dist/storage/adapter.js +2 -0
- package/dist/storage/index.d.ts +48 -0
- package/dist/storage/index.js +135 -0
- package/dist/storage/libsql.d.ts +99 -0
- package/dist/storage/libsql.js +1873 -0
- package/dist/storage/migrations.d.ts +65 -0
- package/dist/storage/migrations.js +289 -0
- package/dist/storage/schema.d.ts +10185 -0
- package/dist/storage/schema.js +1113 -0
- package/dist/summaries/extractor.d.ts +56 -0
- package/dist/summaries/extractor.js +377 -0
- package/dist/summaries/index.d.ts +13 -0
- package/dist/summaries/index.js +14 -0
- package/dist/summaries/storage.d.ts +51 -0
- package/dist/summaries/storage.js +101 -0
- package/dist/summaries/templates.d.ts +68 -0
- package/dist/summaries/templates.js +245 -0
- package/dist/sync/adapters/base.d.ts +42 -0
- package/dist/sync/adapters/base.js +142 -0
- package/dist/sync/adapters/github.d.ts +45 -0
- package/dist/sync/adapters/github.js +445 -0
- package/dist/sync/adapters/linear.d.ts +40 -0
- package/dist/sync/adapters/linear.js +434 -0
- package/dist/sync/config.d.ts +388 -0
- package/dist/sync/config.js +281 -0
- package/dist/sync/engine.d.ts +112 -0
- package/dist/sync/engine.js +623 -0
- package/dist/sync/index.d.ts +31 -0
- package/dist/sync/index.js +34 -0
- package/dist/sync/integration.d.ts +53 -0
- package/dist/sync/integration.js +231 -0
- package/dist/sync/types.d.ts +249 -0
- package/dist/sync/types.js +30 -0
- package/dist/tickets/index.d.ts +139 -0
- package/dist/tickets/index.js +1406 -0
- package/dist/tickets/types.d.ts +817 -0
- package/dist/tickets/types.js +310 -0
- package/dist/tools/adapters.d.ts +56 -0
- package/dist/tools/adapters.js +183 -0
- package/dist/tools/index.d.ts +66 -0
- package/dist/tools/index.js +105 -0
- package/dist/tools/types.d.ts +117 -0
- package/dist/tools/types.js +20 -0
- package/dist/types/agent.d.ts +101 -0
- package/dist/types/agent.js +2 -0
- package/dist/types/errors.d.ts +150 -0
- package/dist/types/errors.js +338 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +3 -0
- package/dist/types/summary.d.ts +638 -0
- package/dist/types/summary.js +137 -0
- package/dist/types/task.d.ts +123 -0
- package/dist/types/task.js +46 -0
- package/dist/utils/ai-cache.d.ts +72 -0
- package/dist/utils/ai-cache.js +204 -0
- package/dist/utils/ai-inference.d.ts +57 -0
- package/dist/utils/ai-inference.js +190 -0
- package/dist/utils/ai-responder.d.ts +44 -0
- package/dist/utils/ai-responder.js +272 -0
- package/dist/utils/circuit-breaker.d.ts +139 -0
- package/dist/utils/circuit-breaker.js +281 -0
- package/dist/utils/config-loader.d.ts +12 -0
- package/dist/utils/config-loader.js +44 -0
- package/dist/utils/crypto.d.ts +10 -0
- package/dist/utils/crypto.js +59 -0
- package/dist/utils/env-validator.d.ts +44 -0
- package/dist/utils/env-validator.js +236 -0
- package/dist/utils/file-lock.d.ts +85 -0
- package/dist/utils/file-lock.js +204 -0
- package/dist/utils/logger.d.ts +153 -0
- package/dist/utils/logger.js +282 -0
- package/dist/utils/metrics.d.ts +183 -0
- package/dist/utils/metrics.js +345 -0
- package/dist/utils/security.d.ts +90 -0
- package/dist/utils/security.js +347 -0
- package/dist/voice/index.d.ts +79 -0
- package/dist/voice/index.js +144 -0
- package/dist/voice/stt/whisper.d.ts +13 -0
- package/dist/voice/stt/whisper.js +116 -0
- package/dist/voice/tts/elevenlabs.d.ts +18 -0
- package/dist/voice/tts/elevenlabs.js +178 -0
- package/dist/voice/tts/openai-tts.d.ts +19 -0
- package/dist/voice/tts/openai-tts.js +127 -0
- package/dist/voice/tts/system.d.ts +26 -0
- package/dist/voice/tts/system.js +146 -0
- package/dist/voice/wake-word.d.ts +44 -0
- package/dist/voice/wake-word.js +145 -0
- package/docker-compose.yml +222 -0
- package/package.json +154 -0
- package/profclaw.mjs +24 -0
- package/skills/1password/SKILL.md +155 -0
- package/skills/api-tester/SKILL.md +177 -0
- package/skills/apple-notes/SKILL.md +167 -0
- package/skills/apple-reminders/SKILL.md +178 -0
- package/skills/bear-notes/SKILL.md +166 -0
- package/skills/blogwatcher/SKILL.md +177 -0
- package/skills/camsnap/SKILL.md +130 -0
- package/skills/code-generation/SKILL.md +139 -0
- package/skills/code-review/SKILL.md +116 -0
- package/skills/coding-agent/SKILL.md +184 -0
- package/skills/cron-manager/SKILL.md +141 -0
- package/skills/debug-helper/SKILL.md +134 -0
- package/skills/docker-ops/SKILL.md +246 -0
- package/skills/file-manager/SKILL.md +160 -0
- package/skills/git-workflow/SKILL.md +171 -0
- package/skills/github-issues/SKILL.md +244 -0
- package/skills/gog/SKILL.md +191 -0
- package/skills/goplaces/SKILL.md +156 -0
- package/skills/healthcheck/SKILL.md +270 -0
- package/skills/himalaya/SKILL.md +165 -0
- package/skills/mcp-discovery/SKILL.md +109 -0
- package/skills/memory-manager/SKILL.md +151 -0
- package/skills/model-usage/SKILL.md +177 -0
- package/skills/nano-banana-pro/SKILL.md +214 -0
- package/skills/nano-pdf/SKILL.md +165 -0
- package/skills/notion/SKILL.md +147 -0
- package/skills/obsidian/SKILL.md +163 -0
- package/skills/openai-image-gen/SKILL.md +194 -0
- package/skills/openai-whisper/SKILL.md +98 -0
- package/skills/openai-whisper-api/SKILL.md +130 -0
- package/skills/openhue/SKILL.md +203 -0
- package/skills/oracle/SKILL.md +236 -0
- package/skills/phone-control/SKILL.md +201 -0
- package/skills/profclaw-assistant/SKILL.md +81 -0
- package/skills/profclaw-projects/SKILL.md +68 -0
- package/skills/profclaw-tickets/SKILL.md +91 -0
- package/skills/session-logs/SKILL.md +216 -0
- package/skills/sherpa-onnx-tts/SKILL.md +134 -0
- package/skills/skill-creator/SKILL.md +183 -0
- package/skills/songsee/SKILL.md +170 -0
- package/skills/spotify-player/SKILL.md +254 -0
- package/skills/summarize/SKILL.md +155 -0
- package/skills/system-admin/SKILL.md +179 -0
- package/skills/things-mac/SKILL.md +179 -0
- package/skills/tmux/SKILL.md +170 -0
- package/skills/trello/SKILL.md +154 -0
- package/skills/video-frames/SKILL.md +127 -0
- package/skills/weather/SKILL.md +186 -0
- package/skills/web-research/SKILL.md +128 -0
- package/skills/xurl/SKILL.md +198 -0
- package/ui/README.md +73 -0
- package/ui/dist/assets/ActivityView-CkPgKhwm.js +1 -0
- package/ui/dist/assets/AgentList-C3SVdeEz.js +1 -0
- package/ui/dist/assets/AnalyticsDashboard-DVU--vlP.js +1 -0
- package/ui/dist/assets/AreaChart-B5qMEGWj.js +1 -0
- package/ui/dist/assets/CartesianChart-B50bcUJi.js +36 -0
- package/ui/dist/assets/ChatView-BZFJs7w_.js +10 -0
- package/ui/dist/assets/CostsDashboard-ChfH8BlG.js +1 -0
- package/ui/dist/assets/EstimateSelect-CLpB4NQO.js +1 -0
- package/ui/dist/assets/FloatingChatbot-CBzBY9a0.js +2 -0
- package/ui/dist/assets/InviteCodeManagement-DsbdPa6W.js +2 -0
- package/ui/dist/assets/ProjectDetail-BEM3tFXg.js +2 -0
- package/ui/dist/assets/ProjectDetail-D1-0B2xV.css +1 -0
- package/ui/dist/assets/ProjectIcon-CN1FmFAk.js +1 -0
- package/ui/dist/assets/ProjectList-DSDaNhxQ.js +4 -0
- package/ui/dist/assets/Settings-dPVcqC_d.js +6 -0
- package/ui/dist/assets/StatusIndicator-DA3NAo_b.js +1 -0
- package/ui/dist/assets/SummaryDetail-Bjnf9lT8.js +27 -0
- package/ui/dist/assets/SummaryList-ENwKDBKW.js +1 -0
- package/ui/dist/assets/TaskDetail-DnwG6MzB.js +1 -0
- package/ui/dist/assets/TaskList-D9Ug_HiV.js +1 -0
- package/ui/dist/assets/TicketBoard-CviH1571.js +1 -0
- package/ui/dist/assets/TicketDetail-8Jk8O-33.js +1 -0
- package/ui/dist/assets/TicketList-B-iV4rRA.js +1 -0
- package/ui/dist/assets/UserManagement-CPZ8s7s2.js +2 -0
- package/ui/dist/assets/ViewSwitcher-BUyOOWDI.js +1 -0
- package/ui/dist/assets/alert-dialog-BOmnTkN-.js +7 -0
- package/ui/dist/assets/archive-D5my9zOG.js +1 -0
- package/ui/dist/assets/badge-B4ov81_m.js +1 -0
- package/ui/dist/assets/brain-C53ElFLD.js +1 -0
- package/ui/dist/assets/bug-D0TJoCYn.js +1 -0
- package/ui/dist/assets/calendar-BkWIhKa1.js +1 -0
- package/ui/dist/assets/chevron-up-BRTtndUZ.js +1 -0
- package/ui/dist/assets/circle-x-BN89YhbS.js +1 -0
- package/ui/dist/assets/constants-fc7TFI7u.js +1 -0
- package/ui/dist/assets/cpu-B41x1-vV.js +1 -0
- package/ui/dist/assets/database-D9Cnfmzj.js +1 -0
- package/ui/dist/assets/defineProperty-CoXUr7_6.js +2 -0
- package/ui/dist/assets/dialog-DrWB4EYD.js +1 -0
- package/ui/dist/assets/element-adapter-DL0DQilL.js +4 -0
- package/ui/dist/assets/ellipsis-NuUWekvu.js +1 -0
- package/ui/dist/assets/ellipsis-vertical-BueMfuCw.js +1 -0
- package/ui/dist/assets/file-code-HR9829Jc.js +1 -0
- package/ui/dist/assets/folder-open-C_7oYEqe.js +1 -0
- package/ui/dist/assets/funnel-B5gmNXGf.js +1 -0
- package/ui/dist/assets/git-branch-BRMiJmV3.js +1 -0
- package/ui/dist/assets/git-commit-horizontal-CXOUQeJI.js +1 -0
- package/ui/dist/assets/globe-CCspjvus.js +1 -0
- package/ui/dist/assets/hash-g3102kPC.js +1 -0
- package/ui/dist/assets/history-CNqcBBrV.js +1 -0
- package/ui/dist/assets/index-27mTPKuh.js +1 -0
- package/ui/dist/assets/index-BMx3fH-e.js +1 -0
- package/ui/dist/assets/index-C9jNQXzL.js +1 -0
- package/ui/dist/assets/index-CEZ6R2Uw.js +7 -0
- package/ui/dist/assets/index-DURTouJI.js +1 -0
- package/ui/dist/assets/index-WclMPci1.css +1 -0
- package/ui/dist/assets/index-kb4AJXUB.js +67 -0
- package/ui/dist/assets/layers-CLXiHN6o.js +1 -0
- package/ui/dist/assets/layout-dashboard-B07MFhBs.js +1 -0
- package/ui/dist/assets/lightbulb-B2dgG5ks.js +1 -0
- package/ui/dist/assets/link-2-BxNmr9hL.js +1 -0
- package/ui/dist/assets/markdown-renderer-CjU6hBcW.js +36 -0
- package/ui/dist/assets/message-square-Bf2-CVbt.js +1 -0
- package/ui/dist/assets/pencil-D096Ey62.js +1 -0
- package/ui/dist/assets/play-DfdcSI3x.js +1 -0
- package/ui/dist/assets/popover-BV0QJDQq.js +1 -0
- package/ui/dist/assets/progress-DjPEDJfI.js +1 -0
- package/ui/dist/assets/rocket-CPsTc-5G.js +1 -0
- package/ui/dist/assets/select-LsO16slr.js +1 -0
- package/ui/dist/assets/send-BDYBZDUZ.js +1 -0
- package/ui/dist/assets/server-B3k6noce.js +1 -0
- package/ui/dist/assets/settings-2-Cu4xTjhG.js +1 -0
- package/ui/dist/assets/sheet-BScLnPKX.js +1 -0
- package/ui/dist/assets/shield-check-CQqkwufI.js +1 -0
- package/ui/dist/assets/shield-off-ZFruH9KO.js +1 -0
- package/ui/dist/assets/skeleton-CtkIA_MU.js +1 -0
- package/ui/dist/assets/smartphone-DnoksVkc.js +1 -0
- package/ui/dist/assets/square-uD9ZHMfW.js +1 -0
- package/ui/dist/assets/switch-MQPnwGJK.js +1 -0
- package/ui/dist/assets/table-B8cqlywA.js +1 -0
- package/ui/dist/assets/tag-wEJQRWlV.js +1 -0
- package/ui/dist/assets/textarea-D5LJCOGl.js +1 -0
- package/ui/dist/assets/timer-mbGHegmr.js +1 -0
- package/ui/dist/assets/tooltip-Df1CunSp.js +1 -0
- package/ui/dist/assets/trash-2-B4oAXsX-.js +1 -0
- package/ui/dist/assets/trending-up-BGWxvlmZ.js +1 -0
- package/ui/dist/assets/wand-sparkles-CZy4xvL3.js +1 -0
- package/ui/dist/assets/wrench-ByZkjO6m.js +1 -0
- package/ui/dist/audio-worklets/vad-processor.js +132 -0
- package/ui/dist/brand/profclaw-appicon-192.png +0 -0
- package/ui/dist/brand/profclaw-appicon-512.png +0 -0
- package/ui/dist/brand/profclaw-appicon-shadow.svg +51 -0
- package/ui/dist/brand/profclaw-appicon.svg +50 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg-64.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-bg.svg +52 -0
- package/ui/dist/brand/profclaw-favicon-coral-body-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-coral-body.svg +41 -0
- package/ui/dist/brand/profclaw-favicon-shadow-128.png +0 -0
- package/ui/dist/brand/profclaw-favicon-shadow-64.png +0 -0
- package/ui/dist/brand/profclaw-favicon-shadow.svg +51 -0
- package/ui/dist/brand/profclaw-mark-coral-256.png +0 -0
- package/ui/dist/brand/profclaw-mark-coral-64.png +0 -0
- package/ui/dist/brand/profclaw-mark-coral.svg +31 -0
- package/ui/dist/brand/profclaw-mono-white.svg +18 -0
- package/ui/dist/brand/profclaw-text-dark.svg +18 -0
- package/ui/dist/brand/profclaw-text-light.svg +18 -0
- package/ui/dist/brand/profclaw-wordmark-dark.svg +48 -0
- package/ui/dist/brand/profclaw-wordmark-light.svg +48 -0
- package/ui/dist/brand/safari-pinned-tab.svg +15 -0
- package/ui/dist/favicon/android-chrome-192x192.png +0 -0
- package/ui/dist/favicon/android-chrome-384x384.png +0 -0
- package/ui/dist/favicon/android-chrome-512x512.png +0 -0
- package/ui/dist/favicon/apple-touch-icon.png +0 -0
- package/ui/dist/favicon/browserconfig.xml +9 -0
- package/ui/dist/favicon/favicon-16x16.png +0 -0
- package/ui/dist/favicon/favicon-32x32.png +0 -0
- package/ui/dist/favicon/favicon.ico +0 -0
- package/ui/dist/favicon/mstile-150x150.png +0 -0
- package/ui/dist/favicon/safari-pinned-tab.svg +46 -0
- package/ui/dist/favicon/site.webmanifest +22 -0
- package/ui/dist/index.html +32 -0
- package/ui/dist/manifest.json +49 -0
- package/ui/dist/sw.js +124 -0
- package/ui/dist/vite.svg +1 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Failover Error System
|
|
3
|
+
*
|
|
4
|
+
* Error classification and FailoverError class for provider failover.
|
|
5
|
+
* Based on OpenClaw's sophisticated error handling patterns.
|
|
6
|
+
*/
|
|
7
|
+
// Error Detection Patterns
|
|
8
|
+
const TIMEOUT_HINT_RE = /timeout|timed out|deadline exceeded|context deadline exceeded/i;
|
|
9
|
+
const ABORT_TIMEOUT_RE = /request was aborted|request aborted/i;
|
|
10
|
+
/**
|
|
11
|
+
* Error patterns for classifying errors by type.
|
|
12
|
+
* These patterns are used to determine if an error is recoverable via fallback.
|
|
13
|
+
*/
|
|
14
|
+
const ERROR_PATTERNS = {
|
|
15
|
+
rateLimit: [
|
|
16
|
+
/rate[_ ]limit/i,
|
|
17
|
+
/too many requests/i,
|
|
18
|
+
/429/,
|
|
19
|
+
/exceeded your current quota/i,
|
|
20
|
+
/resource has been exhausted/i,
|
|
21
|
+
/quota exceeded/i,
|
|
22
|
+
/resource_exhausted/i,
|
|
23
|
+
/usage limit/i,
|
|
24
|
+
/overloaded/i,
|
|
25
|
+
/overloaded_error/i,
|
|
26
|
+
/capacity/i,
|
|
27
|
+
],
|
|
28
|
+
timeout: [
|
|
29
|
+
/timeout/i,
|
|
30
|
+
/timed out/i,
|
|
31
|
+
/deadline exceeded/i,
|
|
32
|
+
/context deadline exceeded/i,
|
|
33
|
+
/ETIMEDOUT/,
|
|
34
|
+
/ESOCKETTIMEDOUT/,
|
|
35
|
+
/ECONNRESET/,
|
|
36
|
+
/ECONNABORTED/,
|
|
37
|
+
],
|
|
38
|
+
billing: [
|
|
39
|
+
/402/,
|
|
40
|
+
/payment required/i,
|
|
41
|
+
/insufficient credits/i,
|
|
42
|
+
/credit balance/i,
|
|
43
|
+
/plans & billing/i,
|
|
44
|
+
/billing/i,
|
|
45
|
+
/upgrade.*plan/i,
|
|
46
|
+
],
|
|
47
|
+
auth: [
|
|
48
|
+
/invalid[_ ]?api[_ ]?key/i,
|
|
49
|
+
/incorrect api key/i,
|
|
50
|
+
/invalid token/i,
|
|
51
|
+
/authentication/i,
|
|
52
|
+
/re-authenticate/i,
|
|
53
|
+
/oauth token refresh failed/i,
|
|
54
|
+
/unauthorized/i,
|
|
55
|
+
/forbidden/i,
|
|
56
|
+
/access denied/i,
|
|
57
|
+
/expired/i,
|
|
58
|
+
/token has expired/i,
|
|
59
|
+
/401/,
|
|
60
|
+
/403/,
|
|
61
|
+
/no credentials found/i,
|
|
62
|
+
/no api key found/i,
|
|
63
|
+
/api.*key.*invalid/i,
|
|
64
|
+
],
|
|
65
|
+
format: [
|
|
66
|
+
/string should match pattern/i,
|
|
67
|
+
/tool_use\.id/i,
|
|
68
|
+
/tool_use_id/i,
|
|
69
|
+
/invalid request format/i,
|
|
70
|
+
/invalid_request_error/i,
|
|
71
|
+
/malformed/i,
|
|
72
|
+
],
|
|
73
|
+
deployment: [
|
|
74
|
+
/deployment.*does not exist/i,
|
|
75
|
+
/deployment.*not found/i,
|
|
76
|
+
/model.*not found/i,
|
|
77
|
+
/model.*does not exist/i,
|
|
78
|
+
/resource.*not found/i,
|
|
79
|
+
/endpoint.*not found/i,
|
|
80
|
+
],
|
|
81
|
+
connection: [
|
|
82
|
+
/ECONNREFUSED/,
|
|
83
|
+
/ENOTFOUND/,
|
|
84
|
+
/EHOSTUNREACH/,
|
|
85
|
+
/endpoint.*not.*reachable/i,
|
|
86
|
+
/503.*service.*unavailable/i,
|
|
87
|
+
/502.*bad.*gateway/i,
|
|
88
|
+
/504.*gateway.*timeout/i,
|
|
89
|
+
/network.*error/i,
|
|
90
|
+
/fetch failed/i,
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
// FailoverError Class
|
|
94
|
+
/**
|
|
95
|
+
* Error class that includes failover metadata.
|
|
96
|
+
* Used to track and propagate error context through the fallback chain.
|
|
97
|
+
*/
|
|
98
|
+
export class FailoverError extends Error {
|
|
99
|
+
reason;
|
|
100
|
+
provider;
|
|
101
|
+
model;
|
|
102
|
+
status;
|
|
103
|
+
code;
|
|
104
|
+
constructor(message, params) {
|
|
105
|
+
super(message, { cause: params.cause });
|
|
106
|
+
this.name = 'FailoverError';
|
|
107
|
+
this.reason = params.reason;
|
|
108
|
+
this.provider = params.provider;
|
|
109
|
+
this.model = params.model;
|
|
110
|
+
this.status = params.status;
|
|
111
|
+
this.code = params.code;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Error Classification Functions
|
|
115
|
+
/**
|
|
116
|
+
* Check if an error is a FailoverError
|
|
117
|
+
*/
|
|
118
|
+
export function isFailoverError(err) {
|
|
119
|
+
return err instanceof FailoverError;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Resolve HTTP status code from failover reason
|
|
123
|
+
*/
|
|
124
|
+
export function resolveFailoverStatus(reason) {
|
|
125
|
+
switch (reason) {
|
|
126
|
+
case 'billing':
|
|
127
|
+
return 402;
|
|
128
|
+
case 'rate_limit':
|
|
129
|
+
return 429;
|
|
130
|
+
case 'auth':
|
|
131
|
+
return 401;
|
|
132
|
+
case 'timeout':
|
|
133
|
+
return 408;
|
|
134
|
+
case 'format':
|
|
135
|
+
return 400;
|
|
136
|
+
default:
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Extract status code from an error object
|
|
142
|
+
*/
|
|
143
|
+
function getStatusCode(err) {
|
|
144
|
+
if (!err || typeof err !== 'object') {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
const candidate = err.status ??
|
|
148
|
+
err.statusCode;
|
|
149
|
+
if (typeof candidate === 'number') {
|
|
150
|
+
return candidate;
|
|
151
|
+
}
|
|
152
|
+
if (typeof candidate === 'string' && /^\d+$/.test(candidate)) {
|
|
153
|
+
return Number(candidate);
|
|
154
|
+
}
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Extract error name from an error object
|
|
159
|
+
*/
|
|
160
|
+
function getErrorName(err) {
|
|
161
|
+
if (!err || typeof err !== 'object') {
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
164
|
+
return 'name' in err ? String(err.name) : '';
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Extract error code from an error object
|
|
168
|
+
*/
|
|
169
|
+
function getErrorCode(err) {
|
|
170
|
+
if (!err || typeof err !== 'object') {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
const candidate = err.code;
|
|
174
|
+
if (typeof candidate !== 'string') {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
const trimmed = candidate.trim();
|
|
178
|
+
return trimmed ? trimmed : undefined;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Extract error message from any value
|
|
182
|
+
*/
|
|
183
|
+
function getErrorMessage(err) {
|
|
184
|
+
if (err instanceof Error) {
|
|
185
|
+
return err.message;
|
|
186
|
+
}
|
|
187
|
+
if (typeof err === 'string') {
|
|
188
|
+
return err;
|
|
189
|
+
}
|
|
190
|
+
if (typeof err === 'number' || typeof err === 'boolean' || typeof err === 'bigint') {
|
|
191
|
+
return String(err);
|
|
192
|
+
}
|
|
193
|
+
if (typeof err === 'symbol') {
|
|
194
|
+
return err.description ?? '';
|
|
195
|
+
}
|
|
196
|
+
if (err && typeof err === 'object') {
|
|
197
|
+
const message = err.message;
|
|
198
|
+
if (typeof message === 'string') {
|
|
199
|
+
return message;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return '';
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check if an error has timeout indicators
|
|
206
|
+
*/
|
|
207
|
+
function hasTimeoutHint(err) {
|
|
208
|
+
if (!err) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
if (getErrorName(err) === 'TimeoutError') {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
const message = getErrorMessage(err);
|
|
215
|
+
return Boolean(message && TIMEOUT_HINT_RE.test(message));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check if an error is a timeout error
|
|
219
|
+
*/
|
|
220
|
+
export function isTimeoutError(err) {
|
|
221
|
+
if (hasTimeoutHint(err)) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
if (!err || typeof err !== 'object') {
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
if (getErrorName(err) !== 'AbortError') {
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
const message = getErrorMessage(err);
|
|
231
|
+
if (message && ABORT_TIMEOUT_RE.test(message)) {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
const cause = 'cause' in err ? err.cause : undefined;
|
|
235
|
+
const reason = 'reason' in err ? err.reason : undefined;
|
|
236
|
+
return hasTimeoutHint(cause) || hasTimeoutHint(reason);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Check if an error matches any patterns in a list
|
|
240
|
+
*/
|
|
241
|
+
function matchesPatterns(message, patterns) {
|
|
242
|
+
if (!message)
|
|
243
|
+
return false;
|
|
244
|
+
return patterns.some((pattern) => pattern.test(message));
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Classify an error message into a failover reason
|
|
248
|
+
*/
|
|
249
|
+
export function classifyFailoverReason(raw) {
|
|
250
|
+
if (!raw)
|
|
251
|
+
return null;
|
|
252
|
+
// Check patterns in order of specificity
|
|
253
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.rateLimit)) {
|
|
254
|
+
return 'rate_limit';
|
|
255
|
+
}
|
|
256
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.format)) {
|
|
257
|
+
return 'format';
|
|
258
|
+
}
|
|
259
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.billing)) {
|
|
260
|
+
return 'billing';
|
|
261
|
+
}
|
|
262
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.timeout)) {
|
|
263
|
+
return 'timeout';
|
|
264
|
+
}
|
|
265
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.auth)) {
|
|
266
|
+
return 'auth';
|
|
267
|
+
}
|
|
268
|
+
// Deployment and connection errors warrant fallback but don't have a specific reason
|
|
269
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.deployment)) {
|
|
270
|
+
return 'unknown';
|
|
271
|
+
}
|
|
272
|
+
if (matchesPatterns(raw, ERROR_PATTERNS.connection)) {
|
|
273
|
+
return 'unknown';
|
|
274
|
+
}
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Resolve failover reason from an error object
|
|
279
|
+
*/
|
|
280
|
+
export function resolveFailoverReasonFromError(err) {
|
|
281
|
+
if (isFailoverError(err)) {
|
|
282
|
+
return err.reason;
|
|
283
|
+
}
|
|
284
|
+
// Check status code first
|
|
285
|
+
const status = getStatusCode(err);
|
|
286
|
+
if (status === 402) {
|
|
287
|
+
return 'billing';
|
|
288
|
+
}
|
|
289
|
+
if (status === 429) {
|
|
290
|
+
return 'rate_limit';
|
|
291
|
+
}
|
|
292
|
+
if (status === 401 || status === 403) {
|
|
293
|
+
return 'auth';
|
|
294
|
+
}
|
|
295
|
+
if (status === 408) {
|
|
296
|
+
return 'timeout';
|
|
297
|
+
}
|
|
298
|
+
// Check error code
|
|
299
|
+
const code = (getErrorCode(err) ?? '').toUpperCase();
|
|
300
|
+
if (['ETIMEDOUT', 'ESOCKETTIMEDOUT', 'ECONNRESET', 'ECONNABORTED'].includes(code)) {
|
|
301
|
+
return 'timeout';
|
|
302
|
+
}
|
|
303
|
+
if (['ECONNREFUSED', 'ENOTFOUND', 'EHOSTUNREACH'].includes(code)) {
|
|
304
|
+
return 'unknown';
|
|
305
|
+
}
|
|
306
|
+
// Check for timeout patterns
|
|
307
|
+
if (isTimeoutError(err)) {
|
|
308
|
+
return 'timeout';
|
|
309
|
+
}
|
|
310
|
+
// Finally, classify by message content
|
|
311
|
+
const message = getErrorMessage(err);
|
|
312
|
+
if (!message) {
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
return classifyFailoverReason(message);
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Describe a failover error for logging/display
|
|
319
|
+
*/
|
|
320
|
+
export function describeFailoverError(err) {
|
|
321
|
+
if (isFailoverError(err)) {
|
|
322
|
+
return {
|
|
323
|
+
message: err.message,
|
|
324
|
+
reason: err.reason,
|
|
325
|
+
status: err.status,
|
|
326
|
+
code: err.code,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
const message = getErrorMessage(err) || String(err);
|
|
330
|
+
return {
|
|
331
|
+
message,
|
|
332
|
+
reason: resolveFailoverReasonFromError(err) ?? undefined,
|
|
333
|
+
status: getStatusCode(err),
|
|
334
|
+
code: getErrorCode(err),
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Convert any error into a FailoverError if it matches failover criteria.
|
|
339
|
+
* Returns null if the error doesn't warrant a failover attempt.
|
|
340
|
+
*/
|
|
341
|
+
export function coerceToFailoverError(err, context) {
|
|
342
|
+
if (isFailoverError(err)) {
|
|
343
|
+
return err;
|
|
344
|
+
}
|
|
345
|
+
const reason = resolveFailoverReasonFromError(err);
|
|
346
|
+
if (!reason) {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
const message = getErrorMessage(err) || String(err);
|
|
350
|
+
const status = getStatusCode(err) ?? resolveFailoverStatus(reason);
|
|
351
|
+
const code = getErrorCode(err);
|
|
352
|
+
return new FailoverError(message, {
|
|
353
|
+
reason,
|
|
354
|
+
provider: context?.provider,
|
|
355
|
+
model: context?.model,
|
|
356
|
+
status,
|
|
357
|
+
code,
|
|
358
|
+
cause: err instanceof Error ? err : undefined,
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Check if an error is an AbortError (user cancellation, not timeout)
|
|
363
|
+
*/
|
|
364
|
+
function isAbortError(err) {
|
|
365
|
+
if (!err || typeof err !== 'object') {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
if (isFailoverError(err)) {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
const name = 'name' in err ? String(err.name) : '';
|
|
372
|
+
return name === 'AbortError';
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Check if an error should be rethrown without attempting fallback.
|
|
376
|
+
* User-initiated aborts should not trigger fallback.
|
|
377
|
+
*/
|
|
378
|
+
export function shouldRethrowWithoutFallback(err) {
|
|
379
|
+
return isAbortError(err) && !isTimeoutError(err);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get a user-friendly error message based on the error and provider
|
|
383
|
+
*/
|
|
384
|
+
export function getUserFriendlyErrorMessage(err, provider) {
|
|
385
|
+
const reason = resolveFailoverReasonFromError(err);
|
|
386
|
+
const message = getErrorMessage(err) || 'Unknown error';
|
|
387
|
+
switch (reason) {
|
|
388
|
+
case 'auth':
|
|
389
|
+
return `Invalid API key for ${provider}. Please update your API key in Settings > Integrations.`;
|
|
390
|
+
case 'rate_limit':
|
|
391
|
+
return `Rate limit exceeded for ${provider}. Please try again later or switch providers.`;
|
|
392
|
+
case 'billing':
|
|
393
|
+
return `Billing issue with ${provider}. Please check your account balance or upgrade your plan.`;
|
|
394
|
+
case 'timeout':
|
|
395
|
+
return `Request to ${provider} timed out. The server may be overloaded. Try again or switch providers.`;
|
|
396
|
+
case 'format':
|
|
397
|
+
return `Request format error with ${provider}. This may be a compatibility issue.`;
|
|
398
|
+
case 'unknown':
|
|
399
|
+
// Check for specific deployment/connection patterns
|
|
400
|
+
if (matchesPatterns(message, ERROR_PATTERNS.deployment)) {
|
|
401
|
+
return `Model or deployment not found on ${provider}. Please check your configuration in Settings > Integrations.`;
|
|
402
|
+
}
|
|
403
|
+
if (matchesPatterns(message, ERROR_PATTERNS.connection)) {
|
|
404
|
+
return `Cannot connect to ${provider}. Check your network or the provider's status.`;
|
|
405
|
+
}
|
|
406
|
+
return `Connection issue with ${provider}: ${message.substring(0, 100)}`;
|
|
407
|
+
default:
|
|
408
|
+
// Return truncated original message
|
|
409
|
+
return message.length > 150 ? `${message.substring(0, 150)}...` : message;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Failover System
|
|
3
|
+
*
|
|
4
|
+
* Exports for the comprehensive provider failover system.
|
|
5
|
+
* Based on OpenClaw's sophisticated error handling and fallback patterns.
|
|
6
|
+
*/
|
|
7
|
+
export type { FailoverReason, FallbackAttempt, ModelFallbackResult, ProviderCooldown } from './types.js';
|
|
8
|
+
export { FailoverError, isFailoverError, resolveFailoverStatus, isTimeoutError, classifyFailoverReason, resolveFailoverReasonFromError, describeFailoverError, coerceToFailoverError, shouldRethrowWithoutFallback, getUserFriendlyErrorMessage, } from './error.js';
|
|
9
|
+
export { runWithModelFallback, runWithFallback, buildFallbackCandidates, isProviderInCooldown, getProviderCooldownRemaining, setProviderCooldown, clearProviderCooldown, getProvidersInCooldown, type ModelResolver, } from './model-fallback.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Failover System
|
|
3
|
+
*
|
|
4
|
+
* Exports for the comprehensive provider failover system.
|
|
5
|
+
* Based on OpenClaw's sophisticated error handling and fallback patterns.
|
|
6
|
+
*/
|
|
7
|
+
// Error utilities
|
|
8
|
+
export { FailoverError, isFailoverError, resolveFailoverStatus, isTimeoutError, classifyFailoverReason, resolveFailoverReasonFromError, describeFailoverError, coerceToFailoverError, shouldRethrowWithoutFallback, getUserFriendlyErrorMessage, } from './error.js';
|
|
9
|
+
// Model fallback
|
|
10
|
+
export { runWithModelFallback, runWithFallback, buildFallbackCandidates, isProviderInCooldown, getProviderCooldownRemaining, setProviderCooldown, clearProviderCooldown, getProvidersInCooldown, } from './model-fallback.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Fallback System
|
|
3
|
+
*
|
|
4
|
+
* Provides automatic failover between AI providers when requests fail.
|
|
5
|
+
* Based on OpenClaw's sophisticated model fallback patterns.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProviderType } from '../../providers/index.js';
|
|
8
|
+
import type { ModelFallbackResult, ProviderCooldown, FailoverReason } from './types.js';
|
|
9
|
+
import { FailoverError, getUserFriendlyErrorMessage } from './error.js';
|
|
10
|
+
/**
|
|
11
|
+
* Check if a provider is currently in cooldown
|
|
12
|
+
*/
|
|
13
|
+
export declare function isProviderInCooldown(provider: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Get the remaining cooldown time for a provider
|
|
16
|
+
*/
|
|
17
|
+
export declare function getProviderCooldownRemaining(provider: string): number;
|
|
18
|
+
/**
|
|
19
|
+
* Put a provider into cooldown
|
|
20
|
+
*/
|
|
21
|
+
export declare function setProviderCooldown(provider: string, reason: FailoverReason, error: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Clear cooldown for a provider (e.g., after successful request)
|
|
24
|
+
*/
|
|
25
|
+
export declare function clearProviderCooldown(provider: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Get all providers currently in cooldown
|
|
28
|
+
*/
|
|
29
|
+
export declare function getProvidersInCooldown(): ProviderCooldown[];
|
|
30
|
+
/**
|
|
31
|
+
* Model candidate for fallback
|
|
32
|
+
*/
|
|
33
|
+
interface ModelCandidate {
|
|
34
|
+
provider: ProviderType;
|
|
35
|
+
model: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Model resolver function type
|
|
39
|
+
* Returns the configured model for a provider, or undefined if not configured
|
|
40
|
+
*/
|
|
41
|
+
export type ModelResolver = (provider: ProviderType) => string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Build the list of model candidates for fallback
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildFallbackCandidates(params: {
|
|
46
|
+
primaryProvider: ProviderType;
|
|
47
|
+
primaryModel: string;
|
|
48
|
+
configuredProviders: ProviderType[];
|
|
49
|
+
fallbackOverrides?: string[];
|
|
50
|
+
/** Optional resolver to get provider-specific configured models */
|
|
51
|
+
modelResolver?: ModelResolver;
|
|
52
|
+
}): ModelCandidate[];
|
|
53
|
+
/**
|
|
54
|
+
* Run an operation with automatic model fallback.
|
|
55
|
+
* Tries the primary provider first, then falls back to other providers on failure.
|
|
56
|
+
*
|
|
57
|
+
* @param params.primaryProvider - The primary provider to try first
|
|
58
|
+
* @param params.primaryModel - The primary model to try first
|
|
59
|
+
* @param params.configuredProviders - List of all configured/available providers
|
|
60
|
+
* @param params.fallbackOverrides - Optional explicit fallback list (e.g., ["openai/gpt-4", "anthropic/claude-3"])
|
|
61
|
+
* @param params.modelResolver - Optional resolver to get provider-specific configured models
|
|
62
|
+
* @param params.run - The operation to run with provider and model
|
|
63
|
+
* @param params.onError - Optional callback when an attempt fails
|
|
64
|
+
* @returns Result with the successful provider/model and attempt history
|
|
65
|
+
*/
|
|
66
|
+
export declare function runWithModelFallback<T>(params: {
|
|
67
|
+
primaryProvider: ProviderType;
|
|
68
|
+
primaryModel: string;
|
|
69
|
+
configuredProviders: ProviderType[];
|
|
70
|
+
fallbackOverrides?: string[];
|
|
71
|
+
/** Resolver to get the configured model for a provider (e.g., Azure deployment name) */
|
|
72
|
+
modelResolver?: ModelResolver;
|
|
73
|
+
run: (provider: ProviderType, model: string) => Promise<T>;
|
|
74
|
+
onError?: (attempt: {
|
|
75
|
+
provider: ProviderType;
|
|
76
|
+
model: string;
|
|
77
|
+
error: unknown;
|
|
78
|
+
attempt: number;
|
|
79
|
+
total: number;
|
|
80
|
+
}) => void | Promise<void>;
|
|
81
|
+
}): Promise<ModelFallbackResult<T>>;
|
|
82
|
+
/**
|
|
83
|
+
* Convenience wrapper for simple fallback scenarios
|
|
84
|
+
*/
|
|
85
|
+
export declare function runWithFallback<T>(params: {
|
|
86
|
+
primary: {
|
|
87
|
+
provider: ProviderType;
|
|
88
|
+
model: string;
|
|
89
|
+
};
|
|
90
|
+
fallbacks: Array<{
|
|
91
|
+
provider: ProviderType;
|
|
92
|
+
model: string;
|
|
93
|
+
}>;
|
|
94
|
+
run: (provider: ProviderType, model: string) => Promise<T>;
|
|
95
|
+
}): Promise<ModelFallbackResult<T>>;
|
|
96
|
+
export { FailoverError, getUserFriendlyErrorMessage };
|
|
97
|
+
//# sourceMappingURL=model-fallback.d.ts.map
|