@nordsym/apiclaw 1.2.8 → 1.2.10
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/convex/schema.ts +3 -0
- package/dist/confirmation.d.ts +60 -0
- package/dist/confirmation.d.ts.map +1 -0
- package/dist/confirmation.js +241 -0
- package/dist/confirmation.js.map +1 -0
- package/dist/execute-dynamic.d.ts +11 -0
- package/dist/execute-dynamic.d.ts.map +1 -1
- package/dist/execute-dynamic.js +18 -0
- package/dist/execute-dynamic.js.map +1 -1
- package/dist/index.js +97 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/confirmation.ts +296 -0
- package/src/execute-dynamic.ts +28 -0
- package/src/index.ts +114 -7
package/convex/schema.ts
CHANGED
|
@@ -267,6 +267,9 @@ export default defineSchema({
|
|
|
267
267
|
path: v.string(), // JSON path, e.g. "data.id" or "results[0].name"
|
|
268
268
|
})),
|
|
269
269
|
enabled: v.boolean(),
|
|
270
|
+
// Confirmation settings for costly actions
|
|
271
|
+
requiresConfirmation: v.optional(v.boolean()), // If true, requires user confirmation before executing
|
|
272
|
+
estimatedCost: v.optional(v.string()), // Human-readable cost estimate, e.g. "~2-5 SEK per invoice"
|
|
270
273
|
createdAt: v.number(),
|
|
271
274
|
updatedAt: v.number(),
|
|
272
275
|
})
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw Confirmation System
|
|
3
|
+
* For actions that cost money or have side effects
|
|
4
|
+
*
|
|
5
|
+
* Flow:
|
|
6
|
+
* 1. Agent calls action → gets preview + token
|
|
7
|
+
* 2. Agent shows preview to user
|
|
8
|
+
* 3. User confirms → agent calls confirm with token
|
|
9
|
+
* 4. APIClaw executes the actual action
|
|
10
|
+
*/
|
|
11
|
+
export interface PendingAction {
|
|
12
|
+
token: string;
|
|
13
|
+
provider: string;
|
|
14
|
+
action: string;
|
|
15
|
+
params: Record<string, any>;
|
|
16
|
+
preview: Record<string, any>;
|
|
17
|
+
createdAt: number;
|
|
18
|
+
expiresAt: number;
|
|
19
|
+
userId?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const CONFIRMATION_REQUIRED: Record<string, string[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Check if an action requires confirmation (hardcoded list only)
|
|
24
|
+
* For dynamic providers, use requiresConfirmationAsync
|
|
25
|
+
*/
|
|
26
|
+
export declare function requiresConfirmation(provider: string, action: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Check if a dynamic provider action requires confirmation
|
|
29
|
+
* This is imported dynamically to avoid circular deps
|
|
30
|
+
*/
|
|
31
|
+
export declare function requiresConfirmationAsync(provider: string, action: string): Promise<{
|
|
32
|
+
required: boolean;
|
|
33
|
+
estimatedCost?: string;
|
|
34
|
+
isDynamic?: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Generate a confirmation token and store the pending action
|
|
38
|
+
*/
|
|
39
|
+
export declare function createPendingAction(provider: string, action: string, params: Record<string, any>, preview: Record<string, any>, userId?: string): PendingAction;
|
|
40
|
+
/**
|
|
41
|
+
* Get a pending action by token (and validate it)
|
|
42
|
+
*/
|
|
43
|
+
export declare function getPendingAction(token: string): PendingAction | null;
|
|
44
|
+
/**
|
|
45
|
+
* Consume a pending action (use it and remove from store)
|
|
46
|
+
*/
|
|
47
|
+
export declare function consumePendingAction(token: string): PendingAction | null;
|
|
48
|
+
/**
|
|
49
|
+
* Generate a human-readable preview for an action
|
|
50
|
+
*/
|
|
51
|
+
export declare function generatePreview(provider: string, action: string, params: Record<string, any>): Record<string, any>;
|
|
52
|
+
/**
|
|
53
|
+
* Validate params before creating preview
|
|
54
|
+
* Returns { valid: true } or { valid: false, errors: [...] }
|
|
55
|
+
*/
|
|
56
|
+
export declare function validateParams(provider: string, action: string, params: Record<string, any>): {
|
|
57
|
+
valid: boolean;
|
|
58
|
+
errors?: string[];
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=confirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAU1D,CAAC;AAKF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9E;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAsB7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAoBf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAapE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQxE;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAarB;AA6DD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAiDvC"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw Confirmation System
|
|
3
|
+
* For actions that cost money or have side effects
|
|
4
|
+
*
|
|
5
|
+
* Flow:
|
|
6
|
+
* 1. Agent calls action → gets preview + token
|
|
7
|
+
* 2. Agent shows preview to user
|
|
8
|
+
* 3. User confirms → agent calls confirm with token
|
|
9
|
+
* 4. APIClaw executes the actual action
|
|
10
|
+
*/
|
|
11
|
+
import { randomBytes } from 'crypto';
|
|
12
|
+
// In-memory store for pending confirmations (in production, use Redis)
|
|
13
|
+
const pendingActions = new Map();
|
|
14
|
+
// Actions that require confirmation before execution
|
|
15
|
+
export const CONFIRMATION_REQUIRED = {
|
|
16
|
+
// Invoicing - costs money per send
|
|
17
|
+
coaccept: ['send_invoice', 'send_reminder'],
|
|
18
|
+
// SMS - costs money per message
|
|
19
|
+
'46elks': ['send_sms'],
|
|
20
|
+
twilio: ['send_sms'],
|
|
21
|
+
// Email sends (less critical but still good to confirm)
|
|
22
|
+
resend: ['send_email'],
|
|
23
|
+
};
|
|
24
|
+
// Token expiry time (5 minutes)
|
|
25
|
+
const TOKEN_EXPIRY_MS = 5 * 60 * 1000;
|
|
26
|
+
/**
|
|
27
|
+
* Check if an action requires confirmation (hardcoded list only)
|
|
28
|
+
* For dynamic providers, use requiresConfirmationAsync
|
|
29
|
+
*/
|
|
30
|
+
export function requiresConfirmation(provider, action) {
|
|
31
|
+
const actions = CONFIRMATION_REQUIRED[provider];
|
|
32
|
+
return actions?.includes(action) ?? false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if a dynamic provider action requires confirmation
|
|
36
|
+
* This is imported dynamically to avoid circular deps
|
|
37
|
+
*/
|
|
38
|
+
export async function requiresConfirmationAsync(provider, action) {
|
|
39
|
+
// First check hardcoded list
|
|
40
|
+
if (requiresConfirmation(provider, action)) {
|
|
41
|
+
return { required: true, isDynamic: false };
|
|
42
|
+
}
|
|
43
|
+
// Then check dynamic provider config
|
|
44
|
+
try {
|
|
45
|
+
const { getDynamicConfirmationConfig } = await import('./execute-dynamic.js');
|
|
46
|
+
const config = await getDynamicConfirmationConfig(provider, action);
|
|
47
|
+
if (config.required) {
|
|
48
|
+
return {
|
|
49
|
+
required: true,
|
|
50
|
+
estimatedCost: config.estimatedCost,
|
|
51
|
+
isDynamic: true
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
// Dynamic config not available, that's ok
|
|
57
|
+
}
|
|
58
|
+
return { required: false };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generate a confirmation token and store the pending action
|
|
62
|
+
*/
|
|
63
|
+
export function createPendingAction(provider, action, params, preview, userId) {
|
|
64
|
+
// Clean up expired tokens
|
|
65
|
+
cleanupExpired();
|
|
66
|
+
const token = randomBytes(16).toString('hex');
|
|
67
|
+
const now = Date.now();
|
|
68
|
+
const pending = {
|
|
69
|
+
token,
|
|
70
|
+
provider,
|
|
71
|
+
action,
|
|
72
|
+
params,
|
|
73
|
+
preview,
|
|
74
|
+
createdAt: now,
|
|
75
|
+
expiresAt: now + TOKEN_EXPIRY_MS,
|
|
76
|
+
userId,
|
|
77
|
+
};
|
|
78
|
+
pendingActions.set(token, pending);
|
|
79
|
+
return pending;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get a pending action by token (and validate it)
|
|
83
|
+
*/
|
|
84
|
+
export function getPendingAction(token) {
|
|
85
|
+
const pending = pendingActions.get(token);
|
|
86
|
+
if (!pending) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
if (Date.now() > pending.expiresAt) {
|
|
90
|
+
pendingActions.delete(token);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return pending;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Consume a pending action (use it and remove from store)
|
|
97
|
+
*/
|
|
98
|
+
export function consumePendingAction(token) {
|
|
99
|
+
const pending = getPendingAction(token);
|
|
100
|
+
if (pending) {
|
|
101
|
+
pendingActions.delete(token);
|
|
102
|
+
}
|
|
103
|
+
return pending;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Clean up expired tokens
|
|
107
|
+
*/
|
|
108
|
+
function cleanupExpired() {
|
|
109
|
+
const now = Date.now();
|
|
110
|
+
for (const [token, pending] of pendingActions.entries()) {
|
|
111
|
+
if (now > pending.expiresAt) {
|
|
112
|
+
pendingActions.delete(token);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generate a human-readable preview for an action
|
|
118
|
+
*/
|
|
119
|
+
export function generatePreview(provider, action, params) {
|
|
120
|
+
// Provider-specific preview generators
|
|
121
|
+
switch (provider) {
|
|
122
|
+
case 'coaccept':
|
|
123
|
+
return generateCoAcceptPreview(action, params);
|
|
124
|
+
case '46elks':
|
|
125
|
+
case 'twilio':
|
|
126
|
+
return generateSMSPreview(params);
|
|
127
|
+
case 'resend':
|
|
128
|
+
return generateEmailPreview(params);
|
|
129
|
+
default:
|
|
130
|
+
return { action, params };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function generateCoAcceptPreview(action, params) {
|
|
134
|
+
if (action === 'send_invoice') {
|
|
135
|
+
const items = params.items || [];
|
|
136
|
+
const totalAmount = items.reduce((sum, item) => sum + (item.amount || 0), 0);
|
|
137
|
+
return {
|
|
138
|
+
type: 'invoice',
|
|
139
|
+
recipient: {
|
|
140
|
+
name: params.recipient_name,
|
|
141
|
+
email: params.recipient_email,
|
|
142
|
+
org_number: params.recipient_org_nr,
|
|
143
|
+
},
|
|
144
|
+
amount: {
|
|
145
|
+
subtotal: totalAmount,
|
|
146
|
+
vat_rate: params.vat_rate || 25,
|
|
147
|
+
vat_amount: totalAmount * ((params.vat_rate || 25) / 100),
|
|
148
|
+
total: totalAmount * (1 + (params.vat_rate || 25) / 100),
|
|
149
|
+
currency: params.currency || 'SEK',
|
|
150
|
+
},
|
|
151
|
+
due_date: params.due_date,
|
|
152
|
+
items: items.map((item) => ({
|
|
153
|
+
description: item.description,
|
|
154
|
+
quantity: item.quantity || 1,
|
|
155
|
+
unit_price: item.unit_price || item.amount,
|
|
156
|
+
amount: item.amount,
|
|
157
|
+
})),
|
|
158
|
+
payment_method: 'SMS + Swish/Card (CoAccept)',
|
|
159
|
+
estimated_cost: '~2-5 SEK per invoice',
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return { action, params };
|
|
163
|
+
}
|
|
164
|
+
function generateSMSPreview(params) {
|
|
165
|
+
const messageLength = (params.message || '').length;
|
|
166
|
+
const segments = Math.ceil(messageLength / 160);
|
|
167
|
+
return {
|
|
168
|
+
type: 'sms',
|
|
169
|
+
to: params.to,
|
|
170
|
+
from: params.from || 'NordSym',
|
|
171
|
+
message: params.message,
|
|
172
|
+
message_length: messageLength,
|
|
173
|
+
segments,
|
|
174
|
+
estimated_cost: `~${(segments * 0.35).toFixed(2)} SEK`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function generateEmailPreview(params) {
|
|
178
|
+
return {
|
|
179
|
+
type: 'email',
|
|
180
|
+
to: params.to,
|
|
181
|
+
from: params.from || 'noreply@nordsym.com',
|
|
182
|
+
subject: params.subject,
|
|
183
|
+
preview: (params.message || params.html || '').substring(0, 200) + '...',
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Validate params before creating preview
|
|
188
|
+
* Returns { valid: true } or { valid: false, errors: [...] }
|
|
189
|
+
*/
|
|
190
|
+
export function validateParams(provider, action, params) {
|
|
191
|
+
const errors = [];
|
|
192
|
+
switch (provider) {
|
|
193
|
+
case 'coaccept':
|
|
194
|
+
if (action === 'send_invoice') {
|
|
195
|
+
if (!params.recipient_name)
|
|
196
|
+
errors.push('Missing: recipient_name');
|
|
197
|
+
if (!params.recipient_email)
|
|
198
|
+
errors.push('Missing: recipient_email');
|
|
199
|
+
if (!params.items || !Array.isArray(params.items) || params.items.length === 0) {
|
|
200
|
+
errors.push('Missing: items (at least one invoice item required)');
|
|
201
|
+
}
|
|
202
|
+
if (!params.due_date)
|
|
203
|
+
errors.push('Missing: due_date (YYYY-MM-DD)');
|
|
204
|
+
// Validate email format
|
|
205
|
+
if (params.recipient_email && !params.recipient_email.includes('@')) {
|
|
206
|
+
errors.push('Invalid: recipient_email format');
|
|
207
|
+
}
|
|
208
|
+
// Validate due date is not in past
|
|
209
|
+
if (params.due_date) {
|
|
210
|
+
const dueDate = new Date(params.due_date);
|
|
211
|
+
const today = new Date();
|
|
212
|
+
today.setHours(0, 0, 0, 0);
|
|
213
|
+
if (dueDate < today) {
|
|
214
|
+
errors.push('Invalid: due_date cannot be in the past');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
break;
|
|
219
|
+
case '46elks':
|
|
220
|
+
case 'twilio':
|
|
221
|
+
if (!params.to)
|
|
222
|
+
errors.push('Missing: to (phone number)');
|
|
223
|
+
if (!params.message)
|
|
224
|
+
errors.push('Missing: message');
|
|
225
|
+
// Validate phone format (basic check)
|
|
226
|
+
if (params.to && !params.to.startsWith('+')) {
|
|
227
|
+
errors.push('Invalid: phone number must start with + (e.g., +46701234567)');
|
|
228
|
+
}
|
|
229
|
+
break;
|
|
230
|
+
case 'resend':
|
|
231
|
+
if (!params.to)
|
|
232
|
+
errors.push('Missing: to (email address)');
|
|
233
|
+
if (!params.subject)
|
|
234
|
+
errors.push('Missing: subject');
|
|
235
|
+
if (!params.message && !params.html)
|
|
236
|
+
errors.push('Missing: message or html content');
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
return errors.length > 0 ? { valid: false, errors } : { valid: true };
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=confirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation.js","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAarC,uEAAuE;AACvE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyB,CAAC;AAExD,qDAAqD;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,mCAAmC;IACnC,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAE3C,gCAAgC;IAChC,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,CAAC;IAEpB,wDAAwD;IACxD,MAAM,EAAE,CAAC,YAAY,CAAC;CACvB,CAAC;AAEF,gCAAgC;AAChC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,MAAc;IACnE,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,MAAc;IAEd,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,0CAA0C;IAC5C,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,MAAc,EACd,MAA2B,EAC3B,OAA4B,EAC5B,MAAe;IAEf,0BAA0B;IAC1B,cAAc,EAAE,CAAC;IAEjB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,OAAO,GAAkB;QAC7B,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG,GAAG,eAAe;QAChC,MAAM;KACP,CAAC;IAEF,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,OAAO,EAAE,CAAC;QACZ,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5B,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAc,EACd,MAA2B;IAE3B,uCAAuC;IACvC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC;YACE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,MAA2B;IAC1E,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAS,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1F,OAAO;YACL,IAAI,EAAE,SAAS;YACf,SAAS,EAAE;gBACT,IAAI,EAAE,MAAM,CAAC,cAAc;gBAC3B,KAAK,EAAE,MAAM,CAAC,eAAe;gBAC7B,UAAU,EAAE,MAAM,CAAC,gBAAgB;aACpC;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,WAAW;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;gBAC/B,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;gBACzD,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;gBACxD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;aACnC;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;gBAC5B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM;gBAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,cAAc,EAAE,6BAA6B;YAC7C,cAAc,EAAE,sBAAsB;SACvC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA2B;IACrD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IAEhD,OAAO;QACL,IAAI,EAAE,KAAK;QACX,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,aAAa;QAC7B,QAAQ;QACR,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA2B;IACvD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,qBAAqB;QAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;KACzE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,MAAc,EACd,MAA2B;IAE3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,cAAc;oBAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACnE,IAAI,CAAC,MAAM,CAAC,eAAe;oBAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/E,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAEpE,wBAAwB;gBACxB,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACjD,CAAC;gBAED,mCAAmC;gBACnC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;oBACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3B,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM;QAER,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAErD,sCAAsC;YACtC,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACrF,MAAM;IACV,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -41,6 +41,8 @@ export interface ProviderAction {
|
|
|
41
41
|
params: ActionParam[];
|
|
42
42
|
responseMapping: ResponseMapping[];
|
|
43
43
|
enabled: boolean;
|
|
44
|
+
requiresConfirmation?: boolean;
|
|
45
|
+
estimatedCost?: string;
|
|
44
46
|
}
|
|
45
47
|
export interface ExecuteResult {
|
|
46
48
|
success: boolean;
|
|
@@ -67,6 +69,15 @@ export declare function getProviderConfig(providerId: string): Promise<ProviderD
|
|
|
67
69
|
* Fetch action configuration from Convex
|
|
68
70
|
*/
|
|
69
71
|
export declare function getActionConfig(providerId: string, actionName: string): Promise<ProviderAction | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if a dynamic action requires confirmation (for costly actions)
|
|
74
|
+
* Returns action config if confirmation required, null otherwise
|
|
75
|
+
*/
|
|
76
|
+
export declare function getDynamicConfirmationConfig(providerId: string, actionName: string): Promise<{
|
|
77
|
+
required: boolean;
|
|
78
|
+
action?: ProviderAction;
|
|
79
|
+
estimatedCost?: string;
|
|
80
|
+
}>;
|
|
70
81
|
/**
|
|
71
82
|
* Get user's current usage for rate limiting
|
|
72
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-dynamic.d.ts","sourceRoot":"","sources":["../src/execute-dynamic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAErC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-dynamic.d.ts","sourceRoot":"","sources":["../src/execute-dynamic.ts"],"names":[],"mappings":"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"}
|
package/dist/execute-dynamic.js
CHANGED
|
@@ -80,6 +80,24 @@ export async function getActionConfig(providerId, actionName) {
|
|
|
80
80
|
name: actionName
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Check if a dynamic action requires confirmation (for costly actions)
|
|
85
|
+
* Returns action config if confirmation required, null otherwise
|
|
86
|
+
*/
|
|
87
|
+
export async function getDynamicConfirmationConfig(providerId, actionName) {
|
|
88
|
+
const action = await getActionConfig(providerId, actionName);
|
|
89
|
+
if (!action) {
|
|
90
|
+
return { required: false };
|
|
91
|
+
}
|
|
92
|
+
if (action.requiresConfirmation) {
|
|
93
|
+
return {
|
|
94
|
+
required: true,
|
|
95
|
+
action,
|
|
96
|
+
estimatedCost: action.estimatedCost
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return { required: false };
|
|
100
|
+
}
|
|
83
101
|
/**
|
|
84
102
|
* Get user's current usage for rate limiting
|
|
85
103
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-dynamic.js","sourceRoot":"","sources":["../src/execute-dynamic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+D1D,kBAAkB;AAClB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,qDAAqD,CAAC;AAE/G,KAAK,UAAU,WAAW,CAAI,IAAY,EAAE,IAA6B;IACvE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,YAAY,EAAE;YACjD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAC;QACnD,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAU,CAAC,CAAC,CAAC,IAAS,CAAC;IAC7F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAA6B;IACvE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,eAAe,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAA2B,yBAAyB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5G,2DAA2D;IAC3D,MAAM,SAAS,GAAG,MAAa,CAAC;IAChC,IAAI,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6FAA6F;IAC7F,4CAA4C;IAC5C,IAAI,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAA2B,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,IAAW,CAAC;QAC5B,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,UAAkB;IAC1E,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,WAAW,CAAiB,4BAA4B,EAAE;QAC/D,YAAY,EAAE,MAAM,CAAC,GAAG;QACxB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,UAAkB;IACnE,MAAM,KAAK,GAAG,MAAM,WAAW,CAAa,oBAAoB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1F,OAAO,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,OAAe,EACf,IAAY,EACZ,MAA+B,EAC/B,SAAwB;IAExB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAE1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtF,IAAI,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC3B,oDAAoD;YACpD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,QAAQ,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;IAE1E,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3C,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC;AAC9F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,MAA+B,EAC/B,SAAwB;IAExB,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAgC,EAChC,YAAoB;IAEpB,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,aAAa;KAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,eAAe,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAEvC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,YAAY,EAAE,CAAC;YACtF,MAAM;QAER,KAAK,OAAO;YACV,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5D,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;YACxC,MAAM;QAER,KAAK,SAAS;YACZ,sCAAsC;YACtC,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;YAC1E,MAAM;QAER,KAAK,MAAM;YACT,wBAAwB;YACxB,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,IAAY;IACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO,GAAY,IAAI,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,2CAA2C;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC;YACpC,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAClD,OAAO,GAAI,OAAmC,CAAC,KAAK,CAAC,CAAC;YAEtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,OAAO,SAAS,CAAC;YAE9C,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,qDAAqD;gBACrD,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAClD,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAa,EACb,eAAkC;IAElC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,yCAAyC;QACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAQ9B;IACC,MAAM,cAAc,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,UAAkB,EAClB,MAA+B,EAC/B,MAAc,EACd,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,yBAAyB;IACzB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,oBAAoB;SAC5B,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,mCAAmC;SAC3C,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,yBAAyB,aAAa,CAAC,KAAK,EAAE;SACtD,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,kCAAkC;SAC1C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,6BAA6B;SACrC,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,kBAAkB;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,oBAAoB;SAC5B,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/F,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,+BAA+B,QAAQ,CAAC,IAAI,EAAE;aACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,MAAc,CAAC;IACnB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,2DAA2D;IAC3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,KAAK,IAAI,CAAC;IAChE,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,KAAK,KAAK,CAAC,CAAC,eAAe;IAE7E,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACrC,gEAAgE;QAChE,MAAM,GAAG,WAAW,CAAC;QACrB,gBAAgB,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,mBAAmB,EAAE,CAAC;QAC/B,mDAAmD;QACnD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,8EAA8E;SACtF,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACrC,sDAAsD;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,8BAA8B;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,wEAAwE;SAChF,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpF,qBAAqB;IACrB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO;YACP,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC;gBACb,MAAM;gBACN,UAAU;gBACV,UAAU;gBACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;YACnF,SAAS;SACV,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAEzC,oBAAoB;IACpB,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,QAAQ,CAAC;YACb,MAAM;YACN,UAAU;YACV,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS;YACT,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,YAAY,GAAG,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAA+B,CAAC;YACjD,YAAY,GAAI,QAAQ,CAAC,OAAkB;gBAC3B,QAAQ,CAAC,KAAgB;gBACzB,QAAQ,CAAC,MAAiB;gBAC3B,YAAY,CAAC;QAC9B,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,YAAY;YACnB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAE7D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM,CAAC,eAAe;QAC5B,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IACzD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAmB,uBAAuB,EAAE;QAC3E,YAAY,EAAE,MAAM,CAAC,GAAG;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"execute-dynamic.js","sourceRoot":"","sources":["../src/execute-dynamic.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { hasRealCredentials } from './credentials.js';
|
|
|
19
19
|
import { executeAPICall, getConnectedProviders } from './execute.js';
|
|
20
20
|
import { logAPICall } from './analytics.js';
|
|
21
21
|
import { isOpenAPI, executeOpenAPI, listOpenAPIs } from './open-apis.js';
|
|
22
|
+
import { requiresConfirmationAsync, createPendingAction, consumePendingAction, generatePreview, validateParams } from './confirmation.js';
|
|
22
23
|
// Default agent ID for MVP (in production, this would come from auth)
|
|
23
24
|
const DEFAULT_AGENT_ID = 'agent_default';
|
|
24
25
|
/**
|
|
@@ -160,17 +161,17 @@ const tools = [
|
|
|
160
161
|
},
|
|
161
162
|
{
|
|
162
163
|
name: 'call_api',
|
|
163
|
-
description: 'Execute an API call through APIClaw
|
|
164
|
+
description: 'Execute an API call through APIClaw. For actions that cost money (invoices, SMS), you will get a preview first and must confirm with the returned token. For free actions, executes immediately.',
|
|
164
165
|
inputSchema: {
|
|
165
166
|
type: 'object',
|
|
166
167
|
properties: {
|
|
167
168
|
provider: {
|
|
168
169
|
type: 'string',
|
|
169
|
-
description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio", "coaccept")'
|
|
170
|
+
description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio", "coaccept", "frankfurter")'
|
|
170
171
|
},
|
|
171
172
|
action: {
|
|
172
173
|
type: 'string',
|
|
173
|
-
description: 'Action to perform (e.g., "send_sms", "search", "send_email", "chat", "
|
|
174
|
+
description: 'Action to perform (e.g., "send_sms", "search", "send_email", "chat", "send_invoice", "convert")'
|
|
174
175
|
},
|
|
175
176
|
params: {
|
|
176
177
|
type: 'object',
|
|
@@ -178,10 +179,14 @@ const tools = [
|
|
|
178
179
|
},
|
|
179
180
|
customer_key: {
|
|
180
181
|
type: 'string',
|
|
181
|
-
description: 'Optional: Your own API key for providers that require customer authentication
|
|
182
|
+
description: 'Optional: Your own API key for providers that require customer authentication (e.g., CoAccept).'
|
|
183
|
+
},
|
|
184
|
+
confirm_token: {
|
|
185
|
+
type: 'string',
|
|
186
|
+
description: 'Confirmation token from a previous call. Required to execute actions that cost money after reviewing the preview.'
|
|
182
187
|
}
|
|
183
188
|
},
|
|
184
|
-
required: ['provider', 'action'
|
|
189
|
+
required: ['provider', 'action']
|
|
185
190
|
}
|
|
186
191
|
},
|
|
187
192
|
{
|
|
@@ -438,16 +443,101 @@ Docs: https://apiclaw.nordsym.com
|
|
|
438
443
|
const provider = args?.provider;
|
|
439
444
|
const action = args?.action;
|
|
440
445
|
const params = args?.params || {};
|
|
446
|
+
const confirmToken = args?.confirm_token;
|
|
441
447
|
const startTime = Date.now();
|
|
442
448
|
let result;
|
|
443
449
|
let apiType;
|
|
444
|
-
// Check if this is
|
|
450
|
+
// Check if this is a confirmation of a pending action
|
|
451
|
+
if (confirmToken) {
|
|
452
|
+
const pending = consumePendingAction(confirmToken);
|
|
453
|
+
if (!pending) {
|
|
454
|
+
return {
|
|
455
|
+
content: [{
|
|
456
|
+
type: 'text',
|
|
457
|
+
text: JSON.stringify({
|
|
458
|
+
status: 'error',
|
|
459
|
+
error: 'Invalid or expired confirmation token. Please start over.',
|
|
460
|
+
}, null, 2)
|
|
461
|
+
}],
|
|
462
|
+
isError: true
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
// Execute the confirmed action
|
|
466
|
+
apiType = 'direct';
|
|
467
|
+
const customerKey = args?.customer_key || getCustomerKey(pending.provider);
|
|
468
|
+
result = await executeAPICall(pending.provider, pending.action, pending.params, DEFAULT_AGENT_ID, customerKey);
|
|
469
|
+
// Log the confirmed API call
|
|
470
|
+
logAPICall({
|
|
471
|
+
timestamp: new Date().toISOString(),
|
|
472
|
+
provider: pending.provider,
|
|
473
|
+
action: pending.action,
|
|
474
|
+
type: apiType,
|
|
475
|
+
userId: DEFAULT_AGENT_ID,
|
|
476
|
+
success: result.success,
|
|
477
|
+
latencyMs: Date.now() - startTime,
|
|
478
|
+
error: result.error,
|
|
479
|
+
});
|
|
480
|
+
return {
|
|
481
|
+
content: [{
|
|
482
|
+
type: 'text',
|
|
483
|
+
text: JSON.stringify({
|
|
484
|
+
status: result.success ? 'success' : 'error',
|
|
485
|
+
provider: result.provider,
|
|
486
|
+
action: result.action,
|
|
487
|
+
confirmed: true,
|
|
488
|
+
...(result.success ? { data: result.data } : { error: result.error }),
|
|
489
|
+
}, null, 2)
|
|
490
|
+
}],
|
|
491
|
+
isError: !result.success
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
// Check if this action requires confirmation (both hardcoded and dynamic providers)
|
|
495
|
+
const confirmCheck = await requiresConfirmationAsync(provider, action);
|
|
496
|
+
if (confirmCheck.required) {
|
|
497
|
+
// Validate params first (for hardcoded providers)
|
|
498
|
+
if (!confirmCheck.isDynamic) {
|
|
499
|
+
const validation = validateParams(provider, action, params);
|
|
500
|
+
if (!validation.valid) {
|
|
501
|
+
return {
|
|
502
|
+
content: [{
|
|
503
|
+
type: 'text',
|
|
504
|
+
text: JSON.stringify({
|
|
505
|
+
status: 'error',
|
|
506
|
+
error: 'Validation failed',
|
|
507
|
+
missing_or_invalid: validation.errors,
|
|
508
|
+
hint: 'Please provide all required fields before sending.',
|
|
509
|
+
}, null, 2)
|
|
510
|
+
}],
|
|
511
|
+
isError: true
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
// Generate preview and create pending action
|
|
516
|
+
const preview = generatePreview(provider, action, params);
|
|
517
|
+
if (confirmCheck.estimatedCost) {
|
|
518
|
+
preview.estimated_cost = confirmCheck.estimatedCost;
|
|
519
|
+
}
|
|
520
|
+
const pending = createPendingAction(provider, action, params, preview, DEFAULT_AGENT_ID);
|
|
521
|
+
return {
|
|
522
|
+
content: [{
|
|
523
|
+
type: 'text',
|
|
524
|
+
text: JSON.stringify({
|
|
525
|
+
status: 'requires_confirmation',
|
|
526
|
+
message: '⚠️ This action costs money. Please review and confirm.',
|
|
527
|
+
preview,
|
|
528
|
+
confirm_token: pending.token,
|
|
529
|
+
expires_in_seconds: 300,
|
|
530
|
+
how_to_confirm: `Call again with confirm_token: "${pending.token}"`,
|
|
531
|
+
}, null, 2)
|
|
532
|
+
}]
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
// Regular execution (no confirmation needed)
|
|
445
536
|
if (isOpenAPI(provider)) {
|
|
446
537
|
apiType = 'open';
|
|
447
538
|
result = await executeOpenAPI(provider, action, params);
|
|
448
539
|
}
|
|
449
540
|
else {
|
|
450
|
-
// Direct Call - check for customer-provided API key
|
|
451
541
|
apiType = 'direct';
|
|
452
542
|
const customerKey = args?.customer_key || getCustomerKey(provider);
|
|
453
543
|
result = await executeAPICall(provider, action, params, DEFAULT_AGENT_ID, customerKey);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw Confirmation System
|
|
3
|
+
* For actions that cost money or have side effects
|
|
4
|
+
*
|
|
5
|
+
* Flow:
|
|
6
|
+
* 1. Agent calls action → gets preview + token
|
|
7
|
+
* 2. Agent shows preview to user
|
|
8
|
+
* 3. User confirms → agent calls confirm with token
|
|
9
|
+
* 4. APIClaw executes the actual action
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { randomBytes } from 'crypto';
|
|
13
|
+
|
|
14
|
+
export interface PendingAction {
|
|
15
|
+
token: string;
|
|
16
|
+
provider: string;
|
|
17
|
+
action: string;
|
|
18
|
+
params: Record<string, any>;
|
|
19
|
+
preview: Record<string, any>;
|
|
20
|
+
createdAt: number;
|
|
21
|
+
expiresAt: number;
|
|
22
|
+
userId?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// In-memory store for pending confirmations (in production, use Redis)
|
|
26
|
+
const pendingActions = new Map<string, PendingAction>();
|
|
27
|
+
|
|
28
|
+
// Actions that require confirmation before execution
|
|
29
|
+
export const CONFIRMATION_REQUIRED: Record<string, string[]> = {
|
|
30
|
+
// Invoicing - costs money per send
|
|
31
|
+
coaccept: ['send_invoice', 'send_reminder'],
|
|
32
|
+
|
|
33
|
+
// SMS - costs money per message
|
|
34
|
+
'46elks': ['send_sms'],
|
|
35
|
+
twilio: ['send_sms'],
|
|
36
|
+
|
|
37
|
+
// Email sends (less critical but still good to confirm)
|
|
38
|
+
resend: ['send_email'],
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Token expiry time (5 minutes)
|
|
42
|
+
const TOKEN_EXPIRY_MS = 5 * 60 * 1000;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Check if an action requires confirmation (hardcoded list only)
|
|
46
|
+
* For dynamic providers, use requiresConfirmationAsync
|
|
47
|
+
*/
|
|
48
|
+
export function requiresConfirmation(provider: string, action: string): boolean {
|
|
49
|
+
const actions = CONFIRMATION_REQUIRED[provider];
|
|
50
|
+
return actions?.includes(action) ?? false;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if a dynamic provider action requires confirmation
|
|
55
|
+
* This is imported dynamically to avoid circular deps
|
|
56
|
+
*/
|
|
57
|
+
export async function requiresConfirmationAsync(
|
|
58
|
+
provider: string,
|
|
59
|
+
action: string
|
|
60
|
+
): Promise<{ required: boolean; estimatedCost?: string; isDynamic?: boolean }> {
|
|
61
|
+
// First check hardcoded list
|
|
62
|
+
if (requiresConfirmation(provider, action)) {
|
|
63
|
+
return { required: true, isDynamic: false };
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Then check dynamic provider config
|
|
67
|
+
try {
|
|
68
|
+
const { getDynamicConfirmationConfig } = await import('./execute-dynamic.js');
|
|
69
|
+
const config = await getDynamicConfirmationConfig(provider, action);
|
|
70
|
+
if (config.required) {
|
|
71
|
+
return {
|
|
72
|
+
required: true,
|
|
73
|
+
estimatedCost: config.estimatedCost,
|
|
74
|
+
isDynamic: true
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
} catch (e) {
|
|
78
|
+
// Dynamic config not available, that's ok
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return { required: false };
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Generate a confirmation token and store the pending action
|
|
86
|
+
*/
|
|
87
|
+
export function createPendingAction(
|
|
88
|
+
provider: string,
|
|
89
|
+
action: string,
|
|
90
|
+
params: Record<string, any>,
|
|
91
|
+
preview: Record<string, any>,
|
|
92
|
+
userId?: string
|
|
93
|
+
): PendingAction {
|
|
94
|
+
// Clean up expired tokens
|
|
95
|
+
cleanupExpired();
|
|
96
|
+
|
|
97
|
+
const token = randomBytes(16).toString('hex');
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
|
|
100
|
+
const pending: PendingAction = {
|
|
101
|
+
token,
|
|
102
|
+
provider,
|
|
103
|
+
action,
|
|
104
|
+
params,
|
|
105
|
+
preview,
|
|
106
|
+
createdAt: now,
|
|
107
|
+
expiresAt: now + TOKEN_EXPIRY_MS,
|
|
108
|
+
userId,
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
pendingActions.set(token, pending);
|
|
112
|
+
return pending;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Get a pending action by token (and validate it)
|
|
117
|
+
*/
|
|
118
|
+
export function getPendingAction(token: string): PendingAction | null {
|
|
119
|
+
const pending = pendingActions.get(token);
|
|
120
|
+
|
|
121
|
+
if (!pending) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (Date.now() > pending.expiresAt) {
|
|
126
|
+
pendingActions.delete(token);
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return pending;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Consume a pending action (use it and remove from store)
|
|
135
|
+
*/
|
|
136
|
+
export function consumePendingAction(token: string): PendingAction | null {
|
|
137
|
+
const pending = getPendingAction(token);
|
|
138
|
+
|
|
139
|
+
if (pending) {
|
|
140
|
+
pendingActions.delete(token);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return pending;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Clean up expired tokens
|
|
148
|
+
*/
|
|
149
|
+
function cleanupExpired(): void {
|
|
150
|
+
const now = Date.now();
|
|
151
|
+
for (const [token, pending] of pendingActions.entries()) {
|
|
152
|
+
if (now > pending.expiresAt) {
|
|
153
|
+
pendingActions.delete(token);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Generate a human-readable preview for an action
|
|
160
|
+
*/
|
|
161
|
+
export function generatePreview(
|
|
162
|
+
provider: string,
|
|
163
|
+
action: string,
|
|
164
|
+
params: Record<string, any>
|
|
165
|
+
): Record<string, any> {
|
|
166
|
+
// Provider-specific preview generators
|
|
167
|
+
switch (provider) {
|
|
168
|
+
case 'coaccept':
|
|
169
|
+
return generateCoAcceptPreview(action, params);
|
|
170
|
+
case '46elks':
|
|
171
|
+
case 'twilio':
|
|
172
|
+
return generateSMSPreview(params);
|
|
173
|
+
case 'resend':
|
|
174
|
+
return generateEmailPreview(params);
|
|
175
|
+
default:
|
|
176
|
+
return { action, params };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function generateCoAcceptPreview(action: string, params: Record<string, any>): Record<string, any> {
|
|
181
|
+
if (action === 'send_invoice') {
|
|
182
|
+
const items = params.items || [];
|
|
183
|
+
const totalAmount = items.reduce((sum: number, item: any) => sum + (item.amount || 0), 0);
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
type: 'invoice',
|
|
187
|
+
recipient: {
|
|
188
|
+
name: params.recipient_name,
|
|
189
|
+
email: params.recipient_email,
|
|
190
|
+
org_number: params.recipient_org_nr,
|
|
191
|
+
},
|
|
192
|
+
amount: {
|
|
193
|
+
subtotal: totalAmount,
|
|
194
|
+
vat_rate: params.vat_rate || 25,
|
|
195
|
+
vat_amount: totalAmount * ((params.vat_rate || 25) / 100),
|
|
196
|
+
total: totalAmount * (1 + (params.vat_rate || 25) / 100),
|
|
197
|
+
currency: params.currency || 'SEK',
|
|
198
|
+
},
|
|
199
|
+
due_date: params.due_date,
|
|
200
|
+
items: items.map((item: any) => ({
|
|
201
|
+
description: item.description,
|
|
202
|
+
quantity: item.quantity || 1,
|
|
203
|
+
unit_price: item.unit_price || item.amount,
|
|
204
|
+
amount: item.amount,
|
|
205
|
+
})),
|
|
206
|
+
payment_method: 'SMS + Swish/Card (CoAccept)',
|
|
207
|
+
estimated_cost: '~2-5 SEK per invoice',
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return { action, params };
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function generateSMSPreview(params: Record<string, any>): Record<string, any> {
|
|
215
|
+
const messageLength = (params.message || '').length;
|
|
216
|
+
const segments = Math.ceil(messageLength / 160);
|
|
217
|
+
|
|
218
|
+
return {
|
|
219
|
+
type: 'sms',
|
|
220
|
+
to: params.to,
|
|
221
|
+
from: params.from || 'NordSym',
|
|
222
|
+
message: params.message,
|
|
223
|
+
message_length: messageLength,
|
|
224
|
+
segments,
|
|
225
|
+
estimated_cost: `~${(segments * 0.35).toFixed(2)} SEK`,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function generateEmailPreview(params: Record<string, any>): Record<string, any> {
|
|
230
|
+
return {
|
|
231
|
+
type: 'email',
|
|
232
|
+
to: params.to,
|
|
233
|
+
from: params.from || 'noreply@nordsym.com',
|
|
234
|
+
subject: params.subject,
|
|
235
|
+
preview: (params.message || params.html || '').substring(0, 200) + '...',
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Validate params before creating preview
|
|
241
|
+
* Returns { valid: true } or { valid: false, errors: [...] }
|
|
242
|
+
*/
|
|
243
|
+
export function validateParams(
|
|
244
|
+
provider: string,
|
|
245
|
+
action: string,
|
|
246
|
+
params: Record<string, any>
|
|
247
|
+
): { valid: boolean; errors?: string[] } {
|
|
248
|
+
const errors: string[] = [];
|
|
249
|
+
|
|
250
|
+
switch (provider) {
|
|
251
|
+
case 'coaccept':
|
|
252
|
+
if (action === 'send_invoice') {
|
|
253
|
+
if (!params.recipient_name) errors.push('Missing: recipient_name');
|
|
254
|
+
if (!params.recipient_email) errors.push('Missing: recipient_email');
|
|
255
|
+
if (!params.items || !Array.isArray(params.items) || params.items.length === 0) {
|
|
256
|
+
errors.push('Missing: items (at least one invoice item required)');
|
|
257
|
+
}
|
|
258
|
+
if (!params.due_date) errors.push('Missing: due_date (YYYY-MM-DD)');
|
|
259
|
+
|
|
260
|
+
// Validate email format
|
|
261
|
+
if (params.recipient_email && !params.recipient_email.includes('@')) {
|
|
262
|
+
errors.push('Invalid: recipient_email format');
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Validate due date is not in past
|
|
266
|
+
if (params.due_date) {
|
|
267
|
+
const dueDate = new Date(params.due_date);
|
|
268
|
+
const today = new Date();
|
|
269
|
+
today.setHours(0, 0, 0, 0);
|
|
270
|
+
if (dueDate < today) {
|
|
271
|
+
errors.push('Invalid: due_date cannot be in the past');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
break;
|
|
276
|
+
|
|
277
|
+
case '46elks':
|
|
278
|
+
case 'twilio':
|
|
279
|
+
if (!params.to) errors.push('Missing: to (phone number)');
|
|
280
|
+
if (!params.message) errors.push('Missing: message');
|
|
281
|
+
|
|
282
|
+
// Validate phone format (basic check)
|
|
283
|
+
if (params.to && !params.to.startsWith('+')) {
|
|
284
|
+
errors.push('Invalid: phone number must start with + (e.g., +46701234567)');
|
|
285
|
+
}
|
|
286
|
+
break;
|
|
287
|
+
|
|
288
|
+
case 'resend':
|
|
289
|
+
if (!params.to) errors.push('Missing: to (email address)');
|
|
290
|
+
if (!params.subject) errors.push('Missing: subject');
|
|
291
|
+
if (!params.message && !params.html) errors.push('Missing: message or html content');
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
return errors.length > 0 ? { valid: false, errors } : { valid: true };
|
|
296
|
+
}
|
package/src/execute-dynamic.ts
CHANGED
|
@@ -49,6 +49,9 @@ export interface ProviderAction {
|
|
|
49
49
|
params: ActionParam[];
|
|
50
50
|
responseMapping: ResponseMapping[];
|
|
51
51
|
enabled: boolean;
|
|
52
|
+
// Confirmation settings for costly actions
|
|
53
|
+
requiresConfirmation?: boolean;
|
|
54
|
+
estimatedCost?: string; // e.g., "~2-5 SEK per invoice"
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
export interface ExecuteResult {
|
|
@@ -149,6 +152,31 @@ export async function getActionConfig(providerId: string, actionName: string): P
|
|
|
149
152
|
});
|
|
150
153
|
}
|
|
151
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Check if a dynamic action requires confirmation (for costly actions)
|
|
157
|
+
* Returns action config if confirmation required, null otherwise
|
|
158
|
+
*/
|
|
159
|
+
export async function getDynamicConfirmationConfig(
|
|
160
|
+
providerId: string,
|
|
161
|
+
actionName: string
|
|
162
|
+
): Promise<{ required: boolean; action?: ProviderAction; estimatedCost?: string }> {
|
|
163
|
+
const action = await getActionConfig(providerId, actionName);
|
|
164
|
+
|
|
165
|
+
if (!action) {
|
|
166
|
+
return { required: false };
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (action.requiresConfirmation) {
|
|
170
|
+
return {
|
|
171
|
+
required: true,
|
|
172
|
+
action,
|
|
173
|
+
estimatedCost: action.estimatedCost
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return { required: false };
|
|
178
|
+
}
|
|
179
|
+
|
|
152
180
|
/**
|
|
153
181
|
* Get user's current usage for rate limiting
|
|
154
182
|
*/
|
package/src/index.ts
CHANGED
|
@@ -32,6 +32,14 @@ import { hasRealCredentials } from './credentials.js';
|
|
|
32
32
|
import { executeAPICall, getConnectedProviders } from './execute.js';
|
|
33
33
|
import { logAPICall } from './analytics.js';
|
|
34
34
|
import { isOpenAPI, executeOpenAPI, listOpenAPIs, getOpenAPIActions } from './open-apis.js';
|
|
35
|
+
import {
|
|
36
|
+
requiresConfirmation,
|
|
37
|
+
requiresConfirmationAsync,
|
|
38
|
+
createPendingAction,
|
|
39
|
+
consumePendingAction,
|
|
40
|
+
generatePreview,
|
|
41
|
+
validateParams
|
|
42
|
+
} from './confirmation.js';
|
|
35
43
|
|
|
36
44
|
// Default agent ID for MVP (in production, this would come from auth)
|
|
37
45
|
const DEFAULT_AGENT_ID = 'agent_default';
|
|
@@ -179,17 +187,17 @@ const tools: Tool[] = [
|
|
|
179
187
|
},
|
|
180
188
|
{
|
|
181
189
|
name: 'call_api',
|
|
182
|
-
description: 'Execute an API call through APIClaw
|
|
190
|
+
description: 'Execute an API call through APIClaw. For actions that cost money (invoices, SMS), you will get a preview first and must confirm with the returned token. For free actions, executes immediately.',
|
|
183
191
|
inputSchema: {
|
|
184
192
|
type: 'object',
|
|
185
193
|
properties: {
|
|
186
194
|
provider: {
|
|
187
195
|
type: 'string',
|
|
188
|
-
description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio", "coaccept")'
|
|
196
|
+
description: 'Provider ID (e.g., "46elks", "brave_search", "resend", "openrouter", "elevenlabs", "twilio", "coaccept", "frankfurter")'
|
|
189
197
|
},
|
|
190
198
|
action: {
|
|
191
199
|
type: 'string',
|
|
192
|
-
description: 'Action to perform (e.g., "send_sms", "search", "send_email", "chat", "
|
|
200
|
+
description: 'Action to perform (e.g., "send_sms", "search", "send_email", "chat", "send_invoice", "convert")'
|
|
193
201
|
},
|
|
194
202
|
params: {
|
|
195
203
|
type: 'object',
|
|
@@ -197,10 +205,14 @@ const tools: Tool[] = [
|
|
|
197
205
|
},
|
|
198
206
|
customer_key: {
|
|
199
207
|
type: 'string',
|
|
200
|
-
description: 'Optional: Your own API key for providers that require customer authentication
|
|
208
|
+
description: 'Optional: Your own API key for providers that require customer authentication (e.g., CoAccept).'
|
|
209
|
+
},
|
|
210
|
+
confirm_token: {
|
|
211
|
+
type: 'string',
|
|
212
|
+
description: 'Confirmation token from a previous call. Required to execute actions that cost money after reviewing the preview.'
|
|
201
213
|
}
|
|
202
214
|
},
|
|
203
|
-
required: ['provider', 'action'
|
|
215
|
+
required: ['provider', 'action']
|
|
204
216
|
}
|
|
205
217
|
},
|
|
206
218
|
{
|
|
@@ -485,17 +497,112 @@ Docs: https://apiclaw.nordsym.com
|
|
|
485
497
|
const provider = args?.provider as string;
|
|
486
498
|
const action = args?.action as string;
|
|
487
499
|
const params = (args?.params as Record<string, any>) || {};
|
|
500
|
+
const confirmToken = args?.confirm_token as string | undefined;
|
|
488
501
|
|
|
489
502
|
const startTime = Date.now();
|
|
490
503
|
let result: { success: boolean; provider: string; action: string; data?: any; error?: string; cost?: number };
|
|
491
504
|
let apiType: 'direct' | 'open';
|
|
492
505
|
|
|
493
|
-
// Check if this is
|
|
506
|
+
// Check if this is a confirmation of a pending action
|
|
507
|
+
if (confirmToken) {
|
|
508
|
+
const pending = consumePendingAction(confirmToken);
|
|
509
|
+
|
|
510
|
+
if (!pending) {
|
|
511
|
+
return {
|
|
512
|
+
content: [{
|
|
513
|
+
type: 'text',
|
|
514
|
+
text: JSON.stringify({
|
|
515
|
+
status: 'error',
|
|
516
|
+
error: 'Invalid or expired confirmation token. Please start over.',
|
|
517
|
+
}, null, 2)
|
|
518
|
+
}],
|
|
519
|
+
isError: true
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
// Execute the confirmed action
|
|
524
|
+
apiType = 'direct';
|
|
525
|
+
const customerKey = (args?.customer_key as string) || getCustomerKey(pending.provider);
|
|
526
|
+
result = await executeAPICall(pending.provider, pending.action, pending.params, DEFAULT_AGENT_ID, customerKey);
|
|
527
|
+
|
|
528
|
+
// Log the confirmed API call
|
|
529
|
+
logAPICall({
|
|
530
|
+
timestamp: new Date().toISOString(),
|
|
531
|
+
provider: pending.provider,
|
|
532
|
+
action: pending.action,
|
|
533
|
+
type: apiType,
|
|
534
|
+
userId: DEFAULT_AGENT_ID,
|
|
535
|
+
success: result.success,
|
|
536
|
+
latencyMs: Date.now() - startTime,
|
|
537
|
+
error: result.error,
|
|
538
|
+
});
|
|
539
|
+
|
|
540
|
+
return {
|
|
541
|
+
content: [{
|
|
542
|
+
type: 'text',
|
|
543
|
+
text: JSON.stringify({
|
|
544
|
+
status: result.success ? 'success' : 'error',
|
|
545
|
+
provider: result.provider,
|
|
546
|
+
action: result.action,
|
|
547
|
+
confirmed: true,
|
|
548
|
+
...(result.success ? { data: result.data } : { error: result.error }),
|
|
549
|
+
}, null, 2)
|
|
550
|
+
}],
|
|
551
|
+
isError: !result.success
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// Check if this action requires confirmation (both hardcoded and dynamic providers)
|
|
556
|
+
const confirmCheck = await requiresConfirmationAsync(provider, action);
|
|
557
|
+
|
|
558
|
+
if (confirmCheck.required) {
|
|
559
|
+
// Validate params first (for hardcoded providers)
|
|
560
|
+
if (!confirmCheck.isDynamic) {
|
|
561
|
+
const validation = validateParams(provider, action, params);
|
|
562
|
+
|
|
563
|
+
if (!validation.valid) {
|
|
564
|
+
return {
|
|
565
|
+
content: [{
|
|
566
|
+
type: 'text',
|
|
567
|
+
text: JSON.stringify({
|
|
568
|
+
status: 'error',
|
|
569
|
+
error: 'Validation failed',
|
|
570
|
+
missing_or_invalid: validation.errors,
|
|
571
|
+
hint: 'Please provide all required fields before sending.',
|
|
572
|
+
}, null, 2)
|
|
573
|
+
}],
|
|
574
|
+
isError: true
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
// Generate preview and create pending action
|
|
580
|
+
const preview = generatePreview(provider, action, params);
|
|
581
|
+
if (confirmCheck.estimatedCost) {
|
|
582
|
+
preview.estimated_cost = confirmCheck.estimatedCost;
|
|
583
|
+
}
|
|
584
|
+
const pending = createPendingAction(provider, action, params, preview, DEFAULT_AGENT_ID);
|
|
585
|
+
|
|
586
|
+
return {
|
|
587
|
+
content: [{
|
|
588
|
+
type: 'text',
|
|
589
|
+
text: JSON.stringify({
|
|
590
|
+
status: 'requires_confirmation',
|
|
591
|
+
message: '⚠️ This action costs money. Please review and confirm.',
|
|
592
|
+
preview,
|
|
593
|
+
confirm_token: pending.token,
|
|
594
|
+
expires_in_seconds: 300,
|
|
595
|
+
how_to_confirm: `Call again with confirm_token: "${pending.token}"`,
|
|
596
|
+
}, null, 2)
|
|
597
|
+
}]
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// Regular execution (no confirmation needed)
|
|
494
602
|
if (isOpenAPI(provider)) {
|
|
495
603
|
apiType = 'open';
|
|
496
604
|
result = await executeOpenAPI(provider, action, params);
|
|
497
605
|
} else {
|
|
498
|
-
// Direct Call - check for customer-provided API key
|
|
499
606
|
apiType = 'direct';
|
|
500
607
|
const customerKey = (args?.customer_key as string) || getCustomerKey(provider);
|
|
501
608
|
result = await executeAPICall(provider, action, params, DEFAULT_AGENT_ID, customerKey);
|