@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.
- package/README.md +0 -50
- package/dist/pi/pi-context-files.d.ts +6 -0
- package/dist/pi/pi-context-files.js +17 -0
- package/dist/pi/pi-context-files.js.map +1 -0
- package/dist/pi/pi-extensions.d.ts +0 -1
- package/dist/pi/pi-extensions.js +7 -22
- package/dist/pi/pi-extensions.js.map +1 -1
- package/dist/pi/pi-npm-extension-entry.d.ts +2 -0
- package/dist/pi/pi-npm-extension-entry.js +74 -0
- package/dist/pi/pi-npm-extension-entry.js.map +1 -0
- package/dist/pi/pi-package.js +4 -0
- package/dist/pi/pi-package.js.map +1 -1
- package/dist/pi/pi-patch-context-files.d.ts +12 -0
- package/dist/pi/pi-patch-context-files.js +46 -0
- package/dist/pi/pi-patch-context-files.js.map +1 -0
- package/dist/pi/pi-patch-interactive.js +5 -1
- package/dist/pi/pi-patch-interactive.js.map +1 -1
- package/dist/pi/plan-mode-tools.d.ts +13 -0
- package/dist/pi/plan-mode-tools.js +54 -0
- package/dist/pi/plan-mode-tools.js.map +1 -0
- package/dist/prism-extensions/core/mex-anchor.d.ts +9 -0
- package/dist/prism-extensions/core/mex-anchor.js +29 -0
- package/dist/prism-extensions/core/mex-anchor.js.map +1 -0
- package/dist/prism-extensions/core/mex-cli.d.ts +68 -0
- package/dist/prism-extensions/core/mex-cli.js +183 -0
- package/dist/prism-extensions/core/mex-cli.js.map +1 -0
- package/dist/prism-extensions/core/mex-graph-db.d.ts +26 -0
- package/dist/prism-extensions/core/mex-graph-db.js +69 -0
- package/dist/prism-extensions/core/mex-graph-db.js.map +1 -0
- package/dist/prism-extensions/integrations/ai-memory-system.js +27 -6
- package/dist/prism-extensions/integrations/ai-memory-system.js.map +1 -1
- package/dist/prism-extensions/integrations/mex-memory.d.ts +21 -0
- package/dist/prism-extensions/integrations/mex-memory.js +231 -0
- package/dist/prism-extensions/integrations/mex-memory.js.map +1 -0
- package/dist/prism-extensions/tools/builtin-tools.js +2 -0
- package/dist/prism-extensions/tools/builtin-tools.js.map +1 -1
- package/dist/prism-extensions/tools/mex-tools.d.ts +2 -0
- package/dist/prism-extensions/tools/mex-tools.js +78 -0
- package/dist/prism-extensions/tools/mex-tools.js.map +1 -0
- package/dist/prism-extensions/ui/toolbar.d.ts +2 -0
- package/dist/prism-extensions/ui/toolbar.js +10 -1
- package/dist/prism-extensions/ui/toolbar.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +6 -6
- package/package.json +5 -3
- package/src/prism-extensions/README.md +10 -1
- package/src/prism-extensions/core/mex-anchor.ts +29 -0
- package/src/prism-extensions/core/mex-cli.ts +217 -0
- package/src/prism-extensions/core/mex-graph-db.ts +76 -0
- package/src/prism-extensions/integrations/ai-memory-system.ts +30 -6
- package/src/prism-extensions/integrations/mex-memory.ts +264 -0
- package/src/prism-extensions/tools/builtin-tools.ts +2 -0
- package/src/prism-extensions/tools/mex-tools.ts +93 -0
- package/src/prism-extensions/ui/toolbar.ts +10 -1
- package/src/prism-extensions/commands/voice-command.ts +0 -49
- package/src/prism-extensions/core/voice-runtime.ts +0 -322
- package/src/prism-extensions/core/voicebox-client.ts +0 -205
- package/src/prism-extensions/core/voicebox-service.ts +0 -137
- package/src/prism-extensions/integrations/honcho-memory.ts +0 -299
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
import { buildCheckArgs, buildGetArgs, buildImpactArgs, buildLogArgs, buildQueryArgs, buildScopeArgs, buildTimelineArgs, hasMexScaffold, isMexAvailable, MEX_LOG_TYPES, MEX_RELATIONS, runMex, } from "../core/mex-cli.js";
|
|
3
|
+
import { describeMexGraphEnsure, ensureMexGraphDb, hasMexGraphDb, isMexAutoGraphEnabled, needsMexGraphAction, } from "../core/mex-graph-db.js";
|
|
4
|
+
import { textToolResult } from "../tools/toolbox-utils.js";
|
|
5
|
+
import { formatBracketedToolCall, renderSingleLineToolCall } from "../ui/tool-call-rendering.js";
|
|
6
|
+
const MEX_STATUS_KEY = "mex";
|
|
7
|
+
const MEX_STATUS_LABEL = "🕸 mex";
|
|
8
|
+
const MEX_STATUS_BUILDING_LABEL = "🕸 mex ⟳";
|
|
9
|
+
const RETRIEVAL_PARAMS = {
|
|
10
|
+
detail: Type.Optional(Type.String({ description: "minimal | standard | source. Default minimal." })),
|
|
11
|
+
maxNodes: Type.Optional(Type.Number({ description: "Maximum nodes to return." })),
|
|
12
|
+
maxOutputTokens: Type.Optional(Type.Number({ description: "Hard output token ceiling." })),
|
|
13
|
+
maxSourceLines: Type.Optional(Type.Number({ description: "Per-node source line cap (detail=source)." })),
|
|
14
|
+
};
|
|
15
|
+
export function formatMexOutput(action, result) {
|
|
16
|
+
const text = result.output || (result.ok ? `mex ${action} produced no output.` : `mex ${action} failed.`);
|
|
17
|
+
return textToolResult(text, { action, ok: result.ok, exitCode: result.exitCode });
|
|
18
|
+
}
|
|
19
|
+
/** Registers the mex code-graph tools. Exported for tests. */
|
|
20
|
+
export function registerMexTools(pi, options = {}) {
|
|
21
|
+
const registered = [];
|
|
22
|
+
const exec = async (action, args) => {
|
|
23
|
+
// For code-graph actions we must have a `.mex/` scaffold.
|
|
24
|
+
// Otherwise `mex` itself may auto-create the scaffold/DB, which we explicitly want to avoid.
|
|
25
|
+
if (needsMexGraphAction(action)) {
|
|
26
|
+
const ensured = await ensureMexGraphDb(graphEnsureOptions(options));
|
|
27
|
+
if (ensured.status === "no-scaffold" || ensured.status === "disabled") {
|
|
28
|
+
return formatMexOutput(action, {
|
|
29
|
+
ok: false,
|
|
30
|
+
exitCode: 1,
|
|
31
|
+
output: `mex ${action} disabled: missing .mex scaffold (needed for graph.db). Run npx mex-agent setup in the repo root, or disable mex via PRISM_DISABLE_MEX=1.`,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return formatMexOutput(action, await runMex(args, options));
|
|
36
|
+
};
|
|
37
|
+
function register(tool) {
|
|
38
|
+
registered.push(tool.name);
|
|
39
|
+
pi.registerTool(tool);
|
|
40
|
+
}
|
|
41
|
+
register({
|
|
42
|
+
name: "mex_scope",
|
|
43
|
+
label: "Mex Scope",
|
|
44
|
+
description: "Retrieve a compact, task-relevant code neighborhood from the local mex code graph (JSONL: symbols, signatures, relations, node ids).",
|
|
45
|
+
promptSnippet: "Use mex_scope first for codebase questions to get a compact set of relevant symbols instead of scanning files.",
|
|
46
|
+
promptGuidelines: [
|
|
47
|
+
"Describe the task in natural language, e.g. 'trace the authentication flow'.",
|
|
48
|
+
"Scope matching is word-based, not semantic. If results look weak, rephrase once, then fall back to grep/read.",
|
|
49
|
+
"Expand promising node ids with mex_get instead of reading whole files.",
|
|
50
|
+
],
|
|
51
|
+
parameters: Type.Object({
|
|
52
|
+
task: Type.String({ description: "Task description, e.g. 'trace the authentication flow'." }),
|
|
53
|
+
...RETRIEVAL_PARAMS,
|
|
54
|
+
fingerprint: Type.Optional(Type.Boolean({ description: "Attach node fingerprints (grounding workflow)." })),
|
|
55
|
+
}),
|
|
56
|
+
async execute(_id, params) {
|
|
57
|
+
return exec("scope", buildScopeArgs(params.task, params));
|
|
58
|
+
},
|
|
59
|
+
renderCall(args, theme, context) {
|
|
60
|
+
return renderSingleLineToolCall(formatBracketedToolCall("mex scope", args?.task, theme), context);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
register({
|
|
64
|
+
name: "mex_get",
|
|
65
|
+
label: "Mex Get",
|
|
66
|
+
description: "Expand source code for specific mex code-graph node ids returned by mex_scope, mex_query, or mex_impact.",
|
|
67
|
+
promptSnippet: "Expand mex node ids to source instead of reading whole files.",
|
|
68
|
+
parameters: Type.Object({
|
|
69
|
+
ids: Type.Array(Type.String({ description: "Node id, e.g. function:a3f8...c21" })),
|
|
70
|
+
maxSourceLines: Type.Optional(Type.Number({ description: "Per-node source line cap." })),
|
|
71
|
+
maxOutputTokens: Type.Optional(Type.Number({ description: "Hard output token ceiling." })),
|
|
72
|
+
}),
|
|
73
|
+
async execute(_id, params) {
|
|
74
|
+
return exec("get", buildGetArgs(params.ids, params));
|
|
75
|
+
},
|
|
76
|
+
renderCall(args, theme, context) {
|
|
77
|
+
const ids = Array.isArray(args?.ids) ? args.ids : [];
|
|
78
|
+
return renderSingleLineToolCall(formatBracketedToolCall("mex get", ids.length > 1 ? `${ids[0]} +${ids.length - 1}` : ids[0], theme), context);
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
register({
|
|
82
|
+
name: "mex_query",
|
|
83
|
+
label: "Mex Query",
|
|
84
|
+
description: `Query structural code relations in the mex graph: ${MEX_RELATIONS.join(", ")}.`,
|
|
85
|
+
promptSnippet: "Use mex_query for precise structural questions like who calls a function or where a symbol is defined.",
|
|
86
|
+
parameters: Type.Object({
|
|
87
|
+
relation: Type.String({ description: MEX_RELATIONS.join(" | ") }),
|
|
88
|
+
target: Type.String({ description: "Symbol or file name." }),
|
|
89
|
+
...RETRIEVAL_PARAMS,
|
|
90
|
+
}),
|
|
91
|
+
async execute(_id, params) {
|
|
92
|
+
return exec("query", buildQueryArgs(params.relation, params.target, params));
|
|
93
|
+
},
|
|
94
|
+
renderCall(args, theme, context) {
|
|
95
|
+
return renderSingleLineToolCall(formatBracketedToolCall("mex query", [args?.relation, args?.target].filter(Boolean).join(" "), theme), context);
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
register({
|
|
99
|
+
name: "mex_impact",
|
|
100
|
+
label: "Mex Impact",
|
|
101
|
+
description: "Show the transitive code and wiki blast radius for a symbol or file before refactoring.",
|
|
102
|
+
promptSnippet: "Use mex_impact before refactors to see what a symbol or file change touches.",
|
|
103
|
+
parameters: Type.Object({
|
|
104
|
+
target: Type.String({ description: "Symbol name or file path." }),
|
|
105
|
+
depth: Type.Optional(Type.Number({ description: "Transitive caller depth. Default 2." })),
|
|
106
|
+
...RETRIEVAL_PARAMS,
|
|
107
|
+
}),
|
|
108
|
+
async execute(_id, params) {
|
|
109
|
+
return exec("impact", buildImpactArgs(params.target, params));
|
|
110
|
+
},
|
|
111
|
+
renderCall(args, theme, context) {
|
|
112
|
+
return renderSingleLineToolCall(formatBracketedToolCall("mex impact", args?.target, theme), context);
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
register({
|
|
116
|
+
name: "mex_log",
|
|
117
|
+
label: "Mex Log",
|
|
118
|
+
description: `Append a ${MEX_LOG_TYPES.join("/")} entry to the repo-local mex event log (.mex/events).`,
|
|
119
|
+
promptSnippet: "Log durable repo decisions, risks, or todos into the mex event log.",
|
|
120
|
+
promptGuidelines: [
|
|
121
|
+
"Log decisions only when they are actually settled in this conversation.",
|
|
122
|
+
"Keep entries short and repo-specific; no secrets, credentials, or private hostnames.",
|
|
123
|
+
],
|
|
124
|
+
parameters: Type.Object({
|
|
125
|
+
message: Type.String({ description: "Short entry text." }),
|
|
126
|
+
type: Type.Optional(Type.String({ description: `${MEX_LOG_TYPES.join(" | ")}. Default note.` })),
|
|
127
|
+
files: Type.Optional(Type.Array(Type.String({ description: "Related file path." }))),
|
|
128
|
+
status: Type.Optional(Type.String({ description: "Lifecycle status, e.g. decided or implemented." })),
|
|
129
|
+
}),
|
|
130
|
+
async execute(_id, params) {
|
|
131
|
+
return exec("log", buildLogArgs(params.message, params));
|
|
132
|
+
},
|
|
133
|
+
renderCall(args, theme, context) {
|
|
134
|
+
return renderSingleLineToolCall(formatBracketedToolCall(`mex log ${String(args?.type ?? "note")}`, args?.message, theme), context);
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
return registered;
|
|
138
|
+
}
|
|
139
|
+
export default function mexMemoryExtension(pi) {
|
|
140
|
+
const cwd = process.cwd();
|
|
141
|
+
if (!isMexAvailable(process.env, cwd))
|
|
142
|
+
return;
|
|
143
|
+
registerMexTools(pi, { cwd });
|
|
144
|
+
pi.on?.("session_start", (_event, ctx) => {
|
|
145
|
+
ctx?.ui?.setStatus?.(MEX_STATUS_KEY, mexStatusLabel(cwd));
|
|
146
|
+
void autoBuildMissingGraph(cwd, ctx);
|
|
147
|
+
});
|
|
148
|
+
pi.registerCommand("mex", {
|
|
149
|
+
description: "Mex code graph: /mex [status] | graph | check | timeline | scope <task>",
|
|
150
|
+
handler: async (args, ctx) => {
|
|
151
|
+
const [sub, ...rest] = (args || "").trim().split(/\s+/);
|
|
152
|
+
const argument = rest.join(" ").trim();
|
|
153
|
+
const action = (sub || "status").toLowerCase();
|
|
154
|
+
try {
|
|
155
|
+
if (action === "status") {
|
|
156
|
+
const result = await runMex(buildCheckArgs({ quiet: true }), { cwd });
|
|
157
|
+
const lines = [
|
|
158
|
+
`mex scaffold: ${hasMexScaffold(cwd) ? mexPathLabel(cwd) : "missing"}`,
|
|
159
|
+
`mex graph.db: ${hasMexGraphDb(cwd) ? "present" : isMexAutoGraphEnabled() ? "missing (auto-build on demand)" : "missing (auto-build disabled)"}`,
|
|
160
|
+
result.output,
|
|
161
|
+
];
|
|
162
|
+
ctx.ui.notify(lines.filter(Boolean).join("\n"), result.ok ? "info" : "warning");
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (action === "graph") {
|
|
166
|
+
// Never let `mex graph` create a scaffold/DB in `~/.mex` when we're running outside a repo scaffold.
|
|
167
|
+
// Don't rebuild when graph.db already exists; just skip to avoid touching ~/.mex.
|
|
168
|
+
const ensured = await ensureMexGraphDb({ cwd, env: process.env, runner: undefined, timeoutMs: 300_000 });
|
|
169
|
+
const message = describeMexGraphEnsure(ensured);
|
|
170
|
+
if (message)
|
|
171
|
+
ctx.ui.notify(message, ensured.status === "built" ? "info" : "warning");
|
|
172
|
+
else
|
|
173
|
+
ctx.ui.notify("mex graph skipped.", ensured.status === "built" ? "info" : "warning");
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (action === "check") {
|
|
177
|
+
const result = await runMex(buildCheckArgs({}), { cwd, timeoutMs: 300_000 });
|
|
178
|
+
ctx.ui.notify(result.output || "No drift output.", result.ok ? "info" : "warning");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (action === "timeline") {
|
|
182
|
+
const result = await runMex(buildTimelineArgs({ limit: 20 }), { cwd });
|
|
183
|
+
ctx.ui.notify(result.output || "No mex events.", "info");
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (action === "scope") {
|
|
187
|
+
if (!argument)
|
|
188
|
+
return ctx.ui.notify("Usage: /mex scope <task>", "warning");
|
|
189
|
+
const result = await runMex(buildScopeArgs(argument, {}), { cwd });
|
|
190
|
+
ctx.ui.notify(result.output || "No scope results.", result.ok ? "info" : "warning");
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
ctx.ui.notify("Usage: /mex [status] | graph | check | timeline | scope <task>", "warning");
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
ctx.ui.notify(`mex command failed:\n${error instanceof Error ? error.message : String(error)}`, "error");
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function mexPathLabel(cwd) {
|
|
202
|
+
return `${cwd.replace(/\/+$/, "")}/.mex`;
|
|
203
|
+
}
|
|
204
|
+
function graphEnsureOptions(options) {
|
|
205
|
+
return { cwd: options.cwd, env: options.env, runner: options.runner };
|
|
206
|
+
}
|
|
207
|
+
/** Only a scaffold with a usable code graph counts as "mex is working"; otherwise the segment stays hidden. */
|
|
208
|
+
export function mexStatusLabel(cwd = process.cwd()) {
|
|
209
|
+
return hasMexScaffold(cwd) && hasMexGraphDb(cwd) ? MEX_STATUS_LABEL : undefined;
|
|
210
|
+
}
|
|
211
|
+
/** Builds a missing code graph in the background so the first graph tool call is not blocked. */
|
|
212
|
+
async function autoBuildMissingGraph(cwd, ctx) {
|
|
213
|
+
if (!hasMexScaffold(cwd) || hasMexGraphDb(cwd) || !isMexAutoGraphEnabled())
|
|
214
|
+
return undefined;
|
|
215
|
+
ctx?.ui?.setStatus?.(MEX_STATUS_KEY, MEX_STATUS_BUILDING_LABEL);
|
|
216
|
+
try {
|
|
217
|
+
const result = await ensureMexGraphDb({ cwd });
|
|
218
|
+
const message = describeMexGraphEnsure(result);
|
|
219
|
+
if (message)
|
|
220
|
+
ctx?.ui?.notify?.(message, result.status === "built" ? "info" : "warning");
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
ctx?.ui?.notify?.(`mex graph build failed:\n${error instanceof Error ? error.message : String(error)}`, "warning");
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
ctx?.ui?.setStatus?.(MEX_STATUS_KEY, mexStatusLabel(cwd));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=mex-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mex-memory.js","sourceRoot":"","sources":["../../../src/prism-extensions/integrations/mex-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createDiagnosticToolboxTools } from "./diagnostic-tools.js";
|
|
2
2
|
import { createPrismDiagnosticToolboxTools } from "./prism-diagnostic-tools.js";
|
|
3
3
|
import { createSshConfigTool } from "./ssh-config-tool.js";
|
|
4
|
+
import { createMexToolboxTools } from "./mex-tools.js";
|
|
4
5
|
export function defineToolboxTool(definition) {
|
|
5
6
|
return { source: "toolbox/builtin", ...definition };
|
|
6
7
|
}
|
|
@@ -8,6 +9,7 @@ export const builtinToolboxTools = [
|
|
|
8
9
|
createSshConfigTool(),
|
|
9
10
|
...createDiagnosticToolboxTools(),
|
|
10
11
|
...createPrismDiagnosticToolboxTools(),
|
|
12
|
+
...createMexToolboxTools(),
|
|
11
13
|
];
|
|
12
14
|
export function createBuiltinToolboxTools() {
|
|
13
15
|
return builtinToolboxTools.map((tool) => ({ ...tool }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../../src/prism-extensions/tools/builtin-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../../src/prism-extensions/tools/builtin-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,UAAU,iBAAiB,CAAC,UAAiC;IACjE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,EAAE,CAAA;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA4B;IAC1D,mBAAmB,EAAE;IACrB,GAAG,4BAA4B,EAAE;IACjC,GAAG,iCAAiC,EAAE;IACtC,GAAG,qBAAqB,EAAE;CAC3B,CAAA;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Type } from "typebox";
|
|
2
|
+
import { buildCheckArgs, buildGraphArgs, buildTimelineArgs, hasMexScaffold, isMexCliInstalled, MEX_LOG_TYPES, runMex, } from "../core/mex-cli.js";
|
|
3
|
+
import { textToolResult, timeoutMs } from "./toolbox-utils.js";
|
|
4
|
+
const MEX_TAGS = ["mex", "codegraph", "graph", "wiki", "scaffold", "drift", "documentation", "memory"];
|
|
5
|
+
function runOptions(params, fallbackTimeout) {
|
|
6
|
+
return {
|
|
7
|
+
cwd: typeof params.cwd === "string" && params.cwd.trim() ? params.cwd.trim() : process.cwd(),
|
|
8
|
+
timeoutMs: timeoutMs(params.timeoutMs, fallbackTimeout),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function guardScaffold(cwd) {
|
|
12
|
+
if (!isMexCliInstalled())
|
|
13
|
+
throw new Error("mex CLI not found. Install it with: npm install -g mex-agent");
|
|
14
|
+
if (!hasMexScaffold(cwd))
|
|
15
|
+
throw new Error(`No .mex scaffold in ${cwd}. Run 'npx mex-agent setup' first.`);
|
|
16
|
+
}
|
|
17
|
+
async function execute(action, args, options) {
|
|
18
|
+
guardScaffold(options.cwd ?? process.cwd());
|
|
19
|
+
const result = await runMex(args, options);
|
|
20
|
+
return textToolResult(result.output || `mex ${action} produced no output.`, { action, ok: result.ok, exitCode: result.exitCode, cwd: options.cwd });
|
|
21
|
+
}
|
|
22
|
+
function createMexGraphBuildTool() {
|
|
23
|
+
return {
|
|
24
|
+
name: "mex_graph_build",
|
|
25
|
+
label: "Mex Graph Build",
|
|
26
|
+
description: "Rebuild the local mex code knowledge graph (.mex/graph.db) so scope/query/impact results are current.",
|
|
27
|
+
tags: [...MEX_TAGS, "build", "index", "rebuild"],
|
|
28
|
+
parameters: Type.Object({
|
|
29
|
+
cwd: Type.Optional(Type.String({ description: "Repository root. Defaults to the current working directory." })),
|
|
30
|
+
json: Type.Optional(Type.Boolean({ description: "Return the build summary as JSON." })),
|
|
31
|
+
timeoutMs: Type.Optional(Type.Number({ description: "Command timeout in milliseconds. Default 120000." })),
|
|
32
|
+
}),
|
|
33
|
+
async execute(_id, params) {
|
|
34
|
+
const options = runOptions(params, 120_000);
|
|
35
|
+
return execute("graph", buildGraphArgs({ json: params.json, root: params.cwd }), options);
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function createMexCheckTool() {
|
|
40
|
+
return {
|
|
41
|
+
name: "mex_check",
|
|
42
|
+
label: "Mex Check",
|
|
43
|
+
description: "Run mex drift detection between the .mex wiki and the codebase (paths, commands, dependencies, links, grounded symbols).",
|
|
44
|
+
tags: [...MEX_TAGS, "check", "health", "stale", "validate"],
|
|
45
|
+
parameters: Type.Object({
|
|
46
|
+
cwd: Type.Optional(Type.String({ description: "Repository root. Defaults to the current working directory." })),
|
|
47
|
+
json: Type.Optional(Type.Boolean({ description: "Return the full drift report as JSON." })),
|
|
48
|
+
quiet: Type.Optional(Type.Boolean({ description: "Single-line summary only." })),
|
|
49
|
+
timeoutMs: Type.Optional(Type.Number({ description: "Command timeout in milliseconds. Default 120000." })),
|
|
50
|
+
}),
|
|
51
|
+
async execute(_id, params) {
|
|
52
|
+
return execute("check", buildCheckArgs({ json: params.json, quiet: params.quiet }), runOptions(params, 120_000));
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function createMexTimelineTool() {
|
|
57
|
+
return {
|
|
58
|
+
name: "mex_timeline",
|
|
59
|
+
label: "Mex Timeline",
|
|
60
|
+
description: `Read recent entries from the mex event log (${MEX_LOG_TYPES.join("/")}) for repo history and past decisions.`,
|
|
61
|
+
tags: [...MEX_TAGS, "timeline", "events", "decisions", "history", "log"],
|
|
62
|
+
parameters: Type.Object({
|
|
63
|
+
cwd: Type.Optional(Type.String({ description: "Repository root. Defaults to the current working directory." })),
|
|
64
|
+
since: Type.Optional(Type.String({ description: "YYYY-MM-DD or relative like 30d." })),
|
|
65
|
+
type: Type.Optional(Type.String({ description: MEX_LOG_TYPES.join(" | ") })),
|
|
66
|
+
limit: Type.Optional(Type.Number({ description: "Maximum entries." })),
|
|
67
|
+
json: Type.Optional(Type.Boolean({ description: "Return events as JSON." })),
|
|
68
|
+
timeoutMs: Type.Optional(Type.Number({ description: "Command timeout in milliseconds. Default 30000." })),
|
|
69
|
+
}),
|
|
70
|
+
async execute(_id, params) {
|
|
71
|
+
return execute("timeline", buildTimelineArgs(params), runOptions(params, 30_000));
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function createMexToolboxTools() {
|
|
76
|
+
return [createMexGraphBuildTool(), createMexCheckTool(), createMexTimelineTool()];
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=mex-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mex-tools.js","sourceRoot":"","sources":["../../../src/prism-extensions/tools/mex-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export declare function providerModelLabel(model: {
|
|
|
17
17
|
export declare function modeLabel(ctx: ExtensionContext, statuses?: ReadonlyMap<string, string>): string;
|
|
18
18
|
export declare function thinkingLabel(ctx: ExtensionContext, getThinkingLevel?: () => unknown): string;
|
|
19
19
|
export declare function toolbarAccent(theme: ThemeLike, text: string): string;
|
|
20
|
+
/** Role-play status is only worth a toolbar slot while a role-play is actually running. */
|
|
21
|
+
export declare function rpLabel(status: string | undefined): string | undefined;
|
|
20
22
|
export declare function cavemanColor(mode: string): number;
|
|
21
23
|
export declare function cavemanLabel(status: string | undefined): string | undefined;
|
|
22
24
|
export declare function contextBarLabel(usage: any): string;
|
|
@@ -63,6 +63,13 @@ export function thinkingLabel(ctx, getThinkingLevel) {
|
|
|
63
63
|
export function toolbarAccent(theme, text) {
|
|
64
64
|
return fg(theme, "accent", text);
|
|
65
65
|
}
|
|
66
|
+
/** Role-play status is only worth a toolbar slot while a role-play is actually running. */
|
|
67
|
+
export function rpLabel(status) {
|
|
68
|
+
const value = status?.trim();
|
|
69
|
+
if (!value || /^RP:\s*off$/i.test(value))
|
|
70
|
+
return undefined;
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
66
73
|
export function cavemanColor(mode) {
|
|
67
74
|
const normalized = mode.toLowerCase();
|
|
68
75
|
if (normalized === "lite")
|
|
@@ -193,7 +200,9 @@ class ToolbarFooter {
|
|
|
193
200
|
const obsidian = statuses?.get("obsidian-memory");
|
|
194
201
|
const logseq = statuses?.get("logseq-memory");
|
|
195
202
|
const aiMemory = statuses?.get("ai-memory");
|
|
196
|
-
|
|
203
|
+
const mex = statuses?.get("mex");
|
|
204
|
+
const rp = rpLabel(statuses?.get("rp"));
|
|
205
|
+
return [joinDistributed([mode ? fg(this.theme, "success", mode) : undefined, model, fg(this.theme, "accent", `🔧 ${toolCalls}`), fg(this.theme, "dim", `↑${formatTokens(input)}`), fg(this.theme, "dim", `↓${formatTokens(output)}`), fg(this.theme, "success", `$${cost.toFixed(4)}`), context, caveman, obsidian, logseq, aiMemory ? `AI Memory: ${aiMemory}` : undefined, mex, rp, thinking].filter(Boolean), Math.max(0, width))];
|
|
197
206
|
}
|
|
198
207
|
}
|
|
199
208
|
export default function toolbarExtension(pi) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/prism-extensions/ui/toolbar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/prism-extensions/ui/toolbar.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,6 +104,21 @@ export function loadProjectContextFiles(options) {
|
|
|
104
104
|
currentDir = parentDir;
|
|
105
105
|
}
|
|
106
106
|
contextFiles.push(...ancestorContextFiles);
|
|
107
|
+
// prism: extra context files (e.g. .mex/AGENTS.md) load like AGENTS.md so they appear under "Context".
|
|
108
|
+
for (const extraContextEntry of (process.env.PRISM_EXTRA_CONTEXT_FILES ?? "").split("\n")) {
|
|
109
|
+
const extraContextPath = extraContextEntry.trim();
|
|
110
|
+
if (!extraContextPath || seenPaths.has(extraContextPath))
|
|
111
|
+
continue;
|
|
112
|
+
try {
|
|
113
|
+
if (!statSync(extraContextPath).isFile())
|
|
114
|
+
continue;
|
|
115
|
+
contextFiles.push({ path: extraContextPath, content: readFileSync(extraContextPath, "utf-8") });
|
|
116
|
+
seenPaths.add(extraContextPath);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// Unreadable extra context file: ignore, it is optional by design.
|
|
120
|
+
}
|
|
121
|
+
}
|
|
107
122
|
return contextFiles;
|
|
108
123
|
}
|
|
109
124
|
export class DefaultResourceLoader {
|
package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js
CHANGED
|
@@ -484,8 +484,8 @@ export class InteractiveMode {
|
|
|
484
484
|
}));
|
|
485
485
|
// Convert extension commands to SlashCommand format
|
|
486
486
|
const builtinCommandNames = new Set(slashCommands.map((c) => c.name));
|
|
487
|
-
const prismInternalCommandExtensions = new Set(["caveman-mode.ts", "clear-session.ts", "eval-command.ts", "git-commit.ts", "plan-command.ts", "prompt-review-command.ts", "self-improve-command.ts", "
|
|
488
|
-
const prismInternalCommandNpmPackages = new Set(["pi-mcp-adapter"]);
|
|
487
|
+
const prismInternalCommandExtensions = new Set(["caveman-mode.ts", "clear-session.ts", "eval-command.ts", "git-commit.ts", "plan-command.ts", "prompt-review-command.ts", "self-improve-command.ts", "vote-command.ts", "obsidian-memory.ts", "logseq-memory.ts", "research-tools.ts", "ai-memory-system.ts", "rp-memory.ts", "mex-memory.ts", "manifest-provider.ts", "ollama-provider.ts", "toolbox.ts", "self-improvement-tools.ts", "context-usage.ts", "prism-status.ts", "toolbar.ts", "pi-mcp-adapter", "@juicesharp/rpiv-voice", "@juicesharp/rpiv-todo"]);
|
|
488
|
+
const prismInternalCommandNpmPackages = new Set(["pi-mcp-adapter", "@juicesharp/rpiv-voice", "@juicesharp/rpiv-todo"]);
|
|
489
489
|
const isPrismInternalCommand = (cmd) => (() => { const prismExtensionPath = String(cmd.sourceInfo?.path || "").replaceAll("\\", "/"); const prismExtensionSource = String(cmd.sourceInfo?.source || ""); return prismInternalCommandExtensions.has(path.basename(prismExtensionPath)) || Array.from(prismInternalCommandNpmPackages).some((pkg) => prismExtensionSource === "npm:" + pkg || prismExtensionPath.includes("/node_modules/" + pkg + "/")); })();
|
|
490
490
|
const extensionCommands = this.session.extensionRunner
|
|
491
491
|
.getRegisteredCommands()
|
|
@@ -679,7 +679,7 @@ export class InteractiveMode {
|
|
|
679
679
|
await this.themeController.applyFromSettings();
|
|
680
680
|
// Add header with keybindings from config (unless silenced)
|
|
681
681
|
if (this.options.verbose || !this.settingsManager.getQuietStartup()) {
|
|
682
|
-
const logo = "▲ \u001b[38;5;196mp\u001b[38;5;202mr\u001b[38;5;226mi\u001b[38;5;46ms\u001b[38;5;51mm\u001b[0m v0.2.
|
|
682
|
+
const logo = "▲ \u001b[38;5;196mp\u001b[38;5;202mr\u001b[38;5;226mi\u001b[38;5;46ms\u001b[38;5;51mm\u001b[0m v0.2.96";
|
|
683
683
|
// Build startup instructions using keybinding hint helpers
|
|
684
684
|
const hint = (keybinding, description) => keyHint(keybinding, description);
|
|
685
685
|
const expandedInstructions = [
|
|
@@ -1348,8 +1348,8 @@ export class InteractiveMode {
|
|
|
1348
1348
|
const promptCompactList = formatCompactList(templates.map((template) => `/${template.name}`));
|
|
1349
1349
|
addLoadedSection("Prompts", promptCompactList, templateList);
|
|
1350
1350
|
}
|
|
1351
|
-
const prismInternalExtensions = new Set(["caveman-mode.ts", "clear-session.ts", "eval-command.ts", "git-commit.ts", "plan-command.ts", "prompt-review-command.ts", "self-improve-command.ts", "
|
|
1352
|
-
const prismInternalNpmPackages = new Set(["pi-mcp-adapter"]);
|
|
1351
|
+
const prismInternalExtensions = new Set(["caveman-mode.ts", "clear-session.ts", "eval-command.ts", "git-commit.ts", "plan-command.ts", "prompt-review-command.ts", "self-improve-command.ts", "vote-command.ts", "obsidian-memory.ts", "logseq-memory.ts", "research-tools.ts", "ai-memory-system.ts", "rp-memory.ts", "mex-memory.ts", "manifest-provider.ts", "ollama-provider.ts", "toolbox.ts", "self-improvement-tools.ts", "context-usage.ts", "prism-status.ts", "toolbar.ts", "pi-mcp-adapter", "@juicesharp/rpiv-voice", "@juicesharp/rpiv-todo"]);
|
|
1352
|
+
const prismInternalNpmPackages = new Set(["pi-mcp-adapter", "@juicesharp/rpiv-voice", "@juicesharp/rpiv-todo"]);
|
|
1353
1353
|
extensions = extensions.filter((extension) => !(() => { const prismExtensionPath = String(extension.path || "").replaceAll("\\", "/"); const prismExtensionSource = String(extension.sourceInfo?.source || ""); return prismInternalExtensions.has(path.basename(prismExtensionPath)) || Array.from(prismInternalNpmPackages).some((pkg) => prismExtensionSource === "npm:" + pkg || prismExtensionPath.includes("/node_modules/" + pkg + "/")); })());
|
|
1354
1354
|
if (extensions.length > 0) {
|
|
1355
1355
|
const groups = this.buildScopeGroups(extensions);
|
|
@@ -2932,7 +2932,7 @@ export class InteractiveMode {
|
|
|
2932
2932
|
});
|
|
2933
2933
|
}
|
|
2934
2934
|
getPrismReadOnlyToolNames() {
|
|
2935
|
-
const readOnly = new Set(["read", "grep", "find", "ls", "obsidian_memory_read", "obsidian_memory_search", "obsidian_memory_list", "
|
|
2935
|
+
const readOnly = new Set(["read", "grep", "find", "ls", "web_search", "web_fetch", "obsidian_memory_read", "obsidian_memory_search", "obsidian_memory_list", "logseq_read", "logseq_search", "logseq_list", "ai_memory_search", "ai_memory_read", "ai_memory_status", "ai_memory_vault_list", "mex_scope", "mex_get", "mex_query", "mex_impact", "rp_state", "rp_search", "toolbox_search", "self_improvement_list", "todo"]);
|
|
2936
2936
|
return this.session.getActiveToolNames().filter((name) => readOnly.has(name));
|
|
2937
2937
|
}
|
|
2938
2938
|
setPrismPlanStatus(enabled) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daniel156161/prism",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.96",
|
|
4
4
|
"description": "Prism-branded wrapper around pi that stores config in ~/.prism",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -27,8 +27,10 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@earendil-works/pi-ai": "^0.84.2",
|
|
29
29
|
"@earendil-works/pi-coding-agent": "^0.84.2",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
30
|
+
"@juicesharp/rpiv-todo": "^2.6.2",
|
|
31
|
+
"@juicesharp/rpiv-voice": "^2.6.2",
|
|
32
|
+
"pi-mcp-adapter": "^2.26.1",
|
|
33
|
+
"typebox": "^1.3.15"
|
|
32
34
|
},
|
|
33
35
|
"bundledDependencies": [
|
|
34
36
|
"@earendil-works/pi-coding-agent"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Prism extension code is grouped by responsibility:
|
|
3
3
|
- `commands/` — slash-command extensions (`/caveman`, `/plan`, `/git-commit`, `/self-improve`, `/eval`, `/vote`, `/prompt-review`, terminal clearing).
|
|
4
4
|
- `core/` — shared config and utility primitives used by multiple extensions.
|
|
5
|
-
- `integrations/` — external integrations and agent tools (Obsidian memory, AI Memory search/read, web research).
|
|
5
|
+
- `integrations/` — external integrations and agent tools (Obsidian memory, AI Memory search/read, web research, mex code graph).
|
|
6
6
|
- `providers/` — optional model/provider adapters (Ollama, Manifest).
|
|
7
7
|
- `tools/` — toolbox registry, hidden built-in toolbox tools, and self-improvement persistence tools.
|
|
8
8
|
- `ui/` — toolbar, status, context usage and tool-call rendering helpers.
|
|
@@ -17,3 +17,12 @@ Prism's self-improvement helpers are intentionally human-gated:
|
|
|
17
17
|
- `/prompt-review <focus>` reviews prompts/behavior patterns and proposes safer candidates without auto-applying them.
|
|
18
18
|
|
|
19
19
|
See `docs/safe-harness-improvement.md` for the full workflow and safety boundaries.
|
|
20
|
+
|
|
21
|
+
## mex code graph
|
|
22
|
+
`integrations/mex-memory.ts` only loads when the `mex` CLI (`npm install -g mex-agent`) is installed **and** the current repo has a `.mex/` scaffold (`npx mex-agent setup`). It then exposes `mex_scope`, `mex_get`, `mex_query`, `mex_impact`, `mex_log` plus the `/mex` command. Maintenance commands (`mex_graph_build`, `mex_check`, `mex_timeline`) live in the hidden toolbox.
|
|
23
|
+
|
|
24
|
+
A missing `.mex/graph.db` is rebuilt automatically via `core/mex-graph-db.ts`: in the background on session start and lazily before the first graph-reading tool call. It requires an existing `.mex/` scaffold; without one nothing is built. Builds are deduplicated per scaffold and failures degrade to mex's own `GRAPH_UNAVAILABLE` handling.
|
|
25
|
+
|
|
26
|
+
The `🕸 mex` toolbar segment only appears when mex actually works, i.e. scaffold **and** a non-empty `graph.db`. While a build runs it shows `🕸 mex ⟳`; disabled, scaffold-less or failed states show nothing.
|
|
27
|
+
|
|
28
|
+
Env switches: `PRISM_DISABLE_MEX=1` (off), `PRISM_MEX_FORCE=1` (load without scaffold), `PRISM_MEX_BIN` (custom binary), `PRISM_MEX_TELEMETRY=1` (allow mex telemetry; off by default), `PRISM_DISABLE_MEX_AUTO_GRAPH=1` (never auto-build `graph.db`).
|
|
@@ -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
|
+
|
|
5
|
+
/** Anchor file every mex scaffold exposes as its always-loaded entry point. */
|
|
6
|
+
export const MEX_ANCHOR_FILE = "AGENTS.md"
|
|
7
|
+
|
|
8
|
+
export function mexAnchorPath(cwd: string = process.cwd()): string {
|
|
9
|
+
return path.join(mexScaffoldDir(cwd), MEX_ANCHOR_FILE)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function isMexAnchorEnabled(env: NodeJS.ProcessEnv = process.env): boolean {
|
|
13
|
+
return env.PRISM_DISABLE_MEX_ANCHOR !== "1"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Absolute path of `.mex/AGENTS.md` when it should be loaded as a pi context file,
|
|
18
|
+
* i.e. the mex CLI plus scaffold are available and the anchor is not disabled.
|
|
19
|
+
*/
|
|
20
|
+
export function mexAnchorContextFile(cwd: string = process.cwd(), env: NodeJS.ProcessEnv = process.env): string | undefined {
|
|
21
|
+
if (!isMexAnchorEnabled(env)) return undefined
|
|
22
|
+
if (!isMexAvailable(env, cwd)) return undefined
|
|
23
|
+
const anchor = mexAnchorPath(cwd)
|
|
24
|
+
try {
|
|
25
|
+
return fs.statSync(anchor).isFile() ? anchor : undefined
|
|
26
|
+
} catch {
|
|
27
|
+
return undefined
|
|
28
|
+
}
|
|
29
|
+
}
|