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.
Files changed (942) hide show
  1. package/.env.example +215 -0
  2. package/CHANGELOG.md +49 -0
  3. package/CONTRIBUTING.md +119 -0
  4. package/Dockerfile +107 -0
  5. package/LICENSE +661 -0
  6. package/README.md +196 -0
  7. package/config/agents.yml +55 -0
  8. package/config/budget.yml +15 -0
  9. package/config/pricing.yml +46 -0
  10. package/config/settings.yml +168 -0
  11. package/dist/adapters/claude-code.d.ts +46 -0
  12. package/dist/adapters/claude-code.js +215 -0
  13. package/dist/adapters/index.d.ts +4 -0
  14. package/dist/adapters/index.js +4 -0
  15. package/dist/adapters/ollama.d.ts +45 -0
  16. package/dist/adapters/ollama.js +277 -0
  17. package/dist/adapters/openclaw.d.ts +60 -0
  18. package/dist/adapters/openclaw.js +289 -0
  19. package/dist/adapters/registry.d.ts +56 -0
  20. package/dist/adapters/registry.js +163 -0
  21. package/dist/agents/executor.d.ts +78 -0
  22. package/dist/agents/executor.js +657 -0
  23. package/dist/agents/index.d.ts +10 -0
  24. package/dist/agents/index.js +27 -0
  25. package/dist/agents/stop-conditions.d.ts +108 -0
  26. package/dist/agents/stop-conditions.js +299 -0
  27. package/dist/agents/types.d.ts +185 -0
  28. package/dist/agents/types.js +14 -0
  29. package/dist/ai/embedding-service.d.ts +96 -0
  30. package/dist/ai/embedding-service.js +333 -0
  31. package/dist/auth/api-tokens.d.ts +71 -0
  32. package/dist/auth/api-tokens.js +235 -0
  33. package/dist/auth/auth-service.d.ts +75 -0
  34. package/dist/auth/auth-service.js +557 -0
  35. package/dist/auth/device-identity.d.ts +96 -0
  36. package/dist/auth/device-identity.js +250 -0
  37. package/dist/auth/github-oauth.d.ts +20 -0
  38. package/dist/auth/github-oauth.js +59 -0
  39. package/dist/auth/jira-oauth.d.ts +25 -0
  40. package/dist/auth/jira-oauth.js +75 -0
  41. package/dist/auth/linear-oauth.d.ts +21 -0
  42. package/dist/auth/linear-oauth.js +59 -0
  43. package/dist/auth/middleware.d.ts +44 -0
  44. package/dist/auth/middleware.js +190 -0
  45. package/dist/auth/pairing-codes.d.ts +109 -0
  46. package/dist/auth/pairing-codes.js +274 -0
  47. package/dist/auth/password.d.ts +53 -0
  48. package/dist/auth/password.js +126 -0
  49. package/dist/auth/qr-pairing.d.ts +36 -0
  50. package/dist/auth/qr-pairing.js +138 -0
  51. package/dist/auth/slack-oauth.d.ts +31 -0
  52. package/dist/auth/slack-oauth.js +80 -0
  53. package/dist/backup/index.d.ts +50 -0
  54. package/dist/backup/index.js +184 -0
  55. package/dist/browser/adapters.d.ts +25 -0
  56. package/dist/browser/adapters.js +32 -0
  57. package/dist/browser/cli.d.ts +19 -0
  58. package/dist/browser/cli.js +277 -0
  59. package/dist/browser/compression.d.ts +32 -0
  60. package/dist/browser/compression.js +269 -0
  61. package/dist/browser/extensions.d.ts +144 -0
  62. package/dist/browser/extensions.js +251 -0
  63. package/dist/browser/index.d.ts +37 -0
  64. package/dist/browser/index.js +43 -0
  65. package/dist/browser/refs.d.ts +46 -0
  66. package/dist/browser/refs.js +120 -0
  67. package/dist/browser/search.d.ts +36 -0
  68. package/dist/browser/search.js +193 -0
  69. package/dist/browser/service.d.ts +94 -0
  70. package/dist/browser/service.js +358 -0
  71. package/dist/browser/snapshot.d.ts +19 -0
  72. package/dist/browser/snapshot.js +250 -0
  73. package/dist/browser/tools.d.ts +259 -0
  74. package/dist/browser/tools.js +463 -0
  75. package/dist/browser/types.d.ts +134 -0
  76. package/dist/browser/types.js +17 -0
  77. package/dist/chat/agentic-executor.d.ts +108 -0
  78. package/dist/chat/agentic-executor.js +739 -0
  79. package/dist/chat/api-key-detector.d.ts +41 -0
  80. package/dist/chat/api-key-detector.js +290 -0
  81. package/dist/chat/auto-reply.d.ts +90 -0
  82. package/dist/chat/auto-reply.js +272 -0
  83. package/dist/chat/conversations.d.ts +91 -0
  84. package/dist/chat/conversations.js +297 -0
  85. package/dist/chat/execution/audit.d.ts +192 -0
  86. package/dist/chat/execution/audit.js +323 -0
  87. package/dist/chat/execution/executor.d.ts +56 -0
  88. package/dist/chat/execution/executor.js +654 -0
  89. package/dist/chat/execution/guardrails.d.ts +98 -0
  90. package/dist/chat/execution/guardrails.js +571 -0
  91. package/dist/chat/execution/index.d.ts +61 -0
  92. package/dist/chat/execution/index.js +129 -0
  93. package/dist/chat/execution/model-capability.d.ts +34 -0
  94. package/dist/chat/execution/model-capability.js +96 -0
  95. package/dist/chat/execution/process-pool.d.ts +110 -0
  96. package/dist/chat/execution/process-pool.js +290 -0
  97. package/dist/chat/execution/pty.d.ts +92 -0
  98. package/dist/chat/execution/pty.js +285 -0
  99. package/dist/chat/execution/rate-limiter.d.ts +87 -0
  100. package/dist/chat/execution/rate-limiter.js +305 -0
  101. package/dist/chat/execution/registry.d.ts +54 -0
  102. package/dist/chat/execution/registry.js +220 -0
  103. package/dist/chat/execution/sandbox.d.ts +109 -0
  104. package/dist/chat/execution/sandbox.js +684 -0
  105. package/dist/chat/execution/secrets.d.ts +45 -0
  106. package/dist/chat/execution/secrets.js +338 -0
  107. package/dist/chat/execution/security.d.ts +179 -0
  108. package/dist/chat/execution/security.js +739 -0
  109. package/dist/chat/execution/self-correction.d.ts +162 -0
  110. package/dist/chat/execution/self-correction.js +557 -0
  111. package/dist/chat/execution/session-manager.d.ts +79 -0
  112. package/dist/chat/execution/session-manager.js +356 -0
  113. package/dist/chat/execution/session-spawn/config.d.ts +37 -0
  114. package/dist/chat/execution/session-spawn/config.js +83 -0
  115. package/dist/chat/execution/session-spawn/index.d.ts +10 -0
  116. package/dist/chat/execution/session-spawn/index.js +10 -0
  117. package/dist/chat/execution/session-spawn/manager.d.ts +35 -0
  118. package/dist/chat/execution/session-spawn/manager.js +418 -0
  119. package/dist/chat/execution/session-spawn/types.d.ts +117 -0
  120. package/dist/chat/execution/session-spawn/types.js +16 -0
  121. package/dist/chat/execution/smart-prompts.d.ts +34 -0
  122. package/dist/chat/execution/smart-prompts.js +151 -0
  123. package/dist/chat/execution/stream-results.d.ts +65 -0
  124. package/dist/chat/execution/stream-results.js +156 -0
  125. package/dist/chat/execution/tool-router.d.ts +76 -0
  126. package/dist/chat/execution/tool-router.js +296 -0
  127. package/dist/chat/execution/tools/agents-list.d.ts +49 -0
  128. package/dist/chat/execution/tools/agents-list.js +165 -0
  129. package/dist/chat/execution/tools/browser.d.ts +12 -0
  130. package/dist/chat/execution/tools/browser.js +14 -0
  131. package/dist/chat/execution/tools/canvas.d.ts +61 -0
  132. package/dist/chat/execution/tools/canvas.js +150 -0
  133. package/dist/chat/execution/tools/complete-task.d.ts +72 -0
  134. package/dist/chat/execution/tools/complete-task.js +104 -0
  135. package/dist/chat/execution/tools/cron-tool.d.ts +204 -0
  136. package/dist/chat/execution/tools/cron-tool.js +680 -0
  137. package/dist/chat/execution/tools/discord-actions.d.ts +120 -0
  138. package/dist/chat/execution/tools/discord-actions.js +361 -0
  139. package/dist/chat/execution/tools/exec.d.ts +43 -0
  140. package/dist/chat/execution/tools/exec.js +223 -0
  141. package/dist/chat/execution/tools/file-ops.d.ts +175 -0
  142. package/dist/chat/execution/tools/file-ops.js +723 -0
  143. package/dist/chat/execution/tools/git.d.ts +143 -0
  144. package/dist/chat/execution/tools/git.js +395 -0
  145. package/dist/chat/execution/tools/github.d.ts +42 -0
  146. package/dist/chat/execution/tools/github.js +184 -0
  147. package/dist/chat/execution/tools/glinr-ops.d.ts +202 -0
  148. package/dist/chat/execution/tools/glinr-ops.js +694 -0
  149. package/dist/chat/execution/tools/image-analyze.d.ts +29 -0
  150. package/dist/chat/execution/tools/image-analyze.js +127 -0
  151. package/dist/chat/execution/tools/index.d.ts +64 -0
  152. package/dist/chat/execution/tools/index.js +245 -0
  153. package/dist/chat/execution/tools/integrations.d.ts +109 -0
  154. package/dist/chat/execution/tools/integrations.js +237 -0
  155. package/dist/chat/execution/tools/link-understand.d.ts +34 -0
  156. package/dist/chat/execution/tools/link-understand.js +307 -0
  157. package/dist/chat/execution/tools/maintenance.d.ts +29 -0
  158. package/dist/chat/execution/tools/maintenance.js +105 -0
  159. package/dist/chat/execution/tools/memory-tools.d.ts +76 -0
  160. package/dist/chat/execution/tools/memory-tools.js +278 -0
  161. package/dist/chat/execution/tools/openai-image-gen.d.ts +51 -0
  162. package/dist/chat/execution/tools/openai-image-gen.js +212 -0
  163. package/dist/chat/execution/tools/profclaw-ops.d.ts +204 -0
  164. package/dist/chat/execution/tools/profclaw-ops.js +665 -0
  165. package/dist/chat/execution/tools/session-spawn.d.ts +146 -0
  166. package/dist/chat/execution/tools/session-spawn.js +544 -0
  167. package/dist/chat/execution/tools/session-status.d.ts +38 -0
  168. package/dist/chat/execution/tools/session-status.js +185 -0
  169. package/dist/chat/execution/tools/sessions-list.d.ts +49 -0
  170. package/dist/chat/execution/tools/sessions-list.js +153 -0
  171. package/dist/chat/execution/tools/sessions-send.d.ts +48 -0
  172. package/dist/chat/execution/tools/sessions-send.js +207 -0
  173. package/dist/chat/execution/tools/sessions-spawn.d.ts +51 -0
  174. package/dist/chat/execution/tools/sessions-spawn.js +137 -0
  175. package/dist/chat/execution/tools/slack-actions.d.ts +90 -0
  176. package/dist/chat/execution/tools/slack-actions.js +272 -0
  177. package/dist/chat/execution/tools/subagent-orchestrate.d.ts +66 -0
  178. package/dist/chat/execution/tools/subagent-orchestrate.js +313 -0
  179. package/dist/chat/execution/tools/system.d.ts +121 -0
  180. package/dist/chat/execution/tools/system.js +415 -0
  181. package/dist/chat/execution/tools/telegram-actions.d.ts +126 -0
  182. package/dist/chat/execution/tools/telegram-actions.js +339 -0
  183. package/dist/chat/execution/tools/test-run.d.ts +43 -0
  184. package/dist/chat/execution/tools/test-run.js +391 -0
  185. package/dist/chat/execution/tools/tts-speak.d.ts +39 -0
  186. package/dist/chat/execution/tools/tts-speak.js +199 -0
  187. package/dist/chat/execution/tools/web-fetch.d.ts +42 -0
  188. package/dist/chat/execution/tools/web-fetch.js +247 -0
  189. package/dist/chat/execution/tools/web-search.d.ts +53 -0
  190. package/dist/chat/execution/tools/web-search.js +130 -0
  191. package/dist/chat/execution/types.d.ts +337 -0
  192. package/dist/chat/execution/types.js +8 -0
  193. package/dist/chat/execution/workflows/built-in.d.ts +10 -0
  194. package/dist/chat/execution/workflows/built-in.js +249 -0
  195. package/dist/chat/execution/workflows/executor.d.ts +13 -0
  196. package/dist/chat/execution/workflows/executor.js +259 -0
  197. package/dist/chat/execution/workflows/index.d.ts +5 -0
  198. package/dist/chat/execution/workflows/index.js +5 -0
  199. package/dist/chat/execution/workflows/trigger.d.ts +15 -0
  200. package/dist/chat/execution/workflows/trigger.js +111 -0
  201. package/dist/chat/execution/workflows/types.d.ts +80 -0
  202. package/dist/chat/execution/workflows/types.js +2 -0
  203. package/dist/chat/failover/error.d.ts +73 -0
  204. package/dist/chat/failover/error.js +412 -0
  205. package/dist/chat/failover/index.d.ts +10 -0
  206. package/dist/chat/failover/index.js +11 -0
  207. package/dist/chat/failover/model-fallback.d.ts +97 -0
  208. package/dist/chat/failover/model-fallback.js +328 -0
  209. package/dist/chat/failover/types.d.ts +47 -0
  210. package/dist/chat/failover/types.js +8 -0
  211. package/dist/chat/format/chunk.d.ts +59 -0
  212. package/dist/chat/format/chunk.js +253 -0
  213. package/dist/chat/format/index.d.ts +7 -0
  214. package/dist/chat/format/index.js +7 -0
  215. package/dist/chat/format/tool-result-formatter.d.ts +30 -0
  216. package/dist/chat/format/tool-result-formatter.js +177 -0
  217. package/dist/chat/group.d.ts +232 -0
  218. package/dist/chat/group.js +311 -0
  219. package/dist/chat/index.d.ts +21 -0
  220. package/dist/chat/index.js +30 -0
  221. package/dist/chat/memory.d.ts +108 -0
  222. package/dist/chat/memory.js +343 -0
  223. package/dist/chat/message-handler.d.ts +38 -0
  224. package/dist/chat/message-handler.js +274 -0
  225. package/dist/chat/proactive/index.d.ts +167 -0
  226. package/dist/chat/proactive/index.js +721 -0
  227. package/dist/chat/prompt-adapter.d.ts +52 -0
  228. package/dist/chat/prompt-adapter.js +245 -0
  229. package/dist/chat/providers/dingtalk/index.d.ts +69 -0
  230. package/dist/chat/providers/dingtalk/index.js +225 -0
  231. package/dist/chat/providers/discord/index.d.ts +264 -0
  232. package/dist/chat/providers/discord/index.js +657 -0
  233. package/dist/chat/providers/feishu/index.d.ts +97 -0
  234. package/dist/chat/providers/feishu/index.js +362 -0
  235. package/dist/chat/providers/googlechat/index.d.ts +269 -0
  236. package/dist/chat/providers/googlechat/index.js +634 -0
  237. package/dist/chat/providers/imessage/index.d.ts +61 -0
  238. package/dist/chat/providers/imessage/index.js +166 -0
  239. package/dist/chat/providers/index.d.ts +76 -0
  240. package/dist/chat/providers/index.js +430 -0
  241. package/dist/chat/providers/irc/index.d.ts +101 -0
  242. package/dist/chat/providers/irc/index.js +557 -0
  243. package/dist/chat/providers/line/index.d.ts +113 -0
  244. package/dist/chat/providers/line/index.js +434 -0
  245. package/dist/chat/providers/matrix/index.d.ts +161 -0
  246. package/dist/chat/providers/matrix/index.js +559 -0
  247. package/dist/chat/providers/mattermost/index.d.ts +106 -0
  248. package/dist/chat/providers/mattermost/index.js +425 -0
  249. package/dist/chat/providers/msteams/index.d.ts +198 -0
  250. package/dist/chat/providers/msteams/index.js +694 -0
  251. package/dist/chat/providers/nextcloud/index.d.ts +52 -0
  252. package/dist/chat/providers/nextcloud/index.js +156 -0
  253. package/dist/chat/providers/nostr/index.d.ts +60 -0
  254. package/dist/chat/providers/nostr/index.js +200 -0
  255. package/dist/chat/providers/qq/index.d.ts +57 -0
  256. package/dist/chat/providers/qq/index.js +260 -0
  257. package/dist/chat/providers/registry.d.ts +89 -0
  258. package/dist/chat/providers/registry.js +213 -0
  259. package/dist/chat/providers/signal/index.d.ts +88 -0
  260. package/dist/chat/providers/signal/index.js +357 -0
  261. package/dist/chat/providers/slack/index.d.ts +52 -0
  262. package/dist/chat/providers/slack/index.js +477 -0
  263. package/dist/chat/providers/synology/index.d.ts +50 -0
  264. package/dist/chat/providers/synology/index.js +138 -0
  265. package/dist/chat/providers/telegram/index.d.ts +148 -0
  266. package/dist/chat/providers/telegram/index.js +492 -0
  267. package/dist/chat/providers/tlon/index.d.ts +44 -0
  268. package/dist/chat/providers/tlon/index.js +243 -0
  269. package/dist/chat/providers/twitch/index.d.ts +79 -0
  270. package/dist/chat/providers/twitch/index.js +349 -0
  271. package/dist/chat/providers/types.d.ts +437 -0
  272. package/dist/chat/providers/types.js +14 -0
  273. package/dist/chat/providers/webchat/index.d.ts +38 -0
  274. package/dist/chat/providers/webchat/index.js +214 -0
  275. package/dist/chat/providers/wecom/index.d.ts +62 -0
  276. package/dist/chat/providers/wecom/index.js +228 -0
  277. package/dist/chat/providers/whatsapp/index.d.ts +147 -0
  278. package/dist/chat/providers/whatsapp/index.js +396 -0
  279. package/dist/chat/providers/zalo/index.d.ts +54 -0
  280. package/dist/chat/providers/zalo/index.js +158 -0
  281. package/dist/chat/providers/zalo-personal/index.d.ts +53 -0
  282. package/dist/chat/providers/zalo-personal/index.js +212 -0
  283. package/dist/chat/skills.d.ts +82 -0
  284. package/dist/chat/skills.js +410 -0
  285. package/dist/chat/system-prompts.d.ts +76 -0
  286. package/dist/chat/system-prompts.js +407 -0
  287. package/dist/chat/tool-handler.d.ts +57 -0
  288. package/dist/chat/tool-handler.js +336 -0
  289. package/dist/chat/tools.d.ts +373 -0
  290. package/dist/chat/tools.js +512 -0
  291. package/dist/cli/commands/agent.d.ts +3 -0
  292. package/dist/cli/commands/agent.js +108 -0
  293. package/dist/cli/commands/auth.d.ts +12 -0
  294. package/dist/cli/commands/auth.js +301 -0
  295. package/dist/cli/commands/browser.d.ts +3 -0
  296. package/dist/cli/commands/browser.js +138 -0
  297. package/dist/cli/commands/canvas.d.ts +3 -0
  298. package/dist/cli/commands/canvas.js +155 -0
  299. package/dist/cli/commands/channels.d.ts +3 -0
  300. package/dist/cli/commands/channels.js +167 -0
  301. package/dist/cli/commands/chat.d.ts +9 -0
  302. package/dist/cli/commands/chat.js +360 -0
  303. package/dist/cli/commands/completion.d.ts +3 -0
  304. package/dist/cli/commands/completion.js +170 -0
  305. package/dist/cli/commands/config.d.ts +3 -0
  306. package/dist/cli/commands/config.js +193 -0
  307. package/dist/cli/commands/cost.d.ts +3 -0
  308. package/dist/cli/commands/cost.js +134 -0
  309. package/dist/cli/commands/daemon.d.ts +3 -0
  310. package/dist/cli/commands/daemon.js +381 -0
  311. package/dist/cli/commands/devices.d.ts +3 -0
  312. package/dist/cli/commands/devices.js +150 -0
  313. package/dist/cli/commands/doctor.d.ts +3 -0
  314. package/dist/cli/commands/doctor.js +295 -0
  315. package/dist/cli/commands/logs.d.ts +3 -0
  316. package/dist/cli/commands/logs.js +139 -0
  317. package/dist/cli/commands/mcp.d.ts +15 -0
  318. package/dist/cli/commands/mcp.js +157 -0
  319. package/dist/cli/commands/memory.d.ts +3 -0
  320. package/dist/cli/commands/memory.js +170 -0
  321. package/dist/cli/commands/models.d.ts +3 -0
  322. package/dist/cli/commands/models.js +197 -0
  323. package/dist/cli/commands/nodes.d.ts +3 -0
  324. package/dist/cli/commands/nodes.js +193 -0
  325. package/dist/cli/commands/onboard.d.ts +13 -0
  326. package/dist/cli/commands/onboard.js +360 -0
  327. package/dist/cli/commands/plugin.d.ts +15 -0
  328. package/dist/cli/commands/plugin.js +226 -0
  329. package/dist/cli/commands/provider.d.ts +16 -0
  330. package/dist/cli/commands/provider.js +320 -0
  331. package/dist/cli/commands/security.d.ts +3 -0
  332. package/dist/cli/commands/security.js +180 -0
  333. package/dist/cli/commands/serve.d.ts +3 -0
  334. package/dist/cli/commands/serve.js +179 -0
  335. package/dist/cli/commands/session.d.ts +3 -0
  336. package/dist/cli/commands/session.js +172 -0
  337. package/dist/cli/commands/setup.d.ts +13 -0
  338. package/dist/cli/commands/setup.js +636 -0
  339. package/dist/cli/commands/skill.d.ts +15 -0
  340. package/dist/cli/commands/skill.js +191 -0
  341. package/dist/cli/commands/status.d.ts +3 -0
  342. package/dist/cli/commands/status.js +71 -0
  343. package/dist/cli/commands/summary.d.ts +3 -0
  344. package/dist/cli/commands/summary.js +160 -0
  345. package/dist/cli/commands/task.d.ts +3 -0
  346. package/dist/cli/commands/task.js +170 -0
  347. package/dist/cli/commands/ticket.d.ts +3 -0
  348. package/dist/cli/commands/ticket.js +421 -0
  349. package/dist/cli/commands/tools.d.ts +9 -0
  350. package/dist/cli/commands/tools.js +508 -0
  351. package/dist/cli/commands/tui.d.ts +3 -0
  352. package/dist/cli/commands/tui.js +158 -0
  353. package/dist/cli/commands/tunnel.d.ts +3 -0
  354. package/dist/cli/commands/tunnel.js +135 -0
  355. package/dist/cli/commands/webhooks.d.ts +3 -0
  356. package/dist/cli/commands/webhooks.js +191 -0
  357. package/dist/cli/index.d.ts +3 -0
  358. package/dist/cli/index.js +127 -0
  359. package/dist/cli/utils/api.d.ts +17 -0
  360. package/dist/cli/utils/api.js +63 -0
  361. package/dist/cli/utils/config.d.ts +31 -0
  362. package/dist/cli/utils/config.js +81 -0
  363. package/dist/cli/utils/output.d.ts +58 -0
  364. package/dist/cli/utils/output.js +148 -0
  365. package/dist/core/deployment.d.ts +30 -0
  366. package/dist/core/deployment.js +114 -0
  367. package/dist/core/sandbox-config.d.ts +63 -0
  368. package/dist/core/sandbox-config.js +148 -0
  369. package/dist/costs/budget.d.ts +28 -0
  370. package/dist/costs/budget.js +57 -0
  371. package/dist/costs/persistence.d.ts +77 -0
  372. package/dist/costs/persistence.js +210 -0
  373. package/dist/costs/pricing.d.ts +16 -0
  374. package/dist/costs/pricing.js +39 -0
  375. package/dist/costs/token-tracker.d.ts +34 -0
  376. package/dist/costs/token-tracker.js +141 -0
  377. package/dist/cron/heartbeat.d.ts +23 -0
  378. package/dist/cron/heartbeat.js +109 -0
  379. package/dist/cron/index.d.ts +22 -0
  380. package/dist/cron/index.js +37 -0
  381. package/dist/cron/issue-poller.d.ts +15 -0
  382. package/dist/cron/issue-poller.js +174 -0
  383. package/dist/cron/scheduler.d.ts +315 -0
  384. package/dist/cron/scheduler.js +1008 -0
  385. package/dist/cron/stale-checker.d.ts +16 -0
  386. package/dist/cron/stale-checker.js +61 -0
  387. package/dist/cron/templates.d.ts +107 -0
  388. package/dist/cron/templates.js +395 -0
  389. package/dist/diagnostics/exporters.d.ts +21 -0
  390. package/dist/diagnostics/exporters.js +138 -0
  391. package/dist/diagnostics/index.d.ts +10 -0
  392. package/dist/diagnostics/index.js +9 -0
  393. package/dist/diagnostics/middleware.d.ts +12 -0
  394. package/dist/diagnostics/middleware.js +58 -0
  395. package/dist/diagnostics/tracer.d.ts +133 -0
  396. package/dist/diagnostics/tracer.js +257 -0
  397. package/dist/discovery/index.d.ts +8 -0
  398. package/dist/discovery/index.js +7 -0
  399. package/dist/discovery/mdns.d.ts +40 -0
  400. package/dist/discovery/mdns.js +249 -0
  401. package/dist/gateway/index.d.ts +35 -0
  402. package/dist/gateway/index.js +36 -0
  403. package/dist/gateway/router.d.ts +110 -0
  404. package/dist/gateway/router.js +649 -0
  405. package/dist/gateway/types.d.ts +275 -0
  406. package/dist/gateway/types.js +2 -0
  407. package/dist/gateway/workflows.d.ts +37 -0
  408. package/dist/gateway/workflows.js +748 -0
  409. package/dist/hooks/agent-webhook.d.ts +277 -0
  410. package/dist/hooks/agent-webhook.js +197 -0
  411. package/dist/hooks/index.d.ts +13 -0
  412. package/dist/hooks/index.js +15 -0
  413. package/dist/hooks/prompt-submit.d.ts +45 -0
  414. package/dist/hooks/prompt-submit.js +111 -0
  415. package/dist/hooks/schemas.d.ts +563 -0
  416. package/dist/hooks/schemas.js +108 -0
  417. package/dist/hooks/session-end.d.ts +25 -0
  418. package/dist/hooks/session-end.js +153 -0
  419. package/dist/hooks/tool-use.d.ts +41 -0
  420. package/dist/hooks/tool-use.js +201 -0
  421. package/dist/hooks/types.d.ts +76 -0
  422. package/dist/hooks/types.js +7 -0
  423. package/dist/integrations/cloudflare-tunnel.d.ts +78 -0
  424. package/dist/integrations/cloudflare-tunnel.js +268 -0
  425. package/dist/integrations/github-client.d.ts +27 -0
  426. package/dist/integrations/github-client.js +79 -0
  427. package/dist/integrations/github-projects.d.ts +97 -0
  428. package/dist/integrations/github-projects.js +433 -0
  429. package/dist/integrations/github-ticket-sync.d.ts +82 -0
  430. package/dist/integrations/github-ticket-sync.js +352 -0
  431. package/dist/integrations/github.d.ts +11 -0
  432. package/dist/integrations/github.js +241 -0
  433. package/dist/integrations/jira-client.d.ts +30 -0
  434. package/dist/integrations/jira-client.js +67 -0
  435. package/dist/integrations/jira.d.ts +13 -0
  436. package/dist/integrations/jira.js +108 -0
  437. package/dist/integrations/linear-client.d.ts +23 -0
  438. package/dist/integrations/linear-client.js +52 -0
  439. package/dist/integrations/linear.d.ts +15 -0
  440. package/dist/integrations/linear.js +312 -0
  441. package/dist/integrations/tailscale.d.ts +68 -0
  442. package/dist/integrations/tailscale.js +173 -0
  443. package/dist/integrations/web-search.d.ts +112 -0
  444. package/dist/integrations/web-search.js +287 -0
  445. package/dist/intelligence/index.d.ts +8 -0
  446. package/dist/intelligence/index.js +8 -0
  447. package/dist/intelligence/ollama.d.ts +50 -0
  448. package/dist/intelligence/ollama.js +213 -0
  449. package/dist/intelligence/rules.d.ts +39 -0
  450. package/dist/intelligence/rules.js +308 -0
  451. package/dist/labels/index.d.ts +93 -0
  452. package/dist/labels/index.js +248 -0
  453. package/dist/mcp/browser-tools.d.ts +10 -0
  454. package/dist/mcp/browser-tools.js +16 -0
  455. package/dist/mcp/client.d.ts +54 -0
  456. package/dist/mcp/client.js +153 -0
  457. package/dist/mcp/index.d.ts +12 -0
  458. package/dist/mcp/index.js +13 -0
  459. package/dist/mcp/server.d.ts +40 -0
  460. package/dist/mcp/server.js +826 -0
  461. package/dist/mcp/tool-adapter.d.ts +49 -0
  462. package/dist/mcp/tool-adapter.js +193 -0
  463. package/dist/memory/experience-store.d.ts +121 -0
  464. package/dist/memory/experience-store.js +439 -0
  465. package/dist/memory/index.d.ts +8 -0
  466. package/dist/memory/index.js +25 -0
  467. package/dist/memory/memory-service.d.ts +312 -0
  468. package/dist/memory/memory-service.js +1172 -0
  469. package/dist/memory/memory-watcher.d.ts +116 -0
  470. package/dist/memory/memory-watcher.js +239 -0
  471. package/dist/middleware/logging.d.ts +34 -0
  472. package/dist/middleware/logging.js +184 -0
  473. package/dist/middleware/rate-limit.d.ts +29 -0
  474. package/dist/middleware/rate-limit.js +91 -0
  475. package/dist/notifications/in-app.d.ts +28 -0
  476. package/dist/notifications/in-app.js +53 -0
  477. package/dist/notifications/index.d.ts +3 -0
  478. package/dist/notifications/index.js +3 -0
  479. package/dist/notifications/push.d.ts +74 -0
  480. package/dist/notifications/push.js +175 -0
  481. package/dist/notifications/slack.d.ts +32 -0
  482. package/dist/notifications/slack.js +157 -0
  483. package/dist/plugins/clawhub.d.ts +70 -0
  484. package/dist/plugins/clawhub.js +260 -0
  485. package/dist/plugins/loader.d.ts +23 -0
  486. package/dist/plugins/loader.js +140 -0
  487. package/dist/plugins/marketplace.d.ts +77 -0
  488. package/dist/plugins/marketplace.js +275 -0
  489. package/dist/plugins/registry.d.ts +122 -0
  490. package/dist/plugins/registry.js +352 -0
  491. package/dist/plugins/sandbox.d.ts +77 -0
  492. package/dist/plugins/sandbox.js +287 -0
  493. package/dist/plugins/scaffolder.d.ts +28 -0
  494. package/dist/plugins/scaffolder.js +409 -0
  495. package/dist/plugins/sdk.d.ts +35 -0
  496. package/dist/plugins/sdk.js +8 -0
  497. package/dist/plugins/search/brave.d.ts +9 -0
  498. package/dist/plugins/search/brave.js +157 -0
  499. package/dist/plugins/search/duckduckgo.d.ts +9 -0
  500. package/dist/plugins/search/duckduckgo.js +171 -0
  501. package/dist/plugins/search/index.d.ts +13 -0
  502. package/dist/plugins/search/index.js +23 -0
  503. package/dist/plugins/search/searxng.d.ts +9 -0
  504. package/dist/plugins/search/searxng.js +170 -0
  505. package/dist/plugins/search/serper.d.ts +9 -0
  506. package/dist/plugins/search/serper.js +135 -0
  507. package/dist/plugins/search/tavily.d.ts +9 -0
  508. package/dist/plugins/search/tavily.js +146 -0
  509. package/dist/plugins/types.d.ts +174 -0
  510. package/dist/plugins/types.js +8 -0
  511. package/dist/projects/index.d.ts +133 -0
  512. package/dist/projects/index.js +897 -0
  513. package/dist/projects/types.d.ts +444 -0
  514. package/dist/projects/types.js +207 -0
  515. package/dist/providers/adapters/anthropic.d.ts +26 -0
  516. package/dist/providers/adapters/anthropic.js +306 -0
  517. package/dist/providers/adapters/base.d.ts +53 -0
  518. package/dist/providers/adapters/base.js +99 -0
  519. package/dist/providers/adapters/ollama.d.ts +30 -0
  520. package/dist/providers/adapters/ollama.js +292 -0
  521. package/dist/providers/ai-sdk.d.ts +178 -0
  522. package/dist/providers/ai-sdk.js +1552 -0
  523. package/dist/providers/core/index.d.ts +8 -0
  524. package/dist/providers/core/index.js +10 -0
  525. package/dist/providers/core/models.d.ts +31 -0
  526. package/dist/providers/core/models.js +949 -0
  527. package/dist/providers/core/types.d.ts +117 -0
  528. package/dist/providers/core/types.js +83 -0
  529. package/dist/providers/index.d.ts +7 -0
  530. package/dist/providers/index.js +7 -0
  531. package/dist/providers/registry.d.ts +93 -0
  532. package/dist/providers/registry.js +228 -0
  533. package/dist/providers/schema-utils.d.ts +23 -0
  534. package/dist/providers/schema-utils.js +545 -0
  535. package/dist/providers/types.d.ts +609 -0
  536. package/dist/providers/types.js +279 -0
  537. package/dist/queue/failure-handler.d.ts +93 -0
  538. package/dist/queue/failure-handler.js +379 -0
  539. package/dist/queue/index.d.ts +23 -0
  540. package/dist/queue/index.js +86 -0
  541. package/dist/queue/memory-queue.d.ts +30 -0
  542. package/dist/queue/memory-queue.js +429 -0
  543. package/dist/queue/notifications.d.ts +6 -0
  544. package/dist/queue/notifications.js +128 -0
  545. package/dist/queue/task-queue.d.ts +55 -0
  546. package/dist/queue/task-queue.js +518 -0
  547. package/dist/queue/webhook-queue.d.ts +47 -0
  548. package/dist/queue/webhook-queue.js +158 -0
  549. package/dist/routes/agents.d.ts +4 -0
  550. package/dist/routes/agents.js +45 -0
  551. package/dist/routes/auth.d.ts +19 -0
  552. package/dist/routes/auth.js +492 -0
  553. package/dist/routes/backup.d.ts +6 -0
  554. package/dist/routes/backup.js +71 -0
  555. package/dist/routes/chat.d.ts +10 -0
  556. package/dist/routes/chat.js +1678 -0
  557. package/dist/routes/clawhub.d.ts +8 -0
  558. package/dist/routes/clawhub.js +89 -0
  559. package/dist/routes/costs.d.ts +4 -0
  560. package/dist/routes/costs.js +78 -0
  561. package/dist/routes/cron.d.ts +11 -0
  562. package/dist/routes/cron.js +708 -0
  563. package/dist/routes/devices.d.ts +9 -0
  564. package/dist/routes/devices.js +490 -0
  565. package/dist/routes/discord.d.ts +15 -0
  566. package/dist/routes/discord.js +524 -0
  567. package/dist/routes/dlq.d.ts +4 -0
  568. package/dist/routes/dlq.js +64 -0
  569. package/dist/routes/gateway.d.ts +4 -0
  570. package/dist/routes/gateway.js +253 -0
  571. package/dist/routes/health.d.ts +29 -0
  572. package/dist/routes/health.js +296 -0
  573. package/dist/routes/hooks.d.ts +4 -0
  574. package/dist/routes/hooks.js +170 -0
  575. package/dist/routes/import.d.ts +9 -0
  576. package/dist/routes/import.js +540 -0
  577. package/dist/routes/index.d.ts +38 -0
  578. package/dist/routes/index.js +39 -0
  579. package/dist/routes/integrations.d.ts +10 -0
  580. package/dist/routes/integrations.js +200 -0
  581. package/dist/routes/labels.d.ts +8 -0
  582. package/dist/routes/labels.js +240 -0
  583. package/dist/routes/mcp.d.ts +14 -0
  584. package/dist/routes/mcp.js +125 -0
  585. package/dist/routes/memory.d.ts +10 -0
  586. package/dist/routes/memory.js +622 -0
  587. package/dist/routes/notifications.d.ts +9 -0
  588. package/dist/routes/notifications.js +154 -0
  589. package/dist/routes/oobe.d.ts +10 -0
  590. package/dist/routes/oobe.js +405 -0
  591. package/dist/routes/openapi.d.ts +9 -0
  592. package/dist/routes/openapi.js +537 -0
  593. package/dist/routes/plugins.d.ts +8 -0
  594. package/dist/routes/plugins.js +108 -0
  595. package/dist/routes/projects.d.ts +8 -0
  596. package/dist/routes/projects.js +592 -0
  597. package/dist/routes/push.d.ts +8 -0
  598. package/dist/routes/push.js +75 -0
  599. package/dist/routes/search.d.ts +4 -0
  600. package/dist/routes/search.js +189 -0
  601. package/dist/routes/security.d.ts +10 -0
  602. package/dist/routes/security.js +189 -0
  603. package/dist/routes/settings.d.ts +4 -0
  604. package/dist/routes/settings.js +119 -0
  605. package/dist/routes/setup.d.ts +11 -0
  606. package/dist/routes/setup.js +525 -0
  607. package/dist/routes/skills.d.ts +13 -0
  608. package/dist/routes/skills.js +152 -0
  609. package/dist/routes/slack.d.ts +12 -0
  610. package/dist/routes/slack.js +999 -0
  611. package/dist/routes/states.d.ts +8 -0
  612. package/dist/routes/states.js +123 -0
  613. package/dist/routes/stats.d.ts +6 -0
  614. package/dist/routes/stats.js +369 -0
  615. package/dist/routes/summaries.d.ts +4 -0
  616. package/dist/routes/summaries.js +344 -0
  617. package/dist/routes/sync.d.ts +13 -0
  618. package/dist/routes/sync.js +268 -0
  619. package/dist/routes/tasks.d.ts +4 -0
  620. package/dist/routes/tasks.js +473 -0
  621. package/dist/routes/telegram.d.ts +14 -0
  622. package/dist/routes/telegram.js +420 -0
  623. package/dist/routes/tickets.d.ts +4 -0
  624. package/dist/routes/tickets.js +1090 -0
  625. package/dist/routes/tokens.d.ts +4 -0
  626. package/dist/routes/tokens.js +83 -0
  627. package/dist/routes/tools.d.ts +14 -0
  628. package/dist/routes/tools.js +790 -0
  629. package/dist/routes/tunnels.d.ts +8 -0
  630. package/dist/routes/tunnels.js +145 -0
  631. package/dist/routes/users.d.ts +15 -0
  632. package/dist/routes/users.js +998 -0
  633. package/dist/routes/voice.d.ts +8 -0
  634. package/dist/routes/voice.js +127 -0
  635. package/dist/routes/webchat.d.ts +11 -0
  636. package/dist/routes/webchat.js +173 -0
  637. package/dist/routes/webhook-dedup.d.ts +11 -0
  638. package/dist/routes/webhook-dedup.js +49 -0
  639. package/dist/routes/webhooks.d.ts +4 -0
  640. package/dist/routes/webhooks.js +71 -0
  641. package/dist/routes/whatsapp.d.ts +14 -0
  642. package/dist/routes/whatsapp.js +391 -0
  643. package/dist/security/audit-scanner.d.ts +32 -0
  644. package/dist/security/audit-scanner.js +217 -0
  645. package/dist/security/fs-guard.d.ts +41 -0
  646. package/dist/security/fs-guard.js +206 -0
  647. package/dist/security/prompt-guard.d.ts +47 -0
  648. package/dist/security/prompt-guard.js +198 -0
  649. package/dist/security/ssrf-guard.d.ts +38 -0
  650. package/dist/security/ssrf-guard.js +266 -0
  651. package/dist/security/types.d.ts +92 -0
  652. package/dist/security/types.js +8 -0
  653. package/dist/server/route-loader.d.ts +15 -0
  654. package/dist/server/route-loader.js +135 -0
  655. package/dist/server.d.ts +5 -0
  656. package/dist/server.js +835 -0
  657. package/dist/settings/index.d.ts +841 -0
  658. package/dist/settings/index.js +451 -0
  659. package/dist/skills/compiler.d.ts +83 -0
  660. package/dist/skills/compiler.js +358 -0
  661. package/dist/skills/frontmatter.d.ts +33 -0
  662. package/dist/skills/frontmatter.js +175 -0
  663. package/dist/skills/index.d.ts +19 -0
  664. package/dist/skills/index.js +24 -0
  665. package/dist/skills/installer.d.ts +22 -0
  666. package/dist/skills/installer.js +220 -0
  667. package/dist/skills/loader.d.ts +72 -0
  668. package/dist/skills/loader.js +484 -0
  669. package/dist/skills/prompt-builder.d.ts +48 -0
  670. package/dist/skills/prompt-builder.js +135 -0
  671. package/dist/skills/registry.d.ts +115 -0
  672. package/dist/skills/registry.js +225 -0
  673. package/dist/skills/types.d.ts +202 -0
  674. package/dist/skills/types.js +24 -0
  675. package/dist/states/index.d.ts +64 -0
  676. package/dist/states/index.js +142 -0
  677. package/dist/storage/adapter.d.ts +146 -0
  678. package/dist/storage/adapter.js +2 -0
  679. package/dist/storage/index.d.ts +48 -0
  680. package/dist/storage/index.js +135 -0
  681. package/dist/storage/libsql.d.ts +99 -0
  682. package/dist/storage/libsql.js +1873 -0
  683. package/dist/storage/migrations.d.ts +65 -0
  684. package/dist/storage/migrations.js +289 -0
  685. package/dist/storage/schema.d.ts +10185 -0
  686. package/dist/storage/schema.js +1113 -0
  687. package/dist/summaries/extractor.d.ts +56 -0
  688. package/dist/summaries/extractor.js +377 -0
  689. package/dist/summaries/index.d.ts +13 -0
  690. package/dist/summaries/index.js +14 -0
  691. package/dist/summaries/storage.d.ts +51 -0
  692. package/dist/summaries/storage.js +101 -0
  693. package/dist/summaries/templates.d.ts +68 -0
  694. package/dist/summaries/templates.js +245 -0
  695. package/dist/sync/adapters/base.d.ts +42 -0
  696. package/dist/sync/adapters/base.js +142 -0
  697. package/dist/sync/adapters/github.d.ts +45 -0
  698. package/dist/sync/adapters/github.js +445 -0
  699. package/dist/sync/adapters/linear.d.ts +40 -0
  700. package/dist/sync/adapters/linear.js +434 -0
  701. package/dist/sync/config.d.ts +388 -0
  702. package/dist/sync/config.js +281 -0
  703. package/dist/sync/engine.d.ts +112 -0
  704. package/dist/sync/engine.js +623 -0
  705. package/dist/sync/index.d.ts +31 -0
  706. package/dist/sync/index.js +34 -0
  707. package/dist/sync/integration.d.ts +53 -0
  708. package/dist/sync/integration.js +231 -0
  709. package/dist/sync/types.d.ts +249 -0
  710. package/dist/sync/types.js +30 -0
  711. package/dist/tickets/index.d.ts +139 -0
  712. package/dist/tickets/index.js +1406 -0
  713. package/dist/tickets/types.d.ts +817 -0
  714. package/dist/tickets/types.js +310 -0
  715. package/dist/tools/adapters.d.ts +56 -0
  716. package/dist/tools/adapters.js +183 -0
  717. package/dist/tools/index.d.ts +66 -0
  718. package/dist/tools/index.js +105 -0
  719. package/dist/tools/types.d.ts +117 -0
  720. package/dist/tools/types.js +20 -0
  721. package/dist/types/agent.d.ts +101 -0
  722. package/dist/types/agent.js +2 -0
  723. package/dist/types/errors.d.ts +150 -0
  724. package/dist/types/errors.js +338 -0
  725. package/dist/types/index.d.ts +3 -0
  726. package/dist/types/index.js +3 -0
  727. package/dist/types/summary.d.ts +638 -0
  728. package/dist/types/summary.js +137 -0
  729. package/dist/types/task.d.ts +123 -0
  730. package/dist/types/task.js +46 -0
  731. package/dist/utils/ai-cache.d.ts +72 -0
  732. package/dist/utils/ai-cache.js +204 -0
  733. package/dist/utils/ai-inference.d.ts +57 -0
  734. package/dist/utils/ai-inference.js +190 -0
  735. package/dist/utils/ai-responder.d.ts +44 -0
  736. package/dist/utils/ai-responder.js +272 -0
  737. package/dist/utils/circuit-breaker.d.ts +139 -0
  738. package/dist/utils/circuit-breaker.js +281 -0
  739. package/dist/utils/config-loader.d.ts +12 -0
  740. package/dist/utils/config-loader.js +44 -0
  741. package/dist/utils/crypto.d.ts +10 -0
  742. package/dist/utils/crypto.js +59 -0
  743. package/dist/utils/env-validator.d.ts +44 -0
  744. package/dist/utils/env-validator.js +236 -0
  745. package/dist/utils/file-lock.d.ts +85 -0
  746. package/dist/utils/file-lock.js +204 -0
  747. package/dist/utils/logger.d.ts +153 -0
  748. package/dist/utils/logger.js +282 -0
  749. package/dist/utils/metrics.d.ts +183 -0
  750. package/dist/utils/metrics.js +345 -0
  751. package/dist/utils/security.d.ts +90 -0
  752. package/dist/utils/security.js +347 -0
  753. package/dist/voice/index.d.ts +79 -0
  754. package/dist/voice/index.js +144 -0
  755. package/dist/voice/stt/whisper.d.ts +13 -0
  756. package/dist/voice/stt/whisper.js +116 -0
  757. package/dist/voice/tts/elevenlabs.d.ts +18 -0
  758. package/dist/voice/tts/elevenlabs.js +178 -0
  759. package/dist/voice/tts/openai-tts.d.ts +19 -0
  760. package/dist/voice/tts/openai-tts.js +127 -0
  761. package/dist/voice/tts/system.d.ts +26 -0
  762. package/dist/voice/tts/system.js +146 -0
  763. package/dist/voice/wake-word.d.ts +44 -0
  764. package/dist/voice/wake-word.js +145 -0
  765. package/docker-compose.yml +222 -0
  766. package/package.json +154 -0
  767. package/profclaw.mjs +24 -0
  768. package/skills/1password/SKILL.md +155 -0
  769. package/skills/api-tester/SKILL.md +177 -0
  770. package/skills/apple-notes/SKILL.md +167 -0
  771. package/skills/apple-reminders/SKILL.md +178 -0
  772. package/skills/bear-notes/SKILL.md +166 -0
  773. package/skills/blogwatcher/SKILL.md +177 -0
  774. package/skills/camsnap/SKILL.md +130 -0
  775. package/skills/code-generation/SKILL.md +139 -0
  776. package/skills/code-review/SKILL.md +116 -0
  777. package/skills/coding-agent/SKILL.md +184 -0
  778. package/skills/cron-manager/SKILL.md +141 -0
  779. package/skills/debug-helper/SKILL.md +134 -0
  780. package/skills/docker-ops/SKILL.md +246 -0
  781. package/skills/file-manager/SKILL.md +160 -0
  782. package/skills/git-workflow/SKILL.md +171 -0
  783. package/skills/github-issues/SKILL.md +244 -0
  784. package/skills/gog/SKILL.md +191 -0
  785. package/skills/goplaces/SKILL.md +156 -0
  786. package/skills/healthcheck/SKILL.md +270 -0
  787. package/skills/himalaya/SKILL.md +165 -0
  788. package/skills/mcp-discovery/SKILL.md +109 -0
  789. package/skills/memory-manager/SKILL.md +151 -0
  790. package/skills/model-usage/SKILL.md +177 -0
  791. package/skills/nano-banana-pro/SKILL.md +214 -0
  792. package/skills/nano-pdf/SKILL.md +165 -0
  793. package/skills/notion/SKILL.md +147 -0
  794. package/skills/obsidian/SKILL.md +163 -0
  795. package/skills/openai-image-gen/SKILL.md +194 -0
  796. package/skills/openai-whisper/SKILL.md +98 -0
  797. package/skills/openai-whisper-api/SKILL.md +130 -0
  798. package/skills/openhue/SKILL.md +203 -0
  799. package/skills/oracle/SKILL.md +236 -0
  800. package/skills/phone-control/SKILL.md +201 -0
  801. package/skills/profclaw-assistant/SKILL.md +81 -0
  802. package/skills/profclaw-projects/SKILL.md +68 -0
  803. package/skills/profclaw-tickets/SKILL.md +91 -0
  804. package/skills/session-logs/SKILL.md +216 -0
  805. package/skills/sherpa-onnx-tts/SKILL.md +134 -0
  806. package/skills/skill-creator/SKILL.md +183 -0
  807. package/skills/songsee/SKILL.md +170 -0
  808. package/skills/spotify-player/SKILL.md +254 -0
  809. package/skills/summarize/SKILL.md +155 -0
  810. package/skills/system-admin/SKILL.md +179 -0
  811. package/skills/things-mac/SKILL.md +179 -0
  812. package/skills/tmux/SKILL.md +170 -0
  813. package/skills/trello/SKILL.md +154 -0
  814. package/skills/video-frames/SKILL.md +127 -0
  815. package/skills/weather/SKILL.md +186 -0
  816. package/skills/web-research/SKILL.md +128 -0
  817. package/skills/xurl/SKILL.md +198 -0
  818. package/ui/README.md +73 -0
  819. package/ui/dist/assets/ActivityView-CkPgKhwm.js +1 -0
  820. package/ui/dist/assets/AgentList-C3SVdeEz.js +1 -0
  821. package/ui/dist/assets/AnalyticsDashboard-DVU--vlP.js +1 -0
  822. package/ui/dist/assets/AreaChart-B5qMEGWj.js +1 -0
  823. package/ui/dist/assets/CartesianChart-B50bcUJi.js +36 -0
  824. package/ui/dist/assets/ChatView-BZFJs7w_.js +10 -0
  825. package/ui/dist/assets/CostsDashboard-ChfH8BlG.js +1 -0
  826. package/ui/dist/assets/EstimateSelect-CLpB4NQO.js +1 -0
  827. package/ui/dist/assets/FloatingChatbot-CBzBY9a0.js +2 -0
  828. package/ui/dist/assets/InviteCodeManagement-DsbdPa6W.js +2 -0
  829. package/ui/dist/assets/ProjectDetail-BEM3tFXg.js +2 -0
  830. package/ui/dist/assets/ProjectDetail-D1-0B2xV.css +1 -0
  831. package/ui/dist/assets/ProjectIcon-CN1FmFAk.js +1 -0
  832. package/ui/dist/assets/ProjectList-DSDaNhxQ.js +4 -0
  833. package/ui/dist/assets/Settings-dPVcqC_d.js +6 -0
  834. package/ui/dist/assets/StatusIndicator-DA3NAo_b.js +1 -0
  835. package/ui/dist/assets/SummaryDetail-Bjnf9lT8.js +27 -0
  836. package/ui/dist/assets/SummaryList-ENwKDBKW.js +1 -0
  837. package/ui/dist/assets/TaskDetail-DnwG6MzB.js +1 -0
  838. package/ui/dist/assets/TaskList-D9Ug_HiV.js +1 -0
  839. package/ui/dist/assets/TicketBoard-CviH1571.js +1 -0
  840. package/ui/dist/assets/TicketDetail-8Jk8O-33.js +1 -0
  841. package/ui/dist/assets/TicketList-B-iV4rRA.js +1 -0
  842. package/ui/dist/assets/UserManagement-CPZ8s7s2.js +2 -0
  843. package/ui/dist/assets/ViewSwitcher-BUyOOWDI.js +1 -0
  844. package/ui/dist/assets/alert-dialog-BOmnTkN-.js +7 -0
  845. package/ui/dist/assets/archive-D5my9zOG.js +1 -0
  846. package/ui/dist/assets/badge-B4ov81_m.js +1 -0
  847. package/ui/dist/assets/brain-C53ElFLD.js +1 -0
  848. package/ui/dist/assets/bug-D0TJoCYn.js +1 -0
  849. package/ui/dist/assets/calendar-BkWIhKa1.js +1 -0
  850. package/ui/dist/assets/chevron-up-BRTtndUZ.js +1 -0
  851. package/ui/dist/assets/circle-x-BN89YhbS.js +1 -0
  852. package/ui/dist/assets/constants-fc7TFI7u.js +1 -0
  853. package/ui/dist/assets/cpu-B41x1-vV.js +1 -0
  854. package/ui/dist/assets/database-D9Cnfmzj.js +1 -0
  855. package/ui/dist/assets/defineProperty-CoXUr7_6.js +2 -0
  856. package/ui/dist/assets/dialog-DrWB4EYD.js +1 -0
  857. package/ui/dist/assets/element-adapter-DL0DQilL.js +4 -0
  858. package/ui/dist/assets/ellipsis-NuUWekvu.js +1 -0
  859. package/ui/dist/assets/ellipsis-vertical-BueMfuCw.js +1 -0
  860. package/ui/dist/assets/file-code-HR9829Jc.js +1 -0
  861. package/ui/dist/assets/folder-open-C_7oYEqe.js +1 -0
  862. package/ui/dist/assets/funnel-B5gmNXGf.js +1 -0
  863. package/ui/dist/assets/git-branch-BRMiJmV3.js +1 -0
  864. package/ui/dist/assets/git-commit-horizontal-CXOUQeJI.js +1 -0
  865. package/ui/dist/assets/globe-CCspjvus.js +1 -0
  866. package/ui/dist/assets/hash-g3102kPC.js +1 -0
  867. package/ui/dist/assets/history-CNqcBBrV.js +1 -0
  868. package/ui/dist/assets/index-27mTPKuh.js +1 -0
  869. package/ui/dist/assets/index-BMx3fH-e.js +1 -0
  870. package/ui/dist/assets/index-C9jNQXzL.js +1 -0
  871. package/ui/dist/assets/index-CEZ6R2Uw.js +7 -0
  872. package/ui/dist/assets/index-DURTouJI.js +1 -0
  873. package/ui/dist/assets/index-WclMPci1.css +1 -0
  874. package/ui/dist/assets/index-kb4AJXUB.js +67 -0
  875. package/ui/dist/assets/layers-CLXiHN6o.js +1 -0
  876. package/ui/dist/assets/layout-dashboard-B07MFhBs.js +1 -0
  877. package/ui/dist/assets/lightbulb-B2dgG5ks.js +1 -0
  878. package/ui/dist/assets/link-2-BxNmr9hL.js +1 -0
  879. package/ui/dist/assets/markdown-renderer-CjU6hBcW.js +36 -0
  880. package/ui/dist/assets/message-square-Bf2-CVbt.js +1 -0
  881. package/ui/dist/assets/pencil-D096Ey62.js +1 -0
  882. package/ui/dist/assets/play-DfdcSI3x.js +1 -0
  883. package/ui/dist/assets/popover-BV0QJDQq.js +1 -0
  884. package/ui/dist/assets/progress-DjPEDJfI.js +1 -0
  885. package/ui/dist/assets/rocket-CPsTc-5G.js +1 -0
  886. package/ui/dist/assets/select-LsO16slr.js +1 -0
  887. package/ui/dist/assets/send-BDYBZDUZ.js +1 -0
  888. package/ui/dist/assets/server-B3k6noce.js +1 -0
  889. package/ui/dist/assets/settings-2-Cu4xTjhG.js +1 -0
  890. package/ui/dist/assets/sheet-BScLnPKX.js +1 -0
  891. package/ui/dist/assets/shield-check-CQqkwufI.js +1 -0
  892. package/ui/dist/assets/shield-off-ZFruH9KO.js +1 -0
  893. package/ui/dist/assets/skeleton-CtkIA_MU.js +1 -0
  894. package/ui/dist/assets/smartphone-DnoksVkc.js +1 -0
  895. package/ui/dist/assets/square-uD9ZHMfW.js +1 -0
  896. package/ui/dist/assets/switch-MQPnwGJK.js +1 -0
  897. package/ui/dist/assets/table-B8cqlywA.js +1 -0
  898. package/ui/dist/assets/tag-wEJQRWlV.js +1 -0
  899. package/ui/dist/assets/textarea-D5LJCOGl.js +1 -0
  900. package/ui/dist/assets/timer-mbGHegmr.js +1 -0
  901. package/ui/dist/assets/tooltip-Df1CunSp.js +1 -0
  902. package/ui/dist/assets/trash-2-B4oAXsX-.js +1 -0
  903. package/ui/dist/assets/trending-up-BGWxvlmZ.js +1 -0
  904. package/ui/dist/assets/wand-sparkles-CZy4xvL3.js +1 -0
  905. package/ui/dist/assets/wrench-ByZkjO6m.js +1 -0
  906. package/ui/dist/audio-worklets/vad-processor.js +132 -0
  907. package/ui/dist/brand/profclaw-appicon-192.png +0 -0
  908. package/ui/dist/brand/profclaw-appicon-512.png +0 -0
  909. package/ui/dist/brand/profclaw-appicon-shadow.svg +51 -0
  910. package/ui/dist/brand/profclaw-appicon.svg +50 -0
  911. package/ui/dist/brand/profclaw-favicon-coral-bg-128.png +0 -0
  912. package/ui/dist/brand/profclaw-favicon-coral-bg-64.png +0 -0
  913. package/ui/dist/brand/profclaw-favicon-coral-bg.svg +52 -0
  914. package/ui/dist/brand/profclaw-favicon-coral-body-128.png +0 -0
  915. package/ui/dist/brand/profclaw-favicon-coral-body.svg +41 -0
  916. package/ui/dist/brand/profclaw-favicon-shadow-128.png +0 -0
  917. package/ui/dist/brand/profclaw-favicon-shadow-64.png +0 -0
  918. package/ui/dist/brand/profclaw-favicon-shadow.svg +51 -0
  919. package/ui/dist/brand/profclaw-mark-coral-256.png +0 -0
  920. package/ui/dist/brand/profclaw-mark-coral-64.png +0 -0
  921. package/ui/dist/brand/profclaw-mark-coral.svg +31 -0
  922. package/ui/dist/brand/profclaw-mono-white.svg +18 -0
  923. package/ui/dist/brand/profclaw-text-dark.svg +18 -0
  924. package/ui/dist/brand/profclaw-text-light.svg +18 -0
  925. package/ui/dist/brand/profclaw-wordmark-dark.svg +48 -0
  926. package/ui/dist/brand/profclaw-wordmark-light.svg +48 -0
  927. package/ui/dist/brand/safari-pinned-tab.svg +15 -0
  928. package/ui/dist/favicon/android-chrome-192x192.png +0 -0
  929. package/ui/dist/favicon/android-chrome-384x384.png +0 -0
  930. package/ui/dist/favicon/android-chrome-512x512.png +0 -0
  931. package/ui/dist/favicon/apple-touch-icon.png +0 -0
  932. package/ui/dist/favicon/browserconfig.xml +9 -0
  933. package/ui/dist/favicon/favicon-16x16.png +0 -0
  934. package/ui/dist/favicon/favicon-32x32.png +0 -0
  935. package/ui/dist/favicon/favicon.ico +0 -0
  936. package/ui/dist/favicon/mstile-150x150.png +0 -0
  937. package/ui/dist/favicon/safari-pinned-tab.svg +46 -0
  938. package/ui/dist/favicon/site.webmanifest +22 -0
  939. package/ui/dist/index.html +32 -0
  940. package/ui/dist/manifest.json +49 -0
  941. package/ui/dist/sw.js +124 -0
  942. 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).