@bluewombat/runtime 0.8.0 → 0.10.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.
Files changed (141) hide show
  1. package/README.md +236 -142
  2. package/SPECS.md +138 -97
  3. package/dist/cli.js +35 -37
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config/agent-shorthand.d.ts +24 -4
  6. package/dist/config/agent-shorthand.d.ts.map +1 -1
  7. package/dist/config/agent-shorthand.js +65 -28
  8. package/dist/config/agent-shorthand.js.map +1 -1
  9. package/dist/config/defaults.d.ts +0 -2
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +0 -2
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/find-config.d.ts +3 -2
  14. package/dist/config/find-config.d.ts.map +1 -1
  15. package/dist/config/find-config.js +4 -4
  16. package/dist/config/find-config.js.map +1 -1
  17. package/dist/config/home.d.ts +2 -0
  18. package/dist/config/home.d.ts.map +1 -1
  19. package/dist/config/home.js +4 -2
  20. package/dist/config/home.js.map +1 -1
  21. package/dist/config/load-config.d.ts +2 -2
  22. package/dist/config/load-config.d.ts.map +1 -1
  23. package/dist/config/load-config.js +342 -73
  24. package/dist/config/load-config.js.map +1 -1
  25. package/dist/config/parse-args.d.ts +1 -1
  26. package/dist/config/parse-args.d.ts.map +1 -1
  27. package/dist/config/parse-args.js +132 -103
  28. package/dist/config/parse-args.js.map +1 -1
  29. package/dist/config/types.d.ts +142 -38
  30. package/dist/config/types.d.ts.map +1 -1
  31. package/dist/config/types.js +13 -1
  32. package/dist/config/types.js.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/loop/authority.d.ts +41 -5
  38. package/dist/loop/authority.d.ts.map +1 -1
  39. package/dist/loop/authority.js +68 -24
  40. package/dist/loop/authority.js.map +1 -1
  41. package/dist/loop/context.d.ts +23 -3
  42. package/dist/loop/context.d.ts.map +1 -1
  43. package/dist/loop/deliveries.d.ts +16 -16
  44. package/dist/loop/deliveries.d.ts.map +1 -1
  45. package/dist/loop/deliveries.js +35 -187
  46. package/dist/loop/deliveries.js.map +1 -1
  47. package/dist/loop/describe.d.ts +4 -6
  48. package/dist/loop/describe.d.ts.map +1 -1
  49. package/dist/loop/describe.js +2 -2
  50. package/dist/loop/describe.js.map +1 -1
  51. package/dist/loop/drive.d.ts +11 -7
  52. package/dist/loop/drive.d.ts.map +1 -1
  53. package/dist/loop/drive.js +24 -38
  54. package/dist/loop/drive.js.map +1 -1
  55. package/dist/loop/features.d.ts +23 -0
  56. package/dist/loop/features.d.ts.map +1 -0
  57. package/dist/loop/features.js +834 -0
  58. package/dist/loop/features.js.map +1 -0
  59. package/dist/loop/journal.d.ts +1 -1
  60. package/dist/loop/journal.js +2 -2
  61. package/dist/loop/journal.js.map +1 -1
  62. package/dist/loop/lock.d.ts +1 -1
  63. package/dist/loop/lock.js +1 -1
  64. package/dist/loop/open-host.d.ts.map +1 -1
  65. package/dist/loop/open-host.js +132 -31
  66. package/dist/loop/open-host.js.map +1 -1
  67. package/dist/loop/probe.d.ts +1 -1
  68. package/dist/loop/probe.d.ts.map +1 -1
  69. package/dist/loop/probe.js +51 -22
  70. package/dist/loop/probe.js.map +1 -1
  71. package/dist/loop/process-tree.d.ts +1 -1
  72. package/dist/loop/process-tree.js +1 -1
  73. package/dist/loop/report.d.ts +9 -7
  74. package/dist/loop/report.d.ts.map +1 -1
  75. package/dist/loop/report.js +49 -106
  76. package/dist/loop/report.js.map +1 -1
  77. package/dist/loop/streams.d.ts +5 -5
  78. package/dist/loop/streams.d.ts.map +1 -1
  79. package/dist/loop/streams.js +3 -3
  80. package/dist/loop/streams.js.map +1 -1
  81. package/dist/loop/tick.d.ts +6 -4
  82. package/dist/loop/tick.d.ts.map +1 -1
  83. package/dist/loop/tick.js +50 -78
  84. package/dist/loop/tick.js.map +1 -1
  85. package/dist/loop/trace.d.ts +5 -5
  86. package/dist/loop/trace.d.ts.map +1 -1
  87. package/dist/loop/trace.js +5 -14
  88. package/dist/loop/trace.js.map +1 -1
  89. package/dist/loop/transformers.d.ts +18 -14
  90. package/dist/loop/transformers.d.ts.map +1 -1
  91. package/dist/loop/transformers.js +139 -74
  92. package/dist/loop/transformers.js.map +1 -1
  93. package/dist/loop/warm.d.ts +3 -3
  94. package/dist/loop/warm.js +4 -4
  95. package/dist/loop/warm.js.map +1 -1
  96. package/dist/loop/work-line.d.ts +1 -1
  97. package/dist/operator/agent-plugins.d.ts +11 -0
  98. package/dist/operator/agent-plugins.d.ts.map +1 -1
  99. package/dist/operator/agent-plugins.js +17 -11
  100. package/dist/operator/agent-plugins.js.map +1 -1
  101. package/dist/operator/board.d.ts +3 -8
  102. package/dist/operator/board.d.ts.map +1 -1
  103. package/dist/operator/board.js +2 -11
  104. package/dist/operator/board.js.map +1 -1
  105. package/dist/operator/cancel.d.ts +2 -2
  106. package/dist/operator/cancel.js +6 -6
  107. package/dist/operator/cancel.js.map +1 -1
  108. package/dist/operator/doctor.d.ts +9 -0
  109. package/dist/operator/doctor.d.ts.map +1 -1
  110. package/dist/operator/doctor.js +110 -53
  111. package/dist/operator/doctor.js.map +1 -1
  112. package/dist/operator/explain.d.ts +76 -0
  113. package/dist/operator/explain.d.ts.map +1 -0
  114. package/dist/operator/explain.js +585 -0
  115. package/dist/operator/explain.js.map +1 -0
  116. package/dist/operator/film.d.ts +3 -11
  117. package/dist/operator/film.d.ts.map +1 -1
  118. package/dist/operator/film.js +8 -93
  119. package/dist/operator/film.js.map +1 -1
  120. package/dist/operator/init.d.ts.map +1 -1
  121. package/dist/operator/init.js +52 -55
  122. package/dist/operator/init.js.map +1 -1
  123. package/dist/operator/live.js +1 -1
  124. package/dist/operator/live.js.map +1 -1
  125. package/dist/operator/log.js +12 -6
  126. package/dist/operator/log.js.map +1 -1
  127. package/dist/operator/release.d.ts +2 -2
  128. package/dist/operator/release.js +7 -7
  129. package/dist/operator/release.js.map +1 -1
  130. package/dist/operator/run.d.ts +25 -0
  131. package/dist/operator/run.d.ts.map +1 -0
  132. package/dist/operator/run.js +70 -0
  133. package/dist/operator/run.js.map +1 -0
  134. package/dist/operator/setup.d.ts.map +1 -1
  135. package/dist/operator/setup.js +22 -16
  136. package/dist/operator/setup.js.map +1 -1
  137. package/dist/plugins/manager.d.ts +33 -2
  138. package/dist/plugins/manager.d.ts.map +1 -1
  139. package/dist/plugins/manager.js +67 -0
  140. package/dist/plugins/manager.js.map +1 -1
  141. package/package.json +15 -16
@@ -1,6 +1,6 @@
1
- import { type ConductorMoment, type ProjectRunResult } from "@bluewombat/conductor";
1
+ import type { ConductorMoment, ProjectRunResult } from "@bluewombat/conductor";
2
2
  import type { EventFields, EventName } from "@bluewombat/manager-kit";
3
- import type { FeatureAggregate } from "@bluewombat/work-ledger";
3
+ import type { TicketAggregate } from "@bluewombat/work-ledger";
4
4
  import type { HostDeliveryInput } from "./context.js";
5
5
  import type { Journal } from "./journal.js";
6
6
  /**
@@ -8,9 +8,9 @@ import type { Journal } from "./journal.js";
8
8
  * once: the id names the fact, and a pass that sees it again says nothing.
9
9
  */
10
10
  export declare function reportMoment(input: HostDeliveryInput, moment: ConductorMoment): Promise<void>;
11
- export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate: FeatureAggregate): Promise<void>;
12
- export declare function resumePointOf(aggregate: FeatureAggregate): "planning" | "running" | "integrating";
13
- export declare function pushReport(input: Pick<HostDeliveryInput, "manager" | "reported" | "journal"> & {
11
+ export declare function reportAfterRun(input: HostDeliveryInput, run: ProjectRunResult, aggregate: TicketAggregate): Promise<void>;
12
+ export declare function resumePointOf(aggregate: TicketAggregate): "running" | "integrating";
13
+ export declare function pushReport(input: Pick<HostDeliveryInput, "features" | "tickets" | "reported" | "journal"> & {
14
14
  said?: Set<string>;
15
15
  }, report: {
16
16
  event: EventName;
@@ -18,9 +18,11 @@ export declare function pushReport(input: Pick<HostDeliveryInput, "manager" | "r
18
18
  project: string;
19
19
  fields: EventFields;
20
20
  eventId?: string;
21
- }): Promise<void>;
21
+ },
22
+ /** Whose Thread it goes to: a Ticket's tracker by default, a Feature's manager when named. */
23
+ to?: "tickets" | "features"): Promise<void>;
22
24
  /**
23
25
  * One Host line per Project we drove: the outcome, and a heartbeat while it waits.
24
26
  */
25
- export declare function journalFeature(journal: Journal, outcome: string, aggregate: FeatureAggregate, said?: Set<string>): void;
27
+ export declare function journalTicket(journal: Journal, outcome: string, aggregate: TicketAggregate, said?: Set<string>): void;
26
28
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAa,MAAM,uBAAuB,CAAC;AAC/F,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAsCf;AA2BD,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,gBAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqHf;AA4ID,wBAAgB,aAAa,CAAC,SAAS,EAAE,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAajG;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,EAC3F,MAAM,EAAE;IACN,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,gBAAgB,EAC3B,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,CA0CN"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAM5C;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC,CAqGf;AA8ID,wBAAgB,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,GAAG,aAAa,CAWnF;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAChF,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACpB,EACD,MAAM,EAAE;IACN,KAAK,EAAE,SAAS,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,8FAA8F;AAC9F,EAAE,GAAE,SAAS,GAAG,UAAsB,GACrC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,eAAe,EAC1B,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,CA0CN"}
@@ -1,4 +1,3 @@
1
- import { subjectOf } from "@bluewombat/conductor";
2
1
  /** Conductor's and Implementer's own defaults, said here so a counter reads right without a config key. */
3
2
  const DEFAULT_MAX_REFUSALS = 3;
4
3
  const DEFAULT_MAX_ATTEMPTS = 3;
@@ -15,25 +14,6 @@ export async function reportMoment(input, moment) {
15
14
  const key = aggregate.intention.key;
16
15
  const project = aggregate.intention.project;
17
16
  switch (moment.kind) {
18
- case "planned":
19
- if (aggregate.plan !== undefined) {
20
- await pushReport(input, plannedReport(key, project, aggregate.plan));
21
- }
22
- return;
23
- case "subtask-integrated": {
24
- // What landed, in the Plan's own headline: the sentence a person waits
25
- // for. The counters that used to sit under it said the same thing worse.
26
- const landed = aggregate.plan?.subtasks.find((subtask) => subtask.id === moment.subtaskId);
27
- const what = landed === undefined ? moment.subtaskId : subjectOf(landed.intention);
28
- await pushReport(input, {
29
- event: "progress",
30
- key,
31
- project,
32
- fields: { summary: `Landed ${moment.integrated} of ${moment.total}: ${what}` },
33
- eventId: `${key}:integrated:${moment.subtaskId}`,
34
- });
35
- return;
36
- }
37
17
  case "submitted":
38
18
  await pushReport(input, {
39
19
  event: "submitted",
@@ -45,34 +25,9 @@ export async function reportMoment(input, moment) {
45
25
  return;
46
26
  }
47
27
  }
48
- function plannedReport(key, project, record) {
49
- // One line a person can read per Subtask: its first sentence, and what it
50
- // waits on. The whole intention is in the ledger and on the pull request.
51
- const plan = record.subtasks
52
- .map((subtask, at) => {
53
- const after = subtask.depends_on.length === 0 ? "" : ` (after ${subtask.depends_on.join(", ")})`;
54
- return `${at + 1}. ${subjectOf(subtask.intention)}${after}`;
55
- })
56
- .join("\n");
57
- return {
58
- event: "planned",
59
- key,
60
- project,
61
- fields: { plan },
62
- // A feature is driven again on every pass while it waits for a verdict.
63
- // The Plan was made once; say it once.
64
- eventId: `${key}:planned:${record.planned_at}`,
65
- };
66
- }
67
28
  export async function reportAfterRun(input, run, aggregate) {
68
29
  const key = aggregate.intention.key;
69
30
  const project = aggregate.intention.project;
70
- // The plan is said as it lands (reportMoment); this is the catch-up for a
71
- // plan made before a restart or while the tracker was down — same id, so a
72
- // manager that already has it says nothing.
73
- if (aggregate.plan !== undefined) {
74
- await pushReport(input, plannedReport(key, project, aggregate.plan));
75
- }
76
31
  switch (run.outcome) {
77
32
  case "done":
78
33
  // The Authority's own name for the work, when there was one. A local
@@ -102,27 +57,12 @@ export async function reportAfterRun(input, run, aggregate) {
102
57
  case "refused":
103
58
  return;
104
59
  }
105
- const kind = aggregate.escalation?.kind ?? "subtask";
106
- // One escalation per round and kind: a Feature escalates again only after a
107
- // human's `ready`, which is what the ledger counts. The Attempt count would
108
- // not do — a Plan refused twice has none.
60
+ const kind = aggregate.escalation?.kind ?? "unit";
61
+ // One escalation per round and kind: a Ticket escalates again only after a
62
+ // human's resume, which is what the ledger counts. The Attempt count would
63
+ // not do — an escalation before any Attempt has none.
109
64
  const eventId = escalationId(key, aggregate, kind);
110
65
  switch (kind) {
111
- case "plan":
112
- await pushReport(input, {
113
- event: "escalated",
114
- key,
115
- project,
116
- eventId,
117
- fields: {
118
- stage: "plan",
119
- // A refused Plan left its reason as `invalid`; a freeze for an
120
- // intention edited in flight left the ledger's sentence as the
121
- // escalation's report. Neither is "the Plan was refused" for the other.
122
- reason: aggregate.invalid?.reason ?? aggregate.escalation?.report ?? "The Plan was refused.",
123
- },
124
- });
125
- return;
126
66
  case "merging":
127
67
  await pushReport(input, {
128
68
  event: "escalated",
@@ -136,8 +76,8 @@ export async function reportAfterRun(input, run, aggregate) {
136
76
  });
137
77
  return;
138
78
  case "assembly":
139
- // The feature as a whole, which names no unit: reporting it as a Subtask
140
- // sends a reader to look at work that did not fail.
79
+ // The assembled work, not the unit: reporting it as the unit sends a
80
+ // reader to look at work that did not fail.
141
81
  await pushReport(input, {
142
82
  event: "escalated",
143
83
  key,
@@ -145,7 +85,9 @@ export async function reportAfterRun(input, run, aggregate) {
145
85
  eventId,
146
86
  fields: {
147
87
  stage: "integrating",
148
- reason: "The assembled feature was refused and no attempt is left.",
88
+ reason: spentOf(aggregate) + 1 >= (input.options.ticket.maxRefusals ?? DEFAULT_MAX_REFUSALS)
89
+ ? "The assembled work was refused and no attempt is left."
90
+ : "The assembled work was refused.",
149
91
  ...(aggregate.escalation?.report === undefined
150
92
  ? {}
151
93
  : { trace: aggregate.escalation.report }),
@@ -160,7 +102,7 @@ export async function reportAfterRun(input, run, aggregate) {
160
102
  eventId,
161
103
  fields: {
162
104
  stage: "submitting",
163
- reason: submittedReason(aggregate, input.options.maxRefusals ?? DEFAULT_MAX_REFUSALS),
105
+ reason: submittedReason(aggregate, input.options.ticket.maxRefusals ?? DEFAULT_MAX_REFUSALS),
164
106
  ...((aggregate.escalation?.report ?? aggregate.submission?.last_report) === undefined
165
107
  ? {}
166
108
  : {
@@ -170,13 +112,13 @@ export async function reportAfterRun(input, run, aggregate) {
170
112
  },
171
113
  });
172
114
  return;
173
- case "subtask":
115
+ case "unit":
174
116
  await pushReport(input, {
175
117
  event: "escalated",
176
118
  key,
177
119
  project,
178
120
  eventId,
179
- fields: subtaskEscalation(input, aggregate),
121
+ fields: unitEscalation(input, aggregate),
180
122
  });
181
123
  return;
182
124
  }
@@ -193,31 +135,34 @@ function submittedReason(aggregate, maxRefusals) {
193
135
  return "The work could not be submitted.";
194
136
  }
195
137
  // The refusal that stopped it is never recorded as one (open-conductor).
196
- return submission.refusals + 1 >= maxRefusals
138
+ return spentOf(aggregate) + 1 >= maxRefusals
197
139
  ? "The Submission was refused and no attempt is left."
198
140
  : "The Submission was refused.";
199
141
  }
200
- /** `<key>:escalated:<round>:<kind>[:<subtask>]` — the same escalation hashes the same after a restart. */
142
+ /**
143
+ * What the corrective rounds of a Ticket have used: refusals, parked refusals
144
+ * and times the line moved on, against the one `maxRefusals` budget. The same
145
+ * sum the Conductor draws on, so what the tracker is told matches what happens.
146
+ */
147
+ function spentOf(aggregate) {
148
+ return ((aggregate.submission?.refusals ?? 0) +
149
+ (aggregate.parked_refusals ?? 0) +
150
+ (aggregate.submission?.realigns ?? 0));
151
+ }
152
+ /** `<key>:escalated:<round>:<kind>` — the same escalation hashes the same after a restart. */
201
153
  function escalationId(key, aggregate, kind) {
202
- const round = aggregate.resumes ?? 0;
203
- const unit = kind === "subtask" ? `:${aggregate.escalation?.subtask_id ?? "unknown"}` : "";
204
- return `${key}:escalated:${round}:${kind}${unit}`;
154
+ return `${key}:escalated:${aggregate.resumes}:${kind}`;
205
155
  }
206
156
  /**
207
- * A Subtask escalation, for a person who was not there. The Plan's headline
208
- * says what was tried, the last Attempt says who refused it and why, the
209
- * count says whether more patience would have helped — and what resuming does,
210
- * because that is the only question left to the reader.
157
+ * A unit escalation, for a person who was not there. The last Attempt says who
158
+ * refused it and why, the count says whether more patience would have helped —
159
+ * and what resuming does, because that is the only question left to the reader.
211
160
  */
212
- function subtaskEscalation(input, aggregate) {
213
- const id = aggregate.escalation?.subtask_id;
214
- const unit = id ?? "unknown";
215
- const planned = aggregate.plan?.subtasks.find((subtask) => subtask.id === id);
216
- const what = planned === undefined ? unit : subjectOf(planned.intention);
217
- // This round's Attempts only: the budget is per round, and a Subtask resumed
161
+ function unitEscalation(input, aggregate) {
162
+ // This round's Attempts only: the budget is per round, and a unit resumed
218
163
  // once already spent three — "6 times of 3" counts against nothing.
219
- const round = aggregate.resumes ?? 0;
220
- const attempts = aggregate.attempts.filter((attempt) => attempt.subtask_id === id && (attempt.round ?? 0) === round);
164
+ const round = aggregate.resumes;
165
+ const attempts = aggregate.attempts.filter((attempt) => attempt.round === round);
221
166
  const last = [...attempts].reverse().find((attempt) => attempt.trace !== undefined)?.trace;
222
167
  const max = input.options.builder?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
223
168
  const by = last?.refusedBy ?? "a Gate";
@@ -240,15 +185,13 @@ function subtaskEscalation(input, aggregate) {
240
185
  else {
241
186
  why = (aggregate.escalation?.report ?? "it escalated").replace(/\.$/, "");
242
187
  }
243
- const resume = `On resume, ${unit} starts again from zero; what already landed is kept.`;
188
+ const resume = "On resume, the work starts again from zero.";
244
189
  const fields = {
245
190
  stage: "unit",
246
- reason: `${what} — ${why}. ${resume}`,
191
+ reason: `${why}. ${resume}`,
247
192
  // The refusal in the refuser's own words; the ledger's sentence when no
248
- // Attempt left one (a fold conflict); the verdict alone for a record
249
- // written before reports were kept.
193
+ // Attempt left one; the verdict alone when none was kept.
250
194
  trace: last?.report ?? aggregate.escalation?.report ?? last?.ended ?? "No Trace recorded.",
251
- unit,
252
195
  };
253
196
  if (attempts.length > 0) {
254
197
  fields.counters = { attempts: `${attempts.length} of ${max}` };
@@ -256,12 +199,12 @@ function subtaskEscalation(input, aggregate) {
256
199
  return fields;
257
200
  }
258
201
  /**
259
- * A refusal sent the work back to `assembly.fix` and a repair is on its way.
202
+ * A refusal sent the work back to `ticket.fix` and a repair is on its way.
260
203
  * Between that and the next verdict the tracker would otherwise say nothing,
261
204
  * and a reader would take the silence for waiting.
262
205
  *
263
206
  * Two refusers write here: the Authority (`submission.last_report`, once there
264
- * is a Submission) and `assembly.validate` (`parked_refusal`, which can exist
207
+ * is a Submission) and `ticket.validate` (`parked_refusal`, which can exist
265
208
  * before one does, or without an Authority at all). The parked one is fresher
266
209
  * when both are set, the same priority `open-conductor` gives it.
267
210
  */
@@ -269,11 +212,11 @@ async function reportRefusal(input, aggregate) {
269
212
  if (aggregate.state !== "integrating") {
270
213
  return;
271
214
  }
272
- const max = input.options.maxRefusals ?? DEFAULT_MAX_REFUSALS;
215
+ const max = input.options.ticket.maxRefusals ?? DEFAULT_MAX_REFUSALS;
273
216
  const parked = aggregate.parked_refusal;
274
217
  if (parked !== undefined) {
275
218
  const parkedRefusals = aggregate.parked_refusals ?? 0;
276
- const spent = (aggregate.submission?.refusals ?? 0) + parkedRefusals;
219
+ const spent = spentOf(aggregate);
277
220
  await pushReport(input, {
278
221
  event: "progress",
279
222
  key: aggregate.intention.key,
@@ -282,7 +225,7 @@ async function reportRefusal(input, aggregate) {
282
225
  // in the same round would otherwise collide with this id.
283
226
  eventId: `${aggregate.intention.key}:refused:parked:${parkedRefusals}`,
284
227
  fields: {
285
- summary: `${parked.refused_by ?? "assembly.validate"} refused the assembled feature; a repair is on its way (refusal ${spent} of ${max}).`,
228
+ summary: `${parked.refused_by ?? "ticket.validate"} refused the assembled work; a repair is on its way (refusal ${spent} of ${max}).`,
286
229
  stage: "integrating",
287
230
  trace: parked.report,
288
231
  },
@@ -304,7 +247,7 @@ async function reportRefusal(input, aggregate) {
304
247
  fields: {
305
248
  // Who refused, what happens next, and how many refusals the Authority may
306
249
  // still send back before this escalates — in one sentence.
307
- summary: `${submission.last_refused_by ?? "The Authority"} refused the Submission; a repair is on its way (refusal ${submission.refusals} of ${max}).`,
250
+ summary: `${submission.last_refused_by ?? "The Authority"} refused the Submission; a repair is on its way (refusal ${spentOf(aggregate)} of ${max}).`,
308
251
  stage: "submitting",
309
252
  trace: submission.last_report,
310
253
  },
@@ -312,26 +255,26 @@ async function reportRefusal(input, aggregate) {
312
255
  }
313
256
  export function resumePointOf(aggregate) {
314
257
  switch (aggregate.escalation?.kind) {
315
- case "plan":
316
- return "planning";
317
- // What the ledger does on resumeReady, said in the same words.
258
+ // What the ledger does on resumeTicket, said in the same words.
318
259
  case "merging":
319
260
  case "assembly":
320
261
  case "submitted":
321
262
  return "integrating";
322
- case "subtask":
263
+ case "unit":
323
264
  case undefined:
324
265
  return "running";
325
266
  }
326
267
  }
327
- export async function pushReport(input, report) {
268
+ export async function pushReport(input, report,
269
+ /** Whose Thread it goes to: a Ticket's tracker by default, a Feature's manager when named. */
270
+ to = "tickets") {
328
271
  if (report.eventId !== undefined && input.said?.has(report.eventId)) {
329
272
  return;
330
273
  }
331
274
  // How long the tracker took, kept either way: a report is awaited where the
332
275
  // work is, and one that hung for minutes looked like nothing at all.
333
276
  const started = Date.now();
334
- const ok = await input.manager.report({
277
+ const ok = await input[to].report({
335
278
  event: report.event,
336
279
  key: report.key,
337
280
  project: report.project,
@@ -352,9 +295,9 @@ export async function pushReport(input, report) {
352
295
  /**
353
296
  * One Host line per Project we drove: the outcome, and a heartbeat while it waits.
354
297
  */
355
- export function journalFeature(journal, outcome, aggregate, said) {
298
+ export function journalTicket(journal, outcome, aggregate, said) {
356
299
  const key = aggregate.intention.key;
357
- // A Subtask held by a bail is driven again every poll until the clock (or a
300
+ // A unit held by a bail is driven again every poll until the clock (or a
358
301
  // release) frees it. One `held` line names the wait; repeating `ran paused`
359
302
  // every ten seconds is noise.
360
303
  if (outcome === "paused" &&
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/loop/report.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,9 @@ export type ChildSink = {
24
24
  };
25
25
  /** Which child is speaking, in Host's terms rather than any one Transformer's. */
26
26
  export type StreamSubject = {
27
- /** The Feature this serves, when the Transformer knew it. */
27
+ /** The Ticket this serves, when the Transformer knew it. */
28
28
  key?: string | undefined;
29
- /** The Task, or `breakdown` for a Planner — the name its transcript is filed under. */
29
+ /** The Task — the name its transcript is filed under. */
30
30
  id: string;
31
31
  attempt?: number | undefined;
32
32
  gateId?: string | undefined;
@@ -34,9 +34,9 @@ export type StreamSubject = {
34
34
  export type Streams = {
35
35
  open(subject: StreamSubject): ChildSink | undefined;
36
36
  /**
37
- * Forget what was filmed of one Feature.
37
+ * Forget what was filmed of one Ticket.
38
38
  *
39
- * Called when a Feature reaches an end nobody has to read: the work landed,
39
+ * Called when a Ticket reaches an end nobody has to read: the work landed,
40
40
  * or it was abandoned. An escalation keeps everything — that is exactly when
41
41
  * a person has to go and look.
42
42
  */
@@ -53,7 +53,7 @@ export type StreamsSpec = {
53
53
  /**
54
54
  * One file per child, filed the way a transcript is.
55
55
  *
56
- * Same directory per Feature and same stem as `openTranscript` writes, so the
56
+ * Same directory per Ticket and same stem as `openTranscript` writes, so the
57
57
  * prompt a slot kept and the stream underneath it sit side by side and join by
58
58
  * name rather than by guesswork.
59
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/loop/streams.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC1B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;IACvC,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAmEtD"}
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/loop/streams.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG;IAC1B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;IACvC,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAmEtD"}
@@ -3,7 +3,7 @@ import { join, relative } from "node:path";
3
3
  /**
4
4
  * One file per child, filed the way a transcript is.
5
5
  *
6
- * Same directory per Feature and same stem as `openTranscript` writes, so the
6
+ * Same directory per Ticket and same stem as `openTranscript` writes, so the
7
7
  * prompt a slot kept and the stream underneath it sit side by side and join by
8
8
  * name rather than by guesswork.
9
9
  */
@@ -78,7 +78,7 @@ export function openStreams(spec) {
78
78
  },
79
79
  };
80
80
  }
81
- /** What one Feature's directory holds, before it is removed. */
81
+ /** What one Ticket's directory holds, before it is removed. */
82
82
  function measure(dir) {
83
83
  let files = 0;
84
84
  let bytes = 0;
@@ -135,7 +135,7 @@ function sinkOf(file, keep, report) {
135
135
  /**
136
136
  * `<id>-attempt-<n>[-gate-<id>]-<stamp>.ndjson`.
137
137
  *
138
- * Stamped because a Feature resumed by a human starts its Attempt count again,
138
+ * Stamped because a Ticket resumed by a human starts its Attempt count again,
139
139
  * and two rounds would otherwise write the same name. The journal names the
140
140
  * file it opened, so nothing has to reconstruct this.
141
141
  */
@@ -1 +1 @@
1
- {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/loop/streams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/loop/streams.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Conductor, ProjectRunResult } from "@bluewombat/conductor";
2
2
  import type { EventName } from "@bluewombat/manager-kit";
3
3
  import type { WorkLedger } from "@bluewombat/work-ledger";
4
4
  import type { HostRunInput } from "./context.js";
5
- import { type CancelResult, type ReleaseResult } from "./deliveries.js";
5
+ import type { CancelResult, ReleaseResult } from "./deliveries.js";
6
6
  export type HostTickResult = {
7
7
  listenerOutcome: string;
8
8
  reported: EventName[];
@@ -14,13 +14,15 @@ export type Host = {
14
14
  conductor: Conductor;
15
15
  runOnce(): Promise<HostTickResult>;
16
16
  run(): Promise<HostTickResult>;
17
- /** Abandon one Feature by key. Takes the same path as a `cancel` delivery. */
17
+ /** Abandon one Feature or Ticket by key. Takes the same path as a `cancel` delivery. */
18
18
  cancel(key: string): Promise<CancelResult>;
19
- /** Drop a held Subtask without waiting for the bail clock. */
19
+ /** Drop a held unit without waiting for the bail clock. */
20
20
  release(key: string): Promise<ReleaseResult>;
21
21
  /** Give the ledger back: the lock `openHost` took. */
22
22
  close(): Promise<void>;
23
23
  };
24
24
  export declare function runOnce(input: HostRunInput): Promise<HostTickResult>;
25
- export declare function run(input: HostRunInput): Promise<HostTickResult>;
25
+ /** How long an idle loop goes without saying that it is still turning. */
26
+ export declare const HEARTBEAT_MS = 60000;
27
+ export declare function run(input: HostRunInput, now?: () => number): Promise<HostTickResult>;
26
28
  //# sourceMappingURL=tick.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tick.d.ts","sourceRoot":"","sources":["../../src/loop/tick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAgC,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,KAAK,YAAY,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAiBxF,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,8EAA8E;IAC9E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,8DAA8D;IAC9D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,sDAAsD;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA0H1E;AAED,wBAAsB,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBtE"}
1
+ {"version":3,"file":"tick.d.ts","sourceRoot":"","sources":["../../src/loop/tick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQnE,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,wFAAwF;IACxF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,2DAA2D;IAC3D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7C,sDAAsD;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAiF1E;AAED,0EAA0E;AAC1E,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC,wBAAsB,GAAG,CACvB,KAAK,EAAE,YAAY,EACnB,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAoCzB"}