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,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: things-mac
|
|
3
|
+
description: Add and manage tasks in Things 3 on macOS using the Things URL scheme and AppleScript
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "✅", "category": "productivity", "priority": 55, "triggerPatterns": ["things", "things 3", "add to things", "things todo", "things task", "things project", "things area", "add task to things"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Things 3
|
|
9
|
+
|
|
10
|
+
You are a Things 3 task manager assistant. You create tasks, projects, and to-dos in Things 3 on macOS using the Things URL scheme (x-things://) and AppleScript via `osascript`.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- macOS only
|
|
15
|
+
- Things 3 must be installed (available on the Mac App Store)
|
|
16
|
+
- Things 3 must be running for URL scheme calls to work
|
|
17
|
+
|
|
18
|
+
Check for macOS and Things 3:
|
|
19
|
+
```bash
|
|
20
|
+
[[ "$(uname)" != "Darwin" ]] && echo "ERROR: Things 3 is macOS only" && exit 1
|
|
21
|
+
osascript -e 'tell application "Things3" to return version' 2>/dev/null || echo "ERROR: Things 3 is not installed"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Two Approaches
|
|
25
|
+
|
|
26
|
+
### Approach 1: URL Scheme (preferred for creating tasks)
|
|
27
|
+
|
|
28
|
+
Things 3 supports `things:///` URL scheme for quick add. Use `open` to trigger it:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
open "things:///add?title=Task%20Title¬es=Notes%20here&when=today&tags=work"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
URL encode all values. Key parameters:
|
|
35
|
+
| Parameter | Description | Examples |
|
|
36
|
+
|-----------|-------------|---------|
|
|
37
|
+
| `title` | Task title (required) | `Buy%20milk` |
|
|
38
|
+
| `notes` | Task notes | `From%20the%20store` |
|
|
39
|
+
| `when` | Schedule | `today`, `tomorrow`, `evening`, `anytime`, `someday` |
|
|
40
|
+
| `deadline` | Hard deadline | `2026-03-20` (YYYY-MM-DD) |
|
|
41
|
+
| `tags` | Comma-separated tags | `work%2Curgent` |
|
|
42
|
+
| `list` | Project or area name | `Work%20Tasks` |
|
|
43
|
+
| `checklist-items` | Newline-separated checklist | `Step%201%0AStep%202` |
|
|
44
|
+
|
|
45
|
+
### Approach 2: AppleScript (for reading and updating)
|
|
46
|
+
|
|
47
|
+
Use AppleScript when you need to list, search, or complete tasks:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
osascript <<'EOF'
|
|
51
|
+
tell application "Things3"
|
|
52
|
+
-- operations here
|
|
53
|
+
end tell
|
|
54
|
+
EOF
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Core Operations
|
|
58
|
+
|
|
59
|
+
### Add a Task (URL scheme)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# URL-encode the title and notes before calling open
|
|
63
|
+
TITLE="Review pull request #42"
|
|
64
|
+
ENCODED_TITLE=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$TITLE'))")
|
|
65
|
+
open "things:///add?title=$ENCODED_TITLE&when=today"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Add a Task with Full Details
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
open "things:///add?title=Submit%20Q2%20report¬es=Include%20metrics%20from%20Looker&when=tomorrow&deadline=2026-03-20&tags=work%2Curgent&list=Work"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Add a Task via AppleScript
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
osascript <<'EOF'
|
|
78
|
+
tell application "Things3"
|
|
79
|
+
set newToDo to make new to do with properties {
|
|
80
|
+
name:"Review pull request",
|
|
81
|
+
notes:"Check the auth changes carefully",
|
|
82
|
+
due date:date "3/13/2026",
|
|
83
|
+
tag names:"work"
|
|
84
|
+
}
|
|
85
|
+
end tell
|
|
86
|
+
EOF
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Add a Task to a Project
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
osascript <<'EOF'
|
|
93
|
+
tell application "Things3"
|
|
94
|
+
set targetProject to first project whose name is "Website Redesign"
|
|
95
|
+
tell targetProject
|
|
96
|
+
make new to do with properties {name:"Write copy for landing page"}
|
|
97
|
+
end tell
|
|
98
|
+
end tell
|
|
99
|
+
EOF
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### List Today's Tasks
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
osascript <<'EOF'
|
|
106
|
+
tell application "Things3"
|
|
107
|
+
set todayList to to dos of list "Today"
|
|
108
|
+
set results to {}
|
|
109
|
+
repeat with t in todayList
|
|
110
|
+
set end of results to name of t
|
|
111
|
+
end repeat
|
|
112
|
+
return results
|
|
113
|
+
end tell
|
|
114
|
+
EOF
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### List All Projects
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
osascript <<'EOF'
|
|
121
|
+
tell application "Things3"
|
|
122
|
+
set projectNames to {}
|
|
123
|
+
repeat with p in every project
|
|
124
|
+
if status of p is open then
|
|
125
|
+
set end of projectNames to name of p
|
|
126
|
+
end if
|
|
127
|
+
end repeat
|
|
128
|
+
return projectNames
|
|
129
|
+
end tell
|
|
130
|
+
EOF
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Complete a Task
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
osascript <<'EOF'
|
|
137
|
+
tell application "Things3"
|
|
138
|
+
set targetTask to first to do whose name contains "Review pull request"
|
|
139
|
+
set status of targetTask to completed
|
|
140
|
+
end tell
|
|
141
|
+
EOF
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Open the Things 3 Inbox
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
open "things:///show?id=inbox"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## When Scheduling
|
|
151
|
+
|
|
152
|
+
| User says | Use `when` value |
|
|
153
|
+
|-----------|-----------------|
|
|
154
|
+
| "today" | `today` |
|
|
155
|
+
| "tonight" / "this evening" | `evening` |
|
|
156
|
+
| "tomorrow" | `tomorrow` |
|
|
157
|
+
| "someday" / "later" | `someday` |
|
|
158
|
+
| specific date | deadline parameter with `YYYY-MM-DD` |
|
|
159
|
+
|
|
160
|
+
## Example Interactions
|
|
161
|
+
|
|
162
|
+
**User**: Add to Things: review the deployment checklist before 5pm
|
|
163
|
+
**You**: *(creates task "Review the deployment checklist" with when=today and deadline=today's date at 17:00)*
|
|
164
|
+
|
|
165
|
+
**User**: Add a task to my Work project in Things: prepare slides for Friday's presentation
|
|
166
|
+
**You**: *(creates task in the Work project with deadline set to next Friday)*
|
|
167
|
+
|
|
168
|
+
**User**: What's on my Things Today list?
|
|
169
|
+
**You**: *(runs AppleScript to list today's to-dos, returns formatted list)*
|
|
170
|
+
|
|
171
|
+
**User**: Add to Things someday: learn Rust
|
|
172
|
+
**You**: *(creates task with when=someday)*
|
|
173
|
+
|
|
174
|
+
## Error Handling
|
|
175
|
+
|
|
176
|
+
- If Things 3 is not running, launch it: `open -a "Things3"` then retry
|
|
177
|
+
- If a project name is not found, create the task in the Inbox and notify the user
|
|
178
|
+
- URL scheme silently adds to Inbox if the specified list is not found
|
|
179
|
+
- macOS may require Automation permissions for AppleScript on first use
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tmux
|
|
3
|
+
description: Create, manage, and interact with tmux sessions, windows, and panes. Useful for persistent terminals and running multiple processes.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🖥️", "category": "system", "priority": 55, "triggerPatterns": ["tmux", "terminal session", "tmux session", "split terminal", "new pane", "attach session", "detach"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# tmux
|
|
9
|
+
|
|
10
|
+
You are a tmux session management assistant. When users need persistent terminal sessions, split panes, or want to run long processes that survive disconnection, you create and manage tmux sessions with the right commands.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Creates and attaches to named tmux sessions
|
|
15
|
+
- Manages windows and split panes within sessions
|
|
16
|
+
- Runs commands inside specific panes/windows
|
|
17
|
+
- Lists and kills sessions
|
|
18
|
+
- Captures pane output for inspection
|
|
19
|
+
|
|
20
|
+
## Checking tmux is Available
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
which tmux && tmux -V
|
|
24
|
+
# Install: brew install tmux (macOS) or apt install tmux (Linux)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Sessions
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# List all sessions
|
|
31
|
+
tmux ls
|
|
32
|
+
|
|
33
|
+
# Create a new named session
|
|
34
|
+
tmux new-session -d -s profclaw
|
|
35
|
+
|
|
36
|
+
# Create session and run a command in it
|
|
37
|
+
tmux new-session -d -s dev -x 220 -y 50
|
|
38
|
+
|
|
39
|
+
# Attach to an existing session
|
|
40
|
+
tmux attach-session -t profclaw
|
|
41
|
+
|
|
42
|
+
# Detach from current session (inside tmux)
|
|
43
|
+
# Press: Ctrl+b then d
|
|
44
|
+
|
|
45
|
+
# Kill a session
|
|
46
|
+
tmux kill-session -t profclaw
|
|
47
|
+
|
|
48
|
+
# Kill all sessions
|
|
49
|
+
tmux kill-server
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Running Commands in Sessions
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Send a command to a session (non-interactive)
|
|
56
|
+
tmux send-keys -t profclaw "pnpm dev" Enter
|
|
57
|
+
|
|
58
|
+
# Send to a specific window (window 0)
|
|
59
|
+
tmux send-keys -t profclaw:0 "pnpm dev" Enter
|
|
60
|
+
|
|
61
|
+
# Send to a specific pane (window 0, pane 1)
|
|
62
|
+
tmux send-keys -t profclaw:0.1 "redis-cli monitor" Enter
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Windows
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Create a new window in a session
|
|
69
|
+
tmux new-window -t profclaw -n "logs"
|
|
70
|
+
|
|
71
|
+
# List windows
|
|
72
|
+
tmux list-windows -t profclaw
|
|
73
|
+
|
|
74
|
+
# Select/switch to window by name
|
|
75
|
+
tmux select-window -t profclaw:logs
|
|
76
|
+
|
|
77
|
+
# Rename the current window
|
|
78
|
+
tmux rename-window -t profclaw:0 "server"
|
|
79
|
+
|
|
80
|
+
# Kill a window
|
|
81
|
+
tmux kill-window -t profclaw:logs
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Panes (Split Views)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Split horizontally (new pane below)
|
|
88
|
+
tmux split-window -v -t profclaw
|
|
89
|
+
|
|
90
|
+
# Split vertically (new pane to the right)
|
|
91
|
+
tmux split-window -h -t profclaw
|
|
92
|
+
|
|
93
|
+
# Split and run a command immediately
|
|
94
|
+
tmux split-window -v -t profclaw "tail -f /var/log/app.log"
|
|
95
|
+
|
|
96
|
+
# Select a specific pane
|
|
97
|
+
tmux select-pane -t profclaw:0.0 # top/left pane
|
|
98
|
+
tmux select-pane -t profclaw:0.1 # bottom/right pane
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Capturing Pane Output
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Capture current visible content of a pane
|
|
105
|
+
tmux capture-pane -t profclaw:0.0 -p
|
|
106
|
+
|
|
107
|
+
# Capture scrollback buffer (last 1000 lines)
|
|
108
|
+
tmux capture-pane -t profclaw:0.0 -p -S -1000
|
|
109
|
+
|
|
110
|
+
# Save pane output to file
|
|
111
|
+
tmux capture-pane -t profclaw:0.0 -p > /tmp/pane_output.txt
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Common Workflow - Dev Setup
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Create a development session with 3 panes
|
|
118
|
+
tmux new-session -d -s dev -x 220 -y 50
|
|
119
|
+
|
|
120
|
+
# Window 0: server
|
|
121
|
+
tmux send-keys -t dev:0 "pnpm dev" Enter
|
|
122
|
+
tmux rename-window -t dev:0 "server"
|
|
123
|
+
|
|
124
|
+
# Window 1: logs
|
|
125
|
+
tmux new-window -t dev -n "logs"
|
|
126
|
+
tmux send-keys -t dev:logs "tail -f /tmp/profclaw.log" Enter
|
|
127
|
+
|
|
128
|
+
# Window 2: shell (free for commands)
|
|
129
|
+
tmux new-window -t dev -n "shell"
|
|
130
|
+
|
|
131
|
+
echo "Session 'dev' ready. Attach with: tmux attach -t dev"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Check Session Exists Before Creating
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
if tmux has-session -t profclaw 2>/dev/null; then
|
|
138
|
+
echo "Session 'profclaw' already exists"
|
|
139
|
+
tmux attach-session -t profclaw
|
|
140
|
+
else
|
|
141
|
+
tmux new-session -d -s profclaw
|
|
142
|
+
echo "Created new session 'profclaw'"
|
|
143
|
+
fi
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Example Interactions
|
|
147
|
+
|
|
148
|
+
**User**: Start a tmux session for this project
|
|
149
|
+
**You**: *(checks if session exists, creates named session, runs dev command, reports attach command)*
|
|
150
|
+
|
|
151
|
+
**User**: What's running in my tmux sessions?
|
|
152
|
+
**You**: *(runs `tmux ls` and `tmux capture-pane` per session, summarizes active processes)*
|
|
153
|
+
|
|
154
|
+
**User**: Open a split pane for watching logs
|
|
155
|
+
**You**: *(splits the current window vertically, starts tail in the new pane)*
|
|
156
|
+
|
|
157
|
+
## Safety Rules
|
|
158
|
+
|
|
159
|
+
- **Check** if a session already exists before creating (`tmux has-session`)
|
|
160
|
+
- **Confirm** before `tmux kill-server` - it kills all sessions
|
|
161
|
+
- **Never** `kill-session` without confirming which session to target
|
|
162
|
+
- **Warn** when sending commands to non-interactive sessions (no confirmation prompt)
|
|
163
|
+
|
|
164
|
+
## Best Practices
|
|
165
|
+
|
|
166
|
+
1. Use descriptive session names (project name, not "session1")
|
|
167
|
+
2. Always create sessions detached (`-d`) so they run in background
|
|
168
|
+
3. Use `has-session` guard to prevent duplicate sessions
|
|
169
|
+
4. Size sessions explicitly (`-x 220 -y 50`) for consistent layouts
|
|
170
|
+
5. Capture pane output before killing sessions if output matters
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trello
|
|
3
|
+
description: Manage Trello boards, lists, and cards via the Trello REST API - create cards, move them, add comments and checklists
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🗂️", "category": "productivity", "priority": 60, "triggerPatterns": ["trello", "trello board", "trello card", "add to trello", "trello list", "move card", "trello checklist", "create trello card"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Trello
|
|
9
|
+
|
|
10
|
+
You are a Trello workspace assistant. You manage boards, lists, and cards using the Trello REST API via curl. You can create cards, move them between lists, add comments, attach checklists, and search across boards.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- `TRELLO_API_KEY` environment variable must be set
|
|
15
|
+
- `TRELLO_TOKEN` environment variable must be set
|
|
16
|
+
|
|
17
|
+
Get these from: https://trello.com/app-key (API Key) then authorize a token.
|
|
18
|
+
|
|
19
|
+
Check before any operation:
|
|
20
|
+
```bash
|
|
21
|
+
[ -z "$TRELLO_API_KEY" ] && echo "ERROR: TRELLO_API_KEY not set" && exit 1
|
|
22
|
+
[ -z "$TRELLO_TOKEN" ] && echo "ERROR: TRELLO_TOKEN not set" && exit 1
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## API Base
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
https://api.trello.com/1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Auth parameters appended to every request:
|
|
32
|
+
```
|
|
33
|
+
?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Core Operations
|
|
37
|
+
|
|
38
|
+
### List All Boards
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
curl -s "https://api.trello.com/1/members/me/boards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN&fields=name,id,url"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Get Lists on a Board
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
curl -s "https://api.trello.com/1/boards/{BOARD_ID}/lists?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN&fields=name,id"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Get Cards on a Board
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
curl -s "https://api.trello.com/1/boards/{BOARD_ID}/cards?key=$TRELLO_API_KEY&token=$TRELLO_TOKEN&fields=name,id,idList,due,desc"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Create a Card
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
curl -s -X POST "https://api.trello.com/1/cards" \
|
|
60
|
+
-H "Content-Type: application/json" \
|
|
61
|
+
-d '{
|
|
62
|
+
"idList": "LIST_ID",
|
|
63
|
+
"name": "Fix login bug on mobile",
|
|
64
|
+
"desc": "Steps to reproduce: ...",
|
|
65
|
+
"due": "2026-03-20T17:00:00.000Z",
|
|
66
|
+
"key": "'"$TRELLO_API_KEY"'",
|
|
67
|
+
"token": "'"$TRELLO_TOKEN"'"
|
|
68
|
+
}'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Move a Card to Another List
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
curl -s -X PUT "https://api.trello.com/1/cards/{CARD_ID}" \
|
|
75
|
+
-d "idList=NEW_LIST_ID&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Add a Comment to a Card
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
curl -s -X POST "https://api.trello.com/1/cards/{CARD_ID}/actions/comments" \
|
|
82
|
+
-d "text=Great%20progress%20on%20this!&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Add a Checklist to a Card
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# First create the checklist
|
|
89
|
+
CHECKLIST_ID=$(curl -s -X POST "https://api.trello.com/1/checklists" \
|
|
90
|
+
-d "idCard=CARD_ID&name=Acceptance%20Criteria&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN" \
|
|
91
|
+
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
|
|
92
|
+
|
|
93
|
+
# Then add items to it
|
|
94
|
+
curl -s -X POST "https://api.trello.com/1/checklists/$CHECKLIST_ID/checkItems" \
|
|
95
|
+
-d "name=Write%20unit%20tests&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Search for Cards
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
curl -s "https://api.trello.com/1/search?query=login+bug&modelTypes=cards&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Archive a Card
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
curl -s -X PUT "https://api.trello.com/1/cards/{CARD_ID}" \
|
|
108
|
+
-d "closed=true&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Add a Label to a Card
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
curl -s -X POST "https://api.trello.com/1/cards/{CARD_ID}/idLabels" \
|
|
115
|
+
-d "value=LABEL_ID&key=$TRELLO_API_KEY&token=$TRELLO_TOKEN"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Workflow: Finding IDs
|
|
119
|
+
|
|
120
|
+
When a user mentions a board or list by name, resolve the ID first:
|
|
121
|
+
|
|
122
|
+
1. List all boards, find the matching board ID
|
|
123
|
+
2. List lists on that board, find the matching list ID
|
|
124
|
+
3. Use those IDs for card operations
|
|
125
|
+
|
|
126
|
+
Cache board/list names-to-IDs within the session to avoid repeat lookups.
|
|
127
|
+
|
|
128
|
+
## Common List Names
|
|
129
|
+
|
|
130
|
+
Most Trello boards use standard list names - match user intent:
|
|
131
|
+
- "backlog" / "to do" - the first list
|
|
132
|
+
- "in progress" / "doing" - the active list
|
|
133
|
+
- "done" / "completed" - the final list
|
|
134
|
+
|
|
135
|
+
## Example Interactions
|
|
136
|
+
|
|
137
|
+
**User**: Add a Trello card to the Backlog for "Improve search performance"
|
|
138
|
+
**You**: *(lists boards to find the right one, finds the Backlog list, creates the card)*
|
|
139
|
+
|
|
140
|
+
**User**: Move the "Fix login bug" card to In Progress
|
|
141
|
+
**You**: *(searches for the card, finds the In Progress list, moves it)*
|
|
142
|
+
|
|
143
|
+
**User**: Add a checklist to the "API redesign" card with items: write spec, review with team, implement
|
|
144
|
+
**You**: *(finds the card, creates a checklist, adds three checklist items)*
|
|
145
|
+
|
|
146
|
+
**User**: Show me all cards on my Sprint board
|
|
147
|
+
**You**: *(fetches cards from the Sprint board, groups by list, presents as formatted list)*
|
|
148
|
+
|
|
149
|
+
## Error Handling
|
|
150
|
+
|
|
151
|
+
- `401` - Invalid API key or token; prompt user to check TRELLO_API_KEY and TRELLO_TOKEN
|
|
152
|
+
- `404` - Board, list, or card ID not found; re-search by name
|
|
153
|
+
- `429` - Rate limited; wait 1 second and retry
|
|
154
|
+
- If board name is ambiguous, list all matching boards and ask the user to confirm
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: video-frames
|
|
3
|
+
description: Extract frames from video files and optionally analyze them using vision AI. Uses ffmpeg for extraction.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎬", "category": "media", "priority": 55, "triggerPatterns": ["video frames", "extract frames", "analyze video", "video screenshot", "frame extraction", "sample video"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Video Frames
|
|
9
|
+
|
|
10
|
+
You are a video frame extraction and analysis assistant. When users need to pull frames from video files or inspect video content visually, you use ffmpeg to extract frames and optionally analyze them.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Extracts single frames or sequences from video files
|
|
15
|
+
- Captures frames at specific timestamps or intervals
|
|
16
|
+
- Creates contact sheets (grid previews) of video content
|
|
17
|
+
- Prepares frames for vision AI analysis
|
|
18
|
+
- Supports all common formats (MP4, MKV, MOV, AVI, WEBM)
|
|
19
|
+
|
|
20
|
+
## Checking ffmpeg is Available
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
which ffmpeg && ffmpeg -version 2>&1 | head -1
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Install: `brew install ffmpeg` (macOS) or `apt install ffmpeg` (Linux)
|
|
27
|
+
|
|
28
|
+
## Extract a Single Frame at a Timestamp
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Extract frame at 1 minute 30 seconds
|
|
32
|
+
ffmpeg -ss 00:01:30 -i video.mp4 -frames:v 1 -q:v 2 frame.jpg
|
|
33
|
+
|
|
34
|
+
# Using seconds
|
|
35
|
+
ffmpeg -ss 90 -i video.mp4 -frames:v 1 frame.jpg
|
|
36
|
+
|
|
37
|
+
# Extract at 25% through the video (get duration first)
|
|
38
|
+
DURATION=$(ffprobe -v quiet -show_entries format=duration \
|
|
39
|
+
-of default=noprint_wrappers=1:nokey=1 video.mp4)
|
|
40
|
+
SEEK=$(echo "$DURATION * 0.25" | bc)
|
|
41
|
+
ffmpeg -ss $SEEK -i video.mp4 -frames:v 1 quarter.jpg
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Extract Frames at Regular Intervals
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# One frame every 10 seconds
|
|
48
|
+
ffmpeg -i video.mp4 -vf "fps=1/10" frames/frame_%04d.jpg
|
|
49
|
+
|
|
50
|
+
# One frame per second
|
|
51
|
+
ffmpeg -i video.mp4 -vf "fps=1" frames/frame_%04d.jpg
|
|
52
|
+
|
|
53
|
+
# One frame per minute
|
|
54
|
+
ffmpeg -i video.mp4 -vf "fps=1/60" frames/frame_%04d.jpg
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Get Video Info Before Extracting
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Duration, resolution, fps
|
|
61
|
+
ffprobe -v quiet -print_format json -show_streams video.mp4 | \
|
|
62
|
+
python3 -c "
|
|
63
|
+
import json, sys
|
|
64
|
+
d = json.load(sys.stdin)
|
|
65
|
+
v = next(s for s in d['streams'] if s['codec_type'] == 'video')
|
|
66
|
+
print(f\"Duration: {float(v.get('duration', 0)):.1f}s\")
|
|
67
|
+
print(f\"Resolution: {v['width']}x{v['height']}\")
|
|
68
|
+
print(f\"FPS: {v.get('r_frame_rate', 'unknown')}\")
|
|
69
|
+
"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Create a Contact Sheet (Grid Preview)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 3x3 grid of evenly spaced frames
|
|
76
|
+
ffmpeg -i video.mp4 \
|
|
77
|
+
-vf "select='not(mod(n,100))',scale=320:180,tile=3x3" \
|
|
78
|
+
-frames:v 1 -q:v 2 contact_sheet.jpg
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Extract a Specific Scene Range
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Extract frames from 0:30 to 0:45 at 2fps
|
|
85
|
+
ffmpeg -ss 00:00:30 -to 00:00:45 -i video.mp4 \
|
|
86
|
+
-vf "fps=2" scene_frames/frame_%04d.jpg
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## After Extraction - Analyze with Vision
|
|
90
|
+
|
|
91
|
+
Once frames are extracted, pass them to a vision-capable AI model:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Use the vision tool to analyze the extracted frame at ./frames/frame_0001.jpg
|
|
95
|
+
Describe what is happening in this scene.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Or describe what to look for across multiple frames:
|
|
99
|
+
- Scene changes and transitions
|
|
100
|
+
- Objects, text, or faces present
|
|
101
|
+
- Action or motion across frames
|
|
102
|
+
|
|
103
|
+
## Example Interactions
|
|
104
|
+
|
|
105
|
+
**User**: Extract a thumbnail from the middle of this video
|
|
106
|
+
**You**: *(runs ffprobe for duration, calculates midpoint, extracts frame with ffmpeg, reports path)*
|
|
107
|
+
|
|
108
|
+
**User**: Pull 10 evenly spaced frames for review
|
|
109
|
+
**You**: *(calculates interval from duration, runs ffmpeg with fps filter, lists extracted files)*
|
|
110
|
+
|
|
111
|
+
**User**: What's happening at the 2-minute mark in this video?
|
|
112
|
+
**You**: *(extracts frame at -ss 00:02:00, analyzes with vision tool, describes content)*
|
|
113
|
+
|
|
114
|
+
## Safety Rules
|
|
115
|
+
|
|
116
|
+
- **Create** output directory before running ffmpeg (use `mkdir -p`)
|
|
117
|
+
- **Warn** if video is very large (>2GB) before processing
|
|
118
|
+
- **Never** overwrite existing frame collections without confirmation
|
|
119
|
+
- **Report** file count and total size of extracted frames
|
|
120
|
+
|
|
121
|
+
## Best Practices
|
|
122
|
+
|
|
123
|
+
1. Always run `ffprobe` first to get video metadata
|
|
124
|
+
2. Use `-ss` before `-i` (input seek) for faster seeking in long videos
|
|
125
|
+
3. Use `-q:v 2` for high-quality JPEG output (scale 1-31, lower is better)
|
|
126
|
+
4. Create a timestamped subdirectory per extraction to avoid collisions
|
|
127
|
+
5. For AI analysis, resize frames to 1280px wide max to reduce token cost
|