@aeolus-fleet/trierarch 0.18.0 → 0.19.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.
- package/LICENSE +201 -0
- package/README.md +11 -11
- package/dist/adapters/claude-code.d.ts +3 -3
- package/dist/adapters/claude-code.js.map +1 -1
- package/dist/adapters/codex.d.ts +3 -3
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/flags.d.ts +2 -2
- package/dist/adapters/flags.js +2 -2
- package/dist/adapters/git-workspace.js +1 -1
- package/dist/adapters/harnesses.d.ts +4 -4
- package/dist/adapters/harnesses.js +2 -2
- package/dist/adapters/harnesses.js.map +1 -1
- package/dist/adapters/json-state.d.ts +6 -4
- package/dist/adapters/json-state.js +21 -21
- package/dist/adapters/json-state.js.map +1 -1
- package/dist/adapters/rest-fleet.d.ts +4 -3
- package/dist/adapters/rest-fleet.js +20 -13
- package/dist/adapters/rest-fleet.js.map +1 -1
- package/dist/adapters/service.js +1 -1
- package/dist/adapters/style.d.ts +3 -3
- package/dist/adapters/style.js +1 -2
- package/dist/adapters/style.js.map +1 -1
- package/dist/cli/config-check.d.ts +3 -3
- package/dist/cli/config-check.js +1 -1
- package/dist/cli/config-check.js.map +1 -1
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/list.d.ts +4 -3
- package/dist/cli/list.js +1 -1
- package/dist/cli/list.js.map +1 -1
- package/dist/cli/main.js +2 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/run.d.ts +12 -7
- package/dist/cli/run.js +44 -24
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/status.d.ts +3 -2
- package/dist/cli/status.js +5 -4
- package/dist/cli/status.js.map +1 -1
- package/dist/core/check-settings.d.ts +25 -0
- package/dist/core/check-settings.js +52 -0
- package/dist/core/check-settings.js.map +1 -0
- package/dist/core/entry.d.ts +18 -30
- package/dist/core/entry.js +3 -1
- package/dist/core/entry.js.map +1 -1
- package/dist/core/handle-delivery.d.ts +9 -14
- package/dist/core/handle-delivery.js +4 -133
- package/dist/core/handle-delivery.js.map +1 -1
- package/dist/core/options-schema.d.ts +7 -0
- package/dist/core/options-schema.js +10 -0
- package/dist/core/options-schema.js.map +1 -0
- package/dist/core/ports.d.ts +48 -8
- package/dist/core/reconciler.d.ts +32 -12
- package/dist/core/reconciler.js +107 -23
- package/dist/core/reconciler.js.map +1 -1
- package/dist/core/report-self.d.ts +16 -0
- package/dist/core/report-self.js +41 -0
- package/dist/core/report-self.js.map +1 -0
- package/dist/core/run-pass.d.ts +8 -7
- package/dist/core/run-pass.js +113 -69
- package/dist/core/run-pass.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
- package/dist/core/answers.d.ts +0 -4
- package/dist/core/answers.js +0 -32
- package/dist/core/answers.js.map +0 -1
- package/dist/core/check-want.d.ts +0 -32
- package/dist/core/check-want.js +0 -80
- package/dist/core/check-want.js.map +0 -1
package/dist/core/run-pass.js
CHANGED
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import { putEntry, removeEntry, withState } from './entry.js';
|
|
2
2
|
import { reconcile } from './reconciler.js';
|
|
3
|
+
const NEXT_AFTER_FAILURE = 'the next pass tries again; aeolus-trierarch status and list show where it stands';
|
|
3
4
|
export function createRunPass(deps) {
|
|
4
5
|
return async () => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
let state = await deps.state.load();
|
|
7
|
+
let action;
|
|
8
|
+
try {
|
|
9
|
+
const requests = await deps.fleet.assignedRequests();
|
|
10
|
+
const observed = await observe(state, deps);
|
|
11
|
+
const reconciled = reconcile(state, { requests, observed, now: deps.clock.now(), configuration: deps.setup.configuration });
|
|
12
|
+
state = reconciled.state;
|
|
13
|
+
await deps.state.save(state);
|
|
14
|
+
for (action of reconciled.actions) {
|
|
12
15
|
state = await carryOut(state, { action, deps });
|
|
13
16
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
return;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
20
|
+
if (action === undefined || action.kind === 'argo' || action.kind === 'status' || action.kind === 'refuse') {
|
|
21
|
+
deps.logger.warn(`The pass failed${action === undefined ? '' : ` at ${action.kind}`}: ${reason}; ${NEXT_AFTER_FAILURE}`);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
log(deps, { ...about(state, { shipId: action.shipId, action: action.kind }), outcome: `failed: ${reason}`, next: NEXT_AFTER_FAILURE });
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
};
|
|
@@ -48,7 +50,6 @@ async function observe(state, deps) {
|
|
|
48
50
|
}
|
|
49
51
|
return { sessions, worktrees, ships };
|
|
50
52
|
}
|
|
51
|
-
const NEXT_AFTER_FAILURE = 'the next pass tries again; aeolus-trierarch status and list show where it stands';
|
|
52
53
|
function log(deps, logged) {
|
|
53
54
|
deps.logger.action({ time: deps.clock.now(), ...logged });
|
|
54
55
|
}
|
|
@@ -59,15 +60,36 @@ function about(state, of) {
|
|
|
59
60
|
}
|
|
60
61
|
async function carryOut(state, at) {
|
|
61
62
|
const { action, deps } = at;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
switch (action.kind) {
|
|
64
|
+
case 'argo':
|
|
65
|
+
await deps.fleet.reportToArgo(action.report);
|
|
66
|
+
return state;
|
|
67
|
+
case 'status':
|
|
68
|
+
await deps.fleet.writeStatus(action.shipId, action.status);
|
|
69
|
+
return state;
|
|
70
|
+
case 'refuse':
|
|
71
|
+
return refuse(state, { action, deps });
|
|
72
|
+
case 'confirm':
|
|
73
|
+
await deps.fleet.confirmRelease(action.shipId);
|
|
74
|
+
log(deps, { shipId: action.shipId, action: 'confirm', outcome: 'its request removed; this trierarch did not crew it' });
|
|
75
|
+
return state;
|
|
76
|
+
case 'stop':
|
|
77
|
+
await deps.processes.stop(action.shipId);
|
|
78
|
+
log(deps, { ...about(state, { shipId: action.shipId, action: 'stop' }), outcome: 'its session stopped' });
|
|
79
|
+
return state;
|
|
80
|
+
case 'forget':
|
|
81
|
+
return forget(state, { entry: action.entry, deps });
|
|
82
|
+
case 'release':
|
|
83
|
+
return release(state, { shipId: action.shipId, deps });
|
|
84
|
+
case 'crew':
|
|
85
|
+
case 'launch':
|
|
86
|
+
case 'wake':
|
|
87
|
+
case 'report':
|
|
88
|
+
return carryOutForEntry(state, { action, deps });
|
|
70
89
|
}
|
|
90
|
+
}
|
|
91
|
+
async function carryOutForEntry(state, at) {
|
|
92
|
+
const { action, deps } = at;
|
|
71
93
|
const entry = state.entries[action.shipId];
|
|
72
94
|
if (entry === undefined) {
|
|
73
95
|
return state;
|
|
@@ -104,19 +126,16 @@ async function carryOut(state, at) {
|
|
|
104
126
|
}
|
|
105
127
|
return state;
|
|
106
128
|
}
|
|
107
|
-
case 'release':
|
|
108
|
-
return release(state, { entry, deps });
|
|
109
|
-
case 'drop':
|
|
110
|
-
return drop(state, { entry, deps });
|
|
111
129
|
}
|
|
112
130
|
}
|
|
113
131
|
/**
|
|
114
|
-
* Crews the ship: gets its starting prompt
|
|
115
|
-
* secret, so the session never sees it; makes the workspace
|
|
116
|
-
* folder's identity (with its squadron) and starts the
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
132
|
+
* Crews the ship (crew:run): gets its starting prompt and registers with the
|
|
133
|
+
* secret, so the session never sees it; makes the workspace (or uses the one
|
|
134
|
+
* it has), writes the folder's identity (with its squadron) and starts the
|
|
135
|
+
* harness, writing status crewing, then running. A resumed crew whose ship is
|
|
136
|
+
* crewed holds the ship by its own lease, or lost its register reply: the
|
|
137
|
+
* trierarch releases the ship and crews it again. A ship another session
|
|
138
|
+
* crews before its crew is left; a ship gone is forgotten.
|
|
120
139
|
*/
|
|
121
140
|
async function crew(state, at) {
|
|
122
141
|
const { entry, isResumed, deps } = at;
|
|
@@ -125,12 +144,19 @@ async function crew(state, at) {
|
|
|
125
144
|
return state;
|
|
126
145
|
}
|
|
127
146
|
const ship = await deps.fleet.ship(entry.shipId);
|
|
128
|
-
if (ship.kind === 'notFound' || ship.kind === 'retired'
|
|
129
|
-
return
|
|
147
|
+
if (ship.kind === 'notFound' || ship.kind === 'retired') {
|
|
148
|
+
return forget(state, { entry, deps });
|
|
149
|
+
}
|
|
150
|
+
if (ship.kind === 'crewed' && !isResumed) {
|
|
151
|
+
const next = removeEntry(state, entry.shipId);
|
|
152
|
+
await deps.state.save(next);
|
|
153
|
+
log(deps, { shipId: entry.shipId, shipName: ship.name, action: 'leave', outcome: 'crewed by another session, so the trierarch leaves it' });
|
|
154
|
+
return next;
|
|
130
155
|
}
|
|
131
156
|
if (ship.kind === 'crewed') {
|
|
132
157
|
await deps.fleet.release(entry.shipId);
|
|
133
158
|
}
|
|
159
|
+
await deps.fleet.writeStatus(entry.shipId, 'crewing');
|
|
134
160
|
const { secret } = await deps.fleet.getStartingPrompt(entry.shipId);
|
|
135
161
|
const { crewToken } = await deps.fleet.register({ shipId: entry.shipId, secret });
|
|
136
162
|
const { folder } = await deps.workspace.prepare({ shipId: entry.shipId, shipName: ship.name, workspace: entry.workspace });
|
|
@@ -151,49 +177,70 @@ async function crew(state, at) {
|
|
|
151
177
|
const now = deps.clock.now();
|
|
152
178
|
const next = putEntry(state, { ...withState(entry, { state: 'running', now }), shipName: ship.name, folder, hasStarted: true });
|
|
153
179
|
await deps.state.save(next);
|
|
180
|
+
await deps.fleet.writeStatus(entry.shipId, 'running');
|
|
154
181
|
log(deps, { shipId: entry.shipId, shipName: ship.name, action: 'crew', outcome: `crewed, ${entry.harness} started in ${folder}` });
|
|
155
|
-
await deps.fleet.send(notice(entry, { name: 'running', now }));
|
|
156
182
|
return next;
|
|
157
183
|
}
|
|
158
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* Its request was removed (row 7): the session stops, the lease ends
|
|
186
|
+
* whatever the worktree holds, then the workspace; only then does the
|
|
187
|
+
* trierarch confirm, and the request goes.
|
|
188
|
+
*/
|
|
159
189
|
async function release(state, at) {
|
|
160
|
-
const {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
await deps.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const { messageId, sender } = entry.release;
|
|
169
|
-
await deps.fleet.send({
|
|
170
|
-
to: sender,
|
|
171
|
-
inReplyTo: messageId,
|
|
172
|
-
name: 'released',
|
|
173
|
-
payload: { shipId: entry.shipId, workspace: finished.workspace, ...(finished.path !== undefined && { path: finished.path }) },
|
|
174
|
-
idempotencyKey: `trierarch:${messageId}:released`,
|
|
175
|
-
});
|
|
190
|
+
const { shipId, deps } = at;
|
|
191
|
+
const entry = state.entries[shipId];
|
|
192
|
+
if (entry === undefined) {
|
|
193
|
+
return state;
|
|
194
|
+
}
|
|
195
|
+
await deps.processes.stop(shipId);
|
|
196
|
+
if ((await deps.fleet.ship(shipId)).kind === 'crewed') {
|
|
197
|
+
await deps.fleet.release(shipId);
|
|
176
198
|
}
|
|
199
|
+
const finished = await finishWorkspace(state, { entry, deps });
|
|
200
|
+
const next = removeEntry(finished.state, shipId);
|
|
201
|
+
await deps.state.save(next);
|
|
202
|
+
await deps.fleet.confirmRelease(shipId);
|
|
203
|
+
log(deps, { ...about(state, { shipId, action: 'release' }), outcome: `released, ${describeWorkspace(entry, finished)}` });
|
|
177
204
|
return next;
|
|
178
205
|
}
|
|
179
|
-
/**
|
|
180
|
-
|
|
206
|
+
/**
|
|
207
|
+
* Its request is no longer assigned here, as when its ship is retired (gap
|
|
208
|
+
* rule 2): the session stops and its identity goes, but nothing the trierarch
|
|
209
|
+
* cannot tell is clean goes: its worktree stays, reported as an orphan.
|
|
210
|
+
*/
|
|
211
|
+
async function forget(state, at) {
|
|
181
212
|
const { entry, deps } = at;
|
|
182
213
|
await deps.processes.stop(entry.shipId);
|
|
183
|
-
|
|
184
|
-
|
|
214
|
+
if (entry.folder !== undefined) {
|
|
215
|
+
await harnessOf(entry, deps)?.removeIdentity(entry.folder);
|
|
216
|
+
}
|
|
217
|
+
const next = removeEntry(state, entry.shipId);
|
|
185
218
|
await deps.state.save(next);
|
|
186
|
-
log(deps, { ...
|
|
187
|
-
|
|
219
|
+
log(deps, { shipId: entry.shipId, ...(entry.shipName !== undefined && { shipName: entry.shipName }), action: 'forget', outcome: 'its request is no longer assigned here, so its session stopped' });
|
|
220
|
+
return next;
|
|
221
|
+
}
|
|
222
|
+
/** Tells argo, once per settings version, that this trierarch cannot crew them. */
|
|
223
|
+
async function refuse(state, at) {
|
|
224
|
+
const { action, deps } = at;
|
|
225
|
+
const ship = await deps.fleet.ship(action.shipId);
|
|
226
|
+
const name = ship.kind === 'awaitingCrew' || ship.kind === 'crewed' ? ship.name : action.shipId;
|
|
227
|
+
const { field, reason } = action.refusal;
|
|
228
|
+
await deps.fleet.reportToArgo({
|
|
229
|
+
text: `${name} (${action.shipId}): this trierarch cannot crew settings version ${String(action.settingsVersion)}: ${field === undefined ? reason : `${field}: ${reason}`}`,
|
|
230
|
+
idempotencyKey: `trierarch:refused:${action.shipId}:${String(action.settingsVersion)}`,
|
|
231
|
+
});
|
|
232
|
+
const next = { ...state, refused: { ...state.refused, [action.shipId]: action.settingsVersion } };
|
|
233
|
+
await deps.state.save(next);
|
|
234
|
+
deps.logger.warn(`Cannot crew ${name} (${action.shipId}), settings version ${String(action.settingsVersion)}: ${reason}`);
|
|
188
235
|
return next;
|
|
189
236
|
}
|
|
190
237
|
/**
|
|
191
238
|
* The workspace of an entry that ends: a worktree the trierarch made is
|
|
192
|
-
* removed when clean
|
|
193
|
-
*
|
|
239
|
+
* removed when clean, and kept and reported when not; a configured folder is
|
|
240
|
+
* never removed. The identity goes either way.
|
|
194
241
|
*/
|
|
195
242
|
async function finishWorkspace(state, at) {
|
|
196
|
-
const { entry, deps
|
|
243
|
+
const { entry, deps } = at;
|
|
197
244
|
const { folder } = entry;
|
|
198
245
|
if (folder === undefined) {
|
|
199
246
|
return { state, workspace: 'removed' };
|
|
@@ -202,7 +249,7 @@ async function finishWorkspace(state, at) {
|
|
|
202
249
|
if (entry.workspace.kind === 'folder') {
|
|
203
250
|
return { state, workspace: 'kept', path: folder };
|
|
204
251
|
}
|
|
205
|
-
if (
|
|
252
|
+
if (await deps.workspace.isClean(folder)) {
|
|
206
253
|
await deps.workspace.remove(folder);
|
|
207
254
|
return { state, workspace: 'removed' };
|
|
208
255
|
}
|
|
@@ -217,7 +264,7 @@ function describeWorkspace(entry, finished) {
|
|
|
217
264
|
return entry.workspace.kind === 'folder' ? `its folder kept: ${finished.path ?? ''}` : `its worktree kept with changes: ${finished.path ?? ''}`;
|
|
218
265
|
}
|
|
219
266
|
/**
|
|
220
|
-
* The adapter of the entry's harness.
|
|
267
|
+
* The adapter of the entry's harness. Settings name only a harness the
|
|
221
268
|
* configuration offers, and the trierarch starts with an adapter for each, so
|
|
222
269
|
* none missing is a setup gone wrong: logged, and the entry left as it is.
|
|
223
270
|
*/
|
|
@@ -228,7 +275,4 @@ function harnessOf(entry, deps) {
|
|
|
228
275
|
}
|
|
229
276
|
return harness;
|
|
230
277
|
}
|
|
231
|
-
function notice(entry, at) {
|
|
232
|
-
return { to: entry.requester, name: at.name, payload: { shipId: entry.shipId }, idempotencyKey: `trierarch:${at.name}:${entry.shipId}:${at.now.toISOString()}` };
|
|
233
|
-
}
|
|
234
278
|
//# sourceMappingURL=run-pass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-pass.js","sourceRoot":"","sources":["../../src/core/run-pass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-pass.js","sourceRoot":"","sources":["../../src/core/run-pass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAmC,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AA2BxE,MAAM,kBAAkB,GAAG,kFAAkF,CAAC;AAE9G,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;YAC5H,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,KAAK,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBAClC,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,KAAK,kBAAkB,EAAE,CAAC,CAAC;YAC3H,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACzI,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,OAAO,CAAC,KAAqB,EAAE,IAAiB;IAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACnD,MAAM,KAAK,GAA8C,EAAE,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtF,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACrD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzG,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,GAAG,CAAC,IAAiB,EAAE,MAAkC;IAChE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,6EAA6E;AAC7E,SAAS,KAAK,CAAC,KAAqB,EAAE,EAA2C;IAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IACpD,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC;AAOD,KAAK,UAAU,QAAQ,CAAC,KAAqB,EAAE,EAAY;IACzD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,KAAK,SAAS;YACZ,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC,CAAC;YACxH,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC1G,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAqB,EAAE,EAA2F;IAChJ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC;oBACnC,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,iEAAiE;oBACjE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM;oBACxC,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1H,CAAC;YACD,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnF,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC9G,CAAC;YACD,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnH,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAOD;;;;;;;;GAQG;AACH,KAAK,UAAU,IAAI,CAAC,KAAqB,EAAE,EAAoC;IAC7E,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAAC;QAC5I,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3H,MAAM,OAAO,CAAC,eAAe,CAAC;QAC5B,MAAM;QACN,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;KAChK,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,CAAC,KAAK,CAAC,UAAU;QAC/B,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;KAChG,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAChI,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,CAAC,OAAO,eAAe,MAAM,EAAE,EAAE,CAAC,CAAC;IACnI,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CAAC,KAAqB,EAAE,EAAkD;IAC9F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,KAAqB,EAAE,EAAW;IACtD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC,CAAC;IACpM,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,MAAM,CAAC,KAAqB,EAAE,EAA8D;IACzG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAChG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IACzC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAC5B,IAAI,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,kDAAkD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,MAAM,EAAE,EAAE;QAC1K,cAAc,EAAE,qBAAqB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;KACvF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;IAClG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,KAAK,MAAM,CAAC,MAAM,uBAAuB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1H,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,KAAqB,EAAE,EAAW;IAC/D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,MAAM,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACvF,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACjI,CAAC;AAED,0EAA0E;AAC1E,SAAS,iBAAiB,CAAC,KAAY,EAAE,QAA0D;IACjG,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;AAClJ,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAY,EAAE,IAAiB;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** The trierarch package's entry: its core, for the command and for whoever tests it. */
|
|
2
|
-
export { createHandleDelivery, type HandleDelivery
|
|
2
|
+
export { createHandleDelivery, type HandleDelivery } from './core/handle-delivery.js';
|
|
3
3
|
export { createRunPass, type RunPass, type RunPassDeps } from './core/run-pass.js';
|
|
4
4
|
export { createUninstall, type Uninstall } from './core/uninstall.js';
|
|
5
|
-
export { EMPTY_STATE, type Entry, type
|
|
5
|
+
export { EMPTY_STATE, type Entry, type EntryState, type KeptWorktree, type TrierarchState } from './core/entry.js';
|
|
6
6
|
export type * from './core/ports.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,aAAa,EAAkC,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAkB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAuE,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeolus-fleet/trierarch",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Aeolus trierarch: keeps the ships
|
|
3
|
+
"version": "0.19.0",
|
|
4
|
+
"description": "Aeolus trierarch: keeps the ships whose crew requests are assigned to it crewed on its machine, as a ship of the fleet with crew:run.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
@@ -27,13 +27,15 @@
|
|
|
27
27
|
],
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc --project tsconfig.build.json",
|
|
30
|
-
"typecheck": "tsc --project tsconfig.json"
|
|
30
|
+
"typecheck": "tsc --project tsconfig.json",
|
|
31
|
+
"prepack": "cp ../../LICENSE LICENSE",
|
|
32
|
+
"postpack": "rm LICENSE"
|
|
31
33
|
},
|
|
32
34
|
"dependencies": {
|
|
33
|
-
"@aeolus-fleet/common": "0.
|
|
35
|
+
"@aeolus-fleet/common": "0.19.0",
|
|
34
36
|
"zod": "^4.6.5"
|
|
35
37
|
},
|
|
36
38
|
"devDependencies": {
|
|
37
|
-
"@aeolus-fleet/core": "0.
|
|
39
|
+
"@aeolus-fleet/core": "0.19.0"
|
|
38
40
|
}
|
|
39
41
|
}
|
package/dist/core/answers.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { TrierarchState } from './entry.js';
|
|
2
|
-
import type { TrierarchSetup } from './ports.js';
|
|
3
|
-
export declare function describedOf(setup: TrierarchSetup, state: TrierarchState): Record<string, unknown>;
|
|
4
|
-
export declare function listedOf(state: TrierarchState): Record<string, unknown>;
|
package/dist/core/answers.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What describe and list answer (docs/trierarch.md, "The protocol"), from the
|
|
3
|
-
* configuration and the saved state.
|
|
4
|
-
*/
|
|
5
|
-
/** A harness's options as a JSON Schema: each option one of its value names, with its default when it has one. */
|
|
6
|
-
function optionsSchemaOf(harness) {
|
|
7
|
-
const properties = Object.fromEntries(Object.entries(harness.options).map(([name, option]) => [name, { enum: Object.keys(option.values), ...(option.default !== undefined && { default: option.default }) }]));
|
|
8
|
-
return { type: 'object', properties, additionalProperties: false };
|
|
9
|
-
}
|
|
10
|
-
export function describedOf(setup, state) {
|
|
11
|
-
const { configuration, version, adapterFlags } = setup;
|
|
12
|
-
return {
|
|
13
|
-
harnesses: Object.entries(configuration.harnesses).map(([harness, settings]) => ({
|
|
14
|
-
harness,
|
|
15
|
-
options: optionsSchemaOf(settings),
|
|
16
|
-
flags: settings.flags,
|
|
17
|
-
adapterFlags: adapterFlags[harness] ?? [],
|
|
18
|
-
})),
|
|
19
|
-
workspaces: { repositories: Object.keys(configuration.repositories), folders: Object.keys(configuration.folders) },
|
|
20
|
-
caps: configuration.caps,
|
|
21
|
-
kept: state.kept,
|
|
22
|
-
version,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export function listedOf(state) {
|
|
26
|
-
return {
|
|
27
|
-
ships: Object.values(state.entries).map((entry) => ({ shipId: entry.shipId, harness: entry.harness, state: entry.state, since: entry.since, restarts: entry.exits.length })),
|
|
28
|
-
kept: state.kept,
|
|
29
|
-
orphans: state.orphans.map((path) => ({ path })),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=answers.js.map
|
package/dist/core/answers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"answers.js","sourceRoot":"","sources":["../../src/core/answers.ts"],"names":[],"mappings":"AAKA;;;GAGG;AAEH,kHAAkH;AAClH,SAAS,eAAe,CAAC,OAAoD;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CACxK,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAqB,EAAE,KAAqB;IACtE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACvD,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/E,OAAO;YACP,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC;YAClC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;QACH,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAClH,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAqB;IAC5C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5K,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { type ShipId, type TrierarchConfiguration, type WantCommand } from '@aeolus-fleet/common';
|
|
2
|
-
import type { Entry, TrierarchState } from './entry.js';
|
|
3
|
-
import { type Result } from './shared/result.js';
|
|
4
|
-
/** Why a want was refused: the field, when one is at fault, and a reason a requester can read. */
|
|
5
|
-
export interface Refusal {
|
|
6
|
-
readonly field?: string;
|
|
7
|
-
readonly reason: string;
|
|
8
|
-
}
|
|
9
|
-
/** A want that parses and fits what the configuration offers, before the fleet is asked about its ship. */
|
|
10
|
-
export interface CheckedWant {
|
|
11
|
-
readonly want: WantCommand;
|
|
12
|
-
readonly options: Readonly<Record<string, string>>;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Checks a want against the protocol schema, the configuration (harness,
|
|
16
|
-
* repository or folder, each option and its value) and the wanted list (the
|
|
17
|
-
* ships cap, one ship per folder), naming the
|
|
18
|
-
* field at fault. Anything unknown is refused (decision 0027).
|
|
19
|
-
*/
|
|
20
|
-
export declare function checkWant(payload: unknown, context: {
|
|
21
|
-
configuration: TrierarchConfiguration;
|
|
22
|
-
state: TrierarchState;
|
|
23
|
-
}): Result<CheckedWant, Refusal>;
|
|
24
|
-
/** The field an issue names, as `options.model`, when it names one. */
|
|
25
|
-
export declare function fieldOf(path: readonly PropertyKey[] | undefined): {
|
|
26
|
-
field?: string;
|
|
27
|
-
};
|
|
28
|
-
/** A new entry for a checked want, wanted since now, for the ship that sent it. */
|
|
29
|
-
export declare function newEntry(checked: CheckedWant, context: {
|
|
30
|
-
requester: ShipId;
|
|
31
|
-
now: Date;
|
|
32
|
-
}): Entry;
|
package/dist/core/check-want.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { wantCommandSchema } from '@aeolus-fleet/common';
|
|
2
|
-
import { err, ok } from './shared/result.js';
|
|
3
|
-
/**
|
|
4
|
-
* Checks a want against the protocol schema, the configuration (harness,
|
|
5
|
-
* repository or folder, each option and its value) and the wanted list (the
|
|
6
|
-
* ships cap, one ship per folder), naming the
|
|
7
|
-
* field at fault. Anything unknown is refused (decision 0027).
|
|
8
|
-
*/
|
|
9
|
-
export function checkWant(payload, context) {
|
|
10
|
-
const parsed = wantCommandSchema.safeParse(payload);
|
|
11
|
-
if (!parsed.success) {
|
|
12
|
-
const [issue] = parsed.error.issues;
|
|
13
|
-
return err({ ...fieldOf(issue?.path), reason: issue?.message ?? 'The want does not parse' });
|
|
14
|
-
}
|
|
15
|
-
const want = parsed.data;
|
|
16
|
-
const { configuration, state } = context;
|
|
17
|
-
const harness = configuration.harnesses[want.harness];
|
|
18
|
-
if (harness === undefined) {
|
|
19
|
-
return err({ field: 'harness', reason: `This trierarch offers no harness ${want.harness}` });
|
|
20
|
-
}
|
|
21
|
-
const workspaceRefusal = refusalOfWorkspace(want, context);
|
|
22
|
-
if (workspaceRefusal !== undefined) {
|
|
23
|
-
return err(workspaceRefusal);
|
|
24
|
-
}
|
|
25
|
-
const options = {};
|
|
26
|
-
for (const [name, value] of Object.entries(want.options)) {
|
|
27
|
-
const option = harness.options[name];
|
|
28
|
-
if (option === undefined) {
|
|
29
|
-
return err({ field: `options.${name}`, reason: `${want.harness} has no option ${name}` });
|
|
30
|
-
}
|
|
31
|
-
if (typeof value !== 'string' || !(value in option.values)) {
|
|
32
|
-
return err({ field: `options.${name}`, reason: `${name} must be one of ${Object.keys(option.values).join(', ')}` });
|
|
33
|
-
}
|
|
34
|
-
options[name] = value;
|
|
35
|
-
}
|
|
36
|
-
if (Object.keys(state.entries).length >= configuration.caps.ships) {
|
|
37
|
-
return err({ reason: `This trierarch keeps at most ${String(configuration.caps.ships)} ships` });
|
|
38
|
-
}
|
|
39
|
-
return ok({ want, options });
|
|
40
|
-
}
|
|
41
|
-
function refusalOfWorkspace(want, context) {
|
|
42
|
-
const { configuration, state } = context;
|
|
43
|
-
const { workspace } = want;
|
|
44
|
-
switch (workspace.kind) {
|
|
45
|
-
case 'worktree':
|
|
46
|
-
return workspace.repository in configuration.repositories
|
|
47
|
-
? undefined
|
|
48
|
-
: { field: 'workspace.repository', reason: `This trierarch offers no repository ${workspace.repository}` };
|
|
49
|
-
case 'folder': {
|
|
50
|
-
if (!(workspace.name in configuration.folders)) {
|
|
51
|
-
return { field: 'workspace.name', reason: `This trierarch offers no folder ${workspace.name}` };
|
|
52
|
-
}
|
|
53
|
-
const crewing = Object.values(state.entries).find((entry) => entry.workspace.kind === 'folder' && entry.workspace.name === workspace.name);
|
|
54
|
-
return crewing === undefined ? undefined : { field: 'workspace.name', reason: `The folder ${workspace.name} crews ${crewing.shipId} already: one folder crews one ship` };
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/** The field an issue names, as `options.model`, when it names one. */
|
|
59
|
-
export function fieldOf(path) {
|
|
60
|
-
return path === undefined || path.length === 0 ? {} : { field: path.map(String).join('.') };
|
|
61
|
-
}
|
|
62
|
-
/** A new entry for a checked want, wanted since now, for the ship that sent it. */
|
|
63
|
-
export function newEntry(checked, context) {
|
|
64
|
-
const { want, options } = checked;
|
|
65
|
-
return {
|
|
66
|
-
shipId: want.shipId,
|
|
67
|
-
harness: want.harness,
|
|
68
|
-
workspace: want.workspace,
|
|
69
|
-
...(want.squadron !== undefined && { squadron: want.squadron }),
|
|
70
|
-
...(want.firstPrompt !== undefined && { firstPrompt: want.firstPrompt }),
|
|
71
|
-
options,
|
|
72
|
-
requester: context.requester,
|
|
73
|
-
state: 'wanted',
|
|
74
|
-
since: context.now.toISOString(),
|
|
75
|
-
exits: [],
|
|
76
|
-
hasStarted: false,
|
|
77
|
-
wake: { waiting: 0, isPending: false },
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=check-want.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-want.js","sourceRoot":"","sources":["../../src/core/check-want.ts"],"names":[],"mappings":"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"}
|