@daniel156161/prism 0.2.92 → 0.2.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +0 -50
  2. package/dist/pi/pi-context-files.d.ts +6 -0
  3. package/dist/pi/pi-context-files.js +17 -0
  4. package/dist/pi/pi-context-files.js.map +1 -0
  5. package/dist/pi/pi-extensions.d.ts +0 -1
  6. package/dist/pi/pi-extensions.js +7 -22
  7. package/dist/pi/pi-extensions.js.map +1 -1
  8. package/dist/pi/pi-npm-extension-entry.d.ts +2 -0
  9. package/dist/pi/pi-npm-extension-entry.js +74 -0
  10. package/dist/pi/pi-npm-extension-entry.js.map +1 -0
  11. package/dist/pi/pi-package.js +4 -0
  12. package/dist/pi/pi-package.js.map +1 -1
  13. package/dist/pi/pi-patch-context-files.d.ts +12 -0
  14. package/dist/pi/pi-patch-context-files.js +46 -0
  15. package/dist/pi/pi-patch-context-files.js.map +1 -0
  16. package/dist/pi/pi-patch-interactive.js +5 -1
  17. package/dist/pi/pi-patch-interactive.js.map +1 -1
  18. package/dist/pi/plan-mode-tools.d.ts +13 -0
  19. package/dist/pi/plan-mode-tools.js +54 -0
  20. package/dist/pi/plan-mode-tools.js.map +1 -0
  21. package/dist/prism-extensions/core/mex-anchor.d.ts +9 -0
  22. package/dist/prism-extensions/core/mex-anchor.js +29 -0
  23. package/dist/prism-extensions/core/mex-anchor.js.map +1 -0
  24. package/dist/prism-extensions/core/mex-cli.d.ts +68 -0
  25. package/dist/prism-extensions/core/mex-cli.js +183 -0
  26. package/dist/prism-extensions/core/mex-cli.js.map +1 -0
  27. package/dist/prism-extensions/core/mex-graph-db.d.ts +26 -0
  28. package/dist/prism-extensions/core/mex-graph-db.js +69 -0
  29. package/dist/prism-extensions/core/mex-graph-db.js.map +1 -0
  30. package/dist/prism-extensions/integrations/ai-memory-system.js +27 -6
  31. package/dist/prism-extensions/integrations/ai-memory-system.js.map +1 -1
  32. package/dist/prism-extensions/integrations/mex-memory.d.ts +21 -0
  33. package/dist/prism-extensions/integrations/mex-memory.js +231 -0
  34. package/dist/prism-extensions/integrations/mex-memory.js.map +1 -0
  35. package/dist/prism-extensions/tools/builtin-tools.js +2 -0
  36. package/dist/prism-extensions/tools/builtin-tools.js.map +1 -1
  37. package/dist/prism-extensions/tools/mex-tools.d.ts +2 -0
  38. package/dist/prism-extensions/tools/mex-tools.js +78 -0
  39. package/dist/prism-extensions/tools/mex-tools.js.map +1 -0
  40. package/dist/prism-extensions/ui/toolbar.d.ts +2 -0
  41. package/dist/prism-extensions/ui/toolbar.js +10 -1
  42. package/dist/prism-extensions/ui/toolbar.js.map +1 -1
  43. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +15 -0
  44. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +6 -6
  45. package/package.json +5 -3
  46. package/src/prism-extensions/README.md +10 -1
  47. package/src/prism-extensions/core/mex-anchor.ts +29 -0
  48. package/src/prism-extensions/core/mex-cli.ts +217 -0
  49. package/src/prism-extensions/core/mex-graph-db.ts +76 -0
  50. package/src/prism-extensions/integrations/ai-memory-system.ts +30 -6
  51. package/src/prism-extensions/integrations/mex-memory.ts +264 -0
  52. package/src/prism-extensions/tools/builtin-tools.ts +2 -0
  53. package/src/prism-extensions/tools/mex-tools.ts +93 -0
  54. package/src/prism-extensions/ui/toolbar.ts +10 -1
  55. package/src/prism-extensions/commands/voice-command.ts +0 -49
  56. package/src/prism-extensions/core/voice-runtime.ts +0 -322
  57. package/src/prism-extensions/core/voicebox-client.ts +0 -205
  58. package/src/prism-extensions/core/voicebox-service.ts +0 -137
  59. package/src/prism-extensions/integrations/honcho-memory.ts +0 -299
package/README.md CHANGED
@@ -172,7 +172,6 @@ Vault structure used by Prism:
172
172
  - `/toolbox <query>` — search hidden toolbox tools registered by extensions.
173
173
  - `/context` — visual context usage grid.
174
174
  - `/git-commit` — ask the current model to create a signed git commit from staged changes.
175
- - `/voice on|output|input|off` — local voice I/O with wake-word guarded input and Voicebox/command/Piper output backends.
176
175
  - `/ollama-refresh` — refresh dynamic Ollama provider models from the live API.
177
176
  - `/ollama status|refresh|list|running|version|show <model>|pull <model>` — manage the built-in Ollama provider.
178
177
  - `/clear` or `/cls` — clear terminal and start a fresh session.
@@ -180,55 +179,6 @@ Vault structure used by Prism:
180
179
  - `/obsidian-commit` — commit staged Obsidian vault changes with a German commit message.
181
180
  - `/exit` — optional daily note / insight / inbox cleanup workflow before shutdown.
182
181
 
183
- ### Voice mode
184
- Prism can speak assistant responses and optionally accept wake-word guarded voice input via `/voice`:
185
-
186
- ```text
187
- /voice on # input + output
188
- /voice output # only speak assistant responses
189
- /voice input # only listen for wake-word input
190
- /voice off
191
- ```
192
-
193
- Recommended backend: [Voicebox](https://github.com/jamiepine/voicebox), running locally on `127.0.0.1:17493`.
194
-
195
- ```bash
196
- export PRISM_VOICE_BACKEND=voicebox
197
- export PRISM_VOICEBOX_URL=http://127.0.0.1:17493
198
- export PRISM_VOICEBOX_PROFILE=Morgan # optional Voicebox profile name/id
199
- export PRISM_VOICE_WAKE_WORD=prism # default
200
-
201
- # Optional service control. Defaults to install/start/stop lifecycle enabled when Voicebox is configured.
202
- export PRISM_VOICEBOX_AUTO_INSTALL=1
203
- export PRISM_VOICEBOX_AUTO_START=1
204
- export PRISM_VOICEBOX_AUTO_STOP=1
205
- export PRISM_VOICEBOX_START_COMMAND="prism-voicebox start"
206
- export PRISM_VOICEBOX_STOP_COMMAND="prism-voicebox stop"
207
- ```
208
- The same values can live in `~/.prism/settings.json`:
209
- ```json
210
- {
211
- "voice": { "backend": "voicebox", "wakeWord": "prism" },
212
- "voicebox": {
213
- "baseUrl": "http://127.0.0.1:17493",
214
- "profile": "Test",
215
- "language": "en",
216
- "engine": "kokoro",
217
- "personality": true,
218
- "autoInstall": true,
219
- "autoStart": true,
220
- "autoStop": true,
221
- "installDir": "~/.local/share/prism/voicebox"
222
- }
223
- }
224
- ```
225
-
226
- Voice input currently still needs a streaming/transcript command via `PRISM_VOICE_STT_COMMAND` or `PRISM_VOICE_WHISPER_MODEL` (`whisper-stream`). Prism filters transcripts by wake word and ignores input while/after speaking to avoid feedback loops.
227
-
228
- Fallback output backends:
229
- - `PRISM_VOICE_TTS_COMMAND` — shell command that receives text on stdin.
230
- - `PRISM_VOICE_PIPER_MODEL` — Piper model path, with `paplay`/`aplay`/`ffplay` playback.
231
-
232
182
  ## Provider extensions
233
183
  Provider integrations live under `src/prism-extensions/providers/`.
234
184
 
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Files Prism hands to pi as additional context files. They are listed under "Context" at startup
3
+ * and injected into the system prompt exactly like AGENTS.md / CLAUDE.md.
4
+ */
5
+ export declare function prismExtraContextFiles(env?: NodeJS.ProcessEnv, cwd?: string): string[];
6
+ export declare function prismExtraContextFilesEnvValue(env?: NodeJS.ProcessEnv, cwd?: string): string;
@@ -0,0 +1,17 @@
1
+ import { mexAnchorContextFile } from "../prism-extensions/core/mex-anchor.js";
2
+ import { PRISM_EXTRA_CONTEXT_FILES_SEPARATOR } from "./pi-patch-context-files.js";
3
+ /**
4
+ * Files Prism hands to pi as additional context files. They are listed under "Context" at startup
5
+ * and injected into the system prompt exactly like AGENTS.md / CLAUDE.md.
6
+ */
7
+ export function prismExtraContextFiles(env = process.env, cwd = process.cwd()) {
8
+ const files = [];
9
+ const mexAnchor = mexAnchorContextFile(cwd, env);
10
+ if (mexAnchor)
11
+ files.push(mexAnchor);
12
+ return files;
13
+ }
14
+ export function prismExtraContextFilesEnvValue(env = process.env, cwd = process.cwd()) {
15
+ return prismExtraContextFiles(env, cwd).join(PRISM_EXTRA_CONTEXT_FILES_SEPARATOR);
16
+ }
17
+ //# sourceMappingURL=pi-context-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-context-files.js","sourceRoot":"","sources":["../../src/pi/pi-context-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAA;AAEjF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC9F,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChD,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACtG,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;AACnF,CAAC"}
@@ -1,7 +1,6 @@
1
1
  export declare const PRISM_BUILTIN_EXTENSION_FILES: string[];
2
2
  export declare const PRISM_BUILTIN_NPM_EXTENSION_PACKAGES: string[];
3
3
  export declare function isManifestProviderAvailable(env?: NodeJS.ProcessEnv): boolean;
4
- export declare function isHonchoMemoryAvailable(env?: NodeJS.ProcessEnv): boolean;
5
4
  export declare function getOllamaApiBaseUrl(env?: NodeJS.ProcessEnv): string;
6
5
  export declare function isOllamaProviderAvailable(env?: NodeJS.ProcessEnv): boolean;
7
6
  export declare function prismBuiltinExtensionPaths(env?: NodeJS.ProcessEnv): string[];
@@ -1,8 +1,9 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import { spawnSync } from "node:child_process";
4
- import { fileURLToPath } from "node:url";
5
4
  import { getPrismAgentDir, repoRoot } from "./pi-env.js";
5
+ import { resolveNpmExtensionEntry } from "./pi-npm-extension-entry.js";
6
+ import { isMexAvailable } from "../prism-extensions/core/mex-cli.js";
6
7
  export const PRISM_BUILTIN_EXTENSION_FILES = [
7
8
  "commands/caveman-mode.ts",
8
9
  "commands/clear-session.ts",
@@ -11,14 +12,13 @@ export const PRISM_BUILTIN_EXTENSION_FILES = [
11
12
  "commands/plan-command.ts",
12
13
  "commands/prompt-review-command.ts",
13
14
  "commands/self-improve-command.ts",
14
- "commands/voice-command.ts",
15
15
  "commands/vote-command.ts",
16
16
  "integrations/obsidian-memory.ts",
17
17
  "integrations/logseq-memory.ts",
18
- "integrations/honcho-memory.ts",
19
18
  "integrations/research-tools.ts",
20
19
  "integrations/ai-memory-system.ts",
21
20
  "integrations/rp-memory.ts",
21
+ "integrations/mex-memory.ts",
22
22
  "providers/manifest-provider.ts",
23
23
  "providers/ollama-provider.ts",
24
24
  "tools/toolbox.ts",
@@ -35,7 +35,6 @@ const ALWAYS_ON_EXTENSION_RELATIVE_PATHS = [
35
35
  "commands/plan-command.ts",
36
36
  "commands/prompt-review-command.ts",
37
37
  "commands/self-improve-command.ts",
38
- "commands/voice-command.ts",
39
38
  "commands/vote-command.ts",
40
39
  "integrations/obsidian-memory.ts",
41
40
  "integrations/logseq-memory.ts",
@@ -48,10 +47,10 @@ const ALWAYS_ON_EXTENSION_RELATIVE_PATHS = [
48
47
  "ui/prism-status.ts",
49
48
  "ui/toolbar.ts",
50
49
  ];
51
- export const PRISM_BUILTIN_NPM_EXTENSION_PACKAGES = ["pi-mcp-adapter"];
50
+ export const PRISM_BUILTIN_NPM_EXTENSION_PACKAGES = ["pi-mcp-adapter", "@juicesharp/rpiv-voice", "@juicesharp/rpiv-todo"];
52
51
  const OLLAMA_PROVIDER_RELATIVE_PATH = path.join("providers", "ollama-provider.ts");
53
52
  const MANIFEST_PROVIDER_RELATIVE_PATH = path.join("providers", "manifest-provider.ts");
54
- const HONCHO_MEMORY_RELATIVE_PATH = path.join("integrations", "honcho-memory.ts");
53
+ const MEX_MEMORY_RELATIVE_PATH = path.join("integrations", "mex-memory.ts");
55
54
  function nonEmptyString(value) {
56
55
  return typeof value === "string" && value.trim() ? value.trim() : undefined;
57
56
  }
@@ -68,11 +67,6 @@ export function isManifestProviderAvailable(env = process.env) {
68
67
  const manifest = settings?.manifestProvider ?? settings?.manifest ?? settings?.providers?.manifest ?? {};
69
68
  return !!(nonEmptyString(env.PRISM_MANIFEST_BASE_URL) ?? nonEmptyString(env.MANIFEST_BASE_URL) ?? nonEmptyString(manifest?.baseUrl) ?? nonEmptyString(manifest?.baseURL));
70
69
  }
71
- export function isHonchoMemoryAvailable(env = process.env) {
72
- const settings = readPrismSettings(env);
73
- const honcho = settings?.honchoMemory ?? settings?.honcho ?? settings?.integrations?.honcho ?? settings?.memory?.honcho ?? {};
74
- return !!(nonEmptyString(env.PRISM_HONCHO_BASE_URL) ?? nonEmptyString(env.HONCHO_BASE_URL) ?? nonEmptyString(honcho?.baseUrl) ?? nonEmptyString(honcho?.baseURL) ?? nonEmptyString(honcho?.url));
75
- }
76
70
  export function getOllamaApiBaseUrl(env = process.env) {
77
71
  const raw = nonEmptyString(env.PRISM_OLLAMA_BASE_URL) ?? nonEmptyString(env.OLLAMA_BASE_URL) ?? "http://localhost:11434/v1";
78
72
  const base = raw.replace(/\/+$/, "");
@@ -102,24 +96,15 @@ export function isOllamaProviderAvailable(env = process.env) {
102
96
  return false;
103
97
  }
104
98
  }
105
- function resolveNpmExtensionEntry(packageName) {
106
- try {
107
- const resolved = import.meta.resolve(packageName);
108
- return resolved.startsWith("file:") ? fileURLToPath(resolved) : resolved;
109
- }
110
- catch {
111
- return undefined;
112
- }
113
- }
114
99
  export function prismBuiltinExtensionPaths(env = process.env) {
115
100
  const dir = path.join(repoRoot(), "src", "prism-extensions");
116
101
  const relativePaths = [...ALWAYS_ON_EXTENSION_RELATIVE_PATHS];
117
- if (isHonchoMemoryAvailable(env))
118
- relativePaths.push(HONCHO_MEMORY_RELATIVE_PATH);
119
102
  if (isOllamaProviderAvailable(env))
120
103
  relativePaths.push(OLLAMA_PROVIDER_RELATIVE_PATH);
121
104
  if (isManifestProviderAvailable(env))
122
105
  relativePaths.push(MANIFEST_PROVIDER_RELATIVE_PATH);
106
+ if (isMexAvailable(env))
107
+ relativePaths.push(MEX_MEMORY_RELATIVE_PATH);
123
108
  const sourceExtensions = relativePaths
124
109
  .map((file) => path.join(dir, file))
125
110
  .filter((file) => fs.existsSync(file));
@@ -1 +1 @@
1
- {"version":3,"file":"pi-extensions.js","sourceRoot":"","sources":["../../src/pi/pi-extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-extensions.js","sourceRoot":"","sources":["../../src/pi/pi-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveNpmPackageDir(packageName: string): string | undefined;
2
+ export declare function resolveNpmExtensionEntry(packageName: string): string | undefined;
@@ -0,0 +1,74 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { createRequire } from "node:module";
4
+ import { fileURLToPath } from "node:url";
5
+ import { repoRoot } from "./pi-env.js";
6
+ /**
7
+ * Resolves the extension entry file of an npm package that ships a pi extension.
8
+ *
9
+ * Two shapes are supported:
10
+ * - packages with an `exports`/`main` entry that already points at the extension file
11
+ * (e.g. `pi-mcp-adapter`)
12
+ * - packages that only declare their entry in the pi manifest (`pi.extensions` in
13
+ * package.json), which Node cannot resolve on its own (e.g. `@juicesharp/rpiv-voice`)
14
+ */
15
+ function toFilePath(specifier) {
16
+ if (specifier.startsWith("file:"))
17
+ return fileURLToPath(specifier);
18
+ return specifier.startsWith("/") ? specifier : undefined;
19
+ }
20
+ function resolveModuleEntry(packageName) {
21
+ try {
22
+ return toFilePath(import.meta.resolve(packageName));
23
+ }
24
+ catch {
25
+ return undefined;
26
+ }
27
+ }
28
+ export function resolveNpmPackageDir(packageName) {
29
+ try {
30
+ const manifest = toFilePath(import.meta.resolve(`${packageName}/package.json`));
31
+ if (manifest && fs.existsSync(manifest))
32
+ return path.dirname(manifest);
33
+ }
34
+ catch {
35
+ // package.json is not exported, fall through to the manual lookups below
36
+ }
37
+ const require = createRequire(import.meta.url);
38
+ for (const base of [path.dirname(fileURLToPath(import.meta.url)), repoRoot(), process.cwd()]) {
39
+ for (const root of require.resolve.paths(packageName) ?? [path.join(base, "node_modules")]) {
40
+ const candidate = path.join(root, ...packageName.split("/"));
41
+ if (fs.existsSync(path.join(candidate, "package.json")))
42
+ return candidate;
43
+ }
44
+ }
45
+ return undefined;
46
+ }
47
+ function resolveManifestEntry(packageName) {
48
+ const dir = resolveNpmPackageDir(packageName);
49
+ if (!dir)
50
+ return undefined;
51
+ let manifest;
52
+ try {
53
+ manifest = JSON.parse(fs.readFileSync(path.join(dir, "package.json"), "utf-8"));
54
+ }
55
+ catch {
56
+ return undefined;
57
+ }
58
+ const entries = Array.isArray(manifest?.pi?.extensions) ? manifest.pi.extensions : [];
59
+ for (const entry of entries) {
60
+ if (typeof entry !== "string" || !entry.trim())
61
+ continue;
62
+ const file = path.resolve(dir, entry);
63
+ if (fs.existsSync(file))
64
+ return file;
65
+ }
66
+ return undefined;
67
+ }
68
+ export function resolveNpmExtensionEntry(packageName) {
69
+ const moduleEntry = resolveModuleEntry(packageName);
70
+ if (moduleEntry && fs.existsSync(moduleEntry))
71
+ return moduleEntry;
72
+ return resolveManifestEntry(packageName);
73
+ }
74
+ //# sourceMappingURL=pi-npm-extension-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-npm-extension-entry.js","sourceRoot":"","sources":["../../src/pi/pi-npm-extension-entry.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { assertSupportedPiPackageVersion, getPrismAgentDir, repoRoot, resolvePiC
4
4
  import { getPrismPackageVersion } from "./pi-branding.js";
5
5
  import { patchPrismAuthStorage } from "./pi-patch-auth.js";
6
6
  import { patchPrismAutocomplete } from "./pi-patch-autocomplete.js";
7
+ import { patchPrismContextFiles, PRISM_EXTRA_CONTEXT_FILES_ENV } from "./pi-patch-context-files.js";
8
+ import { prismExtraContextFilesEnvValue } from "./pi-context-files.js";
7
9
  import { patchPrismExtensionLoader } from "./pi-patch-extension-loader.js";
8
10
  import { patchPrismBranding } from "./pi-patch-interactive.js";
9
11
  import { patchPrismSessionPersistence } from "./pi-patch-session.js";
@@ -45,6 +47,7 @@ export function createPiEnv(env = process.env, cwd = process.cwd()) {
45
47
  PI_AUTH_PATH: authPath,
46
48
  PI_PACKAGE_DIR: ensurePrismPackageDir(prismDir, cwd, env),
47
49
  PI_SKIP_VERSION_CHECK: env.PI_SKIP_VERSION_CHECK ?? "1",
50
+ [PRISM_EXTRA_CONTEXT_FILES_ENV]: prismExtraContextFilesEnvValue(env, cwd),
48
51
  OLLAMA_API_KEY: env.OLLAMA_API_KEY ?? "prism-local-ollama",
49
52
  };
50
53
  }
@@ -60,6 +63,7 @@ export function ensurePrismPackageDir(prismDir = getPrismAgentDir(), cwd = proce
60
63
  patchPrismSessionPersistence(piPackageDir);
61
64
  patchPrismExtensionLoader(piPackageDir);
62
65
  patchPrismAutocomplete(piPackageDir);
66
+ patchPrismContextFiles(piPackageDir);
63
67
  // Prism runtime pi-package dir: piConfig package.json + lightweight links to bundled pi assets.
64
68
  // pi itself points users at `${PI_PACKAGE_DIR}/docs/...` in help/error messages. Use symlinks
65
69
  // instead of copying docs/examples so the runtime package stays small and up to date.
@@ -1 +1 @@
1
- {"version":3,"file":"pi-package.js","sourceRoot":"","sources":["../../src/pi/pi-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-package.js","sourceRoot":"","sources":["../../src/pi/pi-package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Newline-separated absolute paths that pi should treat like AGENTS.md/CLAUDE.md.
3
+ * Newline is used instead of `path.delimiter` so the patched pi code needs no extra imports.
4
+ */
5
+ export declare const PRISM_EXTRA_CONTEXT_FILES_ENV = "PRISM_EXTRA_CONTEXT_FILES";
6
+ export declare const PRISM_EXTRA_CONTEXT_FILES_SEPARATOR = "\n";
7
+ export declare function patchPrismContextFilesSource(source: string): string;
8
+ export declare function patchPrismContextFiles(runtimeDir: string): void;
9
+ export declare const __testContextFilesPatchFragments: {
10
+ search: string;
11
+ replacement: string;
12
+ };
@@ -0,0 +1,46 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { replaceRequired } from "./pi-env.js";
4
+ /**
5
+ * Newline-separated absolute paths that pi should treat like AGENTS.md/CLAUDE.md.
6
+ * Newline is used instead of `path.delimiter` so the patched pi code needs no extra imports.
7
+ */
8
+ export const PRISM_EXTRA_CONTEXT_FILES_ENV = "PRISM_EXTRA_CONTEXT_FILES";
9
+ export const PRISM_EXTRA_CONTEXT_FILES_SEPARATOR = "\n";
10
+ const SEARCH = " contextFiles.push(...ancestorContextFiles);\n return contextFiles;";
11
+ const REPLACEMENT = ` contextFiles.push(...ancestorContextFiles);
12
+ // prism: extra context files (e.g. .mex/AGENTS.md) load like AGENTS.md so they appear under "Context".
13
+ for (const extraContextEntry of (process.env.${PRISM_EXTRA_CONTEXT_FILES_ENV} ?? "").split("\\n")) {
14
+ const extraContextPath = extraContextEntry.trim();
15
+ if (!extraContextPath || seenPaths.has(extraContextPath))
16
+ continue;
17
+ try {
18
+ if (!statSync(extraContextPath).isFile())
19
+ continue;
20
+ contextFiles.push({ path: extraContextPath, content: readFileSync(extraContextPath, "utf-8") });
21
+ seenPaths.add(extraContextPath);
22
+ }
23
+ catch {
24
+ // Unreadable extra context file: ignore, it is optional by design.
25
+ }
26
+ }
27
+ return contextFiles;`;
28
+ export function patchPrismContextFilesSource(source) {
29
+ if (source.includes(PRISM_EXTRA_CONTEXT_FILES_ENV))
30
+ return source;
31
+ // A silent no-op would drop the "Context" listing without any signal, so fail loudly instead.
32
+ if (!source.includes(SEARCH))
33
+ throw new Error("Unable to patch pi resource-loader.js: loadProjectContextFiles fragment not found");
34
+ return replaceRequired(source, SEARCH, REPLACEMENT, "extra-context-files");
35
+ }
36
+ export function patchPrismContextFiles(runtimeDir) {
37
+ const resourceLoaderFile = path.join(runtimeDir, "dist", "core", "resource-loader.js");
38
+ if (!fs.existsSync(resourceLoaderFile))
39
+ throw new Error(`Unable to patch pi context files: ${resourceLoaderFile} not found`);
40
+ const source = fs.readFileSync(resourceLoaderFile, "utf-8");
41
+ const patched = patchPrismContextFilesSource(source);
42
+ if (patched !== source)
43
+ fs.writeFileSync(resourceLoaderFile, patched, "utf-8");
44
+ }
45
+ export const __testContextFilesPatchFragments = { search: SEARCH, replacement: REPLACEMENT };
46
+ //# sourceMappingURL=pi-patch-context-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-patch-context-files.js","sourceRoot":"","sources":["../../src/pi/pi-patch-context-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,2BAA2B,CAAA;AAExE,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,CAAA;AAEvD,MAAM,MAAM,GAAG,2EAA2E,CAAA;AAE1F,MAAM,WAAW,GAAG;;mDAE+B,6BAA6B;;;;;;;;;;;;;;yBAcvD,CAAA;AAEzB,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAAE,OAAO,MAAM,CAAA;IACjE,8FAA8F;IAC9F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;IAClI,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACtF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,kBAAkB,YAAY,CAAC,CAAA;IAE5H,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,OAAO,KAAK,MAAM;QAAE,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAChF,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
@@ -4,6 +4,7 @@ import { rainbowPrismVersion } from "./pi-branding.js";
4
4
  import { replaceRequired } from "./pi-env.js";
5
5
  import { PRISM_BUILTIN_EXTENSION_FILES, PRISM_BUILTIN_NPM_EXTENSION_PACKAGES } from "./pi-extensions.js";
6
6
  import { patchPrismSystemPromptSource } from "./pi-patch-system-prompt.js";
7
+ import { prismPlanReadOnlyToolSetDeclaration, refreshPrismPlanReadOnlyToolSet } from "./plan-mode-tools.js";
7
8
  // Single source of truth: derive the internal-extension basenames from the
8
9
  // built-in extension files so both lists can never drift apart.
9
10
  export const PRISM_INTERNAL_EXTENSION_FILES = [
@@ -98,6 +99,9 @@ export function patchPrismBranding(runtimeDir, piHarnessVersion) {
98
99
  patched = replaceRequired(patched, "if (text === \"/reload\") {", "if (text === \"/plan\" || text.startsWith(\"/plan \")) {\n const task = text.startsWith(\"/plan \") ? text.slice(6).trim() : \"\";\n this.editor.setText(\"\");\n await this.startPrismPlanMode(task);\n return;\n }\n if (text === \"/plan:approve\") {\n this.editor.setText(\"\");\n await this.approvePrismPlan();\n return;\n }\n if (text === \"/plan:reject\") {\n this.editor.setText(\"\");\n this.rejectPrismPlan();\n return;\n }\n if (text === \"/plan:cancel\") {\n this.editor.setText(\"\");\n this.cancelPrismPlan();\n return;\n }\n if (text === \"/reload\") {", "plan-commands");
99
100
  patched = replaceRequired(patched, "text.startsWith(\"/plan \") ? text.slice(6).trim() :", "text.startsWith(\"/plan \") ? text.slice(6).trim() :", "plan-search-noop");
100
101
  patched = replaceRequired(patched, " case \"agent_settled\":\n await this.checkShutdownRequested();\n break;", " case \"agent_settled\":\n await this.checkShutdownRequested();\n void this.maybeShowUsageLimitRecoveryMenu(event);\n void this.maybeShowPrismPlanApprovalMenu(event);\n break;", "usage-limit-check");
102
+ // Keep an already patched runtime in sync before the injection below, otherwise a
103
+ // changed allowlist would no longer match and the whole method block gets injected twice.
104
+ patched = refreshPrismPlanReadOnlyToolSet(patched);
101
105
  patched = replaceRequired(patched, " /** Extract text content from a user message */", ` formatUsageLimitDuration(ms) {
102
106
  const totalMinutes = Math.ceil(ms / 60000);
103
107
  const hours = Math.floor(totalMinutes / 60);
@@ -202,7 +206,7 @@ export function patchPrismBranding(runtimeDir, piHarnessVersion) {
202
206
  });
203
207
  }
204
208
  getPrismReadOnlyToolNames() {
205
- const readOnly = new Set(["read", "grep", "find", "ls", "obsidian_memory_read", "obsidian_memory_search", "obsidian_memory_list", "web_search", "web_fetch"]);
209
+ ${prismPlanReadOnlyToolSetDeclaration()}
206
210
  return this.session.getActiveToolNames().filter((name) => readOnly.has(name));
207
211
  }
208
212
  setPrismPlanStatus(enabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"pi-patch-interactive.js","sourceRoot":"","sources":["../../src/pi/pi-patch-interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-patch-interactive.js","sourceRoot":"","sources":["../../src/pi/pi-patch-interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tools the agent may keep while Prism plan mode is active.
3
+ *
4
+ * Plan mode is read-only: `startPrismPlanMode()` narrows the session to the
5
+ * intersection of the active tools and this allowlist, and restores the previous
6
+ * tool set when the plan is approved, rejected or cancelled.
7
+ *
8
+ * Only add tools that cannot mutate the repo, the vault or any remote state.
9
+ */
10
+ export declare const PRISM_PLAN_MODE_READ_ONLY_TOOLS: string[];
11
+ export declare function prismPlanReadOnlyToolSetDeclaration(variableName?: string): string;
12
+ /** Keeps an already patched runtime in sync when the allowlist changes. */
13
+ export declare function refreshPrismPlanReadOnlyToolSet(source: string): string;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Tools the agent may keep while Prism plan mode is active.
3
+ *
4
+ * Plan mode is read-only: `startPrismPlanMode()` narrows the session to the
5
+ * intersection of the active tools and this allowlist, and restores the previous
6
+ * tool set when the plan is approved, rejected or cancelled.
7
+ *
8
+ * Only add tools that cannot mutate the repo, the vault or any remote state.
9
+ */
10
+ export const PRISM_PLAN_MODE_READ_ONLY_TOOLS = [
11
+ // pi built-ins
12
+ "read",
13
+ "grep",
14
+ "find",
15
+ "ls",
16
+ // research
17
+ "web_search",
18
+ "web_fetch",
19
+ // Obsidian / Logseq memory reads (append stays disabled)
20
+ "obsidian_memory_read",
21
+ "obsidian_memory_search",
22
+ "obsidian_memory_list",
23
+ "logseq_read",
24
+ "logseq_search",
25
+ "logseq_list",
26
+ // AI Memory System reads (rate/propose/approve and vault writes stay disabled)
27
+ "ai_memory_search",
28
+ "ai_memory_read",
29
+ "ai_memory_status",
30
+ "ai_memory_vault_list",
31
+ // mex code graph reads. These can build a missing .mex/graph.db, which is a derived
32
+ // index and never project source. PRISM_DISABLE_MEX_AUTO_GRAPH=1 turns that off.
33
+ "mex_scope",
34
+ "mex_get",
35
+ "mex_query",
36
+ "mex_impact",
37
+ // role-play context reads (rp_update stays disabled)
38
+ "rp_state",
39
+ "rp_search",
40
+ // discovery and history without execution (toolbox_execute stays disabled)
41
+ "toolbox_search",
42
+ "self_improvement_list",
43
+ // Session-scoped task list: no disk writes, keeps the plan's steps visible.
44
+ "todo",
45
+ ];
46
+ export function prismPlanReadOnlyToolSetDeclaration(variableName = "readOnly") {
47
+ const values = PRISM_PLAN_MODE_READ_ONLY_TOOLS.map((tool) => JSON.stringify(tool)).join(", ");
48
+ return `const ${variableName} = new Set([${values}]);`;
49
+ }
50
+ /** Keeps an already patched runtime in sync when the allowlist changes. */
51
+ export function refreshPrismPlanReadOnlyToolSet(source) {
52
+ return source.replace(/const readOnly = new Set\(\[[^\]]*\]\);\n(\s*)return this\.session\.getActiveToolNames\(\)/g, `${prismPlanReadOnlyToolSetDeclaration()}\n$1return this.session.getActiveToolNames()`);
53
+ }
54
+ //# sourceMappingURL=plan-mode-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-tools.js","sourceRoot":"","sources":["../../src/pi/plan-mode-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,eAAe;IACf,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IAEJ,WAAW;IACX,YAAY;IACZ,WAAW;IAEX,yDAAyD;IACzD,sBAAsB;IACtB,wBAAwB;IACxB,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,aAAa;IAEb,+EAA+E;IAC/E,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,sBAAsB;IAEtB,oFAAoF;IACpF,iFAAiF;IACjF,WAAW;IACX,SAAS;IACT,WAAW;IACX,YAAY;IAEZ,qDAAqD;IACrD,UAAU;IACV,WAAW;IAEX,2EAA2E;IAC3E,gBAAgB;IAChB,uBAAuB;IAEvB,4EAA4E;IAC5E,MAAM;CACP,CAAA;AAED,MAAM,UAAU,mCAAmC,CAAC,YAAY,GAAG,UAAU;IAC3E,MAAM,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7F,OAAO,SAAS,YAAY,eAAe,MAAM,KAAK,CAAA;AACxD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC5D,OAAO,MAAM,CAAC,OAAO,CACnB,6FAA6F,EAC7F,GAAG,mCAAmC,EAAE,8CAA8C,CACvF,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Anchor file every mex scaffold exposes as its always-loaded entry point. */
2
+ export declare const MEX_ANCHOR_FILE = "AGENTS.md";
3
+ export declare function mexAnchorPath(cwd?: string): string;
4
+ export declare function isMexAnchorEnabled(env?: NodeJS.ProcessEnv): boolean;
5
+ /**
6
+ * Absolute path of `.mex/AGENTS.md` when it should be loaded as a pi context file,
7
+ * i.e. the mex CLI plus scaffold are available and the anchor is not disabled.
8
+ */
9
+ export declare function mexAnchorContextFile(cwd?: string, env?: NodeJS.ProcessEnv): string | undefined;
@@ -0,0 +1,29 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { isMexAvailable, mexScaffoldDir } from "./mex-cli.js";
4
+ /** Anchor file every mex scaffold exposes as its always-loaded entry point. */
5
+ export const MEX_ANCHOR_FILE = "AGENTS.md";
6
+ export function mexAnchorPath(cwd = process.cwd()) {
7
+ return path.join(mexScaffoldDir(cwd), MEX_ANCHOR_FILE);
8
+ }
9
+ export function isMexAnchorEnabled(env = process.env) {
10
+ return env.PRISM_DISABLE_MEX_ANCHOR !== "1";
11
+ }
12
+ /**
13
+ * Absolute path of `.mex/AGENTS.md` when it should be loaded as a pi context file,
14
+ * i.e. the mex CLI plus scaffold are available and the anchor is not disabled.
15
+ */
16
+ export function mexAnchorContextFile(cwd = process.cwd(), env = process.env) {
17
+ if (!isMexAnchorEnabled(env))
18
+ return undefined;
19
+ if (!isMexAvailable(env, cwd))
20
+ return undefined;
21
+ const anchor = mexAnchorPath(cwd);
22
+ try {
23
+ return fs.statSync(anchor).isFile() ? anchor : undefined;
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ //# sourceMappingURL=mex-anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mex-anchor.js","sourceRoot":"","sources":["../../../src/prism-extensions/core/mex-anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAA;AAE1C,MAAM,UAAU,aAAa,CAAC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IACrE,OAAO,GAAG,CAAC,wBAAwB,KAAK,GAAG,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAG,GAAW,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IACpG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}