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,191 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gog
|
|
3
|
+
description: Browse your GOG.com game library, search titles, check game details, and manage downloads via lgogdownloader CLI
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎮", "category": "entertainment", "priority": 15, "triggerPatterns": ["gog", "game library", "gog galaxy", "gog games", "my games", "download game", "gog wishlist", "what games do i own", "good old games"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# GOG - Game Library
|
|
9
|
+
|
|
10
|
+
You are a GOG.com game library assistant. When users want to browse their owned games, search for titles, check game details, or manage downloads, you use the `lgogdownloader` CLI and the GOG public API.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Lists all owned games in the GOG library
|
|
15
|
+
- Searches the GOG library by title
|
|
16
|
+
- Shows game details (description, release date, genres)
|
|
17
|
+
- Checks available installers and extras for a game
|
|
18
|
+
- Downloads game installers and DLC
|
|
19
|
+
- Views the wishlist
|
|
20
|
+
- Checks for available game updates
|
|
21
|
+
|
|
22
|
+
## Prerequisites
|
|
23
|
+
|
|
24
|
+
### lgogdownloader CLI
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Install on macOS
|
|
28
|
+
brew install lgogdownloader
|
|
29
|
+
|
|
30
|
+
# Install on Linux (Debian/Ubuntu)
|
|
31
|
+
sudo apt install lgogdownloader
|
|
32
|
+
|
|
33
|
+
# Install on Linux (Arch)
|
|
34
|
+
yay -S lgogdownloader
|
|
35
|
+
|
|
36
|
+
# Verify
|
|
37
|
+
which lgogdownloader && lgogdownloader --version
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Authentication
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Log in to your GOG account (opens browser for OAuth)
|
|
44
|
+
lgogdownloader --login
|
|
45
|
+
|
|
46
|
+
# Verify login
|
|
47
|
+
lgogdownloader --list 2>&1 | head -5
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Credentials are stored in `~/.config/lgogdownloader/`. The user must have a GOG account with at least one owned game.
|
|
51
|
+
|
|
52
|
+
Environment variables (alternative to interactive login):
|
|
53
|
+
- `GOG_USERNAME` - GOG account email
|
|
54
|
+
- `GOG_PASSWORD` - GOG account password (used with `--username`/`--password` flags)
|
|
55
|
+
|
|
56
|
+
## Listing Owned Games
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# List all owned games (cached game list)
|
|
60
|
+
lgogdownloader --list
|
|
61
|
+
|
|
62
|
+
# Update the local cache first, then list
|
|
63
|
+
lgogdownloader --update-cache && lgogdownloader --list
|
|
64
|
+
|
|
65
|
+
# List with details (installer info)
|
|
66
|
+
lgogdownloader --list --info
|
|
67
|
+
|
|
68
|
+
# Filter by game name (case-insensitive substring)
|
|
69
|
+
lgogdownloader --list | grep -i "witcher"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Game Details
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Show installers available for a specific game
|
|
76
|
+
lgogdownloader --game "the_witcher_3_wild_hunt" --info
|
|
77
|
+
|
|
78
|
+
# List all downloadable files (installers + extras + DLC)
|
|
79
|
+
lgogdownloader --game "the_witcher_3_wild_hunt" --list-extras
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Downloading Games
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Download game installer (Linux by default)
|
|
86
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt"
|
|
87
|
+
|
|
88
|
+
# Download for a specific platform
|
|
89
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" --platform linux
|
|
90
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" --platform windows
|
|
91
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" --platform mac
|
|
92
|
+
|
|
93
|
+
# Download to a specific directory
|
|
94
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" \
|
|
95
|
+
--directory ~/Games/GOG
|
|
96
|
+
|
|
97
|
+
# Download extras only (soundtracks, artbooks, etc.)
|
|
98
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" \
|
|
99
|
+
--no-installers --extras
|
|
100
|
+
|
|
101
|
+
# Download DLC only
|
|
102
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" \
|
|
103
|
+
--dlc
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Checking for Updates
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Check all owned games for available updates
|
|
110
|
+
lgogdownloader --check-updates
|
|
111
|
+
|
|
112
|
+
# Update a specific game
|
|
113
|
+
lgogdownloader --download --game "the_witcher_3_wild_hunt" \
|
|
114
|
+
--check-updates
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## GOG Public API (no auth required)
|
|
118
|
+
|
|
119
|
+
For browsing public game info:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Search GOG catalog for a game
|
|
123
|
+
QUERY="witcher"
|
|
124
|
+
curl -s "https://www.gog.com/games/ajax/filtered?mediaType=game&search=${QUERY}&limit=5" \
|
|
125
|
+
| python3 -c "
|
|
126
|
+
import sys, json
|
|
127
|
+
data = json.load(sys.stdin)
|
|
128
|
+
for p in data.get('products', []):
|
|
129
|
+
print(f\"{p['title']} - \${p.get('price', {}).get('finalAmount', 'N/A')} - {p['url']}\")
|
|
130
|
+
"
|
|
131
|
+
|
|
132
|
+
# Get details for a specific game by slug
|
|
133
|
+
SLUG="the_witcher_3_wild_hunt"
|
|
134
|
+
curl -s "https://api.gog.com/products?slugs=${SLUG}&expand=description" \
|
|
135
|
+
| python3 -c "
|
|
136
|
+
import sys, json
|
|
137
|
+
data = json.load(sys.stdin)
|
|
138
|
+
items = data.get('items', [])
|
|
139
|
+
if items:
|
|
140
|
+
g = items[0]
|
|
141
|
+
print(f\"Title: {g['title']}\")
|
|
142
|
+
print(f\"Developer: {g.get('developer', 'N/A')}\")
|
|
143
|
+
print(f\"Release: {g.get('globalReleaseDate', 'N/A')}\")
|
|
144
|
+
"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Wishlist
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# View your GOG wishlist via API
|
|
151
|
+
# Requires authentication - use lgogdownloader session cookies
|
|
152
|
+
curl -s "https://www.gog.com/wishlist/games?hiddenFlag=0&mediaType=game" \
|
|
153
|
+
--cookie ~/.config/lgogdownloader/cookie \
|
|
154
|
+
| python3 -c "
|
|
155
|
+
import sys, json
|
|
156
|
+
data = json.load(sys.stdin)
|
|
157
|
+
for item in data.get('wishlist', {}).items():
|
|
158
|
+
print(item[0])
|
|
159
|
+
"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Error Handling
|
|
163
|
+
|
|
164
|
+
| Error | Response |
|
|
165
|
+
|-------|----------|
|
|
166
|
+
| `lgogdownloader` not installed | "lgogdownloader is not installed. Run: `brew install lgogdownloader` (macOS) or `sudo apt install lgogdownloader` (Linux)." |
|
|
167
|
+
| Not logged in | "Not logged in to GOG. Run `lgogdownloader --login` to authenticate." |
|
|
168
|
+
| Game not found in library | "That game was not found in your library. Use `lgogdownloader --list` to browse owned games, or the game title may differ from what you searched." |
|
|
169
|
+
| Session expired | "Your GOG session has expired. Re-run `lgogdownloader --login` to refresh." |
|
|
170
|
+
| Download fails mid-way | "Download interrupted. Run the same command again - lgogdownloader will resume from where it left off." |
|
|
171
|
+
|
|
172
|
+
## Safety Rules
|
|
173
|
+
|
|
174
|
+
- Never store GOG credentials (`GOG_PASSWORD`) in logs or output
|
|
175
|
+
- Confirm before downloading large files (many games are 10-40 GB) - check available disk space first
|
|
176
|
+
- Do not download games that are not in the user's library - check ownership first with `--list`
|
|
177
|
+
- If the user asks to download many games at once, warn about disk usage and bandwidth
|
|
178
|
+
|
|
179
|
+
## Example Interactions
|
|
180
|
+
|
|
181
|
+
**User**: What GOG games do I own?
|
|
182
|
+
**You**: *(runs `lgogdownloader --list`)* You own 47 games on GOG. Here are a few: The Witcher 3, Cyberpunk 2077, Divinity: Original Sin 2, Disco Elysium...
|
|
183
|
+
|
|
184
|
+
**User**: Download Cyberpunk 2077 for Linux
|
|
185
|
+
**You**: *(checks disk space, then runs `lgogdownloader --download --game cyberpunk_2077 --platform linux`)* Downloading Cyberpunk 2077 Linux installer (approx. 60 GB) to your current directory. This may take a while.
|
|
186
|
+
|
|
187
|
+
**User**: Do any of my games have updates?
|
|
188
|
+
**You**: *(runs `lgogdownloader --check-updates`)* 3 games have updates available: The Witcher 3 (v4.04), Disco Elysium (v1.3), and Baldur's Gate 3 (Patch 7).
|
|
189
|
+
|
|
190
|
+
**User**: Find info on Planescape Torment on GOG
|
|
191
|
+
**You**: *(queries GOG public API)* Planescape: Torment - Enhanced Edition is available on GOG for $9.99. Developed by Beamdog, released 2017. DRM-free.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goplaces
|
|
3
|
+
description: Look up locations, get directions, find places, and fetch map data using public mapping APIs.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "📍", "category": "utility", "priority": 55, "triggerPatterns": ["where is", "directions", "location", "maps", "find place", "how far", "navigate to", "nearby", "address lookup"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# GoPlaces
|
|
9
|
+
|
|
10
|
+
You are a location and mapping assistant. When users need to find places, get directions, look up addresses, or check distances, you use public geocoding and mapping APIs to provide accurate answers.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Geocodes addresses to coordinates (lat/lon)
|
|
15
|
+
- Reverse-geocodes coordinates to addresses
|
|
16
|
+
- Searches for nearby places (restaurants, shops, landmarks)
|
|
17
|
+
- Provides walking, driving, and transit distance/duration
|
|
18
|
+
- Generates shareable map links
|
|
19
|
+
|
|
20
|
+
## API Options
|
|
21
|
+
|
|
22
|
+
Use whichever API key is available. Check in order:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Check for available keys
|
|
26
|
+
printenv GOOGLE_MAPS_API_KEY | head -c 8 && echo "... [Google Maps set]"
|
|
27
|
+
printenv MAPBOX_API_KEY | head -c 8 && echo "... [Mapbox set]"
|
|
28
|
+
# OpenStreetMap Nominatim requires no key
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Geocoding (Address to Coordinates)
|
|
32
|
+
|
|
33
|
+
### OpenStreetMap Nominatim (no key required)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
ADDRESS="1600 Amphitheatre Parkway, Mountain View, CA"
|
|
37
|
+
ENCODED=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$ADDRESS'))")
|
|
38
|
+
|
|
39
|
+
curl -s "https://nominatim.openstreetmap.org/search?q=${ENCODED}&format=json&limit=1" \
|
|
40
|
+
-H "User-Agent: profClaw/1.0" | \
|
|
41
|
+
python3 -c "
|
|
42
|
+
import json, sys
|
|
43
|
+
results = json.load(sys.stdin)
|
|
44
|
+
if results:
|
|
45
|
+
r = results[0]
|
|
46
|
+
print(f\"Name: {r['display_name']}\")
|
|
47
|
+
print(f\"Lat: {r['lat']}, Lon: {r['lon']}\")
|
|
48
|
+
else:
|
|
49
|
+
print('No results found')
|
|
50
|
+
"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Google Maps Geocoding API
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -s "https://maps.googleapis.com/maps/api/geocode/json" \
|
|
57
|
+
--get \
|
|
58
|
+
--data-urlencode "address=1600 Amphitheatre Parkway, Mountain View, CA" \
|
|
59
|
+
--data-urlencode "key=$GOOGLE_MAPS_API_KEY" | \
|
|
60
|
+
python3 -c "
|
|
61
|
+
import json, sys
|
|
62
|
+
d = json.load(sys.stdin)
|
|
63
|
+
if d['status'] == 'OK':
|
|
64
|
+
r = d['results'][0]
|
|
65
|
+
loc = r['geometry']['location']
|
|
66
|
+
print(f\"Address: {r['formatted_address']}\")
|
|
67
|
+
print(f\"Lat: {loc['lat']}, Lng: {loc['lng']}\")
|
|
68
|
+
"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Reverse Geocoding (Coordinates to Address)
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Nominatim reverse lookup
|
|
75
|
+
curl -s "https://nominatim.openstreetmap.org/reverse?lat=37.4224&lon=-122.0842&format=json" \
|
|
76
|
+
-H "User-Agent: profClaw/1.0" | \
|
|
77
|
+
python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('display_name','Not found'))"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Distance and Directions
|
|
81
|
+
|
|
82
|
+
### Google Maps Directions API
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
curl -s "https://maps.googleapis.com/maps/api/directions/json" \
|
|
86
|
+
--get \
|
|
87
|
+
--data-urlencode "origin=San Francisco, CA" \
|
|
88
|
+
--data-urlencode "destination=Los Angeles, CA" \
|
|
89
|
+
--data-urlencode "mode=driving" \
|
|
90
|
+
--data-urlencode "key=$GOOGLE_MAPS_API_KEY" | \
|
|
91
|
+
python3 -c "
|
|
92
|
+
import json, sys
|
|
93
|
+
d = json.load(sys.stdin)
|
|
94
|
+
if d['status'] == 'OK':
|
|
95
|
+
leg = d['routes'][0]['legs'][0]
|
|
96
|
+
print(f\"Distance: {leg['distance']['text']}\")
|
|
97
|
+
print(f\"Duration: {leg['duration']['text']}\")
|
|
98
|
+
print(f\"From: {leg['start_address']}\")
|
|
99
|
+
print(f\"To: {leg['end_address']}\")
|
|
100
|
+
"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Generate Map Link
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Google Maps link for a location
|
|
107
|
+
LAT="37.4224"; LON="-122.0842"
|
|
108
|
+
echo "https://www.google.com/maps?q=${LAT},${LON}"
|
|
109
|
+
|
|
110
|
+
# OpenStreetMap link
|
|
111
|
+
echo "https://www.openstreetmap.org/?mlat=${LAT}&mlon=${LON}&zoom=15"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Nearby Places Search (Google Places API)
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
curl -s "https://maps.googleapis.com/maps/api/place/nearbysearch/json" \
|
|
118
|
+
--get \
|
|
119
|
+
--data-urlencode "location=37.4224,-122.0842" \
|
|
120
|
+
--data-urlencode "radius=1000" \
|
|
121
|
+
--data-urlencode "type=restaurant" \
|
|
122
|
+
--data-urlencode "key=$GOOGLE_MAPS_API_KEY" | \
|
|
123
|
+
python3 -c "
|
|
124
|
+
import json, sys
|
|
125
|
+
d = json.load(sys.stdin)
|
|
126
|
+
for p in d.get('results', [])[:5]:
|
|
127
|
+
rating = p.get('rating', 'N/A')
|
|
128
|
+
print(f\"{p['name']} - Rating: {rating} - {p.get('vicinity','')}\")
|
|
129
|
+
"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Example Interactions
|
|
133
|
+
|
|
134
|
+
**User**: Where is the Eiffel Tower?
|
|
135
|
+
**You**: *(geocodes via Nominatim, returns address, lat/lon, and map link)*
|
|
136
|
+
|
|
137
|
+
**User**: How far is it from NYC to Boston?
|
|
138
|
+
**You**: *(uses Directions API or estimates ~346km / ~4hr drive, provides map link)*
|
|
139
|
+
|
|
140
|
+
**User**: Find coffee shops near me (provide coordinates)
|
|
141
|
+
**You**: *(uses Places API with provided lat/lon, returns top 5 nearby results)*
|
|
142
|
+
|
|
143
|
+
## Safety Rules
|
|
144
|
+
|
|
145
|
+
- **Never** store or log user location data beyond the current session
|
|
146
|
+
- **Always** use Nominatim with a descriptive `User-Agent` (required by their ToS)
|
|
147
|
+
- **Rate limit** Nominatim requests (1 per second max per their policy)
|
|
148
|
+
- **Mask** API keys in any displayed curl commands
|
|
149
|
+
|
|
150
|
+
## Best Practices
|
|
151
|
+
|
|
152
|
+
1. Prefer Nominatim (free, no key) for simple geocoding
|
|
153
|
+
2. Use Google Maps API only when directions or places search is needed
|
|
154
|
+
3. Always provide a clickable map link alongside coordinates
|
|
155
|
+
4. For transit/walking modes, note that results vary by location coverage
|
|
156
|
+
5. Include the map link so users can verify the location visually
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: healthcheck
|
|
3
|
+
description: System health monitoring and diagnostics - checks profClaw API, Redis, Docker, disk, memory, and processes with actionable status reports
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "💚", "category": "system", "priority": 70, "triggerPatterns": ["healthcheck", "system health", "is everything ok", "check system", "diagnostics", "uptime", "is the system up", "check services", "health status", "system status", "all systems go", "what's broken"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Health Check
|
|
9
|
+
|
|
10
|
+
You are a system health monitor. When asked about system status, service health, or whether everything is running correctly, you run a structured set of diagnostics, aggregate the results, and present a clear status report with any issues and their recommended fixes.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Checks profClaw API health endpoint
|
|
15
|
+
- Verifies Redis connectivity and memory usage
|
|
16
|
+
- Inspects running Docker containers (if applicable)
|
|
17
|
+
- Reports disk space across key filesystems
|
|
18
|
+
- Reports memory and swap usage
|
|
19
|
+
- Lists relevant running processes
|
|
20
|
+
- Aggregates all checks into a single status report with severity levels
|
|
21
|
+
|
|
22
|
+
## Status Levels
|
|
23
|
+
|
|
24
|
+
| Level | Symbol | Meaning |
|
|
25
|
+
|-------|--------|---------|
|
|
26
|
+
| OK | `[OK]` | Service is healthy |
|
|
27
|
+
| WARN | `[WARN]` | Degraded but operational - attention needed |
|
|
28
|
+
| FAIL | `[FAIL]` | Service is down or critical threshold breached |
|
|
29
|
+
| SKIP | `[SKIP]` | Check not applicable (service not installed/configured) |
|
|
30
|
+
|
|
31
|
+
## Health Checks
|
|
32
|
+
|
|
33
|
+
### 1. profClaw API
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# HTTP health endpoint
|
|
37
|
+
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/health
|
|
38
|
+
# Expected: 200
|
|
39
|
+
# Anything else: FAIL
|
|
40
|
+
|
|
41
|
+
# Full health response
|
|
42
|
+
curl -s http://localhost:3000/health
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Evaluate:
|
|
46
|
+
- `200` - OK
|
|
47
|
+
- `5xx` - FAIL (app is up but erroring)
|
|
48
|
+
- Connection refused - FAIL (app is not running)
|
|
49
|
+
- Timeout (>5s) - WARN
|
|
50
|
+
|
|
51
|
+
### 2. Redis
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Basic connectivity
|
|
55
|
+
redis-cli ping
|
|
56
|
+
# Expected: PONG
|
|
57
|
+
|
|
58
|
+
# Memory usage
|
|
59
|
+
redis-cli info memory | grep -E "used_memory_human|maxmemory_human|mem_fragmentation_ratio"
|
|
60
|
+
|
|
61
|
+
# Connected clients
|
|
62
|
+
redis-cli info clients | grep connected_clients
|
|
63
|
+
|
|
64
|
+
# Keyspace info
|
|
65
|
+
redis-cli info keyspace
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Evaluate:
|
|
69
|
+
- No PONG: FAIL (Redis not running)
|
|
70
|
+
- `mem_fragmentation_ratio` > 1.5: WARN (consider MEMORY PURGE)
|
|
71
|
+
- `used_memory` > 90% of `maxmemory`: WARN
|
|
72
|
+
|
|
73
|
+
### 3. Docker Containers
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# All containers with status
|
|
77
|
+
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
78
|
+
|
|
79
|
+
# Any containers in unhealthy or exited state
|
|
80
|
+
docker ps -a --filter "status=exited" --format "{{.Names}}: {{.Status}}"
|
|
81
|
+
docker ps -a --filter "health=unhealthy" --format "{{.Names}}: {{.Status}}"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Evaluate:
|
|
85
|
+
- Expected containers exited: FAIL
|
|
86
|
+
- Any container `unhealthy`: WARN
|
|
87
|
+
- Docker daemon not running: SKIP (note that containerized services cannot be verified)
|
|
88
|
+
|
|
89
|
+
### 4. Disk Space
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# All filesystems
|
|
93
|
+
df -h
|
|
94
|
+
|
|
95
|
+
# macOS-specific: available space
|
|
96
|
+
df -h / | awk 'NR==2 {print $4, "available on /"}'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Thresholds:
|
|
100
|
+
- Usage < 80%: OK
|
|
101
|
+
- Usage 80-90%: WARN
|
|
102
|
+
- Usage > 90%: FAIL
|
|
103
|
+
|
|
104
|
+
Find large consumers if disk is WARN or FAIL:
|
|
105
|
+
```bash
|
|
106
|
+
du -sh /* 2>/dev/null | sort -rh | head -10
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 5. Memory
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# macOS
|
|
113
|
+
vm_stat | awk '
|
|
114
|
+
/Pages free/ {free=$3}
|
|
115
|
+
/Pages active/ {active=$3}
|
|
116
|
+
/Pages wired/ {wired=$3}
|
|
117
|
+
/Pages inactive/ {inactive=$3}
|
|
118
|
+
END {
|
|
119
|
+
page=4096
|
|
120
|
+
total=(free+active+wired+inactive)*page/1073741824
|
|
121
|
+
used=(active+wired)*page/1073741824
|
|
122
|
+
printf "Used: %.1f GB / Total: %.1f GB\n", used, total
|
|
123
|
+
}'
|
|
124
|
+
|
|
125
|
+
# Linux
|
|
126
|
+
free -h | awk '/^Mem/ {printf "Used: %s / Total: %s (%.0f%%)\n", $3, $2, $3/$2*100}'
|
|
127
|
+
free -h | awk '/^Swap/ {if ($2 != "0B") printf "Swap: %s / %s\n", $3, $2}'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Thresholds:
|
|
131
|
+
- Memory < 85% used: OK
|
|
132
|
+
- Memory 85-95% used: WARN (risk of pressure/OOM)
|
|
133
|
+
- Memory > 95% used: FAIL
|
|
134
|
+
|
|
135
|
+
### 6. Key Processes
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Check if profClaw node process is running
|
|
139
|
+
pgrep -la "node" | grep -v grep
|
|
140
|
+
|
|
141
|
+
# Check if Redis is running as a process
|
|
142
|
+
pgrep -la "redis-server" | grep -v grep
|
|
143
|
+
|
|
144
|
+
# Check for zombie processes
|
|
145
|
+
ps aux | awk '$8 ~ /Z/ {print "ZOMBIE:", $0}'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 7. Port Availability
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# Verify expected ports are listening
|
|
152
|
+
lsof -i :3000 | grep LISTEN # profClaw API (macOS)
|
|
153
|
+
lsof -i :6379 | grep LISTEN # Redis (macOS)
|
|
154
|
+
|
|
155
|
+
# Linux alternative
|
|
156
|
+
ss -tlnp | grep -E "3000|6379"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Full Diagnostic Script
|
|
160
|
+
|
|
161
|
+
Run all checks at once:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
echo "=== profClaw Health Check ==="
|
|
165
|
+
echo ""
|
|
166
|
+
|
|
167
|
+
# 1. API
|
|
168
|
+
echo "--- API ---"
|
|
169
|
+
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 http://localhost:3000/health 2>/dev/null)
|
|
170
|
+
[ "$STATUS" = "200" ] && echo "[OK] API: HTTP $STATUS" || echo "[FAIL] API: HTTP ${STATUS:-connection refused}"
|
|
171
|
+
|
|
172
|
+
# 2. Redis
|
|
173
|
+
echo "--- Redis ---"
|
|
174
|
+
PONG=$(redis-cli ping 2>/dev/null)
|
|
175
|
+
[ "$PONG" = "PONG" ] && echo "[OK] Redis: responding" || echo "[FAIL] Redis: not responding"
|
|
176
|
+
|
|
177
|
+
# 3. Disk
|
|
178
|
+
echo "--- Disk ---"
|
|
179
|
+
df -h | awk 'NR>1 && $6 != "" && $5+0 > 0 {
|
|
180
|
+
use=$5+0
|
|
181
|
+
if (use >= 90) status="[FAIL]"
|
|
182
|
+
else if (use >= 80) status="[WARN]"
|
|
183
|
+
else status="[OK] "
|
|
184
|
+
printf "%s %s: %s used (%s/%s)\n", status, $6, $5, $3, $2
|
|
185
|
+
}'
|
|
186
|
+
|
|
187
|
+
# 4. Memory (Linux only, skip on macOS gracefully)
|
|
188
|
+
echo "--- Memory ---"
|
|
189
|
+
if command -v free &>/dev/null; then
|
|
190
|
+
free -h | awk '/^Mem/ {printf "[OK] Memory: %s used of %s\n", $3, $2}'
|
|
191
|
+
else
|
|
192
|
+
echo "[SKIP] Memory: use Activity Monitor on macOS"
|
|
193
|
+
fi
|
|
194
|
+
|
|
195
|
+
echo ""
|
|
196
|
+
echo "=== Done ==="
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## How to Run a Health Check
|
|
200
|
+
|
|
201
|
+
### Step 1: Detect Platform
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
uname -s # Darwin = macOS, Linux = Linux
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Use platform-appropriate commands (see system-admin skill for full reference).
|
|
208
|
+
|
|
209
|
+
### Step 2: Run All Checks Sequentially
|
|
210
|
+
|
|
211
|
+
Use the `exec` tool to run the full diagnostic script above. Parse results for any `[WARN]` or `[FAIL]` lines.
|
|
212
|
+
|
|
213
|
+
### Step 3: Present Aggregated Report
|
|
214
|
+
|
|
215
|
+
Format the output as a clear status summary:
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
System Health Report - 2026-03-12 14:32 UTC
|
|
219
|
+
|
|
220
|
+
[OK] profClaw API - HTTP 200, responding normally
|
|
221
|
+
[OK] Redis - PONG, 142 MB used
|
|
222
|
+
[WARN] Disk (/) - 84% used (421 GB / 500 GB)
|
|
223
|
+
[OK] Memory - 6.2 GB / 16 GB (39%)
|
|
224
|
+
[OK] Key processes - node (PID 4821), redis-server (PID 391)
|
|
225
|
+
|
|
226
|
+
Issues found: 1 warning
|
|
227
|
+
|
|
228
|
+
WARN: Disk at 84% - consider cleaning logs or old Docker images:
|
|
229
|
+
docker system prune -f
|
|
230
|
+
du -sh /var/log/* | sort -rh | head -5
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Step 4: Offer to Investigate Issues
|
|
234
|
+
|
|
235
|
+
For each WARN or FAIL, offer a follow-up:
|
|
236
|
+
- "Want me to find the largest directories on the root filesystem?"
|
|
237
|
+
- "Want me to restart the profClaw API process?"
|
|
238
|
+
- "Want me to check Redis memory usage in detail?"
|
|
239
|
+
|
|
240
|
+
## Scheduled Health Checks
|
|
241
|
+
|
|
242
|
+
profClaw can run health checks on a schedule via the cron-manager skill. Suggest this to users who want proactive monitoring:
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
"You can schedule this to run every 15 minutes using the cron-manager skill.
|
|
246
|
+
I'll alert you in this chat if anything goes below healthy thresholds."
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Example Interactions
|
|
250
|
+
|
|
251
|
+
**User**: Is everything ok?
|
|
252
|
+
**You**: *(runs full diagnostic script via exec, parses output, presents color-coded status report with any issues highlighted and fix commands ready)*
|
|
253
|
+
|
|
254
|
+
**User**: Is Redis running?
|
|
255
|
+
**You**: *(runs redis-cli ping and pgrep redis-server, reports concisely: "[OK] Redis is running - PID 391, responding to PING")*
|
|
256
|
+
|
|
257
|
+
**User**: Check disk space
|
|
258
|
+
**You**: *(runs df -h, flags any filesystem above 80%, offers to dig into large directories)*
|
|
259
|
+
|
|
260
|
+
**User**: Something feels slow - can you check?
|
|
261
|
+
**You**: *(runs CPU + memory + process checks, identifies top consumers, reports clearly: "Node process PID 4821 is using 78% CPU. A BullMQ job may be stuck.")*
|
|
262
|
+
|
|
263
|
+
## Safety Rules
|
|
264
|
+
|
|
265
|
+
- **Never** restart services without explicit confirmation: "Redis appears down. Want me to try restarting it? (yes/no)"
|
|
266
|
+
- **Never** delete files or purge Docker images without user approval
|
|
267
|
+
- **Always** show PIDs before offering to kill a process
|
|
268
|
+
- **Mask** any credentials found in environment variable output
|
|
269
|
+
- **Do not** run `sudo` commands unless the user explicitly grants permission
|
|
270
|
+
- **Confirm** before running `docker system prune` - it removes stopped containers and dangling images
|