@echomem/mcp 1.4.21 → 1.4.22
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 +1 -1
- package/assets/hud/echo-pricing-free-sticker.png +0 -0
- package/assets/hud/echo-pricing-power-sticker.png +0 -0
- package/assets/hud/echo-pricing-pro-sticker.png +0 -0
- package/assets/hud/scan-loop/frame-01-ready.png +0 -0
- package/assets/hud/scan-loop/frame-02-open.png +0 -0
- package/assets/hud/scan-loop/frame-03-pull.png +0 -0
- package/assets/hud/scan-loop/frame-04-read.png +0 -0
- package/assets/hud/scan-loop/frame-05-file.png +0 -0
- package/assets/hud/scan-loop/frame-06-close.png +0 -0
- package/dist/setup-page/client-core.js +140 -47
- package/dist/setup-page/client-extraction.js +251 -68
- package/dist/setup-page/client-lifecycle.js +45 -39
- package/dist/setup-page/client-report-audit.js +1 -1
- package/dist/setup-page/client-report-city.js +35 -22
- package/dist/setup-page/document.js +1 -1
- package/dist/setup-page/styles-extraction.js +330 -0
- package/dist/setup-page/styles-mvp.js +976 -0
- package/dist/setup-page/styles-website-alignment.js +237 -5
- package/dist/setup-page/styles.js +2 -0
- package/dist/setup-preview.js +18 -2
- package/dist/setup.js +262 -40
- package/package.json +1 -1
|
@@ -135,21 +135,43 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
135
135
|
.scanMascot {
|
|
136
136
|
display: grid;
|
|
137
137
|
place-items: center;
|
|
138
|
-
width: clamp(
|
|
138
|
+
width: clamp(108px, 14vw, 132px);
|
|
139
139
|
aspect-ratio: 1;
|
|
140
140
|
flex: 0 0 auto;
|
|
141
141
|
border: 1px solid rgba(26,58,143,0.11);
|
|
142
142
|
border-radius: 20px;
|
|
143
143
|
background: color-mix(in srgb, var(--echo-paper-white) 64%, var(--echo-note-cream) 36%);
|
|
144
144
|
box-shadow: var(--echo-shadow-paper);
|
|
145
|
+
overflow: hidden;
|
|
145
146
|
transform: rotate(-1.5deg);
|
|
146
147
|
}
|
|
147
|
-
.
|
|
148
|
+
.scanMascotFrames {
|
|
149
|
+
position: relative;
|
|
148
150
|
display: block;
|
|
149
|
-
width:
|
|
150
|
-
height:
|
|
151
|
+
width: 100%;
|
|
152
|
+
height: 100%;
|
|
153
|
+
}
|
|
154
|
+
.scanMascotFrame {
|
|
155
|
+
position: absolute;
|
|
156
|
+
inset: 0;
|
|
157
|
+
display: block;
|
|
158
|
+
width: 100%;
|
|
159
|
+
height: 100%;
|
|
151
160
|
object-fit: contain;
|
|
161
|
+
opacity: 0;
|
|
152
162
|
filter: drop-shadow(0 12px 14px rgba(26,58,143,0.16));
|
|
163
|
+
animation: scanMascotFrame 4.2s linear infinite;
|
|
164
|
+
}
|
|
165
|
+
.scanMascotFrame:nth-child(1) { animation-delay: 0s; }
|
|
166
|
+
.scanMascotFrame:nth-child(2) { animation-delay: 0.6s; }
|
|
167
|
+
.scanMascotFrame:nth-child(3) { animation-delay: 1.2s; }
|
|
168
|
+
.scanMascotFrame:nth-child(4) { animation-delay: 1.8s; }
|
|
169
|
+
.scanMascotFrame:nth-child(5) { animation-delay: 2.4s; }
|
|
170
|
+
.scanMascotFrame:nth-child(6) { animation-delay: 3s; }
|
|
171
|
+
.scanMascotFrame:nth-child(7) { animation-delay: 3.6s; }
|
|
172
|
+
@keyframes scanMascotFrame {
|
|
173
|
+
0%, 14.2% { opacity: 1; }
|
|
174
|
+
14.3%, 100% { opacity: 0; }
|
|
153
175
|
}
|
|
154
176
|
.scanLoaderCopy { min-width: 0; }
|
|
155
177
|
.scanEyebrow {
|
|
@@ -424,6 +446,7 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
424
446
|
border: 1.5px solid rgba(26,58,143,0.13);
|
|
425
447
|
border-radius: var(--echo-radius-card);
|
|
426
448
|
background: color-mix(in srgb, var(--echo-paper-white) 70%, var(--echo-note-cream) 30%);
|
|
449
|
+
padding: 42px 18px 18px;
|
|
427
450
|
box-shadow: var(--echo-shadow-paper);
|
|
428
451
|
transform: rotate(-0.45deg) translateY(5px);
|
|
429
452
|
transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
|
|
@@ -482,6 +505,9 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
482
505
|
transform: rotate(8deg);
|
|
483
506
|
box-shadow: 0 6px 14px rgba(199,55,47,0.24), inset 0 0 0 2px rgba(255,255,255,0.13);
|
|
484
507
|
}
|
|
508
|
+
.setupPlanCard.is-pro .setupPlanHead {
|
|
509
|
+
padding-right: 0;
|
|
510
|
+
}
|
|
485
511
|
.setupPlanCard button {
|
|
486
512
|
border-radius: 999px;
|
|
487
513
|
box-shadow: var(--echo-shadow-glass);
|
|
@@ -520,6 +546,193 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
520
546
|
.readyDecision .actions .skipHistoryButton {
|
|
521
547
|
border-radius: 999px;
|
|
522
548
|
}
|
|
549
|
+
.extractionReady .readyHero {
|
|
550
|
+
grid-template-columns: 72px minmax(0, 1fr);
|
|
551
|
+
gap: 22px;
|
|
552
|
+
padding-top: 28px;
|
|
553
|
+
padding-bottom: 28px;
|
|
554
|
+
}
|
|
555
|
+
.extractionReady .readyMascot {
|
|
556
|
+
width: 68px;
|
|
557
|
+
height: 68px;
|
|
558
|
+
}
|
|
559
|
+
.extractionReady .readyHero .exCopy h2 {
|
|
560
|
+
max-width: 700px;
|
|
561
|
+
font-size: clamp(38px, 4.8vw, 56px);
|
|
562
|
+
}
|
|
563
|
+
.extractionReady .readyHero .exCopy .exSub {
|
|
564
|
+
max-width: 700px;
|
|
565
|
+
margin-top: 10px;
|
|
566
|
+
font-size: 15px;
|
|
567
|
+
}
|
|
568
|
+
.extractionReady .sessionSelectionCard {
|
|
569
|
+
grid-template-columns: 30px minmax(0, 1fr) auto;
|
|
570
|
+
min-height: 0;
|
|
571
|
+
padding: 11px clamp(22px, 4vw, 34px);
|
|
572
|
+
background: rgba(255,255,255,0.74);
|
|
573
|
+
}
|
|
574
|
+
.extractionReady .sessionSelectionIcon {
|
|
575
|
+
width: 30px;
|
|
576
|
+
height: 30px;
|
|
577
|
+
border: 0;
|
|
578
|
+
background: rgba(41,83,186,0.07);
|
|
579
|
+
box-shadow: none;
|
|
580
|
+
}
|
|
581
|
+
.extractionReady .sessionSelectionIcon .setupGlyph {
|
|
582
|
+
width: 17px;
|
|
583
|
+
height: 17px;
|
|
584
|
+
}
|
|
585
|
+
.extractionReady .sessionSelectionEyebrow {
|
|
586
|
+
display: none;
|
|
587
|
+
}
|
|
588
|
+
.extractionReady .sessionSelectionCopy > strong {
|
|
589
|
+
margin: 0;
|
|
590
|
+
font-size: 14px;
|
|
591
|
+
}
|
|
592
|
+
.extractionReady .sessionSelectionCopy p {
|
|
593
|
+
margin-top: 1px;
|
|
594
|
+
font-size: 11px;
|
|
595
|
+
}
|
|
596
|
+
.extractionReady .sessionEditButton {
|
|
597
|
+
min-height: 32px;
|
|
598
|
+
padding: 6px 12px;
|
|
599
|
+
border: 0;
|
|
600
|
+
background: transparent;
|
|
601
|
+
box-shadow: none;
|
|
602
|
+
font-size: 11px;
|
|
603
|
+
text-decoration: underline;
|
|
604
|
+
}
|
|
605
|
+
.extractionReady .readyGo {
|
|
606
|
+
justify-items: center;
|
|
607
|
+
padding: 28px clamp(22px, 4vw, 34px) 24px;
|
|
608
|
+
background: rgba(255,255,255,0.90);
|
|
609
|
+
}
|
|
610
|
+
.extractionReady .actions {
|
|
611
|
+
display: grid;
|
|
612
|
+
width: min(520px, 100%);
|
|
613
|
+
grid-template-columns: 1fr;
|
|
614
|
+
justify-items: center;
|
|
615
|
+
gap: 12px;
|
|
616
|
+
}
|
|
617
|
+
.extractionReady .actions .primary {
|
|
618
|
+
width: 100%;
|
|
619
|
+
min-height: 56px;
|
|
620
|
+
justify-content: center;
|
|
621
|
+
font-size: 15px;
|
|
622
|
+
}
|
|
623
|
+
.extractionReady .actions .skipHistoryButton {
|
|
624
|
+
min-height: 0;
|
|
625
|
+
border: 0;
|
|
626
|
+
background: transparent;
|
|
627
|
+
padding: 4px 10px;
|
|
628
|
+
color: var(--echo-ink-mute);
|
|
629
|
+
box-shadow: none;
|
|
630
|
+
font-size: 11px;
|
|
631
|
+
text-decoration: underline;
|
|
632
|
+
}
|
|
633
|
+
.extractionReady .ctaMeta {
|
|
634
|
+
justify-content: center;
|
|
635
|
+
margin-top: 12px;
|
|
636
|
+
text-align: center;
|
|
637
|
+
}
|
|
638
|
+
.readySettings {
|
|
639
|
+
display: grid;
|
|
640
|
+
width: 100%;
|
|
641
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
642
|
+
gap: 16px;
|
|
643
|
+
border-top: 1px solid rgba(26,58,143,0.10);
|
|
644
|
+
border-bottom: 1px solid rgba(26,58,143,0.10);
|
|
645
|
+
background: color-mix(in srgb, var(--echo-paper-white) 76%, var(--echo-note-cream) 24%);
|
|
646
|
+
padding: 12px clamp(22px, 4vw, 34px);
|
|
647
|
+
}
|
|
648
|
+
.readySetting {
|
|
649
|
+
display: grid;
|
|
650
|
+
min-width: 0;
|
|
651
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
652
|
+
align-items: center;
|
|
653
|
+
gap: 10px;
|
|
654
|
+
}
|
|
655
|
+
.readySetting + .readySetting {
|
|
656
|
+
border-left: 1px solid rgba(26,58,143,0.10);
|
|
657
|
+
padding-left: 16px;
|
|
658
|
+
}
|
|
659
|
+
.readySettingLabel {
|
|
660
|
+
color: var(--echo-ink-faint);
|
|
661
|
+
font: 800 8px/1 var(--echo-font-mono);
|
|
662
|
+
letter-spacing: 0.10em;
|
|
663
|
+
text-transform: uppercase;
|
|
664
|
+
}
|
|
665
|
+
.extractionReady .readySettings .setupAccountCard {
|
|
666
|
+
grid-template-columns: 28px minmax(0, 1fr) auto;
|
|
667
|
+
gap: 8px;
|
|
668
|
+
border: 0;
|
|
669
|
+
background: transparent;
|
|
670
|
+
padding: 0;
|
|
671
|
+
box-shadow: none;
|
|
672
|
+
}
|
|
673
|
+
.extractionReady .readySettings .setupAccountAvatar {
|
|
674
|
+
width: 28px;
|
|
675
|
+
height: 28px;
|
|
676
|
+
border-radius: 8px;
|
|
677
|
+
font-size: 9px;
|
|
678
|
+
box-shadow: none;
|
|
679
|
+
}
|
|
680
|
+
.extractionReady .readySettings .setupAccountCopy small,
|
|
681
|
+
.extractionReady .readySettings .setupAccountCopy > span {
|
|
682
|
+
display: none;
|
|
683
|
+
}
|
|
684
|
+
.extractionReady .readySettings .setupAccountCopy strong {
|
|
685
|
+
margin: 0;
|
|
686
|
+
font-size: 12px;
|
|
687
|
+
}
|
|
688
|
+
.extractionReady .readySettings .setupAccountChange,
|
|
689
|
+
.extractionReady .readySettings .setupPlanConfirmed .textButton {
|
|
690
|
+
min-height: 0;
|
|
691
|
+
border: 0;
|
|
692
|
+
background: transparent;
|
|
693
|
+
padding: 4px 6px;
|
|
694
|
+
box-shadow: none;
|
|
695
|
+
font-size: 10px;
|
|
696
|
+
text-decoration: underline;
|
|
697
|
+
}
|
|
698
|
+
.extractionReady .readySettings .setupPlanConfirmed {
|
|
699
|
+
grid-template-columns: 24px minmax(0, 1fr) auto;
|
|
700
|
+
gap: 7px;
|
|
701
|
+
border: 0;
|
|
702
|
+
background: transparent;
|
|
703
|
+
padding: 0;
|
|
704
|
+
box-shadow: none;
|
|
705
|
+
}
|
|
706
|
+
.extractionReady .readySettings .setupPlanConfirmedIcon {
|
|
707
|
+
width: 24px;
|
|
708
|
+
height: 24px;
|
|
709
|
+
background: rgba(44,143,104,0.10);
|
|
710
|
+
}
|
|
711
|
+
.extractionReady .readySettings .setupPlanConfirmedIcon .setupGlyph {
|
|
712
|
+
width: 14px;
|
|
713
|
+
height: 14px;
|
|
714
|
+
}
|
|
715
|
+
.extractionReady .readySettings .setupPlanConfirmedCopy strong {
|
|
716
|
+
font-size: 12px;
|
|
717
|
+
}
|
|
718
|
+
.extractionReady .readySettings .setupPlanConfirmedCopy > span {
|
|
719
|
+
display: none;
|
|
720
|
+
}
|
|
721
|
+
.readySettings.is-plan-open {
|
|
722
|
+
grid-template-columns: 1fr;
|
|
723
|
+
padding: 0;
|
|
724
|
+
}
|
|
725
|
+
.readySettings.is-plan-open .readyAccountSetting {
|
|
726
|
+
display: none;
|
|
727
|
+
}
|
|
728
|
+
.readySettings.is-plan-open .readyPlanSetting {
|
|
729
|
+
grid-template-columns: 1fr;
|
|
730
|
+
border: 0;
|
|
731
|
+
padding: 0;
|
|
732
|
+
}
|
|
733
|
+
.readySettings.is-plan-open .readySettingLabel {
|
|
734
|
+
display: none;
|
|
735
|
+
}
|
|
523
736
|
.readyFoot {
|
|
524
737
|
border-top-color: rgba(26,58,143,0.10);
|
|
525
738
|
border-radius: 0 0 calc(var(--echo-radius-panel) - 2px) calc(var(--echo-radius-panel) - 2px);
|
|
@@ -751,7 +964,7 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
751
964
|
gap: 18px;
|
|
752
965
|
}
|
|
753
966
|
.scanMascot {
|
|
754
|
-
width:
|
|
967
|
+
width: 88px;
|
|
755
968
|
border-radius: 16px;
|
|
756
969
|
}
|
|
757
970
|
.scanLoader h2.siteHeadline {
|
|
@@ -786,6 +999,18 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
786
999
|
.setupPlanGrid {
|
|
787
1000
|
gap: 20px;
|
|
788
1001
|
}
|
|
1002
|
+
.extractionReady .readyHero {
|
|
1003
|
+
grid-template-columns: 1fr;
|
|
1004
|
+
}
|
|
1005
|
+
.readySettings {
|
|
1006
|
+
grid-template-columns: 1fr;
|
|
1007
|
+
}
|
|
1008
|
+
.readySetting + .readySetting {
|
|
1009
|
+
border-top: 1px solid rgba(26,58,143,0.10);
|
|
1010
|
+
border-left: 0;
|
|
1011
|
+
padding-top: 10px;
|
|
1012
|
+
padding-left: 0;
|
|
1013
|
+
}
|
|
789
1014
|
.setupPlanCard,
|
|
790
1015
|
.setupPlanCard:nth-child(2),
|
|
791
1016
|
.setupPlanCard:nth-child(3) {
|
|
@@ -814,5 +1039,12 @@ export const SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT = String.raw `
|
|
|
814
1039
|
transition: none;
|
|
815
1040
|
transform: none;
|
|
816
1041
|
}
|
|
1042
|
+
.scanMascotFrame {
|
|
1043
|
+
animation: none;
|
|
1044
|
+
opacity: 0;
|
|
1045
|
+
}
|
|
1046
|
+
.scanMascotFrame:first-child {
|
|
1047
|
+
opacity: 1;
|
|
1048
|
+
}
|
|
817
1049
|
}
|
|
818
1050
|
`;
|
|
@@ -3,6 +3,7 @@ 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
5
|
import { SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT } from "./styles-website-alignment.js";
|
|
6
|
+
import { SETUP_PAGE_STYLES_MVP } from "./styles-mvp.js";
|
|
6
7
|
// Kept as one emitted style tag so the local HTML page remains self-contained.
|
|
7
8
|
export const SETUP_PAGE_STYLES = [
|
|
8
9
|
SETUP_PAGE_STYLES_FOUNDATION,
|
|
@@ -10,4 +11,5 @@ export const SETUP_PAGE_STYLES = [
|
|
|
10
11
|
SETUP_PAGE_STYLES_EXTRACTION,
|
|
11
12
|
SETUP_PAGE_STYLES_CONTEXT_AUDIT,
|
|
12
13
|
SETUP_PAGE_STYLES_WEBSITE_ALIGNMENT,
|
|
14
|
+
SETUP_PAGE_STYLES_MVP,
|
|
13
15
|
].join("\n");
|
package/dist/setup-preview.js
CHANGED
|
@@ -15,6 +15,9 @@ export const SETUP_PREVIEW_STATES = [
|
|
|
15
15
|
"extract-enterprise-active",
|
|
16
16
|
"extract-unknown",
|
|
17
17
|
"auth-login",
|
|
18
|
+
"auth-login-pro",
|
|
19
|
+
"auth-otp",
|
|
20
|
+
"checkout-pro-selected",
|
|
18
21
|
"auth-unlock",
|
|
19
22
|
"auth-setup",
|
|
20
23
|
"extract-run",
|
|
@@ -242,7 +245,7 @@ function extractionPreviewBootstrap(options) {
|
|
|
242
245
|
return `
|
|
243
246
|
connected = true;
|
|
244
247
|
billingStatus = ${JSON.stringify(billingStatus)};
|
|
245
|
-
setupPlanChoice = ${JSON.stringify(options.selectFree ? "free" : "")};
|
|
248
|
+
setupPlanChoice = ${JSON.stringify(options.selectFree ? "free" : options.selectedPlanChoice || "")};
|
|
246
249
|
stats = {
|
|
247
250
|
sessions: { total: ${candidateCount}, codex: ${Math.ceil(candidateCount * 0.68)}, claudeCode: ${Math.floor(candidateCount * 0.32)} },
|
|
248
251
|
migratable: {
|
|
@@ -266,7 +269,7 @@ function extractionPreviewBootstrap(options) {
|
|
|
266
269
|
discovery: { phase: "account", exact: false }
|
|
267
270
|
};
|
|
268
271
|
renderDashboard();
|
|
269
|
-
${options.showUnknownStatus ? 'setSetupPlanStatus("Plan check unavailable.
|
|
272
|
+
${options.showUnknownStatus ? 'setSetupPlanStatus("Plan check unavailable. Original still works.");' : ""}
|
|
270
273
|
${options.openSessionPicker ? "window.setTimeout(function () { openSessionPicker(); }, 0);" : ""}`;
|
|
271
274
|
}
|
|
272
275
|
export function renderSetupPreviewBootstrap(state) {
|
|
@@ -294,6 +297,7 @@ export function renderSetupPreviewBootstrap(state) {
|
|
|
294
297
|
if (state === "report") {
|
|
295
298
|
const reportJson = JSON.stringify(previewReport);
|
|
296
299
|
return `${watermark}
|
|
300
|
+
localHistoryConsentGranted = true;
|
|
297
301
|
report = ${reportJson};
|
|
298
302
|
reportEnvelope = { schemaVersion: 1, kind: "ready", mode: "preview", scanId: "design-preview", report: report };
|
|
299
303
|
renderForensicReport();`;
|
|
@@ -359,6 +363,18 @@ export function renderSetupPreviewBootstrap(state) {
|
|
|
359
363
|
})}`;
|
|
360
364
|
if (state === "auth-login")
|
|
361
365
|
return `${watermark}\n renderLocalLogin("");`;
|
|
366
|
+
if (state === "auth-login-pro")
|
|
367
|
+
return `${watermark}
|
|
368
|
+
renderLocalLogin("");`;
|
|
369
|
+
if (state === "auth-otp")
|
|
370
|
+
return `${watermark}
|
|
371
|
+
localAuthEmail = "preview@example.com";
|
|
372
|
+
renderLocalOtp("Verification code sent. Check your email inbox.");`;
|
|
373
|
+
if (state === "checkout-pro-selected")
|
|
374
|
+
return `${watermark}${extractionPreviewBootstrap({
|
|
375
|
+
plan: "free", paid: false, trialAvailable: true, trialUsed: false,
|
|
376
|
+
quotaLimit: 100, quotaRemaining: 100, selectedPlanChoice: "pro",
|
|
377
|
+
})}`;
|
|
362
378
|
if (state === "auth-unlock")
|
|
363
379
|
return `${watermark}\n renderLocalPassphrase("unlock", "preview@example.com");`;
|
|
364
380
|
if (state === "auth-setup")
|