@hashgraphonline/conversational-agent 0.2.215 → 0.2.217

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 (310) hide show
  1. package/cli/readme.md +181 -0
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.ts +1 -0
  5. package/dist/cjs/plugins/community/swarm/SwarmPlugin.d.ts +17 -0
  6. package/dist/cjs/plugins/community/swarm/__tests__/SwarmPlugin.mocks.d.ts +1 -0
  7. package/dist/cjs/plugins/community/swarm/__tests__/SwarmPlugin.test.d.ts +1 -0
  8. package/dist/cjs/plugins/community/swarm/__tests__/tools/CreatePostageStampTool.test.d.ts +1 -0
  9. package/dist/cjs/plugins/community/swarm/__tests__/tools/DownloadDataTool.test.d.ts +1 -0
  10. package/dist/cjs/plugins/community/swarm/__tests__/tools/DownloadFilesTool.test.d.ts +1 -0
  11. package/dist/cjs/plugins/community/swarm/__tests__/tools/ExtendPostageStampTool.test.d.ts +1 -0
  12. package/dist/cjs/plugins/community/swarm/__tests__/tools/GetPostageStampTool.test.d.ts +1 -0
  13. package/dist/cjs/plugins/community/swarm/__tests__/tools/ListPostageStampsTool.test.d.ts +1 -0
  14. package/dist/cjs/plugins/community/swarm/__tests__/tools/QueryUploadProgressTool.test.d.ts +1 -0
  15. package/dist/cjs/plugins/community/swarm/__tests__/tools/ReadFeedTool.test.d.ts +1 -0
  16. package/dist/cjs/plugins/community/swarm/__tests__/tools/SwarmTool.mocks.d.ts +14 -0
  17. package/dist/cjs/plugins/community/swarm/__tests__/tools/UpdateFeedTool.test.d.ts +1 -0
  18. package/dist/cjs/plugins/community/swarm/__tests__/tools/UploadDataTool.test.d.ts +1 -0
  19. package/dist/cjs/plugins/community/swarm/__tests__/tools/UploadFileTool.test.d.ts +1 -0
  20. package/dist/cjs/plugins/community/swarm/__tests__/tools/UploadFolderTool.test.d.ts +1 -0
  21. package/dist/cjs/plugins/community/swarm/config.d.ts +6 -0
  22. package/dist/cjs/plugins/community/swarm/constants.d.ts +8 -0
  23. package/dist/cjs/plugins/community/swarm/index.d.ts +2 -0
  24. package/dist/cjs/plugins/community/swarm/model.d.ts +23 -0
  25. package/dist/cjs/plugins/community/swarm/tools/CreatePostageStampTool.d.ts +47 -0
  26. package/dist/cjs/plugins/community/swarm/tools/DownloadDataTool.d.ts +35 -0
  27. package/dist/cjs/plugins/community/swarm/tools/DownloadFilesTool.d.ts +41 -0
  28. package/dist/cjs/plugins/community/swarm/tools/ExtendPostageStampTool.d.ts +47 -0
  29. package/dist/cjs/plugins/community/swarm/tools/GetPostageStampTool.d.ts +35 -0
  30. package/dist/cjs/plugins/community/swarm/tools/ListPostageStampsTool.d.ts +53 -0
  31. package/dist/cjs/plugins/community/swarm/tools/QueryUploadProgressTool.d.ts +35 -0
  32. package/dist/cjs/plugins/community/swarm/tools/ReadFeedTool.d.ts +41 -0
  33. package/dist/cjs/plugins/community/swarm/tools/UpdateFeedTool.d.ts +47 -0
  34. package/dist/cjs/plugins/community/swarm/tools/UploadDataTool.d.ts +47 -0
  35. package/dist/cjs/plugins/community/swarm/tools/UploadFileTool.d.ts +53 -0
  36. package/dist/cjs/plugins/community/swarm/tools/UploadFolderTool.d.ts +47 -0
  37. package/dist/cjs/plugins/community/swarm/utils.d.ts +22 -0
  38. package/dist/cjs/plugins/index.d.ts +1 -0
  39. package/dist/esm/index.js +33 -31
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/index10.js +13 -677
  42. package/dist/esm/index10.js.map +1 -1
  43. package/dist/esm/index11.js +601 -234
  44. package/dist/esm/index11.js.map +1 -1
  45. package/dist/esm/index12.js +296 -136
  46. package/dist/esm/index12.js.map +1 -1
  47. package/dist/esm/index13.js +127 -235
  48. package/dist/esm/index13.js.map +1 -1
  49. package/dist/esm/index14.js +247 -84
  50. package/dist/esm/index14.js.map +1 -1
  51. package/dist/esm/index15.js +81 -159
  52. package/dist/esm/index15.js.map +1 -1
  53. package/dist/esm/index16.js +155 -229
  54. package/dist/esm/index16.js.map +1 -1
  55. package/dist/esm/index17.js +238 -140
  56. package/dist/esm/index17.js.map +1 -1
  57. package/dist/esm/index18.js +139 -493
  58. package/dist/esm/index18.js.map +1 -1
  59. package/dist/esm/index19.js +479 -91
  60. package/dist/esm/index19.js.map +1 -1
  61. package/dist/esm/index20.js +88 -147
  62. package/dist/esm/index20.js.map +1 -1
  63. package/dist/esm/index21.js +127 -666
  64. package/dist/esm/index21.js.map +1 -1
  65. package/dist/esm/index22.js +698 -44
  66. package/dist/esm/index22.js.map +1 -1
  67. package/dist/esm/index23.js +45 -304
  68. package/dist/esm/index23.js.map +1 -1
  69. package/dist/esm/index24.js +303 -153
  70. package/dist/esm/index24.js.map +1 -1
  71. package/dist/esm/index25.js +150 -117
  72. package/dist/esm/index25.js.map +1 -1
  73. package/dist/esm/index26.js +154 -18
  74. package/dist/esm/index26.js.map +1 -1
  75. package/dist/esm/index27.js +18 -22
  76. package/dist/esm/index27.js.map +1 -1
  77. package/dist/esm/index28.js +15 -74
  78. package/dist/esm/index28.js.map +1 -1
  79. package/dist/esm/index29.js +70 -295
  80. package/dist/esm/index29.js.map +1 -1
  81. package/dist/esm/index30.js +279 -100
  82. package/dist/esm/index30.js.map +1 -1
  83. package/dist/esm/index31.js +86 -922
  84. package/dist/esm/index31.js.map +1 -1
  85. package/dist/esm/index32.js +904 -189
  86. package/dist/esm/index32.js.map +1 -1
  87. package/dist/esm/index33.js +185 -1169
  88. package/dist/esm/index33.js.map +1 -1
  89. package/dist/esm/index34.js +1218 -112
  90. package/dist/esm/index34.js.map +1 -1
  91. package/dist/esm/index35.js +111 -99
  92. package/dist/esm/index35.js.map +1 -1
  93. package/dist/esm/index36.js +113 -8
  94. package/dist/esm/index36.js.map +1 -1
  95. package/dist/esm/index37.js +8 -45
  96. package/dist/esm/index37.js.map +1 -1
  97. package/dist/esm/index38.js +41 -102
  98. package/dist/esm/index38.js.map +1 -1
  99. package/dist/esm/index39.js +96 -55
  100. package/dist/esm/index39.js.map +1 -1
  101. package/dist/esm/index4.js +1 -1
  102. package/dist/esm/index40.js +58 -71
  103. package/dist/esm/index40.js.map +1 -1
  104. package/dist/esm/index41.js +79 -21
  105. package/dist/esm/index41.js.map +1 -1
  106. package/dist/esm/index42.js +21 -5
  107. package/dist/esm/index42.js.map +1 -1
  108. package/dist/esm/index43.js +4 -11
  109. package/dist/esm/index43.js.map +1 -1
  110. package/dist/esm/index44.js +12 -322
  111. package/dist/esm/index44.js.map +1 -1
  112. package/dist/esm/index45.js +280 -142
  113. package/dist/esm/index45.js.map +1 -1
  114. package/dist/esm/index46.js +181 -24
  115. package/dist/esm/index46.js.map +1 -1
  116. package/dist/esm/index48.js +67 -85
  117. package/dist/esm/index48.js.map +1 -1
  118. package/dist/esm/index49.js +75 -0
  119. package/dist/esm/index49.js.map +1 -0
  120. package/dist/esm/index5.js +2 -2
  121. package/dist/esm/index50.js +57 -0
  122. package/dist/esm/index50.js.map +1 -0
  123. package/dist/esm/index51.js +103 -0
  124. package/dist/esm/index51.js.map +1 -0
  125. package/dist/esm/index52.js +79 -0
  126. package/dist/esm/index52.js.map +1 -0
  127. package/dist/esm/index53.js +75 -0
  128. package/dist/esm/index53.js.map +1 -0
  129. package/dist/esm/index54.js +124 -0
  130. package/dist/esm/index54.js.map +1 -0
  131. package/dist/esm/index55.js +58 -0
  132. package/dist/esm/index55.js.map +1 -0
  133. package/dist/esm/index56.js +83 -0
  134. package/dist/esm/index56.js.map +1 -0
  135. package/dist/esm/index57.js +100 -0
  136. package/dist/esm/index57.js.map +1 -0
  137. package/dist/esm/index58.js +118 -0
  138. package/dist/esm/index58.js.map +1 -0
  139. package/dist/esm/index59.js +108 -0
  140. package/dist/esm/index59.js.map +1 -0
  141. package/dist/esm/index6.js +132 -833
  142. package/dist/esm/index6.js.map +1 -1
  143. package/dist/esm/index60.js +30 -0
  144. package/dist/esm/index60.js.map +1 -0
  145. package/dist/esm/index61.js +98 -0
  146. package/dist/esm/index61.js.map +1 -0
  147. package/dist/esm/index62.js +131 -0
  148. package/dist/esm/index62.js.map +1 -0
  149. package/dist/esm/index63.js +19 -0
  150. package/dist/esm/index63.js.map +1 -0
  151. package/dist/esm/index7.js +826 -75
  152. package/dist/esm/index7.js.map +1 -1
  153. package/dist/esm/index8.js +91 -13
  154. package/dist/esm/index8.js.map +1 -1
  155. package/dist/esm/index9.js +13 -17
  156. package/dist/esm/index9.js.map +1 -1
  157. package/dist/types/index.d.ts +1 -0
  158. package/dist/types/plugins/community/swarm/SwarmPlugin.d.ts +17 -0
  159. package/dist/types/plugins/community/swarm/__tests__/SwarmPlugin.mocks.d.ts +1 -0
  160. package/dist/types/plugins/community/swarm/__tests__/SwarmPlugin.test.d.ts +1 -0
  161. package/dist/types/plugins/community/swarm/__tests__/tools/CreatePostageStampTool.test.d.ts +1 -0
  162. package/dist/types/plugins/community/swarm/__tests__/tools/DownloadDataTool.test.d.ts +1 -0
  163. package/dist/types/plugins/community/swarm/__tests__/tools/DownloadFilesTool.test.d.ts +1 -0
  164. package/dist/types/plugins/community/swarm/__tests__/tools/ExtendPostageStampTool.test.d.ts +1 -0
  165. package/dist/types/plugins/community/swarm/__tests__/tools/GetPostageStampTool.test.d.ts +1 -0
  166. package/dist/types/plugins/community/swarm/__tests__/tools/ListPostageStampsTool.test.d.ts +1 -0
  167. package/dist/types/plugins/community/swarm/__tests__/tools/QueryUploadProgressTool.test.d.ts +1 -0
  168. package/dist/types/plugins/community/swarm/__tests__/tools/ReadFeedTool.test.d.ts +1 -0
  169. package/dist/types/plugins/community/swarm/__tests__/tools/SwarmTool.mocks.d.ts +14 -0
  170. package/dist/types/plugins/community/swarm/__tests__/tools/UpdateFeedTool.test.d.ts +1 -0
  171. package/dist/types/plugins/community/swarm/__tests__/tools/UploadDataTool.test.d.ts +1 -0
  172. package/dist/types/plugins/community/swarm/__tests__/tools/UploadFileTool.test.d.ts +1 -0
  173. package/dist/types/plugins/community/swarm/__tests__/tools/UploadFolderTool.test.d.ts +1 -0
  174. package/dist/types/plugins/community/swarm/config.d.ts +6 -0
  175. package/dist/types/plugins/community/swarm/constants.d.ts +8 -0
  176. package/dist/types/plugins/community/swarm/index.d.ts +2 -0
  177. package/dist/types/plugins/community/swarm/model.d.ts +23 -0
  178. package/dist/types/plugins/community/swarm/tools/CreatePostageStampTool.d.ts +47 -0
  179. package/dist/types/plugins/community/swarm/tools/DownloadDataTool.d.ts +35 -0
  180. package/dist/types/plugins/community/swarm/tools/DownloadFilesTool.d.ts +41 -0
  181. package/dist/types/plugins/community/swarm/tools/ExtendPostageStampTool.d.ts +47 -0
  182. package/dist/types/plugins/community/swarm/tools/GetPostageStampTool.d.ts +35 -0
  183. package/dist/types/plugins/community/swarm/tools/ListPostageStampsTool.d.ts +53 -0
  184. package/dist/types/plugins/community/swarm/tools/QueryUploadProgressTool.d.ts +35 -0
  185. package/dist/types/plugins/community/swarm/tools/ReadFeedTool.d.ts +41 -0
  186. package/dist/types/plugins/community/swarm/tools/UpdateFeedTool.d.ts +47 -0
  187. package/dist/types/plugins/community/swarm/tools/UploadDataTool.d.ts +47 -0
  188. package/dist/types/plugins/community/swarm/tools/UploadFileTool.d.ts +53 -0
  189. package/dist/types/plugins/community/swarm/tools/UploadFolderTool.d.ts +47 -0
  190. package/dist/types/plugins/community/swarm/utils.d.ts +22 -0
  191. package/dist/types/plugins/index.d.ts +1 -0
  192. package/package.json +37 -27
  193. package/src/index.ts +1 -0
  194. package/src/plugins/community/swarm/README.md +279 -0
  195. package/src/plugins/community/swarm/SwarmPlugin.ts +178 -0
  196. package/src/plugins/community/swarm/__tests__/SwarmPlugin.mocks.ts +105 -0
  197. package/src/plugins/community/swarm/__tests__/SwarmPlugin.test.ts +93 -0
  198. package/src/plugins/community/swarm/__tests__/tools/CreatePostageStampTool.test.ts +152 -0
  199. package/src/plugins/community/swarm/__tests__/tools/DownloadDataTool.test.ts +93 -0
  200. package/src/plugins/community/swarm/__tests__/tools/DownloadFilesTool.test.ts +163 -0
  201. package/src/plugins/community/swarm/__tests__/tools/ExtendPostageStampTool.test.ts +132 -0
  202. package/src/plugins/community/swarm/__tests__/tools/GetPostageStampTool.test.ts +83 -0
  203. package/src/plugins/community/swarm/__tests__/tools/ListPostageStampsTool.test.ts +219 -0
  204. package/src/plugins/community/swarm/__tests__/tools/QueryUploadProgressTool.test.ts +169 -0
  205. package/src/plugins/community/swarm/__tests__/tools/ReadFeedTool.test.ts +133 -0
  206. package/src/plugins/community/swarm/__tests__/tools/SwarmTool.mocks.ts +67 -0
  207. package/src/plugins/community/swarm/__tests__/tools/UpdateFeedTool.test.ts +148 -0
  208. package/src/plugins/community/swarm/__tests__/tools/UploadDataTool.test.ts +125 -0
  209. package/src/plugins/community/swarm/__tests__/tools/UploadFileTool.test.ts +194 -0
  210. package/src/plugins/community/swarm/__tests__/tools/UploadFolderTool.test.ts +118 -0
  211. package/src/plugins/community/swarm/config.ts +6 -0
  212. package/src/plugins/community/swarm/constants.ts +12 -0
  213. package/src/plugins/community/swarm/index.ts +2 -0
  214. package/src/plugins/community/swarm/model.ts +23 -0
  215. package/src/plugins/community/swarm/tools/CreatePostageStampTool.ts +137 -0
  216. package/src/plugins/community/swarm/tools/DownloadDataTool.ts +79 -0
  217. package/src/plugins/community/swarm/tools/DownloadFilesTool.ts +155 -0
  218. package/src/plugins/community/swarm/tools/ExtendPostageStampTool.ts +112 -0
  219. package/src/plugins/community/swarm/tools/GetPostageStampTool.ts +92 -0
  220. package/src/plugins/community/swarm/tools/ListPostageStampsTool.ts +124 -0
  221. package/src/plugins/community/swarm/tools/QueryUploadProgressTool.ts +109 -0
  222. package/src/plugins/community/swarm/tools/ReadFeedTool.ts +110 -0
  223. package/src/plugins/community/swarm/tools/UpdateFeedTool.ts +149 -0
  224. package/src/plugins/community/swarm/tools/UploadDataTool.ts +109 -0
  225. package/src/plugins/community/swarm/tools/UploadFileTool.ts +163 -0
  226. package/src/plugins/community/swarm/tools/UploadFolderTool.ts +150 -0
  227. package/src/plugins/community/swarm/utils.ts +172 -0
  228. package/src/plugins/index.ts +1 -0
  229. package/cli/dist/CLIApp.d.ts +0 -11
  230. package/cli/dist/CLIApp.d.ts.map +0 -1
  231. package/cli/dist/CLIApp.js +0 -128
  232. package/cli/dist/CLIApp.js.map +0 -1
  233. package/cli/dist/LocalConversationalAgent.d.ts +0 -37
  234. package/cli/dist/LocalConversationalAgent.js +0 -58
  235. package/cli/dist/app.d.ts +0 -18
  236. package/cli/dist/app.d.ts.map +0 -1
  237. package/cli/dist/app.js +0 -14
  238. package/cli/dist/app.js.map +0 -1
  239. package/cli/dist/cli.d.ts +0 -3
  240. package/cli/dist/cli.d.ts.map +0 -1
  241. package/cli/dist/cli.js +0 -87
  242. package/cli/dist/cli.js.map +0 -1
  243. package/cli/dist/components/AppContainer.d.ts +0 -16
  244. package/cli/dist/components/AppContainer.js +0 -24
  245. package/cli/dist/components/AppScreens.d.ts +0 -2
  246. package/cli/dist/components/AppScreens.js +0 -259
  247. package/cli/dist/components/ChatScreen.d.ts +0 -21
  248. package/cli/dist/components/ChatScreen.d.ts.map +0 -1
  249. package/cli/dist/components/ChatScreen.js +0 -40
  250. package/cli/dist/components/ChatScreen.js.map +0 -1
  251. package/cli/dist/components/DebugLoadingScreen.d.ts +0 -5
  252. package/cli/dist/components/DebugLoadingScreen.js +0 -31
  253. package/cli/dist/components/LoadingScreen.d.ts +0 -3
  254. package/cli/dist/components/LoadingScreen.d.ts.map +0 -1
  255. package/cli/dist/components/LoadingScreen.js +0 -17
  256. package/cli/dist/components/LoadingScreen.js.map +0 -1
  257. package/cli/dist/components/LoadingScreenDebug.d.ts +0 -5
  258. package/cli/dist/components/LoadingScreenDebug.js +0 -27
  259. package/cli/dist/components/MCPConfigScreen.d.ts +0 -28
  260. package/cli/dist/components/MCPConfigScreen.d.ts.map +0 -1
  261. package/cli/dist/components/MCPConfigScreen.js +0 -186
  262. package/cli/dist/components/MCPConfigScreen.js.map +0 -1
  263. package/cli/dist/components/ScreenRouter.d.ts +0 -13
  264. package/cli/dist/components/ScreenRouter.d.ts.map +0 -1
  265. package/cli/dist/components/ScreenRouter.js +0 -23
  266. package/cli/dist/components/ScreenRouter.js.map +0 -1
  267. package/cli/dist/components/SetupScreen.d.ts +0 -16
  268. package/cli/dist/components/SetupScreen.d.ts.map +0 -1
  269. package/cli/dist/components/SetupScreen.js +0 -67
  270. package/cli/dist/components/SetupScreen.js.map +0 -1
  271. package/cli/dist/components/SingleLoadingScreen.d.ts +0 -5
  272. package/cli/dist/components/SingleLoadingScreen.js +0 -27
  273. package/cli/dist/components/StatusBadge.d.ts +0 -10
  274. package/cli/dist/components/StatusBadge.d.ts.map +0 -1
  275. package/cli/dist/components/StatusBadge.js +0 -24
  276. package/cli/dist/components/StatusBadge.js.map +0 -1
  277. package/cli/dist/components/TerminalWindow.d.ts +0 -9
  278. package/cli/dist/components/TerminalWindow.d.ts.map +0 -1
  279. package/cli/dist/components/TerminalWindow.js +0 -19
  280. package/cli/dist/components/TerminalWindow.js.map +0 -1
  281. package/cli/dist/components/WelcomeScreen.d.ts +0 -12
  282. package/cli/dist/components/WelcomeScreen.d.ts.map +0 -1
  283. package/cli/dist/components/WelcomeScreen.js +0 -47
  284. package/cli/dist/components/WelcomeScreen.js.map +0 -1
  285. package/cli/dist/context/AppContext.d.ts +0 -68
  286. package/cli/dist/context/AppContext.js +0 -363
  287. package/cli/dist/headless-runner.d.ts +0 -17
  288. package/cli/dist/headless-runner.d.ts.map +0 -1
  289. package/cli/dist/headless-runner.js +0 -128
  290. package/cli/dist/headless-runner.js.map +0 -1
  291. package/cli/dist/hooks/useInitializeAgent.d.ts +0 -19
  292. package/cli/dist/hooks/useInitializeAgent.d.ts.map +0 -1
  293. package/cli/dist/hooks/useInitializeAgent.js +0 -29
  294. package/cli/dist/hooks/useInitializeAgent.js.map +0 -1
  295. package/cli/dist/hooks/useStableState.d.ts +0 -38
  296. package/cli/dist/hooks/useStableState.d.ts.map +0 -1
  297. package/cli/dist/hooks/useStableState.js +0 -69
  298. package/cli/dist/hooks/useStableState.js.map +0 -1
  299. package/cli/dist/managers/AgentManager.d.ts +0 -58
  300. package/cli/dist/managers/AgentManager.d.ts.map +0 -1
  301. package/cli/dist/managers/AgentManager.js +0 -121
  302. package/cli/dist/managers/AgentManager.js.map +0 -1
  303. package/cli/dist/managers/ConfigManager.d.ts +0 -54
  304. package/cli/dist/managers/ConfigManager.d.ts.map +0 -1
  305. package/cli/dist/managers/ConfigManager.js +0 -188
  306. package/cli/dist/managers/ConfigManager.js.map +0 -1
  307. package/cli/dist/types.d.ts +0 -52
  308. package/cli/dist/types.d.ts.map +0 -1
  309. package/cli/dist/types.js +0 -34
  310. package/cli/dist/types.js.map +0 -1
@@ -0,0 +1,150 @@
1
+ import {
2
+ BaseHederaQueryTool,
3
+ HederaAgentKit,
4
+ type GenericPluginContext,
5
+ } from "hedera-agent-kit";
6
+ import { Bee, CollectionUploadOptions } from "@ethersphere/bee-js";
7
+ import { z } from "zod";
8
+ import { promisify } from "util";
9
+ import fs from "fs";
10
+ import {
11
+ errorHasStatus,
12
+ getErrorMessage,
13
+ getResponseWithStructuredContent,
14
+ getUploadPostageBatchId,
15
+ ToolResponse,
16
+ } from "../utils";
17
+ import { BAD_REQUEST_STATUS } from "../constants";
18
+ import { SwarmConfig } from "../config";
19
+
20
+ const UploadFolderSchema = z.object({
21
+ folderPath: z.string(),
22
+ redundancyLevel: z.number().optional(),
23
+ postageBatchId: z.string().optional(),
24
+ });
25
+
26
+ export class UploadFolderTool extends BaseHederaQueryTool<typeof UploadFolderSchema> {
27
+ name = "swarm-upload-folder";
28
+ description = `Upload a folder to Swarm.
29
+ folderPath: Path to the folder to upload.
30
+ redundancyLevel: Redundancy level for fault tolerance (higher values provide better fault tolerance but increase storage overhead). 0 - none, 1 - medium, 2 - strong, 3 - insane, 4 - paranoid.
31
+ postageBatchId: The postage stamp batch ID which will be used to perform the upload, if it is provided.`;
32
+ namespace = "swarm";
33
+ specificInputSchema = UploadFolderSchema;
34
+ bee: Bee;
35
+ config: SwarmConfig;
36
+
37
+ constructor(params: {
38
+ hederaKit: HederaAgentKit;
39
+ config: SwarmConfig;
40
+ logger?: GenericPluginContext['logger'];
41
+ bee: Bee;
42
+ }) {
43
+ const { bee, config, ...rest } = params;
44
+ super(rest);
45
+ this.bee = bee;
46
+ this.config = config;
47
+ }
48
+
49
+ protected async executeQuery(
50
+ input: z.infer<typeof UploadFolderSchema>
51
+ ): Promise<ToolResponse | string> {
52
+ const { folderPath, redundancyLevel: inputRedundancyLevel, postageBatchId: inputPostageBatchId } = input;
53
+
54
+ if (!folderPath) {
55
+ this.logger.error(
56
+ 'Missing required parameter: folderPath.'
57
+ );
58
+
59
+ throw new Error('Missing required parameter: folderPath.');
60
+ }
61
+
62
+ // Check if folder exists
63
+ const stats = await promisify(fs.stat)(folderPath);
64
+ if (!stats.isDirectory()) {
65
+ this.logger.error(
66
+ `Path is not a directory: ${folderPath}.`
67
+ );
68
+
69
+ throw new Error(`Path is not a directory: ${folderPath}.`);
70
+ }
71
+
72
+ let postageBatchId = "";
73
+
74
+ try {
75
+ postageBatchId = await getUploadPostageBatchId(
76
+ inputPostageBatchId,
77
+ this.bee,
78
+ this.config,
79
+ );
80
+ } catch (error) {
81
+ let errorMessage = 'Upload folder failed.';
82
+ if (error instanceof Error) {
83
+ errorMessage = error.message;
84
+ }
85
+ this.logger.error(errorMessage);
86
+
87
+ throw new Error(errorMessage);
88
+ }
89
+
90
+ const redundancyLevel = inputRedundancyLevel;
91
+ const options: CollectionUploadOptions = {};
92
+
93
+ if (redundancyLevel) {
94
+ options.redundancyLevel = redundancyLevel;
95
+ }
96
+
97
+ const deferred = true;
98
+ options.deferred = deferred;
99
+ let message = 'Folder successfully uploaded to Swarm';
100
+
101
+ let tagId: string | undefined = undefined;
102
+
103
+ if (deferred) {
104
+ try {
105
+ const tag = await this.bee.createTag();
106
+ tagId = tag.uid.toString();
107
+ options.tag = tag.uid;
108
+ message =
109
+ 'Folder upload started in deferred mode. Use swarm-query-upload-progress to track progress.';
110
+ } catch (error) {
111
+ this.logger.error(
112
+ 'Failed to create tag',
113
+ error
114
+ );
115
+ options.deferred = false;
116
+ }
117
+ }
118
+
119
+ let result;
120
+
121
+ try {
122
+ // Start the deferred upload
123
+ result = await this.bee.uploadFilesFromDirectory(
124
+ postageBatchId,
125
+ folderPath,
126
+ options
127
+ );
128
+ } catch (error) {
129
+ let errorMessage = 'Unable to upload folder.';
130
+
131
+ if (errorHasStatus(error, BAD_REQUEST_STATUS)) {
132
+ errorMessage = getErrorMessage(error);
133
+ }
134
+
135
+ this.logger.error(
136
+ errorMessage,
137
+ error
138
+ );
139
+
140
+ throw new Error(errorMessage);
141
+ }
142
+
143
+ return getResponseWithStructuredContent({
144
+ reference: result.reference.toString(),
145
+ url: this.bee.url + "/bzz/" + result.reference.toString(),
146
+ message,
147
+ tagId,
148
+ });
149
+ }
150
+ }
@@ -0,0 +1,172 @@
1
+ import { Bee, PostageBatch } from "@ethersphere/bee-js";
2
+ import { PostageBatchCurated, PostageBatchSummary } from "./model";
3
+ import { SwarmConfig } from "./config";
4
+ import { DEFAULT_GATEWAY_BATCH_ID, NOT_FOUND_STATUS } from "./constants";
5
+
6
+ export interface ToolResponse {
7
+ [x: string]: unknown;
8
+ tools?: { [x: string]: unknown; name: string /* other properties */ };
9
+ _meta?: { [x: string]: unknown };
10
+ }
11
+
12
+ export function hexToBytes(hex: string): Uint8Array {
13
+ const bytes = new Uint8Array(hex.length / 2);
14
+ for (let i = 0; i < hex.length; i += 2) {
15
+ bytes[i / 2] = parseInt(hex.slice(i, i + 2), 16);
16
+ }
17
+ return bytes;
18
+ }
19
+
20
+ export const getBatchSummary = (
21
+ batch: PostageBatch | PostageBatchCurated
22
+ ): PostageBatchSummary => ({
23
+ stampID:
24
+ typeof batch.batchID === "string" ? batch.batchID : batch.batchID.toHex(),
25
+ usage: batch.usageText,
26
+ capacity: `${batch.remainingSize.toFormattedString()} remaining out of ${batch.size.toFormattedString()}`,
27
+ immutable: batch.immutableFlag,
28
+ ttl: `${batch.duration.represent()} (${batch.duration
29
+ .toEndDate()
30
+ .toDateString()})`,
31
+ });
32
+
33
+ export const getResponseWithStructuredContent = <T>(data: T): ToolResponse => ({
34
+ content: [
35
+ {
36
+ type: "text",
37
+ text: JSON.stringify(data, null, 2),
38
+ },
39
+ ],
40
+ structuredContent: data,
41
+ });
42
+
43
+ export const errorHasStatus = (error: unknown, status: number) => {
44
+ if (typeof error === "object" && error !== null && "status" in error) {
45
+ return error.status === status;
46
+ }
47
+
48
+ return false;
49
+ };
50
+
51
+ export const getErrorMessage = (error: unknown) => {
52
+ if (
53
+ typeof error === "object" &&
54
+ error !== null &&
55
+ "responseBody" in error &&
56
+ typeof error.responseBody === "object" &&
57
+ error.responseBody !== null &&
58
+ "message" in error.responseBody
59
+ ) {
60
+ return error.responseBody.message as string;
61
+ }
62
+
63
+ return "";
64
+ };
65
+
66
+ export const runWithTimeout = async <T>(
67
+ asyncAction: Promise<T>,
68
+ timeout: number
69
+ ): Promise<[unknown, boolean]> => {
70
+ let hasTimedOut = false;
71
+
72
+ const timeoutPromise = new Promise((resolve) =>
73
+ setTimeout(() => {
74
+ hasTimedOut = true;
75
+ resolve(true);
76
+ }, timeout)
77
+ );
78
+
79
+ const response = await Promise.race([asyncAction, timeoutPromise]);
80
+
81
+ return [response, hasTimedOut];
82
+ };
83
+
84
+ export const getUploadPostageBatchId = async (
85
+ argsPostageBatchId: string | undefined,
86
+ bee: Bee,
87
+ config: SwarmConfig,
88
+ ): Promise<string> => {
89
+ let postageBatchId = argsPostageBatchId;
90
+ const autoAssignStamp = config.autoAssignStamp ?? true;
91
+ let maxRemainingSize = 0;
92
+
93
+ if (!postageBatchId && !autoAssignStamp) {
94
+ throw new Error('No postageBatchId was provided. Please repeat the prompt and also specify the usable postage batch id.');
95
+ } else if (!postageBatchId) {
96
+ try {
97
+ const rawPostageBatches = await bee.getPostageBatches();
98
+
99
+ rawPostageBatches.forEach((batch) => {
100
+ if (!batch.usable) {
101
+ return;
102
+ }
103
+
104
+ const remainingSize = batch.remainingSize.toBytes();
105
+
106
+ if (remainingSize > maxRemainingSize) {
107
+ maxRemainingSize = remainingSize;
108
+ postageBatchId = batch.batchID.toHex();
109
+ }
110
+ });
111
+ } catch (error) {
112
+ if (errorHasStatus(error, NOT_FOUND_STATUS)) {
113
+ postageBatchId = DEFAULT_GATEWAY_BATCH_ID;
114
+ } else {
115
+ throw new Error('Retrieval of postage batches failed.');
116
+ }
117
+ }
118
+ }
119
+
120
+ if (!postageBatchId) {
121
+ throw new Error('There is no usable postage batch with capacity.');
122
+ }
123
+
124
+ return postageBatchId!;
125
+ };
126
+
127
+ const dateUnits: Record<string, number | undefined> = {
128
+ ms: 1,
129
+ milli: 1,
130
+ millis: 1,
131
+ millisecond: 1,
132
+ milliseconds: 1,
133
+ s: 1000,
134
+ sec: 1000,
135
+ second: 1000,
136
+ seconds: 1000,
137
+ m: 60_000,
138
+ min: 60_000,
139
+ minute: 60_000,
140
+ minutes: 60_000,
141
+ h: 3_600_000,
142
+ hour: 3_600_000,
143
+ hours: 3_600_000,
144
+ d: 86_400_000,
145
+ day: 86_400_000,
146
+ days: 86_400_000,
147
+ w: 604_800_000,
148
+ week: 604_800_000,
149
+ weeks: 604_800_000,
150
+ month: 2_592_000_000,
151
+ months: 2_592_000_000,
152
+ y: 31_536_000_000,
153
+ year: 31_536_000_000,
154
+ years: 31_536_000_000,
155
+ };
156
+
157
+ // From bee.js
158
+ export function makeDate(numberWithUnit: string): number {
159
+ const number = parseFloat(numberWithUnit);
160
+ if (isNaN(number)) {
161
+ throw Error("makeDate got NaN for input");
162
+ }
163
+ const unit = numberWithUnit
164
+ .replace(/^-?[0-9.]+/, "")
165
+ .trim()
166
+ .toLowerCase();
167
+ const multiplier = dateUnits[unit];
168
+ if (!multiplier) {
169
+ throw Error(`Unknown unit: "${unit}"`);
170
+ }
171
+ return number * multiplier;
172
+ }
@@ -4,3 +4,4 @@ export { InscribePlugin } from './inscribe';
4
4
  export { HbarPlugin } from './hbar/HbarPlugin';
5
5
  export * from './hbar';
6
6
  export { WebBrowserPlugin } from './web-browser/WebBrowserPlugin';
7
+ export { SwarmPlugin } from './community/swarm/SwarmPlugin';
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { type Network } from './types';
3
- interface Props {
4
- accountId?: string;
5
- privateKey?: string;
6
- network?: Network;
7
- openAIApiKey?: string;
8
- }
9
- export declare const CLIApp: React.FC<Props>;
10
- export {};
11
- //# sourceMappingURL=CLIApp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CLIApp.d.ts","sourceRoot":"","sources":["../src/CLIApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAO5D,OAAO,EAA4B,KAAK,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhE,UAAU,KAAK;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiKlC,CAAC"}
@@ -1,128 +0,0 @@
1
- import React, { useState, useMemo, useCallback } from 'react';
2
- import { useApp } from 'ink';
3
- import { ScreenRouter } from './components/ScreenRouter';
4
- import { ConfigManager } from './managers/ConfigManager';
5
- import { AgentManager } from './managers/AgentManager';
6
- import { useStableState } from './hooks/useStableState';
7
- import { useInitializeAgent } from './hooks/useInitializeAgent';
8
- export const CLIApp = props => {
9
- const { exit } = useApp();
10
- const configManager = useMemo(() => ConfigManager.getInstance(), []);
11
- const agentManager = useMemo(() => AgentManager.getInstance(), []);
12
- const initialConfig = useMemo(() => configManager.getConfig(props), [
13
- configManager,
14
- props.accountId,
15
- props.privateKey,
16
- props.network,
17
- props.openAIApiKey,
18
- ]);
19
- const initialMcpServers = useMemo(() => configManager.getMCPServers(), [configManager]);
20
- const { state, actions } = useStableState(initialMcpServers);
21
- const [currentConfig, setCurrentConfig] = useState(initialConfig);
22
- const initializeAgent = useInitializeAgent({
23
- configManager,
24
- agentManager,
25
- actions,
26
- });
27
- const handleInitializeAgent = useCallback(() => {
28
- initializeAgent(currentConfig, state.mcpConfig);
29
- }, [initializeAgent, currentConfig, state.mcpConfig]);
30
- const sendMessage = useCallback(async (message) => {
31
- if (!message.trim())
32
- return;
33
- const userMessage = {
34
- role: 'user',
35
- content: message,
36
- timestamp: new Date(),
37
- };
38
- actions.addMessages([userMessage]);
39
- actions.setInput('');
40
- actions.setLoading(true);
41
- try {
42
- const chatHistory = state.messages
43
- .filter((m) => m.role !== 'system')
44
- .map((m) => ({
45
- type: m.role === 'user' ? 'human' : 'ai',
46
- content: m.content,
47
- }));
48
- const response = await agentManager.sendMessage(message, chatHistory);
49
- const assistantMessage = {
50
- role: 'assistant',
51
- content: response.message ||
52
- response.output ||
53
- response.error ||
54
- 'No response received',
55
- timestamp: new Date(),
56
- };
57
- const newMessages = [assistantMessage];
58
- if (response.transactionId) {
59
- newMessages.push({
60
- role: 'system',
61
- content: `Transaction ID: ${response.transactionId}`,
62
- timestamp: new Date(),
63
- });
64
- }
65
- if (response.scheduleId) {
66
- newMessages.push({
67
- role: 'system',
68
- content: `Schedule ID: ${response.scheduleId}`,
69
- timestamp: new Date(),
70
- });
71
- }
72
- if (response.notes && response.notes.length > 0) {
73
- response.notes.forEach((note) => {
74
- newMessages.push({
75
- role: 'system',
76
- content: note,
77
- timestamp: new Date(),
78
- });
79
- });
80
- }
81
- actions.addMessages(newMessages);
82
- }
83
- catch (err) {
84
- actions.addMessages([
85
- {
86
- role: 'system',
87
- content: `Error: ${err instanceof Error ? err.message : 'Unknown error'}`,
88
- timestamp: new Date(),
89
- },
90
- ]);
91
- }
92
- finally {
93
- actions.setLoading(false);
94
- }
95
- }, [agentManager, state.messages, actions]);
96
- const updateConfig = (field, value) => {
97
- const updated = { ...currentConfig, [field]: value };
98
- setCurrentConfig(updated);
99
- };
100
- const saveMCPConfig = () => {
101
- const servers = [];
102
- if (state.mcpConfig.enableFilesystem) {
103
- const filesystemServer = {
104
- name: 'filesystem',
105
- command: 'npx',
106
- args: [
107
- '-y',
108
- '@modelcontextprotocol/server-filesystem',
109
- state.mcpConfig.filesystemPath,
110
- ],
111
- transport: 'stdio',
112
- autoConnect: true,
113
- };
114
- servers.push(filesystemServer);
115
- }
116
- servers.push(...state.mcpConfig.customServers);
117
- configManager.saveMCPConfig(servers);
118
- };
119
- const stableHandlers = useMemo(() => ({
120
- initializeAgent: handleInitializeAgent,
121
- sendMessage,
122
- updateConfig,
123
- saveMCPConfig,
124
- getMCPConfigPath: () => configManager.getMCPConfigPathForDisplay(),
125
- }), [handleInitializeAgent, sendMessage]);
126
- return (React.createElement(ScreenRouter, { state: state, currentConfig: currentConfig, actions: actions, stableHandlers: stableHandlers, exit: exit }));
127
- };
128
- //# sourceMappingURL=CLIApp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CLIApp.js","sourceRoot":"","sources":["../src/CLIApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAU9D,MAAM,CAAC,MAAM,MAAM,GAAoB,KAAK,CAAC,EAAE;IAC9C,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAEnE,MAAM,aAAa,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EACpC;QACC,aAAa;QACb,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,YAAY;KAClB,CACD,CAAC;IACF,MAAM,iBAAiB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,EACnC,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,MAAM,EAAC,KAAK,EAAE,OAAO,EAAC,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAE3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAS,aAAa,CAAC,CAAC;IAE1E,MAAM,eAAe,GAAG,kBAAkB,CAAC;QAC1C,aAAa;QACb,YAAY;QACZ,OAAO;KACP,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9C,eAAe,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,WAAW,CAC9B,KAAK,EAAE,OAAe,EAAE,EAAE;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO;QAE5B,MAAM,WAAW,GAAY;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE;SACrB,CAAC;QAEF,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC;YACJ,MAAM,WAAW,GAChB,KAAK,CAAC,QAAQ;iBACZ,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAC3C,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACxC,OAAO,EAAE,CAAC,CAAC,OAAO;aAClB,CAAC,CAAC,CAAC;YAEN,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEtE,MAAM,gBAAgB,GAAY;gBACjC,IAAI,EAAE,WAAW;gBACjB,OAAO,EACN,QAAQ,CAAC,OAAO;oBAChB,QAAQ,CAAC,MAAM;oBACf,QAAQ,CAAC,KAAK;oBACd,sBAAsB;gBACvB,SAAS,EAAE,IAAI,IAAI,EAAE;aACrB,CAAC;YAEF,MAAM,WAAW,GAAc,CAAC,gBAAgB,CAAC,CAAC;YAElD,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,mBAAmB,QAAQ,CAAC,aAAa,EAAE;oBACpD,SAAS,EAAE,IAAI,IAAI,EAAE;iBACrB,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,gBAAgB,QAAQ,CAAC,UAAU,EAAE;oBAC9C,SAAS,EAAE,IAAI,IAAI,EAAE;iBACrB,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;oBACvC,WAAW,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI;wBACb,SAAS,EAAE,IAAI,IAAI,EAAE;qBACrB,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,WAAW,CAAC;gBACnB;oBACC,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,UACR,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eACtC,EAAE;oBACF,SAAS,EAAE,IAAI,IAAI,EAAE;iBACrB;aACD,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CACvC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAE,KAAa,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,EAAC,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAC,CAAC;QACnD,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YACtC,MAAM,gBAAgB,GAAG;gBACxB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE;oBACL,IAAI;oBACJ,yCAAyC;oBACzC,KAAK,CAAC,SAAS,CAAC,cAAc;iBAC9B;gBACD,SAAS,EAAE,OAAgB;gBAC3B,WAAW,EAAE,IAAI;aACjB,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC;QACN,eAAe,EAAE,qBAAqB;QACtC,WAAW;QACX,YAAY;QACZ,aAAa;QACb,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,0BAA0B,EAAE;KAClE,CAAC,EACF,CAAC,qBAAqB,EAAE,WAAW,CAAC,CACpC,CAAC;IAEF,OAAO,CACN,oBAAC,YAAY,IACZ,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,GACT,CACF,CAAC;AACH,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Minimal ConversationalAgent implementation for CLI use
3
- * This avoids complex dependencies while providing the core functionality
4
- *
5
- * For local development, this allows the CLI to work without needing to publish
6
- * the main package, while still providing a functional demo of the interface.
7
- */
8
- export interface ConversationalAgentOptions {
9
- accountId: string;
10
- privateKey: string;
11
- network: 'testnet' | 'mainnet';
12
- openAIApiKey: string;
13
- openAIModelName?: string;
14
- plugins?: any[];
15
- verbose?: boolean;
16
- }
17
- export interface AgentResponse {
18
- message?: string;
19
- output?: string;
20
- error?: string;
21
- transactionId?: string;
22
- scheduleId?: string;
23
- notes?: string[];
24
- }
25
- export declare class ConversationalAgent {
26
- private config;
27
- private initialized;
28
- constructor(config: ConversationalAgentOptions);
29
- initialize(): Promise<void>;
30
- processMessage(message: string, _chatHistory?: Array<{
31
- type: 'human' | 'ai';
32
- content: string;
33
- }>): Promise<AgentResponse>;
34
- }
35
- export declare class OpenConvAIPlugin {
36
- constructor();
37
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * Minimal ConversationalAgent implementation for CLI use
3
- * This avoids complex dependencies while providing the core functionality
4
- *
5
- * For local development, this allows the CLI to work without needing to publish
6
- * the main package, while still providing a functional demo of the interface.
7
- */
8
- export class ConversationalAgent {
9
- constructor(config) {
10
- Object.defineProperty(this, "config", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "initialized", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: false
21
- });
22
- this.config = config;
23
- }
24
- async initialize() {
25
- if (!this.config.accountId || !this.config.privateKey || !this.config.openAIApiKey) {
26
- throw new Error('Missing required configuration: accountId, privateKey, or openAIApiKey');
27
- }
28
- await new Promise(resolve => setTimeout(resolve, 500));
29
- this.initialized = true;
30
- }
31
- async processMessage(message, _chatHistory) {
32
- if (!this.initialized) {
33
- throw new Error('Agent not initialized. Call initialize() first.');
34
- }
35
- const responses = [
36
- "I'm a demo version of the Conversational Agent. In the full version, I would help you interact with the Hedera network.",
37
- "This CLI demonstrates the interface for the Hashgraph Online Conversational Agent. Full functionality requires the complete implementation.",
38
- "I understand you want to use Hedera network features. The production version would process this request using real network calls.",
39
- "Demo mode: Your message has been received. The full agent would analyze this and execute appropriate Hedera operations.",
40
- "This is a placeholder response. The actual Conversational Agent would provide real Hedera network functionality."
41
- ];
42
- const randomResponse = responses[Math.floor(Math.random() * responses.length)];
43
- return {
44
- message: randomResponse,
45
- output: `Demo response for: ${message}`,
46
- notes: [
47
- `Connected to ${this.config.network}`,
48
- `Using account ${this.config.accountId}`,
49
- `Model: ${this.config.openAIModelName || 'gpt-4o-mini'}`,
50
- 'Running in CLI demo mode'
51
- ]
52
- };
53
- }
54
- }
55
- export class OpenConvAIPlugin {
56
- constructor() {
57
- }
58
- }
package/cli/dist/app.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { type Network } from './types';
3
- type Props = {
4
- accountId?: string;
5
- privateKey?: string;
6
- network?: Network;
7
- openAIApiKey?: string;
8
- };
9
- /**
10
- * Main App component for the Hashgraph Online Conversational Agent CLI
11
- * @param accountId - Hedera account ID
12
- * @param privateKey - Hedera private key
13
- * @param network - Network to connect to (testnet or mainnet)
14
- * @param openAIApiKey - OpenAI API key for the conversational agent
15
- */
16
- export default function App({ accountId, privateKey, network, openAIApiKey, }: Props): React.JSX.Element;
17
- export {};
18
- //# sourceMappingURL=app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,SAAS,CAAC;AAErC,KAAK,KAAK,GAAG;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAIF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAC3B,SAAS,EACT,UAAU,EACV,OAAmB,EACnB,YAAY,GACZ,EAAE,KAAK,qBASP"}
package/cli/dist/app.js DELETED
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { CLIApp } from './CLIApp';
3
- process.setMaxListeners(20);
4
- /**
5
- * Main App component for the Hashgraph Online Conversational Agent CLI
6
- * @param accountId - Hedera account ID
7
- * @param privateKey - Hedera private key
8
- * @param network - Network to connect to (testnet or mainnet)
9
- * @param openAIApiKey - OpenAI API key for the conversational agent
10
- */
11
- export default function App({ accountId, privateKey, network = 'testnet', openAIApiKey, }) {
12
- return (React.createElement(CLIApp, { accountId: accountId, privateKey: privateKey, network: network, openAIApiKey: openAIApiKey }));
13
- }
14
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAUhC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAC3B,SAAS,EACT,UAAU,EACV,OAAO,GAAG,SAAS,EACnB,YAAY,GACL;IACP,OAAO,CACN,oBAAC,MAAM,IACN,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,GACzB,CACF,CAAC;AACH,CAAC"}
package/cli/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":""}