@polycode-projects/the-mechanical-code-talker 2.9.3 → 2.9.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polycode-projects/the-mechanical-code-talker",
3
- "version": "2.9.3",
3
+ "version": "2.9.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "The Mechanical Code Talker (tmct) — a tolerant, offline, $0 chat surface that guides you toward precision queries about a software repository. ELIZA/PARRY-style but domain-obsessed with code. No model calls; no codebase index of its own.",
@@ -436,7 +436,7 @@ ${THEME_TOKENS_CSS}
436
436
  The sprite tiles sit on the floor band (align-items flex-end), so
437
437
  furniture and people read as standing IN the room, against its wall,
438
438
  rather than floating in a chip strip. */
439
- #playStage .room-frame { align-self: center; }
439
+ #playStage .room-frame { align-self: start; position: sticky; top: 1rem; }
440
440
  .room-frame {
441
441
  position: relative; min-height: 250px;
442
442
  background:
@@ -313,6 +313,10 @@ main { max-width: 880px; margin: 0 auto; padding: 1.4rem 1rem 3rem; }
313
313
  h1 { font-size: 1.15rem; margin: 0 0 .8rem; }
314
314
  .chip { font-family: ${MONO_STACK}; font-size: .68rem; color: var(--muted); border: 1px solid var(--line); border-radius: 99px; padding: .12rem .55rem; }
315
315
  .stage { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 1rem; }
316
+ /* grid items refuse to shrink below their content's min-width by default, so
317
+ the 640px board would stretch the track and the whole page with it on a
318
+ phone — let the items shrink and the boardwrap scroll instead. */
319
+ .stage > * { min-width: 0; }
316
320
  @media (max-width: 660px) { .stage { grid-template-columns: 1fr; } }
317
321
  .boardwrap { overflow-x: auto; }
318
322
  .board { position: relative; width: ${BOARD_W}px; height: ${BOARD_H}px; background: var(--card); border: 1px solid var(--line); border-radius: 8px; }
@@ -311,7 +311,7 @@ ${THEME_TOKENS_CSS}
311
311
  in the light. Decoration only — the 10x10 game grid itself is drawn by
312
312
  drawBoard() on the canvas beneath, unchanged. */
313
313
  .board-frame {
314
- margin: 1.2rem auto 0;
314
+ margin: 0 auto;
315
315
  position: relative; width: ${BOARD_PX}px; max-width: 100%; aspect-ratio: 1 / 1;
316
316
  background:
317
317
  radial-gradient(140% 140% at 6% 6%, rgba(255, 241, 199, .55), transparent 52%),
@@ -338,6 +338,7 @@ ${THEME_TOKENS_CSS}
338
338
  .sprite.corpse { filter: grayscale(1); opacity: .38; pointer-events: none; }
339
339
  .sprite.corpse .sprite-face { transform: none !important; }
340
340
  .thread-tip { position: absolute; transform: translate(-50%, -130%); font-family: ${MONO_STACK}; font-size: .68rem; background: var(--ink); color: var(--bg); padding: .1rem .4rem; border-radius: 3px; pointer-events: none; white-space: nowrap; display: none; }
341
+ .stage-left { display: flex; flex-direction: column; gap: 1.2rem; min-width: 0; }
341
342
  .side { display: flex; flex-direction: column; gap: .8rem; min-width: 0; }
342
343
  /* The console panel shell: a raised beveled plastic face (chrome-shadow-
343
344
  raised), never the flat card/hairline the rest of the site uses — the
@@ -448,7 +449,7 @@ ${THEME_TOKENS_CSS}
448
449
  .status { font-family: ${MONO_STACK}; font-size: .74rem; color: var(--muted); margin-top: .5rem; padding-left: .5rem; border-left: 2px solid var(--chrome-brass); }
449
450
  body.preview .side, body.preview .controls-row, body.preview .status, body.preview .tuning { display: none; }
450
451
  body.preview main { padding: 0; max-width: none; }
451
- body.preview .stage { display: none; }
452
+ body.preview .stage, body.preview .stage-left { display: block; }
452
453
  body.preview .board-frame { margin: 0; }
453
454
  body.preview .eyebrow, body.preview h1 { display: none; }
454
455
  </style>
@@ -458,6 +459,7 @@ ${THEME_TOKENS_CSS}
458
459
  <div class="eyebrow">tmct &middot; spider and fly</div>
459
460
  <h1>A spider in its web, a fly on the board — each planning against the other</h1>
460
461
  <div class="stage">
462
+ <div class="stage-left">
461
463
  <div class="tuning" id="tuning">
462
464
  <h2>live tuning &mdash; mass loss, spawn rate, vision, per class</h2>
463
465
  <div class="tuning-grid">
@@ -481,6 +483,13 @@ ${THEME_TOKENS_CSS}
481
483
  </div>
482
484
  </div>
483
485
  </div>
486
+ <div class="board-frame" id="boardFrame">
487
+ <canvas id="board" width="${BOARD_PX}" height="${BOARD_PX}" aria-label="the 10x10 board"></canvas>
488
+ <canvas id="pov" width="${BOARD_PX}" height="${BOARD_PX}" aria-hidden="true"></canvas>
489
+ <div class="sprite-layer" id="spriteLayer"></div>
490
+ <div class="thread-tip" id="threadTip"></div>
491
+ </div>
492
+ </div>
484
493
  <aside class="side" aria-label="Chat and agents">
485
494
  <div class="chat">
486
495
  <h2>tell the spider or the fly something</h2>
@@ -505,12 +514,6 @@ ${THEME_TOKENS_CSS}
505
514
  </div>
506
515
  </aside>
507
516
  </div>
508
- <div class="board-frame" id="boardFrame">
509
- <canvas id="board" width="${BOARD_PX}" height="${BOARD_PX}" aria-label="the 10x10 board"></canvas>
510
- <canvas id="pov" width="${BOARD_PX}" height="${BOARD_PX}" aria-hidden="true"></canvas>
511
- <div class="sprite-layer" id="spriteLayer"></div>
512
- <div class="thread-tip" id="threadTip"></div>
513
- </div>
514
517
  <div class="controls-row">
515
518
  <button id="resetBtn" type="button" disabled>reset</button>
516
519
  <button id="playBtn" type="button" disabled>&#9654; play</button>