@bluewombat/runtime 0.1.2 → 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.
Files changed (75) hide show
  1. package/README.md +81 -32
  2. package/SPECS.md +86 -9
  3. package/dist/cli.js +19 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config/find-config.d.ts +2 -2
  6. package/dist/config/find-config.js +2 -2
  7. package/dist/config/load-config.d.ts +1 -1
  8. package/dist/config/load-config.d.ts.map +1 -1
  9. package/dist/config/load-config.js +95 -13
  10. package/dist/config/load-config.js.map +1 -1
  11. package/dist/config/parse-args.d.ts.map +1 -1
  12. package/dist/config/parse-args.js +40 -2
  13. package/dist/config/parse-args.js.map +1 -1
  14. package/dist/config/types.d.ts +35 -4
  15. package/dist/config/types.d.ts.map +1 -1
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/loop/authority.d.ts.map +1 -1
  21. package/dist/loop/authority.js +16 -1
  22. package/dist/loop/authority.js.map +1 -1
  23. package/dist/loop/context.d.ts +3 -0
  24. package/dist/loop/context.d.ts.map +1 -1
  25. package/dist/loop/describe.d.ts.map +1 -1
  26. package/dist/loop/describe.js +5 -0
  27. package/dist/loop/describe.js.map +1 -1
  28. package/dist/loop/drive.d.ts +8 -6
  29. package/dist/loop/drive.d.ts.map +1 -1
  30. package/dist/loop/drive.js +17 -7
  31. package/dist/loop/drive.js.map +1 -1
  32. package/dist/loop/journal.d.ts +27 -0
  33. package/dist/loop/journal.d.ts.map +1 -1
  34. package/dist/loop/journal.js +68 -0
  35. package/dist/loop/journal.js.map +1 -1
  36. package/dist/loop/open-host.d.ts.map +1 -1
  37. package/dist/loop/open-host.js +60 -3
  38. package/dist/loop/open-host.js.map +1 -1
  39. package/dist/loop/report.d.ts.map +1 -1
  40. package/dist/loop/report.js +48 -6
  41. package/dist/loop/report.js.map +1 -1
  42. package/dist/loop/streams.d.ts +61 -0
  43. package/dist/loop/streams.d.ts.map +1 -0
  44. package/dist/loop/streams.js +156 -0
  45. package/dist/loop/streams.js.map +1 -0
  46. package/dist/loop/trace.d.ts +7 -0
  47. package/dist/loop/trace.d.ts.map +1 -1
  48. package/dist/loop/trace.js +40 -1
  49. package/dist/loop/trace.js.map +1 -1
  50. package/dist/loop/transformers.d.ts +7 -1
  51. package/dist/loop/transformers.d.ts.map +1 -1
  52. package/dist/loop/transformers.js +44 -11
  53. package/dist/loop/transformers.js.map +1 -1
  54. package/dist/operator/board.d.ts +4 -0
  55. package/dist/operator/board.d.ts.map +1 -1
  56. package/dist/operator/board.js +6 -0
  57. package/dist/operator/board.js.map +1 -1
  58. package/dist/operator/doctor.d.ts.map +1 -1
  59. package/dist/operator/doctor.js +45 -22
  60. package/dist/operator/doctor.js.map +1 -1
  61. package/dist/operator/film.d.ts +28 -0
  62. package/dist/operator/film.d.ts.map +1 -0
  63. package/dist/operator/film.js +211 -0
  64. package/dist/operator/film.js.map +1 -0
  65. package/dist/operator/init.d.ts.map +1 -1
  66. package/dist/operator/init.js +3 -2
  67. package/dist/operator/init.js.map +1 -1
  68. package/dist/operator/live.d.ts.map +1 -1
  69. package/dist/operator/live.js +3 -1
  70. package/dist/operator/live.js.map +1 -1
  71. package/dist/operator/log.d.ts +13 -0
  72. package/dist/operator/log.d.ts.map +1 -0
  73. package/dist/operator/log.js +238 -0
  74. package/dist/operator/log.js.map +1 -0
  75. package/package.json +16 -15
@@ -36,6 +36,12 @@ export function openAuthority(input) {
36
36
  env: input.env,
37
37
  });
38
38
  if (!published.ok) {
39
+ input.journal?.append({
40
+ event: "submit-refused",
41
+ key: offer.key,
42
+ by: "publisher",
43
+ reason: published.reason,
44
+ });
39
45
  return { outcome: "refused", reason: published.reason };
40
46
  }
41
47
  // The Project's own words for what it submits, when it has a slot for
@@ -57,7 +63,7 @@ export function openAuthority(input) {
57
63
  input.journal?.append({ event: "describe-skipped", id: offer.key, detail: asked.detail });
58
64
  }
59
65
  }
60
- return await submit({
66
+ const submitted = await submit({
61
67
  ...offer,
62
68
  ref: published.ref,
63
69
  target: workLineTarget,
@@ -66,6 +72,15 @@ export function openAuthority(input) {
66
72
  ...(offer.steps === undefined ? {} : { steps: offer.steps.map(subjectOf) }),
67
73
  ...(description === undefined ? {} : { description }),
68
74
  });
75
+ if (submitted.outcome === "refused") {
76
+ input.journal?.append({
77
+ event: "submit-refused",
78
+ key: offer.key,
79
+ by: "authority",
80
+ reason: submitted.reason,
81
+ });
82
+ }
83
+ return submitted;
69
84
  },
70
85
  async fold(asked) {
71
86
  return await fold(asked);
@@ -1 +1 @@
1
- {"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/loop/authority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authority.js","sourceRoot":"","sources":["../../src/loop/authority.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { EventName, ManagerPort } from "@bluewombat/manager-kit";
3
3
  import type { WorkLedger } from "@bluewombat/work-ledger";
4
4
  import type { HostOptions } from "../config/types.js";
5
5
  import type { Journal } from "./journal.js";
6
+ import type { Streams } from "./streams.js";
6
7
  import type { Trace } from "./trace.js";
7
8
  /**
8
9
  * What one Host tick needs after composition. Shared so tick, deliveries and
@@ -20,6 +21,8 @@ export type HostRunInput = {
20
21
  conductor: Conductor;
21
22
  manager: ManagerPort;
22
23
  journal: Journal;
24
+ /** Where a child's raw output was filmed, when the Project asked for it. */
25
+ streams?: Streams;
23
26
  trace: Trace;
24
27
  /** Present when the Project declared an Authority and the manager can submit. */
25
28
  authority?: AuthorityPort;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/loop/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,yFAAyF;IACzF,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IACxF,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,iFAAiF;IACjF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B;;;;OAIG;IACH,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IAChF;;;OAGG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnB,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/loop/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,yFAAyF;IACzF,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IACxF,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,iFAAiF;IACjF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B;;;;OAIG;IACH,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IAChF;;;OAGG;IACH,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnB,CAAC;AAEF,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/loop/describe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CAkC7E"}
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/loop/describe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,cAAc,CAuC7E"}
@@ -8,6 +8,11 @@ export function describe(slot, input) {
8
8
  ...rest,
9
9
  "--id",
10
10
  input.id,
11
+ // A Describer keeping a record of its turn files it under the feature,
12
+ // the way every other slot does. Without this its transcripts land in
13
+ // `no-context/` and the feature has to be read back out of the filename.
14
+ "--context",
15
+ input.id,
11
16
  "--title",
12
17
  input.title,
13
18
  "--intention",
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/loop/describe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/loop/describe.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,15 @@ import type { HostDeliveryInput } from "./context.js";
13
13
  */
14
14
  export declare function driveProject(input: HostDeliveryInput, project: string, fallbackKey: string): Promise<ProjectRunResult | undefined>;
15
15
  /**
16
- * Drive, then keep driving while a Submission refusal is waiting for repair.
16
+ * Drive, then keep driving while a refusal is waiting for repair.
17
17
  *
18
- * Conductor returns `paused` after `recordRefusal` (state `integrating` with
19
- * `last_report`) so the tracker hears "repair is on its way" before the next
20
- * pass. Waiting a poll interval for that next pass is empty time: the work is
21
- * local. Re-drive in the same Host tick until that case is gone — a new
22
- * `submitted`, an escalation, or any non-`paused` outcome (e.g. align-conflict).
18
+ * Conductor returns `paused` after `recordRefusal` or `recordParkedRefusal`
19
+ * (state `integrating` with a report held, either on the Submission or parked
20
+ * on the aggregate) so the tracker hears "repair is on its way" before the
21
+ * next pass. Waiting a poll interval for that next pass is empty time: the
22
+ * work is local. Re-drive in the same Host tick until that case is gone — a
23
+ * new `submitted`, an escalation, or any non-`paused` outcome (e.g.
24
+ * align-conflict).
23
25
  *
24
26
  * Do not continue from `submitted`: judging the Authority waits on the outside
25
27
  * and must leave room for listen / probe between ticks.
@@ -1 +1 @@
1
- {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../src/loop/drive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA2BvC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAuBvC"}
1
+ {"version":3,"file":"drive.d.ts","sourceRoot":"","sources":["../../src/loop/drive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAkCvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAwBvC"}
@@ -36,17 +36,26 @@ export async function driveProject(input, project, fallbackKey) {
36
36
  input.trace(describeFeature(got.aggregate));
37
37
  journalFeature(input.journal, run.outcome, got.aggregate, input.said);
38
38
  await reportAfterRun(input, run, got.aggregate);
39
+ // The work landed, or it was abandoned: nobody is going to read what the
40
+ // agents said on the way. An escalation keeps everything — that is the one
41
+ // outcome where a person has to go and look. What each file held was
42
+ // already said in the film, so the shape of the run survives the bytes.
43
+ if (got.aggregate.state === "done" || got.aggregate.state === "cancelled") {
44
+ input.streams?.discard(key);
45
+ }
39
46
  }
40
47
  return run;
41
48
  }
42
49
  /**
43
- * Drive, then keep driving while a Submission refusal is waiting for repair.
50
+ * Drive, then keep driving while a refusal is waiting for repair.
44
51
  *
45
- * Conductor returns `paused` after `recordRefusal` (state `integrating` with
46
- * `last_report`) so the tracker hears "repair is on its way" before the next
47
- * pass. Waiting a poll interval for that next pass is empty time: the work is
48
- * local. Re-drive in the same Host tick until that case is gone — a new
49
- * `submitted`, an escalation, or any non-`paused` outcome (e.g. align-conflict).
52
+ * Conductor returns `paused` after `recordRefusal` or `recordParkedRefusal`
53
+ * (state `integrating` with a report held, either on the Submission or parked
54
+ * on the aggregate) so the tracker hears "repair is on its way" before the
55
+ * next pass. Waiting a poll interval for that next pass is empty time: the
56
+ * work is local. Re-drive in the same Host tick until that case is gone — a
57
+ * new `submitted`, an escalation, or any non-`paused` outcome (e.g.
58
+ * align-conflict).
50
59
  *
51
60
  * Do not continue from `submitted`: judging the Authority waits on the outside
52
61
  * and must leave room for listen / probe between ticks.
@@ -62,7 +71,8 @@ export async function driveUntilBlocked(input, project, fallbackKey) {
62
71
  const got = await input.ledger.get(key);
63
72
  if (!got.ok ||
64
73
  got.aggregate.state !== "integrating" ||
65
- got.aggregate.submission?.last_report === undefined) {
74
+ (got.aggregate.submission?.last_report === undefined &&
75
+ got.aggregate.parked_refusal === undefined)) {
66
76
  break;
67
77
  }
68
78
  const next = await driveProject(input, project, key);
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/loop/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/loop/drive.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,33 @@ export declare function journalPath(ledgerRoot: string): string;
11
11
  * before the next phase starts or a crash cuts the process off.
12
12
  */
13
13
  export declare function openJournalFile(ledgerRoot: string, now?: () => Date): Journal;
14
+ /**
15
+ * The same film, with facts every line of one run shares.
16
+ *
17
+ * A journal holds every run that ever wrote to this ledger, one after another,
18
+ * and nothing in it says where one stopped and the next began. A reader
19
+ * looking at a line cannot tell whether it comes from the process that is
20
+ * running now or from one that died last week. The stamp is what a line is
21
+ * grouped by; `append` still owns `at`.
22
+ *
23
+ * Stamped fields lose to the line's own: a Transformer that already said
24
+ * `key` knows better than the run does.
25
+ */
26
+ export declare function stampJournal(base: Journal, stamp: Record<string, unknown>): Journal;
27
+ /**
28
+ * A pass that found nothing is worth one line, not one line every time.
29
+ *
30
+ * A loop polling every 30 seconds writes two lines a minute saying nothing
31
+ * happened; on a real ledger that was 77% of the film and 46% of its bytes.
32
+ * They are held and written as a single line carrying how many passes it
33
+ * stands for, at most once per `everyMs` — a reader of `watch` still sees the
34
+ * loop turning, and the count means nothing is lost by holding them.
35
+ *
36
+ * A `listen` that did not complete is never quiet, whatever it delivered:
37
+ * a run that cannot see its tracker says `source-lost` on every pass, and that
38
+ * is the one repeated line somebody has to notice.
39
+ */
40
+ export declare function coalesceQuiet(base: Journal, everyMs?: number, now?: () => number): Journal;
14
41
  /**
15
42
  * Split a file chunk into complete JSON objects. A truncated last line stays
16
43
  * in `remainder` and is not parsed as a Feature.
@@ -1 +1 @@
1
- {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"AAGA,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,OAAO,CAS/F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmBzD"}
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"AAGA,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,OAAO,CAS/F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAMnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,OAAO,SAAS,EAChB,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CA+BT;AAOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmBzD"}
@@ -21,6 +21,74 @@ export function openJournalFile(ledgerRoot, now = () => new Date()) {
21
21
  },
22
22
  };
23
23
  }
24
+ /**
25
+ * The same film, with facts every line of one run shares.
26
+ *
27
+ * A journal holds every run that ever wrote to this ledger, one after another,
28
+ * and nothing in it says where one stopped and the next began. A reader
29
+ * looking at a line cannot tell whether it comes from the process that is
30
+ * running now or from one that died last week. The stamp is what a line is
31
+ * grouped by; `append` still owns `at`.
32
+ *
33
+ * Stamped fields lose to the line's own: a Transformer that already said
34
+ * `key` knows better than the run does.
35
+ */
36
+ export function stampJournal(base, stamp) {
37
+ return {
38
+ append(line) {
39
+ base.append({ ...stamp, ...line });
40
+ },
41
+ };
42
+ }
43
+ /**
44
+ * A pass that found nothing is worth one line, not one line every time.
45
+ *
46
+ * A loop polling every 30 seconds writes two lines a minute saying nothing
47
+ * happened; on a real ledger that was 77% of the film and 46% of its bytes.
48
+ * They are held and written as a single line carrying how many passes it
49
+ * stands for, at most once per `everyMs` — a reader of `watch` still sees the
50
+ * loop turning, and the count means nothing is lost by holding them.
51
+ *
52
+ * A `listen` that did not complete is never quiet, whatever it delivered:
53
+ * a run that cannot see its tracker says `source-lost` on every pass, and that
54
+ * is the one repeated line somebody has to notice.
55
+ */
56
+ export function coalesceQuiet(base, everyMs = 60_000, now = Date.now) {
57
+ let passes = 0;
58
+ let lastAt = now();
59
+ const flush = () => {
60
+ if (passes === 0) {
61
+ return;
62
+ }
63
+ base.append({ event: "idle", passes });
64
+ passes = 0;
65
+ lastAt = now();
66
+ };
67
+ return {
68
+ append(line) {
69
+ if (line.event === "idle") {
70
+ // One per pass that found nothing: this is what `passes` counts.
71
+ passes += 1;
72
+ if (now() - lastAt >= everyMs) {
73
+ flush();
74
+ }
75
+ return;
76
+ }
77
+ if (isQuietListen(line)) {
78
+ // A listen that completed and brought nothing says nothing on its own.
79
+ // In a pass that then did work, the work's own lines say it all; in an
80
+ // empty pass, the `idle` beside it already counts the pass.
81
+ return;
82
+ }
83
+ flush();
84
+ base.append(line);
85
+ },
86
+ };
87
+ }
88
+ /** Nothing arrived, and nothing is wrong. Both halves matter. */
89
+ function isQuietListen(line) {
90
+ return line.event === "listen" && line.deliveries === 0 && line.outcome === "completed";
91
+ }
24
92
  /**
25
93
  * Split a file chunk into complete JSON objects. A truncated last line stays
26
94
  * in `remainder` and is not parsed as a Feature.
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAM/C,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,MAAkB,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACpF,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO;QACL,MAAM,CAAC,IAAI;YACT,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9E,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kFAAkF;QACpF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/loop/journal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,cAAc,CAAC;AAE7D,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAKpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmL3F"}
1
+ {"version":3,"file":"open-host.d.ts","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAiB,KAAK,OAAO,EAAiC,MAAM,cAAc,CAAC;AAG1F,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,WAAW,CAAC;AAKpD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAwBtD,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG;IACzB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuN3F"}
@@ -1,4 +1,8 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { readFileSync } from "node:fs";
1
3
  import { mkdir } from "node:fs/promises";
4
+ import { join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
2
6
  import { openConductor } from "@bluewombat/conductor";
3
7
  import { openWorkLedger } from "@bluewombat/work-ledger";
4
8
  import { DEFAULT_PERSIST } from "../config/defaults.js";
@@ -8,14 +12,34 @@ import { contextOf, loadManagerModule } from "../plugins/manager.js";
8
12
  import { resolvePersistModule } from "../plugins/persist.js";
9
13
  import { openAuthority } from "./authority.js";
10
14
  import { cancelFeature } from "./deliveries.js";
11
- import { openJournalFile } from "./journal.js";
15
+ import { coalesceQuiet, openJournalFile, stampJournal } from "./journal.js";
12
16
  import { acquireLock } from "./lock.js";
17
+ import { openStreams } from "./streams.js";
13
18
  import { run, runOnce } from "./tick.js";
14
19
  import { openTrace } from "./trace.js";
15
20
  import { createTransformers } from "./transformers.js";
16
21
  import { inspectWorkLine, materializeWorkLine, resolveWorkLine } from "./work-line.js";
17
22
  const DEFAULT_MAX_UNITS = 10;
18
23
  const DEFAULT_MAX_FEATURE_BYTES = 65_536;
24
+ /**
25
+ * Which build of Host is running, for the line that opens the film.
26
+ *
27
+ * A global link and an installed copy answer the same command, and a run that
28
+ * meant to exercise one can silently be the other. The version is the only
29
+ * thing in the journal that tells them apart afterwards. Unknown rather than
30
+ * fatal: a film is not worth failing a run over.
31
+ */
32
+ function hostVersion() {
33
+ try {
34
+ const manifest = fileURLToPath(new URL("../../package.json", import.meta.url));
35
+ const parsed = JSON.parse(readFileSync(manifest, "utf8"));
36
+ const version = parsed.version;
37
+ return typeof version === "string" ? version : "unknown";
38
+ }
39
+ catch {
40
+ return "unknown";
41
+ }
42
+ }
19
43
  export async function openHost(options, deps = {}) {
20
44
  const configDir = options.configDir ?? process.cwd();
21
45
  const home = homeOf(configDir, options.home);
@@ -91,10 +115,34 @@ export async function openHost(options, deps = {}) {
91
115
  const release = await acquireLock(options.ledgerRoot);
92
116
  const persist = await backend.module.openPersist({ ledgerRoot: options.ledgerRoot });
93
117
  const ledger = openWorkLedger({ persist });
94
- const journal = deps.journal ?? openJournalFile(options.ledgerRoot);
118
+ // Every line this run writes carries the same `run_id`, so a reader can tell
119
+ // one process's film from the one that wrote to this ledger before it.
120
+ const runId = randomUUID();
121
+ // Coalescing sits above the stamp: a heartbeat it writes is a line of this
122
+ // run like any other, and must carry the run with it.
123
+ const journal = coalesceQuiet(stampJournal(deps.journal ?? openJournalFile(options.ledgerRoot), { run_id: runId }));
124
+ journal.append({
125
+ event: "host-started",
126
+ pid: process.pid,
127
+ version: hostVersion(),
128
+ manager: managerName,
129
+ ledger_root: options.ledgerRoot,
130
+ ...(options.configDir === undefined ? {} : { config_dir: options.configDir }),
131
+ });
132
+ // Off unless the Project asked: what a stream holds is its own material in
133
+ // the clear. `home` is where Host keeps what is its own, like the ledger.
134
+ const streamsSpec = options.observability?.streams;
135
+ const streams = streamsSpec?.enabled === true
136
+ ? openStreams({
137
+ dir: streamsSpec.dir ?? join(home, "streams"),
138
+ keep: streamsSpec.keep ?? ["stdout", "stderr"],
139
+ journal,
140
+ })
141
+ : undefined;
95
142
  const transformers = createTransformers({
96
143
  trace,
97
144
  journal,
145
+ ...(streams === undefined ? {} : { streams }),
98
146
  planner: options.planner,
99
147
  builder: options.builder,
100
148
  assembly: options.assembly,
@@ -151,6 +199,8 @@ export async function openHost(options, deps = {}) {
151
199
  ...(authority === undefined ? {} : { authority }),
152
200
  ...(target === undefined ? {} : { workLineTarget: target }),
153
201
  ...(options.maxRefusals === undefined ? {} : { maxRefusals: options.maxRefusals }),
202
+ assemblyValidate: options.assembly.validate !== undefined,
203
+ assemblyFixDeclared: options.assembly.fix !== undefined,
154
204
  });
155
205
  const ctx = {
156
206
  options: hostOptions,
@@ -163,6 +213,7 @@ export async function openHost(options, deps = {}) {
163
213
  conductor,
164
214
  manager,
165
215
  journal,
216
+ ...(streams === undefined ? {} : { streams }),
166
217
  trace,
167
218
  watcher,
168
219
  said: new Set(),
@@ -174,7 +225,13 @@ export async function openHost(options, deps = {}) {
174
225
  runOnce: () => runOnce(ctx),
175
226
  run: () => run(ctx),
176
227
  cancel: (key) => cancelFeature(ctx, key),
177
- close: release,
228
+ // The film closes before the lock does: whoever reads it next has to be
229
+ // able to tell a run that ended from one whose process was killed, and the
230
+ // absence of this line is the only way to say the second.
231
+ close: async () => {
232
+ journal.append({ event: "host-stopped", pid: process.pid });
233
+ await release();
234
+ },
178
235
  };
179
236
  }
180
237
  //# sourceMappingURL=open-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-host.js","sourceRoot":"","sources":["../../src/loop/open-host.ts"],"names":[],"mappings":"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"}
@@ -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;AAiGD,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,CAkBf;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,CAoBN"}
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,CAkBf;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,CAoBN"}
@@ -160,7 +160,7 @@ export async function reportAfterRun(input, run, aggregate) {
160
160
  eventId,
161
161
  fields: {
162
162
  stage: "submitting",
163
- reason: "The Submission was refused and no attempt is left.",
163
+ reason: submittedReason(aggregate, input.options.maxRefusals ?? DEFAULT_MAX_REFUSALS),
164
164
  ...((aggregate.escalation?.report ?? aggregate.submission?.last_report) === undefined
165
165
  ? {}
166
166
  : {
@@ -181,6 +181,22 @@ export async function reportAfterRun(input, run, aggregate) {
181
181
  return;
182
182
  }
183
183
  }
184
+ /**
185
+ * One escalation kind covers three stops: the offer refused before any
186
+ * Submission existed (the Publisher could not push, the Authority would not
187
+ * open one), a republish refused, and a judgement that sent it back once too
188
+ * often. Say only what the ledger shows; the Trace says who refused and why.
189
+ */
190
+ function submittedReason(aggregate, maxRefusals) {
191
+ const submission = aggregate.submission;
192
+ if (submission === undefined) {
193
+ return "The work could not be submitted.";
194
+ }
195
+ // The refusal that stopped it is never recorded as one (open-conductor).
196
+ return submission.refusals + 1 >= maxRefusals
197
+ ? "The Submission was refused and no attempt is left."
198
+ : "The Submission was refused.";
199
+ }
184
200
  /** `<key>:escalated:<round>:<kind>[:<subtask>]` — the same escalation hashes the same after a restart. */
185
201
  function escalationId(key, aggregate, kind) {
186
202
  const round = aggregate.resumes ?? 0;
@@ -240,19 +256,45 @@ function subtaskEscalation(input, aggregate) {
240
256
  return fields;
241
257
  }
242
258
  /**
243
- * The Authority sent the Submission back and a repair is on its way. Between
244
- * "submitted" and the next verdict the tracker would otherwise say nothing,
259
+ * A refusal sent the work back to `assembly.fix` and a repair is on its way.
260
+ * Between that and the next verdict the tracker would otherwise say nothing,
245
261
  * and a reader would take the silence for waiting.
262
+ *
263
+ * Two refusers write here: the Authority (`submission.last_report`, once there
264
+ * is a Submission) and `assembly.validate` (`parked_refusal`, which can exist
265
+ * before one does, or without an Authority at all). The parked one is fresher
266
+ * when both are set, the same priority `open-conductor` gives it.
246
267
  */
247
268
  async function reportRefusal(input, aggregate) {
269
+ if (aggregate.state !== "integrating") {
270
+ return;
271
+ }
272
+ const max = input.options.maxRefusals ?? DEFAULT_MAX_REFUSALS;
273
+ const parked = aggregate.parked_refusal;
274
+ if (parked !== undefined) {
275
+ const parkedRefusals = aggregate.parked_refusals ?? 0;
276
+ const spent = (aggregate.submission?.refusals ?? 0) + parkedRefusals;
277
+ await pushReport(input, {
278
+ event: "progress",
279
+ key: aggregate.intention.key,
280
+ project: aggregate.intention.project,
281
+ // Keyed on the parked count, not the shared total: a Submission refusal
282
+ // in the same round would otherwise collide with this id.
283
+ eventId: `${aggregate.intention.key}:refused:parked:${parkedRefusals}`,
284
+ fields: {
285
+ summary: `${parked.refused_by ?? "assembly.validate"} refused the assembled feature; a repair is on its way (refusal ${spent} of ${max}).`,
286
+ stage: "integrating",
287
+ trace: parked.report,
288
+ },
289
+ });
290
+ return;
291
+ }
248
292
  const submission = aggregate.submission;
249
- if (aggregate.state !== "integrating" ||
250
- submission === undefined ||
293
+ if (submission === undefined ||
251
294
  submission.last_report === undefined ||
252
295
  submission.refusals === 0) {
253
296
  return;
254
297
  }
255
- const max = input.options.maxRefusals ?? DEFAULT_MAX_REFUSALS;
256
298
  await pushReport(input, {
257
299
  event: "progress",
258
300
  key: aggregate.intention.key,