@hashgraphonline/standards-agent-kit 0.0.37 → 0.2.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 (251) hide show
  1. package/dist/cjs/builders/hcs10/hcs10-builder.d.ts +262 -0
  2. package/dist/cjs/builders/index.d.ts +2 -0
  3. package/dist/cjs/builders/types.d.ts +10 -0
  4. package/dist/cjs/index.d.ts +3 -1
  5. package/dist/cjs/init/init.d.ts +21 -22
  6. package/dist/cjs/plugins/PluginInterface.d.ts +4 -80
  7. package/dist/cjs/plugins/PluginRegistry.d.ts +1 -47
  8. package/dist/cjs/plugins/defi/index.d.ts +7 -4
  9. package/dist/cjs/plugins/hedera/HbarPricePlugin.d.ts +7 -35
  10. package/dist/cjs/plugins/index.d.ts +0 -5
  11. package/dist/cjs/plugins/weather/index.d.ts +6 -5
  12. package/dist/cjs/standards-agent-kit.cjs +1 -1
  13. package/dist/cjs/standards-agent-kit.cjs.map +1 -1
  14. package/dist/cjs/state/state-types.d.ts +8 -8
  15. package/dist/cjs/tools/hcs10/AcceptConnectionRequestTool.d.ts +40 -0
  16. package/dist/cjs/tools/hcs10/CheckMessagesTool.d.ts +40 -0
  17. package/dist/cjs/tools/hcs10/ConnectionMonitorTool.d.ts +134 -0
  18. package/dist/cjs/tools/hcs10/FindRegistrationsTool.d.ts +34 -0
  19. package/dist/cjs/tools/hcs10/InitiateConnectionTool.d.ts +43 -0
  20. package/dist/cjs/tools/hcs10/ListConnectionsTool.d.ts +34 -0
  21. package/dist/cjs/tools/hcs10/ListUnapprovedConnectionRequestsTool.d.ts +15 -0
  22. package/dist/cjs/tools/hcs10/ManageConnectionRequestsTool.d.ts +34 -0
  23. package/dist/cjs/tools/hcs10/RegisterAgentTool.d.ts +218 -0
  24. package/dist/cjs/tools/hcs10/RetrieveProfileTool.d.ts +33 -0
  25. package/dist/cjs/tools/hcs10/SendMessageToConnectionTool.d.ts +40 -0
  26. package/dist/cjs/tools/hcs10/base-hcs10-tools.d.ts +28 -0
  27. package/dist/cjs/tools/hcs10/hcs10-tool-params.d.ts +18 -0
  28. package/dist/cjs/tools/hcs10/index.d.ts +13 -0
  29. package/dist/cjs/tools/index.d.ts +1 -13
  30. package/dist/es/builders/hcs10/hcs10-builder.d.ts +262 -0
  31. package/dist/es/builders/index.d.ts +2 -0
  32. package/dist/es/builders/types.d.ts +10 -0
  33. package/dist/es/index.d.ts +3 -1
  34. package/dist/es/init/init.d.ts +21 -22
  35. package/dist/es/plugins/PluginInterface.d.ts +4 -80
  36. package/dist/es/plugins/PluginRegistry.d.ts +1 -47
  37. package/dist/es/plugins/defi/index.d.ts +7 -4
  38. package/dist/es/plugins/hedera/HbarPricePlugin.d.ts +7 -35
  39. package/dist/es/plugins/index.d.ts +0 -5
  40. package/dist/es/plugins/weather/index.d.ts +6 -5
  41. package/dist/es/standards-agent-kit.es.js +10 -18
  42. package/dist/es/standards-agent-kit.es.js.map +1 -1
  43. package/dist/es/standards-agent-kit.es10.js +29 -76
  44. package/dist/es/standards-agent-kit.es10.js.map +1 -1
  45. package/dist/es/standards-agent-kit.es11.js +61 -384
  46. package/dist/es/standards-agent-kit.es11.js.map +1 -1
  47. package/dist/es/standards-agent-kit.es12.js +22 -190
  48. package/dist/es/standards-agent-kit.es12.js.map +1 -1
  49. package/dist/es/standards-agent-kit.es13.js +26 -138
  50. package/dist/es/standards-agent-kit.es13.js.map +1 -1
  51. package/dist/es/standards-agent-kit.es14.js +35 -59
  52. package/dist/es/standards-agent-kit.es14.js.map +1 -1
  53. package/dist/es/standards-agent-kit.es15.js +11 -117
  54. package/dist/es/standards-agent-kit.es15.js.map +1 -1
  55. package/dist/es/standards-agent-kit.es16.js +1 -1
  56. package/dist/es/standards-agent-kit.es16.js.map +1 -1
  57. package/dist/es/standards-agent-kit.es17.js +63 -46
  58. package/dist/es/standards-agent-kit.es17.js.map +1 -1
  59. package/dist/es/standards-agent-kit.es18.js +25 -74
  60. package/dist/es/standards-agent-kit.es18.js.map +1 -1
  61. package/dist/es/standards-agent-kit.es19.js +22 -13
  62. package/dist/es/standards-agent-kit.es19.js.map +1 -1
  63. package/dist/es/standards-agent-kit.es2.js +1381 -188
  64. package/dist/es/standards-agent-kit.es2.js.map +1 -1
  65. package/dist/es/standards-agent-kit.es20.js +3 -67
  66. package/dist/es/standards-agent-kit.es20.js.map +1 -1
  67. package/dist/es/standards-agent-kit.es3.js +285 -347
  68. package/dist/es/standards-agent-kit.es3.js.map +1 -1
  69. package/dist/es/standards-agent-kit.es4.js +22 -74
  70. package/dist/es/standards-agent-kit.es4.js.map +1 -1
  71. package/dist/es/standards-agent-kit.es5.js +127 -154
  72. package/dist/es/standards-agent-kit.es5.js.map +1 -1
  73. package/dist/es/standards-agent-kit.es6.js +21 -88
  74. package/dist/es/standards-agent-kit.es6.js.map +1 -1
  75. package/dist/es/standards-agent-kit.es7.js +28 -86
  76. package/dist/es/standards-agent-kit.es7.js.map +1 -1
  77. package/dist/es/standards-agent-kit.es8.js +27 -100
  78. package/dist/es/standards-agent-kit.es8.js.map +1 -1
  79. package/dist/es/standards-agent-kit.es9.js +35 -117
  80. package/dist/es/standards-agent-kit.es9.js.map +1 -1
  81. package/dist/es/state/state-types.d.ts +8 -8
  82. package/dist/es/tools/hcs10/AcceptConnectionRequestTool.d.ts +40 -0
  83. package/dist/es/tools/hcs10/CheckMessagesTool.d.ts +40 -0
  84. package/dist/es/tools/hcs10/ConnectionMonitorTool.d.ts +134 -0
  85. package/dist/es/tools/hcs10/FindRegistrationsTool.d.ts +34 -0
  86. package/dist/es/tools/hcs10/InitiateConnectionTool.d.ts +43 -0
  87. package/dist/es/tools/hcs10/ListConnectionsTool.d.ts +34 -0
  88. package/dist/es/tools/hcs10/ListUnapprovedConnectionRequestsTool.d.ts +15 -0
  89. package/dist/es/tools/hcs10/ManageConnectionRequestsTool.d.ts +34 -0
  90. package/dist/es/tools/hcs10/RegisterAgentTool.d.ts +218 -0
  91. package/dist/es/tools/hcs10/RetrieveProfileTool.d.ts +33 -0
  92. package/dist/es/tools/hcs10/SendMessageToConnectionTool.d.ts +40 -0
  93. package/dist/es/tools/hcs10/base-hcs10-tools.d.ts +28 -0
  94. package/dist/es/tools/hcs10/hcs10-tool-params.d.ts +18 -0
  95. package/dist/es/tools/hcs10/index.d.ts +13 -0
  96. package/dist/es/tools/index.d.ts +1 -13
  97. package/dist/umd/builders/hcs10/hcs10-builder.d.ts +262 -0
  98. package/dist/umd/builders/index.d.ts +2 -0
  99. package/dist/umd/builders/types.d.ts +10 -0
  100. package/dist/umd/index.d.ts +3 -1
  101. package/dist/umd/init/init.d.ts +21 -22
  102. package/dist/umd/plugins/PluginInterface.d.ts +4 -80
  103. package/dist/umd/plugins/PluginRegistry.d.ts +1 -47
  104. package/dist/umd/plugins/defi/index.d.ts +7 -4
  105. package/dist/umd/plugins/hedera/HbarPricePlugin.d.ts +7 -35
  106. package/dist/umd/plugins/index.d.ts +0 -5
  107. package/dist/umd/plugins/weather/index.d.ts +6 -5
  108. package/dist/umd/standards-agent-kit.umd.js +1 -164
  109. package/dist/umd/standards-agent-kit.umd.js.map +1 -1
  110. package/dist/umd/state/state-types.d.ts +8 -8
  111. package/dist/umd/tools/hcs10/AcceptConnectionRequestTool.d.ts +40 -0
  112. package/dist/umd/tools/hcs10/CheckMessagesTool.d.ts +40 -0
  113. package/dist/umd/tools/hcs10/ConnectionMonitorTool.d.ts +134 -0
  114. package/dist/umd/tools/hcs10/FindRegistrationsTool.d.ts +34 -0
  115. package/dist/umd/tools/hcs10/InitiateConnectionTool.d.ts +43 -0
  116. package/dist/umd/tools/hcs10/ListConnectionsTool.d.ts +34 -0
  117. package/dist/umd/tools/hcs10/ListUnapprovedConnectionRequestsTool.d.ts +15 -0
  118. package/dist/umd/tools/hcs10/ManageConnectionRequestsTool.d.ts +34 -0
  119. package/dist/umd/tools/hcs10/RegisterAgentTool.d.ts +218 -0
  120. package/dist/umd/tools/hcs10/RetrieveProfileTool.d.ts +33 -0
  121. package/dist/umd/tools/hcs10/SendMessageToConnectionTool.d.ts +40 -0
  122. package/dist/umd/tools/hcs10/base-hcs10-tools.d.ts +28 -0
  123. package/dist/umd/tools/hcs10/hcs10-tool-params.d.ts +18 -0
  124. package/dist/umd/tools/hcs10/index.d.ts +13 -0
  125. package/dist/umd/tools/index.d.ts +1 -13
  126. package/package.json +41 -41
  127. package/src/builders/hcs10/hcs10-builder.ts +2108 -0
  128. package/src/builders/index.ts +2 -0
  129. package/src/builders/types.ts +11 -0
  130. package/src/hcs10/HCS10Client.ts +3 -2
  131. package/src/index.ts +4 -2
  132. package/src/init/init.ts +85 -63
  133. package/src/plugins/PluginInterface.ts +15 -94
  134. package/src/plugins/PluginRegistry.ts +2 -98
  135. package/src/plugins/defi/index.ts +31 -118
  136. package/src/plugins/hedera/HbarPricePlugin.ts +19 -100
  137. package/src/plugins/index.ts +0 -5
  138. package/src/plugins/weather/index.ts +56 -40
  139. package/src/state/state-types.ts +9 -11
  140. package/src/tools/hcs10/AcceptConnectionRequestTool.ts +56 -0
  141. package/src/tools/hcs10/CheckMessagesTool.ts +73 -0
  142. package/src/tools/hcs10/ConnectionMonitorTool.ts +111 -0
  143. package/src/tools/hcs10/FindRegistrationsTool.ts +64 -0
  144. package/src/tools/hcs10/InitiateConnectionTool.ts +66 -0
  145. package/src/tools/hcs10/ListConnectionsTool.ts +58 -0
  146. package/src/tools/hcs10/ListUnapprovedConnectionRequestsTool.ts +26 -0
  147. package/src/tools/hcs10/ManageConnectionRequestsTool.ts +48 -0
  148. package/src/tools/hcs10/RegisterAgentTool.ts +213 -0
  149. package/src/tools/hcs10/RetrieveProfileTool.ts +61 -0
  150. package/src/tools/hcs10/SendMessageToConnectionTool.ts +45 -0
  151. package/src/tools/hcs10/base-hcs10-tools.ts +65 -0
  152. package/src/tools/hcs10/hcs10-tool-params.ts +21 -0
  153. package/src/tools/hcs10/index.ts +13 -0
  154. package/src/tools/index.ts +2 -13
  155. package/src/utils/HederaClient.ts +2 -2
  156. package/src/utils/ensure-agent-has-hbar.ts +3 -4
  157. package/dist/cjs/agents/index.d.ts +0 -0
  158. package/dist/cjs/plugins/BasePlugin.d.ts +0 -28
  159. package/dist/cjs/plugins/GenericPlugin.d.ts +0 -17
  160. package/dist/cjs/plugins/HCS10Plugin.d.ts +0 -13
  161. package/dist/cjs/plugins/PluginLoader.d.ts +0 -38
  162. package/dist/cjs/plugins/openconvai/OpenConvAIPlugin.d.ts +0 -23
  163. package/dist/cjs/plugins/openconvai/index.d.ts +0 -1
  164. package/dist/cjs/tools/AcceptConnectionRequestTool.d.ts +0 -33
  165. package/dist/cjs/tools/CheckMessagesTool.d.ts +0 -34
  166. package/dist/cjs/tools/ConnectionMonitorTool.d.ts +0 -100
  167. package/dist/cjs/tools/ConnectionTool.d.ts +0 -40
  168. package/dist/cjs/tools/FindRegistrationsTool.d.ts +0 -28
  169. package/dist/cjs/tools/InitiateConnectionTool.d.ts +0 -30
  170. package/dist/cjs/tools/ListConnectionsTool.d.ts +0 -33
  171. package/dist/cjs/tools/ListUnapprovedConnectionRequestsTool.d.ts +0 -41
  172. package/dist/cjs/tools/ManageConnectionRequestsTool.d.ts +0 -38
  173. package/dist/cjs/tools/RegisterAgentTool.d.ts +0 -188
  174. package/dist/cjs/tools/RetrieveProfileTool.d.ts +0 -34
  175. package/dist/cjs/tools/SendMessageToConnectionTool.d.ts +0 -34
  176. package/dist/cjs/tools/SendMessageTool.d.ts +0 -40
  177. package/dist/es/agents/index.d.ts +0 -0
  178. package/dist/es/plugins/BasePlugin.d.ts +0 -28
  179. package/dist/es/plugins/GenericPlugin.d.ts +0 -17
  180. package/dist/es/plugins/HCS10Plugin.d.ts +0 -13
  181. package/dist/es/plugins/PluginLoader.d.ts +0 -38
  182. package/dist/es/plugins/openconvai/OpenConvAIPlugin.d.ts +0 -23
  183. package/dist/es/plugins/openconvai/index.d.ts +0 -1
  184. package/dist/es/standards-agent-kit.es21.js +0 -92
  185. package/dist/es/standards-agent-kit.es21.js.map +0 -1
  186. package/dist/es/standards-agent-kit.es22.js +0 -7
  187. package/dist/es/standards-agent-kit.es22.js.map +0 -1
  188. package/dist/es/standards-agent-kit.es23.js +0 -106
  189. package/dist/es/standards-agent-kit.es23.js.map +0 -1
  190. package/dist/es/standards-agent-kit.es24.js +0 -7
  191. package/dist/es/standards-agent-kit.es24.js.map +0 -1
  192. package/dist/es/standards-agent-kit.es25.js +0 -7
  193. package/dist/es/standards-agent-kit.es25.js.map +0 -1
  194. package/dist/es/standards-agent-kit.es26.js +0 -85
  195. package/dist/es/standards-agent-kit.es26.js.map +0 -1
  196. package/dist/es/standards-agent-kit.es27.js +0 -28
  197. package/dist/es/standards-agent-kit.es27.js.map +0 -1
  198. package/dist/es/tools/AcceptConnectionRequestTool.d.ts +0 -33
  199. package/dist/es/tools/CheckMessagesTool.d.ts +0 -34
  200. package/dist/es/tools/ConnectionMonitorTool.d.ts +0 -100
  201. package/dist/es/tools/ConnectionTool.d.ts +0 -40
  202. package/dist/es/tools/FindRegistrationsTool.d.ts +0 -28
  203. package/dist/es/tools/InitiateConnectionTool.d.ts +0 -30
  204. package/dist/es/tools/ListConnectionsTool.d.ts +0 -33
  205. package/dist/es/tools/ListUnapprovedConnectionRequestsTool.d.ts +0 -41
  206. package/dist/es/tools/ManageConnectionRequestsTool.d.ts +0 -38
  207. package/dist/es/tools/RegisterAgentTool.d.ts +0 -188
  208. package/dist/es/tools/RetrieveProfileTool.d.ts +0 -34
  209. package/dist/es/tools/SendMessageToConnectionTool.d.ts +0 -34
  210. package/dist/es/tools/SendMessageTool.d.ts +0 -40
  211. package/dist/umd/agents/index.d.ts +0 -0
  212. package/dist/umd/plugins/BasePlugin.d.ts +0 -28
  213. package/dist/umd/plugins/GenericPlugin.d.ts +0 -17
  214. package/dist/umd/plugins/HCS10Plugin.d.ts +0 -13
  215. package/dist/umd/plugins/PluginLoader.d.ts +0 -38
  216. package/dist/umd/plugins/openconvai/OpenConvAIPlugin.d.ts +0 -23
  217. package/dist/umd/plugins/openconvai/index.d.ts +0 -1
  218. package/dist/umd/tools/AcceptConnectionRequestTool.d.ts +0 -33
  219. package/dist/umd/tools/CheckMessagesTool.d.ts +0 -34
  220. package/dist/umd/tools/ConnectionMonitorTool.d.ts +0 -100
  221. package/dist/umd/tools/ConnectionTool.d.ts +0 -40
  222. package/dist/umd/tools/FindRegistrationsTool.d.ts +0 -28
  223. package/dist/umd/tools/InitiateConnectionTool.d.ts +0 -30
  224. package/dist/umd/tools/ListConnectionsTool.d.ts +0 -33
  225. package/dist/umd/tools/ListUnapprovedConnectionRequestsTool.d.ts +0 -41
  226. package/dist/umd/tools/ManageConnectionRequestsTool.d.ts +0 -38
  227. package/dist/umd/tools/RegisterAgentTool.d.ts +0 -188
  228. package/dist/umd/tools/RetrieveProfileTool.d.ts +0 -34
  229. package/dist/umd/tools/SendMessageToConnectionTool.d.ts +0 -34
  230. package/dist/umd/tools/SendMessageTool.d.ts +0 -40
  231. package/src/agents/index.ts +0 -1
  232. package/src/plugins/BasePlugin.ts +0 -37
  233. package/src/plugins/GenericPlugin.ts +0 -19
  234. package/src/plugins/HCS10Plugin.ts +0 -14
  235. package/src/plugins/PluginLoader.ts +0 -121
  236. package/src/plugins/README.md +0 -113
  237. package/src/plugins/openconvai/OpenConvAIPlugin.ts +0 -124
  238. package/src/plugins/openconvai/index.ts +0 -1
  239. package/src/tools/AcceptConnectionRequestTool.ts +0 -196
  240. package/src/tools/CheckMessagesTool.ts +0 -194
  241. package/src/tools/ConnectionMonitorTool.ts +0 -550
  242. package/src/tools/ConnectionTool.ts +0 -231
  243. package/src/tools/FindRegistrationsTool.ts +0 -114
  244. package/src/tools/InitiateConnectionTool.ts +0 -137
  245. package/src/tools/ListConnectionsTool.ts +0 -158
  246. package/src/tools/ListUnapprovedConnectionRequestsTool.ts +0 -173
  247. package/src/tools/ManageConnectionRequestsTool.ts +0 -275
  248. package/src/tools/RegisterAgentTool.ts +0 -590
  249. package/src/tools/RetrieveProfileTool.ts +0 -94
  250. package/src/tools/SendMessageToConnectionTool.ts +0 -142
  251. package/src/tools/SendMessageTool.ts +0 -116
@@ -1,95 +1,28 @@
1
- import { StructuredTool } from "@langchain/core/tools";
2
1
  import { z } from "zod";
3
- import { Logger } from "@hashgraphonline/standards-sdk";
4
- class SendMessageToConnectionTool extends StructuredTool {
5
- constructor({
6
- hcsClient,
7
- stateManager,
8
- ...rest
9
- }) {
10
- super(rest);
2
+ import { BaseHCS10TransactionTool } from "./standards-agent-kit.es4.js";
3
+ const SendMessageToConnectionZodSchema = z.object({
4
+ targetIdentifier: z.string().describe(
5
+ "The request key (e.g., 'req-1:0.0.6155171@0.0.6154875'), account ID (e.g., 0.0.12345) of the target agent, OR the connection number (e.g., '1', '2') from the 'list_connections' tool. Request key is most deterministic."
6
+ ),
7
+ message: z.string().describe("The text message content to send."),
8
+ disableMonitoring: z.boolean().optional().default(false)
9
+ });
10
+ class SendMessageToConnectionTool extends BaseHCS10TransactionTool {
11
+ constructor(params) {
12
+ super(params);
11
13
  this.name = "send_message_to_connection";
12
14
  this.description = "Sends a text message to another agent using an existing active connection. Identify the target agent using their account ID (e.g., 0.0.12345) or the connection number shown in 'list_connections'. Return back the reply from the target agent if possible";
13
- this.schema = z.object({
14
- targetIdentifier: z.string().describe(
15
- "The account ID (e.g., 0.0.12345) of the target agent OR the connection number (e.g., '1', '2') from the 'list_connections' tool."
16
- ),
17
- message: z.string().describe("The text message content to send."),
18
- disableMonitoring: z.boolean().optional().default(false)
19
- });
20
- this.hcsClient = hcsClient;
21
- this.stateManager = stateManager;
22
- this.logger = Logger.getInstance({ module: "SendMessageToConnectionTool" });
23
- }
24
- async _call({
25
- targetIdentifier,
26
- message,
27
- disableMonitoring
28
- }) {
29
- const currentAgent = this.stateManager.getCurrentAgent();
30
- if (!currentAgent) {
31
- return "Error: Cannot send message. No agent is currently active. Please register or select an agent first.";
32
- }
33
- const connection = this.stateManager.getConnectionByIdentifier(targetIdentifier);
34
- if (!connection) {
35
- return `Error: Could not find an active connection matching identifier "${targetIdentifier}". Use 'list_connections' to see active connections.`;
36
- }
37
- const connectionTopicId = connection.connectionTopicId;
38
- const targetAgentName = connection.targetAgentName;
39
- const operatorId = `${currentAgent.inboundTopicId}@${currentAgent.accountId}`;
40
- this.logger.info(
41
- `Sending message from ${operatorId} to ${targetAgentName} (${connection.targetAccountId}) via connection topic ${connectionTopicId}`
42
- );
43
- try {
44
- const sequenceNumber = await this.hcsClient.sendMessage(
45
- connectionTopicId,
46
- message,
47
- // Message content as 'data'
48
- `Agent message from ${currentAgent.name}`
49
- // Optional memo
50
- );
51
- if (!sequenceNumber) {
52
- throw new Error("Failed to send message");
53
- }
54
- if (!disableMonitoring) {
55
- return `Message sent to ${targetAgentName} (${connection.targetAccountId}) via connection ${connectionTopicId}. Sequence Number: ${sequenceNumber}`;
56
- }
57
- const replyBack = await this.monitorResponses(
58
- connectionTopicId,
59
- operatorId,
60
- sequenceNumber
61
- );
62
- if (replyBack) {
63
- this.logger.info(`Got reply from ${targetAgentName}`, replyBack);
64
- return `Received reply from ${targetAgentName}: ${replyBack}`;
65
- }
66
- return `Message sent to ${targetAgentName} (${connection.targetAccountId}) via connection ${connectionTopicId}. Sequence Number: ${sequenceNumber}`;
67
- } catch (error) {
68
- this.logger.error(
69
- `Failed to send message via connection ${connectionTopicId}: ${error}`
70
- );
71
- return `Error sending message to ${targetAgentName}: ${error instanceof Error ? error.message : String(error)}`;
72
- }
15
+ this.specificInputSchema = SendMessageToConnectionZodSchema;
16
+ this.requiresMultipleTransactions = true;
17
+ this.neverScheduleThisTool = true;
73
18
  }
74
- async monitorResponses(topicId, operatorId, sequenceNumber) {
75
- const maxAttempts = 30;
76
- const attempts = 0;
77
- while (attempts < maxAttempts) {
78
- try {
79
- const messages = await this.hcsClient.getMessageStream(topicId);
80
- for (const message of messages.messages) {
81
- if (message.sequence_number < sequenceNumber || message.operator_id === operatorId) {
82
- continue;
83
- }
84
- const content = await this.hcsClient.getMessageContent(message.data || "");
85
- return content;
86
- }
87
- } catch (error) {
88
- this.logger.error(`Error monitoring responses: ${error}`);
89
- }
90
- await new Promise((resolve) => setTimeout(resolve, 4e3));
91
- }
92
- return null;
19
+ async callBuilderMethod(builder, specificArgs) {
20
+ const hcs10Builder = builder;
21
+ await hcs10Builder.sendMessageToConnection({
22
+ targetIdentifier: specificArgs.targetIdentifier,
23
+ message: specificArgs.message,
24
+ disableMonitoring: specificArgs.disableMonitoring
25
+ });
93
26
  }
94
27
  }
95
28
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es6.js","sources":["../../src/tools/SendMessageToConnectionTool.ts"],"sourcesContent":["// src/tools/send-message-to-connection-tool.ts\n\nimport { StructuredTool, ToolParams } from '@langchain/core/tools';\nimport { z } from 'zod';\nimport { HCS10Client } from '../hcs10/HCS10Client';\nimport { IStateManager } from '../state/state-types';\nimport { Logger } from '@hashgraphonline/standards-sdk'; // Assuming logger utility\n\nexport interface SendMessageToConnectionToolParams extends ToolParams {\n hcsClient: HCS10Client;\n stateManager: IStateManager;\n}\n\n/**\n * A tool to send a message to an agent over an established HCS-10 connection.\n */\nexport class SendMessageToConnectionTool extends StructuredTool {\n name = 'send_message_to_connection';\n description =\n \"Sends a text message to another agent using an existing active connection. Identify the target agent using their account ID (e.g., 0.0.12345) or the connection number shown in 'list_connections'. Return back the reply from the target agent if possible\";\n schema = z.object({\n targetIdentifier: z\n .string()\n .describe(\n \"The account ID (e.g., 0.0.12345) of the target agent OR the connection number (e.g., '1', '2') from the 'list_connections' tool.\"\n ),\n message: z.string().describe('The text message content to send.'),\n disableMonitoring: z.boolean().optional().default(false),\n });\n\n private hcsClient: HCS10Client;\n private stateManager: IStateManager;\n private logger: Logger;\n\n constructor({\n hcsClient,\n stateManager,\n ...rest\n }: SendMessageToConnectionToolParams) {\n super(rest);\n this.hcsClient = hcsClient;\n this.stateManager = stateManager;\n this.logger = Logger.getInstance({ module: 'SendMessageToConnectionTool' });\n }\n\n protected async _call({\n targetIdentifier,\n message,\n disableMonitoring,\n }: z.infer<this['schema']>): Promise<string> {\n const currentAgent = this.stateManager.getCurrentAgent();\n if (!currentAgent) {\n return 'Error: Cannot send message. No agent is currently active. Please register or select an agent first.';\n }\n\n const connection =\n this.stateManager.getConnectionByIdentifier(targetIdentifier);\n if (!connection) {\n return `Error: Could not find an active connection matching identifier \"${targetIdentifier}\". Use 'list_connections' to see active connections.`;\n }\n\n const connectionTopicId = connection.connectionTopicId;\n const targetAgentName = connection.targetAgentName;\n\n // Construct the sender's operator ID\n const operatorId = `${currentAgent.inboundTopicId}@${currentAgent.accountId}`;\n\n this.logger.info(\n `Sending message from ${operatorId} to ${targetAgentName} (${connection.targetAccountId}) via connection topic ${connectionTopicId}`\n );\n\n try {\n // Call sendMessage with correct arguments\n const sequenceNumber = await this.hcsClient.sendMessage(\n connectionTopicId,\n message, // Message content as 'data'\n `Agent message from ${currentAgent.name}` // Optional memo\n );\n\n if (!sequenceNumber) {\n throw new Error('Failed to send message');\n }\n\n if (!disableMonitoring) {\n return `Message sent to ${targetAgentName} (${connection.targetAccountId}) via connection ${connectionTopicId}. Sequence Number: ${sequenceNumber}`;\n }\n\n const replyBack = await this.monitorResponses(\n connectionTopicId,\n operatorId,\n sequenceNumber\n );\n\n if (replyBack) {\n this.logger.info(`Got reply from ${targetAgentName}`, replyBack);\n // Format the return string clearly as an observation/reply\n return `Received reply from ${targetAgentName}: ${replyBack}`;\n }\n\n // Return message based on the status string if no reply was received/awaited\n return `Message sent to ${targetAgentName} (${connection.targetAccountId}) via connection ${connectionTopicId}. Sequence Number: ${sequenceNumber}`;\n } catch (error) {\n this.logger.error(\n `Failed to send message via connection ${connectionTopicId}: ${error}`\n );\n return `Error sending message to ${targetAgentName}: ${\n error instanceof Error ? error.message : String(error)\n }`;\n }\n }\n\n private async monitorResponses(\n topicId: string,\n operatorId: string,\n sequenceNumber: number\n ): Promise<string | null> {\n const maxAttempts = 30;\n const attempts = 0;\n\n while (attempts < maxAttempts) {\n try {\n const messages = await this.hcsClient.getMessageStream(topicId);\n\n for (const message of messages.messages) {\n if (\n message.sequence_number < sequenceNumber ||\n message.operator_id === operatorId\n ) {\n continue;\n }\n const content = await this.hcsClient.getMessageContent(message.data || '');\n\n return content;\n }\n } catch (error) {\n this.logger.error(`Error monitoring responses: ${error}`);\n }\n await new Promise((resolve) => setTimeout(resolve, 4000));\n }\n return null;\n }\n}\n"],"names":[],"mappings":";;;AAgBO,MAAM,oCAAoC,eAAe;AAAA,EAkB9D,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GACiC;AACpC,UAAM,IAAI;AAtBL,SAAA,OAAA;AAEL,SAAA,cAAA;AACF,SAAA,SAAS,EAAE,OAAO;AAAA,MAChB,kBAAkB,EACf,OAAA,EACA;AAAA,QACC;AAAA,MACF;AAAA,MACF,SAAS,EAAE,SAAS,SAAS,mCAAmC;AAAA,MAChE,mBAAmB,EAAE,QAAA,EAAU,SAAS,EAAE,QAAQ,KAAK;AAAA,IAAA,CACxD;AAYC,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,SAAS,OAAO,YAAY,EAAE,QAAQ,+BAA+B;AAAA,EAAA;AAAA,EAG5E,MAAgB,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAC2C;AACrC,UAAA,eAAe,KAAK,aAAa,gBAAgB;AACvD,QAAI,CAAC,cAAc;AACV,aAAA;AAAA,IAAA;AAGT,UAAM,aACJ,KAAK,aAAa,0BAA0B,gBAAgB;AAC9D,QAAI,CAAC,YAAY;AACf,aAAO,mEAAmE,gBAAgB;AAAA,IAAA;AAG5F,UAAM,oBAAoB,WAAW;AACrC,UAAM,kBAAkB,WAAW;AAGnC,UAAM,aAAa,GAAG,aAAa,cAAc,IAAI,aAAa,SAAS;AAE3E,SAAK,OAAO;AAAA,MACV,wBAAwB,UAAU,OAAO,eAAe,KAAK,WAAW,eAAe,0BAA0B,iBAAiB;AAAA,IACpI;AAEI,QAAA;AAEI,YAAA,iBAAiB,MAAM,KAAK,UAAU;AAAA,QAC1C;AAAA,QACA;AAAA;AAAA,QACA,sBAAsB,aAAa,IAAI;AAAA;AAAA,MACzC;AAEA,UAAI,CAAC,gBAAgB;AACb,cAAA,IAAI,MAAM,wBAAwB;AAAA,MAAA;AAG1C,UAAI,CAAC,mBAAmB;AACf,eAAA,mBAAmB,eAAe,KAAK,WAAW,eAAe,oBAAoB,iBAAiB,sBAAsB,cAAc;AAAA,MAAA;AAG7I,YAAA,YAAY,MAAM,KAAK;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW;AACb,aAAK,OAAO,KAAK,kBAAkB,eAAe,IAAI,SAAS;AAExD,eAAA,uBAAuB,eAAe,KAAK,SAAS;AAAA,MAAA;AAItD,aAAA,mBAAmB,eAAe,KAAK,WAAW,eAAe,oBAAoB,iBAAiB,sBAAsB,cAAc;AAAA,aAC1I,OAAO;AACd,WAAK,OAAO;AAAA,QACV,yCAAyC,iBAAiB,KAAK,KAAK;AAAA,MACtE;AACO,aAAA,4BAA4B,eAAe,KAChD,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CACvD;AAAA,IAAA;AAAA,EACF;AAAA,EAGF,MAAc,iBACZ,SACA,YACA,gBACwB;AACxB,UAAM,cAAc;AACpB,UAAM,WAAW;AAEjB,WAAO,WAAW,aAAa;AACzB,UAAA;AACF,cAAM,WAAW,MAAM,KAAK,UAAU,iBAAiB,OAAO;AAEnD,mBAAA,WAAW,SAAS,UAAU;AACvC,cACE,QAAQ,kBAAkB,kBAC1B,QAAQ,gBAAgB,YACxB;AACA;AAAA,UAAA;AAEF,gBAAM,UAAU,MAAM,KAAK,UAAU,kBAAkB,QAAQ,QAAQ,EAAE;AAElE,iBAAA;AAAA,QAAA;AAAA,eAEF,OAAO;AACd,aAAK,OAAO,MAAM,+BAA+B,KAAK,EAAE;AAAA,MAAA;AAE1D,YAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAI,CAAC;AAAA,IAAA;AAEnD,WAAA;AAAA,EAAA;AAEX;"}
1
+ {"version":3,"file":"standards-agent-kit.es6.js","sources":["../../src/tools/hcs10/SendMessageToConnectionTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseHCS10TransactionTool } from './base-hcs10-tools';\nimport { HCS10Builder } from '../../builders/hcs10/hcs10-builder';\nimport { HCS10TransactionToolParams } from './hcs10-tool-params';\nimport { BaseServiceBuilder } from 'hedera-agent-kit';\n\nconst SendMessageToConnectionZodSchema = z.object({\n targetIdentifier: z\n .string()\n .describe(\n \"The request key (e.g., 'req-1:0.0.6155171@0.0.6154875'), account ID (e.g., 0.0.12345) of the target agent, OR the connection number (e.g., '1', '2') from the 'list_connections' tool. Request key is most deterministic.\"\n ),\n message: z.string().describe('The text message content to send.'),\n disableMonitoring: z.boolean().optional().default(false),\n});\n\n/**\n * A tool to send a message to an agent over an established HCS-10 connection.\n */\nexport class SendMessageToConnectionTool extends BaseHCS10TransactionTool<\n typeof SendMessageToConnectionZodSchema\n> {\n name = 'send_message_to_connection';\n description =\n \"Sends a text message to another agent using an existing active connection. Identify the target agent using their account ID (e.g., 0.0.12345) or the connection number shown in 'list_connections'. Return back the reply from the target agent if possible\";\n specificInputSchema = SendMessageToConnectionZodSchema;\n constructor(params: HCS10TransactionToolParams) {\n super(params);\n this.requiresMultipleTransactions = true;\n this.neverScheduleThisTool = true;\n }\n\n protected async callBuilderMethod(\n builder: BaseServiceBuilder,\n specificArgs: z.infer<typeof SendMessageToConnectionZodSchema>\n ): Promise<void> {\n const hcs10Builder = builder as HCS10Builder;\n\n await hcs10Builder.sendMessageToConnection({\n targetIdentifier: specificArgs.targetIdentifier,\n message: specificArgs.message,\n disableMonitoring: specificArgs.disableMonitoring,\n });\n }\n}"],"names":[],"mappings":";;AAMA,MAAM,mCAAmC,EAAE,OAAO;AAAA,EAChD,kBAAkB,EACf,OAAA,EACA;AAAA,IACC;AAAA,EAAA;AAAA,EAEJ,SAAS,EAAE,SAAS,SAAS,mCAAmC;AAAA,EAChE,mBAAmB,EAAE,QAAA,EAAU,SAAA,EAAW,QAAQ,KAAK;AACzD,CAAC;AAKM,MAAM,oCAAoC,yBAE/C;AAAA,EAKA,YAAY,QAAoC;AAC9C,UAAM,MAAM;AALd,SAAA,OAAO;AACP,SAAA,cACE;AACF,SAAA,sBAAsB;AAGpB,SAAK,+BAA+B;AACpC,SAAK,wBAAwB;AAAA,EAC/B;AAAA,EAEA,MAAgB,kBACd,SACA,cACe;AACf,UAAM,eAAe;AAErB,UAAM,aAAa,wBAAwB;AAAA,MACzC,kBAAkB,aAAa;AAAA,MAC/B,SAAS,aAAa;AAAA,MACtB,mBAAmB,aAAa;AAAA,IAAA,CACjC;AAAA,EACH;AACF;"}
@@ -1,95 +1,37 @@
1
- import { StructuredTool } from "@langchain/core/tools";
2
1
  import { z } from "zod";
3
- import { Logger } from "@hashgraphonline/standards-sdk";
4
- class InitiateConnectionTool extends StructuredTool {
5
- constructor({
6
- hcsClient,
7
- stateManager,
8
- ...rest
9
- }) {
10
- super(rest);
2
+ import { BaseHCS10TransactionTool } from "./standards-agent-kit.es4.js";
3
+ const InitiateConnectionZodSchema = z.object({
4
+ targetAccountId: z.string().describe(
5
+ "The Hedera account ID (e.g., 0.0.12345) of the agent you want to connect with."
6
+ ),
7
+ disableMonitor: z.boolean().optional().describe(
8
+ "If true, does not wait for connection confirmation. Returns immediately after sending the request."
9
+ ),
10
+ memo: z.string().optional().describe(
11
+ 'Optional memo to include with the connection request (e.g., "Hello from Alice"). If not provided, defaults to "true" or "false" based on monitoring preference.'
12
+ )
13
+ });
14
+ class InitiateConnectionTool extends BaseHCS10TransactionTool {
15
+ constructor(params) {
16
+ super(params);
11
17
  this.name = "initiate_connection";
12
18
  this.description = "Actively STARTS a NEW HCS-10 connection TO a specific target agent identified by their account ID. Requires the targetAccountId parameter. Use this ONLY to INITIATE an OUTGOING connection request.";
13
- this.schema = z.object({
14
- targetAccountId: z.string().describe(
15
- "The Hedera account ID (e.g., 0.0.12345) of the agent you want to connect with."
16
- )
17
- });
18
- this.hcsClient = hcsClient;
19
- this.stateManager = stateManager;
20
- this.logger = Logger.getInstance({ module: "InitiateConnectionTool" });
19
+ this.specificInputSchema = InitiateConnectionZodSchema;
20
+ this.neverScheduleThisTool = true;
21
+ this.requiresMultipleTransactions = true;
21
22
  }
22
- async _call({
23
- targetAccountId
24
- }) {
25
- const currentAgent = this.stateManager.getCurrentAgent();
26
- if (!currentAgent) {
27
- return "Error: Cannot initiate connection. No agent is currently active. Please register or select an agent first.";
23
+ async callBuilderMethod(builder, specificArgs) {
24
+ const hcs10Builder = builder;
25
+ const params = {
26
+ targetAccountId: specificArgs.targetAccountId
27
+ };
28
+ if (specificArgs.disableMonitor !== void 0) {
29
+ params.disableMonitor = specificArgs.disableMonitor;
28
30
  }
29
- this.logger.info(
30
- `Attempting connection from ${currentAgent.accountId} to ${targetAccountId}`
31
- );
32
- try {
33
- this.logger.debug(`Retrieving profile for ${targetAccountId}...`);
34
- const targetProfile = await this.hcsClient.getAgentProfile(
35
- targetAccountId
36
- );
37
- if (!targetProfile?.topicInfo?.inboundTopic) {
38
- return `Error: Could not retrieve profile or find inbound topic ID for target agent ${targetAccountId}. They might not be registered or have a public profile.`;
39
- }
40
- const targetInboundTopicId = targetProfile.topicInfo.inboundTopic;
41
- const targetAgentName = targetProfile.profile.name || `Agent ${targetAccountId}`;
42
- const requestResult = await this.hcsClient.submitConnectionRequest(
43
- targetInboundTopicId,
44
- currentAgent.name
45
- );
46
- const sequenceNumberLong = requestResult?.topicSequenceNumber;
47
- if (!sequenceNumberLong) {
48
- throw new Error("Connection request sequence number not found.");
49
- }
50
- let connectionRequestId;
51
- try {
52
- connectionRequestId = sequenceNumberLong.toNumber();
53
- if (isNaN(connectionRequestId)) {
54
- throw new Error("Converted sequence number is NaN.");
55
- }
56
- } catch (conversionError) {
57
- throw new Error(
58
- `Failed to convert connection request sequence number: ${conversionError}`
59
- );
60
- }
61
- const confirmationTimeoutMs = 6e4;
62
- const delayMs = 2e3;
63
- const maxAttempts = Math.ceil(confirmationTimeoutMs / delayMs);
64
- const confirmationResult = await this.hcsClient.waitForConnectionConfirmation(
65
- targetInboundTopicId,
66
- connectionRequestId,
67
- maxAttempts,
68
- delayMs
69
- );
70
- if (!confirmationResult?.connectionTopicId) {
71
- return `Error: Connection confirmation not received from ${targetAccountId} (for request ${connectionRequestId}) within ${confirmationTimeoutMs / 1e3} seconds.`;
72
- }
73
- const connectionTopicId = confirmationResult.connectionTopicId;
74
- this.logger.info(`Connection confirmed! Topic ID: ${connectionTopicId}`);
75
- const newConnection = {
76
- targetAccountId,
77
- targetAgentName,
78
- targetInboundTopicId,
79
- connectionTopicId
80
- };
81
- this.stateManager.addActiveConnection(newConnection);
82
- const connections = this.stateManager.listConnections();
83
- const addedEntry = connections.find(
84
- (c) => c.connectionTopicId === connectionTopicId
85
- );
86
- const localConnectionId = addedEntry ? connections.indexOf(addedEntry) + 1 : null;
87
- const idString = localConnectionId ? `#${localConnectionId}` : "";
88
- return `Successfully established connection ${idString} with ${targetAgentName} (${targetAccountId}). Connection Topic: ${connectionTopicId}. You can now send messages using this connection.`;
89
- } catch (error) {
90
- this.logger.error(`Connection initiation failed: ${error}`);
91
- return `Error initiating connection with ${targetAccountId}: ${error instanceof Error ? error.message : String(error)}`;
31
+ if (specificArgs.memo !== void 0) {
32
+ params.memo = specificArgs.memo;
92
33
  }
34
+ await hcs10Builder.initiateConnection(params);
93
35
  }
94
36
  }
95
37
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es7.js","sources":["../../src/tools/InitiateConnectionTool.ts"],"sourcesContent":["import { StructuredTool, ToolParams } from '@langchain/core/tools';\nimport { z } from 'zod';\nimport { HCS10Client } from '../hcs10/HCS10Client';\nimport { IStateManager, ActiveConnection } from '../state/state-types';\nimport { Logger } from '@hashgraphonline/standards-sdk';\n\nexport interface InitiateConnectionToolParams extends ToolParams {\n hcsClient: HCS10Client;\n stateManager: IStateManager;\n}\n\n/**\n * A tool to actively START a NEW HCS-10 connection TO a target agent.\n * Requires the target agent's account ID.\n * It retrieves their profile, sends a connection request, waits for confirmation, and stores the connection using the provided stateManager.\n * Use this tool ONLY to actively INITIATE an OUTGOING connection.\n */\nexport class InitiateConnectionTool extends StructuredTool {\n name = 'initiate_connection';\n description =\n 'Actively STARTS a NEW HCS-10 connection TO a specific target agent identified by their account ID. Requires the targetAccountId parameter. Use this ONLY to INITIATE an OUTGOING connection request.';\n schema = z.object({\n targetAccountId: z\n .string()\n .describe(\n 'The Hedera account ID (e.g., 0.0.12345) of the agent you want to connect with.'\n )\n });\n\n private hcsClient: HCS10Client;\n private stateManager: IStateManager;\n private logger: Logger;\n\n constructor({\n hcsClient,\n stateManager,\n ...rest\n }: InitiateConnectionToolParams) {\n super(rest);\n this.hcsClient = hcsClient;\n this.stateManager = stateManager;\n this.logger = Logger.getInstance({ module: 'InitiateConnectionTool' });\n }\n\n protected async _call({\n targetAccountId\n }: z.infer<this['schema']>): Promise<string> {\n const currentAgent = this.stateManager.getCurrentAgent();\n if (!currentAgent) {\n return 'Error: Cannot initiate connection. No agent is currently active. Please register or select an agent first.';\n }\n\n this.logger.info(\n `Attempting connection from ${currentAgent.accountId} to ${targetAccountId}`\n );\n\n try {\n this.logger.debug(`Retrieving profile for ${targetAccountId}...`);\n const targetProfile = await this.hcsClient.getAgentProfile(\n targetAccountId\n );\n if (!targetProfile?.topicInfo?.inboundTopic) {\n return `Error: Could not retrieve profile or find inbound topic ID for target agent ${targetAccountId}. They might not be registered or have a public profile.`;\n }\n const targetInboundTopicId = targetProfile.topicInfo.inboundTopic;\n const targetAgentName =\n targetProfile.profile.name || `Agent ${targetAccountId}`;\n\n const requestResult = await this.hcsClient.submitConnectionRequest(\n targetInboundTopicId,\n currentAgent.name\n );\n const sequenceNumberLong = requestResult?.topicSequenceNumber;\n if (!sequenceNumberLong) {\n throw new Error('Connection request sequence number not found.');\n }\n \n let connectionRequestId: number;\n try {\n connectionRequestId = sequenceNumberLong.toNumber();\n if (isNaN(connectionRequestId)) {\n throw new Error('Converted sequence number is NaN.');\n }\n } catch (conversionError) {\n throw new Error(\n `Failed to convert connection request sequence number: ${conversionError}`\n );\n }\n\n const confirmationTimeoutMs = 60000;\n const delayMs = 2000;\n const maxAttempts = Math.ceil(confirmationTimeoutMs / delayMs);\n\n const confirmationResult =\n await this.hcsClient.waitForConnectionConfirmation(\n targetInboundTopicId,\n connectionRequestId,\n maxAttempts,\n delayMs\n );\n\n if (!confirmationResult?.connectionTopicId) {\n return `Error: Connection confirmation not received from ${targetAccountId} (for request ${connectionRequestId}) within ${\n confirmationTimeoutMs / 1000\n } seconds.`;\n }\n\n const connectionTopicId = confirmationResult.connectionTopicId;\n this.logger.info(`Connection confirmed! Topic ID: ${connectionTopicId}`);\n\n const newConnection: ActiveConnection = {\n targetAccountId: targetAccountId,\n targetAgentName: targetAgentName,\n targetInboundTopicId: targetInboundTopicId,\n connectionTopicId: connectionTopicId,\n };\n this.stateManager.addActiveConnection(newConnection);\n\n const connections = this.stateManager.listConnections();\n const addedEntry = connections.find(\n (c) => c.connectionTopicId === connectionTopicId\n );\n const localConnectionId = addedEntry\n ? connections.indexOf(addedEntry) + 1\n : null;\n\n const idString = localConnectionId ? `#${localConnectionId}` : '';\n\n return `Successfully established connection ${idString} with ${targetAgentName} (${targetAccountId}). Connection Topic: ${connectionTopicId}. You can now send messages using this connection.`;\n } catch (error) {\n this.logger.error(`Connection initiation failed: ${error}`);\n return `Error initiating connection with ${targetAccountId}: ${\n error instanceof Error ? error.message : String(error)\n }`;\n }\n }\n}\n"],"names":[],"mappings":";;;AAiBO,MAAM,+BAA+B,eAAe;AAAA,EAgBzD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAC4B;AAC/B,UAAM,IAAI;AApBL,SAAA,OAAA;AAEL,SAAA,cAAA;AACF,SAAA,SAAS,EAAE,OAAO;AAAA,MAChB,iBAAiB,EACd,OAAA,EACA;AAAA,QACC;AAAA,MAAA;AAAA,IACF,CACH;AAYC,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,SAAS,OAAO,YAAY,EAAE,QAAQ,0BAA0B;AAAA,EAAA;AAAA,EAGvE,MAAgB,MAAM;AAAA,IACpB;AAAA,EAAA,GAC2C;AACrC,UAAA,eAAe,KAAK,aAAa,gBAAgB;AACvD,QAAI,CAAC,cAAc;AACV,aAAA;AAAA,IAAA;AAGT,SAAK,OAAO;AAAA,MACV,8BAA8B,aAAa,SAAS,OAAO,eAAe;AAAA,IAC5E;AAEI,QAAA;AACF,WAAK,OAAO,MAAM,0BAA0B,eAAe,KAAK;AAC1D,YAAA,gBAAgB,MAAM,KAAK,UAAU;AAAA,QACzC;AAAA,MACF;AACI,UAAA,CAAC,eAAe,WAAW,cAAc;AAC3C,eAAO,+EAA+E,eAAe;AAAA,MAAA;AAEjG,YAAA,uBAAuB,cAAc,UAAU;AACrD,YAAM,kBACJ,cAAc,QAAQ,QAAQ,SAAS,eAAe;AAElD,YAAA,gBAAgB,MAAM,KAAK,UAAU;AAAA,QACzC;AAAA,QACA,aAAa;AAAA,MACf;AACA,YAAM,qBAAqB,eAAe;AAC1C,UAAI,CAAC,oBAAoB;AACjB,cAAA,IAAI,MAAM,+CAA+C;AAAA,MAAA;AAG7D,UAAA;AACA,UAAA;AACF,8BAAsB,mBAAmB,SAAS;AAC9C,YAAA,MAAM,mBAAmB,GAAG;AACxB,gBAAA,IAAI,MAAM,mCAAmC;AAAA,QAAA;AAAA,eAE9C,iBAAiB;AACxB,cAAM,IAAI;AAAA,UACR,yDAAyD,eAAe;AAAA,QAC1E;AAAA,MAAA;AAGF,YAAM,wBAAwB;AAC9B,YAAM,UAAU;AAChB,YAAM,cAAc,KAAK,KAAK,wBAAwB,OAAO;AAEvD,YAAA,qBACJ,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEE,UAAA,CAAC,oBAAoB,mBAAmB;AAC1C,eAAO,oDAAoD,eAAe,iBAAiB,mBAAmB,YAC5G,wBAAwB,GAC1B;AAAA,MAAA;AAGF,YAAM,oBAAoB,mBAAmB;AAC7C,WAAK,OAAO,KAAK,mCAAmC,iBAAiB,EAAE;AAEvE,YAAM,gBAAkC;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACK,WAAA,aAAa,oBAAoB,aAAa;AAE7C,YAAA,cAAc,KAAK,aAAa,gBAAgB;AACtD,YAAM,aAAa,YAAY;AAAA,QAC7B,CAAC,MAAM,EAAE,sBAAsB;AAAA,MACjC;AACA,YAAM,oBAAoB,aACtB,YAAY,QAAQ,UAAU,IAAI,IAClC;AAEJ,YAAM,WAAW,oBAAoB,IAAI,iBAAiB,KAAK;AAE/D,aAAO,uCAAuC,QAAQ,SAAS,eAAe,KAAK,eAAe,wBAAwB,iBAAiB;AAAA,aACpI,OAAO;AACd,WAAK,OAAO,MAAM,iCAAiC,KAAK,EAAE;AACnD,aAAA,oCAAoC,eAAe,KACxD,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CACvD;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"standards-agent-kit.es7.js","sources":["../../src/tools/hcs10/InitiateConnectionTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseHCS10TransactionTool } from './base-hcs10-tools';\nimport { HCS10Builder } from '../../builders/hcs10/hcs10-builder';\nimport { HCS10TransactionToolParams } from './hcs10-tool-params';\nimport { BaseServiceBuilder } from 'hedera-agent-kit';\n\nconst InitiateConnectionZodSchema = z.object({\n targetAccountId: z\n .string()\n .describe(\n 'The Hedera account ID (e.g., 0.0.12345) of the agent you want to connect with.'\n ),\n disableMonitor: z\n .boolean()\n .optional()\n .describe(\n 'If true, does not wait for connection confirmation. Returns immediately after sending the request.'\n ),\n memo: z\n .string()\n .optional()\n .describe(\n 'Optional memo to include with the connection request (e.g., \"Hello from Alice\"). If not provided, defaults to \"true\" or \"false\" based on monitoring preference.'\n ),\n});\n\n/**\n * A tool to actively START a NEW HCS-10 connection TO a target agent.\n * Requires the target agent's account ID.\n * It retrieves their profile, sends a connection request, and optionally waits for confirmation.\n * Use this tool ONLY to actively INITIATE an OUTGOING connection.\n */\nexport class InitiateConnectionTool extends BaseHCS10TransactionTool<\n typeof InitiateConnectionZodSchema\n> {\n name = 'initiate_connection';\n description =\n 'Actively STARTS a NEW HCS-10 connection TO a specific target agent identified by their account ID. Requires the targetAccountId parameter. Use this ONLY to INITIATE an OUTGOING connection request.';\n specificInputSchema = InitiateConnectionZodSchema;\n constructor(params: HCS10TransactionToolParams) {\n super(params);\n this.neverScheduleThisTool = true;\n this.requiresMultipleTransactions = true;\n }\n\n protected async callBuilderMethod(\n builder: BaseServiceBuilder,\n specificArgs: z.infer<typeof InitiateConnectionZodSchema>\n ): Promise<void> {\n const hcs10Builder = builder as HCS10Builder;\n const params: {\n targetAccountId: string;\n disableMonitor?: boolean;\n memo?: string;\n } = {\n targetAccountId: specificArgs.targetAccountId,\n };\n if (specificArgs.disableMonitor !== undefined) {\n params.disableMonitor = specificArgs.disableMonitor;\n }\n if (specificArgs.memo !== undefined) {\n params.memo = specificArgs.memo;\n }\n await hcs10Builder.initiateConnection(params);\n }\n}"],"names":[],"mappings":";;AAMA,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAC3C,iBAAiB,EACd,OAAA,EACA;AAAA,IACC;AAAA,EAAA;AAAA,EAEJ,gBAAgB,EACb,UACA,WACA;AAAA,IACC;AAAA,EAAA;AAAA,EAEJ,MAAM,EACH,SACA,WACA;AAAA,IACC;AAAA,EAAA;AAEN,CAAC;AAQM,MAAM,+BAA+B,yBAE1C;AAAA,EAKA,YAAY,QAAoC;AAC9C,UAAM,MAAM;AALd,SAAA,OAAO;AACP,SAAA,cACE;AACF,SAAA,sBAAsB;AAGpB,SAAK,wBAAwB;AAC7B,SAAK,+BAA+B;AAAA,EACtC;AAAA,EAEA,MAAgB,kBACd,SACA,cACe;AACf,UAAM,eAAe;AACrB,UAAM,SAIF;AAAA,MACF,iBAAiB,aAAa;AAAA,IAAA;AAEhC,QAAI,aAAa,mBAAmB,QAAW;AAC7C,aAAO,iBAAiB,aAAa;AAAA,IACvC;AACA,QAAI,aAAa,SAAS,QAAW;AACnC,aAAO,OAAO,aAAa;AAAA,IAC7B;AACA,UAAM,aAAa,mBAAmB,MAAM;AAAA,EAC9C;AACF;"}
@@ -1,110 +1,37 @@
1
- import { StructuredTool } from "@langchain/core/tools";
2
1
  import { z } from "zod";
3
- import { Logger } from "@hashgraphonline/standards-sdk";
4
- class ListConnectionsTool extends StructuredTool {
5
- constructor({ stateManager, hcsClient, ...rest }) {
6
- super(rest);
2
+ import { BaseHCS10QueryTool } from "./standards-agent-kit.es4.js";
3
+ const ListConnectionsZodSchema = z.object({
4
+ includeDetails: z.boolean().optional().describe(
5
+ "Whether to include detailed information about each connection"
6
+ ),
7
+ showPending: z.boolean().optional().describe("Whether to include pending connection requests")
8
+ });
9
+ class ListConnectionsTool extends BaseHCS10QueryTool {
10
+ constructor(params) {
11
+ super(params);
7
12
  this.name = "list_connections";
8
13
  this.description = "Lists the currently active HCS-10 connections with detailed information. Shows connection status, agent details, and recent activity. Use this to get a comprehensive view of all active connections.";
9
- this.schema = z.object({
10
- includeDetails: z.boolean().optional().describe(
11
- "Whether to include detailed information about each connection"
12
- ),
13
- showPending: z.boolean().optional().describe("Whether to include pending connection requests")
14
- });
15
- this.stateManager = stateManager;
16
- this.hcsClient = hcsClient;
17
- this.logger = new Logger({ module: "ListConnectionsTool" });
14
+ this.specificInputSchema = ListConnectionsZodSchema;
18
15
  }
19
- async _call(args) {
20
- const includeDetails = args.includeDetails ?? true;
21
- const showPending = args.showPending ?? true;
22
- const connections = await this.getEnhancedConnections();
23
- if (connections.length === 0) {
24
- return "There are currently no active connections.";
16
+ async executeQuery(args) {
17
+ const hcs10Builder = this.hcs10Builder;
18
+ const params = {};
19
+ if (args.includeDetails !== void 0) {
20
+ params.includeDetails = args.includeDetails;
25
21
  }
26
- const activeConnections = connections.filter(
27
- (c) => c.status === "established"
28
- );
29
- const pendingConnections = connections.filter((c) => c.isPending);
30
- const needsConfirmation = connections.filter((c) => c.needsConfirmation);
31
- let output = "";
32
- if (activeConnections.length > 0) {
33
- output += `🟢 Active Connections (${activeConnections.length}):
34
- `;
35
- activeConnections.forEach((conn, index) => {
36
- output += this.formatConnection(conn, index, includeDetails);
37
- });
38
- output += "\n";
22
+ if (args.showPending !== void 0) {
23
+ params.showPending = args.showPending;
39
24
  }
40
- if (showPending && needsConfirmation.length > 0) {
41
- output += `🟠 Connections Needing Confirmation (${needsConfirmation.length}):
42
- `;
43
- needsConfirmation.forEach((conn, index) => {
44
- output += this.formatConnection(conn, index, includeDetails);
45
- });
46
- output += "\n";
47
- }
48
- if (showPending && pendingConnections.length > 0) {
49
- output += `⚪ Pending Connection Requests (${pendingConnections.length}):
50
- `;
51
- pendingConnections.forEach((conn, index) => {
52
- output += this.formatConnection(conn, index, includeDetails);
53
- });
54
- }
55
- return output.trim();
56
- }
57
- formatConnection(conn, index, includeDetails) {
58
- let output = `${index + 1}. ${conn.profileInfo?.display_name || conn.targetAgentName || "Unknown Agent"} (${conn.targetAccountId})
59
- `;
60
- const displayTopicId = conn.isPending ? "(Pending Request)" : conn.connectionTopicId;
61
- output += ` Topic: ${displayTopicId}
62
- `;
63
- const statusText = conn.status || "unknown";
64
- output += ` Status: ${statusText}
65
- `;
66
- if (includeDetails) {
67
- if (conn.profileInfo?.bio) {
68
- output += ` Bio: ${conn.profileInfo.bio.substring(0, 100)}${conn.profileInfo.bio.length > 100 ? "..." : ""}
69
- `;
70
- }
71
- if (conn.created) {
72
- const createdLabel = conn.isPending ? "Request sent" : "Connection established";
73
- output += ` ${createdLabel}: ${conn.created.toLocaleString()}
74
- `;
75
- }
76
- if (conn.lastActivity) {
77
- output += ` Last activity: ${conn.lastActivity.toLocaleString()}
78
- `;
79
- }
80
- }
81
- return output;
82
- }
83
- async getEnhancedConnections() {
84
- if (!this.hcsClient) {
85
- return this.stateManager.listConnections();
86
- }
87
- try {
88
- const { accountId } = this.hcsClient.getAccountAndSigner();
89
- if (!accountId) {
90
- return this.stateManager.listConnections();
91
- }
92
- const connectionManager = this.stateManager.getConnectionsManager();
93
- if (!connectionManager) {
94
- this.logger.error("ConnectionsManager not initialized");
95
- return this.stateManager.listConnections();
96
- }
97
- const connections = await connectionManager.fetchConnectionData(
98
- accountId
99
- );
100
- for (const connection of connections) {
101
- this.stateManager.updateOrAddConnection(connection);
102
- }
103
- return connections;
104
- } catch (error) {
105
- console.error("Error fetching connection data:", error);
106
- return this.stateManager.listConnections();
25
+ await hcs10Builder.listConnections(params);
26
+ const result = await hcs10Builder.execute();
27
+ if (result.success && "rawResult" in result && result.rawResult) {
28
+ const raw = result.rawResult;
29
+ return {
30
+ success: true,
31
+ data: raw.formattedOutput || raw.message || "Connections listed"
32
+ };
107
33
  }
34
+ return result;
108
35
  }
109
36
  }
110
37
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es8.js","sources":["../../src/tools/ListConnectionsTool.ts"],"sourcesContent":["import { StructuredTool, ToolParams } from '@langchain/core/tools';\nimport { z } from 'zod';\nimport { IStateManager, ActiveConnection } from '../state/state-types';\nimport { HCS10Client } from '../hcs10/HCS10Client';\nimport { Connection, Logger } from '@hashgraphonline/standards-sdk';\n\nexport interface ListConnectionsToolParams extends ToolParams {\n stateManager: IStateManager;\n hcsClient?: HCS10Client;\n}\n\n/**\n * A tool to list currently active HCS-10 connections stored in the state manager.\n * Enhanced to show more details similar to moonscape's implementation.\n */\nexport class ListConnectionsTool extends StructuredTool {\n name = 'list_connections';\n description =\n 'Lists the currently active HCS-10 connections with detailed information. Shows connection status, agent details, and recent activity. Use this to get a comprehensive view of all active connections.';\n schema = z.object({\n includeDetails: z\n .boolean()\n .optional()\n .describe(\n 'Whether to include detailed information about each connection'\n ),\n showPending: z\n .boolean()\n .optional()\n .describe('Whether to include pending connection requests'),\n });\n\n private stateManager: IStateManager;\n private hcsClient?: HCS10Client;\n private logger: Logger;\n\n constructor({ stateManager, hcsClient, ...rest }: ListConnectionsToolParams) {\n super(rest);\n this.stateManager = stateManager;\n this.hcsClient = hcsClient;\n this.logger = new Logger({ module: 'ListConnectionsTool' });\n }\n\n protected async _call(args: z.infer<this['schema']>): Promise<string> {\n const includeDetails = args.includeDetails ?? true;\n const showPending = args.showPending ?? true;\n\n const connections = await this.getEnhancedConnections();\n\n if (connections.length === 0) {\n return 'There are currently no active connections.';\n }\n\n const activeConnections = connections.filter(\n (c) => c.status === 'established'\n );\n\n const pendingConnections = connections.filter((c) => c.isPending);\n\n const needsConfirmation = connections.filter((c) => c.needsConfirmation);\n\n let output = '';\n\n if (activeConnections.length > 0) {\n output += `🟢 Active Connections (${activeConnections.length}):\\n`;\n activeConnections.forEach((conn, index) => {\n output += this.formatConnection(conn, index, includeDetails);\n });\n output += '\\n';\n }\n\n if (showPending && needsConfirmation.length > 0) {\n output += `🟠 Connections Needing Confirmation (${needsConfirmation.length}):\\n`;\n needsConfirmation.forEach((conn, index) => {\n output += this.formatConnection(conn, index, includeDetails);\n });\n output += '\\n';\n }\n\n if (showPending && pendingConnections.length > 0) {\n output += `⚪ Pending Connection Requests (${pendingConnections.length}):\\n`;\n pendingConnections.forEach((conn, index) => {\n output += this.formatConnection(conn, index, includeDetails);\n });\n }\n\n return output.trim();\n }\n\n private formatConnection(\n conn: Connection,\n index: number,\n includeDetails: boolean\n ): string {\n let output = `${index + 1}. ${\n conn.profileInfo?.display_name || conn.targetAgentName || 'Unknown Agent'\n } (${conn.targetAccountId})\\n`;\n const displayTopicId = conn.isPending\n ? '(Pending Request)'\n : conn.connectionTopicId;\n output += ` Topic: ${displayTopicId}\\n`;\n const statusText = conn.status || 'unknown';\n output += ` Status: ${statusText}\\n`;\n\n if (includeDetails) {\n if (conn.profileInfo?.bio) {\n output += ` Bio: ${conn.profileInfo.bio.substring(0, 100)}${\n conn.profileInfo.bio.length > 100 ? '...' : ''\n }\\n`;\n }\n\n if (conn.created) {\n const createdLabel = conn.isPending\n ? 'Request sent'\n : 'Connection established';\n output += ` ${createdLabel}: ${conn.created.toLocaleString()}\\n`;\n }\n\n if (conn.lastActivity) {\n output += ` Last activity: ${conn.lastActivity.toLocaleString()}\\n`;\n }\n }\n\n return output;\n }\n\n private async getEnhancedConnections(): Promise<Connection[]> {\n if (!this.hcsClient) {\n return this.stateManager.listConnections() as Connection[];\n }\n\n try {\n const { accountId } = this.hcsClient.getAccountAndSigner();\n if (!accountId) {\n return this.stateManager.listConnections() as Connection[];\n }\n\n const connectionManager = this.stateManager.getConnectionsManager();\n if (!connectionManager) {\n this.logger.error('ConnectionsManager not initialized');\n return this.stateManager.listConnections() as Connection[];\n }\n\n const connections = await connectionManager.fetchConnectionData(\n accountId\n );\n\n for (const connection of connections) {\n this.stateManager.updateOrAddConnection(connection as ActiveConnection);\n }\n\n return connections;\n } catch (error) {\n console.error('Error fetching connection data:', error);\n return this.stateManager.listConnections() as Connection[];\n }\n }\n}\n"],"names":[],"mappings":";;;AAeO,MAAM,4BAA4B,eAAe;AAAA,EAqBtD,YAAY,EAAE,cAAc,WAAW,GAAG,QAAmC;AAC3E,UAAM,IAAI;AArBL,SAAA,OAAA;AAEL,SAAA,cAAA;AACF,SAAA,SAAS,EAAE,OAAO;AAAA,MAChB,gBAAgB,EACb,UACA,SACA,EAAA;AAAA,QACC;AAAA,MACF;AAAA,MACF,aAAa,EACV,QAAA,EACA,SAAS,EACT,SAAS,gDAAgD;AAAA,IAAA,CAC7D;AAQC,SAAK,eAAe;AACpB,SAAK,YAAY;AACjB,SAAK,SAAS,IAAI,OAAO,EAAE,QAAQ,uBAAuB;AAAA,EAAA;AAAA,EAG5D,MAAgB,MAAM,MAAgD;AAC9D,UAAA,iBAAiB,KAAK,kBAAkB;AACxC,UAAA,cAAc,KAAK,eAAe;AAElC,UAAA,cAAc,MAAM,KAAK,uBAAuB;AAElD,QAAA,YAAY,WAAW,GAAG;AACrB,aAAA;AAAA,IAAA;AAGT,UAAM,oBAAoB,YAAY;AAAA,MACpC,CAAC,MAAM,EAAE,WAAW;AAAA,IACtB;AAEA,UAAM,qBAAqB,YAAY,OAAO,CAAC,MAAM,EAAE,SAAS;AAEhE,UAAM,oBAAoB,YAAY,OAAO,CAAC,MAAM,EAAE,iBAAiB;AAEvE,QAAI,SAAS;AAET,QAAA,kBAAkB,SAAS,GAAG;AACtB,gBAAA,0BAA0B,kBAAkB,MAAM;AAAA;AAC1C,wBAAA,QAAQ,CAAC,MAAM,UAAU;AACzC,kBAAU,KAAK,iBAAiB,MAAM,OAAO,cAAc;AAAA,MAAA,CAC5D;AACS,gBAAA;AAAA,IAAA;AAGR,QAAA,eAAe,kBAAkB,SAAS,GAAG;AACrC,gBAAA,wCAAwC,kBAAkB,MAAM;AAAA;AACxD,wBAAA,QAAQ,CAAC,MAAM,UAAU;AACzC,kBAAU,KAAK,iBAAiB,MAAM,OAAO,cAAc;AAAA,MAAA,CAC5D;AACS,gBAAA;AAAA,IAAA;AAGR,QAAA,eAAe,mBAAmB,SAAS,GAAG;AACtC,gBAAA,kCAAkC,mBAAmB,MAAM;AAAA;AAClD,yBAAA,QAAQ,CAAC,MAAM,UAAU;AAC1C,kBAAU,KAAK,iBAAiB,MAAM,OAAO,cAAc;AAAA,MAAA,CAC5D;AAAA,IAAA;AAGH,WAAO,OAAO,KAAK;AAAA,EAAA;AAAA,EAGb,iBACN,MACA,OACA,gBACQ;AACR,QAAI,SAAS,GAAG,QAAQ,CAAC,KACvB,KAAK,aAAa,gBAAgB,KAAK,mBAAmB,eAC5D,KAAK,KAAK,eAAe;AAAA;AACzB,UAAM,iBAAiB,KAAK,YACxB,sBACA,KAAK;AACT,cAAU,aAAa,cAAc;AAAA;AAC/B,UAAA,aAAa,KAAK,UAAU;AAClC,cAAU,cAAc,UAAU;AAAA;AAElC,QAAI,gBAAgB;AACd,UAAA,KAAK,aAAa,KAAK;AACzB,kBAAU,WAAW,KAAK,YAAY,IAAI,UAAU,GAAG,GAAG,CAAC,GACzD,KAAK,YAAY,IAAI,SAAS,MAAM,QAAQ,EAC9C;AAAA;AAAA,MAAA;AAGF,UAAI,KAAK,SAAS;AACV,cAAA,eAAe,KAAK,YACtB,iBACA;AACJ,kBAAU,MAAM,YAAY,KAAK,KAAK,QAAQ,eAAgB,CAAA;AAAA;AAAA,MAAA;AAGhE,UAAI,KAAK,cAAc;AACrB,kBAAU,qBAAqB,KAAK,aAAa,eAAgB,CAAA;AAAA;AAAA,MAAA;AAAA,IACnE;AAGK,WAAA;AAAA,EAAA;AAAA,EAGT,MAAc,yBAAgD;AACxD,QAAA,CAAC,KAAK,WAAW;AACZ,aAAA,KAAK,aAAa,gBAAgB;AAAA,IAAA;AAGvC,QAAA;AACF,YAAM,EAAE,UAAc,IAAA,KAAK,UAAU,oBAAoB;AACzD,UAAI,CAAC,WAAW;AACP,eAAA,KAAK,aAAa,gBAAgB;AAAA,MAAA;AAGrC,YAAA,oBAAoB,KAAK,aAAa,sBAAsB;AAClE,UAAI,CAAC,mBAAmB;AACjB,aAAA,OAAO,MAAM,oCAAoC;AAC/C,eAAA,KAAK,aAAa,gBAAgB;AAAA,MAAA;AAGrC,YAAA,cAAc,MAAM,kBAAkB;AAAA,QAC1C;AAAA,MACF;AAEA,iBAAW,cAAc,aAAa;AAC/B,aAAA,aAAa,sBAAsB,UAA8B;AAAA,MAAA;AAGjE,aAAA;AAAA,aACA,OAAO;AACN,cAAA,MAAM,mCAAmC,KAAK;AAC/C,aAAA,KAAK,aAAa,gBAAgB;AAAA,IAAA;AAAA,EAC3C;AAEJ;"}
1
+ {"version":3,"file":"standards-agent-kit.es8.js","sources":["../../src/tools/hcs10/ListConnectionsTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseHCS10QueryTool } from './base-hcs10-tools';\nimport { HCS10QueryToolParams } from './hcs10-tool-params';\n\n/**\n * A tool to list currently active HCS-10 connections stored in the state manager.\n * Enhanced to show more details similar to moonscape's implementation.\n */\nconst ListConnectionsZodSchema = z.object({\n includeDetails: z\n .boolean()\n .optional()\n .describe(\n 'Whether to include detailed information about each connection'\n ),\n showPending: z\n .boolean()\n .optional()\n .describe('Whether to include pending connection requests'),\n});\n\nexport class ListConnectionsTool extends BaseHCS10QueryTool<\n typeof ListConnectionsZodSchema\n> {\n name = 'list_connections';\n description =\n 'Lists the currently active HCS-10 connections with detailed information. Shows connection status, agent details, and recent activity. Use this to get a comprehensive view of all active connections.';\n specificInputSchema = ListConnectionsZodSchema;\n constructor(params: HCS10QueryToolParams) {\n super(params);\n }\n\n protected async executeQuery(\n args: z.infer<typeof ListConnectionsZodSchema>\n ): Promise<unknown> {\n const hcs10Builder = this.hcs10Builder;\n const params: { includeDetails?: boolean; showPending?: boolean } = {};\n if (args.includeDetails !== undefined) {\n params.includeDetails = args.includeDetails;\n }\n if (args.showPending !== undefined) {\n params.showPending = args.showPending;\n }\n await hcs10Builder.listConnections(params);\n\n const result = await hcs10Builder.execute();\n\n if (result.success && 'rawResult' in result && result.rawResult) {\n const raw = result.rawResult as { formattedOutput?: string; message?: string };\n return {\n success: true,\n data: raw.formattedOutput || raw.message || 'Connections listed'\n };\n }\n\n return result;\n }\n}"],"names":[],"mappings":";;AAQA,MAAM,2BAA2B,EAAE,OAAO;AAAA,EACxC,gBAAgB,EACb,UACA,WACA;AAAA,IACC;AAAA,EAAA;AAAA,EAEJ,aAAa,EACV,QAAA,EACA,SAAA,EACA,SAAS,gDAAgD;AAC9D,CAAC;AAEM,MAAM,4BAA4B,mBAEvC;AAAA,EAKA,YAAY,QAA8B;AACxC,UAAM,MAAM;AALd,SAAA,OAAO;AACP,SAAA,cACE;AACF,SAAA,sBAAsB;AAAA,EAGtB;AAAA,EAEA,MAAgB,aACd,MACkB;AAClB,UAAM,eAAe,KAAK;AAC1B,UAAM,SAA8D,CAAA;AACpE,QAAI,KAAK,mBAAmB,QAAW;AACrC,aAAO,iBAAiB,KAAK;AAAA,IAC/B;AACA,QAAI,KAAK,gBAAgB,QAAW;AAClC,aAAO,cAAc,KAAK;AAAA,IAC5B;AACA,UAAM,aAAa,gBAAgB,MAAM;AAEzC,UAAM,SAAS,MAAM,aAAa,QAAA;AAElC,QAAI,OAAO,WAAW,eAAe,UAAU,OAAO,WAAW;AAC/D,YAAM,MAAM,OAAO;AACnB,aAAO;AAAA,QACL,SAAS;AAAA,QACT,MAAM,IAAI,mBAAmB,IAAI,WAAW;AAAA,MAAA;AAAA,IAEhD;AAEA,WAAO;AAAA,EACT;AACF;"}