mulmoclaude 0.6.2 → 0.6.3

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 (94) hide show
  1. package/README.md +26 -0
  2. package/bin/mulmoclaude.js +11 -1
  3. package/client/assets/chunk-D8eiyYIV-CW0rPbG2.js +1 -0
  4. package/client/assets/{html2canvas-CDGcmOD3-Bkf2uOth.js → html2canvas-CDGcmOD3-BjwfzAN8.js} +1 -1
  5. package/client/assets/index-Bp1owZ-i.js +5101 -0
  6. package/client/assets/index-c63H1pnd.css +2 -0
  7. package/client/assets/{index.es-DqtpmBm8-D9mAh_KQ.js → index.es-DqtpmBm8-DudYPW7R.js} +1 -1
  8. package/client/assets/material-symbols-outlined-C0dZ3SlO.woff2 +0 -0
  9. package/client/assets/runtime-protocol-vue-BUk5WXSy.js +1 -0
  10. package/client/assets/{runtime-vue-BVUzgYGA.js → runtime-vue-fFYhnNg3.js} +1 -1
  11. package/client/assets/{vue-C8UuIO9J.js → vue-Kqzpl9Vx.js} +1 -1
  12. package/client/assets/vue.runtime.esm-bundler-BTyIdNAI.js +4 -0
  13. package/client/index.html +9 -11
  14. package/package.json +5 -4
  15. package/server/agent/backend/claude-code.ts +34 -0
  16. package/server/agent/backend/fake-echo.ts +370 -0
  17. package/server/agent/backend/index.ts +16 -1
  18. package/server/agent/config.ts +8 -1
  19. package/server/agent/mcpFailureMonitor.ts +167 -0
  20. package/server/agent/mcpPreflight.ts +185 -0
  21. package/server/agent/stream.ts +12 -1
  22. package/server/api/routes/mulmo-script.ts +19 -1
  23. package/server/api/routes/schedulerHandlers.ts +52 -4
  24. package/server/api/routes/sessions.ts +15 -0
  25. package/server/api/routes/skills.ts +263 -0
  26. package/server/events/notifications.ts +19 -91
  27. package/server/index.ts +87 -9
  28. package/server/notifier/macosReminderAdapter.ts +30 -0
  29. package/server/system/announceOptionalDeps.ts +50 -0
  30. package/server/system/config.ts +8 -1
  31. package/server/system/docker.ts +14 -6
  32. package/server/system/env.ts +18 -5
  33. package/server/system/optionalDeps.ts +129 -0
  34. package/server/utils/cli-flags.d.mts +14 -0
  35. package/server/utils/cli-flags.mjs +53 -0
  36. package/server/utils/time.ts +6 -0
  37. package/server/workspace/helps/business.md +2 -2
  38. package/server/workspace/helps/mulmoscript.md +3 -3
  39. package/server/workspace/helps/sandbox.md +2 -2
  40. package/server/workspace/hooks/dispatcher.mjs +1 -1
  41. package/server/workspace/paths.ts +13 -4
  42. package/server/workspace/skills/catalog.ts +355 -0
  43. package/server/workspace/skills/external/catalog.ts +283 -0
  44. package/server/workspace/skills/external/clone.ts +129 -0
  45. package/server/workspace/skills/external/id.ts +194 -0
  46. package/server/workspace/skills/external/install.ts +417 -0
  47. package/server/workspace/skills/external/presets.ts +50 -0
  48. package/server/workspace/skills-preset.ts +29 -17
  49. package/server/workspace/workspace.ts +10 -5
  50. package/src/App.vue +19 -8
  51. package/src/components/RightSidebar.vue +19 -0
  52. package/src/components/StackView.vue +10 -1
  53. package/src/config/apiRoutes.ts +0 -6
  54. package/src/config/roles.ts +2 -0
  55. package/src/lang/de.ts +50 -1
  56. package/src/lang/en.ts +49 -1
  57. package/src/lang/es.ts +49 -1
  58. package/src/lang/fr.ts +49 -1
  59. package/src/lang/ja.ts +49 -1
  60. package/src/lang/ko.ts +49 -1
  61. package/src/lang/pt-BR.ts +49 -1
  62. package/src/lang/zh.ts +49 -1
  63. package/src/plugins/manageSkills/View.vue +795 -30
  64. package/src/plugins/manageSkills/categories.ts +125 -0
  65. package/src/plugins/manageSkills/meta.ts +30 -0
  66. package/src/plugins/markdown/definition.ts +3 -3
  67. package/src/plugins/meta-types.ts +5 -0
  68. package/src/plugins/presentMulmoScript/Preview.vue +3 -3
  69. package/src/plugins/presentMulmoScript/View.vue +157 -33
  70. package/src/plugins/presentMulmoScript/meta.ts +4 -0
  71. package/src/plugins/scheduler/View.vue +45 -9
  72. package/src/plugins/scheduler/calendarDefinition.ts +6 -2
  73. package/src/plugins/scheduler/multiDayHelpers.ts +95 -0
  74. package/src/plugins/spreadsheet/View.vue +3 -3
  75. package/src/types/notification.ts +1 -1
  76. package/src/types/session.ts +6 -0
  77. package/src/types/sse.ts +5 -0
  78. package/src/types/toolCallHistory.ts +7 -0
  79. package/src/utils/agent/eventDispatch.ts +26 -5
  80. package/src/utils/agent/mcpHint.ts +50 -0
  81. package/src/utils/session/sessionEntries.ts +8 -32
  82. package/client/assets/PluginScopedRoot-YjvQq0Nn.js +0 -3
  83. package/client/assets/chunk-CernVdwh.js +0 -1
  84. package/client/assets/chunk-D8eiyYIV-CAXpUwLd.js +0 -1
  85. package/client/assets/index-BwrlMMHr.js +0 -5005
  86. package/client/assets/index-CvvNuegU.css +0 -2
  87. package/client/assets/material-symbols-outlined-BOZVWuR3.woff2 +0 -0
  88. package/client/assets/runtime-protocol-vue-C1To4M3t.js +0 -1
  89. package/client/assets/vue.runtime.esm-bundler-DQ8Kjjui.js +0 -4
  90. package/server/api/routes/notifications.ts +0 -195
  91. package/server/notifier/legacy-adapters.ts +0 -76
  92. package/src/composables/useSelectedResult.ts +0 -49
  93. /package/client/assets/{purify.es-Fx1Nqyry-Dwtk-9WZ.js → purify.es-Fx1Nqyry-B3aL7Uvj.js} +0 -0
  94. /package/client/assets/{typeof-DBp4T-Ny-CSr8wx1e.js → typeof-DBp4T-Ny-Bef7RiR_.js} +0 -0
package/README.md CHANGED
@@ -46,6 +46,32 @@ Express server.
46
46
 
47
47
  Your data lives in `~/mulmoclaude/` (created on first run).
48
48
 
49
+ ## Auth token for long-running bridges
50
+
51
+ By default the server generates a fresh bearer token on every startup
52
+ and writes it to `~/mulmoclaude/.session-token`. Bridges
53
+ (`@mulmobridge/telegram`, `@mulmobridge/discord`, …) read that file
54
+ once at launch — so if you restart the server while a bridge is
55
+ running, the bridge keeps the old token and every API call then
56
+ returns **401**, silently.
57
+
58
+ **Fix**: set `MULMOCLAUDE_AUTH_TOKEN` to the same long random value
59
+ on both the server and the bridge. The server uses it verbatim
60
+ instead of regenerating, so the token survives restarts.
61
+
62
+ ```bash
63
+ # Launch the server with a pinned token
64
+ MULMOCLAUDE_AUTH_TOKEN=long-random-string npx mulmoclaude
65
+
66
+ # Bridge (separate process / machine — same value)
67
+ MULMOCLAUDE_AUTH_TOKEN=long-random-string \
68
+ TELEGRAM_BOT_TOKEN=... \
69
+ npx @mulmobridge/telegram@latest
70
+ ```
71
+
72
+ Recommended: ≥ 32 characters of random data (shorter values trigger a
73
+ startup warning).
74
+
49
75
  ## For developers
50
76
 
51
77
  Publish flow and the full local-test recipe (prepare-dist,
@@ -17,6 +17,7 @@ import { fileURLToPath } from "url";
17
17
  // it's plain JS rather than TypeScript.
18
18
  import { isPortFree, findAvailablePort, MAX_PORT_PROBES } from "../server/utils/port.mjs";
19
19
  import { parseDevPluginArgs } from "../server/utils/dev-plugin-args.mjs";
20
+ import { cliFlagHelpLines, flagEnvOverrides } from "../server/utils/cli-flags.mjs";
20
21
 
21
22
  const require = createRequire(import.meta.url);
22
23
 
@@ -106,6 +107,7 @@ Options:
106
107
  (repeatable). Path can be absolute or relative to cwd.
107
108
  The dir must have package.json and dist/index.js
108
109
  (run \`yarn build\` or \`yarn dev\` in the plugin first).
110
+ ${cliFlagHelpLines()}
109
111
  --version Show version
110
112
  --help Show this help
111
113
  `);
@@ -113,7 +115,7 @@ Options:
113
115
  }
114
116
 
115
117
  if (args.includes("--version")) {
116
- console.log("mulmoclaude 0.6.2");
118
+ console.log("mulmoclaude 0.6.3");
117
119
  process.exit(0);
118
120
  }
119
121
 
@@ -221,6 +223,14 @@ const serverEnv = {
221
223
  if (devPluginPaths.length > 0) {
222
224
  serverEnv.MULMOCLAUDE_DEV_PLUGINS = devPluginPaths.join(PATH_DELIMITER);
223
225
  }
226
+ // Boolean CLI flags that mirror an env var (#1089 + bundle): inject
227
+ // the corresponding VAR=1 into the spawned server so the flag is
228
+ // equivalent to the env-var prefix. The server reads these via
229
+ // server/system/env.ts.
230
+ for (const [flagEnv, value] of Object.entries(flagEnvOverrides(args))) {
231
+ serverEnv[flagEnv] = value;
232
+ log(`[flag] ${flagEnv}=${value}`);
233
+ }
224
234
 
225
235
  const server = spawn(process.execPath, [tsxCli, SERVER_ENTRY], {
226
236
  cwd: PKG_DIR,
@@ -0,0 +1 @@
1
+ import"./vue.runtime.esm-bundler-BTyIdNAI.js";var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{o as n,c as t};