@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.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The dev pane's node-free core: the event fold that turns a harness's bus
3
- * stream into renderable pane state, the declarative control table a template
4
- * contributes, and the provenance/tier vocabulary.
3
+ * stream into renderable pane state, the settings rows derived from an
4
+ * application's config table, and the provenance vocabulary.
5
5
  *
6
6
  * Everything here is DERIVED from events the harness already emits — the pane
7
7
  * never asks the harness for anything it doesn't already say. Events arrive
@@ -11,8 +11,8 @@
11
11
  *
12
12
  * @category DevTools
13
13
  */
14
- import type { ConfigOriginValue } from '@lloyal-labs/rig';
15
- export type { ConfigOriginValue } from '@lloyal-labs/rig';
14
+ import type { ConfigOriginValue, ConfigTable, ConfigTier } from '@lloyal-labs/rig';
15
+ export type { ConfigOriginValue, ConfigTable, ConfigTier } from '@lloyal-labs/rig';
16
16
  /** A structural bus event — the pane subscribes to the SAME stream the app
17
17
  * view folds, and narrows by `type` per field it reads. */
18
18
  export type DevEvent = {
@@ -21,30 +21,6 @@ export type DevEvent = {
21
21
  /** The pane's tabs. `prompt` arrives with the trace transport — the model
22
22
  * knows the name so the tab strip can reserve it, but v1 never activates it. */
23
23
  export type PaneTab = 'timeline' | 'sources' | 'settings';
24
- /**
25
- * One template-contributed Settings control — pure DATA, no components. The
26
- * pane renders a segmented control and dispatches
27
- * `{ type: command, [field]: value }` on click; the template's reducer and
28
- * handlers already know that command (it is the same one its composer sends).
29
- */
30
- export interface DevControl {
31
- /** The config path this control edits (display + provenance lookup),
32
- * e.g. `defaults.effort`. */
33
- key: string;
34
- /** The `ConfigOrigin` field carrying this key's provenance, e.g. `effort`
35
- * is not tracked — use the origin key that is (`reasoningMode`), or omit. */
36
- originKey?: string;
37
- /** The values the segmented control offers, in display order. */
38
- values: readonly string[];
39
- /** The command `type` dispatched on selection. */
40
- command: string;
41
- /** The command field carrying the selected value. */
42
- field: string;
43
- /** One clause shown beside the control, e.g. `applies next run`. */
44
- note?: string;
45
- /** Read the current value out of the live config object. */
46
- read: (config: Record<string, unknown>) => string | undefined;
47
- }
48
24
  /** A clarify exchange on the planner's lane — the planner waiting on the
49
25
  * USER, rendered with the same call/wait/answer grammar a tool wait uses. */
50
26
  export interface ClarifyExchange {
@@ -56,10 +32,20 @@ export interface ClarifyExchange {
56
32
  export interface AgentLane {
57
33
  agentId: number;
58
34
  parentAgentId: number | null;
59
- /** The run phase current at spawn — research's own markers (`plan:start`,
60
- * `research:start`, `synthesize:start`) when the template emits them;
61
- * null when the wire says nothing (basic). Never guessed. */
62
- role: 'planner' | 'research' | 'synth' | null;
35
+ /** The phase label current at spawn — from the harness's own
36
+ * {@link RunFraming} declaration; null when its wire marks nothing.
37
+ * Never guessed. */
38
+ role: string | null;
39
+ /** Agent ids whose completion gated this spawn — the DAG's dependency
40
+ * edges, from the orchestrator via `agent:spawn.after`. Never inferred. */
41
+ after?: number[];
42
+ /** Tokens already resident on this lane's prefix at its fork — snapshotted
43
+ * the moment the spawn folds, never reconstructed. Top-level: the trunk
44
+ * inheritance + spine growth so far. Recursive: the parent lane's own
45
+ * inheritance + what it had produced by then (its suffix is not counted —
46
+ * an honest undercount). Absent when the pane cannot attribute the fork
47
+ * (a pre-spine spawn such as a planner). */
48
+ inherited?: number;
63
49
  spawnedAt: number;
64
50
  doneAt: number | null;
65
51
  /** Terminal outcome, when known. `failed` carries the reason. */
@@ -99,25 +85,10 @@ export interface AgentLane {
99
85
  nllSum: number;
100
86
  nllCount: number;
101
87
  }
88
+ /** One host-resources sample on the wire — rig's, produced by its sampler
89
+ * (`startHostResources` in `@lloyal-labs/rig/node`), folded into {@link PaneModel.host}. */
90
+ export type { HostResourcesEvent } from '@lloyal-labs/rig';
102
91
  /** One per-token epistemics sample, stamped at fold time. */
103
- /** One host-resources sample on the wire — produced by the node entry's
104
- * sampler (`@lloyal-labs/dev-tools/node`), folded into {@link PaneModel.host}.
105
- * Declared here so a node-free protocol can name it type-only. */
106
- export interface HostResourcesEvent {
107
- type: 'host:resources';
108
- /** The harness process's CPU use since the last sample, as % of the
109
- * whole machine (all cores). */
110
- cpuPct: number;
111
- /** The process's resident set, MB — on a model host this is effectively
112
- * weights + KV + runtime. */
113
- rssMb: number;
114
- /** System-wide memory in use, MB — honest per-platform accounting
115
- * (darwin: vm_stat active+wired+compressed; linux: total − MemAvailable).
116
- * Absent where no honest read exists. */
117
- sysMemUsedMb?: number;
118
- /** Total machine memory, MB. */
119
- sysMemTotalMb?: number;
120
- }
121
92
  export interface EpiSample {
122
93
  at: number;
123
94
  h: number;
@@ -218,10 +189,78 @@ export interface AbilityInfo {
218
189
  }
219
190
  /** The folded pane state. Everything optional is honestly absent until its
220
191
  * event arrives — the pane renders absence, never a placeholder value. */
192
+ /** The run's framing, declared by the HARNESS as data — the pane knows no
193
+ * pipeline's event names. `phases` maps a marker event to the label every
194
+ * agent spawned under it wears; `open` events reset the run (the timeline
195
+ * anchor); `close` events end it. An application declares its own and edits
196
+ * it when a stage is added or renamed. */
197
+ export interface RunFraming {
198
+ phases: Record<string, string>;
199
+ /** The submission's start markers IN THE ORDER THE WIRE SAYS THEM. Within
200
+ * one run they only advance; a marker at or before the last one seen is a
201
+ * NEW submission superseding an unclosed run — the halt-and-resubmit path
202
+ * emits no close event. Declared out of order, a run resets itself
203
+ * mid-flight, so the application's own tests should fold a real run. */
204
+ open: readonly string[];
205
+ close: readonly string[];
206
+ /** Where the user's instruction lives on THIS harness's wire — the event
207
+ * type and the field carrying its text (and optionally the field carrying
208
+ * its media descriptors). Declared, never guessed: undeclared harnesses
209
+ * get a spine row folded from runtime events alone, with no instruction
210
+ * shown. */
211
+ instruction?: {
212
+ event: string;
213
+ field: string;
214
+ attachments?: string;
215
+ };
216
+ }
217
+ /** What the pane assumes of a harness that declares nothing: no event opens or closes a run, no lane wears a
218
+ * phase, and no instruction is read. Lanes, retrievals, pressure and the trunk still fold, because those come
219
+ * from the runtime's own events; the run axis simply never resets. */
220
+ export declare const DEFAULT_FRAMING: RunFraming;
221
+ /** One session-trunk turn (`branch:prefill role='warmDelta'` mirror) — the
222
+ * verbatim conversation delta the spine accreted, with what it cost. */
223
+ export interface TrunkTurn {
224
+ at: number;
225
+ /** Which conversation side — from the Session's own prefill call, never
226
+ * inferred from the text. `turn` is a committed whole exchange. */
227
+ speaker?: 'user' | 'assistant' | 'tool' | 'turn';
228
+ /** Verbatim prefilled text (the trunk conversation turn). */
229
+ content: string;
230
+ /** A committed exchange's halves (`speaker: 'turn'`) — never re-split
231
+ * from `content`. */
232
+ query?: string;
233
+ response?: string;
234
+ /** KV cells the prefill added. */
235
+ cells: number;
236
+ /** The trunk branch this turn accreted onto — the key the release fold
237
+ * deletes by when that branch leaves the KV. */
238
+ branchHandle?: number;
239
+ /** The images that entered with it — roots, resolvable to bytes through
240
+ * the bridge's `representationUrl` when the harness exposes one. */
241
+ attachments: {
242
+ digest: string;
243
+ mediaType?: string;
244
+ }[];
245
+ /** Wall time of the run this delta settled out of — folded from the run
246
+ * anchor at arrival. Absent when no run was open. */
247
+ wallMs?: number;
248
+ /** What the run's agents spent (sum of its lanes' cumulative counters) to
249
+ * produce this delta — the numerator of the distillation ratio whose
250
+ * denominator is `cells`. Absent with `wallMs`. */
251
+ agentTokens?: number;
252
+ }
221
253
  export interface PaneModel {
222
- /** The current run's phase cursor — set by the template's own phase events;
254
+ /** The current run's phase cursor — set by the framing's marker events;
223
255
  * tags each spawn with a role. */
224
- runPhase: 'planner' | 'research' | 'synth' | null;
256
+ runPhase: string | null;
257
+ /** A run is OPEN from its first open-marker until a close-marker ends it —
258
+ * the reset guard, replacing the old 1.5s timing window (recon can hold
259
+ * the start markers apart for minutes). */
260
+ runOpen: boolean;
261
+ /** Position (in `framing.open`) of the last open-marker seen — the
262
+ * supersede detector: a marker at or before it starts a NEW run. */
263
+ lastOpenIdx: number;
225
264
  /** When the current run began (`query` / `plan:start`) — the timeline's
226
265
  * anchor. Null before the first run. */
227
266
  runStartAt: number | null;
@@ -262,6 +301,53 @@ export interface PaneModel {
262
301
  * "applied for this session"). Undefined until a save happens. */
263
302
  lastSavedTo: string | null | undefined;
264
303
  lanes: Map<number, AgentLane>;
304
+ /** The RESIDENT conversation — the turns of the trunk the model can
305
+ * currently attend. Not cleared by `resetRun` (the next run rides the
306
+ * live trunk), but a released trunk's turns are REMOVED when its
307
+ * `branch:prune` folds: dead cells feed nothing, so the feed never
308
+ * shows them. History across trunks is the harness's concern. */
309
+ trunk: TrunkTurn[];
310
+ /** The run's SPINE, run-scoped: the shared root every agent forks from.
311
+ * Folded from runtime events alone (`branch:prefill role='spineHeader'`,
312
+ * `prompt:format role='spine'`) — universal to any pool harness — plus,
313
+ * when the harness DECLARES it ({@link RunFraming.instruction}), the
314
+ * user's instruction verbatim. This is the prompt's home in the pane
315
+ * even when a run later fails. Cleared by `resetRun`. */
316
+ spine: {
317
+ /** The user's instruction, as submitted — null until (unless) the
318
+ * harness's declared instruction event arrives. Never guessed. */
319
+ query: string | null;
320
+ attachments: {
321
+ digest: string;
322
+ }[];
323
+ /** First-seen moment (instruction arrival or first header prefill). */
324
+ at: number;
325
+ /** KV cells the spine header prefills added (outer + inner pools). */
326
+ spineCells: number;
327
+ /** The compiled spine header (system + tools), verbatim. */
328
+ headerText: string | null;
329
+ headerTokens: number;
330
+ spineAt: number | null;
331
+ /** Every moment the spine grew, with what it grew by — the seed first,
332
+ * then each extension (a chain step, a fanout widening). The bar's
333
+ * tick marks. */
334
+ growth: {
335
+ at: number;
336
+ tokens: number;
337
+ }[];
338
+ /** Positions inherited at fork — 0 on a cold start, the trunk's length
339
+ * on a warm one. From `branch:create role='spine'` position; first
340
+ * spine only (the inner pool's spine forks from the outer). */
341
+ inherited?: number;
342
+ /** Parsed from the STRUCTURED `tools` field the runtime emits on
343
+ * `prompt:format role='spine'` — reading data, not scraping markup. */
344
+ tools?: {
345
+ name: string;
346
+ description: string;
347
+ }[];
348
+ /** The system message text, from the structured `messages` field. */
349
+ systemText?: string | null;
350
+ } | null;
265
351
  retrievals: Retrieval[];
266
352
  pressure: PressurePoint[];
267
353
  /** Host samples (`host:resources`, dev-gated boots only): the harness
@@ -295,7 +381,7 @@ export interface PaneModel {
295
381
  eventCount: number;
296
382
  }
297
383
  export declare function createPaneModel(): PaneModel;
298
- export declare function foldEvent(m: PaneModel, ev: DevEvent, now: number): void;
384
+ export declare function foldEvent(m: PaneModel, ev: DevEvent, now: number, framing?: RunFraming): void;
299
385
  /** Live when any lane is still open — the run is producing and the pane's
300
386
  * clocks (elapsed, park countdowns) must keep advancing even between
301
387
  * events. */
@@ -319,10 +405,33 @@ export declare const PROVENANCE_RUNGS: readonly {
319
405
  rung: ConfigOriginValue;
320
406
  means: string;
321
407
  }[];
322
- /** The tier each well-known config key answers to. The runtime sets the tier,
323
- * not the UI — it decides whether a control can exist at all. */
324
- export type ConfigTier = 'session' | 'reload' | 'boot';
325
- export declare const KEY_TIERS: Readonly<Record<string, ConfigTier>>;
408
+ /** One row of the Settings inspector, derived from the application's config table. */
409
+ export interface ConfigRow {
410
+ /** The config path, e.g. `defaults.effort`. */
411
+ key: string;
412
+ /** When a change takes effect — the key's own declaration, `session` when it says nothing. */
413
+ applies: ConfigTier;
414
+ /** The values the row offers, or null when it offers none: the key lists no values, it is fixed at boot,
415
+ * or it is not a `family.leaf` path, which is all a settings patch can name. */
416
+ values: readonly string[] | null;
417
+ /** What the key is, in the declaration's own words; absent when it said nothing. */
418
+ describe?: string;
419
+ /** Where `harness.yml` sets it, and the environment variable that outranks the files — for saying how to change it. */
420
+ yml?: string;
421
+ env?: string;
422
+ }
423
+ export declare function configRows(table: ConfigTable): ConfigRow[];
424
+ /** How a row is changed, said from its declaration: the tier says when, `yml` and `env` say where. */
425
+ export declare function changing(row: ConfigRow): string;
426
+ /** The command that makes a row's choice: rig's own, for the row's tier, carrying a real patch. Null when the
427
+ * row offers no such choice. */
428
+ export declare function configCommand(row: ConfigRow, value: string): {
429
+ type: 'set_config' | 'reload_runtime';
430
+ patch: Record<string, Record<string, string>>;
431
+ } | null;
432
+ /** Every path the live config carries — a top-level key, or a `family.leaf` under one — as the rows of a harness
433
+ * that handed the pane no table. The keys rig owns (`version`, the `abilities` family) are not the app's. */
434
+ export declare function liveConfigKeys(config: Record<string, unknown> | null): string[];
326
435
  /** Read a dotted config path off the live config object. */
327
436
  export declare function readConfigPath(config: Record<string, unknown> | null, path: string): unknown;
328
437
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}