@muxoai/platform 1.4.3 → 1.4.4

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/dist/types.d.ts CHANGED
@@ -441,6 +441,7 @@ export interface ByokKeyRecord {
441
441
  category: "llm" | "supplier";
442
442
  envVarName: string;
443
443
  keyPreview: string;
444
+ mcpGatewayUrl?: string | null;
444
445
  configured: boolean;
445
446
  updatedAt: string;
446
447
  }
@@ -499,6 +500,29 @@ export interface HumanHandoffDescriptor {
499
500
  oauthRedirectUrl: string | null;
500
501
  consoleUrl: string;
501
502
  }
503
+ export interface ApprovalImpactPreview {
504
+ whatChanges: string;
505
+ whoIsAffected: string;
506
+ targetEntity: string;
507
+ estimatedCostUsd: number;
508
+ creditCost: number;
509
+ fundingMode: "muxo_funded" | "byok";
510
+ costDisplay: string;
511
+ triggeredRule: string;
512
+ reversibility: "reversible" | "compensatable_saga" | "irreversible";
513
+ recoveryBehavior: string;
514
+ }
515
+ export interface BusinessReceiptSummary {
516
+ whatChanged: string;
517
+ whoAuthorized: string;
518
+ whatSucceeded: string;
519
+ whatRemainsUnresolved: string[];
520
+ costUsd: number;
521
+ creditsCharged: number;
522
+ fundingMode: "muxo_funded" | "byok";
523
+ costDisplay: string;
524
+ reconciliationStatus: "verified_complete" | "failed_zero_charge" | "cancelled" | "needs_reconciliation";
525
+ }
502
526
  export interface ActionPlan {
503
527
  id: string;
504
528
  workspaceId: string;
@@ -510,6 +534,9 @@ export interface ActionPlan {
510
534
  input: Record<string, unknown>;
511
535
  reason: string;
512
536
  creditCost: number;
537
+ estimatedCostUsd?: number;
538
+ changePreview?: ApprovalImpactPreview;
539
+ idempotencyKey?: string;
513
540
  approvalStatus: "auto_approved" | "pending_approval" | "approved" | "rejected" | "executed";
514
541
  approvedBy: string | null;
515
542
  approvedAt: string | null;
@@ -548,6 +575,9 @@ export interface ExecutionRun {
548
575
  errorMessage?: string | null;
549
576
  actionsMetered: number;
550
577
  creditsMetered: number;
578
+ estimatedCostUsd?: number;
579
+ idempotentReplay?: boolean;
580
+ reconciliationStatus?: "verified_complete" | "failed_zero_charge" | "cancelled" | "needs_reconciliation";
551
581
  durationMs: number | null;
552
582
  receiptId: string | null;
553
583
  startedAt: string;
@@ -586,6 +616,8 @@ export interface ExecutionReceipt {
586
616
  status: "succeeded" | "failed" | "cancelled";
587
617
  actionsMetered: number;
588
618
  creditsMetered: number;
619
+ estimatedCostUsd?: number;
620
+ businessSummary?: BusinessReceiptSummary;
589
621
  inputHash: string;
590
622
  outputHash: string;
591
623
  prevReceiptHash: string;
@@ -2753,7 +2753,7 @@ export function renderConsoleHtml() {
2753
2753
  <option value="anthropic">Anthropic (plain-English routing)</option>
2754
2754
  <option value="openrouter">OpenRouter (plain-English routing)</option>
2755
2755
  <option value="gemini">Google Gemini (plain-English routing)</option>
2756
- <option value="composio">Apps and instant tools (0 credits)</option>
2756
+ <option value="composio">Apps, MCP Gateway &amp; instant tools (0 credits)</option>
2757
2757
  <option value="stripe">Cloud infrastructure (0 credits)</option>
2758
2758
  <option value="supermemory">Workspace memory</option>
2759
2759
  <option value="firecrawl">Firecrawl (scrape and crawl)</option>
@@ -3312,17 +3312,17 @@ export function renderOAuthConsentHtml(opts) {
3312
3312
  </html>`;
3313
3313
  }
3314
3314
  const approvalCss = `
3315
- .approval-facts{display:grid;gap:8px;margin:18px 0 0;padding:0;list-style:none;text-align:left;font-size:14px}
3316
- .approval-facts li{display:flex;justify-content:space-between;gap:14px;padding:9px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg)}
3315
+ .approval-facts{display:grid;gap:6px;margin:12px 0 0;padding:0;list-style:none;text-align:left;font-size:13px}
3316
+ .approval-facts li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg)}
3317
3317
  .approval-facts .k{color:var(--color-muted);flex:none}
3318
3318
  .approval-facts .v{color:var(--color-text);font-weight:500;text-align:right;overflow-wrap:anywhere}
3319
- .approval-input{margin:14px 0 0;padding:12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg);font-family:var(--font-mono);font-size:12px;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}
3319
+ .approval-input{margin:10px 0 0;padding:10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);font-family:var(--font-mono);font-size:12px;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;max-height:110px;overflow:auto}
3320
3320
  .approval-risk{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;text-transform:capitalize}
3321
3321
  .approval-risk[data-tone="ok"]{background:var(--color-ok-bg);color:var(--color-ok)}
3322
3322
  .approval-risk[data-tone="warn"]{background:var(--color-warn-bg);color:var(--color-warn)}
3323
3323
  .approval-risk[data-tone="strict"]{background:var(--color-danger-bg);color:var(--color-danger)}
3324
- .approval-note{margin-top:14px;color:var(--color-muted);font-size:13px}
3325
- .approval-done{margin-top:18px;text-align:left;font-size:14px}
3324
+ .approval-note{margin-top:10px;color:var(--color-muted);font-size:13px}
3325
+ .approval-done{margin-top:14px;text-align:left;font-size:14px}
3326
3326
  `;
3327
3327
  const approvalScript = String.raw `
3328
3328
  (function () {
@@ -3356,10 +3356,17 @@ const approvalScript = String.raw `
3356
3356
  function renderPlan() {
3357
3357
  show('approval-loading', false);
3358
3358
  show('approval-review', true);
3359
+ var preview = plan.changePreview || {};
3360
+ var credits = plan.creditCost != null ? plan.creditCost : 0;
3361
+ var usd = plan.estimatedCostUsd != null ? Number(plan.estimatedCostUsd).toFixed(2) : (credits * 0.01).toFixed(2);
3359
3362
  byId('approval-tool').textContent = plan.toolSlug || '';
3360
3363
  byId('approval-risk').textContent = plan.riskLevel + ' risk';
3361
3364
  byId('approval-risk').setAttribute('data-tone', riskTone(plan.riskLevel));
3362
- byId('approval-cost').textContent = String(plan.creditCost != null ? plan.creditCost : 0) + ' credits';
3365
+ byId('approval-what-changes').textContent = preview.whatChanges || plan.reason || ('Execute ' + (plan.toolSlug || 'action'));
3366
+ byId('approval-affected').textContent = preview.whoIsAffected || preview.targetEntity || 'Workspace integration';
3367
+ byId('approval-cost').textContent = preview.costDisplay || ('$' + usd + ' USD (' + credits + ' credits)');
3368
+ byId('approval-rule').textContent = preview.triggeredRule || (plan.decisionRecord && plan.decisionRecord.matchedRule) || 'Workspace approval policy';
3369
+ byId('approval-recovery').textContent = preview.recoveryBehavior || 'Execute-once idempotency; 0 credits charged on failure.';
3363
3370
  byId('approval-reason').textContent = plan.reason || '—';
3364
3371
  byId('approval-input').textContent = JSON.stringify(plan.input || {}, null, 2);
3365
3372
  var already = plan.approvalStatus === 'approved' || plan.approvalStatus === 'auto_approved';
@@ -3377,7 +3384,11 @@ const approvalScript = String.raw `
3377
3384
  show('approval-done', true);
3378
3385
  var html = '<p>' + esc(message) + '</p>';
3379
3386
  if (result && result.run) {
3387
+ var bs = (result.receipt && result.receipt.businessSummary) || {};
3380
3388
  html += '<ul class="approval-facts">'
3389
+ + (bs.whatChanged ? '<li><span class="k">What changed</span><span class="v">' + esc(bs.whatChanged) + '</span></li>' : '')
3390
+ + (bs.whoAuthorized ? '<li><span class="k">Authorized by</span><span class="v">' + esc(bs.whoAuthorized) + '</span></li>' : '')
3391
+ + (bs.costDisplay ? '<li><span class="k">Cost</span><span class="v">' + esc(bs.costDisplay) + '</span></li>' : '')
3381
3392
  + '<li><span class="k">Run</span><span class="v">' + esc(result.run.id) + ' · ' + esc(result.run.status) + '</span></li>'
3382
3393
  + (result.receipt ? '<li><span class="k">Receipt</span><span class="v">' + esc(result.receipt.id) + '</span></li>' : '')
3383
3394
  + '</ul>';
@@ -3542,8 +3553,12 @@ export function renderApprovalPageHtml(opts) {
3542
3553
  <div id="approval-review" hidden>
3543
3554
  <ul class="approval-facts">
3544
3555
  <li><span class="k">Action</span><span class="v" id="approval-tool"></span></li>
3556
+ <li><span class="k">What changes</span><span class="v" id="approval-what-changes"></span></li>
3557
+ <li><span class="k">Who is affected</span><span class="v" id="approval-affected"></span></li>
3545
3558
  <li><span class="k">Risk</span><span class="v"><span id="approval-risk" class="approval-risk" data-tone="warn"></span></span></li>
3546
- <li><span class="k">Cost</span><span class="v" id="approval-cost"></span></li>
3559
+ <li><span class="k">Estimated cost</span><span class="v" id="approval-cost"></span></li>
3560
+ <li><span class="k">Triggered rule</span><span class="v" id="approval-rule"></span></li>
3561
+ <li><span class="k">Recovery &amp; safety</span><span class="v" id="approval-recovery"></span></li>
3547
3562
  <li><span class="k">Reason</span><span class="v" id="approval-reason"></span></li>
3548
3563
  </ul>
3549
3564
  <pre id="approval-input" class="approval-input" aria-label="Tool input"></pre>
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const MUXO_VERSION = "1.4.3";
1
+ export declare const MUXO_VERSION = "1.4.4";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const MUXO_VERSION = "1.4.3";
1
+ export const MUXO_VERSION = "1.4.4";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muxoai/platform",
3
- "version": "1.4.3",
3
+ "version": "1.4.4",
4
4
  "description": "Muxo — Unified Execution, Provisioning & Governance Platform over Composio, Stripe Projects, Microsoft Agent Governance & Supermemory",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "muxo",
3
- "version": "1.4.3",
3
+ "version": "1.4.4",
4
4
  "description": "Governed agent execution across 1,000+ Connected Apps (managed OAuth handoff), Instant Tools (search, scrape, crawl, SEO audit), live Cloud Infrastructure provisioning, Workspace Memory recall, and verifiable audit records.",
5
5
  "author": {
6
6
  "name": "Muxo AI LLC",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "muxo",
3
- "version": "1.4.3",
3
+ "version": "1.4.4",
4
4
  "description": "Your agent decides what to do — Muxo governs, provisions, remembers, and executes it. Unified access to 1,000+ Connected Apps (managed OAuth handoff), Instant Tools (search, scrape, crawl, SEO audit), live Cloud Infrastructure provisioning (Postgres, Redis, SQLite, Storage), Workspace Memory recall, and verifiable audit records.",
5
5
  "author": {
6
6
  "name": "Muxo AI LLC",
@@ -33,7 +33,7 @@
33
33
  "com.openai": {
34
34
  "onboardingSkill": "./skills/setup/SKILL.md",
35
35
  "publication": {
36
- "release_notes": "Muxo v1.4.3: Unified governed execution across 1,000+ Connected Apps, Instant web/SEO tools, 94 Stripe Projects Cloud Infrastructure services, MCP 2026-07-28 compliance, and Workspace Memory."
36
+ "release_notes": "Muxo v1.4.4: Unified governed execution across 1,000+ Connected Apps, Instant web/SEO tools, 94 Stripe Projects Cloud Infrastructure services, MCP 2026-07-28 compliance, and Workspace Memory."
37
37
  }
38
38
  }
39
39
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "muxo",
3
3
  "description": "Your agent decides what to do — Muxo governs, provisions, remembers, and executes it. Connect and operate 1,000+ external apps via managed OAuth, zero-auth Instant Tools (web search, scrape, crawl, SEO audit, remote workbench), live Cloud Infrastructure provisioning (Stripe Projects), and Workspace Memory from Cursor.",
4
- "version": "1.4.3",
4
+ "version": "1.4.4",
5
5
  "mcpServers": "../mcp.json",
6
6
  "skills": "../skills/",
7
7
  "author": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "muxo",
4
- "version": "1.4.3",
4
+ "version": "1.4.4",
5
5
  "description": "Your agent decides what to do — Muxo governs, provisions, remembers, and executes it. Unified access to 1,000+ Connected Apps (managed OAuth handoff), Instant Tools (search, scrape, crawl, SEO audit), live Cloud Infrastructure provisioning (Postgres, Redis, SQLite, Storage), Workspace Memory recall, and verifiable audit records.",
6
6
  "author": {
7
7
  "name": "Muxo AI LLC",
@@ -109,7 +109,7 @@
109
109
  "commerce_description": "This plugin does not sell retail products or process consumer checkout inside ChatGPT."
110
110
  },
111
111
  "publication": {
112
- "release_notes": "Muxo v1.4.3: Unified governed execution across 1,000+ Connected Apps, Instant web/SEO tools, 94 Stripe Projects Cloud Infrastructure services, MCP 2026-07-28 compliance, and Workspace Memory."
112
+ "release_notes": "Muxo v1.4.4: Unified governed execution across 1,000+ Connected Apps, Instant web/SEO tools, 94 Stripe Projects Cloud Infrastructure services, MCP 2026-07-28 compliance, and Workspace Memory."
113
113
  }
114
114
  }
115
115
  }
@@ -138,9 +138,19 @@ Users can operate every Muxo pillar in plain English through `POST /api/v1/do` (
138
138
 
139
139
  ### Context, MCP Resources & Prompts
140
140
  - **Inspect**: "Show my workspace context", "Explain current run context", or call `get_run_context({ query: "..." })` — returns credits, learned defaults, active guardrails, `llmPolicyBrief`, provisioned resources, and a ready-to-use `llmSystemPrompt` block.
141
- - **MCP Resources (`resources/read`)**: `muxo://policy/brief`, `muxo://governance/policy`, `muxo://context`, `muxo://memory/graph`.
142
- - **MCP Prompts (`prompts/get`)**: `context`, `policy_guardrails` (accepts optional `tool_slug`), `governed_execution`, `security_audit`.
143
- - REST equivalent: `GET/POST /api/v1/context`.
141
+ - **Plain-English OSS & Commercial Intent Router on `get_run_context` & `POST /api/v1/do`**: Pass any plain-English prompt to `get_run_context({ prompt: "..." })` or `POST /api/v1/do` (`{"prompt": "..."}`) without memorizing sub-action enums, workflow IDs, or playbook slugs:
142
+ - **Turnkey & Custom Saga Playbooks**: `"Run the fullstack cloud bootstrap playbook"`, `"List playbooks"`, or `"Create playbook daily-seo-slack that runs instant.seo.audit and app.slack.send_message"` (`POST /api/v1/playbooks`, `POST /api/v1/playbooks/:slug/run`).
143
+ - **Temporal Workflow Saga Rollback, Signals & History (`"latest"` supported)**: `"Rollback the latest workflow because staging healthcheck failed"`, `"Signal workflow latest human.approval.granted"`, `"Show Temporal history for latest workflow"` (`POST /api/v1/workflows/latest/rollback`, `/signal`, `/history`).
144
+ - **Graphiti Time-Travel & Multi-Hop BFS Memory Graph**: `"Show my knowledge graph as of 2026-10-20T00:00:00Z within 2 hops of workspace"` (`GET /api/v1/memory/graph?as_of=...&focal_entity=...&max_hops=2`).
145
+ - **AWS Cedar 4.0 & OPA Rego v1 Policy-as-Code**: `"Compile our guardrails to AWS Cedar"` or `"Evaluate Cedar policy for resource.turso.database with DROP TABLE users"` (`GET /api/v1/governance/cedar`, `POST /api/v1/governance/cedar/evaluate`).
146
+ - **OpenTelemetry GenAI 1.29.0 & Langfuse Traces**: `"Export OpenTelemetry traces and Langfuse batch"` (`GET /api/v1/telemetry/otlp`).
147
+ - **FinOps & Commercial Engineering ROI**: `"What is our ROI and how many engineering hours have we saved?"` (`GET /api/v1/analytics/roi`).
148
+ - **One-Shot Agent Harness Configurator & Presets**: `"Configure harness preset strict-production and only allow emails to @muxo.ai"` (`GET/POST /api/v1/harness/configure`, `get_run_context({ action: "configure_harness", preset: "strict-production", harness: "claude_code" })`).
149
+ - **MCP Resources (`resources/read`)**: `muxo://policy/brief`, `muxo://governance/policy`, `muxo://context`, `muxo://memory/graph`, `muxo://harness/config`, `muxo://playbooks`, `muxo://skills`, `muxo://skills/{skillSlug}`.
150
+ - **MCP Prompts (`prompts/get`)**: `context`, `policy_guardrails` (accepts optional `tool_slug`), `governed_execution`, `security_audit`, `harness_setup`, `commercial_playbook`.
151
+ - **Governed Domain & Workflow Skills Catalog (`muxo://skills/{skillSlug}`)**:
152
+ - Read domain playbooks & parameter pitfalls via MCP (`resources/read` on `muxo://skills/github-automation`, `muxo://skills/supabase-provisioning`, `muxo://skills/changelog-generator`, or `skills/get` on `skill://muxo/<slug>/SKILL.md`), REST (`GET /api/v1/skills`, `GET /api/v1/skills/:slug`, `GET /skills/:slug/SKILL.md`), or CLI (`muxo skills list`, `muxo skills show <slug>`, `muxo skills install <slug> --all-curated`).
153
+ - REST equivalent: `GET/POST /api/v1/context`, `GET/POST /api/v1/harness/configure`, `GET/POST /api/v1/playbooks`, `GET /api/v1/skills`.
144
154
 
145
155
  ### Receipts
146
156
  - **Explain / verify**: "Explain my latest receipt", "Verify receipt rcpt_...", "Show recent receipts" — returns the tamper-proof receipt with signature status and a plain-English explanation of action, cost, and funding mode.