@aeolus-fleet/trierarch 0.26.1 → 0.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/adapters/caller-check.d.ts +32 -0
  2. package/dist/adapters/caller-check.js +151 -0
  3. package/dist/adapters/caller-check.js.map +1 -0
  4. package/dist/adapters/claude-code.d.ts +1 -1
  5. package/dist/adapters/claude-code.js +13 -1
  6. package/dist/adapters/claude-code.js.map +1 -1
  7. package/dist/adapters/codex.d.ts +1 -1
  8. package/dist/adapters/codex.js +13 -1
  9. package/dist/adapters/codex.js.map +1 -1
  10. package/dist/adapters/container.d.ts +7 -3
  11. package/dist/adapters/container.js +23 -3
  12. package/dist/adapters/container.js.map +1 -1
  13. package/dist/adapters/core-version.d.ts +5 -0
  14. package/dist/adapters/core-version.js +12 -0
  15. package/dist/adapters/core-version.js.map +1 -0
  16. package/dist/adapters/harnesses.d.ts +1 -1
  17. package/dist/adapters/held-command.d.ts +13 -0
  18. package/dist/adapters/held-command.js +16 -0
  19. package/dist/adapters/held-command.js.map +1 -0
  20. package/dist/adapters/json-state.js +1 -0
  21. package/dist/adapters/json-state.js.map +1 -1
  22. package/dist/adapters/paths.d.ts +2 -0
  23. package/dist/adapters/paths.js +1 -0
  24. package/dist/adapters/paths.js.map +1 -1
  25. package/dist/adapters/plugin-identity.d.ts +6 -1
  26. package/dist/adapters/plugin-identity.js +15 -15
  27. package/dist/adapters/plugin-identity.js.map +1 -1
  28. package/dist/adapters/rest-fleet.js +27 -4
  29. package/dist/adapters/rest-fleet.js.map +1 -1
  30. package/dist/adapters/runtime-adapters.d.ts +2 -1
  31. package/dist/adapters/runtime-adapters.js +1 -1
  32. package/dist/adapters/runtime-adapters.js.map +1 -1
  33. package/dist/adapters/ship-sockets.d.ts +32 -0
  34. package/dist/adapters/ship-sockets.js +147 -0
  35. package/dist/adapters/ship-sockets.js.map +1 -0
  36. package/dist/adapters/stop-turn.d.ts +13 -0
  37. package/dist/adapters/stop-turn.js +26 -0
  38. package/dist/adapters/stop-turn.js.map +1 -0
  39. package/dist/adapters/tmux.d.ts +15 -1
  40. package/dist/adapters/tmux.js +50 -2
  41. package/dist/adapters/tmux.js.map +1 -1
  42. package/dist/cli/run.js +22 -2
  43. package/dist/cli/run.js.map +1 -1
  44. package/dist/core/argo-reports.d.ts +13 -2
  45. package/dist/core/argo-reports.js +9 -1
  46. package/dist/core/argo-reports.js.map +1 -1
  47. package/dist/core/entry.d.ts +5 -2
  48. package/dist/core/entry.js.map +1 -1
  49. package/dist/core/ports.d.ts +56 -8
  50. package/dist/core/reconciler.d.ts +17 -5
  51. package/dist/core/reconciler.js +25 -9
  52. package/dist/core/reconciler.js.map +1 -1
  53. package/dist/core/run-pass.d.ts +3 -1
  54. package/dist/core/run-pass.js +77 -18
  55. package/dist/core/run-pass.js.map +1 -1
  56. package/package.json +3 -3
@@ -0,0 +1,32 @@
1
+ import type { Socket } from 'node:net';
2
+ import type { ShipId } from '@aeolus-fleet/common';
3
+ import { runCommand } from './run-command.js';
4
+ /**
5
+ * Who may call a ship's socket (decision 0026): a process of the ship's own
6
+ * session, under its session's root (its pane, or its container), or of the
7
+ * trierarch itself, as its aeolus-push.sh. Anything else is refused, another
8
+ * ship's session among them, and so is a call whose caller does not resolve.
9
+ *
10
+ * On Linux the caller is the peer of the connection: `ss` names the inode of
11
+ * the socket at its other end, and the processes holding that inode are read
12
+ * from /proc. Linux makes the accepted end of a connection in the connecting
13
+ * side's network namespace, so a call from the ship's container is looked up
14
+ * in that container's namespaces too, entered through the session's root, and
15
+ * never in another ship's. On macOS `lsof` names each Unix socket's address
16
+ * and, for a connected one, `->` its peer's: the callers are the processes
17
+ * whose socket points at this one's, and `ps` names their parents. Each holder
18
+ * must sit under one of the roots. Elsewhere no peer resolves, so every call
19
+ * is refused.
20
+ */
21
+ export type CallerCheck = (shipId: ShipId, connection: Socket) => Promise<boolean>;
22
+ /** The process a ship's session runs under on this machine, as its session runtime knows it; none while it runs no session. */
23
+ export interface SessionRoots {
24
+ sessionRootOf(shipId: ShipId): Promise<number | undefined>;
25
+ }
26
+ export declare function createCallerCheck(options: {
27
+ platform: string;
28
+ /** The process the ship's session runs under on this machine, when it runs. */
29
+ sessionRootOf: (shipId: ShipId) => Promise<number | undefined>;
30
+ ownPid?: number;
31
+ run?: typeof runCommand;
32
+ }): CallerCheck;
@@ -0,0 +1,151 @@
1
+ import { readdir, readFile, readlink } from 'node:fs/promises';
2
+ import { runCommand } from './run-command.js';
3
+ const SOCKET_LINK = /^socket:\[(\d+)\]$/;
4
+ /** Deeper than any real process tree: a walk that goes on longer is not trusted. */
5
+ const MOST_ANCESTORS = 4096;
6
+ /** The descriptor of a connection, which Node keeps on its handle without documenting it. */
7
+ function descriptorOf(connection) {
8
+ const handle = Reflect.get(connection, '_handle');
9
+ const fd = typeof handle === 'object' && handle !== null ? Reflect.get(handle, 'fd') : undefined;
10
+ return typeof fd === 'number' && fd >= 0 ? fd : undefined;
11
+ }
12
+ /** The namespace of that kind a process is in, as /proc names it, such as `net:[4026531840]`. */
13
+ const namespaceOf = (pid, kind) => readlink(`/proc/${String(pid)}/ns/${kind}`).catch(() => undefined);
14
+ /**
15
+ * The Unix sockets `ss` lists: this process's network namespace's, then, when
16
+ * the root's is another, as a container's is, that one's, entered with its user
17
+ * namespace, which the trierarch's user owns for a rootless container.
18
+ */
19
+ async function listings(at) {
20
+ const { root, run } = at;
21
+ const own = await run('ss', { args: ['-xH'] });
22
+ const listed = [own.status === 0 ? own.stdout : ''];
23
+ if (root !== undefined && (await namespaceOf(root, 'net')) !== (await namespaceOf('self', 'net'))) {
24
+ const user = (await namespaceOf(root, 'user')) === (await namespaceOf('self', 'user')) ? [] : ['--user', '--preserve-credentials'];
25
+ const theirs = await run('nsenter', { args: ['--target', String(root), '--net', ...user, 'ss', '-xH'] });
26
+ listed.push(theirs.status === 0 ? theirs.stdout : '');
27
+ }
28
+ return listed;
29
+ }
30
+ /** The inode of the socket at the other end of this process's socket of that inode, as `ss` lists it: `... <local inode> <peer> <peer inode>`. */
31
+ function peerInodeIn(listed, inode) {
32
+ for (const line of listed.join('\n').split('\n')) {
33
+ const fields = line.trim().split(/\s+/);
34
+ if (fields.at(-3) === inode) {
35
+ return fields.at(-1);
36
+ }
37
+ }
38
+ return undefined;
39
+ }
40
+ /** Every process holding the socket of that inode; one this user cannot read holds none. */
41
+ async function holdersOfInode(inode) {
42
+ const link = `socket:[${inode}]`;
43
+ const pids = (await readdir('/proc')).filter((entry) => /^\d+$/.test(entry));
44
+ const holding = await Promise.all(pids.map(async (pid) => {
45
+ const fds = await readdir(`/proc/${pid}/fd`).catch(() => []);
46
+ for (const fd of fds) {
47
+ if ((await readlink(`/proc/${pid}/fd/${fd}`).catch(() => '')) === link) {
48
+ return [Number(pid)];
49
+ }
50
+ }
51
+ return [];
52
+ }));
53
+ return holding.flat();
54
+ }
55
+ function linuxPeers(run) {
56
+ return {
57
+ holdersOf: async ({ fd, root }) => {
58
+ const inode = SOCKET_LINK.exec(await readlink(`/proc/self/fd/${String(fd)}`))?.[1];
59
+ const peer = inode === undefined ? undefined : peerInodeIn(await listings({ root, run }), inode);
60
+ return peer === undefined ? [] : holdersOfInode(peer);
61
+ },
62
+ // From its stat line, whose name may hold spaces and parentheses: the fields after its last `)`.
63
+ parentOf: async (pid) => {
64
+ const stat = await readFile(`/proc/${String(pid)}/stat`, 'utf8').catch(() => '');
65
+ const parent = Number(stat.slice(stat.lastIndexOf(')') + 1).trim().split(' ')[1]);
66
+ return Number.isInteger(parent) ? parent : undefined;
67
+ },
68
+ };
69
+ }
70
+ /** `lsof -F pfdDn` output: a `p` line per process, then an `f` line per file and that file's fields, one per line. */
71
+ function unixSocketsIn(listed) {
72
+ const sockets = [];
73
+ let pid;
74
+ let current;
75
+ for (const line of listed.split('\n')) {
76
+ const field = line.slice(0, 1);
77
+ const value = line.slice(1);
78
+ if (field === 'p') {
79
+ pid = Number(value);
80
+ current = undefined;
81
+ }
82
+ else if (field === 'f' && pid !== undefined) {
83
+ current = { pid, fd: value };
84
+ sockets.push(current);
85
+ }
86
+ else if (current !== undefined && (field === 'd' || field === 'D') && value.startsWith('0x')) {
87
+ current.address = value;
88
+ }
89
+ else if (current !== undefined && field === 'n') {
90
+ current.name = value;
91
+ }
92
+ }
93
+ return sockets;
94
+ }
95
+ function darwinPeers(run, ownPid) {
96
+ return {
97
+ holdersOf: async ({ fd }) => {
98
+ // lsof answers 1 when it could not read some process, and still lists the rest.
99
+ const sockets = unixSocketsIn((await run('lsof', { args: ['-U', '-n', '-P', '-F', 'pfdDn'] })).stdout);
100
+ const own = sockets.find((socket) => socket.pid === ownPid && socket.fd === String(fd));
101
+ const address = own?.address;
102
+ if (address === undefined) {
103
+ return [];
104
+ }
105
+ const peer = own?.name?.startsWith('->') === true ? own.name.slice(2) : undefined;
106
+ const holders = sockets.filter((socket) => socket !== own && (socket.name === `->${address}` || (peer !== undefined && socket.address === peer)));
107
+ return [...new Set(holders.map((socket) => socket.pid))];
108
+ },
109
+ parentOf: async (pid) => {
110
+ const shown = await run('ps', { args: ['-o', 'ppid=', '-p', String(pid)] });
111
+ const parent = Number(shown.stdout.trim());
112
+ return shown.status === 0 && Number.isInteger(parent) ? parent : undefined;
113
+ },
114
+ };
115
+ }
116
+ async function isUnder(pid, at) {
117
+ let current = pid;
118
+ for (let step = 0; current !== undefined && current > 1 && step < MOST_ANCESTORS; step++) {
119
+ if (at.roots.has(current)) {
120
+ return true;
121
+ }
122
+ current = await at.peers.parentOf(current);
123
+ }
124
+ return false;
125
+ }
126
+ export function createCallerCheck(options) {
127
+ const ownPid = options.ownPid ?? process.pid;
128
+ const run = options.run ?? runCommand;
129
+ const peers = options.platform === 'linux' ? linuxPeers(run) : options.platform === 'darwin' ? darwinPeers(run, ownPid) : undefined;
130
+ if (peers === undefined) {
131
+ return () => Promise.resolve(false);
132
+ }
133
+ return async (shipId, connection) => {
134
+ const fd = descriptorOf(connection);
135
+ if (fd === undefined) {
136
+ return false;
137
+ }
138
+ try {
139
+ const root = await options.sessionRootOf(shipId);
140
+ const holders = await peers.holdersOf({ fd, root });
141
+ const roots = new Set(root === undefined ? [ownPid] : [ownPid, root]);
142
+ const under = await Promise.all(holders.map((holder) => isUnder(holder, { roots, peers })));
143
+ return under.length > 0 && under.every(Boolean);
144
+ }
145
+ catch {
146
+ // A caller that does not resolve is refused, never allowed.
147
+ return false;
148
+ }
149
+ };
150
+ }
151
+ //# sourceMappingURL=caller-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caller-check.js","sourceRoot":"","sources":["../../src/adapters/caller-check.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ export declare function claudeCodeCommandLine(at: {
52
52
  export declare function createClaudeCodeHarness(options: {
53
53
  configuration: TrierarchConfiguration;
54
54
  plugin: AeolusPlugin;
55
- sessions: Pick<SessionRuntime, 'start' | 'type' | 'screen'>;
55
+ sessions: Pick<SessionRuntime, 'start' | 'type' | 'interrupt' | 'screen'>;
56
56
  /** Claude Code's projects folder, where it keeps each folder's conversations. */
57
57
  projects: string;
58
58
  /** Claude Code's own files, where its onboarding is completed before each launch (#403) and its settings' default mode is read (#505, #507). */
@@ -8,6 +8,7 @@ import { effectiveFlags } from '../core/effective-flags.js';
8
8
  import { firstPromptOf, wakePromptOf } from '../core/no-terminal-questions.js';
9
9
  import { createLaunchMarks } from './launch-marker.js';
10
10
  import { createPluginIdentity } from './plugin-identity.js';
11
+ import { stopTurn } from './stop-turn.js';
11
12
  /**
12
13
  * Claude Code as a harness (docs/architecture.md, "First adapters"): `claude`
13
14
  * in the folder, `--continue` on a restart when the folder has a conversation
@@ -145,7 +146,7 @@ export function createClaudeCodeHarness(options) {
145
146
  const marksOf = (shipId) => createLaunchMarks(homes.of(shipId).plugin);
146
147
  return {
147
148
  prepareIdentity: (at) => identityOf(at.identity.shipId).prepareIdentity(at),
148
- crewTokenOf: (session) => identityOf(session.shipId).crewTokenOf(session),
149
+ hasIdentity: (session) => identityOf(session.shipId).hasIdentity(session),
149
150
  removeIdentity: async (session) => {
150
151
  await identityOf(session.shipId).removeIdentity(session);
151
152
  await homes.remove(session.shipId);
@@ -182,6 +183,17 @@ export function createClaudeCodeHarness(options) {
182
183
  await sessions.type({ shipId: session.shipId, text: wakePromptOf(line) });
183
184
  return 'handed';
184
185
  },
186
+ forceOver: async ({ shipId, folder, isTurnBusy }) => {
187
+ const line = await identityOf(shipId).forceOverLine({ shipId, folder });
188
+ if (line === undefined) {
189
+ return 'nothing';
190
+ }
191
+ if (isTurnBusy) {
192
+ await stopTurn(sessions, { shipId });
193
+ }
194
+ await sessions.type({ shipId, text: wakePromptOf(line) });
195
+ return 'handed';
196
+ },
185
197
  isHolding: (session) => identityOf(session.shipId).isHolding(session),
186
198
  sessionDied: (session) => identityOf(session.shipId).sessionDied(session),
187
199
  marksLaunches: () => createLaunchMarks(plugin).isMarking(),
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAsE,MAAM,wBAAwB,CAAC;AAC7H,OAAO,EAAE,cAAc,EAAE,OAAO,EAAoB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAqB,MAAM,sBAAsB,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAE1C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9B,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,eAAe,GAAG,8DAA8D,CAAC;AACvF,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,iIAAiI;AACjI,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9B,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACjD,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC,6FAA6F;AAC7F,MAAM,oBAAoB,GAAG,oEAAoE,CAAC;AAElG,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;CACpC,CAAC;AAEF,2GAA2G;AAC3G,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAEjE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,gBAAgB,CAAC,CAAC;AAE7E,2HAA2H;AAC3H,SAAS,eAAe,CAAC,KAAwB;IAC/C,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC;IACpG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,eAAe,IAAI,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAClI,CAAC;AAED,yHAAyH;AACzH,SAAS,mBAAmB,CAAC,KAAwB;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,CAAC,IAAI,IAAI,KAAK,gBAAgB,CAAC,CAAC;AAC/H,CAAC;AAED,wFAAwF;AACxF,SAAS,OAAO,CAAC,KAAwB,EAAE,IAAY;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACpL,CAAC;AAED,kIAAkI;AAClI,SAAS,gBAAgB,CAAC,KAAwB;IAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED,sIAAsI;AACtI,MAAM,UAAU,6BAA6B,CAAC,KAAqD,EAAE,EAAiD;IACpJ,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAClL,CAAC;AAED,6NAA6N;AAC7N,SAAS,YAAY,CAAC,KAAwB,EAAE,SAA2G;IACzJ,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACnD,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QAClI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAC1F,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE,CAAC;AACzI,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,KAAwB,EAAE,IAAY;IAChE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO;QACL,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE;QAC1D,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;QACpC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE;KACxD,CAAC;AACJ,CAAC;AAED,8bAA8b;AAC9b,MAAM,UAAU,qBAAqB,CAAC,EAA4M;IAChP,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,cAAc,CAAC;QACpB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE;QACnC,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC;QAC5C,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,qBAAqB,EAAE,eAAe,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC;QACnG,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;QAC/C,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE;QAC/D,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc;IAC7D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAcvC;IACC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,KAAK,GACT,OAAO,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACzF,CAAC,CAAC,yBAAyB,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACxG,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;IAE/E,OAAO;QACL,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;QACzE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/D,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE;QAC/D,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;YACvH,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,IAAI,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAClH,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,qBAAqB,CAAC;gBACpC,KAAK;gBACL,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACrG,MAAM;gBACN,YAAY,EAAE,YAAY,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC7E,qBAAqB,EAAE,MAAM,6BAA6B,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACzF,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;gBAC1C,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QACrE,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;QACzE,aAAa,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;QAC1D,+GAA+G;QAC/G,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAC/E,CAAC;YACD,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACjH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export declare function codexCommandLine(at: {
33
33
  export declare function createCodexHarness(options: {
34
34
  configuration: TrierarchConfiguration;
35
35
  plugin: AeolusPlugin;
36
- sessions: Pick<SessionRuntime, 'start' | 'type' | 'screen'>;
36
+ sessions: Pick<SessionRuntime, 'start' | 'type' | 'interrupt' | 'screen'>;
37
37
  /** Codex's own answers, where the aeolus plugin's hooks are trusted before each launch (#581). */
38
38
  setup: Pick<CodexSetup, 'trustAeolusHooks'>;
39
39
  /** The program to run; `codex` unless a test runs another. */
@@ -7,6 +7,7 @@ import { effectiveFlags } from '../core/effective-flags.js';
7
7
  import { firstPromptOf, wakePromptOf } from '../core/no-terminal-questions.js';
8
8
  import { createLaunchMarks } from './launch-marker.js';
9
9
  import { createPluginIdentity } from './plugin-identity.js';
10
+ import { stopTurn } from './stop-turn.js';
10
11
  /**
11
12
  * Codex as a harness (docs/architecture.md, "First adapters"): `codex` in the
12
13
  * folder, `codex resume --last` on a restart (the folder's last conversation;
@@ -66,7 +67,7 @@ async function sessionLog(path) {
66
67
  export function createCodexHarness(options) {
67
68
  const { configuration, plugin, sessions } = options;
68
69
  const marks = createLaunchMarks(plugin);
69
- const { handOverLine, ...identity } = createPluginIdentity(plugin);
70
+ const { handOverLine, forceOverLine, ...identity } = createPluginIdentity(plugin);
70
71
  return {
71
72
  ...identity,
72
73
  launch: async ({ shipId, folder, harness, options: picked, isFirstStart, launchId, firstPrompt }) => {
@@ -88,6 +89,17 @@ export function createCodexHarness(options) {
88
89
  await sessions.type({ shipId: session.shipId, text: wakePromptOf(line), settleMs: CODEX_TYPING_SETTLE_MS });
89
90
  return 'handed';
90
91
  },
92
+ forceOver: async ({ shipId, folder, isTurnBusy }) => {
93
+ const line = await forceOverLine({ shipId, folder });
94
+ if (line === undefined) {
95
+ return 'nothing';
96
+ }
97
+ if (isTurnBusy) {
98
+ await stopTurn(sessions, { shipId });
99
+ }
100
+ await sessions.type({ shipId, text: wakePromptOf(line), settleMs: CODEX_TYPING_SETTLE_MS });
101
+ return 'handed';
102
+ },
91
103
  marksLaunches: () => marks.isMarking(),
92
104
  // The marker says what the session did (#490); Codex has no hook for a failed turn, so a refusal is read from the session log its session start named.
93
105
  launchSeen: async ({ shipId, folder, launchId, model }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { SessionRuntime } from '../core/ports.js';
2
+ import type { SessionRoots } from './caller-check.js';
2
3
  import { type CommandResult } from './run-command.js';
3
4
  /** The variable Claude Code reads its long-lived model token from (`claude setup-token`). */
4
5
  export declare const MODEL_TOKEN_VARIABLE = "CLAUDE_CODE_OAUTH_TOKEN";
@@ -15,6 +16,8 @@ export interface ContainerRuntimeOptions {
15
16
  readonly tokenFile: string;
16
17
  /** Where the ships' homes are kept on the host, one folder per ship, each mounted as its container's home. */
17
18
  readonly homes: string;
19
+ /** Where the ships' sockets are kept on the host, one folder per ship, each mounted at its own path (decision 0026). */
20
+ readonly sockets: string;
18
21
  /** The memory cap of each container, as the runtime takes it (`4g`). */
19
22
  readonly memory: string;
20
23
  readonly cpus: number;
@@ -29,8 +32,9 @@ export interface ContainerRuntimeOptions {
29
32
  * named after its ship id, with tmux inside, so typing and screen reads are an
30
33
  * exec into it. Rootless only, with hard memory and cpu caps and no restart
31
34
  * policy: the trierarch starts a dead container again itself. The container
32
- * sees its folder and its ship's own home, as its home, and nothing else of
33
- * the host, never the runtime's socket. The home is made, for its owner
35
+ * sees its folder, its ship's own home, as its home, and its ship's socket
36
+ * folder, at its own path, and nothing else of the host, never the runtime's
37
+ * socket. The home is made, for its owner
34
38
  * alone, when the ship has none yet.
35
39
  *
36
40
  * The model token and the session's environment reach the container through
@@ -39,5 +43,5 @@ export interface ContainerRuntimeOptions {
39
43
  * own, so the container's monitor is not in the service's control group and a
40
44
  * restart or upgrade ends no session (#479, #537).
41
45
  */
42
- export declare function createContainerRuntime(options: ContainerRuntimeOptions): SessionRuntime;
46
+ export declare function createContainerRuntime(options: ContainerRuntimeOptions): SessionRuntime & SessionRoots;
43
47
  export {};
@@ -3,6 +3,7 @@ import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { setTimeout as wait } from 'node:timers/promises';
5
5
  import { idSchema } from '@aeolus-fleet/common';
6
+ import { heldCommand } from './held-command.js';
6
7
  import { shipHome } from './paths.js';
7
8
  import { runCommand } from './run-command.js';
8
9
  const PREFIX = 'trierarch-';
@@ -57,8 +58,9 @@ function envFileOf(env) {
57
58
  * named after its ship id, with tmux inside, so typing and screen reads are an
58
59
  * exec into it. Rootless only, with hard memory and cpu caps and no restart
59
60
  * policy: the trierarch starts a dead container again itself. The container
60
- * sees its folder and its ship's own home, as its home, and nothing else of
61
- * the host, never the runtime's socket. The home is made, for its owner
61
+ * sees its folder, its ship's own home, as its home, and its ship's socket
62
+ * folder, at its own path, and nothing else of the host, never the runtime's
63
+ * socket. The home is made, for its owner
62
64
  * alone, when the ship has none yet.
63
65
  *
64
66
  * The model token and the session's environment reach the container through
@@ -100,6 +102,9 @@ export function createContainerRuntime(options) {
100
102
  const content = envFileOf({ ...env, [MODEL_TOKEN_VARIABLE]: token });
101
103
  await stop(shipId);
102
104
  const home = shipHome(options.homes, shipId);
105
+ const shipSockets = join(options.sockets, shipId);
106
+ // The runtime mounts only a folder that exists, and the ship's socket may not have made it yet.
107
+ await mkdir(shipSockets, { recursive: true, mode: 0o700 });
103
108
  await mkdir(home, { recursive: true, mode: 0o700 });
104
109
  const secrets = await mkdtemp(join(tmpdir(), 'aeolus-trierarch-env-'));
105
110
  try {
@@ -114,6 +119,9 @@ export function createContainerRuntime(options) {
114
119
  containerName(shipId),
115
120
  '--label',
116
121
  `${OWNER_LABEL}=${owner}`,
122
+ // Without it, podman lets swap double the memory cap.
123
+ '--memory-swap',
124
+ options.memory,
117
125
  '--memory',
118
126
  options.memory,
119
127
  '--cpus',
@@ -133,6 +141,9 @@ export function createContainerRuntime(options) {
133
141
  `${folder}:${folder}`,
134
142
  '--volume',
135
143
  `${home}:${SESSION_HOME}`,
144
+ // The session calls the fleet over its ship's socket, at the path its identity names.
145
+ '--volume',
146
+ `${shipSockets}:${shipSockets}`,
136
147
  '--env',
137
148
  `HOME=${SESSION_HOME}`,
138
149
  '--workdir',
@@ -144,7 +155,7 @@ export function createContainerRuntime(options) {
144
155
  '-c',
145
156
  SESSION_SCRIPT,
146
157
  'sh',
147
- ...command,
158
+ ...heldCommand(command),
148
159
  ];
149
160
  const started = await run(program, { args });
150
161
  if (started.status !== 0) {
@@ -162,6 +173,9 @@ export function createContainerRuntime(options) {
162
173
  }
163
174
  await must(tmux(shipId, ['send-keys', '-t', TMUX_TARGET, 'Enter']));
164
175
  },
176
+ interrupt: async (shipId) => {
177
+ await must(tmux(shipId, ['send-keys', '-t', TMUX_TARGET, 'Escape']));
178
+ },
165
179
  screen: async (shipId) => {
166
180
  const shown = await runtime(tmux(shipId, ['capture-pane', '-p', '-J', '-S', `-${String(SCREEN_LINES)}`, '-t', TMUX_TARGET]));
167
181
  if (shown.status === 0) {
@@ -171,6 +185,12 @@ export function createContainerRuntime(options) {
171
185
  const logged = await runtime(['logs', containerName(shipId)]);
172
186
  return logged.status === 0 ? logged.stdout : '';
173
187
  },
188
+ // The container's first process as the host sees it: every process of the session runs under it; 0 once it runs no more.
189
+ sessionRootOf: async (shipId) => {
190
+ const inspected = await runtime(['inspect', '--format', '{{.State.Pid}}', containerName(shipId)]);
191
+ const pid = Number(inspected.stdout.trim());
192
+ return inspected.status === 0 && Number.isInteger(pid) && pid > 1 ? pid : undefined;
193
+ },
174
194
  };
175
195
  }
176
196
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/adapters/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/adapters/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type VersionFetch } from '@aeolus-fleet/common';
2
+ /** The oldest core the trierarch runs against (decision 0049, docs/compatibility.md). */
3
+ export declare const MINIMUM_CORE_VERSION = "0.27.0";
4
+ /** Stops the start when the fleet's core is older than the trierarch needs, or does not say its version. */
5
+ export declare function requireCoreVersion(fleetUrl: string, fetch?: VersionFetch): Promise<void>;
@@ -0,0 +1,12 @@
1
+ import { coreVersionRefusal } from '@aeolus-fleet/common';
2
+ import { runningVersion } from './version.js';
3
+ /** The oldest core the trierarch runs against (decision 0049, docs/compatibility.md). */
4
+ export const MINIMUM_CORE_VERSION = '0.27.0';
5
+ /** Stops the start when the fleet's core is older than the trierarch needs, or does not say its version. */
6
+ export async function requireCoreVersion(fleetUrl, fetch = globalThis.fetch) {
7
+ const refusal = await coreVersionRefusal({ packageName: 'trierarch', version: runningVersion(), minimum: MINIMUM_CORE_VERSION, fleetUrl, fetch });
8
+ if (refusal !== undefined) {
9
+ throw new Error(refusal);
10
+ }
11
+ }
12
+ //# sourceMappingURL=core-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-version.js","sourceRoot":"","sources":["../../src/adapters/core-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAE7C,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,QAAsB,UAAU,CAAC,KAAK;IAC/F,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAClJ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -36,7 +36,7 @@ export declare function createHarnesses(at: {
36
36
  managedSettings: string;
37
37
  /** What detection last found, read at each launch (#517). */
38
38
  detected: () => Detected;
39
- sessions: Pick<SessionRuntime, 'start' | 'type' | 'screen'>;
39
+ sessions: Pick<SessionRuntime, 'start' | 'type' | 'interrupt' | 'screen'>;
40
40
  /** For sessions in containers: a home of each ship's own (decision 0039). */
41
41
  shipHomes?: {
42
42
  homes: string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A session's command, held a moment after it ends (#888). A command that
3
+ * prints and exits at once can close its terminal before tmux has read what it
4
+ * printed, and tmux then marks the pane dead with that output lost: the last
5
+ * screen comes back blank. Holding the terminal open a moment after the command
6
+ * ends lets tmux read it first; the command's own exit status stays the pane's.
7
+ */
8
+ /** How long the terminal stays open after the command ended. */
9
+ export declare const HOLD_AFTER_EXIT_MS = 1000;
10
+ /** The shell script that runs the command, holds, then exits with the command's status. */
11
+ export declare const HOLD_SCRIPT: string;
12
+ /** The command as a session runs it: through sh, held after it ends. */
13
+ export declare function heldCommand(command: readonly string[]): string[];
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A session's command, held a moment after it ends (#888). A command that
3
+ * prints and exits at once can close its terminal before tmux has read what it
4
+ * printed, and tmux then marks the pane dead with that output lost: the last
5
+ * screen comes back blank. Holding the terminal open a moment after the command
6
+ * ends lets tmux read it first; the command's own exit status stays the pane's.
7
+ */
8
+ /** How long the terminal stays open after the command ended. */
9
+ export const HOLD_AFTER_EXIT_MS = 1000;
10
+ /** The shell script that runs the command, holds, then exits with the command's status. */
11
+ export const HOLD_SCRIPT = `"$@"; status=$?; sleep ${String(HOLD_AFTER_EXIT_MS / 1000)}; exit "$status"`;
12
+ /** The command as a session runs it: through sh, held after it ends. */
13
+ export function heldCommand(command) {
14
+ return ['sh', '-c', HOLD_SCRIPT, 'sh', ...command];
15
+ }
16
+ //# sourceMappingURL=held-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"held-command.js","sourceRoot":"","sources":["../../src/adapters/held-command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAEzG,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,OAA0B;IACpD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;AACrD,CAAC"}
@@ -28,6 +28,7 @@ const stateSchema = z.object({
28
28
  exits: z.array(z.string()),
29
29
  restartAt: z.string().optional(),
30
30
  folder: z.string().optional(),
31
+ crewToken: z.string().optional(),
31
32
  hasStarted: z.boolean(),
32
33
  launchedAt: z.string().optional(),
33
34
  launchId: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"json-state.js","sourceRoot":"","sources":["../../src/adapters/json-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-state.js","sourceRoot":"","sources":["../../src/adapters/json-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAuB,MAAM,kBAAkB,CAAC;AAGlF;;;;;;;GAOG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEhD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CACf,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;QACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,wBAAwB;QACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC/C,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACvC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC,CACH;IACD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;CAClD,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAE/D,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;QACL,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;gBACxD,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,gHAAgH;gBAChH,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,iKAAiK,CACzK,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,KAAqB,EAAE,EAAE;YACpC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC;YAChC,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -20,6 +20,8 @@ export interface TrierarchPaths {
20
20
  readonly worktrees: string;
21
21
  /** The homes of the ships whose sessions run in containers, one folder per ship (decision 0039). */
22
22
  readonly homes: string;
23
+ /** Each crewed ship's socket, in a folder of its own: its session's fleet calls come over it (decision 0026). */
24
+ readonly sockets: string;
23
25
  }
24
26
  export declare function trierarchPaths(at: {
25
27
  homeDirectory: string;