@bluewombat/runtime 0.10.0 → 0.11.1

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 (160) hide show
  1. package/README.md +202 -94
  2. package/SPECS.md +151 -25
  3. package/dist/cli.js +95 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config/agent-shorthand.d.ts +3 -4
  6. package/dist/config/agent-shorthand.d.ts.map +1 -1
  7. package/dist/config/agent-shorthand.js +3 -4
  8. package/dist/config/agent-shorthand.js.map +1 -1
  9. package/dist/config/fixture-yaml.d.ts +8 -0
  10. package/dist/config/fixture-yaml.d.ts.map +1 -0
  11. package/dist/config/fixture-yaml.js +30 -0
  12. package/dist/config/fixture-yaml.js.map +1 -0
  13. package/dist/config/load-config.d.ts.map +1 -1
  14. package/dist/config/load-config.js +90 -102
  15. package/dist/config/load-config.js.map +1 -1
  16. package/dist/config/parse-args.d.ts.map +1 -1
  17. package/dist/config/parse-args.js +3 -4
  18. package/dist/config/parse-args.js.map +1 -1
  19. package/dist/config/types.d.ts +15 -16
  20. package/dist/config/types.d.ts.map +1 -1
  21. package/dist/config/types.js +1 -1
  22. package/dist/config/types.js.map +1 -1
  23. package/dist/index.d.ts +3 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/loop/authority.d.ts +2 -0
  28. package/dist/loop/authority.d.ts.map +1 -1
  29. package/dist/loop/authority.js +11 -1
  30. package/dist/loop/authority.js.map +1 -1
  31. package/dist/loop/deliveries.d.ts.map +1 -1
  32. package/dist/loop/deliveries.js +19 -0
  33. package/dist/loop/deliveries.js.map +1 -1
  34. package/dist/loop/features.d.ts +30 -0
  35. package/dist/loop/features.d.ts.map +1 -1
  36. package/dist/loop/features.js +195 -73
  37. package/dist/loop/features.js.map +1 -1
  38. package/dist/loop/journal.d.ts +7 -0
  39. package/dist/loop/journal.d.ts.map +1 -1
  40. package/dist/loop/journal.js +23 -1
  41. package/dist/loop/journal.js.map +1 -1
  42. package/dist/loop/lock.d.ts +2 -0
  43. package/dist/loop/lock.d.ts.map +1 -1
  44. package/dist/loop/lock.js +10 -0
  45. package/dist/loop/lock.js.map +1 -1
  46. package/dist/loop/open-host.d.ts +10 -0
  47. package/dist/loop/open-host.d.ts.map +1 -1
  48. package/dist/loop/open-host.js +8 -8
  49. package/dist/loop/open-host.js.map +1 -1
  50. package/dist/loop/run-slot.d.ts +14 -0
  51. package/dist/loop/run-slot.d.ts.map +1 -1
  52. package/dist/loop/run-slot.js +53 -5
  53. package/dist/loop/run-slot.js.map +1 -1
  54. package/dist/loop/streams.d.ts +3 -0
  55. package/dist/loop/streams.d.ts.map +1 -1
  56. package/dist/loop/streams.js +4 -3
  57. package/dist/loop/streams.js.map +1 -1
  58. package/dist/loop/tick.d.ts +3 -0
  59. package/dist/loop/tick.d.ts.map +1 -1
  60. package/dist/loop/tick.js +2 -1
  61. package/dist/loop/tick.js.map +1 -1
  62. package/dist/loop/trace.d.ts +1 -0
  63. package/dist/loop/trace.d.ts.map +1 -1
  64. package/dist/loop/trace.js +1 -1
  65. package/dist/loop/trace.js.map +1 -1
  66. package/dist/loop/transformers.d.ts +4 -4
  67. package/dist/loop/transformers.d.ts.map +1 -1
  68. package/dist/loop/transformers.js +16 -25
  69. package/dist/loop/transformers.js.map +1 -1
  70. package/dist/operator/board.d.ts +43 -4
  71. package/dist/operator/board.d.ts.map +1 -1
  72. package/dist/operator/board.js +153 -10
  73. package/dist/operator/board.js.map +1 -1
  74. package/dist/operator/dash-model.d.ts +65 -0
  75. package/dist/operator/dash-model.d.ts.map +1 -0
  76. package/dist/operator/dash-model.js +209 -0
  77. package/dist/operator/dash-model.js.map +1 -0
  78. package/dist/operator/dash-view.d.ts +16 -0
  79. package/dist/operator/dash-view.d.ts.map +1 -0
  80. package/dist/operator/dash-view.js +226 -0
  81. package/dist/operator/dash-view.js.map +1 -0
  82. package/dist/operator/dash.d.ts +34 -0
  83. package/dist/operator/dash.d.ts.map +1 -0
  84. package/dist/operator/dash.js +141 -0
  85. package/dist/operator/dash.js.map +1 -0
  86. package/dist/operator/doctor.d.ts.map +1 -1
  87. package/dist/operator/doctor.js +48 -8
  88. package/dist/operator/doctor.js.map +1 -1
  89. package/dist/operator/explain.d.ts.map +1 -1
  90. package/dist/operator/explain.js +6 -11
  91. package/dist/operator/explain.js.map +1 -1
  92. package/dist/operator/incident-dossier.d.ts +154 -0
  93. package/dist/operator/incident-dossier.d.ts.map +1 -0
  94. package/dist/operator/incident-dossier.js +692 -0
  95. package/dist/operator/incident-dossier.js.map +1 -0
  96. package/dist/operator/incident-system.d.ts +57 -0
  97. package/dist/operator/incident-system.d.ts.map +1 -0
  98. package/dist/operator/incident-system.js +214 -0
  99. package/dist/operator/incident-system.js.map +1 -0
  100. package/dist/operator/incident.d.ts +27 -0
  101. package/dist/operator/incident.d.ts.map +1 -0
  102. package/dist/operator/incident.js +220 -0
  103. package/dist/operator/incident.js.map +1 -0
  104. package/dist/operator/init.js +24 -24
  105. package/dist/operator/init.js.map +1 -1
  106. package/dist/operator/install.d.ts +9 -0
  107. package/dist/operator/install.d.ts.map +1 -0
  108. package/dist/operator/install.js +14 -0
  109. package/dist/operator/install.js.map +1 -0
  110. package/dist/operator/live.js +4 -4
  111. package/dist/operator/live.js.map +1 -1
  112. package/dist/operator/log.d.ts +2 -0
  113. package/dist/operator/log.d.ts.map +1 -1
  114. package/dist/operator/log.js +2 -5
  115. package/dist/operator/log.js.map +1 -1
  116. package/dist/operator/restart.d.ts +20 -0
  117. package/dist/operator/restart.d.ts.map +1 -0
  118. package/dist/operator/restart.js +63 -0
  119. package/dist/operator/restart.js.map +1 -0
  120. package/dist/operator/supervise/act.d.ts +37 -0
  121. package/dist/operator/supervise/act.d.ts.map +1 -0
  122. package/dist/operator/supervise/act.js +354 -0
  123. package/dist/operator/supervise/act.js.map +1 -0
  124. package/dist/operator/supervise/config.d.ts +74 -0
  125. package/dist/operator/supervise/config.d.ts.map +1 -0
  126. package/dist/operator/supervise/config.js +175 -0
  127. package/dist/operator/supervise/config.js.map +1 -0
  128. package/dist/operator/supervise/council.d.ts +45 -0
  129. package/dist/operator/supervise/council.d.ts.map +1 -0
  130. package/dist/operator/supervise/council.js +97 -0
  131. package/dist/operator/supervise/council.js.map +1 -0
  132. package/dist/operator/supervise/decision.d.ts +46 -0
  133. package/dist/operator/supervise/decision.d.ts.map +1 -0
  134. package/dist/operator/supervise/decision.js +137 -0
  135. package/dist/operator/supervise/decision.js.map +1 -0
  136. package/dist/operator/supervise/exec.d.ts +28 -0
  137. package/dist/operator/supervise/exec.d.ts.map +1 -0
  138. package/dist/operator/supervise/exec.js +47 -0
  139. package/dist/operator/supervise/exec.js.map +1 -0
  140. package/dist/operator/supervise/memory.d.ts +33 -0
  141. package/dist/operator/supervise/memory.d.ts.map +1 -0
  142. package/dist/operator/supervise/memory.js +73 -0
  143. package/dist/operator/supervise/memory.js.map +1 -0
  144. package/dist/operator/supervise/observe.d.ts +47 -0
  145. package/dist/operator/supervise/observe.d.ts.map +1 -0
  146. package/dist/operator/supervise/observe.js +73 -0
  147. package/dist/operator/supervise/observe.js.map +1 -0
  148. package/dist/operator/supervise/prompts.d.ts +60 -0
  149. package/dist/operator/supervise/prompts.d.ts.map +1 -0
  150. package/dist/operator/supervise/prompts.js +338 -0
  151. package/dist/operator/supervise/prompts.js.map +1 -0
  152. package/dist/operator/supervise/review.d.ts +24 -0
  153. package/dist/operator/supervise/review.d.ts.map +1 -0
  154. package/dist/operator/supervise/review.js +51 -0
  155. package/dist/operator/supervise/review.js.map +1 -0
  156. package/dist/operator/supervise/supervise.d.ts +26 -0
  157. package/dist/operator/supervise/supervise.d.ts.map +1 -0
  158. package/dist/operator/supervise/supervise.js +484 -0
  159. package/dist/operator/supervise/supervise.js.map +1 -0
  160. package/package.json +14 -14
@@ -0,0 +1,154 @@
1
+ import type { FeatureAggregate, TicketAggregate } from "@bluewombat/work-ledger";
2
+ import type { HostInvocation } from "../config/types.js";
3
+ import type { SystemFacts } from "./incident-system.js";
4
+ /**
5
+ * What `mason incident` hands to whoever has to understand a stop.
6
+ *
7
+ * The WorkLedger says that something stopped and, in a sentence, why. The
8
+ * journal says who answered what, in order. The streams and transcripts hold
9
+ * what the checks and the agents said. Reading all of them to find one stop is
10
+ * the work this does once, with no judgement: it never decides why the work
11
+ * stopped, it puts the facts side by side and says which ones it could not find.
12
+ */
13
+ export declare const INCIDENT_SCHEMA = "bluewombat.incident/1";
14
+ /** `none`: the subject is not stopped, and the page shows its last refusal if it had one. */
15
+ export type Layer = "unit" | "assembly" | "submitted" | "merging" | "feature" | "none" | "unknown";
16
+ export type TicketRow = {
17
+ key: string;
18
+ title?: string;
19
+ state: string;
20
+ attempts_used: number;
21
+ reference?: string;
22
+ featureTest?: boolean;
23
+ blocked_by?: string[];
24
+ done_at?: string;
25
+ escalation?: {
26
+ kind: string;
27
+ report?: string;
28
+ };
29
+ };
30
+ export type TimelineRow = {
31
+ at: string;
32
+ event: string;
33
+ id?: string;
34
+ attempt?: number;
35
+ gate_id?: string;
36
+ verdict?: string;
37
+ detail?: string;
38
+ };
39
+ export type StreamRow = {
40
+ path: string;
41
+ id?: string;
42
+ gate_id?: string;
43
+ attempt?: number;
44
+ bytes?: number;
45
+ exists: boolean;
46
+ /** The end of what the stream said, for the check that refused. */
47
+ excerpt?: string;
48
+ };
49
+ export type TranscriptRow = {
50
+ path: string;
51
+ title?: string;
52
+ slot?: string;
53
+ started?: string;
54
+ ended?: string;
55
+ duration?: string;
56
+ exit?: string;
57
+ /** `MASON_VERDICT:` or `MASON_BLOCKED:` line, when the agent ended on one. */
58
+ marker?: string;
59
+ /** The end of what the agent said. */
60
+ final_message?: string;
61
+ };
62
+ export type GateConfigRow = {
63
+ section: string;
64
+ id: string;
65
+ argv: string[];
66
+ timeoutMs?: number;
67
+ skipWhen?: string;
68
+ };
69
+ export type Dossier = {
70
+ schema: typeof INCIDENT_SCHEMA;
71
+ generated_at: string;
72
+ subject: {
73
+ key: string;
74
+ kind: "ticket" | "feature";
75
+ project: string;
76
+ title?: string;
77
+ state: string;
78
+ source?: string;
79
+ /** The first lines of what was asked. */
80
+ intention: string;
81
+ blocked_by?: string[];
82
+ };
83
+ stop: {
84
+ layer: Layer;
85
+ /** In the ledger's own words. */
86
+ report?: string;
87
+ /** What refused it: a Gate's id or a role, as the ledger or the journal named it. */
88
+ refused_by?: string;
89
+ at?: string;
90
+ id?: string;
91
+ attempt?: number;
92
+ gate?: {
93
+ id: string;
94
+ verdict: string;
95
+ report: string;
96
+ at: string;
97
+ };
98
+ agent?: {
99
+ id: string;
100
+ attempt?: number;
101
+ failure: string;
102
+ at: string;
103
+ };
104
+ /** Where each field above came from, so a reader knows what to trust. */
105
+ sources: string[];
106
+ };
107
+ history: {
108
+ /** Earlier stops of this subject, then this one, in the journal. */
109
+ escalations: number;
110
+ resumes: number;
111
+ };
112
+ budgets: {
113
+ attempts_used?: number;
114
+ refusals?: number;
115
+ parked_refusals?: number;
116
+ realigns?: number;
117
+ };
118
+ parent?: {
119
+ key: string;
120
+ kind: "feature";
121
+ state: string;
122
+ title?: string;
123
+ tickets: TicketRow[];
124
+ };
125
+ tickets?: TicketRow[];
126
+ gate_config?: GateConfigRow[];
127
+ /** Versions, and what the configuration switched on. */
128
+ system?: SystemFacts;
129
+ timeline: TimelineRow[];
130
+ artifacts: {
131
+ streams: StreamRow[];
132
+ transcripts: TranscriptRow[];
133
+ };
134
+ /** What could not be found. A reader must not read an absence as a "no". */
135
+ gaps: string[];
136
+ };
137
+ export type JournalLine = Record<string, unknown>;
138
+ export type DossierInput = {
139
+ subject: TicketAggregate | FeatureAggregate;
140
+ /** The Tickets of a Feature, or of the Feature a Ticket belongs to. */
141
+ tickets: TicketAggregate[];
142
+ parent?: FeatureAggregate;
143
+ journal: JournalLine[];
144
+ invocation?: HostInvocation;
145
+ streamsDir?: string;
146
+ transcriptsDir?: string;
147
+ system?: SystemFacts;
148
+ now: Date;
149
+ };
150
+ export declare function isFeature(subject: TicketAggregate | FeatureAggregate): subject is FeatureAggregate;
151
+ export declare function buildDossier(input: DossierInput): Dossier;
152
+ /** The dossier as a page to read: the facts first, the detail after. */
153
+ export declare function renderDossier(dossier: Dossier): string;
154
+ //# sourceMappingURL=incident-dossier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incident-dossier.d.ts","sourceRoot":"","sources":["../../src/operator/incident-dossier.ts"],"names":[],"mappings":"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"}