@dainprotocol/service-sdk 2.0.51 → 2.0.53
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/dist/client/client.d.ts +4 -4
- package/dist/client/client.js +4 -6
- package/dist/client/client.js.map +1 -1
- package/dist/lib/schemaStructure.js +65 -2
- package/dist/lib/schemaStructure.js.map +1 -1
- package/package.json +10 -9
- package/dist/__tests__/api-sdk.test.d.ts +0 -1
- package/dist/__tests__/api-sdk.test.js +0 -102
- package/dist/__tests__/api-sdk.test.js.map +0 -1
- package/dist/__tests__/auth.test.d.ts +0 -1
- package/dist/__tests__/auth.test.js +0 -110
- package/dist/__tests__/auth.test.js.map +0 -1
- package/dist/__tests__/citations-plugin.test.d.ts +0 -1
- package/dist/__tests__/citations-plugin.test.js +0 -491
- package/dist/__tests__/citations-plugin.test.js.map +0 -1
- package/dist/__tests__/context-behavior.test.d.ts +0 -1
- package/dist/__tests__/context-behavior.test.js +0 -290
- package/dist/__tests__/context-behavior.test.js.map +0 -1
- package/dist/__tests__/convertToVercelTool.test.d.ts +0 -1
- package/dist/__tests__/convertToVercelTool.test.js +0 -527
- package/dist/__tests__/convertToVercelTool.test.js.map +0 -1
- package/dist/__tests__/core.test.d.ts +0 -1
- package/dist/__tests__/core.test.js +0 -154
- package/dist/__tests__/core.test.js.map +0 -1
- package/dist/__tests__/crypto-plugin.test.d.ts +0 -1
- package/dist/__tests__/crypto-plugin.test.js +0 -694
- package/dist/__tests__/crypto-plugin.test.js.map +0 -1
- package/dist/__tests__/humanActions.test.d.ts +0 -1
- package/dist/__tests__/humanActions.test.js +0 -221
- package/dist/__tests__/humanActions.test.js.map +0 -1
- package/dist/__tests__/integration.test.d.ts +0 -1
- package/dist/__tests__/integration.test.js +0 -1573
- package/dist/__tests__/integration.test.js.map +0 -1
- package/dist/__tests__/mealMeSchemas.test.d.ts +0 -576
- package/dist/__tests__/mealMeSchemas.test.js +0 -627
- package/dist/__tests__/mealMeSchemas.test.js.map +0 -1
- package/dist/__tests__/oauth-context-simple.test.d.ts +0 -1
- package/dist/__tests__/oauth-context-simple.test.js +0 -90
- package/dist/__tests__/oauth-context-simple.test.js.map +0 -1
- package/dist/__tests__/oauth-context.test.d.ts +0 -1
- package/dist/__tests__/oauth-context.test.js +0 -282
- package/dist/__tests__/oauth-context.test.js.map +0 -1
- package/dist/__tests__/oauth.test.d.ts +0 -1
- package/dist/__tests__/oauth.test.js +0 -378
- package/dist/__tests__/oauth.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-context.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-context.test.js +0 -165
- package/dist/__tests__/oauth2-client-context.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-integration.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-integration.test.js +0 -182
- package/dist/__tests__/oauth2-client-integration.test.js.map +0 -1
- package/dist/__tests__/oauth2-client-simple.test.d.ts +0 -1
- package/dist/__tests__/oauth2-client-simple.test.js +0 -144
- package/dist/__tests__/oauth2-client-simple.test.js.map +0 -1
- package/dist/__tests__/oauth2-context.test.d.ts +0 -1
- package/dist/__tests__/oauth2-context.test.js +0 -201
- package/dist/__tests__/oauth2-context.test.js.map +0 -1
- package/dist/__tests__/oauth2-datasource.test.d.ts +0 -1
- package/dist/__tests__/oauth2-datasource.test.js +0 -251
- package/dist/__tests__/oauth2-datasource.test.js.map +0 -1
- package/dist/__tests__/plugin.test.d.ts +0 -1
- package/dist/__tests__/plugin.test.js +0 -900
- package/dist/__tests__/plugin.test.js.map +0 -1
- package/dist/__tests__/processes.test.d.ts +0 -1
- package/dist/__tests__/processes.test.js +0 -239
- package/dist/__tests__/processes.test.js.map +0 -1
- package/dist/__tests__/streaming.test.d.ts +0 -1
- package/dist/__tests__/streaming.test.js +0 -592
- package/dist/__tests__/streaming.test.js.map +0 -1
- package/dist/__tests__/testEnums.d.ts +0 -1
- package/dist/__tests__/testEnums.js +0 -73
- package/dist/__tests__/testEnums.js.map +0 -1
- package/dist/__tests__/testOptionals.test.d.ts +0 -1
- package/dist/__tests__/testOptionals.test.js +0 -83
- package/dist/__tests__/testOptionals.test.js.map +0 -1
- package/dist/__tests__/types.test.d.ts +0 -1
- package/dist/__tests__/types.test.js +0 -98
- package/dist/__tests__/types.test.js.map +0 -1
- package/dist/service/zod-json-converter.d.ts +0 -14
- package/dist/service/zod-json-converter.js +0 -203
- package/dist/service/zod-json-converter.js.map +0 -1
|
@@ -1,290 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-behavior.test.js","sourceRoot":"","sources":["../../src/__tests__/context-behavior.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|