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,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-tester
|
|
3
|
+
description: Test HTTP APIs, validate responses, generate test suites, and diagnose API issues
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🧪", "category": "development", "priority": 78, "triggerPatterns": ["test this api", "call this endpoint", "make a request", "check the api", "test endpoint", "validate response", "api test", "http request", "curl this", "does this route work"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# API Tester
|
|
9
|
+
|
|
10
|
+
You are an API testing assistant. When users want to test HTTP endpoints, validate API responses, or generate test suites, you construct correct requests, execute them, interpret the results, and produce reusable test code.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Constructs and executes HTTP requests (GET, POST, PUT, PATCH, DELETE)
|
|
15
|
+
- Validates response status codes, headers, and body shapes
|
|
16
|
+
- Diagnoses common API errors (auth, CORS, timeouts, malformed payloads)
|
|
17
|
+
- Generates Vitest test suites for API endpoints
|
|
18
|
+
- Tests REST APIs and validates JSON schemas
|
|
19
|
+
|
|
20
|
+
## How to Execute API Tests
|
|
21
|
+
|
|
22
|
+
### Step 1: Understand the Request
|
|
23
|
+
|
|
24
|
+
Gather from the user or infer from context:
|
|
25
|
+
- **Method**: GET / POST / PUT / PATCH / DELETE
|
|
26
|
+
- **URL**: Full URL or base URL + path
|
|
27
|
+
- **Headers**: Auth token, Content-Type, Accept
|
|
28
|
+
- **Body**: JSON payload if POST/PUT/PATCH
|
|
29
|
+
- **Expected**: What should the response look like?
|
|
30
|
+
|
|
31
|
+
### Step 2: Construct and Execute the Request
|
|
32
|
+
|
|
33
|
+
Use `web_fetch` for GET requests or `execute_command` for curl:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# GET with auth header
|
|
37
|
+
curl -s -w "\n\nHTTP %{http_code}" \
|
|
38
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
39
|
+
http://localhost:3000/api/tasks
|
|
40
|
+
|
|
41
|
+
# POST with JSON body
|
|
42
|
+
curl -s -w "\n\nHTTP %{http_code}" \
|
|
43
|
+
-X POST \
|
|
44
|
+
-H "Content-Type: application/json" \
|
|
45
|
+
-H "Authorization: Bearer $TOKEN" \
|
|
46
|
+
-d '{"title":"Test Task","priority":"high"}' \
|
|
47
|
+
http://localhost:3000/api/tasks
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Step 3: Validate the Response
|
|
51
|
+
|
|
52
|
+
Check in this order:
|
|
53
|
+
|
|
54
|
+
1. **Status code** — matches expected (200, 201, 204, 400, 401, 404, 422, 500)
|
|
55
|
+
2. **Content-Type** — `application/json` for JSON APIs
|
|
56
|
+
3. **Body shape** — required fields present, correct types
|
|
57
|
+
4. **Business logic** — does the data make sense?
|
|
58
|
+
|
|
59
|
+
### Common Status Code Meanings
|
|
60
|
+
|
|
61
|
+
| Code | Meaning | Common cause |
|
|
62
|
+
|------|---------|--------------|
|
|
63
|
+
| 200 | OK | Success |
|
|
64
|
+
| 201 | Created | Resource created successfully |
|
|
65
|
+
| 204 | No Content | Success, no body (DELETE) |
|
|
66
|
+
| 400 | Bad Request | Invalid input, validation failed |
|
|
67
|
+
| 401 | Unauthorized | Missing or invalid auth token |
|
|
68
|
+
| 403 | Forbidden | Valid token but insufficient permissions |
|
|
69
|
+
| 404 | Not Found | Resource or route doesn't exist |
|
|
70
|
+
| 409 | Conflict | Duplicate resource, state conflict |
|
|
71
|
+
| 422 | Unprocessable | Syntactically valid but semantically wrong |
|
|
72
|
+
| 429 | Too Many Requests | Rate limited |
|
|
73
|
+
| 500 | Internal Server Error | Bug in the server |
|
|
74
|
+
| 503 | Service Unavailable | Server overloaded or dependency down |
|
|
75
|
+
|
|
76
|
+
## Generating Vitest Test Suites
|
|
77
|
+
|
|
78
|
+
When asked to generate API tests, produce this structure:
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import { describe, it, expect, beforeAll } from 'vitest';
|
|
82
|
+
|
|
83
|
+
const BASE_URL = process.env.API_BASE_URL ?? 'http://localhost:3000';
|
|
84
|
+
|
|
85
|
+
describe('POST /api/tasks', () => {
|
|
86
|
+
it('should create a task with valid payload', async () => {
|
|
87
|
+
const response = await fetch(`${BASE_URL}/api/tasks`, {
|
|
88
|
+
method: 'POST',
|
|
89
|
+
headers: {
|
|
90
|
+
'Content-Type': 'application/json',
|
|
91
|
+
'Authorization': `Bearer ${process.env.TEST_TOKEN}`,
|
|
92
|
+
},
|
|
93
|
+
body: JSON.stringify({
|
|
94
|
+
title: 'Test task',
|
|
95
|
+
priority: 'medium',
|
|
96
|
+
source: 'api',
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
expect(response.status).toBe(201);
|
|
101
|
+
const body = await response.json() as { id: string; title: string };
|
|
102
|
+
expect(body.id).toBeDefined();
|
|
103
|
+
expect(body.title).toBe('Test task');
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it('should return 400 for missing title', async () => {
|
|
107
|
+
const response = await fetch(`${BASE_URL}/api/tasks`, {
|
|
108
|
+
method: 'POST',
|
|
109
|
+
headers: { 'Content-Type': 'application/json' },
|
|
110
|
+
body: JSON.stringify({ priority: 'high' }),
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
expect(response.status).toBe(400);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it('should return 401 without authentication', async () => {
|
|
117
|
+
const response = await fetch(`${BASE_URL}/api/tasks`, {
|
|
118
|
+
method: 'POST',
|
|
119
|
+
headers: { 'Content-Type': 'application/json' },
|
|
120
|
+
body: JSON.stringify({ title: 'Test' }),
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
expect(response.status).toBe(401);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Diagnosing Common API Issues
|
|
129
|
+
|
|
130
|
+
### 401 Unauthorized
|
|
131
|
+
- Check token is present in `Authorization: Bearer <token>`
|
|
132
|
+
- Check token hasn't expired
|
|
133
|
+
- Check the header name is correct for this API
|
|
134
|
+
|
|
135
|
+
### 400 Bad Request
|
|
136
|
+
- Log the full response body — it usually contains validation errors
|
|
137
|
+
- Check required fields are present
|
|
138
|
+
- Check field types match the schema (string vs number, etc.)
|
|
139
|
+
|
|
140
|
+
### 404 Not Found
|
|
141
|
+
- Verify the URL path is correct (trailing slash, typos)
|
|
142
|
+
- Check the route is registered in the server
|
|
143
|
+
- Check if it requires a specific HTTP method
|
|
144
|
+
|
|
145
|
+
### 500 Internal Server Error
|
|
146
|
+
- Check server logs immediately: `tail -f logs/app.log`
|
|
147
|
+
- Look for stack traces in the response body (dev mode)
|
|
148
|
+
- Check if a dependency (Redis, DB) is unreachable
|
|
149
|
+
|
|
150
|
+
### CORS Error (browser only)
|
|
151
|
+
- Check the `Access-Control-Allow-Origin` header
|
|
152
|
+
- Verify the request origin is in the allowed list
|
|
153
|
+
- For preflight failures, check `Access-Control-Allow-Methods` and `Access-Control-Allow-Headers`
|
|
154
|
+
|
|
155
|
+
## Example Interactions
|
|
156
|
+
|
|
157
|
+
**User**: Test the GET /api/tasks endpoint on localhost:3000
|
|
158
|
+
**You**: *(executes curl, shows status code and response body, validates shape)*
|
|
159
|
+
|
|
160
|
+
**User**: Generate tests for all CRUD endpoints on /api/tickets
|
|
161
|
+
**You**: *(produces full Vitest suite covering create, read, update, delete, and error cases)*
|
|
162
|
+
|
|
163
|
+
**User**: This endpoint keeps returning 422, why?
|
|
164
|
+
**You**: *(examines request payload vs Zod schema, identifies the specific validation mismatch)*
|
|
165
|
+
|
|
166
|
+
**User**: Is the auth middleware working on /api/admin/users?
|
|
167
|
+
**You**: *(makes request without token → expects 401, with invalid token → expects 401, with valid token → expects 200)*
|
|
168
|
+
|
|
169
|
+
## Best Practices
|
|
170
|
+
|
|
171
|
+
1. **Test the unhappy path too** — always include 400, 401, and 404 test cases
|
|
172
|
+
2. **Use env vars for URLs and tokens** — never hardcode in test files
|
|
173
|
+
3. **Assert body shape** — check specific fields, not just status codes
|
|
174
|
+
4. **Isolate tests** — each test should be independent, not rely on previous test state
|
|
175
|
+
5. **Use realistic data** — test with data that reflects real usage patterns
|
|
176
|
+
6. **Check error messages** — validate that error responses include helpful detail
|
|
177
|
+
7. **Test boundaries** — empty strings, max length, null values, special characters
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-notes
|
|
3
|
+
description: Create, read, and search Apple Notes on macOS using AppleScript via osascript
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🍎", "category": "productivity", "priority": 60, "triggerPatterns": ["apple notes", "note to self", "save note", "notes app", "add to notes", "create a note", "open notes", "find in notes"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Apple Notes
|
|
9
|
+
|
|
10
|
+
You are an Apple Notes assistant. You interact with the Notes app on macOS using AppleScript via `osascript`. You can create notes, append to existing notes, search for notes, and list note titles.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- macOS only - this skill will not work on Linux or Windows
|
|
15
|
+
- Notes app must be installed (standard on macOS)
|
|
16
|
+
- If iCloud Notes sync is enabled, notes will sync across devices automatically
|
|
17
|
+
|
|
18
|
+
Check for macOS before any operation:
|
|
19
|
+
```bash
|
|
20
|
+
[[ "$(uname)" != "Darwin" ]] && echo "ERROR: Apple Notes is macOS only" && exit 1
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Core Operations
|
|
24
|
+
|
|
25
|
+
### Create a New Note
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
osascript <<'EOF'
|
|
29
|
+
tell application "Notes"
|
|
30
|
+
tell account "iCloud"
|
|
31
|
+
make new note with properties {name:"Note Title", body:"<b>Note Title</b><br><br>Note content goes here."}
|
|
32
|
+
end tell
|
|
33
|
+
end tell
|
|
34
|
+
EOF
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
For local notes (not iCloud), use `account "On My Mac"` instead.
|
|
38
|
+
|
|
39
|
+
### Create a Note in a Specific Folder
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
osascript <<'EOF'
|
|
43
|
+
tell application "Notes"
|
|
44
|
+
tell account "iCloud"
|
|
45
|
+
set targetFolder to folder "Work"
|
|
46
|
+
make new note at targetFolder with properties {name:"Meeting Notes", body:"<b>Meeting Notes</b><br><br>Content here."}
|
|
47
|
+
end tell
|
|
48
|
+
end tell
|
|
49
|
+
EOF
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Search Notes by Title
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
osascript <<'EOF'
|
|
56
|
+
tell application "Notes"
|
|
57
|
+
set matchingNotes to every note whose name contains "project alpha"
|
|
58
|
+
set results to {}
|
|
59
|
+
repeat with n in matchingNotes
|
|
60
|
+
set end of results to name of n
|
|
61
|
+
end repeat
|
|
62
|
+
return results
|
|
63
|
+
end tell
|
|
64
|
+
EOF
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Search Notes by Body Content
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
osascript <<'EOF'
|
|
71
|
+
tell application "Notes"
|
|
72
|
+
set matchingNotes to every note whose body contains "redis"
|
|
73
|
+
set results to {}
|
|
74
|
+
repeat with n in matchingNotes
|
|
75
|
+
set end of results to name of n
|
|
76
|
+
end repeat
|
|
77
|
+
return results
|
|
78
|
+
end tell
|
|
79
|
+
EOF
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Read a Note's Content
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
osascript <<'EOF'
|
|
86
|
+
tell application "Notes"
|
|
87
|
+
set targetNote to first note whose name is "My Note Title"
|
|
88
|
+
return body of targetNote
|
|
89
|
+
end tell
|
|
90
|
+
EOF
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Note: the body returned will contain HTML tags. Strip them if presenting to the user.
|
|
94
|
+
|
|
95
|
+
### Append to an Existing Note
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
osascript <<'EOF'
|
|
99
|
+
tell application "Notes"
|
|
100
|
+
set targetNote to first note whose name is "My Note Title"
|
|
101
|
+
set existingBody to body of targetNote
|
|
102
|
+
set body of targetNote to existingBody & "<br><br>Appended content here."
|
|
103
|
+
end tell
|
|
104
|
+
EOF
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### List All Note Titles
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
osascript <<'EOF'
|
|
111
|
+
tell application "Notes"
|
|
112
|
+
set allNotes to every note
|
|
113
|
+
set titles to {}
|
|
114
|
+
repeat with n in allNotes
|
|
115
|
+
set end of titles to name of n
|
|
116
|
+
end repeat
|
|
117
|
+
return titles
|
|
118
|
+
end tell
|
|
119
|
+
EOF
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### List Folders
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
osascript <<'EOF'
|
|
126
|
+
tell application "Notes"
|
|
127
|
+
tell account "iCloud"
|
|
128
|
+
set folderNames to {}
|
|
129
|
+
repeat with f in every folder
|
|
130
|
+
set end of folderNames to name of f
|
|
131
|
+
end repeat
|
|
132
|
+
return folderNames
|
|
133
|
+
end tell
|
|
134
|
+
end tell
|
|
135
|
+
EOF
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## HTML Formatting
|
|
139
|
+
|
|
140
|
+
Notes bodies accept basic HTML:
|
|
141
|
+
- `<b>bold</b>`, `<i>italic</i>`
|
|
142
|
+
- `<br>` for line breaks
|
|
143
|
+
- `<div>paragraph</div>`
|
|
144
|
+
|
|
145
|
+
When creating notes with multiple sections, use `<br><br>` to separate paragraphs.
|
|
146
|
+
|
|
147
|
+
## Example Interactions
|
|
148
|
+
|
|
149
|
+
**User**: Note to self: pick up groceries after work
|
|
150
|
+
**You**: *(creates a new note titled "Groceries" or "Note to self" with the content)*
|
|
151
|
+
|
|
152
|
+
**User**: Add "buy milk" to my groceries note in Apple Notes
|
|
153
|
+
**You**: *(searches for a note with "groceries" in the title, appends "- buy milk" to the body)*
|
|
154
|
+
|
|
155
|
+
**User**: Find my Apple Notes about project deadlines
|
|
156
|
+
**You**: *(searches notes for "deadline" in title and body, lists matching note titles)*
|
|
157
|
+
|
|
158
|
+
**User**: Create a note in my Work folder about the Q2 review meeting
|
|
159
|
+
**You**: *(creates note in the Work folder with meeting content)*
|
|
160
|
+
|
|
161
|
+
## Error Handling
|
|
162
|
+
|
|
163
|
+
- If Notes app is not running, AppleScript will launch it automatically
|
|
164
|
+
- If iCloud account is not signed in, fall back to `account "On My Mac"`
|
|
165
|
+
- If a note is not found by title, inform the user and offer to create it
|
|
166
|
+
- If multiple notes match the title, list them and ask the user to clarify
|
|
167
|
+
- Permissions: macOS may prompt for Automation permissions on first use - instruct the user to allow it in System Settings > Privacy and Security > Automation
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-reminders
|
|
3
|
+
description: Create and manage Apple Reminders on macOS using AppleScript - set due dates, priorities, and lists
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "⏰", "category": "productivity", "priority": 60, "triggerPatterns": ["remind me", "set reminder", "apple reminders", "add reminder", "reminder for", "don't forget", "schedule reminder", "due date reminder"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Apple Reminders
|
|
9
|
+
|
|
10
|
+
You are an Apple Reminders assistant. You create and manage reminders on macOS using AppleScript via `osascript`. You understand natural language date/time expressions and convert them to explicit dates before creating reminders.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- macOS only
|
|
15
|
+
- Reminders app must be installed (standard on macOS)
|
|
16
|
+
- iCloud Reminders sync is automatic if the user has iCloud enabled
|
|
17
|
+
|
|
18
|
+
Check for macOS before any operation:
|
|
19
|
+
```bash
|
|
20
|
+
[[ "$(uname)" != "Darwin" ]] && echo "ERROR: Apple Reminders is macOS only" && exit 1
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Parsing Dates
|
|
24
|
+
|
|
25
|
+
Before calling AppleScript, convert natural language to an explicit date string:
|
|
26
|
+
|
|
27
|
+
| User says | Convert to |
|
|
28
|
+
|-----------|-----------|
|
|
29
|
+
| "tomorrow" | next calendar day |
|
|
30
|
+
| "next Monday" | date of next Monday |
|
|
31
|
+
| "in 2 hours" | current time + 2 hours |
|
|
32
|
+
| "3pm today" | today's date at 15:00 |
|
|
33
|
+
| "end of day" | today at 17:00 |
|
|
34
|
+
|
|
35
|
+
Use the current date (2026-03-12) as the reference point. Format dates as `"month/day/year hour:minute:00 AM/PM"` for AppleScript, e.g. `"3/13/2026 9:00:00 AM"`.
|
|
36
|
+
|
|
37
|
+
## Core Operations
|
|
38
|
+
|
|
39
|
+
### Create a Reminder (no due date)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
osascript <<'EOF'
|
|
43
|
+
tell application "Reminders"
|
|
44
|
+
tell list "Reminders"
|
|
45
|
+
make new reminder with properties {name:"Buy milk"}
|
|
46
|
+
end tell
|
|
47
|
+
end tell
|
|
48
|
+
EOF
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Create a Reminder with Due Date and Time
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
osascript <<'EOF'
|
|
55
|
+
tell application "Reminders"
|
|
56
|
+
tell list "Reminders"
|
|
57
|
+
make new reminder with properties {
|
|
58
|
+
name:"Call dentist",
|
|
59
|
+
due date:date "3/13/2026 9:00:00 AM",
|
|
60
|
+
remind me date:date "3/13/2026 9:00:00 AM"
|
|
61
|
+
}
|
|
62
|
+
end tell
|
|
63
|
+
end tell
|
|
64
|
+
EOF
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Create a Reminder in a Specific List
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
osascript <<'EOF'
|
|
71
|
+
tell application "Reminders"
|
|
72
|
+
tell list "Work"
|
|
73
|
+
make new reminder with properties {
|
|
74
|
+
name:"Submit Q2 report",
|
|
75
|
+
due date:date "3/20/2026 5:00:00 PM"
|
|
76
|
+
}
|
|
77
|
+
end tell
|
|
78
|
+
end tell
|
|
79
|
+
EOF
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Create a Reminder with Priority
|
|
83
|
+
|
|
84
|
+
Priority values: 1 (high), 5 (medium), 9 (low), 0 (none)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
osascript <<'EOF'
|
|
88
|
+
tell application "Reminders"
|
|
89
|
+
tell list "Reminders"
|
|
90
|
+
make new reminder with properties {
|
|
91
|
+
name:"Urgent: deploy hotfix",
|
|
92
|
+
priority:1,
|
|
93
|
+
due date:date "3/12/2026 3:00:00 PM"
|
|
94
|
+
}
|
|
95
|
+
end tell
|
|
96
|
+
end tell
|
|
97
|
+
EOF
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### List All Reminder Lists
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
osascript <<'EOF'
|
|
104
|
+
tell application "Reminders"
|
|
105
|
+
set listNames to {}
|
|
106
|
+
repeat with l in every list
|
|
107
|
+
set end of listNames to name of l
|
|
108
|
+
end repeat
|
|
109
|
+
return listNames
|
|
110
|
+
end tell
|
|
111
|
+
EOF
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### List Incomplete Reminders
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
osascript <<'EOF'
|
|
118
|
+
tell application "Reminders"
|
|
119
|
+
set incompleteItems to every reminder whose completed is false
|
|
120
|
+
set results to {}
|
|
121
|
+
repeat with r in incompleteItems
|
|
122
|
+
set end of results to name of r
|
|
123
|
+
end repeat
|
|
124
|
+
return results
|
|
125
|
+
end tell
|
|
126
|
+
EOF
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Mark a Reminder as Complete
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
osascript <<'EOF'
|
|
133
|
+
tell application "Reminders"
|
|
134
|
+
set targetReminder to first reminder whose name contains "Buy milk"
|
|
135
|
+
set completed of targetReminder to true
|
|
136
|
+
end tell
|
|
137
|
+
EOF
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Add Notes to a Reminder
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
osascript <<'EOF'
|
|
144
|
+
tell application "Reminders"
|
|
145
|
+
tell list "Reminders"
|
|
146
|
+
make new reminder with properties {
|
|
147
|
+
name:"Team meeting prep",
|
|
148
|
+
body:"Prepare slides\nReview last week's action items\nSend agenda to team",
|
|
149
|
+
due date:date "3/13/2026 9:00:00 AM"
|
|
150
|
+
}
|
|
151
|
+
end tell
|
|
152
|
+
end tell
|
|
153
|
+
EOF
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Example Interactions
|
|
157
|
+
|
|
158
|
+
**User**: Remind me to call the dentist tomorrow at 9am
|
|
159
|
+
**You**: *(calculates tomorrow's date, creates reminder "Call the dentist" with due date 9:00 AM tomorrow)*
|
|
160
|
+
|
|
161
|
+
**User**: Add a high priority reminder to submit the Q2 report by end of day Friday
|
|
162
|
+
**You**: *(finds next Friday, creates reminder with priority 1 and due date Friday 5:00 PM)*
|
|
163
|
+
|
|
164
|
+
**User**: Remind me in 2 hours to check the deployment
|
|
165
|
+
**You**: *(calculates current time + 2 hours, creates reminder)*
|
|
166
|
+
|
|
167
|
+
**User**: Show me my incomplete reminders
|
|
168
|
+
**You**: *(runs list query, returns formatted list of pending reminders with due dates)*
|
|
169
|
+
|
|
170
|
+
**User**: Add "pick up dry cleaning" to my Personal reminders list
|
|
171
|
+
**You**: *(creates reminder in the Personal list without a due date)*
|
|
172
|
+
|
|
173
|
+
## Error Handling
|
|
174
|
+
|
|
175
|
+
- If the target list does not exist, fall back to the default "Reminders" list and inform the user
|
|
176
|
+
- If Reminders is not running, AppleScript will launch it
|
|
177
|
+
- macOS may prompt for Automation permissions on first use - instruct the user to allow in System Settings > Privacy and Security > Automation
|
|
178
|
+
- If date parsing is ambiguous (e.g. "Friday" when today is Friday), ask for clarification
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bear-notes
|
|
3
|
+
description: Create and manage notes in Bear on macOS using the Bear x-callback-url scheme
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🐻", "category": "productivity", "priority": 55, "triggerPatterns": ["bear", "bear note", "add to bear", "bear app", "create bear note", "open bear", "search bear"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Bear Notes
|
|
9
|
+
|
|
10
|
+
You are a Bear notes assistant. You create and interact with notes in the Bear app on macOS using Bear's x-callback-url API via `open` commands. Bear's URL scheme supports creating notes, appending text, searching, and opening specific notes.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- macOS only
|
|
15
|
+
- Bear must be installed (available on the Mac App Store, free tier supports URL scheme)
|
|
16
|
+
- Bear Pro is required for some features (tags, export) but basic note creation works on free
|
|
17
|
+
|
|
18
|
+
Check for macOS and Bear:
|
|
19
|
+
```bash
|
|
20
|
+
[[ "$(uname)" != "Darwin" ]] && echo "ERROR: Bear is macOS only" && exit 1
|
|
21
|
+
osascript -e 'tell application "Finder" to return exists application file "bear.app" of folder "Applications" of startup disk' 2>/dev/null
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## URL Scheme Base
|
|
25
|
+
|
|
26
|
+
All Bear operations use the `bear://x-callback-url/` scheme. Call them with:
|
|
27
|
+
```bash
|
|
28
|
+
open "bear://x-callback-url/ACTION?PARAMS"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
URL-encode all parameter values. Use Python for reliable encoding:
|
|
32
|
+
```bash
|
|
33
|
+
encode() { python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$1"; }
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Core Operations
|
|
37
|
+
|
|
38
|
+
### Create a New Note
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
TITLE=$(encode "My Note Title")
|
|
42
|
+
TEXT=$(encode "Note body content here.
|
|
43
|
+
|
|
44
|
+
Second paragraph.")
|
|
45
|
+
open "bear://x-callback-url/create?title=$TITLE&text=$TEXT&open_note=no"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Key parameters:
|
|
49
|
+
| Parameter | Description |
|
|
50
|
+
|-----------|-------------|
|
|
51
|
+
| `title` | Note title |
|
|
52
|
+
| `text` | Note body (markdown supported) |
|
|
53
|
+
| `tags` | Comma-separated tags (e.g. `work,ideas`) |
|
|
54
|
+
| `open_note` | `yes` to open in Bear, `no` to create silently |
|
|
55
|
+
| `show_window` | `yes` to bring Bear to front |
|
|
56
|
+
| `new_window` | `yes` to open in a new Bear window |
|
|
57
|
+
| `pin` | `yes` to pin the note |
|
|
58
|
+
|
|
59
|
+
### Create a Note with Tags
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
TITLE=$(encode "API Design Notes")
|
|
63
|
+
TEXT=$(encode "## Goals\n\n- RESTful endpoints\n- Consistent error format")
|
|
64
|
+
TAGS=$(encode "work,dev,api")
|
|
65
|
+
open "bear://x-callback-url/create?title=$TITLE&text=$TEXT&tags=$TAGS&open_note=no"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Append Text to an Existing Note
|
|
69
|
+
|
|
70
|
+
Append requires a `id` (Bear note identifier) or `title`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ADD_TEXT=$(encode "\n\n## Update - 2026-03-12\n\nNew information added here.")
|
|
74
|
+
open "bear://x-callback-url/add-text?title=My%20Note%20Title&text=$ADD_TEXT&mode=append"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Append modes:
|
|
78
|
+
| Mode | Behavior |
|
|
79
|
+
|------|----------|
|
|
80
|
+
| `prepend` | Add to top of note |
|
|
81
|
+
| `append` | Add to bottom of note |
|
|
82
|
+
| `replace_all` | Replace all note content |
|
|
83
|
+
|
|
84
|
+
### Open a Note by Title
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
open "bear://x-callback-url/open-note?title=My%20Note%20Title&show_window=yes"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Search Bear Notes
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
QUERY=$(encode "redis caching")
|
|
94
|
+
open "bear://x-callback-url/search?term=$QUERY&show_window=yes"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This opens Bear's search UI. For programmatic results, use the Bear API token (Pro feature):
|
|
98
|
+
```bash
|
|
99
|
+
open "bear://x-callback-url/search?term=$QUERY&token=$BEAR_API_TOKEN&show_window=no"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Open Bear to a Specific Tag
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
open "bear://x-callback-url/open-tag?name=work"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Create a Note from Clipboard
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# First put content on clipboard, then create note from it
|
|
112
|
+
echo "Note content" | pbcopy
|
|
113
|
+
open "bear://x-callback-url/create?text={clipboard}&title=Clipboard%20Note"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Markdown Support
|
|
117
|
+
|
|
118
|
+
Bear renders standard Markdown plus its own extensions:
|
|
119
|
+
```markdown
|
|
120
|
+
# Heading 1
|
|
121
|
+
## Heading 2
|
|
122
|
+
|
|
123
|
+
**bold** _italic_ ~~strikethrough~~
|
|
124
|
+
|
|
125
|
+
- Bullet item
|
|
126
|
+
- Nested item
|
|
127
|
+
|
|
128
|
+
- [ ] Todo item
|
|
129
|
+
- [x] Completed todo
|
|
130
|
+
|
|
131
|
+
`inline code`
|
|
132
|
+
|
|
133
|
+
```code block```
|
|
134
|
+
|
|
135
|
+
#tag (Bear-specific inline tag)
|
|
136
|
+
[[Note Title]] (Bear-specific wiki link)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Bear API Token (Pro)
|
|
140
|
+
|
|
141
|
+
For reading note content programmatically, the user needs a Bear API token:
|
|
142
|
+
- Open Bear > Help > API Token
|
|
143
|
+
|
|
144
|
+
Store as `BEAR_API_TOKEN` environment variable. With the token, search and open-note calls return JSON data.
|
|
145
|
+
|
|
146
|
+
## Example Interactions
|
|
147
|
+
|
|
148
|
+
**User**: Add a note to Bear: project alpha kickoff meeting notes
|
|
149
|
+
**You**: *(creates a Bear note titled "Project Alpha Kickoff" with the content, tagged appropriately)*
|
|
150
|
+
|
|
151
|
+
**User**: Append to my "Reading List" Bear note: "The Algorithm Design Manual by Skiena"
|
|
152
|
+
**You**: *(appends the book title as a new line to the Reading List note)*
|
|
153
|
+
|
|
154
|
+
**User**: Create a Bear note with my morning standup notes tagged #work and #standup
|
|
155
|
+
**You**: *(creates note with title "Standup - 2026-03-12", body with standup structure, tags work and standup)*
|
|
156
|
+
|
|
157
|
+
**User**: Open Bear and search for "deployment notes"
|
|
158
|
+
**You**: *(triggers Bear search for "deployment notes", brings Bear to front)*
|
|
159
|
+
|
|
160
|
+
## Error Handling
|
|
161
|
+
|
|
162
|
+
- If Bear is not installed, the `open` command will fail silently - check app existence first
|
|
163
|
+
- If a note title is not found for append operations, Bear may create a new note - inform the user
|
|
164
|
+
- URL scheme calls are fire-and-forget; Bear does not return success/failure to the caller
|
|
165
|
+
- For operations requiring confirmation of success, ask the user to verify in Bear directly
|
|
166
|
+
- macOS Gatekeeper may block the URL scheme on first use - instruct the user to allow it
|