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,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Stop Conditions
|
|
3
|
+
*
|
|
4
|
+
* Functions that determine when an agent should stop execution.
|
|
5
|
+
* Modeled after Vercel AI SDK v5.0 stopWhen API patterns.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentState, StopCondition } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Stop when step count reaches a specific number.
|
|
10
|
+
* This is the safety limit to prevent runaway agents.
|
|
11
|
+
*/
|
|
12
|
+
export declare function stepCountIs(maxSteps: number): StopCondition;
|
|
13
|
+
/**
|
|
14
|
+
* Stop when step count exceeds a threshold.
|
|
15
|
+
*/
|
|
16
|
+
export declare function stepCountExceeds(threshold: number): StopCondition;
|
|
17
|
+
/**
|
|
18
|
+
* Stop when a specific tool has been called.
|
|
19
|
+
*/
|
|
20
|
+
export declare function hasToolCall(toolName: string): StopCondition;
|
|
21
|
+
/**
|
|
22
|
+
* Stop when any of the specified tools has been called.
|
|
23
|
+
*/
|
|
24
|
+
export declare function hasAnyToolCall(toolNames: string[]): StopCondition;
|
|
25
|
+
/**
|
|
26
|
+
* Stop when a specific tool has been called N times.
|
|
27
|
+
*/
|
|
28
|
+
export declare function toolCallCount(toolName: string, count: number): StopCondition;
|
|
29
|
+
/**
|
|
30
|
+
* Stop when total tool calls exceed a limit.
|
|
31
|
+
*/
|
|
32
|
+
export declare function totalToolCalls(maxCalls: number): StopCondition;
|
|
33
|
+
/**
|
|
34
|
+
* Stop when token budget is exceeded.
|
|
35
|
+
*/
|
|
36
|
+
export declare function budgetExceeded(): StopCondition;
|
|
37
|
+
/**
|
|
38
|
+
* Stop when remaining budget is below a threshold.
|
|
39
|
+
*/
|
|
40
|
+
export declare function budgetBelowThreshold(threshold: number): StopCondition;
|
|
41
|
+
/**
|
|
42
|
+
* Stop when budget usage percentage exceeds a limit.
|
|
43
|
+
*/
|
|
44
|
+
export declare function budgetPercentageExceeds(percentage: number): StopCondition;
|
|
45
|
+
/**
|
|
46
|
+
* Stop when the complete_task tool has been called successfully.
|
|
47
|
+
* This is the primary way for the agent to signal task completion.
|
|
48
|
+
*/
|
|
49
|
+
export declare function taskCompleted(): StopCondition;
|
|
50
|
+
/**
|
|
51
|
+
* Stop when the model's response indicates completion.
|
|
52
|
+
* Checks the last result for done/complete flags.
|
|
53
|
+
*/
|
|
54
|
+
export declare function modelIndicatesCompletion(): StopCondition;
|
|
55
|
+
/**
|
|
56
|
+
* Stop when no tool calls are made in the last step AND the agent has never
|
|
57
|
+
* executed any tools. This handles simple text-only responses (e.g. "hello")
|
|
58
|
+
* without prematurely killing multi-step workflows where the AI pauses to
|
|
59
|
+
* think between tool calls.
|
|
60
|
+
*/
|
|
61
|
+
export declare function noToolCallsInLastStep(): StopCondition;
|
|
62
|
+
/**
|
|
63
|
+
* Stop when the same tool is called with the same arguments repeatedly.
|
|
64
|
+
* Prevents infinite loops where the AI keeps retrying a failing tool.
|
|
65
|
+
*/
|
|
66
|
+
export declare function sameToolRepeated(maxRepeats?: number): StopCondition;
|
|
67
|
+
/**
|
|
68
|
+
* Stop when a tool call fails.
|
|
69
|
+
*/
|
|
70
|
+
export declare function toolCallFailed(): StopCondition;
|
|
71
|
+
/**
|
|
72
|
+
* Stop when multiple tool calls have failed.
|
|
73
|
+
*/
|
|
74
|
+
export declare function consecutiveFailures(count: number): StopCondition;
|
|
75
|
+
/**
|
|
76
|
+
* Stop when execution time exceeds a limit.
|
|
77
|
+
*/
|
|
78
|
+
export declare function timeoutExceeded(timeoutMs: number): StopCondition;
|
|
79
|
+
/**
|
|
80
|
+
* Stop when ANY of the provided conditions are met (OR logic).
|
|
81
|
+
*/
|
|
82
|
+
export declare function anyOf(conditions: StopCondition[]): StopCondition;
|
|
83
|
+
/**
|
|
84
|
+
* Stop when ALL of the provided conditions are met (AND logic).
|
|
85
|
+
*/
|
|
86
|
+
export declare function allOf(conditions: StopCondition[]): StopCondition;
|
|
87
|
+
/**
|
|
88
|
+
* Negate a condition.
|
|
89
|
+
*/
|
|
90
|
+
export declare function not(condition: StopCondition): StopCondition;
|
|
91
|
+
/**
|
|
92
|
+
* Create a custom stop condition with a check function.
|
|
93
|
+
*/
|
|
94
|
+
export declare function custom(name: string, check: (state: AgentState, lastResult: unknown) => boolean | Promise<boolean>): StopCondition;
|
|
95
|
+
/**
|
|
96
|
+
* Default stop conditions for profClaw agents.
|
|
97
|
+
* These provide safety limits while allowing task completion.
|
|
98
|
+
*/
|
|
99
|
+
export declare const defaultStopConditions: StopCondition[];
|
|
100
|
+
/**
|
|
101
|
+
* Minimal stop conditions for simple tasks.
|
|
102
|
+
*/
|
|
103
|
+
export declare const minimalStopConditions: StopCondition[];
|
|
104
|
+
/**
|
|
105
|
+
* Strict stop conditions for budget-sensitive operations.
|
|
106
|
+
*/
|
|
107
|
+
export declare const strictStopConditions: StopCondition[];
|
|
108
|
+
//# sourceMappingURL=stop-conditions.d.ts.map
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Stop Conditions
|
|
3
|
+
*
|
|
4
|
+
* Functions that determine when an agent should stop execution.
|
|
5
|
+
* Modeled after Vercel AI SDK v5.0 stopWhen API patterns.
|
|
6
|
+
*/
|
|
7
|
+
// Step Count Conditions
|
|
8
|
+
/**
|
|
9
|
+
* Stop when step count reaches a specific number.
|
|
10
|
+
* This is the safety limit to prevent runaway agents.
|
|
11
|
+
*/
|
|
12
|
+
export function stepCountIs(maxSteps) {
|
|
13
|
+
return {
|
|
14
|
+
name: `stepCount:${maxSteps}`,
|
|
15
|
+
check: (state) => state.currentStep >= maxSteps,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Stop when step count exceeds a threshold.
|
|
20
|
+
*/
|
|
21
|
+
export function stepCountExceeds(threshold) {
|
|
22
|
+
return {
|
|
23
|
+
name: `stepCountExceeds:${threshold}`,
|
|
24
|
+
check: (state) => state.currentStep > threshold,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// Tool Call Conditions
|
|
28
|
+
/**
|
|
29
|
+
* Stop when a specific tool has been called.
|
|
30
|
+
*/
|
|
31
|
+
export function hasToolCall(toolName) {
|
|
32
|
+
return {
|
|
33
|
+
name: `hasToolCall:${toolName}`,
|
|
34
|
+
check: (state) => state.toolCallHistory.some((t) => t.name === toolName && t.status === 'executed'),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Stop when any of the specified tools has been called.
|
|
39
|
+
*/
|
|
40
|
+
export function hasAnyToolCall(toolNames) {
|
|
41
|
+
return {
|
|
42
|
+
name: `hasAnyToolCall:${toolNames.join(',')}`,
|
|
43
|
+
check: (state) => state.toolCallHistory.some((t) => toolNames.includes(t.name) && t.status === 'executed'),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Stop when a specific tool has been called N times.
|
|
48
|
+
*/
|
|
49
|
+
export function toolCallCount(toolName, count) {
|
|
50
|
+
return {
|
|
51
|
+
name: `toolCallCount:${toolName}:${count}`,
|
|
52
|
+
check: (state) => {
|
|
53
|
+
const calls = state.toolCallHistory.filter((t) => t.name === toolName && t.status === 'executed');
|
|
54
|
+
return calls.length >= count;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Stop when total tool calls exceed a limit.
|
|
60
|
+
*/
|
|
61
|
+
export function totalToolCalls(maxCalls) {
|
|
62
|
+
return {
|
|
63
|
+
name: `totalToolCalls:${maxCalls}`,
|
|
64
|
+
check: (state) => state.toolCallHistory.filter((t) => t.status === 'executed').length >= maxCalls,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Budget Conditions
|
|
68
|
+
/**
|
|
69
|
+
* Stop when token budget is exceeded.
|
|
70
|
+
*/
|
|
71
|
+
export function budgetExceeded() {
|
|
72
|
+
return {
|
|
73
|
+
name: 'budgetExceeded',
|
|
74
|
+
check: (state) => state.usedBudget >= state.maxBudget,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Stop when remaining budget is below a threshold.
|
|
79
|
+
*/
|
|
80
|
+
export function budgetBelowThreshold(threshold) {
|
|
81
|
+
return {
|
|
82
|
+
name: `budgetBelowThreshold:${threshold}`,
|
|
83
|
+
check: (state) => state.maxBudget - state.usedBudget < threshold,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Stop when budget usage percentage exceeds a limit.
|
|
88
|
+
*/
|
|
89
|
+
export function budgetPercentageExceeds(percentage) {
|
|
90
|
+
return {
|
|
91
|
+
name: `budgetPercentage:${percentage}`,
|
|
92
|
+
check: (state) => {
|
|
93
|
+
const usagePercent = (state.usedBudget / state.maxBudget) * 100;
|
|
94
|
+
return usagePercent >= percentage;
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// Task Completion Conditions
|
|
99
|
+
/**
|
|
100
|
+
* Stop when the complete_task tool has been called successfully.
|
|
101
|
+
* This is the primary way for the agent to signal task completion.
|
|
102
|
+
*/
|
|
103
|
+
export function taskCompleted() {
|
|
104
|
+
return {
|
|
105
|
+
name: 'taskCompleted',
|
|
106
|
+
check: (state) => {
|
|
107
|
+
// Check if complete_task was called and executed successfully
|
|
108
|
+
return state.toolCallHistory.some((t) => t.name === 'complete_task' &&
|
|
109
|
+
t.status === 'executed' &&
|
|
110
|
+
t.result &&
|
|
111
|
+
typeof t.result === 'object' &&
|
|
112
|
+
t.result.complete === true);
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Stop when the model's response indicates completion.
|
|
118
|
+
* Checks the last result for done/complete flags.
|
|
119
|
+
*/
|
|
120
|
+
export function modelIndicatesCompletion() {
|
|
121
|
+
return {
|
|
122
|
+
name: 'modelIndicatesCompletion',
|
|
123
|
+
check: (_state, lastResult) => {
|
|
124
|
+
if (typeof lastResult === 'object' && lastResult !== null) {
|
|
125
|
+
const result = lastResult;
|
|
126
|
+
return result.done === true || result.complete === true || result.finished === true;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Stop when no tool calls are made in the last step AND the agent has never
|
|
134
|
+
* executed any tools. This handles simple text-only responses (e.g. "hello")
|
|
135
|
+
* without prematurely killing multi-step workflows where the AI pauses to
|
|
136
|
+
* think between tool calls.
|
|
137
|
+
*/
|
|
138
|
+
export function noToolCallsInLastStep() {
|
|
139
|
+
return {
|
|
140
|
+
name: 'noToolCallsInLastStep',
|
|
141
|
+
check: (state, lastResult) => {
|
|
142
|
+
// If tools have been executed previously, the agent is mid-workflow —
|
|
143
|
+
// don't stop just because the current step has no tool calls.
|
|
144
|
+
if (state.toolCallHistory.some((t) => t.status === 'executed')) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
// No tools ever executed — check if this step also has none
|
|
148
|
+
if (typeof lastResult === 'object' && lastResult !== null) {
|
|
149
|
+
const result = lastResult;
|
|
150
|
+
if (result.steps && result.steps.length > 0) {
|
|
151
|
+
const lastStep = result.steps[result.steps.length - 1];
|
|
152
|
+
return !lastStep.toolCalls || lastStep.toolCalls.length === 0;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return false;
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
// Repeat Detection
|
|
160
|
+
/**
|
|
161
|
+
* Stop when the same tool is called with the same arguments repeatedly.
|
|
162
|
+
* Prevents infinite loops where the AI keeps retrying a failing tool.
|
|
163
|
+
*/
|
|
164
|
+
export function sameToolRepeated(maxRepeats = 3) {
|
|
165
|
+
return {
|
|
166
|
+
name: `sameToolRepeated:${maxRepeats}`,
|
|
167
|
+
check: (state) => {
|
|
168
|
+
const history = state.toolCallHistory;
|
|
169
|
+
if (history.length < maxRepeats)
|
|
170
|
+
return false;
|
|
171
|
+
// Check the last N entries
|
|
172
|
+
const lastN = history.slice(-maxRepeats);
|
|
173
|
+
const firstName = lastN[0].name;
|
|
174
|
+
const firstArgs = JSON.stringify(lastN[0].args);
|
|
175
|
+
return lastN.every((t) => t.name === firstName && JSON.stringify(t.args) === firstArgs);
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// Error Conditions
|
|
180
|
+
/**
|
|
181
|
+
* Stop when a tool call fails.
|
|
182
|
+
*/
|
|
183
|
+
export function toolCallFailed() {
|
|
184
|
+
return {
|
|
185
|
+
name: 'toolCallFailed',
|
|
186
|
+
check: (state) => state.toolCallHistory.some((t) => t.status === 'failed'),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Stop when multiple tool calls have failed.
|
|
191
|
+
*/
|
|
192
|
+
export function consecutiveFailures(count) {
|
|
193
|
+
return {
|
|
194
|
+
name: `consecutiveFailures:${count}`,
|
|
195
|
+
check: (state) => {
|
|
196
|
+
const history = state.toolCallHistory;
|
|
197
|
+
if (history.length < count)
|
|
198
|
+
return false;
|
|
199
|
+
// Check last N calls
|
|
200
|
+
const lastN = history.slice(-count);
|
|
201
|
+
return lastN.every((t) => t.status === 'failed');
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// Time Conditions
|
|
206
|
+
/**
|
|
207
|
+
* Stop when execution time exceeds a limit.
|
|
208
|
+
*/
|
|
209
|
+
export function timeoutExceeded(timeoutMs) {
|
|
210
|
+
return {
|
|
211
|
+
name: `timeout:${timeoutMs}ms`,
|
|
212
|
+
check: (state) => Date.now() - state.createdAt >= timeoutMs,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Composite Conditions
|
|
216
|
+
/**
|
|
217
|
+
* Stop when ANY of the provided conditions are met (OR logic).
|
|
218
|
+
*/
|
|
219
|
+
export function anyOf(conditions) {
|
|
220
|
+
return {
|
|
221
|
+
name: `anyOf:[${conditions.map((c) => c.name).join(',')}]`,
|
|
222
|
+
check: async (state, lastResult) => {
|
|
223
|
+
for (const condition of conditions) {
|
|
224
|
+
if (await condition.check(state, lastResult)) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return false;
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Stop when ALL of the provided conditions are met (AND logic).
|
|
234
|
+
*/
|
|
235
|
+
export function allOf(conditions) {
|
|
236
|
+
return {
|
|
237
|
+
name: `allOf:[${conditions.map((c) => c.name).join(',')}]`,
|
|
238
|
+
check: async (state, lastResult) => {
|
|
239
|
+
for (const condition of conditions) {
|
|
240
|
+
if (!(await condition.check(state, lastResult))) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return true;
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Negate a condition.
|
|
250
|
+
*/
|
|
251
|
+
export function not(condition) {
|
|
252
|
+
return {
|
|
253
|
+
name: `not:${condition.name}`,
|
|
254
|
+
check: async (state, lastResult) => !(await condition.check(state, lastResult)),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
// Custom Condition Builder
|
|
258
|
+
/**
|
|
259
|
+
* Create a custom stop condition with a check function.
|
|
260
|
+
*/
|
|
261
|
+
export function custom(name, check) {
|
|
262
|
+
return { name, check };
|
|
263
|
+
}
|
|
264
|
+
// Default Stop Conditions
|
|
265
|
+
/**
|
|
266
|
+
* Default stop conditions for profClaw agents.
|
|
267
|
+
* These provide safety limits while allowing task completion.
|
|
268
|
+
*/
|
|
269
|
+
export const defaultStopConditions = [
|
|
270
|
+
// Safety limits
|
|
271
|
+
stepCountIs(100), // Hard limit on steps
|
|
272
|
+
budgetExceeded(), // Token budget protection
|
|
273
|
+
timeoutExceeded(5 * 60 * 1000), // 5 minute timeout
|
|
274
|
+
// Task completion - multiple ways to complete
|
|
275
|
+
taskCompleted(), // Primary completion signal via complete_task tool
|
|
276
|
+
noToolCallsInLastStep(), // Complete if AI responds without tools (simple messages)
|
|
277
|
+
// Error handling
|
|
278
|
+
consecutiveFailures(3), // Stop after 3 consecutive failures
|
|
279
|
+
sameToolRepeated(3), // Stop if same tool+args called 3 times in a row
|
|
280
|
+
];
|
|
281
|
+
/**
|
|
282
|
+
* Minimal stop conditions for simple tasks.
|
|
283
|
+
*/
|
|
284
|
+
export const minimalStopConditions = [
|
|
285
|
+
stepCountIs(20), // Lower step limit
|
|
286
|
+
taskCompleted(),
|
|
287
|
+
toolCallFailed(),
|
|
288
|
+
];
|
|
289
|
+
/**
|
|
290
|
+
* Strict stop conditions for budget-sensitive operations.
|
|
291
|
+
*/
|
|
292
|
+
export const strictStopConditions = [
|
|
293
|
+
stepCountIs(50),
|
|
294
|
+
budgetPercentageExceeds(80),
|
|
295
|
+
taskCompleted(),
|
|
296
|
+
consecutiveFailures(2),
|
|
297
|
+
timeoutExceeded(2 * 60 * 1000), // 2 minute timeout
|
|
298
|
+
];
|
|
299
|
+
//# sourceMappingURL=stop-conditions.js.map
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the profClaw agentic loop system.
|
|
5
|
+
* Follows patterns from OpenClaw pi-agent-core for session-based execution.
|
|
6
|
+
*/
|
|
7
|
+
export type AgentStatus = 'idle' | 'running' | 'waiting_approval' | 'completed' | 'failed' | 'cancelled';
|
|
8
|
+
export type ToolCallStatus = 'pending' | 'approved' | 'denied' | 'executed' | 'failed';
|
|
9
|
+
export interface ToolCallRecord {
|
|
10
|
+
/** Unique identifier for this tool call */
|
|
11
|
+
id: string;
|
|
12
|
+
/** Name of the tool being called */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Arguments passed to the tool */
|
|
15
|
+
args: Record<string, unknown>;
|
|
16
|
+
/** Result returned from the tool (if executed) */
|
|
17
|
+
result?: unknown;
|
|
18
|
+
/** Current status of the tool call */
|
|
19
|
+
status: ToolCallStatus;
|
|
20
|
+
/** Error message if failed */
|
|
21
|
+
error?: string;
|
|
22
|
+
/** When the tool call started */
|
|
23
|
+
startedAt: number;
|
|
24
|
+
/** When the tool call completed */
|
|
25
|
+
completedAt?: number;
|
|
26
|
+
/** Duration in milliseconds */
|
|
27
|
+
durationMs?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface AgentState {
|
|
30
|
+
/** Unique session identifier */
|
|
31
|
+
sessionId: string;
|
|
32
|
+
/** Associated conversation ID */
|
|
33
|
+
conversationId: string;
|
|
34
|
+
/** Current agent status */
|
|
35
|
+
status: AgentStatus;
|
|
36
|
+
/** The user's goal/task to accomplish */
|
|
37
|
+
goal: string;
|
|
38
|
+
/** Current step number (starts at 0) */
|
|
39
|
+
currentStep: number;
|
|
40
|
+
/** Maximum token budget */
|
|
41
|
+
maxBudget: number;
|
|
42
|
+
/** Tokens used so far */
|
|
43
|
+
usedBudget: number;
|
|
44
|
+
/** Input tokens used so far */
|
|
45
|
+
inputTokensUsed: number;
|
|
46
|
+
/** Output tokens used so far */
|
|
47
|
+
outputTokensUsed: number;
|
|
48
|
+
/** History of all tool calls */
|
|
49
|
+
toolCallHistory: ToolCallRecord[];
|
|
50
|
+
/** Tool calls waiting for approval */
|
|
51
|
+
pendingToolCalls: ToolCallRecord[];
|
|
52
|
+
/** Accumulated context from tool results */
|
|
53
|
+
context: AgentContext;
|
|
54
|
+
/** When the agent was created */
|
|
55
|
+
createdAt: number;
|
|
56
|
+
/** When the agent was last updated */
|
|
57
|
+
updatedAt: number;
|
|
58
|
+
/** Final result when completed */
|
|
59
|
+
finalResult?: AgentResult;
|
|
60
|
+
}
|
|
61
|
+
export interface AgentContext {
|
|
62
|
+
/** Last hint from a tool response */
|
|
63
|
+
lastHint?: string;
|
|
64
|
+
/** Available projects from list_projects */
|
|
65
|
+
availableProjects?: Array<{
|
|
66
|
+
key: string;
|
|
67
|
+
name: string;
|
|
68
|
+
id: string;
|
|
69
|
+
}>;
|
|
70
|
+
/** Tickets created during this session */
|
|
71
|
+
createdTickets?: Array<{
|
|
72
|
+
id: string;
|
|
73
|
+
key: string;
|
|
74
|
+
title: string;
|
|
75
|
+
type: string;
|
|
76
|
+
}>;
|
|
77
|
+
/** Files modified during this session */
|
|
78
|
+
modifiedFiles?: string[];
|
|
79
|
+
/** Commits created during this session */
|
|
80
|
+
commits?: Array<{
|
|
81
|
+
sha: string;
|
|
82
|
+
message: string;
|
|
83
|
+
}>;
|
|
84
|
+
/** PRs created during this session */
|
|
85
|
+
pullRequests?: Array<{
|
|
86
|
+
number: number;
|
|
87
|
+
url: string;
|
|
88
|
+
title: string;
|
|
89
|
+
}>;
|
|
90
|
+
/** Custom context data */
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
export interface AgentArtifact {
|
|
94
|
+
type: 'ticket' | 'commit' | 'file' | 'pr' | 'project' | 'other';
|
|
95
|
+
id: string;
|
|
96
|
+
description?: string;
|
|
97
|
+
url?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface AgentResult {
|
|
100
|
+
/** Whether the task was completed successfully */
|
|
101
|
+
success: boolean;
|
|
102
|
+
/** Summary of what was accomplished */
|
|
103
|
+
summary: string;
|
|
104
|
+
/** Artifacts created during execution */
|
|
105
|
+
artifacts: AgentArtifact[];
|
|
106
|
+
/** Suggested next steps */
|
|
107
|
+
nextSteps?: string[];
|
|
108
|
+
/** Why the agent stopped */
|
|
109
|
+
stopReason: string;
|
|
110
|
+
/** Total steps taken */
|
|
111
|
+
totalSteps: number;
|
|
112
|
+
/** Total tokens used */
|
|
113
|
+
totalTokens: number;
|
|
114
|
+
/** Input tokens used */
|
|
115
|
+
inputTokens?: number;
|
|
116
|
+
/** Output tokens used */
|
|
117
|
+
outputTokens?: number;
|
|
118
|
+
}
|
|
119
|
+
export interface StopCondition {
|
|
120
|
+
/** Name for logging/debugging */
|
|
121
|
+
name: string;
|
|
122
|
+
/** Check if this condition is met */
|
|
123
|
+
check: (state: AgentState, lastResult: unknown) => boolean | Promise<boolean>;
|
|
124
|
+
}
|
|
125
|
+
/** Thinking effort level for Anthropic models (Opus 4.6+) */
|
|
126
|
+
export type ThinkingEffort = 'low' | 'medium' | 'high' | 'max';
|
|
127
|
+
/** Map effort levels to thinking budget tokens */
|
|
128
|
+
export declare const EFFORT_BUDGET_MAP: Record<ThinkingEffort, number>;
|
|
129
|
+
export interface AgentConfig {
|
|
130
|
+
/** Maximum steps before forced stop (safety limit) */
|
|
131
|
+
maxSteps?: number;
|
|
132
|
+
/** Maximum token budget */
|
|
133
|
+
maxBudget?: number;
|
|
134
|
+
/** Stop conditions to check after each step */
|
|
135
|
+
stopConditions?: StopCondition[];
|
|
136
|
+
/** Security mode for tool execution */
|
|
137
|
+
securityMode?: 'deny' | 'sandbox' | 'allowlist' | 'ask' | 'full';
|
|
138
|
+
/** Timeout per step in milliseconds */
|
|
139
|
+
stepTimeoutMs?: number;
|
|
140
|
+
/** Enable streaming responses */
|
|
141
|
+
enableStreaming?: boolean;
|
|
142
|
+
/** Thinking effort level for Anthropic models (low saves cost, max for complex reasoning) */
|
|
143
|
+
effort?: ThinkingEffort;
|
|
144
|
+
}
|
|
145
|
+
export interface AgentEvents {
|
|
146
|
+
/** Emitted when agent starts */
|
|
147
|
+
start: [state: AgentState];
|
|
148
|
+
/** Emitted at the start of each step */
|
|
149
|
+
'step:start': [state: AgentState];
|
|
150
|
+
/** Emitted when a step completes */
|
|
151
|
+
'step:complete': [state: AgentState, result: unknown];
|
|
152
|
+
/** Emitted when a tool call is made */
|
|
153
|
+
'tool:call': [state: AgentState, toolCall: ToolCallRecord];
|
|
154
|
+
/** Emitted when a tool call completes */
|
|
155
|
+
'tool:result': [state: AgentState, toolCall: ToolCallRecord];
|
|
156
|
+
/** Emitted when waiting for approval */
|
|
157
|
+
'approval:required': [state: AgentState, toolCalls: ToolCallRecord[]];
|
|
158
|
+
/** Emitted when approval is received */
|
|
159
|
+
'approval:received': [state: AgentState, approved: boolean];
|
|
160
|
+
/** Emitted when agent completes successfully */
|
|
161
|
+
complete: [state: AgentState, reason: string];
|
|
162
|
+
/** Emitted when agent fails */
|
|
163
|
+
error: [error: Error, state: AgentState];
|
|
164
|
+
/** Emitted when agent is cancelled */
|
|
165
|
+
cancelled: [state: AgentState];
|
|
166
|
+
/** Emitted for streaming text chunks */
|
|
167
|
+
'stream:chunk': [chunk: string];
|
|
168
|
+
}
|
|
169
|
+
export interface StepContext {
|
|
170
|
+
/** Current step number */
|
|
171
|
+
step: number;
|
|
172
|
+
/** The user's goal */
|
|
173
|
+
goal: string;
|
|
174
|
+
/** Tools used so far */
|
|
175
|
+
toolsUsed: string[];
|
|
176
|
+
/** Result from the last tool call */
|
|
177
|
+
lastToolResult?: unknown;
|
|
178
|
+
/** Accumulated context */
|
|
179
|
+
accumulatedContext: AgentContext;
|
|
180
|
+
/** Hint for next action */
|
|
181
|
+
hint: string;
|
|
182
|
+
/** Remaining budget */
|
|
183
|
+
remainingBudget: number;
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the profClaw agentic loop system.
|
|
5
|
+
* Follows patterns from OpenClaw pi-agent-core for session-based execution.
|
|
6
|
+
*/
|
|
7
|
+
/** Map effort levels to thinking budget tokens */
|
|
8
|
+
export const EFFORT_BUDGET_MAP = {
|
|
9
|
+
low: 1024,
|
|
10
|
+
medium: 5000,
|
|
11
|
+
high: 12000,
|
|
12
|
+
max: 32000,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export type EmbeddingProvider = 'openai' | 'ollama' | 'voyage' | 'gemini';
|
|
2
|
+
export interface EmbeddingModelLimits {
|
|
3
|
+
maxInputTokens: number;
|
|
4
|
+
maxBatchSize: number;
|
|
5
|
+
dimensions: number;
|
|
6
|
+
rateLimit: {
|
|
7
|
+
requests: number;
|
|
8
|
+
windowMs: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface EmbeddingUsageStats {
|
|
12
|
+
provider: EmbeddingProvider;
|
|
13
|
+
model: string;
|
|
14
|
+
totalRequests: number;
|
|
15
|
+
totalTokens: number;
|
|
16
|
+
totalBatches: number;
|
|
17
|
+
errors: number;
|
|
18
|
+
lastUsed: number;
|
|
19
|
+
}
|
|
20
|
+
export interface StreamingEmbeddingProgress {
|
|
21
|
+
completed: number;
|
|
22
|
+
total: number;
|
|
23
|
+
chunkIndex: number;
|
|
24
|
+
totalChunks: number;
|
|
25
|
+
percentage: number;
|
|
26
|
+
error: string | null;
|
|
27
|
+
}
|
|
28
|
+
export declare class EmbeddingService {
|
|
29
|
+
private openai?;
|
|
30
|
+
private usageStats;
|
|
31
|
+
constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Generate an embedding for a string of text
|
|
34
|
+
*/
|
|
35
|
+
generateEmbedding(text: string): Promise<number[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Batch embedding - process multiple texts at once
|
|
38
|
+
*/
|
|
39
|
+
generateBatchEmbeddings(texts: string[]): Promise<number[][]>;
|
|
40
|
+
/**
|
|
41
|
+
* Get model limits for a specific model
|
|
42
|
+
*/
|
|
43
|
+
getModelLimits(model?: string): EmbeddingModelLimits | null;
|
|
44
|
+
/**
|
|
45
|
+
* Get current active embedding model name
|
|
46
|
+
*/
|
|
47
|
+
getActiveModel(): string;
|
|
48
|
+
/**
|
|
49
|
+
* Get usage statistics
|
|
50
|
+
*/
|
|
51
|
+
getUsageStats(): EmbeddingUsageStats[];
|
|
52
|
+
/**
|
|
53
|
+
* Get available embedding providers
|
|
54
|
+
*/
|
|
55
|
+
getAvailableProviders(): EmbeddingProvider[];
|
|
56
|
+
private generateOpenAIEmbedding;
|
|
57
|
+
private batchOpenAIEmbeddings;
|
|
58
|
+
private isVoyageConfigured;
|
|
59
|
+
private generateVoyageEmbedding;
|
|
60
|
+
private batchVoyageEmbeddings;
|
|
61
|
+
private isGeminiConfigured;
|
|
62
|
+
private generateGeminiEmbedding;
|
|
63
|
+
private batchGeminiEmbeddings;
|
|
64
|
+
/**
|
|
65
|
+
* Generate embeddings with streaming progress callback.
|
|
66
|
+
* Processes texts in chunks and calls onProgress after each chunk completes.
|
|
67
|
+
*/
|
|
68
|
+
generateStreamingEmbeddings(texts: string[], onProgress: (result: StreamingEmbeddingProgress) => void, options?: {
|
|
69
|
+
chunkSize?: number;
|
|
70
|
+
}): Promise<number[][]>;
|
|
71
|
+
private trackUsage;
|
|
72
|
+
}
|
|
73
|
+
export interface MemoryBackend {
|
|
74
|
+
name: string;
|
|
75
|
+
store(key: string, embedding: number[], metadata: Record<string, unknown>): Promise<void>;
|
|
76
|
+
search(query: number[], limit: number, filter?: Record<string, unknown>): Promise<MemorySearchResult[]>;
|
|
77
|
+
delete(key: string): Promise<boolean>;
|
|
78
|
+
stats(): Promise<{
|
|
79
|
+
totalEntries: number;
|
|
80
|
+
sizeBytes: number;
|
|
81
|
+
}>;
|
|
82
|
+
}
|
|
83
|
+
export interface MemorySearchResult {
|
|
84
|
+
key: string;
|
|
85
|
+
score: number;
|
|
86
|
+
metadata: Record<string, unknown>;
|
|
87
|
+
}
|
|
88
|
+
export interface MemoryCitation {
|
|
89
|
+
memoryId: string;
|
|
90
|
+
sourceType: 'conversation' | 'document' | 'url' | 'file' | 'manual';
|
|
91
|
+
sourceId: string;
|
|
92
|
+
timestamp: string;
|
|
93
|
+
excerpt?: string;
|
|
94
|
+
}
|
|
95
|
+
export declare function getEmbeddingService(): EmbeddingService;
|
|
96
|
+
//# sourceMappingURL=embedding-service.d.ts.map
|