@dainprotocol/service-sdk 2.0.53 → 2.0.54

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 (105) hide show
  1. package/README.md +78 -0
  2. package/dist/__tests__/api-sdk.test.d.ts +1 -0
  3. package/dist/__tests__/api-sdk.test.js +102 -0
  4. package/dist/__tests__/api-sdk.test.js.map +1 -0
  5. package/dist/__tests__/auth.test.d.ts +1 -0
  6. package/dist/__tests__/auth.test.js +110 -0
  7. package/dist/__tests__/auth.test.js.map +1 -0
  8. package/dist/__tests__/citations-plugin.test.d.ts +1 -0
  9. package/dist/__tests__/citations-plugin.test.js +491 -0
  10. package/dist/__tests__/citations-plugin.test.js.map +1 -0
  11. package/dist/__tests__/context-behavior.test.d.ts +1 -0
  12. package/dist/__tests__/context-behavior.test.js +290 -0
  13. package/dist/__tests__/context-behavior.test.js.map +1 -0
  14. package/dist/__tests__/convertToVercelTool.test.d.ts +1 -0
  15. package/dist/__tests__/convertToVercelTool.test.js +527 -0
  16. package/dist/__tests__/convertToVercelTool.test.js.map +1 -0
  17. package/dist/__tests__/core.test.d.ts +1 -0
  18. package/dist/__tests__/core.test.js +154 -0
  19. package/dist/__tests__/core.test.js.map +1 -0
  20. package/dist/__tests__/crypto-plugin.test.d.ts +1 -0
  21. package/dist/__tests__/crypto-plugin.test.js +694 -0
  22. package/dist/__tests__/crypto-plugin.test.js.map +1 -0
  23. package/dist/__tests__/humanActions.test.d.ts +1 -0
  24. package/dist/__tests__/humanActions.test.js +221 -0
  25. package/dist/__tests__/humanActions.test.js.map +1 -0
  26. package/dist/__tests__/integration.test.d.ts +1 -0
  27. package/dist/__tests__/integration.test.js +1573 -0
  28. package/dist/__tests__/integration.test.js.map +1 -0
  29. package/dist/__tests__/mealMeSchemas.test.d.ts +576 -0
  30. package/dist/__tests__/mealMeSchemas.test.js +627 -0
  31. package/dist/__tests__/mealMeSchemas.test.js.map +1 -0
  32. package/dist/__tests__/oauth-context-simple.test.d.ts +1 -0
  33. package/dist/__tests__/oauth-context-simple.test.js +90 -0
  34. package/dist/__tests__/oauth-context-simple.test.js.map +1 -0
  35. package/dist/__tests__/oauth-context.test.d.ts +1 -0
  36. package/dist/__tests__/oauth-context.test.js +282 -0
  37. package/dist/__tests__/oauth-context.test.js.map +1 -0
  38. package/dist/__tests__/oauth.test.d.ts +1 -0
  39. package/dist/__tests__/oauth.test.js +378 -0
  40. package/dist/__tests__/oauth.test.js.map +1 -0
  41. package/dist/__tests__/oauth2-client-context.test.d.ts +1 -0
  42. package/dist/__tests__/oauth2-client-context.test.js +165 -0
  43. package/dist/__tests__/oauth2-client-context.test.js.map +1 -0
  44. package/dist/__tests__/oauth2-client-integration.test.d.ts +1 -0
  45. package/dist/__tests__/oauth2-client-integration.test.js +182 -0
  46. package/dist/__tests__/oauth2-client-integration.test.js.map +1 -0
  47. package/dist/__tests__/oauth2-client-simple.test.d.ts +1 -0
  48. package/dist/__tests__/oauth2-client-simple.test.js +144 -0
  49. package/dist/__tests__/oauth2-client-simple.test.js.map +1 -0
  50. package/dist/__tests__/oauth2-context.test.d.ts +1 -0
  51. package/dist/__tests__/oauth2-context.test.js +201 -0
  52. package/dist/__tests__/oauth2-context.test.js.map +1 -0
  53. package/dist/__tests__/oauth2-datasource.test.d.ts +1 -0
  54. package/dist/__tests__/oauth2-datasource.test.js +251 -0
  55. package/dist/__tests__/oauth2-datasource.test.js.map +1 -0
  56. package/dist/__tests__/plugin.test.d.ts +1 -0
  57. package/dist/__tests__/plugin.test.js +900 -0
  58. package/dist/__tests__/plugin.test.js.map +1 -0
  59. package/dist/__tests__/processes.test.d.ts +1 -0
  60. package/dist/__tests__/processes.test.js +239 -0
  61. package/dist/__tests__/processes.test.js.map +1 -0
  62. package/dist/__tests__/streaming.test.d.ts +1 -0
  63. package/dist/__tests__/streaming.test.js +592 -0
  64. package/dist/__tests__/streaming.test.js.map +1 -0
  65. package/dist/__tests__/testEnums.d.ts +1 -0
  66. package/dist/__tests__/testEnums.js +73 -0
  67. package/dist/__tests__/testEnums.js.map +1 -0
  68. package/dist/__tests__/testOptionals.test.d.ts +1 -0
  69. package/dist/__tests__/testOptionals.test.js +83 -0
  70. package/dist/__tests__/testOptionals.test.js.map +1 -0
  71. package/dist/__tests__/types.test.d.ts +1 -0
  72. package/dist/__tests__/types.test.js +98 -0
  73. package/dist/__tests__/types.test.js.map +1 -0
  74. package/dist/client/client.d.ts +18 -5
  75. package/dist/client/client.js +25 -4
  76. package/dist/client/client.js.map +1 -1
  77. package/dist/client/types.d.ts +38 -0
  78. package/dist/client/types.js +35 -1
  79. package/dist/client/types.js.map +1 -1
  80. package/dist/service/actionable-tools.d.ts +135 -0
  81. package/dist/service/actionable-tools.js +144 -0
  82. package/dist/service/actionable-tools.js.map +1 -0
  83. package/dist/service/direct-auth-setup.d.ts +154 -0
  84. package/dist/service/direct-auth-setup.js +308 -0
  85. package/dist/service/direct-auth-setup.js.map +1 -0
  86. package/dist/service/index.d.ts +3 -1
  87. package/dist/service/index.js +10 -1
  88. package/dist/service/index.js.map +1 -1
  89. package/dist/service/nodeService.js +2 -0
  90. package/dist/service/nodeService.js.map +1 -1
  91. package/dist/service/oauth2.d.ts +40 -1
  92. package/dist/service/oauth2.js +46 -0
  93. package/dist/service/oauth2.js.map +1 -1
  94. package/dist/service/oauth2Manager.d.ts +31 -4
  95. package/dist/service/oauth2Manager.js +119 -8
  96. package/dist/service/oauth2Manager.js.map +1 -1
  97. package/dist/service/server.js +93 -19
  98. package/dist/service/server.js.map +1 -1
  99. package/dist/service/service.js +6 -1
  100. package/dist/service/service.js.map +1 -1
  101. package/dist/service/types.d.ts +59 -0
  102. package/dist/service/zod-json-converter.d.ts +14 -0
  103. package/dist/service/zod-json-converter.js +203 -0
  104. package/dist/service/zod-json-converter.js.map +1 -0
  105. package/package.json +9 -10
@@ -14,6 +14,7 @@ export declare const MetadataSchema: z.ZodObject<{
14
14
  author: z.ZodString;
15
15
  tags: z.ZodArray<z.ZodString>;
16
16
  requiredScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
+ supportsUserActions: z.ZodOptional<z.ZodBoolean>;
17
18
  }, z.core.$strip>;
18
19
  export declare const ServiceConfigSchema: z.ZodObject<{
19
20
  id: z.ZodString;
@@ -50,6 +51,7 @@ export declare const ToolConfigSchema: z.ZodObject<{
50
51
  interface: z.ZodOptional<z.ZodString>;
51
52
  suggestConfirmation: z.ZodOptional<z.ZodBoolean>;
52
53
  suggestConfirmationUISchema: z.ZodOptional<z.ZodAny>;
54
+ supportsUserActions: z.ZodOptional<z.ZodBoolean>;
53
55
  }, z.core.$strip>;
54
56
  export declare const ServiceContextSchema: z.ZodObject<{
55
57
  id: z.ZodString;
@@ -113,6 +115,7 @@ export declare const ToolWithJsonSchemaSchema: z.ZodObject<{
113
115
  interface: z.ZodOptional<z.ZodString>;
114
116
  suggestConfirmation: z.ZodOptional<z.ZodBoolean>;
115
117
  suggestConfirmationUISchema: z.ZodOptional<z.ZodAny>;
118
+ supportsUserActions: z.ZodOptional<z.ZodBoolean>;
116
119
  }, z.core.$strip>;
117
120
  export declare const GetAllToolsAsJsonSchemaResponseSchema: z.ZodObject<{
118
121
  tools: z.ZodArray<z.ZodObject<{
@@ -125,6 +128,7 @@ export declare const GetAllToolsAsJsonSchemaResponseSchema: z.ZodObject<{
125
128
  interface: z.ZodOptional<z.ZodString>;
126
129
  suggestConfirmation: z.ZodOptional<z.ZodBoolean>;
127
130
  suggestConfirmationUISchema: z.ZodOptional<z.ZodAny>;
131
+ supportsUserActions: z.ZodOptional<z.ZodBoolean>;
128
132
  }, z.core.$strip>>;
129
133
  reccomendedPrompts: z.ZodArray<z.ZodString>;
130
134
  }, z.core.$strip>;
@@ -165,6 +169,38 @@ export declare const OAuth2ProviderInfoSchema: z.ZodObject<{
165
169
  }, z.core.$strip>;
166
170
  connected: z.ZodBoolean;
167
171
  }, z.core.$strip>;
172
+ export declare const ProviderInfoSchema: z.ZodObject<{
173
+ name: z.ZodString;
174
+ type: z.ZodEnum<{
175
+ oauth2: "oauth2";
176
+ direct: "direct";
177
+ }>;
178
+ connected: z.ZodBoolean;
179
+ reason: z.ZodOptional<z.ZodString>;
180
+ requiredTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
181
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
182
+ logoUrl: z.ZodOptional<z.ZodString>;
183
+ authMethod: z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
184
+ type: z.ZodLiteral<"oauth2">;
185
+ authUrl: z.ZodString;
186
+ }, z.core.$strip>, z.ZodObject<{
187
+ type: z.ZodLiteral<"direct">;
188
+ onboardingTool: z.ZodString;
189
+ }, z.core.$strip>]>;
190
+ }, z.core.$strip>;
191
+ export declare const DirectAuthStatusSchema: z.ZodObject<{
192
+ status: z.ZodEnum<{
193
+ complete: "complete";
194
+ authorization_pending: "authorization_pending";
195
+ not_found: "not_found";
196
+ }>;
197
+ config: z.ZodOptional<z.ZodObject<{
198
+ configuredAt: z.ZodNumber;
199
+ }, z.core.$strip>>;
200
+ expires_in: z.ZodOptional<z.ZodNumber>;
201
+ interval: z.ZodOptional<z.ZodNumber>;
202
+ error: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>;
168
204
  export declare const ExampleQuerySchema: z.ZodObject<{
169
205
  category: z.ZodString;
170
206
  queries: z.ZodArray<z.ZodString>;
@@ -214,6 +250,8 @@ export type ToolWithJsonSchema = z.infer<typeof ToolWithJsonSchemaSchema>;
214
250
  export type ServiceWidget = z.infer<typeof ServiceWidgetSchema>;
215
251
  export type ServiceWidgetWithData = z.infer<typeof ServiceWidgetWithDataSchema>;
216
252
  export type OAuth2ProviderInfo = z.infer<typeof OAuth2ProviderInfoSchema>;
253
+ export type ProviderInfo = z.infer<typeof ProviderInfoSchema>;
254
+ export type DirectAuthStatus = z.infer<typeof DirectAuthStatusSchema>;
217
255
  export type ExampleQuery = z.infer<typeof ExampleQuerySchema>;
218
256
  export type ExampleQueries = z.infer<typeof ExampleQueriesSchema>;
219
257
  export type HumanActionStep = z.infer<typeof HumanActionStepSchema>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HumanActionStepSchema = exports.ExampleQueriesSchema = exports.ExampleQuerySchema = exports.OAuth2ProviderInfoSchema = exports.ServiceWidgetWithDataSchema = exports.ServiceWidgetSchema = exports.GetAllToolsAsJsonSchemaResponseSchema = exports.ToolWithJsonSchemaSchema = exports.ServiceAgentSchema = exports.ServiceDatasourceWithDataSchema = exports.ServiceDatasourceSchema = exports.DatasourceTypeSchema = exports.ServiceContextWithDataSchema = exports.ServiceContextSchema = exports.ToolConfigSchema = exports.ToolboxConfigSchema = exports.ServiceConfigSchema = exports.MetadataSchema = exports.PricingInfoSchema = void 0;
3
+ exports.HumanActionStepSchema = exports.ExampleQueriesSchema = exports.ExampleQuerySchema = exports.DirectAuthStatusSchema = exports.ProviderInfoSchema = exports.OAuth2ProviderInfoSchema = exports.ServiceWidgetWithDataSchema = exports.ServiceWidgetSchema = exports.GetAllToolsAsJsonSchemaResponseSchema = exports.ToolWithJsonSchemaSchema = exports.ServiceAgentSchema = exports.ServiceDatasourceWithDataSchema = exports.ServiceDatasourceSchema = exports.DatasourceTypeSchema = exports.ServiceContextWithDataSchema = exports.ServiceContextSchema = exports.ToolConfigSchema = exports.ToolboxConfigSchema = exports.ServiceConfigSchema = exports.MetadataSchema = exports.PricingInfoSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  // Define and export types for DAIN service responses
6
6
  exports.PricingInfoSchema = zod_1.z.object({
@@ -18,6 +18,7 @@ exports.MetadataSchema = zod_1.z.object({
18
18
  author: zod_1.z.string(),
19
19
  tags: zod_1.z.array(zod_1.z.string()),
20
20
  requiredScopes: zod_1.z.array(zod_1.z.string()).optional(), // OAuth scopes required by this service
21
+ supportsUserActions: zod_1.z.boolean().optional(), // True if ANY tool supports interactive user actions (HITL)
21
22
  });
22
23
  exports.ServiceConfigSchema = zod_1.z.object({
23
24
  id: zod_1.z.string(),
@@ -51,6 +52,7 @@ exports.ToolConfigSchema = zod_1.z.object({
51
52
  interface: zod_1.z.string().optional(), // Tool interface type
52
53
  suggestConfirmation: zod_1.z.boolean().optional(),
53
54
  suggestConfirmationUISchema: zod_1.z.any().optional(), // The UI schema will be handled separately
55
+ supportsUserActions: zod_1.z.boolean().optional(), // Tool can send actionable messages (HITL)
54
56
  });
55
57
  exports.ServiceContextSchema = zod_1.z.object({
56
58
  id: zod_1.z.string(),
@@ -91,6 +93,7 @@ exports.ToolWithJsonSchemaSchema = zod_1.z.object({
91
93
  interface: zod_1.z.string().optional(),
92
94
  suggestConfirmation: zod_1.z.boolean().optional(),
93
95
  suggestConfirmationUISchema: zod_1.z.any().optional(),
96
+ supportsUserActions: zod_1.z.boolean().optional(),
94
97
  });
95
98
  exports.GetAllToolsAsJsonSchemaResponseSchema = zod_1.z.object({
96
99
  tools: zod_1.z.array(exports.ToolWithJsonSchemaSchema),
@@ -121,6 +124,37 @@ exports.OAuth2ProviderInfoSchema = zod_1.z.object({
121
124
  }),
122
125
  connected: zod_1.z.boolean()
123
126
  });
127
+ // Unified authentication provider schema (OAuth2 + Direct)
128
+ exports.ProviderInfoSchema = zod_1.z.object({
129
+ name: zod_1.z.string(),
130
+ type: zod_1.z.enum(['oauth2', 'direct']),
131
+ connected: zod_1.z.boolean(),
132
+ reason: zod_1.z.string().optional(),
133
+ requiredTools: zod_1.z.array(zod_1.z.string()).optional(),
134
+ scopes: zod_1.z.array(zod_1.z.string()).optional(),
135
+ logoUrl: zod_1.z.string().optional(),
136
+ authMethod: zod_1.z.union([
137
+ zod_1.z.null(),
138
+ zod_1.z.object({
139
+ type: zod_1.z.literal('oauth2'),
140
+ authUrl: zod_1.z.string()
141
+ }),
142
+ zod_1.z.object({
143
+ type: zod_1.z.literal('direct'),
144
+ onboardingTool: zod_1.z.string()
145
+ })
146
+ ])
147
+ });
148
+ // Direct auth setup status (RFC 8628 Device Authorization Grant)
149
+ exports.DirectAuthStatusSchema = zod_1.z.object({
150
+ status: zod_1.z.enum(['complete', 'authorization_pending', 'not_found']),
151
+ config: zod_1.z.object({
152
+ configuredAt: zod_1.z.number()
153
+ }).optional(),
154
+ expires_in: zod_1.z.number().optional(),
155
+ interval: zod_1.z.number().optional(),
156
+ error: zod_1.z.string().optional()
157
+ });
124
158
  exports.ExampleQuerySchema = zod_1.z.object({
125
159
  category: zod_1.z.string(),
126
160
  queries: zod_1.z.array(zod_1.z.string()),
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Actionable Tool Schema & Utilities
3
+ *
4
+ * Provides standardized schema and helpers for tools that send actionable messages.
5
+ * These tools enable users to trigger system actions through responses (buttons, callbacks, links).
6
+ *
7
+ * @see automation-core/src/core/tools/actionable-tool.schema.ts (matching schema)
8
+ */
9
+ import { z } from 'zod';
10
+ import { ToolConfig, AgentInfo, ToolContext } from './types';
11
+ /**
12
+ * Action button/option schema
13
+ */
14
+ export declare const ActionSchema: z.ZodObject<{
15
+ label: z.ZodString;
16
+ type: z.ZodEnum<{
17
+ url: "url";
18
+ custom: "custom";
19
+ callback: "callback";
20
+ approve: "approve";
21
+ reject: "reject";
22
+ }>;
23
+ value: z.ZodOptional<z.ZodString>;
24
+ url: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>;
26
+ /**
27
+ * Automation metadata schema (auto-injected by automation-core)
28
+ */
29
+ export declare const MetadataSchema: z.ZodObject<{
30
+ runId: z.ZodOptional<z.ZodString>;
31
+ waitId: z.ZodOptional<z.ZodString>;
32
+ automationId: z.ZodOptional<z.ZodString>;
33
+ interactionUrl: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>;
35
+ /**
36
+ * Base schema for all actionable tools
37
+ * Tools marked with supportsUserActions: true MUST accept these fields
38
+ */
39
+ export declare const ActionableToolBaseSchema: z.ZodObject<{
40
+ recipient: z.ZodString;
41
+ message: z.ZodString;
42
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
+ label: z.ZodString;
44
+ type: z.ZodEnum<{
45
+ url: "url";
46
+ custom: "custom";
47
+ callback: "callback";
48
+ approve: "approve";
49
+ reject: "reject";
50
+ }>;
51
+ value: z.ZodOptional<z.ZodString>;
52
+ url: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>>>;
54
+ metadata: z.ZodOptional<z.ZodObject<{
55
+ runId: z.ZodOptional<z.ZodString>;
56
+ waitId: z.ZodOptional<z.ZodString>;
57
+ automationId: z.ZodOptional<z.ZodString>;
58
+ interactionUrl: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>>;
60
+ }, z.core.$strip>;
61
+ /**
62
+ * TypeScript type inferred from schema
63
+ */
64
+ export type ActionableToolInput = z.infer<typeof ActionableToolBaseSchema>;
65
+ export type Action = z.infer<typeof ActionSchema>;
66
+ export type AutomationMetadata = z.infer<typeof MetadataSchema>;
67
+ /**
68
+ * Extend base actionable schema with tool-specific fields
69
+ * Use this to add additional parameters while keeping the standard actionable fields
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const TelegramInputSchema = extendActionableSchema({
74
+ * parse_mode: z.enum(['HTML', 'Markdown']).optional(),
75
+ * disable_notification: z.boolean().optional(),
76
+ * });
77
+ * ```
78
+ */
79
+ export declare function extendActionableSchema<T extends z.ZodRawShape>(additionalFields: T): z.ZodObject<z.ZodRawShape>;
80
+ /**
81
+ * Helper function to build an actionable tool with type safety and schema enforcement
82
+ * Automatically merges base actionable schema with tool-specific fields
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * export const sendTelegramMessage = buildActionableTool({
87
+ * id: 'send-telegram-message',
88
+ * name: 'Send Telegram Message',
89
+ * description: 'Send a message with interactive buttons to a Telegram chat',
90
+ * additionalFields: {
91
+ * parse_mode: z.enum(['HTML', 'Markdown']).optional(),
92
+ * },
93
+ * handler: async (input, agentInfo, context) => {
94
+ * // input is typed with: recipient, message, actions, metadata, parse_mode
95
+ * const { recipient, message, actions, parse_mode } = input;
96
+ *
97
+ * // Use recipient as chatId for Telegram API
98
+ * const result = await sendToTelegram({
99
+ * chat_id: recipient,
100
+ * text: message,
101
+ * parse_mode,
102
+ * reply_markup: actions ? buildInlineKeyboard(actions) : undefined,
103
+ * });
104
+ *
105
+ * return {
106
+ * text: `Message sent to ${recipient}`,
107
+ * data: { messageId: result.message_id },
108
+ * };
109
+ * },
110
+ * });
111
+ * ```
112
+ */
113
+ export declare function buildActionableTool<TAdditional extends z.ZodRawShape = {}, TOutput extends z.ZodType = z.ZodAny>(config: {
114
+ id: string;
115
+ name: string;
116
+ description: string;
117
+ additionalFields?: TAdditional;
118
+ output?: TOutput;
119
+ handler: (input: ActionableToolInput & z.infer<z.ZodObject<TAdditional>>, agentInfo: AgentInfo, context: ToolContext) => Promise<{
120
+ success?: boolean;
121
+ text: string;
122
+ data: z.output<TOutput>;
123
+ ui?: any;
124
+ pleasePay?: any;
125
+ processes?: string[] | any[];
126
+ }>;
127
+ }): ToolConfig;
128
+ /**
129
+ * Validate that a tool schema includes required actionable fields
130
+ * Use this to check if a manually-defined tool complies with actionable schema
131
+ */
132
+ export declare function validateActionableSchema(toolConfig: ToolConfig): {
133
+ valid: boolean;
134
+ errors?: string[];
135
+ };
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ /**
3
+ * Actionable Tool Schema & Utilities
4
+ *
5
+ * Provides standardized schema and helpers for tools that send actionable messages.
6
+ * These tools enable users to trigger system actions through responses (buttons, callbacks, links).
7
+ *
8
+ * @see automation-core/src/core/tools/actionable-tool.schema.ts (matching schema)
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ActionableToolBaseSchema = exports.MetadataSchema = exports.ActionSchema = void 0;
12
+ exports.extendActionableSchema = extendActionableSchema;
13
+ exports.buildActionableTool = buildActionableTool;
14
+ exports.validateActionableSchema = validateActionableSchema;
15
+ const zod_1 = require("zod");
16
+ /**
17
+ * Action button/option schema
18
+ */
19
+ exports.ActionSchema = zod_1.z.object({
20
+ label: zod_1.z.string().describe('Button/action label shown to user'),
21
+ type: zod_1.z
22
+ .enum(['approve', 'reject', 'callback', 'url', 'custom'])
23
+ .describe('Type of action'),
24
+ value: zod_1.z.string().optional().describe('Value sent back when action is triggered'),
25
+ url: zod_1.z.string().optional().describe('URL to open (for url type actions)'),
26
+ });
27
+ /**
28
+ * Automation metadata schema (auto-injected by automation-core)
29
+ */
30
+ exports.MetadataSchema = zod_1.z.object({
31
+ runId: zod_1.z.string().optional().describe('Current run ID'),
32
+ waitId: zod_1.z.string().optional().describe('Wait node ID if applicable'),
33
+ automationId: zod_1.z.string().optional().describe('Automation ID'),
34
+ interactionUrl: zod_1.z.string().optional().describe('URL for user interaction'),
35
+ });
36
+ /**
37
+ * Base schema for all actionable tools
38
+ * Tools marked with supportsUserActions: true MUST accept these fields
39
+ */
40
+ exports.ActionableToolBaseSchema = zod_1.z.object({
41
+ recipient: zod_1.z.string().describe('Who receives this message (chatId, channel, email, etc.)'),
42
+ message: zod_1.z.string().describe('The message text to send'),
43
+ actions: zod_1.z.array(exports.ActionSchema).optional().describe('Interactive actions the user can trigger'),
44
+ metadata: exports.MetadataSchema.optional().describe('Automation metadata (auto-injected by system)'),
45
+ });
46
+ /**
47
+ * Extend base actionable schema with tool-specific fields
48
+ * Use this to add additional parameters while keeping the standard actionable fields
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const TelegramInputSchema = extendActionableSchema({
53
+ * parse_mode: z.enum(['HTML', 'Markdown']).optional(),
54
+ * disable_notification: z.boolean().optional(),
55
+ * });
56
+ * ```
57
+ */
58
+ function extendActionableSchema(additionalFields) {
59
+ return exports.ActionableToolBaseSchema.extend(additionalFields);
60
+ }
61
+ /**
62
+ * Helper function to build an actionable tool with type safety and schema enforcement
63
+ * Automatically merges base actionable schema with tool-specific fields
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * export const sendTelegramMessage = buildActionableTool({
68
+ * id: 'send-telegram-message',
69
+ * name: 'Send Telegram Message',
70
+ * description: 'Send a message with interactive buttons to a Telegram chat',
71
+ * additionalFields: {
72
+ * parse_mode: z.enum(['HTML', 'Markdown']).optional(),
73
+ * },
74
+ * handler: async (input, agentInfo, context) => {
75
+ * // input is typed with: recipient, message, actions, metadata, parse_mode
76
+ * const { recipient, message, actions, parse_mode } = input;
77
+ *
78
+ * // Use recipient as chatId for Telegram API
79
+ * const result = await sendToTelegram({
80
+ * chat_id: recipient,
81
+ * text: message,
82
+ * parse_mode,
83
+ * reply_markup: actions ? buildInlineKeyboard(actions) : undefined,
84
+ * });
85
+ *
86
+ * return {
87
+ * text: `Message sent to ${recipient}`,
88
+ * data: { messageId: result.message_id },
89
+ * };
90
+ * },
91
+ * });
92
+ * ```
93
+ */
94
+ function buildActionableTool(config) {
95
+ // Merge base actionable schema with additional fields
96
+ const inputSchema = config.additionalFields
97
+ ? exports.ActionableToolBaseSchema.extend(config.additionalFields)
98
+ : exports.ActionableToolBaseSchema;
99
+ const outputSchema = config.output || zod_1.z.any();
100
+ return {
101
+ id: config.id,
102
+ name: config.name,
103
+ description: config.description,
104
+ input: inputSchema,
105
+ output: outputSchema,
106
+ supportsUserActions: true, // Always true for actionable tools
107
+ handler: config.handler,
108
+ };
109
+ }
110
+ /**
111
+ * Validate that a tool schema includes required actionable fields
112
+ * Use this to check if a manually-defined tool complies with actionable schema
113
+ */
114
+ function validateActionableSchema(toolConfig) {
115
+ if (!toolConfig.supportsUserActions) {
116
+ return { valid: true }; // Not an actionable tool, no validation needed
117
+ }
118
+ const errors = [];
119
+ // Check if input schema is a Zod object
120
+ if (!(toolConfig.input instanceof zod_1.z.ZodObject)) {
121
+ errors.push('Input schema must be a Zod object for actionable tools');
122
+ return { valid: false, errors };
123
+ }
124
+ const shape = toolConfig.input.shape;
125
+ // Check required fields
126
+ if (!shape.recipient) {
127
+ errors.push("Missing required field: 'recipient'");
128
+ }
129
+ if (!shape.message) {
130
+ errors.push("Missing required field: 'message'");
131
+ }
132
+ // Check field types
133
+ if (shape.recipient && !(shape.recipient instanceof zod_1.z.ZodString)) {
134
+ errors.push("Field 'recipient' must be a string");
135
+ }
136
+ if (shape.message && !(shape.message instanceof zod_1.z.ZodString)) {
137
+ errors.push("Field 'message' must be a string");
138
+ }
139
+ return {
140
+ valid: errors.length === 0,
141
+ errors: errors.length > 0 ? errors : undefined,
142
+ };
143
+ }
144
+ //# sourceMappingURL=actionable-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionable-tools.js","sourceRoot":"","sources":["../../src/service/actionable-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import { StorageAdapter } from '@dainprotocol/oauth2-token-manager';
2
+ /**
3
+ * Pending setup information
4
+ */
5
+ export interface PendingSetup {
6
+ setupCode: string;
7
+ userId: string;
8
+ provider: string;
9
+ expiresAt: number;
10
+ }
11
+ /**
12
+ * Setup completion result
13
+ */
14
+ export interface SetupCompletionResult {
15
+ success: boolean;
16
+ userId?: string;
17
+ error?: string;
18
+ }
19
+ /**
20
+ * Onboarding UI configuration
21
+ * Returned by adapter to display setup instructions to user
22
+ */
23
+ export interface OnboardingUI {
24
+ /** Primary action URL (e.g., deep link, authorization URL) */
25
+ actionUrl: string;
26
+ /** QR code image URL */
27
+ qrCodeUrl?: string;
28
+ /** Instructions to display to the user */
29
+ instructions: string[];
30
+ /** Button label for primary action */
31
+ buttonLabel?: string;
32
+ /** Provider logo URL */
33
+ logoUrl?: string;
34
+ }
35
+ /**
36
+ * DirectAuthAdapter Interface
37
+ *
38
+ * Contract for provider-specific direct authentication adapters.
39
+ * Implementations handle provider-specific UI generation.
40
+ * Webhook parsing is handled by the service's existing infrastructure.
41
+ */
42
+ export interface DirectAuthAdapter {
43
+ /** Provider name */
44
+ provider: string;
45
+ /**
46
+ * Generate the onboarding UI for the user
47
+ * @param setupCode - The generated setup code
48
+ * @param expiresAt - Timestamp when the setup code expires
49
+ */
50
+ generateOnboardingUI(setupCode: string, expiresAt: number): OnboardingUI;
51
+ /**
52
+ * Send a confirmation message after successful setup
53
+ * @param config - The stored configuration
54
+ */
55
+ sendConfirmation?(config: Record<string, any>): Promise<void>;
56
+ }
57
+ /**
58
+ * DirectAuthSetupManager - Manages temporary setup codes for direct authentication providers
59
+ *
60
+ * Used for services that require user-provided configuration without external OAuth flow
61
+ * Examples: Telegram bot (chat ID), SMS (phone number), custom API endpoints
62
+ *
63
+ * Storage Strategy:
64
+ * - Uses StorageAdapter (backed by database from @dainprotocol/oauth2-storage-drizzle)
65
+ * - Pending setups: Stored as tokens with provider `setup_pending_{provider}`
66
+ * - userId field = setup code (for quick lookup)
67
+ * - email field = actual user ID
68
+ * - metadata = { originalUserId, provider, expiresAt }
69
+ * - token.expiresAt = expiry timestamp
70
+ * - Completed setups: Stored as tokens with provider `{provider}`
71
+ * - userId field = user ID
72
+ * - metadata = { chatId, username, firstName, etc. }
73
+ */
74
+ export declare class DirectAuthSetupManager {
75
+ private storage;
76
+ constructor(storage: StorageAdapter);
77
+ /**
78
+ * Generate a cryptographically secure setup code
79
+ * 32 hex characters (16 bytes entropy)
80
+ */
81
+ private generateSetupCode;
82
+ /**
83
+ * Get the pending provider name for storage
84
+ */
85
+ private getPendingProviderName;
86
+ /**
87
+ * Create a pending setup for a user and provider
88
+ *
89
+ * @param userId - The user ID (e.g., smart account ID)
90
+ * @param provider - The provider name (e.g., 'telegram')
91
+ * @param expiryMinutes - How long the setup code is valid (default: 15 minutes)
92
+ * @returns The generated setup code
93
+ */
94
+ createSetup(userId: string, provider: string, expiryMinutes?: number): Promise<string>;
95
+ /**
96
+ * Verify a setup code is valid and not expired
97
+ *
98
+ * @param setupCode - The setup code to verify
99
+ * @param provider - The provider name
100
+ * @returns The pending setup info if valid, null otherwise
101
+ */
102
+ verifySetup(setupCode: string, provider: string): Promise<PendingSetup | null>;
103
+ /**
104
+ * Complete setup and store the provider configuration
105
+ *
106
+ * @param setupCode - The setup code that was verified
107
+ * @param provider - The provider name
108
+ * @param config - The configuration to store (e.g., { chatId: 123456789 })
109
+ * @returns Result indicating success or failure
110
+ */
111
+ completeSetup(setupCode: string, provider: string, config: Record<string, any>): Promise<SetupCompletionResult>;
112
+ /**
113
+ * Check if a user has completed setup for a provider
114
+ *
115
+ * @param userId - The user ID
116
+ * @param provider - The provider name
117
+ * @returns True if setup is complete
118
+ */
119
+ isSetupComplete(userId: string, provider: string): Promise<boolean>;
120
+ /**
121
+ * Get the stored configuration for a user and provider
122
+ *
123
+ * @param userId - The user ID
124
+ * @param provider - The provider name
125
+ * @returns The stored config or null if not found
126
+ */
127
+ getProviderConfig(userId: string, provider: string): Promise<Record<string, any> | null>;
128
+ /**
129
+ * Delete provider configuration for a user
130
+ * Used when user wants to disconnect/revoke access
131
+ *
132
+ * @param userId - The user ID
133
+ * @param provider - The provider name
134
+ * @returns True if deleted successfully
135
+ */
136
+ deleteProviderConfig(userId: string, provider: string): Promise<boolean>;
137
+ /**
138
+ * Get pending setup status for a user
139
+ * Useful for showing setup progress in UI
140
+ *
141
+ * @param userId - The user ID
142
+ * @param provider - The provider name
143
+ * @returns Pending setup info if exists, null otherwise
144
+ */
145
+ getPendingSetup(userId: string, provider: string): Promise<PendingSetup | null>;
146
+ /**
147
+ * Cleanup expired pending setups
148
+ * Should be called periodically to prevent stale data accumulation
149
+ *
150
+ * @param provider - The provider name to clean up
151
+ * @returns Number of expired setups cleaned up
152
+ */
153
+ cleanupExpiredSetups(provider: string): Promise<number>;
154
+ }