profclaw 2.0.0 → 2.4.0

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 (519) hide show
  1. package/.env.example +14 -2
  2. package/CHANGELOG.md +52 -0
  3. package/CONTRIBUTING.md +20 -0
  4. package/Dockerfile +39 -23
  5. package/README.md +178 -41
  6. package/config/pricing.yml +26 -2
  7. package/dist/agents/agent-summary.d.ts +44 -0
  8. package/dist/agents/agent-summary.js +176 -0
  9. package/dist/agents/auto-memory.d.ts +59 -0
  10. package/dist/agents/auto-memory.js +310 -0
  11. package/dist/agents/checkpoint-manager.d.ts +76 -0
  12. package/dist/agents/checkpoint-manager.js +156 -0
  13. package/dist/agents/circuit-breaker.d.ts +54 -0
  14. package/dist/agents/circuit-breaker.js +153 -0
  15. package/dist/agents/command-sandbox.d.ts +93 -0
  16. package/dist/agents/command-sandbox.js +235 -0
  17. package/dist/agents/context-compactor.d.ts +70 -0
  18. package/dist/agents/context-compactor.js +361 -0
  19. package/dist/agents/conversation-branch.d.ts +55 -0
  20. package/dist/agents/conversation-branch.js +115 -0
  21. package/dist/agents/error-recovery.d.ts +44 -0
  22. package/dist/agents/error-recovery.js +197 -0
  23. package/dist/agents/events.d.ts +76 -0
  24. package/dist/agents/events.js +8 -0
  25. package/dist/agents/executor-runner.d.ts +135 -0
  26. package/dist/agents/executor-runner.js +303 -0
  27. package/dist/agents/executor.d.ts +37 -1
  28. package/dist/agents/executor.js +606 -124
  29. package/dist/agents/file-snapshots.d.ts +72 -0
  30. package/dist/agents/file-snapshots.js +182 -0
  31. package/dist/agents/index.d.ts +2 -0
  32. package/dist/agents/orchestrator.d.ts +183 -0
  33. package/dist/agents/orchestrator.js +495 -0
  34. package/dist/agents/output-truncator.d.ts +59 -0
  35. package/dist/agents/output-truncator.js +128 -0
  36. package/dist/agents/permissions.d.ts +63 -0
  37. package/dist/agents/permissions.js +138 -0
  38. package/dist/agents/plan-mode.d.ts +71 -0
  39. package/dist/agents/plan-mode.js +186 -0
  40. package/dist/agents/prompt-suggestions.d.ts +33 -0
  41. package/dist/agents/prompt-suggestions.js +208 -0
  42. package/dist/agents/rate-limit-monitor.d.ts +56 -0
  43. package/dist/agents/rate-limit-monitor.js +224 -0
  44. package/dist/agents/receipt/receipt-cli.d.ts +43 -0
  45. package/dist/agents/receipt/receipt-cli.js +82 -0
  46. package/dist/agents/receipt/receipt-types.d.ts +136 -0
  47. package/dist/agents/receipt/receipt-types.js +19 -0
  48. package/dist/agents/receipt/receipt-verify.d.ts +19 -0
  49. package/dist/agents/receipt/receipt-verify.js +176 -0
  50. package/dist/agents/receipt/receipt-view.d.ts +29 -0
  51. package/dist/agents/receipt/receipt-view.js +227 -0
  52. package/dist/agents/receipt/receipt-writer.d.ts +47 -0
  53. package/dist/agents/receipt/receipt-writer.js +186 -0
  54. package/dist/agents/result-store.d.ts +43 -0
  55. package/dist/agents/result-store.js +145 -0
  56. package/dist/agents/session-diff.d.ts +49 -0
  57. package/dist/agents/session-diff.js +249 -0
  58. package/dist/agents/tool-loader.d.ts +65 -0
  59. package/dist/agents/tool-loader.js +273 -0
  60. package/dist/agents/tool-selector.d.ts +123 -0
  61. package/dist/agents/tool-selector.js +321 -0
  62. package/dist/agents/transcript.d.ts +96 -0
  63. package/dist/agents/transcript.js +267 -0
  64. package/dist/agents/verified-run-git.d.ts +49 -0
  65. package/dist/agents/verified-run-git.js +82 -0
  66. package/dist/agents/verified-run.d.ts +149 -0
  67. package/dist/agents/verified-run.js +402 -0
  68. package/dist/agents/verifier.d.ts +64 -0
  69. package/dist/agents/verifier.js +186 -0
  70. package/dist/agents/worktree-manager.d.ts +80 -0
  71. package/dist/agents/worktree-manager.js +203 -0
  72. package/dist/agents/worktree-tools.d.ts +47 -0
  73. package/dist/agents/worktree-tools.js +246 -0
  74. package/dist/auth/middleware.js +14 -0
  75. package/dist/chat/agentic-executor.d.ts +7 -0
  76. package/dist/chat/agentic-executor.js +263 -32
  77. package/dist/chat/conversations.d.ts +2 -0
  78. package/dist/chat/conversations.js +8 -0
  79. package/dist/chat/execution/executor.d.ts +8 -0
  80. package/dist/chat/execution/executor.js +157 -103
  81. package/dist/chat/execution/index.js +5 -1
  82. package/dist/chat/execution/sandbox.d.ts +8 -0
  83. package/dist/chat/execution/sandbox.js +25 -1
  84. package/dist/chat/execution/tool-router.js +40 -14
  85. package/dist/chat/execution/tools/canvas.d.ts +2 -2
  86. package/dist/chat/execution/tools/code-tools.d.ts +66 -0
  87. package/dist/chat/execution/tools/code-tools.js +353 -0
  88. package/dist/chat/execution/tools/complete-task.d.ts +2 -2
  89. package/dist/chat/execution/tools/cron-tool.d.ts +26 -10
  90. package/dist/chat/execution/tools/cron-tool.js +48 -3
  91. package/dist/chat/execution/tools/decompose-task.d.ts +58 -0
  92. package/dist/chat/execution/tools/decompose-task.js +166 -0
  93. package/dist/chat/execution/tools/exec.d.ts +5 -2
  94. package/dist/chat/execution/tools/exec.js +294 -155
  95. package/dist/chat/execution/tools/feed-tools.d.ts +77 -0
  96. package/dist/chat/execution/tools/feed-tools.js +142 -0
  97. package/dist/chat/execution/tools/file-ops.d.ts +1 -1
  98. package/dist/chat/execution/tools/github.d.ts +2 -2
  99. package/dist/chat/execution/tools/index.d.ts +14 -2
  100. package/dist/chat/execution/tools/index.js +86 -12
  101. package/dist/chat/execution/tools/integrations.d.ts +8 -8
  102. package/dist/chat/execution/tools/multi-patch.d.ts +53 -0
  103. package/dist/chat/execution/tools/multi-patch.js +373 -0
  104. package/dist/chat/execution/tools/openai-image-gen.d.ts +2 -2
  105. package/dist/chat/execution/tools/plan-tools.d.ts +80 -0
  106. package/dist/chat/execution/tools/plan-tools.js +134 -0
  107. package/dist/chat/execution/tools/profclaw-ops.d.ts +6 -6
  108. package/dist/chat/execution/tools/repl-tool.d.ts +46 -0
  109. package/dist/chat/execution/tools/repl-tool.js +207 -0
  110. package/dist/chat/execution/tools/sessions-send.d.ts +2 -2
  111. package/dist/chat/execution/tools/slack-actions.d.ts +2 -2
  112. package/dist/chat/execution/tools/system.d.ts +4 -4
  113. package/dist/chat/execution/tools/todo-tool.d.ts +72 -0
  114. package/dist/chat/execution/tools/todo-tool.js +152 -0
  115. package/dist/chat/execution/tools/tool-search.d.ts +50 -0
  116. package/dist/chat/execution/tools/tool-search.js +155 -0
  117. package/dist/chat/execution/tools/tts-speak.d.ts +2 -2
  118. package/dist/chat/execution/types.d.ts +21 -14
  119. package/dist/chat/execution/workflows/executor.d.ts +11 -0
  120. package/dist/chat/execution/workflows/executor.js +99 -1
  121. package/dist/chat/execution/workflows/types.d.ts +35 -2
  122. package/dist/chat/format/index.d.ts +1 -0
  123. package/dist/chat/format/index.js +1 -0
  124. package/dist/chat/format/markdown-convert.d.ts +23 -0
  125. package/dist/chat/format/markdown-convert.js +149 -0
  126. package/dist/chat/index.d.ts +1 -1
  127. package/dist/chat/index.js +1 -1
  128. package/dist/chat/message-handler.js +58 -6
  129. package/dist/chat/meta-tool-handlers.d.ts +18 -0
  130. package/dist/chat/meta-tool-handlers.js +51 -0
  131. package/dist/chat/proactive/index.d.ts +62 -0
  132. package/dist/chat/proactive/index.js +147 -0
  133. package/dist/chat/prompt-adapter.js +2 -0
  134. package/dist/chat/providers/irc/index.d.ts +2 -2
  135. package/dist/chat/providers/telegram/index.d.ts +2 -0
  136. package/dist/chat/providers/telegram/index.js +21 -2
  137. package/dist/chat/system-prompts.d.ts +3 -3
  138. package/dist/chat/system-prompts.js +121 -61
  139. package/dist/chat/tool-handler.d.ts +2 -0
  140. package/dist/chat/tool-handler.js +47 -3
  141. package/dist/chat/tools.d.ts +6 -6
  142. package/dist/cli/commands/auth.js +64 -1
  143. package/dist/cli/commands/chat.js +1327 -138
  144. package/dist/cli/commands/doctor.js +222 -16
  145. package/dist/cli/commands/history.d.ts +3 -0
  146. package/dist/cli/commands/history.js +138 -0
  147. package/dist/cli/commands/import.d.ts +44 -0
  148. package/dist/cli/commands/import.js +526 -0
  149. package/dist/cli/commands/init.d.ts +13 -0
  150. package/dist/cli/commands/init.js +381 -0
  151. package/dist/cli/commands/onboard.js +210 -30
  152. package/dist/cli/commands/plan.d.ts +13 -0
  153. package/dist/cli/commands/plan.js +184 -0
  154. package/dist/cli/commands/receipt.d.ts +7 -0
  155. package/dist/cli/commands/receipt.js +90 -0
  156. package/dist/cli/commands/run.d.ts +28 -0
  157. package/dist/cli/commands/run.js +204 -0
  158. package/dist/cli/commands/serve.d.ts +7 -0
  159. package/dist/cli/commands/serve.js +77 -18
  160. package/dist/cli/commands/setup.js +84 -3
  161. package/dist/cli/commands/status.js +54 -0
  162. package/dist/cli/commands/tools.js +13 -13
  163. package/dist/cli/commands/tui.js +26 -1
  164. package/dist/cli/index.js +23 -0
  165. package/dist/cli/ink/App.d.ts +13 -0
  166. package/dist/cli/ink/App.js +6 -0
  167. package/dist/cli/ink/ChatApp.d.ts +60 -0
  168. package/dist/cli/ink/ChatApp.js +325 -0
  169. package/dist/cli/ink/DashboardApp.d.ts +3 -0
  170. package/dist/cli/ink/DashboardApp.js +143 -0
  171. package/dist/cli/ink/components/AgentStatus.d.ts +17 -0
  172. package/dist/cli/ink/components/AgentStatus.js +33 -0
  173. package/dist/cli/ink/components/ChannelList.d.ts +17 -0
  174. package/dist/cli/ink/components/ChannelList.js +33 -0
  175. package/dist/cli/ink/components/ConnectionStatus.d.ts +19 -0
  176. package/dist/cli/ink/components/ConnectionStatus.js +50 -0
  177. package/dist/cli/ink/components/CostBar.d.ts +19 -0
  178. package/dist/cli/ink/components/CostBar.js +35 -0
  179. package/dist/cli/ink/components/HookStatus.d.ts +15 -0
  180. package/dist/cli/ink/components/HookStatus.js +7 -0
  181. package/dist/cli/ink/components/PermissionPrompt.d.ts +21 -0
  182. package/dist/cli/ink/components/PermissionPrompt.js +51 -0
  183. package/dist/cli/ink/components/PlanView.d.ts +23 -0
  184. package/dist/cli/ink/components/PlanView.js +26 -0
  185. package/dist/cli/ink/components/ProviderList.d.ts +16 -0
  186. package/dist/cli/ink/components/ProviderList.js +16 -0
  187. package/dist/cli/ink/components/SessionHeader.d.ts +15 -0
  188. package/dist/cli/ink/components/SessionHeader.js +15 -0
  189. package/dist/cli/ink/components/StreamingMessage.d.ts +20 -0
  190. package/dist/cli/ink/components/StreamingMessage.js +27 -0
  191. package/dist/cli/ink/components/SuggestionBar.d.ts +15 -0
  192. package/dist/cli/ink/components/SuggestionBar.js +28 -0
  193. package/dist/cli/ink/components/SystemHealth.d.ts +20 -0
  194. package/dist/cli/ink/components/SystemHealth.js +39 -0
  195. package/dist/cli/ink/components/TaskList.d.ts +17 -0
  196. package/dist/cli/ink/components/TaskList.js +59 -0
  197. package/dist/cli/ink/components/ToolCall.d.ts +17 -0
  198. package/dist/cli/ink/components/ToolCall.js +43 -0
  199. package/dist/cli/ink/index.d.ts +23 -0
  200. package/dist/cli/ink/index.js +15 -0
  201. package/dist/cli/ink/keybindings.d.ts +35 -0
  202. package/dist/cli/ink/keybindings.js +105 -0
  203. package/dist/cli/ink/markdown-renderer.d.ts +47 -0
  204. package/dist/cli/ink/markdown-renderer.js +380 -0
  205. package/dist/cli/ink/output-styles.d.ts +39 -0
  206. package/dist/cli/ink/output-styles.js +119 -0
  207. package/dist/cli/interactive/auto-serve.d.ts +38 -0
  208. package/dist/cli/interactive/auto-serve.js +209 -0
  209. package/dist/cli/interactive/index.d.ts +25 -0
  210. package/dist/cli/interactive/index.js +23 -0
  211. package/dist/cli/interactive/picker.d.ts +28 -0
  212. package/dist/cli/interactive/picker.js +153 -0
  213. package/dist/cli/interactive/renderer.d.ts +26 -0
  214. package/dist/cli/interactive/renderer.js +555 -0
  215. package/dist/cli/interactive/repl.d.ts +14 -0
  216. package/dist/cli/interactive/repl.js +1516 -0
  217. package/dist/cli/interactive/stream-client.d.ts +59 -0
  218. package/dist/cli/interactive/stream-client.js +506 -0
  219. package/dist/cli/interactive/types.d.ts +121 -0
  220. package/dist/cli/interactive/types.js +10 -0
  221. package/dist/cli/utils/api.d.ts +9 -0
  222. package/dist/cli/utils/api.js +58 -2
  223. package/dist/costs/token-tracker.d.ts +10 -1
  224. package/dist/costs/token-tracker.js +37 -5
  225. package/dist/cron/natural-language.d.ts +54 -0
  226. package/dist/cron/natural-language.js +569 -0
  227. package/dist/cron/scheduler.d.ts +34 -4
  228. package/dist/cron/scheduler.js +141 -9
  229. package/dist/cron/templates.d.ts +1 -1
  230. package/dist/cron/templates.js +219 -0
  231. package/dist/feeds/feed-engine.d.ts +149 -0
  232. package/dist/feeds/feed-engine.js +600 -0
  233. package/dist/feeds/index.d.ts +9 -0
  234. package/dist/feeds/index.js +8 -0
  235. package/dist/gateway/router.js +6 -1
  236. package/dist/hooks/built-in/audit-log.d.ts +11 -0
  237. package/dist/hooks/built-in/audit-log.js +84 -0
  238. package/dist/hooks/built-in/cost-warning.d.ts +10 -0
  239. package/dist/hooks/built-in/cost-warning.js +59 -0
  240. package/dist/hooks/built-in/dangerous-tool.d.ts +32 -0
  241. package/dist/hooks/built-in/dangerous-tool.js +80 -0
  242. package/dist/hooks/built-in/index.d.ts +14 -0
  243. package/dist/hooks/built-in/index.js +20 -0
  244. package/dist/hooks/index.d.ts +3 -0
  245. package/dist/hooks/index.js +6 -0
  246. package/dist/hooks/loader.d.ts +17 -0
  247. package/dist/hooks/loader.js +142 -0
  248. package/dist/hooks/registry.d.ts +62 -0
  249. package/dist/hooks/registry.js +127 -0
  250. package/dist/integrations/web-search.js +6 -3
  251. package/dist/memory/index.d.ts +1 -0
  252. package/dist/memory/index.js +2 -0
  253. package/dist/memory/memory-service.js +14 -13
  254. package/dist/memory/observational.d.ts +62 -0
  255. package/dist/memory/observational.js +396 -0
  256. package/dist/middleware/content-filter.d.ts +22 -0
  257. package/dist/middleware/content-filter.js +69 -0
  258. package/dist/middleware/request-validator.d.ts +159 -0
  259. package/dist/middleware/request-validator.js +93 -0
  260. package/dist/plugins/sdk.d.ts +22 -0
  261. package/dist/plugins/sdk.js +17 -1
  262. package/dist/projects/types.d.ts +10 -10
  263. package/dist/providers/ai-sdk.d.ts +11 -0
  264. package/dist/providers/ai-sdk.js +111 -56
  265. package/dist/providers/core/models.js +114 -6
  266. package/dist/providers/core/types.d.ts +7 -0
  267. package/dist/providers/index.d.ts +1 -0
  268. package/dist/providers/index.js +1 -0
  269. package/dist/providers/prompt-cache.d.ts +68 -0
  270. package/dist/providers/prompt-cache.js +165 -0
  271. package/dist/providers/smart-router.d.ts +118 -0
  272. package/dist/providers/smart-router.js +693 -0
  273. package/dist/providers/types.d.ts +16 -16
  274. package/dist/routes/agents.js +50 -0
  275. package/dist/routes/auth.js +8 -1
  276. package/dist/routes/chat.js +280 -18
  277. package/dist/routes/costs.js +32 -0
  278. package/dist/routes/cron.js +80 -5
  279. package/dist/routes/feeds.d.ts +10 -0
  280. package/dist/routes/feeds.js +168 -0
  281. package/dist/routes/mcp.js +21 -0
  282. package/dist/routes/memory.js +130 -0
  283. package/dist/routes/skills.js +129 -0
  284. package/dist/routes/teams.d.ts +9 -0
  285. package/dist/routes/teams.js +210 -0
  286. package/dist/routes/tools.js +14 -0
  287. package/dist/routes/users.js +2 -0
  288. package/dist/server/route-loader.js +3 -1
  289. package/dist/server/stream-bridge.d.ts +19 -0
  290. package/dist/server/stream-bridge.js +38 -0
  291. package/dist/server.js +313 -36
  292. package/dist/skills/marketplace.d.ts +87 -0
  293. package/dist/skills/marketplace.js +268 -0
  294. package/dist/storage/index.d.ts +14 -0
  295. package/dist/storage/index.js +64 -3
  296. package/dist/storage/schema.d.ts +4 -4
  297. package/dist/storage/schema.js +1 -1
  298. package/dist/teams/index.d.ts +110 -0
  299. package/dist/teams/index.js +365 -0
  300. package/dist/tickets/types.d.ts +39 -39
  301. package/dist/types/summary.d.ts +5 -5
  302. package/dist/utils/auto-update.d.ts +23 -0
  303. package/dist/utils/auto-update.js +157 -0
  304. package/dist/utils/offline-detect.d.ts +55 -0
  305. package/dist/utils/offline-detect.js +121 -0
  306. package/dist/utils/pid-file.d.ts +36 -0
  307. package/dist/utils/pid-file.js +125 -0
  308. package/dist/utils/prevent-sleep.d.ts +27 -0
  309. package/dist/utils/prevent-sleep.js +95 -0
  310. package/dist/utils/sanitizer.d.ts +57 -0
  311. package/dist/utils/sanitizer.js +174 -0
  312. package/docker-compose.yml +13 -137
  313. package/package.json +31 -6
  314. package/skills/deploy-cloudflare/SKILL.md +62 -0
  315. package/skills/deploy-vercel/SKILL.md +67 -0
  316. package/skills/docker-deploy/SKILL.md +158 -0
  317. package/skills/full-stack-builder/SKILL.md +92 -0
  318. package/skills/humanizer/SKILL.md +488 -0
  319. package/skills/profclaw-assistant/SKILL.md +85 -56
  320. package/ui/dist/assets/ActivityView-Da6HQ8ws.js +1 -0
  321. package/ui/dist/assets/AgentList-H58R0kX3.js +1 -0
  322. package/ui/dist/assets/AnalyticsDashboard-B28AeRsc.js +1 -0
  323. package/ui/dist/assets/AreaChart-DwLzeAQ8.js +1 -0
  324. package/ui/dist/assets/CartesianChart-piKQsTAR.js +36 -0
  325. package/ui/dist/assets/ChatView-Dbj8rxU5.js +10 -0
  326. package/ui/dist/assets/CostsDashboard-C6F5df0F.js +1 -0
  327. package/ui/dist/assets/EstimateSelect-wga0rUKX.js +1 -0
  328. package/ui/dist/assets/FeedDashboard-Ef6FEzEf.js +1 -0
  329. package/ui/dist/assets/FloatingChatbot-0yhkUeCq.js +2 -0
  330. package/ui/dist/assets/InviteCodeManagement-tUXfx4Bc.js +2 -0
  331. package/ui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  332. package/ui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  333. package/ui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  334. package/ui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  335. package/ui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  336. package/ui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  337. package/ui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  338. package/ui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  339. package/ui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  340. package/ui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  341. package/ui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  342. package/ui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  343. package/ui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  344. package/ui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  345. package/ui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  346. package/ui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  347. package/ui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  348. package/ui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  349. package/ui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  350. package/ui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  351. package/ui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  352. package/ui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  353. package/ui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  354. package/ui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  355. package/ui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  356. package/ui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  357. package/ui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  358. package/ui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  359. package/ui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  360. package/ui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  361. package/ui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  362. package/ui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  363. package/ui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  364. package/ui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  365. package/ui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  366. package/ui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  367. package/ui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  368. package/ui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  369. package/ui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  370. package/ui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  371. package/ui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  372. package/ui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  373. package/ui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  374. package/ui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  375. package/ui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  376. package/ui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  377. package/ui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  378. package/ui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  379. package/ui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  380. package/ui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  381. package/ui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  382. package/ui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  383. package/ui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  384. package/ui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  385. package/ui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  386. package/ui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  387. package/ui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  388. package/ui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  389. package/ui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  390. package/ui/dist/assets/MarketplacePage-DGrLtolR.js +1 -0
  391. package/ui/dist/assets/{ProjectDetail--gPfvATB.js → ProjectDetail-BgWvA6UP.js} +2 -2
  392. package/ui/dist/assets/ProjectIcon-TDuliqwg.js +1 -0
  393. package/ui/dist/assets/ProjectList-DXgM4187.js +1 -0
  394. package/ui/dist/assets/{Settings-1kaf7VHE.js → Settings-xA8Zhi3p.js} +3 -3
  395. package/ui/dist/assets/StatusIndicator-B8vfFAxg.js +1 -0
  396. package/ui/dist/assets/{SummaryDetail-DV3AmONk.js → SummaryDetail-eedRfTtF.js} +2 -2
  397. package/ui/dist/assets/SummaryList-CLNX2P84.js +1 -0
  398. package/ui/dist/assets/TaskDetail-BtWclNiR.js +1 -0
  399. package/ui/dist/assets/TaskList-JjODAgSc.js +1 -0
  400. package/ui/dist/assets/TeamsPage-CBK5iAyx.js +1 -0
  401. package/ui/dist/assets/TicketBoard-C9aJNNYp.js +1 -0
  402. package/ui/dist/assets/TicketDetail-CV5JmL31.js +1 -0
  403. package/ui/dist/assets/TicketList-68V4lzUz.js +1 -0
  404. package/ui/dist/assets/UserManagement-DKTb6UpE.js +2 -0
  405. package/ui/dist/assets/ViewSwitcher-BvdQht2Y.js +1 -0
  406. package/ui/dist/assets/alert-dialog-O6qBOv_f.js +1 -0
  407. package/ui/dist/assets/{archive-BsLa7brF.js → archive-CX7UvZpf.js} +1 -1
  408. package/ui/dist/assets/badge-BbfnwDJP.js +1 -0
  409. package/ui/dist/assets/{bug-CmZI7jqM.js → bug-3WX0394-.js} +1 -1
  410. package/ui/dist/assets/{calendar-Bf0t2B82.js → calendar-buq77TaS.js} +1 -1
  411. package/ui/dist/assets/{chevron-up-CoUsOvZj.js → chevron-up-4ymsBJRo.js} +1 -1
  412. package/ui/dist/assets/{circle-x-Dgw11LgT.js → circle-x-ByXtwR6Y.js} +1 -1
  413. package/ui/dist/assets/constants-CVdDh7p0.js +1 -0
  414. package/ui/dist/assets/{cpu-DiPMQICV.js → cpu-CiuoCeDY.js} +1 -1
  415. package/ui/dist/assets/{database-BwTfupDi.js → database-BWXSBg5a.js} +1 -1
  416. package/ui/dist/assets/dialog-lDg4NvMV.js +1 -0
  417. package/ui/dist/assets/dollar-sign-Dmijd6DP.js +1 -0
  418. package/ui/dist/assets/{ellipsis-UJx4Xnf6.js → ellipsis-vT-5SVIp.js} +1 -1
  419. package/ui/dist/assets/{ellipsis-vertical-DoULYEKn.js → ellipsis-vertical-B4tAX_bL.js} +1 -1
  420. package/ui/dist/assets/feature-markdown-DBo5Q7uq.js +289 -0
  421. package/ui/dist/assets/{file-code-B2UrJLwi.js → file-code-ChOWdKXf.js} +1 -1
  422. package/ui/dist/assets/{folder-open-BJi577JH.js → folder-open-CkOUbIiP.js} +1 -1
  423. package/ui/dist/assets/{funnel-PkaD_HSR.js → funnel-uZkoSPP-.js} +1 -1
  424. package/ui/dist/assets/{git-branch-C_K30am0.js → git-branch-CwvUxj7C.js} +1 -1
  425. package/ui/dist/assets/{git-commit-horizontal-IT6ecxWQ.js → git-commit-horizontal-lxPzCvhD.js} +1 -1
  426. package/ui/dist/assets/{globe-f-jjCa_g.js → globe-D_WpJdsj.js} +1 -1
  427. package/ui/dist/assets/{hash-DNEv8Elo.js → hash-CA0hJ7vh.js} +1 -1
  428. package/ui/dist/assets/{history-BQSBo_1Q.js → history-CEWMLELs.js} +1 -1
  429. package/ui/dist/assets/inbox-ehtOptTV.js +1 -0
  430. package/ui/dist/assets/{index-nS3EErDg.js → index-C1rhbml4.js} +3 -3
  431. package/ui/dist/assets/index-CR8gfCHv.js +1 -0
  432. package/ui/dist/assets/index-DVXMpWai.js +1 -0
  433. package/ui/dist/assets/index-DaDJMM2v.js +1 -0
  434. package/ui/dist/assets/index-Djdq_0xu.js +1 -0
  435. package/ui/dist/assets/index-M46Gcb8K.css +1 -0
  436. package/ui/dist/assets/index-sEBN7w8J.js +109 -0
  437. package/ui/dist/assets/layers-C6Mhf8Nk.js +1 -0
  438. package/ui/dist/assets/{layout-dashboard-CcKt1hXw.js → layout-dashboard-BRUM0kpT.js} +1 -1
  439. package/ui/dist/assets/{lightbulb-Jhp7FvbU.js → lightbulb-CN2q1O5l.js} +1 -1
  440. package/ui/dist/assets/{link-2-DdO7ostF.js → link-2-CC4E28yJ.js} +1 -1
  441. package/ui/dist/assets/markdown-renderer-C6ENbB0u.js +10 -0
  442. package/ui/dist/assets/markdown-renderer-CfVKi3_s.css +1 -0
  443. package/ui/dist/assets/{message-square-CBgH65X7.js → message-square-Bbb241am.js} +1 -1
  444. package/ui/dist/assets/package-CwT3IzFx.js +1 -0
  445. package/ui/dist/assets/{pencil-CYXCEPQh.js → pencil-CDmiHzoj.js} +1 -1
  446. package/ui/dist/assets/{play-d1ONaH0-.js → play-tjy5jMQX.js} +1 -1
  447. package/ui/dist/assets/popover-CFHZf3pE.js +1 -0
  448. package/ui/dist/assets/progress-BboUHuLf.js +1 -0
  449. package/ui/dist/assets/{rocket-DhvUetsk.js → rocket--8ZHgdXJ.js} +1 -1
  450. package/ui/dist/assets/select-n108rXny.js +1 -0
  451. package/ui/dist/assets/{send-P0r5D7td.js → send-Cu7MR2Qh.js} +1 -1
  452. package/ui/dist/assets/server-DmodxZp-.js +1 -0
  453. package/ui/dist/assets/{settings-2-ocj5uHGx.js → settings-2-CkRNqkxj.js} +1 -1
  454. package/ui/dist/assets/sheet-7aUJkyzU.js +1 -0
  455. package/ui/dist/assets/{shield-check-DfVdE34l.js → shield-check-ViI3nMKE.js} +1 -1
  456. package/ui/dist/assets/{shield-off-8l0J6R-8.js → shield-off-DN3tagkn.js} +1 -1
  457. package/ui/dist/assets/skeleton-C0E1Nfro.js +1 -0
  458. package/ui/dist/assets/{smartphone-77_g3SQn.js → smartphone-5FghiXpA.js} +1 -1
  459. package/ui/dist/assets/{square-Ckzsr3Rn.js → square-DiNSx8K7.js} +1 -1
  460. package/ui/dist/assets/star-DhdFVidS.js +1 -0
  461. package/ui/dist/assets/switch-CIgVbZqQ.js +1 -0
  462. package/ui/dist/assets/table-BC56FVMV.js +1 -0
  463. package/ui/dist/assets/{tag-C35mgoEv.js → tag-CH_vQliw.js} +1 -1
  464. package/ui/dist/assets/textarea-CxDiKFXZ.js +1 -0
  465. package/ui/dist/assets/{timer-DHJBS2w1.js → timer-CdGVTb60.js} +1 -1
  466. package/ui/dist/assets/tooltip-BuW9A5UO.js +1 -0
  467. package/ui/dist/assets/{trash-2-keO5tKPE.js → trash-2-CucZJL0N.js} +1 -1
  468. package/ui/dist/assets/trending-down-BCezC1z2.js +1 -0
  469. package/ui/dist/assets/{trending-up-BBv8KbrY.js → trending-up-C5OYX2k2.js} +1 -1
  470. package/ui/dist/assets/vendor-query-C0p7b53x.js +4 -0
  471. package/ui/dist/assets/vendor-react-Mc5_kfYG.js +12 -0
  472. package/ui/dist/assets/vendor-ui-CXPAUBFv.js +51 -0
  473. package/ui/dist/assets/{wand-sparkles-BusQ52ZK.js → wand-sparkles-BaH6pJnc.js} +1 -1
  474. package/ui/dist/assets/{wrench-02YaOSiK.js → wrench-CjxjP6ok.js} +1 -1
  475. package/ui/dist/index.html +5 -2
  476. package/ui/dist/assets/ActivityView-BeshZXmE.js +0 -1
  477. package/ui/dist/assets/AgentList-QVHeldPi.js +0 -1
  478. package/ui/dist/assets/AnalyticsDashboard-C9R97dXE.js +0 -1
  479. package/ui/dist/assets/AreaChart-B73gaiVQ.js +0 -1
  480. package/ui/dist/assets/CartesianChart-CXYL2R-A.js +0 -36
  481. package/ui/dist/assets/ChatView-qjZErlrp.js +0 -10
  482. package/ui/dist/assets/CostsDashboard-O4DCLy1i.js +0 -1
  483. package/ui/dist/assets/EstimateSelect-1hQf4Osk.js +0 -1
  484. package/ui/dist/assets/FloatingChatbot-BZBzrJxd.js +0 -2
  485. package/ui/dist/assets/InviteCodeManagement-LEoGqYeA.js +0 -2
  486. package/ui/dist/assets/ProjectIcon-Chd_ofsw.js +0 -1
  487. package/ui/dist/assets/ProjectList-BvUfVB6c.js +0 -4
  488. package/ui/dist/assets/StatusIndicator-pRfkNcdV.js +0 -1
  489. package/ui/dist/assets/SummaryList-B6kXiTxL.js +0 -1
  490. package/ui/dist/assets/TaskDetail-CV6CzbOS.js +0 -1
  491. package/ui/dist/assets/TaskList-DL7brQKd.js +0 -1
  492. package/ui/dist/assets/TicketBoard-CrkkFj7C.js +0 -1
  493. package/ui/dist/assets/TicketDetail-hnnYclpD.js +0 -1
  494. package/ui/dist/assets/TicketList-CsDAyQCL.js +0 -1
  495. package/ui/dist/assets/UserManagement-BGFQyTSr.js +0 -2
  496. package/ui/dist/assets/ViewSwitcher-CnL0OqA8.js +0 -1
  497. package/ui/dist/assets/alert-dialog-SKM6Gjz4.js +0 -7
  498. package/ui/dist/assets/badge-CVHH1a-v.js +0 -1
  499. package/ui/dist/assets/brain-6o_RHVpe.js +0 -1
  500. package/ui/dist/assets/constants-Q5Zivl-a.js +0 -1
  501. package/ui/dist/assets/dialog-BUqN9Psj.js +0 -1
  502. package/ui/dist/assets/index-BUmnwPQr.js +0 -1
  503. package/ui/dist/assets/index-BfF5G4Cw.js +0 -1
  504. package/ui/dist/assets/index-C8N375c2.js +0 -1
  505. package/ui/dist/assets/index-CuxnqVVz.css +0 -1
  506. package/ui/dist/assets/index-CzMM3QOk.js +0 -1
  507. package/ui/dist/assets/index-lJlNPFVJ.js +0 -67
  508. package/ui/dist/assets/layers-jFqVrWMD.js +0 -1
  509. package/ui/dist/assets/markdown-renderer-n1ToC4XQ.js +0 -36
  510. package/ui/dist/assets/popover-CrmZgoWu.js +0 -1
  511. package/ui/dist/assets/progress-uv4SPkL5.js +0 -1
  512. package/ui/dist/assets/select-CeQ8AHGy.js +0 -1
  513. package/ui/dist/assets/server-CVHTZB72.js +0 -1
  514. package/ui/dist/assets/sheet-DuQExSho.js +0 -1
  515. package/ui/dist/assets/skeleton-TFiFJ3nB.js +0 -1
  516. package/ui/dist/assets/switch-CAePkd6k.js +0 -1
  517. package/ui/dist/assets/table-ZjAZ7hkt.js +0 -1
  518. package/ui/dist/assets/textarea-DsVPnSgR.js +0 -1
  519. package/ui/dist/assets/tooltip-BYmQ331W.js +0 -1
package/.env.example CHANGED
@@ -197,13 +197,25 @@ POOL_QUEUE_TIMEOUT_MS=30000
197
197
  # SEARCH & EMBEDDINGS
198
198
  # ════════════════════════════════════════════════════════════════════════════════
199
199
 
200
- # Web search via SearXNG
201
- SEARXNG_URL=https://searx.tiekoetter.com
200
+ # Web search via SearXNG (self-hosted only — public instances rate-limit heavily)
201
+ # SEARXNG_URL=https://searx.tiekoetter.com # disabled: 429 Too Many Requests
202
+
203
+ # Preferred: set one of these instead (sign up for a free tier key)
204
+ # BRAVE_API_KEY= # https://api.search.brave.com (2000 free/month)
205
+ # SERPER_API_KEY= # https://serper.dev (2500 free)
206
+ # TAVILY_API_KEY= # https://tavily.com (1000 free/month)
202
207
 
203
208
  # Embedding provider: local, openai, voyage
204
209
  EMBEDDING_PROVIDER=local
205
210
  # VOYAGE_API_KEY=xxx
206
211
 
212
+ # ════════════════════════════════════════════════════════════════════════════════
213
+ # CONTENT MODERATION (optional)
214
+ # ════════════════════════════════════════════════════════════════════════════════
215
+
216
+ # Content moderation (optional, uses glin-profanity)
217
+ # CONTENT_FILTER=true
218
+
207
219
  # ════════════════════════════════════════════════════════════════════════════════
208
220
  # DOCKER / MONITORING (docker-compose only)
209
221
  # ════════════════════════════════════════════════════════════════════════════════
package/CHANGELOG.md CHANGED
@@ -2,6 +2,58 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [2.4.0](https://github.com/profclaw/profclaw/compare/v2.3.0...v2.4.0) (2026-10-05)
6
+
7
+
8
+ ### Features
9
+
10
+ * OS-level sandbox for the run bash tool ([#71](https://github.com/profclaw/profclaw/issues/71)) ([cc6ab33](https://github.com/profclaw/profclaw/commit/cc6ab33a7f683b20137b118e600300a200e88d72))
11
+ * tamper-evident run receipts with verify and HTML viewer ([#74](https://github.com/profclaw/profclaw/issues/74)) ([322307f](https://github.com/profclaw/profclaw/commit/322307f35f843825d51f7f87ac2ee4ac2ee0af88))
12
+ * token-efficient harness and verified autonomous run ([#68](https://github.com/profclaw/profclaw/issues/68)) ([68826ca](https://github.com/profclaw/profclaw/commit/68826ca9cd627aac6a6a9119b1c2178d6b7407be))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * judge the first run attempt against a baseline, fix wrong unified diffs ([#70](https://github.com/profclaw/profclaw/issues/70)) ([19b47ad](https://github.com/profclaw/profclaw/commit/19b47ad6aa330e557f202c8a00d44d371153eb81))
18
+ * time out the Docker ping so a wedged daemon cannot hang startup ([#72](https://github.com/profclaw/profclaw/issues/72)) ([72dd4f2](https://github.com/profclaw/profclaw/commit/72dd4f2ef42df0a0e5624518fb3b1b02ff0e374e))
19
+
20
+ ## [2.3.0](https://github.com/profclaw/profclaw/compare/v2.2.0...v2.3.0) (2026-04-13)
21
+
22
+
23
+ ### Features
24
+
25
+ * integrate glin-profanity content filter + thesvg brand icons ([#44](https://github.com/profclaw/profclaw/issues/44)) ([67b84d6](https://github.com/profclaw/profclaw/commit/67b84d6f20247f9933007fcbbd6b44ec911406c8))
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * npm OIDC publish - upgrade to npm 11, unset NODE_AUTH_TOKEN ([a49ffdd](https://github.com/profclaw/profclaw/commit/a49ffddfc982a43245c23178d3d3d61eef5148db))
31
+
32
+
33
+ ### Performance Improvements
34
+
35
+ * parallel multi-arch Docker builds + pico image in CI ([5fd0d5c](https://github.com/profclaw/profclaw/commit/5fd0d5c3b5b0da877a879ac4636e202bdedc36d7))
36
+
37
+ ## [2.2.0](https://github.com/profclaw/profclaw/compare/v2.1.0...v2.2.0) (2026-04-13)
38
+
39
+
40
+ ### Features
41
+
42
+ * pico auth bypass, docs overhaul, issue templates, quickstart guide ([#32](https://github.com/profclaw/profclaw/issues/32)) ([d80b7ac](https://github.com/profclaw/profclaw/commit/d80b7ac6b63a72cf163791138c99c13baca8ab39))
43
+ * token optimization, Qwen 3 support, tool routing ([#30](https://github.com/profclaw/profclaw/issues/30)) ([6a3d2bd](https://github.com/profclaw/profclaw/commit/6a3d2bd91fd5b72514e5170a29d5a30e0548f315))
44
+
45
+
46
+ ### Bug Fixes
47
+
48
+ * add missing @tiptap/core and @tiptap/suggestion to ui deps ([557abe1](https://github.com/profclaw/profclaw/commit/557abe109fe1f6ff71c1444fa1e53f93a6d24820))
49
+
50
+ ## [2.1.0](https://github.com/profclaw/profclaw/compare/v2.0.0...v2.1.0) (2026-04-11)
51
+
52
+
53
+ ### Features
54
+
55
+ * engine hardening, Ink TUI, launch-ready enhancements ([#21](https://github.com/profclaw/profclaw/issues/21)) ([7bb38cf](https://github.com/profclaw/profclaw/commit/7bb38cf4006a2c68ec3c7cda70e8808964654c48))
56
+
5
57
  ## [2.0.0](https://github.com/profclaw/profclaw/releases/tag/v2.0.0) (2026-03-14)
6
58
 
7
59
  Initial public beta release.
package/CONTRIBUTING.md CHANGED
@@ -112,6 +112,26 @@ skills/ - Built-in skill definitions
112
112
  2. Register in `src/chat/execution/tools/index.ts`
113
113
  3. Add tests
114
114
 
115
+ ## Release checklist
116
+
117
+ For maintainers publishing a new version:
118
+
119
+ 1. Merge PRs to `main`
120
+ 2. Release-please auto-creates a release PR (bumps version, updates CHANGELOG)
121
+ 3. Merge the release PR. This creates a git tag and triggers npm publish via CI.
122
+ 4. Build and push Docker images locally:
123
+ ```bash
124
+ ./scripts/release-docker.sh
125
+ ```
126
+ The script builds both main and pico images, shows sizes, and asks before pushing to ghcr.io.
127
+ 5. Verify the release:
128
+ ```bash
129
+ npm info profclaw version # npm
130
+ docker pull ghcr.io/profclaw/profclaw:latest # Docker
131
+ ```
132
+
133
+ Docker images are built locally (not in CI) to save GitHub Actions minutes. The script handles ghcr.io login via `gh auth`.
134
+
115
135
  ## License
116
136
 
117
137
  By contributing, you agree that your contributions will be licensed under the AGPL-3.0 license.
package/Dockerfile CHANGED
@@ -1,7 +1,7 @@
1
1
  # ====================
2
2
  # Stage 1: Base
3
3
  # ====================
4
- FROM node:22-alpine AS base
4
+ FROM node:22-slim AS base
5
5
 
6
6
  # Install pnpm
7
7
  RUN corepack enable && corepack prepare pnpm@latest --activate
@@ -19,60 +19,76 @@ RUN pnpm install --frozen-lockfile
19
19
  # Stage 3: Dependencies (UI)
20
20
  # ====================
21
21
  FROM base AS ui-deps
22
- WORKDIR /app/ui
23
- COPY ui/package.json ui/pnpm-lock.yaml* ./
24
- RUN pnpm install --frozen-lockfile
22
+ WORKDIR /app
23
+ # Workspace lockfile lives at root — copy both for pnpm resolution
24
+ COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
25
+ COPY ui/package.json ./ui/
26
+ RUN pnpm install --frozen-lockfile --filter ui
25
27
 
26
28
  # ====================
27
- # Stage 4: Build Backend (tsc only — UI is built in stage 5)
29
+ # Stage 4: Build Backend (tsc only)
28
30
  # ====================
29
31
  FROM base AS build-backend
30
32
  COPY --from=deps /app/node_modules ./node_modules
31
33
  COPY . .
32
- RUN ./node_modules/.bin/tsc --project tsconfig.json
34
+ RUN ./node_modules/.bin/tsc --project tsconfig.json --skipLibCheck
33
35
 
34
36
  # ====================
35
- # Stage 5: Build UI
37
+ # Stage 5: Build UI (vite build)
36
38
  # ====================
37
39
  FROM base AS build-ui
38
40
  WORKDIR /app/ui
41
+ COPY --from=ui-deps /app/node_modules ../node_modules
39
42
  COPY --from=ui-deps /app/ui/node_modules ./node_modules
40
43
  COPY ui/ ./
41
44
  RUN pnpm build
42
45
 
43
46
  # ====================
44
- # Stage 6: Production
47
+ # Stage 6: Production dependencies (pruned)
48
+ # ====================
49
+ FROM base AS prod-deps
50
+ COPY package.json pnpm-lock.yaml* ./
51
+ RUN pnpm install --frozen-lockfile --prod && \
52
+ # Remove unnecessary files from node_modules to reduce image size
53
+ find node_modules -name "*.d.ts" -delete 2>/dev/null || true && \
54
+ find node_modules -name "*.map" -delete 2>/dev/null || true && \
55
+ find node_modules -name "README*" -delete 2>/dev/null || true && \
56
+ find node_modules -name "CHANGELOG*" -delete 2>/dev/null || true && \
57
+ find node_modules -name "LICENSE*" -delete 2>/dev/null || true && \
58
+ find node_modules -name ".npmignore" -delete 2>/dev/null || true && \
59
+ find node_modules -type d -name "test" -prune -exec rm -rf {} + 2>/dev/null || true && \
60
+ find node_modules -type d -name "tests" -prune -exec rm -rf {} + 2>/dev/null || true && \
61
+ find node_modules -type d -name "__tests__" -prune -exec rm -rf {} + 2>/dev/null || true
62
+
63
+ # ====================
64
+ # Stage 7: Production (pro mode - full features)
45
65
  # ====================
46
- FROM node:22-alpine AS production
66
+ FROM node:22-slim AS production
47
67
 
48
- # Install Chromium for Playwright, git for agent sandbox, dev tools
49
- RUN apk add --no-cache \
68
+ # Install runtime dependencies: Chromium for Playwright, git for agent sandbox
69
+ RUN apt-get update && apt-get install -y --no-install-recommends \
50
70
  chromium \
51
- nss \
52
- freetype \
53
- harfbuzz \
54
71
  ca-certificates \
55
- ttf-freefont \
56
72
  curl \
57
73
  git \
58
- && rm -rf /var/cache/apk/*
74
+ && rm -rf /var/lib/apt/lists/*
59
75
 
60
76
  # Enable pnpm via corepack (for agent sandbox: clone, build, lint)
61
77
  RUN corepack enable && corepack prepare pnpm@latest --activate
62
78
 
63
79
  # Set Playwright to use system Chromium
64
80
  ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
65
- ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser
81
+ ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium
66
82
 
67
83
  # Create non-root user for security
68
- RUN addgroup -g 1001 -S profclaw && \
69
- adduser -S profclaw -u 1001 -G profclaw
84
+ RUN groupadd -g 1001 profclaw && \
85
+ useradd -u 1001 -g profclaw -s /bin/bash -m profclaw
70
86
 
71
87
  WORKDIR /app
72
88
 
73
- # Copy backend artifacts
89
+ # Copy pruned production deps (smaller than full node_modules)
90
+ COPY --from=prod-deps /app/node_modules ./node_modules
74
91
  COPY --from=build-backend /app/dist ./dist
75
- COPY --from=build-backend /app/node_modules ./node_modules
76
92
  COPY --from=build-backend /app/package.json ./
77
93
 
78
94
  # Copy runtime config (settings.yml for storage tier, queue, etc.)
@@ -90,13 +106,13 @@ RUN mkdir -p /app/data && \
90
106
  chmod +x /app/dist/cli/index.js 2>/dev/null || true && \
91
107
  chown -R profclaw:profclaw /app
92
108
 
93
- # Production environment
109
+ # Production environment defaults (override via env_file or environment)
94
110
  ENV NODE_ENV=production
95
111
  ENV PORT=3000
96
112
  ENV PROFCLAW_MODE=pro
97
113
 
98
114
  # Health check
99
- HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
115
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
100
116
  CMD curl -f http://localhost:${PORT}/health || exit 1
101
117
 
102
118
  # Switch to non-root user
package/README.md CHANGED
@@ -5,8 +5,8 @@
5
5
  <h1 align="center">profClaw</h1>
6
6
 
7
7
  <p align="center">
8
- <b>Smart, lightweight AI agent engine.</b><br>
9
- Run locally on anything from a Raspberry Pi to a production VPS.
8
+ <b>Self-hosted AI agent engine for developers.</b><br>
9
+ 35 providers · 72 tools · 22 channels · runs on anything.
10
10
  </p>
11
11
 
12
12
  <p align="center">
@@ -14,21 +14,36 @@
14
14
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?style=for-the-badge" alt="License: AGPL-3.0"></a>
15
15
  <img src="https://img.shields.io/badge/Node.js-22%2B-339933?style=for-the-badge&logo=node.js&logoColor=white" alt="Node.js 22+">
16
16
  <a href="https://github.com/profclaw/profclaw/pkgs/container/profclaw"><img src="https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker"></a>
17
+ <img src="https://img.shields.io/badge/providers-35-f43f5e?style=for-the-badge" alt="35 providers">
18
+ <img src="https://img.shields.io/badge/tools-72-fb7185?style=for-the-badge" alt="72 tools">
19
+ <img src="https://img.shields.io/badge/channels-22-e11d48?style=for-the-badge" alt="22 channels">
20
+ <a href="https://discord.gg/Ar5pcaZB99"><img src="https://img.shields.io/discord/829168897080557579?style=for-the-badge&logo=discord&logoColor=white&label=discord&color=5865F2" alt="Discord"></a>
17
21
  </p>
18
22
 
19
23
  <p align="center">
20
24
  <a href="https://profclaw.ai/docs"><b>Docs</b></a> &middot;
21
25
  <a href="https://github.com/profclaw/profclaw/issues"><b>Report Bug</b></a> &middot;
22
- <a href="https://discord.gg/profclaw"><b>Discord</b></a>
26
+ <a href="https://discord.gg/Ar5pcaZB99"><b>Discord</b></a>
23
27
  </p>
24
28
 
25
29
  ---
26
30
 
31
+ <p align="center">
32
+ <img src="docs-local/demos/hero-chat.gif" alt="profClaw chat with Gemma 4, local and free" width="700">
33
+ </p>
34
+
35
+ <p align="center"><i>Chat with Gemma 4 locally. Zero cost. Runs on your Mac.</i></p>
36
+
37
+ ---
38
+
27
39
  ## Table of Contents
28
40
 
29
41
  - [Why profClaw](#why-profclaw)
30
42
  - [Features](#features)
31
- - [Installation](#installation)
43
+ - [Quick Start](#quick-start)
44
+ - [Interactive TUI](#interactive-tui)
45
+ - [Slash Commands](#slash-commands)
46
+ - [Headless Mode](#headless-mode)
32
47
  - [Deployment Modes](#deployment-modes)
33
48
  - [Where It Runs](#where-it-runs)
34
49
  - [Configuration](#configuration)
@@ -43,50 +58,57 @@
43
58
 
44
59
  ## Why profClaw
45
60
 
46
- Most AI coding tools are either cloud-only (Cursor, Devin) or single-purpose CLIs (Aider, SWE-Agent). profClaw is different:
47
-
48
- - **Local-first** - runs on your machine, your data stays local
49
- - **Multi-agent orchestration** - routes tasks to the right agent (Claude, GPT, Ollama) based on capability scoring, not just round-robin
50
- - **Real task queue** - BullMQ with dead letter queue, retry with backoff, priority scheduling
51
- - **Built-in project management** - tickets, Kanban, sprints, burndown charts, bi-directional sync with GitHub/Jira/Linear
52
- - **22 chat channels** - talk to your AI through Slack, Discord, Telegram, WhatsApp, Teams, or 17 others
53
- - **Cost tracking** - per-token budget management with alerts at 50/80/100%
54
- - **72 built-in tools** - file ops, git, browser automation, cron, web search, canvas, voice
55
- - **Mode-aware** - scales from a Raspberry Pi (pico) to a full team server (pro)
61
+ Most AI coding tools are cloud-only (Cursor, Devin) or single-purpose CLIs (Aider, SWE-Agent). profClaw runs on your machine, talks to 35 providers (or none, Ollama works offline), and does more than chat.
56
62
 
57
- No other open-source tool combines task orchestration, project management, and cost tracking in one self-hosted package.
63
+ - Local-first. Your data stays on your hardware.
64
+ - 35 AI providers, including Ollama for fully offline usage.
65
+ - Interactive TUI with streaming markdown, syntax highlighting, and a model switcher.
66
+ - Routes tasks to the right agent based on capability scoring.
67
+ - Real task queue with retry, backoff, and dead letter handling (BullMQ + Redis).
68
+ - 22 chat channels: Slack, Discord, Telegram, WhatsApp, Teams, and more.
69
+ - Per-token cost tracking with budget alerts.
70
+ - 72 built-in tools: file ops, git, browser automation, cron, web search, voice.
71
+ - Pico mode runs on a Raspberry Pi Zero 2W in ~140MB RAM.
58
72
 
59
73
  ## Features
60
74
 
61
75
  | | |
62
76
  |---|---|
63
- | **35 AI providers** | Anthropic, OpenAI, Google, Groq, Ollama, DeepSeek, Bedrock, and more |
64
- | **22 chat channels** | Slack, Discord, Telegram, WhatsApp, iMessage, Matrix, Teams, and 15 more |
65
- | **72 built-in tools** | File ops, git, browser automation, cron, web search, canvas, voice |
66
- | **50 skills** | Coding agent, GitHub issues, Notion, Obsidian, image gen, and more |
67
- | **MCP server** | Native Model Context Protocol - connect to any MCP-compatible client |
68
- | **Voice I/O** | STT (Whisper) + TTS (ElevenLabs/OpenAI/system) + Talk Mode |
69
- | **Plugin SDK** | Build and share third-party plugins via npm or ClawHub |
70
- | **3 deployment modes** | Pico (~140MB), Mini (~145MB), Pro (full features) |
77
+ | 35 AI providers | Anthropic, OpenAI, Google, Groq, Ollama, DeepSeek, Bedrock, and 28 more |
78
+ | 22 chat channels | Slack, Discord, Telegram, WhatsApp, iMessage, Matrix, Teams, and 15 more |
79
+ | 72 built-in tools | File ops, git, browser automation, cron, web search, canvas, voice |
80
+ | 50 skills | Coding agent, GitHub issues, Notion, Obsidian, image gen, and more |
81
+ | Interactive TUI | Streaming markdown, syntax highlighting, slash picker, model selector |
82
+ | MCP server | Model Context Protocol. Works with Claude Desktop, Cursor, any MCP client |
83
+ | Voice I/O | Whisper STT + TTS (ElevenLabs/OpenAI/system) + talk mode |
84
+ | Plugin SDK | Build and share plugins via npm or ClawHub |
85
+ | 3 deployment modes | Pico (~140MB), Mini (~145MB), Pro (full features) |
86
+
87
+ ## Quick Start
71
88
 
72
- ## Installation
73
-
74
- ### npm (recommended)
89
+ ```bash
90
+ npm install -g profclaw
91
+ profclaw init
92
+ profclaw chat --tui
93
+ ```
75
94
 
76
95
  ```bash
77
- npx profclaw onboard
96
+ # Verify
97
+ curl http://localhost:3000/health
78
98
  ```
79
99
 
80
- This runs the zero-to-running wizard: picks your AI provider, sets up config, and starts the server.
100
+ `profclaw init` scans your project, detects your stack, and writes a `PROFCLAW.md` context file. It picks up any AI provider keys already in your environment.
81
101
 
82
- Or install globally:
102
+ `profclaw chat --tui` opens the terminal UI with streaming responses, code highlighting, slash commands, and a model selector.
103
+
104
+ ### Full setup wizard
83
105
 
84
106
  ```bash
85
- npm install -g profclaw@latest
86
- profclaw setup
87
- profclaw serve
107
+ npx profclaw onboard
88
108
  ```
89
109
 
110
+ Walks you through provider setup, config, and server start. Takes about 5 minutes.
111
+
90
112
  ### Docker
91
113
 
92
114
  ```bash
@@ -118,15 +140,107 @@ docker compose --profile ai up -d
118
140
  curl -fsSL https://raw.githubusercontent.com/profclaw/profclaw/main/install.sh | bash
119
141
  ```
120
142
 
143
+ ## Interactive TUI
144
+
145
+ <p align="center">
146
+ <img src="docs-local/demos/tasks-demo.gif" alt="profClaw task management" width="700">
147
+ </p>
148
+
149
+ profClaw has a full terminal UI. No browser needed.
150
+
151
+ ```bash
152
+ profclaw chat --tui
153
+ # or
154
+ profclaw tui
155
+ ```
156
+
157
+ What you get:
158
+
159
+ - Streaming markdown rendered as the model responds
160
+ - Syntax-highlighted code blocks (100+ languages)
161
+ - Slash command picker: type `/` to browse skills
162
+ - Model selector: switch providers mid-conversation with `Ctrl+M`
163
+ - Tool execution panel showing every call, argument, and result
164
+ - Session history and full keyboard navigation
165
+
166
+ ```
167
+ ┌─ profClaw v2.x.x ─────────────────────────────────────────────┐
168
+ │ [Chat] [Tools] │
169
+ │ │
170
+ │ You: Review src/auth.ts for security issues │
171
+ │ │
172
+ │ Agent: I'll analyze auth.ts for security issues. read_file │
173
+ │ ───────── │
174
+ │ ## Security Analysis auth.ts │
175
+ │ │
176
+ │ **Critical**: JWT secret read from env without analyze │
177
+ │ fallback guard on line 42. If `JWT_SECRET` is ──────── │
178
+ │ undefined the app will sign tokens with `undefined`. auth.ts │
179
+ │ ... │
180
+ └─────────────────────────────── [claude-sonnet-4-6] [pro] ──────┘
181
+ ```
182
+
183
+ ## Slash Commands
184
+
185
+ Type `/` in any chat to run a skill. Skills are plain Markdown files, easy to create your own.
186
+
187
+ | Command | What it does |
188
+ |---|---|
189
+ | `/commit` | Write a conventional commit message for staged changes |
190
+ | `/review-pr 42` | Full code review of a pull request |
191
+ | `/deploy` | Run your deploy script with rollback awareness |
192
+ | `/summarize src/` | Summarize all files in a directory |
193
+ | `/web-research "topic"` | Research a topic across the web |
194
+ | `/analyze-code file.ts` | Security, performance, and style analysis |
195
+ | `/ticket PROJ-123` | Pull ticket context into the conversation |
196
+ | `/image "prompt"` | Generate an image via configured image provider |
197
+ | `/help` | List all available slash commands |
198
+ | `/exit` | Exit the current session |
199
+
200
+ See [Skills docs](https://profclaw.ai/docs/skills/overview) for all 50 built-in skills and how to create your own with a plain Markdown file.
201
+
202
+ ## Headless Mode
203
+
204
+ <p align="center">
205
+ <img src="docs-local/demos/tools-demo.gif" alt="profClaw agentic tool calling" width="700">
206
+ </p>
207
+
208
+ Run agents from scripts, CI pipelines, or other services:
209
+
210
+ ```bash
211
+ # One-shot message
212
+ profclaw chat "Summarize the last 10 git commits"
213
+
214
+ # JSON output for scripting
215
+ profclaw chat "List open TODOs in src/" --output json
216
+
217
+ # Run a skill headlessly
218
+ profclaw skill run commit --message "feat: add auth"
219
+
220
+ # Agent task with file context
221
+ profclaw agent run "Review src/ for security issues" --files src/
222
+
223
+ # Verify your setup
224
+ profclaw doctor
225
+ ```
226
+
227
+ REST API:
228
+
229
+ ```bash
230
+ curl -X POST http://localhost:3000/api/chat/message \
231
+ -H "Content-Type: application/json" \
232
+ -d '{"message": "List open GitHub issues", "provider": "anthropic"}'
233
+ ```
234
+
121
235
  ## Deployment Modes
122
236
 
123
- profClaw scales from a Raspberry Pi to a full production server:
237
+ Same binary, different scale. Set `PROFCLAW_MODE` and go:
124
238
 
125
239
  | Mode | What you get | RAM | Best for |
126
240
  |------|-------------|-----|----------|
127
241
  | **pico** | Agent + tools + 1 chat channel + cron. No UI. | ~140MB | Raspberry Pi, $5 VPS, home server |
128
242
  | **mini** | + Dashboard, integrations, 3 channels | ~145MB | Personal dev server, small VPS |
129
- | **pro** | + All channels, Redis queues, plugins, browser tools | ~120-200MB | Teams, production |
243
+ | **pro** | + All channels, Redis queues, plugins, browser tools | ~200MB | Teams, production |
130
244
 
131
245
  Set via `PROFCLAW_MODE=pico|mini|pro` environment variable.
132
246
 
@@ -146,7 +260,7 @@ profClaw requires Node.js 22+. For bare-metal embedded devices (ESP32, Arduino),
146
260
 
147
261
  ## Configuration
148
262
 
149
- The setup wizard (`profclaw setup`) handles everything interactively. Or set environment variables:
263
+ The setup wizard (`profclaw onboard`) handles everything interactively. Or set environment variables:
150
264
 
151
265
  ```bash
152
266
  # AI Provider (pick one)
@@ -162,7 +276,9 @@ PORT=3000
162
276
  REDIS_URL=redis://localhost:6379 # Required for pro mode
163
277
  ```
164
278
 
165
- See [`.env.example`](.env.example) for all options.
279
+ Run `profclaw doctor` to verify your configuration at any time.
280
+
281
+ See [`.env.example`](.env.example) for all 130+ options.
166
282
 
167
283
  ## AI Providers
168
284
 
@@ -183,7 +299,8 @@ See [`.env.example`](.env.example) for all options.
183
299
  | Together | Open models | No |
184
300
  | Fireworks | Open models | No |
185
301
  | Mistral | Mistral Large, Codestral | No |
186
- | ... and 22 more | HuggingFace, NVIDIA NIM, Cerebras, Replicate, Zhipu, Moonshot, Qwen, etc. | |
302
+ | LM Studio | Local models | Yes |
303
+ | ... and 21 more | HuggingFace, NVIDIA NIM, Cerebras, Replicate, Zhipu, Moonshot, Qwen, etc. | |
187
304
 
188
305
  ## Chat Channels
189
306
 
@@ -216,9 +333,11 @@ See [`.env.example`](.env.example) for all options.
216
333
 
217
334
  | Platform | Features |
218
335
  |----------|----------|
219
- | **GitHub** | Webhooks, OAuth, issue sync, PR automation |
220
- | **Jira** | Webhooks, OAuth, issue sync, transitions |
221
- | **Linear** | Webhooks, OAuth, issue sync |
336
+ | GitHub | Webhooks, OAuth, issue sync, PR automation |
337
+ | Jira | Webhooks, OAuth, issue sync, transitions |
338
+ | Linear | Webhooks, OAuth, issue sync |
339
+ | Cloudflare | Workers deployment, KV, D1 |
340
+ | Tailscale | Private network access |
222
341
 
223
342
  ## Architecture
224
343
 
@@ -234,12 +353,21 @@ src/
234
353
  providers/ 35 AI SDK providers
235
354
  skills/ Skill loader and registry
236
355
  mcp/ MCP server (stdio + SSE)
356
+ tui/ Interactive terminal UI (ink + blessed)
237
357
  types/ Shared TypeScript types
238
358
 
239
359
  ui/src/ React 19 + Vite dashboard (mini/pro only)
240
- skills/ Built-in skill definitions
360
+ skills/ Built-in skill definitions (Markdown)
241
361
  ```
242
362
 
363
+ Design decisions:
364
+ - Same binary scales from pico to pro. Features are gated at runtime.
365
+ - Adding an AI provider is one file implementing `ModelAdapter`.
366
+ - Skills are plain `.md` files. No code needed.
367
+ - BullMQ for production queues, in-memory fallback for pico/mini.
368
+
369
+ See [Architecture docs](https://profclaw.ai/docs/architecture/overview) for a deep dive.
370
+
243
371
  ## Development
244
372
 
245
373
  ```bash
@@ -256,6 +384,15 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for full guidelines.
256
384
 
257
385
  See [SECURITY.md](SECURITY.md) for our security policy and how to report vulnerabilities.
258
386
 
387
+ ## Need help?
388
+
389
+ - [Quickstart guide](https://docs.profclaw.ai/guides/quickstart)
390
+ - [Full docs](https://docs.profclaw.ai)
391
+ - [Report a bug](https://github.com/profclaw/profclaw/issues/new?template=bug_report.md)
392
+ - [Discord](https://discord.gg/Ar5pcaZB99): the #profclaw forum on the GLINR community server
393
+
394
+ <a href="https://discord.gg/Ar5pcaZB99"><img src="https://discord.com/api/guilds/829168897080557579/widget.png?style=banner2" alt="Join the GLINR Discord" /></a>
395
+
259
396
  ## License
260
397
 
261
398
  [AGPL-3.0](LICENSE)
@@ -3,6 +3,24 @@
3
3
 
4
4
  pricing:
5
5
  # Anthropic Models
6
+ # Verified: https://platform.claude.com/docs/en/about-claude/models/overview (2026-09-26)
7
+ claude-fable-5-1:
8
+ provider: anthropic
9
+ inputRate: 10.00
10
+ outputRate: 50.00
11
+ claude-opus-5-5:
12
+ provider: anthropic
13
+ inputRate: 4.00
14
+ outputRate: 20.00
15
+ claude-sonnet-5:
16
+ provider: anthropic
17
+ inputRate: 2.00
18
+ outputRate: 10.00
19
+ claude-haiku-4-5:
20
+ provider: anthropic
21
+ inputRate: 1.00
22
+ outputRate: 5.00
23
+ # Legacy (unverified this pass)
6
24
  claude-3-5-sonnet:
7
25
  provider: anthropic
8
26
  inputRate: 3.00
@@ -16,7 +34,7 @@ pricing:
16
34
  inputRate: 0.25
17
35
  outputRate: 1.25
18
36
 
19
- # OpenAI Models
37
+ # OpenAI Models (unverified this pass, left unchanged)
20
38
  gpt-4o:
21
39
  provider: openai
22
40
  inputRate: 5.00
@@ -30,7 +48,7 @@ pricing:
30
48
  inputRate: 0.50
31
49
  outputRate: 1.50
32
50
 
33
- # Google Models
51
+ # Google Models (unverified this pass, left unchanged)
34
52
  gemini-1.5-pro:
35
53
  provider: google
36
54
  inputRate: 3.50
@@ -40,6 +58,12 @@ pricing:
40
58
  inputRate: 0.35
41
59
  outputRate: 1.05
42
60
 
61
+ # Local open-weight models via Ollama: no per-token cost
62
+ gemma4:
63
+ provider: other
64
+ inputRate: 0
65
+ outputRate: 0
66
+
43
67
  defaultPricing:
44
68
  provider: other
45
69
  inputRate: 5.00
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Agent Summary Tracker
3
+ *
4
+ * Provides real-time 1-2 word progress summaries of what agents are doing,
5
+ * suitable for display in CLI/UI progress indicators.
6
+ */
7
+ export interface AgentSummary {
8
+ sessionId: string;
9
+ status: 'idle' | 'thinking' | 'executing' | 'waiting';
10
+ currentAction: string;
11
+ lastToolName?: string;
12
+ lastToolArgs?: string;
13
+ stepCount: number;
14
+ tokensUsed: number;
15
+ startedAt: number;
16
+ updatedAt: number;
17
+ }
18
+ type SseBroadcaster = (eventType: string, data: Record<string, unknown>) => void;
19
+ export declare class AgentSummaryTracker {
20
+ private summaries;
21
+ private broadcaster;
22
+ registerSSEBroadcaster(broadcaster: SseBroadcaster): void;
23
+ start(sessionId: string): void;
24
+ update(sessionId: string, updates: Partial<AgentSummary>): void;
25
+ /**
26
+ * Auto-generate a human-readable summary from a tool call.
27
+ *
28
+ * Examples:
29
+ * read_file({ path: '/src/auth.ts' }) → "Reading auth.ts"
30
+ * write_file({ path: '/src/fix.ts' }) → "Writing fix.ts"
31
+ * bash({ command: 'npm test' }) → "Running npm test"
32
+ * search_files({ query: 'login' }) → "Searching for 'login'"
33
+ * git_commit({ message: 'fix: auth' }) → "Committing changes"
34
+ * complete_task → "Completing task"
35
+ * default → "Using {toolName}"
36
+ */
37
+ summarizeToolCall(sessionId: string, toolName: string, args: unknown): string;
38
+ get(sessionId: string): AgentSummary | undefined;
39
+ getAll(): AgentSummary[];
40
+ end(sessionId: string): void;
41
+ }
42
+ export declare function getAgentSummaryTracker(): AgentSummaryTracker;
43
+ export {};
44
+ //# sourceMappingURL=agent-summary.d.ts.map