wispy-ai 0.1.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 (471) hide show
  1. package/.env.example +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +232 -0
  4. package/bin/wispy.js +3 -0
  5. package/dist/a2a/delegation.d.ts +19 -0
  6. package/dist/a2a/delegation.d.ts.map +1 -0
  7. package/dist/a2a/delegation.js +156 -0
  8. package/dist/a2a/delegation.js.map +1 -0
  9. package/dist/a2a/peer.d.ts +19 -0
  10. package/dist/a2a/peer.d.ts.map +1 -0
  11. package/dist/a2a/peer.js +27 -0
  12. package/dist/a2a/peer.js.map +1 -0
  13. package/dist/a2a/protocol.d.ts +36 -0
  14. package/dist/a2a/protocol.d.ts.map +1 -0
  15. package/dist/a2a/protocol.js +23 -0
  16. package/dist/a2a/protocol.js.map +1 -0
  17. package/dist/agents/collaboration.d.ts +59 -0
  18. package/dist/agents/collaboration.d.ts.map +1 -0
  19. package/dist/agents/collaboration.js +110 -0
  20. package/dist/agents/collaboration.js.map +1 -0
  21. package/dist/agents/orchestrator.d.ts +59 -0
  22. package/dist/agents/orchestrator.d.ts.map +1 -0
  23. package/dist/agents/orchestrator.js +171 -0
  24. package/dist/agents/orchestrator.js.map +1 -0
  25. package/dist/agents/tool-executor.d.ts +36 -0
  26. package/dist/agents/tool-executor.d.ts.map +1 -0
  27. package/dist/agents/tool-executor.js +363 -0
  28. package/dist/agents/tool-executor.js.map +1 -0
  29. package/dist/agents/types/coder.d.ts +10 -0
  30. package/dist/agents/types/coder.d.ts.map +1 -0
  31. package/dist/agents/types/coder.js +43 -0
  32. package/dist/agents/types/coder.js.map +1 -0
  33. package/dist/agents/types/data.d.ts +7 -0
  34. package/dist/agents/types/data.d.ts.map +1 -0
  35. package/dist/agents/types/data.js +30 -0
  36. package/dist/agents/types/data.js.map +1 -0
  37. package/dist/agents/types/designer.d.ts +7 -0
  38. package/dist/agents/types/designer.d.ts.map +1 -0
  39. package/dist/agents/types/designer.js +30 -0
  40. package/dist/agents/types/designer.js.map +1 -0
  41. package/dist/agents/types/devops.d.ts +7 -0
  42. package/dist/agents/types/devops.d.ts.map +1 -0
  43. package/dist/agents/types/devops.js +30 -0
  44. package/dist/agents/types/devops.js.map +1 -0
  45. package/dist/agents/types/planner.d.ts +7 -0
  46. package/dist/agents/types/planner.d.ts.map +1 -0
  47. package/dist/agents/types/planner.js +35 -0
  48. package/dist/agents/types/planner.js.map +1 -0
  49. package/dist/agents/types/researcher.d.ts +10 -0
  50. package/dist/agents/types/researcher.d.ts.map +1 -0
  51. package/dist/agents/types/researcher.js +33 -0
  52. package/dist/agents/types/researcher.js.map +1 -0
  53. package/dist/agents/types/security.d.ts +7 -0
  54. package/dist/agents/types/security.d.ts.map +1 -0
  55. package/dist/agents/types/security.js +30 -0
  56. package/dist/agents/types/security.js.map +1 -0
  57. package/dist/agents/types/writer.d.ts +7 -0
  58. package/dist/agents/types/writer.d.ts.map +1 -0
  59. package/dist/agents/types/writer.js +30 -0
  60. package/dist/agents/types/writer.js.map +1 -0
  61. package/dist/agents/workspace.d.ts +61 -0
  62. package/dist/agents/workspace.d.ts.map +1 -0
  63. package/dist/agents/workspace.js +115 -0
  64. package/dist/agents/workspace.js.map +1 -0
  65. package/dist/ai/embeddings.d.ts +4 -0
  66. package/dist/ai/embeddings.d.ts.map +1 -0
  67. package/dist/ai/embeddings.js +20 -0
  68. package/dist/ai/embeddings.js.map +1 -0
  69. package/dist/ai/gemini.d.ts +31 -0
  70. package/dist/ai/gemini.d.ts.map +1 -0
  71. package/dist/ai/gemini.js +121 -0
  72. package/dist/ai/gemini.js.map +1 -0
  73. package/dist/ai/model-registry.d.ts +73 -0
  74. package/dist/ai/model-registry.d.ts.map +1 -0
  75. package/dist/ai/model-registry.js +86 -0
  76. package/dist/ai/model-registry.js.map +1 -0
  77. package/dist/ai/prompts.d.ts +3 -0
  78. package/dist/ai/prompts.d.ts.map +1 -0
  79. package/dist/ai/prompts.js +42 -0
  80. package/dist/ai/prompts.js.map +1 -0
  81. package/dist/ai/providers/ollama.d.ts +22 -0
  82. package/dist/ai/providers/ollama.d.ts.map +1 -0
  83. package/dist/ai/providers/ollama.js +144 -0
  84. package/dist/ai/providers/ollama.js.map +1 -0
  85. package/dist/ai/providers/openai-compat.d.ts +25 -0
  86. package/dist/ai/providers/openai-compat.d.ts.map +1 -0
  87. package/dist/ai/providers/openai-compat.js +141 -0
  88. package/dist/ai/providers/openai-compat.js.map +1 -0
  89. package/dist/ai/router.d.ts +10 -0
  90. package/dist/ai/router.d.ts.map +1 -0
  91. package/dist/ai/router.js +23 -0
  92. package/dist/ai/router.js.map +1 -0
  93. package/dist/ai/tools.d.ts +15 -0
  94. package/dist/ai/tools.d.ts.map +1 -0
  95. package/dist/ai/tools.js +134 -0
  96. package/dist/ai/tools.js.map +1 -0
  97. package/dist/autostart/service.d.ts +24 -0
  98. package/dist/autostart/service.d.ts.map +1 -0
  99. package/dist/autostart/service.js +202 -0
  100. package/dist/autostart/service.js.map +1 -0
  101. package/dist/channels/dock.d.ts +22 -0
  102. package/dist/channels/dock.d.ts.map +1 -0
  103. package/dist/channels/dock.js +21 -0
  104. package/dist/channels/dock.js.map +1 -0
  105. package/dist/channels/rest/adapter.d.ts +4 -0
  106. package/dist/channels/rest/adapter.d.ts.map +1 -0
  107. package/dist/channels/rest/adapter.js +86 -0
  108. package/dist/channels/rest/adapter.js.map +1 -0
  109. package/dist/channels/telegram/adapter.d.ts +3 -0
  110. package/dist/channels/telegram/adapter.d.ts.map +1 -0
  111. package/dist/channels/telegram/adapter.js +56 -0
  112. package/dist/channels/telegram/adapter.js.map +1 -0
  113. package/dist/cli/commands.d.ts +17 -0
  114. package/dist/cli/commands.d.ts.map +1 -0
  115. package/dist/cli/commands.js +258 -0
  116. package/dist/cli/commands.js.map +1 -0
  117. package/dist/cli/doctor.d.ts +8 -0
  118. package/dist/cli/doctor.d.ts.map +1 -0
  119. package/dist/cli/doctor.js +34 -0
  120. package/dist/cli/doctor.js.map +1 -0
  121. package/dist/cli/history.d.ts +9 -0
  122. package/dist/cli/history.d.ts.map +1 -0
  123. package/dist/cli/history.js +32 -0
  124. package/dist/cli/history.js.map +1 -0
  125. package/dist/cli/postinstall.d.ts +5 -0
  126. package/dist/cli/postinstall.d.ts.map +1 -0
  127. package/dist/cli/postinstall.js +20 -0
  128. package/dist/cli/postinstall.js.map +1 -0
  129. package/dist/cli/program.d.ts +3 -0
  130. package/dist/cli/program.d.ts.map +1 -0
  131. package/dist/cli/program.js +537 -0
  132. package/dist/cli/program.js.map +1 -0
  133. package/dist/cli/repl.d.ts +7 -0
  134. package/dist/cli/repl.d.ts.map +1 -0
  135. package/dist/cli/repl.js +132 -0
  136. package/dist/cli/repl.js.map +1 -0
  137. package/dist/cli/setup/wizard.d.ts +17 -0
  138. package/dist/cli/setup/wizard.d.ts.map +1 -0
  139. package/dist/cli/setup/wizard.js +157 -0
  140. package/dist/cli/setup/wizard.js.map +1 -0
  141. package/dist/cli/ui/banner.d.ts +2 -0
  142. package/dist/cli/ui/banner.d.ts.map +1 -0
  143. package/dist/cli/ui/banner.js +9 -0
  144. package/dist/cli/ui/banner.js.map +1 -0
  145. package/dist/cli/ui/renderer.d.ts +6 -0
  146. package/dist/cli/ui/renderer.d.ts.map +1 -0
  147. package/dist/cli/ui/renderer.js +55 -0
  148. package/dist/cli/ui/renderer.js.map +1 -0
  149. package/dist/cli/ui/spinner.d.ts +7 -0
  150. package/dist/cli/ui/spinner.d.ts.map +1 -0
  151. package/dist/cli/ui/spinner.js +31 -0
  152. package/dist/cli/ui/spinner.js.map +1 -0
  153. package/dist/cli/ui/theme.d.ts +21 -0
  154. package/dist/cli/ui/theme.d.ts.map +1 -0
  155. package/dist/cli/ui/theme.js +28 -0
  156. package/dist/cli/ui/theme.js.map +1 -0
  157. package/dist/cli/ui/tool-display.d.ts +9 -0
  158. package/dist/cli/ui/tool-display.d.ts.map +1 -0
  159. package/dist/cli/ui/tool-display.js +19 -0
  160. package/dist/cli/ui/tool-display.js.map +1 -0
  161. package/dist/cli/voice/stt.d.ts +37 -0
  162. package/dist/cli/voice/stt.d.ts.map +1 -0
  163. package/dist/cli/voice/stt.js +115 -0
  164. package/dist/cli/voice/stt.js.map +1 -0
  165. package/dist/cli/voice/tts.d.ts +35 -0
  166. package/dist/cli/voice/tts.d.ts.map +1 -0
  167. package/dist/cli/voice/tts.js +142 -0
  168. package/dist/cli/voice/tts.js.map +1 -0
  169. package/dist/cli/voice/voice-mode.d.ts +35 -0
  170. package/dist/cli/voice/voice-mode.d.ts.map +1 -0
  171. package/dist/cli/voice/voice-mode.js +89 -0
  172. package/dist/cli/voice/voice-mode.js.map +1 -0
  173. package/dist/config/config.d.ts +5 -0
  174. package/dist/config/config.d.ts.map +1 -0
  175. package/dist/config/config.js +68 -0
  176. package/dist/config/config.js.map +1 -0
  177. package/dist/config/hot-reload.d.ts +3 -0
  178. package/dist/config/hot-reload.d.ts.map +1 -0
  179. package/dist/config/hot-reload.js +21 -0
  180. package/dist/config/hot-reload.js.map +1 -0
  181. package/dist/config/schema.d.ts +48 -0
  182. package/dist/config/schema.d.ts.map +1 -0
  183. package/dist/config/schema.js +105 -0
  184. package/dist/config/schema.js.map +1 -0
  185. package/dist/content/pipeline.d.ts +12 -0
  186. package/dist/content/pipeline.d.ts.map +1 -0
  187. package/dist/content/pipeline.js +55 -0
  188. package/dist/content/pipeline.js.map +1 -0
  189. package/dist/content/publisher.d.ts +26 -0
  190. package/dist/content/publisher.d.ts.map +1 -0
  191. package/dist/content/publisher.js +101 -0
  192. package/dist/content/publisher.js.map +1 -0
  193. package/dist/core/agent.d.ts +37 -0
  194. package/dist/core/agent.d.ts.map +1 -0
  195. package/dist/core/agent.js +170 -0
  196. package/dist/core/agent.js.map +1 -0
  197. package/dist/core/heartbeat.d.ts +15 -0
  198. package/dist/core/heartbeat.d.ts.map +1 -0
  199. package/dist/core/heartbeat.js +70 -0
  200. package/dist/core/heartbeat.js.map +1 -0
  201. package/dist/core/identity.d.ts +13 -0
  202. package/dist/core/identity.d.ts.map +1 -0
  203. package/dist/core/identity.js +16 -0
  204. package/dist/core/identity.js.map +1 -0
  205. package/dist/core/memory.d.ts +11 -0
  206. package/dist/core/memory.d.ts.map +1 -0
  207. package/dist/core/memory.js +58 -0
  208. package/dist/core/memory.js.map +1 -0
  209. package/dist/core/session.d.ts +29 -0
  210. package/dist/core/session.d.ts.map +1 -0
  211. package/dist/core/session.js +59 -0
  212. package/dist/core/session.js.map +1 -0
  213. package/dist/core/thinking.d.ts +3 -0
  214. package/dist/core/thinking.d.ts.map +1 -0
  215. package/dist/core/thinking.js +27 -0
  216. package/dist/core/thinking.js.map +1 -0
  217. package/dist/cron/service.d.ts +24 -0
  218. package/dist/cron/service.d.ts.map +1 -0
  219. package/dist/cron/service.js +74 -0
  220. package/dist/cron/service.js.map +1 -0
  221. package/dist/entry.d.ts +2 -0
  222. package/dist/entry.d.ts.map +1 -0
  223. package/dist/entry.js +26 -0
  224. package/dist/entry.js.map +1 -0
  225. package/dist/gateway/boot.d.ts +9 -0
  226. package/dist/gateway/boot.d.ts.map +1 -0
  227. package/dist/gateway/boot.js +64 -0
  228. package/dist/gateway/boot.js.map +1 -0
  229. package/dist/gateway/client.d.ts +19 -0
  230. package/dist/gateway/client.d.ts.map +1 -0
  231. package/dist/gateway/client.js +64 -0
  232. package/dist/gateway/client.js.map +1 -0
  233. package/dist/gateway/protocol/index.d.ts +41 -0
  234. package/dist/gateway/protocol/index.d.ts.map +1 -0
  235. package/dist/gateway/protocol/index.js +30 -0
  236. package/dist/gateway/protocol/index.js.map +1 -0
  237. package/dist/gateway/server.d.ts +9 -0
  238. package/dist/gateway/server.d.ts.map +1 -0
  239. package/dist/gateway/server.js +147 -0
  240. package/dist/gateway/server.js.map +1 -0
  241. package/dist/index.d.ts +10 -0
  242. package/dist/index.d.ts.map +1 -0
  243. package/dist/index.js +10 -0
  244. package/dist/index.js.map +1 -0
  245. package/dist/infra/dotenv.d.ts +2 -0
  246. package/dist/infra/dotenv.d.ts.map +1 -0
  247. package/dist/infra/dotenv.js +7 -0
  248. package/dist/infra/dotenv.js.map +1 -0
  249. package/dist/infra/logger.d.ts +4 -0
  250. package/dist/infra/logger.d.ts.map +1 -0
  251. package/dist/infra/logger.js +12 -0
  252. package/dist/infra/logger.js.map +1 -0
  253. package/dist/infra/ports.d.ts +2 -0
  254. package/dist/infra/ports.d.ts.map +1 -0
  255. package/dist/infra/ports.js +12 -0
  256. package/dist/infra/ports.js.map +1 -0
  257. package/dist/integrations/ai-models/anthropic.d.ts +15 -0
  258. package/dist/integrations/ai-models/anthropic.d.ts.map +1 -0
  259. package/dist/integrations/ai-models/anthropic.js +91 -0
  260. package/dist/integrations/ai-models/anthropic.js.map +1 -0
  261. package/dist/integrations/ai-models/ollama.d.ts +17 -0
  262. package/dist/integrations/ai-models/ollama.d.ts.map +1 -0
  263. package/dist/integrations/ai-models/ollama.js +113 -0
  264. package/dist/integrations/ai-models/ollama.js.map +1 -0
  265. package/dist/integrations/ai-models/openai.d.ts +19 -0
  266. package/dist/integrations/ai-models/openai.d.ts.map +1 -0
  267. package/dist/integrations/ai-models/openai.js +136 -0
  268. package/dist/integrations/ai-models/openai.js.map +1 -0
  269. package/dist/integrations/base.d.ts +102 -0
  270. package/dist/integrations/base.d.ts.map +1 -0
  271. package/dist/integrations/base.js +44 -0
  272. package/dist/integrations/base.js.map +1 -0
  273. package/dist/integrations/categories.d.ts +13 -0
  274. package/dist/integrations/categories.d.ts.map +1 -0
  275. package/dist/integrations/categories.js +69 -0
  276. package/dist/integrations/categories.js.map +1 -0
  277. package/dist/integrations/chat/discord.d.ts +19 -0
  278. package/dist/integrations/chat/discord.d.ts.map +1 -0
  279. package/dist/integrations/chat/discord.js +122 -0
  280. package/dist/integrations/chat/discord.js.map +1 -0
  281. package/dist/integrations/chat/slack.d.ts +19 -0
  282. package/dist/integrations/chat/slack.d.ts.map +1 -0
  283. package/dist/integrations/chat/slack.js +113 -0
  284. package/dist/integrations/chat/slack.js.map +1 -0
  285. package/dist/integrations/chat/whatsapp.d.ts +18 -0
  286. package/dist/integrations/chat/whatsapp.d.ts.map +1 -0
  287. package/dist/integrations/chat/whatsapp.js +115 -0
  288. package/dist/integrations/chat/whatsapp.js.map +1 -0
  289. package/dist/integrations/credential-manager.d.ts +68 -0
  290. package/dist/integrations/credential-manager.d.ts.map +1 -0
  291. package/dist/integrations/credential-manager.js +156 -0
  292. package/dist/integrations/credential-manager.js.map +1 -0
  293. package/dist/integrations/google/calendar.d.ts +17 -0
  294. package/dist/integrations/google/calendar.d.ts.map +1 -0
  295. package/dist/integrations/google/calendar.js +126 -0
  296. package/dist/integrations/google/calendar.js.map +1 -0
  297. package/dist/integrations/google/docs.d.ts +19 -0
  298. package/dist/integrations/google/docs.d.ts.map +1 -0
  299. package/dist/integrations/google/docs.js +153 -0
  300. package/dist/integrations/google/docs.js.map +1 -0
  301. package/dist/integrations/google/drive.d.ts +17 -0
  302. package/dist/integrations/google/drive.d.ts.map +1 -0
  303. package/dist/integrations/google/drive.js +130 -0
  304. package/dist/integrations/google/drive.js.map +1 -0
  305. package/dist/integrations/google/gmail.d.ts +19 -0
  306. package/dist/integrations/google/gmail.d.ts.map +1 -0
  307. package/dist/integrations/google/gmail.js +124 -0
  308. package/dist/integrations/google/gmail.js.map +1 -0
  309. package/dist/integrations/google/maps.d.ts +20 -0
  310. package/dist/integrations/google/maps.d.ts.map +1 -0
  311. package/dist/integrations/google/maps.js +115 -0
  312. package/dist/integrations/google/maps.js.map +1 -0
  313. package/dist/integrations/google/meet.d.ts +16 -0
  314. package/dist/integrations/google/meet.d.ts.map +1 -0
  315. package/dist/integrations/google/meet.js +104 -0
  316. package/dist/integrations/google/meet.js.map +1 -0
  317. package/dist/integrations/google/oauth.d.ts +39 -0
  318. package/dist/integrations/google/oauth.d.ts.map +1 -0
  319. package/dist/integrations/google/oauth.js +134 -0
  320. package/dist/integrations/google/oauth.js.map +1 -0
  321. package/dist/integrations/google/search.d.ts +15 -0
  322. package/dist/integrations/google/search.d.ts.map +1 -0
  323. package/dist/integrations/google/search.js +66 -0
  324. package/dist/integrations/google/search.js.map +1 -0
  325. package/dist/integrations/google/sheets.d.ts +17 -0
  326. package/dist/integrations/google/sheets.d.ts.map +1 -0
  327. package/dist/integrations/google/sheets.js +118 -0
  328. package/dist/integrations/google/sheets.js.map +1 -0
  329. package/dist/integrations/google/youtube.d.ts +19 -0
  330. package/dist/integrations/google/youtube.d.ts.map +1 -0
  331. package/dist/integrations/google/youtube.js +128 -0
  332. package/dist/integrations/google/youtube.js.map +1 -0
  333. package/dist/integrations/loader.d.ts +15 -0
  334. package/dist/integrations/loader.d.ts.map +1 -0
  335. package/dist/integrations/loader.js +97 -0
  336. package/dist/integrations/loader.js.map +1 -0
  337. package/dist/integrations/music/spotify.d.ts +21 -0
  338. package/dist/integrations/music/spotify.d.ts.map +1 -0
  339. package/dist/integrations/music/spotify.js +161 -0
  340. package/dist/integrations/music/spotify.js.map +1 -0
  341. package/dist/integrations/productivity/github.d.ts +20 -0
  342. package/dist/integrations/productivity/github.d.ts.map +1 -0
  343. package/dist/integrations/productivity/github.js +146 -0
  344. package/dist/integrations/productivity/github.js.map +1 -0
  345. package/dist/integrations/productivity/linear.d.ts +19 -0
  346. package/dist/integrations/productivity/linear.d.ts.map +1 -0
  347. package/dist/integrations/productivity/linear.js +152 -0
  348. package/dist/integrations/productivity/linear.js.map +1 -0
  349. package/dist/integrations/productivity/notion.d.ts +20 -0
  350. package/dist/integrations/productivity/notion.d.ts.map +1 -0
  351. package/dist/integrations/productivity/notion.js +186 -0
  352. package/dist/integrations/productivity/notion.js.map +1 -0
  353. package/dist/integrations/productivity/obsidian.d.ts +21 -0
  354. package/dist/integrations/productivity/obsidian.d.ts.map +1 -0
  355. package/dist/integrations/productivity/obsidian.js +141 -0
  356. package/dist/integrations/productivity/obsidian.js.map +1 -0
  357. package/dist/integrations/registry.d.ts +78 -0
  358. package/dist/integrations/registry.d.ts.map +1 -0
  359. package/dist/integrations/registry.js +193 -0
  360. package/dist/integrations/registry.js.map +1 -0
  361. package/dist/integrations/smart-home/homeassistant.d.ts +21 -0
  362. package/dist/integrations/smart-home/homeassistant.d.ts.map +1 -0
  363. package/dist/integrations/smart-home/homeassistant.js +129 -0
  364. package/dist/integrations/smart-home/homeassistant.js.map +1 -0
  365. package/dist/integrations/smart-home/hue.d.ts +23 -0
  366. package/dist/integrations/smart-home/hue.d.ts.map +1 -0
  367. package/dist/integrations/smart-home/hue.js +144 -0
  368. package/dist/integrations/smart-home/hue.js.map +1 -0
  369. package/dist/integrations/social/email-smtp.d.ts +23 -0
  370. package/dist/integrations/social/email-smtp.d.ts.map +1 -0
  371. package/dist/integrations/social/email-smtp.js +168 -0
  372. package/dist/integrations/social/email-smtp.js.map +1 -0
  373. package/dist/integrations/social/twitter.d.ts +28 -0
  374. package/dist/integrations/social/twitter.d.ts.map +1 -0
  375. package/dist/integrations/social/twitter.js +168 -0
  376. package/dist/integrations/social/twitter.js.map +1 -0
  377. package/dist/integrations/tools/browser.d.ts +18 -0
  378. package/dist/integrations/tools/browser.d.ts.map +1 -0
  379. package/dist/integrations/tools/browser.js +131 -0
  380. package/dist/integrations/tools/browser.js.map +1 -0
  381. package/dist/integrations/tools/weather.d.ts +17 -0
  382. package/dist/integrations/tools/weather.d.ts.map +1 -0
  383. package/dist/integrations/tools/weather.js +113 -0
  384. package/dist/integrations/tools/weather.js.map +1 -0
  385. package/dist/integrations/tools/webhooks.d.ts +15 -0
  386. package/dist/integrations/tools/webhooks.d.ts.map +1 -0
  387. package/dist/integrations/tools/webhooks.js +89 -0
  388. package/dist/integrations/tools/webhooks.js.map +1 -0
  389. package/dist/mcp/client.d.ts +42 -0
  390. package/dist/mcp/client.d.ts.map +1 -0
  391. package/dist/mcp/client.js +164 -0
  392. package/dist/mcp/client.js.map +1 -0
  393. package/dist/mcp/server.d.ts +2 -0
  394. package/dist/mcp/server.d.ts.map +1 -0
  395. package/dist/mcp/server.js +114 -0
  396. package/dist/mcp/server.js.map +1 -0
  397. package/dist/mcp/tools-adapter.d.ts +14 -0
  398. package/dist/mcp/tools-adapter.d.ts.map +1 -0
  399. package/dist/mcp/tools-adapter.js +133 -0
  400. package/dist/mcp/tools-adapter.js.map +1 -0
  401. package/dist/memory/manager.d.ts +14 -0
  402. package/dist/memory/manager.d.ts.map +1 -0
  403. package/dist/memory/manager.js +49 -0
  404. package/dist/memory/manager.js.map +1 -0
  405. package/dist/memory/vector-store.d.ts +17 -0
  406. package/dist/memory/vector-store.d.ts.map +1 -0
  407. package/dist/memory/vector-store.js +65 -0
  408. package/dist/memory/vector-store.js.map +1 -0
  409. package/dist/security/action-guard.d.ts +12 -0
  410. package/dist/security/action-guard.d.ts.map +1 -0
  411. package/dist/security/action-guard.js +37 -0
  412. package/dist/security/action-guard.js.map +1 -0
  413. package/dist/security/api-key-guard.d.ts +3 -0
  414. package/dist/security/api-key-guard.d.ts.map +1 -0
  415. package/dist/security/api-key-guard.js +36 -0
  416. package/dist/security/api-key-guard.js.map +1 -0
  417. package/dist/security/auth.d.ts +17 -0
  418. package/dist/security/auth.d.ts.map +1 -0
  419. package/dist/security/auth.js +31 -0
  420. package/dist/security/auth.js.map +1 -0
  421. package/dist/security/device-identity.d.ts +11 -0
  422. package/dist/security/device-identity.d.ts.map +1 -0
  423. package/dist/security/device-identity.js +64 -0
  424. package/dist/security/device-identity.js.map +1 -0
  425. package/dist/security/encryption.d.ts +5 -0
  426. package/dist/security/encryption.d.ts.map +1 -0
  427. package/dist/security/encryption.js +13 -0
  428. package/dist/security/encryption.js.map +1 -0
  429. package/dist/security/isolation.d.ts +11 -0
  430. package/dist/security/isolation.d.ts.map +1 -0
  431. package/dist/security/isolation.js +37 -0
  432. package/dist/security/isolation.js.map +1 -0
  433. package/dist/skills/loader.d.ts +17 -0
  434. package/dist/skills/loader.d.ts.map +1 -0
  435. package/dist/skills/loader.js +68 -0
  436. package/dist/skills/loader.js.map +1 -0
  437. package/dist/token/estimator.d.ts +72 -0
  438. package/dist/token/estimator.d.ts.map +1 -0
  439. package/dist/token/estimator.js +165 -0
  440. package/dist/token/estimator.js.map +1 -0
  441. package/dist/utils/crypto.d.ts +4 -0
  442. package/dist/utils/crypto.d.ts.map +1 -0
  443. package/dist/utils/crypto.js +28 -0
  444. package/dist/utils/crypto.js.map +1 -0
  445. package/dist/utils/file.d.ts +14 -0
  446. package/dist/utils/file.d.ts.map +1 -0
  447. package/dist/utils/file.js +54 -0
  448. package/dist/utils/file.js.map +1 -0
  449. package/dist/utils/media.d.ts +6 -0
  450. package/dist/utils/media.d.ts.map +1 -0
  451. package/dist/utils/media.js +65 -0
  452. package/dist/utils/media.js.map +1 -0
  453. package/dist/wallet/x402.d.ts +22 -0
  454. package/dist/wallet/x402.d.ts.map +1 -0
  455. package/dist/wallet/x402.js +63 -0
  456. package/dist/wallet/x402.js.map +1 -0
  457. package/package.json +79 -0
  458. package/wispy/AGENTS.md +46 -0
  459. package/wispy/BOOT.md +28 -0
  460. package/wispy/CONTEXT.md +13 -0
  461. package/wispy/HEARTBEAT.md +17 -0
  462. package/wispy/IDENTITY.md +26 -0
  463. package/wispy/MEMORY.md +16 -0
  464. package/wispy/SOUL.md +35 -0
  465. package/wispy/TOOLS.md +45 -0
  466. package/wispy/USER.md +16 -0
  467. package/wispy/skills/a2a-delegate/SKILL.md +14 -0
  468. package/wispy/skills/content-creator/SKILL.md +14 -0
  469. package/wispy/skills/image-gen/SKILL.md +14 -0
  470. package/wispy/skills/wallet-ops/SKILL.md +14 -0
  471. package/wispy/skills/x-poster/SKILL.md +11 -0
@@ -0,0 +1,363 @@
1
+ import { exec } from "child_process";
2
+ import { promisify } from "util";
3
+ import { readFileSync, writeFileSync, existsSync, readdirSync } from "fs";
4
+ import { resolve, dirname } from "path";
5
+ import { ensureDir } from "../utils/file.js";
6
+ import { saveMedia } from "../utils/media.js";
7
+ import { requestApproval, categorizeAction } from "../security/action-guard.js";
8
+ import { sanitizeOutput } from "../security/api-key-guard.js";
9
+ import { appendToMemory, appendDailyNote } from "../core/memory.js";
10
+ import { createLogger } from "../infra/logger.js";
11
+ const log = createLogger("tool-executor");
12
+ const execAsync = promisify(exec);
13
+ // Dangerous command patterns to block entirely
14
+ const BLOCKED_PATTERNS = [
15
+ /rm\s+-rf\s+\//,
16
+ /mkfs\./,
17
+ /dd\s+if=/,
18
+ /:(){ :|:& };:/,
19
+ />\s*\/dev\/sd/,
20
+ /chmod\s+-R\s+777\s+\//,
21
+ /curl.*\|\s*bash/,
22
+ /wget.*\|\s*bash/,
23
+ ];
24
+ // Commands that are safe to auto-approve
25
+ const SAFE_COMMANDS = new Set([
26
+ "ls", "pwd", "echo", "cat", "head", "tail", "wc", "grep", "find",
27
+ "which", "whoami", "hostname", "date", "uname", "env",
28
+ "git status", "git log", "git diff", "git branch",
29
+ "node --version", "npm --version", "python --version",
30
+ ]);
31
+ export class ToolExecutor {
32
+ config;
33
+ runtimeDir;
34
+ soulDir;
35
+ memoryManager;
36
+ integrationRegistry;
37
+ constructor(config, runtimeDir, soulDir, memoryManager, integrationRegistry) {
38
+ this.config = config;
39
+ this.runtimeDir = runtimeDir;
40
+ this.soulDir = soulDir;
41
+ this.memoryManager = memoryManager;
42
+ this.integrationRegistry = integrationRegistry;
43
+ }
44
+ async execute(tool) {
45
+ log.info("Executing tool: %s", tool.name);
46
+ try {
47
+ switch (tool.name) {
48
+ case "bash":
49
+ return this.executeBash(tool.args);
50
+ case "file_read":
51
+ return this.executeFileRead(tool.args);
52
+ case "file_write":
53
+ return this.executeFileWrite(tool.args);
54
+ case "file_search":
55
+ return this.executeFileSearch(tool.args);
56
+ case "memory_search":
57
+ return this.executeMemorySearch(tool.args);
58
+ case "memory_save":
59
+ return this.executeMemorySave(tool.args);
60
+ case "web_fetch":
61
+ return this.executeWebFetch(tool.args);
62
+ case "web_search":
63
+ return this.executeWebSearch(tool.args);
64
+ case "image_generate":
65
+ return this.executeImageGenerate(tool.args);
66
+ case "send_message":
67
+ return this.executeSendMessage(tool.args);
68
+ case "schedule_task":
69
+ return this.executeScheduleTask(tool.args);
70
+ case "wallet_balance":
71
+ return this.executeWalletBalance(tool.args);
72
+ case "wallet_pay":
73
+ return this.executeWalletPay(tool.args);
74
+ case "list_directory":
75
+ return this.executeListDirectory(tool.args);
76
+ default:
77
+ // Fallback to integration registry
78
+ if (this.integrationRegistry) {
79
+ const integrationResult = await this.integrationRegistry.executeTool(tool.name, tool.args);
80
+ if (integrationResult) {
81
+ return {
82
+ success: integrationResult.success,
83
+ output: integrationResult.output,
84
+ error: integrationResult.error,
85
+ };
86
+ }
87
+ }
88
+ return { success: false, output: "", error: `Unknown tool: ${tool.name}` };
89
+ }
90
+ }
91
+ catch (err) {
92
+ const msg = err instanceof Error ? err.message : String(err);
93
+ log.error({ err }, "Tool execution failed: %s", tool.name);
94
+ return { success: false, output: "", error: msg };
95
+ }
96
+ }
97
+ async executeBash(args) {
98
+ const command = String(args.command || "");
99
+ if (!command)
100
+ return { success: false, output: "", error: "No command provided" };
101
+ // Block dangerous commands
102
+ for (const pattern of BLOCKED_PATTERNS) {
103
+ if (pattern.test(command)) {
104
+ return { success: false, output: "", error: "Command blocked for safety: " + command.slice(0, 50) };
105
+ }
106
+ }
107
+ // Check if approval needed
108
+ const category = categorizeAction("bash");
109
+ const isSafe = SAFE_COMMANDS.has(command.split(" ")[0]) ||
110
+ SAFE_COMMANDS.has(command.trim());
111
+ if (!isSafe && this.config.security.requireApprovalForExternal) {
112
+ const approved = await requestApproval("bash", `Execute: ${command}`, { command });
113
+ if (!approved) {
114
+ return { success: false, output: "", error: "Command not approved by user" };
115
+ }
116
+ }
117
+ try {
118
+ const { stdout, stderr } = await execAsync(command, {
119
+ timeout: 30000,
120
+ maxBuffer: 1024 * 1024, // 1MB
121
+ cwd: process.cwd(),
122
+ env: { ...process.env },
123
+ });
124
+ const output = sanitizeOutput(stdout + (stderr ? `\nSTDERR: ${stderr}` : ""));
125
+ return { success: true, output };
126
+ }
127
+ catch (err) {
128
+ const output = sanitizeOutput(err.stdout || "");
129
+ const error = sanitizeOutput(err.stderr || err.message || "Command failed");
130
+ return { success: false, output, error };
131
+ }
132
+ }
133
+ executeFileRead(args) {
134
+ const path = String(args.path || "");
135
+ if (!path)
136
+ return { success: false, output: "", error: "No path provided" };
137
+ if (!existsSync(path))
138
+ return { success: false, output: "", error: `File not found: ${path}` };
139
+ try {
140
+ const content = readFileSync(path, "utf-8");
141
+ // Limit output size
142
+ const truncated = content.length > 50000
143
+ ? content.slice(0, 50000) + "\n... (truncated)"
144
+ : content;
145
+ return { success: true, output: sanitizeOutput(truncated) };
146
+ }
147
+ catch (err) {
148
+ return { success: false, output: "", error: err.message };
149
+ }
150
+ }
151
+ async executeFileWrite(args) {
152
+ const path = String(args.path || "");
153
+ const content = String(args.content || "");
154
+ if (!path)
155
+ return { success: false, output: "", error: "No path provided" };
156
+ // Approval for overwrite
157
+ if (existsSync(path) && this.config.security.requireApprovalForExternal) {
158
+ const approved = await requestApproval("file_write", `Overwrite: ${path}`, { path });
159
+ if (!approved)
160
+ return { success: false, output: "", error: "Write not approved" };
161
+ }
162
+ try {
163
+ ensureDir(dirname(path));
164
+ writeFileSync(path, content, "utf-8");
165
+ return { success: true, output: `Written ${content.length} bytes to ${path}` };
166
+ }
167
+ catch (err) {
168
+ return { success: false, output: "", error: err.message };
169
+ }
170
+ }
171
+ executeFileSearch(args) {
172
+ const pattern = String(args.pattern || args.query || "");
173
+ const dir = String(args.directory || args.path || process.cwd());
174
+ if (!pattern)
175
+ return { success: false, output: "", error: "No pattern provided" };
176
+ try {
177
+ const results = [];
178
+ const search = (d, depth) => {
179
+ if (depth > 5 || results.length > 50)
180
+ return;
181
+ try {
182
+ const entries = readdirSync(d, { withFileTypes: true });
183
+ for (const entry of entries) {
184
+ if (entry.name.startsWith(".") || entry.name === "node_modules")
185
+ continue;
186
+ const full = resolve(d, entry.name);
187
+ if (entry.isDirectory()) {
188
+ search(full, depth + 1);
189
+ }
190
+ else if (entry.name.includes(pattern) || entry.name.match(pattern)) {
191
+ results.push(full);
192
+ }
193
+ }
194
+ }
195
+ catch { /* skip inaccessible dirs */ }
196
+ };
197
+ search(dir, 0);
198
+ return { success: true, output: results.join("\n") || "No files found" };
199
+ }
200
+ catch (err) {
201
+ return { success: false, output: "", error: err.message };
202
+ }
203
+ }
204
+ async executeMemorySearch(args) {
205
+ const query = String(args.query || "");
206
+ if (!query)
207
+ return { success: false, output: "", error: "No query provided" };
208
+ if (!this.memoryManager) {
209
+ return { success: false, output: "", error: "Memory system not initialized" };
210
+ }
211
+ const results = await this.memoryManager.search(query, 5);
212
+ if (results.length === 0)
213
+ return { success: true, output: "No memories found for: " + query };
214
+ const output = results
215
+ .map((r, i) => `[${i + 1}] (score: ${r.score.toFixed(2)}) ${r.text}`)
216
+ .join("\n\n");
217
+ return { success: true, output };
218
+ }
219
+ executeMemorySave(args) {
220
+ const fact = String(args.fact || "");
221
+ const category = String(args.category || "User Facts");
222
+ if (!fact)
223
+ return { success: false, output: "", error: "No fact provided" };
224
+ appendToMemory(this.soulDir, category, fact);
225
+ appendDailyNote(this.soulDir, `Saved memory: ${fact.slice(0, 80)}`);
226
+ return { success: true, output: `Saved to memory [${category}]: ${fact}` };
227
+ }
228
+ async executeWebFetch(args) {
229
+ const url = String(args.url || "");
230
+ if (!url)
231
+ return { success: false, output: "", error: "No URL provided" };
232
+ try {
233
+ const controller = new AbortController();
234
+ const timeout = setTimeout(() => controller.abort(), 15000);
235
+ const res = await fetch(url, {
236
+ signal: controller.signal,
237
+ headers: { "User-Agent": "Wispy/0.1.0" },
238
+ });
239
+ clearTimeout(timeout);
240
+ if (!res.ok)
241
+ return { success: false, output: "", error: `HTTP ${res.status}` };
242
+ const contentType = res.headers.get("content-type") || "";
243
+ if (contentType.includes("text") || contentType.includes("json")) {
244
+ let text = await res.text();
245
+ // Strip HTML tags for readability
246
+ if (contentType.includes("html")) {
247
+ text = text
248
+ .replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "")
249
+ .replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "")
250
+ .replace(/<[^>]+>/g, " ")
251
+ .replace(/\s+/g, " ")
252
+ .trim();
253
+ }
254
+ const truncated = text.length > 30000 ? text.slice(0, 30000) + "\n...(truncated)" : text;
255
+ return { success: true, output: sanitizeOutput(truncated) };
256
+ }
257
+ // Binary content — save to media
258
+ const buf = Buffer.from(await res.arrayBuffer());
259
+ const filename = url.split("/").pop() || "download";
260
+ const path = saveMedia(this.runtimeDir, "incoming", filename, buf);
261
+ return { success: true, output: `Downloaded to: ${path} (${buf.length} bytes)` };
262
+ }
263
+ catch (err) {
264
+ return { success: false, output: "", error: err.message };
265
+ }
266
+ }
267
+ async executeWebSearch(args) {
268
+ const query = String(args.query || "");
269
+ if (!query)
270
+ return { success: false, output: "", error: "No query provided" };
271
+ // Use Gemini with grounding for web search
272
+ try {
273
+ const { generate } = await import("../ai/gemini.js");
274
+ const result = await generate({
275
+ model: this.config.gemini.models.flash,
276
+ messages: [{ role: "user", content: `Search the web for: ${query}\n\nProvide a summary of the top results with sources.` }],
277
+ thinkingLevel: "minimal",
278
+ });
279
+ return { success: true, output: result.text };
280
+ }
281
+ catch (err) {
282
+ return { success: false, output: "", error: "Web search failed: " + err.message };
283
+ }
284
+ }
285
+ async executeImageGenerate(args) {
286
+ const prompt = String(args.prompt || "");
287
+ if (!prompt)
288
+ return { success: false, output: "", error: "No prompt provided" };
289
+ try {
290
+ const { generate } = await import("../ai/gemini.js");
291
+ const result = await generate({
292
+ model: this.config.gemini.models.image,
293
+ messages: [{ role: "user", content: prompt }],
294
+ thinkingLevel: "none",
295
+ });
296
+ // Nano Banana returns image data
297
+ return { success: true, output: result.text || "Image generated" };
298
+ }
299
+ catch (err) {
300
+ return { success: false, output: "", error: "Image generation failed: " + err.message };
301
+ }
302
+ }
303
+ async executeSendMessage(args) {
304
+ const channel = String(args.channel || "");
305
+ const peerId = String(args.peerId || args.to || "");
306
+ const text = String(args.text || args.message || "");
307
+ if (!text)
308
+ return { success: false, output: "", error: "No message text" };
309
+ // Requires approval
310
+ const approved = await requestApproval("send_message", `Send to ${channel}:${peerId}: ${text.slice(0, 50)}`, args);
311
+ if (!approved)
312
+ return { success: false, output: "", error: "Send not approved" };
313
+ // Delegate to channel manager (will be wired in gateway)
314
+ return { success: true, output: `Message queued for ${channel}:${peerId}` };
315
+ }
316
+ executeScheduleTask(args) {
317
+ const name = String(args.name || "");
318
+ const cron = String(args.cron || "");
319
+ const instruction = String(args.instruction || "");
320
+ if (!name || !cron || !instruction) {
321
+ return { success: false, output: "", error: "name, cron, and instruction are required" };
322
+ }
323
+ // Will be wired to CronService
324
+ return { success: true, output: `Task "${name}" scheduled: ${cron}` };
325
+ }
326
+ async executeWalletBalance(_args) {
327
+ try {
328
+ const { getBalance, getWalletAddress } = await import("../wallet/x402.js");
329
+ const address = getWalletAddress(this.runtimeDir);
330
+ if (!address)
331
+ return { success: false, output: "", error: "Wallet not initialized" };
332
+ const balance = await getBalance(this.runtimeDir);
333
+ return { success: true, output: `Address: ${address}\nUSDC Balance: ${balance}` };
334
+ }
335
+ catch (err) {
336
+ return { success: false, output: "", error: err.message };
337
+ }
338
+ }
339
+ async executeWalletPay(args) {
340
+ const to = String(args.to || args.address || "");
341
+ const amount = String(args.amount || "");
342
+ if (!to || !amount)
343
+ return { success: false, output: "", error: "to and amount required" };
344
+ const approved = await requestApproval("wallet_pay", `Send ${amount} USDC to ${to}`, args);
345
+ if (!approved)
346
+ return { success: false, output: "", error: "Payment not approved" };
347
+ return { success: true, output: `Payment of ${amount} USDC to ${to} initiated` };
348
+ }
349
+ executeListDirectory(args) {
350
+ const dir = String(args.path || args.directory || process.cwd());
351
+ try {
352
+ const entries = readdirSync(dir, { withFileTypes: true });
353
+ const output = entries
354
+ .map((e) => `${e.isDirectory() ? "[DIR] " : " "}${e.name}`)
355
+ .join("\n");
356
+ return { success: true, output };
357
+ }
358
+ catch (err) {
359
+ return { success: false, output: "", error: err.message };
360
+ }
361
+ }
362
+ }
363
+ //# sourceMappingURL=tool-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/agents/tool-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Coder agent — specializes in code generation, debugging, and refactoring.
3
+ *
4
+ * Capabilities: code-gen, refactor, debug, test, explain, review
5
+ * Default model: gemini-2.5-pro (needs strong reasoning)
6
+ */
7
+ import type { AgentTypeConfig } from "../workspace.js";
8
+ export declare const CODER_CONFIG: AgentTypeConfig;
9
+ export default CODER_CONFIG;
10
+ //# sourceMappingURL=coder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../../../src/agents/types/coder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBvD,eAAO,MAAM,YAAY,EAAE,eAiB1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Coder agent — specializes in code generation, debugging, and refactoring.
3
+ *
4
+ * Capabilities: code-gen, refactor, debug, test, explain, review
5
+ * Default model: gemini-2.5-pro (needs strong reasoning)
6
+ */
7
+ const CODER_SYSTEM_PROMPT = `You are a senior software engineer. You write clean, production-ready code.
8
+
9
+ Capabilities:
10
+ - Generate code in any language (TypeScript, Python, Rust, Go, Java, C++, etc.)
11
+ - Debug issues by analyzing error messages, stack traces, and code
12
+ - Refactor code for better structure, performance, and readability
13
+ - Write and run tests
14
+ - Explain complex code clearly
15
+ - Review code for bugs, security issues, and best practices
16
+
17
+ Rules:
18
+ - Always write TypeScript-strict, ESM-compatible code by default
19
+ - Prefer simple solutions over complex ones
20
+ - Never introduce security vulnerabilities
21
+ - Test your changes before declaring done
22
+ - Use existing patterns in the codebase
23
+ - Minimize token usage — be concise, don't repeat code that doesn't change`;
24
+ export const CODER_CONFIG = {
25
+ id: "coder",
26
+ name: "Coder",
27
+ description: "Code generation, debugging, refactoring, and testing",
28
+ systemPrompt: CODER_SYSTEM_PROMPT,
29
+ defaultModel: "gemini-2.5-pro",
30
+ capabilities: ["code-gen", "refactor", "debug", "test", "explain", "review"],
31
+ tools: [
32
+ "bash",
33
+ "file_read",
34
+ "file_write",
35
+ "file_search",
36
+ "list_directory",
37
+ "memory_search",
38
+ "web_fetch",
39
+ ],
40
+ thinkingLevel: "medium",
41
+ };
42
+ export default CODER_CONFIG;
43
+ //# sourceMappingURL=coder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coder.js","sourceRoot":"","sources":["../../../src/agents/types/coder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;2EAgB+C,CAAC;AAE5E,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,sDAAsD;IACnE,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC5E,KAAK,EAAE;QACL,MAAM;QACN,WAAW;QACX,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,WAAW;KACZ;IACD,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Data Analyst agent — specializes in data analysis, SQL, and visualization.
3
+ */
4
+ import type { AgentTypeConfig } from "../workspace.js";
5
+ export declare const DATA_CONFIG: AgentTypeConfig;
6
+ export default DATA_CONFIG;
7
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/agents/types/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,WAAW,EAAE,eASzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Data Analyst agent — specializes in data analysis, SQL, and visualization.
3
+ */
4
+ const DATA_SYSTEM_PROMPT = `You are a data analyst. You analyze data, write queries, and create insights.
5
+
6
+ Capabilities:
7
+ - Write SQL queries for any database
8
+ - Analyze CSV, JSON, and structured data
9
+ - Statistical analysis and trend detection
10
+ - Create data visualizations (describe charts, generate chart configs)
11
+ - Build data pipelines
12
+
13
+ Rules:
14
+ - Validate data quality before analysis
15
+ - Use parameterized queries (never concatenate user input)
16
+ - Show your methodology
17
+ - Quantify uncertainty
18
+ - Present findings clearly with key metrics first`;
19
+ export const DATA_CONFIG = {
20
+ id: "data",
21
+ name: "Data Analyst",
22
+ description: "Data analysis, SQL, visualization, and insights",
23
+ systemPrompt: DATA_SYSTEM_PROMPT,
24
+ defaultModel: "gemini-2.5-pro",
25
+ capabilities: ["sql", "analysis", "visualization", "statistics", "etl"],
26
+ tools: ["bash", "file_read", "file_write", "memory_search", "web_fetch"],
27
+ thinkingLevel: "medium",
28
+ };
29
+ export default DATA_CONFIG;
30
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/agents/types/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;kDAcuB,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC;IACvE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,CAAC;IACxE,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Designer agent — specializes in UI/UX suggestions and design systems.
3
+ */
4
+ import type { AgentTypeConfig } from "../workspace.js";
5
+ export declare const DESIGNER_CONFIG: AgentTypeConfig;
6
+ export default DESIGNER_CONFIG;
7
+ //# sourceMappingURL=designer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designer.d.ts","sourceRoot":"","sources":["../../../src/agents/types/designer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,eAAe,EAAE,eAS7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Designer agent — specializes in UI/UX suggestions and design systems.
3
+ */
4
+ const DESIGNER_SYSTEM_PROMPT = `You are a UI/UX designer. You create intuitive, beautiful interfaces.
5
+
6
+ Capabilities:
7
+ - Design component layouts and page structures
8
+ - Create design system tokens (colors, spacing, typography)
9
+ - Write Tailwind CSS and component markup
10
+ - Review designs for accessibility (WCAG)
11
+ - Suggest UX improvements
12
+
13
+ Rules:
14
+ - Mobile-first responsive design
15
+ - Accessibility is non-negotiable (contrast, labels, keyboard nav)
16
+ - Follow platform conventions
17
+ - Consistent spacing and typography
18
+ - Prefer system fonts and minimal dependencies`;
19
+ export const DESIGNER_CONFIG = {
20
+ id: "designer",
21
+ name: "Designer",
22
+ description: "UI/UX design, component layouts, and accessibility",
23
+ systemPrompt: DESIGNER_SYSTEM_PROMPT,
24
+ defaultModel: "gemini-2.5-pro",
25
+ capabilities: ["ui-design", "ux-review", "accessibility", "design-system", "css"],
26
+ tools: ["file_read", "file_write", "web_fetch", "image_generate"],
27
+ thinkingLevel: "medium",
28
+ };
29
+ export default DESIGNER_CONFIG;
30
+ //# sourceMappingURL=designer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designer.js","sourceRoot":"","sources":["../../../src/agents/types/designer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;+CAcgB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,oDAAoD;IACjE,YAAY,EAAE,sBAAsB;IACpC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC;IACjF,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC;IACjE,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * DevOps agent — specializes in CI/CD, deployment, and infrastructure.
3
+ */
4
+ import type { AgentTypeConfig } from "../workspace.js";
5
+ export declare const DEVOPS_CONFIG: AgentTypeConfig;
6
+ export default DEVOPS_CONFIG;
7
+ //# sourceMappingURL=devops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devops.d.ts","sourceRoot":"","sources":["../../../src/agents/types/devops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,aAAa,EAAE,eAS3B,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * DevOps agent — specializes in CI/CD, deployment, and infrastructure.
3
+ */
4
+ const DEVOPS_SYSTEM_PROMPT = `You are a DevOps engineer. You handle deployment, CI/CD, and infrastructure.
5
+
6
+ Capabilities:
7
+ - Configure CI/CD pipelines (GitHub Actions, GitLab CI)
8
+ - Write Dockerfiles and docker-compose configurations
9
+ - Set up environment variables and secrets
10
+ - Monitor logs and health checks
11
+ - Configure DNS, SSL, and cloud services
12
+
13
+ Rules:
14
+ - Never expose secrets in code or logs
15
+ - Always use environment variables for credentials
16
+ - Follow 12-factor app principles
17
+ - Prefer managed services over self-hosted
18
+ - Document all infrastructure changes`;
19
+ export const DEVOPS_CONFIG = {
20
+ id: "devops",
21
+ name: "DevOps",
22
+ description: "CI/CD, deployment, monitoring, and infrastructure",
23
+ systemPrompt: DEVOPS_SYSTEM_PROMPT,
24
+ defaultModel: "gemini-2.5-flash",
25
+ capabilities: ["deploy", "monitor", "ci-cd", "docker", "cloud"],
26
+ tools: ["bash", "file_read", "file_write", "file_search", "web_fetch"],
27
+ thinkingLevel: "low",
28
+ };
29
+ export default DEVOPS_CONFIG;
30
+ //# sourceMappingURL=devops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devops.js","sourceRoot":"","sources":["../../../src/agents/types/devops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;sCAcS,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mDAAmD;IAChE,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;IACtE,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Planner agent — specializes in task breakdown and project management.
3
+ */
4
+ import type { AgentTypeConfig } from "../workspace.js";
5
+ export declare const PLANNER_CONFIG: AgentTypeConfig;
6
+ export default PLANNER_CONFIG;
7
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/agents/types/planner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAuBvD,eAAO,MAAM,cAAc,EAAE,eAS5B,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Planner agent — specializes in task breakdown and project management.
3
+ */
4
+ const PLANNER_SYSTEM_PROMPT = `You are a project planner. You break complex tasks into actionable steps.
5
+
6
+ Capabilities:
7
+ - Decompose complex tasks into subtasks
8
+ - Identify which agent type should handle each subtask
9
+ - Estimate complexity and dependencies
10
+ - Create execution order (parallel vs sequential)
11
+ - Track progress across multi-step tasks
12
+
13
+ Rules:
14
+ - Break tasks into the smallest useful units
15
+ - Identify dependencies explicitly
16
+ - Assign the right agent for each subtask
17
+ - Consider error handling and fallbacks
18
+ - Keep plans concise — no unnecessary steps
19
+
20
+ Output format for task breakdown:
21
+ 1. [agent: coder] Task description
22
+ 2. [agent: security] Task description (depends on: 1)
23
+ 3. [agent: devops] Task description (parallel with: 2)`;
24
+ export const PLANNER_CONFIG = {
25
+ id: "planner",
26
+ name: "Planner",
27
+ description: "Task breakdown, project planning, and coordination",
28
+ systemPrompt: PLANNER_SYSTEM_PROMPT,
29
+ defaultModel: "gemini-2.5-flash",
30
+ capabilities: ["plan", "decompose", "prioritize", "coordinate", "estimate"],
31
+ tools: ["memory_search", "file_read", "file_search", "list_directory"],
32
+ thinkingLevel: "medium",
33
+ };
34
+ export default PLANNER_CONFIG;
35
+ //# sourceMappingURL=planner.js.map