@nevermined-io/openclaw-plugin 1.1.0 → 1.1.2

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/README.md CHANGED
@@ -33,7 +33,7 @@ Add your API key directly to `openclaw.json`:
33
33
  {
34
34
  "plugins": {
35
35
  "entries": {
36
- "nevermined": {
36
+ "openclaw-plugin": {
37
37
  "enabled": true,
38
38
  "config": {
39
39
  "nvmApiKey": "sandbox:eyJhbG...",
package/dist/config.d.ts CHANGED
@@ -1,32 +1,108 @@
1
1
  import { z } from 'zod';
2
2
  import { Payments } from '@nevermined-io/payments';
3
+ declare const PlanEntrySchema: z.ZodObject<{
4
+ planId: z.ZodString;
5
+ name: z.ZodOptional<z.ZodString>;
6
+ paymentType: z.ZodDefault<z.ZodEnum<["crypto", "fiat"]>>;
7
+ credits: z.ZodOptional<z.ZodNumber>;
8
+ price: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ planId: string;
11
+ paymentType: "crypto" | "fiat";
12
+ name?: string | undefined;
13
+ credits?: number | undefined;
14
+ price?: string | undefined;
15
+ }, {
16
+ planId: string;
17
+ name?: string | undefined;
18
+ paymentType?: "crypto" | "fiat" | undefined;
19
+ credits?: number | undefined;
20
+ price?: string | undefined;
21
+ }>;
22
+ export type PlanEntry = z.infer<typeof PlanEntrySchema>;
3
23
  export declare const NeverminedPluginConfigSchema: z.ZodObject<{
4
24
  nvmApiKey: z.ZodOptional<z.ZodString>;
5
25
  environment: z.ZodDefault<z.ZodEnum<["sandbox", "live"]>>;
26
+ /** @deprecated Use `plans` array instead. Kept for backwards compatibility. */
6
27
  planId: z.ZodOptional<z.ZodString>;
28
+ /** @deprecated Use `plans` array instead. Kept for backwards compatibility. */
29
+ fiatPlanId: z.ZodOptional<z.ZodString>;
30
+ plans: z.ZodDefault<z.ZodArray<z.ZodObject<{
31
+ planId: z.ZodString;
32
+ name: z.ZodOptional<z.ZodString>;
33
+ paymentType: z.ZodDefault<z.ZodEnum<["crypto", "fiat"]>>;
34
+ credits: z.ZodOptional<z.ZodNumber>;
35
+ price: z.ZodOptional<z.ZodString>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ planId: string;
38
+ paymentType: "crypto" | "fiat";
39
+ name?: string | undefined;
40
+ credits?: number | undefined;
41
+ price?: string | undefined;
42
+ }, {
43
+ planId: string;
44
+ name?: string | undefined;
45
+ paymentType?: "crypto" | "fiat" | undefined;
46
+ credits?: number | undefined;
47
+ price?: string | undefined;
48
+ }>, "many">>;
7
49
  agentId: z.ZodOptional<z.ZodString>;
8
50
  creditsPerRequest: z.ZodDefault<z.ZodNumber>;
51
+ creditsPerMinute: z.ZodDefault<z.ZodNumber>;
9
52
  enablePaidEndpoint: z.ZodDefault<z.ZodBoolean>;
10
53
  agentEndpointPath: z.ZodDefault<z.ZodString>;
54
+ paymentType: z.ZodDefault<z.ZodEnum<["crypto", "fiat"]>>;
55
+ defaultSpendingLimitCents: z.ZodDefault<z.ZodNumber>;
56
+ defaultDelegationDurationSecs: z.ZodDefault<z.ZodNumber>;
11
57
  }, "strip", z.ZodTypeAny, {
12
58
  environment: "sandbox" | "live";
59
+ paymentType: "crypto" | "fiat";
60
+ plans: {
61
+ planId: string;
62
+ paymentType: "crypto" | "fiat";
63
+ name?: string | undefined;
64
+ credits?: number | undefined;
65
+ price?: string | undefined;
66
+ }[];
13
67
  creditsPerRequest: number;
68
+ creditsPerMinute: number;
14
69
  enablePaidEndpoint: boolean;
15
70
  agentEndpointPath: string;
71
+ defaultSpendingLimitCents: number;
72
+ defaultDelegationDurationSecs: number;
16
73
  nvmApiKey?: string | undefined;
17
74
  planId?: string | undefined;
75
+ fiatPlanId?: string | undefined;
18
76
  agentId?: string | undefined;
19
77
  }, {
20
78
  nvmApiKey?: string | undefined;
21
79
  environment?: "sandbox" | "live" | undefined;
22
80
  planId?: string | undefined;
81
+ paymentType?: "crypto" | "fiat" | undefined;
82
+ fiatPlanId?: string | undefined;
83
+ plans?: {
84
+ planId: string;
85
+ name?: string | undefined;
86
+ paymentType?: "crypto" | "fiat" | undefined;
87
+ credits?: number | undefined;
88
+ price?: string | undefined;
89
+ }[] | undefined;
23
90
  agentId?: string | undefined;
24
91
  creditsPerRequest?: number | undefined;
92
+ creditsPerMinute?: number | undefined;
25
93
  enablePaidEndpoint?: boolean | undefined;
26
94
  agentEndpointPath?: string | undefined;
95
+ defaultSpendingLimitCents?: number | undefined;
96
+ defaultDelegationDurationSecs?: number | undefined;
27
97
  }>;
28
98
  export type NeverminedPluginConfig = z.infer<typeof NeverminedPluginConfigSchema>;
99
+ /**
100
+ * Returns the effective list of plans, merging the `plans` array with legacy
101
+ * `planId`/`fiatPlanId` fields for backwards compatibility.
102
+ */
103
+ export declare function getEffectivePlans(config: NeverminedPluginConfig): PlanEntry[];
29
104
  export declare function validateConfig(raw: unknown): NeverminedPluginConfig;
30
105
  export declare function requireApiKey(config: NeverminedPluginConfig): string;
31
106
  export declare function createPaymentsFromConfig(config: NeverminedPluginConfig): Payments;
107
+ export {};
32
108
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAQvC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAEnE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAKpE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,QAAQ,CAKjF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAMnB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,4BAA4B;;;IAGvC,+EAA+E;;IAE/E,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/E,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEjF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAAE,CAQ7E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAEnE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAKpE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,QAAQ,CAKjF"}
package/dist/config.js CHANGED
@@ -1,14 +1,44 @@
1
1
  import { z } from 'zod';
2
2
  import { Payments } from '@nevermined-io/payments';
3
+ const PlanEntrySchema = z.object({
4
+ planId: z.string(),
5
+ name: z.string().optional(),
6
+ paymentType: z.enum(['crypto', 'fiat']).default('crypto'),
7
+ credits: z.number().optional(),
8
+ price: z.string().optional(),
9
+ });
3
10
  export const NeverminedPluginConfigSchema = z.object({
4
11
  nvmApiKey: z.string().optional(),
5
12
  environment: z.enum(['sandbox', 'live']).default('sandbox'),
13
+ /** @deprecated Use `plans` array instead. Kept for backwards compatibility. */
6
14
  planId: z.string().optional(),
15
+ /** @deprecated Use `plans` array instead. Kept for backwards compatibility. */
16
+ fiatPlanId: z.string().optional(),
17
+ plans: z.array(PlanEntrySchema).default([]),
7
18
  agentId: z.string().optional(),
8
19
  creditsPerRequest: z.number().int().positive().default(1),
20
+ creditsPerMinute: z.number().positive().default(1),
9
21
  enablePaidEndpoint: z.boolean().default(false),
10
22
  agentEndpointPath: z.string().default('/nevermined/agent'),
23
+ paymentType: z.enum(['crypto', 'fiat']).default('crypto'),
24
+ defaultSpendingLimitCents: z.number().int().positive().default(1000),
25
+ defaultDelegationDurationSecs: z.number().int().positive().default(3600),
11
26
  });
27
+ /**
28
+ * Returns the effective list of plans, merging the `plans` array with legacy
29
+ * `planId`/`fiatPlanId` fields for backwards compatibility.
30
+ */
31
+ export function getEffectivePlans(config) {
32
+ if (config.plans.length > 0)
33
+ return config.plans;
34
+ // Backwards compatibility: build plans array from legacy fields
35
+ const plans = [];
36
+ if (config.planId)
37
+ plans.push({ planId: config.planId, paymentType: 'crypto' });
38
+ if (config.fiatPlanId)
39
+ plans.push({ planId: config.fiatPlanId, paymentType: 'fiat' });
40
+ return plans;
41
+ }
12
42
  export function validateConfig(raw) {
13
43
  return NeverminedPluginConfigSchema.parse(raw);
14
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;CAC3D,CAAC,CAAA;AAIF,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAA8B;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA8B;IACrE,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAA8B;KACnD,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { validateConfig, createPaymentsFromConfig, requireApiKey } from './config.js';
1
+ import { validateConfig, createPaymentsFromConfig, requireApiKey, getEffectivePlans } from './config.js';
2
2
  import { createTools } from './tools.js';
3
3
  import { startLoginFlow, looksLikeApiKey, getLoginUrl, getApiKeyUrl } from './auth.js';
4
4
  import { registerPaidEndpoint } from './paid-endpoint.js';
5
+ import { buildPaymentRequired } from '@nevermined-io/payments';
5
6
  export { validateConfig, createPaymentsFromConfig, requireApiKey };
6
7
  export { startLoginFlow, openBrowser } from './auth.js';
7
8
  export { registerPaidEndpoint, mockWeatherHandler } from './paid-endpoint.js';
@@ -10,13 +11,15 @@ export { registerPaidEndpoint, mockWeatherHandler } from './paid-endpoint.js';
10
11
  * Exports id, name, description, and a register function.
11
12
  */
12
13
  const neverminedPlugin = {
13
- id: 'nevermined',
14
+ id: 'openclaw-plugin',
14
15
  name: '@nevermined-io/openclaw-plugin',
15
16
  description: 'Nevermined plugin for OpenClaw — AI agent payments and access control',
16
17
  register(api, options) {
17
18
  const config = validateConfig(api.pluginConfig ?? {});
19
+ const plans = getEffectivePlans(config);
18
20
  // Lazy Payments instance — created on first use after authentication
19
21
  let payments = null;
22
+ let catalogCache = null;
20
23
  const factory = options?.paymentsFactory ?? createPaymentsFromConfig;
21
24
  function getPayments() {
22
25
  if (!payments) {
@@ -26,12 +29,12 @@ const neverminedPlugin = {
26
29
  return payments;
27
30
  }
28
31
  // --- Register tools via factory function ---
29
- // OpenClaw calls the factory per agent session, providing context.
30
- // We return the full tool array each time.
31
32
  const toolNames = [
32
33
  'nevermined_checkBalance',
33
34
  'nevermined_getAccessToken',
34
35
  'nevermined_orderPlan',
36
+ 'nevermined_orderFiatPlan',
37
+ 'nevermined_listPaymentMethods',
35
38
  'nevermined_queryAgent',
36
39
  'nevermined_registerAgent',
37
40
  'nevermined_createPlan',
@@ -43,31 +46,160 @@ const neverminedPlugin = {
43
46
  if (config.enablePaidEndpoint && api.registerHttpRoute) {
44
47
  registerPaidEndpoint(api, getPayments, config, options?.agentHandler);
45
48
  }
46
- // --- Credit balance injection into agent context ---
47
- if (api.on) {
48
- let cachedBalance = null;
49
+ // --- Credit balance + plan catalog injection into agent context ---
50
+ if (api.on && plans.length > 0) {
49
51
  const CACHE_TTL_MS = 60000;
50
52
  api.on('before_prompt_build', async () => {
51
- if (!config.nvmApiKey || !config.planId)
53
+ if (!config.nvmApiKey)
52
54
  return undefined;
53
55
  const now = Date.now();
54
- if (cachedBalance && now - cachedBalance.fetchedAt < CACHE_TTL_MS) {
55
- return { prependContext: formatBalanceContext(cachedBalance.balance, cachedBalance.planName) };
56
+ if (catalogCache && now - catalogCache.fetchedAt < CACHE_TTL_MS) {
57
+ return { prependContext: catalogCache.text };
56
58
  }
57
59
  try {
58
- const result = await getPayments().plans.getPlanBalance(config.planId);
59
- cachedBalance = {
60
- balance: result.balance.toString(),
61
- planName: result.planName ?? config.planId,
62
- fetchedAt: now,
63
- };
64
- return { prependContext: formatBalanceContext(cachedBalance.balance, cachedBalance.planName) };
60
+ const p = getPayments();
61
+ const balances = await Promise.all(plans.map(async (plan) => {
62
+ try {
63
+ const b = await p.plans.getPlanBalance(plan.planId);
64
+ return {
65
+ ...plan,
66
+ planName: b.planName ?? plan.name ?? plan.planId,
67
+ balance: Number(b.balance),
68
+ isSubscriber: b.isSubscriber,
69
+ };
70
+ }
71
+ catch {
72
+ return { ...plan, planName: plan.name ?? plan.planId, balance: 0, isSubscriber: false };
73
+ }
74
+ }));
75
+ const text = formatPlanCatalog(balances, config.creditsPerMinute);
76
+ catalogCache = { text, fetchedAt: now };
77
+ return { prependContext: text };
65
78
  }
66
79
  catch {
67
80
  return undefined;
68
81
  }
69
82
  });
70
83
  }
84
+ // --- x402 credit enforcement for non-plugin tool calls ---
85
+ if (api.on && plans.length > 0) {
86
+ const pendingSettlements = new Map();
87
+ let invocationCounter = 0;
88
+ api.on('before_tool_call', async (event) => {
89
+ const { toolName, params, callId: eventCallId } = event;
90
+ const callId = eventCallId ?? `${toolName}-${++invocationCounter}`;
91
+ // Skip nevermined tools — they handle their own payments
92
+ if (toolName.startsWith('nevermined_'))
93
+ return undefined;
94
+ if (!config.nvmApiKey) {
95
+ return { block: true, blockReason: 'Not authenticated with Nevermined. Run /nvm_login first.' };
96
+ }
97
+ // Calculate credits needed based on meeting duration (for calendar tools)
98
+ const creditsNeeded = calculateCreditsNeeded(toolName, params, config.creditsPerMinute, config.creditsPerRequest);
99
+ try {
100
+ const p = getPayments();
101
+ // Cache payment methods for fiat plans (fetched once per hook call)
102
+ let cachedPaymentMethods = null;
103
+ // Try each plan until one verifies successfully
104
+ for (const plan of plans) {
105
+ try {
106
+ // Build token options: fiat plans use nvm:card-delegation scheme
107
+ let tokenOptions;
108
+ if (plan.paymentType === 'fiat') {
109
+ if (!cachedPaymentMethods) {
110
+ try {
111
+ cachedPaymentMethods = await p.delegation.listPaymentMethods();
112
+ }
113
+ catch {
114
+ cachedPaymentMethods = [];
115
+ }
116
+ }
117
+ if (cachedPaymentMethods.length === 0)
118
+ continue; // no cards enrolled, skip fiat plan
119
+ tokenOptions = {
120
+ scheme: 'nvm:card-delegation',
121
+ delegationConfig: {
122
+ providerPaymentMethodId: cachedPaymentMethods[0].id,
123
+ spendingLimitCents: config.defaultSpendingLimitCents ?? 1000,
124
+ durationSecs: config.defaultDelegationDurationSecs ?? 3600,
125
+ },
126
+ };
127
+ }
128
+ const { accessToken } = await p.x402.getX402AccessToken(plan.planId, config.agentId, undefined, undefined, undefined, tokenOptions);
129
+ const paymentRequired = buildPaymentRequired(plan.planId, {
130
+ endpoint: `tool:${toolName}`,
131
+ agentId: config.agentId,
132
+ httpVerb: 'POST',
133
+ });
134
+ const verification = await p.facilitator.verifyPermissions({
135
+ paymentRequired,
136
+ x402AccessToken: accessToken,
137
+ maxAmount: creditsNeeded,
138
+ });
139
+ api.logger.info(`x402: verify result for ${plan.name ?? plan.planId}: ${JSON.stringify(verification)}`);
140
+ if (verification.isValid) {
141
+ pendingSettlements.set(callId, { paymentRequired, accessToken, creditsUsed: creditsNeeded });
142
+ api.logger.info(`x402: verified ${creditsNeeded} credits on plan ${plan.name ?? plan.planId} for ${toolName} (${callId})`);
143
+ return undefined; // allow
144
+ }
145
+ }
146
+ catch (planErr) {
147
+ api.logger.warn(`x402: plan ${plan.name ?? plan.planId} failed: ${planErr instanceof Error ? planErr.message : String(planErr)}`);
148
+ }
149
+ }
150
+ // No plan had enough credits
151
+ const cryptoOptions = plans
152
+ .filter((p) => p.paymentType === 'crypto')
153
+ .map((p) => `- ${p.name ?? p.planId}: use nevermined_orderPlan with planId="${p.planId}"`);
154
+ const fiatFailed = plans.some((p) => p.paymentType === 'fiat');
155
+ const parts = [`Insufficient credits (need ${creditsNeeded}).`];
156
+ if (fiatFailed) {
157
+ parts.push('Fiat card-delegation failed — the user may not have an enrolled credit card. They can enroll at https://nevermined.app.');
158
+ }
159
+ if (cryptoOptions.length > 0) {
160
+ parts.push(`Purchase crypto credits:\n${cryptoOptions.join('\n')}`);
161
+ }
162
+ return {
163
+ block: true,
164
+ blockReason: parts.join(' '),
165
+ };
166
+ }
167
+ catch (err) {
168
+ return {
169
+ block: true,
170
+ blockReason: `Payment verification failed: ${err instanceof Error ? err.message : String(err)}`,
171
+ };
172
+ }
173
+ });
174
+ api.on('after_tool_call', async (event) => {
175
+ const { toolName, error, callId: eventCallId } = event;
176
+ const callId = eventCallId ?? toolName;
177
+ if (toolName.startsWith('nevermined_'))
178
+ return;
179
+ if (error) {
180
+ pendingSettlements.delete(callId);
181
+ return;
182
+ }
183
+ // Try callId first, then fall back to toolName for backwards compat
184
+ const pending = pendingSettlements.get(callId) ?? pendingSettlements.get(toolName);
185
+ if (!pending)
186
+ return;
187
+ pendingSettlements.delete(callId);
188
+ pendingSettlements.delete(toolName);
189
+ try {
190
+ const settlement = await getPayments().facilitator.settlePermissions({
191
+ paymentRequired: pending.paymentRequired,
192
+ x402AccessToken: pending.accessToken,
193
+ maxAmount: pending.creditsUsed,
194
+ });
195
+ api.logger.info(`x402: settled ${pending.creditsUsed} credits for ${toolName} (${callId}) — result: ${JSON.stringify(settlement)}`);
196
+ }
197
+ catch (err) {
198
+ api.logger.warn(`Credit settlement failed for ${toolName} (${callId}): ${err instanceof Error ? err.message : String(err)}`);
199
+ }
200
+ });
201
+ api.logger.info(`Registered x402 credit enforcement hooks (${plans.length} plans)`);
202
+ }
71
203
  // --- Slash commands for chat channels ---
72
204
  api.registerCommand({
73
205
  name: 'nvm_login',
@@ -83,6 +215,7 @@ const neverminedPlugin = {
83
215
  config.nvmApiKey = apiKey;
84
216
  config.environment = keyEnv;
85
217
  payments = null;
218
+ catalogCache = null;
86
219
  api.logger.info(`Nevermined: authenticated via API key (${keyEnv})`);
87
220
  return { text: `Authenticated with Nevermined (${keyEnv}). You can now use payment tools.` };
88
221
  }
@@ -93,11 +226,10 @@ const neverminedPlugin = {
93
226
  config.nvmApiKey = result.nvmApiKey;
94
227
  config.environment = result.environment;
95
228
  payments = null;
229
+ catalogCache = null;
96
230
  return { text: `Authenticated with Nevermined (${result.environment}). You can now use payment tools.` };
97
231
  }
98
232
  catch (_err) {
99
- // Browser login failed (headless server, timeout, etc.)
100
- // Provide manual instructions
101
233
  const loginUrl = getLoginUrl(env);
102
234
  const apiKeyUrl = getApiKeyUrl(env);
103
235
  return {
@@ -122,15 +254,64 @@ const neverminedPlugin = {
122
254
  handler: async () => {
123
255
  config.nvmApiKey = undefined;
124
256
  payments = null;
257
+ catalogCache = null;
125
258
  return { text: 'Logged out from Nevermined. API key has been removed.' };
126
259
  },
127
260
  });
128
261
  },
129
262
  };
130
- function formatBalanceContext(balance, planName) {
131
- const num = Number(balance);
132
- const warning = num > 0 && num <= 5 ? ' (LOW — consider ordering more credits)' : '';
133
- return `[Nevermined] Credits remaining: ${balance} (plan: ${planName})${warning}`;
263
+ function formatPlanCatalog(plans, creditsPerMinute) {
264
+ const lines = [
265
+ `[Nevermined Payment Plans]`,
266
+ `Cost: ${creditsPerMinute} credit per minute of meeting duration.`,
267
+ ``,
268
+ `Available plans:`,
269
+ ];
270
+ for (const p of plans) {
271
+ const method = p.paymentType === 'fiat' ? 'Credit Card' : 'Crypto (USDC)';
272
+ const priceStr = p.price ? ` — ${p.price}` : '';
273
+ const creditsStr = p.credits ? ` for ${p.credits} credits` : '';
274
+ if (p.paymentType === 'crypto') {
275
+ const balanceStr = p.isSubscriber ? ` [balance: ${p.balance} credits]` : ' [not subscribed]';
276
+ lines.push(` ${p.planName} (${method})${priceStr}${creditsStr}${balanceStr}`);
277
+ }
278
+ else {
279
+ lines.push(` ${p.planName} (${method})${priceStr}${creditsStr} [auto-charge]`);
280
+ }
281
+ }
282
+ lines.push('');
283
+ lines.push('MANDATORY WORKFLOW — You MUST follow these steps for EVERY meeting booking:');
284
+ lines.push('1. Calculate the cost: credits = meeting duration in minutes × ' + creditsPerMinute);
285
+ lines.push('2. Present ALL available payment plans to the user with their prices');
286
+ lines.push('3. Ask the user which plan they prefer and get explicit confirmation');
287
+ lines.push(' Example: "This 30-min meeting costs 30 credits. Here are the payment options:');
288
+ lines.push(' - Fiat Meetings (USD): $1 via credit card (auto-charged)');
289
+ lines.push(' - Meeting Credits 30 (USDC): 2 USDC via crypto');
290
+ lines.push(' Which option do you prefer?"');
291
+ lines.push('4. After the user confirms, proceed to book the meeting. Payment is processed automatically.');
292
+ lines.push('5. After booking, inform the user that the payment was processed successfully.');
293
+ lines.push('');
294
+ lines.push('IMPORTANT: Do NOT call nevermined_orderFiatPlan or nevermined_orderPlan. Payments are handled automatically by the system when tools are used.');
295
+ lines.push('IMPORTANT: NEVER book a meeting without first presenting the payment options and getting user confirmation.');
296
+ return lines.join('\n');
297
+ }
298
+ /**
299
+ * Calculate credits needed based on tool name and params.
300
+ * For calendar_createEvent: 1 credit per minute of meeting duration.
301
+ * For other tools: use the default creditsPerRequest.
302
+ */
303
+ function calculateCreditsNeeded(toolName, params, creditsPerMinute, creditsPerRequest) {
304
+ if (toolName === 'calendar_createevent' || toolName === 'calendar_createEvent') {
305
+ const start = params.startDateTime;
306
+ const end = params.endDateTime;
307
+ if (start && end) {
308
+ const durationMs = new Date(end).getTime() - new Date(start).getTime();
309
+ const minutes = Math.max(1, Math.ceil(durationMs / 60000));
310
+ return BigInt(Math.ceil(minutes * creditsPerMinute));
311
+ }
312
+ }
313
+ // Default: flat per-request cost for non-calendar tools
314
+ return BigInt(creditsPerRequest);
134
315
  }
135
316
  export default neverminedPlugin;
136
317
  //# sourceMappingURL=index.js.map
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,GAC7B,UAAU,EAAE,CAgSd;AAID,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC/E;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,yBAAyB,CAAA;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAkBzD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,QAAQ,EAC3B,MAAM,EAAE,sBAAsB,GAC7B,UAAU,EAAE,CAoVd;AA6BD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CAC/E;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/C"}