@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.
- package/README.md +202 -94
- package/SPECS.md +151 -25
- package/dist/cli.js +95 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/agent-shorthand.d.ts +3 -4
- package/dist/config/agent-shorthand.d.ts.map +1 -1
- package/dist/config/agent-shorthand.js +3 -4
- package/dist/config/agent-shorthand.js.map +1 -1
- package/dist/config/fixture-yaml.d.ts +8 -0
- package/dist/config/fixture-yaml.d.ts.map +1 -0
- package/dist/config/fixture-yaml.js +30 -0
- package/dist/config/fixture-yaml.js.map +1 -0
- package/dist/config/load-config.d.ts.map +1 -1
- package/dist/config/load-config.js +90 -102
- package/dist/config/load-config.js.map +1 -1
- package/dist/config/parse-args.d.ts.map +1 -1
- package/dist/config/parse-args.js +3 -4
- package/dist/config/parse-args.js.map +1 -1
- package/dist/config/types.d.ts +15 -16
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loop/authority.d.ts +2 -0
- package/dist/loop/authority.d.ts.map +1 -1
- package/dist/loop/authority.js +11 -1
- package/dist/loop/authority.js.map +1 -1
- package/dist/loop/deliveries.d.ts.map +1 -1
- package/dist/loop/deliveries.js +19 -0
- package/dist/loop/deliveries.js.map +1 -1
- package/dist/loop/features.d.ts +30 -0
- package/dist/loop/features.d.ts.map +1 -1
- package/dist/loop/features.js +195 -73
- package/dist/loop/features.js.map +1 -1
- package/dist/loop/journal.d.ts +7 -0
- package/dist/loop/journal.d.ts.map +1 -1
- package/dist/loop/journal.js +23 -1
- package/dist/loop/journal.js.map +1 -1
- package/dist/loop/lock.d.ts +2 -0
- package/dist/loop/lock.d.ts.map +1 -1
- package/dist/loop/lock.js +10 -0
- package/dist/loop/lock.js.map +1 -1
- package/dist/loop/open-host.d.ts +10 -0
- package/dist/loop/open-host.d.ts.map +1 -1
- package/dist/loop/open-host.js +8 -8
- package/dist/loop/open-host.js.map +1 -1
- package/dist/loop/run-slot.d.ts +14 -0
- package/dist/loop/run-slot.d.ts.map +1 -1
- package/dist/loop/run-slot.js +53 -5
- package/dist/loop/run-slot.js.map +1 -1
- package/dist/loop/streams.d.ts +3 -0
- package/dist/loop/streams.d.ts.map +1 -1
- package/dist/loop/streams.js +4 -3
- package/dist/loop/streams.js.map +1 -1
- package/dist/loop/tick.d.ts +3 -0
- package/dist/loop/tick.d.ts.map +1 -1
- package/dist/loop/tick.js +2 -1
- package/dist/loop/tick.js.map +1 -1
- package/dist/loop/trace.d.ts +1 -0
- package/dist/loop/trace.d.ts.map +1 -1
- package/dist/loop/trace.js +1 -1
- package/dist/loop/trace.js.map +1 -1
- package/dist/loop/transformers.d.ts +4 -4
- package/dist/loop/transformers.d.ts.map +1 -1
- package/dist/loop/transformers.js +16 -25
- package/dist/loop/transformers.js.map +1 -1
- package/dist/operator/board.d.ts +43 -4
- package/dist/operator/board.d.ts.map +1 -1
- package/dist/operator/board.js +153 -10
- package/dist/operator/board.js.map +1 -1
- package/dist/operator/dash-model.d.ts +65 -0
- package/dist/operator/dash-model.d.ts.map +1 -0
- package/dist/operator/dash-model.js +209 -0
- package/dist/operator/dash-model.js.map +1 -0
- package/dist/operator/dash-view.d.ts +16 -0
- package/dist/operator/dash-view.d.ts.map +1 -0
- package/dist/operator/dash-view.js +226 -0
- package/dist/operator/dash-view.js.map +1 -0
- package/dist/operator/dash.d.ts +34 -0
- package/dist/operator/dash.d.ts.map +1 -0
- package/dist/operator/dash.js +141 -0
- package/dist/operator/dash.js.map +1 -0
- package/dist/operator/doctor.d.ts.map +1 -1
- package/dist/operator/doctor.js +48 -8
- package/dist/operator/doctor.js.map +1 -1
- package/dist/operator/explain.d.ts.map +1 -1
- package/dist/operator/explain.js +6 -11
- package/dist/operator/explain.js.map +1 -1
- package/dist/operator/incident-dossier.d.ts +154 -0
- package/dist/operator/incident-dossier.d.ts.map +1 -0
- package/dist/operator/incident-dossier.js +692 -0
- package/dist/operator/incident-dossier.js.map +1 -0
- package/dist/operator/incident-system.d.ts +57 -0
- package/dist/operator/incident-system.d.ts.map +1 -0
- package/dist/operator/incident-system.js +214 -0
- package/dist/operator/incident-system.js.map +1 -0
- package/dist/operator/incident.d.ts +27 -0
- package/dist/operator/incident.d.ts.map +1 -0
- package/dist/operator/incident.js +220 -0
- package/dist/operator/incident.js.map +1 -0
- package/dist/operator/init.js +24 -24
- package/dist/operator/init.js.map +1 -1
- package/dist/operator/install.d.ts +9 -0
- package/dist/operator/install.d.ts.map +1 -0
- package/dist/operator/install.js +14 -0
- package/dist/operator/install.js.map +1 -0
- package/dist/operator/live.js +4 -4
- package/dist/operator/live.js.map +1 -1
- package/dist/operator/log.d.ts +2 -0
- package/dist/operator/log.d.ts.map +1 -1
- package/dist/operator/log.js +2 -5
- package/dist/operator/log.js.map +1 -1
- package/dist/operator/restart.d.ts +20 -0
- package/dist/operator/restart.d.ts.map +1 -0
- package/dist/operator/restart.js +63 -0
- package/dist/operator/restart.js.map +1 -0
- package/dist/operator/supervise/act.d.ts +37 -0
- package/dist/operator/supervise/act.d.ts.map +1 -0
- package/dist/operator/supervise/act.js +354 -0
- package/dist/operator/supervise/act.js.map +1 -0
- package/dist/operator/supervise/config.d.ts +74 -0
- package/dist/operator/supervise/config.d.ts.map +1 -0
- package/dist/operator/supervise/config.js +175 -0
- package/dist/operator/supervise/config.js.map +1 -0
- package/dist/operator/supervise/council.d.ts +45 -0
- package/dist/operator/supervise/council.d.ts.map +1 -0
- package/dist/operator/supervise/council.js +97 -0
- package/dist/operator/supervise/council.js.map +1 -0
- package/dist/operator/supervise/decision.d.ts +46 -0
- package/dist/operator/supervise/decision.d.ts.map +1 -0
- package/dist/operator/supervise/decision.js +137 -0
- package/dist/operator/supervise/decision.js.map +1 -0
- package/dist/operator/supervise/exec.d.ts +28 -0
- package/dist/operator/supervise/exec.d.ts.map +1 -0
- package/dist/operator/supervise/exec.js +47 -0
- package/dist/operator/supervise/exec.js.map +1 -0
- package/dist/operator/supervise/memory.d.ts +33 -0
- package/dist/operator/supervise/memory.d.ts.map +1 -0
- package/dist/operator/supervise/memory.js +73 -0
- package/dist/operator/supervise/memory.js.map +1 -0
- package/dist/operator/supervise/observe.d.ts +47 -0
- package/dist/operator/supervise/observe.d.ts.map +1 -0
- package/dist/operator/supervise/observe.js +73 -0
- package/dist/operator/supervise/observe.js.map +1 -0
- package/dist/operator/supervise/prompts.d.ts +60 -0
- package/dist/operator/supervise/prompts.d.ts.map +1 -0
- package/dist/operator/supervise/prompts.js +338 -0
- package/dist/operator/supervise/prompts.js.map +1 -0
- package/dist/operator/supervise/review.d.ts +24 -0
- package/dist/operator/supervise/review.d.ts.map +1 -0
- package/dist/operator/supervise/review.js +51 -0
- package/dist/operator/supervise/review.js.map +1 -0
- package/dist/operator/supervise/supervise.d.ts +26 -0
- package/dist/operator/supervise/supervise.d.ts.map +1 -0
- package/dist/operator/supervise/supervise.js +484 -0
- package/dist/operator/supervise/supervise.js.map +1 -0
- 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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"}
|