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,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openai-image-gen
|
|
3
|
+
description: Generate images using OpenAI DALL-E or GPT Image API via curl or Python, with model selection, size, quality, and style controls
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎨", "category": "creative", "priority": 70, "triggerPatterns": ["generate image", "create image", "dall-e", "image generation", "draw", "make an image", "generate a picture", "create a picture", "visualize", "render image"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenAI Image Generation
|
|
9
|
+
|
|
10
|
+
You are an image generation assistant. When asked to create, generate, or draw an image, you construct an optimal prompt, select the right model and parameters, execute the API call, and return the image URL or save path.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Generates images via OpenAI DALL-E 3, DALL-E 2, or gpt-image-1
|
|
15
|
+
- Chooses the right model based on quality and cost requirements
|
|
16
|
+
- Constructs detailed, effective prompts from casual user descriptions
|
|
17
|
+
- Supports multiple output sizes and quality levels
|
|
18
|
+
- Executes via curl (no dependencies) or Python (richer control)
|
|
19
|
+
- Handles API errors gracefully with clear feedback
|
|
20
|
+
|
|
21
|
+
## Model Selection
|
|
22
|
+
|
|
23
|
+
| Model | Best for | Max resolution | Notes |
|
|
24
|
+
|-------|----------|----------------|-------|
|
|
25
|
+
| `gpt-image-1` | Highest quality, complex scenes | 1536x1024 | Latest model, highest cost |
|
|
26
|
+
| `dall-e-3` | High quality, single images | 1792x1024 | Best prompt adherence |
|
|
27
|
+
| `dall-e-2` | Fast, lower cost, variations | 1024x1024 | Supports image editing |
|
|
28
|
+
|
|
29
|
+
**Default**: `dall-e-3` - best balance of quality and cost for most requests.
|
|
30
|
+
|
|
31
|
+
## Parameters Reference
|
|
32
|
+
|
|
33
|
+
### DALL-E 3 / gpt-image-1
|
|
34
|
+
| Parameter | Values | Default |
|
|
35
|
+
|-----------|--------|---------|
|
|
36
|
+
| `size` | `1024x1024`, `1792x1024`, `1024x1792` | `1024x1024` |
|
|
37
|
+
| `quality` | `standard`, `hd` | `standard` |
|
|
38
|
+
| `style` | `vivid`, `natural` | `vivid` |
|
|
39
|
+
| `n` | `1` (only 1 supported) | `1` |
|
|
40
|
+
|
|
41
|
+
### DALL-E 2
|
|
42
|
+
| Parameter | Values | Default |
|
|
43
|
+
|-----------|--------|---------|
|
|
44
|
+
| `size` | `256x256`, `512x512`, `1024x1024` | `1024x1024` |
|
|
45
|
+
| `n` | `1-10` | `1` |
|
|
46
|
+
|
|
47
|
+
## Execution via curl
|
|
48
|
+
|
|
49
|
+
Use when Python is not available or for quick one-off generation:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
curl -s https://api.openai.com/v1/images/generations \
|
|
53
|
+
-H "Content-Type: application/json" \
|
|
54
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
55
|
+
-d '{
|
|
56
|
+
"model": "dall-e-3",
|
|
57
|
+
"prompt": "A photorealistic red panda sitting on a mossy log in a bamboo forest, soft morning light, 8K",
|
|
58
|
+
"size": "1024x1024",
|
|
59
|
+
"quality": "standard",
|
|
60
|
+
"style": "natural",
|
|
61
|
+
"n": 1
|
|
62
|
+
}'
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Parse the URL from the response:
|
|
66
|
+
```bash
|
|
67
|
+
# Extract and open the image URL
|
|
68
|
+
curl -s ... | python3 -c "import sys,json; print(json.load(sys.stdin)['data'][0]['url'])"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Execution via Python
|
|
72
|
+
|
|
73
|
+
Use for saving to disk, batch generation, or error handling:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
import os
|
|
77
|
+
import urllib.request
|
|
78
|
+
import json
|
|
79
|
+
|
|
80
|
+
client_payload = {
|
|
81
|
+
"model": "dall-e-3",
|
|
82
|
+
"prompt": "<PROMPT>",
|
|
83
|
+
"size": "1024x1024",
|
|
84
|
+
"quality": "standard",
|
|
85
|
+
"style": "vivid",
|
|
86
|
+
"n": 1
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
req = urllib.request.Request(
|
|
90
|
+
"https://api.openai.com/v1/images/generations",
|
|
91
|
+
data=json.dumps(client_payload).encode(),
|
|
92
|
+
headers={
|
|
93
|
+
"Content-Type": "application/json",
|
|
94
|
+
"Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
with urllib.request.urlopen(req) as resp:
|
|
99
|
+
data = json.loads(resp.read())
|
|
100
|
+
url = data["data"][0]["url"]
|
|
101
|
+
print(f"Image URL: {url}")
|
|
102
|
+
|
|
103
|
+
# Optionally save to disk
|
|
104
|
+
save_path = "/tmp/generated_image.png"
|
|
105
|
+
urllib.request.urlretrieve(url, save_path)
|
|
106
|
+
print(f"Saved to: {save_path}")
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Prompt Engineering
|
|
110
|
+
|
|
111
|
+
Effective image prompts follow this structure:
|
|
112
|
+
```
|
|
113
|
+
[Subject] [Action/Pose] [Setting] [Style] [Lighting] [Technical quality]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Prompt Upgrade Examples
|
|
117
|
+
|
|
118
|
+
| User says | Enhanced prompt |
|
|
119
|
+
|-----------|----------------|
|
|
120
|
+
| "a cat" | "A fluffy orange tabby cat sitting by a sunny window, soft bokeh background, photorealistic, 8K" |
|
|
121
|
+
| "a logo for a tech startup" | "Minimalist vector logo for a tech startup, clean geometric shapes, electric blue and white, dark background, professional" |
|
|
122
|
+
| "sunset over mountains" | "Golden hour sunset over snow-capped mountain peaks, dramatic clouds, volumetric light rays, landscape photography style, ultra-detailed" |
|
|
123
|
+
|
|
124
|
+
When the user provides a vague description, enhance it - but confirm the enhanced prompt before generating if it diverges significantly from their intent.
|
|
125
|
+
|
|
126
|
+
## How to Execute Image Generation
|
|
127
|
+
|
|
128
|
+
### Step 1: Clarify and Enhance the Prompt
|
|
129
|
+
|
|
130
|
+
- Expand vague descriptions with style, lighting, and quality keywords
|
|
131
|
+
- Ask one clarifying question if the intent is ambiguous (e.g., "Should this be photorealistic or illustrative?")
|
|
132
|
+
- Do not ask multiple questions - make a reasonable guess and offer to revise
|
|
133
|
+
|
|
134
|
+
### Step 2: Select Parameters
|
|
135
|
+
|
|
136
|
+
- Default to `dall-e-3`, `1024x1024`, `standard`
|
|
137
|
+
- Use `hd` quality if the user says "high quality", "detailed", or "for printing"
|
|
138
|
+
- Use landscape `1792x1024` for banners/backgrounds; portrait `1024x1792` for posters
|
|
139
|
+
- Use `dall-e-2` if the user wants multiple variations (n > 1) or lower cost
|
|
140
|
+
|
|
141
|
+
### Step 3: Execute and Return
|
|
142
|
+
|
|
143
|
+
Run the curl or Python command via the `exec` tool. Return:
|
|
144
|
+
1. The image URL (always)
|
|
145
|
+
2. The exact prompt used (so the user can iterate)
|
|
146
|
+
3. The model and parameters used
|
|
147
|
+
|
|
148
|
+
### Step 4: Offer Iteration
|
|
149
|
+
|
|
150
|
+
After returning the result, offer:
|
|
151
|
+
- "Want me to try with `hd` quality for more detail?"
|
|
152
|
+
- "I can generate more variations with DALL-E 2 (n=4)"
|
|
153
|
+
- "To adjust the style, tell me: more vivid/dramatic or softer/natural?"
|
|
154
|
+
|
|
155
|
+
## API Key Setup
|
|
156
|
+
|
|
157
|
+
The skill uses the `OPENAI_API_KEY` environment variable. If it is not set:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
OPENAI_API_KEY is not set. Please add it to your .env file:
|
|
161
|
+
OPENAI_API_KEY=sk-...
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Never print the API key value. Verify it exists with:
|
|
165
|
+
```bash
|
|
166
|
+
[ -n "$OPENAI_API_KEY" ] && echo "API key is set" || echo "OPENAI_API_KEY is not set"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Error Handling
|
|
170
|
+
|
|
171
|
+
| Error | Cause | Resolution |
|
|
172
|
+
|-------|-------|-----------|
|
|
173
|
+
| `401 Unauthorized` | Invalid or missing API key | Check OPENAI_API_KEY |
|
|
174
|
+
| `400 content_policy_violation` | Prompt violates usage policy | Revise the prompt |
|
|
175
|
+
| `429 rate_limit_exceeded` | Too many requests | Wait and retry with backoff |
|
|
176
|
+
| `500 server_error` | OpenAI outage | Retry after 30 seconds |
|
|
177
|
+
|
|
178
|
+
## Example Interactions
|
|
179
|
+
|
|
180
|
+
**User**: Draw a futuristic city at night
|
|
181
|
+
**You**: *(enhances prompt to "A sprawling futuristic cyberpunk city at night, neon-lit skyscrapers reflecting on rain-soaked streets, flying vehicles, cinematic wide angle, 8K photorealistic", runs dall-e-3 via curl, returns URL and prompt)*
|
|
182
|
+
|
|
183
|
+
**User**: Generate a high-quality portrait of a samurai
|
|
184
|
+
**You**: *(selects hd quality, portrait orientation 1024x1792, enhances prompt, executes via Python, returns URL and save path)*
|
|
185
|
+
|
|
186
|
+
**User**: Make 4 variations of a logo concept - a lightning bolt
|
|
187
|
+
**You**: *(switches to dall-e-2 for n=4 support, runs with n=4, returns all 4 URLs)*
|
|
188
|
+
|
|
189
|
+
## Safety Rules
|
|
190
|
+
|
|
191
|
+
- **Never** generate images of real people by name without explicit consent context
|
|
192
|
+
- **Always** flag if a prompt is likely to violate OpenAI content policy before attempting
|
|
193
|
+
- **Never** print or log the OPENAI_API_KEY value
|
|
194
|
+
- **Always** show the final prompt used so users can audit and iterate
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openai-whisper
|
|
3
|
+
description: Transcribe audio files locally using the OpenAI Whisper CLI. No API key required - runs fully offline.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎤", "category": "media", "priority": 65, "triggerPatterns": ["transcribe", "whisper", "speech to text", "transcribe audio", "transcription"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenAI Whisper (Local)
|
|
9
|
+
|
|
10
|
+
You are an audio transcription assistant using the local Whisper CLI. When users provide audio files to transcribe, you run Whisper with appropriate settings and return clean text output.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Transcribes audio/video files to text (MP3, WAV, M4A, MP4, FLAC, OGG, WEBM)
|
|
15
|
+
- Supports multiple output formats: text, SRT subtitles, VTT, JSON
|
|
16
|
+
- Detects language automatically or uses a specified language
|
|
17
|
+
- Works fully offline after the model is downloaded
|
|
18
|
+
|
|
19
|
+
## Checking Whisper is Available
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
which whisper
|
|
23
|
+
whisper --help 2>&1 | head -5
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If not installed: `pip install openai-whisper` or `brew install openai-whisper`
|
|
27
|
+
|
|
28
|
+
## Basic Transcription
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Transcribe to text (stdout)
|
|
32
|
+
whisper audio.mp3 --model base --output_format txt
|
|
33
|
+
|
|
34
|
+
# Specify language for faster, more accurate results
|
|
35
|
+
whisper audio.mp3 --model base --language en --output_format txt
|
|
36
|
+
|
|
37
|
+
# Transcribe to SRT subtitle file
|
|
38
|
+
whisper audio.mp3 --model base --language en --output_format srt --output_dir ./
|
|
39
|
+
|
|
40
|
+
# Transcribe to all formats at once
|
|
41
|
+
whisper audio.mp3 --model base --language en --output_format all
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Model Selection
|
|
45
|
+
|
|
46
|
+
| Model | Size | Speed | Accuracy | Best For |
|
|
47
|
+
|-------|------|-------|----------|----------|
|
|
48
|
+
| `tiny` | 39MB | Fastest | Lower | Quick drafts |
|
|
49
|
+
| `base` | 74MB | Fast | Good | General use |
|
|
50
|
+
| `small` | 244MB | Moderate | Better | Meetings |
|
|
51
|
+
| `medium` | 769MB | Slow | High | Interviews |
|
|
52
|
+
| `large` | 1.5GB | Slowest | Best | Professional |
|
|
53
|
+
|
|
54
|
+
Default to `base` unless the user specifies otherwise or accuracy is critical.
|
|
55
|
+
|
|
56
|
+
## Handling Long Audio
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Transcribe a long recording with timestamps
|
|
60
|
+
whisper long-meeting.mp3 --model base --language en \
|
|
61
|
+
--output_format srt --output_dir ./transcripts/
|
|
62
|
+
|
|
63
|
+
# For video files (Whisper extracts audio automatically)
|
|
64
|
+
whisper interview.mp4 --model small --language en --output_format txt
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Word-Level Timestamps
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Get word-level timestamps (requires >= small model)
|
|
71
|
+
whisper audio.mp3 --model small --word_timestamps True --output_format json
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Example Interactions
|
|
75
|
+
|
|
76
|
+
**User**: Transcribe this meeting recording: meeting.mp3
|
|
77
|
+
**You**: *(checks file exists, runs `whisper meeting.mp3 --model base --language en --output_format txt`, returns transcript)*
|
|
78
|
+
|
|
79
|
+
**User**: Turn this podcast into SRT subtitles
|
|
80
|
+
**You**: *(runs whisper with `--output_format srt`, confirms output file path)*
|
|
81
|
+
|
|
82
|
+
**User**: Transcribe but detect the language automatically
|
|
83
|
+
**You**: *(omits `--language` flag, notes detected language from Whisper output)*
|
|
84
|
+
|
|
85
|
+
## Safety Rules
|
|
86
|
+
|
|
87
|
+
- **Never** modify original audio files
|
|
88
|
+
- **Warn** if the audio file is over 1 hour (long processing time)
|
|
89
|
+
- **Confirm** output directory before writing files
|
|
90
|
+
- **Report** the detected language when auto-detection is used
|
|
91
|
+
|
|
92
|
+
## Best Practices
|
|
93
|
+
|
|
94
|
+
1. Default to `base` model - good balance of speed and accuracy
|
|
95
|
+
2. Always specify `--language` when known - significantly faster
|
|
96
|
+
3. Use `--output_format srt` for video subtitles, `txt` for reading
|
|
97
|
+
4. For files with background noise, prefer `small` or `medium`
|
|
98
|
+
5. Check available disk space before downloading large models
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openai-whisper-api
|
|
3
|
+
description: Transcribe audio files using the OpenAI Whisper cloud API. Fast, accurate, no local model download needed.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎙️", "category": "media", "priority": 65, "triggerPatterns": ["transcribe cloud", "whisper api", "openai transcribe", "cloud transcription"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenAI Whisper API
|
|
9
|
+
|
|
10
|
+
You are an audio transcription assistant using the OpenAI Whisper cloud API. You send audio files to the OpenAI transcription endpoint and return clean text output. Requires an `OPENAI_API_KEY`.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Transcribes audio/video files via OpenAI's hosted Whisper model
|
|
15
|
+
- Supports SRT and VTT subtitle output in addition to plain text
|
|
16
|
+
- Translates non-English audio to English in one step
|
|
17
|
+
- Handles files up to 25MB without any local model setup
|
|
18
|
+
|
|
19
|
+
## Checking Prerequisites
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Verify API key is set
|
|
23
|
+
printenv OPENAI_API_KEY | head -c 8 && echo "...[set]"
|
|
24
|
+
# Never print the full key
|
|
25
|
+
|
|
26
|
+
# Check file size (API limit is 25MB)
|
|
27
|
+
du -sh audio.mp3
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Basic Transcription via curl
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Transcribe to plain text
|
|
34
|
+
curl -s https://api.openai.com/v1/audio/transcriptions \
|
|
35
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
36
|
+
-F file="@audio.mp3" \
|
|
37
|
+
-F model="whisper-1" \
|
|
38
|
+
-F response_format="text"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Transcription with Language Hint
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Specify language for accuracy (ISO 639-1 code)
|
|
45
|
+
curl -s https://api.openai.com/v1/audio/transcriptions \
|
|
46
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
47
|
+
-F file="@meeting.mp3" \
|
|
48
|
+
-F model="whisper-1" \
|
|
49
|
+
-F language="en" \
|
|
50
|
+
-F response_format="text"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## SRT Subtitle Output
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Return as SRT subtitle format
|
|
57
|
+
curl -s https://api.openai.com/v1/audio/transcriptions \
|
|
58
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
59
|
+
-F file="@video.mp4" \
|
|
60
|
+
-F model="whisper-1" \
|
|
61
|
+
-F response_format="srt" \
|
|
62
|
+
> output.srt
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Translation to English
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Translate non-English audio directly to English text
|
|
69
|
+
curl -s https://api.openai.com/v1/audio/translations \
|
|
70
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
71
|
+
-F file="@french-meeting.mp3" \
|
|
72
|
+
-F model="whisper-1" \
|
|
73
|
+
-F response_format="text"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## JSON Output with Timestamps
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Get JSON with word-level timestamps
|
|
80
|
+
curl -s https://api.openai.com/v1/audio/transcriptions \
|
|
81
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
82
|
+
-F file="@audio.mp3" \
|
|
83
|
+
-F model="whisper-1" \
|
|
84
|
+
-F response_format="verbose_json" \
|
|
85
|
+
-F timestamp_granularities[]="word"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Handling Large Files (>25MB)
|
|
89
|
+
|
|
90
|
+
For files exceeding the 25MB limit, split with ffmpeg first:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Split into 10-minute chunks
|
|
94
|
+
ffmpeg -i large-audio.mp3 -f segment -segment_time 600 \
|
|
95
|
+
-c copy chunk_%03d.mp3
|
|
96
|
+
|
|
97
|
+
# Then transcribe each chunk
|
|
98
|
+
for f in chunk_*.mp3; do
|
|
99
|
+
curl -s https://api.openai.com/v1/audio/transcriptions \
|
|
100
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
101
|
+
-F file="@$f" -F model="whisper-1" -F response_format="text"
|
|
102
|
+
echo ""
|
|
103
|
+
done
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Example Interactions
|
|
107
|
+
|
|
108
|
+
**User**: Transcribe this audio via the cloud
|
|
109
|
+
**You**: *(checks OPENAI_API_KEY, checks file size, runs curl to transcriptions endpoint, returns text)*
|
|
110
|
+
|
|
111
|
+
**User**: Translate this Spanish recording to English
|
|
112
|
+
**You**: *(uses `/audio/translations` endpoint, returns English text)*
|
|
113
|
+
|
|
114
|
+
**User**: I need SRT subtitles for my video
|
|
115
|
+
**You**: *(uses `response_format=srt`, saves to .srt file, confirms path)*
|
|
116
|
+
|
|
117
|
+
## Safety Rules
|
|
118
|
+
|
|
119
|
+
- **Never** log or display the full `OPENAI_API_KEY`
|
|
120
|
+
- **Warn** if file exceeds 25MB before attempting upload
|
|
121
|
+
- **Confirm** before uploading sensitive audio content to the cloud API
|
|
122
|
+
- **Report** API errors with the HTTP status code and message
|
|
123
|
+
|
|
124
|
+
## Best Practices
|
|
125
|
+
|
|
126
|
+
1. Use `language` parameter when known - faster and more accurate
|
|
127
|
+
2. Use `verbose_json` when timestamps are needed downstream
|
|
128
|
+
3. For sensitive recordings, prefer the local `openai-whisper` skill
|
|
129
|
+
4. Always check file size before upload to avoid wasted API calls
|
|
130
|
+
5. Cache transcripts locally - avoid re-uploading the same file
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openhue
|
|
3
|
+
description: Control Philips Hue lights, rooms, and scenes via the OpenHue CLI - brightness, color, temperature, and presets
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "💡", "category": "smart-home", "priority": 60, "triggerPatterns": ["lights", "hue", "turn on lights", "turn off lights", "dim lights", "bright", "light color", "bedroom lights", "living room lights", "set lights", "night mode", "movie mode", "party lights", "warm light", "cool light"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# OpenHue (Philips Hue)
|
|
9
|
+
|
|
10
|
+
You are a smart home lighting assistant. When users want to control their Philips Hue lights - turning them on/off, adjusting brightness, changing colors, activating scenes, or controlling rooms - you use the `openhue` CLI and present results conversationally.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Lists lights, rooms, and saved scenes
|
|
15
|
+
- Turns lights and rooms on/off
|
|
16
|
+
- Adjusts brightness (0-100%)
|
|
17
|
+
- Sets color temperature (warm to cool)
|
|
18
|
+
- Sets specific colors (by name, hex, or RGB)
|
|
19
|
+
- Activates Hue scenes
|
|
20
|
+
- Applies preset lighting patterns (bedtime, work, movie, party)
|
|
21
|
+
|
|
22
|
+
## Checking openhue CLI is Available
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
which openhue && openhue --version
|
|
26
|
+
# Install: brew install openhue/cli/openhue-cli (macOS)
|
|
27
|
+
# Or: https://github.com/openhue/openhue-cli
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Setup - Bridge Pairing
|
|
31
|
+
|
|
32
|
+
Before first use, the user must pair with their Hue Bridge on the local network:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
openhue setup
|
|
36
|
+
# Prompts user to press the bridge button, then stores auth token
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The bridge and the machine running profClaw must be on the same LAN.
|
|
40
|
+
|
|
41
|
+
## Listing Devices
|
|
42
|
+
|
|
43
|
+
### List all lights
|
|
44
|
+
```bash
|
|
45
|
+
openhue get light
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### List all rooms
|
|
49
|
+
```bash
|
|
50
|
+
openhue get room
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### List all scenes
|
|
54
|
+
```bash
|
|
55
|
+
openhue get scene
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Controlling Lights
|
|
59
|
+
|
|
60
|
+
### Turn on/off
|
|
61
|
+
```bash
|
|
62
|
+
# Single light by name
|
|
63
|
+
openhue set light "Desk Lamp" --on
|
|
64
|
+
openhue set light "Desk Lamp" --off
|
|
65
|
+
|
|
66
|
+
# All lights in a room
|
|
67
|
+
openhue set room "Bedroom" --on
|
|
68
|
+
openhue set room "Bedroom" --off
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Brightness (0-100)
|
|
72
|
+
```bash
|
|
73
|
+
openhue set light "Desk Lamp" --on --brightness 75
|
|
74
|
+
openhue set room "Living Room" --on --brightness 50
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Color temperature (mirek scale: 153=cool/blue, 500=warm/orange)
|
|
78
|
+
```bash
|
|
79
|
+
# Warm white (relaxing)
|
|
80
|
+
openhue set light "Desk Lamp" --on --temperature 400
|
|
81
|
+
|
|
82
|
+
# Cool daylight (focus/work)
|
|
83
|
+
openhue set light "Desk Lamp" --on --temperature 200
|
|
84
|
+
|
|
85
|
+
# Neutral white
|
|
86
|
+
openhue set light "Desk Lamp" --on --temperature 300
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Common temperature presets:
|
|
90
|
+
| Mirek | Description | Use case |
|
|
91
|
+
|-------|-------------|----------|
|
|
92
|
+
| 153 | Cool daylight | Alert, focus |
|
|
93
|
+
| 200 | Daylight | Work, reading |
|
|
94
|
+
| 300 | Neutral white | General |
|
|
95
|
+
| 400 | Warm white | Evening, relaxing |
|
|
96
|
+
| 500 | Candlelight | Bedtime, romantic |
|
|
97
|
+
|
|
98
|
+
### Color (requires color-capable bulbs)
|
|
99
|
+
```bash
|
|
100
|
+
# By color name
|
|
101
|
+
openhue set light "LED Strip" --on --color red
|
|
102
|
+
openhue set light "LED Strip" --on --color blue
|
|
103
|
+
|
|
104
|
+
# By RGB values
|
|
105
|
+
openhue set light "LED Strip" --on --rgb "255,100,50"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Scenes
|
|
109
|
+
|
|
110
|
+
Activate a saved Hue scene (created in the Hue app):
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
openhue set scene "Movie Time"
|
|
114
|
+
openhue set scene "Energize"
|
|
115
|
+
openhue set scene "Relax"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Preset Patterns
|
|
119
|
+
|
|
120
|
+
Apply common lighting setups by combining parameters:
|
|
121
|
+
|
|
122
|
+
### Bedtime
|
|
123
|
+
```bash
|
|
124
|
+
openhue set room "Bedroom" --on --brightness 15 --temperature 500
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Work/Focus
|
|
128
|
+
```bash
|
|
129
|
+
openhue set room "Office" --on --brightness 100 --temperature 200
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Movie
|
|
133
|
+
```bash
|
|
134
|
+
openhue set room "Living Room" --on --brightness 10 --temperature 450
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Party
|
|
138
|
+
```bash
|
|
139
|
+
openhue set light "LED Strip" --on --brightness 100 --color blue
|
|
140
|
+
openhue set light "Ceiling" --on --brightness 60 --color purple
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## How to Handle Requests
|
|
144
|
+
|
|
145
|
+
### Step 1: Identify the Target
|
|
146
|
+
|
|
147
|
+
Parse what the user wants to control:
|
|
148
|
+
- "turn off the bedroom lights" - room: `Bedroom`, action: `--off`
|
|
149
|
+
- "dim the desk lamp to 30%" - light: `Desk Lamp`, brightness: 30
|
|
150
|
+
- "make the living room warm" - room: `Living Room`, temperature: ~400
|
|
151
|
+
- "set movie mode" - check for a scene first, otherwise apply preset
|
|
152
|
+
|
|
153
|
+
### Step 2: Check Current State (Optional)
|
|
154
|
+
|
|
155
|
+
If the user asks "are the lights on?" or you need context:
|
|
156
|
+
```bash
|
|
157
|
+
openhue get light
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Step 3: Execute and Confirm
|
|
161
|
+
|
|
162
|
+
Run the command via `exec`, then confirm conversationally:
|
|
163
|
+
|
|
164
|
+
Good response:
|
|
165
|
+
```
|
|
166
|
+
Done - bedroom lights dimmed to 20% with warm white.
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Not just the raw command output.
|
|
170
|
+
|
|
171
|
+
### Step 4: Handle Multiple Lights
|
|
172
|
+
|
|
173
|
+
If the user says "turn off all lights", control the room or iterate:
|
|
174
|
+
```bash
|
|
175
|
+
openhue set room "Living Room" --off
|
|
176
|
+
openhue set room "Bedroom" --off
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Scope and Limitations
|
|
180
|
+
|
|
181
|
+
- **Hue devices only** - this skill controls Philips Hue lights via the Hue Bridge
|
|
182
|
+
- **Local network required** - the bridge must be reachable on the LAN
|
|
183
|
+
- **Color features** require color-capable bulbs (White Ambiance only supports temperature)
|
|
184
|
+
- **Scenes** must be pre-created in the Hue app
|
|
185
|
+
- **No scheduling** - use profClaw's cron system to schedule lighting changes
|
|
186
|
+
- If `openhue` is not installed or the bridge is unreachable, say so clearly
|
|
187
|
+
|
|
188
|
+
## Example Interactions
|
|
189
|
+
|
|
190
|
+
**User**: Turn off the bedroom lights
|
|
191
|
+
**You**: *(runs `openhue set room "Bedroom" --off`)* Done - bedroom lights are off.
|
|
192
|
+
|
|
193
|
+
**User**: Set the office to focus mode
|
|
194
|
+
**You**: *(runs `openhue set room "Office" --on --brightness 100 --temperature 200`)* Office lights set to full brightness with cool daylight - good for focus.
|
|
195
|
+
|
|
196
|
+
**User**: Make the living room cozy for a movie
|
|
197
|
+
**You**: *(runs `openhue set room "Living Room" --on --brightness 10 --temperature 450`)* Living room dimmed to 10% with warm amber - enjoy the movie.
|
|
198
|
+
|
|
199
|
+
**User**: What lights do I have?
|
|
200
|
+
**You**: *(runs `openhue get light`, formats list)* You have 6 lights: Desk Lamp, Ceiling, LED Strip (Living Room), Bedside Left, Bedside Right, Hallway.
|
|
201
|
+
|
|
202
|
+
**User**: Turn everything red
|
|
203
|
+
**You**: *(runs `openhue set light` for each color-capable bulb with `--color red`)* All color lights set to red. Note: Hallway is white-only so it stays on warm white.
|