@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 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":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"execute-dynamic.d.ts","sourceRoot":"","sources":["../src/execute-dynamic.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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 Direct Call. No API keys needed - we handle authentication. For providers that require customer authentication (like CoAccept), pass your own API key via customer_key.',
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", "text_to_speech")'
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. If not provided, uses APIClaw shared credentials (where available).'
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', 'params']
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 an Open API (free, no auth needed)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordsym/apiclaw",
3
- "version": "1.2.8",
3
+ "version": "1.2.10",
4
4
  "description": "Agent-native API discovery and Direct Call execution via MCP",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -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
+ }
@@ -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 Direct Call. No API keys needed - we handle authentication. For providers that require customer authentication (like CoAccept), pass your own API key via customer_key.',
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", "text_to_speech")'
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. If not provided, uses APIClaw shared credentials (where available).'
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', 'params']
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 an Open API (free, no auth needed)
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);