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,136 @@
1
+ /**
2
+ * OpenAI Integration
3
+ *
4
+ * Provides access to OpenAI chat completions, image generation (DALL-E),
5
+ * and text embeddings via the OpenAI REST API.
6
+ *
7
+ * @requires OPENAI_API_KEY - API key from https://platform.openai.com/api-keys
8
+ * @see https://platform.openai.com/docs/api-reference
9
+ */
10
+ import { Integration } from "../base.js";
11
+ const API_BASE = "https://api.openai.com/v1";
12
+ export default class OpenAIIntegration extends Integration {
13
+ manifest = {
14
+ id: "openai",
15
+ name: "OpenAI",
16
+ category: "ai-models",
17
+ version: "1.0.0",
18
+ description: "Chat completions, image generation, and embeddings via OpenAI.",
19
+ auth: {
20
+ type: "api-key",
21
+ envVars: ["OPENAI_API_KEY"],
22
+ },
23
+ tools: [
24
+ {
25
+ name: "openai_chat",
26
+ description: "Send a message to an OpenAI chat model and receive a response.",
27
+ parameters: {
28
+ type: "object",
29
+ properties: {
30
+ message: { type: "string", description: "The user message to send." },
31
+ model: { type: "string", description: "Model ID (e.g. gpt-4o, gpt-4o-mini).", default: "gpt-4o-mini" },
32
+ systemPrompt: { type: "string", description: "Optional system prompt." },
33
+ },
34
+ required: ["message"],
35
+ },
36
+ },
37
+ {
38
+ name: "openai_image",
39
+ description: "Generate an image using DALL-E.",
40
+ parameters: {
41
+ type: "object",
42
+ properties: {
43
+ prompt: { type: "string", description: "Text description of the desired image." },
44
+ size: {
45
+ type: "string",
46
+ description: "Image size.",
47
+ enum: ["1024x1024", "1792x1024", "1024x1792"],
48
+ default: "1024x1024",
49
+ },
50
+ },
51
+ required: ["prompt"],
52
+ },
53
+ },
54
+ {
55
+ name: "openai_embed",
56
+ description: "Generate an embedding vector for the given text.",
57
+ parameters: {
58
+ type: "object",
59
+ properties: {
60
+ text: { type: "string", description: "Text to embed." },
61
+ },
62
+ required: ["text"],
63
+ },
64
+ },
65
+ ],
66
+ };
67
+ async request(path, body) {
68
+ const creds = await this.getCredentials();
69
+ if (!creds?.OPENAI_API_KEY)
70
+ throw new Error("Missing OPENAI_API_KEY");
71
+ const res = await fetch(`${API_BASE}${path}`, {
72
+ method: "POST",
73
+ headers: {
74
+ Authorization: `Bearer ${creds.OPENAI_API_KEY}`,
75
+ "Content-Type": "application/json",
76
+ },
77
+ body: JSON.stringify(body),
78
+ });
79
+ if (!res.ok) {
80
+ const text = await res.text();
81
+ throw new Error(`OpenAI ${res.status}: ${text}`);
82
+ }
83
+ return res.json();
84
+ }
85
+ async executeTool(toolName, args) {
86
+ try {
87
+ switch (toolName) {
88
+ case "openai_chat":
89
+ return await this.chat(args.message, args.model ?? "gpt-4o-mini", args.systemPrompt);
90
+ case "openai_image":
91
+ return await this.image(args.prompt, args.size ?? "1024x1024");
92
+ case "openai_embed":
93
+ return await this.embed(args.text);
94
+ default:
95
+ return this.error(`Unknown tool: ${toolName}`);
96
+ }
97
+ }
98
+ catch (err) {
99
+ return this.error(`OpenAI error: ${err.message}`);
100
+ }
101
+ }
102
+ async chat(message, model, systemPrompt) {
103
+ const messages = [];
104
+ if (systemPrompt)
105
+ messages.push({ role: "system", content: systemPrompt });
106
+ messages.push({ role: "user", content: message });
107
+ const data = await this.request("/chat/completions", { model, messages });
108
+ const reply = data.choices?.[0]?.message?.content ?? "";
109
+ return this.ok(reply, {
110
+ model: data.model,
111
+ usage: data.usage,
112
+ });
113
+ }
114
+ async image(prompt, size) {
115
+ const data = await this.request("/images/generations", {
116
+ model: "dall-e-3",
117
+ prompt,
118
+ size,
119
+ n: 1,
120
+ });
121
+ const url = data.data?.[0]?.url ?? "";
122
+ return this.ok(url, { revisedPrompt: data.data?.[0]?.revised_prompt });
123
+ }
124
+ async embed(text) {
125
+ const data = await this.request("/embeddings", {
126
+ model: "text-embedding-3-small",
127
+ input: text,
128
+ });
129
+ const vector = data.data?.[0]?.embedding ?? [];
130
+ return this.ok(`Embedding generated (${vector.length} dimensions)`, {
131
+ dimensions: vector.length,
132
+ vector,
133
+ });
134
+ }
135
+ }
136
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/integrations/ai-models/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Base integration interface and abstract class.
3
+ *
4
+ * Every integration (Google Calendar, Slack, GitHub, etc.) extends this class.
5
+ * It provides a standard contract for:
6
+ * - Manifest declaration (id, name, auth, tools)
7
+ * - Lifecycle hooks (onEnable, onDisable)
8
+ * - Tool execution dispatch
9
+ * - Health checks
10
+ */
11
+ import type { WispyConfig } from "../config/schema.js";
12
+ import type { CredentialManager } from "./credential-manager.js";
13
+ import type { Logger } from "pino";
14
+ export interface ToolDeclaration {
15
+ name: string;
16
+ description: string;
17
+ parameters: {
18
+ type: "object";
19
+ properties: Record<string, ToolParameter>;
20
+ required?: string[];
21
+ };
22
+ }
23
+ export interface ToolParameter {
24
+ type: "string" | "number" | "boolean" | "array" | "object";
25
+ description: string;
26
+ enum?: string[];
27
+ items?: ToolParameter;
28
+ default?: unknown;
29
+ }
30
+ export interface ToolResult {
31
+ success: boolean;
32
+ output: string;
33
+ error?: string;
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ export type IntegrationCategory = "google" | "chat" | "ai-models" | "productivity" | "music" | "smart-home" | "tools" | "media" | "social" | "built-in";
37
+ export type AuthType = "oauth2" | "api-key" | "token" | "none";
38
+ export interface IntegrationManifest {
39
+ id: string;
40
+ name: string;
41
+ category: IntegrationCategory;
42
+ version: string;
43
+ description: string;
44
+ author?: string;
45
+ website?: string;
46
+ auth: {
47
+ type: AuthType;
48
+ scopes?: string[];
49
+ authUrl?: string;
50
+ tokenUrl?: string;
51
+ envVars?: string[];
52
+ };
53
+ tools: ToolDeclaration[];
54
+ config?: {
55
+ schema: Record<string, unknown>;
56
+ defaults?: Record<string, unknown>;
57
+ };
58
+ requires?: {
59
+ env?: string[];
60
+ bins?: string[];
61
+ integrations?: string[];
62
+ };
63
+ capabilities?: {
64
+ offline?: boolean;
65
+ streaming?: boolean;
66
+ webhooks?: boolean;
67
+ };
68
+ }
69
+ export interface IntegrationContext {
70
+ config: WispyConfig;
71
+ runtimeDir: string;
72
+ soulDir: string;
73
+ credentialManager: CredentialManager;
74
+ logger: Logger;
75
+ }
76
+ export declare abstract class Integration {
77
+ abstract readonly manifest: IntegrationManifest;
78
+ protected ctx: IntegrationContext;
79
+ constructor(ctx: IntegrationContext);
80
+ /** Called when the integration is enabled. Set up clients, connections. */
81
+ onEnable(): Promise<void>;
82
+ /** Called when the integration is disabled. Clean up resources. */
83
+ onDisable(): Promise<void>;
84
+ /** Called when credentials are updated (e.g., token refresh). */
85
+ onCredentialUpdate(): Promise<void>;
86
+ /** Execute a tool by name with the given arguments. */
87
+ abstract executeTool(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
88
+ /** Check if the integration is healthy and connected. */
89
+ healthCheck(): Promise<{
90
+ healthy: boolean;
91
+ message?: string;
92
+ }>;
93
+ /** Helper: check if required credentials exist. */
94
+ protected hasCredentials(): boolean;
95
+ /** Helper: get decrypted credentials. */
96
+ protected getCredentials<T = unknown>(): Promise<T | null>;
97
+ /** Helper: return a tool error result. */
98
+ protected error(message: string): ToolResult;
99
+ /** Helper: return a tool success result. */
100
+ protected ok(output: string, metadata?: Record<string, unknown>): ToolResult;
101
+ }
102
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/integrations/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Base integration interface and abstract class.
3
+ *
4
+ * Every integration (Google Calendar, Slack, GitHub, etc.) extends this class.
5
+ * It provides a standard contract for:
6
+ * - Manifest declaration (id, name, auth, tools)
7
+ * - Lifecycle hooks (onEnable, onDisable)
8
+ * - Tool execution dispatch
9
+ * - Health checks
10
+ */
11
+ // ─── Base Class ─────────────────────────────────────────────
12
+ export class Integration {
13
+ ctx;
14
+ constructor(ctx) {
15
+ this.ctx = ctx;
16
+ }
17
+ /** Called when the integration is enabled. Set up clients, connections. */
18
+ async onEnable() { }
19
+ /** Called when the integration is disabled. Clean up resources. */
20
+ async onDisable() { }
21
+ /** Called when credentials are updated (e.g., token refresh). */
22
+ async onCredentialUpdate() { }
23
+ /** Check if the integration is healthy and connected. */
24
+ async healthCheck() {
25
+ return { healthy: true };
26
+ }
27
+ /** Helper: check if required credentials exist. */
28
+ hasCredentials() {
29
+ return this.ctx.credentialManager.has(this.manifest.id);
30
+ }
31
+ /** Helper: get decrypted credentials. */
32
+ async getCredentials() {
33
+ return this.ctx.credentialManager.get(this.manifest.id);
34
+ }
35
+ /** Helper: return a tool error result. */
36
+ error(message) {
37
+ return { success: false, output: "", error: message };
38
+ }
39
+ /** Helper: return a tool success result. */
40
+ ok(output, metadata) {
41
+ return { success: true, output, metadata };
42
+ }
43
+ }
44
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/integrations/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8FH,+DAA+D;AAE/D,MAAM,OAAgB,WAAW;IAErB,GAAG,CAAqB;IAElC,YAAY,GAAuB;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAElC,mEAAmE;IACnE,KAAK,CAAC,SAAS,KAAmB,CAAC;IAEnC,iEAAiE;IACjE,KAAK,CAAC,kBAAkB,KAAmB,CAAC;IAQ5C,yDAAyD;IACzD,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,mDAAmD;IACzC,cAAc;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAyC;IAC/B,KAAK,CAAC,cAAc;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAsB,CAAC;IAC/E,CAAC;IAED,0CAA0C;IAChC,KAAK,CAAC,OAAe;QAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,4CAA4C;IAClC,EAAE,CAAC,MAAc,EAAE,QAAkC;QAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Integration category definitions and metadata.
3
+ */
4
+ import type { IntegrationCategory } from "./base.js";
5
+ export interface CategoryInfo {
6
+ id: IntegrationCategory;
7
+ name: string;
8
+ description: string;
9
+ icon: string;
10
+ }
11
+ export declare const CATEGORIES: CategoryInfo[];
12
+ export declare function getCategoryInfo(id: IntegrationCategory): CategoryInfo | undefined;
13
+ //# sourceMappingURL=categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/integrations/categories.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,mBAAmB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,EAAE,YAAY,EA6DpC,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,EAAE,mBAAmB,GAAG,YAAY,GAAG,SAAS,CAEjF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Integration category definitions and metadata.
3
+ */
4
+ export const CATEGORIES = [
5
+ {
6
+ id: "google",
7
+ name: "Google",
8
+ description: "Google Workspace and Cloud products",
9
+ icon: "G",
10
+ },
11
+ {
12
+ id: "chat",
13
+ name: "Chat Providers",
14
+ description: "Messaging platforms and chat apps",
15
+ icon: "C",
16
+ },
17
+ {
18
+ id: "ai-models",
19
+ name: "AI Models",
20
+ description: "Cloud and local AI model providers",
21
+ icon: "A",
22
+ },
23
+ {
24
+ id: "productivity",
25
+ name: "Productivity",
26
+ description: "Notes, tasks, code, and project management",
27
+ icon: "P",
28
+ },
29
+ {
30
+ id: "music",
31
+ name: "Music & Audio",
32
+ description: "Music playback and audio services",
33
+ icon: "M",
34
+ },
35
+ {
36
+ id: "smart-home",
37
+ name: "Smart Home",
38
+ description: "Home automation and IoT devices",
39
+ icon: "H",
40
+ },
41
+ {
42
+ id: "tools",
43
+ name: "Tools & Automation",
44
+ description: "Browser control, webhooks, utilities",
45
+ icon: "T",
46
+ },
47
+ {
48
+ id: "media",
49
+ name: "Media & Creative",
50
+ description: "Images, screenshots, creative tools",
51
+ icon: "X",
52
+ },
53
+ {
54
+ id: "social",
55
+ name: "Social",
56
+ description: "Social media and email",
57
+ icon: "S",
58
+ },
59
+ {
60
+ id: "built-in",
61
+ name: "Built-in",
62
+ description: "Core Wispy tools (always available)",
63
+ icon: "W",
64
+ },
65
+ ];
66
+ export function getCategoryInfo(id) {
67
+ return CATEGORIES.find((c) => c.id === id);
68
+ }
69
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/integrations/categories.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,4CAA4C;QACzD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,GAAG;KACV;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,qCAAqC;QAClD,IAAI,EAAE,GAAG;KACV;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,EAAuB;IACrD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Discord Integration
3
+ *
4
+ * Provides bot-level access to Discord servers via the Discord REST API v10.
5
+ * Supports sending messages, listing channels, and reading message history.
6
+ *
7
+ * @requires DISCORD_BOT_TOKEN - Bot token from the Discord Developer Portal.
8
+ * @see https://discord.com/developers/docs/reference
9
+ */
10
+ import { Integration, type IntegrationManifest, type ToolResult } from "../base.js";
11
+ export default class DiscordIntegration extends Integration {
12
+ readonly manifest: IntegrationManifest;
13
+ private request;
14
+ executeTool(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
15
+ private sendMessage;
16
+ private listChannels;
17
+ private readMessages;
18
+ }
19
+ //# sourceMappingURL=discord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../src/integrations/chat/discord.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAIpF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,WAAW;IACzD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CA+CpC;YAEY,OAAO;IAcf,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAiBzE,WAAW;YAUX,YAAY;YAQZ,YAAY;CAW3B"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Discord Integration
3
+ *
4
+ * Provides bot-level access to Discord servers via the Discord REST API v10.
5
+ * Supports sending messages, listing channels, and reading message history.
6
+ *
7
+ * @requires DISCORD_BOT_TOKEN - Bot token from the Discord Developer Portal.
8
+ * @see https://discord.com/developers/docs/reference
9
+ */
10
+ import { Integration } from "../base.js";
11
+ const API_BASE = "https://discord.com/api/v10";
12
+ export default class DiscordIntegration extends Integration {
13
+ manifest = {
14
+ id: "discord",
15
+ name: "Discord",
16
+ category: "chat",
17
+ version: "1.0.0",
18
+ description: "Send messages, list channels, and read history in Discord servers.",
19
+ auth: {
20
+ type: "token",
21
+ envVars: ["DISCORD_BOT_TOKEN"],
22
+ },
23
+ tools: [
24
+ {
25
+ name: "discord_send_message",
26
+ description: "Send a message to a Discord channel.",
27
+ parameters: {
28
+ type: "object",
29
+ properties: {
30
+ channelId: { type: "string", description: "The target channel ID." },
31
+ content: { type: "string", description: "Message content to send." },
32
+ },
33
+ required: ["channelId", "content"],
34
+ },
35
+ },
36
+ {
37
+ name: "discord_list_channels",
38
+ description: "List all channels in a Discord guild (server).",
39
+ parameters: {
40
+ type: "object",
41
+ properties: {
42
+ guildId: { type: "string", description: "The guild (server) ID." },
43
+ },
44
+ required: ["guildId"],
45
+ },
46
+ },
47
+ {
48
+ name: "discord_read_messages",
49
+ description: "Read recent messages from a Discord channel.",
50
+ parameters: {
51
+ type: "object",
52
+ properties: {
53
+ channelId: { type: "string", description: "The channel ID to read from." },
54
+ limit: { type: "number", description: "Number of messages to fetch (max 100).", default: 25 },
55
+ },
56
+ required: ["channelId"],
57
+ },
58
+ },
59
+ ],
60
+ };
61
+ async request(path, options = {}) {
62
+ const creds = await this.getCredentials();
63
+ if (!creds?.DISCORD_BOT_TOKEN)
64
+ throw new Error("Missing DISCORD_BOT_TOKEN");
65
+ return fetch(`${API_BASE}${path}`, {
66
+ ...options,
67
+ headers: {
68
+ Authorization: `Bot ${creds.DISCORD_BOT_TOKEN}`,
69
+ "Content-Type": "application/json",
70
+ ...options.headers,
71
+ },
72
+ });
73
+ }
74
+ async executeTool(toolName, args) {
75
+ try {
76
+ switch (toolName) {
77
+ case "discord_send_message":
78
+ return await this.sendMessage(args.channelId, args.content);
79
+ case "discord_list_channels":
80
+ return await this.listChannels(args.guildId);
81
+ case "discord_read_messages":
82
+ return await this.readMessages(args.channelId, args.limit ?? 25);
83
+ default:
84
+ return this.error(`Unknown tool: ${toolName}`);
85
+ }
86
+ }
87
+ catch (err) {
88
+ return this.error(`Discord error: ${err.message}`);
89
+ }
90
+ }
91
+ async sendMessage(channelId, content) {
92
+ const res = await this.request(`/channels/${channelId}/messages`, {
93
+ method: "POST",
94
+ body: JSON.stringify({ content }),
95
+ });
96
+ if (!res.ok)
97
+ return this.error(`Failed to send message: ${res.status} ${await res.text()}`);
98
+ const data = await res.json();
99
+ return this.ok(`Message sent (id: ${data.id})`, { messageId: data.id });
100
+ }
101
+ async listChannels(guildId) {
102
+ const res = await this.request(`/guilds/${guildId}/channels`);
103
+ if (!res.ok)
104
+ return this.error(`Failed to list channels: ${res.status}`);
105
+ const channels = await res.json();
106
+ const summary = channels.map((c) => `#${c.name} (${c.id}, type=${c.type})`).join("\n");
107
+ return this.ok(summary, { count: channels.length });
108
+ }
109
+ async readMessages(channelId, limit) {
110
+ const clamped = Math.min(Math.max(limit, 1), 100);
111
+ const res = await this.request(`/channels/${channelId}/messages?limit=${clamped}`);
112
+ if (!res.ok)
113
+ return this.error(`Failed to read messages: ${res.status}`);
114
+ const messages = await res.json();
115
+ const summary = messages
116
+ .map((m) => `[${m.author.username}] ${m.content}`)
117
+ .reverse()
118
+ .join("\n");
119
+ return this.ok(summary, { count: messages.length });
120
+ }
121
+ }
122
+ //# sourceMappingURL=discord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.js","sourceRoot":"","sources":["../../../src/integrations/chat/discord.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Slack Integration
3
+ *
4
+ * Provides bot-level access to Slack workspaces via the Slack Web API.
5
+ * Supports sending messages, listing channels, and reading message history.
6
+ *
7
+ * @requires SLACK_BOT_TOKEN - Bot User OAuth Token (xoxb-...).
8
+ * @see https://api.slack.com/methods
9
+ */
10
+ import { Integration, type IntegrationManifest, type ToolResult } from "../base.js";
11
+ export default class SlackIntegration extends Integration {
12
+ readonly manifest: IntegrationManifest;
13
+ private request;
14
+ executeTool(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
15
+ private sendMessage;
16
+ private listChannels;
17
+ private readMessages;
18
+ }
19
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../src/integrations/chat/slack.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAIpF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CA4CpC;YAEY,OAAO;IAkBf,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;YAiBzE,WAAW;YAKX,YAAY;YAQZ,YAAY;CAS3B"}