@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.
- package/cli/readme.md +181 -0
- package/dist/cjs/constants/entity-references.d.ts +18 -0
- package/dist/cjs/constants/form-priorities.d.ts +24 -0
- package/dist/cjs/constants/index.d.ts +4 -0
- package/dist/cjs/constants/messages.d.ts +19 -0
- package/dist/cjs/constants/test-constants.d.ts +42 -0
- package/dist/cjs/conversational-agent.d.ts +3 -8
- package/dist/cjs/core/{ToolRegistry.d.ts → tool-registry.d.ts} +10 -7
- package/dist/{types/execution/ExecutionPipeline.d.ts → cjs/execution/execution-pipeline.d.ts} +3 -3
- package/dist/cjs/forms/field-guidance-registry.d.ts +108 -0
- package/dist/cjs/forms/form-generator.d.ts +2 -7
- package/dist/cjs/forms/index.d.ts +3 -0
- package/dist/cjs/forms/types.d.ts +9 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +7 -12
- package/dist/cjs/langchain/external-tool-wrapper.d.ts +101 -0
- package/dist/{types/langchain/FormAwareAgentExecutor.d.ts → cjs/langchain/form-aware-agent-executor.d.ts} +19 -12
- package/dist/cjs/langchain/index.d.ts +2 -0
- package/dist/{types → cjs/langchain}/langchain-agent.d.ts +15 -7
- package/dist/cjs/mcp/adapters/index.d.ts +1 -0
- package/dist/cjs/mcp/adapters/langchain.d.ts +1 -1
- package/dist/{types/mcp/ContentProcessor.d.ts → cjs/mcp/content-processor.d.ts} +1 -1
- package/dist/cjs/mcp/index.d.ts +5 -0
- package/dist/{types/mcp/MCPClientManager.d.ts → cjs/mcp/mcp-client-manager.d.ts} +1 -1
- package/dist/cjs/memory/{ContentStorage.d.ts → content-storage.d.ts} +4 -4
- package/dist/cjs/memory/index.d.ts +5 -7
- package/dist/{types/memory/MemoryWindow.d.ts → cjs/memory/memory-window.d.ts} +1 -1
- package/dist/{types/memory/SmartMemoryManager.d.ts → cjs/memory/smart-memory-manager.d.ts} +1 -1
- package/dist/cjs/services/{ContentStoreManager.d.ts → content-store-manager.d.ts} +6 -6
- package/dist/cjs/services/context/resolution-context.d.ts +49 -0
- package/dist/cjs/services/entity-resolver.d.ts +58 -0
- package/dist/cjs/services/formatters/converters/index.d.ts +2 -0
- package/dist/cjs/services/formatters/converters/string-normalization-converter.d.ts +13 -0
- package/dist/cjs/services/formatters/converters/topic-id-to-hrl-converter.d.ts +17 -0
- package/dist/cjs/services/formatters/format-converter-registry.d.ts +66 -0
- package/dist/cjs/services/formatters/index.d.ts +3 -0
- package/dist/cjs/services/formatters/types.d.ts +29 -0
- package/dist/cjs/services/index.d.ts +3 -0
- package/dist/cjs/services/resolution/resolution-pipeline.d.ts +44 -0
- package/dist/cjs/tools/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/esm/index.js +40 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index10.js +669 -13
- package/dist/esm/index10.js.map +1 -1
- package/dist/esm/index11.js +310 -95
- package/dist/esm/index11.js.map +1 -1
- package/dist/esm/index12.js +130 -95
- package/dist/esm/index12.js.map +1 -1
- package/dist/esm/index13.js +262 -153
- package/dist/esm/index13.js.map +1 -1
- package/dist/esm/index14.js +100 -664
- package/dist/esm/index14.js.map +1 -1
- package/dist/esm/index15.js +135 -408
- package/dist/esm/index15.js.map +1 -1
- package/dist/esm/index16.js +240 -122
- package/dist/esm/index16.js.map +1 -1
- package/dist/esm/index17.js +147 -135
- package/dist/esm/index17.js.map +1 -1
- package/dist/esm/index18.js +376 -533
- package/dist/esm/index18.js.map +1 -1
- package/dist/esm/index19.js +87 -214
- package/dist/esm/index19.js.map +1 -1
- package/dist/esm/index2.js +21 -4
- package/dist/esm/index2.js.map +1 -1
- package/dist/esm/index20.js +158 -92
- package/dist/esm/index20.js.map +1 -1
- package/dist/esm/index21.js +717 -44
- package/dist/esm/index21.js.map +1 -1
- package/dist/esm/index22.js +58 -96
- package/dist/esm/index22.js.map +1 -1
- package/dist/esm/index23.js +324 -34
- package/dist/esm/index23.js.map +1 -1
- package/dist/esm/index24.js +125 -712
- package/dist/esm/index24.js.map +1 -1
- package/dist/esm/index25.js +113 -133
- package/dist/esm/index25.js.map +1 -1
- package/dist/esm/index26.js +18 -152
- package/dist/esm/index26.js.map +1 -1
- package/dist/esm/index27.js +14 -210
- package/dist/esm/index27.js.map +1 -1
- package/dist/esm/index28.js +70 -173
- package/dist/esm/index28.js.map +1 -1
- package/dist/esm/index29.js +811 -224
- package/dist/esm/index29.js.map +1 -1
- package/dist/esm/index30.js +1245 -122
- package/dist/esm/index30.js.map +1 -1
- package/dist/esm/index31.js +126 -56
- package/dist/esm/index31.js.map +1 -1
- package/dist/esm/index32.js +111 -24
- package/dist/esm/index32.js.map +1 -1
- package/dist/esm/index33.js +41 -87
- package/dist/esm/index33.js.map +1 -1
- package/dist/esm/index34.js +88 -227
- package/dist/esm/index34.js.map +1 -1
- package/dist/esm/index35.js +24 -0
- package/dist/esm/index35.js.map +1 -0
- package/dist/esm/index36.js +15 -0
- package/dist/esm/index36.js.map +1 -0
- package/dist/esm/index37.js +10 -0
- package/dist/esm/index37.js.map +1 -0
- package/dist/esm/index38.js +8 -0
- package/dist/esm/index38.js.map +1 -0
- package/dist/esm/index39.js +227 -0
- package/dist/esm/index39.js.map +1 -0
- package/dist/esm/index40.js +187 -0
- package/dist/esm/index40.js.map +1 -0
- package/dist/esm/index41.js +30 -0
- package/dist/esm/index41.js.map +1 -0
- package/dist/esm/index42.js +95 -0
- package/dist/esm/index42.js.map +1 -0
- package/dist/esm/index5.js +2 -2
- package/dist/esm/index5.js.map +1 -1
- package/dist/esm/index6.js +44 -67
- package/dist/esm/index6.js.map +1 -1
- package/dist/esm/index7.js +9 -0
- package/dist/esm/index7.js.map +1 -1
- package/dist/esm/index8.js +13 -1095
- package/dist/esm/index8.js.map +1 -1
- package/dist/esm/index9.js +17 -13
- package/dist/esm/index9.js.map +1 -1
- package/dist/types/constants/entity-references.d.ts +18 -0
- package/dist/types/constants/form-priorities.d.ts +24 -0
- package/dist/types/constants/index.d.ts +4 -0
- package/dist/types/constants/messages.d.ts +19 -0
- package/dist/types/constants/test-constants.d.ts +42 -0
- package/dist/types/conversational-agent.d.ts +3 -8
- package/dist/types/core/{ToolRegistry.d.ts → tool-registry.d.ts} +10 -7
- package/dist/{cjs/execution/ExecutionPipeline.d.ts → types/execution/execution-pipeline.d.ts} +3 -3
- package/dist/types/forms/field-guidance-registry.d.ts +108 -0
- package/dist/types/forms/form-generator.d.ts +2 -7
- package/dist/types/forms/index.d.ts +3 -0
- package/dist/types/forms/types.d.ts +9 -1
- package/dist/types/index.d.ts +7 -12
- package/dist/types/langchain/external-tool-wrapper.d.ts +101 -0
- package/dist/{cjs/langchain/FormAwareAgentExecutor.d.ts → types/langchain/form-aware-agent-executor.d.ts} +19 -12
- package/dist/types/langchain/index.d.ts +2 -0
- package/dist/{cjs → types/langchain}/langchain-agent.d.ts +15 -7
- package/dist/types/mcp/adapters/index.d.ts +1 -0
- package/dist/types/mcp/adapters/langchain.d.ts +1 -1
- package/dist/{cjs/mcp/ContentProcessor.d.ts → types/mcp/content-processor.d.ts} +1 -1
- package/dist/types/mcp/index.d.ts +5 -0
- package/dist/{cjs/mcp/MCPClientManager.d.ts → types/mcp/mcp-client-manager.d.ts} +1 -1
- package/dist/types/memory/{ContentStorage.d.ts → content-storage.d.ts} +4 -4
- package/dist/types/memory/index.d.ts +5 -7
- package/dist/{cjs/memory/MemoryWindow.d.ts → types/memory/memory-window.d.ts} +1 -1
- package/dist/{cjs/memory/SmartMemoryManager.d.ts → types/memory/smart-memory-manager.d.ts} +1 -1
- package/dist/types/services/{ContentStoreManager.d.ts → content-store-manager.d.ts} +6 -6
- package/dist/types/services/context/resolution-context.d.ts +49 -0
- package/dist/types/services/entity-resolver.d.ts +58 -0
- package/dist/types/services/formatters/converters/index.d.ts +2 -0
- package/dist/types/services/formatters/converters/string-normalization-converter.d.ts +13 -0
- package/dist/types/services/formatters/converters/topic-id-to-hrl-converter.d.ts +17 -0
- package/dist/types/services/formatters/format-converter-registry.d.ts +66 -0
- package/dist/types/services/formatters/index.d.ts +3 -0
- package/dist/types/services/formatters/types.d.ts +29 -0
- package/dist/types/services/index.d.ts +3 -0
- package/dist/types/services/resolution/resolution-pipeline.d.ts +44 -0
- package/dist/types/tools/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +30 -27
- package/src/agent-factory.ts +1 -1
- package/src/base-agent.ts +9 -0
- package/src/config/system-message.ts +2 -15
- package/src/constants/entity-references.ts +23 -0
- package/src/constants/form-priorities.ts +25 -0
- package/src/constants/index.ts +4 -0
- package/src/constants/messages.ts +20 -0
- package/src/constants/test-constants.ts +49 -0
- package/src/conversational-agent.ts +42 -69
- package/src/core/{ToolRegistry.ts → tool-registry.ts} +70 -44
- package/src/examples/external-tool-wrapper-example.ts +56 -0
- package/src/execution/{ExecutionPipeline.ts → execution-pipeline.ts} +3 -3
- package/src/forms/field-guidance-registry.ts +415 -0
- package/src/forms/field-type-registry.ts +49 -48
- package/src/forms/{FormEngine.ts → form-engine.ts} +66 -43
- package/src/forms/form-generator.ts +91 -17
- package/src/forms/index.ts +4 -1
- package/src/forms/types.ts +9 -1
- package/src/index.ts +7 -37
- package/src/langchain/external-tool-wrapper.ts +90 -0
- package/src/langchain/{FormAwareAgentExecutor.ts → form-aware-agent-executor.ts} +579 -351
- package/src/langchain/index.ts +2 -0
- package/src/{langchain-agent.ts → langchain/langchain-agent.ts} +389 -113
- package/src/mcp/adapters/index.ts +1 -0
- package/src/mcp/adapters/langchain.ts +27 -18
- package/src/mcp/{ContentProcessor.ts → content-processor.ts} +71 -47
- package/src/mcp/index.ts +5 -0
- package/src/mcp/{MCPClientManager.ts → mcp-client-manager.ts} +2 -2
- package/src/memory/{ContentStorage.ts → content-storage.ts} +263 -167
- package/src/memory/index.ts +5 -8
- package/src/memory/{MemoryWindow.ts → memory-window.ts} +47 -24
- package/src/memory/{SmartMemoryManager.ts → smart-memory-manager.ts} +49 -22
- package/src/plugins/hbar/HbarPlugin.ts +1 -1
- package/src/plugins/hcs-10/HCS10Plugin.ts +46 -28
- package/src/scripts/test-external-tool-wrapper.ts +6 -6
- package/src/scripts/test-inscribe-form-generation.ts +22 -21
- package/src/scripts/test-inscribe-wrapper-verification.ts +5 -4
- package/src/services/{ContentStoreManager.ts → content-store-manager.ts} +75 -33
- package/src/services/context/resolution-context.ts +80 -0
- package/src/services/entity-resolver.ts +425 -0
- package/src/services/formatters/converters/index.ts +2 -0
- package/src/services/formatters/converters/string-normalization-converter.ts +106 -0
- package/src/services/formatters/converters/topic-id-to-hrl-converter.ts +25 -0
- package/src/services/formatters/format-converter-registry.ts +229 -0
- package/src/services/formatters/index.ts +3 -0
- package/src/services/formatters/types.ts +31 -0
- package/src/services/index.ts +3 -0
- package/src/services/resolution/resolution-pipeline.ts +106 -0
- package/src/tools/index.ts +1 -0
- package/src/types/content-reference.ts +87 -60
- package/src/utils/index.ts +1 -0
- package/cli/dist/CLIApp.d.ts +0 -9
- package/cli/dist/CLIApp.js +0 -127
- package/cli/dist/LocalConversationalAgent.d.ts +0 -37
- package/cli/dist/LocalConversationalAgent.js +0 -58
- package/cli/dist/app.d.ts +0 -16
- package/cli/dist/app.js +0 -13
- package/cli/dist/cli.d.ts +0 -2
- package/cli/dist/cli.js +0 -51
- package/cli/dist/components/AppContainer.d.ts +0 -16
- package/cli/dist/components/AppContainer.js +0 -24
- package/cli/dist/components/AppScreens.d.ts +0 -2
- package/cli/dist/components/AppScreens.js +0 -259
- package/cli/dist/components/ChatScreen.d.ts +0 -15
- package/cli/dist/components/ChatScreen.js +0 -39
- package/cli/dist/components/DebugLoadingScreen.d.ts +0 -5
- package/cli/dist/components/DebugLoadingScreen.js +0 -31
- package/cli/dist/components/LoadingScreen.d.ts +0 -2
- package/cli/dist/components/LoadingScreen.js +0 -16
- package/cli/dist/components/LoadingScreenDebug.d.ts +0 -5
- package/cli/dist/components/LoadingScreenDebug.js +0 -27
- package/cli/dist/components/MCPConfigScreen.d.ts +0 -28
- package/cli/dist/components/MCPConfigScreen.js +0 -168
- package/cli/dist/components/ScreenRouter.d.ts +0 -12
- package/cli/dist/components/ScreenRouter.js +0 -22
- package/cli/dist/components/SetupScreen.d.ts +0 -15
- package/cli/dist/components/SetupScreen.js +0 -65
- package/cli/dist/components/SingleLoadingScreen.d.ts +0 -5
- package/cli/dist/components/SingleLoadingScreen.js +0 -27
- package/cli/dist/components/StatusBadge.d.ts +0 -7
- package/cli/dist/components/StatusBadge.js +0 -28
- package/cli/dist/components/TerminalWindow.d.ts +0 -8
- package/cli/dist/components/TerminalWindow.js +0 -24
- package/cli/dist/components/WelcomeScreen.d.ts +0 -11
- package/cli/dist/components/WelcomeScreen.js +0 -47
- package/cli/dist/context/AppContext.d.ts +0 -68
- package/cli/dist/context/AppContext.js +0 -363
- package/cli/dist/hooks/useInitializeAgent.d.ts +0 -19
- package/cli/dist/hooks/useInitializeAgent.js +0 -28
- package/cli/dist/hooks/useStableState.d.ts +0 -38
- package/cli/dist/hooks/useStableState.js +0 -68
- package/cli/dist/managers/AgentManager.d.ts +0 -57
- package/cli/dist/managers/AgentManager.js +0 -119
- package/cli/dist/managers/ConfigManager.d.ts +0 -53
- package/cli/dist/managers/ConfigManager.js +0 -173
- package/cli/dist/types.d.ts +0 -31
- package/cli/dist/types.js +0 -19
- package/dist/cjs/context/ReferenceContextManager.d.ts +0 -84
- package/dist/cjs/context/ReferenceResponseProcessor.d.ts +0 -76
- package/dist/cjs/langchain/FormValidatingToolWrapper.d.ts +0 -81
- package/dist/cjs/services/EntityResolver.d.ts +0 -26
- package/dist/types/context/ReferenceContextManager.d.ts +0 -84
- package/dist/types/context/ReferenceResponseProcessor.d.ts +0 -76
- package/dist/types/langchain/FormValidatingToolWrapper.d.ts +0 -81
- package/dist/types/services/EntityResolver.d.ts +0 -26
- package/src/context/ReferenceContextManager.ts +0 -350
- package/src/context/ReferenceResponseProcessor.ts +0 -295
- package/src/langchain/FormValidatingToolWrapper.ts +0 -355
- package/src/scripts/test-hedera-kit-wrapper.ts +0 -265
- package/src/services/EntityResolver.ts +0 -128
- /package/dist/cjs/forms/{FormEngine.d.ts → form-engine.d.ts} +0 -0
- /package/dist/cjs/memory/{ReferenceIdGenerator.d.ts → reference-id-generator.d.ts} +0 -0
- /package/dist/cjs/memory/{TokenCounter.d.ts → token-counter.d.ts} +0 -0
- /package/dist/cjs/tools/{EntityResolverTool.d.ts → entity-resolver-tool.d.ts} +0 -0
- /package/dist/cjs/utils/{ResponseFormatter.d.ts → response-formatter.d.ts} +0 -0
- /package/dist/types/forms/{FormEngine.d.ts → form-engine.d.ts} +0 -0
- /package/dist/types/memory/{ReferenceIdGenerator.d.ts → reference-id-generator.d.ts} +0 -0
- /package/dist/types/memory/{TokenCounter.d.ts → token-counter.d.ts} +0 -0
- /package/dist/types/tools/{EntityResolverTool.d.ts → entity-resolver-tool.d.ts} +0 -0
- /package/dist/types/utils/{ResponseFormatter.d.ts → response-formatter.d.ts} +0 -0
- /package/src/memory/{ReferenceIdGenerator.ts → reference-id-generator.ts} +0 -0
- /package/src/memory/{TokenCounter.ts → token-counter.ts} +0 -0
- /package/src/tools/{EntityResolverTool.ts → entity-resolver-tool.ts} +0 -0
- /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
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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 '../
|
|
3
|
+
import { MCPClientManager } from '../mcp-client-manager';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Convert an MCP tool to a LangChain DynamicStructuredTool
|
|
@@ -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/
|
|
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:
|
|
134
|
-
type:
|
|
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
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
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,11 +1,11 @@
|
|
|
1
|
-
import { ContentStorage } from '../memory/
|
|
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
|
|
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<
|
|
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:
|
|
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,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,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,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';
|