@dainprotocol/service-sdk 2.0.64 → 2.0.65

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 (81) hide show
  1. package/dist/__tests__/api-sdk.test.d.ts +1 -0
  2. package/dist/__tests__/api-sdk.test.js +102 -0
  3. package/dist/__tests__/api-sdk.test.js.map +1 -0
  4. package/dist/__tests__/auth.test.d.ts +1 -0
  5. package/dist/__tests__/auth.test.js +110 -0
  6. package/dist/__tests__/auth.test.js.map +1 -0
  7. package/dist/__tests__/citations-plugin.test.d.ts +1 -0
  8. package/dist/__tests__/citations-plugin.test.js +491 -0
  9. package/dist/__tests__/citations-plugin.test.js.map +1 -0
  10. package/dist/__tests__/context-behavior.test.d.ts +1 -0
  11. package/dist/__tests__/context-behavior.test.js +290 -0
  12. package/dist/__tests__/context-behavior.test.js.map +1 -0
  13. package/dist/__tests__/convertToVercelTool.test.d.ts +1 -0
  14. package/dist/__tests__/convertToVercelTool.test.js +527 -0
  15. package/dist/__tests__/convertToVercelTool.test.js.map +1 -0
  16. package/dist/__tests__/core.test.d.ts +1 -0
  17. package/dist/__tests__/core.test.js +154 -0
  18. package/dist/__tests__/core.test.js.map +1 -0
  19. package/dist/__tests__/crypto-plugin.test.d.ts +1 -0
  20. package/dist/__tests__/crypto-plugin.test.js +694 -0
  21. package/dist/__tests__/crypto-plugin.test.js.map +1 -0
  22. package/dist/__tests__/humanActions.test.d.ts +1 -0
  23. package/dist/__tests__/humanActions.test.js +221 -0
  24. package/dist/__tests__/humanActions.test.js.map +1 -0
  25. package/dist/__tests__/integration.test.d.ts +1 -0
  26. package/dist/__tests__/integration.test.js +1573 -0
  27. package/dist/__tests__/integration.test.js.map +1 -0
  28. package/dist/__tests__/mealMeSchemas.test.d.ts +576 -0
  29. package/dist/__tests__/mealMeSchemas.test.js +627 -0
  30. package/dist/__tests__/mealMeSchemas.test.js.map +1 -0
  31. package/dist/__tests__/oauth-context-simple.test.d.ts +1 -0
  32. package/dist/__tests__/oauth-context-simple.test.js +90 -0
  33. package/dist/__tests__/oauth-context-simple.test.js.map +1 -0
  34. package/dist/__tests__/oauth-context.test.d.ts +1 -0
  35. package/dist/__tests__/oauth-context.test.js +282 -0
  36. package/dist/__tests__/oauth-context.test.js.map +1 -0
  37. package/dist/__tests__/oauth.test.d.ts +1 -0
  38. package/dist/__tests__/oauth.test.js +378 -0
  39. package/dist/__tests__/oauth.test.js.map +1 -0
  40. package/dist/__tests__/oauth2-client-context.test.d.ts +1 -0
  41. package/dist/__tests__/oauth2-client-context.test.js +165 -0
  42. package/dist/__tests__/oauth2-client-context.test.js.map +1 -0
  43. package/dist/__tests__/oauth2-client-integration.test.d.ts +1 -0
  44. package/dist/__tests__/oauth2-client-integration.test.js +182 -0
  45. package/dist/__tests__/oauth2-client-integration.test.js.map +1 -0
  46. package/dist/__tests__/oauth2-client-simple.test.d.ts +1 -0
  47. package/dist/__tests__/oauth2-client-simple.test.js +144 -0
  48. package/dist/__tests__/oauth2-client-simple.test.js.map +1 -0
  49. package/dist/__tests__/oauth2-context.test.d.ts +1 -0
  50. package/dist/__tests__/oauth2-context.test.js +201 -0
  51. package/dist/__tests__/oauth2-context.test.js.map +1 -0
  52. package/dist/__tests__/oauth2-datasource.test.d.ts +1 -0
  53. package/dist/__tests__/oauth2-datasource.test.js +251 -0
  54. package/dist/__tests__/oauth2-datasource.test.js.map +1 -0
  55. package/dist/__tests__/plugin.test.d.ts +1 -0
  56. package/dist/__tests__/plugin.test.js +900 -0
  57. package/dist/__tests__/plugin.test.js.map +1 -0
  58. package/dist/__tests__/processes.test.d.ts +1 -0
  59. package/dist/__tests__/processes.test.js +239 -0
  60. package/dist/__tests__/processes.test.js.map +1 -0
  61. package/dist/__tests__/streaming.test.d.ts +1 -0
  62. package/dist/__tests__/streaming.test.js +592 -0
  63. package/dist/__tests__/streaming.test.js.map +1 -0
  64. package/dist/__tests__/testEnums.d.ts +1 -0
  65. package/dist/__tests__/testEnums.js +73 -0
  66. package/dist/__tests__/testEnums.js.map +1 -0
  67. package/dist/__tests__/testOptionals.test.d.ts +1 -0
  68. package/dist/__tests__/testOptionals.test.js +83 -0
  69. package/dist/__tests__/testOptionals.test.js.map +1 -0
  70. package/dist/__tests__/types.test.d.ts +1 -0
  71. package/dist/__tests__/types.test.js +98 -0
  72. package/dist/__tests__/types.test.js.map +1 -0
  73. package/dist/client/client.d.ts +2 -1
  74. package/dist/client/client.js +6 -13
  75. package/dist/client/client.js.map +1 -1
  76. package/dist/service/server.js +26 -3
  77. package/dist/service/server.js.map +1 -1
  78. package/dist/service/zod-json-converter.d.ts +14 -0
  79. package/dist/service/zod-json-converter.js +203 -0
  80. package/dist/service/zod-json-converter.js.map +1 -0
  81. package/package.json +9 -10
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const zod_1 = require("zod");
5
+ const nodeService_1 = require("../service/nodeService");
6
+ const core_1 = require("../service/core");
7
+ const ed25519_1 = require("@noble/curves/ed25519");
8
+ const bs58_1 = tslib_1.__importDefault(require("bs58"));
9
+ const client_auth_1 = require("../client/client-auth");
10
+ const client_1 = require("../client/client");
11
+ describe("Context Behavior", () => {
12
+ let server;
13
+ const port = 4591; // Changed port to avoid conflicts
14
+ // Generate keys for the service
15
+ const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
16
+ const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
17
+ // Generate keys for the client
18
+ const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
19
+ const agentAuth = new client_auth_1.DainClientAuth({
20
+ privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
21
+ agentId: "context-test-agent",
22
+ orgId: "context-test-org",
23
+ });
24
+ // Initialize the connection
25
+ let dainConnection;
26
+ // Use a closure to track context calls properly
27
+ const contextState = {
28
+ callCount: 0,
29
+ callHistory: [],
30
+ oauth2ClientPresent: false,
31
+ oauth2ClientCalls: []
32
+ };
33
+ // Create a context that tracks when it's called
34
+ const trackableContext = (0, core_1.createContext)({
35
+ id: "trackable-context",
36
+ name: "Trackable Context",
37
+ description: "Context that tracks when it's called",
38
+ getContextData: async (agentInfo, extraData) => {
39
+ contextState.callCount++;
40
+ // Track oauth2Client presence
41
+ const hasOAuth2Client = !!extraData?.oauth2Client;
42
+ contextState.oauth2ClientPresent = hasOAuth2Client;
43
+ contextState.oauth2ClientCalls.push(hasOAuth2Client);
44
+ const callInfo = {
45
+ callNumber: contextState.callCount,
46
+ timestamp: new Date().toISOString(),
47
+ agentInfo,
48
+ hasPlugins: !!extraData?.plugins,
49
+ hasOAuth2Client: hasOAuth2Client,
50
+ oauth2ClientType: hasOAuth2Client ? typeof extraData.oauth2Client : 'undefined',
51
+ oauth2ClientMethods: hasOAuth2Client && extraData.oauth2Client ? Object.keys(extraData.oauth2Client) : [],
52
+ pluginKeys: Object.keys(extraData?.plugins || {}),
53
+ extraDataKeys: Object.keys(extraData || {})
54
+ };
55
+ contextState.callHistory.push(callInfo);
56
+ console.log(`Context called! Count: ${contextState.callCount}, OAuth2Client present: ${hasOAuth2Client}, Stack trace:`, new Error().stack?.split('\n').slice(1, 5).join('\n'));
57
+ return {
58
+ callCount: contextState.callCount,
59
+ lastCall: callInfo,
60
+ hasOAuth2Client: hasOAuth2Client,
61
+ message: `Context called ${contextState.callCount} times`
62
+ };
63
+ }
64
+ });
65
+ // Create a simple tool
66
+ const testTool = (0, core_1.createTool)({
67
+ id: "test-tool",
68
+ name: "Test Tool",
69
+ description: "Tool for testing context behavior",
70
+ input: zod_1.z.object({
71
+ message: zod_1.z.string()
72
+ }),
73
+ output: zod_1.z.object({
74
+ result: zod_1.z.string(),
75
+ contextCallsAtExecution: zod_1.z.number()
76
+ }),
77
+ handler: async (input, agentInfo, context) => {
78
+ // Track how many times context was called at tool execution time
79
+ const currentCount = contextState.callCount;
80
+ console.log(`Tool executing with message: "${input.message}", context count at execution: ${currentCount}`);
81
+ return {
82
+ text: `Processed: ${input.message}`,
83
+ data: {
84
+ result: `Tool executed with message: ${input.message}`,
85
+ contextCallsAtExecution: currentCount
86
+ },
87
+ ui: undefined
88
+ };
89
+ }
90
+ });
91
+ const dainService = (0, nodeService_1.defineDAINService)({
92
+ metadata: {
93
+ title: "Context Behavior Test",
94
+ description: "Testing when contexts are called",
95
+ version: "1.0.0",
96
+ author: "Test",
97
+ tags: ["test", "context"]
98
+ },
99
+ identity: {
100
+ publicKey: bs58_1.default.encode(publicKey),
101
+ privateKey: bs58_1.default.encode(privateKey),
102
+ agentId: "test-service-agent",
103
+ orgId: "test-service-org"
104
+ },
105
+ tools: [testTool],
106
+ contexts: [trackableContext]
107
+ });
108
+ beforeAll(async () => {
109
+ // Reset state
110
+ contextState.callCount = 0;
111
+ contextState.callHistory = [];
112
+ server = await dainService.startNode({ port });
113
+ dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
114
+ });
115
+ afterAll(async () => {
116
+ if (server && server.shutdown) {
117
+ await server.shutdown();
118
+ }
119
+ });
120
+ beforeEach(() => {
121
+ // Reset counters before each test
122
+ contextState.callCount = 0;
123
+ contextState.callHistory = [];
124
+ contextState.oauth2ClientPresent = false;
125
+ contextState.oauth2ClientCalls = [];
126
+ });
127
+ describe("Context endpoint calls", () => {
128
+ it("should call context when listing contexts", async () => {
129
+ const contexts = await dainConnection.listContexts();
130
+ expect(contexts).toHaveLength(1);
131
+ expect(contexts[0].id).toBe("trackable-context");
132
+ // listContexts doesn't call getContextData, just lists them
133
+ expect(contextState.callCount).toBe(0);
134
+ });
135
+ it("should call context when getting all contexts with data", async () => {
136
+ const contexts = await dainConnection.getAllContexts();
137
+ expect(contextState.callCount).toBe(1);
138
+ expect(contexts).toHaveLength(1);
139
+ expect(contexts[0].id).toBe("trackable-context");
140
+ expect(contexts[0].data.callCount).toBe(1);
141
+ expect(contexts[0].data.message).toBe("Context called 1 times");
142
+ });
143
+ it("should call context each time getAllContexts is called", async () => {
144
+ // First call
145
+ const contexts1 = await dainConnection.getAllContexts();
146
+ expect(contextState.callCount).toBe(1);
147
+ expect(contexts1[0].data.callCount).toBe(1);
148
+ // Second call
149
+ const contexts2 = await dainConnection.getAllContexts();
150
+ expect(contextState.callCount).toBe(2);
151
+ expect(contexts2[0].data.callCount).toBe(2);
152
+ // Third call
153
+ const contexts3 = await dainConnection.getAllContexts();
154
+ expect(contextState.callCount).toBe(3);
155
+ expect(contexts3[0].data.callCount).toBe(3);
156
+ });
157
+ });
158
+ describe("Tool execution and context", () => {
159
+ it("should NOT call context during regular tool execution", async () => {
160
+ console.log("TEST: Starting regular tool execution test");
161
+ const initialCount = contextState.callCount;
162
+ const result = await dainConnection.callTool("test-tool", {
163
+ message: "Hello"
164
+ });
165
+ console.log("TEST: After regular tool call, context count:", contextState.callCount);
166
+ // Context should NOT be called during regular tool execution
167
+ expect(contextState.callCount).toBe(initialCount);
168
+ expect(result.text).toBe("Processed: Hello");
169
+ expect(result.data.result).toBe("Tool executed with message: Hello");
170
+ expect(result.data.contextCallsAtExecution).toBe(initialCount);
171
+ // No context field in regular tool response
172
+ expect(result.context).toBeUndefined();
173
+ });
174
+ it("should call context when using callToolAndGetNewContext", async () => {
175
+ console.log("TEST: Starting callToolAndGetNewContext test");
176
+ const initialCount = contextState.callCount;
177
+ const result = await dainConnection.callToolAndGetNewContext("test-tool", {
178
+ message: "Hello with context"
179
+ });
180
+ console.log("TEST: After callToolAndGetNewContext, context count:", contextState.callCount);
181
+ // Context SHOULD be called when using callToolAndGetNewContext
182
+ expect(contextState.callCount).toBe(initialCount + 1);
183
+ // Check tool result
184
+ expect(result.toolResult).toBeDefined();
185
+ expect(result.toolResult.text).toBe("Processed: Hello with context");
186
+ expect(result.toolResult.data.result).toBe("Tool executed with message: Hello with context");
187
+ // Tool was executed BEFORE context was gathered
188
+ expect(result.toolResult.data.contextCallsAtExecution).toBe(initialCount);
189
+ // Check context was returned
190
+ expect(result.context).toBeDefined();
191
+ expect(Array.isArray(result.context)).toBe(true);
192
+ expect(result.context).toHaveLength(1);
193
+ const context = result.context[0];
194
+ expect(context.id).toBe("trackable-context");
195
+ expect(context.data.callCount).toBe(initialCount + 1);
196
+ });
197
+ it("should call context AFTER tool execution when using callToolAndGetNewContext", async () => {
198
+ console.log("TEST: Starting execution order test");
199
+ // First verify context hasn't been called yet in this test
200
+ const initialCount = contextState.callCount;
201
+ const result = await dainConnection.callToolAndGetNewContext("test-tool", {
202
+ message: "Testing execution order"
203
+ });
204
+ // The tool handler captured contextCallCount at execution time
205
+ expect(result.toolResult.data.contextCallsAtExecution).toBe(initialCount);
206
+ // But the context was called after tool execution
207
+ expect(contextState.callCount).toBe(initialCount + 1);
208
+ expect(result.context[0].data.callCount).toBe(initialCount + 1);
209
+ });
210
+ it("should call context each time callToolAndGetNewContext is used", async () => {
211
+ const startCount = contextState.callCount;
212
+ // First call
213
+ const result1 = await dainConnection.callToolAndGetNewContext("test-tool", {
214
+ message: "First call"
215
+ });
216
+ expect(contextState.callCount).toBe(startCount + 1);
217
+ expect(result1.context[0].data.callCount).toBe(startCount + 1);
218
+ // Second call
219
+ const result2 = await dainConnection.callToolAndGetNewContext("test-tool", {
220
+ message: "Second call"
221
+ });
222
+ expect(contextState.callCount).toBe(startCount + 2);
223
+ expect(result2.context[0].data.callCount).toBe(startCount + 2);
224
+ // Third call
225
+ const result3 = await dainConnection.callToolAndGetNewContext("test-tool", {
226
+ message: "Third call"
227
+ });
228
+ expect(contextState.callCount).toBe(startCount + 3);
229
+ expect(result3.context[0].data.callCount).toBe(startCount + 3);
230
+ });
231
+ });
232
+ describe("Context calling patterns", () => {
233
+ it("demonstrates the intended behavior: context is opt-in per request", async () => {
234
+ const startCount = contextState.callCount;
235
+ // Context is NOT automatically called before every tool
236
+ const regularResult = await dainConnection.callTool("test-tool", {
237
+ message: "Regular call"
238
+ });
239
+ expect(contextState.callCount).toBe(startCount);
240
+ // Context IS called when explicitly requested
241
+ const contextResult = await dainConnection.callToolAndGetNewContext("test-tool", {
242
+ message: "Call with context"
243
+ });
244
+ expect(contextState.callCount).toBe(startCount + 1);
245
+ // You can also get context data separately without tool execution
246
+ const contexts = await dainConnection.getAllContexts();
247
+ expect(contextState.callCount).toBe(startCount + 2); // Called again for getAllContexts
248
+ // This design allows:
249
+ // 1. Efficient tool execution without context overhead when not needed
250
+ // 2. Fresh context data when explicitly requested
251
+ // 3. Flexibility for the client to decide when context is needed
252
+ });
253
+ });
254
+ describe("OAuth2Client passing to context", () => {
255
+ it("should NOT pass oauth2Client when oauth2 is not configured", async () => {
256
+ // Since our test service doesn't have oauth2 configured, oauth2Client should be undefined
257
+ const contexts = await dainConnection.getAllContexts();
258
+ expect(contexts).toHaveLength(1);
259
+ const lastCall = contextState.callHistory[contextState.callHistory.length - 1];
260
+ // Verify oauth2Client was passed but undefined (service has no oauth2 config)
261
+ expect(lastCall.hasOAuth2Client).toBe(false);
262
+ expect(lastCall.oauth2ClientType).toBe('undefined');
263
+ expect(lastCall.extraDataKeys).toContain('plugins');
264
+ // oauth2Client key is present but value is undefined when oauth2 is not configured
265
+ expect(lastCall.extraDataKeys).toContain('oauth2Client');
266
+ });
267
+ it("should track oauth2Client presence across different endpoint calls", async () => {
268
+ // Reset tracking
269
+ contextState.oauth2ClientCalls = [];
270
+ // Call various endpoints that trigger context
271
+ await dainConnection.getAllContexts();
272
+ await dainConnection.callToolAndGetNewContext("test-tool", { message: "test" });
273
+ // All calls should consistently show no oauth2Client (since not configured)
274
+ expect(contextState.oauth2ClientCalls).toHaveLength(2);
275
+ expect(contextState.oauth2ClientCalls.every(hasClient => hasClient === false)).toBe(true);
276
+ });
277
+ it("should include oauth2Client in extraData keys when present", async () => {
278
+ // Get context to check the extraData structure
279
+ await dainConnection.getAllContexts();
280
+ const lastCall = contextState.callHistory[contextState.callHistory.length - 1];
281
+ // Verify the structure of extraData
282
+ expect(lastCall.extraDataKeys).toBeDefined();
283
+ expect(Array.isArray(lastCall.extraDataKeys)).toBe(true);
284
+ // Should have plugins but not oauth2Client (not configured in this test)
285
+ expect(lastCall.extraDataKeys).toContain('plugins');
286
+ expect(lastCall.hasOAuth2Client).toBe(false);
287
+ });
288
+ });
289
+ });
290
+ //# sourceMappingURL=context-behavior.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-behavior.test.js","sourceRoot":"","sources":["../../src/__tests__/context-behavior.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};