@echomem/mcp 1.4.18 → 1.4.20
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 +12 -5
- package/dist/codex-session-files.js +7 -1
- package/dist/hud/server.js +17 -13
- package/dist/hud/web.js +204 -13
- package/dist/index.js +61 -30
- package/dist/keystore.js +9 -19
- package/dist/migrate.js +78 -36
- package/dist/setup-page/client-core.js +31 -1
- package/dist/setup-page/client-extraction.js +581 -157
- package/dist/setup-page/client-lifecycle.js +64 -43
- package/dist/setup-page/client-report-city.js +14 -5
- package/dist/setup-page/styles-extraction.js +1176 -148
- package/dist/setup-page/styles-foundation.js +20 -15
- package/dist/setup-page/styles-website-alignment.js +818 -0
- package/dist/setup-page/styles.js +2 -0
- package/dist/setup-preview.js +64 -1
- package/dist/setup.js +328 -39
- package/dist/v1-contract.js +8 -8
- package/package.json +1 -1
- package/templates/codex-skills/echomem-forget/SKILL.md +16 -0
- package/templates/codex-skills/echomem-forget/agents/openai.yaml +6 -0
- package/templates/codex-skills/echomem-login/SKILL.md +27 -0
- package/templates/codex-skills/echomem-login/agents/openai.yaml +6 -0
- package/templates/codex-skills/echomem-save/SKILL.md +14 -0
- package/templates/codex-skills/echomem-save/agents/openai.yaml +6 -0
- package/templates/codex-skills/echomem-search/SKILL.md +14 -0
- package/templates/codex-skills/echomem-search/agents/openai.yaml +6 -0
|
@@ -2,10 +2,12 @@ import { SETUP_PAGE_STYLES_FOUNDATION } from "./styles-foundation.js";
|
|
|
2
2
|
import { SETUP_PAGE_STYLES_CITY_REPORT } from "./styles-city-report.js";
|
|
3
3
|
import { SETUP_PAGE_STYLES_EXTRACTION } from "./styles-extraction.js";
|
|
4
4
|
import { SETUP_PAGE_STYLES_CONTEXT_AUDIT } from "./styles-context-audit.js";
|
|
5
|
+
import { SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT } from "./styles-website-alignment.js";
|
|
5
6
|
// Kept as one emitted style tag so the local HTML page remains self-contained.
|
|
6
7
|
export const SETUP_PAGE_STYLES = [
|
|
7
8
|
SETUP_PAGE_STYLES_FOUNDATION,
|
|
8
9
|
SETUP_PAGE_STYLES_CITY_REPORT,
|
|
9
10
|
SETUP_PAGE_STYLES_EXTRACTION,
|
|
10
11
|
SETUP_PAGE_STYLES_CONTEXT_AUDIT,
|
|
12
|
+
SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT,
|
|
11
13
|
].join("\n");
|
package/dist/setup-preview.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export const SETUP_PREVIEW_STATES = [
|
|
2
|
+
"consent",
|
|
3
|
+
"consent-required",
|
|
4
|
+
"scan",
|
|
2
5
|
"report",
|
|
3
6
|
"extract-counting",
|
|
4
7
|
"extract-ready",
|
|
8
|
+
"extract-limit",
|
|
5
9
|
"extract-run",
|
|
6
10
|
"extract-overdue",
|
|
7
11
|
"extract-done",
|
|
@@ -200,6 +204,26 @@ function previewWatermarkScript() {
|
|
|
200
204
|
}
|
|
201
205
|
export function renderSetupPreviewBootstrap(state) {
|
|
202
206
|
const watermark = previewWatermarkScript();
|
|
207
|
+
if (state === "consent") {
|
|
208
|
+
return `${watermark}
|
|
209
|
+
renderLocalScanConsent();`;
|
|
210
|
+
}
|
|
211
|
+
if (state === "consent-required") {
|
|
212
|
+
return `${watermark}
|
|
213
|
+
renderLocalScanConsent();
|
|
214
|
+
setConsentStatus("Local history access is required to continue setup. Nothing will be scanned or uploaded unless you allow it.", "required");`;
|
|
215
|
+
}
|
|
216
|
+
if (state === "scan") {
|
|
217
|
+
return `${watermark}
|
|
218
|
+
reportEnvelope = {
|
|
219
|
+
schemaVersion: 1,
|
|
220
|
+
kind: "scanning",
|
|
221
|
+
mode: "preview",
|
|
222
|
+
scanId: "design-preview",
|
|
223
|
+
progress: { stage: "classifying-sessions", label: "Classifying repeated context", scanned: 116, total: 180, stageElapsedMs: 3000 }
|
|
224
|
+
};
|
|
225
|
+
renderLoading();`;
|
|
226
|
+
}
|
|
203
227
|
if (state === "report") {
|
|
204
228
|
const reportJson = JSON.stringify(previewReport);
|
|
205
229
|
return `${watermark}
|
|
@@ -212,8 +236,20 @@ export function renderSetupPreviewBootstrap(state) {
|
|
|
212
236
|
stats = null;
|
|
213
237
|
renderDashboard();`;
|
|
214
238
|
}
|
|
215
|
-
if (state === "extract-ready") {
|
|
239
|
+
if (state === "extract-ready" || state === "extract-limit") {
|
|
240
|
+
const remainingHistory = state === "extract-limit" ? 0 : 28;
|
|
216
241
|
return `${watermark}
|
|
242
|
+
connected = true;
|
|
243
|
+
billingStatus = {
|
|
244
|
+
plan: "free", paid: false, trialAvailable: true,
|
|
245
|
+
pricingUrl: "https://echoknows.com/pricing?source=mcp_onboarding",
|
|
246
|
+
account: {
|
|
247
|
+
displayName: "Erik Hein",
|
|
248
|
+
email: "erik@example.com",
|
|
249
|
+
avatarUrl: "/hud-assets/echo-face-cutout.png"
|
|
250
|
+
},
|
|
251
|
+
historicalConversationQuota: { used: ${100 - remainingHistory}, limit: 100, remaining: ${remainingHistory} }
|
|
252
|
+
};
|
|
217
253
|
stats = {
|
|
218
254
|
sessions: { total: 136, codex: 82, claudeCode: 54 },
|
|
219
255
|
migratable: {
|
|
@@ -221,6 +257,19 @@ export function renderSetupPreviewBootstrap(state) {
|
|
|
221
257
|
alreadyMigrated: 108, skippedActive: 0,
|
|
222
258
|
eta: { estimatedLabel: "under 2 minutes" }, estimatedLabel: "under 2 minutes"
|
|
223
259
|
},
|
|
260
|
+
candidateSessions: Array.from({ length: 28 }, function (_, index) {
|
|
261
|
+
var codex = index < 19;
|
|
262
|
+
return {
|
|
263
|
+
key: (codex ? "codex:" : "claude-code:") + "preview-" + index,
|
|
264
|
+
source: codex ? "codex" : "claude-code",
|
|
265
|
+
title: ["Plan the onboarding flow", "Repair memory extraction", "Review pricing limits", "Polish the EchoMem HUD"][index % 4] + " · " + (index + 1),
|
|
266
|
+
project: ["EchoMem Chrome", "MCP Server", "Memory Platform"][index % 3],
|
|
267
|
+
date: new Date(Date.UTC(2026, 6, 18 - (index % 12))).toISOString(),
|
|
268
|
+
characters: 42000 + index * 2700,
|
|
269
|
+
approxInputTokens: 10500 + index * 675,
|
|
270
|
+
turns: 18 + index
|
|
271
|
+
};
|
|
272
|
+
}),
|
|
224
273
|
discovery: { phase: "account", exact: false }
|
|
225
274
|
};
|
|
226
275
|
renderDashboard();`;
|
|
@@ -237,6 +286,20 @@ export function renderSetupPreviewBootstrap(state) {
|
|
|
237
286
|
}
|
|
238
287
|
if (state === "extract-done") {
|
|
239
288
|
return `${watermark}
|
|
289
|
+
stats = {
|
|
290
|
+
candidateSessions: [
|
|
291
|
+
{ key: "codex:done-1", project: "EchoMem Chrome", title: "Polish the onboarding flow" },
|
|
292
|
+
{ key: "codex:done-2", project: "EchoMem Chrome", title: "Repair memory extraction" },
|
|
293
|
+
{ key: "claude-code:done-3", project: "MCP Server", title: "Review recall limits" },
|
|
294
|
+
{ key: "codex:done-4", project: "Memory Platform", title: "Plan the next release" }
|
|
295
|
+
]
|
|
296
|
+
};
|
|
297
|
+
selectedSessionKeys = {
|
|
298
|
+
"codex:done-1": true,
|
|
299
|
+
"codex:done-2": true,
|
|
300
|
+
"claude-code:done-3": true,
|
|
301
|
+
"codex:done-4": true
|
|
302
|
+
};
|
|
240
303
|
renderProgress({ status: "completed", total: 28, completed: 28, extracted: 128, failed: 0 });`;
|
|
241
304
|
}
|
|
242
305
|
if (state === "extract-ending")
|