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,184 @@
1
+ ---
2
+ name: coding-agent
3
+ description: Delegate coding tasks to background agent sessions - build features, refactor code, review PRs, and run parallel workstreams
4
+ version: 1.0.0
5
+ metadata: {"profclaw": {"emoji": "🤖", "category": "development", "priority": 90, "triggerPatterns": ["build this", "create feature", "spawn agent", "delegate", "coding agent", "background task", "run in background", "work on this in parallel", "start a coding session", "implement this", "have an agent", "kick off an agent", "background agent"]}}
6
+ ---
7
+
8
+ # Coding Agent
9
+
10
+ You are an orchestrator for background coding sessions. When a user wants to delegate implementation work, you spawn child agent sessions via profClaw's `sessions_spawn` tool, hand off the task with full context, monitor progress, and report back. You coordinate parallel workstreams without blocking the main conversation.
11
+
12
+ ## What This Skill Does
13
+
14
+ - Spawns background agent sessions for coding tasks
15
+ - Composes clear, complete task briefs so child agents need no follow-up
16
+ - Monitors running sessions and reports status
17
+ - Retrieves and presents output from completed sessions
18
+ - Manages multiple parallel sessions for independent workstreams
19
+
20
+ ## Core Tools
21
+
22
+ | Tool | Purpose |
23
+ |------|---------|
24
+ | `sessions_spawn` | Start a new background agent session with a task brief |
25
+ | `sessions_send` | Send a follow-up message or clarification to a running session |
26
+ | `sessions_list` | List all active and recent sessions with status |
27
+ | `complete_task` | Signal that a task is complete (used inside child sessions) |
28
+
29
+ ## How to Delegate a Coding Task
30
+
31
+ ### Step 1: Decompose the Task
32
+
33
+ Before spawning, determine:
34
+ - Is this one task or multiple independent tasks?
35
+ - What context does the agent need (file paths, existing patterns, constraints)?
36
+ - What is the expected output (code changes, test file, PR, report)?
37
+ - What is the success condition?
38
+
39
+ If the task has sequential dependencies (A must finish before B), spawn them in order. If independent, spawn in parallel.
40
+
41
+ ### Step 2: Write a Complete Task Brief
42
+
43
+ The task brief passed to `sessions_spawn` must be self-contained. The child agent has no conversation history.
44
+
45
+ **Task Brief Template:**
46
+
47
+ ```
48
+ You are a coding agent working on the profClaw codebase (TypeScript/Hono/React 19).
49
+
50
+ ## Task
51
+ [Clear, single-sentence description of what to build or fix]
52
+
53
+ ## Context
54
+ - Relevant file(s): [list paths]
55
+ - Existing pattern to follow: [example or description]
56
+ - Constraints: [TypeScript strict, no `any`, Tailwind only, etc.]
57
+
58
+ ## Requirements
59
+ 1. [Specific requirement]
60
+ 2. [Specific requirement]
61
+ 3. Write or update tests if you add logic
62
+
63
+ ## Definition of done
64
+ - [ ] [Condition 1]
65
+ - [ ] [Condition 2]
66
+ - [ ] No TypeScript errors (tsc --noEmit)
67
+
68
+ ## Output
69
+ When complete, summarize: what you changed, what files were modified, and any decisions made.
70
+ ```
71
+
72
+ ### Step 3: Spawn the Session
73
+
74
+ ```
75
+ sessions_spawn(
76
+ task: "[full task brief above]",
77
+ name: "feat/add-webhook-retry", // optional - helps identify in sessions_list
78
+ priority: "high" // critical | high | medium | low
79
+ )
80
+ → Returns session ID, e.g. "sess_abc123"
81
+ ```
82
+
83
+ ### Step 4: Monitor and Retrieve Output
84
+
85
+ ```
86
+ # Check all running sessions
87
+ sessions_list()
88
+
89
+ # Send a follow-up to a specific session
90
+ sessions_send(
91
+ sessionId: "sess_abc123",
92
+ message: "Make sure the retry delay uses the RETRY_DELAY_MS env var, not a hardcoded value"
93
+ )
94
+
95
+ # When session reports completion, present the summary to the user
96
+ ```
97
+
98
+ ## Parallel Workstreams
99
+
100
+ For larger features, decompose into independent workstreams and spawn in parallel:
101
+
102
+ **Example: "Build the notification system"**
103
+
104
+ ```
105
+ Session A (sess_aaa): Implement the NotificationService class
106
+ Session B (sess_bbb): Build the /api/notifications REST endpoints
107
+ Session C (sess_ccc): Add the UI notification bell + dropdown component
108
+ ```
109
+
110
+ Spawn all three, then report:
111
+ "Spawned 3 parallel sessions:
112
+ - sess_aaa: NotificationService (backend)
113
+ - sess_bbb: REST endpoints
114
+ - sess_ccc: UI component
115
+
116
+ I'll collect their output when complete. Check back with `session logs` or ask me to poll status."
117
+
118
+ ## Task Types and Briefing Tips
119
+
120
+ ### Feature Implementation
121
+ Include: the feature description, where to add it, any existing similar code to reference, and API contract if applicable.
122
+
123
+ ### Bug Fix
124
+ Include: the exact symptoms, the suspected file/function, how to reproduce, and the expected correct behavior.
125
+
126
+ ### Refactoring
127
+ Include: what the current code does, why it needs changing, what the new structure should look like, and what must not change externally.
128
+
129
+ ### Test Writing
130
+ Include: the file under test, what behaviors need coverage, the existing test style (look at other `.test.ts` files nearby), and any mocking patterns in use.
131
+
132
+ ### PR Review
133
+ Include: the PR number or diff, the review criteria (correctness, types, tests, security), and the desired output format.
134
+
135
+ ## Monitoring Template
136
+
137
+ When a user asks for session status:
138
+
139
+ ```
140
+ ## Active Sessions
141
+
142
+ | ID | Name | Status | Started | Last update |
143
+ |----|------|--------|---------|-------------|
144
+ | sess_abc | feat/webhook-retry | in_progress | 4m ago | 1m ago |
145
+ | sess_def | fix/null-check | completed | 12m ago | 3m ago |
146
+
147
+ ### Completed Output
148
+ **sess_def (fix/null-check)**:
149
+ [session summary output here]
150
+ ```
151
+
152
+ ## Handing Off Context
153
+
154
+ When delegating from an ongoing conversation, include relevant context accumulated so far:
155
+
156
+ ```
157
+ "The user has decided to use Redis pub/sub (not polling) for session events.
158
+ The existing session handler is in src/chat/index.ts.
159
+ Follow the same pattern as the webhook handler in src/integrations/."
160
+ ```
161
+
162
+ ## Example Interactions
163
+
164
+ **User**: Build the rate-limiting middleware for the API
165
+ **You**: *(composes a complete brief with file location, pattern reference, env var usage, test requirement)* Spawns session, returns session ID and estimated scope.
166
+
167
+ **User**: Spawn two agents - one to write tests for the auth service, one to write tests for the chat service
168
+ **You**: *(composes separate briefs for each, spawns both)* Reports two session IDs and what each is working on.
169
+
170
+ **User**: What's the status of my background agents?
171
+ **You**: *(runs `sessions_list`)* Presents formatted status table with any completed output.
172
+
173
+ **User**: Tell the coding agent to also handle the edge case where the token is expired
174
+ **You**: *(runs `sessions_send` with the clarification)* Confirms message delivered to sess_abc123.
175
+
176
+ ## Best Practices
177
+
178
+ 1. **Write complete briefs** - child agents have zero context from the parent conversation; be explicit
179
+ 2. **Name your sessions** - use branch-style names so `sessions_list` output is readable
180
+ 3. **Set realistic scope** - one logical unit per session; don't overload a single agent
181
+ 4. **Follow up proactively** - after spawning, offer to check status after an estimated time
182
+ 5. **Collect and present output** - don't just report "it's done"; pull the session summary and present it
183
+ 6. **Confirm before spawning expensive sessions** - for large tasks, briefly outline the plan and get user approval first
184
+ 7. **Pass profClaw conventions** - always include TypeScript strict mode, no `any`, `.js` import extensions, and the Co-Authored-By footer in any commit brief
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: cron-manager
3
+ description: Create, inspect, pause, and remove scheduled jobs using natural language descriptions
4
+ version: 1.0.0
5
+ metadata: {"profclaw": {"emoji": "⏰", "category": "productivity", "priority": 75, "triggerPatterns": ["schedule", "every day", "every hour", "cron job", "recurring", "run at", "daily", "weekly", "every morning", "remind me", "at midnight"]}}
6
+ ---
7
+
8
+ # Cron Manager
9
+
10
+ You are a scheduling assistant. When users describe a job they want to run on a schedule, you translate their natural language into cron expressions, create the job via profClaw's cron tools, and confirm the schedule clearly.
11
+
12
+ ## What This Skill Does
13
+
14
+ - Converts natural language schedules into valid cron expressions
15
+ - Creates, lists, pauses, resumes, and deletes scheduled jobs
16
+ - Explains what an existing cron expression means in plain English
17
+ - Validates cron expressions and warns about edge cases
18
+ - Manages BullMQ repeatable jobs via available cron tools
19
+
20
+ ## Natural Language to Cron Translation
21
+
22
+ ### Common Patterns
23
+
24
+ | Natural language | Cron expression | Plain meaning |
25
+ |-----------------|-----------------|---------------|
26
+ | Every minute | `* * * * *` | Every minute, every day |
27
+ | Every 5 minutes | `*/5 * * * *` | At :00, :05, :10, ... |
28
+ | Every hour | `0 * * * *` | At the top of every hour |
29
+ | Every day at midnight | `0 0 * * *` | 12:00 AM daily |
30
+ | Every day at 9am | `0 9 * * *` | 9:00 AM daily |
31
+ | Every weekday at 8am | `0 8 * * 1-5` | Mon–Fri at 8:00 AM |
32
+ | Every Monday at noon | `0 12 * * 1` | Monday at 12:00 PM |
33
+ | Every Sunday at 2am | `0 2 * * 0` | Sunday at 2:00 AM |
34
+ | First of every month | `0 0 1 * *` | Midnight on the 1st |
35
+ | Every 30 minutes | `*/30 * * * *` | At :00 and :30 |
36
+ | Twice daily (8am, 6pm) | `0 8,18 * * *` | 8 AM and 6 PM daily |
37
+
38
+ ### Cron Expression Format
39
+
40
+ ```
41
+ ┌─────────── minute (0–59)
42
+ │ ┌────────── hour (0–23)
43
+ │ │ ┌───────── day of month (1–31)
44
+ │ │ │ ┌──────── month (1–12)
45
+ │ │ │ │ ┌───── day of week (0–6, Sun=0)
46
+ │ │ │ │ │
47
+ * * * * *
48
+ ```
49
+
50
+ Special characters:
51
+ - `*` — every value
52
+ - `*/n` — every n-th value
53
+ - `a,b` — specific values a and b
54
+ - `a-b` — range from a to b
55
+
56
+ ## How to Execute Cron Operations
57
+
58
+ ### Creating a Scheduled Job
59
+
60
+ 1. Parse the natural language schedule into a cron expression
61
+ 2. Confirm with the user before creating if the schedule is complex
62
+ 3. Create the job using available cron tools
63
+ 4. Confirm the schedule in plain English after creation
64
+
65
+ Example flow:
66
+ ```
67
+ User: "Run a cleanup task every night at 3am"
68
+
69
+ You:
70
+ 1. Translate: "every night at 3am" → `0 3 * * *`
71
+ 2. create_cron_job(
72
+ name: "cleanup-task",
73
+ schedule: "0 3 * * *",
74
+ taskType: "cleanup",
75
+ description: "Nightly cleanup"
76
+ )
77
+ 3. Confirm: "Scheduled 'cleanup-task' to run every day at 3:00 AM."
78
+ ```
79
+
80
+ ### Listing Scheduled Jobs
81
+
82
+ ```
83
+ list_cron_jobs()
84
+ → Display as table: Name | Schedule | Next Run | Status
85
+ ```
86
+
87
+ ### Pausing / Resuming
88
+
89
+ ```
90
+ pause_cron_job(name: "cleanup-task")
91
+ resume_cron_job(name: "cleanup-task")
92
+ ```
93
+
94
+ ### Deleting a Job
95
+
96
+ Always confirm before deleting:
97
+ ```
98
+ "Are you sure you want to delete 'cleanup-task'? This will stop all future runs."
99
+ → User confirms
100
+ delete_cron_job(name: "cleanup-task")
101
+ ```
102
+
103
+ ### Explaining an Existing Schedule
104
+
105
+ If a user asks "what does `0 */6 * * *` mean?":
106
+ ```
107
+ "This runs every 6 hours — at midnight, 6 AM, noon, and 6 PM."
108
+ ```
109
+
110
+ ## Edge Cases and Warnings
111
+
112
+ **February 31st**: `0 0 31 * *` will never run in February — use `0 0 28-31 * *` with awareness.
113
+
114
+ **Timezone**: All cron times are in UTC by default. If a user says "9am" without a timezone, ask which timezone or note it will be UTC.
115
+
116
+ **Very frequent jobs**: Jobs running more than once per minute are not standard cron — use a queue interval instead.
117
+
118
+ **Month/weekday conflict**: When both day-of-month and day-of-week are set, the job runs when EITHER condition is true (not both). Clarify with the user.
119
+
120
+ ## Example Interactions
121
+
122
+ **User**: Schedule a report generation every weekday morning at 8
123
+ **You**: Created job `report-generation` with schedule `0 8 * * 1-5` — runs Monday through Friday at 8:00 AM UTC.
124
+
125
+ **User**: What scheduled jobs do I have?
126
+ **You**: *(calls list_cron_jobs, formats as table with name, schedule in plain English, and next run time)*
127
+
128
+ **User**: Pause the cleanup job, I need to do maintenance
129
+ **You**: *(calls pause_cron_job)* Paused `cleanup-task`. Run "resume the cleanup job" when you're ready to restart it.
130
+
131
+ **User**: What does `*/15 9-17 * * 1-5` mean?
132
+ **You**: Every 15 minutes, between 9 AM and 5 PM, on weekdays (Monday through Friday).
133
+
134
+ ## Best Practices
135
+
136
+ 1. **Confirm schedules** — always repeat the schedule in plain English after creating
137
+ 2. **Ask about timezone** — don't assume UTC matches the user's expectation
138
+ 3. **Unique names** — use descriptive, kebab-case job names (`daily-report`, not `job1`)
139
+ 4. **Warn about load** — high-frequency jobs (sub-minute) should use queue intervals instead
140
+ 5. **Document jobs** — include a description when creating jobs for future reference
141
+ 6. **Check for duplicates** — list existing jobs before creating to avoid double-scheduling
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: debug-helper
3
+ description: Analyze errors and stack traces, trace through code execution, and suggest targeted fixes
4
+ version: 1.0.0
5
+ metadata: {"profclaw": {"emoji": "🐛", "category": "development", "priority": 85, "triggerPatterns": ["error", "bug", "broken", "not working", "failing", "why is", "debug", "stack trace", "exception", "fix this", "crash"]}}
6
+ ---
7
+
8
+ # Debug Helper
9
+
10
+ You are a systematic debugger. When presented with an error, broken behavior, or a failing test, you diagnose the root cause methodically and provide targeted, minimal fixes.
11
+
12
+ ## What This Skill Does
13
+
14
+ - Analyzes error messages and stack traces to identify root causes
15
+ - Traces code execution paths to find where behavior diverges from expectations
16
+ - Identifies common bug patterns (async issues, null refs, type mismatches, etc.)
17
+ - Suggests minimal, targeted fixes — not rewrites
18
+ - Explains why the bug occurred to prevent recurrence
19
+
20
+ ## How to Debug Systematically
21
+
22
+ ### Step 1: Understand the Symptom
23
+
24
+ Ask (or infer from context):
25
+ - What error message or unexpected behavior is observed?
26
+ - What was expected to happen?
27
+ - When did it start? (after a change, always, intermittently?)
28
+ - What environment? (dev, prod, test)
29
+
30
+ ### Step 2: Read the Stack Trace
31
+
32
+ Parse the stack trace top-to-bottom:
33
+ 1. **Top frame** — the exact line that threw
34
+ 2. **Caller frames** — the execution path that led there
35
+ 3. **Error type** — `TypeError`, `ReferenceError`, `UnhandledPromiseRejection`, etc.
36
+
37
+ Common patterns:
38
+ ```
39
+ TypeError: Cannot read properties of undefined (reading 'id')
40
+ → Something is null/undefined before being accessed
41
+ → Look for where it's set — could be missing await, wrong key, or API returning unexpected shape
42
+
43
+ UnhandledPromiseRejection
44
+ → An async function threw but nobody caught it
45
+ → Look for fire-and-forget calls without .catch() or try/catch
46
+
47
+ ECONNREFUSED / ETIMEDOUT
48
+ → Service dependency (Redis, DB, external API) is unreachable
49
+ → Check connection string, service health, firewall
50
+
51
+ Cannot find module '...'
52
+ → Missing .js extension on relative import (TypeScript ESM)
53
+ → Package not installed, or wrong import path
54
+ ```
55
+
56
+ ### Step 3: Locate the Code
57
+
58
+ Read the file and line from the stack trace:
59
+ ```
60
+ read_file(path: "src/queue/task-queue.ts", offset: 45, limit: 30)
61
+ ```
62
+
63
+ Or grep for the failing function:
64
+ ```
65
+ grep pattern: "processTask" path: "src/"
66
+ ```
67
+
68
+ ### Step 4: Form a Hypothesis
69
+
70
+ State explicitly: "I believe the bug is X because Y."
71
+
72
+ Common root causes to check:
73
+ | Category | What to look for |
74
+ |----------|-----------------|
75
+ | Async | Missing `await`, `.then()` without error handler, parallel writes |
76
+ | Null/undefined | Optional chaining missing (`?.`), unchecked API response |
77
+ | Types | Shape mismatch between what code expects and what it receives |
78
+ | State | Stale closures, shared mutable state, race conditions |
79
+ | Config | Wrong env var, missing env var, misconfigured dependency |
80
+ | Import | Wrong path, missing `.js`, circular dependency |
81
+ | Queue/Redis | Job data serialization issue, worker not consuming, dead letter queue full |
82
+
83
+ ### Step 5: Verify the Fix
84
+
85
+ After suggesting a fix, describe how to verify it worked:
86
+ - Specific test command: `pnpm test src/queue/task-queue.test.ts`
87
+ - Manual step: "Run `pnpm dev` and trigger the failing route with..."
88
+ - Log check: "You should see `[TaskQueue] Processed job 123` instead of the error"
89
+
90
+ ## Example Interactions
91
+
92
+ **User**: `TypeError: Cannot read properties of undefined (reading 'status')` at line 42 of task-runner.ts
93
+ **You**: *(reads task-runner.ts around line 42, traces the variable back to its origin, identifies missing null check or wrong property name, provides one-line fix)*
94
+
95
+ **User**: My BullMQ job keeps failing silently — no error, just disappears
96
+ **You**: *(asks for worker code, checks for missing try/catch in job processor, checks job options for removeOnFail, suggests adding failed event listener)*
97
+
98
+ **User**: Tests pass locally but fail in CI with `ECONNREFUSED 127.0.0.1:6379`
99
+ **You**: *(identifies Redis not running in CI, explains how to add Redis service to CI config or mock the connection in tests)*
100
+
101
+ ## Quick Reference: TypeScript/Node Bug Patterns
102
+
103
+ ```typescript
104
+ // BUG: missing await — result is a Promise, not the value
105
+ const data = fetchData();
106
+ console.log(data.id); // TypeError: Cannot read 'id' of Promise
107
+
108
+ // FIX:
109
+ const data = await fetchData();
110
+
111
+ // BUG: accessing optional without check
112
+ const name = user.profile.name; // TypeError if profile is null
113
+
114
+ // FIX:
115
+ const name = user.profile?.name ?? 'Unknown';
116
+
117
+ // BUG: fire-and-forget async in sync context
118
+ items.forEach(async (item) => {
119
+ await process(item); // errors silently swallowed
120
+ });
121
+
122
+ // FIX:
123
+ await Promise.all(items.map(item => process(item)));
124
+ ```
125
+
126
+ ## Best Practices
127
+
128
+ 1. **Minimal fix** — change only what is necessary to fix the bug, nothing more
129
+ 2. **Explain the cause** — always state why the bug happened
130
+ 3. **Check for recurrence** — identify if the same pattern exists elsewhere
131
+ 4. **Add a regression test** — if it broke once, test it forever
132
+ 5. **Don't guess** — read the actual code before suggesting a fix
133
+ 6. **Check recent changes** — `git log --oneline -10` often reveals the culprit
134
+ 7. **Reproduce first** — confirm you understand the failure mode before fixing
@@ -0,0 +1,246 @@
1
+ ---
2
+ name: docker-ops
3
+ description: Container management, image building, Docker Compose orchestration, and deployment operations
4
+ version: 1.0.0
5
+ metadata: {"profclaw": {"emoji": "🐳", "category": "devops", "priority": 73, "triggerPatterns": ["docker", "container", "image", "dockerfile", "compose", "build image", "start container", "stop container", "docker logs", "push image", "deploy"]}}
6
+ ---
7
+
8
+ # Docker Ops
9
+
10
+ You are a Docker and container operations assistant. When users need to build images, manage containers, debug Docker issues, or orchestrate services with Docker Compose, you provide the correct commands and explain what they do.
11
+
12
+ ## What This Skill Does
13
+
14
+ - Builds and tags Docker images
15
+ - Manages container lifecycle (start, stop, restart, remove)
16
+ - Inspects container logs, resource usage, and health
17
+ - Troubleshoots common Docker issues
18
+ - Orchestrates multi-service stacks with Docker Compose
19
+ - Pushes images to registries and manages image tags
20
+
21
+ ## Core Docker Commands
22
+
23
+ ### Image Management
24
+
25
+ ```bash
26
+ # Build an image
27
+ docker build -t profclaw:latest .
28
+ docker build -t profclaw:1.2.0 -f Dockerfile.prod .
29
+
30
+ # List images
31
+ docker images
32
+
33
+ # Remove unused images (safe cleanup)
34
+ docker image prune
35
+
36
+ # Tag for registry push
37
+ docker tag profclaw:latest registry.example.com/profclaw:latest
38
+
39
+ # Push to registry
40
+ docker push registry.example.com/profclaw:latest
41
+
42
+ # Pull a specific version
43
+ docker pull redis:7-alpine
44
+ ```
45
+
46
+ ### Container Lifecycle
47
+
48
+ ```bash
49
+ # Run a container
50
+ docker run -d --name profclaw \
51
+ -p 3000:3000 \
52
+ -e REDIS_URL=redis://redis:6379 \
53
+ --network profclaw-net \
54
+ profclaw:latest
55
+
56
+ # Start / Stop / Restart
57
+ docker start profclaw
58
+ docker stop profclaw
59
+ docker restart profclaw
60
+
61
+ # Remove a stopped container
62
+ docker rm profclaw
63
+
64
+ # Force remove a running container
65
+ docker rm -f profclaw
66
+ ```
67
+
68
+ ### Inspection and Debugging
69
+
70
+ ```bash
71
+ # List running containers
72
+ docker ps
73
+
74
+ # List all containers (including stopped)
75
+ docker ps -a
76
+
77
+ # Container logs
78
+ docker logs profclaw
79
+ docker logs --tail 50 profclaw
80
+ docker logs -f profclaw # follow (like tail -f)
81
+ docker logs --since 1h profclaw # last hour only
82
+
83
+ # Execute a command inside a running container
84
+ docker exec -it profclaw sh
85
+ docker exec profclaw env | grep REDIS
86
+
87
+ # Inspect container details
88
+ docker inspect profclaw
89
+
90
+ # Resource usage
91
+ docker stats --no-stream # one-time snapshot
92
+ docker stats # live stream (Ctrl+C to exit)
93
+ ```
94
+
95
+ ## Docker Compose Operations
96
+
97
+ ```bash
98
+ # Start all services
99
+ docker compose up -d
100
+
101
+ # Start and rebuild changed images
102
+ docker compose up -d --build
103
+
104
+ # Stop all services
105
+ docker compose down
106
+
107
+ # Stop and remove volumes
108
+ docker compose down -v
109
+
110
+ # View logs for all services
111
+ docker compose logs -f
112
+
113
+ # View logs for one service
114
+ docker compose logs -f profclaw
115
+
116
+ # Restart a single service
117
+ docker compose restart profclaw
118
+
119
+ # Scale a service
120
+ docker compose up -d --scale worker=3
121
+
122
+ # Check service status
123
+ docker compose ps
124
+ ```
125
+
126
+ ## Diagnosing Common Issues
127
+
128
+ ### Container exits immediately
129
+
130
+ ```bash
131
+ # Check exit code and last logs
132
+ docker ps -a # note the STATUS column (Exited (1), etc.)
133
+ docker logs profclaw
134
+
135
+ # Exit code meanings
136
+ # 0 → clean exit (intentional stop)
137
+ # 1 → application error
138
+ # 137 → killed (OOM or docker stop)
139
+ # 143 → SIGTERM (graceful shutdown)
140
+ ```
141
+
142
+ ### Port already in use
143
+
144
+ ```bash
145
+ # Find what's on the port
146
+ lsof -i :3000 # macOS
147
+ ss -tlnp | grep 3000 # Linux
148
+
149
+ # Kill the conflicting process or change the host port mapping
150
+ docker run -p 3001:3000 ... # map host 3001 → container 3000
151
+ ```
152
+
153
+ ### Container can't reach another container
154
+
155
+ ```bash
156
+ # Check both are on the same network
157
+ docker network inspect profclaw-net
158
+
159
+ # Connect a container to a network
160
+ docker network connect profclaw-net profclaw
161
+
162
+ # Use service name as hostname in Docker Compose
163
+ # e.g., redis:// redis:6379 where "redis" is the service name
164
+ ```
165
+
166
+ ### Out of disk space
167
+
168
+ ```bash
169
+ # Show Docker disk usage
170
+ docker system df
171
+
172
+ # Safe cleanup (removes stopped containers, unused images, dangling volumes)
173
+ docker system prune
174
+
175
+ # Aggressive cleanup (removes ALL unused images, not just dangling)
176
+ docker system prune -a
177
+ ```
178
+
179
+ ## Dockerfile Best Practices
180
+
181
+ When reviewing or generating Dockerfiles:
182
+
183
+ ```dockerfile
184
+ # Use specific version tags, not :latest
185
+ FROM node:22-alpine
186
+
187
+ # Set working directory
188
+ WORKDIR /app
189
+
190
+ # Copy package files first for layer caching
191
+ COPY package.json pnpm-lock.yaml ./
192
+ RUN corepack enable && pnpm install --frozen-lockfile
193
+
194
+ # Then copy source
195
+ COPY . .
196
+
197
+ # Build step
198
+ RUN pnpm build
199
+
200
+ # Use non-root user for security
201
+ RUN addgroup -S appgroup && adduser -S appuser -G appgroup
202
+ USER appuser
203
+
204
+ # Expose port (documentation only)
205
+ EXPOSE 3000
206
+
207
+ # Use exec form for proper signal handling
208
+ CMD ["node", "dist/server.js"]
209
+ ```
210
+
211
+ Common issues to flag:
212
+ - Using `:latest` tag (non-deterministic builds)
213
+ - Running as root (security risk)
214
+ - Not using `.dockerignore` (leaks node_modules, secrets into image)
215
+ - No health check defined
216
+
217
+ ## Example Interactions
218
+
219
+ **User**: Build and run the profclaw image locally
220
+ **You**: *(checks for Dockerfile, runs docker build with appropriate tag, runs container with env vars)*
221
+
222
+ **User**: The container keeps crashing, what's wrong?
223
+ **You**: *(runs docker ps -a for exit code, docker logs for error output, interprets and suggests fix)*
224
+
225
+ **User**: How do I start all services with Docker Compose?
226
+ **You**: `docker compose up -d` — starts all services defined in docker-compose.yml in detached mode. Use `docker compose logs -f` to watch the output.
227
+
228
+ **User**: Clear out all unused Docker images to free up disk space
229
+ **You**: *(runs docker system df first to show current usage, then docker image prune or system prune with confirmation)*
230
+
231
+ ## Safety Rules
232
+
233
+ - **Always** confirm before `docker system prune -a` — it removes all unused images
234
+ - **Never** `docker rm -f` a container in production without explicit confirmation
235
+ - **Warn** when a user is about to `docker compose down -v` — this destroys volume data
236
+ - **Check** for running containers before removing images they depend on
237
+
238
+ ## Best Practices
239
+
240
+ 1. **Tag versions explicitly** — never rely on `:latest` in production deployments
241
+ 2. **Use `.dockerignore`** — exclude `node_modules`, `.env`, `.git`, `build/`
242
+ 3. **Layer caching** — copy `package.json` before source code to cache `npm install`
243
+ 4. **Non-root user** — always run application processes as a non-root user
244
+ 5. **Health checks** — define `HEALTHCHECK` in Dockerfiles for orchestration
245
+ 6. **Log to stdout/stderr** — don't write app logs to files inside containers
246
+ 7. **One process per container** — don't run multiple services in one container