@echomem/mcp 1.4.9 → 1.4.10
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/assets/hud/github.svg +1 -0
- package/dist/city/README.md +9 -0
- package/dist/city/echo-ai-city-only.html +54 -93
- package/dist/context-analysis/claude-canonical-adapter.js +315 -0
- package/dist/context-analysis/claude-native-canonical.js +35 -12
- package/dist/context-metrics/calculate.js +2 -15
- package/dist/context-metrics/estimator.js +45 -0
- package/dist/context-metrics/ledger.js +507 -0
- package/dist/context-metrics/parse-claude.js +227 -0
- package/dist/context-metrics/parse-codex.js +276 -0
- package/dist/hud/adapters.js +69 -198
- package/dist/hud/cli.js +0 -0
- package/dist/hud/efficiency.js +447 -0
- package/dist/hud/electron-main.js +3 -2
- package/dist/hud/fs.js +14 -0
- package/dist/hud/metric.js +4 -98
- package/dist/hud/monitor.js +1 -12
- package/dist/hud/render.js +4 -3
- package/dist/hud/server.js +30 -0
- package/dist/hud/web.js +409 -186
- package/dist/index.js +0 -0
- package/dist/setup-page/client-core.js +475 -0
- package/dist/setup-page/client-extraction.js +550 -0
- package/dist/setup-page/client-lifecycle.js +116 -0
- package/dist/setup-page/client-report-audit.js +818 -0
- package/dist/setup-page/client-report-city.js +204 -0
- package/dist/setup-page/client-report.js +6 -0
- package/dist/setup-page/client.js +15 -0
- package/dist/setup-page/document.js +37 -0
- package/dist/setup-page/styles-city-report.js +880 -0
- package/dist/setup-page/styles-context-audit.js +470 -0
- package/dist/setup-page/styles-extraction.js +821 -0
- package/dist/setup-page/styles-foundation.js +231 -0
- package/dist/setup-page/styles.js +11 -0
- package/dist/setup-page.js +6 -5623
- package/dist/setup.js +24 -10
- package/package.json +4 -4
- package/dist/city/10-problems-report.html +0 -649
- package/dist/city/_live.html +0 -37
- package/dist/city/_serve.mjs +0 -45
- package/dist/city/card-data.json +0 -15
- package/dist/city/chaos-to-clarity-pencil.html +0 -582
- package/dist/city/city-data.json +0 -248
- package/dist/city/echo-ai-city-only.template.html +0 -2271
- package/dist/city/generate-echo-city-only.mjs +0 -112
- package/dist/city/pencil-pie-generator.html +0 -883
- package/dist/city/pencil-webgl-landscape.html +0 -1239
- package/dist/city/spatial-fan-story.html +0 -479
package/dist/hud/server.js
CHANGED
|
@@ -157,6 +157,35 @@ export async function createHudServer(opts = {}) {
|
|
|
157
157
|
res.end(JSON.stringify({ ok: canReveal, reason: canReveal ? undefined : opts.onReveal ? "unknown_path" : "no_desktop" }));
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
|
+
if (url.pathname === "/jump") {
|
|
161
|
+
// Deep-link into the session's own app, at the conversation level:
|
|
162
|
+
// Claude Code CLI session -> claude://resume?session=<uuid> (imports + opens in Claude desktop)
|
|
163
|
+
// Codex thread -> codex://threads/<uuid> (opens in the ChatGPT app's Codex)
|
|
164
|
+
// The uuid is the one already embedded in the tracked transcript filename.
|
|
165
|
+
const id = url.searchParams.get("id") || "";
|
|
166
|
+
const rec = (latest.recentSessions || []).find((s) => s.id === id);
|
|
167
|
+
let link = "";
|
|
168
|
+
if (rec) {
|
|
169
|
+
const uuid = (path.basename(rec.sourcePath).match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i) || [])[0] || "";
|
|
170
|
+
if (uuid)
|
|
171
|
+
link = rec.client === "codex" ? `codex://threads/${uuid}` : `claude://resume?session=${uuid}`;
|
|
172
|
+
else if (rec.client === "claude-desktop")
|
|
173
|
+
link = "claude://";
|
|
174
|
+
}
|
|
175
|
+
let ok = false;
|
|
176
|
+
if (link) {
|
|
177
|
+
try {
|
|
178
|
+
execFileSync("open", [link]);
|
|
179
|
+
ok = true;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
ok = false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
res.writeHead(200, { "content-type": "application/json" });
|
|
186
|
+
res.end(JSON.stringify({ ok, link: link || undefined }));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
160
189
|
if (url.pathname === "/renew") {
|
|
161
190
|
handleRenew(latest, res).catch((error) => {
|
|
162
191
|
if (res.writableEnded)
|
|
@@ -511,6 +540,7 @@ function serveHudAsset(pathname, res) {
|
|
|
511
540
|
"/assets/hud/echo-face-cutout.png": { path: "../../assets/hud/echo-face-cutout.png", type: "image/png" },
|
|
512
541
|
"/assets/hud/claude.svg": { path: "../../assets/hud/claude.svg", type: "image/svg+xml; charset=utf-8" },
|
|
513
542
|
"/assets/hud/codex.svg": { path: "../../assets/hud/codex.svg", type: "image/svg+xml; charset=utf-8" },
|
|
543
|
+
"/assets/hud/github.svg": { path: "../../assets/hud/github.svg", type: "image/svg+xml; charset=utf-8" },
|
|
514
544
|
};
|
|
515
545
|
const asset = assets[pathname];
|
|
516
546
|
if (!asset)
|