@muxoai/platform 1.4.0 → 1.4.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.
Files changed (62) hide show
  1. package/.agents/plugins/marketplace.json +2 -2
  2. package/.claude-plugin/marketplace.json +2 -2
  3. package/ARCHITECTURE.md +16 -6
  4. package/README.md +2 -2
  5. package/dist/cli.js +323 -13
  6. package/dist/composio-catalog.d.ts +234 -0
  7. package/dist/composio-catalog.js +1894 -0
  8. package/dist/config.d.ts +16 -0
  9. package/dist/config.js +27 -1
  10. package/dist/durable-workflow.d.ts +45 -0
  11. package/dist/durable-workflow.js +90 -0
  12. package/dist/engine.d.ts +293 -5
  13. package/dist/engine.js +1502 -88
  14. package/dist/mcp-schema.d.ts +286 -0
  15. package/dist/mcp-schema.js +2559 -0
  16. package/dist/mcp.d.ts +2 -30
  17. package/dist/mcp.js +913 -558
  18. package/dist/memory-graph.d.ts +21 -0
  19. package/dist/memory-graph.js +173 -0
  20. package/dist/nl.js +155 -0
  21. package/dist/oauth.d.ts +32 -0
  22. package/dist/oauth.js +134 -0
  23. package/dist/policy.d.ts +182 -1
  24. package/dist/policy.js +1524 -0
  25. package/dist/providers/composio-instant.js +262 -7
  26. package/dist/providers/composio-sdk.d.ts +125 -5
  27. package/dist/providers/composio-sdk.js +901 -82
  28. package/dist/providers/microsoft-governance.d.ts +28 -1
  29. package/dist/providers/microsoft-governance.js +224 -11
  30. package/dist/providers/stripe-billing.d.ts +42 -0
  31. package/dist/providers/stripe-billing.js +230 -1
  32. package/dist/providers/stripe-projects.d.ts +455 -3
  33. package/dist/providers/stripe-projects.js +2570 -129
  34. package/dist/providers/supermemory.d.ts +74 -1
  35. package/dist/providers/supermemory.js +426 -0
  36. package/dist/provisioning-managed.d.ts +50 -0
  37. package/dist/provisioning-managed.js +155 -0
  38. package/dist/sdk.d.ts +440 -3
  39. package/dist/sdk.js +305 -3
  40. package/dist/server.js +2343 -264
  41. package/dist/store.d.ts +113 -6
  42. package/dist/store.js +677 -52
  43. package/dist/types.d.ts +207 -3
  44. package/dist/ui/console-html.d.ts +40 -1
  45. package/dist/ui/console-html.js +1813 -629
  46. package/dist/ui/design-tokens.js +1 -1
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.js +1 -1
  49. package/package.json +4 -3
  50. package/plugins/muxo/.claude-plugin/plugin.json +2 -2
  51. package/plugins/muxo/.codex-plugin/plugin.json +15 -8
  52. package/plugins/muxo/.cursor-plugin/plugin.json +30 -0
  53. package/plugins/muxo/hooks/session-start.sh +15 -3
  54. package/plugins/muxo/hooks/user-prompt-submit.sh +14 -1
  55. package/plugins/muxo/mcp.json +0 -10
  56. package/plugins/muxo/plugin.json +4 -4
  57. package/plugins/muxo/skills/muxo/SKILL.md +59 -9
  58. package/plugins/muxo/skills/muxo/references/cli.md +5 -1
  59. package/plugins/muxo/skills/muxo/references/mcp.md +13 -7
  60. package/plugins/muxo/skills/muxo-activity-summary/SKILL.md +81 -0
  61. package/plugins/muxo/skills/setup/SKILL.md +9 -1
  62. package/src/catalogues/stripe-projects-catalog.json +140 -0
@@ -1,22 +1,470 @@
1
1
  import { type MuxoConfig } from "../config.js";
2
2
  import type { MuxoTool } from "../types.js";
3
+ export declare const DEFAULT_STRIPE_PROVISIONING_API_VERSION = "2026-09-30.preview";
4
+ export interface StripeV2ListResponse<T> {
5
+ object: "v2.list";
6
+ data: T[];
7
+ next_page_url: string | null;
8
+ previous_page_url: string | null;
9
+ }
10
+ export interface StripeV2Eligibility {
11
+ object: "v2.provisioning.eligibility";
12
+ is_eligible: boolean;
13
+ livemode: boolean;
14
+ requirements: string[];
15
+ }
16
+ export interface StripeV2Provider {
17
+ id: string;
18
+ object: "v2.provisioning.provider";
19
+ name: string;
20
+ description: string | null;
21
+ categories: string[];
22
+ capabilities?: {
23
+ custom_configuration?: boolean;
24
+ link_existing_resources?: boolean;
25
+ };
26
+ configuration_schema?: Record<string, unknown> | null;
27
+ llm_context?: string | null;
28
+ tos_url?: string | null;
29
+ website_url?: string | null;
30
+ privacy_policy_url?: string | null;
31
+ created?: string;
32
+ }
33
+ export interface StripeV2ProviderServiceDetail {
34
+ id: string;
35
+ object: "v2.provisioning.provider_service_detail";
36
+ provider: string;
37
+ provider_name: string;
38
+ service_id: string;
39
+ description: string | null;
40
+ categories: string[];
41
+ kind: "deployable" | "plan";
42
+ availability: "available" | "coming_soon" | "unavailable" | string;
43
+ scope?: "account" | "project" | string;
44
+ configuration_schema?: Record<string, unknown> | null;
45
+ pricing?: Record<string, unknown> | null;
46
+ allowed_updates?: Record<string, unknown> | null;
47
+ constraints?: Record<string, unknown> | null;
48
+ llm_context?: string | null;
49
+ }
50
+ export interface StripeV2UsageLimit {
51
+ max_amount: string | number;
52
+ currency: string;
53
+ recurring_interval: "day" | "week" | "month" | "year" | string;
54
+ }
55
+ export interface StripeV2PaymentProfile {
56
+ object?: "v2.provisioning.payment_profile";
57
+ card_last4: string | null;
58
+ usage_limits: StripeV2UsageLimit | null;
59
+ providers: Array<{
60
+ provider: string;
61
+ usage_limits: StripeV2UsageLimit | null;
62
+ }>;
63
+ payment_method_owner: "platform" | string | null;
64
+ livemode: boolean;
65
+ has_payment_method?: boolean;
66
+ }
67
+ export interface StripeV2PaymentMethodRequest {
68
+ object?: "v2.provisioning.payment_method_request";
69
+ checkout_session_url: string;
70
+ status: "checkout_initiated" | "complete" | string;
71
+ livemode?: boolean;
72
+ }
73
+ export interface StripeV2Project {
74
+ id: string;
75
+ object?: "v2.provisioning.project";
76
+ name: string;
77
+ catalog: "dev" | "prod" | "testing" | string;
78
+ created: string;
79
+ project_profile?: string | null;
80
+ livemode?: boolean;
81
+ }
82
+ export interface StripeV2ProviderConnection {
83
+ id: string;
84
+ object?: "v2.provisioning.provider_connection";
85
+ provider: string;
86
+ provider_account?: string | null;
87
+ provider_account_details?: Record<string, unknown> | null;
88
+ status: "active" | "expired" | "unknown" | string;
89
+ created?: string | null;
90
+ livemode?: boolean;
91
+ }
92
+ export interface StripeV2ProviderConnectionRequest {
93
+ id: string;
94
+ object?: "v2.provisioning.provider_connection_request";
95
+ provider: string;
96
+ request_status?: "complete" | "error" | "needs_information" | "pending_auth" | "requested" | string;
97
+ redirect_url?: string | null;
98
+ needs_information_schema?: Record<string, unknown> | null;
99
+ provider_connection?: StripeV2ProviderConnection | null;
100
+ error?: Record<string, unknown> | null;
101
+ scopes?: string[];
102
+ created?: string | null;
103
+ livemode?: boolean;
104
+ }
105
+ export interface StripeV2Resource {
106
+ id: string;
107
+ object?: "v2.provisioning.resource";
108
+ provider?: string;
109
+ service_ref?: string;
110
+ project?: string | null;
111
+ status: "pending" | "needs_information" | "complete" | "errored" | "removed" | "provisioning" | "active" | "ready" | "pending_user_action" | string;
112
+ name?: string | null;
113
+ environment?: "dev" | "prod" | string;
114
+ catalog?: "dev" | "prod" | "testing" | string;
115
+ needs_information_schema?: Record<string, unknown> | null;
116
+ pending_action?: {
117
+ type?: string;
118
+ redirect_url?: string | null;
119
+ required_information_schema?: Record<string, unknown> | null;
120
+ [key: string]: unknown;
121
+ } | null;
122
+ error_message?: string | null;
123
+ user_message?: Record<string, unknown> | null;
124
+ created?: string;
125
+ livemode?: boolean;
126
+ }
127
+ export interface StripeV2AccessConfiguration {
128
+ object: "v2.provisioning.resource_access_configuration" | "v2.provisioning.resource.access_configuration" | string;
129
+ resource: string;
130
+ configuration: Record<string, string>;
131
+ created: string;
132
+ expires_at?: string | null;
133
+ livemode: boolean;
134
+ }
135
+ export interface StripeV2ConnectedAccount {
136
+ id: string;
137
+ object?: "v2.core.account" | string;
138
+ contact_email?: string | null;
139
+ display_name?: string | null;
140
+ identity?: {
141
+ country?: string;
142
+ entity_type?: "individual" | "company" | string;
143
+ } | null;
144
+ configuration?: {
145
+ developer?: {
146
+ capabilities?: {
147
+ projects?: {
148
+ requested?: boolean;
149
+ status?: "active" | "pending" | "inactive" | "unrequested" | string;
150
+ };
151
+ };
152
+ };
153
+ } | null;
154
+ requirements?: Record<string, unknown> | null;
155
+ livemode?: boolean;
156
+ }
157
+ export interface StripeV2AccountLink {
158
+ object?: "v2.core.account_link" | string;
159
+ account: string;
160
+ url: string;
161
+ created?: string;
162
+ expires_at?: string;
163
+ livemode?: boolean;
164
+ }
165
+ export interface StripeConnectedAccountSession {
166
+ object: "account_session" | string;
167
+ account: string;
168
+ client_secret: string;
169
+ components: {
170
+ account_onboarding?: {
171
+ enabled: boolean;
172
+ features?: {
173
+ external_account_collection?: boolean;
174
+ disable_stripe_user_authentication?: boolean;
175
+ };
176
+ };
177
+ account_management?: {
178
+ enabled: boolean;
179
+ features?: {
180
+ external_account_collection?: boolean;
181
+ disable_stripe_user_authentication?: boolean;
182
+ };
183
+ };
184
+ [key: string]: unknown;
185
+ };
186
+ expires_at: number;
187
+ livemode: boolean;
188
+ source?: "stripe_v2_api" | "muxo_managed";
189
+ }
190
+ export interface StripeProvisioningAuditEntry {
191
+ id: string;
192
+ method: "GET" | "POST";
193
+ endpoint: string;
194
+ stripeContext: string | null;
195
+ intendedWrite: Record<string, unknown> | null;
196
+ requestId: string | null;
197
+ objectId: string | null;
198
+ objectStatus: string | null;
199
+ httpStatus: number | null;
200
+ errorCode: string | null;
201
+ requestLogUrl: string | null;
202
+ workflowStatus: "pending" | "completed" | "requires_review" | "errored";
203
+ startedAt: string;
204
+ completedAt: string | null;
205
+ }
206
+ export declare function redactProvisioningSecrets(value: unknown): Record<string, unknown> | null;
207
+ export declare function classifyStripeProvisioningError(err: {
208
+ code?: string;
209
+ status?: number;
210
+ message?: string;
211
+ }): {
212
+ platformAction: string;
213
+ workflowStatus: "errored" | "requires_review";
214
+ retryable: boolean;
215
+ };
3
216
  export declare function isPaidCloudProvisioning(tool: MuxoTool, input?: Record<string, unknown>): boolean;
4
217
  export declare class StripeProjectsAdapter {
5
218
  private readonly config;
6
219
  private readonly tools;
7
220
  private readonly providerByName;
221
+ private readonly seededProviders;
222
+ private readonly seededServices;
8
223
  constructor(config: MuxoConfig);
9
224
  private loadCatalogSeed;
10
225
  getTools(): MuxoTool[];
11
226
  searchTools(query?: string, limit?: number): MuxoTool[];
12
227
  inspectTool(slug: string): MuxoTool | null;
228
+ hasProvider(providerSlug: string): boolean;
13
229
  private runStripeProjectsCli;
14
230
  private get hasLocalProjectsWorkdir();
15
- getLiveStatus(): Promise<{
231
+ private provisioningAuditLog;
232
+ private hostedSites;
233
+ getHostedSiteHtml(slug: string, filePath?: string): string | null;
234
+ private attachHostingDeployment;
235
+ getProvisioningAuditLog(limit?: number): StripeProvisioningAuditEntry[];
236
+ private resolveStripeSecretKey;
237
+ isLivemodeKey(apiKeyOverride?: string | null): boolean;
238
+ resolveStripeContext(stripeContextOverride?: string | null): string | null;
239
+ hasStripeV2ApiKey(apiKeyOverride?: string | null): boolean;
240
+ get provisioningApiVersion(): string;
241
+ get stripeApiBaseUrl(): string;
242
+ requestV2Provisioning<T = Record<string, unknown>>(method: "GET" | "POST", endpointPath: string, options?: {
243
+ query?: Record<string, string | number | boolean | undefined>;
244
+ body?: Record<string, unknown>;
245
+ apiKeyOverride?: string | null;
246
+ stripeContext?: string | null;
247
+ apiVersionOverride?: string;
248
+ idempotencyKey?: string;
249
+ timeoutMs?: number;
250
+ maxRateLimitRetries?: number;
251
+ }): Promise<T>;
252
+ paginateV2List<T>(initialPath: string, options?: {
253
+ query?: Record<string, string | number | boolean | undefined>;
254
+ maxPages?: number;
255
+ apiKeyOverride?: string | null;
256
+ stripeContext?: string | null;
257
+ }): Promise<StripeV2ListResponse<T>>;
258
+ createConnectedAccount(params: {
259
+ contact_email: string;
260
+ display_name: string;
261
+ country?: string;
262
+ entity_type?: "individual" | "company";
263
+ apiKeyOverride?: string | null;
264
+ }): Promise<StripeV2ConnectedAccount>;
265
+ createConnectedAccountLink(params: {
266
+ account: string;
267
+ type?: "account_onboarding" | "account_update";
268
+ fields?: "currently_due" | "eventually_due";
269
+ future_requirements?: "include" | "omit";
270
+ refresh_url: string;
271
+ return_url: string;
272
+ apiKeyOverride?: string | null;
273
+ }): Promise<StripeV2AccountLink>;
274
+ createConnectedAccountSession(params: {
275
+ account: string;
276
+ enableAccountManagement?: boolean;
277
+ enableNotificationBanner?: boolean;
278
+ disableStripeUserAuthentication?: boolean;
279
+ externalAccountCollection?: boolean;
280
+ apiKeyOverride?: string | null;
281
+ }): Promise<StripeConnectedAccountSession>;
282
+ retrieveConnectedAccount(accountId: string, apiKeyOverride?: string | null): Promise<StripeV2ConnectedAccount>;
283
+ checkEligibility(apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Eligibility & {
284
+ ready: boolean;
285
+ platform_action: string;
286
+ source: "stripe_v2_api" | "muxo_managed";
287
+ }>;
288
+ listCatalogProviders(params?: {
289
+ catalog?: "dev" | "prod" | "testing";
290
+ development?: boolean;
291
+ limit?: number;
292
+ page?: string;
293
+ page_url?: string;
294
+ apiKeyOverride?: string | null;
295
+ stripeContext?: string | null;
296
+ }): Promise<StripeV2ListResponse<StripeV2Provider> & {
297
+ source: "stripe_v2_api" | "muxo_catalog_seed";
298
+ }>;
299
+ listCatalogServices(params?: {
300
+ catalog?: "dev" | "prod" | "testing";
301
+ development?: boolean;
302
+ limit?: number;
303
+ page?: string;
304
+ page_url?: string;
305
+ provider_id?: string;
306
+ provider_name?: string;
307
+ apiKeyOverride?: string | null;
308
+ stripeContext?: string | null;
309
+ }): Promise<StripeV2ListResponse<StripeV2ProviderServiceDetail> & {
310
+ source: "stripe_v2_api" | "muxo_catalog_seed";
311
+ }>;
312
+ getPaymentProfile(params?: {
313
+ provider?: string;
314
+ livemode?: boolean;
315
+ apiKeyOverride?: string | null;
316
+ stripeContext?: string | null;
317
+ }): Promise<StripeV2PaymentProfile & {
318
+ source: "stripe_v2_api" | "muxo_managed";
319
+ }>;
320
+ updatePaymentProfileLimit(params: {
321
+ usage_limits: StripeV2UsageLimit;
322
+ provider?: string;
323
+ livemode?: boolean;
324
+ apiKeyOverride?: string | null;
325
+ stripeContext?: string | null;
326
+ }): Promise<StripeV2PaymentProfile & {
327
+ source: "stripe_v2_api" | "muxo_managed";
328
+ }>;
329
+ createPaymentMethodRequest(params?: {
330
+ usage_limits?: StripeV2UsageLimit;
331
+ payment_method_owner?: "platform" | "provider";
332
+ provider?: string;
333
+ source_account?: string;
334
+ source_customer?: string;
335
+ source_payment_method?: string;
336
+ livemode?: boolean;
337
+ apiKeyOverride?: string | null;
338
+ stripeContext?: string | null;
339
+ }): Promise<StripeV2PaymentMethodRequest & {
340
+ source: "stripe_v2_api" | "muxo_managed";
341
+ }>;
342
+ createProject(params: {
343
+ name: string;
344
+ catalog?: "dev" | "prod" | "testing";
345
+ project_profile?: string;
346
+ apiKeyOverride?: string | null;
347
+ stripeContext?: string | null;
348
+ }): Promise<StripeV2Project & {
349
+ source: "stripe_v2_api" | "muxo_managed";
350
+ }>;
351
+ listProviderConnections(params?: {
352
+ limit?: number;
353
+ page?: string;
354
+ page_url?: string;
355
+ provider?: string;
356
+ apiKeyOverride?: string | null;
357
+ stripeContext?: string | null;
358
+ }): Promise<StripeV2ListResponse<StripeV2ProviderConnection>>;
359
+ unlinkProviderConnection(connectionId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2ProviderConnection>;
360
+ createProviderConnectionRequest(params: {
361
+ provider: string;
362
+ configuration?: Record<string, unknown>;
363
+ project?: string;
364
+ code_challenge?: string;
365
+ code_challenge_method?: "S256";
366
+ apiKeyOverride?: string | null;
367
+ stripeContext?: string | null;
368
+ }): Promise<StripeV2ProviderConnectionRequest>;
369
+ retrieveProviderConnectionRequest(requestId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2ProviderConnectionRequest>;
370
+ submitProviderConnectionRequestInformation(requestId: string, paramsOrInfo: {
371
+ information?: Record<string, unknown>;
372
+ confirmation_secret?: string;
373
+ apiKeyOverride?: string | null;
374
+ stripeContext?: string | null;
375
+ [key: string]: unknown;
376
+ }, apiKeyOverride?: string | null): Promise<StripeV2ProviderConnectionRequest>;
377
+ createResource(params: {
378
+ provider: string;
379
+ service_ref: string;
380
+ configuration: Record<string, unknown>;
381
+ project?: string;
382
+ scope?: "account" | "project" | string;
383
+ name?: string;
384
+ environment?: string;
385
+ catalog?: "dev" | "prod" | "testing";
386
+ livemode?: boolean;
387
+ idempotencyKey?: string;
388
+ apiKeyOverride?: string | null;
389
+ stripeContext?: string | null;
390
+ }): Promise<StripeV2Resource>;
391
+ retrieveResource(resourceId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Resource>;
392
+ waitForResourceReady(resourceId: string, options?: {
393
+ timeoutMs?: number;
394
+ pollIntervalMs?: number;
395
+ apiKeyOverride?: string | null;
396
+ stripeContext?: string | null;
397
+ }): Promise<StripeV2Resource>;
398
+ updateResource(resourceId: string, paramsOrConfig: {
399
+ configuration?: Record<string, unknown>;
400
+ service_ref?: string;
401
+ catalog?: "dev" | "prod" | "testing";
402
+ apiKeyOverride?: string | null;
403
+ stripeContext?: string | null;
404
+ [key: string]: unknown;
405
+ }, apiKeyOverride?: string | null): Promise<StripeV2Resource>;
406
+ linkResource(params: {
407
+ provider: string;
408
+ service_ref: string;
409
+ provider_resource_id?: string;
410
+ project?: string;
411
+ environment?: string;
412
+ catalog?: "dev" | "prod" | "testing";
413
+ livemode?: boolean;
414
+ apiKeyOverride?: string | null;
415
+ stripeContext?: string | null;
416
+ }): Promise<StripeV2Resource>;
417
+ removeResource(resourceId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Resource>;
418
+ unlinkResource(resourceId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Resource>;
419
+ rotateResourceCredentials(resourceId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Resource>;
420
+ submitResourceInformation(resourceId: string, submittedInformation: Record<string, unknown>, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2Resource>;
421
+ revealAccessConfiguration(resourceId: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<StripeV2AccessConfiguration>;
422
+ createV2EventDestination(params: {
423
+ name?: string;
424
+ url: string;
425
+ events?: string[];
426
+ apiKeyOverride?: string | null;
427
+ }): Promise<{
428
+ id: string;
429
+ object: "v2.core.event_destination";
430
+ name: string;
431
+ status: "enabled" | "disabled";
432
+ enabled_events: string[];
433
+ webhook_endpoint: {
434
+ url: string;
435
+ };
436
+ livemode: boolean;
437
+ source: "stripe_v2_api" | "muxo_managed";
438
+ }>;
439
+ handleV2ProvisioningEvent(params: {
440
+ event: {
441
+ id?: string;
442
+ type: string;
443
+ context?: string;
444
+ related_object?: {
445
+ id: string;
446
+ type: string;
447
+ url?: string;
448
+ };
449
+ data?: Record<string, unknown>;
450
+ };
451
+ apiKeyOverride?: string | null;
452
+ stripeContext?: string | null;
453
+ }): Promise<{
454
+ eventId: string;
455
+ eventType: string;
456
+ relatedObjectId: string | null;
457
+ actionTaken: string;
458
+ revealedConfiguration?: Record<string, string>;
459
+ resource?: Partial<StripeV2Resource>;
460
+ }>;
461
+ getLiveStatus(apiKeyOverride?: string | null): Promise<{
16
462
  authenticated: boolean;
17
463
  projectInitialized: boolean;
18
464
  projectId: string | null;
19
465
  projectName: string | null;
466
+ apiVersion?: string;
467
+ eligibility?: StripeV2Eligibility;
20
468
  providers: Array<{
21
469
  id: string;
22
470
  name: string;
@@ -27,10 +475,14 @@ export declare class StripeProjectsAdapter {
27
475
  services: Array<Record<string, unknown>>;
28
476
  plans: Array<Record<string, unknown>>;
29
477
  }>;
30
- linkProvider(providerSlug: string): Promise<{
478
+ linkProvider(providerSlug: string, apiKeyOverride?: string | null, stripeContext?: string | null): Promise<{
31
479
  providerSlug: string;
32
- status: "active" | "pending";
480
+ status: "active" | "pending" | "requires_review";
33
481
  redirectUrl: string | null;
482
+ connectionId?: string | null;
483
+ connectionRequestId?: string | null;
484
+ needsInformationSchema?: Record<string, unknown> | null;
485
+ workflowStatus?: string;
34
486
  message: string;
35
487
  }>;
36
488
  pullEnvVarsFromWorkdir(syncFromCli?: boolean): Promise<Record<string, string>>;