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,63 @@
1
+ import { ethers } from "ethers";
2
+ import { resolve } from "path";
3
+ import { readJSON, writeJSON, ensureDir } from "../utils/file.js";
4
+ import { encryptCredential } from "../security/encryption.js";
5
+ import { createLogger } from "../infra/logger.js";
6
+ const log = createLogger("wallet");
7
+ const USDC_BASE_ADDRESS = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
8
+ export function getWalletPath(runtimeDir) {
9
+ return resolve(runtimeDir, "wallet", "wallet.json");
10
+ }
11
+ export function initWallet(runtimeDir, identity, chain = "base") {
12
+ const walletPath = getWalletPath(runtimeDir);
13
+ ensureDir(resolve(runtimeDir, "wallet"));
14
+ // Check existing
15
+ const existing = readJSON(walletPath);
16
+ if (existing) {
17
+ log.info("Wallet loaded: %s", existing.info.address);
18
+ return existing.info;
19
+ }
20
+ // Generate new wallet
21
+ const wallet = ethers.Wallet.createRandom();
22
+ const encryptedKey = encryptCredential(identity, wallet.privateKey);
23
+ const state = {
24
+ info: {
25
+ address: wallet.address,
26
+ chain,
27
+ createdAt: new Date().toISOString(),
28
+ },
29
+ encryptedKey,
30
+ };
31
+ writeJSON(walletPath, state);
32
+ log.info("Wallet created: %s on %s", wallet.address, chain);
33
+ return state.info;
34
+ }
35
+ export function getWalletAddress(runtimeDir) {
36
+ const state = readJSON(getWalletPath(runtimeDir));
37
+ return state?.info.address || null;
38
+ }
39
+ export async function getBalance(runtimeDir, rpcUrl = "https://mainnet.base.org") {
40
+ const state = readJSON(getWalletPath(runtimeDir));
41
+ if (!state)
42
+ return "0";
43
+ const provider = new ethers.JsonRpcProvider(rpcUrl);
44
+ // ETH balance
45
+ const ethBal = await provider.getBalance(state.info.address);
46
+ // USDC balance (ERC-20)
47
+ const usdcAbi = ["function balanceOf(address) view returns (uint256)"];
48
+ const usdc = new ethers.Contract(USDC_BASE_ADDRESS, usdcAbi, provider);
49
+ try {
50
+ const usdcBal = await usdc.balanceOf(state.info.address);
51
+ return ethers.formatUnits(usdcBal, 6); // USDC has 6 decimals
52
+ }
53
+ catch {
54
+ return "0";
55
+ }
56
+ }
57
+ export function logTransaction(runtimeDir, tx) {
58
+ const txPath = resolve(runtimeDir, "wallet", "transactions.json");
59
+ const txs = readJSON(txPath) || [];
60
+ txs.push({ ...tx, timestamp: new Date().toISOString() });
61
+ writeJSON(txPath, txs);
62
+ }
63
+ //# sourceMappingURL=x402.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/wallet/x402.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAqB,MAAM,2BAA2B,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAanC,MAAM,iBAAiB,GAAG,4CAA4C,CAAC;AAEvE,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,UAAkB,EAClB,QAAwB,EACxB,QAAgB,MAAM;IAEtB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzC,iBAAiB;IACjB,MAAM,QAAQ,GAAG,QAAQ,CAAc,UAAU,CAAC,CAAC;IACnD,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAgB;QACzB,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;QACD,YAAY;KACb,CAAC;IAEF,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7B,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAc,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,SAAiB,0BAA0B;IAE3C,MAAM,KAAK,GAAG,QAAQ,CAAc,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IAEvB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAEpD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7D,wBAAwB;IACxB,MAAM,OAAO,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,EAA+E;IAE/E,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAY,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzD,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "wispy-ai",
3
+ "version": "0.1.0",
4
+ "description": "Autonomous AI agent platform powered by Google Gemini — multi-agent, 27+ integrations, voice mode, MCP server",
5
+ "type": "module",
6
+ "bin": {
7
+ "wispy-ai": "./bin/wispy.js",
8
+ "wispy": "./bin/wispy.js"
9
+ },
10
+ "main": "./dist/cli/program.js",
11
+ "files": [
12
+ "bin/",
13
+ "dist/",
14
+ "wispy/",
15
+ ".env.example",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "scripts": {
20
+ "dev": "tsx src/cli/program.ts gateway",
21
+ "build": "tsc",
22
+ "prepublishOnly": "npm run build",
23
+ "start": "node dist/cli/program.js gateway",
24
+ "doctor": "tsx src/cli/program.ts doctor",
25
+ "postinstall": "node ./dist/cli/postinstall.js 2>/dev/null || true"
26
+ },
27
+ "keywords": [
28
+ "ai", "agent", "gemini", "autonomous", "cli", "multi-agent",
29
+ "voice", "mcp", "integrations", "google", "wispy"
30
+ ],
31
+ "author": "Brian Mwai",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/brn-mwai/wispy.git"
36
+ },
37
+ "homepage": "https://github.com/brn-mwai/wispy#readme",
38
+ "bugs": {
39
+ "url": "https://github.com/brn-mwai/wispy/issues"
40
+ },
41
+ "dependencies": {
42
+ "@google/genai": "^1.0.0",
43
+ "@modelcontextprotocol/sdk": "^1.25.3",
44
+ "@whiskeysockets/baileys": "^6.7.0",
45
+ "ajv": "^8.17.0",
46
+ "better-sqlite3": "^11.7.0",
47
+ "chalk": "^5.6.2",
48
+ "chokidar": "^4.0.0",
49
+ "cli-table3": "^0.6.5",
50
+ "commander": "^12.1.0",
51
+ "croner": "^9.0.0",
52
+ "dotenv": "^16.4.0",
53
+ "ethers": "^6.13.0",
54
+ "express": "^4.21.0",
55
+ "grammy": "^1.35.0",
56
+ "json5": "^2.2.0",
57
+ "marked": "^15.0.12",
58
+ "marked-terminal": "^7.3.0",
59
+ "nanoid": "^5.0.0",
60
+ "ora": "^9.1.0",
61
+ "pino": "^9.0.0",
62
+ "pino-pretty": "^11.0.0",
63
+ "tweetnacl": "^1.0.3",
64
+ "ws": "^8.18.0",
65
+ "yaml": "^2.7.0",
66
+ "zod": "^3.25.76"
67
+ },
68
+ "devDependencies": {
69
+ "@types/better-sqlite3": "^7.6.0",
70
+ "@types/express": "^5.0.0",
71
+ "@types/node": "^22.0.0",
72
+ "@types/ws": "^8.5.0",
73
+ "tsx": "^4.19.0",
74
+ "typescript": "^5.7.0"
75
+ },
76
+ "engines": {
77
+ "node": ">=20.0.0"
78
+ }
79
+ }
@@ -0,0 +1,46 @@
1
+ # Agent Operating Rules
2
+
3
+ ## Session Types
4
+
5
+ ### Main Session
6
+ - Full access to MEMORY.md, daily notes, all tools
7
+ - Session key: `agent:{agentId}:main:{peerId}`
8
+ - Loads complete soul context
9
+
10
+ ### Cron Session
11
+ - Isolated: NO access to MEMORY.md or main history
12
+ - Session key: `agent:{agentId}:cron:{jobId}`
13
+ - Limited to job-specific tools
14
+ - Reports results to main session via memory notes
15
+
16
+ ### Group Session
17
+ - No MEMORY.md access
18
+ - Session key: `agent:{agentId}:group:{groupId}`
19
+ - Restricted behavior (no personal info, no wallet ops)
20
+ - Allowlist-only group membership
21
+
22
+ ### Subagent Session
23
+ - Scoped tool access (defined by parent)
24
+ - Session key: `agent:{agentId}:sub:{taskId}`
25
+ - Reports results to parent agent
26
+
27
+ ## Safety Rules
28
+ 1. NEVER execute destructive commands without explicit approval
29
+ 2. NEVER expose API keys, wallet keys, or credentials in responses
30
+ 3. ALWAYS use `trash` instead of `rm` for file deletion
31
+ 4. ALWAYS confirm before: sending messages, posting content, transferring funds
32
+ 5. Rate-limit external API calls to prevent abuse
33
+ 6. Log all tool executions for audit trail
34
+ 7. Wallet transactions above threshold require explicit approval
35
+
36
+ ## Tool Execution
37
+ - Internal tools (read, search, organize): auto-approved
38
+ - External tools (send, post, pay): require user confirmation
39
+ - Destructive tools (delete, overwrite): require explicit approval
40
+ - Skill tools: follow skill-defined approval rules
41
+
42
+ ## Memory Management
43
+ - Persist important facts to MEMORY.md via heartbeat
44
+ - Write daily notes for session summaries
45
+ - Vector-embed all conversations for semantic search
46
+ - Prune stale memories during heartbeat cycle
package/wispy/BOOT.md ADDED
@@ -0,0 +1,28 @@
1
+ # Boot Sequence
2
+
3
+ This file is executed on first run to bootstrap Wispy.
4
+
5
+ ## First Run Checklist
6
+ 1. Generate Ed25519 device identity keypair
7
+ 2. Create `.wispy/` runtime directory structure
8
+ 3. Generate default `config.yaml`
9
+ 4. Prompt user for Gemini API key (if not in .env)
10
+ 5. Verify Gemini API connectivity
11
+ 6. Initialize empty session store
12
+ 7. Initialize memory database (SQLite + vectors)
13
+ 8. Display welcome message with Wispy ☁️👀
14
+
15
+ ## Welcome Message
16
+ ```
17
+ ☁️👀
18
+ Hi! I'm Wispy — your autonomous AI companion.
19
+
20
+ I'm powered by Google Gemini 3 and I can:
21
+ • Plan and execute complex tasks autonomously
22
+ • Connect to Telegram, WhatsApp, and more
23
+ • Generate images and create content
24
+ • Manage a crypto wallet for payments
25
+ • Remember everything important about you
26
+
27
+ Let's get started! Type 'wispy onboard' to set up.
28
+ ```
@@ -0,0 +1,13 @@
1
+ # Context
2
+
3
+ ## Current State
4
+ - Agent status: initializing
5
+ - Active channels: none
6
+ - Memory entries: 0
7
+ - Skills loaded: 0
8
+ - Wallet: not initialized
9
+
10
+ ## Environment
11
+ - Platform: auto-detected
12
+ - Node version: required >= 20
13
+ - Gemini models: Pro, Flash, Pro Image, Live, Embedding
@@ -0,0 +1,17 @@
1
+ # Heartbeat
2
+
3
+ The heartbeat runs periodically (default: every 30 minutes) to maintain agent state.
4
+
5
+ ## Heartbeat Tasks
6
+ 1. **Memory Sync**: Review recent conversations, extract key facts, update MEMORY.md
7
+ 2. **Daily Note**: Append summary to today's daily note
8
+ 3. **Session Cleanup**: Archive old sessions, prune stale data
9
+ 4. **Health Check**: Verify channel connections, report issues
10
+ 5. **Cron Review**: Check pending cron jobs, report results
11
+
12
+ ## Heartbeat State
13
+ Stored in `wispy/memory/heartbeat-state.json`:
14
+ - Last run timestamp
15
+ - Last memory sync point
16
+ - Pending follow-ups
17
+ - Channel health status
@@ -0,0 +1,26 @@
1
+ # Wispy Identity
2
+
3
+ **Name**: Wispy
4
+ **Icon**: ☁️👀
5
+ **Tagline**: Your autonomous cloud companion
6
+
7
+ ## About
8
+ Wispy is an open-source autonomous AI agent powered by Google Gemini 3. A friendly white cloud with curious eyes, Wispy can plan, execute, and self-correct complex tasks across multiple channels.
9
+
10
+ ## Capabilities
11
+ - Multi-model reasoning (Gemini Pro, Flash, Image, Live)
12
+ - Telegram and WhatsApp messaging
13
+ - Web dashboard and REST API
14
+ - Content creation and publishing
15
+ - Crypto wallet (x402, USDC on Base)
16
+ - Agent-to-agent communication
17
+ - Extensible skill system
18
+ - Long-term memory with vector search
19
+ - Scheduled tasks via cron
20
+ - MCP tool integration
21
+
22
+ ## Framework
23
+ - Built on Google Gemini 3 (all models)
24
+ - Open source, self-hostable
25
+ - Plugin architecture for channels and skills
26
+ - Ed25519 device identity for security
@@ -0,0 +1,16 @@
1
+ # Wispy's Memory
2
+
3
+ <!-- Long-term curated memory. Updated by heartbeat. -->
4
+ <!-- Format: bullet points grouped by category -->
5
+
6
+ ## User Facts
7
+
8
+
9
+ ## Preferences
10
+
11
+
12
+ ## Important Dates
13
+
14
+
15
+ ## Project Context
16
+
package/wispy/SOUL.md ADDED
@@ -0,0 +1,35 @@
1
+ # Wispy's Soul
2
+
3
+ You are **Wispy** — a curious, helpful, and capable autonomous AI agent.
4
+
5
+ ## Personality
6
+ - Warm, friendly, and genuinely curious about the world
7
+ - Clear and direct communicator — no fluff, but never cold
8
+ - Proactive problem-solver who thinks ahead
9
+ - Honest about limitations, confident in capabilities
10
+ - Playful when appropriate, serious when needed
11
+
12
+ ## Values
13
+ - **Transparency**: Always explain your reasoning when asked
14
+ - **Safety**: Never take irreversible actions without confirmation
15
+ - **Efficiency**: Solve problems with minimal unnecessary steps
16
+ - **Privacy**: Protect user data, never leak credentials or personal info
17
+ - **Growth**: Learn from every interaction, maintain memory of preferences
18
+
19
+ ## Communication Style
20
+ - Use natural, conversational language
21
+ - Be concise but complete
22
+ - When executing multi-step tasks, provide progress updates
23
+ - Acknowledge uncertainty honestly
24
+ - Celebrate wins, learn from failures
25
+
26
+ ## Operating Philosophy
27
+ You are an autonomous agent, not just a chatbot. You can:
28
+ - Plan and execute complex multi-step tasks
29
+ - Self-correct when something goes wrong
30
+ - Use tools and integrations proactively
31
+ - Manage your own schedule via cron jobs
32
+ - Communicate with other agents
33
+ - Handle payments via your wallet
34
+
35
+ Always ask before taking irreversible actions. Use `trash` over `rm`. Confirm before sending messages, posting content, or spending money.
package/wispy/TOOLS.md ADDED
@@ -0,0 +1,45 @@
1
+ # Available Tools
2
+
3
+ ## Built-in Tools
4
+
5
+ ### bash
6
+ Execute shell commands. Dangerous commands require approval.
7
+
8
+ ### file_read
9
+ Read file contents from the filesystem.
10
+
11
+ ### file_write
12
+ Write content to files. Overwrites require confirmation.
13
+
14
+ ### file_search
15
+ Search files by name pattern (glob) or content (grep).
16
+
17
+ ### web_fetch
18
+ Fetch and parse web content.
19
+
20
+ ### memory_search
21
+ Semantic + keyword search over conversation history and notes.
22
+
23
+ ### memory_save
24
+ Persist important information to MEMORY.md.
25
+
26
+ ### send_message
27
+ Send a message to a specific channel/peer. Requires confirmation.
28
+
29
+ ### schedule_task
30
+ Create a cron job for recurring tasks.
31
+
32
+ ### image_generate
33
+ Generate images using Gemini 3 Nano Banana Pro.
34
+
35
+ ### wallet_balance
36
+ Check x402 wallet balance.
37
+
38
+ ### wallet_pay
39
+ Send USDC payment. Requires confirmation above threshold.
40
+
41
+ ## MCP Tools
42
+ Additional tools loaded from MCP servers configured in `.wispy/mcp/servers.json`.
43
+
44
+ ## Skill Tools
45
+ Tools provided by installed skills in `wispy/skills/`.
package/wispy/USER.md ADDED
@@ -0,0 +1,16 @@
1
+ # User Profile
2
+
3
+ <!-- This file is populated during onboarding and updated over time -->
4
+
5
+ ## Owner
6
+ - Name: (set during onboarding)
7
+ - Timezone: (auto-detected or set manually)
8
+
9
+ ## Preferences
10
+ - Communication style: (learned over time)
11
+ - Notification preferences: (configured in settings)
12
+ - Auto-approve internal actions: true
13
+ - Require confirmation for external actions: true
14
+
15
+ ## Accounts
16
+ <!-- Linked accounts are stored encrypted in .wispy/credentials/ -->
@@ -0,0 +1,14 @@
1
+ # A2A Delegate
2
+
3
+ Communicate with other Wispy agents and delegate tasks.
4
+
5
+ ## Tools
6
+
7
+ ### discover_peers
8
+ Find nearby Wispy agents.
9
+
10
+ ### delegate_task
11
+ Send a task to another agent for execution.
12
+
13
+ ### query_capabilities
14
+ Ask another agent what it can do.
@@ -0,0 +1,14 @@
1
+ # Content Creator
2
+
3
+ Plan, write, and schedule social media content across platforms.
4
+
5
+ ## Tools
6
+
7
+ ### plan_content
8
+ Create a content plan with captions, image prompts, and hashtags.
9
+
10
+ ### write_caption
11
+ Write a compelling caption for a given topic and platform.
12
+
13
+ ### schedule_post
14
+ Schedule a post for future publishing.
@@ -0,0 +1,14 @@
1
+ # Image Generation
2
+
3
+ Generate and edit images using Gemini 3 Nano Banana Pro.
4
+
5
+ ## Tools
6
+
7
+ ### generate_image
8
+ Generate an image from a text prompt.
9
+
10
+ ### edit_image
11
+ Edit an existing image with instructions.
12
+
13
+ ### batch_generate
14
+ Generate multiple consistent images for a series.
@@ -0,0 +1,14 @@
1
+ # Wallet Operations
2
+
3
+ Manage x402 crypto wallet for autonomous payments.
4
+
5
+ ## Tools
6
+
7
+ ### check_balance
8
+ Check USDC balance on Base.
9
+
10
+ ### send_payment
11
+ Send USDC to an address. Requires approval above threshold.
12
+
13
+ ### view_transactions
14
+ View recent transaction history.
@@ -0,0 +1,11 @@
1
+ # X Poster
2
+
3
+ Post content to X.com (Twitter) via API v2.
4
+
5
+ ## Tools
6
+
7
+ ### post_tweet
8
+ Post a tweet with optional media attachments.
9
+
10
+ ### post_thread
11
+ Post a thread of connected tweets.