@mu-crew/mu 3.13.2 → 4.0.0

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 (119) hide show
  1. package/AGENTS.md +73 -35
  2. package/README.md +71 -57
  3. package/dist/chunk-5HECDBK3.js +4482 -0
  4. package/dist/chunk-5HECDBK3.js.map +1 -0
  5. package/dist/chunk-AW2NONYU.js +301 -0
  6. package/dist/chunk-AW2NONYU.js.map +1 -0
  7. package/dist/chunk-GQNHIPJN.js +4060 -0
  8. package/dist/chunk-GQNHIPJN.js.map +1 -0
  9. package/dist/{chunk-3BARPJLY.js → chunk-PZ5GOCWH.js} +16 -2
  10. package/dist/chunk-PZ5GOCWH.js.map +1 -0
  11. package/dist/chunk-S424D5EP.js +13766 -0
  12. package/dist/chunk-S424D5EP.js.map +1 -0
  13. package/dist/{cli-CKOMHBXV.js → cli-GB2CAVVW.js} +6776 -4350
  14. package/dist/cli-GB2CAVVW.js.map +1 -0
  15. package/dist/cli.js +2 -3
  16. package/dist/cli.js.map +1 -1
  17. package/dist/errors-KHOYKD7D.js +65 -0
  18. package/dist/extension/mu-pi.js +1617 -836
  19. package/dist/extension/mu-pi.js.map +1 -1
  20. package/dist/index.d.ts +4015 -2561
  21. package/dist/index.js +614 -297
  22. package/dist/index.js.map +1 -1
  23. package/dist/tui-ALPHYTA2.js +1773 -0
  24. package/dist/tui-ALPHYTA2.js.map +1 -0
  25. package/docs/ARCHITECTURE.md +117 -66
  26. package/docs/VOCABULARY.md +112 -49
  27. package/docs/guide/README.md +3 -3
  28. package/docs/guide/backends.md +8 -4
  29. package/docs/guide/cleanup.md +61 -33
  30. package/docs/guide/delegate.md +141 -66
  31. package/docs/guide/dispatch.md +148 -53
  32. package/docs/guide/getting-started.md +37 -44
  33. package/docs/guide/other-agent-clis.md +102 -0
  34. package/docs/guide/recovery.md +31 -50
  35. package/docs/guide/remote.md +115 -45
  36. package/docs/guide/sql.md +104 -24
  37. package/docs/guide/stop-a-worker.md +30 -37
  38. package/docs/guide/sync.md +11 -3
  39. package/docs/guide/upgrade.md +93 -43
  40. package/docs/reference/env.md +23 -32
  41. package/docs/reference/naming.md +12 -7
  42. package/docs/reference/surface-contract.md +153 -0
  43. package/package.json +33 -11
  44. package/prompts/mu-debug.md +3 -1
  45. package/prompts/mu-refute.md +2 -1
  46. package/prompts/mu-research.md +3 -1
  47. package/prompts/mu-review.md +2 -1
  48. package/prompts/mu-rules-audit.md +5 -4
  49. package/prompts/mu-sweep.md +2 -1
  50. package/prompts/mu-tournament.md +4 -2
  51. package/prompts/mu-until.md +3 -1
  52. package/prompts/ultrathink.md +1 -1
  53. package/skills/mu/SKILL.md +60 -291
  54. package/skills/mu/recipes/adversarial-review.md +12 -103
  55. package/skills/mu/recipes/brief.md +14 -61
  56. package/skills/mu/recipes/course-correct.md +23 -0
  57. package/skills/mu/recipes/findings.md +17 -111
  58. package/skills/mu/recipes/models.md +17 -92
  59. package/skills/mu/recipes/move.md +14 -0
  60. package/skills/mu/recipes/orchestrator-loop.md +20 -119
  61. package/skills/mu/recipes/recovery.md +8 -29
  62. package/skills/mu/recipes/remote-workers.md +16 -318
  63. package/skills/mu/recipes/tasks-or-calls.md +15 -78
  64. package/skills/mu/recipes/test-health.md +19 -69
  65. package/skills/mu/recipes/worker.md +17 -24
  66. package/dist/chunk-45KQLMEL.js +0 -2908
  67. package/dist/chunk-45KQLMEL.js.map +0 -1
  68. package/dist/chunk-G434JKV2.js +0 -641
  69. package/dist/chunk-G434JKV2.js.map +0 -1
  70. package/dist/chunk-KUGUFBWH.js +0 -12527
  71. package/dist/chunk-KUGUFBWH.js.map +0 -1
  72. package/dist/chunk-QITLNZEM.js +0 -87
  73. package/dist/chunk-QITLNZEM.js.map +0 -1
  74. package/dist/chunk-VIEYQMQA.js +0 -393
  75. package/dist/chunk-VIEYQMQA.js.map +0 -1
  76. package/dist/chunk-WI6AWCMK.js +0 -19
  77. package/dist/chunk-WI6AWCMK.js.map +0 -1
  78. package/dist/cli-CKOMHBXV.js.map +0 -1
  79. package/dist/devtools-LS4ZEPWM.js +0 -3772
  80. package/dist/devtools-LS4ZEPWM.js.map +0 -1
  81. package/dist/tui-LFJ5P4Y2.js +0 -40956
  82. package/dist/tui-LFJ5P4Y2.js.map +0 -1
  83. package/dist/tui-sync-worker.js +0 -17
  84. package/dist/tui-sync-worker.js.map +0 -1
  85. package/dist/yank-XDOONQSL.js +0 -13
  86. package/dist/yank-XDOONQSL.js.map +0 -1
  87. package/docs/ROADMAP.md +0 -123
  88. package/docs/VISION.md +0 -298
  89. package/docs/architecture/control-socket.md +0 -142
  90. package/docs/architecture/dag.md +0 -117
  91. package/docs/architecture/mux.md +0 -167
  92. package/docs/architecture/ops-log.md +0 -160
  93. package/docs/architecture/sdk.md +0 -187
  94. package/docs/architecture/sync.md +0 -159
  95. package/docs/architecture/tui.md +0 -165
  96. package/docs/guide/tui.md +0 -98
  97. package/docs/history/CHANGELOG-pre-3.md +0 -4866
  98. package/docs/img/tui-dashboard.png +0 -0
  99. package/docs/specs/2026-09-28-agent-state-from-murmur.md +0 -333
  100. package/docs/specs/2026-09-29-task-substates.md +0 -247
  101. package/docs/specs/2026-10-03-keep-driving-nudge.md +0 -163
  102. package/docs/specs/2026-10-21-fast-and-slow-gates.md +0 -229
  103. package/skills/mu/recipes/backlog-triage.md +0 -45
  104. package/skills/mu/recipes/codemode-driver.md +0 -118
  105. package/skills/mu/recipes/deep-research.md +0 -69
  106. package/skills/mu/recipes/drift-audit.md +0 -75
  107. package/skills/mu/recipes/fan-out.md +0 -42
  108. package/skills/mu/recipes/hypothesis-panel.md +0 -48
  109. package/skills/mu/recipes/long-run.md +0 -32
  110. package/skills/mu/recipes/loop-until-done.md +0 -45
  111. package/skills/mu/recipes/plan.md +0 -67
  112. package/skills/mu/recipes/refute.md +0 -55
  113. package/skills/mu/recipes/review-panel.md +0 -65
  114. package/skills/mu/recipes/rules-audit.md +0 -89
  115. package/skills/mu/recipes/tournament.md +0 -44
  116. package/skills/mu/recipes/ultrathink.md +0 -86
  117. package/skills/mu/recipes/watcher.md +0 -28
  118. package/skills/mu/recipes/waves.md +0 -21
  119. /package/dist/{chunk-3BARPJLY.js.map → errors-KHOYKD7D.js.map} +0 -0
package/dist/cli.js CHANGED
@@ -2,8 +2,7 @@
2
2
  import { createRequire as __muCreateRequire } from "node:module"; const require = __muCreateRequire(import.meta.url);
3
3
  import {
4
4
  defaultStateDir
5
- } from "./chunk-WI6AWCMK.js";
6
- import "./chunk-3BARPJLY.js";
5
+ } from "./chunk-PZ5GOCWH.js";
7
6
 
8
7
  // src/main.ts
9
8
  import { join } from "path";
@@ -48,6 +47,6 @@ function enableCompileCacheIn(dir, enable = nodeEnable ?? null) {
48
47
 
49
48
  // src/main.ts
50
49
  enableCompileCacheIn(join(defaultStateDir(), "compile-cache"));
51
- var { runCli } = await import("./cli-CKOMHBXV.js");
50
+ var { runCli } = await import("./cli-GB2CAVVW.js");
52
51
  await runCli(process.argv);
53
52
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.ts","../src/compile-cache.ts"],"sourcesContent":["#!/usr/bin/env node\n// The `mu` bin (dist/cli.js). A bootstrap so the V8 compile cache is on\n// before the CLI graph loads: static ESM imports are hoisted and evaluated\n// before any statement in the importing module, so the cache has to be\n// enabled here and the CLI pulled in with a dynamic import.\n//\n// The cache lives under the mu state dir (<state>/compile-cache) and is\n// best-effort (src/compile-cache.ts): old Node, an unwritable dir, or\n// NODE_DISABLE_COMPILE_CACHE just run uncached.\n\nimport { join } from \"node:path\";\nimport { enableCompileCacheIn } from \"./compile-cache.js\";\nimport { defaultStateDir } from \"./state-dir.js\";\n\nenableCompileCacheIn(join(defaultStateDir(), \"compile-cache\"));\n\nconst { runCli } = await import(\"./cli.js\");\nawait runCli(process.argv);\n","// Best-effort V8 compile cache for the `mu` bin (see src/main.ts).\n//\n// Never hand enableCompileCache a directory that does not exist yet: it\n// creates it with a recursive mkdir, and Node's recursive mkdir spins\n// forever at 100% CPU on some paths (e.g. anything under /proc, where\n// mkdir keeps returning ENOENT). Create the directory here with bounded,\n// non-recursive mkdirs instead, check it is writable, and skip the cache\n// on any failure. Builtins only: this runs before the CLI graph loads.\n\nimport { accessSync, constants, mkdirSync, statSync } from \"node:fs\";\nimport * as nodeModule from \"node:module\";\nimport { dirname } from \"node:path\";\n\ntype EnableCompileCache = (dir: string) => unknown;\n\nconst nodeEnable = (nodeModule as { enableCompileCache?: EnableCompileCache }).enableCompileCache;\n\n/** Create `dir` (and missing parents) one level at a time, at most\n * `maxDepth` levels. Returns false on any error instead of retrying. */\nexport function ensureDirBounded(dir: string, maxDepth = 32): boolean {\n const missing: string[] = [];\n let cur = dir;\n for (let i = 0; i < maxDepth; i++) {\n try {\n if (!statSync(cur).isDirectory()) return false;\n break;\n } catch {\n missing.push(cur);\n const parent = dirname(cur);\n if (parent === cur) return false;\n cur = parent;\n }\n }\n try {\n for (const d of missing.reverse()) mkdirSync(d);\n accessSync(dir, constants.W_OK);\n return statSync(dir).isDirectory();\n } catch {\n return false;\n }\n}\n\n/** Enable the compile cache in `dir`. Returns whether it was attempted;\n * never throws. `enable` is null on Node versions without it. */\nexport function enableCompileCacheIn(\n dir: string,\n enable: EnableCompileCache | null = nodeEnable ?? null,\n): boolean {\n if (enable === null) return false;\n if (!ensureDirBounded(dir)) return false;\n try {\n enable(dir);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;;;;AAUA,SAAS,YAAY;;;ACDrB,SAAS,YAAY,WAAW,WAAW,gBAAgB;AAC3D,YAAY,gBAAgB;AAC5B,SAAS,eAAe;AAIxB,IAAM,aAAyE;AAIxE,SAAS,iBAAiB,KAAa,WAAW,IAAa;AACpE,QAAM,UAAoB,CAAC;AAC3B,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,UAAU,KAAK;AACjC,QAAI;AACF,UAAI,CAAC,SAAS,GAAG,EAAE,YAAY,EAAG,QAAO;AACzC;AAAA,IACF,QAAQ;AACN,cAAQ,KAAK,GAAG;AAChB,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,WAAW,IAAK,QAAO;AAC3B,YAAM;AAAA,IACR;AAAA,EACF;AACA,MAAI;AACF,eAAW,KAAK,QAAQ,QAAQ,EAAG,WAAU,CAAC;AAC9C,eAAW,KAAK,UAAU,IAAI;AAC9B,WAAO,SAAS,GAAG,EAAE,YAAY;AAAA,EACnC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAIO,SAAS,qBACd,KACA,SAAoC,cAAc,MACzC;AACT,MAAI,WAAW,KAAM,QAAO;AAC5B,MAAI,CAAC,iBAAiB,GAAG,EAAG,QAAO;AACnC,MAAI;AACF,WAAO,GAAG;AACV,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;;;AD1CA,qBAAqB,KAAK,gBAAgB,GAAG,eAAe,CAAC;AAE7D,IAAM,EAAE,OAAO,IAAI,MAAM,OAAO,mBAAU;AAC1C,MAAM,OAAO,QAAQ,IAAI;","names":[]}
1
+ {"version":3,"sources":["../src/main.ts","../src/compile-cache.ts"],"sourcesContent":["#!/usr/bin/env node\n// The `mu` bin (dist/cli.js). A bootstrap so the V8 compile cache is on\n// before the CLI graph loads: static ESM imports are hoisted and evaluated\n// before any statement in the importing module, so the cache has to be\n// enabled here and the CLI pulled in with a dynamic import.\n//\n// The cache lives under the mu state dir (<state>/compile-cache) and is\n// best-effort (src/compile-cache.ts): old Node, an unwritable dir, or\n// NODE_DISABLE_COMPILE_CACHE just run uncached.\n\nimport { join } from \"node:path\";\nimport { enableCompileCacheIn } from \"./compile-cache.js\";\nimport { defaultStateDir } from \"./state-dir.js\";\n\nenableCompileCacheIn(join(defaultStateDir(), \"compile-cache\"));\n\nconst { runCli } = await import(\"./cli.js\");\nawait runCli(process.argv);\n","// Best-effort V8 compile cache for the `mu` bin (see src/main.ts).\n//\n// Never hand enableCompileCache a directory that does not exist yet: it\n// creates it with a recursive mkdir, and Node's recursive mkdir spins\n// forever at 100% CPU on some paths (e.g. anything under /proc, where\n// mkdir keeps returning ENOENT). Create the directory here with bounded,\n// non-recursive mkdirs instead, check it is writable, and skip the cache\n// on any failure. Builtins only: this runs before the CLI graph loads.\n\nimport { accessSync, constants, mkdirSync, statSync } from \"node:fs\";\nimport * as nodeModule from \"node:module\";\nimport { dirname } from \"node:path\";\n\ntype EnableCompileCache = (dir: string) => unknown;\n\nconst nodeEnable = (nodeModule as { enableCompileCache?: EnableCompileCache }).enableCompileCache;\n\n/** Create `dir` (and missing parents) one level at a time, at most\n * `maxDepth` levels. Returns false on any error instead of retrying. */\nexport function ensureDirBounded(dir: string, maxDepth = 32): boolean {\n const missing: string[] = [];\n let cur = dir;\n for (let i = 0; i < maxDepth; i++) {\n try {\n if (!statSync(cur).isDirectory()) return false;\n break;\n } catch {\n missing.push(cur);\n const parent = dirname(cur);\n if (parent === cur) return false;\n cur = parent;\n }\n }\n try {\n for (const d of missing.reverse()) mkdirSync(d);\n accessSync(dir, constants.W_OK);\n return statSync(dir).isDirectory();\n } catch {\n return false;\n }\n}\n\n/** Enable the compile cache in `dir`. Returns whether it was attempted;\n * never throws. `enable` is null on Node versions without it. */\nexport function enableCompileCacheIn(\n dir: string,\n enable: EnableCompileCache | null = nodeEnable ?? null,\n): boolean {\n if (enable === null) return false;\n if (!ensureDirBounded(dir)) return false;\n try {\n enable(dir);\n return true;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;;;;AAUA,SAAS,YAAY;;;ACDrB,SAAS,YAAY,WAAW,WAAW,gBAAgB;AAC3D,YAAY,gBAAgB;AAC5B,SAAS,eAAe;AAIxB,IAAM,aAAyE;AAIxE,SAAS,iBAAiB,KAAa,WAAW,IAAa;AACpE,QAAM,UAAoB,CAAC;AAC3B,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,UAAU,KAAK;AACjC,QAAI;AACF,UAAI,CAAC,SAAS,GAAG,EAAE,YAAY,EAAG,QAAO;AACzC;AAAA,IACF,QAAQ;AACN,cAAQ,KAAK,GAAG;AAChB,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,WAAW,IAAK,QAAO;AAC3B,YAAM;AAAA,IACR;AAAA,EACF;AACA,MAAI;AACF,eAAW,KAAK,QAAQ,QAAQ,EAAG,WAAU,CAAC;AAC9C,eAAW,KAAK,UAAU,IAAI;AAC9B,WAAO,SAAS,GAAG,EAAE,YAAY;AAAA,EACnC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAIO,SAAS,qBACd,KACA,SAAoC,cAAc,MACzC;AACT,MAAI,WAAW,KAAM,QAAO;AAC5B,MAAI,CAAC,iBAAiB,GAAG,EAAG,QAAO;AACnC,MAAI;AACF,WAAO,GAAG;AACV,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;;;AD1CA,qBAAqB,KAAK,gBAAgB,GAAG,eAAe,CAAC;AAE7D,IAAM,EAAE,OAAO,IAAI,MAAM,OAAO,mBAAU;AAC1C,MAAM,OAAO,QAAQ,IAAI;","names":[]}
@@ -0,0 +1,65 @@
1
+ import { createRequire as __muCreateRequire } from "node:module"; const require = __muCreateRequire(import.meta.url);
2
+ import {
3
+ AgentAbortNeedsCtlError,
4
+ AgentAbortTimeoutError,
5
+ AgentBusyError,
6
+ AgentCtlUnreachableError,
7
+ AgentDiedOnSpawnError,
8
+ AgentEmptySendError,
9
+ AgentExistsError,
10
+ AgentExtensionOutdatedError,
11
+ AgentFreshNeedsCtlError,
12
+ AgentLockBusyError,
13
+ AgentNameExhaustedError,
14
+ AgentNotFoundError,
15
+ AgentNotInWorkstreamError,
16
+ AgentPaneDeadError,
17
+ AgentPaneStillAliveError,
18
+ AgentReplacedError,
19
+ AgentRestartedError,
20
+ AgentSendIndeterminateError,
21
+ AgentSendRefusedError,
22
+ AgentSendUnsupportedError,
23
+ AgentSlashCommandUnsupportedError,
24
+ AgentSpawnCliNotFoundError,
25
+ AgentSpawnStartupError,
26
+ SpawnAttemptBusyError,
27
+ SpawnAttemptFailedError,
28
+ SpawnAttemptGuardError,
29
+ SpawnReceiptConflictError,
30
+ SpawnTaskStateError,
31
+ SpawnTrustDialogError
32
+ } from "./chunk-S424D5EP.js";
33
+ import "./chunk-PZ5GOCWH.js";
34
+ export {
35
+ AgentAbortNeedsCtlError,
36
+ AgentAbortTimeoutError,
37
+ AgentBusyError,
38
+ AgentCtlUnreachableError,
39
+ AgentDiedOnSpawnError,
40
+ AgentEmptySendError,
41
+ AgentExistsError,
42
+ AgentExtensionOutdatedError,
43
+ AgentFreshNeedsCtlError,
44
+ AgentLockBusyError,
45
+ AgentNameExhaustedError,
46
+ AgentNotFoundError,
47
+ AgentNotInWorkstreamError,
48
+ AgentPaneDeadError,
49
+ AgentPaneStillAliveError,
50
+ AgentReplacedError,
51
+ AgentRestartedError,
52
+ AgentSendIndeterminateError,
53
+ AgentSendRefusedError,
54
+ AgentSendUnsupportedError,
55
+ AgentSlashCommandUnsupportedError,
56
+ AgentSpawnCliNotFoundError,
57
+ AgentSpawnStartupError,
58
+ SpawnAttemptBusyError,
59
+ SpawnAttemptFailedError,
60
+ SpawnAttemptGuardError,
61
+ SpawnReceiptConflictError,
62
+ SpawnTaskStateError,
63
+ SpawnTrustDialogError
64
+ };
65
+ //# sourceMappingURL=errors-KHOYKD7D.js.map