@lloyal-labs/dev-tools 0.4.2 → 0.5.0-alpha.10

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/dist/index.js CHANGED
@@ -4,9 +4,15 @@
4
4
  export function lanePpl(lane) {
5
5
  return lane.nllCount === 0 ? null : Math.exp(lane.nllSum / lane.nllCount);
6
6
  }
7
+ /** What the pane assumes of a harness that declares nothing: no event opens or closes a run, no lane wears a
8
+ * phase, and no instruction is read. Lanes, retrievals, pressure and the trunk still fold, because those come
9
+ * from the runtime's own events; the run axis simply never resets. */
10
+ export const DEFAULT_FRAMING = { phases: {}, open: [], close: [] };
7
11
  export function createPaneModel() {
8
12
  return {
9
13
  runPhase: null,
14
+ runOpen: false,
15
+ lastOpenIdx: -1,
10
16
  runStartAt: null,
11
17
  runEndedAt: null,
12
18
  pausedAt: null,
@@ -18,6 +24,8 @@ export function createPaneModel() {
18
24
  origin: null,
19
25
  lastSavedTo: undefined,
20
26
  lanes: new Map(),
27
+ trunk: [],
28
+ spine: null,
21
29
  retrievals: [],
22
30
  pressure: [],
23
31
  host: [],
@@ -35,6 +43,7 @@ export function createPaneModel() {
35
43
  const MAX_PRESSURE_POINTS = 20_000;
36
44
  const MAX_RETRIEVALS = 500;
37
45
  const MAX_INTERVENTIONS = 200;
46
+ const MAX_TRUNK = 200;
38
47
  const MAX_EPISTEMICS = 4096;
39
48
  const MAX_HOST = 600;
40
49
  /**
@@ -45,35 +54,45 @@ const MAX_HOST = 600;
45
54
  /** A new run begins: the timeline shows THE RUN, not wall-clock since page
46
55
  * load — clear the run-scoped collections and anchor the axis. Idempotent
47
56
  * (research emits `plan:start` then `query` back-to-back). */
48
- function resetRun(m, now) {
49
- // A clarify answer re-enters planning WITHIN the same run: the planner
50
- // asked, the user answered, the cycle continues — mark the exchange
51
- // answered and keep everything.
52
- if (m.clarifying) {
53
- m.clarifying = false;
54
- m.runContinuedAt = now;
55
- for (const lane of m.lanes.values()) {
56
- if (lane.clarify && lane.clarify.answeredAt === null)
57
- lane.clarify.answeredAt = now;
58
- }
59
- return;
57
+ /** A clarify answer re-enters planning WITHIN the same run: the planner
58
+ * asked, the user answered, the cycle continues mark the exchange
59
+ * answered and keep everything. */
60
+ function continueRun(m, now) {
61
+ m.clarifying = false;
62
+ m.runContinuedAt = now;
63
+ for (const lane of m.lanes.values()) {
64
+ if (lane.clarify && lane.clarify.answeredAt === null)
65
+ lane.clarify.answeredAt = now;
60
66
  }
61
- // Idempotent across the back-to-back run-start pair (research emits
62
- // `plan:start` then `query` within milliseconds) — one reset per run.
63
- if (m.runStartAt !== null && (now - m.runStartAt < 1500 ||
64
- (m.runContinuedAt !== null && now - m.runContinuedAt < 1500)))
67
+ }
68
+ function resetRun(m, now) {
69
+ // Idempotent across a run's OWN start markers recon opens the run
70
+ // minutes before `plan:start`/`query` arrive, so this is a flag, not a
71
+ // timing window. A close-marker (or supersede) re-arms it.
72
+ if (m.runOpen)
65
73
  return;
74
+ m.runOpen = true;
66
75
  m.lanes = new Map();
67
76
  m.retrievals = [];
68
77
  m.pressure = [];
69
78
  m.host = [];
70
79
  m.interventions = [];
71
80
  m.plan = null;
81
+ m.spine = null;
72
82
  m.runStartAt = now;
73
83
  m.runEndedAt = null;
74
84
  m.pausedAt = null;
75
85
  m.windingDownAt = null;
76
86
  }
87
+ /** The spine record, created by whichever signal arrives first — the
88
+ * harness's declared instruction event or the runtime's own header
89
+ * prefill. Runtime-only harnesses still get a spine row. */
90
+ function ensureSpine(m, now) {
91
+ if (!m.spine) {
92
+ m.spine = { query: null, attachments: [], at: now, spineCells: 0, headerText: null, headerTokens: 0, spineAt: null, growth: [] };
93
+ }
94
+ return m.spine;
95
+ }
77
96
  /** The retrieval a mirrored trace event belongs to: by callId WITHIN the
78
97
  * agent (callIds are per-agent counters — call_0 exists in every agent, so
79
98
  * a global match attaches one agent's funnel to another's call), else the
@@ -88,29 +107,54 @@ function findRetrieval(m, callId, agentId) {
88
107
  }
89
108
  return undefined;
90
109
  }
91
- export function foldEvent(m, ev, now) {
110
+ export function foldEvent(m, ev, now, framing = DEFAULT_FRAMING) {
92
111
  m.eventCount++;
93
112
  if (m.t0 === null)
94
113
  m.t0 = now;
95
- switch (ev.type) {
96
- // ── run phases: the template's OWN markers tag spawns with roles ──
97
- case 'plan:start': {
98
- resetRun(m, now);
99
- m.runPhase = 'planner';
100
- return;
114
+ // ── run framing: the harness's OWN declared markers, as data ──
115
+ if (framing.close.includes(ev.type)) {
116
+ m.runOpen = false;
117
+ m.lastOpenIdx = -1;
118
+ }
119
+ const openIdx = framing.open.indexOf(ev.type);
120
+ if (openIdx !== -1) {
121
+ if (m.clarifying) {
122
+ // An answered clarify CONTINUES this run — never a reset.
123
+ continueRun(m, now);
101
124
  }
102
- case 'query': {
125
+ else {
126
+ // Same submission's markers only ADVANCE through `open`; at-or-before
127
+ // means a new submission superseded an unclosed run (halt-and-resubmit
128
+ // emits no close marker).
129
+ if (m.runOpen && openIdx <= m.lastOpenIdx)
130
+ m.runOpen = false;
103
131
  resetRun(m, now);
104
- return;
105
- }
106
- case 'research:start': {
107
- m.runPhase = 'research';
108
- return;
109
132
  }
110
- case 'synthesize:start': {
111
- m.runPhase = 'synth';
112
- return;
133
+ m.lastOpenIdx = openIdx;
134
+ }
135
+ const phaseLabel = framing.phases[ev.type];
136
+ if (phaseLabel !== undefined)
137
+ m.runPhase = phaseLabel;
138
+ // The user's instruction — read only where the harness DECLARED it lives
139
+ // (framing.instruction), never guessed from event shapes. First one per
140
+ // run wins: a re-plan re-emits the same event and must not reseed.
141
+ const instr = framing.instruction;
142
+ if (instr && ev.type === instr.event && (m.spine === null || m.spine.query === null)) {
143
+ const s = ensureSpine(m, now);
144
+ const q = ev[instr.field];
145
+ if (typeof q === 'string')
146
+ s.query = q;
147
+ if (instr.attachments) {
148
+ const a = ev[instr.attachments];
149
+ if (Array.isArray(a)) {
150
+ s.attachments = a.flatMap((x) => {
151
+ const r = x;
152
+ return typeof r.digest === 'string' ? [{ digest: r.digest }] : [];
153
+ });
154
+ }
113
155
  }
156
+ }
157
+ switch (ev.type) {
114
158
  case 'plan': {
115
159
  const intent = typeof ev.intent === 'string' ? ev.intent : 'research';
116
160
  if (intent === 'clarify') {
@@ -183,6 +227,21 @@ export function foldEvent(m, ev, now) {
183
227
  return;
184
228
  }
185
229
  case 'agent:spawn': {
230
+ const afterIds = Array.isArray(ev.after)
231
+ ? ev.after.filter((x) => typeof x === 'number')
232
+ : [];
233
+ // Inherited-at-fork, snapshotted NOW: a recursive fork carries its
234
+ // parent's attention state; a top-level fork carries trunk + the spine
235
+ // as grown so far. Pre-spine forks get nothing — no guessed parentage.
236
+ const parentLane = typeof ev.parentAgentId === 'number' ? m.lanes.get(ev.parentAgentId) : undefined;
237
+ let inheritedAtFork;
238
+ if (parentLane) {
239
+ inheritedAtFork = (parentLane.inherited ?? 0) + parentLane.tokenCount;
240
+ }
241
+ else if (m.spine && m.spine.spineAt !== null && now + 250 >= m.spine.spineAt) {
242
+ inheritedAtFork = (m.spine.inherited ?? 0)
243
+ + m.spine.growth.reduce((n2, g) => (g.at <= now + 250 ? n2 + g.tokens : n2), 0);
244
+ }
186
245
  if (typeof ev.agentId !== 'number')
187
246
  return; // type-only frame — never corrupt the lane map
188
247
  const id = ev.agentId;
@@ -194,6 +253,8 @@ export function foldEvent(m, ev, now) {
194
253
  doneAt: null,
195
254
  outcome: 'running',
196
255
  tokenCount: 0,
256
+ ...(afterIds.length > 0 ? { after: afterIds } : {}),
257
+ ...(inheritedAtFork !== undefined ? { inherited: inheritedAtFork } : {}),
197
258
  inflightTool: null,
198
259
  report: null,
199
260
  reportSource: null,
@@ -333,6 +394,78 @@ export function foldEvent(m, ev, now) {
333
394
  if (!te)
334
395
  return;
335
396
  switch (te.type) {
397
+ case 'branch:create': {
398
+ // Cold vs warm, from the run's own record: the FIRST spine's fork
399
+ // position. The inner pool's spine forks from the outer — skip it.
400
+ if (te.role !== 'spine')
401
+ return;
402
+ {
403
+ const s = ensureSpine(m, now);
404
+ if (s.inherited === undefined && typeof te.position === 'number')
405
+ s.inherited = te.position;
406
+ }
407
+ return;
408
+ }
409
+ case 'spine:extend': {
410
+ // A settled contribution committed onto the spine mid-run (chain
411
+ // steps). Later forks inherit it — the growth entry is what makes
412
+ // their inherited-at-fork snapshot and the paid-once sum honest.
413
+ const s = ensureSpine(m, now);
414
+ const grew = typeof te.deltaTokens === 'number' ? te.deltaTokens : 0;
415
+ s.spineCells += grew;
416
+ if (grew > 0)
417
+ s.growth.push({ at: now, tokens: grew });
418
+ return;
419
+ }
420
+ case 'branch:prefill': {
421
+ // The spine's seed — runtime truth, no harness assumption.
422
+ if (te.role === 'spineHeader') {
423
+ const s = ensureSpine(m, now);
424
+ const grew = typeof te.cells === 'number' ? te.cells : 0;
425
+ s.spineCells += grew;
426
+ if (grew > 0)
427
+ s.growth.push({ at: now, tokens: grew });
428
+ if (s.spineAt === null)
429
+ s.spineAt = now;
430
+ return;
431
+ }
432
+ // The session trunk's own turns (role warmDelta) — visible beside
433
+ // the runs they feed. Session-lived: resetRun leaves m.trunk alone.
434
+ if (te.role !== 'warmDelta')
435
+ return;
436
+ const speaker = te.speaker;
437
+ // Run-derived stats ride the response side: how long the run took
438
+ // and what its agents spent to produce what the trunk kept.
439
+ const responseSide = speaker === 'assistant' || speaker === 'turn' || speaker === undefined;
440
+ const stats = responseSide && m.runStartAt !== null
441
+ ? {
442
+ wallMs: Math.max(0, now - m.runStartAt),
443
+ agentTokens: [...m.lanes.values()].reduce((n, l) => n + l.tokenCount, 0),
444
+ }
445
+ : {};
446
+ m.trunk.push({
447
+ at: now,
448
+ ...stats,
449
+ ...(speaker === 'user' || speaker === 'assistant' || speaker === 'tool' || speaker === 'turn'
450
+ ? { speaker } : {}),
451
+ ...(typeof te.query === 'string' ? { query: te.query } : {}),
452
+ ...(typeof te.response === 'string' ? { response: te.response } : {}),
453
+ content: typeof te.content === 'string' ? te.content : '',
454
+ cells: typeof te.cells === 'number' ? te.cells : 0,
455
+ ...(typeof te.branchHandle === 'number' ? { branchHandle: te.branchHandle } : {}),
456
+ attachments: Array.isArray(te.attachments)
457
+ ? te.attachments.flatMap((a) => {
458
+ const r = a;
459
+ return typeof r.digest === 'string'
460
+ ? [{ digest: r.digest, ...(typeof r.mediaType === 'string' ? { mediaType: r.mediaType } : {}) }]
461
+ : [];
462
+ })
463
+ : [],
464
+ });
465
+ if (m.trunk.length > MAX_TRUNK)
466
+ m.trunk.shift();
467
+ return;
468
+ }
336
469
  case 'pool:agentNudge': {
337
470
  m.interventions.push({
338
471
  kind: typeof te.guard === 'string' ? 'guard' : 'nudge',
@@ -363,6 +496,40 @@ export function foldEvent(m, ev, now) {
363
496
  return;
364
497
  }
365
498
  case 'prompt:format': {
499
+ // The compiled spine header — what position 0 actually holds.
500
+ if (te.role === 'spine') {
501
+ const s = ensureSpine(m, now);
502
+ if (typeof te.promptText === 'string')
503
+ s.headerText = te.promptText;
504
+ if (typeof te.tokenCount === 'number')
505
+ s.headerTokens = te.tokenCount;
506
+ if (typeof te.tools === 'string') {
507
+ try {
508
+ const arr = JSON.parse(te.tools);
509
+ if (Array.isArray(arr)) {
510
+ s.tools = arr.flatMap((x) => {
511
+ const f = x.function ?? x;
512
+ const g = f;
513
+ return g && typeof g.name === 'string'
514
+ ? [{ name: g.name, description: typeof g.description === 'string' ? g.description : '' }]
515
+ : [];
516
+ });
517
+ }
518
+ }
519
+ catch { /* not JSON — leave unparsed */ }
520
+ }
521
+ if (typeof te.messages === 'string') {
522
+ try {
523
+ const ms = JSON.parse(te.messages);
524
+ if (Array.isArray(ms)) {
525
+ const sys = ms.find((mm) => mm && mm.role === 'system' && typeof mm.content === 'string');
526
+ s.systemText = sys ? sys.content : null;
527
+ }
528
+ }
529
+ catch { /* not JSON */ }
530
+ }
531
+ return;
532
+ }
366
533
  const lane = m.lanes.get(agentId);
367
534
  if (lane && typeof te.promptText === 'string') {
368
535
  lane.prompt = {
@@ -378,6 +545,13 @@ export function foldEvent(m, ev, now) {
378
545
  const lane = m.lanes.get(handle);
379
546
  if (lane)
380
547
  lane.prunedAt = now;
548
+ // The same prune, seen by the trunk feed: this handle's turns
549
+ // left the KV with it, so they leave the feed — the feed shows
550
+ // the resident conversation, nothing else. Handle-matched (never
551
+ // a blanket clear): an agent branch's prune must not touch the
552
+ // trunk, and the match is order-independent with the next
553
+ // generation's first commit.
554
+ m.trunk = m.trunk.filter((t) => t.branchHandle !== handle);
381
555
  return;
382
556
  }
383
557
  case 'tool:dispatch': {
@@ -541,17 +715,54 @@ export const PROVENANCE_RUNGS = [
541
715
  { rung: 'session', means: 'this session only — no file remembers it' },
542
716
  { rung: 'default', means: 'nothing set it' },
543
717
  ];
544
- export const KEY_TIERS = {
545
- 'sources.outputDir': 'session',
546
- 'defaults.effort': 'session',
547
- 'defaults.reasoningMode': 'session',
548
- 'model.path': 'reload',
549
- 'model.reranker': 'reload',
550
- 'model.gpu': 'reload',
551
- 'model.nCtx': 'boot',
552
- 'model.branches': 'boot',
553
- 'model.kvCache': 'boot',
554
- };
718
+ export function configRows(table) {
719
+ return Object.entries(table).map(([key, decl]) => {
720
+ const applies = decl.applies ?? 'session';
721
+ const offered = decl.oneOf && applies !== 'boot' && key.split('.').length === 2;
722
+ return {
723
+ key, applies, values: offered ? decl.oneOf : null,
724
+ ...(decl.describe !== undefined ? { describe: decl.describe } : {}),
725
+ ...(decl.yml !== undefined ? { yml: decl.yml } : {}),
726
+ ...(decl.env !== undefined ? { env: decl.env } : {}),
727
+ };
728
+ });
729
+ }
730
+ /** How a row is changed, said from its declaration: the tier says when, `yml` and `env` say where. */
731
+ export function changing(row) {
732
+ const committed = row.yml ? `harness.yml → ${row.yml}` : null;
733
+ switch (row.applies) {
734
+ case 'session':
735
+ return `Change it here: it applies to the next run and is remembered locally.${committed ? ` The committed default is ${committed}.` : ''}`;
736
+ case 'reload':
737
+ return `Saved now; the next start loads it.${committed ? ` Committed in ${committed}.` : ''}`;
738
+ case 'boot':
739
+ return `Fixed for this run.${committed ? ` Set ${committed}${row.env ? ` (or ${row.env})` : ''}, then restart.` : ''}`;
740
+ }
741
+ }
742
+ /** The command that makes a row's choice: rig's own, for the row's tier, carrying a real patch. Null when the
743
+ * row offers no such choice. */
744
+ export function configCommand(row, value) {
745
+ if (!row.values?.includes(value))
746
+ return null;
747
+ const [family, leaf] = row.key.split('.');
748
+ return { type: row.applies === 'reload' ? 'reload_runtime' : 'set_config', patch: { [family]: { [leaf]: value } } };
749
+ }
750
+ /** Every path the live config carries — a top-level key, or a `family.leaf` under one — as the rows of a harness
751
+ * that handed the pane no table. The keys rig owns (`version`, the `abilities` family) are not the app's. */
752
+ export function liveConfigKeys(config) {
753
+ const keys = [];
754
+ for (const [key, node] of Object.entries(config ?? {})) {
755
+ if (key === 'version' || key === 'abilities')
756
+ continue;
757
+ if (node !== null && typeof node === 'object' && !Array.isArray(node)) {
758
+ for (const leaf of Object.keys(node))
759
+ keys.push(`${key}.${leaf}`);
760
+ }
761
+ else
762
+ keys.push(key);
763
+ }
764
+ return keys;
765
+ }
555
766
  /** Read a dotted config path off the live config object. */
556
767
  export function readConfigPath(config, path) {
557
768
  if (!config)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/ink.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ReactElement } from 'react';
2
- import type { PaneModel } from './index.js';
2
+ import type { PaneModel, RunFraming } from './index.js';
3
3
  export { sparkline } from './index.js';
4
4
  export interface DevOverlayProps {
5
5
  model: PaneModel;
@@ -11,4 +11,23 @@ export interface DevOverlayProps {
11
11
  tail?: readonly string[];
12
12
  }
13
13
  export declare function DevOverlay({ model: m, tailRows, tail }: DevOverlayProps): ReactElement | null;
14
+ /**
15
+ * The dev overlay for a terminal view. Give it the bus the view already subscribes to; bind `toggle` to a key;
16
+ * render `overlay` where it should appear.
17
+ *
18
+ * Until the wire's `config:loaded` says `dev`, that one event is all it folds, so a production run pays one
19
+ * string compare per event and `overlay` stays null whatever `toggle` does.
20
+ */
21
+ export declare function useDevOverlay(bus: {
22
+ subscribe(listener: (ev: {
23
+ type: string;
24
+ }) => void): () => void;
25
+ }, opts?: {
26
+ framing?: RunFraming;
27
+ tailRows?: number;
28
+ }): {
29
+ overlay: ReactElement | null;
30
+ open: boolean;
31
+ toggle: () => void;
32
+ };
14
33
  //# sourceMappingURL=ink.d.ts.map
package/dist/ink.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;uCAEmC;IACnC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAY,EAAE,IAAS,EAAE,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CA+BtG"}
1
+ {"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;uCAEmC;IACnC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAY,EAAE,IAAS,EAAE,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CA+BtG;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE;IAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAAE,EACxE,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD;IAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CA2BrE"}
package/dist/ink.js CHANGED
@@ -1,21 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
- * `<DevOverlay>` the terminal dev overlay (ctrl+g in the cli view).
3
+ * The terminal's share of the dev tools: `useDevOverlay(bus)` hands a view the overlay and its toggle, and owns
4
+ * everything behind them — the fold, the wire's dev gate, the event tail. `<DevOverlay>` is the overlay itself,
5
+ * for a view that folds a `PaneModel` of its own.
4
6
  *
5
- * BOUNDED height by contract: the cli view keeps finished work in Ink's
6
- * `<Static>` and its dynamic frame under the terminal height an overlay
7
- * that grows past the frame makes Ink clear-and-repaint, wiping scrollback.
8
- * This component renders a fixed number of rows (a pressure sparkline, one
9
- * provenance line, a short event tail) and never more.
10
- *
11
- * The view owns the toggle: fold events into a `PaneModel` (`foldEvent`) and
12
- * render `<DevOverlay model={m} />` when visible. Render nothing when the
13
- * model says `dev: false` — the gate is the wire's, not the view's.
7
+ * BOUNDED height by contract: a terminal view keeps its dynamic frame under the terminal height, and an overlay
8
+ * that grows past the frame makes Ink clear and repaint, wiping scrollback. The overlay renders a fixed number
9
+ * of rows (a pressure sparkline, one provenance line, a short event tail) and never more. It renders nothing
10
+ * unless the wire said `dev`: the gate is the wire's, not the view's.
14
11
  *
15
12
  * @category DevTools
16
13
  */
17
14
  import { Box, Text } from 'ink';
18
- import { pressurePercent, sparkline } from './index.js';
15
+ import { useEffect, useRef, useState } from 'react';
16
+ import { createPaneModel, foldEvent, pressurePercent, sparkline } from './index.js';
19
17
  export { sparkline } from './index.js';
20
18
  /** The overlay is bounded BY CONTRACT (Ink wipes scrollback past the frame) —
21
19
  * clamp the tail rows so no caller value can grow it. */
@@ -32,4 +30,46 @@ export function DevOverlay({ model: m, tailRows = 5, tail = [] }) {
32
30
  const bounded = rows === 0 ? [] : tail.slice(-rows);
33
31
  return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "gray", paddingX: 1, children: [_jsxs(Box, { gap: 2, children: [_jsx(Text, { color: "blueBright", bold: true, children: "dev" }), _jsxs(Text, { dimColor: true, children: [m.eventCount, " events"] }), pct !== null && (_jsxs(Text, { children: [_jsx(Text, { color: "blueBright", children: sparkline(m, 24) }), _jsxs(Text, { children: [" ", pct, "%"] }), _jsx(Text, { dimColor: true, children: " \u00B7 attention cells" })] })), _jsx(Text, { dimColor: true, children: "ctrl+g close" })] }), originLine !== '' && (_jsx(Text, { dimColor: true, wrap: "truncate", children: originLine })), bounded.map((line, i) => (_jsx(Text, { wrap: "truncate", dimColor: true, children: line }, i)))] }));
34
32
  }
33
+ /** How many events the tail remembers; the overlay shows the last few of them. */
34
+ const TAIL_KEPT = 24;
35
+ /** Samples — token, tick and host traffic: folded into what the overlay draws, never listed. A tail of these
36
+ * would be all the tail ever showed. */
37
+ const UNLISTED = new Set(['agent:produce', 'agent:tick', 'host:resources']);
38
+ /**
39
+ * The dev overlay for a terminal view. Give it the bus the view already subscribes to; bind `toggle` to a key;
40
+ * render `overlay` where it should appear.
41
+ *
42
+ * Until the wire's `config:loaded` says `dev`, that one event is all it folds, so a production run pays one
43
+ * string compare per event and `overlay` stays null whatever `toggle` does.
44
+ */
45
+ export function useDevOverlay(bus, opts = {}) {
46
+ const model = useRef(null);
47
+ model.current ??= createPaneModel();
48
+ const tail = useRef([]);
49
+ const open = useRef(false); // read by the subscriber, so a ref: the fold runs whether or not anything is shown
50
+ const [, repaint] = useState(0);
51
+ const { framing, tailRows } = opts;
52
+ useEffect(() => bus.subscribe((ev) => {
53
+ const m = model.current;
54
+ if (!m.dev && ev.type !== 'config:loaded')
55
+ return;
56
+ foldEvent(m, ev, Date.now(), framing);
57
+ if (!m.dev)
58
+ return;
59
+ if (!UNLISTED.has(ev.type)) {
60
+ tail.current.push(ev.type);
61
+ if (tail.current.length > TAIL_KEPT)
62
+ tail.current.shift();
63
+ }
64
+ // Only an open overlay has anything to repaint; then every folded event may move what it shows (a tick moves
65
+ // the pressure), and Ink paces the terminal, so the view is asked and the terminal is not flooded.
66
+ if (open.current)
67
+ repaint((n) => n + 1);
68
+ }), [bus, framing]);
69
+ return {
70
+ overlay: open.current ? _jsx(DevOverlay, { model: model.current, tail: tail.current, tailRows: tailRows }) : null,
71
+ open: open.current,
72
+ toggle: () => { open.current = !open.current; repaint((n) => n + 1); },
73
+ };
74
+ }
35
75
  //# sourceMappingURL=ink.js.map