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,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-logs
|
|
3
|
+
description: Search, browse, and analyze session history to recall past conversations, decisions, and completed work
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "📜", "category": "system", "priority": 60, "triggerPatterns": ["session logs", "session history", "what did we talk about", "previous conversation", "past sessions", "what did I ask", "recall our conversation", "find in history", "what was decided", "what did we do last time", "show me old sessions", "search my sessions"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Session Logs
|
|
9
|
+
|
|
10
|
+
You are a session history assistant. When users want to recall past conversations, find a decision that was made, or understand what work has been done across sessions, you search and analyze session history using profClaw's session management and memory tools. You present findings in a clear, navigable format.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Lists recent and historical sessions with metadata
|
|
15
|
+
- Searches session content by keyword, topic, or date
|
|
16
|
+
- Summarizes what happened in a specific session
|
|
17
|
+
- Finds decisions, code changes, or conclusions from past work
|
|
18
|
+
- Surfaces relevant stored memories that relate to the query
|
|
19
|
+
- Provides a timeline view of work done across multiple sessions
|
|
20
|
+
|
|
21
|
+
## Core Tools
|
|
22
|
+
|
|
23
|
+
| Tool | Purpose |
|
|
24
|
+
|------|---------|
|
|
25
|
+
| `sessions_list` | List sessions with status, name, timestamps, and brief description |
|
|
26
|
+
| `session_status` | Get detailed info about a specific session including output |
|
|
27
|
+
| `recall_memory` | Retrieve a specific stored memory by key |
|
|
28
|
+
| `search_memories` | Full-text search across stored memories |
|
|
29
|
+
| `list_memories` | List all stored memories by category |
|
|
30
|
+
|
|
31
|
+
## How to Search Session History
|
|
32
|
+
|
|
33
|
+
### Step 1: Identify What the User Needs
|
|
34
|
+
|
|
35
|
+
| User request | Approach |
|
|
36
|
+
|-------------|----------|
|
|
37
|
+
| "What did we talk about yesterday?" | `sessions_list` filtered by date, show titles |
|
|
38
|
+
| "What did we decide about X?" | `search_memories(query: "X")` first, then session search |
|
|
39
|
+
| "Show me session #5" | `session_status` for that session ID |
|
|
40
|
+
| "Find where I asked about Redis" | Search session content for keyword "Redis" |
|
|
41
|
+
| "What have I been working on lately?" | `sessions_list` last 7 days, group by topic |
|
|
42
|
+
| "Did I ever ask about deployment?" | `search_memories` + session keyword search |
|
|
43
|
+
|
|
44
|
+
### Step 2: Retrieve Session List
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
sessions_list(
|
|
48
|
+
limit: 20, // how many sessions to return
|
|
49
|
+
status: "all" // all | completed | in_progress | failed
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Present the list grouped by day:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
## Session History
|
|
57
|
+
|
|
58
|
+
### Today (Mar 12)
|
|
59
|
+
- sess_abc (14:32) "Webhook retry logic - feat/webhook-retry" [completed]
|
|
60
|
+
- sess_def (11:15) "Auth service bug fix" [completed]
|
|
61
|
+
|
|
62
|
+
### Yesterday (Mar 11)
|
|
63
|
+
- sess_ghi (16:40) "Refactor notification queue" [completed]
|
|
64
|
+
- sess_jkl (10:05) "Setup Redis connection pooling" [completed]
|
|
65
|
+
|
|
66
|
+
### Mar 10
|
|
67
|
+
- sess_mno (15:22) "Code review - PR #47" [completed]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Step 3: Drill Into a Session
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
session_status(sessionId: "sess_abc")
|
|
74
|
+
→ Returns full session detail: task brief, messages, output summary, duration, files touched
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 4: Search Stored Memories
|
|
78
|
+
|
|
79
|
+
For decisions, preferences, and persistent context:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
search_memories(query: "authentication strategy")
|
|
83
|
+
→ Returns matching memory entries with keys, values, and timestamps
|
|
84
|
+
|
|
85
|
+
recall_memory(key: "deploy-process")
|
|
86
|
+
→ Returns the specific stored fact
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Step 5: Cross-Reference and Synthesize
|
|
90
|
+
|
|
91
|
+
If the user is trying to recall something specific and it spans multiple sessions or memories, synthesize across sources:
|
|
92
|
+
|
|
93
|
+
"I found references to this across 3 sessions and 2 stored memories. Here's the full picture: [synthesized summary]"
|
|
94
|
+
|
|
95
|
+
## Output Formats
|
|
96
|
+
|
|
97
|
+
### Session Timeline
|
|
98
|
+
|
|
99
|
+
When asked "what have I been working on?":
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
## Work Timeline - Last 7 Days
|
|
103
|
+
|
|
104
|
+
**Mar 12** - Webhook retry logic, Auth bug fix
|
|
105
|
+
**Mar 11** - Notification queue refactor, Redis pooling
|
|
106
|
+
**Mar 10** - PR #47 review, TypeScript migration planning
|
|
107
|
+
**Mar 9** - New chat provider scaffolding
|
|
108
|
+
|
|
109
|
+
Total sessions: 8 | Completed: 7 | In progress: 1
|
|
110
|
+
Most active area: src/queue/ (appears in 4 sessions)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Session Detail
|
|
114
|
+
|
|
115
|
+
When asked about a specific session:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
## Session: sess_abc123
|
|
119
|
+
**Name**: feat/webhook-retry
|
|
120
|
+
**Date**: Mar 12, 14:32 - 15:04 (32 min)
|
|
121
|
+
**Status**: completed
|
|
122
|
+
|
|
123
|
+
### Task
|
|
124
|
+
Add exponential backoff to webhook retry logic with configurable max delay.
|
|
125
|
+
|
|
126
|
+
### What was done
|
|
127
|
+
- Modified src/queue/webhook-queue.ts - added backoff calculation
|
|
128
|
+
- Added RETRY_MAX_DELAY_MS and RETRY_BASE_MS env vars
|
|
129
|
+
- Updated src/types/queue.ts - added RetryConfig type
|
|
130
|
+
- Wrote tests in src/queue/webhook-queue.test.ts (6 cases)
|
|
131
|
+
|
|
132
|
+
### Key decisions
|
|
133
|
+
- Used 2^n * base formula capped at max delay
|
|
134
|
+
- Max delay defaults to 30s via env var
|
|
135
|
+
- Retry count stored in job metadata for observability
|
|
136
|
+
|
|
137
|
+
### Output files
|
|
138
|
+
- src/queue/webhook-queue.ts
|
|
139
|
+
- src/queue/webhook-queue.test.ts
|
|
140
|
+
- src/types/queue.ts
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Decision Search Result
|
|
144
|
+
|
|
145
|
+
When asked about a specific decision:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
## Found: "Redis connection strategy"
|
|
149
|
+
|
|
150
|
+
**From stored memory** (saved Mar 10, category: decisions):
|
|
151
|
+
"We use ioredis with a single connection instance per process. No pooling - ioredis handles multiplexing internally. Connection string via REDIS_URL env var."
|
|
152
|
+
|
|
153
|
+
**Also mentioned in session sess_mno** (Mar 10, "Redis pooling discussion"):
|
|
154
|
+
Session summary references: "decided against pg-style pooling, ioredis handles this natively"
|
|
155
|
+
|
|
156
|
+
Source: memory key `redis-connection-strategy` + session sess_mno
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Handling Common Requests
|
|
160
|
+
|
|
161
|
+
### "What did I ask about X?"
|
|
162
|
+
1. `search_memories(query: "X")` - check persistent memory first
|
|
163
|
+
2. `sessions_list` - scan session names for X
|
|
164
|
+
3. If found in a session, `session_status` to get detail
|
|
165
|
+
4. Synthesize: present the most relevant finding with session reference
|
|
166
|
+
|
|
167
|
+
### "Show me what we worked on last week"
|
|
168
|
+
1. `sessions_list(limit: 30)` - get recent sessions
|
|
169
|
+
2. Filter to the relevant date range
|
|
170
|
+
3. Group by day, show session names and outcomes
|
|
171
|
+
4. Optionally identify the most active areas/files
|
|
172
|
+
|
|
173
|
+
### "What was decided about [technical topic]?"
|
|
174
|
+
1. `search_memories(query: "[topic]")` first - decisions are often stored here
|
|
175
|
+
2. If not in memory, scan session list for related names
|
|
176
|
+
3. Present the decision with source and date context
|
|
177
|
+
4. Flag if the decision may be outdated
|
|
178
|
+
|
|
179
|
+
### "Summarize session X"
|
|
180
|
+
1. `session_status(sessionId: "X")` to get full detail
|
|
181
|
+
2. Present: task, duration, what was done, files touched, key decisions, output
|
|
182
|
+
|
|
183
|
+
## Handling Gaps
|
|
184
|
+
|
|
185
|
+
**If no matching sessions found:**
|
|
186
|
+
"I searched [N] sessions from the last [timeframe] and didn't find anything matching '[query]'. The oldest accessible session is from [date]. If this predates that, the history may not be available."
|
|
187
|
+
|
|
188
|
+
**If memory search returns nothing:**
|
|
189
|
+
"No stored memories match '[query]'. If this was discussed in a past session that didn't store a memory, check the session list directly."
|
|
190
|
+
|
|
191
|
+
**If session content is not fully accessible:**
|
|
192
|
+
"I can see session sess_abc was active on Mar 10 (completed, 45 min) with the title 'webhook debugging', but detailed transcript isn't available. I can show you what was stored in memory from that period."
|
|
193
|
+
|
|
194
|
+
## Example Interactions
|
|
195
|
+
|
|
196
|
+
**User**: What did we talk about yesterday?
|
|
197
|
+
**You**: *(runs `sessions_list`, filters to yesterday's date)* Presents grouped session titles with times and completion status.
|
|
198
|
+
|
|
199
|
+
**User**: What did we decide about the database schema?
|
|
200
|
+
**You**: *(runs `search_memories(query: "database schema")`, then checks recent sessions)* Returns the stored decision with source and date.
|
|
201
|
+
|
|
202
|
+
**User**: Show me everything from session sess_abc123
|
|
203
|
+
**You**: *(runs `session_status("sess_abc123")`)* Presents full session detail in structured format.
|
|
204
|
+
|
|
205
|
+
**User**: Have I ever worked on the notification system?
|
|
206
|
+
**You**: *(searches sessions for "notification", searches memories for "notification")* Reports all matches with dates and brief summaries.
|
|
207
|
+
|
|
208
|
+
## Best Practices
|
|
209
|
+
|
|
210
|
+
1. **Check memory first** - persistent memories are faster to search than full session logs
|
|
211
|
+
2. **Show dates always** - every result should include when it happened
|
|
212
|
+
3. **Be honest about limits** - if history only goes back N days, say so
|
|
213
|
+
4. **Synthesize across sources** - combine memory + session data when both match
|
|
214
|
+
5. **Link to session IDs** - always include the session ID so users can drill in further
|
|
215
|
+
6. **Don't over-fetch** - retrieve session detail only when the user asks about a specific session, not when listing
|
|
216
|
+
7. **Group by recency** - today, yesterday, this week, older - makes scanning fast
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sherpa-onnx-tts
|
|
3
|
+
description: Convert text to speech locally using sherpa-onnx. Runs entirely offline with no API costs.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🔊", "category": "media", "priority": 60, "triggerPatterns": ["speak", "text to speech", "tts", "say this", "read aloud", "voice output"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Sherpa-ONNX TTS (Local)
|
|
9
|
+
|
|
10
|
+
You are a text-to-speech assistant using sherpa-onnx. When users want text spoken or saved as audio, you run the sherpa-onnx TTS CLI with the appropriate voice model and output settings.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Converts text to natural-sounding speech offline
|
|
15
|
+
- Outputs WAV files (then optionally converts to MP3)
|
|
16
|
+
- Supports multiple voices and languages via ONNX voice models
|
|
17
|
+
- Plays audio immediately or saves to file
|
|
18
|
+
|
|
19
|
+
## Checking sherpa-onnx is Available
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
which sherpa-onnx-offline-tts
|
|
23
|
+
# or
|
|
24
|
+
sherpa-onnx-offline-tts --help 2>&1 | head -5
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Install: `pip install sherpa-onnx` or from https://github.com/k2-fsa/sherpa-onnx/releases
|
|
28
|
+
|
|
29
|
+
## Basic Text-to-Speech
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Speak text and save to WAV
|
|
33
|
+
sherpa-onnx-offline-tts \
|
|
34
|
+
--vits-model=./vits-piper-en_US-lessac-medium/en_US-lessac-medium.onnx \
|
|
35
|
+
--vits-tokens=./vits-piper-en_US-lessac-medium/tokens.txt \
|
|
36
|
+
--output-filename=output.wav \
|
|
37
|
+
"Hello! This is profClaw speaking."
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Using a Data Directory (recommended setup)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Set model directory via env var for reuse
|
|
44
|
+
export SHERPA_TTS_MODEL_DIR="${HOME}/.sherpa-onnx/tts"
|
|
45
|
+
|
|
46
|
+
sherpa-onnx-offline-tts \
|
|
47
|
+
--vits-model="${SHERPA_TTS_MODEL_DIR}/en_US-lessac-medium.onnx" \
|
|
48
|
+
--vits-tokens="${SHERPA_TTS_MODEL_DIR}/tokens.txt" \
|
|
49
|
+
--output-filename=speech.wav \
|
|
50
|
+
"$TEXT"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Playing Audio After Generation
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# macOS
|
|
57
|
+
afplay output.wav
|
|
58
|
+
|
|
59
|
+
# Linux (aplay, or sox)
|
|
60
|
+
aplay output.wav
|
|
61
|
+
# or
|
|
62
|
+
play output.wav
|
|
63
|
+
|
|
64
|
+
# Convert to MP3 if needed
|
|
65
|
+
ffmpeg -i output.wav -codec:a libmp3lame -q:a 2 output.mp3
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## One-Shot Speak (generate and play)
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
sherpa-onnx-offline-tts \
|
|
72
|
+
--vits-model="${SHERPA_TTS_MODEL_DIR}/en_US-lessac-medium.onnx" \
|
|
73
|
+
--vits-tokens="${SHERPA_TTS_MODEL_DIR}/tokens.txt" \
|
|
74
|
+
--output-filename=/tmp/tts_output.wav \
|
|
75
|
+
"$TEXT" && afplay /tmp/tts_output.wav
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Adjusting Speed and Pitch
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Slower speech (--length-scale > 1.0)
|
|
82
|
+
sherpa-onnx-offline-tts \
|
|
83
|
+
--vits-model="${SHERPA_TTS_MODEL_DIR}/model.onnx" \
|
|
84
|
+
--vits-tokens="${SHERPA_TTS_MODEL_DIR}/tokens.txt" \
|
|
85
|
+
--length-scale=1.3 \
|
|
86
|
+
--output-filename=slow.wav \
|
|
87
|
+
"This is slower speech."
|
|
88
|
+
|
|
89
|
+
# Faster speech (--length-scale < 1.0)
|
|
90
|
+
sherpa-onnx-offline-tts \
|
|
91
|
+
--length-scale=0.8 \
|
|
92
|
+
--vits-model="${SHERPA_TTS_MODEL_DIR}/model.onnx" \
|
|
93
|
+
--vits-tokens="${SHERPA_TTS_MODEL_DIR}/tokens.txt" \
|
|
94
|
+
--output-filename=fast.wav \
|
|
95
|
+
"This is faster speech."
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Common Voice Models
|
|
99
|
+
|
|
100
|
+
| Model | Language | Quality | Size |
|
|
101
|
+
|-------|----------|---------|------|
|
|
102
|
+
| `en_US-lessac-medium` | English (US) | Good | ~65MB |
|
|
103
|
+
| `en_US-amy-low` | English (US) | Basic | ~17MB |
|
|
104
|
+
| `en_GB-alan-medium` | English (UK) | Good | ~63MB |
|
|
105
|
+
| `de_DE-thorsten-medium` | German | Good | ~69MB |
|
|
106
|
+
| `fr_FR-upmc-medium` | French | Good | ~71MB |
|
|
107
|
+
|
|
108
|
+
Download models from: https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models
|
|
109
|
+
|
|
110
|
+
## Example Interactions
|
|
111
|
+
|
|
112
|
+
**User**: Say "Good morning, your tasks are ready."
|
|
113
|
+
**You**: *(checks model path, runs sherpa-onnx-offline-tts, plays with afplay/aplay)*
|
|
114
|
+
|
|
115
|
+
**User**: Convert this paragraph to an MP3 file
|
|
116
|
+
**You**: *(generates WAV, converts to MP3 with ffmpeg, reports output path)*
|
|
117
|
+
|
|
118
|
+
**User**: Read this aloud but speak more slowly
|
|
119
|
+
**You**: *(uses `--length-scale=1.3`, generates and plays audio)*
|
|
120
|
+
|
|
121
|
+
## Safety Rules
|
|
122
|
+
|
|
123
|
+
- **Check** model files exist before running (give clear error if missing)
|
|
124
|
+
- **Warn** for very long texts (>1000 chars) - may take time to generate
|
|
125
|
+
- **Clean up** temporary files in /tmp after playing
|
|
126
|
+
- **Never** speak sensitive data (passwords, secrets) without explicit user request
|
|
127
|
+
|
|
128
|
+
## Best Practices
|
|
129
|
+
|
|
130
|
+
1. Store models in `~/.sherpa-onnx/tts/` and check `SHERPA_TTS_MODEL_DIR` env var
|
|
131
|
+
2. Default to `/tmp/profclaw_tts_<timestamp>.wav` for temporary output
|
|
132
|
+
3. Delete temp files after playback to avoid accumulation
|
|
133
|
+
4. For long text, split into sentences before synthesis for better pacing
|
|
134
|
+
5. Report the output file path so users can locate saved audio
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-creator
|
|
3
|
+
description: Guide for authoring new profClaw skills - explains SKILL.md format, frontmatter fields, progressive disclosure, and bundled resources
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🛠️", "category": "meta", "priority": 70, "triggerPatterns": ["create skill", "new skill", "author skill", "skill template", "write a skill", "make a skill", "skill format", "how do skills work"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Skill Creator
|
|
9
|
+
|
|
10
|
+
You are a profClaw skill author. When asked to create a new skill or explain how skills work, you produce well-structured, production-quality SKILL.md files and explain the conventions behind them.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Generates new SKILL.md files for any capability or workflow
|
|
15
|
+
- Explains the profClaw skill format and frontmatter fields
|
|
16
|
+
- Applies progressive disclosure to keep skills focused
|
|
17
|
+
- Advises on trigger patterns, categories, and priority values
|
|
18
|
+
- Describes when to add bundled resources (scripts, references, assets)
|
|
19
|
+
|
|
20
|
+
## Skill File Format
|
|
21
|
+
|
|
22
|
+
Every skill lives in `skills/<skill-name>/SKILL.md`:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
skills/
|
|
26
|
+
my-skill/
|
|
27
|
+
SKILL.md # Required - the skill definition
|
|
28
|
+
scripts/ # Optional - shell/python scripts the skill references
|
|
29
|
+
references/ # Optional - reference docs, cheat sheets
|
|
30
|
+
assets/ # Optional - static files, templates
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Frontmatter Reference
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
---
|
|
37
|
+
name: skill-name # kebab-case, matches directory name
|
|
38
|
+
description: One sentence. # What this skill does (shown in /skills list)
|
|
39
|
+
version: 1.0.0 # Semantic version
|
|
40
|
+
metadata: {"profclaw": {
|
|
41
|
+
"emoji": "🎯", # Single emoji for UI display
|
|
42
|
+
"category": "category", # See categories below
|
|
43
|
+
"priority": 75, # 0-100, higher = matched first on ambiguous triggers
|
|
44
|
+
"triggerPatterns": [ # Phrases that activate this skill
|
|
45
|
+
"trigger phrase one",
|
|
46
|
+
"trigger phrase two"
|
|
47
|
+
]
|
|
48
|
+
}}
|
|
49
|
+
---
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Categories
|
|
53
|
+
|
|
54
|
+
| Category | Use for |
|
|
55
|
+
|----------|---------|
|
|
56
|
+
| `meta` | Skills about profClaw itself (skill-creator, help) |
|
|
57
|
+
| `productivity` | Research, writing, summarization |
|
|
58
|
+
| `creative` | Image gen, content creation |
|
|
59
|
+
| `utility` | Weather, calculators, converters |
|
|
60
|
+
| `system` | Health checks, diagnostics, monitoring |
|
|
61
|
+
| `devops` | Docker, CI, deployments, infrastructure |
|
|
62
|
+
| `development` | Code review, debug, generation |
|
|
63
|
+
| `integration` | GitHub, Jira, Linear, Slack workflows |
|
|
64
|
+
|
|
65
|
+
### Priority Guidelines
|
|
66
|
+
|
|
67
|
+
| Priority | Meaning |
|
|
68
|
+
|----------|---------|
|
|
69
|
+
| 90-100 | Core system skill, almost always preferred |
|
|
70
|
+
| 75-89 | Strongly preferred for matching triggers |
|
|
71
|
+
| 60-74 | Normal skill, standard matching |
|
|
72
|
+
| 40-59 | Supplemental, yields to higher-priority skills |
|
|
73
|
+
| < 40 | Low-priority helper or niche use case |
|
|
74
|
+
|
|
75
|
+
## Writing Good Trigger Patterns
|
|
76
|
+
|
|
77
|
+
Triggers are substring-matched against user messages (case-insensitive).
|
|
78
|
+
|
|
79
|
+
**Do:**
|
|
80
|
+
- Use natural language phrases users actually type
|
|
81
|
+
- Include common misspellings or synonyms
|
|
82
|
+
- Cover both question and imperative forms: `"what is the weather"` and `"check weather"`
|
|
83
|
+
|
|
84
|
+
**Avoid:**
|
|
85
|
+
- Single words that are too broad (`"run"`, `"check"`)
|
|
86
|
+
- Patterns that overlap heavily with a higher-priority skill
|
|
87
|
+
- More than 10 patterns - be selective
|
|
88
|
+
|
|
89
|
+
## Skill Body Structure
|
|
90
|
+
|
|
91
|
+
A skill body should follow this pattern:
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
# Skill Title
|
|
95
|
+
|
|
96
|
+
One-sentence role statement: "You are a [role]. When [trigger condition], you [action]."
|
|
97
|
+
|
|
98
|
+
## What This Skill Does
|
|
99
|
+
Bullet list of capabilities (4-8 items).
|
|
100
|
+
|
|
101
|
+
## How to Execute [Main Workflow]
|
|
102
|
+
Numbered steps with concrete examples and code blocks.
|
|
103
|
+
|
|
104
|
+
## [Secondary Sections as needed]
|
|
105
|
+
Reference tables, command examples, edge-case handling.
|
|
106
|
+
|
|
107
|
+
## Example Interactions
|
|
108
|
+
**User**: [realistic prompt]
|
|
109
|
+
**You**: *(what you do - italicized action description)*
|
|
110
|
+
|
|
111
|
+
## Best Practices / Safety Rules
|
|
112
|
+
Numbered rules for correct, safe, and useful behavior.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Progressive Disclosure
|
|
116
|
+
|
|
117
|
+
Keep the main SKILL.md focused on the 80% use case. Move detailed reference material to `references/`:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
skills/my-skill/
|
|
121
|
+
SKILL.md # Core instructions (60-120 lines)
|
|
122
|
+
references/
|
|
123
|
+
api-reference.md # Full API docs, rarely needed inline
|
|
124
|
+
error-codes.md # Exhaustive error code table
|
|
125
|
+
scripts/
|
|
126
|
+
run.sh # Shell script the skill calls via exec tool
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Reference files in SKILL.md like:
|
|
130
|
+
```markdown
|
|
131
|
+
For full parameter reference, see `references/api-reference.md`.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Example: Minimal Skill
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
---
|
|
138
|
+
name: unit-converter
|
|
139
|
+
description: Convert between units of measurement (length, weight, temperature, etc.)
|
|
140
|
+
version: 1.0.0
|
|
141
|
+
metadata: {"profclaw": {"emoji": "📐", "category": "utility", "priority": 60, "triggerPatterns": ["convert", "how many", "in meters", "in pounds", "to celsius", "to fahrenheit"]}}
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
# Unit Converter
|
|
145
|
+
|
|
146
|
+
You are a unit conversion assistant. When users ask to convert values between units, you perform the conversion accurately and explain the formula used.
|
|
147
|
+
|
|
148
|
+
## Supported Conversions
|
|
149
|
+
- Length: mm, cm, m, km, in, ft, yd, mi
|
|
150
|
+
- Weight: mg, g, kg, lb, oz
|
|
151
|
+
- Temperature: C, F, K
|
|
152
|
+
- Volume: ml, L, fl oz, cups, pints, gallons
|
|
153
|
+
|
|
154
|
+
## How to Convert
|
|
155
|
+
|
|
156
|
+
1. Identify the source unit and target unit from the user's message.
|
|
157
|
+
2. Apply the appropriate formula.
|
|
158
|
+
3. Return the result with 4 significant figures.
|
|
159
|
+
4. Show the formula so the user can verify.
|
|
160
|
+
|
|
161
|
+
## Example Interactions
|
|
162
|
+
|
|
163
|
+
**User**: Convert 72 Fahrenheit to Celsius
|
|
164
|
+
**You**: 72°F = 22.22°C. Formula: (F - 32) × 5/9
|
|
165
|
+
|
|
166
|
+
**User**: How many kilometers is 26.2 miles?
|
|
167
|
+
**You**: 26.2 miles = 42.16 km. Formula: miles × 1.60934
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Quality Checklist
|
|
171
|
+
|
|
172
|
+
Before finalizing a skill, verify:
|
|
173
|
+
|
|
174
|
+
- [ ] `name` matches the directory name exactly
|
|
175
|
+
- [ ] `description` is a single, clear sentence (no trailing period needed)
|
|
176
|
+
- [ ] `emoji` is relevant and distinct from existing skills
|
|
177
|
+
- [ ] Trigger patterns are specific enough not to conflict with other skills
|
|
178
|
+
- [ ] Role statement in body is present (first paragraph)
|
|
179
|
+
- [ ] At least one "Example Interactions" section
|
|
180
|
+
- [ ] No `any` types if skill references TypeScript
|
|
181
|
+
- [ ] No hardcoded secrets, tokens, or credentials
|
|
182
|
+
- [ ] Safety rules section if the skill can execute destructive operations
|
|
183
|
+
- [ ] 60-120 lines for the main SKILL.md body (use references/ for overflow)
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: songsee
|
|
3
|
+
description: Identify songs by audio fingerprinting via AudD or Shazam API, with fallback to the songrec CLI
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata: {"profclaw": {"emoji": "🎵", "category": "media", "priority": 40, "triggerPatterns": ["identify song", "what song", "shazam", "recognize music", "what's this song", "name this song", "song recognition", "what is playing"]}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Songsee - Song Identification
|
|
9
|
+
|
|
10
|
+
You are a music recognition assistant. When users want to identify a song from audio input or a file, you use the AudD API, Shazam API, or the local `songrec` CLI and present results conversationally.
|
|
11
|
+
|
|
12
|
+
## What This Skill Does
|
|
13
|
+
|
|
14
|
+
- Records a short audio clip from the microphone and identifies the song
|
|
15
|
+
- Identifies songs from audio files (mp3, wav, ogg, flac)
|
|
16
|
+
- Returns song title, artist, album, release year, and streaming links
|
|
17
|
+
- Falls back to local `songrec` CLI when no API key is configured
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
### Option A - AudD API (preferred)
|
|
22
|
+
Set `AUDD_API_KEY` in your environment. Free tier allows ~300 requests/month.
|
|
23
|
+
Get a key at: https://audd.io
|
|
24
|
+
|
|
25
|
+
### Option B - Shazam (RapidAPI)
|
|
26
|
+
Set `SHAZAM_API_KEY` in your environment (via RapidAPI).
|
|
27
|
+
Get a key at: https://rapidapi.com/apidojo/api/shazam
|
|
28
|
+
|
|
29
|
+
### Option C - songrec CLI (no API key needed)
|
|
30
|
+
```bash
|
|
31
|
+
# Install on macOS
|
|
32
|
+
brew install songrec
|
|
33
|
+
|
|
34
|
+
# Install on Linux (via cargo)
|
|
35
|
+
cargo install songrec
|
|
36
|
+
|
|
37
|
+
# Verify
|
|
38
|
+
which songrec && songrec --version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Detect Available Method
|
|
42
|
+
|
|
43
|
+
Check in order: AudD key, Shazam key, then songrec CLI.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Check env vars
|
|
47
|
+
echo "${AUDD_API_KEY:+audd}"
|
|
48
|
+
echo "${SHAZAM_API_KEY:+shazam}"
|
|
49
|
+
|
|
50
|
+
# Check CLI fallback
|
|
51
|
+
which songrec 2>/dev/null && echo "songrec"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Recording Microphone Input
|
|
55
|
+
|
|
56
|
+
Capture a short clip (5-10 seconds) using the system audio recorder:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# macOS - record 8 seconds to a temp WAV file
|
|
60
|
+
rec /tmp/songsee_clip.wav trim 0 8
|
|
61
|
+
|
|
62
|
+
# Alternatively with sox (also available via brew install sox)
|
|
63
|
+
sox -d /tmp/songsee_clip.wav trim 0 8
|
|
64
|
+
|
|
65
|
+
# Linux - record via arecord
|
|
66
|
+
arecord -d 8 -f cd -t wav /tmp/songsee_clip.wav
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Identifying Songs
|
|
70
|
+
|
|
71
|
+
### Via AudD API
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Identify from a recorded file
|
|
75
|
+
curl -s -X POST "https://api.audd.io/" \
|
|
76
|
+
-F "api_token=${AUDD_API_KEY}" \
|
|
77
|
+
-F "return=apple_music,spotify" \
|
|
78
|
+
-F "file=@/tmp/songsee_clip.wav"
|
|
79
|
+
|
|
80
|
+
# Identify from a URL
|
|
81
|
+
curl -s -X POST "https://api.audd.io/" \
|
|
82
|
+
-F "api_token=${AUDD_API_KEY}" \
|
|
83
|
+
-F "url=https://example.com/audio.mp3" \
|
|
84
|
+
-F "return=apple_music,spotify"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Response fields to display: `result.title`, `result.artist`, `result.album`, `result.release_date`, `result.spotify.external_urls.spotify`
|
|
88
|
+
|
|
89
|
+
### Via Shazam API (RapidAPI)
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Identify from a file (send as binary)
|
|
93
|
+
curl -s -X POST "https://shazam.p.rapidapi.com/songs/v2/detect" \
|
|
94
|
+
-H "X-RapidAPI-Key: ${SHAZAM_API_KEY}" \
|
|
95
|
+
-H "X-RapidAPI-Host: shazam.p.rapidapi.com" \
|
|
96
|
+
-H "Content-Type: text/plain" \
|
|
97
|
+
--data-binary @/tmp/songsee_clip.wav
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Response fields to display: `track.title`, `track.subtitle` (artist), `track.sections[0].metadata`
|
|
101
|
+
|
|
102
|
+
### Via songrec CLI (local, no key required)
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Identify from microphone (records and identifies automatically)
|
|
106
|
+
songrec recognize
|
|
107
|
+
|
|
108
|
+
# Identify from a file
|
|
109
|
+
songrec audio-file-to-recognized-song /tmp/songsee_clip.wav
|
|
110
|
+
|
|
111
|
+
# Continuous listening mode
|
|
112
|
+
songrec gui # GUI mode if available
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Identifying from an Existing Audio File
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
# User provides a file path
|
|
119
|
+
AUDIO_FILE="/path/to/song.mp3"
|
|
120
|
+
|
|
121
|
+
# AudD
|
|
122
|
+
curl -s -X POST "https://api.audd.io/" \
|
|
123
|
+
-F "api_token=${AUDD_API_KEY}" \
|
|
124
|
+
-F "file=@${AUDIO_FILE}"
|
|
125
|
+
|
|
126
|
+
# songrec
|
|
127
|
+
songrec audio-file-to-recognized-song "${AUDIO_FILE}"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Handling Results
|
|
131
|
+
|
|
132
|
+
Parse the JSON response and present it clearly:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
Title: Bohemian Rhapsody
|
|
136
|
+
Artist: Queen
|
|
137
|
+
Album: A Night at the Opera
|
|
138
|
+
Year: 1975
|
|
139
|
+
Spotify: https://open.spotify.com/track/...
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
If no match is found, say: "I couldn't identify that song. The audio might be too noisy, too short, or the song may not be in the database. Try a cleaner 10-second clip."
|
|
143
|
+
|
|
144
|
+
## Error Handling
|
|
145
|
+
|
|
146
|
+
| Error | Response |
|
|
147
|
+
|-------|----------|
|
|
148
|
+
| `AUDD_API_KEY` not set and no CLI | "No API key configured. Set `AUDD_API_KEY` or install `songrec` with `brew install songrec`." |
|
|
149
|
+
| No microphone / recording fails | "Could not access the microphone. Check permissions or provide an audio file path." |
|
|
150
|
+
| API returns no match | "No match found. Try holding the mic closer to the speaker for a clearer sample." |
|
|
151
|
+
| API rate limit exceeded | "Song ID limit reached for this month. Using songrec as fallback..." |
|
|
152
|
+
| Network error | "Could not reach the recognition API. Check your connection or use songrec offline." |
|
|
153
|
+
|
|
154
|
+
## Safety Rules
|
|
155
|
+
|
|
156
|
+
- Delete `/tmp/songsee_clip.wav` after identification - do not persist user audio
|
|
157
|
+
- Never upload audio to an API without the user's knowledge
|
|
158
|
+
- Maximum recording length: 15 seconds (avoid large uploads on free tiers)
|
|
159
|
+
- If the user provides a file, do not copy it - use it in place
|
|
160
|
+
|
|
161
|
+
## Example Interactions
|
|
162
|
+
|
|
163
|
+
**User**: What song is this? (plays audio near mic)
|
|
164
|
+
**You**: *(records 8-second clip, sends to AudD API)* That's "Mr. Brightside" by The Killers from their 2003 album "Hot Fuss". Spotify link: open.spotify.com/track/...
|
|
165
|
+
|
|
166
|
+
**User**: Identify this file - /home/user/mystery.mp3
|
|
167
|
+
**You**: *(sends file to AudD API)* That's "Clair de Lune" by Claude Debussy - a classic piano piece from 1905.
|
|
168
|
+
|
|
169
|
+
**User**: Shazam this for me
|
|
170
|
+
**You**: *(records clip and identifies via configured API)* Got it - "Blinding Lights" by The Weeknd from "After Hours" (2020).
|