@mushi-mushi/mcp 0.20.1 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -146,7 +146,7 @@ The Mushi backend now exposes the same tool catalog over the **Streamable HTTP**
146
146
 
147
147
  ### Feature groups (`?features=` / `MUSHI_FEATURES`)
148
148
 
149
- Full catalog is **71 tools** (stdio / `MUSHI_FEATURES=all`). The hosted HTTP
149
+ Full catalog is **72 tools** (stdio / `MUSHI_FEATURES=all`). The hosted HTTP
150
150
  endpoint exposes a leaner subset filtered by feature groups (see
151
151
  `mcp-hosted-tool-manifest.json`). New installs now default to the lean
152
152
  `triage,fixes,inventory,setup,docs` set automatically (stdio: when
@@ -390,7 +390,7 @@ Spawns `dist/index.js` with a dummy unreachable endpoint and confirms it adverti
390
390
  pnpm --filter @mushi-mushi/mcp build
391
391
  pnpm --filter @mushi-mushi/mcp test:smoke
392
392
  # OK; prints live tool/resource/prompt counts from the catalog
393
- # (see packages/mcp/src/catalog.ts — currently 71 tools / 8 resources / 4 prompts)
393
+ # (see packages/mcp/src/catalog.ts — currently 72 tools / 8 resources / 4 prompts)
394
394
  ```
395
395
 
396
396
  ### Layer 3; Full localhost E2E (real binary + real backend behaviour)
@@ -484,4 +484,4 @@ MIT
484
484
  <!-- mushi-readme-stats-footer -->
485
485
  ---
486
486
 
487
- <sub>Monorepo scale (July 2026): 55 edge functions · 331 SQL migrations · 13 outbound plugins · 11 inbound adapters · 19 pipeline agents. Canonical counts: <a href="https://github.com/kensaurus/mushi-mushi/blob/master/docs/stats.md">docs/stats.md</a> · <code>pnpm docs-stats</code></sub>
487
+ <sub>Monorepo scale (July 2026): 55 edge functions · 336 SQL migrations · 13 outbound plugins · 11 inbound adapters · 19 pipeline agents. Canonical counts: <a href="https://github.com/kensaurus/mushi-mushi/blob/master/docs/stats.md">docs/stats.md</a> · <code>pnpm docs-stats</code></sub>
package/dist/catalog.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  TDD_TOOL_CATALOG,
7
7
  TOOL_CATALOG,
8
8
  USE_MUSHI_INTENTS
9
- } from "./chunk-TP2QQWDJ.js";
9
+ } from "./chunk-RVZIKP4X.js";
10
10
  export {
11
11
  ALL_SCOPES,
12
12
  CODEBASE_TOOL_CATALOG,
@@ -160,7 +160,7 @@ var TOOL_CATALOG = [
160
160
  {
161
161
  name: "dispatch_fix",
162
162
  title: "Dispatch Mushi fix agent",
163
- description: 'Start a Mushi fix agent for a classified report; it writes a branch and opens a signed draft PR. Set agent="cursor_cloud" to dispatch a Cursor Cloud Agent (default uses the in-repo worker). Requires GitHub connected + an LLM key (run diagnose_setup mode=dispatch first). Returns { fixAttemptId }; poll get_fix_timeline for progress and merge_fix when CI is green. Write; NOT idempotent \u2014 each call starts a new attempt. Report must be classified \u2014 run triage_issue if not.',
163
+ description: 'Start a Mushi fix agent for a classified report; it writes a branch and opens a signed draft PR. Set agent="cursor_cloud" to dispatch a Cursor Cloud Agent (default uses the in-repo worker). Requires GitHub connected + an LLM key (run diagnose_setup mode=dispatch first). Returns { fixId, status } (fixId is the dispatch id; get_fix_timeline accepts it immediately); poll get_fix_timeline for progress and merge_fix when CI is green. Write; pass the same idempotencyKey to retry safely \u2014 without it each call starts a new attempt. Report must be classified \u2014 run triage_issue if not.',
164
164
  scope: "mcp:write",
165
165
  hints: { readOnly: false, destructive: false, idempotent: false, openWorld: true },
166
166
  useCase: "Let the in-repo agent attempt this fix for me (or: dispatch a Cursor Cloud Agent)."
@@ -295,6 +295,14 @@ var TOOL_CATALOG = [
295
295
  hints: { readOnly: true, idempotent: true, openWorld: true },
296
296
  useCase: "Analyze this bug report end-to-end and tell me what to do."
297
297
  },
298
+ {
299
+ name: "triage_next_steps",
300
+ title: "What should I work on now?",
301
+ description: 'Prioritised "do this next" list for the project: blocked auto-fixes first (with the unblock action), then in-flight fixes to shepherd to merge, then user-felt classified reports by severity, with robot/cron chores (dependency bumps) last. Returns { steps: [{ priority, action, reason, tool, args }], summary }. Read-only. Call this first when the user asks "what needs my attention / what should I triage or fix".',
302
+ scope: "mcp:read",
303
+ hints: { readOnly: true, idempotent: true, openWorld: true },
304
+ useCase: "What should I triage or fix right now?"
305
+ },
298
306
  // ── Lessons / evolution loop ─────────────────────────────────────────────
299
307
  {
300
308
  name: "query_lessons",
@@ -620,24 +628,29 @@ var TDD_TOOL_CATALOG = [
620
628
  }
621
629
  ];
622
630
  var USE_MUSHI_INTENTS = {
631
+ // NOTE: every name below MUST be a registered TOOL (scopes.test.ts guards
632
+ // this). 2026-08-16 audit P0-3 found phantom names (get_report,
633
+ // get_dashboard, list_qa_stories) and prompts listed as tools
634
+ // (summarize_report_for_fix, mushi_setup) — agents routed here then
635
+ // failed the call and gave up.
623
636
  fix: {
624
637
  label: "Fix a bug",
625
638
  tools: [
626
639
  "get_recent_reports",
627
- "get_report",
628
- "summarize_report_for_fix",
640
+ "get_report_detail",
641
+ "triage_issue",
629
642
  "dispatch_fix",
630
643
  "start_skill_pipeline",
631
644
  "checkin_pipeline_step",
632
645
  "get_pipeline_run"
633
646
  ],
634
- hint: "Call get_recent_reports to find the top unresolved bug, then summarize_report_for_fix before dispatching."
647
+ hint: "Call get_recent_reports to find the top unresolved bug, then triage_issue before dispatching."
635
648
  },
636
649
  status: {
637
650
  label: "Check project status",
638
651
  tools: [
639
- "get_dashboard",
640
652
  "triage_next_steps",
653
+ "get_account_overview",
641
654
  "get_usage",
642
655
  "get_backend_health",
643
656
  "activation_status"
@@ -647,7 +660,7 @@ var USE_MUSHI_INTENTS = {
647
660
  setup: {
648
661
  label: "Set up Mushi",
649
662
  tools: [
650
- "mushi_setup",
663
+ "diagnose_setup",
651
664
  "activation_status",
652
665
  "get_backend_health",
653
666
  "list_byok_keys",
@@ -655,12 +668,11 @@ var USE_MUSHI_INTENTS = {
655
668
  "test_byok_key",
656
669
  "remove_byok_key"
657
670
  ],
658
- hint: "Call mushi_setup first \u2014 it diagnoses setup gaps and returns the next command to run."
671
+ hint: "Call diagnose_setup first \u2014 it diagnoses setup gaps and returns the next action to take."
659
672
  },
660
673
  qa: {
661
674
  label: "Run / review QA tests",
662
675
  tools: [
663
- "list_qa_stories",
664
676
  "run_qa_story",
665
677
  "list_qa_story_runs",
666
678
  "get_qa_story_run",
@@ -668,7 +680,7 @@ var USE_MUSHI_INTENTS = {
668
680
  "approve_qa_story",
669
681
  "improve_qa_story"
670
682
  ],
671
- hint: "Call list_qa_stories to see what test coverage exists; run_qa_story to trigger a run."
683
+ hint: "Call list_qa_story_runs to see recent coverage and outcomes; run_qa_story to trigger a run."
672
684
  },
673
685
  pipeline: {
674
686
  label: "Run an agent pipeline / skill",
@@ -683,7 +695,7 @@ var USE_MUSHI_INTENTS = {
683
695
  },
684
696
  audit: {
685
697
  label: "Audit / health check",
686
- tools: ["run_fullstack_audit", "get_backend_health", "get_dashboard", "get_usage"],
698
+ tools: ["run_fullstack_audit", "get_backend_health", "get_account_overview", "get_usage"],
687
699
  hint: "Call run_fullstack_audit for a full-stack health scorecard."
688
700
  }
689
701
  };
package/dist/clients.d.ts CHANGED
@@ -46,7 +46,7 @@ import { FeatureGroup } from './feature-groups.js';
46
46
  * editor launch. Synced to package.json by `scripts/sync-mcp-pin.mjs` — never
47
47
  * hand-edit the version.
48
48
  */
49
- declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.1";
49
+ declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.2";
50
50
  interface StdioConfig {
51
51
  command: string;
52
52
  args: string[];
package/dist/clients.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-ZSVRLSW5.js";
9
9
 
10
10
  // src/clients.ts
11
- var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.1";
11
+ var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.20.2";
12
12
  function projectServerName(projectId, projectName) {
13
13
  const nameSlug = projectName.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 22);
14
14
  const idSuffix = projectId.replace(/-/g, "").slice(0, 6);