@dainprotocol/service-sdk 2.0.54 → 2.0.55

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 (82) hide show
  1. package/dist/client/client.d.ts +4 -4
  2. package/dist/client/client.js +2 -4
  3. package/dist/client/client.js.map +1 -1
  4. package/dist/lib/schemaStructure.d.ts +2 -1
  5. package/dist/lib/schemaStructure.js +25 -11
  6. package/dist/lib/schemaStructure.js.map +1 -1
  7. package/package.json +10 -9
  8. package/dist/__tests__/api-sdk.test.d.ts +0 -1
  9. package/dist/__tests__/api-sdk.test.js +0 -102
  10. package/dist/__tests__/api-sdk.test.js.map +0 -1
  11. package/dist/__tests__/auth.test.d.ts +0 -1
  12. package/dist/__tests__/auth.test.js +0 -110
  13. package/dist/__tests__/auth.test.js.map +0 -1
  14. package/dist/__tests__/citations-plugin.test.d.ts +0 -1
  15. package/dist/__tests__/citations-plugin.test.js +0 -491
  16. package/dist/__tests__/citations-plugin.test.js.map +0 -1
  17. package/dist/__tests__/context-behavior.test.d.ts +0 -1
  18. package/dist/__tests__/context-behavior.test.js +0 -290
  19. package/dist/__tests__/context-behavior.test.js.map +0 -1
  20. package/dist/__tests__/convertToVercelTool.test.d.ts +0 -1
  21. package/dist/__tests__/convertToVercelTool.test.js +0 -527
  22. package/dist/__tests__/convertToVercelTool.test.js.map +0 -1
  23. package/dist/__tests__/core.test.d.ts +0 -1
  24. package/dist/__tests__/core.test.js +0 -154
  25. package/dist/__tests__/core.test.js.map +0 -1
  26. package/dist/__tests__/crypto-plugin.test.d.ts +0 -1
  27. package/dist/__tests__/crypto-plugin.test.js +0 -694
  28. package/dist/__tests__/crypto-plugin.test.js.map +0 -1
  29. package/dist/__tests__/humanActions.test.d.ts +0 -1
  30. package/dist/__tests__/humanActions.test.js +0 -221
  31. package/dist/__tests__/humanActions.test.js.map +0 -1
  32. package/dist/__tests__/integration.test.d.ts +0 -1
  33. package/dist/__tests__/integration.test.js +0 -1573
  34. package/dist/__tests__/integration.test.js.map +0 -1
  35. package/dist/__tests__/mealMeSchemas.test.d.ts +0 -576
  36. package/dist/__tests__/mealMeSchemas.test.js +0 -627
  37. package/dist/__tests__/mealMeSchemas.test.js.map +0 -1
  38. package/dist/__tests__/oauth-context-simple.test.d.ts +0 -1
  39. package/dist/__tests__/oauth-context-simple.test.js +0 -90
  40. package/dist/__tests__/oauth-context-simple.test.js.map +0 -1
  41. package/dist/__tests__/oauth-context.test.d.ts +0 -1
  42. package/dist/__tests__/oauth-context.test.js +0 -282
  43. package/dist/__tests__/oauth-context.test.js.map +0 -1
  44. package/dist/__tests__/oauth.test.d.ts +0 -1
  45. package/dist/__tests__/oauth.test.js +0 -378
  46. package/dist/__tests__/oauth.test.js.map +0 -1
  47. package/dist/__tests__/oauth2-client-context.test.d.ts +0 -1
  48. package/dist/__tests__/oauth2-client-context.test.js +0 -165
  49. package/dist/__tests__/oauth2-client-context.test.js.map +0 -1
  50. package/dist/__tests__/oauth2-client-integration.test.d.ts +0 -1
  51. package/dist/__tests__/oauth2-client-integration.test.js +0 -182
  52. package/dist/__tests__/oauth2-client-integration.test.js.map +0 -1
  53. package/dist/__tests__/oauth2-client-simple.test.d.ts +0 -1
  54. package/dist/__tests__/oauth2-client-simple.test.js +0 -144
  55. package/dist/__tests__/oauth2-client-simple.test.js.map +0 -1
  56. package/dist/__tests__/oauth2-context.test.d.ts +0 -1
  57. package/dist/__tests__/oauth2-context.test.js +0 -201
  58. package/dist/__tests__/oauth2-context.test.js.map +0 -1
  59. package/dist/__tests__/oauth2-datasource.test.d.ts +0 -1
  60. package/dist/__tests__/oauth2-datasource.test.js +0 -251
  61. package/dist/__tests__/oauth2-datasource.test.js.map +0 -1
  62. package/dist/__tests__/plugin.test.d.ts +0 -1
  63. package/dist/__tests__/plugin.test.js +0 -900
  64. package/dist/__tests__/plugin.test.js.map +0 -1
  65. package/dist/__tests__/processes.test.d.ts +0 -1
  66. package/dist/__tests__/processes.test.js +0 -239
  67. package/dist/__tests__/processes.test.js.map +0 -1
  68. package/dist/__tests__/streaming.test.d.ts +0 -1
  69. package/dist/__tests__/streaming.test.js +0 -592
  70. package/dist/__tests__/streaming.test.js.map +0 -1
  71. package/dist/__tests__/testEnums.d.ts +0 -1
  72. package/dist/__tests__/testEnums.js +0 -73
  73. package/dist/__tests__/testEnums.js.map +0 -1
  74. package/dist/__tests__/testOptionals.test.d.ts +0 -1
  75. package/dist/__tests__/testOptionals.test.js +0 -83
  76. package/dist/__tests__/testOptionals.test.js.map +0 -1
  77. package/dist/__tests__/types.test.d.ts +0 -1
  78. package/dist/__tests__/types.test.js +0 -98
  79. package/dist/__tests__/types.test.js.map +0 -1
  80. package/dist/service/zod-json-converter.d.ts +0 -14
  81. package/dist/service/zod-json-converter.js +0 -203
  82. package/dist/service/zod-json-converter.js.map +0 -1
@@ -1,182 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
4
- describe('OAuth2Client Integration Tests', () => {
5
- let oauth2Client;
6
- let storage;
7
- beforeEach(() => {
8
- // Use in-memory storage for tests
9
- storage = new oauth2_token_manager_1.InMemoryStorageAdapter();
10
- oauth2Client = new oauth2_token_manager_1.OAuth2Client({
11
- storage,
12
- providers: {
13
- google: {
14
- clientId: 'test-client-id',
15
- clientSecret: 'test-client-secret',
16
- authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
17
- tokenUrl: 'https://oauth2.googleapis.com/token',
18
- redirectUri: 'http://localhost:3000/callback',
19
- scopes: ['email', 'profile'],
20
- extraAuthParams: {
21
- access_type: 'offline',
22
- prompt: 'consent'
23
- }
24
- }
25
- },
26
- autoRefresh: {
27
- enabled: true,
28
- refreshBuffer: 10,
29
- onRefreshError: (error, token) => {
30
- console.error('Refresh error:', error.message);
31
- }
32
- }
33
- });
34
- });
35
- describe('Token Storage', () => {
36
- it('should use the provided storage adapter', async () => {
37
- // Generate auth URL
38
- const { url, state } = await oauth2Client.authorize({
39
- provider: 'google',
40
- userId: 'agent123',
41
- email: 'agent123@dain.local'
42
- });
43
- expect(url).toContain('https://accounts.google.com/o/oauth2/v2/auth');
44
- expect(url).toContain('access_type=offline');
45
- expect(url).toContain('prompt=consent');
46
- expect(state).toBeDefined();
47
- });
48
- it('should save tokens to the provided storage', async () => {
49
- const mockToken = {
50
- accessToken: 'mock-access-token',
51
- refreshToken: 'mock-refresh-token',
52
- expiresAt: new Date(Date.now() + 3600000), // 1 hour
53
- tokenType: 'Bearer',
54
- scope: 'email profile'
55
- };
56
- // Save a token
57
- const saved = await storage.saveToken({
58
- provider: 'google',
59
- userId: 'agent123',
60
- email: 'agent123@dain.local',
61
- token: mockToken
62
- });
63
- expect(saved).toBeDefined();
64
- expect(saved.provider).toBe('google');
65
- expect(saved.userId).toBe('agent123');
66
- expect(saved.email).toBe('agent123@dain.local');
67
- });
68
- it('should query tokens with auto-refresh', async () => {
69
- // Save an expired token with refresh token
70
- const expiredToken = {
71
- accessToken: 'expired-access-token',
72
- refreshToken: 'valid-refresh-token',
73
- expiresAt: new Date(Date.now() - 3600000), // Expired 1 hour ago
74
- tokenType: 'Bearer',
75
- scope: 'email profile'
76
- };
77
- await storage.saveToken({
78
- provider: 'google',
79
- userId: 'agent123',
80
- email: 'agent123@dain.local',
81
- token: expiredToken
82
- });
83
- // Query tokens - should attempt refresh
84
- const tokens = await oauth2Client.queryTokens({
85
- userId: 'agent123',
86
- provider: 'google'
87
- });
88
- // Since we can't actually refresh in tests, the expired token would be filtered out
89
- expect(tokens).toEqual([]);
90
- });
91
- it('should work with agent ID to email mapping', async () => {
92
- const agentId = 'agent123';
93
- const dainEmail = `${agentId}@dain.local`;
94
- // Save a valid token
95
- const validToken = {
96
- accessToken: 'valid-access-token',
97
- refreshToken: 'valid-refresh-token',
98
- expiresAt: new Date(Date.now() + 3600000), // 1 hour from now
99
- tokenType: 'Bearer',
100
- scope: 'email profile'
101
- };
102
- await storage.saveToken({
103
- provider: 'google',
104
- userId: agentId,
105
- email: dainEmail,
106
- token: validToken
107
- });
108
- // Query by userId (agentId)
109
- const tokensByUser = await oauth2Client.queryTokens({
110
- userId: agentId
111
- });
112
- expect(tokensByUser).toHaveLength(1);
113
- expect(tokensByUser[0].userId).toBe(agentId);
114
- expect(tokensByUser[0].email).toBe(dainEmail);
115
- // Query by email
116
- const tokensByEmail = await oauth2Client.queryTokens({
117
- email: dainEmail
118
- });
119
- expect(tokensByEmail).toHaveLength(1);
120
- expect(tokensByEmail[0].userId).toBe(agentId);
121
- expect(tokensByEmail[0].email).toBe(dainEmail);
122
- // Get valid token
123
- const validTokenResult = await oauth2Client.getValidToken('google', dainEmail);
124
- expect(validTokenResult.accessToken).toBe('valid-access-token');
125
- });
126
- });
127
- describe('OAuth2Client Methods', () => {
128
- it('should expose all necessary methods', () => {
129
- // Check that all required methods exist
130
- expect(typeof oauth2Client.authorize).toBe('function');
131
- expect(typeof oauth2Client.handleCallback).toBe('function');
132
- expect(typeof oauth2Client.queryTokens).toBe('function');
133
- expect(typeof oauth2Client.getAccessToken).toBe('function');
134
- expect(typeof oauth2Client.getValidToken).toBe('function');
135
- expect(typeof oauth2Client.getTokensByUserId).toBe('function');
136
- expect(typeof oauth2Client.getTokensByEmail).toBe('function');
137
- expect(typeof oauth2Client.deleteToken).toBe('function');
138
- expect(typeof oauth2Client.cleanupExpiredTokens).toBe('function');
139
- });
140
- it('should include extraAuthParams in authorization URL', async () => {
141
- const { url } = await oauth2Client.authorize({
142
- provider: 'google',
143
- userId: 'agent123',
144
- email: 'agent123@dain.local'
145
- });
146
- const urlObj = new URL(url);
147
- expect(urlObj.searchParams.get('access_type')).toBe('offline');
148
- expect(urlObj.searchParams.get('prompt')).toBe('consent');
149
- expect(urlObj.searchParams.get('client_id')).toBe('test-client-id');
150
- expect(urlObj.searchParams.get('redirect_uri')).toBe('http://localhost:3000/callback');
151
- expect(urlObj.searchParams.get('scope')).toBe('email profile');
152
- });
153
- });
154
- describe('DrizzleStorageAdapter Compatibility', () => {
155
- it('should work with any storage adapter implementing the interface', async () => {
156
- // This test demonstrates that OAuth2Client works with any storage adapter
157
- // In production, this would be DrizzleStorageAdapter
158
- const customStorage = new oauth2_token_manager_1.InMemoryStorageAdapter();
159
- const clientWithCustomStorage = new oauth2_token_manager_1.OAuth2Client({
160
- storage: customStorage,
161
- providers: {
162
- google: {
163
- clientId: 'test-client-id',
164
- clientSecret: 'test-client-secret',
165
- authorizationUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
166
- tokenUrl: 'https://oauth2.googleapis.com/token',
167
- redirectUri: 'http://localhost:3000/callback',
168
- scopes: ['email', 'profile']
169
- }
170
- }
171
- });
172
- // Should work the same way
173
- const { url } = await clientWithCustomStorage.authorize({
174
- provider: 'google',
175
- userId: 'agent123',
176
- email: 'agent123@dain.local'
177
- });
178
- expect(url).toContain('https://accounts.google.com/o/oauth2/v2/auth');
179
- });
180
- });
181
- });
182
- //# sourceMappingURL=oauth2-client-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client-integration.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-client-integration.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,144 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const server_1 = require("../service/server");
5
- const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
6
- const core_1 = require("../service/core");
7
- const zod_1 = require("zod");
8
- const tweetnacl_1 = tslib_1.__importDefault(require("tweetnacl"));
9
- describe("OAuth2Client in server.ts", () => {
10
- it("should make oauth2Client available in tool context when OAuth2 is configured", async () => {
11
- // Generate test keys
12
- const keyPair = tweetnacl_1.default.sign.keyPair();
13
- const privateKey = keyPair.secretKey.slice(0, 32);
14
- let capturedContext = null;
15
- const tool = (0, core_1.createTool)({
16
- id: "test-oauth-tool",
17
- name: "Test OAuth Tool",
18
- description: "Test tool",
19
- input: zod_1.z.object({}),
20
- output: zod_1.z.object({ success: zod_1.z.boolean() }),
21
- handler: async (input, agentInfo, context) => {
22
- capturedContext = context;
23
- return {
24
- text: "Success",
25
- data: { success: true },
26
- ui: null,
27
- };
28
- },
29
- });
30
- const config = {
31
- identity: {
32
- orgId: "test-org",
33
- agentId: "test-agent",
34
- },
35
- oauth2: {
36
- baseUrl: "http://localhost:9999",
37
- tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter(),
38
- providers: {
39
- google: {
40
- clientId: "test-client",
41
- clientSecret: "test-secret",
42
- authorizationUrl: "https://accounts.google.com/o/oauth2/v2/auth",
43
- tokenUrl: "https://oauth2.googleapis.com/token",
44
- scopes: ["profile", "email"],
45
- },
46
- },
47
- },
48
- };
49
- const app = (0, server_1.setupHttpServer)(config, [tool], [], [], {
50
- id: "test",
51
- orgId: "test-org",
52
- agentId: "test-agent",
53
- title: "Test",
54
- description: "Test",
55
- version: "1.0.0",
56
- author: "Test",
57
- tags: [],
58
- }, privateKey, [], [], [], []);
59
- // Verify oauth2 is set on the app
60
- expect(app.oauth2).toBeDefined();
61
- expect(app.oauth2?.client).toBeDefined();
62
- // Log for debugging
63
- console.log("app.oauth2 exists:", !!app.oauth2);
64
- console.log("app.oauth2.client exists:", !!(app.oauth2 && app.oauth2.client));
65
- // Simulate tool execution to capture context - this is what server.ts does
66
- const toolContext = {
67
- app,
68
- oauth2: app.oauth2,
69
- oauth2Client: app.oauth2 ? app.oauth2.client : undefined,
70
- extraData: {},
71
- updateUI: async () => { },
72
- addProcess: async () => { },
73
- };
74
- await tool.handler({}, { agentId: "test", address: "test", id: "test" }, toolContext);
75
- // Log captured context
76
- console.log("Captured context keys:", Object.keys(capturedContext || {}));
77
- console.log("Context oauth2:", !!capturedContext?.oauth2);
78
- console.log("Context oauth2Client:", !!capturedContext?.oauth2Client);
79
- // Verify the captured context
80
- expect(capturedContext).toBeDefined();
81
- expect(capturedContext.oauth2).toBeDefined();
82
- expect(capturedContext.oauth2Client).toBeDefined();
83
- // Verify oauth2Client has the expected methods
84
- expect(typeof capturedContext.oauth2Client.queryTokens).toBe("function");
85
- expect(typeof capturedContext.oauth2Client.getValidToken).toBe("function");
86
- expect(typeof capturedContext.oauth2Client.getAccessToken).toBe("function");
87
- expect(typeof capturedContext.oauth2Client.registerProvider).toBe("function");
88
- });
89
- it("should have oauth2Client as undefined when OAuth2 is not configured", async () => {
90
- // Generate test keys
91
- const keyPair = tweetnacl_1.default.sign.keyPair();
92
- const privateKey = keyPair.secretKey.slice(0, 32);
93
- let capturedContext = null;
94
- const tool = (0, core_1.createTool)({
95
- id: "test-no-oauth-tool",
96
- name: "Test No OAuth Tool",
97
- description: "Test tool",
98
- input: zod_1.z.object({}),
99
- output: zod_1.z.object({ success: zod_1.z.boolean() }),
100
- handler: async (input, agentInfo, context) => {
101
- capturedContext = context;
102
- return {
103
- text: "Success",
104
- data: { success: true },
105
- ui: null,
106
- };
107
- },
108
- });
109
- const config = {
110
- identity: {
111
- orgId: "test-org",
112
- agentId: "test-agent",
113
- },
114
- // No oauth2 configuration
115
- };
116
- const app = (0, server_1.setupHttpServer)(config, [tool], [], [], {
117
- id: "test",
118
- orgId: "test-org",
119
- agentId: "test-agent",
120
- title: "Test",
121
- description: "Test",
122
- version: "1.0.0",
123
- author: "Test",
124
- tags: [],
125
- }, privateKey, [], [], [], []);
126
- // Verify oauth2 is not set on the app
127
- expect(app.oauth2).toBeUndefined();
128
- // Simulate tool execution to capture context - this is what server.ts does
129
- const toolContext = {
130
- app,
131
- oauth2: app.oauth2,
132
- oauth2Client: app.oauth2 ? app.oauth2.client : undefined,
133
- extraData: {},
134
- updateUI: async () => { },
135
- addProcess: async () => { },
136
- };
137
- await tool.handler({}, { agentId: "test", address: "test", id: "test" }, toolContext);
138
- // Verify the captured context
139
- expect(capturedContext).toBeDefined();
140
- expect(capturedContext.oauth2).toBeUndefined();
141
- expect(capturedContext.oauth2Client).toBeUndefined();
142
- });
143
- });
144
- //# sourceMappingURL=oauth2-client-simple.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client-simple.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-client-simple.test.ts"],"names":[],"mappings":";;;AAAA,8CAAoD;AACpD,6EAA4E;AAC5E,0CAA6C;AAC7C,6BAAwB;AACxB,kEAA6B;AAG7B,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,qBAAqB;QACrB,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,eAAe,GAAQ,IAAI,CAAC;QAEhC,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;YACtB,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;gBAC3C,eAAe,GAAG,OAAO,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBACvB,EAAE,EAAE,IAAI;iBACT,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,YAAY;aACtB;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,IAAI,6CAAsB,EAAE;gBACxC,SAAS,EAAE;oBACT,MAAM,EAAE;wBACN,QAAQ,EAAE,aAAa;wBACvB,YAAY,EAAE,aAAa;wBAC3B,gBAAgB,EAAE,8CAA8C;wBAChE,QAAQ,EAAE,qCAAqC;wBAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;qBAC7B;iBACF;aACF;SACF,CAAC;QAEF,MAAM,GAAG,GAAG,IAAA,wBAAe,EACzB,MAAa,EACb,CAAC,IAAI,CAAC,EACN,EAAE,EACF,EAAE,EACF;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;SACT,EACD,UAAU,EACV,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;QAEF,kCAAkC;QAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAEzC,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9E,2EAA2E;QAC3E,MAAM,WAAW,GAAG;YAClB,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACxB,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC3B,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAChB,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAChD,WAAW,CACZ,CAAC;QAEF,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAEtE,8BAA8B;QAC9B,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnD,+CAA+C;QAC/C,MAAM,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,CAAC,OAAO,eAAe,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,qBAAqB;QACrB,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElD,IAAI,eAAe,GAAQ,IAAI,CAAC;QAEhC,MAAM,IAAI,GAAG,IAAA,iBAAU,EAAC;YACtB,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;gBAC3C,eAAe,GAAG,OAAO,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;oBACvB,EAAE,EAAE,IAAI;iBACT,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,YAAY;aACtB;YACD,0BAA0B;SAC3B,CAAC;QAEF,MAAM,GAAG,GAAG,IAAA,wBAAe,EACzB,MAAa,EACb,CAAC,IAAI,CAAC,EACN,EAAE,EACF,EAAE,EACF;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;SACT,EACD,UAAU,EACV,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACH,CAAC;QAEF,sCAAsC;QACtC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAEnC,2EAA2E;QAC3E,MAAM,WAAW,GAAG;YAClB,GAAG;YACH,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACxB,UAAU,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SAC3B,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAChB,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAChD,WAAW,CACZ,CAAC;QAEF,8BAA8B;QAC9B,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,201 +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
- const oauth2_token_manager_1 = require("@dainprotocol/oauth2-token-manager");
12
- describe("OAuth2Client in Context", () => {
13
- let server;
14
- const port = 4592; // Different port to avoid conflicts
15
- // Generate keys for the service
16
- const privateKey = ed25519_1.ed25519.utils.randomPrivateKey();
17
- const publicKey = ed25519_1.ed25519.getPublicKey(privateKey);
18
- // Generate keys for the client
19
- const clientPrivateKey = ed25519_1.ed25519.utils.randomPrivateKey();
20
- const agentAuth = new client_auth_1.DainClientAuth({
21
- privateKeyBase58: bs58_1.default.encode(clientPrivateKey),
22
- agentId: "oauth2-context-test-agent",
23
- orgId: "oauth2-context-test-org",
24
- });
25
- let dainConnection;
26
- // Track oauth2Client details
27
- const oauth2ClientInfo = {
28
- wasPresent: false,
29
- hadGetAccessTokenMethod: false,
30
- hadGetValidTokenMethod: false,
31
- methodsFound: [],
32
- callCount: 0
33
- };
34
- // Create a context that verifies oauth2Client
35
- const oauth2VerifyContext = (0, core_1.createContext)({
36
- id: "oauth2-verify-context",
37
- name: "OAuth2 Verify Context",
38
- description: "Context that verifies oauth2Client is passed",
39
- getContextData: async (agentInfo, extraData) => {
40
- oauth2ClientInfo.callCount++;
41
- // Check if oauth2Client is present
42
- oauth2ClientInfo.wasPresent = !!extraData?.oauth2Client;
43
- if (extraData?.oauth2Client) {
44
- // Get all property names including methods from the prototype
45
- const allProps = [...Object.keys(extraData.oauth2Client)];
46
- const prototypeMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(extraData.oauth2Client));
47
- oauth2ClientInfo.methodsFound = [...new Set([...allProps, ...prototypeMethods])].filter(m => m !== 'constructor');
48
- // Check for expected methods
49
- oauth2ClientInfo.hadGetAccessTokenMethod = typeof extraData.oauth2Client.getAccessToken === 'function';
50
- oauth2ClientInfo.hadGetValidTokenMethod = typeof extraData.oauth2Client.getValidToken === 'function';
51
- console.log("OAuth2Client detected with methods:", oauth2ClientInfo.methodsFound);
52
- }
53
- else {
54
- console.log("No OAuth2Client in extraData");
55
- }
56
- return {
57
- oauth2ClientPresent: oauth2ClientInfo.wasPresent,
58
- oauth2ClientMethods: oauth2ClientInfo.methodsFound,
59
- hasGetAccessToken: oauth2ClientInfo.hadGetAccessTokenMethod,
60
- hasGetValidToken: oauth2ClientInfo.hadGetValidTokenMethod,
61
- callCount: oauth2ClientInfo.callCount
62
- };
63
- }
64
- });
65
- // Create a simple tool
66
- const testTool = (0, core_1.createTool)({
67
- id: "oauth2-test-tool",
68
- name: "OAuth2 Test Tool",
69
- description: "Tool for testing oauth2 context",
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
- }),
76
- handler: async (input) => {
77
- return {
78
- text: `Processed: ${input.message}`,
79
- data: {
80
- result: `Executed: ${input.message}`
81
- },
82
- ui: undefined
83
- };
84
- }
85
- });
86
- const dainService = (0, nodeService_1.defineDAINService)({
87
- metadata: {
88
- title: "OAuth2 Context Test",
89
- description: "Testing oauth2Client in contexts",
90
- version: "1.0.0",
91
- author: "Test",
92
- tags: ["test", "oauth2", "context"]
93
- },
94
- identity: {
95
- publicKey: bs58_1.default.encode(publicKey),
96
- privateKey: bs58_1.default.encode(privateKey),
97
- agentId: "test-oauth2-service-agent",
98
- orgId: "test-oauth2-service-org"
99
- },
100
- // Configure OAuth2
101
- oauth2: {
102
- baseUrl: `http://localhost:${port}`,
103
- providers: {
104
- test: {
105
- clientId: "test-client-id",
106
- clientSecret: "test-client-secret",
107
- authorizationUrl: "https://example.com/oauth/authorize",
108
- tokenUrl: "https://example.com/oauth/token",
109
- scopes: ["read", "write"]
110
- }
111
- },
112
- tokenStore: new oauth2_token_manager_1.InMemoryStorageAdapter()
113
- },
114
- tools: [testTool],
115
- contexts: [oauth2VerifyContext]
116
- });
117
- beforeAll(async () => {
118
- // Reset tracking
119
- oauth2ClientInfo.wasPresent = false;
120
- oauth2ClientInfo.hadGetAccessTokenMethod = false;
121
- oauth2ClientInfo.hadGetValidTokenMethod = false;
122
- oauth2ClientInfo.methodsFound = [];
123
- oauth2ClientInfo.callCount = 0;
124
- server = await dainService.startNode({ port });
125
- dainConnection = new client_1.DainServiceConnection(`http://localhost:${port}`, agentAuth);
126
- });
127
- afterAll(async () => {
128
- if (server && server.shutdown) {
129
- await server.shutdown();
130
- }
131
- });
132
- beforeEach(() => {
133
- // Reset tracking before each test
134
- oauth2ClientInfo.wasPresent = false;
135
- oauth2ClientInfo.hadGetAccessTokenMethod = false;
136
- oauth2ClientInfo.hadGetValidTokenMethod = false;
137
- oauth2ClientInfo.methodsFound = [];
138
- oauth2ClientInfo.callCount = 0;
139
- });
140
- describe("OAuth2Client availability in context", () => {
141
- it("should pass oauth2Client to context when OAuth2 is configured", async () => {
142
- const contexts = await dainConnection.getAllContexts();
143
- expect(contexts).toHaveLength(1);
144
- expect(contexts[0].id).toBe("oauth2-verify-context");
145
- // Verify oauth2Client was passed
146
- expect(oauth2ClientInfo.wasPresent).toBe(true);
147
- expect(contexts[0].data.oauth2ClientPresent).toBe(true);
148
- });
149
- it("should provide oauth2Client with expected methods", async () => {
150
- const contexts = await dainConnection.getAllContexts();
151
- // Check that oauth2Client has the expected methods
152
- expect(oauth2ClientInfo.hadGetAccessTokenMethod).toBe(true);
153
- expect(oauth2ClientInfo.hadGetValidTokenMethod).toBe(true);
154
- // Verify through the returned data
155
- expect(contexts[0].data.hasGetAccessToken).toBe(true);
156
- expect(contexts[0].data.hasGetValidToken).toBe(true);
157
- // Check that methods array contains expected methods
158
- expect(oauth2ClientInfo.methodsFound).toContain('getAccessToken');
159
- expect(oauth2ClientInfo.methodsFound).toContain('getValidToken');
160
- });
161
- it("should pass oauth2Client when using callToolAndGetNewContext", async () => {
162
- const result = await dainConnection.callToolAndGetNewContext("oauth2-test-tool", {
163
- message: "Testing with OAuth2"
164
- });
165
- // Verify tool executed
166
- expect(result.toolResult.text).toBe("Processed: Testing with OAuth2");
167
- // Verify context was called with oauth2Client
168
- expect(oauth2ClientInfo.wasPresent).toBe(true);
169
- expect(result.context[0].data.oauth2ClientPresent).toBe(true);
170
- expect(result.context[0].data.hasGetAccessToken).toBe(true);
171
- expect(result.context[0].data.hasGetValidToken).toBe(true);
172
- });
173
- it("should consistently pass oauth2Client across multiple context calls", async () => {
174
- // Reset counter
175
- oauth2ClientInfo.callCount = 0;
176
- // Make multiple calls
177
- await dainConnection.getAllContexts();
178
- await dainConnection.callToolAndGetNewContext("oauth2-test-tool", { message: "call 1" });
179
- await dainConnection.getAllContexts();
180
- // Should have been called 3 times
181
- expect(oauth2ClientInfo.callCount).toBe(3);
182
- // OAuth2Client should have been present in all calls
183
- // (we only track the last state, but if it's true after 3 calls, it was passed)
184
- expect(oauth2ClientInfo.wasPresent).toBe(true);
185
- });
186
- });
187
- describe("OAuth2Client methods accessibility", () => {
188
- it("should provide a functional oauth2Client object", async () => {
189
- const contexts = await dainConnection.getAllContexts();
190
- // The context should report having the oauth2Client
191
- expect(contexts[0].data.oauth2ClientPresent).toBe(true);
192
- // Verify the methods are actually functions (checked in our context)
193
- expect(contexts[0].data.hasGetAccessToken).toBe(true);
194
- expect(contexts[0].data.hasGetValidToken).toBe(true);
195
- // Verify we found multiple methods (should be more than just 2)
196
- expect(oauth2ClientInfo.methodsFound.length).toBeGreaterThan(0);
197
- expect(oauth2ClientInfo.methodsFound).toEqual(expect.arrayContaining(['getAccessToken', 'getValidToken']));
198
- });
199
- });
200
- });
201
- //# sourceMappingURL=oauth2-context.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-context.test.js","sourceRoot":"","sources":["../../src/__tests__/oauth2-context.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};