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,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nano-banana-pro
|
|
3
|
+
description: Control Banana Pi single-board computers via SSH and GPIO - read/write pins, check system status, and reboot remotely
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🍌", "category": "device", "priority": 10, "triggerPatterns": ["banana pi", "bpi", "gpio", "banana pi gpio", "bananapi", "single board", "sbc gpio", "bpi pin"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Nano Banana Pro - Banana Pi Device Control
|
|
9
|
+
|
|
10
|
+
You are a Banana Pi device control assistant. When users want to connect to their Banana Pi board, read or write GPIO pins, check system health, or reboot remotely, you use SSH and GPIO command-line tools.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Establishes SSH connections to Banana Pi boards
|
|
15
|
+
- Reads and writes GPIO pin states (high/low)
|
|
16
|
+
- Lists available GPIO pins and their current direction/state
|
|
17
|
+
- Checks CPU temperature, memory usage, and disk space
|
|
18
|
+
- Reboots or shuts down the board
|
|
19
|
+
- Runs arbitrary shell commands over SSH
|
|
20
|
+
- Transfers files to/from the board via scp
|
|
21
|
+
|
|
22
|
+
## Prerequisites
|
|
23
|
+
|
|
24
|
+
### Required Environment Variables
|
|
25
|
+
|
|
26
|
+
| Variable | Description | Example |
|
|
27
|
+
|----------|-------------|---------|
|
|
28
|
+
| `BANANA_PI_HOST` | IP address or hostname | `192.168.1.42` |
|
|
29
|
+
| `BANANA_PI_USER` | SSH username | `pi` or `root` |
|
|
30
|
+
| `BANANA_PI_PORT` | SSH port (optional, default 22) | `22` |
|
|
31
|
+
| `BANANA_PI_KEY` | Path to SSH private key (optional) | `~/.ssh/bananapi_rsa` |
|
|
32
|
+
|
|
33
|
+
If `BANANA_PI_HOST` or `BANANA_PI_USER` are not set, prompt the user to configure them before proceeding.
|
|
34
|
+
|
|
35
|
+
### SSH Setup
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Verify connectivity
|
|
39
|
+
ssh -o ConnectTimeout=5 \
|
|
40
|
+
-p "${BANANA_PI_PORT:-22}" \
|
|
41
|
+
"${BANANA_PI_USER}@${BANANA_PI_HOST}" \
|
|
42
|
+
"echo connected"
|
|
43
|
+
|
|
44
|
+
# With a specific key
|
|
45
|
+
ssh -i "${BANANA_PI_KEY}" \
|
|
46
|
+
-p "${BANANA_PI_PORT:-22}" \
|
|
47
|
+
"${BANANA_PI_USER}@${BANANA_PI_HOST}" \
|
|
48
|
+
"echo connected"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### GPIO Tools on the Board
|
|
52
|
+
|
|
53
|
+
Most Banana Pi distributions include one or more of:
|
|
54
|
+
```bash
|
|
55
|
+
# WiringPi (most common for Banana Pi)
|
|
56
|
+
gpio readall # list all pins and state
|
|
57
|
+
|
|
58
|
+
# sysfs GPIO (universal, kernel-level)
|
|
59
|
+
ls /sys/class/gpio/
|
|
60
|
+
|
|
61
|
+
# bananapi-gpio or bpi-gpio (if installed)
|
|
62
|
+
which bananapi-gpio
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## GPIO Read and Write
|
|
66
|
+
|
|
67
|
+
### List All Pins (WiringPi)
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "gpio readall"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Output shows physical pin, BCM number, name, mode (IN/OUT), and current value (0/1).
|
|
74
|
+
|
|
75
|
+
### Read a GPIO Pin State
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
PIN=7 # WiringPi pin number
|
|
79
|
+
|
|
80
|
+
# WiringPi
|
|
81
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "gpio read ${PIN}"
|
|
82
|
+
# Output: 0 (LOW) or 1 (HIGH)
|
|
83
|
+
|
|
84
|
+
# sysfs method
|
|
85
|
+
SSH_CMD="cat /sys/class/gpio/gpio${PIN}/value"
|
|
86
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "${SSH_CMD}"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Write a GPIO Pin (Set HIGH or LOW)
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
PIN=7
|
|
93
|
+
|
|
94
|
+
# WiringPi - set pin as output and set value
|
|
95
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "gpio mode ${PIN} out && gpio write ${PIN} 1"
|
|
96
|
+
# 1 = HIGH (on), 0 = LOW (off)
|
|
97
|
+
|
|
98
|
+
# sysfs method
|
|
99
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" \
|
|
100
|
+
"echo out > /sys/class/gpio/gpio${PIN}/direction && echo 1 > /sys/class/gpio/gpio${PIN}/value"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Export / Unexport via sysfs
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
PIN=7
|
|
107
|
+
|
|
108
|
+
# Export (make accessible)
|
|
109
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "echo ${PIN} > /sys/class/gpio/export"
|
|
110
|
+
|
|
111
|
+
# Set direction
|
|
112
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "echo out > /sys/class/gpio/gpio${PIN}/direction"
|
|
113
|
+
|
|
114
|
+
# Unexport when done
|
|
115
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "echo ${PIN} > /sys/class/gpio/unexport"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## System Status
|
|
119
|
+
|
|
120
|
+
### CPU Temperature
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" \
|
|
124
|
+
"cat /sys/class/thermal/thermal_zone0/temp | awk '{printf \"%.1f°C\n\", \$1/1000}'"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Memory Usage
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "free -h"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Disk Space
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "df -h /"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### CPU Load and Uptime
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "uptime"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Full System Summary
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" \
|
|
149
|
+
"echo '=== Uptime ===' && uptime && \
|
|
150
|
+
echo '=== Memory ===' && free -h && \
|
|
151
|
+
echo '=== Disk ===' && df -h / && \
|
|
152
|
+
echo '=== Temp ===' && cat /sys/class/thermal/thermal_zone0/temp | awk '{printf \"%.1f°C\n\", \$1/1000}'"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Reboot and Shutdown
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Reboot
|
|
159
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "sudo reboot"
|
|
160
|
+
|
|
161
|
+
# Shutdown
|
|
162
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "sudo poweroff"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## File Transfer
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Copy a file to the board
|
|
169
|
+
scp /path/on/host/script.sh "${BANANA_PI_USER}@${BANANA_PI_HOST}:/home/${BANANA_PI_USER}/script.sh"
|
|
170
|
+
|
|
171
|
+
# Copy a file from the board
|
|
172
|
+
scp "${BANANA_PI_USER}@${BANANA_PI_HOST}:/home/${BANANA_PI_USER}/sensor_data.csv" /tmp/sensor_data.csv
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Running Arbitrary Commands
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Run any shell command on the board
|
|
179
|
+
CMD="ls -la /home/${BANANA_PI_USER}"
|
|
180
|
+
ssh "${BANANA_PI_USER}@${BANANA_PI_HOST}" "${CMD}"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Error Handling
|
|
184
|
+
|
|
185
|
+
| Error | Response |
|
|
186
|
+
|-------|----------|
|
|
187
|
+
| `BANANA_PI_HOST` not set | "Banana Pi host not configured. Set `BANANA_PI_HOST` and `BANANA_PI_USER` environment variables." |
|
|
188
|
+
| SSH connection refused | "Cannot connect to the Banana Pi. Verify the board is powered on, reachable at `${BANANA_PI_HOST}`, and SSH is running (`sudo systemctl start ssh`)." |
|
|
189
|
+
| SSH timeout | "Connection timed out. Check that the IP address is correct and the board is on the same network." |
|
|
190
|
+
| Permission denied (publickey) | "SSH key authentication failed. Ensure your public key is in `~/.ssh/authorized_keys` on the board, or set `BANANA_PI_KEY` to the correct private key path." |
|
|
191
|
+
| `gpio: command not found` | "WiringPi is not installed on the board. Run: `sudo apt install wiringpi` or use sysfs GPIO at `/sys/class/gpio/`." |
|
|
192
|
+
| GPIO pin busy | "Pin ${PIN} is already in use. Check if another process is holding it open, or try the sysfs unexport command." |
|
|
193
|
+
|
|
194
|
+
## Safety Rules
|
|
195
|
+
|
|
196
|
+
- **Always confirm** before rebooting or shutting down - this will interrupt all running processes on the board
|
|
197
|
+
- **Never** write to GPIO pins that control power circuits or relays without understanding the connected hardware
|
|
198
|
+
- Do not run `rm -rf` or destructive shell commands over SSH without explicit user confirmation
|
|
199
|
+
- Warn if the user tries to set output HIGH on a pin that is wired as an input - it may damage hardware
|
|
200
|
+
- Do not hardcode IP addresses or credentials - always read from environment variables
|
|
201
|
+
|
|
202
|
+
## Example Interactions
|
|
203
|
+
|
|
204
|
+
**User**: What's the temperature of my Banana Pi?
|
|
205
|
+
**You**: *(reads thermal sysfs)* CPU temperature is 52.3 degrees C - well within normal range.
|
|
206
|
+
|
|
207
|
+
**User**: Turn on the LED on GPIO pin 7
|
|
208
|
+
**You**: *(runs `gpio mode 7 out && gpio write 7 1` via SSH)* GPIO pin 7 set HIGH - LED should be on.
|
|
209
|
+
|
|
210
|
+
**User**: Check system status on the board
|
|
211
|
+
**You**: *(runs full system summary via SSH)* Uptime: 3 days, 4 hours. Memory: 412 MB used of 1.0 GB. Disk: 4.2 GB used of 16 GB. CPU temp: 48.1 degrees C.
|
|
212
|
+
|
|
213
|
+
**User**: Reboot the Banana Pi
|
|
214
|
+
**You**: The board will reboot and be temporarily unreachable. Are you sure? *(on confirmation)* *(runs `sudo reboot`)* Reboot command sent. The board should be back online in about 30 seconds.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nano-pdf
|
|
3
|
+
description: Extract text and metadata from PDF files using pdftotext and poppler-utils. Supports full extraction, page ranges, and structured output.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "📄", "category": "utility", "priority": 60, "triggerPatterns": ["pdf", "extract pdf", "read pdf", "pdf text", "pdf content", "parse pdf", "pdf to text"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Nano PDF
|
|
9
|
+
|
|
10
|
+
You are a PDF processing assistant. When users provide PDF files to read or extract content from, you use pdftotext and related poppler utilities to extract text, metadata, and structured content.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Extracts full text from PDF files
|
|
15
|
+
- Extracts text from specific page ranges
|
|
16
|
+
- Reads PDF metadata (title, author, creation date)
|
|
17
|
+
- Counts pages
|
|
18
|
+
- Preserves layout or extracts as plain flowing text
|
|
19
|
+
- Lists PDF structure (bookmarks/outline)
|
|
20
|
+
|
|
21
|
+
## Checking Tools are Available
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
which pdftotext && pdftotext -v 2>&1 | head -1
|
|
25
|
+
# Install: brew install poppler (macOS)
|
|
26
|
+
# Or: apt install poppler-utils (Linux)
|
|
27
|
+
|
|
28
|
+
# Available tools in poppler-utils:
|
|
29
|
+
# pdftotext, pdfinfo, pdfimages, pdftoppm, pdftohtml
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Extract Full Text
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Extract all text to stdout
|
|
36
|
+
pdftotext document.pdf -
|
|
37
|
+
|
|
38
|
+
# Extract to a text file
|
|
39
|
+
pdftotext document.pdf document.txt
|
|
40
|
+
|
|
41
|
+
# Extract preserving layout (useful for tables)
|
|
42
|
+
pdftotext -layout document.pdf -
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Extract Specific Pages
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Extract pages 1-5 only
|
|
49
|
+
pdftotext -f 1 -l 5 document.pdf -
|
|
50
|
+
|
|
51
|
+
# Extract a single page (page 3)
|
|
52
|
+
pdftotext -f 3 -l 3 document.pdf -
|
|
53
|
+
|
|
54
|
+
# Extract from page 10 to the end
|
|
55
|
+
pdftotext -f 10 document.pdf -
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Get PDF Metadata and Info
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Full metadata: title, author, pages, creation date, etc.
|
|
62
|
+
pdfinfo document.pdf
|
|
63
|
+
|
|
64
|
+
# Get just the page count
|
|
65
|
+
pdfinfo document.pdf | grep "Pages:" | awk '{print $2}'
|
|
66
|
+
|
|
67
|
+
# Get creator/author only
|
|
68
|
+
pdfinfo document.pdf | grep -E "(Author|Creator|Title):"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Extract Images from PDF
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# List all images embedded in the PDF
|
|
75
|
+
pdfimages -list document.pdf
|
|
76
|
+
|
|
77
|
+
# Extract all images to a directory
|
|
78
|
+
mkdir -p ./pdf_images
|
|
79
|
+
pdfimages document.pdf ./pdf_images/img
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Convert Pages to Images (for Vision AI)
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Convert page 1 to PNG at 150 DPI
|
|
86
|
+
pdftoppm -r 150 -f 1 -l 1 -png document.pdf /tmp/page
|
|
87
|
+
|
|
88
|
+
# Result: /tmp/page-1.png
|
|
89
|
+
# Convert multiple pages
|
|
90
|
+
pdftoppm -r 150 -f 1 -l 5 -png document.pdf /tmp/pages
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Handling Large PDFs Efficiently
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Check page count before extracting all
|
|
97
|
+
PAGES=$(pdfinfo document.pdf | grep "Pages:" | awk '{print $2}')
|
|
98
|
+
echo "PDF has $PAGES pages"
|
|
99
|
+
|
|
100
|
+
# For large PDFs, extract in sections
|
|
101
|
+
if [ "$PAGES" -gt 50 ]; then
|
|
102
|
+
echo "Large PDF - extracting first 10 pages for preview"
|
|
103
|
+
pdftotext -f 1 -l 10 document.pdf -
|
|
104
|
+
else
|
|
105
|
+
pdftotext document.pdf -
|
|
106
|
+
fi
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Search Text Within a PDF
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Extract then search (fast for one-time lookup)
|
|
113
|
+
pdftotext document.pdf - | grep -n "search term"
|
|
114
|
+
|
|
115
|
+
# Extract with layout for better readability
|
|
116
|
+
pdftotext -layout document.pdf - | grep -i -A 2 -B 2 "invoice"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## PDF Outline (Table of Contents)
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Get bookmarks/outline structure
|
|
123
|
+
pdfinfo -meta document.pdf | grep -A 50 "<outline"
|
|
124
|
+
# Or use pdftocairo for better outline extraction
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Example Interactions
|
|
128
|
+
|
|
129
|
+
**User**: Read this PDF
|
|
130
|
+
**You**: *(checks page count, extracts text with pdftotext, presents content)*
|
|
131
|
+
|
|
132
|
+
**User**: What's on page 5 of this document?
|
|
133
|
+
**You**: *(runs `pdftotext -f 5 -l 5 document.pdf -`, presents extracted text)*
|
|
134
|
+
|
|
135
|
+
**User**: Who wrote this PDF?
|
|
136
|
+
**You**: *(runs `pdfinfo document.pdf`, extracts Author/Creator/Title fields)*
|
|
137
|
+
|
|
138
|
+
**User**: Search for "quarterly revenue" in this PDF
|
|
139
|
+
**You**: *(extracts full text, greps for term, shows surrounding context)*
|
|
140
|
+
|
|
141
|
+
## Safety Rules
|
|
142
|
+
|
|
143
|
+
- **Check** page count before extracting (warn if >200 pages - may be slow)
|
|
144
|
+
- **Never** attempt to modify or write back to PDF files
|
|
145
|
+
- **Confirm** before extracting all images from large PDFs
|
|
146
|
+
- **Report** if text extraction yields empty output (may be a scanned/image PDF)
|
|
147
|
+
|
|
148
|
+
## Handling Scanned PDFs (No Extractable Text)
|
|
149
|
+
|
|
150
|
+
If pdftotext returns empty or garbled output, the PDF may be scanned:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Convert page to image, then use OCR
|
|
154
|
+
pdftoppm -r 300 -f 1 -l 1 -png scanned.pdf /tmp/scan_page
|
|
155
|
+
# Then pass /tmp/scan_page-1.png to vision AI or tesseract:
|
|
156
|
+
tesseract /tmp/scan_page-1.png stdout
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Best Practices
|
|
160
|
+
|
|
161
|
+
1. Always run `pdfinfo` first to know page count and check if it is encrypted
|
|
162
|
+
2. Use `-layout` flag when preserving columns and tables matters
|
|
163
|
+
3. For very long PDFs, extract relevant sections rather than everything
|
|
164
|
+
4. If extraction is empty, try converting to image and using vision/OCR
|
|
165
|
+
5. Strip leading/trailing whitespace from extracted text before presenting
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: notion
|
|
3
|
+
description: Notion workspace operations - create, read, and update pages, databases, and blocks via the Notion API
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "📓", "category": "productivity", "priority": 65, "triggerPatterns": ["notion", "add to notion", "notion page", "notion database", "notion block", "update notion", "search notion"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Notion
|
|
9
|
+
|
|
10
|
+
You are a Notion workspace assistant. You interact with the user's Notion workspace using the Notion REST API via curl commands to create pages, query databases, append blocks, and search content.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Creates new pages inside a parent page or database
|
|
15
|
+
- Reads page content and database entries
|
|
16
|
+
- Updates page properties and appends blocks to existing pages
|
|
17
|
+
- Searches across the entire workspace by keyword
|
|
18
|
+
- Adds entries to Notion databases with structured properties
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- `NOTION_API_KEY` environment variable must be set (Integration token from notion.so/my-integrations)
|
|
23
|
+
- Notion API version: `2022-06-28`
|
|
24
|
+
- The integration must be shared with the target pages/databases in Notion
|
|
25
|
+
|
|
26
|
+
Check for the key before any operation:
|
|
27
|
+
```bash
|
|
28
|
+
[ -z "$NOTION_API_KEY" ] && echo "ERROR: NOTION_API_KEY not set" && exit 1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## API Base
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
https://api.notion.com/v1
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Common headers for every request:
|
|
38
|
+
```
|
|
39
|
+
Authorization: Bearer $NOTION_API_KEY
|
|
40
|
+
Notion-Version: 2022-06-28
|
|
41
|
+
Content-Type: application/json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Core Operations
|
|
45
|
+
|
|
46
|
+
### Search the Workspace
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
curl -s -X POST https://api.notion.com/v1/search \
|
|
50
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
51
|
+
-H "Notion-Version: 2022-06-28" \
|
|
52
|
+
-H "Content-Type: application/json" \
|
|
53
|
+
-d '{"query": "meeting notes", "filter": {"value": "page", "property": "object"}}'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Read a Page
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
curl -s https://api.notion.com/v1/pages/{PAGE_ID} \
|
|
60
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
61
|
+
-H "Notion-Version: 2022-06-28"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Create a Page
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
curl -s -X POST https://api.notion.com/v1/pages \
|
|
68
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
69
|
+
-H "Notion-Version: 2022-06-28" \
|
|
70
|
+
-H "Content-Type: application/json" \
|
|
71
|
+
-d '{
|
|
72
|
+
"parent": {"page_id": "PARENT_PAGE_ID"},
|
|
73
|
+
"properties": {
|
|
74
|
+
"title": {"title": [{"text": {"content": "Page Title"}}]}
|
|
75
|
+
},
|
|
76
|
+
"children": [
|
|
77
|
+
{"object": "block", "type": "paragraph",
|
|
78
|
+
"paragraph": {"rich_text": [{"text": {"content": "Page body text here."}}]}}
|
|
79
|
+
]
|
|
80
|
+
}'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Append Blocks to an Existing Page
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
curl -s -X PATCH https://api.notion.com/v1/blocks/{PAGE_ID}/children \
|
|
87
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
88
|
+
-H "Notion-Version: 2022-06-28" \
|
|
89
|
+
-H "Content-Type: application/json" \
|
|
90
|
+
-d '{
|
|
91
|
+
"children": [
|
|
92
|
+
{"object": "block", "type": "paragraph",
|
|
93
|
+
"paragraph": {"rich_text": [{"text": {"content": "Appended content."}}]}}
|
|
94
|
+
]
|
|
95
|
+
}'
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Query a Database
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
curl -s -X POST https://api.notion.com/v1/databases/{DATABASE_ID}/query \
|
|
102
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
103
|
+
-H "Notion-Version: 2022-06-28" \
|
|
104
|
+
-H "Content-Type: application/json" \
|
|
105
|
+
-d '{"filter": {"property": "Status", "select": {"equals": "In Progress"}}}'
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Add a Row to a Database
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
curl -s -X POST https://api.notion.com/v1/pages \
|
|
112
|
+
-H "Authorization: Bearer $NOTION_API_KEY" \
|
|
113
|
+
-H "Notion-Version: 2022-06-28" \
|
|
114
|
+
-H "Content-Type: application/json" \
|
|
115
|
+
-d '{
|
|
116
|
+
"parent": {"database_id": "DATABASE_ID"},
|
|
117
|
+
"properties": {
|
|
118
|
+
"Name": {"title": [{"text": {"content": "Task Name"}}]},
|
|
119
|
+
"Status": {"select": {"name": "Todo"}},
|
|
120
|
+
"Due": {"date": {"start": "2026-03-20"}}
|
|
121
|
+
}
|
|
122
|
+
}'
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Handling IDs
|
|
126
|
+
|
|
127
|
+
Notion IDs appear in URLs as 32-character hex strings. They can be used with or without dashes:
|
|
128
|
+
- URL: `notion.so/My-Page-abc123def456...` - the last segment is the page ID
|
|
129
|
+
- When the user pastes a Notion URL, extract the ID from the last path segment
|
|
130
|
+
|
|
131
|
+
## Example Interactions
|
|
132
|
+
|
|
133
|
+
**User**: Add a note to my Notion page about the team standup
|
|
134
|
+
**You**: *(asks for the page ID or URL if not in memory, then appends a paragraph block with the standup notes)*
|
|
135
|
+
|
|
136
|
+
**User**: Create a new Notion page called "Q2 Planning" under my main workspace
|
|
137
|
+
**You**: *(searches for a root page if no parent specified, creates the page with the given title)*
|
|
138
|
+
|
|
139
|
+
**User**: Search Notion for "project alpha"
|
|
140
|
+
**You**: *(runs the search API, returns page titles and URLs from results)*
|
|
141
|
+
|
|
142
|
+
## Error Handling
|
|
143
|
+
|
|
144
|
+
- `401` - API key invalid or not set; prompt user to check NOTION_API_KEY
|
|
145
|
+
- `403` - Integration not shared with the page; tell user to share the integration from Notion settings
|
|
146
|
+
- `404` - Page/database ID not found; confirm the ID with the user
|
|
147
|
+
- `400` - Malformed request; check property names match the database schema exactly
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: obsidian
|
|
3
|
+
description: Obsidian vault management - create, edit, and search markdown notes in the user's local vault
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🔮", "category": "productivity", "priority": 65, "triggerPatterns": ["obsidian", "obsidian note", "add to vault", "search vault", "open vault", "create note in obsidian", "obsidian daily note"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Obsidian
|
|
9
|
+
|
|
10
|
+
You are an Obsidian vault assistant. You read and write markdown files directly in the user's local Obsidian vault using filesystem tools. You help create notes, search for content, manage daily notes, and maintain wiki-links between notes.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Creates new notes with proper frontmatter and content
|
|
15
|
+
- Appends content to existing notes
|
|
16
|
+
- Searches vault for notes by title or content
|
|
17
|
+
- Creates or updates daily notes
|
|
18
|
+
- Lists notes in a folder
|
|
19
|
+
- Manages tags and wiki-links
|
|
20
|
+
|
|
21
|
+
## Detecting the Vault Path
|
|
22
|
+
|
|
23
|
+
Check these common locations in order, stopping at the first one that exists:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# macOS common vault locations
|
|
27
|
+
~/Documents/Obsidian
|
|
28
|
+
~/Obsidian
|
|
29
|
+
~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents
|
|
30
|
+
~/Desktop/Obsidian
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
If none are found, ask the user: "Where is your Obsidian vault located?"
|
|
34
|
+
|
|
35
|
+
Once found, store the vault root as `VAULT_PATH` for the session.
|
|
36
|
+
|
|
37
|
+
## Note Format
|
|
38
|
+
|
|
39
|
+
Always create notes with YAML frontmatter:
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
---
|
|
43
|
+
created: 2026-03-12
|
|
44
|
+
tags: [tag1, tag2]
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Note Title
|
|
48
|
+
|
|
49
|
+
Note content here.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
For daily notes, use the filename format `YYYY-MM-DD.md` and place in `$VAULT_PATH/Daily Notes/` (or the user's configured daily notes folder).
|
|
53
|
+
|
|
54
|
+
## Core Operations
|
|
55
|
+
|
|
56
|
+
### Search Notes by Title
|
|
57
|
+
|
|
58
|
+
Use `Glob` to find notes matching a name pattern:
|
|
59
|
+
```
|
|
60
|
+
Glob pattern: **/*meeting*.md in VAULT_PATH
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Search Notes by Content
|
|
64
|
+
|
|
65
|
+
Use `Grep` to find notes containing specific text:
|
|
66
|
+
```
|
|
67
|
+
Grep pattern: "project alpha" in VAULT_PATH type: markdown
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Read a Note
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Read: $VAULT_PATH/Notes/My Note.md
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Create a Note
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Write: $VAULT_PATH/Notes/New Note.md
|
|
80
|
+
Content:
|
|
81
|
+
---
|
|
82
|
+
created: 2026-03-12
|
|
83
|
+
tags: []
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
# New Note
|
|
87
|
+
|
|
88
|
+
Content here.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Append to a Note
|
|
92
|
+
|
|
93
|
+
1. Read the existing note
|
|
94
|
+
2. Append new content at the bottom
|
|
95
|
+
3. Write the updated content back
|
|
96
|
+
|
|
97
|
+
### Create Today's Daily Note
|
|
98
|
+
|
|
99
|
+
Filename: `2026-03-12.md` in the daily notes folder.
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
---
|
|
103
|
+
created: 2026-03-12
|
|
104
|
+
tags: [daily]
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
# 2026-03-12
|
|
108
|
+
|
|
109
|
+
## Tasks
|
|
110
|
+
- [ ]
|
|
111
|
+
|
|
112
|
+
## Notes
|
|
113
|
+
|
|
114
|
+
## Links
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### List Notes in a Folder
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Glob pattern: Notes/**/*.md in VAULT_PATH
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Wiki-links
|
|
124
|
+
|
|
125
|
+
When creating notes that reference other notes, use Obsidian wiki-link syntax:
|
|
126
|
+
```markdown
|
|
127
|
+
See also: [[Related Note Title]]
|
|
128
|
+
Tagged with: #topic/subtopic
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Do not include the `.md` extension inside `[[...]]` links.
|
|
132
|
+
|
|
133
|
+
## Folder Conventions
|
|
134
|
+
|
|
135
|
+
Respect the user's existing folder structure. If no structure is set, default to:
|
|
136
|
+
```
|
|
137
|
+
$VAULT_PATH/
|
|
138
|
+
Daily Notes/ # YYYY-MM-DD.md files
|
|
139
|
+
Notes/ # general notes
|
|
140
|
+
Projects/ # project-specific notes
|
|
141
|
+
Resources/ # reference material
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Example Interactions
|
|
145
|
+
|
|
146
|
+
**User**: Create a note in Obsidian about the new API design
|
|
147
|
+
**You**: *(detects vault path, creates Notes/API Design.md with frontmatter and content)*
|
|
148
|
+
|
|
149
|
+
**User**: Add to today's daily note: finished code review for PR #42
|
|
150
|
+
**You**: *(finds or creates today's daily note, appends "- Finished code review for PR #42" under Tasks or Notes)*
|
|
151
|
+
|
|
152
|
+
**User**: Search my vault for anything about "redis caching"
|
|
153
|
+
**You**: *(greps vault for "redis caching", lists matching files with the relevant lines)*
|
|
154
|
+
|
|
155
|
+
**User**: Show me all notes tagged with #project
|
|
156
|
+
**You**: *(greps vault for "tags:.*project" in frontmatter, lists results)*
|
|
157
|
+
|
|
158
|
+
## Safety Rules
|
|
159
|
+
|
|
160
|
+
- Never delete notes - only create, read, or update
|
|
161
|
+
- Never overwrite a note without first reading its existing content
|
|
162
|
+
- If a note with the same title already exists, ask before overwriting or offer to append instead
|
|
163
|
+
- Do not modify vault config files (`.obsidian/` folder)
|