@hashgraphonline/standards-agent-kit 0.2.136 → 0.2.138

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 (211) hide show
  1. package/README.md +3 -4
  2. package/dist/cjs/builders/hcs10/hcs10-builder.d.ts +1 -0
  3. package/dist/cjs/builders/hcs2/hcs2-builder.d.ts +8 -7
  4. package/dist/cjs/builders/hcs6/hcs6-builder.d.ts +5 -4
  5. package/dist/cjs/builders/inscriber/inscriber-builder.d.ts +32 -1
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/signing/bytes-registry.d.ts +17 -0
  8. package/dist/cjs/signing/signer-provider.d.ts +45 -0
  9. package/dist/cjs/standards-agent-kit.cjs +1 -1
  10. package/dist/cjs/standards-agent-kit.cjs.map +1 -1
  11. package/dist/cjs/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
  12. package/dist/cjs/tools/hcs2/CreateRegistryTool.d.ts +2 -2
  13. package/dist/cjs/tools/hcs2/DeleteEntryTool.d.ts +2 -2
  14. package/dist/cjs/tools/hcs2/UpdateEntryTool.d.ts +2 -2
  15. package/dist/cjs/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
  16. package/dist/cjs/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
  17. package/dist/cjs/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
  18. package/dist/cjs/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
  19. package/dist/cjs/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
  20. package/dist/cjs/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
  21. package/dist/cjs/types/inscription-response.d.ts +8 -0
  22. package/dist/cjs/types/tx-results.d.ts +15 -0
  23. package/dist/cjs/utils/CodedError.d.ts +4 -0
  24. package/dist/cjs/utils/inscription-utils.d.ts +21 -0
  25. package/dist/cjs/validation/hip412-schemas.d.ts +2 -2
  26. package/dist/es/builders/hcs10/hcs10-builder.d.ts +1 -0
  27. package/dist/es/builders/hcs2/hcs2-builder.d.ts +8 -7
  28. package/dist/es/builders/hcs6/hcs6-builder.d.ts +5 -4
  29. package/dist/es/builders/inscriber/inscriber-builder.d.ts +32 -1
  30. package/dist/es/index.d.ts +4 -0
  31. package/dist/es/signing/bytes-registry.d.ts +17 -0
  32. package/dist/es/signing/signer-provider.d.ts +45 -0
  33. package/dist/es/standards-agent-kit.es.js +46 -42
  34. package/dist/es/standards-agent-kit.es.js.map +1 -1
  35. package/dist/es/standards-agent-kit.es10.js +24 -83
  36. package/dist/es/standards-agent-kit.es10.js.map +1 -1
  37. package/dist/es/standards-agent-kit.es11.js +224 -20
  38. package/dist/es/standards-agent-kit.es11.js.map +1 -1
  39. package/dist/es/standards-agent-kit.es12.js +78 -27
  40. package/dist/es/standards-agent-kit.es12.js.map +1 -1
  41. package/dist/es/standards-agent-kit.es13.js +26 -36
  42. package/dist/es/standards-agent-kit.es13.js.map +1 -1
  43. package/dist/es/standards-agent-kit.es14.js +17 -39
  44. package/dist/es/standards-agent-kit.es14.js.map +1 -1
  45. package/dist/es/standards-agent-kit.es15.js +36 -58
  46. package/dist/es/standards-agent-kit.es15.js.map +1 -1
  47. package/dist/es/standards-agent-kit.es16.js +45 -18
  48. package/dist/es/standards-agent-kit.es16.js.map +1 -1
  49. package/dist/es/standards-agent-kit.es17.js +53 -16
  50. package/dist/es/standards-agent-kit.es17.js.map +1 -1
  51. package/dist/es/standards-agent-kit.es18.js +18 -28
  52. package/dist/es/standards-agent-kit.es18.js.map +1 -1
  53. package/dist/es/standards-agent-kit.es19.js +26 -12
  54. package/dist/es/standards-agent-kit.es19.js.map +1 -1
  55. package/dist/es/standards-agent-kit.es20.js +38 -136
  56. package/dist/es/standards-agent-kit.es20.js.map +1 -1
  57. package/dist/es/standards-agent-kit.es21.js +13 -24
  58. package/dist/es/standards-agent-kit.es21.js.map +1 -1
  59. package/dist/es/standards-agent-kit.es22.js +136 -39
  60. package/dist/es/standards-agent-kit.es22.js.map +1 -1
  61. package/dist/es/standards-agent-kit.es23.js +25 -41
  62. package/dist/es/standards-agent-kit.es23.js.map +1 -1
  63. package/dist/es/standards-agent-kit.es24.js +49 -31
  64. package/dist/es/standards-agent-kit.es24.js.map +1 -1
  65. package/dist/es/standards-agent-kit.es25.js +34 -18
  66. package/dist/es/standards-agent-kit.es25.js.map +1 -1
  67. package/dist/es/standards-agent-kit.es26.js +35 -19
  68. package/dist/es/standards-agent-kit.es26.js.map +1 -1
  69. package/dist/es/standards-agent-kit.es27.js +45 -32
  70. package/dist/es/standards-agent-kit.es27.js.map +1 -1
  71. package/dist/es/standards-agent-kit.es28.js +54 -25
  72. package/dist/es/standards-agent-kit.es28.js.map +1 -1
  73. package/dist/es/standards-agent-kit.es29.js +35 -23
  74. package/dist/es/standards-agent-kit.es29.js.map +1 -1
  75. package/dist/es/standards-agent-kit.es3.js +41 -1545
  76. package/dist/es/standards-agent-kit.es3.js.map +1 -1
  77. package/dist/es/standards-agent-kit.es30.js +23 -39
  78. package/dist/es/standards-agent-kit.es30.js.map +1 -1
  79. package/dist/es/standards-agent-kit.es31.js +30 -28
  80. package/dist/es/standards-agent-kit.es31.js.map +1 -1
  81. package/dist/es/standards-agent-kit.es32.js +45 -32
  82. package/dist/es/standards-agent-kit.es32.js.map +1 -1
  83. package/dist/es/standards-agent-kit.es33.js +50 -89
  84. package/dist/es/standards-agent-kit.es33.js.map +1 -1
  85. package/dist/es/standards-agent-kit.es34.js +35 -228
  86. package/dist/es/standards-agent-kit.es34.js.map +1 -1
  87. package/dist/es/standards-agent-kit.es35.js +87 -212
  88. package/dist/es/standards-agent-kit.es35.js.map +1 -1
  89. package/dist/es/standards-agent-kit.es36.js +188 -128
  90. package/dist/es/standards-agent-kit.es36.js.map +1 -1
  91. package/dist/es/standards-agent-kit.es37.js +167 -561
  92. package/dist/es/standards-agent-kit.es37.js.map +1 -1
  93. package/dist/es/standards-agent-kit.es38.js +236 -31
  94. package/dist/es/standards-agent-kit.es38.js.map +1 -1
  95. package/dist/es/standards-agent-kit.es39.js +483 -206
  96. package/dist/es/standards-agent-kit.es39.js.map +1 -1
  97. package/dist/es/standards-agent-kit.es4.js +359 -81
  98. package/dist/es/standards-agent-kit.es4.js.map +1 -1
  99. package/dist/es/standards-agent-kit.es40.js +39 -135
  100. package/dist/es/standards-agent-kit.es40.js.map +1 -1
  101. package/dist/es/standards-agent-kit.es41.js +244 -28
  102. package/dist/es/standards-agent-kit.es41.js.map +1 -1
  103. package/dist/es/standards-agent-kit.es42.js +132 -418
  104. package/dist/es/standards-agent-kit.es42.js.map +1 -1
  105. package/dist/es/standards-agent-kit.es43.js +28 -184
  106. package/dist/es/standards-agent-kit.es43.js.map +1 -1
  107. package/dist/es/standards-agent-kit.es44.js +423 -3
  108. package/dist/es/standards-agent-kit.es44.js.map +1 -1
  109. package/dist/es/standards-agent-kit.es45.js +185 -24
  110. package/dist/es/standards-agent-kit.es45.js.map +1 -1
  111. package/dist/es/standards-agent-kit.es46.js +3 -3
  112. package/dist/es/standards-agent-kit.es46.js.map +1 -1
  113. package/dist/es/standards-agent-kit.es47.js +21 -50
  114. package/dist/es/standards-agent-kit.es47.js.map +1 -1
  115. package/dist/es/standards-agent-kit.es48.js +8 -3
  116. package/dist/es/standards-agent-kit.es48.js.map +1 -1
  117. package/dist/es/standards-agent-kit.es49.js +3 -39
  118. package/dist/es/standards-agent-kit.es49.js.map +1 -1
  119. package/dist/es/standards-agent-kit.es5.js +1747 -73
  120. package/dist/es/standards-agent-kit.es5.js.map +1 -1
  121. package/dist/es/standards-agent-kit.es50.js +18 -16
  122. package/dist/es/standards-agent-kit.es50.js.map +1 -1
  123. package/dist/es/standards-agent-kit.es51.js +49 -49
  124. package/dist/es/standards-agent-kit.es51.js.map +1 -1
  125. package/dist/es/standards-agent-kit.es52.js +6 -0
  126. package/dist/es/standards-agent-kit.es52.js.map +1 -0
  127. package/dist/es/standards-agent-kit.es53.js +43 -0
  128. package/dist/es/standards-agent-kit.es53.js.map +1 -0
  129. package/dist/es/standards-agent-kit.es54.js +22 -0
  130. package/dist/es/standards-agent-kit.es54.js.map +1 -0
  131. package/dist/es/standards-agent-kit.es55.js +77 -0
  132. package/dist/es/standards-agent-kit.es55.js.map +1 -0
  133. package/dist/es/standards-agent-kit.es56.js +7 -0
  134. package/dist/es/standards-agent-kit.es56.js.map +1 -0
  135. package/dist/es/standards-agent-kit.es6.js +347 -32
  136. package/dist/es/standards-agent-kit.es6.js.map +1 -1
  137. package/dist/es/standards-agent-kit.es7.js +142 -293
  138. package/dist/es/standards-agent-kit.es7.js.map +1 -1
  139. package/dist/es/standards-agent-kit.es8.js +201 -21
  140. package/dist/es/standards-agent-kit.es8.js.map +1 -1
  141. package/dist/es/standards-agent-kit.es9.js +301 -213
  142. package/dist/es/standards-agent-kit.es9.js.map +1 -1
  143. package/dist/es/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
  144. package/dist/es/tools/hcs2/CreateRegistryTool.d.ts +2 -2
  145. package/dist/es/tools/hcs2/DeleteEntryTool.d.ts +2 -2
  146. package/dist/es/tools/hcs2/UpdateEntryTool.d.ts +2 -2
  147. package/dist/es/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
  148. package/dist/es/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
  149. package/dist/es/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
  150. package/dist/es/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
  151. package/dist/es/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
  152. package/dist/es/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
  153. package/dist/es/types/inscription-response.d.ts +8 -0
  154. package/dist/es/types/tx-results.d.ts +15 -0
  155. package/dist/es/utils/CodedError.d.ts +4 -0
  156. package/dist/es/utils/inscription-utils.d.ts +21 -0
  157. package/dist/es/validation/hip412-schemas.d.ts +2 -2
  158. package/dist/umd/builders/hcs10/hcs10-builder.d.ts +1 -0
  159. package/dist/umd/builders/hcs2/hcs2-builder.d.ts +8 -7
  160. package/dist/umd/builders/hcs6/hcs6-builder.d.ts +5 -4
  161. package/dist/umd/builders/inscriber/inscriber-builder.d.ts +32 -1
  162. package/dist/umd/index.d.ts +4 -0
  163. package/dist/umd/signing/bytes-registry.d.ts +17 -0
  164. package/dist/umd/signing/signer-provider.d.ts +45 -0
  165. package/dist/umd/standards-agent-kit.umd.js +1 -1
  166. package/dist/umd/standards-agent-kit.umd.js.map +1 -1
  167. package/dist/umd/tools/hcs10/InitiateConnectionTool.d.ts +4 -4
  168. package/dist/umd/tools/hcs2/CreateRegistryTool.d.ts +2 -2
  169. package/dist/umd/tools/hcs2/DeleteEntryTool.d.ts +2 -2
  170. package/dist/umd/tools/hcs2/UpdateEntryTool.d.ts +2 -2
  171. package/dist/umd/tools/hcs6/RegisterDynamicHashinalTool.d.ts +10 -10
  172. package/dist/umd/tools/hcs6/UpdateDynamicHashinalTool.d.ts +8 -8
  173. package/dist/umd/tools/inscriber/InscribeFromBufferTool.d.ts +5 -4
  174. package/dist/umd/tools/inscriber/InscribeFromFileTool.d.ts +2 -2
  175. package/dist/umd/tools/inscriber/InscribeFromUrlTool.d.ts +4 -4
  176. package/dist/umd/tools/inscriber/InscribeHashinalTool.d.ts +3 -3
  177. package/dist/umd/types/inscription-response.d.ts +8 -0
  178. package/dist/umd/types/tx-results.d.ts +15 -0
  179. package/dist/umd/utils/CodedError.d.ts +4 -0
  180. package/dist/umd/utils/inscription-utils.d.ts +21 -0
  181. package/dist/umd/validation/hip412-schemas.d.ts +2 -2
  182. package/package.json +10 -5
  183. package/src/builders/hcs10/hcs10-builder.ts +239 -6
  184. package/src/builders/hcs2/hcs2-builder.ts +302 -9
  185. package/src/builders/hcs6/hcs6-builder.ts +79 -4
  186. package/src/builders/inscriber/inscriber-builder.ts +235 -2
  187. package/src/hcs10/HCS10Client.ts +1 -1
  188. package/src/index.ts +5 -1
  189. package/src/lib/zod-render/schema-extension.ts +0 -1
  190. package/src/signing/bytes-registry.ts +501 -0
  191. package/src/signing/signer-provider.ts +120 -0
  192. package/src/tools/hcs2/CreateRegistryTool.ts +30 -5
  193. package/src/tools/hcs2/DeleteEntryTool.ts +16 -2
  194. package/src/tools/hcs2/MigrateRegistryTool.ts +16 -2
  195. package/src/tools/hcs2/QueryRegistryTool.ts +11 -2
  196. package/src/tools/hcs2/RegisterEntryTool.ts +17 -3
  197. package/src/tools/hcs2/UpdateEntryTool.ts +16 -2
  198. package/src/tools/hcs6/CreateDynamicRegistryTool.ts +17 -3
  199. package/src/tools/hcs6/RegisterDynamicHashinalTool.ts +17 -3
  200. package/src/tools/hcs6/UpdateDynamicHashinalTool.ts +17 -3
  201. package/src/tools/inscriber/InscribeFromBufferTool.ts +126 -21
  202. package/src/tools/inscriber/InscribeFromFileTool.ts +10 -13
  203. package/src/tools/inscriber/InscribeFromUrlTool.ts +15 -11
  204. package/src/tools/inscriber/InscribeHashinalTool.ts +40 -168
  205. package/src/tools/inscriber/RetrieveInscriptionTool.ts +15 -16
  206. package/src/types/inscription-response.ts +27 -0
  207. package/src/types/tx-results.ts +18 -0
  208. package/src/utils/CodedError.ts +8 -0
  209. package/src/utils/Encryption.ts +0 -2
  210. package/src/utils/ensure-agent-has-hbar.ts +4 -5
  211. package/src/utils/inscription-utils.ts +53 -0
@@ -1,28 +1,189 @@
1
- import "@hashgraphonline/standards-sdk";
2
- import fs from "fs";
3
- import path__default from "path";
4
- const ENV_FILE_PATH = path__default.join(process.cwd(), ".env");
5
- async function updateEnvFile(envFilePath, variables) {
6
- let envContent = "";
7
- if (fs.existsSync(envFilePath)) {
8
- envContent = fs.readFileSync(envFilePath, "utf8");
9
- }
10
- const envLines = envContent.split("\n");
11
- const updatedLines = [...envLines];
12
- for (const [key, value] of Object.entries(variables)) {
13
- const lineIndex = updatedLines.findIndex(
14
- (line) => line.startsWith(`${key}=`)
15
- );
16
- if (lineIndex !== -1) {
17
- updatedLines[lineIndex] = `${key}=${value}`;
18
- } else {
19
- updatedLines.push(`${key}=${value}`);
20
- }
21
- }
22
- fs.writeFileSync(envFilePath, updatedLines.join("\n"));
1
+ import { getInnerSchema, hasRenderConfig, getRenderConfig, extractFieldMetadata } from "./standards-agent-kit.es44.js";
2
+ function extractRenderConfigs(schema) {
3
+ const fields = {};
4
+ const groups = {};
5
+ const order = [];
6
+ const metadata = {};
7
+ extractFromSchema(schema, "", fields, groups, order, metadata);
8
+ return {
9
+ fields,
10
+ groups: organizeFieldGroups(groups),
11
+ order: orderFields(order, fields),
12
+ metadata
13
+ };
14
+ }
15
+ function extractFromSchema(schema, pathPrefix, fields, groups, order, metadata) {
16
+ const innerSchema = getInnerSchema(schema);
17
+ const typeName = innerSchema._def?.typeName;
18
+ if (typeName === "ZodObject") {
19
+ extractFromObjectSchema(innerSchema, pathPrefix, fields, groups, order, metadata);
20
+ } else if (typeName === "ZodArray") {
21
+ extractFromArraySchema(innerSchema, pathPrefix, fields, groups, order, metadata);
22
+ } else {
23
+ extractFromPrimitiveSchema(schema, pathPrefix, fields, groups, order, metadata);
24
+ }
25
+ }
26
+ function extractFromObjectSchema(schema, pathPrefix, fields, groups, order, metadata) {
27
+ const shape = schema.shape;
28
+ if (hasRenderConfig(schema)) {
29
+ const config = getRenderConfig(schema);
30
+ if (config && pathPrefix) {
31
+ fields[pathPrefix] = config;
32
+ addToGroup(groups, config.ui?.group || "default", pathPrefix);
33
+ addToOrder(order, pathPrefix, config.ui?.order);
34
+ }
35
+ }
36
+ for (const [key, fieldSchema] of Object.entries(shape)) {
37
+ const fieldPath = pathPrefix ? `${pathPrefix}.${key}` : key;
38
+ extractFromSchema(fieldSchema, fieldPath, fields, groups, order, metadata);
39
+ }
40
+ }
41
+ function extractFromArraySchema(schema, pathPrefix, fields, groups, order, metadata) {
42
+ if (hasRenderConfig(schema)) {
43
+ const config = getRenderConfig(schema);
44
+ if (config) {
45
+ fields[pathPrefix] = config;
46
+ addToGroup(groups, config.ui?.group || "default", pathPrefix);
47
+ addToOrder(order, pathPrefix, config.ui?.order);
48
+ metadata[pathPrefix] = extractFieldMetadata(schema);
49
+ }
50
+ }
51
+ const elementSchema = schema._def.type;
52
+ if (elementSchema) {
53
+ const itemPath = `${pathPrefix}[]`;
54
+ extractFromSchema(elementSchema, itemPath, fields, groups, order, metadata);
55
+ }
56
+ }
57
+ function extractFromPrimitiveSchema(schema, pathPrefix, fields, groups, order, metadata) {
58
+ if (hasRenderConfig(schema)) {
59
+ const config = getRenderConfig(schema);
60
+ if (config) {
61
+ fields[pathPrefix] = config;
62
+ addToGroup(groups, config.ui?.group || "default", pathPrefix);
63
+ addToOrder(order, pathPrefix, config.ui?.order);
64
+ }
65
+ }
66
+ metadata[pathPrefix] = extractFieldMetadata(schema);
67
+ }
68
+ function addToGroup(groups, groupName, fieldPath) {
69
+ if (!groups[groupName]) {
70
+ groups[groupName] = [];
71
+ }
72
+ groups[groupName].push(fieldPath);
73
+ }
74
+ function addToOrder(order, fieldPath, explicitOrder) {
75
+ if (explicitOrder !== void 0) {
76
+ order.splice(explicitOrder, 0, fieldPath);
77
+ } else {
78
+ order.push(fieldPath);
79
+ }
80
+ }
81
+ function organizeFieldGroups(groups) {
82
+ const organized = {};
83
+ const groupPriority = ["default", "Keys & Security", "Token Settings", "Custom Fees"];
84
+ for (const groupName of groupPriority) {
85
+ if (groups[groupName]) {
86
+ organized[groupName] = groups[groupName];
87
+ }
88
+ }
89
+ for (const [groupName, fields] of Object.entries(groups)) {
90
+ if (!groupPriority.includes(groupName)) {
91
+ organized[groupName] = fields;
92
+ }
93
+ }
94
+ return organized;
95
+ }
96
+ function orderFields(order, fields) {
97
+ const fieldPriority = {
98
+ "tokenName": 1,
99
+ "tokenSymbol": 2,
100
+ "maxSupply": 3,
101
+ "supplyType": 4,
102
+ "treasuryAccountId": 5,
103
+ "memo": 6
104
+ };
105
+ return order.sort((a, b) => {
106
+ const aConfig = fields[a];
107
+ const bConfig = fields[b];
108
+ if (aConfig?.ui?.order !== void 0 && bConfig?.ui?.order !== void 0) {
109
+ return aConfig.ui.order - bConfig.ui.order;
110
+ }
111
+ if (aConfig?.ui?.order !== void 0) {
112
+ return -1;
113
+ }
114
+ if (bConfig?.ui?.order !== void 0) {
115
+ return 1;
116
+ }
117
+ const aPriority = fieldPriority[a] || 1e3;
118
+ const bPriority = fieldPriority[b] || 1e3;
119
+ if (aPriority !== bPriority) {
120
+ return aPriority - bPriority;
121
+ }
122
+ return a.localeCompare(b);
123
+ });
124
+ }
125
+ function generateFieldOrdering(schema) {
126
+ const extracted = extractRenderConfigs(schema);
127
+ const sections = {};
128
+ const sectionOrder = {
129
+ "default": 0,
130
+ "Basic Information": 1,
131
+ "Token Settings": 2,
132
+ "Keys & Security": 3,
133
+ "Custom Fees": 4,
134
+ "Advanced Settings": 5
135
+ };
136
+ for (const [groupName, fields] of Object.entries(extracted.groups)) {
137
+ const displayName = groupName === "default" ? "Basic Information" : groupName;
138
+ sections[displayName] = {
139
+ title: displayName,
140
+ fields,
141
+ order: sectionOrder[displayName] || 10
142
+ };
143
+ }
144
+ return {
145
+ sections,
146
+ fieldOrder: extracted.order
147
+ };
148
+ }
149
+ function createFieldConfigMap(schema) {
150
+ const extracted = extractRenderConfigs(schema);
151
+ const configMap = {};
152
+ for (const [fieldPath, renderConfig] of Object.entries(extracted.fields)) {
153
+ const metadata = extracted.metadata[fieldPath];
154
+ const path = fieldPath.split(".");
155
+ configMap[fieldPath] = {
156
+ renderConfig,
157
+ metadata,
158
+ path
159
+ };
160
+ }
161
+ return configMap;
162
+ }
163
+ function createSimpleConfig(schema) {
164
+ const extracted = extractRenderConfigs(schema);
165
+ const fields = [];
166
+ for (const fieldPath of extracted.order) {
167
+ const renderConfig = extracted.fields[fieldPath];
168
+ const metadata = extracted.metadata[fieldPath];
169
+ if (!renderConfig || !metadata) {
170
+ continue;
171
+ }
172
+ fields.push({
173
+ name: fieldPath,
174
+ type: metadata.type,
175
+ label: renderConfig.ui?.label || fieldPath,
176
+ required: metadata.required,
177
+ placeholder: renderConfig.ui?.placeholder,
178
+ options: renderConfig.options || metadata.options
179
+ });
180
+ }
181
+ return { fields };
23
182
  }
24
183
  export {
25
- ENV_FILE_PATH,
26
- updateEnvFile
184
+ createFieldConfigMap,
185
+ createSimpleConfig,
186
+ extractRenderConfigs,
187
+ generateFieldOrdering
27
188
  };
28
189
  //# sourceMappingURL=standards-agent-kit.es45.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es45.js","sources":["../../src/utils/state-tools.ts"],"sourcesContent":["import {\n HCS10Client,\n AgentBuilder,\n Logger,\n} from '@hashgraphonline/standards-sdk';\nimport fs from 'fs';\nimport path from 'path';\nimport { ensureAgentHasEnoughHbar } from './ensure-agent-has-hbar';\n\nexport const ENV_FILE_PATH = path.join(process.cwd(), '.env');\n\nexport interface AgentData {\n accountId: string;\n operatorId: string;\n inboundTopicId: string;\n outboundTopicId: string;\n client: HCS10Client;\n}\n\nexport interface RegistrationProgressData {\n registered: boolean;\n accountId?: string;\n privateKey?: string;\n publicKey?: string;\n inboundTopicId?: string;\n outboundTopicId?: string;\n}\n\nexport async function getAgentFromEnv(\n logger: Logger,\n baseClient: HCS10Client,\n agentName: string,\n envPrefix: string\n): Promise<AgentData | null> {\n const accountIdEnvVar = `${envPrefix}_ACCOUNT_ID`;\n const privateKeyEnvVar = `${envPrefix}_PRIVATE_KEY`;\n const inboundTopicIdEnvVar = `${envPrefix}_INBOUND_TOPIC_ID`;\n const outboundTopicIdEnvVar = `${envPrefix}_OUTBOUND_TOPIC_ID`;\n\n const accountId = process.env[accountIdEnvVar];\n const privateKey = process.env[privateKeyEnvVar];\n const inboundTopicId = process.env[inboundTopicIdEnvVar];\n const outboundTopicId = process.env[outboundTopicIdEnvVar];\n\n if (!accountId || !privateKey || !inboundTopicId || !outboundTopicId) {\n logger.info(`${agentName} agent not found in environment variables`);\n return null;\n }\n\n logger.info(`${agentName} agent found in environment variables`);\n logger.info(`${agentName} account ID: ${accountId}`);\n logger.info(`${agentName} inbound topic ID: ${inboundTopicId}`);\n logger.info(`${agentName} outbound topic ID: ${outboundTopicId}`);\n\n const client = new HCS10Client({\n network: 'testnet',\n operatorId: accountId,\n operatorPrivateKey: privateKey,\n guardedRegistryBaseUrl: process.env.REGISTRY_URL,\n prettyPrint: true,\n logLevel: 'debug',\n });\n\n await ensureAgentHasEnoughHbar(logger, baseClient, accountId, agentName);\n\n return {\n accountId,\n operatorId: `${inboundTopicId}@${accountId}`,\n inboundTopicId,\n outboundTopicId,\n client,\n };\n}\n\nexport async function createAgent(\n logger: Logger,\n baseClient: HCS10Client,\n agentName: string,\n agentBuilder: AgentBuilder,\n envPrefix: string\n): Promise<AgentData | null> {\n try {\n logger.info(`Creating ${agentName} agent...`);\n\n const result = await baseClient.createAndRegisterAgent(agentBuilder);\n\n if (!result.metadata) {\n logger.error(`${agentName} agent creation failed`);\n return null;\n }\n\n logger.info(`${agentName} agent created successfully`);\n logger.info(`${agentName} account ID: ${result.metadata.accountId}`);\n logger.info(`${agentName} private key: ${result.metadata.privateKey}`);\n logger.info(\n `${agentName} inbound topic ID: ${result.metadata.inboundTopicId}`\n );\n logger.info(\n `${agentName} outbound topic ID: ${result.metadata.outboundTopicId}`\n );\n\n const envVars = {\n [`${envPrefix}_ACCOUNT_ID`]: result.metadata.accountId,\n [`${envPrefix}_PRIVATE_KEY`]: result.metadata.privateKey,\n [`${envPrefix}_INBOUND_TOPIC_ID`]: result.metadata.inboundTopicId,\n [`${envPrefix}_OUTBOUND_TOPIC_ID`]: result.metadata.outboundTopicId,\n };\n\n await updateEnvFile(ENV_FILE_PATH, envVars);\n\n const client = new HCS10Client({\n network: 'testnet',\n operatorId: result.metadata.accountId,\n operatorPrivateKey: result.metadata.privateKey,\n guardedRegistryBaseUrl: process.env.REGISTRY_URL,\n prettyPrint: true,\n logLevel: 'debug',\n });\n\n return {\n accountId: result.metadata.accountId,\n operatorId: `${result.metadata.inboundTopicId}@${result.metadata.accountId}`,\n inboundTopicId: result.metadata.inboundTopicId,\n outboundTopicId: result.metadata.outboundTopicId,\n client,\n };\n } catch (error) {\n logger.error(`Error creating ${agentName} agent:`, error, { baseClient });\n return null;\n }\n}\n\nexport async function updateEnvFile(\n envFilePath: string,\n variables: Record<string, string>\n): Promise<void> {\n let envContent = '';\n\n if (fs.existsSync(envFilePath)) {\n envContent = fs.readFileSync(envFilePath, 'utf8');\n }\n\n const envLines = envContent.split('\\n');\n const updatedLines = [...envLines];\n\n for (const [key, value] of Object.entries(variables)) {\n const lineIndex = updatedLines.findIndex((line) =>\n line.startsWith(`${key}=`)\n );\n\n if (lineIndex !== -1) {\n updatedLines[lineIndex] = `${key}=${value}`;\n } else {\n updatedLines.push(`${key}=${value}`);\n }\n }\n\n fs.writeFileSync(envFilePath, updatedLines.join('\\n'));\n}\n"],"names":["path"],"mappings":";;;AASO,MAAM,gBAAgBA,cAAK,KAAK,QAAQ,IAAA,GAAO,MAAM;AA2H5D,eAAsB,cACpB,aACA,WACe;AACf,MAAI,aAAa;AAEjB,MAAI,GAAG,WAAW,WAAW,GAAG;AAC9B,iBAAa,GAAG,aAAa,aAAa,MAAM;AAAA,EAClD;AAEA,QAAM,WAAW,WAAW,MAAM,IAAI;AACtC,QAAM,eAAe,CAAC,GAAG,QAAQ;AAEjC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,UAAM,YAAY,aAAa;AAAA,MAAU,CAAC,SACxC,KAAK,WAAW,GAAG,GAAG,GAAG;AAAA,IAAA;AAG3B,QAAI,cAAc,IAAI;AACpB,mBAAa,SAAS,IAAI,GAAG,GAAG,IAAI,KAAK;AAAA,IAC3C,OAAO;AACL,mBAAa,KAAK,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,IACrC;AAAA,EACF;AAEA,KAAG,cAAc,aAAa,aAAa,KAAK,IAAI,CAAC;AACvD;"}
1
+ {"version":3,"file":"standards-agent-kit.es45.js","sources":["../../src/lib/zod-render/config-extractor.ts"],"sourcesContent":["import { ZodType } from 'zod';\n\n/**\n * Type definitions for Zod internal structures\n */\ninterface ZodDef {\n typeName: string;\n type?: ZodType<unknown>;\n}\n\n/**\n * Type definition for Zod object schema with shape property\n */\ninterface ZodObjectSchema {\n _def: ZodDef;\n shape: Record<string, ZodType<unknown>>;\n}\n\n/**\n * Type definition for Zod array schema with element type\n */\ninterface ZodArraySchema {\n _def: ZodDef & {\n type: ZodType<unknown>;\n };\n}\n\n/**\n * Type definition for field config map entries\n */\ninterface FieldConfigMapEntry {\n renderConfig: RenderConfigSchema;\n metadata: FieldMetadata;\n path: string[];\n}\n\n\n/**\n * Type definition for simple field configuration\n */\ninterface SimpleFieldConfig {\n name: string;\n type: FormFieldType;\n label: string;\n required: boolean;\n placeholder?: string;\n options?: Array<{ value: unknown; label: string }>;\n}\nimport {\n RenderConfigSchema,\n ExtractedRenderConfig,\n FieldMetadata,\n FormFieldType\n} from './types';\nimport {\n hasRenderConfig,\n getRenderConfig,\n extractFieldMetadata,\n getInnerSchema\n} from './schema-extension';\n\n/**\n * Extracts render configurations from a Zod schema and all nested schemas\n */\nexport function extractRenderConfigs(schema: ZodType<unknown>): ExtractedRenderConfig {\n const fields: Record<string, RenderConfigSchema> = {};\n const groups: Record<string, string[]> = {};\n const order: string[] = [];\n const metadata: Record<string, FieldMetadata> = {};\n\n extractFromSchema(schema, '', fields, groups, order, metadata);\n\n return {\n fields,\n groups: organizeFieldGroups(groups),\n order: orderFields(order, fields),\n metadata\n };\n}\n\n/**\n * Recursively extracts render configurations from schema and nested schemas\n */\nfunction extractFromSchema(\n schema: ZodType<unknown>,\n pathPrefix: string,\n fields: Record<string, RenderConfigSchema>,\n groups: Record<string, string[]>,\n order: string[],\n metadata: Record<string, FieldMetadata>\n): void {\n const innerSchema = getInnerSchema(schema);\n const typeName = (innerSchema._def as ZodDef)?.typeName;\n\n if (typeName === 'ZodObject') {\n extractFromObjectSchema(innerSchema as unknown as ZodObjectSchema, pathPrefix, fields, groups, order, metadata);\n } else if (typeName === 'ZodArray') {\n extractFromArraySchema(innerSchema as unknown as ZodArraySchema, pathPrefix, fields, groups, order, metadata);\n } else {\n extractFromPrimitiveSchema(schema, pathPrefix, fields, groups, order, metadata);\n }\n}\n\n/**\n * Extracts configurations from ZodObject schemas\n */\nfunction extractFromObjectSchema(\n schema: ZodObjectSchema,\n pathPrefix: string,\n fields: Record<string, RenderConfigSchema>,\n groups: Record<string, string[]>,\n order: string[],\n metadata: Record<string, FieldMetadata>\n): void {\n const shape = schema.shape;\n\n if (hasRenderConfig(schema)) {\n const config = getRenderConfig(schema);\n if (config && pathPrefix) {\n fields[pathPrefix] = config;\n addToGroup(groups, config.ui?.group || 'default', pathPrefix);\n addToOrder(order, pathPrefix, config.ui?.order);\n }\n }\n\n for (const [key, fieldSchema] of Object.entries(shape)) {\n const fieldPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n extractFromSchema(fieldSchema as ZodType<unknown>, fieldPath, fields, groups, order, metadata);\n }\n}\n\n/**\n * Extracts configurations from ZodArray schemas\n */\nfunction extractFromArraySchema(\n schema: ZodArraySchema,\n pathPrefix: string,\n fields: Record<string, RenderConfigSchema>,\n groups: Record<string, string[]>,\n order: string[],\n metadata: Record<string, FieldMetadata>\n): void {\n if (hasRenderConfig(schema)) {\n const config = getRenderConfig(schema);\n if (config) {\n fields[pathPrefix] = config;\n addToGroup(groups, config.ui?.group || 'default', pathPrefix);\n addToOrder(order, pathPrefix, config.ui?.order);\n metadata[pathPrefix] = extractFieldMetadata(schema);\n }\n }\n\n const elementSchema = schema._def.type;\n if (elementSchema) {\n const itemPath = `${pathPrefix}[]`;\n extractFromSchema(elementSchema, itemPath, fields, groups, order, metadata);\n }\n}\n\n/**\n * Extracts configurations from primitive schemas\n */\nfunction extractFromPrimitiveSchema(\n schema: ZodType<unknown>,\n pathPrefix: string,\n fields: Record<string, RenderConfigSchema>,\n groups: Record<string, string[]>,\n order: string[],\n metadata: Record<string, FieldMetadata>\n): void {\n if (hasRenderConfig(schema)) {\n const config = getRenderConfig(schema);\n if (config) {\n fields[pathPrefix] = config;\n addToGroup(groups, config.ui?.group || 'default', pathPrefix);\n addToOrder(order, pathPrefix, config.ui?.order);\n }\n }\n\n metadata[pathPrefix] = extractFieldMetadata(schema);\n}\n\n/**\n * Adds a field to a group\n */\nfunction addToGroup(groups: Record<string, string[]>, groupName: string, fieldPath: string): void {\n if (!groups[groupName]) {\n groups[groupName] = [];\n }\n groups[groupName].push(fieldPath);\n}\n\n/**\n * Adds a field to the order array considering explicit order values\n */\nfunction addToOrder(order: string[], fieldPath: string, explicitOrder?: number): void {\n if (explicitOrder !== undefined) {\n order.splice(explicitOrder, 0, fieldPath);\n } else {\n order.push(fieldPath);\n }\n}\n\n/**\n * Organizes field groups with proper ordering\n */\nfunction organizeFieldGroups(groups: Record<string, string[]>): Record<string, string[]> {\n const organized: Record<string, string[]> = {};\n const groupPriority = ['default', 'Keys & Security', 'Token Settings', 'Custom Fees'];\n\n for (const groupName of groupPriority) {\n if (groups[groupName]) {\n organized[groupName] = groups[groupName];\n }\n }\n\n for (const [groupName, fields] of Object.entries(groups)) {\n if (!groupPriority.includes(groupName)) {\n organized[groupName] = fields;\n }\n }\n\n return organized;\n}\n\n/**\n * Orders fields based on explicit order values and logical grouping\n */\nfunction orderFields(order: string[], fields: Record<string, RenderConfigSchema>): string[] {\n const fieldPriority: Record<string, number> = {\n 'tokenName': 1,\n 'tokenSymbol': 2,\n 'maxSupply': 3,\n 'supplyType': 4,\n 'treasuryAccountId': 5,\n 'memo': 6,\n };\n\n return order.sort((a, b) => {\n const aConfig = fields[a];\n const bConfig = fields[b];\n\n if (aConfig?.ui?.order !== undefined && bConfig?.ui?.order !== undefined) {\n return aConfig.ui.order - bConfig.ui.order;\n }\n\n if (aConfig?.ui?.order !== undefined) {\n return -1;\n }\n if (bConfig?.ui?.order !== undefined) {\n return 1;\n }\n\n const aPriority = fieldPriority[a] || 1000;\n const bPriority = fieldPriority[b] || 1000;\n\n if (aPriority !== bPriority) {\n return aPriority - bPriority;\n }\n\n return a.localeCompare(b);\n });\n}\n\n/**\n * Generates field ordering metadata for complex forms\n */\nexport function generateFieldOrdering(schema: ZodType<unknown>): {\n sections: Record<string, { title: string; fields: string[]; order: number }>;\n fieldOrder: string[];\n} {\n const extracted = extractRenderConfigs(schema);\n const sections: Record<string, { title: string; fields: string[]; order: number }> = {};\n\n const sectionOrder: Record<string, number> = {\n 'default': 0,\n 'Basic Information': 1,\n 'Token Settings': 2,\n 'Keys & Security': 3,\n 'Custom Fees': 4,\n 'Advanced Settings': 5\n };\n\n for (const [groupName, fields] of Object.entries(extracted.groups)) {\n const displayName = groupName === 'default' ? 'Basic Information' : groupName;\n sections[displayName] = {\n title: displayName,\n fields,\n order: sectionOrder[displayName] || 10\n };\n }\n\n return {\n sections,\n fieldOrder: extracted.order\n };\n}\n\n/**\n * Creates a field configuration map for form builders\n */\nexport function createFieldConfigMap(schema: ZodType<unknown>): Record<string, FieldConfigMapEntry> {\n const extracted = extractRenderConfigs(schema);\n const configMap: Record<string, FieldConfigMapEntry> = {};\n\n for (const [fieldPath, renderConfig] of Object.entries(extracted.fields)) {\n const metadata = extracted.metadata[fieldPath];\n const path = fieldPath.split('.');\n\n configMap[fieldPath] = {\n renderConfig,\n metadata,\n path\n };\n }\n\n return configMap;\n}\n\n\n\n\n/**\n * Creates a simplified configuration for basic form rendering\n */\nexport function createSimpleConfig(schema: ZodType<unknown>): {\n fields: Array<SimpleFieldConfig>;\n} {\n const extracted = extractRenderConfigs(schema);\n const fields = [];\n\n for (const fieldPath of extracted.order) {\n const renderConfig = extracted.fields[fieldPath];\n const metadata = extracted.metadata[fieldPath];\n\n if (!renderConfig || !metadata) {\n continue;\n }\n\n fields.push({\n name: fieldPath,\n type: metadata.type,\n label: renderConfig.ui?.label || fieldPath,\n required: metadata.required,\n placeholder: renderConfig.ui?.placeholder,\n options: renderConfig.options || metadata.options\n });\n }\n\n return { fields };\n}"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- function encryptMessage(message) {
2
- return message;
1
+ function isFormValidatable(tool) {
2
+ return tool !== null && typeof tool === "object" && "shouldGenerateForm" in tool && "getFormSchema" in tool && "getEssentialFields" in tool && "isFieldEmpty" in tool && typeof tool.shouldGenerateForm === "function" && typeof tool.getFormSchema === "function" && typeof tool.getEssentialFields === "function" && typeof tool.isFieldEmpty === "function";
3
3
  }
4
4
  export {
5
- encryptMessage
5
+ isFormValidatable
6
6
  };
7
7
  //# sourceMappingURL=standards-agent-kit.es46.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es46.js","sources":["../../src/utils/Encryption.ts"],"sourcesContent":["\n/**\n * Placeholder for encryption functionality.\n * Currently, encryption is disabled. The useEncryption flag is false by default.\n * TODO: Implement actual encryption/decryption logic.\n */\n\nexport function encryptMessage(message: string): string {\n // TODO: Add encryption logic here if useEncryption flag is true.\n return message; // currently returns plaintext.\n}\n\nexport function decryptMessage(encryptedMessage: string): string {\n // TODO: Add decryption logic here.\n return encryptedMessage;\n}\n"],"names":[],"mappings":"AAOO,SAAS,eAAe,SAAyB;AAEpD,SAAO;AACX;"}
1
+ {"version":3,"file":"standards-agent-kit.es46.js","sources":["../../src/interfaces/FormValidatable.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Interface for tools that can provide custom form validation logic\n */\nexport interface FormValidatable {\n /**\n * Determines if a form should be generated for the given input\n * @param input The input data to validate\n * @returns true if a form should be generated, false if the tool can execute\n */\n shouldGenerateForm(input: unknown): boolean;\n\n /**\n * Returns the schema to use for form generation\n * This allows tools to provide a focused schema for forms\n * @returns The schema to use for generating forms\n */\n getFormSchema(): z.ZodSchema;\n\n /**\n * Defines which fields are essential for this tool\n * Essential fields are always shown in forms even if marked as optional\n * @returns Array of field names that are essential for user experience\n */\n getEssentialFields(): string[];\n\n /**\n * Determines if a field value should be considered empty\n * Allows tools to define custom empty logic for their specific data types\n * @param fieldName The name of the field\n * @param value The value to check\n * @returns true if the field should be considered empty\n */\n isFieldEmpty(fieldName: string, value: unknown): boolean;\n}\n\n/**\n * Type guard to check if a tool implements FormValidatable\n */\nexport function isFormValidatable(tool: unknown): tool is FormValidatable {\n return (\n tool !== null &&\n typeof tool === 'object' &&\n 'shouldGenerateForm' in tool &&\n 'getFormSchema' in tool &&\n 'getEssentialFields' in tool &&\n 'isFieldEmpty' in tool &&\n typeof (tool as FormValidatable).shouldGenerateForm === 'function' &&\n typeof (tool as FormValidatable).getFormSchema === 'function' &&\n typeof (tool as FormValidatable).getEssentialFields === 'function' &&\n typeof (tool as FormValidatable).isFieldEmpty === 'function'\n );\n}"],"names":[],"mappings":"AAwCO,SAAS,kBAAkB,MAAwC;AACxE,SACE,SAAS,QACT,OAAO,SAAS,YAChB,wBAAwB,QACxB,mBAAmB,QACnB,wBAAwB,QACxB,kBAAkB,QAClB,OAAQ,KAAyB,uBAAuB,cACxD,OAAQ,KAAyB,kBAAkB,cACnD,OAAQ,KAAyB,uBAAuB,cACxD,OAAQ,KAAyB,iBAAiB;AAEtD;"}
@@ -1,57 +1,28 @@
1
- import { ContentResolverRegistry } from "@hashgraphonline/standards-sdk";
2
- async function resolveContent(input, providedMimeType, providedFileName) {
3
- const trimmedInput = input.trim();
4
- const resolver = ContentResolverRegistry.getResolver();
5
- if (!resolver) {
6
- return handleDirectContent(
7
- trimmedInput,
8
- providedMimeType,
9
- providedFileName
10
- );
11
- }
12
- const referenceId = resolver.extractReferenceId(trimmedInput);
13
- if (referenceId) {
14
- try {
15
- const resolution = await resolver.resolveReference(referenceId);
16
- return {
17
- buffer: resolution.content,
18
- mimeType: resolution.metadata?.mimeType || providedMimeType,
19
- fileName: resolution.metadata?.fileName || providedFileName,
20
- wasReference: true
21
- };
22
- } catch (error) {
23
- const errorMsg = error instanceof Error ? error.message : "Unknown error resolving reference";
24
- throw new Error(`Reference resolution failed: ${errorMsg}`);
25
- }
1
+ import "@hashgraphonline/standards-sdk";
2
+ import fs from "fs";
3
+ import path__default from "path";
4
+ const ENV_FILE_PATH = path__default.join(process.cwd(), ".env");
5
+ async function updateEnvFile(envFilePath, variables) {
6
+ let envContent = "";
7
+ if (fs.existsSync(envFilePath)) {
8
+ envContent = fs.readFileSync(envFilePath, "utf8");
26
9
  }
27
- return handleDirectContent(trimmedInput, providedMimeType, providedFileName);
28
- }
29
- function handleDirectContent(input, providedMimeType, providedFileName) {
30
- const isValidBase64 = /^[A-Za-z0-9+/]*={0,2}$/.test(input);
31
- if (isValidBase64) {
32
- try {
33
- const buffer2 = Buffer.from(input, "base64");
34
- return {
35
- buffer: buffer2,
36
- mimeType: providedMimeType,
37
- fileName: providedFileName,
38
- wasReference: false
39
- };
40
- } catch (error) {
41
- throw new Error(
42
- "Failed to decode base64 data. Please ensure the data is properly encoded."
43
- );
10
+ const envLines = envContent.split("\n");
11
+ const updatedLines = [...envLines];
12
+ for (const [key, value] of Object.entries(variables)) {
13
+ const lineIndex = updatedLines.findIndex(
14
+ (line) => line.startsWith(`${key}=`)
15
+ );
16
+ if (lineIndex !== -1) {
17
+ updatedLines[lineIndex] = `${key}=${value}`;
18
+ } else {
19
+ updatedLines.push(`${key}=${value}`);
44
20
  }
45
21
  }
46
- const buffer = Buffer.from(input, "utf8");
47
- return {
48
- buffer,
49
- mimeType: providedMimeType || "text/plain",
50
- fileName: providedFileName,
51
- wasReference: false
52
- };
22
+ fs.writeFileSync(envFilePath, updatedLines.join("\n"));
53
23
  }
54
24
  export {
55
- resolveContent
25
+ ENV_FILE_PATH,
26
+ updateEnvFile
56
27
  };
57
28
  //# sourceMappingURL=standards-agent-kit.es47.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es47.js","sources":["../../src/utils/content-resolver.ts"],"sourcesContent":["import { ContentResolverRegistry } from '@hashgraphonline/standards-sdk';\n\nexport interface ContentResolutionResult {\n buffer: Buffer;\n mimeType?: string;\n fileName?: string;\n wasReference?: boolean;\n}\n\n/**\n * Resolves content from various input formats (content-ref, base64, plain text)\n */\nexport async function resolveContent(\n input: string,\n providedMimeType?: string,\n providedFileName?: string\n): Promise<ContentResolutionResult> {\n const trimmedInput = input.trim();\n\n const resolver = ContentResolverRegistry.getResolver();\n\n if (!resolver) {\n return handleDirectContent(\n trimmedInput,\n providedMimeType,\n providedFileName\n );\n }\n\n const referenceId = resolver.extractReferenceId(trimmedInput);\n\n if (referenceId) {\n try {\n const resolution = await resolver.resolveReference(referenceId);\n\n return {\n buffer: resolution.content,\n mimeType: resolution.metadata?.mimeType || providedMimeType,\n fileName: resolution.metadata?.fileName || providedFileName,\n wasReference: true,\n };\n } catch (error) {\n const errorMsg =\n error instanceof Error\n ? error.message\n : 'Unknown error resolving reference';\n throw new Error(`Reference resolution failed: ${errorMsg}`);\n }\n }\n\n return handleDirectContent(trimmedInput, providedMimeType, providedFileName);\n}\n\n/**\n * Handles direct content (base64 or plain text)\n */\nfunction handleDirectContent(\n input: string,\n providedMimeType?: string,\n providedFileName?: string\n): ContentResolutionResult {\n const isValidBase64 = /^[A-Za-z0-9+/]*={0,2}$/.test(input);\n\n if (isValidBase64) {\n try {\n const buffer = Buffer.from(input, 'base64');\n return {\n buffer,\n mimeType: providedMimeType,\n fileName: providedFileName,\n wasReference: false,\n };\n } catch (error) {\n throw new Error(\n 'Failed to decode base64 data. Please ensure the data is properly encoded.'\n );\n }\n }\n\n const buffer = Buffer.from(input, 'utf8');\n return {\n buffer,\n mimeType: providedMimeType || 'text/plain',\n fileName: providedFileName,\n wasReference: false,\n };\n}\n"],"names":["buffer"],"mappings":";AAYA,eAAsB,eACpB,OACA,kBACA,kBACkC;AAClC,QAAM,eAAe,MAAM,KAAA;AAE3B,QAAM,WAAW,wBAAwB,YAAA;AAEzC,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc,SAAS,mBAAmB,YAAY;AAE5D,MAAI,aAAa;AACf,QAAI;AACF,YAAM,aAAa,MAAM,SAAS,iBAAiB,WAAW;AAE9D,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,QACnB,UAAU,WAAW,UAAU,YAAY;AAAA,QAC3C,UAAU,WAAW,UAAU,YAAY;AAAA,QAC3C,cAAc;AAAA,MAAA;AAAA,IAElB,SAAS,OAAO;AACd,YAAM,WACJ,iBAAiB,QACb,MAAM,UACN;AACN,YAAM,IAAI,MAAM,gCAAgC,QAAQ,EAAE;AAAA,IAC5D;AAAA,EACF;AAEA,SAAO,oBAAoB,cAAc,kBAAkB,gBAAgB;AAC7E;AAKA,SAAS,oBACP,OACA,kBACA,kBACyB;AACzB,QAAM,gBAAgB,yBAAyB,KAAK,KAAK;AAEzD,MAAI,eAAe;AACjB,QAAI;AACF,YAAMA,UAAS,OAAO,KAAK,OAAO,QAAQ;AAC1C,aAAO;AAAA,QACL,QAAAA;AAAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,QACV,cAAc;AAAA,MAAA;AAAA,IAElB,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEA,QAAM,SAAS,OAAO,KAAK,OAAO,MAAM;AACxC,SAAO;AAAA,IACL;AAAA,IACA,UAAU,oBAAoB;AAAA,IAC9B,UAAU;AAAA,IACV,cAAc;AAAA,EAAA;AAElB;"}
1
+ {"version":3,"file":"standards-agent-kit.es47.js","sources":["../../src/utils/state-tools.ts"],"sourcesContent":["import {\n HCS10Client,\n AgentBuilder,\n Logger,\n} from '@hashgraphonline/standards-sdk';\nimport fs from 'fs';\nimport path from 'path';\nimport { ensureAgentHasEnoughHbar } from './ensure-agent-has-hbar';\n\nexport const ENV_FILE_PATH = path.join(process.cwd(), '.env');\n\nexport interface AgentData {\n accountId: string;\n operatorId: string;\n inboundTopicId: string;\n outboundTopicId: string;\n client: HCS10Client;\n}\n\nexport interface RegistrationProgressData {\n registered: boolean;\n accountId?: string;\n privateKey?: string;\n publicKey?: string;\n inboundTopicId?: string;\n outboundTopicId?: string;\n}\n\nexport async function getAgentFromEnv(\n logger: Logger,\n baseClient: HCS10Client,\n agentName: string,\n envPrefix: string\n): Promise<AgentData | null> {\n const accountIdEnvVar = `${envPrefix}_ACCOUNT_ID`;\n const privateKeyEnvVar = `${envPrefix}_PRIVATE_KEY`;\n const inboundTopicIdEnvVar = `${envPrefix}_INBOUND_TOPIC_ID`;\n const outboundTopicIdEnvVar = `${envPrefix}_OUTBOUND_TOPIC_ID`;\n\n const accountId = process.env[accountIdEnvVar];\n const privateKey = process.env[privateKeyEnvVar];\n const inboundTopicId = process.env[inboundTopicIdEnvVar];\n const outboundTopicId = process.env[outboundTopicIdEnvVar];\n\n if (!accountId || !privateKey || !inboundTopicId || !outboundTopicId) {\n logger.info(`${agentName} agent not found in environment variables`);\n return null;\n }\n\n logger.info(`${agentName} agent found in environment variables`);\n logger.info(`${agentName} account ID: ${accountId}`);\n logger.info(`${agentName} inbound topic ID: ${inboundTopicId}`);\n logger.info(`${agentName} outbound topic ID: ${outboundTopicId}`);\n\n const client = new HCS10Client({\n network: 'testnet',\n operatorId: accountId,\n operatorPrivateKey: privateKey,\n guardedRegistryBaseUrl: process.env.REGISTRY_URL,\n prettyPrint: true,\n logLevel: 'debug',\n });\n\n await ensureAgentHasEnoughHbar(logger, baseClient, accountId, agentName);\n\n return {\n accountId,\n operatorId: `${inboundTopicId}@${accountId}`,\n inboundTopicId,\n outboundTopicId,\n client,\n };\n}\n\nexport async function createAgent(\n logger: Logger,\n baseClient: HCS10Client,\n agentName: string,\n agentBuilder: AgentBuilder,\n envPrefix: string\n): Promise<AgentData | null> {\n try {\n logger.info(`Creating ${agentName} agent...`);\n\n const result = await baseClient.createAndRegisterAgent(agentBuilder);\n\n if (!result.metadata) {\n logger.error(`${agentName} agent creation failed`);\n return null;\n }\n\n logger.info(`${agentName} agent created successfully`);\n logger.info(`${agentName} account ID: ${result.metadata.accountId}`);\n logger.info(`${agentName} private key: ${result.metadata.privateKey}`);\n logger.info(\n `${agentName} inbound topic ID: ${result.metadata.inboundTopicId}`\n );\n logger.info(\n `${agentName} outbound topic ID: ${result.metadata.outboundTopicId}`\n );\n\n const envVars = {\n [`${envPrefix}_ACCOUNT_ID`]: result.metadata.accountId,\n [`${envPrefix}_PRIVATE_KEY`]: result.metadata.privateKey,\n [`${envPrefix}_INBOUND_TOPIC_ID`]: result.metadata.inboundTopicId,\n [`${envPrefix}_OUTBOUND_TOPIC_ID`]: result.metadata.outboundTopicId,\n };\n\n await updateEnvFile(ENV_FILE_PATH, envVars);\n\n const client = new HCS10Client({\n network: 'testnet',\n operatorId: result.metadata.accountId,\n operatorPrivateKey: result.metadata.privateKey,\n guardedRegistryBaseUrl: process.env.REGISTRY_URL,\n prettyPrint: true,\n logLevel: 'debug',\n });\n\n return {\n accountId: result.metadata.accountId,\n operatorId: `${result.metadata.inboundTopicId}@${result.metadata.accountId}`,\n inboundTopicId: result.metadata.inboundTopicId,\n outboundTopicId: result.metadata.outboundTopicId,\n client,\n };\n } catch (error) {\n logger.error(`Error creating ${agentName} agent:`, error, { baseClient });\n return null;\n }\n}\n\nexport async function updateEnvFile(\n envFilePath: string,\n variables: Record<string, string>\n): Promise<void> {\n let envContent = '';\n\n if (fs.existsSync(envFilePath)) {\n envContent = fs.readFileSync(envFilePath, 'utf8');\n }\n\n const envLines = envContent.split('\\n');\n const updatedLines = [...envLines];\n\n for (const [key, value] of Object.entries(variables)) {\n const lineIndex = updatedLines.findIndex((line) =>\n line.startsWith(`${key}=`)\n );\n\n if (lineIndex !== -1) {\n updatedLines[lineIndex] = `${key}=${value}`;\n } else {\n updatedLines.push(`${key}=${value}`);\n }\n }\n\n fs.writeFileSync(envFilePath, updatedLines.join('\\n'));\n}\n"],"names":["path"],"mappings":";;;AASO,MAAM,gBAAgBA,cAAK,KAAK,QAAQ,IAAA,GAAO,MAAM;AA2H5D,eAAsB,cACpB,aACA,WACe;AACf,MAAI,aAAa;AAEjB,MAAI,GAAG,WAAW,WAAW,GAAG;AAC9B,iBAAa,GAAG,aAAa,aAAa,MAAM;AAAA,EAClD;AAEA,QAAM,WAAW,WAAW,MAAM,IAAI;AACtC,QAAM,eAAe,CAAC,GAAG,QAAQ;AAEjC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACpD,UAAM,YAAY,aAAa;AAAA,MAAU,CAAC,SACxC,KAAK,WAAW,GAAG,GAAG,GAAG;AAAA,IAAA;AAG3B,QAAI,cAAc,IAAI;AACpB,mBAAa,SAAS,IAAI,GAAG,GAAG,IAAI,KAAK;AAAA,IAC3C,OAAO;AACL,mBAAa,KAAK,GAAG,GAAG,IAAI,KAAK,EAAE;AAAA,IACrC;AAAA,EACF;AAEA,KAAG,cAAc,aAAa,aAAa,KAAK,IAAI,CAAC;AACvD;"}
@@ -1,6 +1,11 @@
1
- import { z } from "zod";
2
- const contentRefSchema = z.string().regex(/^content-ref:[a-zA-Z0-9_-]+$/, 'Content reference must be in format "content-ref:[alphanumeric-id]"').describe('Content reference in format "content-ref:[id]"');
1
+ class CodedError extends Error {
2
+ constructor(code, message) {
3
+ super(message);
4
+ this.code = code;
5
+ Object.setPrototypeOf(this, CodedError.prototype);
6
+ }
7
+ }
3
8
  export {
4
- contentRefSchema
9
+ CodedError
5
10
  };
6
11
  //# sourceMappingURL=standards-agent-kit.es48.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es48.js","sources":["../../src/validation/content-ref-schemas.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * Validates content reference format\n */\nexport const contentRefSchema = z\n .string()\n .regex(/^content-ref:[a-zA-Z0-9_-]+$/, 'Content reference must be in format \"content-ref:[alphanumeric-id]\"')\n .describe('Content reference in format \"content-ref:[id]\"');\n\n/**\n * Validates content reference or returns error for dumber models\n */\nexport function validateContentRef(input: string): string {\n try {\n return contentRefSchema.parse(input);\n } catch (error) {\n throw new Error(`Invalid content reference format. Expected \"content-ref:[alphanumeric-id]\" but got \"${input}\"`);\n }\n}"],"names":[],"mappings":";AAKO,MAAM,mBAAmB,EAC7B,SACA,MAAM,gCAAgC,qEAAqE,EAC3G,SAAS,gDAAgD;"}
1
+ {"version":3,"file":"standards-agent-kit.es48.js","sources":["../../src/utils/CodedError.ts"],"sourcesContent":["export class CodedError extends Error {\n code: string;\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n Object.setPrototypeOf(this, CodedError.prototype);\n }\n}\n"],"names":[],"mappings":"AAAO,MAAM,mBAAmB,MAAM;AAAA,EAEpC,YAAY,MAAc,SAAiB;AACzC,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,WAAO,eAAe,MAAM,WAAW,SAAS;AAAA,EAClD;AACF;"}
@@ -1,43 +1,7 @@
1
- import { z } from "zod";
2
- const hip412FileSchema = z.object({
3
- uri: z.string().describe("URI of the file"),
4
- checksum: z.string().optional().describe("SHA-256 checksum of the file"),
5
- is_default_file: z.boolean().optional().describe("Whether this is the default file"),
6
- type: z.string().describe("MIME type of the file")
7
- });
8
- const hip412AttributeSchema = z.object({
9
- trait_type: z.string().describe("The trait type"),
10
- value: z.union([z.string(), z.number()]).describe("The trait value"),
11
- display_type: z.string().optional().describe("Display type for the attribute")
12
- });
13
- const hip412MetadataSchema = z.object({
14
- name: z.string().describe("Token name (required by HIP-412)"),
15
- description: z.string().describe("Human readable description (required by HIP-412)"),
16
- image: z.string().describe("Preview image URI (required by HIP-412)"),
17
- type: z.string().describe("MIME type (required by HIP-412)"),
18
- creator: z.string().optional().describe("Creator name or comma-separated names"),
19
- creatorDID: z.string().optional().describe("Decentralized identifier for creator"),
20
- checksum: z.string().optional().describe("SHA-256 checksum of the image"),
21
- format: z.string().optional().default("HIP412@2.0.0").describe("Metadata format version"),
22
- files: z.array(hip412FileSchema).optional().describe("Array of files for multi-file NFTs"),
23
- attributes: z.array(hip412AttributeSchema).optional().describe("NFT attributes/traits"),
24
- properties: z.record(z.unknown()).optional().describe("Additional properties")
25
- });
26
- function validateHIP412Metadata(metadata) {
27
- try {
28
- return hip412MetadataSchema.parse(metadata);
29
- } catch (error) {
30
- if (error instanceof z.ZodError) {
31
- const issues = error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
32
- throw new Error(`HIP-412 metadata validation failed: ${issues}`);
33
- }
34
- throw error;
35
- }
1
+ function encryptMessage(message) {
2
+ return message;
36
3
  }
37
4
  export {
38
- hip412AttributeSchema,
39
- hip412FileSchema,
40
- hip412MetadataSchema,
41
- validateHIP412Metadata
5
+ encryptMessage
42
6
  };
43
7
  //# sourceMappingURL=standards-agent-kit.es49.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-agent-kit.es49.js","sources":["../../src/validation/hip412-schemas.ts"],"sourcesContent":["import { z } from 'zod';\n\n/**\n * HIP-412 file schema for multi-file NFTs\n */\nexport const hip412FileSchema = z.object({\n uri: z.string().describe('URI of the file'),\n checksum: z.string().optional().describe('SHA-256 checksum of the file'),\n is_default_file: z.boolean().optional().describe('Whether this is the default file'),\n type: z.string().describe('MIME type of the file'),\n});\n\n/**\n * HIP-412 attribute schema for NFT traits\n */\nexport const hip412AttributeSchema = z.object({\n trait_type: z.string().describe('The trait type'),\n value: z.union([z.string(), z.number()]).describe('The trait value'),\n display_type: z.string().optional().describe('Display type for the attribute'),\n});\n\n/**\n * HIP-412 compliant metadata schema for Hedera NFTs\n */\nexport const hip412MetadataSchema = z.object({\n name: z.string().describe('Token name (required by HIP-412)'),\n description: z.string().describe('Human readable description (required by HIP-412)'),\n image: z.string().describe('Preview image URI (required by HIP-412)'),\n type: z.string().describe('MIME type (required by HIP-412)'),\n creator: z.string().optional().describe('Creator name or comma-separated names'),\n creatorDID: z.string().optional().describe('Decentralized identifier for creator'),\n checksum: z.string().optional().describe('SHA-256 checksum of the image'),\n format: z.string().optional().default('HIP412@2.0.0').describe('Metadata format version'),\n files: z.array(hip412FileSchema).optional().describe('Array of files for multi-file NFTs'),\n attributes: z.array(hip412AttributeSchema).optional().describe('NFT attributes/traits'),\n properties: z.record(z.unknown()).optional().describe('Additional properties'),\n});\n\n/**\n * Validates metadata against HIP-412 standard\n */\nexport function validateHIP412Metadata(metadata: unknown): z.infer<typeof hip412MetadataSchema> {\n try {\n return hip412MetadataSchema.parse(metadata);\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.errors.map(err => `${err.path.join('.')}: ${err.message}`).join('; ');\n throw new Error(`HIP-412 metadata validation failed: ${issues}`);\n }\n throw error;\n }\n}"],"names":[],"mappings":";AAKO,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,KAAK,EAAE,SAAS,SAAS,iBAAiB;AAAA,EAC1C,UAAU,EAAE,OAAA,EAAS,SAAA,EAAW,SAAS,8BAA8B;AAAA,EACvE,iBAAiB,EAAE,QAAA,EAAU,SAAA,EAAW,SAAS,kCAAkC;AAAA,EACnF,MAAM,EAAE,OAAA,EAAS,SAAS,uBAAuB;AACnD,CAAC;AAKM,MAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,YAAY,EAAE,SAAS,SAAS,gBAAgB;AAAA,EAChD,OAAO,EAAE,MAAM,CAAC,EAAE,OAAA,GAAU,EAAE,OAAA,CAAQ,CAAC,EAAE,SAAS,iBAAiB;AAAA,EACnE,cAAc,EAAE,OAAA,EAAS,SAAA,EAAW,SAAS,gCAAgC;AAC/E,CAAC;AAKM,MAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,EAAE,SAAS,SAAS,kCAAkC;AAAA,EAC5D,aAAa,EAAE,SAAS,SAAS,kDAAkD;AAAA,EACnF,OAAO,EAAE,SAAS,SAAS,yCAAyC;AAAA,EACpE,MAAM,EAAE,SAAS,SAAS,iCAAiC;AAAA,EAC3D,SAAS,EAAE,OAAA,EAAS,SAAA,EAAW,SAAS,uCAAuC;AAAA,EAC/E,YAAY,EAAE,OAAA,EAAS,SAAA,EAAW,SAAS,sCAAsC;AAAA,EACjF,UAAU,EAAE,OAAA,EAAS,SAAA,EAAW,SAAS,+BAA+B;AAAA,EACxE,QAAQ,EAAE,OAAA,EAAS,SAAA,EAAW,QAAQ,cAAc,EAAE,SAAS,yBAAyB;AAAA,EACxF,OAAO,EAAE,MAAM,gBAAgB,EAAE,SAAA,EAAW,SAAS,oCAAoC;AAAA,EACzF,YAAY,EAAE,MAAM,qBAAqB,EAAE,SAAA,EAAW,SAAS,uBAAuB;AAAA,EACtF,YAAY,EAAE,OAAO,EAAE,QAAA,CAAS,EAAE,WAAW,SAAS,uBAAuB;AAC/E,CAAC;AAKM,SAAS,uBAAuB,UAAyD;AAC9F,MAAI;AACF,WAAO,qBAAqB,MAAM,QAAQ;AAAA,EAC5C,SAAS,OAAO;AACd,QAAI,iBAAiB,EAAE,UAAU;AAC/B,YAAM,SAAS,MAAM,OAAO,IAAI,CAAA,QAAO,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,OAAO,EAAE,EAAE,KAAK,IAAI;AACzF,YAAM,IAAI,MAAM,uCAAuC,MAAM,EAAE;AAAA,IACjE;AACA,UAAM;AAAA,EACR;AACF;"}
1
+ {"version":3,"file":"standards-agent-kit.es49.js","sources":["../../src/utils/Encryption.ts"],"sourcesContent":["\n/**\n * Placeholder for encryption functionality.\n * Currently, encryption is disabled. The useEncryption flag is false by default.\n * TODO: Implement actual encryption/decryption logic.\n */\n\nexport function encryptMessage(message: string): string {\n return message; // currently returns plaintext.\n}\n\nexport function decryptMessage(encryptedMessage: string): string {\n return encryptedMessage;\n}\n"],"names":[],"mappings":"AAOO,SAAS,eAAe,SAAyB;AACpD,SAAO;AACX;"}