@aeolus-fleet/trierarch 0.17.2 → 0.18.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 (69) hide show
  1. package/README.md +20 -11
  2. package/dist/adapters/claude-code.d.ts +12 -6
  3. package/dist/adapters/claude-code.js +41 -41
  4. package/dist/adapters/claude-code.js.map +1 -1
  5. package/dist/adapters/codex-setup.d.ts +18 -0
  6. package/dist/adapters/codex-setup.js +106 -0
  7. package/dist/adapters/codex-setup.js.map +1 -0
  8. package/dist/adapters/codex.d.ts +33 -0
  9. package/dist/adapters/codex.js +54 -0
  10. package/dist/adapters/codex.js.map +1 -0
  11. package/dist/adapters/command-line.d.ts +15 -0
  12. package/dist/adapters/command-line.js +17 -0
  13. package/dist/adapters/command-line.js.map +1 -0
  14. package/dist/adapters/files.d.ts +9 -0
  15. package/dist/adapters/files.js +16 -0
  16. package/dist/adapters/files.js.map +1 -1
  17. package/dist/adapters/harnesses.d.ts +28 -0
  18. package/dist/adapters/harnesses.js +48 -0
  19. package/dist/adapters/harnesses.js.map +1 -0
  20. package/dist/adapters/log.d.ts +39 -0
  21. package/dist/adapters/log.js +65 -0
  22. package/dist/adapters/log.js.map +1 -0
  23. package/dist/adapters/paths.d.ts +1 -0
  24. package/dist/adapters/paths.js +1 -0
  25. package/dist/adapters/paths.js.map +1 -1
  26. package/dist/adapters/plugin-identity.d.ts +12 -0
  27. package/dist/adapters/plugin-identity.js +41 -0
  28. package/dist/adapters/plugin-identity.js.map +1 -0
  29. package/dist/adapters/plugin.d.ts +9 -4
  30. package/dist/adapters/plugin.js +19 -9
  31. package/dist/adapters/plugin.js.map +1 -1
  32. package/dist/adapters/rest-fleet.js +18 -5
  33. package/dist/adapters/rest-fleet.js.map +1 -1
  34. package/dist/adapters/service.d.ts +1 -1
  35. package/dist/adapters/service.js +19 -16
  36. package/dist/adapters/service.js.map +1 -1
  37. package/dist/adapters/style.d.ts +18 -0
  38. package/dist/adapters/style.js +39 -0
  39. package/dist/adapters/style.js.map +1 -0
  40. package/dist/adapters/tmux.d.ts +2 -1
  41. package/dist/adapters/tmux.js +5 -1
  42. package/dist/adapters/tmux.js.map +1 -1
  43. package/dist/cli/config-check.d.ts +11 -2
  44. package/dist/cli/config-check.js +26 -5
  45. package/dist/cli/config-check.js.map +1 -1
  46. package/dist/cli/init.d.ts +8 -0
  47. package/dist/cli/init.js +106 -18
  48. package/dist/cli/init.js.map +1 -1
  49. package/dist/cli/list.d.ts +3 -1
  50. package/dist/cli/list.js +17 -7
  51. package/dist/cli/list.js.map +1 -1
  52. package/dist/cli/main.js +35 -15
  53. package/dist/cli/main.js.map +1 -1
  54. package/dist/cli/prompter.d.ts +4 -0
  55. package/dist/cli/prompter.js +18 -3
  56. package/dist/cli/prompter.js.map +1 -1
  57. package/dist/cli/run.d.ts +1 -1
  58. package/dist/cli/run.js +8 -8
  59. package/dist/cli/run.js.map +1 -1
  60. package/dist/cli/status.d.ts +11 -3
  61. package/dist/cli/status.js +41 -16
  62. package/dist/cli/status.js.map +1 -1
  63. package/dist/core/answers.js +7 -2
  64. package/dist/core/answers.js.map +1 -1
  65. package/dist/core/ports.d.ts +16 -2
  66. package/dist/core/run-pass.d.ts +5 -1
  67. package/dist/core/run-pass.js +62 -10
  68. package/dist/core/run-pass.js.map +1 -1
  69. package/package.json +3 -3
package/dist/cli/main.js CHANGED
@@ -2,8 +2,11 @@ import { homedir } from 'node:os';
2
2
  import { join } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { createClaudeCodeSetup } from '../adapters/claude-code-setup.js';
5
- import { loadConfiguration, readCrewFile, TrierarchFileError } from '../adapters/files.js';
5
+ import { createCodexSetup } from '../adapters/codex-setup.js';
6
+ import { loadConfiguration, readCrewFile, readRunningFile, TrierarchFileError } from '../adapters/files.js';
6
7
  import { createJsonState } from '../adapters/json-state.js';
8
+ import { createLogger, readLogLine, renderLogLine } from '../adapters/log.js';
9
+ import { createStyle, isColourTerminal } from '../adapters/style.js';
7
10
  import { trierarchPaths } from '../adapters/paths.js';
8
11
  import { createRestFleet } from '../adapters/rest-fleet.js';
9
12
  import { runCommand } from '../adapters/run-command.js';
@@ -22,13 +25,14 @@ import { uninstallTrierarch } from './uninstall.js';
22
25
  import { PACKAGE, upgradeTrierarch } from './upgrade.js';
23
26
  export const USAGE = [
24
27
  'Usage: aeolus-trierarch <command> [--config <path>] [--json]',
28
+ ' aeolus-trierarch --version the installed version (also -v)',
25
29
  '',
26
30
  'Set up:',
27
- " init [--fleet-url <url>] [--ship-id <shp_...>] [--secret <secret>] [--yes] the whole setup: registers the trierarch's own ship, writes the configuration, answers Claude Code's one-time questions and offers to install the service. Asks for what is missing; prefer typing the secret when asked, so it stays out of your shell history",
31
+ " init [--fleet-url <url>] [--ship-id <shp_...>] [--secret <secret>] [--yes] the whole setup: registers the trierarch's own ship, writes the configuration, answers Claude Code's and Codex's one-time questions and offers to install the service. Asks for what is missing; prefer typing the secret when asked, so it stays out of your shell history",
28
32
  ' config check check the configuration and give the effective flags per harness',
29
33
  '',
30
34
  'Look:',
31
- ' status the service, the fleet and its own lease, caps in use, entries by state, kept worktrees and orphans',
35
+ ' status the version, the service, the fleet and its own lease, caps in use, entries by state, kept worktrees and orphans',
32
36
  ' list the wanted entries: ship, state, harness, workspace, since, restarts',
33
37
  ' logs [--lines <n>] [--follow] the last lines of the log, and with --follow each new one',
34
38
  '',
@@ -44,7 +48,7 @@ export const USAGE = [
44
48
  '--json answers JSON, for a ship to read.',
45
49
  ].join('\n');
46
50
  const VALUE_FLAGS = new Set(['--config', '--fleet-url', '--ship-id', '--secret', '--lines']);
47
- const SWITCHES = new Set(['--json', '--yes', '--follow', '--no-load']);
51
+ const SWITCHES = new Set(['--json', '--yes', '--follow', '--no-load', '--version']);
48
52
  const DEFAULT_LINES = 50;
49
53
  const FOLLOW_INTERVAL_MS = 500;
50
54
  /** The command words, flag values and switches of a command line; undefined for a flag it does not know. */
@@ -78,6 +82,10 @@ function parse(argv) {
78
82
  function describeService(verb, status) {
79
83
  return status.isRunning ? `The trierarch ${verb}: it runs${status.pid === undefined ? '' : ` as pid ${String(status.pid)}`}.` : `The trierarch ${verb}: it does not run.`;
80
84
  }
85
+ /** What init did, at the end of its steps: a heading, then each thing it did on its own line. */
86
+ function summaryOf(said, style) {
87
+ return [`\n${style.tone('strong', 'Summary')}`, ...said.map((line) => ` ${line}`)].join('\n');
88
+ }
81
89
  /** Runs one command line of `aeolus-trierarch`. */
82
90
  export async function main(argv, env = process.env) {
83
91
  const parsed = parse(argv);
@@ -86,6 +94,12 @@ export async function main(argv, env = process.env) {
86
94
  }
87
95
  const { words, values, switches } = parsed;
88
96
  const isJson = switches.has('--json');
97
+ // Colour only where a person reads it: --json and a pipe get the plain words.
98
+ const style = createStyle({ isColour: !isJson && isColourTerminal(env, process.stdout.isTTY) });
99
+ if ((switches.has('--version') && words.length === 0) || (words.length === 1 && words[0] === '-v')) {
100
+ const version = runningVersion();
101
+ return { output: isJson ? JSON.stringify({ version }) : version, code: 0 };
102
+ }
89
103
  const config = values.get('--config') ?? env.AEOLUS_TRIERARCH_CONFIG;
90
104
  const homeDirectory = env.HOME ?? homedir();
91
105
  const paths = trierarchPaths({ homeDirectory, ...(config !== undefined && { config }) });
@@ -115,18 +129,21 @@ export async function main(argv, env = process.env) {
115
129
  const fleet = createRestFleet(crew);
116
130
  const report = await inspectStatus({
117
131
  configuration,
132
+ version: runningVersion(),
133
+ running: () => readRunningFile(paths.running),
118
134
  crew,
119
135
  service: serviceAt(),
120
136
  lease: leaseFrom(() => fleet.whoami()),
121
137
  processes: createTmux(),
122
138
  state: createJsonState(paths.state),
123
139
  });
124
- return { data: report, text: describeStatus(report) };
140
+ return { data: report, text: describeStatus(report, style) };
125
141
  };
126
142
  const commands = {
127
143
  init: async () => {
128
144
  // Questions go to stderr under --json, so stdout holds the JSON alone.
129
- const prompter = createTerminalPrompter({ input: process.stdin, output: isJson ? process.stderr : process.stdout });
145
+ const output = isJson ? process.stderr : process.stdout;
146
+ const prompter = createTerminalPrompter({ input: process.stdin, output, style: createStyle({ isColour: isColourTerminal(env, output.isTTY) }) });
130
147
  try {
131
148
  const fleetUrl = values.get('--fleet-url');
132
149
  const shipId = values.get('--ship-id');
@@ -138,9 +155,11 @@ export async function main(argv, env = process.env) {
138
155
  prompter,
139
156
  fleetAt: (url) => createRestFleet({ fleetUrl: url, crewToken: '' }),
140
157
  claudeCode: createClaudeCodeSetup({ homeDirectory }),
158
+ codex: createCodexSetup(),
159
+ isCodexInstalled: (await runCommand('sh', { args: ['-c', 'command -v codex'] })).status === 0,
141
160
  service: serviceAt(),
142
161
  });
143
- return { data: report, text: report.said.join('\n') };
162
+ return { data: report, text: summaryOf(report.said, style) };
144
163
  }
145
164
  finally {
146
165
  prompter.close();
@@ -170,7 +189,7 @@ export async function main(argv, env = process.env) {
170
189
  },
171
190
  list: async () => {
172
191
  const entries = await inspectList(createJsonState(paths.state));
173
- return { data: entries, text: describeList(entries) };
192
+ return { data: entries, text: describeList(entries, style) };
174
193
  },
175
194
  logs: async () => {
176
195
  const file = join(paths.logs, 'trierarch.log');
@@ -180,10 +199,10 @@ export async function main(argv, env = process.env) {
180
199
  }
181
200
  const tail = await tailLog({ file, lines });
182
201
  if (!switches.has('--follow')) {
183
- return { data: { file, lines: tail }, text: tail.length === 0 ? `No log lines yet in ${file}.` : tail.join('\n') };
202
+ return { data: { file, lines: tail.map(readLogLine) }, text: tail.length === 0 ? `No log lines yet in ${file}.` : tail.map((line) => renderLogLine(line, style)).join('\n') };
184
203
  }
185
204
  const write = (line) => {
186
- process.stdout.write(`${isJson ? JSON.stringify({ line }) : line}\n`);
205
+ process.stdout.write(`${isJson ? JSON.stringify(readLogLine(line)) : renderLogLine(line, style)}\n`);
187
206
  };
188
207
  tail.forEach(write);
189
208
  await followLog({ file, signal: untilStopped(), intervalMs: FOLLOW_INTERVAL_MS, write });
@@ -218,10 +237,11 @@ export async function main(argv, env = process.env) {
218
237
  return { data: report, text: report.said.join('\n') };
219
238
  },
220
239
  run: async () => {
221
- const logger = {
222
- info: (message) => process.stdout.write(`${new Date().toISOString()} ${message}\n`),
223
- warn: (message) => process.stderr.write(`${new Date().toISOString()} ${message}\n`),
224
- };
240
+ const logger = createLogger({
241
+ out: { write: (text) => process.stdout.write(text), isTerminal: process.stdout.isTTY },
242
+ err: { write: (text) => process.stderr.write(text), isTerminal: process.stderr.isTTY },
243
+ now: () => new Date(),
244
+ });
225
245
  await runTrierarch({ paths, homeDirectory, env, signal: untilStopped(), logger });
226
246
  return { data: { stopped: true }, text: 'aeolus-trierarch stopped.' };
227
247
  },
@@ -238,7 +258,7 @@ export async function main(argv, env = process.env) {
238
258
  catch (error) {
239
259
  // A refusal, a file it cannot use, or a program that failed (launchctl, systemctl): said, not thrown at the operator.
240
260
  const message = error instanceof Error ? error.message : String(error);
241
- return { output: isJson ? JSON.stringify({ error: message }) : message, code: 1 };
261
+ return { output: isJson ? JSON.stringify({ error: message }) : style.tone('bad', message), code: 1 };
242
262
  }
243
263
  }
244
264
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type Style } from '../adapters/style.js';
1
2
  /**
2
3
  * How init asks the operator: a line of text, a secret never shown as it is
3
4
  * typed, yes or no. Node's readline, no prompt library: the questions are
@@ -13,6 +14,8 @@ export interface Prompter {
13
14
  isDefault: boolean;
14
15
  }): Promise<boolean>;
15
16
  say(message: string): void;
17
+ /** Starts a step of the flow: its title is shown before the step's first question, and not at all for a step that asks nothing. */
18
+ step(title: string): void;
16
19
  }
17
20
  export interface TerminalPrompter extends Prompter {
18
21
  close(): void;
@@ -22,4 +25,5 @@ export declare function createTerminalPrompter(at: {
22
25
  output: NodeJS.WritableStream & {
23
26
  isTTY?: boolean;
24
27
  };
28
+ style?: Style;
25
29
  }): TerminalPrompter;
@@ -1,9 +1,19 @@
1
1
  import { createInterface } from 'node:readline';
2
2
  import { Writable } from 'node:stream';
3
+ import { PLAIN } from '../adapters/style.js';
3
4
  const YES = new Set(['y', 'yes']);
4
5
  const NO = new Set(['n', 'no']);
5
6
  export function createTerminalPrompter(at) {
6
7
  const { input, output } = at;
8
+ const style = at.style ?? PLAIN;
9
+ // The title of the step whose first question is still to come.
10
+ let pendingStep;
11
+ const showStep = () => {
12
+ if (pendingStep !== undefined) {
13
+ output.write(`\n${style.tone('strong', pendingStep)}\n`);
14
+ pendingStep = undefined;
15
+ }
16
+ };
7
17
  // What readline echoes goes through here, so a secret's keys can be kept off the screen.
8
18
  let isMuted = false;
9
19
  const echo = new Writable({
@@ -38,6 +48,7 @@ export function createTerminalPrompter(at) {
38
48
  }
39
49
  });
40
50
  const ask = async (question) => {
51
+ showStep();
41
52
  output.write(question);
42
53
  const line = waiting.shift();
43
54
  if (line !== undefined) {
@@ -57,10 +68,11 @@ export function createTerminalPrompter(at) {
57
68
  };
58
69
  const prompter = {
59
70
  text: async (question, options = {}) => {
60
- const answer = (await ask(`${question} ${options.default === undefined ? '' : `(${options.default}) `}`)).trim();
71
+ const answer = (await ask(`${question} ${options.default === undefined ? '' : `${style.tone('quiet', `(${options.default})`)} `}`)).trim();
61
72
  return answer === '' ? (options.default ?? '') : answer;
62
73
  },
63
74
  secret: async (question) => {
75
+ showStep();
64
76
  output.write(`${question} `);
65
77
  isMuted = true;
66
78
  try {
@@ -73,7 +85,7 @@ export function createTerminalPrompter(at) {
73
85
  },
74
86
  confirm: async (question, { isDefault }) => {
75
87
  for (;;) {
76
- const answer = (await ask(`${question} ${isDefault ? '[Y/n]' : '[y/N]'} `)).trim().toLowerCase();
88
+ const answer = (await ask(`${question} ${style.tone('quiet', isDefault ? '[Y/n]' : '[y/N]')} `)).trim().toLowerCase();
77
89
  if (answer === '') {
78
90
  return isDefault;
79
91
  }
@@ -84,7 +96,10 @@ export function createTerminalPrompter(at) {
84
96
  }
85
97
  },
86
98
  say: (message) => {
87
- output.write(`${message}\n`);
99
+ output.write(`${style.tone('busy', message)}\n`);
100
+ },
101
+ step: (title) => {
102
+ pendingStep = title;
88
103
  },
89
104
  close: () => {
90
105
  lines.close();
@@ -1 +1 @@
1
- {"version":3,"file":"prompter.js","sourceRoot":"","sources":["../../src/cli/prompter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompter.js","sourceRoot":"","sources":["../../src/cli/prompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAc,MAAM,sBAAsB,CAAC;AAqBzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAClC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAEhC,MAAM,UAAU,sBAAsB,CAAC,EAAwG;IAC7I,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC;IAChC,+DAA+D;IAC/D,IAAI,WAA+B,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACzD,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IACF,yFAAyF;IACzF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACxB,MAAM,CAAC,MAAM,EAAE,IAAI;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;oBAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;wBAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC;KACF,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;IACxF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAA0E,EAAE,CAAC;IAC1F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,KAAK,EAAE,QAAgB,EAAmB,EAAE;QACtD,QAAQ,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAqB;QACjC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3I,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACzB,QAAQ,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,CAAC;oBAAS,CAAC;gBACT,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YACzC,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtH,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;oBAClB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACd,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/cli/run.d.ts CHANGED
@@ -28,6 +28,6 @@ export declare function loop(at: {
28
28
  handle: (delivery: Delivery) => Promise<void>;
29
29
  pass: () => Promise<void>;
30
30
  signal: AbortSignal;
31
- logger: Logger;
31
+ logger: Pick<Logger, 'warn'>;
32
32
  intervalMs: number;
33
33
  }): Promise<void>;
package/dist/cli/run.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { setTimeout as wait } from 'node:timers/promises';
2
- import { createClaudeCodeHarness } from '../adapters/claude-code.js';
3
- import { loadConfiguration, readCrewFile } from '../adapters/files.js';
2
+ import { loadConfiguration, readCrewFile, writeRunningFile } from '../adapters/files.js';
4
3
  import { createGitWorkspace } from '../adapters/git-workspace.js';
4
+ import { adapterFlagsOf, createHarnesses } from '../adapters/harnesses.js';
5
5
  import { createJsonState } from '../adapters/json-state.js';
6
- import { findAeolusPlugin } from '../adapters/plugin.js';
7
6
  import { createRestFleet } from '../adapters/rest-fleet.js';
8
7
  import { createTmux } from '../adapters/tmux.js';
9
8
  import { runningVersion } from '../adapters/version.js';
@@ -21,17 +20,18 @@ export async function runTrierarch(input) {
21
20
  const { paths, homeDirectory, env, signal, logger } = input;
22
21
  const configuration = await loadConfiguration(paths.config);
23
22
  const crew = await readCrewFile(paths.crewToken);
24
- const plugin = await findAeolusPlugin({ homeDirectory, env });
25
23
  const fleet = createRestFleet(crew);
26
24
  const tmux = createTmux();
27
- const harness = createClaudeCodeHarness({ configuration, plugin, sessions: tmux });
25
+ const { harnesses, plugins } = await createHarnesses({ configuration, homeDirectory, env, sessions: tmux });
28
26
  const workspace = createGitWorkspace({ configuration, root: configuration.worktreeRoot ?? paths.worktrees });
29
27
  const state = createJsonState(paths.state);
30
28
  const clock = { now: () => new Date() };
31
- const setup = { configuration, version: runningVersion() };
29
+ const setup = { configuration, version: runningVersion(), adapterFlags: adapterFlagsOf(configuration) };
32
30
  const handle = createHandleDelivery({ fleet, workspace, state, setup, clock, logger });
33
- const pass = createRunPass({ fleet, harness, processes: tmux, workspace, state, setup, clock, logger });
34
- logger.info(`aeolus-trierarch ${setup.version} runs for ${crew.fleetUrl}, with the aeolus plugin at ${plugin.root}`);
31
+ const pass = createRunPass({ fleet, harnesses, processes: tmux, workspace, state, setup, clock, logger });
32
+ await writeRunningFile(paths.running, { pid: process.pid, version: setup.version });
33
+ const found = Object.entries(plugins).map(([harness, plugin]) => `${harness} at ${plugin.root}`);
34
+ logger.info(`aeolus-trierarch ${setup.version} runs for ${crew.fleetUrl}, with the aeolus plugin for ${found.join(' and ') || 'no harness'}`);
35
35
  await loop({ receive: (stop) => fleet.receive(stop), handle, pass, signal, logger, intervalMs: PASS_INTERVAL_MS });
36
36
  }
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import type { TrierarchConfiguration, TrierarchEntryState } from '@aeolus-fleet/common';
2
- import type { CrewFile } from '../adapters/files.js';
1
+ import { type TrierarchConfiguration, type TrierarchEntryState } from '@aeolus-fleet/common';
2
+ import type { CrewFile, RunningFile } from '../adapters/files.js';
3
3
  import type { Service, ServiceStatus } from '../adapters/service.js';
4
4
  import type { KeptWorktree } from '../core/entry.js';
5
5
  import type { ProcessPort, StatePort } from '../core/ports.js';
6
+ import { type Style } from '../adapters/style.js';
6
7
  /**
7
8
  * `aeolus-trierarch status`: how the trierarch stands on this machine, from
8
9
  * what is on it. The service and its process, the fleet and the trierarch's
@@ -12,6 +13,10 @@ import type { ProcessPort, StatePort } from '../core/ports.js';
12
13
  /** The trierarch's own lease: whoami answers while it holds, the fleet refuses the crew token once it ended. */
13
14
  export type Lease = 'valid' | 'ended' | 'unreachable';
14
15
  export interface StatusReport {
16
+ /** The installed version: what the command runs, and the service once it started again after an upgrade. */
17
+ readonly version: string;
18
+ /** The version the running service runs, as it said when it started; none when it does not run or did not say. */
19
+ readonly runningVersion?: string;
15
20
  readonly service: ServiceStatus;
16
21
  readonly fleet: {
17
22
  readonly url: string;
@@ -35,10 +40,13 @@ export interface StatusReport {
35
40
  export declare function leaseFrom(whoami: () => Promise<unknown>): () => Promise<Lease>;
36
41
  export declare function inspectStatus(at: {
37
42
  configuration: TrierarchConfiguration;
43
+ version: string;
44
+ running: () => Promise<RunningFile | undefined>;
38
45
  crew: CrewFile;
39
46
  service: Pick<Service, 'status'>;
40
47
  lease: () => Promise<Lease>;
41
48
  processes: ProcessPort;
42
49
  state: StatePort;
43
50
  }): Promise<StatusReport>;
44
- export declare function describeStatus(report: StatusReport): string;
51
+ /** Each line its label and how it stands; where the style colours, the label strong and each state in its tone. */
52
+ export declare function describeStatus(report: StatusReport, style?: Style): string;
@@ -1,4 +1,6 @@
1
+ import { trierarchEntryStateSchema } from '@aeolus-fleet/common';
1
2
  import { FleetRefusal } from '../adapters/rest-fleet.js';
3
+ import { PLAIN, stateTone } from '../adapters/style.js';
2
4
  export function leaseFrom(whoami) {
3
5
  return async () => {
4
6
  try {
@@ -14,12 +16,16 @@ export function leaseFrom(whoami) {
14
16
  };
15
17
  }
16
18
  export async function inspectStatus(at) {
17
- const [service, lease, sessions, state] = await Promise.all([at.service.status(), at.lease(), at.processes.list(), at.state.load()]);
19
+ const [service, lease, sessions, state, running] = await Promise.all([at.service.status(), at.lease(), at.processes.list(), at.state.load(), at.running()]);
20
+ // Only the service's own process counts: a file left by an earlier process, or by a `run` outside the service, says nothing of it.
21
+ const runningVersion = service.isRunning && running !== undefined && running.pid === service.pid ? running.version : undefined;
18
22
  const entries = { wanted: 0, crewing: 0, running: 0, restarting: 0, crashed: 0, releasing: 0 };
19
23
  for (const entry of Object.values(state.entries)) {
20
24
  entries[entry.state] += 1;
21
25
  }
22
26
  return {
27
+ version: at.version,
28
+ ...(runningVersion !== undefined && { runningVersion }),
23
29
  service,
24
30
  fleet: { url: at.crew.fleetUrl, ...(at.crew.shipId !== undefined && { shipId: at.crew.shipId }), lease },
25
31
  caps: {
@@ -31,35 +37,54 @@ export async function inspectStatus(at) {
31
37
  orphans: state.orphans,
32
38
  };
33
39
  }
34
- function describeService(service) {
40
+ function describeService(service, style) {
35
41
  if (!service.isInstalled) {
36
- return 'not installed (aeolus-trierarch install)';
42
+ return style.tone('bad', 'not installed (aeolus-trierarch install)');
37
43
  }
38
44
  if (!service.isRunning) {
39
- return 'installed, not running (aeolus-trierarch start)';
45
+ return style.tone('busy', 'installed, not running (aeolus-trierarch start)');
40
46
  }
41
- return ['running', ...(service.pid === undefined ? [] : [`pid ${String(service.pid)}`]), ...(service.since === undefined ? [] : [`since ${service.since}`])].join(', ');
47
+ return [style.tone('good', 'running'), ...(service.pid === undefined ? [] : [`pid ${String(service.pid)}`]), ...(service.since === undefined ? [] : [`since ${service.since}`])].join(', ');
42
48
  }
43
- function describeFleet(fleet) {
49
+ function describeFleet(fleet, style) {
44
50
  const ship = fleet.shipId ?? 'its ship';
45
51
  switch (fleet.lease) {
46
52
  case 'valid':
47
- return `${fleet.url}, the lease of ${ship} is valid`;
53
+ return `${fleet.url}, ${style.tone('good', `the lease of ${ship} is valid`)}`;
48
54
  case 'ended':
49
- return `${fleet.url}, the lease of ${ship} ended: its ship was released or retired, so it crews nothing`;
55
+ return `${fleet.url}, ${style.tone('bad', `the lease of ${ship} ended`)}: its ship was released or retired, so it crews nothing`;
50
56
  case 'unreachable':
51
- return `${fleet.url} cannot be reached`;
57
+ return `${fleet.url} ${style.tone('bad', 'cannot be reached')}`;
52
58
  }
53
59
  }
54
- export function describeStatus(report) {
60
+ const RESTART = 'aeolus-trierarch restart';
61
+ /** The installed version, and where the running service runs another, what to do about it, in the busy tone. */
62
+ function describeVersion(report, style) {
63
+ if (!report.service.isRunning || report.runningVersion === report.version) {
64
+ return report.version;
65
+ }
66
+ if (report.runningVersion === undefined) {
67
+ return style.tone('busy', `${report.version} installed, the running service did not say its version, so it started before ${report.version}: restart it to run the installed one (${RESTART})`);
68
+ }
69
+ return style.tone('busy', `${report.version} installed, ${report.runningVersion} running: restart the service to run the installed one (${RESTART})`);
70
+ }
71
+ /** Each line its label and how it stands; where the style colours, the label strong and each state in its tone. */
72
+ export function describeStatus(report, style = PLAIN) {
55
73
  const counted = Object.entries(report.entries).filter(([, count]) => count > 0);
74
+ const line = (label, text) => `${style.tone('strong', `${label}:`)} ${text}`;
56
75
  return [
57
- `Service: ${describeService(report.service)}`,
58
- `Fleet: ${describeFleet(report.fleet)}`,
59
- `Caps: ${String(report.caps.ships.used)} of ${String(report.caps.ships.cap)} ships on the list, ${String(report.caps.running.used)} of ${String(report.caps.running.cap)} sessions running`,
60
- `Entries: ${counted.length === 0 ? 'none' : counted.map(([state, count]) => `${state} ${String(count)}`).join(', ')}`,
61
- `Kept worktrees: ${report.kept.length === 0 ? 'none' : report.kept.map((kept) => `${kept.path} (${kept.shipId})`).join(', ')}`,
62
- `Orphans: ${report.orphans.length === 0 ? 'none' : report.orphans.join(', ')}`,
76
+ line('Version', describeVersion(report, style)),
77
+ line('Service', describeService(report.service, style)),
78
+ line('Fleet', describeFleet(report.fleet, style)),
79
+ line('Caps', `${String(report.caps.ships.used)} of ${String(report.caps.ships.cap)} ships on the list, ${String(report.caps.running.used)} of ${String(report.caps.running.cap)} sessions running`),
80
+ line('Entries', counted.length === 0 ? 'none' : counted.map(([state, count]) => style.tone(stateToneOf(state), `${state} ${String(count)}`)).join(', ')),
81
+ line('Kept worktrees', report.kept.length === 0 ? 'none' : style.tone('busy', report.kept.map((kept) => `${kept.path} (${kept.shipId})`).join(', '))),
82
+ line('Orphans', report.orphans.length === 0 ? 'none' : style.tone('busy', report.orphans.join(', '))),
63
83
  ].join('\n');
64
84
  }
85
+ /** The tone of a state counted under entries, as its name is a key of the report. */
86
+ function stateToneOf(state) {
87
+ const parsed = trierarchEntryStateSchema.safeParse(state);
88
+ return parsed.success ? stateTone(parsed.data) : 'quiet';
89
+ }
65
90
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,14 @@ function optionsSchemaOf(harness) {
8
8
  return { type: 'object', properties, additionalProperties: false };
9
9
  }
10
10
  export function describedOf(setup, state) {
11
- const { configuration, version } = setup;
11
+ const { configuration, version, adapterFlags } = setup;
12
12
  return {
13
- harnesses: Object.entries(configuration.harnesses).map(([harness, settings]) => ({ harness, options: optionsSchemaOf(settings), flags: settings.flags })),
13
+ harnesses: Object.entries(configuration.harnesses).map(([harness, settings]) => ({
14
+ harness,
15
+ options: optionsSchemaOf(settings),
16
+ flags: settings.flags,
17
+ adapterFlags: adapterFlags[harness] ?? [],
18
+ })),
14
19
  workspaces: { repositories: Object.keys(configuration.repositories), folders: Object.keys(configuration.folders) },
15
20
  caps: configuration.caps,
16
21
  kept: state.kept,
@@ -1 +1 @@
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,GAAG,KAAK,CAAC;IACzC,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,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACzJ,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
+ {"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,5 +1,6 @@
1
- import type { ShipId, TrierarchConfiguration, TrierarchWorkspace } from '@aeolus-fleet/common';
1
+ import type { ShipId, TrierarchAdapterFlag, TrierarchConfiguration, TrierarchWorkspace } from '@aeolus-fleet/common';
2
2
  import type { Outgoing, TrierarchState } from './entry.js';
3
+ import type { Action } from './reconciler.js';
3
4
  /**
4
5
  * The trierarch's ports (docs/architecture.md, "The trierarch"). Adapters
5
6
  * implement them in D2b: REST for the fleet, tmux for processes, git worktree
@@ -130,11 +131,24 @@ export interface StatePort {
130
131
  load(): Promise<TrierarchState>;
131
132
  save(state: TrierarchState): Promise<void>;
132
133
  }
134
+ /** What the loop did for a ship, and how it came out: one line of the trierarch's log (aeolus-trierarch logs). */
135
+ export interface LoggedAction {
136
+ readonly time: Date;
137
+ readonly shipId: ShipId;
138
+ /** Known once the ship was first crewed. */
139
+ readonly shipName?: string;
140
+ readonly action: Exclude<Action['kind'], 'notify'>;
141
+ readonly outcome: string;
142
+ /** For a failure: what happens next, and where to look. */
143
+ readonly next?: string;
144
+ }
133
145
  export interface Logger {
134
146
  warn(message: string): void;
147
+ action(logged: LoggedAction): void;
135
148
  }
136
- /** What describe answers beside the configuration: the trierarch's version. */
149
+ /** What describe answers beside the configuration: the trierarch's version, and the flags each harness's adapter adds itself. */
137
150
  export interface TrierarchSetup {
138
151
  readonly configuration: TrierarchConfiguration;
139
152
  readonly version: string;
153
+ readonly adapterFlags: Readonly<Record<string, readonly TrierarchAdapterFlag[]>>;
140
154
  }
@@ -5,11 +5,15 @@ import type { Clock } from './shared/clock.js';
5
5
  * what runs, lets the Reconciler decide, saves the state the actions start
6
6
  * from (an entry crewing is saved before the trierarch registers), then
7
7
  * carries the actions out, saving after each one that changes the list.
8
+ * Each action is logged with its ship and outcome. A failed one is logged
9
+ * with what happens next, and the pass ends there: the next pass starts from
10
+ * the saved state.
8
11
  */
9
12
  export type RunPass = () => Promise<void>;
10
13
  export interface RunPassDeps {
11
14
  fleet: FleetPort;
12
- harness: HarnessPort;
15
+ /** One adapter per harness the configuration offers, by its name. */
16
+ harnesses: Readonly<Record<string, HarnessPort>>;
13
17
  processes: ProcessPort;
14
18
  workspace: WorkspacePort;
15
19
  state: StatePort;