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,58 @@
|
|
|
1
|
+
import Table from 'cli-table3';
|
|
2
|
+
import { Ora } from 'ora';
|
|
3
|
+
export declare const statusColors: Record<string, (s: string) => string>;
|
|
4
|
+
/**
|
|
5
|
+
* Format a status with color
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatStatus(status: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Format a date for display
|
|
10
|
+
*/
|
|
11
|
+
export declare function formatDate(date: Date | string | null | undefined): string;
|
|
12
|
+
/**
|
|
13
|
+
* Format a relative time (e.g., "2m ago")
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatRelativeTime(date: Date | string | null | undefined): string;
|
|
16
|
+
/**
|
|
17
|
+
* Create a styled table
|
|
18
|
+
*/
|
|
19
|
+
export declare function createTable(headers: string[]): InstanceType<typeof Table>;
|
|
20
|
+
/**
|
|
21
|
+
* Print success message
|
|
22
|
+
*/
|
|
23
|
+
export declare function success(message: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Print error message
|
|
26
|
+
*/
|
|
27
|
+
export declare function error(message: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Print warning message
|
|
30
|
+
*/
|
|
31
|
+
export declare function warn(message: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Print info message
|
|
34
|
+
*/
|
|
35
|
+
export declare function info(message: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Create a spinner
|
|
38
|
+
*/
|
|
39
|
+
export declare function spinner(text: string): Ora;
|
|
40
|
+
/**
|
|
41
|
+
* Output data in JSON or table format
|
|
42
|
+
*/
|
|
43
|
+
export declare function output(data: unknown, options: {
|
|
44
|
+
json?: boolean;
|
|
45
|
+
}): void;
|
|
46
|
+
/**
|
|
47
|
+
* Truncate a string with ellipsis
|
|
48
|
+
*/
|
|
49
|
+
export declare function truncate(str: string, maxLength: number): string;
|
|
50
|
+
/**
|
|
51
|
+
* Format a cost value
|
|
52
|
+
*/
|
|
53
|
+
export declare function formatCost(amount: number): string;
|
|
54
|
+
/**
|
|
55
|
+
* Format a token count
|
|
56
|
+
*/
|
|
57
|
+
export declare function formatTokens(count: number): string;
|
|
58
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import Table from 'cli-table3';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
// Status colors
|
|
5
|
+
export const statusColors = {
|
|
6
|
+
pending: chalk.yellow,
|
|
7
|
+
queued: chalk.blue,
|
|
8
|
+
running: chalk.cyan,
|
|
9
|
+
completed: chalk.green,
|
|
10
|
+
failed: chalk.red,
|
|
11
|
+
cancelled: chalk.gray,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Format a status with color
|
|
15
|
+
*/
|
|
16
|
+
export function formatStatus(status) {
|
|
17
|
+
const colorFn = statusColors[status] || chalk.white;
|
|
18
|
+
return colorFn(status.toUpperCase());
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Format a date for display
|
|
22
|
+
*/
|
|
23
|
+
export function formatDate(date) {
|
|
24
|
+
if (!date)
|
|
25
|
+
return chalk.dim('-');
|
|
26
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
27
|
+
return d.toLocaleString();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Format a relative time (e.g., "2m ago")
|
|
31
|
+
*/
|
|
32
|
+
export function formatRelativeTime(date) {
|
|
33
|
+
if (!date)
|
|
34
|
+
return chalk.dim('-');
|
|
35
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
36
|
+
const now = Date.now();
|
|
37
|
+
const diff = now - d.getTime();
|
|
38
|
+
if (diff < 60000)
|
|
39
|
+
return 'just now';
|
|
40
|
+
if (diff < 3600000)
|
|
41
|
+
return `${Math.floor(diff / 60000)}m ago`;
|
|
42
|
+
if (diff < 86400000)
|
|
43
|
+
return `${Math.floor(diff / 3600000)}h ago`;
|
|
44
|
+
return `${Math.floor(diff / 86400000)}d ago`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create a styled table
|
|
48
|
+
*/
|
|
49
|
+
export function createTable(headers) {
|
|
50
|
+
return new Table({
|
|
51
|
+
head: headers.map((h) => chalk.bold.white(h)),
|
|
52
|
+
style: {
|
|
53
|
+
head: [],
|
|
54
|
+
border: ['dim'],
|
|
55
|
+
},
|
|
56
|
+
chars: {
|
|
57
|
+
'top': '─',
|
|
58
|
+
'top-mid': '┬',
|
|
59
|
+
'top-left': '┌',
|
|
60
|
+
'top-right': '┐',
|
|
61
|
+
'bottom': '─',
|
|
62
|
+
'bottom-mid': '┴',
|
|
63
|
+
'bottom-left': '└',
|
|
64
|
+
'bottom-right': '┘',
|
|
65
|
+
'left': '│',
|
|
66
|
+
'left-mid': '├',
|
|
67
|
+
'mid': '─',
|
|
68
|
+
'mid-mid': '┼',
|
|
69
|
+
'right': '│',
|
|
70
|
+
'right-mid': '┤',
|
|
71
|
+
'middle': '│',
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Print success message
|
|
77
|
+
*/
|
|
78
|
+
export function success(message) {
|
|
79
|
+
console.log(chalk.green('✓') + ' ' + message);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Print error message
|
|
83
|
+
*/
|
|
84
|
+
export function error(message) {
|
|
85
|
+
console.error(chalk.red('✗') + ' ' + message);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Print warning message
|
|
89
|
+
*/
|
|
90
|
+
export function warn(message) {
|
|
91
|
+
console.log(chalk.yellow('⚠') + ' ' + message);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Print info message
|
|
95
|
+
*/
|
|
96
|
+
export function info(message) {
|
|
97
|
+
console.log(chalk.blue('ℹ') + ' ' + message);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a spinner
|
|
101
|
+
*/
|
|
102
|
+
export function spinner(text) {
|
|
103
|
+
return ora({
|
|
104
|
+
text,
|
|
105
|
+
spinner: 'dots',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Output data in JSON or table format
|
|
110
|
+
*/
|
|
111
|
+
export function output(data, options) {
|
|
112
|
+
if (options.json) {
|
|
113
|
+
console.log(JSON.stringify(data, null, 2));
|
|
114
|
+
}
|
|
115
|
+
else if (Array.isArray(data)) {
|
|
116
|
+
console.log(data);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log(data);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Truncate a string with ellipsis
|
|
124
|
+
*/
|
|
125
|
+
export function truncate(str, maxLength) {
|
|
126
|
+
if (!str)
|
|
127
|
+
return '';
|
|
128
|
+
if (str.length <= maxLength)
|
|
129
|
+
return str;
|
|
130
|
+
return str.slice(0, maxLength - 3) + '...';
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Format a cost value
|
|
134
|
+
*/
|
|
135
|
+
export function formatCost(amount) {
|
|
136
|
+
return `$${amount.toFixed(4)}`;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Format a token count
|
|
140
|
+
*/
|
|
141
|
+
export function formatTokens(count) {
|
|
142
|
+
if (count >= 1000000)
|
|
143
|
+
return `${(count / 1000000).toFixed(1)}M`;
|
|
144
|
+
if (count >= 1000)
|
|
145
|
+
return `${(count / 1000).toFixed(1)}K`;
|
|
146
|
+
return count.toString();
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment Mode System
|
|
3
|
+
*
|
|
4
|
+
* Controls which features are available based on PROFCLAW_MODE env var.
|
|
5
|
+
* Modes: pico (minimal), mini (dashboard), pro (everything).
|
|
6
|
+
*/
|
|
7
|
+
export type DeploymentMode = 'pico' | 'mini' | 'pro';
|
|
8
|
+
export type Capability = 'agent' | 'tools' | 'chat_cli' | 'chat_channels' | 'web_ui' | 'redis' | 'bullmq' | 'cron' | 'cron_full' | 'integrations' | 'integrations_full' | 'browser_tools' | 'plugins' | 'sandbox' | 'sandbox_full' | 'sync_engine' | 'webhook_queue' | 'notifications';
|
|
9
|
+
/**
|
|
10
|
+
* Get the current deployment mode from PROFCLAW_MODE env var.
|
|
11
|
+
* Defaults to 'mini' if not set.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getMode(): DeploymentMode;
|
|
14
|
+
/** Check if the current mode has a specific capability. */
|
|
15
|
+
export declare function hasCapability(cap: Capability): boolean;
|
|
16
|
+
/** Check if an explicit mode has a specific capability. */
|
|
17
|
+
export declare function hasCapabilityForMode(mode: DeploymentMode, cap: Capability): boolean;
|
|
18
|
+
/** Get all capabilities for the current mode. */
|
|
19
|
+
export declare function getCapabilities(): Capability[];
|
|
20
|
+
/** Get max allowed chat channels for the current mode. */
|
|
21
|
+
export declare function getChannelLimit(): number;
|
|
22
|
+
/** Get max concurrent task executions for the current mode. */
|
|
23
|
+
export declare function getConcurrency(): number;
|
|
24
|
+
/** Check if Redis should be used (pro mode, or explicitly configured). */
|
|
25
|
+
export declare function shouldUseRedis(): boolean;
|
|
26
|
+
/** Human-readable mode label for logs. */
|
|
27
|
+
export declare function getModeLabel(): string;
|
|
28
|
+
/** Reset cached mode (for testing). */
|
|
29
|
+
export declare function resetMode(): void;
|
|
30
|
+
//# sourceMappingURL=deployment.d.ts.map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment Mode System
|
|
3
|
+
*
|
|
4
|
+
* Controls which features are available based on PROFCLAW_MODE env var.
|
|
5
|
+
* Modes: pico (minimal), mini (dashboard), pro (everything).
|
|
6
|
+
*/
|
|
7
|
+
const MODE_CAPABILITIES = {
|
|
8
|
+
pico: new Set([
|
|
9
|
+
'agent',
|
|
10
|
+
'tools',
|
|
11
|
+
'chat_cli',
|
|
12
|
+
]),
|
|
13
|
+
mini: new Set([
|
|
14
|
+
'agent',
|
|
15
|
+
'tools',
|
|
16
|
+
'chat_cli',
|
|
17
|
+
'chat_channels',
|
|
18
|
+
'web_ui',
|
|
19
|
+
'cron',
|
|
20
|
+
'integrations',
|
|
21
|
+
'sandbox',
|
|
22
|
+
'notifications',
|
|
23
|
+
]),
|
|
24
|
+
pro: new Set([
|
|
25
|
+
'agent',
|
|
26
|
+
'tools',
|
|
27
|
+
'chat_cli',
|
|
28
|
+
'chat_channels',
|
|
29
|
+
'web_ui',
|
|
30
|
+
'redis',
|
|
31
|
+
'bullmq',
|
|
32
|
+
'cron',
|
|
33
|
+
'cron_full',
|
|
34
|
+
'integrations',
|
|
35
|
+
'integrations_full',
|
|
36
|
+
'browser_tools',
|
|
37
|
+
'plugins',
|
|
38
|
+
'sandbox',
|
|
39
|
+
'sandbox_full',
|
|
40
|
+
'sync_engine',
|
|
41
|
+
'webhook_queue',
|
|
42
|
+
'notifications',
|
|
43
|
+
]),
|
|
44
|
+
};
|
|
45
|
+
/** Max chat channels per mode */
|
|
46
|
+
const MODE_CHANNEL_LIMITS = {
|
|
47
|
+
pico: 1,
|
|
48
|
+
mini: 3,
|
|
49
|
+
pro: Infinity,
|
|
50
|
+
};
|
|
51
|
+
/** Max concurrent task executions per mode */
|
|
52
|
+
const MODE_CONCURRENCY = {
|
|
53
|
+
pico: 1,
|
|
54
|
+
mini: 3,
|
|
55
|
+
pro: parseInt(process.env.POOL_MAX_CONCURRENT || '50', 10),
|
|
56
|
+
};
|
|
57
|
+
let cachedMode = null;
|
|
58
|
+
/**
|
|
59
|
+
* Get the current deployment mode from PROFCLAW_MODE env var.
|
|
60
|
+
* Defaults to 'mini' if not set.
|
|
61
|
+
*/
|
|
62
|
+
export function getMode() {
|
|
63
|
+
if (cachedMode)
|
|
64
|
+
return cachedMode;
|
|
65
|
+
const raw = process.env.PROFCLAW_MODE?.toLowerCase().trim();
|
|
66
|
+
if (raw === 'pico' || raw === 'mini' || raw === 'pro') {
|
|
67
|
+
cachedMode = raw;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
cachedMode = 'mini';
|
|
71
|
+
}
|
|
72
|
+
return cachedMode;
|
|
73
|
+
}
|
|
74
|
+
/** Check if the current mode has a specific capability. */
|
|
75
|
+
export function hasCapability(cap) {
|
|
76
|
+
return MODE_CAPABILITIES[getMode()].has(cap);
|
|
77
|
+
}
|
|
78
|
+
/** Check if an explicit mode has a specific capability. */
|
|
79
|
+
export function hasCapabilityForMode(mode, cap) {
|
|
80
|
+
return MODE_CAPABILITIES[mode].has(cap);
|
|
81
|
+
}
|
|
82
|
+
/** Get all capabilities for the current mode. */
|
|
83
|
+
export function getCapabilities() {
|
|
84
|
+
return [...MODE_CAPABILITIES[getMode()]];
|
|
85
|
+
}
|
|
86
|
+
/** Get max allowed chat channels for the current mode. */
|
|
87
|
+
export function getChannelLimit() {
|
|
88
|
+
return MODE_CHANNEL_LIMITS[getMode()];
|
|
89
|
+
}
|
|
90
|
+
/** Get max concurrent task executions for the current mode. */
|
|
91
|
+
export function getConcurrency() {
|
|
92
|
+
return MODE_CONCURRENCY[getMode()];
|
|
93
|
+
}
|
|
94
|
+
/** Check if Redis should be used (pro mode, or explicitly configured). */
|
|
95
|
+
export function shouldUseRedis() {
|
|
96
|
+
// Explicit override: if REDIS_URL is set, try to use Redis regardless of mode
|
|
97
|
+
if (process.env.REDIS_URL)
|
|
98
|
+
return true;
|
|
99
|
+
return hasCapability('redis');
|
|
100
|
+
}
|
|
101
|
+
/** Human-readable mode label for logs. */
|
|
102
|
+
export function getModeLabel() {
|
|
103
|
+
const labels = {
|
|
104
|
+
pico: 'Pico (minimal)',
|
|
105
|
+
mini: 'Mini (dashboard)',
|
|
106
|
+
pro: 'Pro (full)',
|
|
107
|
+
};
|
|
108
|
+
return labels[getMode()];
|
|
109
|
+
}
|
|
110
|
+
/** Reset cached mode (for testing). */
|
|
111
|
+
export function resetMode() {
|
|
112
|
+
cachedMode = null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=deployment.js.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Security Configuration
|
|
3
|
+
*
|
|
4
|
+
* Defines security presets per deployment mode.
|
|
5
|
+
* The config specifies WHAT restrictions to apply; enforcement
|
|
6
|
+
* depends on the execution environment (Docker, native, etc.).
|
|
7
|
+
*/
|
|
8
|
+
export type SandboxSecurityLevel = 'permissive' | 'standard' | 'strict';
|
|
9
|
+
export interface SandboxSecurityConfig {
|
|
10
|
+
/** Security level name */
|
|
11
|
+
level: SandboxSecurityLevel;
|
|
12
|
+
/** Allow outbound network access */
|
|
13
|
+
allowNetwork: boolean;
|
|
14
|
+
/** Mount filesystem as read-only outside workspace */
|
|
15
|
+
readOnlyFs: boolean;
|
|
16
|
+
/** Max memory in megabytes (0 = no limit) */
|
|
17
|
+
maxMemoryMb: number;
|
|
18
|
+
/** Max CPU usage as a percentage 0–100 (0 = no limit) */
|
|
19
|
+
maxCpuPercent: number;
|
|
20
|
+
/** Execution timeout in milliseconds */
|
|
21
|
+
timeoutMs: number;
|
|
22
|
+
/**
|
|
23
|
+
* Allowlist of shell command prefixes.
|
|
24
|
+
* Empty array means all commands are allowed.
|
|
25
|
+
* Enforcement is advisory — the execution environment decides.
|
|
26
|
+
*/
|
|
27
|
+
allowedCommands: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Paths that must not be mounted or accessed.
|
|
30
|
+
* Enforcement is advisory — the execution environment decides.
|
|
31
|
+
*/
|
|
32
|
+
blockedPaths: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve the active sandbox security level.
|
|
36
|
+
*
|
|
37
|
+
* Priority:
|
|
38
|
+
* 1. `PROFCLAW_SANDBOX_LEVEL` env var (explicit override)
|
|
39
|
+
* 2. Default for the current deployment mode
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSecurityLevel(): SandboxSecurityLevel;
|
|
42
|
+
/**
|
|
43
|
+
* Return the full security config for the current deployment mode.
|
|
44
|
+
* Respects `PROFCLAW_SANDBOX_LEVEL` override when set.
|
|
45
|
+
*/
|
|
46
|
+
export declare function getSandboxConfig(): SandboxSecurityConfig;
|
|
47
|
+
/**
|
|
48
|
+
* Return the security config for a specific level, ignoring env overrides.
|
|
49
|
+
* Useful for introspection and tests.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getSandboxConfigForLevel(level: SandboxSecurityLevel): SandboxSecurityConfig;
|
|
52
|
+
/**
|
|
53
|
+
* Convert maxMemoryMb to a Docker-compatible memory limit string.
|
|
54
|
+
* Returns undefined when no limit is configured (0).
|
|
55
|
+
*/
|
|
56
|
+
export declare function toDockerMemoryLimit(maxMemoryMb: number): string | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Convert maxCpuPercent to a Docker-compatible CPU limit string (fractional cores).
|
|
59
|
+
* Assumes a single-core equivalent at 100%.
|
|
60
|
+
* Returns undefined when no limit is configured (0).
|
|
61
|
+
*/
|
|
62
|
+
export declare function toDockerCpuLimit(maxCpuPercent: number): string | undefined;
|
|
63
|
+
//# sourceMappingURL=sandbox-config.d.ts.map
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox Security Configuration
|
|
3
|
+
*
|
|
4
|
+
* Defines security presets per deployment mode.
|
|
5
|
+
* The config specifies WHAT restrictions to apply; enforcement
|
|
6
|
+
* depends on the execution environment (Docker, native, etc.).
|
|
7
|
+
*/
|
|
8
|
+
import { getMode } from './deployment.js';
|
|
9
|
+
// Presets per deployment mode
|
|
10
|
+
/**
|
|
11
|
+
* pico — single-user, trusted machine.
|
|
12
|
+
* Minimal restrictions; mirrors running directly on the host.
|
|
13
|
+
*/
|
|
14
|
+
const PERMISSIVE_PRESET = {
|
|
15
|
+
level: 'permissive',
|
|
16
|
+
allowNetwork: true,
|
|
17
|
+
readOnlyFs: false,
|
|
18
|
+
maxMemoryMb: 0,
|
|
19
|
+
maxCpuPercent: 0,
|
|
20
|
+
timeoutMs: parseInt(process.env.SANDBOX_TIMEOUT_MS || '300000', 10),
|
|
21
|
+
allowedCommands: [],
|
|
22
|
+
blockedPaths: [],
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* mini — shared or semi-trusted environment.
|
|
26
|
+
* FS outside the workspace is read-only; network off by default.
|
|
27
|
+
*/
|
|
28
|
+
const STANDARD_PRESET = {
|
|
29
|
+
level: 'standard',
|
|
30
|
+
allowNetwork: false,
|
|
31
|
+
readOnlyFs: true,
|
|
32
|
+
maxMemoryMb: parseInt(process.env.SANDBOX_MAX_MEMORY_MB || '512', 10),
|
|
33
|
+
maxCpuPercent: parseInt(process.env.SANDBOX_MAX_CPU_PERCENT || '80', 10),
|
|
34
|
+
timeoutMs: parseInt(process.env.SANDBOX_TIMEOUT_MS || '120000', 10),
|
|
35
|
+
allowedCommands: [
|
|
36
|
+
'node', 'npm', 'npx', 'pnpm',
|
|
37
|
+
'python', 'python3', 'pip', 'pip3',
|
|
38
|
+
'sh', 'bash',
|
|
39
|
+
'git',
|
|
40
|
+
'ls', 'cat', 'cp', 'mv', 'mkdir', 'rm', 'touch',
|
|
41
|
+
'grep', 'sed', 'awk', 'sort', 'uniq', 'wc',
|
|
42
|
+
'jq', 'curl',
|
|
43
|
+
],
|
|
44
|
+
blockedPaths: [
|
|
45
|
+
'/etc/shadow',
|
|
46
|
+
'/etc/sudoers',
|
|
47
|
+
'/root',
|
|
48
|
+
'/proc',
|
|
49
|
+
'/sys',
|
|
50
|
+
'/dev',
|
|
51
|
+
'/run/secrets',
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* pro — multi-tenant or public-facing deployment.
|
|
56
|
+
* Full network isolation, tight resource caps.
|
|
57
|
+
* All limits are configurable via env vars.
|
|
58
|
+
*/
|
|
59
|
+
const STRICT_PRESET = {
|
|
60
|
+
level: 'strict',
|
|
61
|
+
allowNetwork: process.env.SANDBOX_ALLOW_NETWORK === 'true',
|
|
62
|
+
readOnlyFs: true,
|
|
63
|
+
maxMemoryMb: parseInt(process.env.SANDBOX_MAX_MEMORY_MB || '256', 10),
|
|
64
|
+
maxCpuPercent: parseInt(process.env.SANDBOX_MAX_CPU_PERCENT || '50', 10),
|
|
65
|
+
timeoutMs: parseInt(process.env.SANDBOX_TIMEOUT_MS || '60000', 10),
|
|
66
|
+
allowedCommands: [
|
|
67
|
+
'node', 'npm', 'npx',
|
|
68
|
+
'python', 'python3',
|
|
69
|
+
'sh', 'bash',
|
|
70
|
+
'git',
|
|
71
|
+
'ls', 'cat', 'cp', 'mv', 'mkdir', 'rm', 'touch',
|
|
72
|
+
'grep', 'sed', 'awk',
|
|
73
|
+
'jq',
|
|
74
|
+
],
|
|
75
|
+
blockedPaths: [
|
|
76
|
+
'/etc/shadow',
|
|
77
|
+
'/etc/sudoers',
|
|
78
|
+
'/etc/passwd',
|
|
79
|
+
'/root',
|
|
80
|
+
'/proc',
|
|
81
|
+
'/sys',
|
|
82
|
+
'/dev',
|
|
83
|
+
'/run',
|
|
84
|
+
'/var/run',
|
|
85
|
+
'/tmp',
|
|
86
|
+
'/home',
|
|
87
|
+
],
|
|
88
|
+
};
|
|
89
|
+
// Map deployment mode -> default security level
|
|
90
|
+
const MODE_SECURITY_LEVEL = {
|
|
91
|
+
pico: 'permissive',
|
|
92
|
+
mini: 'standard',
|
|
93
|
+
pro: 'strict',
|
|
94
|
+
};
|
|
95
|
+
const LEVEL_PRESETS = {
|
|
96
|
+
permissive: PERMISSIVE_PRESET,
|
|
97
|
+
standard: STANDARD_PRESET,
|
|
98
|
+
strict: STRICT_PRESET,
|
|
99
|
+
};
|
|
100
|
+
// Public API
|
|
101
|
+
/**
|
|
102
|
+
* Resolve the active sandbox security level.
|
|
103
|
+
*
|
|
104
|
+
* Priority:
|
|
105
|
+
* 1. `PROFCLAW_SANDBOX_LEVEL` env var (explicit override)
|
|
106
|
+
* 2. Default for the current deployment mode
|
|
107
|
+
*/
|
|
108
|
+
export function getSecurityLevel() {
|
|
109
|
+
const override = process.env.PROFCLAW_SANDBOX_LEVEL?.toLowerCase().trim();
|
|
110
|
+
if (override === 'permissive' || override === 'standard' || override === 'strict') {
|
|
111
|
+
return override;
|
|
112
|
+
}
|
|
113
|
+
return MODE_SECURITY_LEVEL[getMode()];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Return the full security config for the current deployment mode.
|
|
117
|
+
* Respects `PROFCLAW_SANDBOX_LEVEL` override when set.
|
|
118
|
+
*/
|
|
119
|
+
export function getSandboxConfig() {
|
|
120
|
+
return LEVEL_PRESETS[getSecurityLevel()];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Return the security config for a specific level, ignoring env overrides.
|
|
124
|
+
* Useful for introspection and tests.
|
|
125
|
+
*/
|
|
126
|
+
export function getSandboxConfigForLevel(level) {
|
|
127
|
+
return LEVEL_PRESETS[level];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Convert maxMemoryMb to a Docker-compatible memory limit string.
|
|
131
|
+
* Returns undefined when no limit is configured (0).
|
|
132
|
+
*/
|
|
133
|
+
export function toDockerMemoryLimit(maxMemoryMb) {
|
|
134
|
+
if (maxMemoryMb <= 0)
|
|
135
|
+
return undefined;
|
|
136
|
+
return `${maxMemoryMb}m`;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Convert maxCpuPercent to a Docker-compatible CPU limit string (fractional cores).
|
|
140
|
+
* Assumes a single-core equivalent at 100%.
|
|
141
|
+
* Returns undefined when no limit is configured (0).
|
|
142
|
+
*/
|
|
143
|
+
export function toDockerCpuLimit(maxCpuPercent) {
|
|
144
|
+
if (maxCpuPercent <= 0)
|
|
145
|
+
return undefined;
|
|
146
|
+
return (maxCpuPercent / 100).toFixed(2);
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=sandbox-config.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface BudgetConfig {
|
|
2
|
+
dailyLimit: number;
|
|
3
|
+
monthlyLimit: number;
|
|
4
|
+
alerts: number[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Check if the budget has been exceeded or alert thresholds hit
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkBudget(): {
|
|
10
|
+
exceeded: boolean;
|
|
11
|
+
thresholds: number[];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Set a new budget configuration
|
|
15
|
+
*/
|
|
16
|
+
export declare function setBudget(config: Partial<BudgetConfig>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Get current budget configuration and status
|
|
19
|
+
*/
|
|
20
|
+
export declare function getBudgetStatus(): {
|
|
21
|
+
config: BudgetConfig;
|
|
22
|
+
currentUsage: {
|
|
23
|
+
daily: number;
|
|
24
|
+
dailyPercent: string;
|
|
25
|
+
};
|
|
26
|
+
isExceeded: boolean;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { getUsageSummary } from './token-tracker.js';
|
|
2
|
+
import { logger } from '../utils/logger.js';
|
|
3
|
+
import { loadConfig } from '../utils/config-loader.js';
|
|
4
|
+
// Load dynamic config
|
|
5
|
+
const budgetYaml = loadConfig('budget.yml');
|
|
6
|
+
let currentBudget = {
|
|
7
|
+
dailyLimit: parseFloat(process.env.DAILY_BUDGET_LIMIT || '') || budgetYaml.budget?.dailyLimit || 50.00,
|
|
8
|
+
monthlyLimit: parseFloat(process.env.MONTHLY_BUDGET_LIMIT || '') || budgetYaml.budget?.monthlyLimit || 500.00,
|
|
9
|
+
alerts: budgetYaml.alerts?.thresholds || [50, 80, 90, 100],
|
|
10
|
+
};
|
|
11
|
+
const triggeredAlerts = new Set();
|
|
12
|
+
/**
|
|
13
|
+
* Check if the budget has been exceeded or alert thresholds hit
|
|
14
|
+
*/
|
|
15
|
+
export function checkBudget() {
|
|
16
|
+
const summary = getUsageSummary();
|
|
17
|
+
const dailyPercent = (summary.totalCost / currentBudget.dailyLimit) * 100;
|
|
18
|
+
const hitThresholds = [];
|
|
19
|
+
for (const threshold of currentBudget.alerts) {
|
|
20
|
+
const alertKey = `daily-${threshold}`;
|
|
21
|
+
if (dailyPercent >= threshold && !triggeredAlerts.has(alertKey)) {
|
|
22
|
+
hitThresholds.push(threshold);
|
|
23
|
+
triggeredAlerts.add(alertKey);
|
|
24
|
+
logger.warn(`Budget alert: Daily limit hit ${threshold}%`, {
|
|
25
|
+
currentCost: summary.totalCost.toFixed(6),
|
|
26
|
+
limit: currentBudget.dailyLimit,
|
|
27
|
+
percentage: dailyPercent.toFixed(2),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
exceeded: summary.totalCost >= currentBudget.dailyLimit,
|
|
33
|
+
thresholds: hitThresholds,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Set a new budget configuration
|
|
38
|
+
*/
|
|
39
|
+
export function setBudget(config) {
|
|
40
|
+
currentBudget = { ...currentBudget, ...config };
|
|
41
|
+
triggeredAlerts.clear(); // Reset alerts when budget changes
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get current budget configuration and status
|
|
45
|
+
*/
|
|
46
|
+
export function getBudgetStatus() {
|
|
47
|
+
const summary = getUsageSummary();
|
|
48
|
+
return {
|
|
49
|
+
config: currentBudget,
|
|
50
|
+
currentUsage: {
|
|
51
|
+
daily: summary.totalCost,
|
|
52
|
+
dailyPercent: ((summary.totalCost / currentBudget.dailyLimit) * 100).toFixed(2),
|
|
53
|
+
},
|
|
54
|
+
isExceeded: summary.totalCost >= currentBudget.dailyLimit,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=budget.js.map
|