@re-cinq/floor-contracts 0.1.9 → 0.1.11

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.
@@ -39,6 +39,11 @@ export interface LineNode {
39
39
  start?: string;
40
40
  bind?: Record<string, string>;
41
41
  reports?: LineNodeReport[];
42
+ /** This node reports a list in its produced value `over` (a JSON array of strings); node `to` then runs once per item, with the item as its `item` need, and the walk goes on past `to` when every one has reported. */
43
+ fanout?: {
44
+ over: string;
45
+ to: string;
46
+ };
42
47
  }
43
48
  export interface LineEdge {
44
49
  from: string;
@@ -49,6 +54,8 @@ export interface LineEdge {
49
54
  export interface LineBody {
50
55
  entry: string;
51
56
  exit: string;
57
+ /** Node that ends the run as failed on purpose; absent means no node can. */
58
+ fail?: string;
52
59
  start?: LineStart;
53
60
  args: Record<string, LineArgSpec>;
54
61
  /** Name -> blob hash, seeded into every run's bag at start. */
@@ -65,6 +72,8 @@ export interface NeedSpec {
65
72
  /** `git` needs only; `read` is the default. */
66
73
  access?: "read" | "write";
67
74
  optional?: boolean;
75
+ /** `value` needs only: the name of an item the body of a fan-out produces. The need is filled with a JSON array of what each branch of the latest fan-out produced under it, in branch order. */
76
+ collect?: string;
68
77
  }
69
78
  export interface ProduceSpec {
70
79
  name: string;
package/dist/views.d.ts CHANGED
@@ -3,7 +3,7 @@ export interface RunFields<Time> {
3
3
  id: string;
4
4
  lineId: string;
5
5
  lineHash: string;
6
- repo: string;
6
+ repo: string | null;
7
7
  subjectKey: string | null;
8
8
  startItems: Record<string, Item>;
9
9
  outcome: string | null;
@@ -22,6 +22,8 @@ export interface VisitFields<Time> {
22
22
  report: Report | null;
23
23
  worker: string | null;
24
24
  requestedBy: string | null;
25
+ /** Which item of a fan-out this visit is the body for; null on an ordinary visit. */
26
+ branch: number | null;
25
27
  deadline: Time | null;
26
28
  /** The previous visit's sessionRef, for an executor restoring a conversation. Beyond the public Brief a station author sees: this is the executor's own lookup, resolved once so it is not repeated. */
27
29
  resumedFrom: string | null;
package/dist/wire.d.ts CHANGED
@@ -71,6 +71,12 @@ export type BriefSettings = ExecutorSettings & {
71
71
  /** `GET /station-runs/:id/brief`: everything an executor needs to run one visit, and a token that reaches only this visit. */
72
72
  export interface VisitBrief {
73
73
  visitId: string;
74
+ /** The assembly run this visit belongs to. */
75
+ runId: string;
76
+ /** The assembly line that run walks. */
77
+ lineId: string;
78
+ /** The node of that line this visit is a pass at: with `runId`, what a station keys per-node state on. */
79
+ nodeId: string;
74
80
  iteration: number;
75
81
  floorBaseUrl: string;
76
82
  token: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@re-cinq/floor-contracts",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "The floor's wire, as types: what its HTTP routes and its live socket take and answer, and nothing else. No runtime, no dependencies.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {