mulmoclaude 1.19.0 → 1.20.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.
- package/README.md +2 -1
- package/bin/mulmoclaude.js +7 -0
- package/client/assets/{index-B7yEOa95.css → index-Def7sR1B.css} +1 -1
- package/client/assets/{index-C4i9LSUV.js → index-j5_nUbq5.js} +147 -147
- package/client/assets/{marp-Bj6GVklq.js → marp-C8br1NFj.js} +1 -1
- package/client/index.html +2 -2
- package/package.json +10 -10
- package/server/api/routes/files.ts +68 -41
- package/server/api/routes/secrets.ts +138 -0
- package/server/build/mcp-server.mjs +327 -327
- package/server/index.ts +16 -1
- package/server/remoteHost/handlers/googleCalendar.ts +34 -7
- package/server/system/announceGeminiKey.ts +7 -7
- package/server/system/env.ts +26 -3
- package/server/system/geminiKeyGuidance.ts +62 -0
- package/server/system/loadEnv.ts +12 -0
- package/server/system/logs/aaa +737 -0
- package/server/system/logs/bb +446 -0
- package/server/system/secrets.ts +160 -0
- package/server/utils/files/text-extensions.ts +245 -0
- package/server/utils/gemini.ts +2 -2
- package/server/utils/launch-vars.d.mts +5 -0
- package/server/utils/launch-vars.mjs +24 -0
- package/server/utils/launcher/macos/create-app.mjs +1 -0
- package/server/utils/launcher/start.d.mts +2 -0
- package/server/utils/launcher/start.mjs +20 -1
- package/server/utils/launcher/windows/create-launcher.mjs +1 -0
- package/server/utils/text.ts +18 -0
- package/src/App.vue +10 -2
- package/src/components/FileContentRenderer.vue +31 -10
- package/src/components/SettingsGeminiTab.vue +186 -0
- package/src/components/SettingsModal.vue +36 -35
- package/src/composables/useHealth.ts +8 -1
- package/src/composables/useRawFileDownload.ts +84 -0
- package/src/config/apiRoutes.ts +6 -0
- package/src/lang/de.ts +17 -1
- package/src/lang/en.ts +20 -4
- package/src/lang/es.ts +17 -1
- package/src/lang/fr.ts +18 -1
- package/src/lang/ja.ts +17 -1
- package/src/lang/ko.ts +17 -1
- package/src/lang/pt-BR.ts +17 -1
- package/src/lang/zh.ts +17 -1
- package/src/utils/path/posixPath.ts +9 -0
package/README.md
CHANGED
|
@@ -150,7 +150,8 @@ Recommended: ≥ 32 characters of random data (shorter values trigger a startup
|
|
|
150
150
|
|
|
151
151
|
## Optional features
|
|
152
152
|
|
|
153
|
-
- **Gemini API key**
|
|
153
|
+
- **Gemini API key** — enables AI image generation (`generateImage`), audio / video. Free tier suffices for everyday use; get one from [Google AI Studio](https://aistudio.google.com/). Paste it into **Settings → Gemini**: it takes effect immediately, with no restart and no file to find, and it wins over anything in the shell or a `.env`. The older routes still work — `GEMINI_API_KEY` exported in the shell, or in a `.env` — but which `.env` gets read depends on how you started the app (from the icon there is no launch directory, so it reads `~/.env`), which is why the Settings tab names the exact path this launch is reading.
|
|
154
|
+
- **Download any workspace file** — the Files view previews text and renders known media; anything else (and any file too large to preview) offers a direct download of the bytes. This replaces relying on "Open in OS", which spawns a handler on the *server's* desktop — under Docker, WSL2 or a remote host there is none, so those files used to be unreachable from the UI.
|
|
154
155
|
- **Local voice input** (macOS only, opt-in) — `whisper.cpp` for dictating chat messages without sending audio to a cloud API.
|
|
155
156
|
- **Marp slides** — `marp: true` frontmatter on any markdown file renders a slide deck in the canvas with PDF export. Custom themes via `config/marp-themes/<name>.css`.
|
|
156
157
|
- **Auto memory** — the agent maintains a typed memory layout (`conversations/memory/<type>/<topic>.md`) and reads it ambient-style.
|
package/bin/mulmoclaude.js
CHANGED
|
@@ -19,6 +19,7 @@ import { isPortFree, findAvailablePort, MAX_PORT_PROBES } from "../server/utils/
|
|
|
19
19
|
import { parseDevPluginArgs } from "../server/utils/dev-plugin-args.mjs";
|
|
20
20
|
import { cliFlagHelpLines, flagEnvOverrides } from "../server/utils/cli-flags.mjs";
|
|
21
21
|
import { parseEnvFile, mergeLaunchEnv, describeLaunchEnvLoad } from "../server/utils/launch-env.mjs";
|
|
22
|
+
import { LAUNCH_ENV_PATH_VAR } from "../server/utils/launch-vars.mjs";
|
|
22
23
|
import { findLiveInstancePort, instanceGuardMessage, serverPortPathIn, shouldStopForRunningInstance } from "../server/utils/instance-guard.mjs";
|
|
23
24
|
import { resolveWorkspacePath } from "../server/utils/workspace-path.mjs";
|
|
24
25
|
|
|
@@ -282,6 +283,12 @@ delete serverEnv.MULMOCLAUDE_SHADOWED_ENV_KEYS;
|
|
|
282
283
|
if (skippedKeys.length > 0) {
|
|
283
284
|
serverEnv.MULMOCLAUDE_SHADOWED_ENV_KEYS = skippedKeys.join(",");
|
|
284
285
|
}
|
|
286
|
+
// Hand over WHICH `.env` this was, so the server can name it when a key
|
|
287
|
+
// is missing (#2626). Set whether or not the file exists — "put it here"
|
|
288
|
+
// is exactly the case where it doesn't. An icon launch has no launch
|
|
289
|
+
// directory to name, and the server cannot recompute this: its own cwd is
|
|
290
|
+
// the package directory, not the user's.
|
|
291
|
+
serverEnv[LAUNCH_ENV_PATH_VAR] = launchEnvPath;
|
|
285
292
|
// Boolean CLI flags that mirror an env var (#1089 + bundle): inject
|
|
286
293
|
// the corresponding VAR=1 into the spawned server so the flag is
|
|
287
294
|
// equivalent to the env-var prefix. The server reads these via
|