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,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Intelligence Compiler - Phase 19 Category 9
|
|
3
|
+
*
|
|
4
|
+
* 9.1 - Skill-to-workflow compiler: parses SKILL.md into WorkflowDefinition
|
|
5
|
+
* 9.2 - Model-adaptive injection: selects condensed vs full instructions by capability
|
|
6
|
+
* 9.3 - Skill effectiveness tracking: in-memory usage/success counters
|
|
7
|
+
*/
|
|
8
|
+
/** Lines that indicate a numbered step (1. text, Step 1: text) */
|
|
9
|
+
const NUMBERED_STEP_RE = /^(?:\d+\.\s+|Step\s+\d+[:.]\s*)/i;
|
|
10
|
+
/** Lines that are task-list items: - [ ] text */
|
|
11
|
+
const TASK_ITEM_RE = /^-\s+\[[ x]\]\s+/i;
|
|
12
|
+
/** Backtick-quoted tool or command names */
|
|
13
|
+
const BACKTICK_TOOL_RE = /`([a-z_][a-z0-9_-]*)`/gi;
|
|
14
|
+
/** Code fence opener */
|
|
15
|
+
const CODE_FENCE_RE = /^```/;
|
|
16
|
+
/** Heading line */
|
|
17
|
+
const HEADING_RE = /^#{1,6}\s/;
|
|
18
|
+
/** Example block markers (headings or lines containing "example") */
|
|
19
|
+
const EXAMPLE_HEADING_RE = /^#{1,6}\s.*example/i;
|
|
20
|
+
/**
|
|
21
|
+
* Map a plain-text step description to a best-guess tool name
|
|
22
|
+
*/
|
|
23
|
+
function inferToolFromText(text) {
|
|
24
|
+
const lower = text.toLowerCase();
|
|
25
|
+
if (/\b(run|execute|exec|bash|shell|command|cmd)\b/.test(lower))
|
|
26
|
+
return 'exec';
|
|
27
|
+
if (/\b(write|create|generate|output|save|produce)\b/.test(lower))
|
|
28
|
+
return 'write_file';
|
|
29
|
+
if (/\b(read|open|load|view|look at|check file|inspect file)\b/.test(lower))
|
|
30
|
+
return 'read_file';
|
|
31
|
+
if (/\b(search|find|grep|locate|look for)\b/.test(lower))
|
|
32
|
+
return 'search_files';
|
|
33
|
+
if (/\b(fetch|download|request|http|url|web)\b/.test(lower))
|
|
34
|
+
return 'web_fetch';
|
|
35
|
+
if (/\b(list|enumerate|dir|ls)\b/.test(lower))
|
|
36
|
+
return 'search_files';
|
|
37
|
+
if (/\b(check|verify|validate|test)\b/.test(lower))
|
|
38
|
+
return 'exec';
|
|
39
|
+
return 'exec';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Collect all backtick-quoted tool references from a block of text.
|
|
43
|
+
* Common prose words are filtered out to avoid noise.
|
|
44
|
+
*/
|
|
45
|
+
function extractToolRefs(text) {
|
|
46
|
+
const PROSE_WORDS = new Set([
|
|
47
|
+
'true', 'false', 'null', 'undefined', 'yes', 'no', 'ok',
|
|
48
|
+
'and', 'or', 'not', 'the', 'a', 'an', 'of', 'in', 'to', 'for',
|
|
49
|
+
]);
|
|
50
|
+
const seen = new Set();
|
|
51
|
+
const result = [];
|
|
52
|
+
let match;
|
|
53
|
+
const re = new RegExp(BACKTICK_TOOL_RE.source, 'gi');
|
|
54
|
+
while ((match = re.exec(text)) !== null) {
|
|
55
|
+
const token = match[1].toLowerCase();
|
|
56
|
+
if (!PROSE_WORDS.has(token) && !seen.has(token)) {
|
|
57
|
+
seen.add(token);
|
|
58
|
+
result.push(token);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extract action verbs from a block of text (first word of each sentence / step).
|
|
65
|
+
*/
|
|
66
|
+
function extractActions(steps) {
|
|
67
|
+
const seen = new Set();
|
|
68
|
+
const actions = [];
|
|
69
|
+
for (const step of steps) {
|
|
70
|
+
// Strip leading numbering / task markers
|
|
71
|
+
const clean = step
|
|
72
|
+
.replace(NUMBERED_STEP_RE, '')
|
|
73
|
+
.replace(TASK_ITEM_RE, '')
|
|
74
|
+
.trim();
|
|
75
|
+
const firstWord = clean.split(/\s+/)[0]?.replace(/[^a-zA-Z]/g, '').toLowerCase();
|
|
76
|
+
if (firstWord && firstWord.length > 2 && !seen.has(firstWord)) {
|
|
77
|
+
seen.add(firstWord);
|
|
78
|
+
actions.push(firstWord);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return actions;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Split the instructions into step lines by looking for numbered lists,
|
|
85
|
+
* task-list items, and "Step N:" patterns.
|
|
86
|
+
*/
|
|
87
|
+
function extractStepLines(instructions) {
|
|
88
|
+
const steps = [];
|
|
89
|
+
const lines = instructions.split('\n');
|
|
90
|
+
let inCodeBlock = false;
|
|
91
|
+
for (const line of lines) {
|
|
92
|
+
const trimmed = line.trim();
|
|
93
|
+
// Track code blocks - skip their contents for step extraction
|
|
94
|
+
if (CODE_FENCE_RE.test(trimmed)) {
|
|
95
|
+
inCodeBlock = !inCodeBlock;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (inCodeBlock)
|
|
99
|
+
continue;
|
|
100
|
+
if (NUMBERED_STEP_RE.test(trimmed) || TASK_ITEM_RE.test(trimmed)) {
|
|
101
|
+
steps.push(trimmed);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return steps;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Build a WorkflowDefinition from a list of step lines.
|
|
108
|
+
* Only created when there are 2+ sequential steps.
|
|
109
|
+
*/
|
|
110
|
+
function buildWorkflow(skillId, skillName, stepLines, instructions) {
|
|
111
|
+
if (stepLines.length < 2)
|
|
112
|
+
return undefined;
|
|
113
|
+
const steps = stepLines.map((line, idx) => {
|
|
114
|
+
const clean = line
|
|
115
|
+
.replace(NUMBERED_STEP_RE, '')
|
|
116
|
+
.replace(TASK_ITEM_RE, '')
|
|
117
|
+
.trim();
|
|
118
|
+
// Pull any backtick tool override from the line
|
|
119
|
+
const toolMatch = /`([a-z_][a-z0-9_-]+)`/.exec(clean);
|
|
120
|
+
const toolName = toolMatch ? toolMatch[1] : inferToolFromText(clean);
|
|
121
|
+
return {
|
|
122
|
+
id: `step-${idx + 1}`,
|
|
123
|
+
name: clean.slice(0, 60),
|
|
124
|
+
tool: toolName,
|
|
125
|
+
params: { instruction: clean },
|
|
126
|
+
continueOnError: false,
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
// Derive triggers from skill name words + action verbs
|
|
130
|
+
const triggers = skillName.toLowerCase().split(/[\s_-]+/).filter(t => t.length > 2);
|
|
131
|
+
return {
|
|
132
|
+
id: `skill-${skillId}`,
|
|
133
|
+
name: skillName,
|
|
134
|
+
description: `Auto-compiled workflow for skill: ${skillName}`,
|
|
135
|
+
triggers,
|
|
136
|
+
steps,
|
|
137
|
+
variables: {
|
|
138
|
+
skillInstructions: instructions,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Strip example blocks and lengthy prose to produce a condensed prompt
|
|
144
|
+
* suitable for basic/small models. Target: ~500 chars.
|
|
145
|
+
*/
|
|
146
|
+
function buildCondensed(instructions) {
|
|
147
|
+
const lines = instructions.split('\n');
|
|
148
|
+
const kept = [];
|
|
149
|
+
let inExample = false;
|
|
150
|
+
let inCodeBlock = false;
|
|
151
|
+
let charCount = 0;
|
|
152
|
+
const LIMIT = 500;
|
|
153
|
+
for (const line of lines) {
|
|
154
|
+
const trimmed = line.trim();
|
|
155
|
+
// Track code blocks
|
|
156
|
+
if (CODE_FENCE_RE.test(trimmed)) {
|
|
157
|
+
inCodeBlock = !inCodeBlock;
|
|
158
|
+
// Skip code block fences and contents in condensed mode
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (inCodeBlock)
|
|
162
|
+
continue;
|
|
163
|
+
// Detect example sections - skip them
|
|
164
|
+
if (EXAMPLE_HEADING_RE.test(trimmed)) {
|
|
165
|
+
inExample = true;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// End example section on next non-empty heading
|
|
169
|
+
if (inExample && HEADING_RE.test(trimmed)) {
|
|
170
|
+
inExample = false;
|
|
171
|
+
}
|
|
172
|
+
if (inExample)
|
|
173
|
+
continue;
|
|
174
|
+
// Skip blank lines to save space
|
|
175
|
+
if (trimmed === '')
|
|
176
|
+
continue;
|
|
177
|
+
// Strip heading markdown for condensed
|
|
178
|
+
const content = trimmed.replace(/^#{1,6}\s+/, '');
|
|
179
|
+
if (charCount + content.length + 1 > LIMIT) {
|
|
180
|
+
if (kept.length > 0) {
|
|
181
|
+
kept.push('...');
|
|
182
|
+
}
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
kept.push(content);
|
|
186
|
+
charCount += content.length + 1;
|
|
187
|
+
}
|
|
188
|
+
return kept.join(' ').trim();
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Strip everything except the body text (remove metadata headings, keep instructions).
|
|
192
|
+
* Preserves full detail for large models.
|
|
193
|
+
*/
|
|
194
|
+
function buildFull(instructions) {
|
|
195
|
+
return instructions.trim();
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Compile a SKILL.md instructions string into a CompiledSkill.
|
|
199
|
+
*/
|
|
200
|
+
export function compileSkill(skillId, skillName, markdown) {
|
|
201
|
+
const stepLines = extractStepLines(markdown);
|
|
202
|
+
const referencedTools = extractToolRefs(markdown);
|
|
203
|
+
const actions = extractActions(stepLines);
|
|
204
|
+
const workflow = buildWorkflow(skillId, skillName, stepLines, markdown);
|
|
205
|
+
const condensed = buildCondensed(markdown);
|
|
206
|
+
const full = buildFull(markdown);
|
|
207
|
+
return {
|
|
208
|
+
skillId,
|
|
209
|
+
skillName,
|
|
210
|
+
rawInstructions: markdown,
|
|
211
|
+
workflow,
|
|
212
|
+
condensed,
|
|
213
|
+
full,
|
|
214
|
+
actions,
|
|
215
|
+
referencedTools,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
// 9.2 - Model-Adaptive Skill Injection
|
|
219
|
+
/**
|
|
220
|
+
* Return the appropriate skill instructions for a given model capability level.
|
|
221
|
+
*
|
|
222
|
+
* - reasoning -> full instructions, no preamble (model can self-direct)
|
|
223
|
+
* - instruction -> full instructions with explicit directive
|
|
224
|
+
* - basic -> condensed instructions; optionally references compiled workflow
|
|
225
|
+
*/
|
|
226
|
+
export function getSkillForModel(compiled, capabilityLevel) {
|
|
227
|
+
switch (capabilityLevel) {
|
|
228
|
+
case 'reasoning':
|
|
229
|
+
return compiled.full;
|
|
230
|
+
case 'instruction':
|
|
231
|
+
return `Follow these steps exactly:\n\n${compiled.full}`;
|
|
232
|
+
case 'basic': {
|
|
233
|
+
let text = compiled.condensed;
|
|
234
|
+
if (compiled.workflow) {
|
|
235
|
+
text += ` Or use the workflow: {{${compiled.workflow.id}}}`;
|
|
236
|
+
}
|
|
237
|
+
return text;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/** In-memory tracking map keyed by "<skillId>:<modelId>" */
|
|
242
|
+
const effectivenessMap = new Map();
|
|
243
|
+
function effectivenessKey(skillId, modelId) {
|
|
244
|
+
return `${skillId}:${modelId}`;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Record the outcome of one skill execution.
|
|
248
|
+
*/
|
|
249
|
+
export function trackSkillUsage(skillId, modelId, success, durationMs) {
|
|
250
|
+
const key = effectivenessKey(skillId, modelId);
|
|
251
|
+
const existing = effectivenessMap.get(key);
|
|
252
|
+
if (existing) {
|
|
253
|
+
const newAttempts = existing.attempts + 1;
|
|
254
|
+
const newSuccesses = existing.successes + (success ? 1 : 0);
|
|
255
|
+
const newFailures = existing.failures + (success ? 0 : 1);
|
|
256
|
+
// Rolling average for duration
|
|
257
|
+
const newAvg = (existing.avgDurationMs * existing.attempts + durationMs) / newAttempts;
|
|
258
|
+
effectivenessMap.set(key, {
|
|
259
|
+
...existing,
|
|
260
|
+
attempts: newAttempts,
|
|
261
|
+
successes: newSuccesses,
|
|
262
|
+
failures: newFailures,
|
|
263
|
+
avgDurationMs: newAvg,
|
|
264
|
+
successRate: newAttempts > 0 ? newSuccesses / newAttempts : 0,
|
|
265
|
+
lastUsed: Date.now(),
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
effectivenessMap.set(key, {
|
|
270
|
+
skillId,
|
|
271
|
+
modelId,
|
|
272
|
+
attempts: 1,
|
|
273
|
+
successes: success ? 1 : 0,
|
|
274
|
+
failures: success ? 0 : 1,
|
|
275
|
+
avgDurationMs: durationMs,
|
|
276
|
+
successRate: success ? 1 : 0,
|
|
277
|
+
lastUsed: Date.now(),
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get effectiveness records for a skill.
|
|
283
|
+
* If `modelId` is provided, returns only that model's record (as a single-item array).
|
|
284
|
+
* If omitted, returns all model records for the skill.
|
|
285
|
+
*/
|
|
286
|
+
export function getSkillEffectiveness(skillId, modelId) {
|
|
287
|
+
if (modelId) {
|
|
288
|
+
const record = effectivenessMap.get(effectivenessKey(skillId, modelId));
|
|
289
|
+
return record ? [record] : [];
|
|
290
|
+
}
|
|
291
|
+
const results = [];
|
|
292
|
+
for (const record of effectivenessMap.values()) {
|
|
293
|
+
if (record.skillId === skillId) {
|
|
294
|
+
results.push(record);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return results;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Return the model with the highest success rate for a given skill.
|
|
301
|
+
* Returns null if no data exists.
|
|
302
|
+
*/
|
|
303
|
+
export function getBestModelForSkill(skillId) {
|
|
304
|
+
const records = getSkillEffectiveness(skillId);
|
|
305
|
+
if (records.length === 0)
|
|
306
|
+
return null;
|
|
307
|
+
let best = records[0];
|
|
308
|
+
for (const record of records) {
|
|
309
|
+
if (record.successRate > best.successRate) {
|
|
310
|
+
best = record;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return { modelId: best.modelId, successRate: best.successRate };
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Return all skills ranked by total usage, with their overall success rate.
|
|
317
|
+
*/
|
|
318
|
+
export function getSkillRanking() {
|
|
319
|
+
// Aggregate per-skill across all models
|
|
320
|
+
const bySkill = new Map();
|
|
321
|
+
for (const record of effectivenessMap.values()) {
|
|
322
|
+
const agg = bySkill.get(record.skillId) ?? { successes: 0, attempts: 0 };
|
|
323
|
+
agg.successes += record.successes;
|
|
324
|
+
agg.attempts += record.attempts;
|
|
325
|
+
bySkill.set(record.skillId, agg);
|
|
326
|
+
}
|
|
327
|
+
const ranking = Array.from(bySkill.entries()).map(([skillId, agg]) => ({
|
|
328
|
+
skillId,
|
|
329
|
+
totalUses: agg.attempts,
|
|
330
|
+
overallSuccessRate: agg.attempts > 0 ? agg.successes / agg.attempts : 0,
|
|
331
|
+
}));
|
|
332
|
+
// Sort descending by total uses, then by success rate
|
|
333
|
+
ranking.sort((a, b) => {
|
|
334
|
+
if (b.totalUses !== a.totalUses)
|
|
335
|
+
return b.totalUses - a.totalUses;
|
|
336
|
+
return b.overallSuccessRate - a.overallSuccessRate;
|
|
337
|
+
});
|
|
338
|
+
return ranking;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Dump the full effectiveness map as a plain object (for persistence on shutdown).
|
|
342
|
+
*/
|
|
343
|
+
export function dumpEffectivenessData() {
|
|
344
|
+
const out = {};
|
|
345
|
+
for (const [key, value] of effectivenessMap.entries()) {
|
|
346
|
+
out[key] = value;
|
|
347
|
+
}
|
|
348
|
+
return out;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Restore previously persisted effectiveness data (e.g. loaded from disk on startup).
|
|
352
|
+
*/
|
|
353
|
+
export function restoreEffectivenessData(data) {
|
|
354
|
+
for (const [key, value] of Object.entries(data)) {
|
|
355
|
+
effectivenessMap.set(key, value);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=compiler.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Frontmatter Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses YAML frontmatter from SKILL.md files.
|
|
5
|
+
* Following OpenClaw's patterns for compatibility.
|
|
6
|
+
*/
|
|
7
|
+
import type { SkillMetadata, SkillInvocationPolicy, SkillEntry, SkillSource } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Raw parsed frontmatter (before type conversion)
|
|
10
|
+
*/
|
|
11
|
+
type ParsedFrontmatter = Record<string, string | undefined>;
|
|
12
|
+
/**
|
|
13
|
+
* Parse YAML frontmatter from markdown content
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseFrontmatter(content: string): ParsedFrontmatter;
|
|
16
|
+
/**
|
|
17
|
+
* Get markdown content after frontmatter
|
|
18
|
+
*/
|
|
19
|
+
export declare function getMarkdownContent(content: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve extended metadata from frontmatter
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveMetadata(raw: ParsedFrontmatter): SkillMetadata | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve skill invocation policy from frontmatter
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveSkillInvocationPolicy(raw: ParsedFrontmatter): SkillInvocationPolicy;
|
|
28
|
+
/**
|
|
29
|
+
* Parse a SKILL.md file into a SkillEntry
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseSkillFile(content: string, filePath: string, baseDir: string, source: SkillSource): SkillEntry | null;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Frontmatter Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses YAML frontmatter from SKILL.md files.
|
|
5
|
+
* Following OpenClaw's patterns for compatibility.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Parse YAML frontmatter from markdown content
|
|
9
|
+
*/
|
|
10
|
+
export function parseFrontmatter(content) {
|
|
11
|
+
const frontmatter = {};
|
|
12
|
+
// Match YAML frontmatter block
|
|
13
|
+
const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
14
|
+
if (!match) {
|
|
15
|
+
return frontmatter;
|
|
16
|
+
}
|
|
17
|
+
const yamlContent = match[1];
|
|
18
|
+
const lines = yamlContent.split(/\r?\n/);
|
|
19
|
+
for (const line of lines) {
|
|
20
|
+
// Skip empty lines and comments
|
|
21
|
+
if (!line.trim() || line.trim().startsWith('#')) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
// Parse key: value pairs (single-line only, following OpenClaw)
|
|
25
|
+
const colonIndex = line.indexOf(':');
|
|
26
|
+
if (colonIndex === -1) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const key = line.slice(0, colonIndex).trim();
|
|
30
|
+
let value = line.slice(colonIndex + 1).trim();
|
|
31
|
+
// Remove surrounding quotes if present
|
|
32
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
33
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
34
|
+
value = value.slice(1, -1);
|
|
35
|
+
}
|
|
36
|
+
frontmatter[key] = value;
|
|
37
|
+
}
|
|
38
|
+
return frontmatter;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get markdown content after frontmatter
|
|
42
|
+
*/
|
|
43
|
+
export function getMarkdownContent(content) {
|
|
44
|
+
const match = content.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n([\s\S]*)$/);
|
|
45
|
+
return match ? match[1].trim() : content.trim();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Normalize string list from various input formats
|
|
49
|
+
*/
|
|
50
|
+
function normalizeStringList(input) {
|
|
51
|
+
if (!input) {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
if (Array.isArray(input)) {
|
|
55
|
+
return input.map((v) => String(v).trim()).filter(Boolean);
|
|
56
|
+
}
|
|
57
|
+
if (typeof input === 'string') {
|
|
58
|
+
return input.split(',').map((v) => v.trim()).filter(Boolean);
|
|
59
|
+
}
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse boolean from string value
|
|
64
|
+
*/
|
|
65
|
+
function parseBooleanValue(value) {
|
|
66
|
+
if (!value)
|
|
67
|
+
return undefined;
|
|
68
|
+
const lower = value.toLowerCase().trim();
|
|
69
|
+
if (lower === 'true' || lower === '1' || lower === 'yes')
|
|
70
|
+
return true;
|
|
71
|
+
if (lower === 'false' || lower === '0' || lower === 'no')
|
|
72
|
+
return false;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parse frontmatter boolean with fallback
|
|
77
|
+
*/
|
|
78
|
+
function parseFrontmatterBool(value, fallback) {
|
|
79
|
+
const parsed = parseBooleanValue(value);
|
|
80
|
+
return parsed === undefined ? fallback : parsed;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Convert raw frontmatter to typed SkillFrontmatter
|
|
84
|
+
*/
|
|
85
|
+
function toSkillFrontmatter(raw) {
|
|
86
|
+
return {
|
|
87
|
+
name: raw['name'] || '',
|
|
88
|
+
description: raw['description'] || '',
|
|
89
|
+
'user-invocable': parseBooleanValue(raw['user-invocable']),
|
|
90
|
+
'disable-model-invocation': parseBooleanValue(raw['disable-model-invocation']),
|
|
91
|
+
'command-dispatch': raw['command-dispatch'],
|
|
92
|
+
'command-tool': raw['command-tool'],
|
|
93
|
+
'command-arg-mode': raw['command-arg-mode'],
|
|
94
|
+
metadata: raw['metadata'],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve extended metadata from frontmatter
|
|
99
|
+
*/
|
|
100
|
+
export function resolveMetadata(raw) {
|
|
101
|
+
const metadataStr = raw['metadata'];
|
|
102
|
+
if (!metadataStr) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
// Parse JSON metadata
|
|
107
|
+
const parsed = JSON.parse(metadataStr);
|
|
108
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
// Support nested profclaw/openclaw key or flat structure
|
|
112
|
+
const metadataObj = (parsed.profclaw || parsed.openclaw || parsed);
|
|
113
|
+
const requiresRaw = typeof metadataObj.requires === 'object' && metadataObj.requires !== null
|
|
114
|
+
? metadataObj.requires
|
|
115
|
+
: undefined;
|
|
116
|
+
const osRaw = normalizeStringList(metadataObj.os);
|
|
117
|
+
return {
|
|
118
|
+
always: typeof metadataObj.always === 'boolean' ? metadataObj.always : undefined,
|
|
119
|
+
skillKey: typeof metadataObj.skillKey === 'string' ? metadataObj.skillKey : undefined,
|
|
120
|
+
primaryEnv: typeof metadataObj.primaryEnv === 'string' ? metadataObj.primaryEnv : undefined,
|
|
121
|
+
emoji: typeof metadataObj.emoji === 'string' ? metadataObj.emoji : undefined,
|
|
122
|
+
homepage: typeof metadataObj.homepage === 'string' ? metadataObj.homepage : undefined,
|
|
123
|
+
os: osRaw.length > 0 ? osRaw : undefined,
|
|
124
|
+
requires: requiresRaw ? {
|
|
125
|
+
bins: normalizeStringList(requiresRaw.bins),
|
|
126
|
+
anyBins: normalizeStringList(requiresRaw.anyBins),
|
|
127
|
+
env: normalizeStringList(requiresRaw.env),
|
|
128
|
+
config: normalizeStringList(requiresRaw.config),
|
|
129
|
+
} : undefined,
|
|
130
|
+
toolCategories: normalizeStringList(metadataObj.tools || metadataObj.toolCategories),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Resolve skill invocation policy from frontmatter
|
|
139
|
+
*/
|
|
140
|
+
export function resolveSkillInvocationPolicy(raw) {
|
|
141
|
+
return {
|
|
142
|
+
userInvocable: parseFrontmatterBool(raw['user-invocable'], true),
|
|
143
|
+
modelInvocable: !parseFrontmatterBool(raw['disable-model-invocation'], false),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Parse a SKILL.md file into a SkillEntry
|
|
148
|
+
*/
|
|
149
|
+
export function parseSkillFile(content, filePath, baseDir, source) {
|
|
150
|
+
const raw = parseFrontmatter(content);
|
|
151
|
+
// Name is required
|
|
152
|
+
const name = raw['name'];
|
|
153
|
+
if (!name) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
const frontmatter = toSkillFrontmatter(raw);
|
|
157
|
+
const metadata = resolveMetadata(raw);
|
|
158
|
+
const invocation = resolveSkillInvocationPolicy(raw);
|
|
159
|
+
const instructions = getMarkdownContent(content);
|
|
160
|
+
return {
|
|
161
|
+
name,
|
|
162
|
+
description: frontmatter.description || name,
|
|
163
|
+
source,
|
|
164
|
+
dirPath: baseDir,
|
|
165
|
+
skillMdPath: filePath,
|
|
166
|
+
frontmatter,
|
|
167
|
+
metadata,
|
|
168
|
+
instructions,
|
|
169
|
+
invocation,
|
|
170
|
+
eligible: true, // Will be computed by loader
|
|
171
|
+
eligibilityErrors: [],
|
|
172
|
+
enabled: true, // Will be computed by config
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=frontmatter.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills System
|
|
3
|
+
*
|
|
4
|
+
* Dynamic knowledge system for teaching AI about available capabilities.
|
|
5
|
+
* Following OpenClaw's proven patterns.
|
|
6
|
+
*
|
|
7
|
+
* Skills are Markdown files (SKILL.md) that teach the AI:
|
|
8
|
+
* - What tools are available
|
|
9
|
+
* - How to use them
|
|
10
|
+
* - Best practices and workflows
|
|
11
|
+
*
|
|
12
|
+
* This enables dynamic capability extension without hardcoding every tool.
|
|
13
|
+
*/
|
|
14
|
+
export * from './types.js';
|
|
15
|
+
export { parseFrontmatter, getMarkdownContent, resolveMetadata, resolveSkillInvocationPolicy, parseSkillFile, } from './frontmatter.js';
|
|
16
|
+
export { loadAllSkills, filterSkills, parseSkillMd, checkEligibility, hasBinary, clearBinaryCache, buildSkillSnapshotSync, buildSkillsStatus, applySkillEnvOverrides, } from './loader.js';
|
|
17
|
+
export { formatSkillsForPrompt, buildSkillSnapshot, buildSkillsPrompt, resolveSkillsPromptForRun, getSkillFromSnapshot, estimateSkillsTokenCost, } from './prompt-builder.js';
|
|
18
|
+
export { SkillsRegistry, getSkillsRegistry, initializeSkillsRegistry, type MCPServerInfo, } from './registry.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills System
|
|
3
|
+
*
|
|
4
|
+
* Dynamic knowledge system for teaching AI about available capabilities.
|
|
5
|
+
* Following OpenClaw's proven patterns.
|
|
6
|
+
*
|
|
7
|
+
* Skills are Markdown files (SKILL.md) that teach the AI:
|
|
8
|
+
* - What tools are available
|
|
9
|
+
* - How to use them
|
|
10
|
+
* - Best practices and workflows
|
|
11
|
+
*
|
|
12
|
+
* This enables dynamic capability extension without hardcoding every tool.
|
|
13
|
+
*/
|
|
14
|
+
// Types
|
|
15
|
+
export * from './types.js';
|
|
16
|
+
// Frontmatter parsing
|
|
17
|
+
export { parseFrontmatter, getMarkdownContent, resolveMetadata, resolveSkillInvocationPolicy, parseSkillFile, } from './frontmatter.js';
|
|
18
|
+
// Skill loading
|
|
19
|
+
export { loadAllSkills, filterSkills, parseSkillMd, checkEligibility, hasBinary, clearBinaryCache, buildSkillSnapshotSync, buildSkillsStatus, applySkillEnvOverrides, } from './loader.js';
|
|
20
|
+
// Prompt building
|
|
21
|
+
export { formatSkillsForPrompt, buildSkillSnapshot, buildSkillsPrompt, resolveSkillsPromptForRun, getSkillFromSnapshot, estimateSkillsTokenCost, } from './prompt-builder.js';
|
|
22
|
+
// Registry
|
|
23
|
+
export { SkillsRegistry, getSkillsRegistry, initializeSkillsRegistry, } from './registry.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Installer
|
|
3
|
+
*
|
|
4
|
+
* Installs missing dependencies for skills (binaries, packages).
|
|
5
|
+
* Supports brew, npm/pnpm, go, pip, and direct downloads.
|
|
6
|
+
*/
|
|
7
|
+
import type { SkillInstallSpec, SkillsSystemConfig } from './types.js';
|
|
8
|
+
export interface InstallResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
spec: SkillInstallSpec;
|
|
11
|
+
message: string;
|
|
12
|
+
duration: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Install a dependency from a spec
|
|
16
|
+
*/
|
|
17
|
+
export declare function installDependency(spec: SkillInstallSpec, config: SkillsSystemConfig, timeoutMs?: number): Promise<InstallResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Install all missing dependencies for a skill
|
|
20
|
+
*/
|
|
21
|
+
export declare function installSkillDependencies(installSpecs: SkillInstallSpec[], config: SkillsSystemConfig): Promise<InstallResult[]>;
|
|
22
|
+
//# sourceMappingURL=installer.d.ts.map
|