@hashgraphonline/standards-agent-kit 0.2.101 → 0.2.103

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 (187) hide show
  1. package/dist/cjs/builders/hcs2/hcs2-builder.d.ts +50 -0
  2. package/dist/cjs/builders/hcs2/index.d.ts +1 -0
  3. package/dist/cjs/builders/index.d.ts +2 -0
  4. package/dist/cjs/builders/inscriber/index.d.ts +1 -0
  5. package/dist/cjs/builders/inscriber/inscriber-builder.d.ts +46 -0
  6. package/dist/cjs/index.d.ts +1 -1
  7. package/dist/cjs/standards-agent-kit.cjs +1 -1
  8. package/dist/cjs/standards-agent-kit.cjs.map +1 -1
  9. package/dist/cjs/tools/hcs10/FindRegistrationsTool.d.ts +4 -4
  10. package/dist/cjs/tools/hcs10/RegisterAgentTool.d.ts +10 -4
  11. package/dist/cjs/tools/hcs10/index.d.ts +1 -0
  12. package/dist/cjs/tools/hcs10/natural-language-mapper.d.ts +19 -0
  13. package/dist/cjs/tools/hcs2/CreateRegistryTool.d.ts +48 -0
  14. package/dist/cjs/tools/hcs2/DeleteEntryTool.d.ts +41 -0
  15. package/dist/cjs/tools/hcs2/MigrateRegistryTool.d.ts +47 -0
  16. package/dist/cjs/tools/hcs2/QueryRegistryTool.d.ts +47 -0
  17. package/dist/cjs/tools/hcs2/RegisterEntryTool.d.ts +47 -0
  18. package/dist/cjs/tools/hcs2/UpdateEntryTool.d.ts +53 -0
  19. package/dist/cjs/tools/hcs2/base-hcs2-tools.d.ts +28 -0
  20. package/dist/cjs/tools/hcs2/hcs2-tool-params.d.ts +18 -0
  21. package/dist/cjs/tools/hcs2/index.d.ts +8 -0
  22. package/dist/cjs/tools/index.d.ts +2 -0
  23. package/dist/cjs/tools/inscriber/InscribeFromBufferTool.d.ts +77 -0
  24. package/dist/cjs/tools/inscriber/InscribeFromFileTool.d.ts +65 -0
  25. package/dist/cjs/tools/inscriber/InscribeFromUrlTool.d.ts +65 -0
  26. package/dist/cjs/tools/inscriber/InscribeHashinalTool.d.ts +125 -0
  27. package/dist/cjs/tools/inscriber/RetrieveInscriptionTool.d.ts +35 -0
  28. package/dist/cjs/tools/inscriber/base-inscriber-tools.d.ts +28 -0
  29. package/dist/cjs/tools/inscriber/index.d.ts +7 -0
  30. package/dist/cjs/tools/inscriber/inscriber-tool-params.d.ts +18 -0
  31. package/dist/es/builders/hcs2/hcs2-builder.d.ts +50 -0
  32. package/dist/es/builders/hcs2/index.d.ts +1 -0
  33. package/dist/es/builders/index.d.ts +2 -0
  34. package/dist/es/builders/inscriber/index.d.ts +1 -0
  35. package/dist/es/builders/inscriber/inscriber-builder.d.ts +46 -0
  36. package/dist/es/index.d.ts +1 -1
  37. package/dist/es/standards-agent-kit.es.js +50 -16
  38. package/dist/es/standards-agent-kit.es.js.map +1 -1
  39. package/dist/es/standards-agent-kit.es10.js +17 -23
  40. package/dist/es/standards-agent-kit.es10.js.map +1 -1
  41. package/dist/es/standards-agent-kit.es11.js +36 -58
  42. package/dist/es/standards-agent-kit.es11.js.map +1 -1
  43. package/dist/es/standards-agent-kit.es12.js +43 -18
  44. package/dist/es/standards-agent-kit.es12.js.map +1 -1
  45. package/dist/es/standards-agent-kit.es13.js +53 -16
  46. package/dist/es/standards-agent-kit.es13.js.map +1 -1
  47. package/dist/es/standards-agent-kit.es14.js +18 -28
  48. package/dist/es/standards-agent-kit.es14.js.map +1 -1
  49. package/dist/es/standards-agent-kit.es15.js +26 -12
  50. package/dist/es/standards-agent-kit.es15.js.map +1 -1
  51. package/dist/es/standards-agent-kit.es16.js +37 -241
  52. package/dist/es/standards-agent-kit.es16.js.map +1 -1
  53. package/dist/es/standards-agent-kit.es17.js +16 -136
  54. package/dist/es/standards-agent-kit.es17.js.map +1 -1
  55. package/dist/es/standards-agent-kit.es18.js +154 -27
  56. package/dist/es/standards-agent-kit.es18.js.map +1 -1
  57. package/dist/es/standards-agent-kit.es19.js +26 -22
  58. package/dist/es/standards-agent-kit.es19.js.map +1 -1
  59. package/dist/es/standards-agent-kit.es20.js +42 -3
  60. package/dist/es/standards-agent-kit.es20.js.map +1 -1
  61. package/dist/es/standards-agent-kit.es21.js +48 -0
  62. package/dist/es/standards-agent-kit.es21.js.map +1 -0
  63. package/dist/es/standards-agent-kit.es22.js +51 -0
  64. package/dist/es/standards-agent-kit.es22.js.map +1 -0
  65. package/dist/es/standards-agent-kit.es23.js +45 -0
  66. package/dist/es/standards-agent-kit.es23.js.map +1 -0
  67. package/dist/es/standards-agent-kit.es24.js +48 -0
  68. package/dist/es/standards-agent-kit.es24.js.map +1 -0
  69. package/dist/es/standards-agent-kit.es25.js +45 -0
  70. package/dist/es/standards-agent-kit.es25.js.map +1 -0
  71. package/dist/es/standards-agent-kit.es26.js +32 -0
  72. package/dist/es/standards-agent-kit.es26.js.map +1 -0
  73. package/dist/es/standards-agent-kit.es27.js +71 -0
  74. package/dist/es/standards-agent-kit.es27.js.map +1 -0
  75. package/dist/es/standards-agent-kit.es28.js +71 -0
  76. package/dist/es/standards-agent-kit.es28.js.map +1 -0
  77. package/dist/es/standards-agent-kit.es29.js +79 -0
  78. package/dist/es/standards-agent-kit.es29.js.map +1 -0
  79. package/dist/es/standards-agent-kit.es3.js +59 -296
  80. package/dist/es/standards-agent-kit.es3.js.map +1 -1
  81. package/dist/es/standards-agent-kit.es30.js +90 -0
  82. package/dist/es/standards-agent-kit.es30.js.map +1 -0
  83. package/dist/es/standards-agent-kit.es31.js +45 -0
  84. package/dist/es/standards-agent-kit.es31.js.map +1 -0
  85. package/dist/es/standards-agent-kit.es32.js +249 -0
  86. package/dist/es/standards-agent-kit.es32.js.map +1 -0
  87. package/dist/es/standards-agent-kit.es33.js +141 -0
  88. package/dist/es/standards-agent-kit.es33.js.map +1 -0
  89. package/dist/es/standards-agent-kit.es34.js +33 -0
  90. package/dist/es/standards-agent-kit.es34.js.map +1 -0
  91. package/dist/es/standards-agent-kit.es35.js +28 -0
  92. package/dist/es/standards-agent-kit.es35.js.map +1 -0
  93. package/dist/es/standards-agent-kit.es36.js +7 -0
  94. package/dist/es/standards-agent-kit.es36.js.map +1 -0
  95. package/dist/es/standards-agent-kit.es4.js +44 -20
  96. package/dist/es/standards-agent-kit.es4.js.map +1 -1
  97. package/dist/es/standards-agent-kit.es5.js +302 -184
  98. package/dist/es/standards-agent-kit.es5.js.map +1 -1
  99. package/dist/es/standards-agent-kit.es6.js +24 -23
  100. package/dist/es/standards-agent-kit.es6.js.map +1 -1
  101. package/dist/es/standards-agent-kit.es7.js +220 -20
  102. package/dist/es/standards-agent-kit.es7.js.map +1 -1
  103. package/dist/es/standards-agent-kit.es8.js +20 -29
  104. package/dist/es/standards-agent-kit.es8.js.map +1 -1
  105. package/dist/es/standards-agent-kit.es9.js +26 -36
  106. package/dist/es/standards-agent-kit.es9.js.map +1 -1
  107. package/dist/es/tools/hcs10/FindRegistrationsTool.d.ts +4 -4
  108. package/dist/es/tools/hcs10/RegisterAgentTool.d.ts +10 -4
  109. package/dist/es/tools/hcs10/index.d.ts +1 -0
  110. package/dist/es/tools/hcs10/natural-language-mapper.d.ts +19 -0
  111. package/dist/es/tools/hcs2/CreateRegistryTool.d.ts +48 -0
  112. package/dist/es/tools/hcs2/DeleteEntryTool.d.ts +41 -0
  113. package/dist/es/tools/hcs2/MigrateRegistryTool.d.ts +47 -0
  114. package/dist/es/tools/hcs2/QueryRegistryTool.d.ts +47 -0
  115. package/dist/es/tools/hcs2/RegisterEntryTool.d.ts +47 -0
  116. package/dist/es/tools/hcs2/UpdateEntryTool.d.ts +53 -0
  117. package/dist/es/tools/hcs2/base-hcs2-tools.d.ts +28 -0
  118. package/dist/es/tools/hcs2/hcs2-tool-params.d.ts +18 -0
  119. package/dist/es/tools/hcs2/index.d.ts +8 -0
  120. package/dist/es/tools/index.d.ts +2 -0
  121. package/dist/es/tools/inscriber/InscribeFromBufferTool.d.ts +77 -0
  122. package/dist/es/tools/inscriber/InscribeFromFileTool.d.ts +65 -0
  123. package/dist/es/tools/inscriber/InscribeFromUrlTool.d.ts +65 -0
  124. package/dist/es/tools/inscriber/InscribeHashinalTool.d.ts +125 -0
  125. package/dist/es/tools/inscriber/RetrieveInscriptionTool.d.ts +35 -0
  126. package/dist/es/tools/inscriber/base-inscriber-tools.d.ts +28 -0
  127. package/dist/es/tools/inscriber/index.d.ts +7 -0
  128. package/dist/es/tools/inscriber/inscriber-tool-params.d.ts +18 -0
  129. package/dist/umd/builders/hcs2/hcs2-builder.d.ts +50 -0
  130. package/dist/umd/builders/hcs2/index.d.ts +1 -0
  131. package/dist/umd/builders/index.d.ts +2 -0
  132. package/dist/umd/builders/inscriber/index.d.ts +1 -0
  133. package/dist/umd/builders/inscriber/inscriber-builder.d.ts +46 -0
  134. package/dist/umd/index.d.ts +1 -1
  135. package/dist/umd/standards-agent-kit.umd.js +1 -1
  136. package/dist/umd/standards-agent-kit.umd.js.map +1 -1
  137. package/dist/umd/tools/hcs10/FindRegistrationsTool.d.ts +4 -4
  138. package/dist/umd/tools/hcs10/RegisterAgentTool.d.ts +10 -4
  139. package/dist/umd/tools/hcs10/index.d.ts +1 -0
  140. package/dist/umd/tools/hcs10/natural-language-mapper.d.ts +19 -0
  141. package/dist/umd/tools/hcs2/CreateRegistryTool.d.ts +48 -0
  142. package/dist/umd/tools/hcs2/DeleteEntryTool.d.ts +41 -0
  143. package/dist/umd/tools/hcs2/MigrateRegistryTool.d.ts +47 -0
  144. package/dist/umd/tools/hcs2/QueryRegistryTool.d.ts +47 -0
  145. package/dist/umd/tools/hcs2/RegisterEntryTool.d.ts +47 -0
  146. package/dist/umd/tools/hcs2/UpdateEntryTool.d.ts +53 -0
  147. package/dist/umd/tools/hcs2/base-hcs2-tools.d.ts +28 -0
  148. package/dist/umd/tools/hcs2/hcs2-tool-params.d.ts +18 -0
  149. package/dist/umd/tools/hcs2/index.d.ts +8 -0
  150. package/dist/umd/tools/index.d.ts +2 -0
  151. package/dist/umd/tools/inscriber/InscribeFromBufferTool.d.ts +77 -0
  152. package/dist/umd/tools/inscriber/InscribeFromFileTool.d.ts +65 -0
  153. package/dist/umd/tools/inscriber/InscribeFromUrlTool.d.ts +65 -0
  154. package/dist/umd/tools/inscriber/InscribeHashinalTool.d.ts +125 -0
  155. package/dist/umd/tools/inscriber/RetrieveInscriptionTool.d.ts +35 -0
  156. package/dist/umd/tools/inscriber/base-inscriber-tools.d.ts +28 -0
  157. package/dist/umd/tools/inscriber/index.d.ts +7 -0
  158. package/dist/umd/tools/inscriber/inscriber-tool-params.d.ts +18 -0
  159. package/package.json +33 -31
  160. package/src/builders/hcs2/hcs2-builder.ts +148 -0
  161. package/src/builders/hcs2/index.ts +1 -0
  162. package/src/builders/index.ts +3 -1
  163. package/src/builders/inscriber/index.ts +1 -0
  164. package/src/builders/inscriber/inscriber-builder.ts +112 -0
  165. package/src/index.ts +1 -1
  166. package/src/tools/hcs10/FindRegistrationsTool.ts +19 -4
  167. package/src/tools/hcs10/RegisterAgentTool.ts +37 -5
  168. package/src/tools/hcs10/index.ts +2 -1
  169. package/src/tools/hcs10/natural-language-mapper.ts +194 -0
  170. package/src/tools/hcs2/CreateRegistryTool.ts +63 -0
  171. package/src/tools/hcs2/DeleteEntryTool.ts +58 -0
  172. package/src/tools/hcs2/MigrateRegistryTool.ts +64 -0
  173. package/src/tools/hcs2/QueryRegistryTool.ts +70 -0
  174. package/src/tools/hcs2/RegisterEntryTool.ts +63 -0
  175. package/src/tools/hcs2/UpdateEntryTool.ts +68 -0
  176. package/src/tools/hcs2/base-hcs2-tools.ts +65 -0
  177. package/src/tools/hcs2/hcs2-tool-params.ts +21 -0
  178. package/src/tools/hcs2/index.ts +8 -0
  179. package/src/tools/index.ts +3 -2
  180. package/src/tools/inscriber/InscribeFromBufferTool.ts +105 -0
  181. package/src/tools/inscriber/InscribeFromFileTool.ts +93 -0
  182. package/src/tools/inscriber/InscribeFromUrlTool.ts +93 -0
  183. package/src/tools/inscriber/InscribeHashinalTool.ts +117 -0
  184. package/src/tools/inscriber/RetrieveInscriptionTool.ts +59 -0
  185. package/src/tools/inscriber/base-inscriber-tools.ts +65 -0
  186. package/src/tools/inscriber/index.ts +7 -0
  187. package/src/tools/inscriber/inscriber-tool-params.ts +21 -0
@@ -0,0 +1,45 @@
1
+ import { z } from "zod";
2
+ import { BaseHCS2QueryTool } from "./standards-agent-kit.es19.js";
3
+ const queryRegistrySchema = z.object({
4
+ topicId: z.string().regex(/^\d+\.\d+\.\d+$/).describe("The HCS-2 registry topic ID to query"),
5
+ limit: z.number().int().positive().optional().describe("Maximum number of entries to return"),
6
+ order: z.enum(["asc", "desc"]).optional().describe("Order of results (ascending or descending)"),
7
+ skip: z.number().int().min(0).optional().describe("Number of entries to skip")
8
+ });
9
+ class QueryRegistryTool extends BaseHCS2QueryTool {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.name = "queryHCS2Registry";
13
+ this.description = "Query entries from an HCS-2 registry";
14
+ }
15
+ get specificInputSchema() {
16
+ return queryRegistrySchema;
17
+ }
18
+ async executeQuery(params, _runManager) {
19
+ const registry = await this.hcs2Builder.getRegistry(params.topicId, {
20
+ limit: params.limit,
21
+ order: params.order,
22
+ skip: params.skip
23
+ });
24
+ return {
25
+ topicId: registry.topicId,
26
+ registryType: registry.registryType === 0 ? "indexed" : "non-indexed",
27
+ ttl: registry.ttl,
28
+ totalEntries: registry.entries.length,
29
+ entries: registry.entries.map((entry) => ({
30
+ sequence: entry.sequence,
31
+ timestamp: entry.timestamp,
32
+ payer: entry.payer,
33
+ operation: entry.message.op,
34
+ targetTopicId: entry.message.t_id,
35
+ uid: entry.message.uid,
36
+ metadata: entry.message.metadata,
37
+ memo: entry.message.m
38
+ }))
39
+ };
40
+ }
41
+ }
42
+ export {
43
+ QueryRegistryTool
44
+ };
45
+ //# sourceMappingURL=standards-agent-kit.es25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-agent-kit.es25.js","sources":["../../src/tools/hcs2/QueryRegistryTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseHCS2QueryTool } from './base-hcs2-tools';\nimport { CallbackManagerForToolRun } from '@langchain/core/callbacks/manager';\n\n/**\n * Schema for querying HCS-2 registry\n */\nconst queryRegistrySchema = z.object({\n topicId: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/)\n .describe('The HCS-2 registry topic ID to query'),\n limit: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Maximum number of entries to return'),\n order: z\n .enum(['asc', 'desc'])\n .optional()\n .describe('Order of results (ascending or descending)'),\n skip: z\n .number()\n .int()\n .min(0)\n .optional()\n .describe('Number of entries to skip'),\n});\n\n\n/**\n * Tool for querying HCS-2 registries\n */\nexport class QueryRegistryTool extends BaseHCS2QueryTool<typeof queryRegistrySchema> {\n name = 'queryHCS2Registry';\n description = 'Query entries from an HCS-2 registry';\n\n get specificInputSchema() {\n return queryRegistrySchema;\n }\n\n protected async executeQuery(\n params: z.infer<typeof queryRegistrySchema>,\n _runManager?: CallbackManagerForToolRun\n ): Promise<unknown> {\n const registry = await this.hcs2Builder.getRegistry(params.topicId, {\n limit: params.limit,\n order: params.order,\n skip: params.skip,\n });\n\n return {\n topicId: registry.topicId,\n registryType: registry.registryType === 0 ? 'indexed' : 'non-indexed',\n ttl: registry.ttl,\n totalEntries: registry.entries.length,\n entries: registry.entries.map(entry => ({\n sequence: entry.sequence,\n timestamp: entry.timestamp,\n payer: entry.payer,\n operation: entry.message.op,\n targetTopicId: entry.message.t_id,\n uid: entry.message.uid,\n metadata: entry.message.metadata,\n memo: entry.message.m,\n })),\n };\n }\n}"],"names":[],"mappings":";;AAOA,MAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,SAAS,EACN,OAAA,EACA,MAAM,iBAAiB,EACvB,SAAS,sCAAsC;AAAA,EAClD,OAAO,EACJ,OAAA,EACA,IAAA,EACA,SAAA,EACA,SAAA,EACA,SAAS,qCAAqC;AAAA,EACjD,OAAO,EACJ,KAAK,CAAC,OAAO,MAAM,CAAC,EACpB,SAAA,EACA,SAAS,4CAA4C;AAAA,EACxD,MAAM,EACH,OAAA,EACA,IAAA,EACA,IAAI,CAAC,EACL,WACA,SAAS,2BAA2B;AACzC,CAAC;AAMM,MAAM,0BAA0B,kBAA8C;AAAA,EAA9E,cAAA;AAAA,UAAA,GAAA,SAAA;AACL,SAAA,OAAO;AACP,SAAA,cAAc;AAAA,EAAA;AAAA,EAEd,IAAI,sBAAsB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,aACd,QACA,aACkB;AAClB,UAAM,WAAW,MAAM,KAAK,YAAY,YAAY,OAAO,SAAS;AAAA,MAClE,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,MAAM,OAAO;AAAA,IAAA,CACd;AAED,WAAO;AAAA,MACL,SAAS,SAAS;AAAA,MAClB,cAAc,SAAS,iBAAiB,IAAI,YAAY;AAAA,MACxD,KAAK,SAAS;AAAA,MACd,cAAc,SAAS,QAAQ;AAAA,MAC/B,SAAS,SAAS,QAAQ,IAAI,CAAA,WAAU;AAAA,QACtC,UAAU,MAAM;AAAA,QAChB,WAAW,MAAM;AAAA,QACjB,OAAO,MAAM;AAAA,QACb,WAAW,MAAM,QAAQ;AAAA,QACzB,eAAe,MAAM,QAAQ;AAAA,QAC7B,KAAK,MAAM,QAAQ;AAAA,QACnB,UAAU,MAAM,QAAQ;AAAA,QACxB,MAAM,MAAM,QAAQ;AAAA,MAAA,EACpB;AAAA,IAAA;AAAA,EAEN;AACF;"}
@@ -0,0 +1,32 @@
1
+ import { BaseHederaTransactionTool, BaseHederaQueryTool } from "hedera-agent-kit";
2
+ class BaseInscriberTransactionTool extends BaseHederaTransactionTool {
3
+ constructor(params) {
4
+ super(params);
5
+ this.namespace = "inscriber";
6
+ this.inscriberBuilder = params.inscriberBuilder;
7
+ }
8
+ /**
9
+ * Override to return the InscriberBuilder
10
+ */
11
+ getServiceBuilder() {
12
+ return this.inscriberBuilder;
13
+ }
14
+ }
15
+ class BaseInscriberQueryTool extends BaseHederaQueryTool {
16
+ constructor(params) {
17
+ super(params);
18
+ this.namespace = "inscriber";
19
+ this.inscriberBuilder = params.inscriberBuilder;
20
+ }
21
+ /**
22
+ * Override to return the InscriberBuilder
23
+ */
24
+ getServiceBuilder() {
25
+ return this.inscriberBuilder;
26
+ }
27
+ }
28
+ export {
29
+ BaseInscriberQueryTool,
30
+ BaseInscriberTransactionTool
31
+ };
32
+ //# sourceMappingURL=standards-agent-kit.es26.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-agent-kit.es26.js","sources":["../../src/tools/inscriber/base-inscriber-tools.ts"],"sourcesContent":["import {\n BaseHederaTransactionTool,\n BaseHederaQueryTool,\n BaseServiceBuilder,\n} from 'hedera-agent-kit';\nimport { InscriberBuilder } from '../../builders/inscriber/inscriber-builder';\nimport {\n InscriberTransactionToolParams,\n InscriberQueryToolParams,\n} from './inscriber-tool-params';\nimport { z } from 'zod';\n\n/**\n * Base class for Inscriber transaction tools\n */\nexport abstract class BaseInscriberTransactionTool<\n T extends z.ZodObject<\n z.ZodRawShape,\n z.UnknownKeysParam,\n z.ZodTypeAny\n > = z.ZodObject<z.ZodRawShape>\n> extends BaseHederaTransactionTool<T> {\n protected inscriberBuilder: InscriberBuilder;\n namespace = 'inscriber' as const;\n\n constructor(params: InscriberTransactionToolParams) {\n super(params);\n this.inscriberBuilder = params.inscriberBuilder;\n }\n\n /**\n * Override to return the InscriberBuilder\n */\n protected getServiceBuilder(): BaseServiceBuilder {\n return this.inscriberBuilder;\n }\n}\n\n/**\n * Base class for Inscriber query tools\n */\nexport abstract class BaseInscriberQueryTool<\n T extends z.ZodObject<\n z.ZodRawShape,\n z.UnknownKeysParam,\n z.ZodTypeAny,\n Record<string, unknown>,\n Record<string, unknown>\n > = z.ZodObject<z.ZodRawShape>\n> extends BaseHederaQueryTool<T> {\n protected inscriberBuilder: InscriberBuilder;\n namespace = 'inscriber' as const;\n\n constructor(params: InscriberQueryToolParams) {\n super(params);\n this.inscriberBuilder = params.inscriberBuilder;\n }\n\n /**\n * Override to return the InscriberBuilder\n */\n protected getServiceBuilder(): BaseServiceBuilder {\n return this.inscriberBuilder;\n }\n}"],"names":[],"mappings":";AAeO,MAAe,qCAMZ,0BAA6B;AAAA,EAIrC,YAAY,QAAwC;AAClD,UAAM,MAAM;AAHd,SAAA,YAAY;AAIV,SAAK,mBAAmB,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKU,oBAAwC;AAChD,WAAO,KAAK;AAAA,EACd;AACF;AAKO,MAAe,+BAQZ,oBAAuB;AAAA,EAI/B,YAAY,QAAkC;AAC5C,UAAM,MAAM;AAHd,SAAA,YAAY;AAIV,SAAK,mBAAmB,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKU,oBAAwC;AAChD,WAAO,KAAK;AAAA,EACd;AACF;"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ import { BaseInscriberQueryTool } from "./standards-agent-kit.es26.js";
3
+ const inscribeFromUrlSchema = z.object({
4
+ url: z.string().url().describe("The URL of the content to inscribe"),
5
+ mode: z.enum(["file", "hashinal"]).optional().describe("Inscription mode: file or hashinal NFT"),
6
+ metadata: z.record(z.unknown()).optional().describe("Metadata to attach to the inscription"),
7
+ tags: z.array(z.string()).optional().describe("Tags to categorize the inscription"),
8
+ chunkSize: z.number().int().positive().optional().describe("Chunk size for large files"),
9
+ waitForConfirmation: z.boolean().optional().describe("Whether to wait for inscription confirmation"),
10
+ apiKey: z.string().optional().describe("API key for inscription service")
11
+ });
12
+ class InscribeFromUrlTool extends BaseInscriberQueryTool {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = "inscribeFromUrl";
16
+ this.description = "Inscribe content from a URL to the Hedera network";
17
+ }
18
+ get specificInputSchema() {
19
+ return inscribeFromUrlSchema;
20
+ }
21
+ async executeQuery(params, _runManager) {
22
+ const options = {
23
+ mode: params.mode,
24
+ metadata: params.metadata,
25
+ tags: params.tags,
26
+ chunkSize: params.chunkSize,
27
+ waitForConfirmation: params.waitForConfirmation ?? true,
28
+ waitMaxAttempts: 10,
29
+ waitIntervalMs: 3e3,
30
+ apiKey: params.apiKey,
31
+ network: this.inscriberBuilder["hederaKit"].client.network.toString().includes("mainnet") ? "mainnet" : "testnet"
32
+ };
33
+ try {
34
+ const timeoutPromise = new Promise((_, reject) => {
35
+ setTimeout(() => reject(new Error("Inscription timed out after 30 seconds")), 3e4);
36
+ });
37
+ const result = await Promise.race([
38
+ this.inscriberBuilder.inscribe(
39
+ { type: "url", url: params.url },
40
+ options
41
+ ),
42
+ timeoutPromise
43
+ ]);
44
+ if (result.confirmed) {
45
+ const topicId = result.inscription?.topic_id || result.result.topicId;
46
+ const network = options.network || "testnet";
47
+ const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;
48
+ return `Successfully inscribed and confirmed content on the Hedera network!
49
+
50
+ Transaction ID: ${result.result.transactionId}
51
+ Topic ID: ${topicId || "N/A"}${cdnUrl ? `
52
+ View inscription: ${cdnUrl}` : ""}
53
+
54
+ The inscription is now available.`;
55
+ } else {
56
+ return `Successfully submitted inscription to the Hedera network!
57
+
58
+ Transaction ID: ${result.result.transactionId}
59
+
60
+ The inscription is processing and will be confirmed shortly.`;
61
+ }
62
+ } catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : "Failed to inscribe from URL";
64
+ throw new Error(`Inscription failed: ${errorMessage}`);
65
+ }
66
+ }
67
+ }
68
+ export {
69
+ InscribeFromUrlTool
70
+ };
71
+ //# sourceMappingURL=standards-agent-kit.es27.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-agent-kit.es27.js","sources":["../../src/tools/inscriber/InscribeFromUrlTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseInscriberQueryTool } from './base-inscriber-tools';\nimport { InscriptionOptions } from '@hashgraphonline/standards-sdk';\nimport { CallbackManagerForToolRun } from '@langchain/core/callbacks/manager';\n\n/**\n * Schema for inscribing from URL\n */\nconst inscribeFromUrlSchema = z.object({\n url: z.string().url().describe('The URL of the content to inscribe'),\n mode: z\n .enum(['file', 'hashinal'])\n .optional()\n .describe('Inscription mode: file or hashinal NFT'),\n metadata: z\n .record(z.unknown())\n .optional()\n .describe('Metadata to attach to the inscription'),\n tags: z\n .array(z.string())\n .optional()\n .describe('Tags to categorize the inscription'),\n chunkSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Chunk size for large files'),\n waitForConfirmation: z\n .boolean()\n .optional()\n .describe('Whether to wait for inscription confirmation'),\n apiKey: z\n .string()\n .optional()\n .describe('API key for inscription service'),\n});\n\n\n/**\n * Tool for inscribing content from URL\n */\nexport class InscribeFromUrlTool extends BaseInscriberQueryTool<typeof inscribeFromUrlSchema> {\n name = 'inscribeFromUrl';\n description = 'Inscribe content from a URL to the Hedera network';\n\n get specificInputSchema() {\n return inscribeFromUrlSchema;\n }\n\n protected async executeQuery(\n params: z.infer<typeof inscribeFromUrlSchema>,\n _runManager?: CallbackManagerForToolRun\n ): Promise<unknown> {\n const options: InscriptionOptions = {\n mode: params.mode,\n metadata: params.metadata,\n tags: params.tags,\n chunkSize: params.chunkSize,\n waitForConfirmation: params.waitForConfirmation ?? true,\n waitMaxAttempts: 10,\n waitIntervalMs: 3000,\n apiKey: params.apiKey,\n network: this.inscriberBuilder['hederaKit'].client.network.toString().includes('mainnet') ? 'mainnet' : 'testnet',\n };\n\n try {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Inscription timed out after 30 seconds')), 30000);\n });\n\n const result = await Promise.race([\n this.inscriberBuilder.inscribe(\n { type: 'url', url: params.url },\n options\n ),\n timeoutPromise\n ]) as any;\n\n if (result.confirmed) {\n const topicId = result.inscription?.topic_id || result.result.topicId;\n const network = options.network || 'testnet';\n const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;\n return `Successfully inscribed and confirmed content on the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\nTopic ID: ${topicId || 'N/A'}${cdnUrl ? `\\nView inscription: ${cdnUrl}` : ''}\\n\\nThe inscription is now available.`;\n } else {\n return `Successfully submitted inscription to the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\n\\nThe inscription is processing and will be confirmed shortly.`;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to inscribe from URL';\n throw new Error(`Inscription failed: ${errorMessage}`);\n }\n }\n}"],"names":[],"mappings":";;AAQA,MAAM,wBAAwB,EAAE,OAAO;AAAA,EACrC,KAAK,EAAE,OAAA,EAAS,IAAA,EAAM,SAAS,oCAAoC;AAAA,EACnE,MAAM,EACH,KAAK,CAAC,QAAQ,UAAU,CAAC,EACzB,SAAA,EACA,SAAS,wCAAwC;AAAA,EACpD,UAAU,EACP,OAAO,EAAE,QAAA,CAAS,EAClB,SAAA,EACA,SAAS,uCAAuC;AAAA,EACnD,MAAM,EACH,MAAM,EAAE,OAAA,CAAQ,EAChB,SAAA,EACA,SAAS,oCAAoC;AAAA,EAChD,WAAW,EACR,OAAA,EACA,IAAA,EACA,SAAA,EACA,SAAA,EACA,SAAS,4BAA4B;AAAA,EACxC,qBAAqB,EAClB,QAAA,EACA,SAAA,EACA,SAAS,8CAA8C;AAAA,EAC1D,QAAQ,EACL,OAAA,EACA,SAAA,EACA,SAAS,iCAAiC;AAC/C,CAAC;AAMM,MAAM,4BAA4B,uBAAqD;AAAA,EAAvF,cAAA;AAAA,UAAA,GAAA,SAAA;AACL,SAAA,OAAO;AACP,SAAA,cAAc;AAAA,EAAA;AAAA,EAEd,IAAI,sBAAsB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,aACd,QACA,aACkB;AAClB,UAAM,UAA8B;AAAA,MAClC,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,MACjB,MAAM,OAAO;AAAA,MACb,WAAW,OAAO;AAAA,MAClB,qBAAqB,OAAO,uBAAuB;AAAA,MACnD,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,SAAS,KAAK,iBAAiB,WAAW,EAAE,OAAO,QAAQ,WAAW,SAAS,SAAS,IAAI,YAAY;AAAA,IAAA;AAG1G,QAAI;AACF,YAAM,iBAAiB,IAAI,QAAQ,CAAC,GAAG,WAAW;AAChD,mBAAW,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC,GAAG,GAAK;AAAA,MACrF,CAAC;AAED,YAAM,SAAS,MAAM,QAAQ,KAAK;AAAA,QAChC,KAAK,iBAAiB;AAAA,UACpB,EAAE,MAAM,OAAO,KAAK,OAAO,IAAA;AAAA,UAC3B;AAAA,QAAA;AAAA,QAEF;AAAA,MAAA,CACD;AAED,UAAI,OAAO,WAAW;AACpB,cAAM,UAAU,OAAO,aAAa,YAAY,OAAO,OAAO;AAC9D,cAAM,UAAU,QAAQ,WAAW;AACnC,cAAM,SAAS,UAAU,8CAA8C,OAAO,YAAY,OAAO,KAAK;AACtG,eAAO;AAAA;AAAA,kBAA0F,OAAO,OAAO,aAAa;AAAA,YAAe,WAAW,KAAK,GAAG,SAAS;AAAA,oBAAuB,MAAM,KAAK,EAAE;AAAA;AAAA;AAAA,MAC7M,OAAO;AACL,eAAO;AAAA;AAAA,kBAAgF,OAAO,OAAO,aAAa;AAAA;AAAA;AAAA,MACpH;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAC9D,YAAM,IAAI,MAAM,uBAAuB,YAAY,EAAE;AAAA,IACvD;AAAA,EACF;AACF;"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ import { BaseInscriberQueryTool } from "./standards-agent-kit.es26.js";
3
+ const inscribeFromFileSchema = z.object({
4
+ filePath: z.string().describe("The file path of the content to inscribe"),
5
+ mode: z.enum(["file", "hashinal"]).optional().describe("Inscription mode: file or hashinal NFT"),
6
+ metadata: z.record(z.unknown()).optional().describe("Metadata to attach to the inscription"),
7
+ tags: z.array(z.string()).optional().describe("Tags to categorize the inscription"),
8
+ chunkSize: z.number().int().positive().optional().describe("Chunk size for large files"),
9
+ waitForConfirmation: z.boolean().optional().describe("Whether to wait for inscription confirmation"),
10
+ apiKey: z.string().optional().describe("API key for inscription service")
11
+ });
12
+ class InscribeFromFileTool extends BaseInscriberQueryTool {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = "inscribeFromFile";
16
+ this.description = "Inscribe content from a local file to the Hedera network";
17
+ }
18
+ get specificInputSchema() {
19
+ return inscribeFromFileSchema;
20
+ }
21
+ async executeQuery(params, _runManager) {
22
+ const options = {
23
+ mode: params.mode,
24
+ metadata: params.metadata,
25
+ tags: params.tags,
26
+ chunkSize: params.chunkSize,
27
+ waitForConfirmation: params.waitForConfirmation ?? true,
28
+ waitMaxAttempts: 10,
29
+ waitIntervalMs: 3e3,
30
+ apiKey: params.apiKey,
31
+ network: this.inscriberBuilder["hederaKit"].client.network.toString().includes("mainnet") ? "mainnet" : "testnet"
32
+ };
33
+ try {
34
+ const timeoutPromise = new Promise((_, reject) => {
35
+ setTimeout(() => reject(new Error("Inscription timed out after 30 seconds")), 3e4);
36
+ });
37
+ const result = await Promise.race([
38
+ this.inscriberBuilder.inscribe(
39
+ { type: "file", path: params.filePath },
40
+ options
41
+ ),
42
+ timeoutPromise
43
+ ]);
44
+ if (result.confirmed) {
45
+ const topicId = result.inscription?.topic_id || result.result.topicId;
46
+ const network = options.network || "testnet";
47
+ const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;
48
+ return `Successfully inscribed and confirmed content on the Hedera network!
49
+
50
+ Transaction ID: ${result.result.transactionId}
51
+ Topic ID: ${topicId || "N/A"}${cdnUrl ? `
52
+ View inscription: ${cdnUrl}` : ""}
53
+
54
+ The inscription is now available.`;
55
+ } else {
56
+ return `Successfully submitted inscription to the Hedera network!
57
+
58
+ Transaction ID: ${result.result.transactionId}
59
+
60
+ The inscription is processing and will be confirmed shortly.`;
61
+ }
62
+ } catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : "Failed to inscribe from file";
64
+ throw new Error(`Inscription failed: ${errorMessage}`);
65
+ }
66
+ }
67
+ }
68
+ export {
69
+ InscribeFromFileTool
70
+ };
71
+ //# sourceMappingURL=standards-agent-kit.es28.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-agent-kit.es28.js","sources":["../../src/tools/inscriber/InscribeFromFileTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseInscriberQueryTool } from './base-inscriber-tools';\nimport { InscriptionOptions } from '@hashgraphonline/standards-sdk';\nimport { CallbackManagerForToolRun } from '@langchain/core/callbacks/manager';\n\n/**\n * Schema for inscribing from file\n */\nconst inscribeFromFileSchema = z.object({\n filePath: z.string().describe('The file path of the content to inscribe'),\n mode: z\n .enum(['file', 'hashinal'])\n .optional()\n .describe('Inscription mode: file or hashinal NFT'),\n metadata: z\n .record(z.unknown())\n .optional()\n .describe('Metadata to attach to the inscription'),\n tags: z\n .array(z.string())\n .optional()\n .describe('Tags to categorize the inscription'),\n chunkSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Chunk size for large files'),\n waitForConfirmation: z\n .boolean()\n .optional()\n .describe('Whether to wait for inscription confirmation'),\n apiKey: z\n .string()\n .optional()\n .describe('API key for inscription service'),\n});\n\n\n/**\n * Tool for inscribing content from file\n */\nexport class InscribeFromFileTool extends BaseInscriberQueryTool<typeof inscribeFromFileSchema> {\n name = 'inscribeFromFile';\n description = 'Inscribe content from a local file to the Hedera network';\n\n get specificInputSchema() {\n return inscribeFromFileSchema;\n }\n\n protected async executeQuery(\n params: z.infer<typeof inscribeFromFileSchema>,\n _runManager?: CallbackManagerForToolRun\n ): Promise<unknown> {\n const options: InscriptionOptions = {\n mode: params.mode,\n metadata: params.metadata,\n tags: params.tags,\n chunkSize: params.chunkSize,\n waitForConfirmation: params.waitForConfirmation ?? true,\n waitMaxAttempts: 10,\n waitIntervalMs: 3000,\n apiKey: params.apiKey,\n network: this.inscriberBuilder['hederaKit'].client.network.toString().includes('mainnet') ? 'mainnet' : 'testnet',\n };\n\n try {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Inscription timed out after 30 seconds')), 30000);\n });\n\n const result = await Promise.race([\n this.inscriberBuilder.inscribe(\n { type: 'file', path: params.filePath },\n options\n ),\n timeoutPromise\n ]) as any;\n\n if (result.confirmed) {\n const topicId = result.inscription?.topic_id || result.result.topicId;\n const network = options.network || 'testnet';\n const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;\n return `Successfully inscribed and confirmed content on the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\nTopic ID: ${topicId || 'N/A'}${cdnUrl ? `\\nView inscription: ${cdnUrl}` : ''}\\n\\nThe inscription is now available.`;\n } else {\n return `Successfully submitted inscription to the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\n\\nThe inscription is processing and will be confirmed shortly.`;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to inscribe from file';\n throw new Error(`Inscription failed: ${errorMessage}`);\n }\n }\n}"],"names":[],"mappings":";;AAQA,MAAM,yBAAyB,EAAE,OAAO;AAAA,EACtC,UAAU,EAAE,SAAS,SAAS,0CAA0C;AAAA,EACxE,MAAM,EACH,KAAK,CAAC,QAAQ,UAAU,CAAC,EACzB,SAAA,EACA,SAAS,wCAAwC;AAAA,EACpD,UAAU,EACP,OAAO,EAAE,QAAA,CAAS,EAClB,SAAA,EACA,SAAS,uCAAuC;AAAA,EACnD,MAAM,EACH,MAAM,EAAE,OAAA,CAAQ,EAChB,SAAA,EACA,SAAS,oCAAoC;AAAA,EAChD,WAAW,EACR,OAAA,EACA,IAAA,EACA,SAAA,EACA,SAAA,EACA,SAAS,4BAA4B;AAAA,EACxC,qBAAqB,EAClB,QAAA,EACA,SAAA,EACA,SAAS,8CAA8C;AAAA,EAC1D,QAAQ,EACL,OAAA,EACA,SAAA,EACA,SAAS,iCAAiC;AAC/C,CAAC;AAMM,MAAM,6BAA6B,uBAAsD;AAAA,EAAzF,cAAA;AAAA,UAAA,GAAA,SAAA;AACL,SAAA,OAAO;AACP,SAAA,cAAc;AAAA,EAAA;AAAA,EAEd,IAAI,sBAAsB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,aACd,QACA,aACkB;AAClB,UAAM,UAA8B;AAAA,MAClC,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,MACjB,MAAM,OAAO;AAAA,MACb,WAAW,OAAO;AAAA,MAClB,qBAAqB,OAAO,uBAAuB;AAAA,MACnD,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,SAAS,KAAK,iBAAiB,WAAW,EAAE,OAAO,QAAQ,WAAW,SAAS,SAAS,IAAI,YAAY;AAAA,IAAA;AAG1G,QAAI;AACF,YAAM,iBAAiB,IAAI,QAAQ,CAAC,GAAG,WAAW;AAChD,mBAAW,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC,GAAG,GAAK;AAAA,MACrF,CAAC;AAED,YAAM,SAAS,MAAM,QAAQ,KAAK;AAAA,QAChC,KAAK,iBAAiB;AAAA,UACpB,EAAE,MAAM,QAAQ,MAAM,OAAO,SAAA;AAAA,UAC7B;AAAA,QAAA;AAAA,QAEF;AAAA,MAAA,CACD;AAED,UAAI,OAAO,WAAW;AACpB,cAAM,UAAU,OAAO,aAAa,YAAY,OAAO,OAAO;AAC9D,cAAM,UAAU,QAAQ,WAAW;AACnC,cAAM,SAAS,UAAU,8CAA8C,OAAO,YAAY,OAAO,KAAK;AACtG,eAAO;AAAA;AAAA,kBAA0F,OAAO,OAAO,aAAa;AAAA,YAAe,WAAW,KAAK,GAAG,SAAS;AAAA,oBAAuB,MAAM,KAAK,EAAE;AAAA;AAAA;AAAA,MAC7M,OAAO;AACL,eAAO;AAAA;AAAA,kBAAgF,OAAO,OAAO,aAAa;AAAA;AAAA;AAAA,MACpH;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAC9D,YAAM,IAAI,MAAM,uBAAuB,YAAY,EAAE;AAAA,IACvD;AAAA,EACF;AACF;"}
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { BaseInscriberQueryTool } from "./standards-agent-kit.es26.js";
3
+ const inscribeFromBufferSchema = z.object({
4
+ base64Data: z.string().describe("Base64 encoded content to inscribe"),
5
+ fileName: z.string().describe("Name for the inscribed content"),
6
+ mimeType: z.string().optional().describe("MIME type of the content"),
7
+ mode: z.enum(["file", "hashinal"]).optional().describe("Inscription mode: file or hashinal NFT"),
8
+ metadata: z.record(z.unknown()).optional().describe("Metadata to attach to the inscription"),
9
+ tags: z.array(z.string()).optional().describe("Tags to categorize the inscription"),
10
+ chunkSize: z.number().int().positive().optional().describe("Chunk size for large files"),
11
+ waitForConfirmation: z.boolean().optional().describe("Whether to wait for inscription confirmation"),
12
+ apiKey: z.string().optional().describe("API key for inscription service")
13
+ });
14
+ class InscribeFromBufferTool extends BaseInscriberQueryTool {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.name = "inscribeFromBuffer";
18
+ this.description = "Inscribe content from a buffer/base64 data to the Hedera network";
19
+ }
20
+ get specificInputSchema() {
21
+ return inscribeFromBufferSchema;
22
+ }
23
+ async executeQuery(params, _runManager) {
24
+ const buffer = Buffer.from(params.base64Data, "base64");
25
+ const options = {
26
+ mode: params.mode,
27
+ metadata: params.metadata,
28
+ tags: params.tags,
29
+ chunkSize: params.chunkSize,
30
+ waitForConfirmation: params.waitForConfirmation ?? true,
31
+ waitMaxAttempts: 10,
32
+ waitIntervalMs: 3e3,
33
+ apiKey: params.apiKey,
34
+ network: this.inscriberBuilder["hederaKit"].client.network.toString().includes("mainnet") ? "mainnet" : "testnet"
35
+ };
36
+ try {
37
+ const timeoutPromise = new Promise((_, reject) => {
38
+ setTimeout(() => reject(new Error("Inscription timed out after 30 seconds")), 3e4);
39
+ });
40
+ const result = await Promise.race([
41
+ this.inscriberBuilder.inscribe(
42
+ {
43
+ type: "buffer",
44
+ buffer,
45
+ fileName: params.fileName,
46
+ mimeType: params.mimeType
47
+ },
48
+ options
49
+ ),
50
+ timeoutPromise
51
+ ]);
52
+ if (result.confirmed) {
53
+ const topicId = result.inscription?.topic_id || result.result.topicId;
54
+ const network = options.network || "testnet";
55
+ const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;
56
+ return `Successfully inscribed and confirmed content on the Hedera network!
57
+
58
+ Transaction ID: ${result.result.transactionId}
59
+ Topic ID: ${topicId || "N/A"}${cdnUrl ? `
60
+ View inscription: ${cdnUrl}` : ""}
61
+
62
+ The inscription is now available.`;
63
+ } else {
64
+ return `Successfully submitted inscription to the Hedera network!
65
+
66
+ Transaction ID: ${result.result.transactionId}
67
+
68
+ The inscription is processing and will be confirmed shortly.`;
69
+ }
70
+ } catch (error) {
71
+ const errorMessage = error instanceof Error ? error.message : "Failed to inscribe from buffer";
72
+ throw new Error(`Inscription failed: ${errorMessage}`);
73
+ }
74
+ }
75
+ }
76
+ export {
77
+ InscribeFromBufferTool
78
+ };
79
+ //# sourceMappingURL=standards-agent-kit.es29.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards-agent-kit.es29.js","sources":["../../src/tools/inscriber/InscribeFromBufferTool.ts"],"sourcesContent":["import { z } from 'zod';\nimport { BaseInscriberQueryTool } from './base-inscriber-tools';\nimport { InscriptionOptions } from '@hashgraphonline/standards-sdk';\nimport { CallbackManagerForToolRun } from '@langchain/core/callbacks/manager';\n\n/**\n * Schema for inscribing from buffer\n */\nconst inscribeFromBufferSchema = z.object({\n base64Data: z.string().describe('Base64 encoded content to inscribe'),\n fileName: z.string().describe('Name for the inscribed content'),\n mimeType: z\n .string()\n .optional()\n .describe('MIME type of the content'),\n mode: z\n .enum(['file', 'hashinal'])\n .optional()\n .describe('Inscription mode: file or hashinal NFT'),\n metadata: z\n .record(z.unknown())\n .optional()\n .describe('Metadata to attach to the inscription'),\n tags: z\n .array(z.string())\n .optional()\n .describe('Tags to categorize the inscription'),\n chunkSize: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Chunk size for large files'),\n waitForConfirmation: z\n .boolean()\n .optional()\n .describe('Whether to wait for inscription confirmation'),\n apiKey: z\n .string()\n .optional()\n .describe('API key for inscription service'),\n});\n\n\n/**\n * Tool for inscribing content from buffer\n */\nexport class InscribeFromBufferTool extends BaseInscriberQueryTool<typeof inscribeFromBufferSchema> {\n name = 'inscribeFromBuffer';\n description = 'Inscribe content from a buffer/base64 data to the Hedera network';\n\n get specificInputSchema() {\n return inscribeFromBufferSchema;\n }\n\n protected async executeQuery(\n params: z.infer<typeof inscribeFromBufferSchema>,\n _runManager?: CallbackManagerForToolRun\n ): Promise<unknown> {\n const buffer = Buffer.from(params.base64Data, 'base64');\n\n const options: InscriptionOptions = {\n mode: params.mode,\n metadata: params.metadata,\n tags: params.tags,\n chunkSize: params.chunkSize,\n waitForConfirmation: params.waitForConfirmation ?? true,\n waitMaxAttempts: 10,\n waitIntervalMs: 3000,\n apiKey: params.apiKey,\n network: this.inscriberBuilder['hederaKit'].client.network.toString().includes('mainnet') ? 'mainnet' : 'testnet',\n };\n\n try {\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Inscription timed out after 30 seconds')), 30000);\n });\n\n const result = await Promise.race([\n this.inscriberBuilder.inscribe(\n {\n type: 'buffer',\n buffer,\n fileName: params.fileName,\n mimeType: params.mimeType,\n },\n options\n ),\n timeoutPromise\n ]) as any;\n\n if (result.confirmed) {\n const topicId = result.inscription?.topic_id || result.result.topicId;\n const network = options.network || 'testnet';\n const cdnUrl = topicId ? `https://kiloscribe.com/api/inscription-cdn/${topicId}?network=${network}` : null;\n return `Successfully inscribed and confirmed content on the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\nTopic ID: ${topicId || 'N/A'}${cdnUrl ? `\\nView inscription: ${cdnUrl}` : ''}\\n\\nThe inscription is now available.`;\n } else {\n return `Successfully submitted inscription to the Hedera network!\\n\\nTransaction ID: ${result.result.transactionId}\\n\\nThe inscription is processing and will be confirmed shortly.`;\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to inscribe from buffer';\n throw new Error(`Inscription failed: ${errorMessage}`);\n }\n }\n}"],"names":[],"mappings":";;AAQA,MAAM,2BAA2B,EAAE,OAAO;AAAA,EACxC,YAAY,EAAE,SAAS,SAAS,oCAAoC;AAAA,EACpE,UAAU,EAAE,SAAS,SAAS,gCAAgC;AAAA,EAC9D,UAAU,EACP,OAAA,EACA,SAAA,EACA,SAAS,0BAA0B;AAAA,EACtC,MAAM,EACH,KAAK,CAAC,QAAQ,UAAU,CAAC,EACzB,SAAA,EACA,SAAS,wCAAwC;AAAA,EACpD,UAAU,EACP,OAAO,EAAE,QAAA,CAAS,EAClB,SAAA,EACA,SAAS,uCAAuC;AAAA,EACnD,MAAM,EACH,MAAM,EAAE,OAAA,CAAQ,EAChB,SAAA,EACA,SAAS,oCAAoC;AAAA,EAChD,WAAW,EACR,OAAA,EACA,IAAA,EACA,SAAA,EACA,SAAA,EACA,SAAS,4BAA4B;AAAA,EACxC,qBAAqB,EAClB,QAAA,EACA,SAAA,EACA,SAAS,8CAA8C;AAAA,EAC1D,QAAQ,EACL,OAAA,EACA,SAAA,EACA,SAAS,iCAAiC;AAC/C,CAAC;AAMM,MAAM,+BAA+B,uBAAwD;AAAA,EAA7F,cAAA;AAAA,UAAA,GAAA,SAAA;AACL,SAAA,OAAO;AACP,SAAA,cAAc;AAAA,EAAA;AAAA,EAEd,IAAI,sBAAsB;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,aACd,QACA,aACkB;AAClB,UAAM,SAAS,OAAO,KAAK,OAAO,YAAY,QAAQ;AAEtD,UAAM,UAA8B;AAAA,MAClC,MAAM,OAAO;AAAA,MACb,UAAU,OAAO;AAAA,MACjB,MAAM,OAAO;AAAA,MACb,WAAW,OAAO;AAAA,MAClB,qBAAqB,OAAO,uBAAuB;AAAA,MACnD,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ,OAAO;AAAA,MACf,SAAS,KAAK,iBAAiB,WAAW,EAAE,OAAO,QAAQ,WAAW,SAAS,SAAS,IAAI,YAAY;AAAA,IAAA;AAG1G,QAAI;AACF,YAAM,iBAAiB,IAAI,QAAQ,CAAC,GAAG,WAAW;AAChD,mBAAW,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC,GAAG,GAAK;AAAA,MACrF,CAAC;AAED,YAAM,SAAS,MAAM,QAAQ,KAAK;AAAA,QAChC,KAAK,iBAAiB;AAAA,UACpB;AAAA,YACE,MAAM;AAAA,YACN;AAAA,YACA,UAAU,OAAO;AAAA,YACjB,UAAU,OAAO;AAAA,UAAA;AAAA,UAEnB;AAAA,QAAA;AAAA,QAEF;AAAA,MAAA,CACD;AAED,UAAI,OAAO,WAAW;AACpB,cAAM,UAAU,OAAO,aAAa,YAAY,OAAO,OAAO;AAC9D,cAAM,UAAU,QAAQ,WAAW;AACnC,cAAM,SAAS,UAAU,8CAA8C,OAAO,YAAY,OAAO,KAAK;AACtG,eAAO;AAAA;AAAA,kBAA0F,OAAO,OAAO,aAAa;AAAA,YAAe,WAAW,KAAK,GAAG,SAAS;AAAA,oBAAuB,MAAM,KAAK,EAAE;AAAA;AAAA;AAAA,MAC7M,OAAO;AACL,eAAO;AAAA;AAAA,kBAAgF,OAAO,OAAO,aAAa;AAAA;AAAA;AAAA,MACpH;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU;AAC9D,YAAM,IAAI,MAAM,uBAAuB,YAAY,EAAE;AAAA,IACvD;AAAA,EACF;AACF;"}