@mushi-mushi/mcp 0.29.0 → 0.29.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 +3 -1
- package/dist/catalog.js +1 -1
- package/dist/{chunk-MOW6PVHK.js → chunk-6SHKBN6R.js} +1 -1
- package/dist/clients.d.ts +1 -1
- package/dist/clients.js +1 -1
- package/dist/index.js +78 -40
- package/dist/server.js +78 -40
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
The [Model Context Protocol](https://modelcontextprotocol.io/) server for [Mushi Mushi](https://github.com/kensaurus/mushi-mushi). It lets Cursor, Claude Code, VS Code or any MCP client read your app's bug reports, get a plain-English diagnosis with a fix to start from, and dispatch or merge fixes. Your editor's own model does the work, so you need no second LLM key.
|
|
11
11
|
|
|
12
|
+
Docs: [MCP guide](https://kensaur.us/mushi-mushi/docs/sdks/mcp) · [tool reference](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools)
|
|
13
|
+
|
|
12
14
|
```mermaid
|
|
13
15
|
flowchart LR
|
|
14
16
|
A["Bug reports<br/>in Mushi"] --> B["This MCP server"] --> C["Your editor<br/>'what's broken in prod?'"] --> D["Fix: you, or a<br/>draft PR from an agent"]
|
|
@@ -29,7 +31,7 @@ Restart the editor and ask *"what's broken in prod?"*. For Cursor and Claude, `s
|
|
|
29
31
|
"mcpServers": {
|
|
30
32
|
"mushi-mushi": {
|
|
31
33
|
"command": "npx",
|
|
32
|
-
"args": ["-y", "@mushi-mushi/mcp@0.29.
|
|
34
|
+
"args": ["-y", "@mushi-mushi/mcp@0.29.2"],
|
|
33
35
|
"env": {
|
|
34
36
|
"MUSHI_API_KEY": "mushi_xxxxxxxxxxxxxxxxxxxx",
|
|
35
37
|
"MUSHI_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
package/dist/catalog.js
CHANGED
|
@@ -120,7 +120,7 @@ var TOOL_CATALOG = [
|
|
|
120
120
|
{
|
|
121
121
|
name: "list_gate_findings",
|
|
122
122
|
title: "Gate findings",
|
|
123
|
-
description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
|
|
123
|
+
description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | portfolio_radar_vulns | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / portfolio_radar_vulns / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
|
|
124
124
|
scope: "mcp:read",
|
|
125
125
|
hints: { readOnly: true, idempotent: true, openWorld: true },
|
|
126
126
|
useCase: "Show me what CI gates failed on the last run."
|
package/dist/clients.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ import { FeatureGroup } from './feature-groups.js';
|
|
|
49
49
|
* editor launch. Synced to package.json by `scripts/sync-mcp-pin.mjs` — never
|
|
50
50
|
* hand-edit the version.
|
|
51
51
|
*/
|
|
52
|
-
declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.
|
|
52
|
+
declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.2";
|
|
53
53
|
interface StdioConfig {
|
|
54
54
|
command: string;
|
|
55
55
|
args: string[];
|
package/dist/clients.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-7RWHDJPZ.js";
|
|
9
9
|
|
|
10
10
|
// src/clients.ts
|
|
11
|
-
var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.
|
|
11
|
+
var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.2";
|
|
12
12
|
var PIN_SPEC_RE = /^@mushi-mushi\/mcp@\d+\.\d+\.\d+$/;
|
|
13
13
|
function pinOf(pinSpec) {
|
|
14
14
|
return pinSpec && PIN_SPEC_RE.test(pinSpec) ? pinSpec : MCP_PIN_SPEC;
|
package/dist/index.js
CHANGED
|
@@ -196,7 +196,7 @@ var TOOL_CATALOG = [
|
|
|
196
196
|
{
|
|
197
197
|
name: "list_gate_findings",
|
|
198
198
|
title: "Gate findings",
|
|
199
|
-
description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
|
|
199
|
+
description: "List recent inventory gate runs and their findings for a project, newest first. Returns { runs: [{ id, gate, status, findings_count, \u2026 }], findings: [{ severity, rule_id, message, file_path, node_id, \u2026 }] }. Filter by gate (dead_handler | mock_leak | api_contract | crawl | status_claim | spec_drift | orphan_endpoint | unknown_call | schema_drift | code_health | design_drift | ci_drift | deploy_drift | env_drift | radar | portfolio_radar | portfolio_radar_ci | portfolio_radar_vulns | store_review) or finding severity (info | warn | error). The *_drift gates are the App Recipe checks: design_drift is code that drifts off the design tokens, ci_drift / deploy_drift / env_drift are CI, deploy and env vars that drift from the recipe; radar is the Mushi setup checks (a rejected provider key, no spend cap or AI budget, a webhook that never delivered, a stale code index), each with a suggested_fix (a spend-cap fix is applied in the console by a signed-in project admin, not through an API key); portfolio_radar / portfolio_radar_ci / portfolio_radar_vulns / store_review are the app hole checks (prefer get_radar). Available on every plan. Read-only. Use to see which CI gates failed on the last crawl; use diff_inventory to compare two commits, or get_inventory for the full snapshot.",
|
|
200
200
|
scope: "mcp:read",
|
|
201
201
|
hints: { readOnly: true, idempotent: true, openWorld: true },
|
|
202
202
|
useCase: "Show me what CI gates failed on the last run."
|
|
@@ -1489,7 +1489,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1489
1489
|
route: "/",
|
|
1490
1490
|
markdown: "index.md",
|
|
1491
1491
|
keywords: ["know", "ai-built", "app", "broke", "fix", "ready"],
|
|
1492
|
-
headings: ["
|
|
1492
|
+
headings: ["The problem it solves", "A real example from our own sites", "What this is (and is not)", "Where it stands today", "This is what a diagnosis looks like", "See it in action", "Get started", "Install it in your app"],
|
|
1493
1493
|
excerpt: "Your AI shipped it. Mushi tells you why it broke: a plain-English diagnosis and a ready fix in your editor. Open source, Sentry optional."
|
|
1494
1494
|
},
|
|
1495
1495
|
{
|
|
@@ -1618,6 +1618,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1618
1618
|
headings: ["What's tracked", "Charts", "Controlling costs", "Export", "Related pages"],
|
|
1619
1619
|
excerpt: "The Cost page shows LLM token use and estimated spend per model and pipeline for a Mushi project, so you can see what each diagnosis costs."
|
|
1620
1620
|
},
|
|
1621
|
+
{
|
|
1622
|
+
title: "Spend credits",
|
|
1623
|
+
url: docUrl("/admin/credits"),
|
|
1624
|
+
route: "/admin/credits",
|
|
1625
|
+
markdown: "admin/credits.md",
|
|
1626
|
+
keywords: ["admin", "credits", "spend"],
|
|
1627
|
+
headings: ["Cursor: fix bugs", "Cursor: improve your apps with skills", "Firecrawl: find bugs on your live sites", "Site audit", "Search rank", "Where the fixes go"],
|
|
1628
|
+
excerpt: "Spend credits lists expiring Cursor and Firecrawl credits and every way Mushi can spend them fixing bugs, improving apps with skills and checking sites."
|
|
1629
|
+
},
|
|
1621
1630
|
{
|
|
1622
1631
|
title: "Dashboard",
|
|
1623
1632
|
url: docUrl("/admin/dashboard"),
|
|
@@ -1852,6 +1861,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1852
1861
|
headings: ["What you see", "Data source", "Related"],
|
|
1853
1862
|
excerpt: "The Overview page is the organization-wide portfolio view \u2014 seven-day activity and open tickets for every connected project at a glance."
|
|
1854
1863
|
},
|
|
1864
|
+
{
|
|
1865
|
+
title: "Pipeline",
|
|
1866
|
+
url: docUrl("/admin/pipeline"),
|
|
1867
|
+
route: "/admin/pipeline",
|
|
1868
|
+
markdown: "admin/pipeline.md",
|
|
1869
|
+
keywords: ["admin", "pipeline"],
|
|
1870
|
+
headings: ["Stages", "Who opens fixes", "Stuck groups", "Release trains", "Intake and deploys"],
|
|
1871
|
+
excerpt: "The console Pipeline page shows every bug from report to deploy, where it is stuck and why, with one-click fixes."
|
|
1872
|
+
},
|
|
1855
1873
|
{
|
|
1856
1874
|
title: "Portfolio",
|
|
1857
1875
|
url: docUrl("/admin/portfolio"),
|
|
@@ -2065,7 +2083,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2065
2083
|
route: "/admin/ux-runs",
|
|
2066
2084
|
markdown: "admin/ux-runs.md",
|
|
2067
2085
|
keywords: ["admin", "ux-runs", "runs", "ux"],
|
|
2068
|
-
headings: ["Run in the cloud", "What you see", "File as bug", "Where the changes are"],
|
|
2086
|
+
headings: ["Run in the cloud", "What you see", "File as bug", "Audit signed-in screens", "Where the changes are"],
|
|
2069
2087
|
excerpt: "Each screen your coding agent worked on in a mushi ux run, with its plan, every attempt, before and after screenshots, and what was kept."
|
|
2070
2088
|
},
|
|
2071
2089
|
{
|
|
@@ -2338,6 +2356,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2338
2356
|
headings: ["Storage", "Why both pgvector and AGE?", "Indexing", "Bug Ontology"],
|
|
2339
2357
|
excerpt: "How Mushi links reports, components, fixes and developers in a per-project knowledge graph, with pgvector for similarity and Apache AGE for traversal."
|
|
2340
2358
|
},
|
|
2359
|
+
{
|
|
2360
|
+
title: "Known holes in dependencies",
|
|
2361
|
+
url: docUrl("/concepts/known-holes"),
|
|
2362
|
+
route: "/concepts/known-holes",
|
|
2363
|
+
markdown: "concepts/known-holes.md",
|
|
2364
|
+
keywords: ["concepts", "known-holes", "known", "holes", "dependencies"],
|
|
2365
|
+
headings: ["What Mushi checks", "What becomes a report", "How bad is it", "The fix", "What leaves Mushi", "Where to see it", "Data sources"],
|
|
2366
|
+
excerpt: "Mushi checks the exact versions in your lockfiles and runtime pins against published advisories, and files each fixable hole as a bug with the upgrade."
|
|
2367
|
+
},
|
|
2341
2368
|
{
|
|
2342
2369
|
title: "Multi-repo coordinated fixes",
|
|
2343
2370
|
url: docUrl("/concepts/multi-repo-fixes"),
|
|
@@ -2668,8 +2695,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2668
2695
|
route: "/plugins/bugsnag",
|
|
2669
2696
|
markdown: "plugins/bugsnag.md",
|
|
2670
2697
|
keywords: ["plugins", "bugsnag"],
|
|
2671
|
-
headings: ["Setup", "Package", "Events"],
|
|
2672
|
-
excerpt: "
|
|
2698
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
2699
|
+
excerpt: "Copy triaged Mushi bug reports into Bugsnag and mark the error fixed when Mushi applies a fix \u2014 a self-hosted plugin with a Data API token."
|
|
2673
2700
|
},
|
|
2674
2701
|
{
|
|
2675
2702
|
title: "Building a plugin",
|
|
@@ -2686,8 +2713,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2686
2713
|
route: "/plugins/crashlytics",
|
|
2687
2714
|
markdown: "plugins/crashlytics.md",
|
|
2688
2715
|
keywords: ["plugins", "crashlytics"],
|
|
2689
|
-
headings: ["Setup", "Package", "Events"],
|
|
2690
|
-
excerpt: "
|
|
2716
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
2717
|
+
excerpt: "Flag fixed Mushi reports in Firebase Remote Config so your mobile app can hide stale crash notices \u2014 a self-hosted plugin with a Google access token."
|
|
2691
2718
|
},
|
|
2692
2719
|
{
|
|
2693
2720
|
title: "Cursor Cloud Agent",
|
|
@@ -2695,7 +2722,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2695
2722
|
route: "/plugins/cursor-cloud",
|
|
2696
2723
|
markdown: "plugins/cursor-cloud.md",
|
|
2697
2724
|
keywords: ["plugins", "cursor-cloud", "cursor", "cloud", "agent"],
|
|
2698
|
-
headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "
|
|
2725
|
+
headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Which reports start an agent", "Triggering manually", "Reviewing what the agent did"],
|
|
2699
2726
|
excerpt: "Dispatch a Cursor Cloud Agent automatically when a Mushi report qualifies \u2014 it investigates, drafts a fix and opens a PR that links back to Mushi."
|
|
2700
2727
|
},
|
|
2701
2728
|
{
|
|
@@ -2704,8 +2731,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2704
2731
|
route: "/plugins/discord",
|
|
2705
2732
|
markdown: "plugins/discord.md",
|
|
2706
2733
|
keywords: ["plugins", "discord"],
|
|
2707
|
-
headings: ["Setup
|
|
2708
|
-
excerpt: "Post Mushi report and fix events to a Discord channel
|
|
2734
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
2735
|
+
excerpt: "Post Mushi report and fix events to a Discord channel \u2014 paste a channel webhook on the Integrations page, or run the self-hosted Discord plugin."
|
|
2709
2736
|
},
|
|
2710
2737
|
{
|
|
2711
2738
|
title: "Webhook events",
|
|
@@ -2722,8 +2749,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2722
2749
|
route: "/plugins/github-issues",
|
|
2723
2750
|
markdown: "plugins/github-issues.md",
|
|
2724
2751
|
keywords: ["plugins", "github-issues", "github", "issues"],
|
|
2725
|
-
headings: ["Setup
|
|
2726
|
-
excerpt: "Open a
|
|
2752
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
2753
|
+
excerpt: "Open a GitHub issue for every triaged Mushi report and close it when the fix lands \u2014 set it up on the Integrations page, or self-host the plugin."
|
|
2727
2754
|
},
|
|
2728
2755
|
{
|
|
2729
2756
|
title: "Jira Cloud",
|
|
@@ -2731,8 +2758,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2731
2758
|
route: "/plugins/jira",
|
|
2732
2759
|
markdown: "plugins/jira.md",
|
|
2733
2760
|
keywords: ["plugins", "jira", "cloud"],
|
|
2734
|
-
headings: ["Setup
|
|
2735
|
-
excerpt: "
|
|
2761
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
2762
|
+
excerpt: "Open Jira Cloud issues from Mushi bug reports and keep their status in step \u2014 set it up on the Integrations page, or self-host the Jira plugin."
|
|
2736
2763
|
},
|
|
2737
2764
|
{
|
|
2738
2765
|
title: "Linear",
|
|
@@ -2740,8 +2767,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2740
2767
|
route: "/plugins/linear",
|
|
2741
2768
|
markdown: "plugins/linear.md",
|
|
2742
2769
|
keywords: ["plugins", "linear"],
|
|
2743
|
-
headings: ["Setup", "Behaviour", "
|
|
2744
|
-
excerpt: "File
|
|
2770
|
+
headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
|
|
2771
|
+
excerpt: "File Linear issues from Mushi bug reports \u2014 connect Linear on the Integrations page, or run the self-hosted Linear plugin with an API key and team id."
|
|
2745
2772
|
},
|
|
2746
2773
|
{
|
|
2747
2774
|
title: "Microsoft Teams",
|
|
@@ -2749,8 +2776,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2749
2776
|
route: "/plugins/msteams",
|
|
2750
2777
|
markdown: "plugins/msteams.md",
|
|
2751
2778
|
keywords: ["plugins", "msteams", "microsoft", "teams"],
|
|
2752
|
-
headings: ["Setup
|
|
2753
|
-
excerpt: "Send
|
|
2779
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
2780
|
+
excerpt: "Send cards to a Microsoft Teams channel when Mushi triages a report or a fix lands \u2014 paste a webhook on the Integrations page, or self-host the plugin."
|
|
2754
2781
|
},
|
|
2755
2782
|
{
|
|
2756
2783
|
title: "PagerDuty",
|
|
@@ -2758,8 +2785,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2758
2785
|
route: "/plugins/pagerduty",
|
|
2759
2786
|
markdown: "plugins/pagerduty.md",
|
|
2760
2787
|
keywords: ["plugins", "pagerduty"],
|
|
2761
|
-
headings: ["Setup", "Behaviour", "Troubleshooting"],
|
|
2762
|
-
excerpt: "Page your on-call rotation through PagerDuty when a
|
|
2788
|
+
headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
|
|
2789
|
+
excerpt: "Page your on-call rotation through PagerDuty when Mushi triages a bug as critical, and resolve it when the fix lands \u2014 Events API v2 routing key setup."
|
|
2763
2790
|
},
|
|
2764
2791
|
{
|
|
2765
2792
|
title: "Rollbar",
|
|
@@ -2767,8 +2794,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2767
2794
|
route: "/plugins/rollbar",
|
|
2768
2795
|
markdown: "plugins/rollbar.md",
|
|
2769
2796
|
keywords: ["plugins", "rollbar"],
|
|
2770
|
-
headings: ["Setup", "Package", "Events"],
|
|
2771
|
-
excerpt: "
|
|
2797
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
2798
|
+
excerpt: "Copy triaged Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 a self-hosted plugin with an access token and project id."
|
|
2772
2799
|
},
|
|
2773
2800
|
{
|
|
2774
2801
|
title: "Sentry",
|
|
@@ -2776,7 +2803,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2776
2803
|
route: "/plugins/sentry",
|
|
2777
2804
|
markdown: "plugins/sentry.md",
|
|
2778
2805
|
keywords: ["plugins", "sentry"],
|
|
2779
|
-
headings: ["Route Sentry errors into Mushi (inbound)", "
|
|
2806
|
+
headings: ["Route Sentry errors into Mushi (inbound)", "Copy Mushi reports into Sentry (outbound plugin)", "Package", "Events"],
|
|
2780
2807
|
excerpt: "Two-way Sentry integration \u2014 Sentry errors flow into Mushi's queue, merging a Mushi fix resolves the Sentry issue, and critical reports mirror back."
|
|
2781
2808
|
},
|
|
2782
2809
|
{
|
|
@@ -2785,8 +2812,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2785
2812
|
route: "/plugins/slack",
|
|
2786
2813
|
markdown: "plugins/slack.md",
|
|
2787
2814
|
keywords: ["plugins", "slack", "app"],
|
|
2788
|
-
headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "
|
|
2789
|
-
excerpt: "Triage Mushi bug reports from Slack \u2014 each
|
|
2815
|
+
headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "What gets posted", "Troubleshooting"],
|
|
2816
|
+
excerpt: "Triage Mushi bug reports from Slack \u2014 add the app from the Integrations page, and each report posts as a card with buttons to fix, resolve or dismiss."
|
|
2790
2817
|
},
|
|
2791
2818
|
{
|
|
2792
2819
|
title: "Zapier",
|
|
@@ -2794,7 +2821,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2794
2821
|
route: "/plugins/zapier",
|
|
2795
2822
|
markdown: "plugins/zapier.md",
|
|
2796
2823
|
keywords: ["plugins", "zapier"],
|
|
2797
|
-
headings: ["Setup", "
|
|
2824
|
+
headings: ["Setup (no server)", "Setup (with the relay package)", "Common Zaps", "Troubleshooting"],
|
|
2798
2825
|
excerpt: "Send every Mushi event to Zapier and on to thousands of apps such as Notion, Google Sheets and HubSpot \u2014 Catch Hook setup and event filters."
|
|
2799
2826
|
},
|
|
2800
2827
|
{
|
|
@@ -2812,7 +2839,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2812
2839
|
route: "/quickstart",
|
|
2813
2840
|
markdown: "quickstart/index.md",
|
|
2814
2841
|
keywords: ["quickstart", "fix", "first", "bug", "60", "seconds", "choose", "stack"],
|
|
2815
|
-
headings: ["Start here (
|
|
2842
|
+
headings: ["What you need", "The fastest way: one command", "Start here (editor first)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
|
|
2816
2843
|
excerpt: "Install Mushi with npx mushi-mushi, connect Cursor or Claude Code over MCP, and turn user bug reports into plain-English diagnoses with ready fixes."
|
|
2817
2844
|
},
|
|
2818
2845
|
{
|
|
@@ -2831,7 +2858,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2831
2858
|
markdown: "quickstart/angular.md",
|
|
2832
2859
|
keywords: ["quickstart", "angular"],
|
|
2833
2860
|
headings: [],
|
|
2834
|
-
excerpt: "Add Mushi to an Angular 17+ app
|
|
2861
|
+
excerpt: "Add Mushi to an Angular 17+ app: one provideMushi() call registers the Mushi service and error handler, so uncaught errors and bug reports reach your queue."
|
|
2835
2862
|
},
|
|
2836
2863
|
{
|
|
2837
2864
|
title: "Capacitor quickstart",
|
|
@@ -2993,7 +3020,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
2993
3020
|
markdown: "sdks/angular.md",
|
|
2994
3021
|
keywords: ["sdks", "angular", "@mushi-mushi/angular"],
|
|
2995
3022
|
headings: ["API surface", "Setup (standalone bootstrap)", "Submitting a report", "Identifying users"],
|
|
2996
|
-
excerpt: "API reference for @mushi-mushi/angular \u2014 MushiService, MushiErrorHandler and the MUSHI_CONFIG token
|
|
3023
|
+
excerpt: "API reference for @mushi-mushi/angular \u2014 provideMushi(), MushiService, MushiErrorHandler and the MUSHI_CONFIG token in an Angular 17+ app."
|
|
2997
3024
|
},
|
|
2998
3025
|
{
|
|
2999
3026
|
title: "In-SDK Ask assistant",
|
|
@@ -3037,7 +3064,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3037
3064
|
route: "/sdks/core",
|
|
3038
3065
|
markdown: "sdks/core.md",
|
|
3039
3066
|
keywords: ["sdks", "core", "@mushi-mushi/core"],
|
|
3040
|
-
headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "
|
|
3067
|
+
headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "captureEvent(input)", "Offline queue", "PII scrubbing utilities (1.27+)", "Region resolution"],
|
|
3041
3068
|
excerpt: "Reference for @mushi-mushi/core \u2014 the MushiConfig shape, widget options, PII scrubbing helpers and region resolution shared by every Mushi JavaScript SDK."
|
|
3042
3069
|
},
|
|
3043
3070
|
{
|
|
@@ -3046,7 +3073,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3046
3073
|
route: "/sdks/eslint-plugin",
|
|
3047
3074
|
markdown: "sdks/eslint-plugin.md",
|
|
3048
3075
|
keywords: ["sdks", "eslint-plugin", "eslint", "plugin", "eslint-plugin-mushi-mushi"],
|
|
3049
|
-
headings: ["Install", "
|
|
3076
|
+
headings: ["Install", "Turn on the two rules", "The recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "In CI"],
|
|
3050
3077
|
excerpt: "eslint-plugin-mushi-mushi flags empty event handlers and leftover mock data in production code \u2014 the no-dead-handler and no-mock-leak rules and preset."
|
|
3051
3078
|
},
|
|
3052
3079
|
{
|
|
@@ -3083,7 +3110,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3083
3110
|
markdown: "sdks/inventory-schema.md",
|
|
3084
3111
|
keywords: ["sdks", "inventory-schema", "inventory", "schema", "@mushi-mushi/inventory-schema"],
|
|
3085
3112
|
headings: ["Install", "What inventory.yaml looks like", "Programmatic use", "JSON Schema"],
|
|
3086
|
-
excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml
|
|
3113
|
+
excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml: your app's pages, the buttons and forms on each, what they do, and the tests that prove it."
|
|
3087
3114
|
},
|
|
3088
3115
|
{
|
|
3089
3116
|
title: "MushiMushi (iOS)",
|
|
@@ -3109,7 +3136,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3109
3136
|
route: "/sdks/mcp",
|
|
3110
3137
|
markdown: "sdks/mcp.md",
|
|
3111
3138
|
keywords: ["sdks", "mcp", "bug", "report", "server", "cursor", "claude", "code", "@mushi-mushi/mcp"],
|
|
3112
|
-
headings: ["Two transports", "Spec traceability for dispatchfix"],
|
|
3139
|
+
headings: ["Quick start", "Two transports", "Spec traceability for dispatchfix"],
|
|
3113
3140
|
excerpt: "Reference for @mushi-mushi/mcp, the Mushi MCP server for Cursor, Claude Code, VS Code and Windsurf \u2014 stdio and hosted HTTP transports, scopes and setup."
|
|
3114
3141
|
},
|
|
3115
3142
|
{
|
|
@@ -3118,8 +3145,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3118
3145
|
route: "/sdks/mcp-ci",
|
|
3119
3146
|
markdown: "sdks/mcp-ci.md",
|
|
3120
3147
|
keywords: ["sdks", "mcp-ci", "mcp", "@mushi-mushi/mcp-ci"],
|
|
3121
|
-
headings: ["Quick start", "Commands", "In your IDE", "Inputs"],
|
|
3122
|
-
excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action
|
|
3148
|
+
headings: ["Quick start", "Gates on every PR", "Commands", "In your IDE", "Inputs", "Outputs"],
|
|
3149
|
+
excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action: fail a PR while reports wait for triage, dispatch a fix, run the pre-release gates and refresh crawler sign-in."
|
|
3123
3150
|
},
|
|
3124
3151
|
{
|
|
3125
3152
|
title: "MCP tools reference",
|
|
@@ -3154,7 +3181,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3154
3181
|
route: "/sdks/node",
|
|
3155
3182
|
markdown: "sdks/node.md",
|
|
3156
3183
|
keywords: ["sdks", "node", "node.js", "server", "error", "reporting", "sdk", "@mushi-mushi/node"],
|
|
3157
|
-
headings: ["Install", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
|
|
3184
|
+
headings: ["Install", "Create a client", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
|
|
3158
3185
|
excerpt: "Report server errors from Node with @mushi-mushi/node \u2014 Express, Fastify and Hono error handlers that tag each report with route, request ID and user."
|
|
3159
3186
|
},
|
|
3160
3187
|
{
|
|
@@ -3164,7 +3191,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3164
3191
|
markdown: "sdks/plugin-sdk.md",
|
|
3165
3192
|
keywords: ["sdks", "plugin-sdk", "plugin", "sdk", "@mushi-mushi/plugin-sdk"],
|
|
3166
3193
|
headings: ["Install", "Express adapter", "Hono adapter", "Verify a signature manually", "Wire format", "See also"],
|
|
3167
|
-
excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express."
|
|
3194
|
+
excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express or Hono."
|
|
3168
3195
|
},
|
|
3169
3196
|
{
|
|
3170
3197
|
title: "SDK presets",
|
|
@@ -3220,6 +3247,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3220
3247
|
headings: ["API surface", "Setup", "Submitting a report"],
|
|
3221
3248
|
excerpt: "Reference for @mushi-mushi/svelte \u2014 initMushi, getMushi and the SvelteKit error hooks that forward client and server errors to your Mushi queue."
|
|
3222
3249
|
},
|
|
3250
|
+
{
|
|
3251
|
+
title: "@mushi-mushi/ux",
|
|
3252
|
+
url: docUrl("/sdks/ux"),
|
|
3253
|
+
route: "/sdks/ux",
|
|
3254
|
+
markdown: "sdks/ux.md",
|
|
3255
|
+
keywords: ["sdks", "ux", "@mushi-mushi/ux"],
|
|
3256
|
+
headings: ["Quick start", "From studio to merge", "What a run does", "Safety", "Agents", "Commands", "Audit and explore signed-in screens", "On GitHub Actions"],
|
|
3257
|
+
excerpt: "@mushi-mushi/ux runs your coding agent over each screen of your app, measures every change and keeps only the ones that help, on a branch you review."
|
|
3258
|
+
},
|
|
3223
3259
|
{
|
|
3224
3260
|
title: "@mushi-mushi/vue",
|
|
3225
3261
|
url: docUrl("/sdks/vue"),
|
|
@@ -3235,8 +3271,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
3235
3271
|
route: "/sdks/wasm-classifier",
|
|
3236
3272
|
markdown: "sdks/wasm-classifier.md",
|
|
3237
3273
|
keywords: ["sdks", "wasm-classifier", "wasm", "classifier", "@mushi-mushi/wasm-classifier"],
|
|
3238
|
-
headings: [],
|
|
3239
|
-
excerpt: "@mushi-mushi/wasm-classifier
|
|
3274
|
+
headings: ["Use it with the web SDK", "Call it directly", "ONNX backend (experimental)"],
|
|
3275
|
+
excerpt: "@mushi-mushi/wasm-classifier filters junk bug reports in the browser, before they reach the server or your LLM."
|
|
3240
3276
|
},
|
|
3241
3277
|
{
|
|
3242
3278
|
title: "JavaScript bug reporting SDK for the browser",
|
|
@@ -3889,6 +3925,7 @@ var GATE_IDS = [
|
|
|
3889
3925
|
"radar",
|
|
3890
3926
|
"portfolio_radar",
|
|
3891
3927
|
"portfolio_radar_ci",
|
|
3928
|
+
"portfolio_radar_vulns",
|
|
3892
3929
|
"store_review"
|
|
3893
3930
|
];
|
|
3894
3931
|
var GATE_FINDING_SEVERITIES = ["info", "warn", "error"];
|
|
@@ -6365,7 +6402,8 @@ function createMushiServer(config) {
|
|
|
6365
6402
|
method: "PATCH",
|
|
6366
6403
|
body: JSON.stringify({
|
|
6367
6404
|
status: args.status,
|
|
6368
|
-
|
|
6405
|
+
// Kept as a team note on the report (the console's Triage note).
|
|
6406
|
+
note: args.reason,
|
|
6369
6407
|
closed_reason: args.closedReason,
|
|
6370
6408
|
reporter_message: args.reporterMessage
|
|
6371
6409
|
})
|
package/dist/server.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
TDD_TOOL_CATALOG,
|
|
5
5
|
TOOL_CATALOG,
|
|
6
6
|
routeUseMushiIntent
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6SHKBN6R.js";
|
|
8
8
|
import {
|
|
9
9
|
MUSHI_SERVER_METADATA
|
|
10
10
|
} from "./chunk-FJRPC4VR.js";
|
|
@@ -32,7 +32,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
32
32
|
route: "/",
|
|
33
33
|
markdown: "index.md",
|
|
34
34
|
keywords: ["know", "ai-built", "app", "broke", "fix", "ready"],
|
|
35
|
-
headings: ["
|
|
35
|
+
headings: ["The problem it solves", "A real example from our own sites", "What this is (and is not)", "Where it stands today", "This is what a diagnosis looks like", "See it in action", "Get started", "Install it in your app"],
|
|
36
36
|
excerpt: "Your AI shipped it. Mushi tells you why it broke: a plain-English diagnosis and a ready fix in your editor. Open source, Sentry optional."
|
|
37
37
|
},
|
|
38
38
|
{
|
|
@@ -161,6 +161,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
161
161
|
headings: ["What's tracked", "Charts", "Controlling costs", "Export", "Related pages"],
|
|
162
162
|
excerpt: "The Cost page shows LLM token use and estimated spend per model and pipeline for a Mushi project, so you can see what each diagnosis costs."
|
|
163
163
|
},
|
|
164
|
+
{
|
|
165
|
+
title: "Spend credits",
|
|
166
|
+
url: docUrl("/admin/credits"),
|
|
167
|
+
route: "/admin/credits",
|
|
168
|
+
markdown: "admin/credits.md",
|
|
169
|
+
keywords: ["admin", "credits", "spend"],
|
|
170
|
+
headings: ["Cursor: fix bugs", "Cursor: improve your apps with skills", "Firecrawl: find bugs on your live sites", "Site audit", "Search rank", "Where the fixes go"],
|
|
171
|
+
excerpt: "Spend credits lists expiring Cursor and Firecrawl credits and every way Mushi can spend them fixing bugs, improving apps with skills and checking sites."
|
|
172
|
+
},
|
|
164
173
|
{
|
|
165
174
|
title: "Dashboard",
|
|
166
175
|
url: docUrl("/admin/dashboard"),
|
|
@@ -395,6 +404,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
395
404
|
headings: ["What you see", "Data source", "Related"],
|
|
396
405
|
excerpt: "The Overview page is the organization-wide portfolio view \u2014 seven-day activity and open tickets for every connected project at a glance."
|
|
397
406
|
},
|
|
407
|
+
{
|
|
408
|
+
title: "Pipeline",
|
|
409
|
+
url: docUrl("/admin/pipeline"),
|
|
410
|
+
route: "/admin/pipeline",
|
|
411
|
+
markdown: "admin/pipeline.md",
|
|
412
|
+
keywords: ["admin", "pipeline"],
|
|
413
|
+
headings: ["Stages", "Who opens fixes", "Stuck groups", "Release trains", "Intake and deploys"],
|
|
414
|
+
excerpt: "The console Pipeline page shows every bug from report to deploy, where it is stuck and why, with one-click fixes."
|
|
415
|
+
},
|
|
398
416
|
{
|
|
399
417
|
title: "Portfolio",
|
|
400
418
|
url: docUrl("/admin/portfolio"),
|
|
@@ -608,7 +626,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
608
626
|
route: "/admin/ux-runs",
|
|
609
627
|
markdown: "admin/ux-runs.md",
|
|
610
628
|
keywords: ["admin", "ux-runs", "runs", "ux"],
|
|
611
|
-
headings: ["Run in the cloud", "What you see", "File as bug", "Where the changes are"],
|
|
629
|
+
headings: ["Run in the cloud", "What you see", "File as bug", "Audit signed-in screens", "Where the changes are"],
|
|
612
630
|
excerpt: "Each screen your coding agent worked on in a mushi ux run, with its plan, every attempt, before and after screenshots, and what was kept."
|
|
613
631
|
},
|
|
614
632
|
{
|
|
@@ -881,6 +899,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
881
899
|
headings: ["Storage", "Why both pgvector and AGE?", "Indexing", "Bug Ontology"],
|
|
882
900
|
excerpt: "How Mushi links reports, components, fixes and developers in a per-project knowledge graph, with pgvector for similarity and Apache AGE for traversal."
|
|
883
901
|
},
|
|
902
|
+
{
|
|
903
|
+
title: "Known holes in dependencies",
|
|
904
|
+
url: docUrl("/concepts/known-holes"),
|
|
905
|
+
route: "/concepts/known-holes",
|
|
906
|
+
markdown: "concepts/known-holes.md",
|
|
907
|
+
keywords: ["concepts", "known-holes", "known", "holes", "dependencies"],
|
|
908
|
+
headings: ["What Mushi checks", "What becomes a report", "How bad is it", "The fix", "What leaves Mushi", "Where to see it", "Data sources"],
|
|
909
|
+
excerpt: "Mushi checks the exact versions in your lockfiles and runtime pins against published advisories, and files each fixable hole as a bug with the upgrade."
|
|
910
|
+
},
|
|
884
911
|
{
|
|
885
912
|
title: "Multi-repo coordinated fixes",
|
|
886
913
|
url: docUrl("/concepts/multi-repo-fixes"),
|
|
@@ -1211,8 +1238,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1211
1238
|
route: "/plugins/bugsnag",
|
|
1212
1239
|
markdown: "plugins/bugsnag.md",
|
|
1213
1240
|
keywords: ["plugins", "bugsnag"],
|
|
1214
|
-
headings: ["Setup", "Package", "Events"],
|
|
1215
|
-
excerpt: "
|
|
1241
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
1242
|
+
excerpt: "Copy triaged Mushi bug reports into Bugsnag and mark the error fixed when Mushi applies a fix \u2014 a self-hosted plugin with a Data API token."
|
|
1216
1243
|
},
|
|
1217
1244
|
{
|
|
1218
1245
|
title: "Building a plugin",
|
|
@@ -1229,8 +1256,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1229
1256
|
route: "/plugins/crashlytics",
|
|
1230
1257
|
markdown: "plugins/crashlytics.md",
|
|
1231
1258
|
keywords: ["plugins", "crashlytics"],
|
|
1232
|
-
headings: ["Setup", "Package", "Events"],
|
|
1233
|
-
excerpt: "
|
|
1259
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
1260
|
+
excerpt: "Flag fixed Mushi reports in Firebase Remote Config so your mobile app can hide stale crash notices \u2014 a self-hosted plugin with a Google access token."
|
|
1234
1261
|
},
|
|
1235
1262
|
{
|
|
1236
1263
|
title: "Cursor Cloud Agent",
|
|
@@ -1238,7 +1265,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1238
1265
|
route: "/plugins/cursor-cloud",
|
|
1239
1266
|
markdown: "plugins/cursor-cloud.md",
|
|
1240
1267
|
keywords: ["plugins", "cursor-cloud", "cursor", "cloud", "agent"],
|
|
1241
|
-
headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "
|
|
1268
|
+
headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Which reports start an agent", "Triggering manually", "Reviewing what the agent did"],
|
|
1242
1269
|
excerpt: "Dispatch a Cursor Cloud Agent automatically when a Mushi report qualifies \u2014 it investigates, drafts a fix and opens a PR that links back to Mushi."
|
|
1243
1270
|
},
|
|
1244
1271
|
{
|
|
@@ -1247,8 +1274,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1247
1274
|
route: "/plugins/discord",
|
|
1248
1275
|
markdown: "plugins/discord.md",
|
|
1249
1276
|
keywords: ["plugins", "discord"],
|
|
1250
|
-
headings: ["Setup
|
|
1251
|
-
excerpt: "Post Mushi report and fix events to a Discord channel
|
|
1277
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
1278
|
+
excerpt: "Post Mushi report and fix events to a Discord channel \u2014 paste a channel webhook on the Integrations page, or run the self-hosted Discord plugin."
|
|
1252
1279
|
},
|
|
1253
1280
|
{
|
|
1254
1281
|
title: "Webhook events",
|
|
@@ -1265,8 +1292,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1265
1292
|
route: "/plugins/github-issues",
|
|
1266
1293
|
markdown: "plugins/github-issues.md",
|
|
1267
1294
|
keywords: ["plugins", "github-issues", "github", "issues"],
|
|
1268
|
-
headings: ["Setup
|
|
1269
|
-
excerpt: "Open a
|
|
1295
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
1296
|
+
excerpt: "Open a GitHub issue for every triaged Mushi report and close it when the fix lands \u2014 set it up on the Integrations page, or self-host the plugin."
|
|
1270
1297
|
},
|
|
1271
1298
|
{
|
|
1272
1299
|
title: "Jira Cloud",
|
|
@@ -1274,8 +1301,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1274
1301
|
route: "/plugins/jira",
|
|
1275
1302
|
markdown: "plugins/jira.md",
|
|
1276
1303
|
keywords: ["plugins", "jira", "cloud"],
|
|
1277
|
-
headings: ["Setup
|
|
1278
|
-
excerpt: "
|
|
1304
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
1305
|
+
excerpt: "Open Jira Cloud issues from Mushi bug reports and keep their status in step \u2014 set it up on the Integrations page, or self-host the Jira plugin."
|
|
1279
1306
|
},
|
|
1280
1307
|
{
|
|
1281
1308
|
title: "Linear",
|
|
@@ -1283,8 +1310,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1283
1310
|
route: "/plugins/linear",
|
|
1284
1311
|
markdown: "plugins/linear.md",
|
|
1285
1312
|
keywords: ["plugins", "linear"],
|
|
1286
|
-
headings: ["Setup", "Behaviour", "
|
|
1287
|
-
excerpt: "File
|
|
1313
|
+
headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
|
|
1314
|
+
excerpt: "File Linear issues from Mushi bug reports \u2014 connect Linear on the Integrations page, or run the self-hosted Linear plugin with an API key and team id."
|
|
1288
1315
|
},
|
|
1289
1316
|
{
|
|
1290
1317
|
title: "Microsoft Teams",
|
|
@@ -1292,8 +1319,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1292
1319
|
route: "/plugins/msteams",
|
|
1293
1320
|
markdown: "plugins/msteams.md",
|
|
1294
1321
|
keywords: ["plugins", "msteams", "microsoft", "teams"],
|
|
1295
|
-
headings: ["Setup
|
|
1296
|
-
excerpt: "Send
|
|
1322
|
+
headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
|
|
1323
|
+
excerpt: "Send cards to a Microsoft Teams channel when Mushi triages a report or a fix lands \u2014 paste a webhook on the Integrations page, or self-host the plugin."
|
|
1297
1324
|
},
|
|
1298
1325
|
{
|
|
1299
1326
|
title: "PagerDuty",
|
|
@@ -1301,8 +1328,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1301
1328
|
route: "/plugins/pagerduty",
|
|
1302
1329
|
markdown: "plugins/pagerduty.md",
|
|
1303
1330
|
keywords: ["plugins", "pagerduty"],
|
|
1304
|
-
headings: ["Setup", "Behaviour", "Troubleshooting"],
|
|
1305
|
-
excerpt: "Page your on-call rotation through PagerDuty when a
|
|
1331
|
+
headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
|
|
1332
|
+
excerpt: "Page your on-call rotation through PagerDuty when Mushi triages a bug as critical, and resolve it when the fix lands \u2014 Events API v2 routing key setup."
|
|
1306
1333
|
},
|
|
1307
1334
|
{
|
|
1308
1335
|
title: "Rollbar",
|
|
@@ -1310,8 +1337,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1310
1337
|
route: "/plugins/rollbar",
|
|
1311
1338
|
markdown: "plugins/rollbar.md",
|
|
1312
1339
|
keywords: ["plugins", "rollbar"],
|
|
1313
|
-
headings: ["Setup", "Package", "Events"],
|
|
1314
|
-
excerpt: "
|
|
1340
|
+
headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
|
|
1341
|
+
excerpt: "Copy triaged Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 a self-hosted plugin with an access token and project id."
|
|
1315
1342
|
},
|
|
1316
1343
|
{
|
|
1317
1344
|
title: "Sentry",
|
|
@@ -1319,7 +1346,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1319
1346
|
route: "/plugins/sentry",
|
|
1320
1347
|
markdown: "plugins/sentry.md",
|
|
1321
1348
|
keywords: ["plugins", "sentry"],
|
|
1322
|
-
headings: ["Route Sentry errors into Mushi (inbound)", "
|
|
1349
|
+
headings: ["Route Sentry errors into Mushi (inbound)", "Copy Mushi reports into Sentry (outbound plugin)", "Package", "Events"],
|
|
1323
1350
|
excerpt: "Two-way Sentry integration \u2014 Sentry errors flow into Mushi's queue, merging a Mushi fix resolves the Sentry issue, and critical reports mirror back."
|
|
1324
1351
|
},
|
|
1325
1352
|
{
|
|
@@ -1328,8 +1355,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1328
1355
|
route: "/plugins/slack",
|
|
1329
1356
|
markdown: "plugins/slack.md",
|
|
1330
1357
|
keywords: ["plugins", "slack", "app"],
|
|
1331
|
-
headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "
|
|
1332
|
-
excerpt: "Triage Mushi bug reports from Slack \u2014 each
|
|
1358
|
+
headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "What gets posted", "Troubleshooting"],
|
|
1359
|
+
excerpt: "Triage Mushi bug reports from Slack \u2014 add the app from the Integrations page, and each report posts as a card with buttons to fix, resolve or dismiss."
|
|
1333
1360
|
},
|
|
1334
1361
|
{
|
|
1335
1362
|
title: "Zapier",
|
|
@@ -1337,7 +1364,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1337
1364
|
route: "/plugins/zapier",
|
|
1338
1365
|
markdown: "plugins/zapier.md",
|
|
1339
1366
|
keywords: ["plugins", "zapier"],
|
|
1340
|
-
headings: ["Setup", "
|
|
1367
|
+
headings: ["Setup (no server)", "Setup (with the relay package)", "Common Zaps", "Troubleshooting"],
|
|
1341
1368
|
excerpt: "Send every Mushi event to Zapier and on to thousands of apps such as Notion, Google Sheets and HubSpot \u2014 Catch Hook setup and event filters."
|
|
1342
1369
|
},
|
|
1343
1370
|
{
|
|
@@ -1355,7 +1382,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1355
1382
|
route: "/quickstart",
|
|
1356
1383
|
markdown: "quickstart/index.md",
|
|
1357
1384
|
keywords: ["quickstart", "fix", "first", "bug", "60", "seconds", "choose", "stack"],
|
|
1358
|
-
headings: ["Start here (
|
|
1385
|
+
headings: ["What you need", "The fastest way: one command", "Start here (editor first)", "Pick your stack", "How do I install the SDK?", "Troubleshooting"],
|
|
1359
1386
|
excerpt: "Install Mushi with npx mushi-mushi, connect Cursor or Claude Code over MCP, and turn user bug reports into plain-English diagnoses with ready fixes."
|
|
1360
1387
|
},
|
|
1361
1388
|
{
|
|
@@ -1374,7 +1401,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1374
1401
|
markdown: "quickstart/angular.md",
|
|
1375
1402
|
keywords: ["quickstart", "angular"],
|
|
1376
1403
|
headings: [],
|
|
1377
|
-
excerpt: "Add Mushi to an Angular 17+ app
|
|
1404
|
+
excerpt: "Add Mushi to an Angular 17+ app: one provideMushi() call registers the Mushi service and error handler, so uncaught errors and bug reports reach your queue."
|
|
1378
1405
|
},
|
|
1379
1406
|
{
|
|
1380
1407
|
title: "Capacitor quickstart",
|
|
@@ -1536,7 +1563,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1536
1563
|
markdown: "sdks/angular.md",
|
|
1537
1564
|
keywords: ["sdks", "angular", "@mushi-mushi/angular"],
|
|
1538
1565
|
headings: ["API surface", "Setup (standalone bootstrap)", "Submitting a report", "Identifying users"],
|
|
1539
|
-
excerpt: "API reference for @mushi-mushi/angular \u2014 MushiService, MushiErrorHandler and the MUSHI_CONFIG token
|
|
1566
|
+
excerpt: "API reference for @mushi-mushi/angular \u2014 provideMushi(), MushiService, MushiErrorHandler and the MUSHI_CONFIG token in an Angular 17+ app."
|
|
1540
1567
|
},
|
|
1541
1568
|
{
|
|
1542
1569
|
title: "In-SDK Ask assistant",
|
|
@@ -1580,7 +1607,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1580
1607
|
route: "/sdks/core",
|
|
1581
1608
|
markdown: "sdks/core.md",
|
|
1582
1609
|
keywords: ["sdks", "core", "@mushi-mushi/core"],
|
|
1583
|
-
headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "
|
|
1610
|
+
headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "captureEvent(input)", "Offline queue", "PII scrubbing utilities (1.27+)", "Region resolution"],
|
|
1584
1611
|
excerpt: "Reference for @mushi-mushi/core \u2014 the MushiConfig shape, widget options, PII scrubbing helpers and region resolution shared by every Mushi JavaScript SDK."
|
|
1585
1612
|
},
|
|
1586
1613
|
{
|
|
@@ -1589,7 +1616,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1589
1616
|
route: "/sdks/eslint-plugin",
|
|
1590
1617
|
markdown: "sdks/eslint-plugin.md",
|
|
1591
1618
|
keywords: ["sdks", "eslint-plugin", "eslint", "plugin", "eslint-plugin-mushi-mushi"],
|
|
1592
|
-
headings: ["Install", "
|
|
1619
|
+
headings: ["Install", "Turn on the two rules", "The recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "In CI"],
|
|
1593
1620
|
excerpt: "eslint-plugin-mushi-mushi flags empty event handlers and leftover mock data in production code \u2014 the no-dead-handler and no-mock-leak rules and preset."
|
|
1594
1621
|
},
|
|
1595
1622
|
{
|
|
@@ -1626,7 +1653,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1626
1653
|
markdown: "sdks/inventory-schema.md",
|
|
1627
1654
|
keywords: ["sdks", "inventory-schema", "inventory", "schema", "@mushi-mushi/inventory-schema"],
|
|
1628
1655
|
headings: ["Install", "What inventory.yaml looks like", "Programmatic use", "JSON Schema"],
|
|
1629
|
-
excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml
|
|
1656
|
+
excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml: your app's pages, the buttons and forms on each, what they do, and the tests that prove it."
|
|
1630
1657
|
},
|
|
1631
1658
|
{
|
|
1632
1659
|
title: "MushiMushi (iOS)",
|
|
@@ -1652,7 +1679,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1652
1679
|
route: "/sdks/mcp",
|
|
1653
1680
|
markdown: "sdks/mcp.md",
|
|
1654
1681
|
keywords: ["sdks", "mcp", "bug", "report", "server", "cursor", "claude", "code", "@mushi-mushi/mcp"],
|
|
1655
|
-
headings: ["Two transports", "Spec traceability for dispatchfix"],
|
|
1682
|
+
headings: ["Quick start", "Two transports", "Spec traceability for dispatchfix"],
|
|
1656
1683
|
excerpt: "Reference for @mushi-mushi/mcp, the Mushi MCP server for Cursor, Claude Code, VS Code and Windsurf \u2014 stdio and hosted HTTP transports, scopes and setup."
|
|
1657
1684
|
},
|
|
1658
1685
|
{
|
|
@@ -1661,8 +1688,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1661
1688
|
route: "/sdks/mcp-ci",
|
|
1662
1689
|
markdown: "sdks/mcp-ci.md",
|
|
1663
1690
|
keywords: ["sdks", "mcp-ci", "mcp", "@mushi-mushi/mcp-ci"],
|
|
1664
|
-
headings: ["Quick start", "Commands", "In your IDE", "Inputs"],
|
|
1665
|
-
excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action
|
|
1691
|
+
headings: ["Quick start", "Gates on every PR", "Commands", "In your IDE", "Inputs", "Outputs"],
|
|
1692
|
+
excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action: fail a PR while reports wait for triage, dispatch a fix, run the pre-release gates and refresh crawler sign-in."
|
|
1666
1693
|
},
|
|
1667
1694
|
{
|
|
1668
1695
|
title: "MCP tools reference",
|
|
@@ -1697,7 +1724,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1697
1724
|
route: "/sdks/node",
|
|
1698
1725
|
markdown: "sdks/node.md",
|
|
1699
1726
|
keywords: ["sdks", "node", "node.js", "server", "error", "reporting", "sdk", "@mushi-mushi/node"],
|
|
1700
|
-
headings: ["Install", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
|
|
1727
|
+
headings: ["Install", "Create a client", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
|
|
1701
1728
|
excerpt: "Report server errors from Node with @mushi-mushi/node \u2014 Express, Fastify and Hono error handlers that tag each report with route, request ID and user."
|
|
1702
1729
|
},
|
|
1703
1730
|
{
|
|
@@ -1707,7 +1734,7 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1707
1734
|
markdown: "sdks/plugin-sdk.md",
|
|
1708
1735
|
keywords: ["sdks", "plugin-sdk", "plugin", "sdk", "@mushi-mushi/plugin-sdk"],
|
|
1709
1736
|
headings: ["Install", "Express adapter", "Hono adapter", "Verify a signature manually", "Wire format", "See also"],
|
|
1710
|
-
excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express."
|
|
1737
|
+
excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express or Hono."
|
|
1711
1738
|
},
|
|
1712
1739
|
{
|
|
1713
1740
|
title: "SDK presets",
|
|
@@ -1763,6 +1790,15 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1763
1790
|
headings: ["API surface", "Setup", "Submitting a report"],
|
|
1764
1791
|
excerpt: "Reference for @mushi-mushi/svelte \u2014 initMushi, getMushi and the SvelteKit error hooks that forward client and server errors to your Mushi queue."
|
|
1765
1792
|
},
|
|
1793
|
+
{
|
|
1794
|
+
title: "@mushi-mushi/ux",
|
|
1795
|
+
url: docUrl("/sdks/ux"),
|
|
1796
|
+
route: "/sdks/ux",
|
|
1797
|
+
markdown: "sdks/ux.md",
|
|
1798
|
+
keywords: ["sdks", "ux", "@mushi-mushi/ux"],
|
|
1799
|
+
headings: ["Quick start", "From studio to merge", "What a run does", "Safety", "Agents", "Commands", "Audit and explore signed-in screens", "On GitHub Actions"],
|
|
1800
|
+
excerpt: "@mushi-mushi/ux runs your coding agent over each screen of your app, measures every change and keeps only the ones that help, on a branch you review."
|
|
1801
|
+
},
|
|
1766
1802
|
{
|
|
1767
1803
|
title: "@mushi-mushi/vue",
|
|
1768
1804
|
url: docUrl("/sdks/vue"),
|
|
@@ -1778,8 +1814,8 @@ var MUSHI_DOCS_INDEX = [
|
|
|
1778
1814
|
route: "/sdks/wasm-classifier",
|
|
1779
1815
|
markdown: "sdks/wasm-classifier.md",
|
|
1780
1816
|
keywords: ["sdks", "wasm-classifier", "wasm", "classifier", "@mushi-mushi/wasm-classifier"],
|
|
1781
|
-
headings: [],
|
|
1782
|
-
excerpt: "@mushi-mushi/wasm-classifier
|
|
1817
|
+
headings: ["Use it with the web SDK", "Call it directly", "ONNX backend (experimental)"],
|
|
1818
|
+
excerpt: "@mushi-mushi/wasm-classifier filters junk bug reports in the browser, before they reach the server or your LLM."
|
|
1783
1819
|
},
|
|
1784
1820
|
{
|
|
1785
1821
|
title: "JavaScript bug reporting SDK for the browser",
|
|
@@ -2498,6 +2534,7 @@ var GATE_IDS = [
|
|
|
2498
2534
|
"radar",
|
|
2499
2535
|
"portfolio_radar",
|
|
2500
2536
|
"portfolio_radar_ci",
|
|
2537
|
+
"portfolio_radar_vulns",
|
|
2501
2538
|
"store_review"
|
|
2502
2539
|
];
|
|
2503
2540
|
var GATE_FINDING_SEVERITIES = ["info", "warn", "error"];
|
|
@@ -4974,7 +5011,8 @@ function createMushiServer(config) {
|
|
|
4974
5011
|
method: "PATCH",
|
|
4975
5012
|
body: JSON.stringify({
|
|
4976
5013
|
status: args.status,
|
|
4977
|
-
|
|
5014
|
+
// Kept as a team note on the report (the console's Triage note).
|
|
5015
|
+
note: args.reason,
|
|
4978
5016
|
closed_reason: args.closedReason,
|
|
4979
5017
|
reporter_message: args.reporterMessage
|
|
4980
5018
|
})
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mushi-mushi/mcp",
|
|
3
3
|
"mcpName": "io.github.kensaurus/mushi-mushi",
|
|
4
|
-
"version": "0.29.
|
|
4
|
+
"version": "0.29.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "MCP server for Cursor, Claude Code and Copilot. The bug mediator for AI-built apps: plain-English diagnosis + a ready fix, in your editor.",
|
|
7
7
|
"type": "module",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@modelcontextprotocol/core": "^2.3.1",
|
|
46
46
|
"@modelcontextprotocol/server": "^2.3.1",
|
|
47
|
-
"zod": "^4.
|
|
48
|
-
"@mushi-mushi/core": "^1.33.
|
|
47
|
+
"zod": "^4.6.7",
|
|
48
|
+
"@mushi-mushi/core": "^1.33.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"@sentry/node": "^10.57.0"
|