@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
package/dist/types.d.ts CHANGED
@@ -18,6 +18,57 @@ export interface WorkspaceBilling {
18
18
  /** Subscription whose start (fresh usage period and first credits) was already applied. */
19
19
  startedSubscriptionId?: string | null;
20
20
  }
21
+ export type LanguageMode = "non_technical" | "technical" | "hybrid";
22
+ export interface HumanFriendlyExplanation {
23
+ headline: string;
24
+ preferred: string;
25
+ nonTechnical: string;
26
+ technical: string;
27
+ languageMode: LanguageMode;
28
+ customInstructions?: string[];
29
+ }
30
+ /**
31
+ * A structured handoff telling the caller (LLM or human) that a person must
32
+ * complete a step in the browser before the plan can proceed.
33
+ */
34
+ export interface HumanHandoff {
35
+ kind: "approval" | "oauth" | "byok";
36
+ brand?: string;
37
+ url: string | null;
38
+ ctaLabel: string;
39
+ headline: string;
40
+ instructions: string;
41
+ markdownForUser?: string;
42
+ planId?: string;
43
+ provider?: string;
44
+ }
45
+ /**
46
+ * Machine-readable guidance for LLM harnesses on exactly which Muxo tool to
47
+ * call next once a handoff or gate clears.
48
+ */
49
+ export interface LlmGuidance {
50
+ summary: string;
51
+ nextToolCalls: Array<{
52
+ tool: string;
53
+ input: Record<string, unknown>;
54
+ when: string;
55
+ }>;
56
+ }
57
+ export type WorkspaceRole = "owner" | "admin" | "operator" | "member";
58
+ export type ParameterRuleOperator = "equals" | "must_equal" | "not_equals" | "contains" | "not_contains" | "starts_with" | "must_start_with" | "ends_with" | "must_end_with" | "domain_in" | "domain_not_in" | "max_number" | "min_number" | "gt" | "gte" | "lt" | "lte" | "in" | "not_in" | "regex";
59
+ export type ParameterRuleAction = "block" | "require_approval" | "allow" | "auto_approve";
60
+ export interface ParameterPolicyRule {
61
+ id: string;
62
+ toolPattern?: string;
63
+ parameter: string;
64
+ operator: ParameterRuleOperator;
65
+ value: string | number | string[];
66
+ unit?: "usd" | "cents" | "credits" | "raw";
67
+ action: ParameterRuleAction;
68
+ elseAction?: ParameterRuleAction;
69
+ description: string;
70
+ source?: "deterministic" | "llm" | "mcp_harness" | "user";
71
+ }
21
72
  export interface GovernancePolicy {
22
73
  mode: "monitor" | "enforce";
23
74
  requireApprovalFor: RiskLevel[];
@@ -25,19 +76,65 @@ export interface GovernancePolicy {
25
76
  allowProvisioning: boolean;
26
77
  maxCreditsPerRun: number;
27
78
  blockedToolSlugs?: string[];
79
+ parameterRules?: ParameterPolicyRule[];
28
80
  executionRing?: 0 | 1 | 2 | 3;
29
81
  killSwitchActive?: boolean;
30
82
  killSwitchReason?: string | null;
31
83
  blockDestructiveSql?: boolean;
84
+ naturalLanguageRules?: string[];
85
+ languageMode?: LanguageMode;
86
+ customInstructions?: string[];
32
87
  }
33
88
  export interface User {
34
89
  id: string;
35
90
  email: string;
36
91
  name: string;
37
92
  workspaceId: string;
38
- role: "owner" | "admin" | "member";
93
+ role: WorkspaceRole;
94
+ createdAt: string;
95
+ }
96
+ export interface WorkspaceMembership {
97
+ id: string;
98
+ workspaceId: string;
99
+ userId: string;
100
+ role: WorkspaceRole;
101
+ teamName: string | null;
102
+ joinedViaKeyId?: string | null;
103
+ joinedVia?: "owner" | "created" | "api_key" | "team_key" | "invite" | "claim" | string;
104
+ apiKeyId?: string | null;
105
+ createdAt: string;
106
+ }
107
+ export interface WorkspaceSummary {
108
+ id: string;
109
+ name: string;
110
+ slug: string;
111
+ tier: SubscriptionTier;
112
+ creditsBalance: number;
113
+ monthlyActionsUsed: number;
114
+ monthlyActionsLimit: number;
115
+ role: WorkspaceRole;
116
+ teamName: string | null;
117
+ joinedVia?: "owner" | "created" | "api_key" | "team_key" | "invite" | "claim" | string;
118
+ isCurrent: boolean;
39
119
  createdAt: string;
40
120
  }
121
+ export interface TeamOnboardingKit {
122
+ ok?: boolean;
123
+ mode: "shared_workspace" | "dedicated_workspace";
124
+ workspace: Workspace | Pick<Workspace, "id" | "name" | "slug" | "tier" | "creditsBalance">;
125
+ teamName: string;
126
+ role: WorkspaceRole;
127
+ apiKey: string;
128
+ keyRecord: ApiKeyRecord;
129
+ claimUrl?: string | null;
130
+ consoleUrl?: string;
131
+ consoleJoinUrl?: string;
132
+ mcpEndpoint?: string;
133
+ cliSetupCommand: string;
134
+ mcpConfig?: Record<string, unknown>;
135
+ mcpConfigSnippet?: string;
136
+ instructions: string[];
137
+ }
41
138
  export interface Workspace {
42
139
  id: string;
43
140
  name: string;
@@ -49,6 +146,7 @@ export interface Workspace {
49
146
  creditsBalance: number;
50
147
  stripeCustomerId: string | null;
51
148
  stripeSubscriptionId: string | null;
149
+ stripeConnectedAccountId?: string | null;
52
150
  billing?: WorkspaceBilling;
53
151
  projectsEnvName: string;
54
152
  policy: GovernancePolicy;
@@ -62,6 +160,9 @@ export interface ApiKeyRecord {
62
160
  keyPrefix: string;
63
161
  environment: "live" | "test";
64
162
  scopes: string[];
163
+ teamName?: string | null;
164
+ role?: WorkspaceRole;
165
+ createdByEmail?: string | null;
65
166
  lastUsedAt: string | null;
66
167
  revokedAt: string | null;
67
168
  createdAt: string;
@@ -78,7 +179,7 @@ export interface MuxoTool {
78
179
  riskLevel: RiskLevel;
79
180
  requiresAuth: boolean;
80
181
  creditCost: number;
81
- billingMode: "customer_oauth" | "provider_wallet" | "resource_provisioning";
182
+ billingMode: "customer_oauth" | "customer_byok" | "provider_wallet" | "resource_provisioning";
82
183
  inputSchema: Record<string, unknown>;
83
184
  llmContextUrl?: string;
84
185
  providerUrl?: string;
@@ -202,6 +303,7 @@ export interface GovernanceDecisionRecord {
202
303
  signature: string;
203
304
  bindingHash: string;
204
305
  decidedAt: string;
306
+ explanation?: HumanFriendlyExplanation;
205
307
  }
206
308
  export type MemoryRecordKind = "fact" | "preference" | "resource_note" | "operator_note" | "execution_outcome" | "resource_topology" | "policy_decision";
207
309
  export interface TemporalGraphFact {
@@ -215,11 +317,56 @@ export interface TemporalGraphFact {
215
317
  validFrom: string;
216
318
  validTo: string | null;
217
319
  supersededById?: string | null;
218
- sourceKind: MemoryRecordKind | "system";
320
+ sourceKind: MemoryRecordKind | "system" | "manual";
219
321
  sourceReferenceId?: string | null;
220
322
  metadata: Record<string, unknown>;
221
323
  createdAt: string;
222
324
  }
325
+ export interface MemoryGraphNode {
326
+ id: string;
327
+ kind: "workspace" | "entity" | "preference" | "guardrail" | "connection" | "resource" | "tool" | "memory";
328
+ label: string;
329
+ summary: string;
330
+ status: "active" | "historical";
331
+ metadata?: Record<string, unknown>;
332
+ }
333
+ export interface MemoryGraphEdge {
334
+ id: string;
335
+ source: string;
336
+ target: string;
337
+ subject?: string;
338
+ object?: string;
339
+ predicate: string;
340
+ summary: string;
341
+ confidence: number;
342
+ status: "active" | "historical";
343
+ validFrom: string;
344
+ validTo: string | null;
345
+ supersededById: string | null;
346
+ sourceKind: TemporalGraphFact["sourceKind"];
347
+ sourceReferenceId: string | null;
348
+ }
349
+ export interface MemoryKnowledgeGraph {
350
+ workspaceId: string;
351
+ workspaceSlug: string;
352
+ namespace: string;
353
+ generatedAt: string;
354
+ query: string | null;
355
+ nodes: MemoryGraphNode[];
356
+ edges: MemoryGraphEdge[];
357
+ activeEdges: MemoryGraphEdge[];
358
+ historicalEdges: MemoryGraphEdge[];
359
+ stats: {
360
+ nodesCount: number;
361
+ activeEdgesCount: number;
362
+ historicalEdgesCount: number;
363
+ memoriesCount: number;
364
+ resourcesCount: number;
365
+ connectionsCount: number;
366
+ };
367
+ mermaid: string;
368
+ explanation: HumanFriendlyExplanation;
369
+ }
223
370
  export interface MemoryContextSummary {
224
371
  enabled: boolean;
225
372
  namespace: string;
@@ -248,11 +395,15 @@ export interface MemoryContextSummary {
248
395
  createdAt?: string;
249
396
  }>;
250
397
  temporalFacts?: TemporalGraphFact[];
398
+ activeDefaults?: Record<string, unknown>;
399
+ autoFilledInput?: Record<string, unknown>;
400
+ activeGuardrails?: string[];
251
401
  contextPoisoningScan?: {
252
402
  safe: boolean;
253
403
  riskLevel: "none" | "low" | "medium" | "high" | "critical";
254
404
  findingsCount: number;
255
405
  };
406
+ explanation?: HumanFriendlyExplanation;
256
407
  }
257
408
  export interface WorkspaceMemoryRecord {
258
409
  id: string;
@@ -263,6 +414,7 @@ export interface WorkspaceMemoryRecord {
263
414
  content: string;
264
415
  kind: MemoryRecordKind;
265
416
  metadata: Record<string, unknown>;
417
+ fundingSource?: string;
266
418
  createdAt: string;
267
419
  }
268
420
  export interface ByokKeyRecord {
@@ -313,6 +465,22 @@ export interface SupplierSettlementSummary {
313
465
  retailToWholesaleCoverageRatio: number;
314
466
  };
315
467
  }
468
+ export interface HumanHandoffDescriptor {
469
+ required: boolean;
470
+ kind: "none" | "oauth_connection" | "human_approval" | "oauth_and_approval";
471
+ status: "ready" | "awaiting_oauth" | "awaiting_approval" | "awaiting_oauth_and_approval" | "connected" | "approved" | "rejected";
472
+ headline: string;
473
+ markdownForUser: string;
474
+ agentNextToolCall: {
475
+ tool: string;
476
+ arguments: Record<string, unknown>;
477
+ description: string;
478
+ };
479
+ actionUrl: string | null;
480
+ approvalUrl: string | null;
481
+ oauthRedirectUrl: string | null;
482
+ consoleUrl: string;
483
+ }
316
484
  export interface ActionPlan {
317
485
  id: string;
318
486
  workspaceId: string;
@@ -331,6 +499,19 @@ export interface ActionPlan {
331
499
  decisionRecord?: GovernanceDecisionRecord | null;
332
500
  memoryContext?: MemoryContextSummary | null;
333
501
  supplierSettlement?: SupplierSettlement | null;
502
+ surfaceVersion?: string;
503
+ surfaceAudience?: string;
504
+ surfaceConnectionId?: string | null;
505
+ surfaceContext?: Array<{
506
+ recordId: string;
507
+ revision: number;
508
+ contentHash: string;
509
+ }>;
510
+ surfaceFunding?: {
511
+ resource_id: string;
512
+ mode: "customer_funded" | "muxo_funded";
513
+ } | null;
514
+ surfaceOperationId?: string;
334
515
  createdAt: string;
335
516
  expiresAt: string;
336
517
  }
@@ -354,6 +535,27 @@ export interface ExecutionRun {
354
535
  startedAt: string;
355
536
  completedAt: string | null;
356
537
  }
538
+ export type AgenticReceiptActionType = "ToolCall" | "ModelInference" | "GpuWorkload" | "RagRetrieval" | "ApiCall" | "DistributedJob";
539
+ export interface PortableAgenticReceipt {
540
+ version: string;
541
+ receipt_id: string;
542
+ agent_id: string;
543
+ task_id: string;
544
+ action_type: AgenticReceiptActionType;
545
+ tool_name: string | null;
546
+ model_id: string | null;
547
+ input_hash: string;
548
+ output_hash: string;
549
+ started_at: string;
550
+ completed_at: string;
551
+ latency_ms: number;
552
+ nonce: string;
553
+ previous_receipt_hash: string | null;
554
+ receipt_hash: string;
555
+ signature_algorithm: "Ed25519";
556
+ public_key_hex: string;
557
+ signature_hex: string;
558
+ }
357
559
  export interface ExecutionReceipt {
358
560
  id: string;
359
561
  runId: string;
@@ -372,8 +574,10 @@ export interface ExecutionReceipt {
372
574
  receiptHash: string;
373
575
  signature: string;
374
576
  decisionRecord?: GovernanceDecisionRecord | null;
577
+ agenticReceipt?: PortableAgenticReceipt | null;
375
578
  supplierSettlement?: SupplierSettlement | null;
376
579
  issuedAt: string;
580
+ explanation?: HumanFriendlyExplanation;
377
581
  }
378
582
  export interface LedgerEntry {
379
583
  id: string;
@@ -1,4 +1,4 @@
1
- export type ConsoleView = "overview" | "setup" | "catalog" | "connections" | "infrastructure" | "memory" | "governance" | "activity" | "billing" | "login" | "signup";
1
+ export type ConsoleView = "overview" | "catalog" | "setup" | "workspaces" | "activity" | "billing" | "login" | "signup";
2
2
  /** Every path that serves the console shell, mapped to the view it opens. */
3
3
  export declare const CONSOLE_ROUTES: Readonly<Record<string, ConsoleView>>;
4
4
  export declare function isConsolePath(pathname: string): boolean;
@@ -23,3 +23,42 @@ export interface OAuthConsentOptions {
23
23
  }
24
24
  /** Consent screen for MCP clients (ChatGPT, Claude, CLIs) asking to use a Muxo workspace. */
25
25
  export declare function renderOAuthConsentHtml(opts: OAuthConsentOptions): string;
26
+ export interface ApprovalPageOptions {
27
+ planId: string;
28
+ clerk?: {
29
+ publishableKey: string;
30
+ frontendApi: string;
31
+ } | null;
32
+ }
33
+ /** One-click approval screen for plans held by workspace guardrails (`/approve/:planId`). */
34
+ export declare function renderApprovalPageHtml(opts: ApprovalPageOptions): string;
35
+ export interface OAuthConnectPageField {
36
+ name: string;
37
+ type?: string;
38
+ label?: string;
39
+ description?: string;
40
+ required?: boolean;
41
+ default?: string | null;
42
+ }
43
+ export interface OAuthConnectPageOptions {
44
+ token: string;
45
+ toolkitSlug: string;
46
+ toolkitName: string;
47
+ workspaceId?: string;
48
+ authMode?: string;
49
+ status?: string;
50
+ callbackUrl?: string | null;
51
+ expectedInputFields?: OAuthConnectPageField[];
52
+ error?: string | null;
53
+ }
54
+ /** Muxo-branded OAuth connection handoff screen (`/oauth/connect/:token`). */
55
+ export declare function renderOAuthConnectPageHtml(opts: OAuthConnectPageOptions): string;
56
+ export interface OAuthCallbackPageOptions {
57
+ providerSlug: string;
58
+ providerName: string;
59
+ status: string;
60
+ workspaceId: string;
61
+ externalAccountId?: string | null;
62
+ }
63
+ /** Muxo-branded OAuth callback completion screen (`/oauth/callback`). */
64
+ export declare function renderOAuthCallbackPageHtml(opts: OAuthCallbackPageOptions): string;