@jcode.labs/mimir 0.4.0 → 0.4.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 +50 -17
- package/dist/cli.js +78 -3
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +3 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +72 -0
- package/dist/doctor.js.map +1 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +7 -1
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/skill.js +8 -1
- package/dist/skill.js.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -8
- package/skills/mimir/SKILL.md +5 -2
- package/skills/mimir-audio-summary/SKILL.md +22 -16
- package/skills/mimir-audio-summary/forge-voice.sh +44 -47
- package/CHANGELOG.md +0 -47
- package/CONTRIBUTING.md +0 -28
- package/SECURITY-HARDENING.md +0 -194
- package/SECURITY.md +0 -21
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://github.com/jcode-works/jcode-mimir/actions/workflows/ci.yml)
|
|
4
4
|
[](https://github.com/jcode-works/jcode-mimir/actions/workflows/codeql.yml)
|
|
5
5
|
[](https://www.npmjs.com/package/@jcode.labs/mimir)
|
|
6
|
-
[](
|
|
6
|
+
[](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
|
|
31
|
-
|
|
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
|
|
|
@@ -48,6 +50,17 @@ Suggested GitHub Sponsors tiers:
|
|
|
48
50
|
|
|
49
51
|
Early public package. APIs may evolve before `1.0.0`.
|
|
50
52
|
|
|
53
|
+
## Documentation
|
|
54
|
+
|
|
55
|
+
- [Getting started](https://github.com/jcode-works/jcode-mimir/blob/main/docs/getting-started.md):
|
|
56
|
+
install Mimir and complete the first local search.
|
|
57
|
+
- [CLI reference](https://github.com/jcode-works/jcode-mimir/blob/main/docs/cli-reference.md):
|
|
58
|
+
every `kb` and `mimir-tts` command with practical usage notes.
|
|
59
|
+
- [Troubleshooting](https://github.com/jcode-works/jcode-mimir/blob/main/docs/troubleshooting.md):
|
|
60
|
+
common install, indexing, retrieval, audio, and release issues.
|
|
61
|
+
- [Security hardening](https://github.com/jcode-works/jcode-mimir/blob/main/SECURITY-HARDENING.md):
|
|
62
|
+
offline operation, threat model, secure deletion limits, and release verification.
|
|
63
|
+
|
|
51
64
|
## What Mimir Is For
|
|
52
65
|
|
|
53
66
|
- Build a local RAG knowledge base inside any repository.
|
|
@@ -56,8 +69,8 @@ Early public package. APIs may evolve before `1.0.0`.
|
|
|
56
69
|
retrieval layer.
|
|
57
70
|
- Retrieve grounded local evidence through CLI, library calls, MCP tools, or the bundled agent
|
|
58
71
|
skills so your chosen AI agent can produce cited summaries.
|
|
59
|
-
- Optionally create listenable WAV summaries with `kb audio`, `@jcode.labs/mimir-tts`, and
|
|
60
|
-
bundled `mimir-audio-summary` skill.
|
|
72
|
+
- Optionally create listenable MP3 or WAV summaries with `kb audio`, `@jcode.labs/mimir-tts`, and
|
|
73
|
+
the bundled `mimir-audio-summary` skill.
|
|
61
74
|
|
|
62
75
|
Mimir is not a hosted SaaS, not a remote vector database, and not a certified high-assurance system.
|
|
63
76
|
For regulated or state-grade environments, pair it with encrypted disks, controlled machines, release
|
|
@@ -79,7 +92,7 @@ context.
|
|
|
79
92
|
| Build an internal knowledge base | "What is the policy for incident review?", "Who owns this process?", "Which source says that?" |
|
|
80
93
|
| Prepare meetings or decisions | "Give me a one-page briefing.", "What is missing before deciding?", "List action items and evidence." |
|
|
81
94
|
| 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
|
|
95
|
+
| Generate audio briefings | "Create a listenable high-quality or offline summary of the current dossier." |
|
|
83
96
|
|
|
84
97
|
## Requirements
|
|
85
98
|
|
|
@@ -90,8 +103,11 @@ context.
|
|
|
90
103
|
default.
|
|
91
104
|
- Generated answers are intentionally outside Mimir core. Use Claude, Codex, OpenAI, a local model
|
|
92
105
|
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.
|
|
94
|
-
|
|
106
|
+
- Optional audio summaries use the separate `@jcode.labs/mimir-tts` workspace package. For the
|
|
107
|
+
highest quality, install the external `edge-tts` CLI and render Edge MP3 output with
|
|
108
|
+
`fr-FR-DeniseNeural`. For confidential or air-gapped content, use the Transformers.js WAV path
|
|
109
|
+
with `--engine transformers --offline`; it does not require Python, ffmpeg, Piper, XTTS, or a
|
|
110
|
+
local server.
|
|
95
111
|
|
|
96
112
|
## Install From npm
|
|
97
113
|
|
|
@@ -139,12 +155,14 @@ Initialize the local project config:
|
|
|
139
155
|
|
|
140
156
|
```bash
|
|
141
157
|
pnpm exec kb init
|
|
158
|
+
pnpm exec kb doctor
|
|
142
159
|
```
|
|
143
160
|
|
|
144
161
|
Add private documents under `private/`, then run:
|
|
145
162
|
|
|
146
163
|
```bash
|
|
147
164
|
pnpm exec kb ingest
|
|
165
|
+
pnpm exec kb doctor
|
|
148
166
|
pnpm exec kb search "vendor invoice status"
|
|
149
167
|
pnpm exec kb ask "What do the documents prove?"
|
|
150
168
|
pnpm exec kb audit
|
|
@@ -156,7 +174,9 @@ With npm, use `npx` after installing the package:
|
|
|
156
174
|
|
|
157
175
|
```bash
|
|
158
176
|
npx kb init
|
|
177
|
+
npx kb doctor
|
|
159
178
|
npx kb ingest
|
|
179
|
+
npx kb doctor
|
|
160
180
|
npx kb search "vendor invoice status"
|
|
161
181
|
npx kb ask "What do the documents prove?"
|
|
162
182
|
npx kb audit
|
|
@@ -289,28 +309,40 @@ Use `embeddingProvider: "local-hash"` for a no-model offline workflow. Use
|
|
|
289
309
|
`embeddingProvider: "transformers"` with preloaded model files for semantic offline retrieval.
|
|
290
310
|
Generated answers should come from a trusted external agent or model runtime.
|
|
291
311
|
|
|
292
|
-
### Generate
|
|
312
|
+
### Generate An Audio Briefing
|
|
293
313
|
|
|
294
|
-
Mimir includes a plug-and-play
|
|
314
|
+
Mimir includes a plug-and-play text-to-speech path for listenable summaries. For the same quality
|
|
315
|
+
path as the global Voice Forge skill, install `edge-tts` and render MP3:
|
|
295
316
|
|
|
296
317
|
```bash
|
|
297
318
|
pnpm exec kb audio --doctor
|
|
298
|
-
|
|
319
|
+
pipx install edge-tts
|
|
320
|
+
pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt \
|
|
321
|
+
--engine edge \
|
|
322
|
+
--out .mimir/audio/project-summary.mp3
|
|
299
323
|
```
|
|
300
324
|
|
|
301
|
-
The
|
|
302
|
-
|
|
303
|
-
|
|
325
|
+
The Edge path uses the online Microsoft Edge TTS service through the `edge-tts` CLI. Use it only
|
|
326
|
+
when sending the narration text to that service is acceptable.
|
|
327
|
+
|
|
328
|
+
By default, `kb audio` uses the Transformers.js WAV path. For confidential or air-gapped work,
|
|
329
|
+
preload Transformers.js-compatible model files and render WAV offline:
|
|
304
330
|
|
|
305
331
|
```bash
|
|
306
|
-
pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt
|
|
332
|
+
pnpm exec kb audio /tmp/MIMIR-SUMMARY-project.txt \
|
|
333
|
+
--engine transformers \
|
|
334
|
+
--offline \
|
|
335
|
+
--model-path .mimir/models/tts \
|
|
336
|
+
--out .mimir/audio/project-summary.wav
|
|
307
337
|
```
|
|
308
338
|
|
|
309
339
|
The standalone package can also be installed directly:
|
|
310
340
|
|
|
311
341
|
```bash
|
|
312
342
|
pnpm add -D @jcode.labs/mimir-tts
|
|
313
|
-
pnpm exec mimir-tts render /tmp/MIMIR-SUMMARY-project.txt
|
|
343
|
+
pnpm exec mimir-tts render /tmp/MIMIR-SUMMARY-project.txt \
|
|
344
|
+
--engine edge \
|
|
345
|
+
--out .mimir/audio/project-summary.mp3
|
|
314
346
|
```
|
|
315
347
|
|
|
316
348
|
## Agent Skills And MCP
|
|
@@ -405,7 +437,8 @@ pnpm exec kb destroy-index --yes
|
|
|
405
437
|
```
|
|
406
438
|
|
|
407
439
|
For air-gapped operation, release verification, secure deletion limits, and threat model details,
|
|
408
|
-
read
|
|
440
|
+
read
|
|
441
|
+
[`SECURITY-HARDENING.md`](https://github.com/jcode-works/jcode-mimir/blob/main/SECURITY-HARDENING.md).
|
|
409
442
|
|
|
410
443
|
## Supported Files
|
|
411
444
|
|
package/dist/cli.js
CHANGED
|
@@ -3,6 +3,7 @@ import { Command } from "commander";
|
|
|
3
3
|
import pc from "picocolors";
|
|
4
4
|
import { loadConfig } from "./config.js";
|
|
5
5
|
import { destroyIndex } from "./destroy.js";
|
|
6
|
+
import { doctor } from "./doctor.js";
|
|
6
7
|
import { audit, ingest } from "./ingest.js";
|
|
7
8
|
import { initProject } from "./init.js";
|
|
8
9
|
import { serveMcp } from "./mcp.js";
|
|
@@ -18,6 +19,18 @@ program
|
|
|
18
19
|
.name("kb")
|
|
19
20
|
.description("Local-first RAG knowledge base for private project documents.")
|
|
20
21
|
.version(VERSION);
|
|
22
|
+
program
|
|
23
|
+
.command("doctor")
|
|
24
|
+
.description("Diagnose setup, index freshness, privacy posture, and next steps.")
|
|
25
|
+
.option("--json", "Print machine-readable JSON.")
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
const report = await doctor(process.cwd());
|
|
28
|
+
if (options.json) {
|
|
29
|
+
console.log(JSON.stringify(report, null, 2));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
printDoctor(report);
|
|
33
|
+
});
|
|
21
34
|
program
|
|
22
35
|
.command("init")
|
|
23
36
|
.description("Create .kb config files and private/ document folder in the current repository.")
|
|
@@ -31,6 +44,12 @@ program
|
|
|
31
44
|
for (const file of created) {
|
|
32
45
|
console.log(` - ${file}`);
|
|
33
46
|
}
|
|
47
|
+
console.log("");
|
|
48
|
+
console.log(pc.cyan("Next steps:"));
|
|
49
|
+
console.log(" 1. Add supported documents under private/");
|
|
50
|
+
console.log(" 2. Run `pnpm exec kb ingest`");
|
|
51
|
+
console.log(" 3. Run `pnpm exec kb doctor`");
|
|
52
|
+
console.log(' 4. Query with `pnpm exec kb search "your question"`');
|
|
34
53
|
});
|
|
35
54
|
program
|
|
36
55
|
.command("ingest")
|
|
@@ -171,11 +190,14 @@ program
|
|
|
171
190
|
.command("audio")
|
|
172
191
|
.description("Render a narration text file to local speech audio with Mimir TTS.")
|
|
173
192
|
.argument("[text-file]", "Narration text file to render.")
|
|
174
|
-
.option("-o, --out <path>", "Output WAV path.")
|
|
193
|
+
.option("-o, --out <path>", "Output MP3 or WAV path.")
|
|
194
|
+
.option("--engine <engine>", "TTS engine: auto, edge, or transformers.")
|
|
175
195
|
.option("--model <id>", "Transformers.js TTS model ID.")
|
|
176
196
|
.option("--model-path <path>", "Local model/cache path.")
|
|
177
|
-
.option("--offline", "
|
|
197
|
+
.option("--offline", "Force the Transformers.js local/offline WAV path.")
|
|
178
198
|
.option("--allow-remote-models", "Explicitly allow remote model downloads.")
|
|
199
|
+
.option("--voice <voice>", "Edge voice. Defaults to fr-FR-DeniseNeural.")
|
|
200
|
+
.option("--rate <rate>", "Edge rate. Defaults to +0%.")
|
|
179
201
|
.option("--speaker-embeddings <path>", "Optional model-specific speaker embedding path or URL.")
|
|
180
202
|
.option("--speed <number>", "Optional model-specific speech speed.", parseNumber)
|
|
181
203
|
.option("--doctor", "Show TTS runtime readiness instead of rendering.")
|
|
@@ -195,11 +217,14 @@ program
|
|
|
195
217
|
const renderOptions = {
|
|
196
218
|
cwd: process.cwd(),
|
|
197
219
|
textFile,
|
|
220
|
+
engine: audioEngine(options),
|
|
198
221
|
};
|
|
199
222
|
addOption(renderOptions, "outputPath", options.out);
|
|
200
223
|
addOption(renderOptions, "model", options.model);
|
|
201
224
|
addOption(renderOptions, "modelPath", options.modelPath);
|
|
202
225
|
addOption(renderOptions, "allowRemoteModels", audioAllowRemoteModels(options));
|
|
226
|
+
addOption(renderOptions, "voice", options.voice);
|
|
227
|
+
addOption(renderOptions, "rate", options.rate);
|
|
203
228
|
addOption(renderOptions, "speakerEmbeddings", options.speakerEmbeddings);
|
|
204
229
|
addOption(renderOptions, "speed", options.speed);
|
|
205
230
|
const result = await tts.renderSpeech(renderOptions);
|
|
@@ -230,8 +255,19 @@ program
|
|
|
230
255
|
console.log(`Skill path: ${result.skillPath}`);
|
|
231
256
|
console.log(`Optional audio skill path: ${result.audioSkillPath}`);
|
|
232
257
|
console.log(`MCP config example: ${result.mcpConfigPath}`);
|
|
258
|
+
console.log("");
|
|
259
|
+
console.log("Next steps:");
|
|
260
|
+
console.log(" 1. Add the MCP config from .mimir/mcp.json to your agent if it supports MCP.");
|
|
261
|
+
console.log(" 2. Load .mimir/skills/mimir/ in agents that support skill folders.");
|
|
262
|
+
console.log(" 3. Run `pnpm exec kb doctor` before relying on retrieved context.");
|
|
233
263
|
});
|
|
234
|
-
|
|
264
|
+
try {
|
|
265
|
+
await program.parseAsync(process.argv);
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
console.error(pc.red(error instanceof Error ? error.message : String(error)));
|
|
269
|
+
process.exitCode = 1;
|
|
270
|
+
}
|
|
235
271
|
function parsePositiveInt(value) {
|
|
236
272
|
const parsed = Number.parseInt(value, 10);
|
|
237
273
|
if (!Number.isInteger(parsed) || parsed <= 0) {
|
|
@@ -273,6 +309,45 @@ function audioAllowRemoteModels(options) {
|
|
|
273
309
|
}
|
|
274
310
|
return undefined;
|
|
275
311
|
}
|
|
312
|
+
function audioEngine(options) {
|
|
313
|
+
if (options.offline) {
|
|
314
|
+
return "transformers";
|
|
315
|
+
}
|
|
316
|
+
if (options.engine === undefined) {
|
|
317
|
+
if (options.out?.toLowerCase().endsWith(".mp3")) {
|
|
318
|
+
throw new Error("MP3 output uses online Edge TTS. Re-run with `--engine edge` only when sending narration text to Edge TTS is acceptable.");
|
|
319
|
+
}
|
|
320
|
+
return "transformers";
|
|
321
|
+
}
|
|
322
|
+
if (options.engine === "auto" || options.engine === "edge" || options.engine === "transformers") {
|
|
323
|
+
return options.engine;
|
|
324
|
+
}
|
|
325
|
+
throw new Error("Expected --engine to be auto, edge, or transformers.");
|
|
326
|
+
}
|
|
327
|
+
function printDoctor(report) {
|
|
328
|
+
console.log(`projectRoot=${report.projectRoot}`);
|
|
329
|
+
console.log(`initialized=${report.initialized}`);
|
|
330
|
+
console.log(`ready=${report.ready}`);
|
|
331
|
+
console.log(`embeddingProvider=${report.embeddingProvider}`);
|
|
332
|
+
console.log(`transformersAllowRemoteModels=${report.transformersAllowRemoteModels}`);
|
|
333
|
+
console.log(`redactionEnabled=${report.redactionEnabled}`);
|
|
334
|
+
console.log(`accessLog=${report.accessLog}`);
|
|
335
|
+
console.log(`supportedFiles=${report.supportedFiles}`);
|
|
336
|
+
console.log(`indexedFiles=${report.indexedFiles}`);
|
|
337
|
+
console.log(`chunksIndexed=${report.chunksIndexed}`);
|
|
338
|
+
console.log(`missingFromIndex=${report.missingFromIndex}`);
|
|
339
|
+
console.log(`staleInIndex=${report.staleInIndex}`);
|
|
340
|
+
console.log(`securityWarnings=${report.securityWarnings.length}`);
|
|
341
|
+
if (report.securityWarnings.length > 0) {
|
|
342
|
+
for (const warning of report.securityWarnings) {
|
|
343
|
+
console.log(pc.yellow(`warning: ${warning}`));
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
console.log("nextSteps:");
|
|
347
|
+
for (const step of report.nextSteps) {
|
|
348
|
+
console.log(` - ${step}`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
276
351
|
function printMaybeJson(value, json) {
|
|
277
352
|
if (json) {
|
|
278
353
|
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":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,wBAAsB,MAAM,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0CvE"}
|
package/dist/doctor.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { findProjectRoot, loadConfig } from "./config.js";
|
|
4
|
+
import { CONFIG_PATH } from "./defaults.js";
|
|
5
|
+
import { audit } from "./ingest.js";
|
|
6
|
+
import { securityAudit } from "./security.js";
|
|
7
|
+
import { countRows } from "./store.js";
|
|
8
|
+
export async function doctor(cwd = process.cwd()) {
|
|
9
|
+
const projectRoot = findProjectRoot(cwd);
|
|
10
|
+
const initialized = existsSync(path.join(projectRoot, CONFIG_PATH));
|
|
11
|
+
const config = await loadConfig(cwd);
|
|
12
|
+
const [auditReport, securityReport, chunksIndexed] = await Promise.all([
|
|
13
|
+
audit(projectRoot),
|
|
14
|
+
securityAudit(projectRoot),
|
|
15
|
+
countRows(config),
|
|
16
|
+
]);
|
|
17
|
+
const nextSteps = nextActions({
|
|
18
|
+
initialized,
|
|
19
|
+
supportedFiles: auditReport.supportedFiles.length,
|
|
20
|
+
chunksIndexed,
|
|
21
|
+
missingFromIndex: auditReport.missingFromIndex.length,
|
|
22
|
+
staleInIndex: auditReport.staleInIndex.length,
|
|
23
|
+
warnings: securityReport.warnings.length,
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
projectRoot: config.projectRoot,
|
|
27
|
+
initialized,
|
|
28
|
+
rawDir: config.rawDir,
|
|
29
|
+
storageDir: config.storageDir,
|
|
30
|
+
embeddingProvider: config.embeddingProvider,
|
|
31
|
+
transformersAllowRemoteModels: config.transformersAllowRemoteModels,
|
|
32
|
+
redactionEnabled: config.redaction.enabled,
|
|
33
|
+
accessLog: config.accessLog,
|
|
34
|
+
supportedFiles: auditReport.supportedFiles.length,
|
|
35
|
+
indexedFiles: auditReport.indexedFiles.length,
|
|
36
|
+
chunksIndexed,
|
|
37
|
+
missingFromIndex: auditReport.missingFromIndex.length,
|
|
38
|
+
staleInIndex: auditReport.staleInIndex.length,
|
|
39
|
+
securityWarnings: securityReport.warnings,
|
|
40
|
+
ready: initialized &&
|
|
41
|
+
chunksIndexed > 0 &&
|
|
42
|
+
auditReport.missingFromIndex.length === 0 &&
|
|
43
|
+
auditReport.staleInIndex.length === 0 &&
|
|
44
|
+
securityReport.warnings.length === 0,
|
|
45
|
+
nextSteps,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function nextActions(input) {
|
|
49
|
+
const steps = [];
|
|
50
|
+
if (!input.initialized) {
|
|
51
|
+
steps.push("Run `pnpm exec kb init` to create .kb/config.json and private/.");
|
|
52
|
+
return steps;
|
|
53
|
+
}
|
|
54
|
+
if (input.supportedFiles === 0) {
|
|
55
|
+
steps.push("Add supported files under private/ or list extra source paths in .kb/sources.txt.");
|
|
56
|
+
return steps;
|
|
57
|
+
}
|
|
58
|
+
if (input.chunksIndexed === 0 || input.missingFromIndex > 0 || input.staleInIndex > 0) {
|
|
59
|
+
steps.push("Run `pnpm exec kb ingest` to rebuild the local index.");
|
|
60
|
+
steps.push("Run `pnpm exec kb audit` to verify missingFromIndex=0 and staleInIndex=0.");
|
|
61
|
+
}
|
|
62
|
+
if (input.warnings > 0) {
|
|
63
|
+
steps.push("Run `pnpm exec kb security-audit --strict` and fix the reported warnings.");
|
|
64
|
+
}
|
|
65
|
+
if (steps.length === 0) {
|
|
66
|
+
steps.push('Run `pnpm exec kb search "your question"` to retrieve source passages.');
|
|
67
|
+
steps.push('Run `pnpm exec kb ask "your question"` to produce cited retrieval context.');
|
|
68
|
+
steps.push("Run `pnpm exec kb install-skill` if an AI agent should use the local knowledge base.");
|
|
69
|
+
}
|
|
70
|
+
return steps;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIpD,eAAO,MAAM,4BAA4B,aA+CvC,CAAA;AAEF,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA4C3E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAE/D"}
|
package/dist/files.js
CHANGED
|
@@ -3,6 +3,8 @@ import { existsSync } from "node:fs";
|
|
|
3
3
|
import { readFile, stat } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fg from "fast-glob";
|
|
6
|
+
import { PRIVATE_DIR } from "./defaults.js";
|
|
7
|
+
const GENERATED_SOURCE_README = `${PRIVATE_DIR}/README.md`;
|
|
6
8
|
export const DEFAULT_SUPPORTED_EXTENSIONS = new Set([
|
|
7
9
|
".atom",
|
|
8
10
|
".c",
|
|
@@ -67,6 +69,10 @@ export async function listSourceFiles(config) {
|
|
|
67
69
|
ignore: ["**/.git/**", "**/node_modules/**", "**/.kb/**", "**/.mimir/**"],
|
|
68
70
|
});
|
|
69
71
|
for (const absolutePath of entries) {
|
|
72
|
+
const relativePath = path.relative(config.projectRoot, absolutePath);
|
|
73
|
+
if (relativePath === GENERATED_SOURCE_README) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
70
76
|
const extension = path.extname(absolutePath).toLowerCase();
|
|
71
77
|
if (!supportedExtensions(config).has(extension)) {
|
|
72
78
|
continue;
|
|
@@ -75,7 +81,7 @@ export async function listSourceFiles(config) {
|
|
|
75
81
|
const buffer = await readFile(absolutePath);
|
|
76
82
|
files.set(absolutePath, {
|
|
77
83
|
absolutePath,
|
|
78
|
-
relativePath
|
|
84
|
+
relativePath,
|
|
79
85
|
source: path.relative(root, absolutePath) || path.basename(absolutePath),
|
|
80
86
|
extension,
|
|
81
87
|
bytes: info.size,
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { loadConfig } from "./config.js";
|
|
2
2
|
export { destroyIndex } from "./destroy.js";
|
|
3
|
+
export { doctor } from "./doctor.js";
|
|
3
4
|
export { audit, ingest } from "./ingest.js";
|
|
4
5
|
export { initProject } from "./init.js";
|
|
5
6
|
export { serveMcp } from "./mcp.js";
|
|
@@ -7,6 +8,6 @@ export { ask, search } from "./query.js";
|
|
|
7
8
|
export { redactText } from "./redaction.js";
|
|
8
9
|
export { securityAudit } from "./security.js";
|
|
9
10
|
export { bundledSkillPath, installSkill } from "./skill.js";
|
|
10
|
-
export type { AskResult, AuditReport, Config, DestroyIndexResult, IngestResult, SearchResult, SecurityAuditReport, } from "./types.js";
|
|
11
|
+
export type { AskResult, AuditReport, Config, DestroyIndexResult, DoctorReport, IngestResult, SearchResult, SecurityAuditReport, } from "./types.js";
|
|
11
12
|
export { VERSION } from "./version.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC3D,YAAY,EACV,SAAS,EACT,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,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,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC3D,YAAY,EACV,SAAS,EACT,WAAW,EACX,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,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,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAW3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/skill.js
CHANGED
|
@@ -74,7 +74,8 @@ ${audioSkillPath}
|
|
|
74
74
|
\`\`\`
|
|
75
75
|
|
|
76
76
|
Use it only when the user asks for a listenable summary. It renders generated audio under ignored
|
|
77
|
-
local Mimir state by default
|
|
77
|
+
local Mimir state by default. Use Transformers.js WAV for confidential content and Edge MP3 only
|
|
78
|
+
when online TTS is explicitly acceptable.
|
|
78
79
|
|
|
79
80
|
## MCP
|
|
80
81
|
|
|
@@ -90,6 +91,12 @@ Use the MCP server when your agent supports MCP tools. The server command is:
|
|
|
90
91
|
pnpm exec kb serve-mcp
|
|
91
92
|
\`\`\`
|
|
92
93
|
|
|
94
|
+
Before relying on retrieved context, run:
|
|
95
|
+
|
|
96
|
+
\`\`\`bash
|
|
97
|
+
pnpm exec kb doctor
|
|
98
|
+
\`\`\`
|
|
99
|
+
|
|
93
100
|
`;
|
|
94
101
|
}
|
|
95
102
|
//# sourceMappingURL=skill.js.map
|
package/dist/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -104,6 +104,24 @@ export interface DestroyIndexResult {
|
|
|
104
104
|
removed: boolean;
|
|
105
105
|
note: string;
|
|
106
106
|
}
|
|
107
|
+
export interface DoctorReport {
|
|
108
|
+
projectRoot: string;
|
|
109
|
+
initialized: boolean;
|
|
110
|
+
rawDir: string;
|
|
111
|
+
storageDir: string;
|
|
112
|
+
embeddingProvider: EmbeddingProvider;
|
|
113
|
+
transformersAllowRemoteModels: boolean;
|
|
114
|
+
redactionEnabled: boolean;
|
|
115
|
+
accessLog: boolean;
|
|
116
|
+
supportedFiles: number;
|
|
117
|
+
indexedFiles: number;
|
|
118
|
+
chunksIndexed: number;
|
|
119
|
+
missingFromIndex: number;
|
|
120
|
+
staleInIndex: number;
|
|
121
|
+
securityWarnings: string[];
|
|
122
|
+
ready: boolean;
|
|
123
|
+
nextSteps: string[];
|
|
124
|
+
}
|
|
107
125
|
export interface SecurityAuditReport {
|
|
108
126
|
projectRoot: string;
|
|
109
127
|
zeroTelemetry: true;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.4.
|
|
1
|
+
export declare const VERSION = "0.4.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.4.
|
|
1
|
+
export const VERSION = "0.4.2";
|
|
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.
|
|
3
|
+
"version": "0.4.2",
|
|
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.
|
|
68
|
+
"@jcode.labs/mimir-tts": "0.4.2"
|
|
74
69
|
},
|
|
75
70
|
"devDependencies": {
|
|
76
71
|
"@types/html-to-text": "^9.0.4",
|
package/skills/mimir/SKILL.md
CHANGED
|
@@ -39,6 +39,7 @@ private/ # raw documents to ingest
|
|
|
39
39
|
From the repository root:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
+
pnpm exec kb doctor
|
|
42
43
|
pnpm exec kb status
|
|
43
44
|
pnpm exec kb security-audit
|
|
44
45
|
```
|
|
@@ -91,13 +92,15 @@ After documents are added or changed:
|
|
|
91
92
|
|
|
92
93
|
```bash
|
|
93
94
|
pnpm exec kb ingest
|
|
95
|
+
pnpm exec kb doctor
|
|
94
96
|
pnpm exec kb audit
|
|
95
97
|
pnpm exec kb security-audit
|
|
96
98
|
pnpm exec kb status
|
|
97
99
|
```
|
|
98
100
|
|
|
99
|
-
|
|
100
|
-
audit should not show warnings before relying on Mimir for
|
|
101
|
+
`kb doctor` should show `ready=true` before relying on the index. The audit must show no missing or
|
|
102
|
+
stale supported files, and the security audit should not show warnings before relying on Mimir for
|
|
103
|
+
sensitive work.
|
|
101
104
|
|
|
102
105
|
## Query Workflow
|
|
103
106
|
|
|
@@ -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
|
|
21
|
-
- Use `--offline` when model files are already present and remote model
|
|
20
|
+
- Prefer `pnpm exec kb audio` or `pnpm exec mimir-tts render` for plug-and-play output.
|
|
21
|
+
- Use `--engine transformers --offline` when model files are already present and remote model
|
|
22
|
+
loading is not allowed.
|
|
23
|
+
- Use `--engine edge` only when online TTS is acceptable and global Voice Forge quality is required.
|
|
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
|
-
|
|
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
|
-
--
|
|
94
|
+
--engine edge \
|
|
95
|
+
--out .mimir/audio/MIMIR-SUMMARY-<subject-kebab>.mp3
|
|
93
96
|
```
|
|
94
97
|
|
|
95
|
-
|
|
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
|
-
--
|
|
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
|
|
104
|
-
|
|
105
|
-
|
|
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
|
|
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
|
-
|
|
123
|
+
Helper engine selection:
|
|
117
124
|
|
|
118
|
-
- `auto`:
|
|
119
|
-
|
|
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
|
|
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
|
|
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).
|
package/SECURITY-HARDENING.md
DELETED
|
@@ -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.
|