@hashgraphonline/conversational-agent 0.1.217 → 0.1.218

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 (286) hide show
  1. package/cli/readme.md +181 -0
  2. package/dist/cjs/constants/entity-references.d.ts +18 -0
  3. package/dist/cjs/constants/form-priorities.d.ts +24 -0
  4. package/dist/cjs/constants/index.d.ts +4 -0
  5. package/dist/cjs/constants/messages.d.ts +19 -0
  6. package/dist/cjs/constants/test-constants.d.ts +42 -0
  7. package/dist/cjs/conversational-agent.d.ts +3 -8
  8. package/dist/cjs/core/{ToolRegistry.d.ts → tool-registry.d.ts} +10 -7
  9. package/dist/{types/execution/ExecutionPipeline.d.ts → cjs/execution/execution-pipeline.d.ts} +3 -3
  10. package/dist/cjs/forms/field-guidance-registry.d.ts +108 -0
  11. package/dist/cjs/forms/form-generator.d.ts +2 -7
  12. package/dist/cjs/forms/index.d.ts +3 -0
  13. package/dist/cjs/forms/types.d.ts +9 -1
  14. package/dist/cjs/index.cjs +1 -1
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/index.d.ts +7 -12
  17. package/dist/cjs/langchain/external-tool-wrapper.d.ts +101 -0
  18. package/dist/{types/langchain/FormAwareAgentExecutor.d.ts → cjs/langchain/form-aware-agent-executor.d.ts} +19 -12
  19. package/dist/cjs/langchain/index.d.ts +2 -0
  20. package/dist/{types → cjs/langchain}/langchain-agent.d.ts +15 -7
  21. package/dist/cjs/mcp/adapters/index.d.ts +1 -0
  22. package/dist/cjs/mcp/adapters/langchain.d.ts +1 -1
  23. package/dist/{types/mcp/ContentProcessor.d.ts → cjs/mcp/content-processor.d.ts} +1 -1
  24. package/dist/cjs/mcp/index.d.ts +5 -0
  25. package/dist/{types/mcp/MCPClientManager.d.ts → cjs/mcp/mcp-client-manager.d.ts} +1 -1
  26. package/dist/cjs/memory/{ContentStorage.d.ts → content-storage.d.ts} +4 -4
  27. package/dist/cjs/memory/index.d.ts +5 -7
  28. package/dist/{types/memory/MemoryWindow.d.ts → cjs/memory/memory-window.d.ts} +1 -1
  29. package/dist/{types/memory/SmartMemoryManager.d.ts → cjs/memory/smart-memory-manager.d.ts} +1 -1
  30. package/dist/cjs/services/{ContentStoreManager.d.ts → content-store-manager.d.ts} +6 -6
  31. package/dist/cjs/services/context/resolution-context.d.ts +49 -0
  32. package/dist/cjs/services/entity-resolver.d.ts +58 -0
  33. package/dist/cjs/services/formatters/converters/index.d.ts +2 -0
  34. package/dist/cjs/services/formatters/converters/string-normalization-converter.d.ts +13 -0
  35. package/dist/cjs/services/formatters/converters/topic-id-to-hrl-converter.d.ts +17 -0
  36. package/dist/cjs/services/formatters/format-converter-registry.d.ts +66 -0
  37. package/dist/cjs/services/formatters/index.d.ts +3 -0
  38. package/dist/cjs/services/formatters/types.d.ts +29 -0
  39. package/dist/cjs/services/index.d.ts +3 -0
  40. package/dist/cjs/services/resolution/resolution-pipeline.d.ts +44 -0
  41. package/dist/cjs/tools/index.d.ts +1 -0
  42. package/dist/cjs/utils/index.d.ts +1 -0
  43. package/dist/esm/index.js +40 -16
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/index10.js +669 -13
  46. package/dist/esm/index10.js.map +1 -1
  47. package/dist/esm/index11.js +310 -95
  48. package/dist/esm/index11.js.map +1 -1
  49. package/dist/esm/index12.js +130 -95
  50. package/dist/esm/index12.js.map +1 -1
  51. package/dist/esm/index13.js +262 -153
  52. package/dist/esm/index13.js.map +1 -1
  53. package/dist/esm/index14.js +100 -664
  54. package/dist/esm/index14.js.map +1 -1
  55. package/dist/esm/index15.js +135 -408
  56. package/dist/esm/index15.js.map +1 -1
  57. package/dist/esm/index16.js +240 -122
  58. package/dist/esm/index16.js.map +1 -1
  59. package/dist/esm/index17.js +147 -135
  60. package/dist/esm/index17.js.map +1 -1
  61. package/dist/esm/index18.js +376 -533
  62. package/dist/esm/index18.js.map +1 -1
  63. package/dist/esm/index19.js +87 -214
  64. package/dist/esm/index19.js.map +1 -1
  65. package/dist/esm/index2.js +21 -4
  66. package/dist/esm/index2.js.map +1 -1
  67. package/dist/esm/index20.js +158 -92
  68. package/dist/esm/index20.js.map +1 -1
  69. package/dist/esm/index21.js +717 -44
  70. package/dist/esm/index21.js.map +1 -1
  71. package/dist/esm/index22.js +58 -96
  72. package/dist/esm/index22.js.map +1 -1
  73. package/dist/esm/index23.js +324 -34
  74. package/dist/esm/index23.js.map +1 -1
  75. package/dist/esm/index24.js +125 -712
  76. package/dist/esm/index24.js.map +1 -1
  77. package/dist/esm/index25.js +113 -133
  78. package/dist/esm/index25.js.map +1 -1
  79. package/dist/esm/index26.js +18 -152
  80. package/dist/esm/index26.js.map +1 -1
  81. package/dist/esm/index27.js +14 -210
  82. package/dist/esm/index27.js.map +1 -1
  83. package/dist/esm/index28.js +70 -173
  84. package/dist/esm/index28.js.map +1 -1
  85. package/dist/esm/index29.js +811 -224
  86. package/dist/esm/index29.js.map +1 -1
  87. package/dist/esm/index30.js +1245 -122
  88. package/dist/esm/index30.js.map +1 -1
  89. package/dist/esm/index31.js +126 -56
  90. package/dist/esm/index31.js.map +1 -1
  91. package/dist/esm/index32.js +111 -24
  92. package/dist/esm/index32.js.map +1 -1
  93. package/dist/esm/index33.js +41 -87
  94. package/dist/esm/index33.js.map +1 -1
  95. package/dist/esm/index34.js +88 -227
  96. package/dist/esm/index34.js.map +1 -1
  97. package/dist/esm/index35.js +24 -0
  98. package/dist/esm/index35.js.map +1 -0
  99. package/dist/esm/index36.js +15 -0
  100. package/dist/esm/index36.js.map +1 -0
  101. package/dist/esm/index37.js +10 -0
  102. package/dist/esm/index37.js.map +1 -0
  103. package/dist/esm/index38.js +8 -0
  104. package/dist/esm/index38.js.map +1 -0
  105. package/dist/esm/index39.js +227 -0
  106. package/dist/esm/index39.js.map +1 -0
  107. package/dist/esm/index40.js +187 -0
  108. package/dist/esm/index40.js.map +1 -0
  109. package/dist/esm/index41.js +30 -0
  110. package/dist/esm/index41.js.map +1 -0
  111. package/dist/esm/index42.js +95 -0
  112. package/dist/esm/index42.js.map +1 -0
  113. package/dist/esm/index5.js +2 -2
  114. package/dist/esm/index5.js.map +1 -1
  115. package/dist/esm/index6.js +44 -67
  116. package/dist/esm/index6.js.map +1 -1
  117. package/dist/esm/index7.js +9 -0
  118. package/dist/esm/index7.js.map +1 -1
  119. package/dist/esm/index8.js +13 -1095
  120. package/dist/esm/index8.js.map +1 -1
  121. package/dist/esm/index9.js +17 -13
  122. package/dist/esm/index9.js.map +1 -1
  123. package/dist/types/constants/entity-references.d.ts +18 -0
  124. package/dist/types/constants/form-priorities.d.ts +24 -0
  125. package/dist/types/constants/index.d.ts +4 -0
  126. package/dist/types/constants/messages.d.ts +19 -0
  127. package/dist/types/constants/test-constants.d.ts +42 -0
  128. package/dist/types/conversational-agent.d.ts +3 -8
  129. package/dist/types/core/{ToolRegistry.d.ts → tool-registry.d.ts} +10 -7
  130. package/dist/{cjs/execution/ExecutionPipeline.d.ts → types/execution/execution-pipeline.d.ts} +3 -3
  131. package/dist/types/forms/field-guidance-registry.d.ts +108 -0
  132. package/dist/types/forms/form-generator.d.ts +2 -7
  133. package/dist/types/forms/index.d.ts +3 -0
  134. package/dist/types/forms/types.d.ts +9 -1
  135. package/dist/types/index.d.ts +7 -12
  136. package/dist/types/langchain/external-tool-wrapper.d.ts +101 -0
  137. package/dist/{cjs/langchain/FormAwareAgentExecutor.d.ts → types/langchain/form-aware-agent-executor.d.ts} +19 -12
  138. package/dist/types/langchain/index.d.ts +2 -0
  139. package/dist/{cjs → types/langchain}/langchain-agent.d.ts +15 -7
  140. package/dist/types/mcp/adapters/index.d.ts +1 -0
  141. package/dist/types/mcp/adapters/langchain.d.ts +1 -1
  142. package/dist/{cjs/mcp/ContentProcessor.d.ts → types/mcp/content-processor.d.ts} +1 -1
  143. package/dist/types/mcp/index.d.ts +5 -0
  144. package/dist/{cjs/mcp/MCPClientManager.d.ts → types/mcp/mcp-client-manager.d.ts} +1 -1
  145. package/dist/types/memory/{ContentStorage.d.ts → content-storage.d.ts} +4 -4
  146. package/dist/types/memory/index.d.ts +5 -7
  147. package/dist/{cjs/memory/MemoryWindow.d.ts → types/memory/memory-window.d.ts} +1 -1
  148. package/dist/{cjs/memory/SmartMemoryManager.d.ts → types/memory/smart-memory-manager.d.ts} +1 -1
  149. package/dist/types/services/{ContentStoreManager.d.ts → content-store-manager.d.ts} +6 -6
  150. package/dist/types/services/context/resolution-context.d.ts +49 -0
  151. package/dist/types/services/entity-resolver.d.ts +58 -0
  152. package/dist/types/services/formatters/converters/index.d.ts +2 -0
  153. package/dist/types/services/formatters/converters/string-normalization-converter.d.ts +13 -0
  154. package/dist/types/services/formatters/converters/topic-id-to-hrl-converter.d.ts +17 -0
  155. package/dist/types/services/formatters/format-converter-registry.d.ts +66 -0
  156. package/dist/types/services/formatters/index.d.ts +3 -0
  157. package/dist/types/services/formatters/types.d.ts +29 -0
  158. package/dist/types/services/index.d.ts +3 -0
  159. package/dist/types/services/resolution/resolution-pipeline.d.ts +44 -0
  160. package/dist/types/tools/index.d.ts +1 -0
  161. package/dist/types/utils/index.d.ts +1 -0
  162. package/package.json +30 -27
  163. package/src/agent-factory.ts +1 -1
  164. package/src/base-agent.ts +9 -0
  165. package/src/config/system-message.ts +2 -15
  166. package/src/constants/entity-references.ts +23 -0
  167. package/src/constants/form-priorities.ts +25 -0
  168. package/src/constants/index.ts +4 -0
  169. package/src/constants/messages.ts +20 -0
  170. package/src/constants/test-constants.ts +49 -0
  171. package/src/conversational-agent.ts +42 -69
  172. package/src/core/{ToolRegistry.ts → tool-registry.ts} +70 -44
  173. package/src/examples/external-tool-wrapper-example.ts +56 -0
  174. package/src/execution/{ExecutionPipeline.ts → execution-pipeline.ts} +3 -3
  175. package/src/forms/field-guidance-registry.ts +415 -0
  176. package/src/forms/field-type-registry.ts +49 -48
  177. package/src/forms/{FormEngine.ts → form-engine.ts} +66 -43
  178. package/src/forms/form-generator.ts +91 -17
  179. package/src/forms/index.ts +4 -1
  180. package/src/forms/types.ts +9 -1
  181. package/src/index.ts +7 -37
  182. package/src/langchain/external-tool-wrapper.ts +90 -0
  183. package/src/langchain/{FormAwareAgentExecutor.ts → form-aware-agent-executor.ts} +579 -351
  184. package/src/langchain/index.ts +2 -0
  185. package/src/{langchain-agent.ts → langchain/langchain-agent.ts} +389 -113
  186. package/src/mcp/adapters/index.ts +1 -0
  187. package/src/mcp/adapters/langchain.ts +27 -18
  188. package/src/mcp/{ContentProcessor.ts → content-processor.ts} +71 -47
  189. package/src/mcp/index.ts +5 -0
  190. package/src/mcp/{MCPClientManager.ts → mcp-client-manager.ts} +2 -2
  191. package/src/memory/{ContentStorage.ts → content-storage.ts} +263 -167
  192. package/src/memory/index.ts +5 -8
  193. package/src/memory/{MemoryWindow.ts → memory-window.ts} +47 -24
  194. package/src/memory/{SmartMemoryManager.ts → smart-memory-manager.ts} +49 -22
  195. package/src/plugins/hbar/HbarPlugin.ts +1 -1
  196. package/src/plugins/hcs-10/HCS10Plugin.ts +46 -28
  197. package/src/scripts/test-external-tool-wrapper.ts +6 -6
  198. package/src/scripts/test-inscribe-form-generation.ts +22 -21
  199. package/src/scripts/test-inscribe-wrapper-verification.ts +5 -4
  200. package/src/services/{ContentStoreManager.ts → content-store-manager.ts} +75 -33
  201. package/src/services/context/resolution-context.ts +80 -0
  202. package/src/services/entity-resolver.ts +425 -0
  203. package/src/services/formatters/converters/index.ts +2 -0
  204. package/src/services/formatters/converters/string-normalization-converter.ts +106 -0
  205. package/src/services/formatters/converters/topic-id-to-hrl-converter.ts +25 -0
  206. package/src/services/formatters/format-converter-registry.ts +229 -0
  207. package/src/services/formatters/index.ts +3 -0
  208. package/src/services/formatters/types.ts +31 -0
  209. package/src/services/index.ts +3 -0
  210. package/src/services/resolution/resolution-pipeline.ts +106 -0
  211. package/src/tools/index.ts +1 -0
  212. package/src/types/content-reference.ts +87 -60
  213. package/src/utils/index.ts +1 -0
  214. package/cli/dist/CLIApp.d.ts +0 -9
  215. package/cli/dist/CLIApp.js +0 -127
  216. package/cli/dist/LocalConversationalAgent.d.ts +0 -37
  217. package/cli/dist/LocalConversationalAgent.js +0 -58
  218. package/cli/dist/app.d.ts +0 -16
  219. package/cli/dist/app.js +0 -13
  220. package/cli/dist/cli.d.ts +0 -2
  221. package/cli/dist/cli.js +0 -51
  222. package/cli/dist/components/AppContainer.d.ts +0 -16
  223. package/cli/dist/components/AppContainer.js +0 -24
  224. package/cli/dist/components/AppScreens.d.ts +0 -2
  225. package/cli/dist/components/AppScreens.js +0 -259
  226. package/cli/dist/components/ChatScreen.d.ts +0 -15
  227. package/cli/dist/components/ChatScreen.js +0 -39
  228. package/cli/dist/components/DebugLoadingScreen.d.ts +0 -5
  229. package/cli/dist/components/DebugLoadingScreen.js +0 -31
  230. package/cli/dist/components/LoadingScreen.d.ts +0 -2
  231. package/cli/dist/components/LoadingScreen.js +0 -16
  232. package/cli/dist/components/LoadingScreenDebug.d.ts +0 -5
  233. package/cli/dist/components/LoadingScreenDebug.js +0 -27
  234. package/cli/dist/components/MCPConfigScreen.d.ts +0 -28
  235. package/cli/dist/components/MCPConfigScreen.js +0 -168
  236. package/cli/dist/components/ScreenRouter.d.ts +0 -12
  237. package/cli/dist/components/ScreenRouter.js +0 -22
  238. package/cli/dist/components/SetupScreen.d.ts +0 -15
  239. package/cli/dist/components/SetupScreen.js +0 -65
  240. package/cli/dist/components/SingleLoadingScreen.d.ts +0 -5
  241. package/cli/dist/components/SingleLoadingScreen.js +0 -27
  242. package/cli/dist/components/StatusBadge.d.ts +0 -7
  243. package/cli/dist/components/StatusBadge.js +0 -28
  244. package/cli/dist/components/TerminalWindow.d.ts +0 -8
  245. package/cli/dist/components/TerminalWindow.js +0 -24
  246. package/cli/dist/components/WelcomeScreen.d.ts +0 -11
  247. package/cli/dist/components/WelcomeScreen.js +0 -47
  248. package/cli/dist/context/AppContext.d.ts +0 -68
  249. package/cli/dist/context/AppContext.js +0 -363
  250. package/cli/dist/hooks/useInitializeAgent.d.ts +0 -19
  251. package/cli/dist/hooks/useInitializeAgent.js +0 -28
  252. package/cli/dist/hooks/useStableState.d.ts +0 -38
  253. package/cli/dist/hooks/useStableState.js +0 -68
  254. package/cli/dist/managers/AgentManager.d.ts +0 -57
  255. package/cli/dist/managers/AgentManager.js +0 -119
  256. package/cli/dist/managers/ConfigManager.d.ts +0 -53
  257. package/cli/dist/managers/ConfigManager.js +0 -173
  258. package/cli/dist/types.d.ts +0 -31
  259. package/cli/dist/types.js +0 -19
  260. package/dist/cjs/context/ReferenceContextManager.d.ts +0 -84
  261. package/dist/cjs/context/ReferenceResponseProcessor.d.ts +0 -76
  262. package/dist/cjs/langchain/FormValidatingToolWrapper.d.ts +0 -81
  263. package/dist/cjs/services/EntityResolver.d.ts +0 -26
  264. package/dist/types/context/ReferenceContextManager.d.ts +0 -84
  265. package/dist/types/context/ReferenceResponseProcessor.d.ts +0 -76
  266. package/dist/types/langchain/FormValidatingToolWrapper.d.ts +0 -81
  267. package/dist/types/services/EntityResolver.d.ts +0 -26
  268. package/src/context/ReferenceContextManager.ts +0 -350
  269. package/src/context/ReferenceResponseProcessor.ts +0 -295
  270. package/src/langchain/FormValidatingToolWrapper.ts +0 -355
  271. package/src/scripts/test-hedera-kit-wrapper.ts +0 -265
  272. package/src/services/EntityResolver.ts +0 -128
  273. /package/dist/cjs/forms/{FormEngine.d.ts → form-engine.d.ts} +0 -0
  274. /package/dist/cjs/memory/{ReferenceIdGenerator.d.ts → reference-id-generator.d.ts} +0 -0
  275. /package/dist/cjs/memory/{TokenCounter.d.ts → token-counter.d.ts} +0 -0
  276. /package/dist/cjs/tools/{EntityResolverTool.d.ts → entity-resolver-tool.d.ts} +0 -0
  277. /package/dist/cjs/utils/{ResponseFormatter.d.ts → response-formatter.d.ts} +0 -0
  278. /package/dist/types/forms/{FormEngine.d.ts → form-engine.d.ts} +0 -0
  279. /package/dist/types/memory/{ReferenceIdGenerator.d.ts → reference-id-generator.d.ts} +0 -0
  280. /package/dist/types/memory/{TokenCounter.d.ts → token-counter.d.ts} +0 -0
  281. /package/dist/types/tools/{EntityResolverTool.d.ts → entity-resolver-tool.d.ts} +0 -0
  282. /package/dist/types/utils/{ResponseFormatter.d.ts → response-formatter.d.ts} +0 -0
  283. /package/src/memory/{ReferenceIdGenerator.ts → reference-id-generator.ts} +0 -0
  284. /package/src/memory/{TokenCounter.ts → token-counter.ts} +0 -0
  285. /package/src/tools/{EntityResolverTool.ts → entity-resolver-tool.ts} +0 -0
  286. /package/src/utils/{ResponseFormatter.ts → response-formatter.ts} +0 -0
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Mock external tool wrapper functionality
3
+ * These are placeholders to satisfy import statements in test scripts
4
+ */
5
+ export interface ExternalToolWrapper<T> {
6
+ name: string;
7
+ description: string;
8
+ schema: T;
9
+ }
10
+ export declare function wrapExternalToolWithRenderConfig<T>(tool: {
11
+ name: string;
12
+ description: string;
13
+ schema: T;
14
+ }, config: {
15
+ ui?: {
16
+ label?: string;
17
+ description?: string;
18
+ };
19
+ fieldConfigs?: Record<string, unknown>;
20
+ }): ExternalToolWrapper<T>;
21
+ export declare const renderConfigs: {
22
+ text: (label: string, placeholder?: string, help?: string) => {
23
+ type: string;
24
+ label: string;
25
+ placeholder: string | undefined;
26
+ help: string | undefined;
27
+ };
28
+ number: (label: string, min?: number, max?: number, help?: string) => {
29
+ type: string;
30
+ label: string;
31
+ min: number | undefined;
32
+ max: number | undefined;
33
+ help: string | undefined;
34
+ };
35
+ accountId: (label: string) => {
36
+ type: string;
37
+ label: string;
38
+ placeholder: string;
39
+ };
40
+ checkbox: (label: string, help?: string) => {
41
+ type: string;
42
+ label: string;
43
+ help: string | undefined;
44
+ };
45
+ currency: (label: string, currency: string, min?: number, max?: number) => {
46
+ type: string;
47
+ label: string;
48
+ currency: string;
49
+ min: number | undefined;
50
+ max: number | undefined;
51
+ };
52
+ tokenId: (label: string) => {
53
+ type: string;
54
+ label: string;
55
+ placeholder: string;
56
+ };
57
+ select: (label: string, options: Array<{
58
+ value: string;
59
+ label: string;
60
+ }>) => {
61
+ type: string;
62
+ label: string;
63
+ options: {
64
+ value: string;
65
+ label: string;
66
+ }[];
67
+ };
68
+ };
69
+ export declare const hederaToolConfigs: {
70
+ hbarTransfer: () => {
71
+ ui: {
72
+ label: string;
73
+ description: string;
74
+ };
75
+ fieldConfigs: {
76
+ fromAccountId: {
77
+ type: string;
78
+ label: string;
79
+ placeholder: string;
80
+ };
81
+ toAccountId: {
82
+ type: string;
83
+ label: string;
84
+ placeholder: string;
85
+ };
86
+ amount: {
87
+ type: string;
88
+ label: string;
89
+ currency: string;
90
+ min: number | undefined;
91
+ max: number | undefined;
92
+ };
93
+ memo: {
94
+ type: string;
95
+ label: string;
96
+ placeholder: string | undefined;
97
+ help: string | undefined;
98
+ };
99
+ };
100
+ };
101
+ };
@@ -15,6 +15,12 @@ interface PendingFormData {
15
15
  call?: (args: Record<string, unknown>) => Promise<string>;
16
16
  } | undefined;
17
17
  }
18
+ /**
19
+ * Parameter preprocessing callback interface
20
+ */
21
+ export interface ParameterPreprocessingCallback {
22
+ (toolName: string, parameters: Record<string, unknown>): Promise<Record<string, unknown>>;
23
+ }
18
24
  /**
19
25
  * Agent executor that intercepts Zod validation errors and generates forms,
20
26
  * and processes HashLink block responses for rich UI rendering
@@ -24,16 +30,25 @@ export declare class FormAwareAgentExecutor extends AgentExecutor {
24
30
  private formEngine;
25
31
  private formLogger;
26
32
  private pendingForms;
33
+ private parameterPreprocessingCallback;
34
+ /**
35
+ * Type guard to check if a Zod type is a ZodObject
36
+ */
37
+ private isZodObject;
38
+ /**
39
+ * Type guard to check if metadata has hashLinkBlock
40
+ */
41
+ private hasHashLinkBlock;
27
42
  constructor(...args: ConstructorParameters<typeof AgentExecutor>);
43
+ /**
44
+ * Set parameter preprocessing callback
45
+ */
46
+ setParameterPreprocessingCallback(callback: ParameterPreprocessingCallback | undefined): void;
28
47
  /**
29
48
  * BULLETPROOF TOOL INTERCEPTION
30
49
  * Override the single-step execution to intercept tool calls BEFORE LangChain processes them
31
50
  */
32
51
  _takeNextStep(nameToolMap: Record<string, ToolInterface>, inputs: ChainValues, intermediateSteps: AgentStep[], runManager?: CallbackManagerForChainRun, config?: RunnableConfig): Promise<AgentFinish | AgentStep[]>;
33
- /**
34
- * Type guard to check if a schema is a ZodObject
35
- */
36
- private isZodObject;
37
52
  /**
38
53
  * Helper to determine if a field is required in the schema
39
54
  */
@@ -42,10 +57,6 @@ export declare class FormAwareAgentExecutor extends AgentExecutor {
42
57
  * Override _call to intercept Zod validation errors at the execution level
43
58
  */
44
59
  _call(inputs: Record<string, unknown>): Promise<Record<string, unknown>>;
45
- /**
46
- * Handles Zod validation errors by generating forms
47
- */
48
- private handleValidationError;
49
60
  /**
50
61
  * Get a copy of pending forms for preservation during executor recreation
51
62
  */
@@ -66,10 +77,6 @@ export declare class FormAwareAgentExecutor extends AgentExecutor {
66
77
  * Attempts to find tool from execution context
67
78
  */
68
79
  private findToolFromContext;
69
- /**
70
- * Additional fallback to detect tool from error context
71
- */
72
- private detectToolFromErrorContext;
73
80
  /**
74
81
  * Checks if a schema structure matches error paths
75
82
  */
@@ -0,0 +1,2 @@
1
+ export * from './form-aware-agent-executor';
2
+ export * from './langchain-agent';
@@ -1,6 +1,7 @@
1
- import { BaseAgent, ConversationContext, ChatResponse, OperationalMode, UsageStats } from './base-agent';
2
- import { MCPConnectionStatus } from './mcp/types';
3
- import { FormSubmission } from './forms/types';
1
+ import { ParameterPreprocessingCallback } from './form-aware-agent-executor';
2
+ import { BaseAgent, ConversationContext, ChatResponse, OperationalMode, UsageStats } from '../base-agent';
3
+ import { MCPConnectionStatus } from '../mcp/types';
4
+ import { FormSubmission } from '../forms/types';
4
5
 
5
6
  export declare class LangChainAgent extends BaseAgent {
6
7
  private executor;
@@ -11,14 +12,14 @@ export declare class LangChainAgent extends BaseAgent {
11
12
  private toolRegistry;
12
13
  private executionPipeline;
13
14
  private formEngine;
15
+ private addToolRawToMemory;
16
+ private persistToolRaw;
17
+ private persistIntermediateSteps;
18
+ private pendingParameterPreprocessingCallback;
14
19
  /**
15
20
  * Get inscription tool by capability instead of hardcoded name
16
21
  */
17
22
  private getInscriptionTool;
18
- /**
19
- * Get a tool by name from the registry with type safety
20
- */
21
- private getTool;
22
23
  /**
23
24
  * Execute a tool directly with parameters, optionally using ExecutionPipeline
24
25
  */
@@ -50,6 +51,9 @@ export declare class LangChainAgent extends BaseAgent {
50
51
  /**
51
52
  * Normalize context messages into LangChain message instances and load into memory
52
53
  */
54
+ /**
55
+ * Loads context messages into memory, merging with existing messages
56
+ */
53
57
  private loadContextMessages;
54
58
  boot(): Promise<void>;
55
59
  chat(message: string, context?: ConversationContext): Promise<ChatResponse>;
@@ -76,6 +80,10 @@ export declare class LangChainAgent extends BaseAgent {
76
80
  }>;
77
81
  private createAgentKit;
78
82
  private createExecutor;
83
+ /**
84
+ * Set parameter preprocessing callback for tool parameter format conversion
85
+ */
86
+ setParameterPreprocessingCallback(callback: ParameterPreprocessingCallback | undefined): void;
79
87
  private handleError;
80
88
  private initializeMCP;
81
89
  /**
@@ -0,0 +1 @@
1
+ export * from './langchain';
@@ -1,6 +1,6 @@
1
1
  import { DynamicStructuredTool } from '@langchain/core/tools';
2
2
  import { MCPToolInfo, MCPServerConfig } from '../types';
3
- import { MCPClientManager } from '../MCPClientManager';
3
+ import { MCPClientManager } from '../mcp-client-manager';
4
4
 
5
5
  /**
6
6
  * Convert an MCP tool to a LangChain DynamicStructuredTool
@@ -1,4 +1,4 @@
1
- import { ContentStorage } from '../memory/ContentStorage';
1
+ import { ContentStorage } from '../memory/content-storage';
2
2
  import { Logger } from '@hashgraphonline/standards-sdk';
3
3
 
4
4
  export interface MCPResponseContent {
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './helpers';
3
+ export * from './mcp-client-manager';
4
+ export * from './content-processor';
5
+ export * from './adapters';
@@ -1,6 +1,6 @@
1
1
  import { MCPServerConfig, MCPToolInfo, MCPConnectionStatus } from './types';
2
2
  import { Logger } from '@hashgraphonline/standards-sdk';
3
- import { ContentStorage } from '../memory/ContentStorage';
3
+ import { ContentStorage } from '../memory/content-storage';
4
4
 
5
5
  /**
6
6
  * Manages connections to MCP servers and tool discovery
@@ -129,12 +129,12 @@ export declare class ContentStorage implements ContentReferenceStore {
129
129
  * Export messages to a JSON-serializable format
130
130
  * @returns Serializable representation of stored messages
131
131
  */
132
- exportMessages(): {
133
- content: import('@langchain/core/messages').MessageContent;
134
- type: import('@langchain/core/messages').MessageType;
132
+ exportMessages(): Array<{
133
+ content: string;
134
+ type: string;
135
135
  storedAt: string;
136
136
  id: string;
137
- }[];
137
+ }>;
138
138
  /**
139
139
  * Determine if content should be stored as a reference based on size
140
140
  */
@@ -1,7 +1,5 @@
1
- export { TokenCounter } from './TokenCounter';
2
- export { MemoryWindow } from './MemoryWindow';
3
- export { ContentStorage } from './ContentStorage';
4
- export { SmartMemoryManager } from './SmartMemoryManager';
5
- export type { SmartMemoryConfig, SearchOptions, MemoryStats, EntityAssociation, EntityResolutionOptions } from './SmartMemoryManager';
6
- export type { AddMessageResult } from './MemoryWindow';
7
- export type { StorageStats } from './ContentStorage';
1
+ export * from './smart-memory-manager';
2
+ export * from './token-counter';
3
+ export * from './memory-window';
4
+ export * from './content-storage';
5
+ export * from './reference-id-generator';
@@ -1,5 +1,5 @@
1
1
  import { BaseMessage } from '@langchain/core/messages';
2
- import { TokenCounter } from './TokenCounter';
2
+ import { TokenCounter } from './token-counter';
3
3
 
4
4
  /**
5
5
  * Result of adding a message to the memory window
@@ -1,5 +1,5 @@
1
1
  import { BaseMessage } from '@langchain/core/messages';
2
- import { ContentStorage } from './ContentStorage';
2
+ import { ContentStorage } from './content-storage';
3
3
 
4
4
  /**
5
5
  * Entity association for storing blockchain entity contexts
@@ -1,11 +1,11 @@
1
- import { ContentStorage } from '../memory/ContentStorage';
2
- import { ContentReferenceConfig } from '../types/content-reference';
1
+ import { ContentStorage } from '../memory/content-storage';
2
+ import { ContentReference, ContentReferenceConfig, ContentReferenceStats } from '../types/content-reference';
3
3
  import { Logger } from '@hashgraphonline/standards-sdk';
4
4
 
5
5
  /**
6
- * Content metadata interface
6
+ * Content metadata interface for adapter compatibility
7
7
  */
8
- interface ContentMetadata {
8
+ interface AdapterContentMetadata {
9
9
  mimeType?: string;
10
10
  fileName?: string;
11
11
  sizeBytes?: number;
@@ -32,7 +32,7 @@ export declare class ContentStoreManager {
32
32
  /**
33
33
  * Get storage statistics
34
34
  */
35
- getStats(): Promise<import('../types').ContentReferenceStats>;
35
+ getStats(): Promise<ContentReferenceStats>;
36
36
  /**
37
37
  * Update configuration
38
38
  */
@@ -51,7 +51,7 @@ export declare class ContentStoreManager {
51
51
  /**
52
52
  * Store content if it's large enough
53
53
  */
54
- storeContentIfLarge(content: Buffer | string, metadata: ContentMetadata): Promise<import('../types').ContentReference | null>;
54
+ storeContentIfLarge(content: Buffer | string, metadata: AdapterContentMetadata): Promise<ContentReference | null>;
55
55
  /**
56
56
  * Cleanup and unregister
57
57
  */
@@ -0,0 +1,49 @@
1
+ import { ToolMetadata } from '../../core/tool-registry';
2
+
3
+ export declare enum EntityType {
4
+ TOPIC = "topicId",
5
+ TOKEN = "tokenId",
6
+ NFT = "tokenId",
7
+ ACCOUNT = "accountId",
8
+ INSCRIPTION = "hrl"
9
+ }
10
+ export interface EntityHint {
11
+ type: EntityType;
12
+ value: string;
13
+ confidence: number;
14
+ source: 'user' | 'llm' | 'cached';
15
+ }
16
+ export interface ConversionRecord {
17
+ originalValue: string;
18
+ convertedValue: string;
19
+ sourceFormat: string;
20
+ targetFormat: string;
21
+ converterUsed: string;
22
+ timestamp: Date;
23
+ context: Record<string, unknown>;
24
+ }
25
+ export interface ResolutionContext {
26
+ toolMetadata?: ToolMetadata;
27
+ userMessage: string;
28
+ entityHints: EntityHint[];
29
+ networkType: string;
30
+ conversionHistory: ConversionRecord[];
31
+ sessionId: string;
32
+ }
33
+ /**
34
+ * Builder for creating and modifying resolution contexts
35
+ */
36
+ export declare class ResolutionContextBuilder {
37
+ /**
38
+ * Create initial context from user message and session ID
39
+ */
40
+ static fromMessage(message: string, sessionId: string): ResolutionContext;
41
+ /**
42
+ * Add tool metadata to existing context
43
+ */
44
+ static withToolContext(context: ResolutionContext, toolMetadata: ToolMetadata): ResolutionContext;
45
+ /**
46
+ * Add entity hints to existing context
47
+ */
48
+ static withEntityHints(context: ResolutionContext, hints: EntityHint[]): ResolutionContext;
49
+ }
@@ -0,0 +1,58 @@
1
+ import { EntityAssociation } from '../memory/smart-memory-manager';
2
+ import { EntityFormat } from '..';
3
+
4
+ export interface EntityResolverConfig {
5
+ apiKey: string;
6
+ modelName?: string;
7
+ }
8
+ interface ExtractedEntity {
9
+ id: string;
10
+ name: string;
11
+ type: EntityFormat;
12
+ transactionId?: string;
13
+ }
14
+ /**
15
+ * LLM-based entity resolver that replaces brittle regex patterns
16
+ */
17
+ export declare class EntityResolver {
18
+ private llm;
19
+ private logger;
20
+ constructor(config: EntityResolverConfig);
21
+ /**
22
+ * Resolve entity references using LLM instead of regex
23
+ */
24
+ resolveReferences(message: string, entities: EntityAssociation[]): Promise<string>;
25
+ /**
26
+ * Extract entities from agent response using receipt data (preferred) or LLM fallback
27
+ */
28
+ extractEntities(response: unknown, userMessage: string): Promise<ExtractedEntity[]>;
29
+ /**
30
+ * Extract entities from transaction receipt data (primary method)
31
+ */
32
+ private extractFromReceipt;
33
+ /**
34
+ * Extract entity name from user message
35
+ */
36
+ private extractNameFromMessage;
37
+ /**
38
+ * Extract entities using LLM (fallback method)
39
+ */
40
+ private extractWithLLM;
41
+ /**
42
+ * Validate that an entity matches the expected type
43
+ */
44
+ validateEntityType(entityId: string, expectedType: string, entities: EntityAssociation[]): boolean;
45
+ /**
46
+ * Resolve entity references with type validation
47
+ */
48
+ resolveWithTypeValidation(query: string, entities: EntityAssociation[], expectedType?: string): Promise<EntityAssociation[]>;
49
+ /**
50
+ * Get entities filtered by type
51
+ */
52
+ getEntitiesByType(entities: EntityAssociation[], entityType: string): EntityAssociation[];
53
+ /**
54
+ * Find the most recent entity of a specific type
55
+ */
56
+ getMostRecentEntityByType(entities: EntityAssociation[], entityType: string): EntityAssociation | null;
57
+ }
58
+ export {};
@@ -0,0 +1,2 @@
1
+ export { TopicIdToHrlConverter } from './topic-id-to-hrl-converter';
2
+ export { StringNormalizationConverter } from './string-normalization-converter';
@@ -0,0 +1,13 @@
1
+ import { EntityFormat, FormatConverter, ConversionContext } from '../types';
2
+
3
+ /**
4
+ * Generic converter that normalizes various string entity references (cdn urls, content-ref, raw topic id)
5
+ * into canonical HRL. It declares source ANY -> HRL and internally short-circuits if unsupported.
6
+ */
7
+ export declare class StringNormalizationConverter implements FormatConverter<string, string> {
8
+ sourceFormat: EntityFormat;
9
+ targetFormat: EntityFormat;
10
+ private static standardCache;
11
+ canConvert(source: string, _context: ConversionContext): boolean;
12
+ convert(source: string, context: ConversionContext): Promise<string>;
13
+ }
@@ -0,0 +1,17 @@
1
+ import { EntityFormat, FormatConverter, ConversionContext } from '../types';
2
+
3
+ /**
4
+ * Converts Hedera topic IDs to HRL format for consensus service messages
5
+ */
6
+ export declare class TopicIdToHrlConverter implements FormatConverter<string, string> {
7
+ sourceFormat: EntityFormat;
8
+ targetFormat: EntityFormat;
9
+ /**
10
+ * Check if the source string is a valid topic ID
11
+ */
12
+ canConvert(source: string, _context: ConversionContext): boolean;
13
+ /**
14
+ * Convert topic ID to HRL format based on network type
15
+ */
16
+ convert(topicId: string, context: ConversionContext): Promise<string>;
17
+ }
@@ -0,0 +1,66 @@
1
+ import { EntityFormat, FormatConverter, ConversionContext } from './types';
2
+
3
+ /**
4
+ * Registry for format converters that handles entity transformation
5
+ */
6
+ export declare class FormatConverterRegistry {
7
+ private converters;
8
+ private entityTypeCache;
9
+ private logger;
10
+ private defaultCacheTTL;
11
+ /**
12
+ * Register a format converter
13
+ */
14
+ register<TSource, TTarget>(converter: FormatConverter<TSource, TTarget>): void;
15
+ /**
16
+ * Find a converter for the given source and target formats
17
+ */
18
+ findConverter(source: EntityFormat, target: EntityFormat): FormatConverter<unknown, unknown> | null;
19
+ /**
20
+ * Convert an entity to the target format
21
+ */
22
+ convertEntity(entity: string, target: EntityFormat, context: ConversionContext): Promise<string>;
23
+ /**
24
+ * Detect the format of an entity string with API-based verification and fallback
25
+ */
26
+ private detectFormatWithFallback;
27
+ /**
28
+ * Public helper: detect entity format (ACCOUNT_ID, TOKEN_ID, TOPIC_ID, HRL, or ANY)
29
+ */
30
+ detectEntityFormat(entity: string, context?: ConversionContext): Promise<EntityFormat>;
31
+ /**
32
+ * Detect entity format via Hedera Mirror Node API calls
33
+ */
34
+ private detectFormat;
35
+ /**
36
+ * Get cached entity format if valid
37
+ */
38
+ private getCachedFormat;
39
+ /**
40
+ * Set cached entity format
41
+ */
42
+ private setCachedFormat;
43
+ /**
44
+ * Check if cache entry is expired
45
+ */
46
+ private isCacheExpired;
47
+ /**
48
+ * Get all registered converters
49
+ */
50
+ getRegisteredConverters(): Array<{
51
+ source: EntityFormat;
52
+ target: EntityFormat;
53
+ }>;
54
+ /**
55
+ * Check if a converter exists for the given formats
56
+ */
57
+ hasConverter(source: EntityFormat, target: EntityFormat): boolean;
58
+ /**
59
+ * Clear all registered converters
60
+ */
61
+ clear(): void;
62
+ /**
63
+ * Clear entity type cache
64
+ */
65
+ clearCache(): void;
66
+ }
@@ -0,0 +1,3 @@
1
+ export { FormatConverterRegistry } from './format-converter-registry';
2
+ export { EntityFormat, type FormatConverter, type ConversionContext } from './types';
3
+ export * from './converters';
@@ -0,0 +1,29 @@
1
+ export declare enum EntityFormat {
2
+ TOPIC_ID = "topicId",
3
+ HRL = "hrl",
4
+ SCHEDULE_ID = "scheduleId",
5
+ TOKEN_ID = "tokenId",
6
+ ADDRESS = "address",
7
+ SYMBOL = "symbol",
8
+ SERIAL_NUMBER = "serialNumber",
9
+ METADATA = "metadata",
10
+ ACCOUNT_ID = "accountId",
11
+ ALIAS = "alias",
12
+ EVM_ADDRESS = "evmAddress",
13
+ CONTRACT_ID = "contractId",
14
+ FILE_ID = "fileId",
15
+ ANY = "any"
16
+ }
17
+ export interface ConversionContext {
18
+ networkType?: string;
19
+ sessionId?: string;
20
+ toolName?: string;
21
+ toolPreferences?: Record<string, string>;
22
+ [key: string]: unknown;
23
+ }
24
+ export interface FormatConverter<TSource = string, TTarget = string> {
25
+ sourceFormat: EntityFormat;
26
+ targetFormat: EntityFormat;
27
+ canConvert(source: string, context: ConversionContext): boolean;
28
+ convert(entity: TSource, context: ConversionContext): Promise<TTarget>;
29
+ }
@@ -0,0 +1,3 @@
1
+ export * from './entity-resolver';
2
+ export * from './content-store-manager';
3
+ export * from './formatters';
@@ -0,0 +1,44 @@
1
+ import { ResolutionContext, EntityType } from '../context/resolution-context';
2
+
3
+ export interface DetectedEntity {
4
+ type: EntityType;
5
+ value: string;
6
+ originalText: string;
7
+ confidence: number;
8
+ position: number;
9
+ }
10
+ export interface ResolvedMessage {
11
+ message: string;
12
+ entities: DetectedEntity[];
13
+ conversions: Array<{
14
+ original: string;
15
+ converted: string;
16
+ }>;
17
+ context: ResolutionContext;
18
+ }
19
+ export interface ResolutionStage<TInput = unknown, TOutput = unknown> {
20
+ name: string;
21
+ process(input: TInput, context: ResolutionContext): Promise<TOutput>;
22
+ }
23
+ /**
24
+ * Multi-stage resolution pipeline that processes messages through configurable stages
25
+ */
26
+ export declare class ResolutionPipeline {
27
+ private stages;
28
+ /**
29
+ * Add a stage to the pipeline
30
+ */
31
+ addStage<TInput, TOutput>(stage: ResolutionStage<TInput, TOutput>): void;
32
+ /**
33
+ * Get all registered stages
34
+ */
35
+ getStages(): ResolutionStage<unknown, unknown>[];
36
+ /**
37
+ * Clear all stages from the pipeline
38
+ */
39
+ clear(): void;
40
+ /**
41
+ * Process a message through all pipeline stages
42
+ */
43
+ process(message: string, context: ResolutionContext): Promise<ResolvedMessage>;
44
+ }
@@ -0,0 +1 @@
1
+ export * from './entity-resolver-tool';
@@ -0,0 +1 @@
1
+ export * from './response-formatter';