@aeolus-fleet/trierarch 0.17.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -15
- package/dist/adapters/claude-code-setup.d.ts +18 -0
- package/dist/adapters/claude-code-setup.js +51 -0
- package/dist/adapters/claude-code-setup.js.map +1 -0
- package/dist/adapters/files.d.ts +6 -3
- package/dist/adapters/files.js +4 -3
- package/dist/adapters/files.js.map +1 -1
- package/dist/adapters/rest-fleet.d.ts +5 -0
- package/dist/adapters/rest-fleet.js +10 -2
- package/dist/adapters/rest-fleet.js.map +1 -1
- package/dist/adapters/service.d.ts +51 -0
- package/dist/adapters/service.js +213 -0
- package/dist/adapters/service.js.map +1 -0
- package/dist/bin/aeolus-trierarch.js +3 -1
- package/dist/bin/aeolus-trierarch.js.map +1 -1
- package/dist/cli/config-check.d.ts +11 -2
- package/dist/cli/config-check.js +10 -3
- package/dist/cli/config-check.js.map +1 -1
- package/dist/cli/init.d.ts +36 -11
- package/dist/cli/init.js +213 -19
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/list.d.ts +16 -0
- package/dist/cli/list.js +32 -0
- package/dist/cli/list.js.map +1 -0
- package/dist/cli/logs.d.ts +16 -0
- package/dist/cli/logs.js +51 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/main.js +199 -52
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/prompter.d.ts +25 -0
- package/dist/cli/prompter.js +95 -0
- package/dist/cli/prompter.js.map +1 -0
- package/dist/cli/status.d.ts +44 -0
- package/dist/cli/status.js +65 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/uninstall.d.ts +19 -0
- package/dist/cli/uninstall.js +16 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/package.json +3 -3
- package/dist/cli/install.d.ts +0 -34
- package/dist/cli/install.js +0 -109
- package/dist/cli/install.js.map +0 -1
package/dist/cli/install.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { TrierarchPaths } from '../adapters/paths.js';
|
|
2
|
-
/**
|
|
3
|
-
* `aeolus-trierarch install`: keeps `aeolus-trierarch run` alive under the
|
|
4
|
-
* operating system, started at login and again whenever it stops. A launchd
|
|
5
|
-
* agent on macOS, a systemd user unit on Linux.
|
|
6
|
-
*/
|
|
7
|
-
export declare const LAUNCHD_LABEL = "dev.aeolus-fleet.trierarch";
|
|
8
|
-
export declare const SYSTEMD_UNIT = "aeolus-trierarch.service";
|
|
9
|
-
/** What runs the trierarch: this Node and this command's own file. */
|
|
10
|
-
export interface RunCommand {
|
|
11
|
-
readonly node: string;
|
|
12
|
-
readonly script: string;
|
|
13
|
-
}
|
|
14
|
-
/** The service's environment: PATH, so it finds tmux, git and claude, and the trierarch's own variables. */
|
|
15
|
-
export declare function serviceEnvironment(env: Readonly<Record<string, string | undefined>>): Record<string, string>;
|
|
16
|
-
export declare function launchdPlist(at: {
|
|
17
|
-
run: RunCommand;
|
|
18
|
-
paths: TrierarchPaths;
|
|
19
|
-
environment: Readonly<Record<string, string>>;
|
|
20
|
-
}): string;
|
|
21
|
-
export declare function systemdUnit(at: {
|
|
22
|
-
run: RunCommand;
|
|
23
|
-
environment: Readonly<Record<string, string>>;
|
|
24
|
-
}): string;
|
|
25
|
-
export declare function install(input: {
|
|
26
|
-
platform: string;
|
|
27
|
-
homeDirectory: string;
|
|
28
|
-
paths: TrierarchPaths;
|
|
29
|
-
run: RunCommand;
|
|
30
|
-
environment: Readonly<Record<string, string>>;
|
|
31
|
-
/** Write the file only, without loading it: for a test, or to load it by hand. */
|
|
32
|
-
isLoading: boolean;
|
|
33
|
-
uid: number;
|
|
34
|
-
}): Promise<string[]>;
|
package/dist/cli/install.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { runCommand } from '../adapters/run-command.js';
|
|
4
|
-
/**
|
|
5
|
-
* `aeolus-trierarch install`: keeps `aeolus-trierarch run` alive under the
|
|
6
|
-
* operating system, started at login and again whenever it stops. A launchd
|
|
7
|
-
* agent on macOS, a systemd user unit on Linux.
|
|
8
|
-
*/
|
|
9
|
-
export const LAUNCHD_LABEL = 'dev.aeolus-fleet.trierarch';
|
|
10
|
-
export const SYSTEMD_UNIT = 'aeolus-trierarch.service';
|
|
11
|
-
/** The variables the trierarch itself reads, carried into the service when set where install ran. */
|
|
12
|
-
const TRIERARCH_VARIABLES = ['AEOLUS_PLUGIN_ROOT', 'AEOLUS_PLUGIN_DATA', 'AEOLUS_TRIERARCH_CONFIG'];
|
|
13
|
-
const DEFAULT_PATH = '/usr/bin:/bin';
|
|
14
|
-
/** The service's environment: PATH, so it finds tmux, git and claude, and the trierarch's own variables. */
|
|
15
|
-
export function serviceEnvironment(env) {
|
|
16
|
-
const environment = { PATH: env.PATH ?? DEFAULT_PATH };
|
|
17
|
-
for (const name of TRIERARCH_VARIABLES) {
|
|
18
|
-
const value = env[name];
|
|
19
|
-
if (value !== undefined) {
|
|
20
|
-
environment[name] = value;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return environment;
|
|
24
|
-
}
|
|
25
|
-
function escapeXml(text) {
|
|
26
|
-
return text.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');
|
|
27
|
-
}
|
|
28
|
-
export function launchdPlist(at) {
|
|
29
|
-
const strings = (values) => values.map((value) => ` <string>${escapeXml(value)}</string>`).join('\n');
|
|
30
|
-
const variables = Object.entries(at.environment)
|
|
31
|
-
.map(([name, value]) => ` <key>${escapeXml(name)}</key>\n <string>${escapeXml(value)}</string>`)
|
|
32
|
-
.join('\n');
|
|
33
|
-
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
34
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
35
|
-
<plist version="1.0">
|
|
36
|
-
<dict>
|
|
37
|
-
<key>Label</key>
|
|
38
|
-
<string>${LAUNCHD_LABEL}</string>
|
|
39
|
-
<key>ProgramArguments</key>
|
|
40
|
-
<array>
|
|
41
|
-
${strings([at.run.node, at.run.script, 'run'])}
|
|
42
|
-
</array>
|
|
43
|
-
<key>EnvironmentVariables</key>
|
|
44
|
-
<dict>
|
|
45
|
-
${variables}
|
|
46
|
-
</dict>
|
|
47
|
-
<key>RunAtLoad</key>
|
|
48
|
-
<true/>
|
|
49
|
-
<key>KeepAlive</key>
|
|
50
|
-
<true/>
|
|
51
|
-
<key>StandardOutPath</key>
|
|
52
|
-
<string>${escapeXml(join(at.paths.logs, 'trierarch.log'))}</string>
|
|
53
|
-
<key>StandardErrorPath</key>
|
|
54
|
-
<string>${escapeXml(join(at.paths.logs, 'trierarch.log'))}</string>
|
|
55
|
-
</dict>
|
|
56
|
-
</plist>
|
|
57
|
-
`;
|
|
58
|
-
}
|
|
59
|
-
export function systemdUnit(at) {
|
|
60
|
-
const variables = Object.entries(at.environment)
|
|
61
|
-
.map(([name, value]) => `Environment="${name}=${value}"`)
|
|
62
|
-
.join('\n');
|
|
63
|
-
return `[Unit]
|
|
64
|
-
Description=Aeolus trierarch: keeps the ships on its wanted list crewed on this machine
|
|
65
|
-
|
|
66
|
-
[Service]
|
|
67
|
-
ExecStart="${at.run.node}" "${at.run.script}" run
|
|
68
|
-
${variables}
|
|
69
|
-
Restart=always
|
|
70
|
-
RestartSec=5
|
|
71
|
-
|
|
72
|
-
[Install]
|
|
73
|
-
WantedBy=default.target
|
|
74
|
-
`;
|
|
75
|
-
}
|
|
76
|
-
export async function install(input) {
|
|
77
|
-
const { platform, homeDirectory, paths, run, environment, isLoading, uid } = input;
|
|
78
|
-
await mkdir(paths.logs, { recursive: true });
|
|
79
|
-
if (platform === 'darwin') {
|
|
80
|
-
const plist = join(homeDirectory, 'Library', 'LaunchAgents', `${LAUNCHD_LABEL}.plist`);
|
|
81
|
-
await mkdir(join(homeDirectory, 'Library', 'LaunchAgents'), { recursive: true });
|
|
82
|
-
await writeFile(plist, launchdPlist({ run, paths, environment }));
|
|
83
|
-
if (!isLoading) {
|
|
84
|
-
return [`Wrote ${plist}. Load it with: launchctl bootstrap gui/${String(uid)} ${plist}`];
|
|
85
|
-
}
|
|
86
|
-
await runCommand('launchctl', { args: ['bootout', `gui/${String(uid)}/${LAUNCHD_LABEL}`] });
|
|
87
|
-
const loaded = await runCommand('launchctl', { args: ['bootstrap', `gui/${String(uid)}`, plist] });
|
|
88
|
-
if (loaded.status !== 0) {
|
|
89
|
-
throw new Error(`launchctl bootstrap failed: ${loaded.stderr.trim()}`);
|
|
90
|
-
}
|
|
91
|
-
return [`Installed ${plist}: the trierarch runs now, and again at every login. Logs: ${paths.logs}`];
|
|
92
|
-
}
|
|
93
|
-
if (platform === 'linux') {
|
|
94
|
-
const folder = join(homeDirectory, '.config', 'systemd', 'user');
|
|
95
|
-
const unit = join(folder, SYSTEMD_UNIT);
|
|
96
|
-
await mkdir(folder, { recursive: true });
|
|
97
|
-
await writeFile(unit, systemdUnit({ run, environment }));
|
|
98
|
-
if (!isLoading) {
|
|
99
|
-
return [`Wrote ${unit}. Start it with: systemctl --user enable --now ${SYSTEMD_UNIT}`];
|
|
100
|
-
}
|
|
101
|
-
const started = await runCommand('systemctl', { args: ['--user', 'enable', '--now', SYSTEMD_UNIT] });
|
|
102
|
-
if (started.status !== 0) {
|
|
103
|
-
throw new Error(`systemctl --user enable failed: ${started.stderr.trim()}`);
|
|
104
|
-
}
|
|
105
|
-
return [`Installed ${unit}: the trierarch runs now, and again at every login.`];
|
|
106
|
-
}
|
|
107
|
-
throw new Error(`aeolus-trierarch install knows launchd (macOS) and systemd (Linux), not ${platform}: run aeolus-trierarch run under your own supervisor`);
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=install.js.map
|
package/dist/cli/install.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
|