@dainprotocol/service-sdk 2.0.77 → 2.0.79

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 (70) hide show
  1. package/dist/client/api-sdk.d.ts +5 -42
  2. package/dist/client/api-sdk.js +130 -261
  3. package/dist/client/api-sdk.js.map +1 -1
  4. package/dist/client/client-auth.d.ts +1 -69
  5. package/dist/client/client-auth.js +26 -105
  6. package/dist/client/client-auth.js.map +1 -1
  7. package/dist/client/client.d.ts +25 -116
  8. package/dist/client/client.js +157 -758
  9. package/dist/client/client.js.map +1 -1
  10. package/dist/client/index.js +1 -1
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/client/types.js +9 -14
  13. package/dist/client/types.js.map +1 -1
  14. package/dist/extensions/telegram-oauth.d.ts +6 -2
  15. package/dist/extensions/telegram-oauth.js +30 -57
  16. package/dist/extensions/telegram-oauth.js.map +1 -1
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.js +12 -26
  19. package/dist/index.js.map +1 -1
  20. package/dist/interfaces/index.d.ts +2 -0
  21. package/dist/lib/convertToVercelTool.d.ts +11 -3
  22. package/dist/lib/convertToVercelTool.js +0 -1
  23. package/dist/lib/convertToVercelTool.js.map +1 -1
  24. package/dist/lib/payments/index.d.ts +14 -23
  25. package/dist/lib/payments/index.js +33 -47
  26. package/dist/lib/payments/index.js.map +1 -1
  27. package/dist/lib/schemaConversion.d.ts +0 -14
  28. package/dist/lib/schemaConversion.js +26 -56
  29. package/dist/lib/schemaConversion.js.map +1 -1
  30. package/dist/lib/schemaStructure.d.ts +1 -7
  31. package/dist/lib/schemaStructure.js +26 -57
  32. package/dist/lib/schemaStructure.js.map +1 -1
  33. package/dist/plugins/base.d.ts +1 -29
  34. package/dist/plugins/base.js +1 -33
  35. package/dist/plugins/base.js.map +1 -1
  36. package/dist/plugins/citations-plugin.d.ts +6 -81
  37. package/dist/plugins/citations-plugin.js +46 -161
  38. package/dist/plugins/citations-plugin.js.map +1 -1
  39. package/dist/plugins/crypto-plugin.d.ts +18 -123
  40. package/dist/plugins/crypto-plugin.js +41 -248
  41. package/dist/plugins/crypto-plugin.js.map +1 -1
  42. package/dist/plugins/time-plugin.d.ts +8 -90
  43. package/dist/plugins/time-plugin.js +24 -131
  44. package/dist/plugins/time-plugin.js.map +1 -1
  45. package/dist/plugins/types.d.ts +5 -36
  46. package/dist/service/auth.d.ts +1 -49
  47. package/dist/service/auth.js +21 -99
  48. package/dist/service/auth.js.map +1 -1
  49. package/dist/service/cloudflareService.js +5 -6
  50. package/dist/service/cloudflareService.js.map +1 -1
  51. package/dist/service/core.js +23 -54
  52. package/dist/service/core.js.map +1 -1
  53. package/dist/service/denoService.js +14 -18
  54. package/dist/service/denoService.js.map +1 -1
  55. package/dist/service/nextService.d.ts +7 -10
  56. package/dist/service/nextService.js +18 -65
  57. package/dist/service/nextService.js.map +1 -1
  58. package/dist/service/nodeService.d.ts +1 -1
  59. package/dist/service/nodeService.js +17 -29
  60. package/dist/service/nodeService.js.map +1 -1
  61. package/dist/service/processes.d.ts +34 -36
  62. package/dist/service/processes.js +133 -285
  63. package/dist/service/processes.js.map +1 -1
  64. package/dist/service/server.d.ts +2 -9
  65. package/dist/service/server.js +162 -408
  66. package/dist/service/server.js.map +1 -1
  67. package/dist/service/webhooks.d.ts +15 -172
  68. package/dist/service/webhooks.js +52 -184
  69. package/dist/service/webhooks.js.map +1 -1
  70. package/package.json +15 -14
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimePlugin = void 0;
4
4
  const base_1 = require("./base");
5
5
  /**
6
- * Example plugin that adds timing information to requests and responses
6
+ * TimePlugin adds timing information to requests and responses for performance measurement.
7
7
  */
8
8
  class TimePlugin extends base_1.BaseDainPlugin {
9
9
  config;
@@ -16,39 +16,18 @@ class TimePlugin extends base_1.BaseDainPlugin {
16
16
  super();
17
17
  this.config = config;
18
18
  }
19
- /**
20
- * Get plugin input data from a tool context with proper typing
21
- * Makes it easy for tools to access plugin data
22
- */
23
19
  getInputData(context) {
24
20
  return super.getInputData(context);
25
21
  }
26
- /**
27
- * Get plugin output data from a response with proper typing
28
- */
29
22
  getResponseData(response) {
30
23
  return super.getResponseData(response);
31
24
  }
32
- /**
33
- * Create a standardized response for this plugin with proper typing
34
- */
35
25
  createResponse(data) {
36
26
  return super.createResponse(data);
37
27
  }
38
- /**
39
- * Helper method to get and validate plugin data from a tool context
40
- * Returns a default value if plugin data is not found
41
- */
42
28
  getTimeDataFromContext(context) {
43
- const pluginData = this.getInputData(context);
44
- if (!pluginData) {
45
- return { clientTimestamp: Date.now() };
46
- }
47
- return pluginData;
29
+ return this.getInputData(context) || { clientTimestamp: Date.now() };
48
30
  }
49
- /**
50
- * Helper method to create a response with current timestamps
51
- */
52
31
  createTimestampResponse(pluginInput) {
53
32
  const now = Date.now();
54
33
  if (!pluginInput) {
@@ -60,58 +39,42 @@ class TimePlugin extends base_1.BaseDainPlugin {
60
39
  timezone: pluginInput.timezone
61
40
  };
62
41
  }
63
- /**
64
- * Calculates the elapsed time between two timestamps
65
- */
66
42
  calculateElapsedTime(startTime, endTime = Date.now()) {
67
43
  return endTime - startTime;
68
44
  }
69
- /**
70
- * Formats a timestamp in ISO format
71
- */
72
45
  formatTimestamp(timestamp) {
73
46
  return new Date(timestamp).toISOString();
74
47
  }
75
- /**
76
- * Helper method to extract client timezone
77
- */
78
48
  getClientTimezone(context) {
79
- const pluginData = this.getInputData(context);
80
- return pluginData?.timezone;
81
- }
82
- async processInputClient(input) {
83
- // Add client timestamp to the request
84
- const clientTimestamp = Date.now();
85
- let pluginData = { clientTimestamp };
86
- // Add timezone if configured
49
+ return this.getInputData(context)?.timezone;
50
+ }
51
+ async processInputClient(_input) {
52
+ const pluginData = { clientTimestamp: Date.now() };
87
53
  if (this.config.includeTimezone) {
88
54
  pluginData.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
89
55
  }
90
56
  return pluginData;
91
57
  }
92
58
  async processInputService(input) {
93
- // No modifications needed for the service input
94
59
  return input;
95
60
  }
96
- async processOutputService(output) {
97
- // Get the plugin data from the request context
98
- // Try different paths to find the plugin input
99
- let pluginInput = output.context?.extraData?.plugins?.[this.id];
100
- // If not found in the usual path, try to find it elsewhere in the context
101
- if (!pluginInput && output.context?.request?.plugins) {
102
- pluginInput = output.context.request.plugins[this.id];
103
- }
104
- // Check in the nested extraData structure
105
- if (!pluginInput && output.context?.extraData?.extraData?.plugins) {
106
- pluginInput = output.context.extraData.extraData.plugins[this.id];
61
+ findPluginInput(output) {
62
+ const paths = [
63
+ output?.context?.extraData?.plugins,
64
+ output?.context?.request?.plugins,
65
+ output?.context?.extraData?.extraData?.plugins
66
+ ];
67
+ for (const plugins of paths) {
68
+ if (plugins?.[this.id])
69
+ return plugins[this.id];
107
70
  }
71
+ return undefined;
72
+ }
73
+ async processOutputService(output) {
74
+ const pluginInput = this.findPluginInput(output);
108
75
  if (!pluginInput) {
109
- return {
110
- clientTimestamp: 0,
111
- serviceTimestamp: Date.now()
112
- };
76
+ return { clientTimestamp: 0, serviceTimestamp: Date.now() };
113
77
  }
114
- // Add service timestamp to the response
115
78
  return {
116
79
  clientTimestamp: pluginInput.clientTimestamp,
117
80
  serviceTimestamp: Date.now(),
@@ -119,114 +82,44 @@ class TimePlugin extends base_1.BaseDainPlugin {
119
82
  };
120
83
  }
121
84
  async processOutputClient(output) {
122
- // Get the plugin data from the response
123
85
  const pluginOutput = this.getResponseData(output);
124
86
  if (pluginOutput) {
125
- // Calculate roundtrip time
126
- const now = Date.now();
127
- const roundtripTime = now - pluginOutput.clientTimestamp;
128
- // Update the plugin data in the response
87
+ const roundtripTime = Date.now() - pluginOutput.clientTimestamp;
129
88
  output.plugins = output.plugins || {};
130
- // Make sure we preserve all fields from pluginOutput including timezone
131
- output.plugins[this.id] = {
132
- ...pluginOutput,
133
- roundtripTime
134
- };
89
+ output.plugins[this.id] = { ...pluginOutput, roundtripTime };
135
90
  }
136
91
  return output;
137
92
  }
138
93
  /**
139
- * Practical utility for measuring performance of service operations.
140
- * This shows real-world usage of createResponse in a service operation.
141
- *
142
- * @param startTimestamp When the operation started (usually from client)
143
- * @param options Additional timing options
144
- * @returns A properly formatted time plugin response
145
- *
146
- * @example
147
- * // In a service operation:
148
- * async function processRequest(req) {
149
- * const startTime = Date.now();
150
- *
151
- * // Do some work...
152
- * const result = await doExpensiveOperation();
153
- *
154
- * // Measure timing and include in response
155
- * const timing = timePlugin.createTimingResponse(startTime, {
156
- * operationType: 'database-query',
157
- * metadata: { rowsProcessed: 1500 }
158
- * });
159
- *
160
- * return {
161
- * data: result,
162
- * plugins: {
163
- * 'time-plugin': timing
164
- * }
165
- * };
166
- * }
94
+ * Measures performance of service operations and returns timing data.
167
95
  */
168
96
  createTimingResponse(startTimestamp, options = {}) {
169
97
  const now = Date.now();
170
98
  const elapsed = this.calculateElapsedTime(startTimestamp, now);
171
- // Create the base response with timing information
172
99
  const response = this.createResponse({
173
100
  clientTimestamp: startTimestamp,
174
101
  serviceTimestamp: now,
175
102
  roundtripTime: elapsed
176
103
  });
177
- // Add timezone if requested
178
104
  if (options.includeTimezone) {
179
105
  response.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
180
106
  }
181
- // Log the timing data for monitoring/debugging
182
- console.log(`[TimePlugin] ${options.operationType || 'Operation'} completed in ${elapsed}ms`);
183
- if (options.metadata) {
184
- console.log(`[TimePlugin] Operation metadata:`, options.metadata);
185
- }
186
107
  return response;
187
108
  }
188
109
  /**
189
- * Creates a middleware function that automatically times tool executions
190
- * and adds timing information to the response.
191
- *
192
- * @param options Timing options for the middleware
193
- * @returns A middleware function that can wrap tool handlers
194
- *
195
- * @example
196
- * // Create a timed middleware
197
- * const timedMiddleware = timePlugin.createTimedMiddleware({
198
- * includeTimezone: true
199
- * });
200
- *
201
- * // Create a tool with automatic timing
202
- * const myTool = createTool({
203
- * id: "my-timed-tool",
204
- * // ... other tool properties
205
- * handler: timedMiddleware(async (params, agentInfo, context) => {
206
- * // Your tool logic here
207
- * return {
208
- * text: "Result",
209
- * data: { ... }
210
- * };
211
- * })
212
- * });
110
+ * Creates middleware that automatically times tool executions.
213
111
  */
214
112
  createTimedMiddleware(options = {}) {
215
113
  return (handler) => {
216
114
  return async (...args) => {
217
- // Extract the context from the arguments (usually the third argument)
218
115
  const context = args[2] || {};
219
- // Get the client timestamp if available in the plugin data
220
116
  const pluginData = this.getTimeDataFromContext(context);
221
117
  const startTime = pluginData.clientTimestamp;
222
- // Execute the wrapped handler function
223
118
  const result = await handler(...args);
224
- // Generate timing information
225
119
  const timingData = this.createTimingResponse(startTime, {
226
120
  ...options,
227
121
  operationType: options.operationType || 'tool-execution'
228
122
  });
229
- // Add the timing data to the result
230
123
  if (result && typeof result === 'object') {
231
124
  result.plugins = result.plugins || {};
232
125
  result.plugins[this.id] = timingData;
@@ -1 +1 @@
1
- {"version":3,"file":"time-plugin.js","sourceRoot":"","sources":["../../src/plugins/time-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time-plugin.js","sourceRoot":"","sources":["../../src/plugins/time-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,25 @@
1
1
  /**
2
- * Interface for DAIN Service plugins
3
- * Plugins can intercept and modify tool requests/responses
2
+ * Interface for DAIN Service plugins that intercept and modify tool requests/responses.
4
3
  */
5
4
  export interface DainPlugin<TConfig = any, TInput = any, TOutput = any> {
6
- /** Unique identifier for the plugin */
7
5
  id: string;
8
- /** Human-readable name */
9
6
  name: string;
10
- /** Version string */
11
7
  version: string;
12
- /** Description of what the plugin does */
13
8
  description: string;
14
- /** Where the plugin runs - client, service, or both */
15
9
  type: 'service' | 'client' | 'both';
16
- /** Plugin configuration */
17
10
  config: TConfig;
18
- /**
19
- * Process input data before sending to service
20
- * This is called on the client side before making a tool call
21
- */
11
+ /** Called on client side before making a tool call */
22
12
  processInputClient?(input: any): Promise<TInput>;
23
- /**
24
- * Process output data after receiving from service
25
- * This is called on the client side after receiving a tool response
26
- */
13
+ /** Called on client side after receiving a tool response */
27
14
  processOutputClient?(output: any): Promise<any>;
28
- /**
29
- * Process input data before sending to service
30
- * This is called on the service side before processing a tool request
31
- */
15
+ /** Called on service side before processing a tool request */
32
16
  processInputService?(input: any): Promise<any>;
33
- /**
34
- * Process output data after receiving from service
35
- * This is called on the service side after processing a tool response
36
- */
17
+ /** Called on service side after processing a tool response */
37
18
  processOutputService?(output: any): Promise<TOutput>;
38
- /**
39
- * Get input data from context
40
- */
41
19
  getInputData?(context: any): TInput | undefined;
42
- /**
43
- * Get response data from response
44
- */
45
20
  getResponseData?(response: any): TOutput | undefined;
46
- /**
47
- * Create a response from partial data
48
- */
49
21
  createResponse?(data: Partial<TOutput>): TOutput;
50
22
  }
51
- /**
52
- * Standard interface for plugin data in requests and responses
53
- */
54
23
  export interface PluginData {
55
24
  [pluginId: string]: any;
56
25
  }
@@ -7,11 +7,8 @@ export declare function signResponse(privateKey: Uint8Array, responseBody: strin
7
7
  timestamp: string;
8
8
  };
9
9
  export declare function verifyResponse(publicKey: Uint8Array, responseBody: string, signature: string, timestamp: string): boolean;
10
- export declare function verifyRequestSignature(signature: string, method: string, path: string, headers: Record<string, string>, body: string, address: string, smartAccountPDA: string): boolean;
10
+ export declare function verifyRequestSignature(signature: string, method: string, path: string, headers: Record<string, string>, body: string, address: string, _smartAccountPDA: string): boolean;
11
11
  export declare function isValidSolanaAddress(address: string): boolean;
12
- /**
13
- * JWT payload structure from DAIN ID OAuth
14
- */
15
12
  export interface DainIDJWTPayload {
16
13
  sub: string;
17
14
  iss: string;
@@ -21,9 +18,6 @@ export interface DainIDJWTPayload {
21
18
  scope?: string[];
22
19
  smart_account_id?: string;
23
20
  }
24
- /**
25
- * JWT verification result
26
- */
27
21
  export interface JWTVerificationResult {
28
22
  valid: boolean;
29
23
  payload?: DainIDJWTPayload;
@@ -36,58 +30,16 @@ export declare function verifyJWT(token: string, publicKeyPEMOrUrl: string, opti
36
30
  issuer?: string;
37
31
  audience?: string;
38
32
  }): Promise<JWTVerificationResult>;
39
- /**
40
- * Parsed API key structure
41
- * Format: sk_agent_{agentId}_{orgId}_{secret}
42
- */
43
33
  export interface ParsedAPIKey {
44
34
  agentId: string;
45
35
  orgId: string;
46
36
  secret: string;
47
37
  raw: string;
48
38
  }
49
- /**
50
- * Parse DAIN API key and extract agentId/orgId
51
- * @param apiKey API key in format sk_agent_{agentId}_{orgId}_{secret}
52
- * @returns Parsed API key or null if invalid
53
- */
54
39
  export declare function parseAPIKey(apiKey: string): ParsedAPIKey | null;
55
- /**
56
- * Validate API key format (does NOT verify with platform)
57
- * @param apiKey API key to validate
58
- * @returns true if format is valid
59
- */
60
40
  export declare function isValidAPIKeyFormat(apiKey: string): boolean;
61
- /**
62
- * Extract X-DAIN-API-KEY header
63
- */
64
41
  export declare function extractAPIKey(headers: Record<string, string | undefined>): string | null;
65
- /**
66
- * Validate API key with platform
67
- * @param apiKey API key to validate
68
- * @param platformBaseUrl Platform base URL (e.g., https://platform.dain.org)
69
- * @returns true if valid, false otherwise
70
- */
71
42
  export declare function validateAPIKeyWithPlatform(apiKey: string, platformBaseUrl: string): Promise<boolean>;
72
- /**
73
- * Check if a scope array contains a required scope
74
- * Supports wildcard matching (e.g., "wallets.*" matches "wallets.read")
75
- * @param scopes User's authorized scopes
76
- * @param requiredScope Scope to check for
77
- * @returns true if user has the required scope
78
- */
79
43
  export declare function hasScope(scopes: string[], requiredScope: string): boolean;
80
- /**
81
- * Check if user has ALL required scopes
82
- * @param scopes User's authorized scopes
83
- * @param requiredScopes Array of required scopes
84
- * @returns true if user has all required scopes
85
- */
86
44
  export declare function hasAllScopes(scopes: string[], requiredScopes: string[]): boolean;
87
- /**
88
- * Check if user has ANY of the required scopes
89
- * @param scopes User's authorized scopes
90
- * @param requiredScopes Array of required scopes
91
- * @returns true if user has at least one required scope
92
- */
93
45
  export declare function hasAnyScope(scopes: string[], requiredScopes: string[]): boolean;