File size: 5,687 Bytes
d21ee4b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>MAYTHOS Live Space</title>
  <link rel="stylesheet" href="/static/styles.css" />
</head>
<body>
  <div class="app-shell">
    <header class="topbar">
      <div>
        <div class="eyebrow">MAYTHOS Docker Space</div>
        <h1>Real-time Engine Console</h1>
        <p class="subtitle">Live Deriv stream, local candle aggregation, engine internals, debug trace, lifecycle, and health.</p>
      </div>
      <div class="top-actions">
        <div class="status-pill" id="connStatus">connecting</div>
        <div class="status-pill subtle" id="modeStatus">booting</div>
        <div class="status-pill subtle" id="warmStatus">cold</div>
      </div>
    </header>

    <section class="toolbar card">
      <div class="toolbar-row">
        <label class="field">
          <span>Symbol</span>
          <div class="inline">
            <select id="symbolSelect"></select>
            <button id="symbolApply" class="btn">Apply</button>
          </div>
        </label>
        <label class="field">
          <span>Custom symbol</span>
          <div class="inline">
            <input id="symbolInput" placeholder="frxEURUSD / cryBTCUSD" />
            <button id="symbolSet" class="btn secondary">Set</button>
          </div>
        </label>
        <label class="field">
          <span>Display timeframe</span>
          <div class="inline tf-buttons" id="tfButtons"></div>
        </label>
      </div>
      <div class="toolbar-row compact">
        <div class="mini-stat"><span>Base ref</span><strong id="baseRef">β€”</strong></div>
        <div class="mini-stat"><span>Latest tick</span><strong id="latestTick">β€”</strong></div>
        <div class="mini-stat"><span>Signal age</span><strong id="signalAge">β€”</strong></div>
        <div class="mini-stat"><span>Expiry countdown</span><strong id="signalCountdown">β€”</strong></div>
        <div class="mini-stat"><span>UTC clock</span><strong id="utcClock">β€”</strong></div>
      </div>
    </section>

    <main class="grid">
      <section class="panel card chart-panel">
        <div class="panel-head">
          <h2>Live candle chart</h2>
          <div class="panel-note" id="chartNote">30s / 1m / 2m / 3m / 5m from the same tick feed</div>
        </div>
        <canvas id="candleChart" width="1200" height="420"></canvas>
        <div class="signal-strip">
          <div class="signal-chip" id="signalDirection">β€”</div>
          <div class="signal-chip" id="signalLifecycle">β€”</div>
          <div class="signal-chip" id="signalExpiryBucket">β€”</div>
          <div class="signal-chip" id="signalFreshness">β€”</div>
          <div class="signal-chip" id="signalState">β€”</div>
        </div>
      </section>

      <section class="panel card price-panel">
        <div class="panel-head">
          <h2>Live price stream</h2>
          <div class="panel-note">Ticks, spread, and local runtime status</div>
        </div>
        <canvas id="priceSpark" width="1200" height="180"></canvas>
        <div class="ticker-list" id="tickList"></div>
      </section>

      <section class="panel card status-panel">
        <div class="panel-head">
          <h2>Status cards</h2>
          <div class="panel-note">Raw engine output values and derived signal timeline</div>
        </div>
        <div class="status-grid" id="statusGrid"></div>
      </section>

      <section class="panel card engine-panel">
        <div class="panel-head">
          <h2>Raw engine output</h2>
          <div class="panel-note">Full dict returned by MAYTHOS.tick()</div>
        </div>
        <pre class="json-box" id="rawOutput"></pre>
      </section>

      <section class="panel card debug-panel">
        <div class="panel-head">
          <h2>Nested debug trace</h2>
          <div class="panel-note">candle, data_integrity, market_state, asset_profile, session, timeframe_fusion, events, liquidity_pressure, technical_stack, score, lifecycle, warmup</div>
        </div>
        <div id="debugTrace" class="debug-trace"></div>
      </section>

      <section class="panel card lifecycle-panel">
        <div class="panel-head">
          <h2>Signal lifecycle & expiry</h2>
          <div class="panel-note">Generation time, expiry time, countdown, age, stale flag, and transitions</div>
        </div>
        <div id="signalTimeline" class="timeline"></div>
      </section>

      <section class="panel card health-panel">
        <div class="panel-head">
          <h2>Engine health</h2>
          <div class="panel-note">Error counts and recent errors from engine_health()</div>
        </div>
        <pre class="json-box" id="healthOutput"></pre>
      </section>

      <section class="panel card log-panel">
        <div class="panel-head">
          <h2>Compact log viewer</h2>
          <div class="panel-note">Recent candle-close ticks</div>
        </div>
        <div id="logList" class="log-list"></div>
      </section>

      <section class="panel card code-panel">
        <div class="panel-head">
          <h2>Source code viewer</h2>
          <div class="panel-note">Scroll, search, and copy the uploaded maythos_patched.py verbatim</div>
        </div>
        <div class="code-toolbar">
          <input id="codeSearch" placeholder="Search in source..." />
          <button id="codeCopy" class="btn">Copy</button>
          <span class="code-meta" id="codeMeta"></span>
        </div>
        <div id="sourceViewer" class="source-viewer"></div>
      </section>
    </main>
  </div>

  <script src="/static/app.js"></script>
</body>
</html>