@contraagent/api 0.1.0 → 0.3.0

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/README.md CHANGED
@@ -11,8 +11,14 @@ A `::code` line quotes a file of the package; the [documentation site](https://t
11
11
 
12
12
  ## Getting it
13
13
 
14
- The package is not in the npm registry; install it from a checkout of the
15
- repository. Every monitor also serves the client, the feeds and the store as
14
+ Install the package from the npm registry:
15
+
16
+ ```
17
+ npm install @contraagent/api
18
+ ```
19
+
20
+ A checkout of the repository packs its own version ([Use it from a
21
+ checkout](#use-it-from-a-checkout)). Every monitor also serves the client, the feeds and the store as
16
22
  exports of its `/app.js` (`@contraagent/ui`'s documentation).
17
23
 
18
24
  ## Use it from a checkout
package/dist/panels.d.ts CHANGED
@@ -13,16 +13,20 @@ export type HBar = S['HBar'];
13
13
  export type StatusGridBody = S['StatusGridBody'];
14
14
  export type GridCell = S['GridCell'];
15
15
  export type NoteBody = S['NoteBody'];
16
+ export type CodeBody = S['CodeBody'];
17
+ export type TreeBody = S['TreeBody'];
18
+ export type TreeNode = S['TreeNode'];
19
+ export type TreeLink = S['TreeLink'];
16
20
  export type BlocksBody = S['BlocksBody'];
17
21
  export type ChartSeries = S['ChartSeries'];
18
22
  /** How a number of a body is written: `pct` is a fraction (0.97 is 97%), `duration` seconds, `datetime` an ISO time. */
19
23
  export type ValueFormat = NonNullable<TableColumn['format']>;
20
24
  /** A body with a `type`: drawn with the monitor's own elements. */
21
- export type TypedPanelBody = TilesBody | TableBody | ColumnsBody | LinesBody | HeatmapBody | HBarsBody | StatusGridBody | NoteBody | BlocksBody;
25
+ export type TypedPanelBody = TilesBody | TableBody | ColumnsBody | LinesBody | HeatmapBody | HBarsBody | StatusGridBody | NoteBody | CodeBody | TreeBody | BlocksBody;
22
26
  /** What a panel returns: a typed body, or any JSON object. */
23
27
  export type PanelBody = TypedPanelBody | JsonObject;
24
28
  /** The `type` of each typed body. */
25
- export declare const PANEL_TYPES: readonly ["tiles", "table", "columns", "lines", "heatmap", "hbars", "status_grid", "note", "blocks"];
29
+ export declare const PANEL_TYPES: readonly ["tiles", "table", "columns", "lines", "heatmap", "hbars", "status_grid", "note", "code", "tree", "blocks"];
26
30
  /** `body` as a typed body, or null when it is any other JSON object (a JSON tree). */
27
31
  export declare function typedBody(body: unknown): TypedPanelBody | null;
28
32
  /** A panel computed per run: a tab of each run, sent on its live feed (a trends panel is not). */
@@ -1 +1 @@
1
- {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,KAAK,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,wHAAwH;AACxH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE7D,mEAAmE;AACnE,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,cAAc,GACd,QAAQ,GACR,UAAU,CAAC;AACf,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;AAEpD,qCAAqC;AACrC,eAAO,MAAM,WAAW,sGAAuG,CAAC;AAEhI,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAI9D;AAED,kGAAkG;AAClG,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAG,OAAuC,CAAC"}
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,KAAK,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACvC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AACzC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;AAC3C,wHAAwH;AACxH,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE7D,mEAAmE;AACnE,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,SAAS,GACT,cAAc,GACd,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AACf,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC;AAEpD,qCAAqC;AACrC,eAAO,MAAM,WAAW,sHAAuH,CAAC;AAEhJ,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAI9D;AAED,kGAAkG;AAClG,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAG,OAAuC,CAAC"}
package/dist/panels.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /** The `type` of each typed body. */
2
- export const PANEL_TYPES = ['tiles', 'table', 'columns', 'lines', 'heatmap', 'hbars', 'status_grid', 'note', 'blocks'];
2
+ export const PANEL_TYPES = ['tiles', 'table', 'columns', 'lines', 'heatmap', 'hbars', 'status_grid', 'note', 'code', 'tree', 'blocks'];
3
3
  /** `body` as a typed body, or null when it is any other JSON object (a JSON tree). */
4
4
  export function typedBody(body) {
5
5
  if (!body || typeof body !== 'object' || Array.isArray(body))
@@ -1 +1 @@
1
- {"version":3,"file":"panels.js","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAuCA,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEhI,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAK,WAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzH,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAA2B,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC"}
1
+ {"version":3,"file":"panels.js","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AA6CA,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEhJ,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;IAC/C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAK,WAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;AACzH,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAA2B,EAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -400,6 +400,11 @@ export type components = {
400
400
  * @default false
401
401
  */
402
402
  collapsed?: boolean;
403
+ /**
404
+ * Anchor
405
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
406
+ */
407
+ anchor?: string | null;
403
408
  /**
404
409
  * Type
405
410
  * @default blocks
@@ -407,14 +412,16 @@ export type components = {
407
412
  */
408
413
  type?: "blocks";
409
414
  /** Blocks */
410
- blocks: (components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["BlocksBody"] | {
415
+ blocks: (components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["CodeBody"] | components["schemas"]["TreeBody"] | components["schemas"]["BlocksBody"] | {
411
416
  [key: string]: unknown;
412
417
  })[];
413
418
  };
414
419
  /**
415
420
  * Changes
416
421
  * @description The files one attempt changed under its task's `changes` patterns, as paths relative
417
- * to the working directory: those it `created`, `modified` and `deleted`.
422
+ * to the working directory: those it `created`, `modified` and `deleted`. Of a failed
423
+ * attempt's created files, `removed` lists those the runner removed, and `kept` those it
424
+ * left in place because the kind keeps them (`keep_failed_changes`).
418
425
  */
419
426
  Changes: {
420
427
  /**
@@ -437,6 +444,11 @@ export type components = {
437
444
  * @default []
438
445
  */
439
446
  removed?: string[];
447
+ /**
448
+ * Kept
449
+ * @default []
450
+ */
451
+ kept?: string[];
440
452
  } & {
441
453
  [key: string]: unknown;
442
454
  };
@@ -450,6 +462,72 @@ export type components = {
450
462
  /** Values */
451
463
  values: (number | null)[];
452
464
  };
465
+ /**
466
+ * CodeBody
467
+ * @description A text shown as code: highlighted by its `language` (one of `LANGUAGES`, a file's
468
+ * extension such as `py`, or anything else for plain text), with line numbers from
469
+ * `start`. `highlight` marks lines in those numbers: a line (`7`) or a range of lines,
470
+ * both included (`[10, 14]`). `path` names the file over it. Long lines scroll sideways
471
+ * unless `wrap`. The monitor shows the first `CODE_LINES` lines (and at most
472
+ * `CODE_CHARACTERS` characters) and says how many it left out.
473
+ */
474
+ CodeBody: {
475
+ /**
476
+ * Title
477
+ * @description a heading over the body
478
+ */
479
+ title?: string | null;
480
+ /**
481
+ * Collapsed
482
+ * @description shown folded, under its title
483
+ * @default false
484
+ */
485
+ collapsed?: boolean;
486
+ /**
487
+ * Anchor
488
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
489
+ */
490
+ anchor?: string | null;
491
+ /**
492
+ * Type
493
+ * @default code
494
+ * @constant
495
+ */
496
+ type?: "code";
497
+ /** Text */
498
+ text: string;
499
+ /**
500
+ * Language
501
+ * @description a name of `LANGUAGES` or a file extension; '': plain text
502
+ * @default
503
+ */
504
+ language?: string;
505
+ /**
506
+ * Start
507
+ * @description the number of the first line
508
+ * @default 1
509
+ */
510
+ start?: number;
511
+ /**
512
+ * Highlight
513
+ * @description lines marked: a line, or a range, both ends included
514
+ */
515
+ highlight?: (number | [
516
+ number,
517
+ number
518
+ ])[];
519
+ /**
520
+ * Path
521
+ * @description the file the text is, named over it
522
+ */
523
+ path?: string | null;
524
+ /**
525
+ * Wrap
526
+ * @description long lines wrap; otherwise they scroll sideways
527
+ * @default false
528
+ */
529
+ wrap?: boolean;
530
+ };
453
531
  /**
454
532
  * ColumnsBody
455
533
  * @description Vertical bars, one group per label of `x`; `stacked` puts the series of a label on one bar.
@@ -466,6 +544,11 @@ export type components = {
466
544
  * @default false
467
545
  */
468
546
  collapsed?: boolean;
547
+ /**
548
+ * Anchor
549
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
550
+ */
551
+ anchor?: string | null;
469
552
  /**
470
553
  * Type
471
554
  * @default columns
@@ -555,6 +638,11 @@ export type components = {
555
638
  * @description input: the key of the task whose output it is
556
639
  */
557
640
  producer?: string | null;
641
+ /**
642
+ * Format
643
+ * @description what the file holds: one JSON document, any text, or rows (JSON Lines, `fields` those of one line)
644
+ */
645
+ format?: ("json" | "text" | "jsonl") | null;
558
646
  /** Schema Name */
559
647
  schema_name: string;
560
648
  /**
@@ -811,8 +899,9 @@ export type components = {
811
899
  };
812
900
  /**
813
901
  * FileView
814
- * @description A contract's file as it is now. `content` is the parsed JSON, else the
815
- * text (cut at 20 000 characters, `truncated`), else null when unreadable.
902
+ * @description A contract's file as it is now. `content` is the parsed JSON (for rows, the list of
903
+ * the lines that parse), else the text (cut at 20 000 characters, `truncated`), else null
904
+ * when unreadable.
816
905
  */
817
906
  FileView: {
818
907
  /** Exists */
@@ -939,6 +1028,11 @@ export type components = {
939
1028
  * @default false
940
1029
  */
941
1030
  collapsed?: boolean;
1031
+ /**
1032
+ * Anchor
1033
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
1034
+ */
1035
+ anchor?: string | null;
942
1036
  /**
943
1037
  * Type
944
1038
  * @default hbars
@@ -971,6 +1065,11 @@ export type components = {
971
1065
  * @default false
972
1066
  */
973
1067
  collapsed?: boolean;
1068
+ /**
1069
+ * Anchor
1070
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
1071
+ */
1072
+ anchor?: string | null;
974
1073
  /**
975
1074
  * Type
976
1075
  * @default heatmap
@@ -1233,6 +1332,8 @@ export type components = {
1233
1332
  rounds?: number | null;
1234
1333
  /** Round Errors */
1235
1334
  round_errors?: string[][];
1335
+ /** Max Corrections */
1336
+ max_corrections?: number | null;
1236
1337
  /** Hook Errors */
1237
1338
  hook_errors?: string[][];
1238
1339
  usage?: components["schemas"]["TokenUsage"] | null;
@@ -1259,6 +1360,16 @@ export type components = {
1259
1360
  * @default
1260
1361
  */
1261
1362
  fingerprint?: string;
1363
+ /**
1364
+ * Outside
1365
+ * @default
1366
+ */
1367
+ outside?: string;
1368
+ /**
1369
+ * Rerun
1370
+ * @default
1371
+ */
1372
+ rerun?: string;
1262
1373
  /** Flow Call */
1263
1374
  flow_call?: string | null;
1264
1375
  /**
@@ -1329,6 +1440,11 @@ export type components = {
1329
1440
  * @default false
1330
1441
  */
1331
1442
  collapsed?: boolean;
1443
+ /**
1444
+ * Anchor
1445
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
1446
+ */
1447
+ anchor?: string | null;
1332
1448
  /**
1333
1449
  * Type
1334
1450
  * @default lines
@@ -1477,6 +1593,11 @@ export type components = {
1477
1593
  * @default false
1478
1594
  */
1479
1595
  collapsed?: boolean;
1596
+ /**
1597
+ * Anchor
1598
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
1599
+ */
1600
+ anchor?: string | null;
1480
1601
  /**
1481
1602
  * Type
1482
1603
  * @default note
@@ -1615,7 +1736,7 @@ export type components = {
1615
1736
  */
1616
1737
  event: string;
1617
1738
  /** Data */
1618
- data: components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["BlocksBody"] | {
1739
+ data: components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["CodeBody"] | components["schemas"]["TreeBody"] | components["schemas"]["BlocksBody"] | {
1619
1740
  [key: string]: unknown;
1620
1741
  };
1621
1742
  };
@@ -1676,6 +1797,11 @@ export type components = {
1676
1797
  * @description each model the run's agent sessions ran on, in order of first use
1677
1798
  */
1678
1799
  models?: components["schemas"]["ModelUsage"][];
1800
+ /**
1801
+ * Services
1802
+ * @description each start of a service of the run (`services.jsonl`), with its stop, in start order
1803
+ */
1804
+ services?: components["schemas"]["ServiceSpan"][];
1679
1805
  /** @description what the run's preflight did (`run.json`); null when its run.json records none */
1680
1806
  preflight?: components["schemas"]["PreflightRecord"] | null;
1681
1807
  };
@@ -1756,6 +1882,12 @@ export type components = {
1756
1882
  * @default 0
1757
1883
  */
1758
1884
  priority?: number;
1885
+ /**
1886
+ * Credential
1887
+ * @description the credential its task call names (`credential=`), which every route of its kind ran it as; empty when it names none, or a run-wide override outranks it
1888
+ * @default
1889
+ */
1890
+ credential?: string;
1759
1891
  /**
1760
1892
  * Executor
1761
1893
  * @default agent
@@ -1823,6 +1955,12 @@ export type components = {
1823
1955
  deferred?: string;
1824
1956
  /** @description the same as data; null when it was not deferred, or the run recorded no cause */
1825
1957
  deferred_cause?: components["schemas"]["DeferralCause"] | null;
1958
+ /**
1959
+ * Rerun
1960
+ * @description why a resume ran it again although an earlier attempt of the run had finished it (its outside state changed, ...), from its last journal row; empty when no earlier attempt had
1961
+ * @default
1962
+ */
1963
+ rerun?: string;
1826
1964
  } & {
1827
1965
  [key: string]: unknown;
1828
1966
  };
@@ -2166,6 +2304,62 @@ export type components = {
2166
2304
  */
2167
2305
  row_extras?: string[];
2168
2306
  };
2307
+ /**
2308
+ * ServiceSpan
2309
+ * @description One start of the service a claim name stands for (`services.jsonl`), with its stop.
2310
+ */
2311
+ ServiceSpan: {
2312
+ /**
2313
+ * Name
2314
+ * @description the claim name the service stands for
2315
+ */
2316
+ name: string;
2317
+ /**
2318
+ * Started At
2319
+ * @description when its start ended, ISO 8601
2320
+ */
2321
+ started_at: string;
2322
+ /**
2323
+ * Key
2324
+ * @description the task whose claim started it
2325
+ * @default
2326
+ */
2327
+ key?: string;
2328
+ /**
2329
+ * Address
2330
+ * @description what it gave its tasks to reach it; null for none
2331
+ */
2332
+ address?: string | null;
2333
+ /**
2334
+ * Start S
2335
+ * @description how long its start took, in seconds
2336
+ * @default 0
2337
+ */
2338
+ start_s?: number;
2339
+ /**
2340
+ * Start Error
2341
+ * @description the exception of a start that failed (the service did not start); empty when it started
2342
+ * @default
2343
+ */
2344
+ start_error?: string;
2345
+ /**
2346
+ * Stopped At
2347
+ * @description when it stopped, ISO 8601; empty while it is up, or when the run ended with no stop recorded
2348
+ * @default
2349
+ */
2350
+ stopped_at?: string;
2351
+ /**
2352
+ * Stop Cause
2353
+ * @description why it stopped; null while it is up
2354
+ */
2355
+ stop_cause?: ("run_end" | "interrupted") | null;
2356
+ /**
2357
+ * Stop Error
2358
+ * @description the exception its stop raised; empty when the stop went well
2359
+ * @default
2360
+ */
2361
+ stop_error?: string;
2362
+ };
2169
2363
  /**
2170
2364
  * SkippedHop
2171
2365
  * @description A hop of the failover chain an attempt passed over without a launch, because its
@@ -2244,6 +2438,11 @@ export type components = {
2244
2438
  * @default false
2245
2439
  */
2246
2440
  collapsed?: boolean;
2441
+ /**
2442
+ * Anchor
2443
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
2444
+ */
2445
+ anchor?: string | null;
2247
2446
  /**
2248
2447
  * Type
2249
2448
  * @default status_grid
@@ -2316,6 +2515,11 @@ export type components = {
2316
2515
  * @default false
2317
2516
  */
2318
2517
  collapsed?: boolean;
2518
+ /**
2519
+ * Anchor
2520
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
2521
+ */
2522
+ anchor?: string | null;
2319
2523
  /**
2320
2524
  * Type
2321
2525
  * @default table
@@ -2586,6 +2790,11 @@ export type components = {
2586
2790
  * @default false
2587
2791
  */
2588
2792
  collapsed?: boolean;
2793
+ /**
2794
+ * Anchor
2795
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
2796
+ */
2797
+ anchor?: string | null;
2589
2798
  /**
2590
2799
  * Type
2591
2800
  * @default tiles
@@ -2774,6 +2983,93 @@ export type components = {
2774
2983
  } & {
2775
2984
  [key: string]: unknown;
2776
2985
  };
2986
+ /**
2987
+ * TreeBody
2988
+ * @description A tree of nodes, folded and opened by the reader: files and directories, say. A
2989
+ * node's `code` is shown beside the tree when the node is selected, with no request
2990
+ * of its own: a panel of files returns their texts with the tree. `selected` is the
2991
+ * node selected first (its `id`; default: the first node with code).
2992
+ */
2993
+ TreeBody: {
2994
+ /**
2995
+ * Title
2996
+ * @description a heading over the body
2997
+ */
2998
+ title?: string | null;
2999
+ /**
3000
+ * Collapsed
3001
+ * @description shown folded, under its title
3002
+ * @default false
3003
+ */
3004
+ collapsed?: boolean;
3005
+ /**
3006
+ * Anchor
3007
+ * @description a name a tree node's link leads to: the body is scrolled into view (`TreeLink.anchor`)
3008
+ */
3009
+ anchor?: string | null;
3010
+ /**
3011
+ * Type
3012
+ * @default tree
3013
+ * @constant
3014
+ */
3015
+ type?: "tree";
3016
+ /** Nodes */
3017
+ nodes: components["schemas"]["TreeNode"][];
3018
+ /** Selected */
3019
+ selected?: string | null;
3020
+ };
3021
+ /**
3022
+ * TreeLink
3023
+ * @description Where a tree node leads, in the monitor: a run panel's tab (`panel`, its name), a
3024
+ * task (`task`, its key), each in `run` (default: the run shown), or a body of the same
3025
+ * panel (`anchor`, its `anchor`). Exactly one of `panel`, `task` and `anchor`.
3026
+ */
3027
+ TreeLink: {
3028
+ /** Panel */
3029
+ panel?: string | null;
3030
+ /**
3031
+ * Task
3032
+ * @description a task's key
3033
+ */
3034
+ task?: string | null;
3035
+ /**
3036
+ * Run
3037
+ * @description the run of `panel` or `task`; a trends panel names it
3038
+ */
3039
+ run?: string | null;
3040
+ /** Anchor */
3041
+ anchor?: string | null;
3042
+ };
3043
+ /**
3044
+ * TreeNode
3045
+ * @description One node of a tree: its `name`, and `children` under it. `id` names it (default: the
3046
+ * names from the top, joined by `/`). `icon` is `directory` for a node with children and
3047
+ * `file` for one without, unless given. `badge` is a word beside the name, coloured by
3048
+ * `tone`. A node shows its `code` beside the tree when
3049
+ * it is selected, or leads elsewhere by its `link`; not both. `open`: its children are
3050
+ * shown at first.
3051
+ */
3052
+ TreeNode: {
3053
+ /** Name */
3054
+ name: string;
3055
+ /** Id */
3056
+ id?: string | null;
3057
+ /** Icon */
3058
+ icon?: ("file" | "directory") | null;
3059
+ /** Badge */
3060
+ badge?: string | null;
3061
+ /** Tone */
3062
+ tone?: ("failed" | "attention" | "done" | "running" | "muted" | "neutral") | null;
3063
+ /**
3064
+ * Open
3065
+ * @default true
3066
+ */
3067
+ open?: boolean;
3068
+ /** Children */
3069
+ children?: components["schemas"]["TreeNode"][];
3070
+ code?: components["schemas"]["CodeBody"] | null;
3071
+ link?: components["schemas"]["TreeLink"] | null;
3072
+ };
2777
3073
  /**
2778
3074
  * TrendDay
2779
3075
  * @description One day: its attempts (by when they ended), and its cost per group (`Monitor(groups=)`; a kind in none is its own).
@@ -3312,7 +3608,7 @@ export interface operations {
3312
3608
  [name: string]: unknown;
3313
3609
  };
3314
3610
  content: {
3315
- "application/json": components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["BlocksBody"] | {
3611
+ "application/json": components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["CodeBody"] | components["schemas"]["TreeBody"] | components["schemas"]["BlocksBody"] | {
3316
3612
  [key: string]: unknown;
3317
3613
  };
3318
3614
  };
@@ -3614,7 +3910,7 @@ export interface operations {
3614
3910
  [name: string]: unknown;
3615
3911
  };
3616
3912
  content: {
3617
- "application/json": components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["BlocksBody"] | {
3913
+ "application/json": components["schemas"]["TilesBody"] | components["schemas"]["TableBody"] | components["schemas"]["ColumnsBody"] | components["schemas"]["LinesBody"] | components["schemas"]["HeatmapBody"] | components["schemas"]["HBarsBody"] | components["schemas"]["StatusGridBody"] | components["schemas"]["NoteBody"] | components["schemas"]["CodeBody"] | components["schemas"]["TreeBody"] | components["schemas"]["BlocksBody"] | {
3618
3914
  [key: string]: unknown;
3619
3915
  };
3620
3916
  };