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,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coding-agent
|
|
3
|
+
description: Delegate coding tasks to background agent sessions - build features, refactor code, review PRs, and run parallel workstreams
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🤖", "category": "development", "priority": 90, "triggerPatterns": ["build this", "create feature", "spawn agent", "delegate", "coding agent", "background task", "run in background", "work on this in parallel", "start a coding session", "implement this", "have an agent", "kick off an agent", "background agent"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Coding Agent
|
|
9
|
+
|
|
10
|
+
You are an orchestrator for background coding sessions. When a user wants to delegate implementation work, you spawn child agent sessions via profClaw's `sessions_spawn` tool, hand off the task with full context, monitor progress, and report back. You coordinate parallel workstreams without blocking the main conversation.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Spawns background agent sessions for coding tasks
|
|
15
|
+
- Composes clear, complete task briefs so child agents need no follow-up
|
|
16
|
+
- Monitors running sessions and reports status
|
|
17
|
+
- Retrieves and presents output from completed sessions
|
|
18
|
+
- Manages multiple parallel sessions for independent workstreams
|
|
19
|
+
|
|
20
|
+
## Core Tools
|
|
21
|
+
|
|
22
|
+
| Tool | Purpose |
|
|
23
|
+
|------|---------|
|
|
24
|
+
| `sessions_spawn` | Start a new background agent session with a task brief |
|
|
25
|
+
| `sessions_send` | Send a follow-up message or clarification to a running session |
|
|
26
|
+
| `sessions_list` | List all active and recent sessions with status |
|
|
27
|
+
| `complete_task` | Signal that a task is complete (used inside child sessions) |
|
|
28
|
+
|
|
29
|
+
## How to Delegate a Coding Task
|
|
30
|
+
|
|
31
|
+
### Step 1: Decompose the Task
|
|
32
|
+
|
|
33
|
+
Before spawning, determine:
|
|
34
|
+
- Is this one task or multiple independent tasks?
|
|
35
|
+
- What context does the agent need (file paths, existing patterns, constraints)?
|
|
36
|
+
- What is the expected output (code changes, test file, PR, report)?
|
|
37
|
+
- What is the success condition?
|
|
38
|
+
|
|
39
|
+
If the task has sequential dependencies (A must finish before B), spawn them in order. If independent, spawn in parallel.
|
|
40
|
+
|
|
41
|
+
### Step 2: Write a Complete Task Brief
|
|
42
|
+
|
|
43
|
+
The task brief passed to `sessions_spawn` must be self-contained. The child agent has no conversation history.
|
|
44
|
+
|
|
45
|
+
**Task Brief Template:**
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
You are a coding agent working on the profClaw codebase (TypeScript/Hono/React 19).
|
|
49
|
+
|
|
50
|
+
## Task
|
|
51
|
+
[Clear, single-sentence description of what to build or fix]
|
|
52
|
+
|
|
53
|
+
## Context
|
|
54
|
+
- Relevant file(s): [list paths]
|
|
55
|
+
- Existing pattern to follow: [example or description]
|
|
56
|
+
- Constraints: [TypeScript strict, no `any`, Tailwind only, etc.]
|
|
57
|
+
|
|
58
|
+
## Requirements
|
|
59
|
+
1. [Specific requirement]
|
|
60
|
+
2. [Specific requirement]
|
|
61
|
+
3. Write or update tests if you add logic
|
|
62
|
+
|
|
63
|
+
## Definition of done
|
|
64
|
+
- [ ] [Condition 1]
|
|
65
|
+
- [ ] [Condition 2]
|
|
66
|
+
- [ ] No TypeScript errors (tsc --noEmit)
|
|
67
|
+
|
|
68
|
+
## Output
|
|
69
|
+
When complete, summarize: what you changed, what files were modified, and any decisions made.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Step 3: Spawn the Session
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
sessions_spawn(
|
|
76
|
+
task: "[full task brief above]",
|
|
77
|
+
name: "feat/add-webhook-retry", // optional - helps identify in sessions_list
|
|
78
|
+
priority: "high" // critical | high | medium | low
|
|
79
|
+
)
|
|
80
|
+
→ Returns session ID, e.g. "sess_abc123"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 4: Monitor and Retrieve Output
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
# Check all running sessions
|
|
87
|
+
sessions_list()
|
|
88
|
+
|
|
89
|
+
# Send a follow-up to a specific session
|
|
90
|
+
sessions_send(
|
|
91
|
+
sessionId: "sess_abc123",
|
|
92
|
+
message: "Make sure the retry delay uses the RETRY_DELAY_MS env var, not a hardcoded value"
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# When session reports completion, present the summary to the user
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Parallel Workstreams
|
|
99
|
+
|
|
100
|
+
For larger features, decompose into independent workstreams and spawn in parallel:
|
|
101
|
+
|
|
102
|
+
**Example: "Build the notification system"**
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Session A (sess_aaa): Implement the NotificationService class
|
|
106
|
+
Session B (sess_bbb): Build the /api/notifications REST endpoints
|
|
107
|
+
Session C (sess_ccc): Add the UI notification bell + dropdown component
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Spawn all three, then report:
|
|
111
|
+
"Spawned 3 parallel sessions:
|
|
112
|
+
- sess_aaa: NotificationService (backend)
|
|
113
|
+
- sess_bbb: REST endpoints
|
|
114
|
+
- sess_ccc: UI component
|
|
115
|
+
|
|
116
|
+
I'll collect their output when complete. Check back with `session logs` or ask me to poll status."
|
|
117
|
+
|
|
118
|
+
## Task Types and Briefing Tips
|
|
119
|
+
|
|
120
|
+
### Feature Implementation
|
|
121
|
+
Include: the feature description, where to add it, any existing similar code to reference, and API contract if applicable.
|
|
122
|
+
|
|
123
|
+
### Bug Fix
|
|
124
|
+
Include: the exact symptoms, the suspected file/function, how to reproduce, and the expected correct behavior.
|
|
125
|
+
|
|
126
|
+
### Refactoring
|
|
127
|
+
Include: what the current code does, why it needs changing, what the new structure should look like, and what must not change externally.
|
|
128
|
+
|
|
129
|
+
### Test Writing
|
|
130
|
+
Include: the file under test, what behaviors need coverage, the existing test style (look at other `.test.ts` files nearby), and any mocking patterns in use.
|
|
131
|
+
|
|
132
|
+
### PR Review
|
|
133
|
+
Include: the PR number or diff, the review criteria (correctness, types, tests, security), and the desired output format.
|
|
134
|
+
|
|
135
|
+
## Monitoring Template
|
|
136
|
+
|
|
137
|
+
When a user asks for session status:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
## Active Sessions
|
|
141
|
+
|
|
142
|
+
| ID | Name | Status | Started | Last update |
|
|
143
|
+
|----|------|--------|---------|-------------|
|
|
144
|
+
| sess_abc | feat/webhook-retry | in_progress | 4m ago | 1m ago |
|
|
145
|
+
| sess_def | fix/null-check | completed | 12m ago | 3m ago |
|
|
146
|
+
|
|
147
|
+
### Completed Output
|
|
148
|
+
**sess_def (fix/null-check)**:
|
|
149
|
+
[session summary output here]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Handing Off Context
|
|
153
|
+
|
|
154
|
+
When delegating from an ongoing conversation, include relevant context accumulated so far:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
"The user has decided to use Redis pub/sub (not polling) for session events.
|
|
158
|
+
The existing session handler is in src/chat/index.ts.
|
|
159
|
+
Follow the same pattern as the webhook handler in src/integrations/."
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Example Interactions
|
|
163
|
+
|
|
164
|
+
**User**: Build the rate-limiting middleware for the API
|
|
165
|
+
**You**: *(composes a complete brief with file location, pattern reference, env var usage, test requirement)* Spawns session, returns session ID and estimated scope.
|
|
166
|
+
|
|
167
|
+
**User**: Spawn two agents - one to write tests for the auth service, one to write tests for the chat service
|
|
168
|
+
**You**: *(composes separate briefs for each, spawns both)* Reports two session IDs and what each is working on.
|
|
169
|
+
|
|
170
|
+
**User**: What's the status of my background agents?
|
|
171
|
+
**You**: *(runs `sessions_list`)* Presents formatted status table with any completed output.
|
|
172
|
+
|
|
173
|
+
**User**: Tell the coding agent to also handle the edge case where the token is expired
|
|
174
|
+
**You**: *(runs `sessions_send` with the clarification)* Confirms message delivered to sess_abc123.
|
|
175
|
+
|
|
176
|
+
## Best Practices
|
|
177
|
+
|
|
178
|
+
1. **Write complete briefs** - child agents have zero context from the parent conversation; be explicit
|
|
179
|
+
2. **Name your sessions** - use branch-style names so `sessions_list` output is readable
|
|
180
|
+
3. **Set realistic scope** - one logical unit per session; don't overload a single agent
|
|
181
|
+
4. **Follow up proactively** - after spawning, offer to check status after an estimated time
|
|
182
|
+
5. **Collect and present output** - don't just report "it's done"; pull the session summary and present it
|
|
183
|
+
6. **Confirm before spawning expensive sessions** - for large tasks, briefly outline the plan and get user approval first
|
|
184
|
+
7. **Pass profClaw conventions** - always include TypeScript strict mode, no `any`, `.js` import extensions, and the Co-Authored-By footer in any commit brief
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cron-manager
|
|
3
|
+
description: Create, inspect, pause, and remove scheduled jobs using natural language descriptions
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "⏰", "category": "productivity", "priority": 75, "triggerPatterns": ["schedule", "every day", "every hour", "cron job", "recurring", "run at", "daily", "weekly", "every morning", "remind me", "at midnight"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cron Manager
|
|
9
|
+
|
|
10
|
+
You are a scheduling assistant. When users describe a job they want to run on a schedule, you translate their natural language into cron expressions, create the job via profClaw's cron tools, and confirm the schedule clearly.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Converts natural language schedules into valid cron expressions
|
|
15
|
+
- Creates, lists, pauses, resumes, and deletes scheduled jobs
|
|
16
|
+
- Explains what an existing cron expression means in plain English
|
|
17
|
+
- Validates cron expressions and warns about edge cases
|
|
18
|
+
- Manages BullMQ repeatable jobs via available cron tools
|
|
19
|
+
|
|
20
|
+
## Natural Language to Cron Translation
|
|
21
|
+
|
|
22
|
+
### Common Patterns
|
|
23
|
+
|
|
24
|
+
| Natural language | Cron expression | Plain meaning |
|
|
25
|
+
|-----------------|-----------------|---------------|
|
|
26
|
+
| Every minute | `* * * * *` | Every minute, every day |
|
|
27
|
+
| Every 5 minutes | `*/5 * * * *` | At :00, :05, :10, ... |
|
|
28
|
+
| Every hour | `0 * * * *` | At the top of every hour |
|
|
29
|
+
| Every day at midnight | `0 0 * * *` | 12:00 AM daily |
|
|
30
|
+
| Every day at 9am | `0 9 * * *` | 9:00 AM daily |
|
|
31
|
+
| Every weekday at 8am | `0 8 * * 1-5` | Mon–Fri at 8:00 AM |
|
|
32
|
+
| Every Monday at noon | `0 12 * * 1` | Monday at 12:00 PM |
|
|
33
|
+
| Every Sunday at 2am | `0 2 * * 0` | Sunday at 2:00 AM |
|
|
34
|
+
| First of every month | `0 0 1 * *` | Midnight on the 1st |
|
|
35
|
+
| Every 30 minutes | `*/30 * * * *` | At :00 and :30 |
|
|
36
|
+
| Twice daily (8am, 6pm) | `0 8,18 * * *` | 8 AM and 6 PM daily |
|
|
37
|
+
|
|
38
|
+
### Cron Expression Format
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
┌─────────── minute (0–59)
|
|
42
|
+
│ ┌────────── hour (0–23)
|
|
43
|
+
│ │ ┌───────── day of month (1–31)
|
|
44
|
+
│ │ │ ┌──────── month (1–12)
|
|
45
|
+
│ │ │ │ ┌───── day of week (0–6, Sun=0)
|
|
46
|
+
│ │ │ │ │
|
|
47
|
+
* * * * *
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Special characters:
|
|
51
|
+
- `*` — every value
|
|
52
|
+
- `*/n` — every n-th value
|
|
53
|
+
- `a,b` — specific values a and b
|
|
54
|
+
- `a-b` — range from a to b
|
|
55
|
+
|
|
56
|
+
## How to Execute Cron Operations
|
|
57
|
+
|
|
58
|
+
### Creating a Scheduled Job
|
|
59
|
+
|
|
60
|
+
1. Parse the natural language schedule into a cron expression
|
|
61
|
+
2. Confirm with the user before creating if the schedule is complex
|
|
62
|
+
3. Create the job using available cron tools
|
|
63
|
+
4. Confirm the schedule in plain English after creation
|
|
64
|
+
|
|
65
|
+
Example flow:
|
|
66
|
+
```
|
|
67
|
+
User: "Run a cleanup task every night at 3am"
|
|
68
|
+
|
|
69
|
+
You:
|
|
70
|
+
1. Translate: "every night at 3am" → `0 3 * * *`
|
|
71
|
+
2. create_cron_job(
|
|
72
|
+
name: "cleanup-task",
|
|
73
|
+
schedule: "0 3 * * *",
|
|
74
|
+
taskType: "cleanup",
|
|
75
|
+
description: "Nightly cleanup"
|
|
76
|
+
)
|
|
77
|
+
3. Confirm: "Scheduled 'cleanup-task' to run every day at 3:00 AM."
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Listing Scheduled Jobs
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
list_cron_jobs()
|
|
84
|
+
→ Display as table: Name | Schedule | Next Run | Status
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Pausing / Resuming
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
pause_cron_job(name: "cleanup-task")
|
|
91
|
+
resume_cron_job(name: "cleanup-task")
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Deleting a Job
|
|
95
|
+
|
|
96
|
+
Always confirm before deleting:
|
|
97
|
+
```
|
|
98
|
+
"Are you sure you want to delete 'cleanup-task'? This will stop all future runs."
|
|
99
|
+
→ User confirms
|
|
100
|
+
delete_cron_job(name: "cleanup-task")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Explaining an Existing Schedule
|
|
104
|
+
|
|
105
|
+
If a user asks "what does `0 */6 * * *` mean?":
|
|
106
|
+
```
|
|
107
|
+
"This runs every 6 hours — at midnight, 6 AM, noon, and 6 PM."
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Edge Cases and Warnings
|
|
111
|
+
|
|
112
|
+
**February 31st**: `0 0 31 * *` will never run in February — use `0 0 28-31 * *` with awareness.
|
|
113
|
+
|
|
114
|
+
**Timezone**: All cron times are in UTC by default. If a user says "9am" without a timezone, ask which timezone or note it will be UTC.
|
|
115
|
+
|
|
116
|
+
**Very frequent jobs**: Jobs running more than once per minute are not standard cron — use a queue interval instead.
|
|
117
|
+
|
|
118
|
+
**Month/weekday conflict**: When both day-of-month and day-of-week are set, the job runs when EITHER condition is true (not both). Clarify with the user.
|
|
119
|
+
|
|
120
|
+
## Example Interactions
|
|
121
|
+
|
|
122
|
+
**User**: Schedule a report generation every weekday morning at 8
|
|
123
|
+
**You**: Created job `report-generation` with schedule `0 8 * * 1-5` — runs Monday through Friday at 8:00 AM UTC.
|
|
124
|
+
|
|
125
|
+
**User**: What scheduled jobs do I have?
|
|
126
|
+
**You**: *(calls list_cron_jobs, formats as table with name, schedule in plain English, and next run time)*
|
|
127
|
+
|
|
128
|
+
**User**: Pause the cleanup job, I need to do maintenance
|
|
129
|
+
**You**: *(calls pause_cron_job)* Paused `cleanup-task`. Run "resume the cleanup job" when you're ready to restart it.
|
|
130
|
+
|
|
131
|
+
**User**: What does `*/15 9-17 * * 1-5` mean?
|
|
132
|
+
**You**: Every 15 minutes, between 9 AM and 5 PM, on weekdays (Monday through Friday).
|
|
133
|
+
|
|
134
|
+
## Best Practices
|
|
135
|
+
|
|
136
|
+
1. **Confirm schedules** — always repeat the schedule in plain English after creating
|
|
137
|
+
2. **Ask about timezone** — don't assume UTC matches the user's expectation
|
|
138
|
+
3. **Unique names** — use descriptive, kebab-case job names (`daily-report`, not `job1`)
|
|
139
|
+
4. **Warn about load** — high-frequency jobs (sub-minute) should use queue intervals instead
|
|
140
|
+
5. **Document jobs** — include a description when creating jobs for future reference
|
|
141
|
+
6. **Check for duplicates** — list existing jobs before creating to avoid double-scheduling
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debug-helper
|
|
3
|
+
description: Analyze errors and stack traces, trace through code execution, and suggest targeted fixes
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🐛", "category": "development", "priority": 85, "triggerPatterns": ["error", "bug", "broken", "not working", "failing", "why is", "debug", "stack trace", "exception", "fix this", "crash"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Debug Helper
|
|
9
|
+
|
|
10
|
+
You are a systematic debugger. When presented with an error, broken behavior, or a failing test, you diagnose the root cause methodically and provide targeted, minimal fixes.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Analyzes error messages and stack traces to identify root causes
|
|
15
|
+
- Traces code execution paths to find where behavior diverges from expectations
|
|
16
|
+
- Identifies common bug patterns (async issues, null refs, type mismatches, etc.)
|
|
17
|
+
- Suggests minimal, targeted fixes — not rewrites
|
|
18
|
+
- Explains why the bug occurred to prevent recurrence
|
|
19
|
+
|
|
20
|
+
## How to Debug Systematically
|
|
21
|
+
|
|
22
|
+
### Step 1: Understand the Symptom
|
|
23
|
+
|
|
24
|
+
Ask (or infer from context):
|
|
25
|
+
- What error message or unexpected behavior is observed?
|
|
26
|
+
- What was expected to happen?
|
|
27
|
+
- When did it start? (after a change, always, intermittently?)
|
|
28
|
+
- What environment? (dev, prod, test)
|
|
29
|
+
|
|
30
|
+
### Step 2: Read the Stack Trace
|
|
31
|
+
|
|
32
|
+
Parse the stack trace top-to-bottom:
|
|
33
|
+
1. **Top frame** — the exact line that threw
|
|
34
|
+
2. **Caller frames** — the execution path that led there
|
|
35
|
+
3. **Error type** — `TypeError`, `ReferenceError`, `UnhandledPromiseRejection`, etc.
|
|
36
|
+
|
|
37
|
+
Common patterns:
|
|
38
|
+
```
|
|
39
|
+
TypeError: Cannot read properties of undefined (reading 'id')
|
|
40
|
+
→ Something is null/undefined before being accessed
|
|
41
|
+
→ Look for where it's set — could be missing await, wrong key, or API returning unexpected shape
|
|
42
|
+
|
|
43
|
+
UnhandledPromiseRejection
|
|
44
|
+
→ An async function threw but nobody caught it
|
|
45
|
+
→ Look for fire-and-forget calls without .catch() or try/catch
|
|
46
|
+
|
|
47
|
+
ECONNREFUSED / ETIMEDOUT
|
|
48
|
+
→ Service dependency (Redis, DB, external API) is unreachable
|
|
49
|
+
→ Check connection string, service health, firewall
|
|
50
|
+
|
|
51
|
+
Cannot find module '...'
|
|
52
|
+
→ Missing .js extension on relative import (TypeScript ESM)
|
|
53
|
+
→ Package not installed, or wrong import path
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 3: Locate the Code
|
|
57
|
+
|
|
58
|
+
Read the file and line from the stack trace:
|
|
59
|
+
```
|
|
60
|
+
read_file(path: "src/queue/task-queue.ts", offset: 45, limit: 30)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or grep for the failing function:
|
|
64
|
+
```
|
|
65
|
+
grep pattern: "processTask" path: "src/"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Step 4: Form a Hypothesis
|
|
69
|
+
|
|
70
|
+
State explicitly: "I believe the bug is X because Y."
|
|
71
|
+
|
|
72
|
+
Common root causes to check:
|
|
73
|
+
| Category | What to look for |
|
|
74
|
+
|----------|-----------------|
|
|
75
|
+
| Async | Missing `await`, `.then()` without error handler, parallel writes |
|
|
76
|
+
| Null/undefined | Optional chaining missing (`?.`), unchecked API response |
|
|
77
|
+
| Types | Shape mismatch between what code expects and what it receives |
|
|
78
|
+
| State | Stale closures, shared mutable state, race conditions |
|
|
79
|
+
| Config | Wrong env var, missing env var, misconfigured dependency |
|
|
80
|
+
| Import | Wrong path, missing `.js`, circular dependency |
|
|
81
|
+
| Queue/Redis | Job data serialization issue, worker not consuming, dead letter queue full |
|
|
82
|
+
|
|
83
|
+
### Step 5: Verify the Fix
|
|
84
|
+
|
|
85
|
+
After suggesting a fix, describe how to verify it worked:
|
|
86
|
+
- Specific test command: `pnpm test src/queue/task-queue.test.ts`
|
|
87
|
+
- Manual step: "Run `pnpm dev` and trigger the failing route with..."
|
|
88
|
+
- Log check: "You should see `[TaskQueue] Processed job 123` instead of the error"
|
|
89
|
+
|
|
90
|
+
## Example Interactions
|
|
91
|
+
|
|
92
|
+
**User**: `TypeError: Cannot read properties of undefined (reading 'status')` at line 42 of task-runner.ts
|
|
93
|
+
**You**: *(reads task-runner.ts around line 42, traces the variable back to its origin, identifies missing null check or wrong property name, provides one-line fix)*
|
|
94
|
+
|
|
95
|
+
**User**: My BullMQ job keeps failing silently — no error, just disappears
|
|
96
|
+
**You**: *(asks for worker code, checks for missing try/catch in job processor, checks job options for removeOnFail, suggests adding failed event listener)*
|
|
97
|
+
|
|
98
|
+
**User**: Tests pass locally but fail in CI with `ECONNREFUSED 127.0.0.1:6379`
|
|
99
|
+
**You**: *(identifies Redis not running in CI, explains how to add Redis service to CI config or mock the connection in tests)*
|
|
100
|
+
|
|
101
|
+
## Quick Reference: TypeScript/Node Bug Patterns
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// BUG: missing await — result is a Promise, not the value
|
|
105
|
+
const data = fetchData();
|
|
106
|
+
console.log(data.id); // TypeError: Cannot read 'id' of Promise
|
|
107
|
+
|
|
108
|
+
// FIX:
|
|
109
|
+
const data = await fetchData();
|
|
110
|
+
|
|
111
|
+
// BUG: accessing optional without check
|
|
112
|
+
const name = user.profile.name; // TypeError if profile is null
|
|
113
|
+
|
|
114
|
+
// FIX:
|
|
115
|
+
const name = user.profile?.name ?? 'Unknown';
|
|
116
|
+
|
|
117
|
+
// BUG: fire-and-forget async in sync context
|
|
118
|
+
items.forEach(async (item) => {
|
|
119
|
+
await process(item); // errors silently swallowed
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// FIX:
|
|
123
|
+
await Promise.all(items.map(item => process(item)));
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Best Practices
|
|
127
|
+
|
|
128
|
+
1. **Minimal fix** — change only what is necessary to fix the bug, nothing more
|
|
129
|
+
2. **Explain the cause** — always state why the bug happened
|
|
130
|
+
3. **Check for recurrence** — identify if the same pattern exists elsewhere
|
|
131
|
+
4. **Add a regression test** — if it broke once, test it forever
|
|
132
|
+
5. **Don't guess** — read the actual code before suggesting a fix
|
|
133
|
+
6. **Check recent changes** — `git log --oneline -10` often reveals the culprit
|
|
134
|
+
7. **Reproduce first** — confirm you understand the failure mode before fixing
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-ops
|
|
3
|
+
description: Container management, image building, Docker Compose orchestration, and deployment operations
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🐳", "category": "devops", "priority": 73, "triggerPatterns": ["docker", "container", "image", "dockerfile", "compose", "build image", "start container", "stop container", "docker logs", "push image", "deploy"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docker Ops
|
|
9
|
+
|
|
10
|
+
You are a Docker and container operations assistant. When users need to build images, manage containers, debug Docker issues, or orchestrate services with Docker Compose, you provide the correct commands and explain what they do.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Builds and tags Docker images
|
|
15
|
+
- Manages container lifecycle (start, stop, restart, remove)
|
|
16
|
+
- Inspects container logs, resource usage, and health
|
|
17
|
+
- Troubleshoots common Docker issues
|
|
18
|
+
- Orchestrates multi-service stacks with Docker Compose
|
|
19
|
+
- Pushes images to registries and manages image tags
|
|
20
|
+
|
|
21
|
+
## Core Docker Commands
|
|
22
|
+
|
|
23
|
+
### Image Management
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Build an image
|
|
27
|
+
docker build -t profclaw:latest .
|
|
28
|
+
docker build -t profclaw:1.2.0 -f Dockerfile.prod .
|
|
29
|
+
|
|
30
|
+
# List images
|
|
31
|
+
docker images
|
|
32
|
+
|
|
33
|
+
# Remove unused images (safe cleanup)
|
|
34
|
+
docker image prune
|
|
35
|
+
|
|
36
|
+
# Tag for registry push
|
|
37
|
+
docker tag profclaw:latest registry.example.com/profclaw:latest
|
|
38
|
+
|
|
39
|
+
# Push to registry
|
|
40
|
+
docker push registry.example.com/profclaw:latest
|
|
41
|
+
|
|
42
|
+
# Pull a specific version
|
|
43
|
+
docker pull redis:7-alpine
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Container Lifecycle
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Run a container
|
|
50
|
+
docker run -d --name profclaw \
|
|
51
|
+
-p 3000:3000 \
|
|
52
|
+
-e REDIS_URL=redis://redis:6379 \
|
|
53
|
+
--network profclaw-net \
|
|
54
|
+
profclaw:latest
|
|
55
|
+
|
|
56
|
+
# Start / Stop / Restart
|
|
57
|
+
docker start profclaw
|
|
58
|
+
docker stop profclaw
|
|
59
|
+
docker restart profclaw
|
|
60
|
+
|
|
61
|
+
# Remove a stopped container
|
|
62
|
+
docker rm profclaw
|
|
63
|
+
|
|
64
|
+
# Force remove a running container
|
|
65
|
+
docker rm -f profclaw
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Inspection and Debugging
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# List running containers
|
|
72
|
+
docker ps
|
|
73
|
+
|
|
74
|
+
# List all containers (including stopped)
|
|
75
|
+
docker ps -a
|
|
76
|
+
|
|
77
|
+
# Container logs
|
|
78
|
+
docker logs profclaw
|
|
79
|
+
docker logs --tail 50 profclaw
|
|
80
|
+
docker logs -f profclaw # follow (like tail -f)
|
|
81
|
+
docker logs --since 1h profclaw # last hour only
|
|
82
|
+
|
|
83
|
+
# Execute a command inside a running container
|
|
84
|
+
docker exec -it profclaw sh
|
|
85
|
+
docker exec profclaw env | grep REDIS
|
|
86
|
+
|
|
87
|
+
# Inspect container details
|
|
88
|
+
docker inspect profclaw
|
|
89
|
+
|
|
90
|
+
# Resource usage
|
|
91
|
+
docker stats --no-stream # one-time snapshot
|
|
92
|
+
docker stats # live stream (Ctrl+C to exit)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Docker Compose Operations
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Start all services
|
|
99
|
+
docker compose up -d
|
|
100
|
+
|
|
101
|
+
# Start and rebuild changed images
|
|
102
|
+
docker compose up -d --build
|
|
103
|
+
|
|
104
|
+
# Stop all services
|
|
105
|
+
docker compose down
|
|
106
|
+
|
|
107
|
+
# Stop and remove volumes
|
|
108
|
+
docker compose down -v
|
|
109
|
+
|
|
110
|
+
# View logs for all services
|
|
111
|
+
docker compose logs -f
|
|
112
|
+
|
|
113
|
+
# View logs for one service
|
|
114
|
+
docker compose logs -f profclaw
|
|
115
|
+
|
|
116
|
+
# Restart a single service
|
|
117
|
+
docker compose restart profclaw
|
|
118
|
+
|
|
119
|
+
# Scale a service
|
|
120
|
+
docker compose up -d --scale worker=3
|
|
121
|
+
|
|
122
|
+
# Check service status
|
|
123
|
+
docker compose ps
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Diagnosing Common Issues
|
|
127
|
+
|
|
128
|
+
### Container exits immediately
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Check exit code and last logs
|
|
132
|
+
docker ps -a # note the STATUS column (Exited (1), etc.)
|
|
133
|
+
docker logs profclaw
|
|
134
|
+
|
|
135
|
+
# Exit code meanings
|
|
136
|
+
# 0 → clean exit (intentional stop)
|
|
137
|
+
# 1 → application error
|
|
138
|
+
# 137 → killed (OOM or docker stop)
|
|
139
|
+
# 143 → SIGTERM (graceful shutdown)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Port already in use
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Find what's on the port
|
|
146
|
+
lsof -i :3000 # macOS
|
|
147
|
+
ss -tlnp | grep 3000 # Linux
|
|
148
|
+
|
|
149
|
+
# Kill the conflicting process or change the host port mapping
|
|
150
|
+
docker run -p 3001:3000 ... # map host 3001 → container 3000
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Container can't reach another container
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Check both are on the same network
|
|
157
|
+
docker network inspect profclaw-net
|
|
158
|
+
|
|
159
|
+
# Connect a container to a network
|
|
160
|
+
docker network connect profclaw-net profclaw
|
|
161
|
+
|
|
162
|
+
# Use service name as hostname in Docker Compose
|
|
163
|
+
# e.g., redis:// redis:6379 where "redis" is the service name
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Out of disk space
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Show Docker disk usage
|
|
170
|
+
docker system df
|
|
171
|
+
|
|
172
|
+
# Safe cleanup (removes stopped containers, unused images, dangling volumes)
|
|
173
|
+
docker system prune
|
|
174
|
+
|
|
175
|
+
# Aggressive cleanup (removes ALL unused images, not just dangling)
|
|
176
|
+
docker system prune -a
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Dockerfile Best Practices
|
|
180
|
+
|
|
181
|
+
When reviewing or generating Dockerfiles:
|
|
182
|
+
|
|
183
|
+
```dockerfile
|
|
184
|
+
# Use specific version tags, not :latest
|
|
185
|
+
FROM node:22-alpine
|
|
186
|
+
|
|
187
|
+
# Set working directory
|
|
188
|
+
WORKDIR /app
|
|
189
|
+
|
|
190
|
+
# Copy package files first for layer caching
|
|
191
|
+
COPY package.json pnpm-lock.yaml ./
|
|
192
|
+
RUN corepack enable && pnpm install --frozen-lockfile
|
|
193
|
+
|
|
194
|
+
# Then copy source
|
|
195
|
+
COPY . .
|
|
196
|
+
|
|
197
|
+
# Build step
|
|
198
|
+
RUN pnpm build
|
|
199
|
+
|
|
200
|
+
# Use non-root user for security
|
|
201
|
+
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
|
202
|
+
USER appuser
|
|
203
|
+
|
|
204
|
+
# Expose port (documentation only)
|
|
205
|
+
EXPOSE 3000
|
|
206
|
+
|
|
207
|
+
# Use exec form for proper signal handling
|
|
208
|
+
CMD ["node", "dist/server.js"]
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Common issues to flag:
|
|
212
|
+
- Using `:latest` tag (non-deterministic builds)
|
|
213
|
+
- Running as root (security risk)
|
|
214
|
+
- Not using `.dockerignore` (leaks node_modules, secrets into image)
|
|
215
|
+
- No health check defined
|
|
216
|
+
|
|
217
|
+
## Example Interactions
|
|
218
|
+
|
|
219
|
+
**User**: Build and run the profclaw image locally
|
|
220
|
+
**You**: *(checks for Dockerfile, runs docker build with appropriate tag, runs container with env vars)*
|
|
221
|
+
|
|
222
|
+
**User**: The container keeps crashing, what's wrong?
|
|
223
|
+
**You**: *(runs docker ps -a for exit code, docker logs for error output, interprets and suggests fix)*
|
|
224
|
+
|
|
225
|
+
**User**: How do I start all services with Docker Compose?
|
|
226
|
+
**You**: `docker compose up -d` — starts all services defined in docker-compose.yml in detached mode. Use `docker compose logs -f` to watch the output.
|
|
227
|
+
|
|
228
|
+
**User**: Clear out all unused Docker images to free up disk space
|
|
229
|
+
**You**: *(runs docker system df first to show current usage, then docker image prune or system prune with confirmation)*
|
|
230
|
+
|
|
231
|
+
## Safety Rules
|
|
232
|
+
|
|
233
|
+
- **Always** confirm before `docker system prune -a` — it removes all unused images
|
|
234
|
+
- **Never** `docker rm -f` a container in production without explicit confirmation
|
|
235
|
+
- **Warn** when a user is about to `docker compose down -v` — this destroys volume data
|
|
236
|
+
- **Check** for running containers before removing images they depend on
|
|
237
|
+
|
|
238
|
+
## Best Practices
|
|
239
|
+
|
|
240
|
+
1. **Tag versions explicitly** — never rely on `:latest` in production deployments
|
|
241
|
+
2. **Use `.dockerignore`** — exclude `node_modules`, `.env`, `.git`, `build/`
|
|
242
|
+
3. **Layer caching** — copy `package.json` before source code to cache `npm install`
|
|
243
|
+
4. **Non-root user** — always run application processes as a non-root user
|
|
244
|
+
5. **Health checks** — define `HEALTHCHECK` in Dockerfiles for orchestration
|
|
245
|
+
6. **Log to stdout/stderr** — don't write app logs to files inside containers
|
|
246
|
+
7. **One process per container** — don't run multiple services in one container
|