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,56 @@
1
+ /**
2
+ * Summary Extractor
3
+ *
4
+ * Extracts structured summaries from agent outputs without
5
+ * requiring additional AI calls (zero-cost extraction).
6
+ */
7
+ import type { CreateSummaryInput, FileChange, Decision, Blocker, ArtifactReference } from '../types/summary.js';
8
+ import type { TaskResult, TaskArtifact } from '../types/task.js';
9
+ import type { SessionAggregate, HookInference } from '../hooks/types.js';
10
+ export declare const FILE_CREATED_PATTERN: RegExp;
11
+ export declare const FILE_MODIFIED_PATTERN: RegExp;
12
+ export declare const FILE_DELETED_PATTERN: RegExp;
13
+ export declare const COMMIT_SHA_PATTERN: RegExp;
14
+ export declare const PR_URL_PATTERN: RegExp;
15
+ export declare const GITHUB_ISSUE_PATTERN: RegExp;
16
+ export declare const GENERIC_ISSUE_PATTERN: RegExp;
17
+ export declare const BRANCH_PATTERN: RegExp;
18
+ export declare const DECISION_PATTERNS: RegExp[];
19
+ export declare const ERROR_PATTERN: RegExp;
20
+ export declare const WARNING_PATTERN: RegExp;
21
+ export declare const SUMMARY_SECTION_PATTERN: RegExp;
22
+ export declare const WHY_SECTION_PATTERN: RegExp;
23
+ export declare const HOW_SECTION_PATTERN: RegExp;
24
+ /**
25
+ * Extract a summary from a task result
26
+ */
27
+ export declare function extractFromTaskResult(result: TaskResult, context?: {
28
+ taskId?: string;
29
+ agent?: string;
30
+ model?: string;
31
+ startedAt?: Date;
32
+ }): Promise<CreateSummaryInput>;
33
+ /**
34
+ * Extract a summary from session aggregate
35
+ */
36
+ export declare function extractFromSession(session: SessionAggregate, inference?: HookInference): CreateSummaryInput;
37
+ /**
38
+ * Extract a summary from raw agent output
39
+ */
40
+ export declare function extractFromRawOutput(output: string, context?: {
41
+ agent?: string;
42
+ model?: string;
43
+ taskId?: string;
44
+ sessionId?: string;
45
+ }): CreateSummaryInput;
46
+ export declare function extractFileChanges(output: string, artifacts?: TaskArtifact[]): FileChange[];
47
+ export declare function extractDecisions(output: string): Decision[];
48
+ export declare function extractBlockers(output: string, error?: TaskResult['error']): Blocker[];
49
+ export declare function extractArtifacts(output: string, taskArtifacts?: TaskArtifact[]): ArtifactReference[];
50
+ export declare function extractSection(output: string, pattern: RegExp): string | undefined;
51
+ export declare function generateWhatChanged(files: FileChange[], artifacts: ArtifactReference[]): string;
52
+ export declare function isValidFilePath(path: string): boolean;
53
+ export declare function inferTaskType(output: string, files: FileChange[], title?: string): string;
54
+ export declare function inferComponent(files: FileChange[]): string | undefined;
55
+ export declare function generateSmartTitle(whatChanged: string, files: FileChange[], artifacts: ArtifactReference[], taskType: string): string;
56
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1,377 @@
1
+ /**
2
+ * Summary Extractor
3
+ *
4
+ * Extracts structured summaries from agent outputs without
5
+ * requiring additional AI calls (zero-cost extraction).
6
+ */
7
+ import { getSettings } from '../settings/index.js';
8
+ import { getOllamaService } from '../intelligence/ollama.js';
9
+ // Patterns for extraction
10
+ export const FILE_CREATED_PATTERN = /(?:created?|added?|wrote?|new file)[:\s]+[`"']?([a-zA-Z0-9_\-\.\/]+\.[a-z0-9]+|(?:\.[a-z0-9_\-]+))[`"']?/gi;
11
+ export const FILE_MODIFIED_PATTERN = /(?:modified?|updated?|changed?|edited?|wrote?)[:\s]+[`"']?([a-zA-Z0-9_\-\.\/]+\.[a-z0-9]+|(?:\.[a-z0-9_\-]+))[`"']?/gi;
12
+ export const FILE_DELETED_PATTERN = /(?:deleted?|removed?)[:\s]+[`"']?([a-zA-Z0-9_\-\.\/]+\.[a-z0-9]+|(?:\.[a-z0-9_\-]+))[`"']?/gi;
13
+ export const COMMIT_SHA_PATTERN = /\b([a-f0-9]{7,40})\b/g;
14
+ export const PR_URL_PATTERN = /https:\/\/(?:github\.com|gitlab\.com)\/[^/]+\/[^/]+\/(?:pull|merge_requests)\/(\d+)/gi;
15
+ export const GITHUB_ISSUE_PATTERN = /#(\d+)/g;
16
+ export const GENERIC_ISSUE_PATTERN = /\b([A-Z]{2,10}-\d+)\b/g;
17
+ export const BRANCH_PATTERN = /(?:branch|checkout|switch|on)[:\s]+[`"']?([a-zA-Z0-9_\-./]+)[`"']?/gi;
18
+ export const DECISION_PATTERNS = [
19
+ /(?:decided?|chose?|opted?|selected?|used|implemented)(?:\s+to)?[:\s]+(.+?)(?:\.|\n|$)/gi,
20
+ /(?:instead of|rather than)[:\s]+(.+?)(?:,|\.|\n|$)/gi,
21
+ ];
22
+ export const ERROR_PATTERN = /(?:error|failed?|couldn't|cannot|issue)[:\s]+(.+?)(?:\.|$)/gi;
23
+ export const WARNING_PATTERN = /(?:warning|warn|caution)[:\s]+(.+?)(?:\.|$)/gi;
24
+ export const SUMMARY_SECTION_PATTERN = /##?\s*(?:summary|what changed|changes)[:\s]*\n([\s\S]*?)(?=\n##|$)/i;
25
+ export const WHY_SECTION_PATTERN = /##?\s*(?:why|motivation|reason)[:\s]*\n([\s\S]*?)(?=\n##|$)/i;
26
+ export const HOW_SECTION_PATTERN = /##?\s*(?:how|approach|implementation)[:\s]*\n([\s\S]*?)(?=\n##|$)/i;
27
+ const TASK_TYPE_KEYWORDS = {
28
+ bug_fix: ['fix', 'bug', 'issue', 'error', 'crash', 'broken', 'repair', 'patch', 'resolve'],
29
+ feature: ['add', 'new', 'implement', 'create', 'feature', 'introduce', 'enable'],
30
+ refactor: ['refactor', 'restructure', 'reorganize', 'clean', 'improve', 'simplify', 'extract'],
31
+ documentation: ['docs', 'documentation', 'readme', 'comment', 'jsdoc', 'typedoc', 'explain'],
32
+ test: ['test', 'spec', 'coverage', 'mock', 'stub', 'jest', 'vitest', 'testing'],
33
+ performance: ['performance', 'perf', 'speed', 'optimize', 'cache', 'lazy', 'faster', 'memory'],
34
+ security: ['security', 'auth', 'password', 'permission', 'vulnerability', 'xss', 'csrf', 'token', 'encrypt'],
35
+ chore: ['chore', 'upgrade', 'dependency', 'package', 'version', 'config', 'lint', 'build', 'gitignore'],
36
+ };
37
+ const COMPONENT_PATTERNS = [
38
+ { pattern: /\/(components?|ui)\//i, component: 'ui' },
39
+ { pattern: /\/(views?|pages?|screens?)\//i, component: 'views' },
40
+ { pattern: /\/(api|routes?|endpoints?)\//i, component: 'api' },
41
+ { pattern: /\/(utils?|helpers?|lib)\//i, component: 'utils' },
42
+ { pattern: /\/(hooks?)\//i, component: 'hooks' },
43
+ { pattern: /\/(store|state|redux|context)\//i, component: 'state' },
44
+ { pattern: /\/(types?|interfaces?)\//i, component: 'types' },
45
+ { pattern: /\/(tests?|specs?|__tests__)\//i, component: 'tests' },
46
+ { pattern: /\/(styles?|css|scss)\//i, component: 'styles' },
47
+ { pattern: /\/(auth|authentication|login)\//i, component: 'auth' },
48
+ { pattern: /\/(database|db|storage|models?)\//i, component: 'database' },
49
+ { pattern: /\/(config|settings)\//i, component: 'config' },
50
+ ];
51
+ /**
52
+ * Extract a summary from a task result
53
+ */
54
+ export async function extractFromTaskResult(result, context) {
55
+ const settings = await getSettings();
56
+ if (settings.aiProvider?.defaultProvider === 'ollama') {
57
+ const ollama = getOllamaService();
58
+ const summary = await ollama.generateSummary(result, { taskId: context?.taskId, agent: context?.agent, model: context?.model });
59
+ return {
60
+ ...summary,
61
+ taskId: context?.taskId,
62
+ agent: context?.agent || 'ollama',
63
+ model: context?.model,
64
+ rawOutput: result.output,
65
+ };
66
+ }
67
+ const output = result.output || '';
68
+ const summary = extractFromRawOutput(output, {
69
+ taskId: context?.taskId,
70
+ agent: context?.agent,
71
+ model: context?.model,
72
+ });
73
+ if (result.error) {
74
+ summary.blockers = [
75
+ ...(summary.blockers || []),
76
+ { description: result.error.message, severity: 'error', resolved: false },
77
+ ];
78
+ }
79
+ return summary;
80
+ }
81
+ /**
82
+ * Extract a summary from session aggregate
83
+ */
84
+ export function extractFromSession(session, inference) {
85
+ let filesChanged = [];
86
+ if (session.filesCreated?.length || session.filesModified?.length) {
87
+ filesChanged = [
88
+ ...(session.filesCreated || []).map(path => ({ path, action: 'created' })),
89
+ ...(session.filesModified || []).map(path => ({ path, action: 'modified' }))
90
+ ];
91
+ }
92
+ else if (session.summary) {
93
+ filesChanged = extractFileChanges(session.summary);
94
+ }
95
+ const artifacts = session.summary ? extractArtifacts(session.summary) : [];
96
+ const whatChanged = inference?.commitMessage
97
+ || (session.summary ? generateWhatChanged(filesChanged, artifacts) : 'Session activity');
98
+ const taskType = inference?.taskType || (session.summary ? inferTaskType(session.summary, filesChanged) : 'chore');
99
+ const title = inference?.commitMessage || generateSmartTitle(whatChanged, filesChanged, artifacts, taskType);
100
+ return {
101
+ sessionId: session.sessionId,
102
+ agent: 'claude-code',
103
+ startedAt: session.startTime,
104
+ completedAt: session.endTime,
105
+ durationMs: session.endTime && session.startTime
106
+ ? session.endTime.getTime() - session.startTime.getTime()
107
+ : undefined,
108
+ title,
109
+ whatChanged,
110
+ filesChanged,
111
+ taskType,
112
+ component: inference?.component,
113
+ linkedIssue: inference?.linkedIssue,
114
+ linkedPr: inference?.linkedPr,
115
+ };
116
+ }
117
+ /**
118
+ * Extract a summary from raw agent output
119
+ */
120
+ export function extractFromRawOutput(output, context) {
121
+ const filesChanged = extractFileChanges(output);
122
+ const decisions = extractDecisions(output);
123
+ const blockers = extractBlockers(output);
124
+ const artifacts = extractArtifacts(output);
125
+ const whatChanged = extractSection(output, SUMMARY_SECTION_PATTERN) ||
126
+ generateWhatChanged(filesChanged, artifacts);
127
+ const whyChanged = extractSection(output, WHY_SECTION_PATTERN);
128
+ const howChanged = extractSection(output, HOW_SECTION_PATTERN);
129
+ const taskType = inferTaskType(output, filesChanged);
130
+ const component = inferComponent(filesChanged);
131
+ const title = generateSmartTitle(whatChanged, filesChanged, artifacts, taskType);
132
+ const linkedPr = artifacts.find(a => a.type === 'pull_request')?.url;
133
+ const linkedIssue = artifacts.find(a => a.identifier && /^[A-Z]{2,10}-\d+$/.test(a.identifier))?.identifier
134
+ || artifacts.find(a => a.type === 'other' && a.title === 'Issue')?.identifier;
135
+ return {
136
+ taskId: context?.taskId,
137
+ sessionId: context?.sessionId,
138
+ agent: context?.agent || 'unknown',
139
+ model: context?.model,
140
+ title,
141
+ whatChanged,
142
+ whyChanged,
143
+ howChanged,
144
+ filesChanged,
145
+ decisions,
146
+ blockers,
147
+ artifacts,
148
+ taskType,
149
+ component,
150
+ linkedIssue,
151
+ linkedPr,
152
+ rawOutput: output,
153
+ };
154
+ }
155
+ export function extractFileChanges(output, artifacts) {
156
+ const changes = [];
157
+ const seen = new Set();
158
+ if (artifacts) {
159
+ for (const a of artifacts) {
160
+ if (a.type === 'file' && a.path && !seen.has(a.path)) {
161
+ seen.add(a.path);
162
+ changes.push({ path: a.path, action: 'modified' });
163
+ }
164
+ }
165
+ }
166
+ const addFromPattern = (pattern, action) => {
167
+ let match;
168
+ pattern.lastIndex = 0;
169
+ while ((match = pattern.exec(output)) !== null) {
170
+ const path = match[1];
171
+ if (path && !seen.has(path) && isValidFilePath(path)) {
172
+ seen.add(path);
173
+ changes.push({ path, action });
174
+ }
175
+ }
176
+ };
177
+ addFromPattern(FILE_CREATED_PATTERN, 'created');
178
+ addFromPattern(FILE_MODIFIED_PATTERN, 'modified');
179
+ addFromPattern(FILE_DELETED_PATTERN, 'deleted');
180
+ return changes;
181
+ }
182
+ export function extractDecisions(output) {
183
+ const decisions = [];
184
+ for (const pattern of DECISION_PATTERNS) {
185
+ pattern.lastIndex = 0;
186
+ let match;
187
+ while ((match = pattern.exec(output)) !== null) {
188
+ const description = match[1].trim();
189
+ if (description.length > 5 && description.length < 500) {
190
+ decisions.push({ description });
191
+ }
192
+ }
193
+ }
194
+ return decisions.slice(0, 10);
195
+ }
196
+ export function extractBlockers(output, error) {
197
+ const blockers = [];
198
+ if (error) {
199
+ blockers.push({ description: error.message, severity: 'error', resolved: false });
200
+ }
201
+ ERROR_PATTERN.lastIndex = 0;
202
+ let match;
203
+ while ((match = ERROR_PATTERN.exec(output)) !== null) {
204
+ const d = match[1].trim();
205
+ if (d.length > 2)
206
+ blockers.push({ description: d, severity: 'error', resolved: true });
207
+ }
208
+ WARNING_PATTERN.lastIndex = 0;
209
+ while ((match = WARNING_PATTERN.exec(output)) !== null) {
210
+ const d = match[1].trim();
211
+ if (d.length > 2)
212
+ blockers.push({ description: d, severity: 'warning', resolved: true });
213
+ }
214
+ return blockers.slice(0, 10);
215
+ }
216
+ export function extractArtifacts(output, taskArtifacts) {
217
+ const artifacts = [];
218
+ const seen = new Set();
219
+ if (taskArtifacts) {
220
+ for (const a of taskArtifacts) {
221
+ const key = `${a.type}:${a.url || a.sha || a.path}`;
222
+ if (!seen.has(key)) {
223
+ seen.add(key);
224
+ artifacts.push({ type: a.type, url: a.url, identifier: a.sha });
225
+ }
226
+ }
227
+ }
228
+ PR_URL_PATTERN.lastIndex = 0;
229
+ let match;
230
+ while ((match = PR_URL_PATTERN.exec(output)) !== null) {
231
+ const key = `pr:${match[1]}`;
232
+ if (!seen.has(key)) {
233
+ seen.add(key);
234
+ artifacts.push({ type: 'pull_request', url: match[0], identifier: match[1] });
235
+ }
236
+ }
237
+ COMMIT_SHA_PATTERN.lastIndex = 0;
238
+ while ((match = COMMIT_SHA_PATTERN.exec(output)) !== null) {
239
+ const sha = match[1];
240
+ if (sha.length >= 7 && !seen.has(`commit:${sha}`)) {
241
+ seen.add(`commit:${sha}`);
242
+ artifacts.push({ type: 'commit', identifier: sha });
243
+ }
244
+ }
245
+ GENERIC_ISSUE_PATTERN.lastIndex = 0;
246
+ while ((match = GENERIC_ISSUE_PATTERN.exec(output)) !== null) {
247
+ const issueId = match[1];
248
+ if (!seen.has(`issue:${issueId}`)) {
249
+ seen.add(`issue:${issueId}`);
250
+ artifacts.push({ type: 'other', identifier: issueId, title: 'Issue' });
251
+ }
252
+ }
253
+ return artifacts;
254
+ }
255
+ export function extractSection(output, pattern) {
256
+ const match = output.match(pattern);
257
+ return match && match[1] ? match[1].trim().slice(0, 1000) : undefined;
258
+ }
259
+ export function generateWhatChanged(files, artifacts) {
260
+ const parts = [];
261
+ const created = files.filter(f => f.action === 'created');
262
+ const modified = files.filter(f => f.action === 'modified');
263
+ const deleted = files.filter(f => f.action === 'deleted');
264
+ if (created.length > 0)
265
+ parts.push(`Created ${created.length} file(s)`);
266
+ if (modified.length > 0)
267
+ parts.push(`Modified ${modified.length} file(s)`);
268
+ if (deleted.length > 0)
269
+ parts.push(`Deleted ${deleted.length} file(s)`);
270
+ const prs = artifacts.filter(a => a.type === 'pull_request');
271
+ if (prs.length > 0)
272
+ parts.push(`Created ${prs.length} PR(s)`);
273
+ return parts.join('. ') || 'No changes detected';
274
+ }
275
+ export function isValidFilePath(path) {
276
+ const hasExtension = /\.[a-zA-Z0-9]+$/.test(path);
277
+ const isConfig = /^\.?[a-zA-Z]+rc|config|package\.json|tsconfig|\.gitignore/i.test(path);
278
+ const isValidChars = /^[a-zA-Z0-9_./-]+$/.test(path);
279
+ return isValidChars && (hasExtension || isConfig) && path.length < 200;
280
+ }
281
+ export function inferTaskType(output, files, title) {
282
+ const text = `${title || ''} ${output}`.toLowerCase();
283
+ const scores = {};
284
+ for (const [taskType, keywords] of Object.entries(TASK_TYPE_KEYWORDS)) {
285
+ scores[taskType] = 0;
286
+ for (const keyword of keywords) {
287
+ const regex = new RegExp(`\\b${keyword}\\b`, 'gi');
288
+ const matches = text.match(regex);
289
+ if (matches)
290
+ scores[taskType] += matches.length;
291
+ }
292
+ }
293
+ for (const file of files) {
294
+ if (/\.test\.|\.spec\.|__tests__/i.test(file.path))
295
+ scores.test = (scores.test || 0) + 2;
296
+ if (/\.md$|readme|docs?\//i.test(file.path))
297
+ scores.documentation = (scores.documentation || 0) + 2;
298
+ if (/\.gitignore|config|package\.json/i.test(file.path))
299
+ scores.chore = (scores.chore || 0) + 2;
300
+ }
301
+ let max = 0, type = 'feature';
302
+ for (const [t, s] of Object.entries(scores)) {
303
+ if (s > max) {
304
+ max = s;
305
+ type = t;
306
+ }
307
+ }
308
+ return max > 0 ? type : 'feature';
309
+ }
310
+ export function inferComponent(files) {
311
+ if (files.length === 0)
312
+ return undefined;
313
+ const counts = {};
314
+ for (const file of files) {
315
+ for (const { pattern, component } of COMPONENT_PATTERNS) {
316
+ if (pattern.test(file.path)) {
317
+ counts[component] = (counts[component] || 0) + 1;
318
+ break;
319
+ }
320
+ }
321
+ }
322
+ let max = 0, primary;
323
+ for (const [c, count] of Object.entries(counts)) {
324
+ if (count > max) {
325
+ max = count;
326
+ primary = c;
327
+ }
328
+ }
329
+ return primary;
330
+ }
331
+ export function generateSmartTitle(whatChanged, files, artifacts, taskType) {
332
+ const typePrefix = {
333
+ bug_fix: 'Fix',
334
+ feature: 'Add',
335
+ refactor: 'Refactor',
336
+ documentation: 'Document',
337
+ test: 'Test',
338
+ performance: 'Optimize',
339
+ security: 'Secure',
340
+ chore: 'Update',
341
+ };
342
+ const prefix = typePrefix[taskType] || 'Update';
343
+ if (files.length === 0 && artifacts.length > 0) {
344
+ const pr = artifacts.find(a => a.type === 'pull_request');
345
+ if (pr)
346
+ return `Create PR #${pr.identifier}`;
347
+ }
348
+ if (files.length > 0) {
349
+ const paths = files.map(f => f.path);
350
+ const commonDir = findCommonDir(paths);
351
+ if (commonDir && files.length > 1) {
352
+ const dirName = commonDir.split('/').pop() || commonDir;
353
+ return `${prefix} ${dirName} (${files.length} files)`;
354
+ }
355
+ const fileName = files[0].path.split('/').pop() || files[0].path;
356
+ const cleanName = fileName.replace(/\.[^/.]+$/, '');
357
+ return `${prefix} ${cleanName || fileName}`;
358
+ }
359
+ return prefix;
360
+ }
361
+ function findCommonDir(paths) {
362
+ if (paths.length <= 1)
363
+ return undefined;
364
+ const parts = paths[0].split('/');
365
+ if (parts.length <= 1)
366
+ return undefined;
367
+ let common = parts.slice(0, -1);
368
+ for (let i = 1; i < paths.length; i++) {
369
+ const current = paths[i].split('/').slice(0, -1);
370
+ let j = 0;
371
+ while (j < common.length && j < current.length && common[j] === current[j])
372
+ j++;
373
+ common = common.slice(0, j);
374
+ }
375
+ return common.length > 0 ? common.join('/') : undefined;
376
+ }
377
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Structured Summaries Module
3
+ *
4
+ * Provides functionality for extracting, storing, and querying
5
+ * structured summaries from AI agent task executions.
6
+ *
7
+ * Phase 7: Structured Summaries
8
+ */
9
+ export { createSummary, getSummary, getTaskSummaries, getSessionSummaries, querySummaries, searchSummaries, getSummaryStats, getRecentSummaries, deleteSummary, clearAllSummaries, } from './storage.js';
10
+ export { extractFromTaskResult, extractFromSession, extractFromRawOutput, } from './extractor.js';
11
+ export type { Summary, CreateSummaryInput, SummaryQuery, SummaryStats, FileChange, Decision, Blocker, Artifact, TokenUsage, Cost, } from '../types/summary.js';
12
+ export { SummarySchema, CreateSummaryInputSchema, SummaryQuerySchema, } from '../types/summary.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Structured Summaries Module
3
+ *
4
+ * Provides functionality for extracting, storing, and querying
5
+ * structured summaries from AI agent task executions.
6
+ *
7
+ * Phase 7: Structured Summaries
8
+ */
9
+ // Storage operations
10
+ export { createSummary, getSummary, getTaskSummaries, getSessionSummaries, querySummaries, searchSummaries, getSummaryStats, getRecentSummaries, deleteSummary, clearAllSummaries, } from './storage.js';
11
+ // Extraction functions
12
+ export { extractFromTaskResult, extractFromSession, extractFromRawOutput, } from './extractor.js';
13
+ export { SummarySchema, CreateSummaryInputSchema, SummaryQuerySchema, } from '../types/summary.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Summary Storage Wrapper
3
+ *
4
+ * Re-routes summary operations to the persistent storage module.
5
+ */
6
+ import type { Summary, CreateSummaryInput, SummaryQuery, SummaryStats } from '../types/summary.js';
7
+ /**
8
+ * Create a new summary
9
+ */
10
+ export declare function createSummary(input: CreateSummaryInput): Promise<Summary>;
11
+ /**
12
+ * Get a summary by ID
13
+ * @param includeRawOutput - If true, fetches raw output from blob storage (lazy load)
14
+ */
15
+ export declare function getSummary(id: string, includeRawOutput?: boolean): Promise<Summary | null>;
16
+ /**
17
+ * Get summaries for a task
18
+ */
19
+ export declare function getTaskSummaries(taskId: string): Promise<Summary[]>;
20
+ /**
21
+ * Get summaries for a session
22
+ */
23
+ export declare function getSessionSummaries(sessionId: string): Promise<Summary[]>;
24
+ /**
25
+ * Query summaries with filters
26
+ */
27
+ export declare function querySummaries(query: Partial<SummaryQuery>): Promise<{
28
+ summaries: Summary[];
29
+ total: number;
30
+ }>;
31
+ /**
32
+ * Search summaries by text
33
+ */
34
+ export declare function searchSummaries(searchText: string, limit?: number): Promise<Summary[]>;
35
+ /**
36
+ * Get summary statistics
37
+ */
38
+ export declare function getSummaryStats(): Promise<SummaryStats>;
39
+ /**
40
+ * Get recent summaries
41
+ */
42
+ export declare function getRecentSummaries(limit?: number): Promise<Summary[]>;
43
+ /**
44
+ * Delete a summary
45
+ */
46
+ export declare function deleteSummary(id: string): Promise<boolean>;
47
+ /**
48
+ * Clear all summaries (for testing)
49
+ */
50
+ export declare function clearAllSummaries(): Promise<void>;
51
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Summary Storage Wrapper
3
+ *
4
+ * Re-routes summary operations to the persistent storage module.
5
+ */
6
+ import { getStorage } from '../storage/index.js';
7
+ import { getEmbeddingService } from '../ai/embedding-service.js';
8
+ import { logger } from '../utils/logger.js';
9
+ import { randomUUID } from 'crypto';
10
+ /**
11
+ * Create a new summary
12
+ */
13
+ export async function createSummary(input) {
14
+ const summary = await getStorage().createSummary(input);
15
+ // Trigger embedding generation in background
16
+ generateAndStoreSummaryEmbedding(summary).catch(err => {
17
+ logger.error(`[Storage] Failed to generate embedding for summary ${summary.id}:`, err);
18
+ });
19
+ return summary;
20
+ }
21
+ /**
22
+ * Background task to generate and store entity embedding
23
+ */
24
+ async function generateAndStoreSummaryEmbedding(summary) {
25
+ const service = getEmbeddingService();
26
+ const storage = getStorage();
27
+ if (!storage.storeEmbedding)
28
+ return;
29
+ // Combine key fields for better semantic representation
30
+ const textToIndex = `
31
+ Title: ${summary.title}
32
+ Changes: ${summary.whatChanged}
33
+ Rationale: ${summary.whyChanged || ''}
34
+ Decisions: ${summary.decisions.map(d => d.description).join(', ')}
35
+ Type: ${summary.taskType || ''}
36
+ Component: ${summary.component || ''}
37
+ `.trim();
38
+ const embedding = await service.generateEmbedding(textToIndex);
39
+ await storage.storeEmbedding(randomUUID(), 'summary', summary.id, embedding, 'semantic-v1');
40
+ logger.debug(`[Storage] Stored embedding for summary ${summary.id}`);
41
+ }
42
+ /**
43
+ * Get a summary by ID
44
+ * @param includeRawOutput - If true, fetches raw output from blob storage (lazy load)
45
+ */
46
+ export async function getSummary(id, includeRawOutput = false) {
47
+ return await getStorage().getSummary(id, includeRawOutput);
48
+ }
49
+ /**
50
+ * Get summaries for a task
51
+ */
52
+ export async function getTaskSummaries(taskId) {
53
+ return await getStorage().getTaskSummaries(taskId);
54
+ }
55
+ /**
56
+ * Get summaries for a session
57
+ */
58
+ export async function getSessionSummaries(sessionId) {
59
+ const result = await getStorage().querySummaries({ sessionId });
60
+ return result.summaries;
61
+ }
62
+ /**
63
+ * Query summaries with filters
64
+ */
65
+ export async function querySummaries(query) {
66
+ return await getStorage().querySummaries(query);
67
+ }
68
+ /**
69
+ * Search summaries by text
70
+ */
71
+ export async function searchSummaries(searchText, limit = 20) {
72
+ const result = await getStorage().querySummaries({ search: searchText, limit });
73
+ return result.summaries;
74
+ }
75
+ /**
76
+ * Get summary statistics
77
+ */
78
+ export async function getSummaryStats() {
79
+ return await getStorage().getSummaryStats();
80
+ }
81
+ /**
82
+ * Get recent summaries
83
+ */
84
+ export async function getRecentSummaries(limit = 50) {
85
+ const result = await getStorage().querySummaries({ limit });
86
+ return result.summaries;
87
+ }
88
+ /**
89
+ * Delete a summary
90
+ */
91
+ export async function deleteSummary(id) {
92
+ return await getStorage().deleteSummary(id);
93
+ }
94
+ /**
95
+ * Clear all summaries (for testing)
96
+ */
97
+ export async function clearAllSummaries() {
98
+ // Not implemented in production storage for safety
99
+ console.warn('[Storage] clearAllSummaries called but not implemented for persistent storage');
100
+ }
101
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1,68 @@
1
+ import { Summary } from '../types/summary.js';
2
+ /**
3
+ * Summary Templates - Generate formatted output from task summaries
4
+ *
5
+ * Supports:
6
+ * - PR descriptions (GitHub, GitLab, Bitbucket)
7
+ * - Changelog entries (Keep a Changelog format)
8
+ * - Release notes
9
+ * - Commit messages (Conventional Commits)
10
+ */
11
+ /**
12
+ * Task type templates with conventional commit prefixes and changelog categories
13
+ */
14
+ export declare const TASK_TYPE_TEMPLATES: Record<string, {
15
+ title: string;
16
+ prPrefix: string;
17
+ changelogCategory: 'Added' | 'Changed' | 'Fixed' | 'Removed' | 'Security' | 'Deprecated';
18
+ emoji: string;
19
+ }>;
20
+ /**
21
+ * PR description format options
22
+ */
23
+ export interface PRDescriptionOptions {
24
+ format?: 'github' | 'gitlab' | 'bitbucket' | 'simple';
25
+ includeFileChanges?: boolean;
26
+ includeDecisions?: boolean;
27
+ includeBlockers?: boolean;
28
+ includeTokenStats?: boolean;
29
+ }
30
+ /**
31
+ * Generate a GitHub-formatted Pull Request description from a summary
32
+ */
33
+ export declare function generatePRDescription(summary: Summary, options?: PRDescriptionOptions): string;
34
+ /**
35
+ * Changelog options
36
+ */
37
+ export interface ChangelogOptions {
38
+ version?: string;
39
+ date?: string;
40
+ format?: 'keepachangelog' | 'simple' | 'grouped';
41
+ includeIssueLinks?: boolean;
42
+ issueLinkBase?: string;
43
+ }
44
+ /**
45
+ * Generate a release changelog from a collection of summaries
46
+ * Uses Keep a Changelog format by default
47
+ */
48
+ export declare function generateChangelog(summaries: Summary[], options?: ChangelogOptions | string): string;
49
+ /**
50
+ * Generate release notes from summaries
51
+ */
52
+ export declare function generateReleaseNotes(summaries: Summary[], options?: {
53
+ version: string;
54
+ title?: string;
55
+ includeStats?: boolean;
56
+ }): string;
57
+ /**
58
+ * Get conventional commit prefix for a task type
59
+ */
60
+ export declare function getConventionalCommitPrefix(taskType: string): string;
61
+ /**
62
+ * Generate a conventional commit message from a summary
63
+ */
64
+ export declare function generateCommitMessage(summary: Summary, options?: {
65
+ maxLength?: number;
66
+ includeBody?: boolean;
67
+ }): string;
68
+ //# sourceMappingURL=templates.d.ts.map