Budlee commited on
Commit
4c0ef18
·
verified ·
1 Parent(s): 9a051a0

Frontend: reorder panel — Goal/SoC/Trace promoted to top

Browse files
Files changed (1) hide show
  1. frontend/index.html +41 -13
frontend/index.html CHANGED
@@ -129,6 +129,22 @@
129
  .trait-grid .t b { color: var(--text); float: right; }
130
  #journal { max-height: 140px; overflow-y: auto; }
131
  #journal li { font-size: 11px; color: #cbb; margin: 2px 0; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  #trace {
133
  height: 400px; overflow-y: auto;
134
  background: var(--bg-deep); border: 1px solid #333; border-radius: 4px;
@@ -207,34 +223,38 @@
207
  <div><b id="s-name">—</b> · <span id="s-arch" style="color: var(--muted);"></span></div>
208
  </div>
209
  <div class="row">
 
 
 
 
 
 
 
 
 
 
 
 
210
  <div class="label">Model</div>
211
  <select id="s-model"></select>
212
  </div>
213
- <div class="row">
214
  <div class="label">Personality</div>
215
  <textarea id="s-pers"></textarea>
216
  <button class="save" id="s-save">Save personality</button>
217
  </div>
218
- <div class="row">
219
- <div class="label">Goal</div>
220
- <div id="s-goal" style="font-style: italic;"></div>
221
- </div>
222
- <div class="row">
223
  <div class="label">Traits</div>
224
  <div id="s-traits" class="trait-grid"></div>
225
  </div>
226
- <div class="row">
227
  <div class="label">Inventory · Locker</div>
228
  <div id="s-stuff"></div>
229
  </div>
230
- <div class="row">
231
  <div class="label">Journal</div>
232
  <ul id="journal"></ul>
233
  </div>
234
- <div class="row">
235
- <div class="label">Trace · newest at top</div>
236
- <div id="trace"></div>
237
- </div>
238
  </div>
239
  </div>
240
 
@@ -272,7 +292,8 @@
272
  const elSModel = document.getElementById("s-model");
273
  const elSPers = document.getElementById("s-pers");
274
  const elSSave = document.getElementById("s-save");
275
- const elSGoal = document.getElementById("s-goal");
 
276
  const elSTraits = document.getElementById("s-traits");
277
  const elSStuff = document.getElementById("s-stuff");
278
  const elJournal = document.getElementById("journal");
@@ -353,6 +374,13 @@
353
  elSArch.textContent = c.archetype;
354
  elSPers.value = c.personality;
355
  elSGoal.textContent = c.goal;
 
 
 
 
 
 
 
356
 
357
  // Model dropdown
358
  elSModel.innerHTML = "";
 
129
  .trait-grid .t b { color: var(--text); float: right; }
130
  #journal { max-height: 140px; overflow-y: auto; }
131
  #journal li { font-size: 11px; color: #cbb; margin: 2px 0; }
132
+ #s-goal-big {
133
+ font-size: 14px; line-height: 1.4; color: var(--text);
134
+ font-style: italic; padding: 8px 10px;
135
+ background: rgba(235, 124, 73, 0.08);
136
+ border-left: 3px solid var(--accent);
137
+ border-radius: 0 4px 4px 0;
138
+ }
139
+ #soc {
140
+ font-size: 12px; line-height: 1.5; color: #cbb;
141
+ padding: 10px; background: var(--bg-deep);
142
+ border: 1px solid #2a2630; border-radius: 4px;
143
+ white-space: pre-wrap; word-break: break-word;
144
+ max-height: 140px; overflow-y: auto;
145
+ }
146
+ #soc.empty { color: var(--muted); font-style: italic; }
147
+ .row.config { opacity: 0.85; }
148
  #trace {
149
  height: 400px; overflow-y: auto;
150
  background: var(--bg-deep); border: 1px solid #333; border-radius: 4px;
 
223
  <div><b id="s-name">—</b> · <span id="s-arch" style="color: var(--muted);"></span></div>
224
  </div>
225
  <div class="row">
226
+ <div class="label">Goal</div>
227
+ <div id="s-goal-big"></div>
228
+ </div>
229
+ <div class="row">
230
+ <div class="label">Stream of consciousness</div>
231
+ <div id="soc" class="empty">(no monologue yet)</div>
232
+ </div>
233
+ <div class="row">
234
+ <div class="label">Trace · newest at top</div>
235
+ <div id="trace"></div>
236
+ </div>
237
+ <div class="row config">
238
  <div class="label">Model</div>
239
  <select id="s-model"></select>
240
  </div>
241
+ <div class="row config">
242
  <div class="label">Personality</div>
243
  <textarea id="s-pers"></textarea>
244
  <button class="save" id="s-save">Save personality</button>
245
  </div>
246
+ <div class="row config">
 
 
 
 
247
  <div class="label">Traits</div>
248
  <div id="s-traits" class="trait-grid"></div>
249
  </div>
250
+ <div class="row config">
251
  <div class="label">Inventory · Locker</div>
252
  <div id="s-stuff"></div>
253
  </div>
254
+ <div class="row config">
255
  <div class="label">Journal</div>
256
  <ul id="journal"></ul>
257
  </div>
 
 
 
 
258
  </div>
259
  </div>
260
 
 
292
  const elSModel = document.getElementById("s-model");
293
  const elSPers = document.getElementById("s-pers");
294
  const elSSave = document.getElementById("s-save");
295
+ const elSGoal = document.getElementById("s-goal-big");
296
+ const elSoc = document.getElementById("soc");
297
  const elSTraits = document.getElementById("s-traits");
298
  const elSStuff = document.getElementById("s-stuff");
299
  const elJournal = document.getElementById("journal");
 
374
  elSArch.textContent = c.archetype;
375
  elSPers.value = c.personality;
376
  elSGoal.textContent = c.goal;
377
+ if (c.stream_of_consciousness && c.stream_of_consciousness.trim()) {
378
+ elSoc.classList.remove("empty");
379
+ elSoc.textContent = c.stream_of_consciousness;
380
+ } else {
381
+ elSoc.classList.add("empty");
382
+ elSoc.textContent = "(no monologue yet — refreshes every 10 decisions)";
383
+ }
384
 
385
  // Model dropdown
386
  elSModel.innerHTML = "";