@jcode.labs/mimir 0.4.0 → 0.4.1

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
@@ -3,7 +3,7 @@
3
3
  [![CI](https://github.com/jcode-works/jcode-mimir/actions/workflows/ci.yml/badge.svg)](https://github.com/jcode-works/jcode-mimir/actions/workflows/ci.yml)
4
4
  [![CodeQL](https://github.com/jcode-works/jcode-mimir/actions/workflows/codeql.yml/badge.svg)](https://github.com/jcode-works/jcode-mimir/actions/workflows/codeql.yml)
5
5
  [![npm](https://img.shields.io/npm/v/@jcode.labs/mimir)](https://www.npmjs.com/package/@jcode.labs/mimir)
6
- [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
6
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jcode-works/jcode-mimir/blob/main/LICENSE)
7
7
 
8
8
  Open-source, sovereign local RAG for confidential datasets and AI agents.
9
9
 
@@ -27,8 +27,10 @@ Built by Jean-Baptiste Thery, freelance full-stack/AI tooling engineer at JCode
27
27
  Mimir is a public open-source project under the MIT License. It is designed to be
28
28
  inspectable, forkable, and usable without a JCode Labs account.
29
29
 
30
- Contributions are welcome through pull requests. Start with [`CONTRIBUTING.md`](./CONTRIBUTING.md).
31
- Security reports should stay private and follow the policy in [`SECURITY.md`](./SECURITY.md).
30
+ Contributions are welcome through pull requests. Start with
31
+ [`CONTRIBUTING.md`](https://github.com/jcode-works/jcode-mimir/blob/main/CONTRIBUTING.md).
32
+ Security reports should stay private and follow the policy in
33
+ [`SECURITY.md`](https://github.com/jcode-works/jcode-mimir/blob/main/SECURITY.md).
32
34
 
33
35
  ## Sponsors
34
36
 
@@ -56,8 +58,8 @@ Early public package. APIs may evolve before `1.0.0`.
56
58
  retrieval layer.
57
59
  - Retrieve grounded local evidence through CLI, library calls, MCP tools, or the bundled agent
58
60
  skills so your chosen AI agent can produce cited summaries.
59
- - Optionally create listenable WAV summaries with `kb audio`, `@jcode.labs/mimir-tts`, and the
60
- bundled `mimir-audio-summary` skill.
61
+ - Optionally create listenable MP3 or WAV summaries with `kb audio`, `@jcode.labs/mimir-tts`, and
62
+ the bundled `mimir-audio-summary` skill.
61
63
 
62
64
  Mimir is not a hosted SaaS, not a remote vector database, and not a certified high-assurance system.
63
65
  For regulated or state-grade environments, pair it with encrypted disks, controlled machines, release
@@ -79,7 +81,7 @@ context.
79
81
  | Build an internal knowledge base | "What is the policy for incident review?", "Who owns this process?", "Which source says that?" |
80
82
  | Prepare meetings or decisions | "Give me a one-page briefing.", "What is missing before deciding?", "List action items and evidence." |
81
83
  | Ask questions over offline documents | "Which files mention local-only operation?", "What evidence supports this claim?" |
82
- | Generate audio briefings | "Create a listenable summary of the current dossier using offline TTS." |
84
+ | Generate audio briefings | "Create a listenable high-quality or offline summary of the current dossier." |
83
85
 
84
86
  ## Requirements
85
87
 
@@ -90,8 +92,11 @@ context.
90
92
  default.
91
93
  - Generated answers are intentionally outside Mimir core. Use Claude, Codex, OpenAI, a local model
92
94
  MCP server, or another trusted model runtime to synthesize from Mimir's cited context.
93
- - Optional audio summaries use the separate `@jcode.labs/mimir-tts` workspace package. It renders
94
- WAV files with Transformers.js and does not require Python, ffmpeg, Piper, XTTS, or a local server.
95
+ - Optional audio summaries use the separate `@jcode.labs/mimir-tts` workspace package. For the
96
+ highest quality, install the external `edge-tts` CLI and render Edge MP3 output with
97
+ `fr-FR-DeniseNeural`. For confidential or air-gapped content, use the Transformers.js WAV path
98
+ with `--engine transformers --offline`; it does not require Python, ffmpeg, Piper, XTTS, or a
99
+ local server.
95
100
 
96
101
  ## Install From npm
97
102
 
@@ -289,28 +294,40 @@ Use `embeddingProvider: "local-hash"` for a no-model offline workflow. Use
289
294
  `embeddingProvider: "transformers"` with preloaded model files for semantic offline retrieval.
290
295
  Generated answers should come from a trusted external agent or model runtime.
291
296
 
292
- ### Generate A Local Audio Briefing
297
+ ### Generate An Audio Briefing
293
298
 
294
- Mimir includes a plug-and-play JS text-to-speech path for listenable summaries:
299
+ Mimir includes a plug-and-play text-to-speech path for listenable summaries. For the same quality
300
+ path as the global Voice Forge skill, install `edge-tts` and render MP3:
295
301
 
296
302
  ```bash
297
303
  pnpm exec kb audio --doctor
298
- pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt --out .mimir/audio/project-summary.wav
304
+ pipx install edge-tts
305
+ pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt \
306
+ --engine edge \
307
+ --out .mimir/audio/project-summary.mp3
299
308
  ```
300
309
 
301
- The command writes WAV output locally and does not require Python or ffmpeg. The first render can
302
- download a public Transformers.js-compatible model into `.mimir/models/tts`; the narration text is
303
- processed locally. For confidential air-gapped work, preload model files and run:
310
+ The Edge path uses the online Microsoft Edge TTS service through the `edge-tts` CLI. Use it only
311
+ when sending the narration text to that service is acceptable.
312
+
313
+ For confidential or air-gapped work, preload Transformers.js-compatible model files and render WAV
314
+ offline:
304
315
 
305
316
  ```bash
306
- pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt --out .mimir/audio/project-summary.wav --offline
317
+ pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt \
318
+ --engine transformers \
319
+ --offline \
320
+ --model-path .mimir/models/tts \
321
+ --out .mimir/audio/project-summary.wav
307
322
  ```
308
323
 
309
324
  The standalone package can also be installed directly:
310
325
 
311
326
  ```bash
312
327
  pnpm add -D @jcode.labs/mimir-tts
313
- pnpm exec mimir-tts render /tmp/MIMIR-SUMMARY-project.txt --out .mimir/audio/project-summary.wav
328
+ pnpm exec mimir-tts render /tmp/MIMIR-SUMMARY-project.txt \
329
+ --engine edge \
330
+ --out .mimir/audio/project-summary.mp3
314
331
  ```
315
332
 
316
333
  ## Agent Skills And MCP
@@ -405,7 +422,8 @@ pnpm exec kb destroy-index --yes
405
422
  ```
406
423
 
407
424
  For air-gapped operation, release verification, secure deletion limits, and threat model details,
408
- read [`SECURITY-HARDENING.md`](./SECURITY-HARDENING.md).
425
+ read
426
+ [`SECURITY-HARDENING.md`](https://github.com/jcode-works/jcode-mimir/blob/main/SECURITY-HARDENING.md).
409
427
 
410
428
  ## Supported Files
411
429
 
package/dist/cli.js CHANGED
@@ -171,11 +171,14 @@ program
171
171
  .command("audio")
172
172
  .description("Render a narration text file to local speech audio with Mimir TTS.")
173
173
  .argument("[text-file]", "Narration text file to render.")
174
- .option("-o, --out <path>", "Output WAV path.")
174
+ .option("-o, --out <path>", "Output MP3 or WAV path.")
175
+ .option("--engine <engine>", "TTS engine: auto, edge, or transformers.")
175
176
  .option("--model <id>", "Transformers.js TTS model ID.")
176
177
  .option("--model-path <path>", "Local model/cache path.")
177
- .option("--offline", "Disable remote model downloads.")
178
+ .option("--offline", "Force the Transformers.js local/offline WAV path.")
178
179
  .option("--allow-remote-models", "Explicitly allow remote model downloads.")
180
+ .option("--voice <voice>", "Edge voice. Defaults to fr-FR-DeniseNeural.")
181
+ .option("--rate <rate>", "Edge rate. Defaults to +0%.")
179
182
  .option("--speaker-embeddings <path>", "Optional model-specific speaker embedding path or URL.")
180
183
  .option("--speed <number>", "Optional model-specific speech speed.", parseNumber)
181
184
  .option("--doctor", "Show TTS runtime readiness instead of rendering.")
@@ -197,9 +200,12 @@ program
197
200
  textFile,
198
201
  };
199
202
  addOption(renderOptions, "outputPath", options.out);
203
+ addOption(renderOptions, "engine", audioEngine(options));
200
204
  addOption(renderOptions, "model", options.model);
201
205
  addOption(renderOptions, "modelPath", options.modelPath);
202
206
  addOption(renderOptions, "allowRemoteModels", audioAllowRemoteModels(options));
207
+ addOption(renderOptions, "voice", options.voice);
208
+ addOption(renderOptions, "rate", options.rate);
203
209
  addOption(renderOptions, "speakerEmbeddings", options.speakerEmbeddings);
204
210
  addOption(renderOptions, "speed", options.speed);
205
211
  const result = await tts.renderSpeech(renderOptions);
@@ -273,6 +279,18 @@ function audioAllowRemoteModels(options) {
273
279
  }
274
280
  return undefined;
275
281
  }
282
+ function audioEngine(options) {
283
+ if (options.offline) {
284
+ return "transformers";
285
+ }
286
+ if (options.engine === undefined) {
287
+ return undefined;
288
+ }
289
+ if (options.engine === "auto" || options.engine === "edge" || options.engine === "transformers") {
290
+ return options.engine;
291
+ }
292
+ throw new Error("Expected --engine to be auto, edge, or transformers.");
293
+ }
276
294
  function printMaybeJson(value, json) {
277
295
  if (json) {
278
296
  console.log(JSON.stringify(value, null, 2));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,0BAA0B,GAAG,GAAG,CAAA;AACtC,MAAM,gBAAgB,GAAG,uBAAuB,CAAA;AAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iFAAiF,CAAC;KAC9F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;QAC7C,OAAM;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oFAAoF,CAAC;KACjG,MAAM,CAAC,WAAW,EAAE,qEAAqE,CAAC;KAC1F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,KAAK,CACN,sBAAsB,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,YAAY,eAAe,MAAM,CAAC,UAAU,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CACvK,CACF,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;KACpC,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,gBAAgB,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAA0B,EAAE,EAAE;IAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAA;QAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,GAAG,CACT,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,MAAM,CAAC,UAAU,aAAa,QAAQ,EAAE,CACxG,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uEAAuE,CAAC;KACpF,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;KAC1C,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,EAAE,gBAAgB,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAA0B,EAAE,EAAE;IAC1D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IACnC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;QACnF,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;IAEzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAA;IACpF,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACtE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,UAAU,EAAE,6CAA6C,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,OAA6C,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAA;QAChE,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAA;QACxE,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,SAAS,CAAC,6BAA6B,EAAE,CAAC,CAAA;QAC9F,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;QAC9D,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC7E,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAA;QAC/E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,OAAO,EAAE,iDAAiD,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAA;QACpE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oEAAoE,CAAC;KACjF,QAAQ,CAAC,aAAa,EAAE,gCAAgC,CAAC;KACzD,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;KACrD,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;KACvD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;KACxE,MAAM,CAAC,uBAAuB,EAAE,0CAA0C,CAAC;KAC3E,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;KACtD,MAAM,CAAC,6BAA6B,EAAE,wDAAwD,CAAC;KAC/F,MAAM,CAAC,kBAAkB,EAAE,uCAAuC,EAAE,WAAW,CAAC;KAChF,MAAM,CAAC,UAAU,EAAE,kDAAkD,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,OAAqB,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAA;IAE3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAA;QACjC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAA;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,aAAa,GAAqB;QACtC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ;KACT,CAAA;IACD,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACnD,SAAS,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAChD,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACxD,SAAS,CAAC,aAAa,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAChD,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,SAAS,CAAC,aAAa,EAAE,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACxE,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAEhD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IACpD,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CACV,qFAAqF,CACtF;KACA,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA;AAEJ,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CACL,qBAAqB,EACrB,oDAAoD,EACpD,eAAe,CAChB;KACA,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACvF,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;AAC5D,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtC,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB;IACxC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAA;AACnF,CAAC;AAoCD,KAAK,UAAU,OAAO;IACpB,MAAM,MAAM,GAAY,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACtD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,uCAAuC,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;QAClC,cAAc,IAAI,KAAK;QACvB,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU,CACzC,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAqB;IACnD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,OAAqB;IACxC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,cAAc,CAAA;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAChG,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAyB;IAC/D,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAM;IACR,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACxC,CAAC;QACD,OAAM;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,SAAS,CAChB,MAAS,EACT,GAAM,EACN,KAAuB;IAEvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;AACH,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.0";
1
+ export declare const VERSION = "0.4.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.4.0";
1
+ export const VERSION = "0.4.1";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jcode.labs/mimir",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Mimir: open-source sovereign local RAG for confidential datasets and AI agents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -48,12 +48,7 @@
48
48
  "dist",
49
49
  "skills",
50
50
  "examples",
51
- "README.md",
52
- "LICENSE",
53
- "CONTRIBUTING.md",
54
- "SECURITY-HARDENING.md",
55
- "CHANGELOG.md",
56
- "SECURITY.md"
51
+ "README.md"
57
52
  ],
58
53
  "publishConfig": {
59
54
  "access": "public"
@@ -70,7 +65,7 @@
70
65
  "unpdf": "^1.4.0",
71
66
  "yaml": "^2.8.1",
72
67
  "zod": "^4.1.13",
73
- "@jcode.labs/mimir-tts": "0.4.0"
68
+ "@jcode.labs/mimir-tts": "0.4.1"
74
69
  },
75
70
  "devDependencies": {
76
71
  "@types/html-to-text": "^9.0.4",
@@ -17,8 +17,10 @@ The knowledge base stays local; the final audio is a generated artifact and must
17
17
 
18
18
  - Treat the source documents, retrieved passages, generated narration, and final audio as sensitive.
19
19
  - Do not use online TTS for confidential content unless the user explicitly allows it.
20
- - Prefer `pnpm exec kb audio` or `pnpm exec mimir-tts render` for plug-and-play local WAV output.
21
- - Use `--offline` when model files are already present and remote model loading is not allowed.
20
+ - Prefer `pnpm exec kb audio` or `pnpm exec mimir-tts render` for plug-and-play output.
21
+ - Use `--engine edge` only when online TTS is acceptable and global Voice Forge quality is required.
22
+ - Use `--engine transformers --offline` when model files are already present and remote model
23
+ loading is not allowed.
22
24
  - Write the narration text to a temp file outside the repository, such as `/tmp/MIMIR-SUMMARY-topic.txt`.
23
25
  - Render audio under `.mimir/audio/` by default. This directory is ignored by Git when Mimir is installed.
24
26
  - Never stage or commit generated audio, temporary text, WAV, AIFF, or intermediate files.
@@ -85,27 +87,32 @@ Create the output directory and write the narration to a temp file outside the r
85
87
  mkdir -p .mimir/audio
86
88
  ```
87
89
 
88
- Then render with the default Mimir TTS path:
90
+ For global Voice Forge quality on non-confidential text, render with Edge MP3:
89
91
 
90
92
  ```bash
91
93
  pnpm exec kb audio /tmp/MIMIR-SUMMARY-<subject-kebab>.txt \
92
- --out .mimir/audio/MIMIR-SUMMARY-<subject-kebab>.wav
94
+ --engine edge \
95
+ --out .mimir/audio/MIMIR-SUMMARY-<subject-kebab>.mp3
93
96
  ```
94
97
 
95
- For air-gapped operation, preload the model files under `.mimir/models/tts` and run:
98
+ The Edge path uses the online Edge TTS service through the `edge-tts` CLI. Use it only when sending
99
+ the narration text to that service is acceptable.
100
+
101
+ For confidential or air-gapped operation, preload the model files under `.mimir/models/tts` and run:
96
102
 
97
103
  ```bash
98
104
  pnpm exec kb audio /tmp/MIMIR-SUMMARY-<subject-kebab>.txt \
99
- --out .mimir/audio/MIMIR-SUMMARY-<subject-kebab>.wav \
100
- --offline
105
+ --engine transformers \
106
+ --offline \
107
+ --model-path .mimir/models/tts \
108
+ --out .mimir/audio/MIMIR-SUMMARY-<subject-kebab>.wav
101
109
  ```
102
110
 
103
- The default renderer uses `@jcode.labs/mimir-tts` and Transformers.js. It does not require Python,
104
- ffmpeg, Piper, XTTS, or a local TTS server. The first non-offline render can download public model
105
- files into `.mimir/models/tts`, but the narration text is processed locally.
111
+ The Transformers.js path does not require Python, ffmpeg, Piper, XTTS, or a local TTS server. The
112
+ first non-offline Transformers render can download public model files into `.mimir/models/tts`, but
113
+ the narration text is processed locally.
106
114
 
107
- Use the legacy voice-forge helper only when the user explicitly wants MP3 output or an engine not
108
- covered by Mimir TTS:
115
+ Use the voice-forge helper only when the user explicitly wants XTTS, macOS `say`, or Piper:
109
116
 
110
117
  ```bash
111
118
  OUT_MP3="<repo-root>/.mimir/audio/MIMIR-SUMMARY-<subject-kebab>.mp3" \
@@ -113,14 +120,13 @@ OUT_MP3="<repo-root>/.mimir/audio/MIMIR-SUMMARY-<subject-kebab>.mp3" \
113
120
  bash <this-skill-dir>/forge-voice.sh /tmp/MIMIR-SUMMARY-<subject-kebab>.txt
114
121
  ```
115
122
 
116
- Engine selection:
123
+ Helper engine selection:
117
124
 
118
- - `auto`: confidentiality-first order: XTTS, macOS `say`, Piper, then online Edge only when
119
- `MIMIR_ALLOW_ONLINE_TTS=1`.
125
+ - `auto`: Edge first when installed, then XTTS, macOS `say`, and Piper.
126
+ - `edge`: online Edge TTS with the global Voice Forge default voice.
120
127
  - `xtts`: local Coqui XTTS-v2.
121
128
  - `say`: local macOS speech engine, converted to MP3 with `ffmpeg`.
122
129
  - `piper`: local neural TTS, converted to MP3 with `ffmpeg`.
123
- - `edge`: online Edge TTS. Use only with explicit user approval for non-sensitive text.
124
130
 
125
131
  Voice can be selected with `TTS_VOICE`. Speed for Edge can be selected with `TTS_RATE`.
126
132
 
@@ -2,11 +2,13 @@
2
2
  # Render a Mimir audio-summary text file to MP3. The text is a throwaway intermediate written
3
3
  # outside the repository by the skill. The final audio should normally be written under .mimir/audio.
4
4
  #
5
- # Engine via TTS_ENGINE (auto|xtts|say|piper|edge); default "auto" is confidentiality-first:
5
+ # Engine via TTS_ENGINE (auto|edge|xtts|say|piper); default "auto" matches the global Voice Forge
6
+ # quality path:
7
+ # edge - edge-tts neural voices, single request (online). Default; clean on normal text.
8
+ # Set TTS_SEGMENT=1 to render sentence-by-sentence for long-text truncation.
6
9
  # xtts - local Coqui XTTS-v2 when installed.
7
10
  # say - macOS built-in, offline, clean but robotic.
8
11
  # piper - local neural TTS.
9
- # edge - online Edge TTS only when TTS_ENGINE=edge or MIMIR_ALLOW_ONLINE_TTS=1.
10
12
  #
11
13
  # Usage: forge-voice.sh <text-file> [voice]
12
14
  # Env: OUT_MP3 explicit mp3 output path
@@ -16,7 +18,6 @@
16
18
  # TTS_SEGMENT=1 edge: render sentence-by-sentence
17
19
  # XTTS_SPEAKER xtts preset speaker (default Ana Florence)
18
20
  # PIPER_MODEL piper onnx model path
19
- # MIMIR_ALLOW_ONLINE_TTS=1 allow edge in auto mode
20
21
  # KEEP_TEXT=1 keep the source text file after a successful render
21
22
  set -euo pipefail
22
23
 
@@ -60,6 +61,44 @@ to_mp3() {
60
61
  exit 1
61
62
  }
62
63
 
64
+ if [ "$ENGINE" = "edge" ] || [ "$ENGINE" = "auto" ]; then
65
+ if command -v edge-tts >/dev/null 2>&1; then
66
+ OUT="${OUTBASE}.mp3"
67
+ SPLIT="$SCRIPT_DIR/split-lines.py"
68
+ voice="${VOICE:-fr-FR-DeniseNeural}"
69
+ rate="${TTS_RATE:-+0%}"
70
+ if [ "${TTS_SEGMENT:-0}" = "1" ] && [ -f "$SPLIT" ] \
71
+ && command -v ffmpeg >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1; then
72
+ TMP="$(mktemp -d)"
73
+ ffmpeg -y -loglevel error -f lavfi -i anullsrc=r=24000:cl=mono -t 0.28 \
74
+ -c:a libmp3lame -q:a 4 "$TMP/sil.mp3"
75
+ i=0
76
+ : > "$TMP/list.txt"
77
+ while IFS= read -r line; do
78
+ [ -z "$line" ] && continue
79
+ i=$((i + 1))
80
+ if edge-tts --text "$line" --voice "$voice" --rate="$rate" \
81
+ --write-media "$TMP/seg_$i.mp3" >/dev/null 2>&1; then
82
+ printf "file '%s'\n" "$TMP/seg_$i.mp3" >> "$TMP/list.txt"
83
+ printf "file '%s'\n" "$TMP/sil.mp3" >> "$TMP/list.txt"
84
+ else
85
+ echo "warn: edge-tts failed on a sentence, skipping it" >&2
86
+ fi
87
+ done < <(python3 "$SPLIT" "$TXT")
88
+ ffmpeg -y -loglevel error -f concat -safe 0 -i "$TMP/list.txt" \
89
+ -ac 1 -c:a libmp3lame -q:a 4 "$OUT"
90
+ rm -rf "$TMP"
91
+ finish "$OUT"
92
+ fi
93
+ edge-tts --file "$TXT" --voice "$voice" --rate="$rate" --write-media "$OUT" >/dev/null
94
+ finish "$OUT"
95
+ fi
96
+ if [ "$ENGINE" = "edge" ]; then
97
+ echo "error: TTS_ENGINE=edge but edge-tts not installed (pipx install edge-tts)" >&2
98
+ exit 1
99
+ fi
100
+ fi
101
+
63
102
  if [ "$ENGINE" = "xtts" ] || { [ "$ENGINE" = "auto" ] && xtts_ready; }; then
64
103
  if ! xtts_ready; then
65
104
  echo "error: TTS_ENGINE=xtts but venv/helper missing ($XTTS_PY)" >&2
@@ -98,56 +137,14 @@ if [ "$ENGINE" = "piper" ] || [ "$ENGINE" = "auto" ]; then
98
137
  fi
99
138
  fi
100
139
 
101
- if [ "$ENGINE" = "edge" ] || { [ "$ENGINE" = "auto" ] && [ "${MIMIR_ALLOW_ONLINE_TTS:-0}" = "1" ]; }; then
102
- if command -v edge-tts >/dev/null 2>&1; then
103
- OUT="${OUTBASE}.mp3"
104
- SPLIT="$SCRIPT_DIR/split-lines.py"
105
- voice="${VOICE:-fr-FR-DeniseNeural}"
106
- rate="${TTS_RATE:-+0%}"
107
- if [ "${TTS_SEGMENT:-0}" = "1" ] && [ -f "$SPLIT" ] \
108
- && command -v ffmpeg >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1; then
109
- TMP="$(mktemp -d)"
110
- ffmpeg -y -loglevel error -f lavfi -i anullsrc=r=24000:cl=mono -t 0.28 \
111
- -c:a libmp3lame -q:a 4 "$TMP/sil.mp3"
112
- i=0
113
- : > "$TMP/list.txt"
114
- while IFS= read -r line; do
115
- [ -z "$line" ] && continue
116
- i=$((i + 1))
117
- if edge-tts --text "$line" --voice "$voice" --rate="$rate" \
118
- --write-media "$TMP/seg_$i.mp3" >/dev/null 2>&1; then
119
- printf "file '%s'\n" "$TMP/seg_$i.mp3" >> "$TMP/list.txt"
120
- printf "file '%s'\n" "$TMP/sil.mp3" >> "$TMP/list.txt"
121
- else
122
- echo "warn: edge-tts failed on a sentence, skipping it" >&2
123
- fi
124
- done < <(python3 "$SPLIT" "$TXT")
125
- ffmpeg -y -loglevel error -f concat -safe 0 -i "$TMP/list.txt" \
126
- -ac 1 -c:a libmp3lame -q:a 4 "$OUT"
127
- rm -rf "$TMP"
128
- finish "$OUT"
129
- fi
130
- edge-tts --file "$TXT" --voice "$voice" --rate="$rate" --write-media "$OUT" >/dev/null
131
- finish "$OUT"
132
- fi
133
- if [ "$ENGINE" = "edge" ]; then
134
- echo "error: TTS_ENGINE=edge but edge-tts not installed (pipx install edge-tts)" >&2
135
- exit 1
136
- fi
137
- fi
138
-
139
140
  cat >&2 <<'EOF'
140
- error: no offline TTS engine available. Install one:
141
+ error: no TTS engine available. Install one:
142
+ edge-tts (cleanest, online): pipx install edge-tts
141
143
  XTTS-v2 (local):
142
144
  uv venv --python 3.11 ~/.local/share/voice-forge/xtts
143
145
  uv pip install --python ~/.local/share/voice-forge/xtts/bin/python \
144
146
  coqui-tts 'transformers>=4.57,<5' 'torch==2.8.*' 'torchaudio==2.8.*'
145
147
  piper (local): pip install piper-tts
146
148
  ffmpeg: required for local engine MP3 conversion
147
-
148
- Online fallback:
149
- pipx install edge-tts
150
- MIMIR_ALLOW_ONLINE_TTS=1 TTS_ENGINE=auto ...
151
- or explicitly set TTS_ENGINE=edge for non-sensitive text.
152
149
  EOF
153
150
  exit 127
package/CHANGELOG.md DELETED
@@ -1,47 +0,0 @@
1
- # Changelog
2
-
3
- ## 0.4.0 - 2026-06-28
4
-
5
- - Reposition Mimir as sovereign local RAG for confidential datasets and AI agents.
6
- - Expand default ingestion to common text, Office/OpenDocument, data, config, log, and source-code
7
- file types.
8
- - Add `includeExtensions` / `KB_INCLUDE_EXTENSIONS` for custom UTF-8 text file extensions.
9
- - Add the optional `mimir-audio-summary` bundled skill for confidential audio summaries.
10
- - Install both the main Mimir skill and optional audio-summary skill with `kb install-skill`.
11
- - Improve agent guidance for deep multi-query retrieval before synthesis.
12
- - Make Mimir core retrieval-only: `kb ask` now returns cited context for external agents or LLMs
13
- instead of generating answers internally.
14
- - Add optional Transformers.js semantic embeddings through `embeddingProvider: "transformers"`.
15
- - Remove Ollama providers and keep `embeddingProvider: "local-hash"` as the no-model default.
16
- - Move the repository to a simple pnpm workspace monorepo without adding Turbo.
17
- - Move the core `@jcode.labs/mimir` package into `packages/mimir`.
18
- - Add `@jcode.labs/mimir-tts` for plug-and-play JS/ONNX WAV rendering without Python or ffmpeg.
19
- - Add `kb audio` and update the audio-summary skill to use Mimir TTS before advanced fallback
20
- engines.
21
-
22
- ## 0.3.0 - 2026-06-28
23
-
24
- - Add confidentiality hardening defaults: built-in redaction before indexing, metadata-only access
25
- logs, and bounded MCP retrieval.
26
- - Add `kb security-audit` for zero-telemetry, provider, redaction, gitignore, storage, and
27
- MCP posture checks.
28
- - Add `kb destroy-index --yes` to remove generated vector indexes.
29
- - Add release verification artifacts: npm tarball, SHA256 checksums, SBOM, and manifest.
30
- - Document air-gapped operation, threat model, MCP hardening, and secure deletion limits.
31
-
32
- ## 0.2.1 - 2026-06-28
33
-
34
- - Add GitHub Sponsors funding metadata and document suggested sponsor tiers.
35
- - Add maintainer positioning for Jean-Baptiste Thery and JCode Labs in the README.
36
- - Make `kb init` and `kb install-skill` automatically keep `.kb/` and `.mimir/`
37
- ignored by Git.
38
-
39
- ## 0.2.0 - 2026-06-28
40
-
41
- - Rename public product branding to Mimir while keeping the JCode Labs npm scope.
42
- - Add the bundled portable `mimir` agent skill.
43
- - Add the MCP stdio server with `mimir_status`, `mimir_search`, `mimir_ask`, and
44
- `mimir_audit`.
45
- - Add production smoke coverage for the built CLI and MCP server.
46
- - Add Biome, commitlint, publint, CodeQL, Dependabot grouping, protected npm publishing,
47
- and open-source contribution/security documentation.
package/CONTRIBUTING.md DELETED
@@ -1,28 +0,0 @@
1
- # Contributing
2
-
3
- Mimir is an open-source project under the MIT License. Issues and pull requests are welcome.
4
-
5
- ## Development
6
-
7
- Use Node.js 20+ and pnpm:
8
-
9
- ```bash
10
- pnpm install
11
- pnpm validate
12
- ```
13
-
14
- `pnpm validate` runs Biome, TypeScript, Vitest, the production CLI/MCP smoke test, and npm
15
- package metadata checks.
16
-
17
- ## Pull Requests
18
-
19
- - Open pull requests against `main`.
20
- - Keep changes focused and include tests or smoke coverage for behavior changes.
21
- - Do not commit private documents, generated vector stores, environment files, tokens, or
22
- credentials.
23
- - Use conventional commit messages such as `feat: add source parser` or
24
- `fix: handle empty index`.
25
-
26
- ## Security
27
-
28
- Do not report vulnerabilities through public issues. Follow [`SECURITY.md`](./SECURITY.md).
@@ -1,194 +0,0 @@
1
- # Mimir Security Hardening
2
-
3
- Mimir is a sovereign local RAG knowledge base for confidential project documents and datasets. It is
4
- built to minimize data movement, but it is not a certified high-assurance system.
5
-
6
- ## Current Guarantees
7
-
8
- - Zero telemetry: Mimir does not send usage analytics or document content to JCode Labs.
9
- - Retrieval-only core: Mimir does not call a chat model or generate LLM answers.
10
- - No-model retrieval mode: `embeddingProvider: "local-hash"` can ingest, search, and return cited
11
- passages without a model server.
12
- - Optional semantic embeddings: `embeddingProvider: "transformers"` uses Transformers.js, with
13
- remote model loading disabled by default through `transformersAllowRemoteModels: false`.
14
- - Redaction before indexing: built-in DLP patterns redact common secrets and identifiers before
15
- chunks are embedded and stored.
16
- - Metadata-only access logs: access logs contain action metadata and query hashes, not raw
17
- queries or retrieved text.
18
- - Generated local state is ignored by Git: `.kb/`, `.mimir/`, and `private/**` are ignored by
19
- default.
20
- - MCP is read-focused: destructive tools are not exposed over MCP, and MCP retrieval is capped by
21
- `mcpMaxTopK`.
22
- - Optional audio summaries use `kb audio` / `@jcode.labs/mimir-tts` for local WAV rendering with
23
- Transformers.js. They do not require Python, ffmpeg, Piper, XTTS, or a local TTS server.
24
- - npm releases are published with provenance from the protected GitHub Actions workflow.
25
- - Release artifacts include a package tarball, SHA256 checksums, SBOM, and manifest.
26
-
27
- ## Threat Model
28
-
29
- Mimir protects against accidental repository leaks, accidental built-in LLM usage, accidental online
30
- TTS usage for generated summaries, accidental secret indexing, and weak release traceability.
31
-
32
- Mimir does not protect against a compromised local machine, malicious dependencies already present
33
- in the runtime, a user with filesystem access to the same checkout, or forensic recovery from an
34
- unencrypted disk.
35
-
36
- ## At-Rest Encryption
37
-
38
- Native encrypted LanceDB storage is not implemented yet. For sensitive environments, put the
39
- repository and `.kb/` on an encrypted volume:
40
-
41
- - macOS: FileVault or an encrypted APFS volume.
42
- - Linux: LUKS, fscrypt, or an encrypted VM disk.
43
- - Containers/VMs: mount `.kb/` on an encrypted host volume.
44
-
45
- `kb destroy-index --yes` removes generated index files, but secure deletion on SSDs and copy-on-write
46
- filesystems cannot be guaranteed without encrypted storage and key destruction.
47
-
48
- ## Air-Gapped Operation
49
-
50
- Prepare artifacts on an internet-connected build machine:
51
-
52
- ```bash
53
- pnpm install --frozen-lockfile
54
- pnpm build
55
- pnpm release:artifacts
56
- ```
57
-
58
- Move the generated tarballs from `release-artifacts/` into the offline environment and install them:
59
-
60
- ```bash
61
- pnpm add -D ./jcode.labs-mimir-tts-<version>.tgz ./jcode.labs-mimir-<version>.tgz
62
- pnpm exec kb init
63
- pnpm exec kb ingest
64
- ```
65
-
66
- For semantic embeddings, preload the Transformers.js-compatible embedding model files inside the
67
- offline environment under the configured `embeddingModelPath`. For audio, preload the TTS model
68
- files under `.mimir/models/tts` and render with `pnpm exec kb audio <text-file> --offline`.
69
-
70
- ## Zero Network Posture
71
-
72
- Default no-model config:
73
-
74
- ```json
75
- {
76
- "embeddingProvider": "local-hash"
77
- }
78
- ```
79
-
80
- Optional semantic config:
81
-
82
- ```json
83
- {
84
- "embeddingProvider": "transformers",
85
- "embeddingModel": "mixedbread-ai/mxbai-embed-xsmall-v1",
86
- "embeddingModelPath": ".mimir/models",
87
- "transformersAllowRemoteModels": false
88
- }
89
- ```
90
-
91
- The local-hash mode performs lexical/hash retrieval only. It is useful for smoke tests,
92
- dependency-light offline workflows, and handing cited passages to another trusted LLM. It is not
93
- equivalent to model semantic retrieval.
94
-
95
- Keep `transformersAllowRemoteModels` false for confidential or air-gapped work. If it is true,
96
- Transformers.js may download model files from Hugging Face during model loading.
97
-
98
- Run:
99
-
100
- ```bash
101
- pnpm exec kb security-audit --strict
102
- ```
103
-
104
- ## DLP Redaction
105
-
106
- Built-in redaction is enabled by default for common secret and identifier shapes: private keys,
107
- JWTs, API tokens, emails, IBANs, and card-like numbers.
108
-
109
- Custom patterns can be added in `.kb/config.json`:
110
-
111
- ```json
112
- {
113
- "redaction": {
114
- "enabled": true,
115
- "builtIn": true,
116
- "patterns": [
117
- {
118
- "name": "internal_case_id",
119
- "pattern": "CASE-[0-9]+",
120
- "replacement": "[CASE]"
121
- }
122
- ]
123
- }
124
- }
125
- ```
126
-
127
- Redaction changes the indexed text, not the raw files under `private/`.
128
-
129
- ## Optional Audio Summaries
130
-
131
- `kb install-skill` installs an optional `mimir-audio-summary` skill. It is designed for listenable
132
- briefings from a local Mimir index. The default renderer is `kb audio`, backed by
133
- `@jcode.labs/mimir-tts` and Transformers.js.
134
-
135
- Confidentiality defaults:
136
-
137
- - narration text is written to a temp file outside the repository;
138
- - generated WAV audio should be written under `.mimir/audio/`;
139
- - `.mimir/` is ignored by Git;
140
- - Python, ffmpeg, Piper, XTTS, and local TTS servers are not required for the default path;
141
- - the first online-enabled render may download public model weights into `.mimir/models/tts`, but
142
- the narration text is processed locally;
143
- - `--offline` disables remote model loading and requires preloaded model files.
144
-
145
- Generated audio can still contain sensitive information. Treat it like a derived confidential
146
- document.
147
-
148
- ## MCP Hardening
149
-
150
- MCP gives an agent access to retrieved private context. Use it only for agents running under the
151
- same trust boundary as the repository.
152
-
153
- Mimir MCP defaults:
154
-
155
- - read-focused tools only;
156
- - no index deletion tool exposed over MCP;
157
- - bounded retrieval through `mcpMaxTopK`;
158
- - metadata-only access logging.
159
-
160
- For team use, prefer one checkout per user or per role. Mimir does not implement RBAC.
161
-
162
- ## Release Verification
163
-
164
- The protected npm workflow runs validation, generates release artifacts, and publishes both
165
- workspace packages with provenance:
166
-
167
- ```bash
168
- pnpm --dir packages/mimir-tts publish --access public --provenance --no-git-checks
169
- pnpm --dir packages/mimir publish --access public --provenance --no-git-checks
170
- ```
171
-
172
- Release artifacts include:
173
-
174
- - npm tarballs for `@jcode.labs/mimir-tts` and `@jcode.labs/mimir`;
175
- - `SHA256SUMS`;
176
- - CycloneDX SBOM;
177
- - `release-manifest.json`.
178
-
179
- Verify checksums offline with:
180
-
181
- ```bash
182
- sha256sum -c SHA256SUMS
183
- ```
184
-
185
- On macOS:
186
-
187
- ```bash
188
- shasum -a 256 -c SHA256SUMS
189
- ```
190
-
191
- ## External Audit Status
192
-
193
- No external security audit has been completed yet. Treat Mimir as useful hardening for private
194
- developer workflows, not as military-grade certified software.
package/SECURITY.md DELETED
@@ -1,21 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported Versions
4
-
5
- Only the latest published version of `@jcode.labs/mimir` receives security fixes.
6
-
7
- ## Reporting A Vulnerability
8
-
9
- Please report vulnerabilities privately by email:
10
-
11
- ```plain text
12
- contact@jcode.works
13
- ```
14
-
15
- Do not open public issues for vulnerabilities, leaked secrets, credential exposure,
16
- or private document disclosure.
17
-
18
- ## Data Boundary
19
-
20
- Mimir is designed to index local project documents. Raw project documents,
21
- `.kb/storage/`, environment files, and credentials must remain outside commits.