@ai-support-agent/cli 0.1.8-beta.0 → 0.1.8
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/dist/cli/service/linux-service.d.ts +49 -0
- package/dist/cli/service/linux-service.d.ts.map +1 -1
- package/dist/cli/service/linux-service.js +656 -69
- package/dist/cli/service/linux-service.js.map +1 -1
- package/dist/cli/service-command.d.ts +5 -1
- package/dist/cli/service-command.d.ts.map +1 -1
- package/dist/cli/service-command.js +12 -4
- package/dist/cli/service-command.js.map +1 -1
- package/dist/locales/en.json +12 -11
- package/dist/locales/ja.json +12 -11
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +14 -17
- package/dist/project-agent.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,54 @@
|
|
|
1
|
+
import type { ProjectRegistration } from '../../types';
|
|
2
|
+
import { getCliEntryPoint, getNodePath } from './node-paths';
|
|
1
3
|
import type { ServiceConfig, ServiceOptions, ServiceStatus, ServiceStrategy } from './types';
|
|
4
|
+
export { getCliEntryPoint, getNodePath };
|
|
5
|
+
/** Returns the systemd unit name for a given project (without .service suffix) */
|
|
6
|
+
export declare function getProjectUnitName(tenantCode: string, projectCode: string): string;
|
|
7
|
+
/** Returns the .service file path for a given project */
|
|
8
|
+
export declare function getProjectUnitFilePath(tenantCode: string, projectCode: string): string;
|
|
9
|
+
/** Lists all per-project unit files under ~/.config/systemd/user */
|
|
10
|
+
export declare function getAllProjectUnits(): Array<{
|
|
11
|
+
unitName: string;
|
|
12
|
+
unitPath: string;
|
|
13
|
+
}>;
|
|
2
14
|
export declare function generateServiceUnit(options: ServiceConfig): string;
|
|
15
|
+
/** Generate a systemd unit that runs a wrapper shell script for one project */
|
|
16
|
+
export declare function generateProjectServiceUnit(opts: {
|
|
17
|
+
unitName: string;
|
|
18
|
+
wrapperScriptPath: string;
|
|
19
|
+
logDir: string;
|
|
20
|
+
}): string;
|
|
21
|
+
/** Generate a bash wrapper script that runs docker for one project */
|
|
22
|
+
export declare function generateWrapperScript(opts: {
|
|
23
|
+
imageName: string;
|
|
24
|
+
tenantCode: string;
|
|
25
|
+
projectCode: string;
|
|
26
|
+
projectConfigHostDir: string;
|
|
27
|
+
projectDir?: string;
|
|
28
|
+
token: string;
|
|
29
|
+
apiUrl: string;
|
|
30
|
+
anthropicApiKey?: string;
|
|
31
|
+
claudeCodeOauthToken?: string;
|
|
32
|
+
verbose?: boolean;
|
|
33
|
+
updateScriptPath: string;
|
|
34
|
+
}): string;
|
|
35
|
+
/** Generate the update-and-restart.sh script for systemd */
|
|
36
|
+
export declare function generateUpdateScript(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Write run.sh and systemd unit for a single project. Does NOT systemctl start.
|
|
39
|
+
* Returns the unit file path.
|
|
40
|
+
*/
|
|
41
|
+
export declare function writeProjectServiceFiles(project: ProjectRegistration, options?: {
|
|
42
|
+
verbose?: boolean;
|
|
43
|
+
}): string;
|
|
44
|
+
/**
|
|
45
|
+
* Install service files and immediately start a single project via systemctl.
|
|
46
|
+
* Idempotent: stops any existing service before starting so that token/config
|
|
47
|
+
* updates take effect immediately.
|
|
48
|
+
*/
|
|
49
|
+
export declare function installAndStartProject(project: ProjectRegistration, options?: {
|
|
50
|
+
verbose?: boolean;
|
|
51
|
+
}): void;
|
|
3
52
|
export declare class LinuxServiceStrategy implements ServiceStrategy {
|
|
4
53
|
install(options: ServiceOptions): void;
|
|
5
54
|
uninstall(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux-service.d.ts","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linux-service.d.ts","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;AAwExC,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBlF;AA6BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA4BlE;AAMD,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,MAAM,CAuBT;AAaD,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;CACzB,GAAG,MAAM,CAuGT;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,IAAI,MAAM,CAoG7C;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,MAAM,CAmDR;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,IAAI,CAiDN;AAMD,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAkFtC,SAAS,IAAI,IAAI;IAsBjB,KAAK,IAAI,IAAI;IAgCb,IAAI,IAAI,IAAI;IAwBZ,OAAO,IAAI,IAAI;IA8Bf,MAAM,IAAI,aAAa;CA6DxB"}
|
|
@@ -33,22 +33,141 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.LinuxServiceStrategy = void 0;
|
|
36
|
+
exports.LinuxServiceStrategy = exports.getNodePath = exports.getCliEntryPoint = void 0;
|
|
37
|
+
exports.getProjectUnitName = getProjectUnitName;
|
|
38
|
+
exports.getProjectUnitFilePath = getProjectUnitFilePath;
|
|
39
|
+
exports.getAllProjectUnits = getAllProjectUnits;
|
|
37
40
|
exports.generateServiceUnit = generateServiceUnit;
|
|
41
|
+
exports.generateProjectServiceUnit = generateProjectServiceUnit;
|
|
42
|
+
exports.generateWrapperScript = generateWrapperScript;
|
|
43
|
+
exports.generateUpdateScript = generateUpdateScript;
|
|
44
|
+
exports.writeProjectServiceFiles = writeProjectServiceFiles;
|
|
45
|
+
exports.installAndStartProject = installAndStartProject;
|
|
38
46
|
const child_process_1 = require("child_process");
|
|
39
47
|
const fs = __importStar(require("fs"));
|
|
40
48
|
const os = __importStar(require("os"));
|
|
41
49
|
const path = __importStar(require("path"));
|
|
50
|
+
const config_manager_1 = require("../../config-manager");
|
|
51
|
+
const docker_utils_1 = require("../../docker/docker-utils");
|
|
42
52
|
const i18n_1 = require("../../i18n");
|
|
43
53
|
const logger_1 = require("../../logger");
|
|
44
54
|
const node_paths_1 = require("./node-paths");
|
|
55
|
+
Object.defineProperty(exports, "getCliEntryPoint", { enumerable: true, get: function () { return node_paths_1.getCliEntryPoint; } });
|
|
56
|
+
Object.defineProperty(exports, "getNodePath", { enumerable: true, get: function () { return node_paths_1.getNodePath; } });
|
|
45
57
|
const SERVICE_NAME = 'ai-support-agent.service';
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
const SERVICE_PREFIX = 'ai-support-agent';
|
|
59
|
+
function getSystemdUserDir() {
|
|
60
|
+
return path.join(os.homedir(), '.config', 'systemd', 'user');
|
|
48
61
|
}
|
|
49
62
|
function getLogDir() {
|
|
50
63
|
return path.join(os.homedir(), '.local', 'share', 'ai-support-agent', 'logs');
|
|
51
64
|
}
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Per-project unit helpers
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
function sanitize(s) {
|
|
69
|
+
return s.toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* POSIX shell single-quote a value so it can be safely interpolated into a
|
|
73
|
+
* bash script. Wraps the value in single quotes and escapes any embedded
|
|
74
|
+
* single quote as `'\''`. The result is always exactly one shell argument.
|
|
75
|
+
*/
|
|
76
|
+
function shellQuote(value) {
|
|
77
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Write a file with content and enforce mode. `fs.writeFileSync({ mode })`
|
|
81
|
+
* only applies the mode when the file is *created*; overwriting an existing
|
|
82
|
+
* file inherits the prior permissions, so a previously world-readable
|
|
83
|
+
* wrapper script (e.g. left by an older install or an out-of-band edit)
|
|
84
|
+
* would retain its lax mode despite containing bearer tokens. Explicit
|
|
85
|
+
* chmod after write guarantees the desired permissions either way.
|
|
86
|
+
*/
|
|
87
|
+
function writeFileEnsuringMode(filePath, content, mode) {
|
|
88
|
+
fs.writeFileSync(filePath, content, { mode });
|
|
89
|
+
fs.chmodSync(filePath, mode);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Escape a value for use inside a systemd unit (ExecStart, Environment, etc.).
|
|
93
|
+
* Per `man 5 systemd.service`, `man 5 systemd.exec` and `man 5 systemd.unit`:
|
|
94
|
+
* - Backslash is the escape character; the literal backslash must be written
|
|
95
|
+
* as `\\`.
|
|
96
|
+
* - `$` in command lines triggers Environment variable expansion (`$FOO`); the
|
|
97
|
+
* literal dollar sign must be written as `$$`.
|
|
98
|
+
* - `%` triggers specifier expansion (`%h`, `%u`, etc.); the literal percent
|
|
99
|
+
* sign must be written as `%%`.
|
|
100
|
+
* - Whitespace separates argv tokens and must be escaped as `\x20`.
|
|
101
|
+
* - Double-quote, tab, and newline also need backslash escaping.
|
|
102
|
+
*
|
|
103
|
+
* Ordering matters: backslash MUST be doubled first so that the backslashes
|
|
104
|
+
* we subsequently introduce (e.g. `\"`, `\x20`) are not themselves re-doubled.
|
|
105
|
+
* `$` → `$$` and `%` → `%%` are independent of the backslash pass because
|
|
106
|
+
* they don't introduce a backslash. In JS replace strings, `$$` denotes a
|
|
107
|
+
* literal `$`, so `'$$$$'` produces `$$` and `'%%'` produces `%%`.
|
|
108
|
+
*/
|
|
109
|
+
function systemdEscape(value) {
|
|
110
|
+
return value
|
|
111
|
+
.replace(/\\/g, '\\\\')
|
|
112
|
+
.replace(/\$/g, '$$$$')
|
|
113
|
+
.replace(/%/g, '%%')
|
|
114
|
+
.replace(/"/g, '\\"')
|
|
115
|
+
.replace(/\t/g, '\\t')
|
|
116
|
+
.replace(/\n/g, '\\n')
|
|
117
|
+
.replace(/ /g, '\\x20');
|
|
118
|
+
}
|
|
119
|
+
/** Returns the systemd unit name for a given project (without .service suffix) */
|
|
120
|
+
function getProjectUnitName(tenantCode, projectCode) {
|
|
121
|
+
return `${SERVICE_PREFIX}-${sanitize(tenantCode)}-${sanitize(projectCode)}`;
|
|
122
|
+
}
|
|
123
|
+
/** Returns the .service file path for a given project */
|
|
124
|
+
function getProjectUnitFilePath(tenantCode, projectCode) {
|
|
125
|
+
return path.join(getSystemdUserDir(), `${getProjectUnitName(tenantCode, projectCode)}.service`);
|
|
126
|
+
}
|
|
127
|
+
/** Lists all per-project unit files under ~/.config/systemd/user */
|
|
128
|
+
function getAllProjectUnits() {
|
|
129
|
+
const systemdDir = getSystemdUserDir();
|
|
130
|
+
const prefix = `${SERVICE_PREFIX}-`;
|
|
131
|
+
const results = [];
|
|
132
|
+
try {
|
|
133
|
+
const files = fs.readdirSync(systemdDir);
|
|
134
|
+
for (const file of files) {
|
|
135
|
+
if (file.startsWith(prefix) &&
|
|
136
|
+
file.endsWith('.service') &&
|
|
137
|
+
file !== SERVICE_NAME) {
|
|
138
|
+
const unitName = file.slice(0, -'.service'.length);
|
|
139
|
+
results.push({ unitName, unitPath: path.join(systemdDir, file) });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// systemd user dir doesn't exist yet — return empty list
|
|
145
|
+
}
|
|
146
|
+
return results;
|
|
147
|
+
}
|
|
148
|
+
/** Returns the host-side per-project config dir (mirrors what docker-runner uses) */
|
|
149
|
+
function getProjectConfigHostDir(tenantCode, projectCode) {
|
|
150
|
+
const configDir = process.env.AI_SUPPORT_AGENT_CONFIG_DIR
|
|
151
|
+
? path.resolve(process.env.AI_SUPPORT_AGENT_CONFIG_DIR)
|
|
152
|
+
: path.join(os.homedir(), '.ai-support-agent');
|
|
153
|
+
return path.join(configDir, 'projects', tenantCode, projectCode, '.ai-support-agent');
|
|
154
|
+
}
|
|
155
|
+
/** Returns the services dir where wrapper scripts are stored */
|
|
156
|
+
function getServicesDir() {
|
|
157
|
+
const configDir = process.env.AI_SUPPORT_AGENT_CONFIG_DIR
|
|
158
|
+
? path.resolve(process.env.AI_SUPPORT_AGENT_CONFIG_DIR)
|
|
159
|
+
: path.join(os.homedir(), '.ai-support-agent');
|
|
160
|
+
return path.join(configDir, 'services');
|
|
161
|
+
}
|
|
162
|
+
function getUpdateScriptPath() {
|
|
163
|
+
const configDir = process.env.AI_SUPPORT_AGENT_CONFIG_DIR
|
|
164
|
+
? path.resolve(process.env.AI_SUPPORT_AGENT_CONFIG_DIR)
|
|
165
|
+
: path.join(os.homedir(), '.ai-support-agent');
|
|
166
|
+
return path.join(configDir, 'update-and-restart.sh');
|
|
167
|
+
}
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// Legacy single-unit generation (kept for backward compatibility / tests)
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
52
171
|
function generateServiceUnit(options) {
|
|
53
172
|
const { nodePath, entryPoint, logDir, verbose, docker } = options;
|
|
54
173
|
const execArgs = [nodePath, entryPoint, 'start'];
|
|
@@ -77,117 +196,585 @@ StandardError=append:${path.join(logDir, 'agent.err.log')}
|
|
|
77
196
|
WantedBy=default.target
|
|
78
197
|
`;
|
|
79
198
|
}
|
|
199
|
+
// ---------------------------------------------------------------------------
|
|
200
|
+
// Per-project unit generation
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
/** Generate a systemd unit that runs a wrapper shell script for one project */
|
|
203
|
+
function generateProjectServiceUnit(opts) {
|
|
204
|
+
const escapedWrapper = systemdEscape(opts.wrapperScriptPath);
|
|
205
|
+
const escapedHome = systemdEscape(os.homedir());
|
|
206
|
+
const escapedOutLog = systemdEscape(path.join(opts.logDir, 'agent.out.log'));
|
|
207
|
+
const escapedErrLog = systemdEscape(path.join(opts.logDir, 'agent.err.log'));
|
|
208
|
+
return `[Unit]
|
|
209
|
+
Description=AI Support Agent (${opts.unitName})
|
|
210
|
+
After=network-online.target
|
|
211
|
+
Wants=network-online.target
|
|
212
|
+
|
|
213
|
+
[Service]
|
|
214
|
+
Type=simple
|
|
215
|
+
ExecStart=/bin/bash ${escapedWrapper}
|
|
216
|
+
Restart=always
|
|
217
|
+
RestartSec=10
|
|
218
|
+
Environment=PATH=/usr/local/bin:/usr/bin:/bin
|
|
219
|
+
Environment=HOME=${escapedHome}
|
|
220
|
+
StandardOutput=append:${escapedOutLog}
|
|
221
|
+
StandardError=append:${escapedErrLog}
|
|
222
|
+
|
|
223
|
+
[Install]
|
|
224
|
+
WantedBy=default.target
|
|
225
|
+
`;
|
|
226
|
+
}
|
|
227
|
+
/** Convert localhost/127.0.0.1 to host.docker.internal for container use */
|
|
228
|
+
function toContainerApiUrl(apiUrl) {
|
|
229
|
+
// The host portion must be terminated by `:`, `/`, or end-of-string;
|
|
230
|
+
// otherwise URLs like `http://localhost.example.com` would partially match
|
|
231
|
+
// and produce `http://host.docker.internal.example.com` (a different host).
|
|
232
|
+
return apiUrl.replace(/^(https?:\/\/)(localhost|127\.0\.0\.1)(?=$|[:/])/, (_, scheme) => `${scheme}host.docker.internal`);
|
|
233
|
+
}
|
|
234
|
+
/** Generate a bash wrapper script that runs docker for one project */
|
|
235
|
+
function generateWrapperScript(opts) {
|
|
236
|
+
const containerHome = '/home/node';
|
|
237
|
+
const containerConfigDir = `${containerHome}/.ai-support-agent`;
|
|
238
|
+
const homeDir = os.homedir();
|
|
239
|
+
const containerApiUrl = toContainerApiUrl(opts.apiUrl);
|
|
240
|
+
// All user-supplied values (paths, tokens, URLs, API keys) are interpolated
|
|
241
|
+
// into a generated bash script. Shell-quote every value to defend against
|
|
242
|
+
// whitespace, shell metacharacters (`$`, backticks, `"`), and outright
|
|
243
|
+
// injection from a malicious or malformed token / env var.
|
|
244
|
+
const qProjectConfig = shellQuote(opts.projectConfigHostDir);
|
|
245
|
+
const qContainerHome = shellQuote(containerHome);
|
|
246
|
+
const qContainerConfigDir = shellQuote(containerConfigDir);
|
|
247
|
+
const qToken = shellQuote(opts.token);
|
|
248
|
+
const qApiUrl = shellQuote(containerApiUrl);
|
|
249
|
+
const qImageName = shellQuote(opts.imageName);
|
|
250
|
+
const qUpdateScriptPath = shellQuote(opts.updateScriptPath);
|
|
251
|
+
// tenant/project are sanitized to [a-z0-9-] for container name and the
|
|
252
|
+
// --project value, so they're shell-safe; still quote for defense in depth.
|
|
253
|
+
const containerName = `ai-${sanitize(opts.tenantCode)}-${sanitize(opts.projectCode)}`;
|
|
254
|
+
const qContainerName = shellQuote(containerName);
|
|
255
|
+
const qProjectArg = shellQuote(`${opts.tenantCode}/${opts.projectCode}`);
|
|
256
|
+
const mountLines = [
|
|
257
|
+
` -v ${shellQuote(`${homeDir}/.claude:${containerHome}/.claude:rw`)} \\`,
|
|
258
|
+
` -v ${shellQuote(`${opts.projectConfigHostDir}:${containerConfigDir}:rw`)} \\`,
|
|
259
|
+
` -v ${shellQuote(`${homeDir}/.claude.json:${containerHome}/.claude.json:rw`)} \\`,
|
|
260
|
+
];
|
|
261
|
+
if (opts.projectDir) {
|
|
262
|
+
const containerProjectDir = `/workspace/projects/${opts.projectCode}`;
|
|
263
|
+
mountLines.push(` -v ${shellQuote(`${opts.projectDir}:${containerProjectDir}:rw`)} \\`);
|
|
264
|
+
}
|
|
265
|
+
const envLines = [
|
|
266
|
+
` -e AI_SUPPORT_AGENT_IN_DOCKER=1 \\`,
|
|
267
|
+
` -e HOME=${qContainerHome} \\`,
|
|
268
|
+
` -e AI_SUPPORT_AGENT_CONFIG_DIR=${qContainerConfigDir} \\`,
|
|
269
|
+
` -e AI_SUPPORT_AGENT_TOKEN=${qToken} \\`,
|
|
270
|
+
` -e AI_SUPPORT_AGENT_API_URL=${qApiUrl} \\`,
|
|
271
|
+
];
|
|
272
|
+
if (opts.anthropicApiKey) {
|
|
273
|
+
envLines.push(` -e ANTHROPIC_API_KEY=${shellQuote(opts.anthropicApiKey)} \\`);
|
|
274
|
+
}
|
|
275
|
+
if (opts.claudeCodeOauthToken) {
|
|
276
|
+
envLines.push(` -e CLAUDE_CODE_OAUTH_TOKEN=${shellQuote(opts.claudeCodeOauthToken)} \\`);
|
|
277
|
+
}
|
|
278
|
+
const containerArgs = [
|
|
279
|
+
'ai-support-agent', 'start', '--no-docker',
|
|
280
|
+
`--project ${qProjectArg}`,
|
|
281
|
+
];
|
|
282
|
+
if (opts.verbose)
|
|
283
|
+
containerArgs.push('--verbose');
|
|
284
|
+
return `#!/bin/bash
|
|
285
|
+
set -uo pipefail
|
|
286
|
+
|
|
287
|
+
# Load nvm if available so that node/npm are on PATH when launched as a systemd service
|
|
288
|
+
export NVM_DIR="\${HOME}/.nvm"
|
|
289
|
+
# shellcheck disable=SC1091
|
|
290
|
+
[ -s "\${NVM_DIR}/nvm.sh" ] && source "\${NVM_DIR}/nvm.sh"
|
|
291
|
+
# Also try common system locations as fallback
|
|
292
|
+
export PATH="/usr/local/bin:/usr/bin:/bin:\${PATH}"
|
|
293
|
+
|
|
294
|
+
REBUILD_MARKER=${qProjectConfig}/docker-rebuild-needed
|
|
295
|
+
if [ -f "$REBUILD_MARKER" ]; then
|
|
296
|
+
rm -f "$REBUILD_MARKER"
|
|
297
|
+
ai-support-agent docker-build 2>/dev/null || true
|
|
298
|
+
fi
|
|
299
|
+
|
|
300
|
+
# Resolve the installed version at runtime so the image stays current after npm updates
|
|
301
|
+
_NPM_ROOT=$(npm root -g 2>/dev/null)
|
|
302
|
+
_CLI_PKG_JSON="\${_NPM_ROOT}/@ai-support-agent/cli/package.json"
|
|
303
|
+
_INSTALLED_VERSION=$(node -p "require('\${_CLI_PKG_JSON}').version" 2>/dev/null || echo "")
|
|
304
|
+
if [ -z "$_INSTALLED_VERSION" ]; then
|
|
305
|
+
echo "ERROR: Could not determine installed version of @ai-support-agent/cli" >&2
|
|
306
|
+
exit 1
|
|
307
|
+
fi
|
|
308
|
+
IMAGE_TAG=${qImageName}:\${_INSTALLED_VERSION}
|
|
309
|
+
|
|
310
|
+
# Auto-build Docker image if the required version does not exist locally
|
|
311
|
+
if ! docker image inspect "\$IMAGE_TAG" >/dev/null 2>&1; then
|
|
312
|
+
echo "Docker image \$IMAGE_TAG not found — building..." >&2
|
|
313
|
+
ai-support-agent docker-build || { echo "ERROR: docker-build failed — cannot start container" >&2; exit 1; }
|
|
314
|
+
fi
|
|
315
|
+
|
|
316
|
+
# Remove stale container if it exists (e.g. from a previous crash)
|
|
317
|
+
docker rm -f ${qContainerName} 2>/dev/null || true
|
|
318
|
+
|
|
319
|
+
docker run --rm -i --name ${qContainerName} \\
|
|
320
|
+
${mountLines.join('\n')}
|
|
321
|
+
${envLines.join('\n')}
|
|
322
|
+
"\$IMAGE_TAG" \\
|
|
323
|
+
${containerArgs.join(' ')}
|
|
324
|
+
|
|
325
|
+
EXIT_CODE=$?
|
|
326
|
+
|
|
327
|
+
if [ "$EXIT_CODE" -eq 42 ]; then
|
|
328
|
+
exec ${qUpdateScriptPath}
|
|
329
|
+
fi
|
|
330
|
+
|
|
331
|
+
exit "$EXIT_CODE"
|
|
332
|
+
`;
|
|
333
|
+
}
|
|
334
|
+
/** Generate the update-and-restart.sh script for systemd */
|
|
335
|
+
function generateUpdateScript() {
|
|
336
|
+
const configDir = process.env.AI_SUPPORT_AGENT_CONFIG_DIR
|
|
337
|
+
? path.resolve(process.env.AI_SUPPORT_AGENT_CONFIG_DIR)
|
|
338
|
+
: path.join(os.homedir(), '.ai-support-agent');
|
|
339
|
+
// Quote interpolated paths so a HOME / config dir containing whitespace
|
|
340
|
+
// or shell metacharacters doesn't word-split the generated script.
|
|
341
|
+
const qSystemdDir = shellQuote(getSystemdUserDir());
|
|
342
|
+
const qVersionFile = shellQuote(path.join(configDir, 'update-version.json'));
|
|
343
|
+
return `#!/bin/bash
|
|
344
|
+
set -uo pipefail
|
|
345
|
+
shopt -s nullglob
|
|
346
|
+
|
|
347
|
+
# Load nvm if available so that node/npm are on PATH when launched from systemd
|
|
348
|
+
export NVM_DIR="\${HOME}/.nvm"
|
|
349
|
+
# shellcheck disable=SC1091
|
|
350
|
+
[ -s "\${NVM_DIR}/nvm.sh" ] && source "\${NVM_DIR}/nvm.sh"
|
|
351
|
+
export PATH="/usr/local/bin:/usr/bin:/bin:\${PATH}"
|
|
352
|
+
|
|
353
|
+
LOG_PREFIX="[update-and-restart $(date -u '+%Y-%m-%dT%H:%M:%SZ')]"
|
|
354
|
+
|
|
355
|
+
# Best-effort secret redaction for command output that we echo to stderr.
|
|
356
|
+
redact_secrets() {
|
|
357
|
+
sed -E \\
|
|
358
|
+
-e 's#(Bearer )[A-Za-z0-9._-]+#\\1***REDACTED***#gi' \\
|
|
359
|
+
-e 's#(authToken[[:space:]]*[:=][[:space:]]*"?)[^"[:space:]]+#\\1***REDACTED***#gi' \\
|
|
360
|
+
-e 's#(_authToken[[:space:]]*[:=][[:space:]]*"?)[^"[:space:]]+#\\1***REDACTED***#gi' \\
|
|
361
|
+
-e 's#(X-Auth-Token:[[:space:]]*)[^[:space:]]+#\\1***REDACTED***#gi' \\
|
|
362
|
+
-e 's#(https?://)[^/:[:space:]@]+:[^@/[:space:]]+@#\\1***REDACTED***@#gi'
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
SYSTEMD_USER_DIR=${qSystemdDir}
|
|
366
|
+
|
|
367
|
+
# 1. Stop all per-project systemd services. systemctl does not glob unit
|
|
368
|
+
# names itself, so expand via the shell and stop each unit individually.
|
|
369
|
+
for unit_path in "$SYSTEMD_USER_DIR"/${SERVICE_PREFIX}-*.service; do
|
|
370
|
+
[ -f "$unit_path" ] || continue
|
|
371
|
+
unit_name=$(basename "$unit_path")
|
|
372
|
+
# Skip the legacy aggregate unit if it happens to match the prefix.
|
|
373
|
+
if [ "$unit_name" = "${SERVICE_NAME}" ]; then
|
|
374
|
+
continue
|
|
375
|
+
fi
|
|
376
|
+
systemctl --user stop "$unit_name" 2>/dev/null || true
|
|
377
|
+
done
|
|
378
|
+
|
|
379
|
+
# 2. Install new version if update-version.json exists.
|
|
380
|
+
VERSION_FILE=${qVersionFile}
|
|
381
|
+
_INSTALL_OK=true
|
|
382
|
+
if [ -f "$VERSION_FILE" ]; then
|
|
383
|
+
# Pass the path via env var so an apostrophe (or other JS string metachar) in
|
|
384
|
+
# HOME or AI_SUPPORT_AGENT_CONFIG_DIR cannot break the JS string literal.
|
|
385
|
+
NEW_VERSION=$(VERSION_FILE="$VERSION_FILE" node -e "try{console.log(JSON.parse(require('fs').readFileSync(process.env.VERSION_FILE,'utf-8')).version||'')}catch(e){console.log('')}" 2>/dev/null || echo "")
|
|
386
|
+
rm -f "$VERSION_FILE"
|
|
387
|
+
if [ -n "$NEW_VERSION" ]; then
|
|
388
|
+
NPM_OUTPUT=$(npm install -g "@ai-support-agent/cli@$NEW_VERSION" --quiet 2>&1)
|
|
389
|
+
NPM_STATUS=$?
|
|
390
|
+
if [ "$NPM_STATUS" -ne 0 ]; then
|
|
391
|
+
echo "$LOG_PREFIX ERROR: npm install -g @ai-support-agent/cli@$NEW_VERSION failed (exit $NPM_STATUS)" >&2
|
|
392
|
+
printf '%s\\n' "$NPM_OUTPUT" | redact_secrets >&2
|
|
393
|
+
_INSTALL_OK=false
|
|
394
|
+
else
|
|
395
|
+
SI_OUTPUT=$(ai-support-agent service install 2>&1)
|
|
396
|
+
SI_STATUS=$?
|
|
397
|
+
if [ "$SI_STATUS" -ne 0 ]; then
|
|
398
|
+
echo "$LOG_PREFIX ERROR: ai-support-agent service install failed (exit $SI_STATUS)" >&2
|
|
399
|
+
printf '%s\\n' "$SI_OUTPUT" | redact_secrets >&2
|
|
400
|
+
_INSTALL_OK=false
|
|
401
|
+
fi
|
|
402
|
+
fi
|
|
403
|
+
fi
|
|
404
|
+
fi
|
|
405
|
+
|
|
406
|
+
# 3. Reload systemd and restart all per-project services (always, even if install failed)
|
|
407
|
+
systemctl --user daemon-reload || true
|
|
408
|
+
|
|
409
|
+
_RELOAD_FAILED=0
|
|
410
|
+
for unit_path in "$SYSTEMD_USER_DIR"/${SERVICE_PREFIX}-*.service; do
|
|
411
|
+
[ -f "$unit_path" ] || continue
|
|
412
|
+
unit_name=$(basename "$unit_path")
|
|
413
|
+
# Skip the legacy aggregate unit
|
|
414
|
+
if [ "$unit_name" = "${SERVICE_NAME}" ]; then
|
|
415
|
+
continue
|
|
416
|
+
fi
|
|
417
|
+
if ! systemctl --user start "$unit_name" 2>&1; then
|
|
418
|
+
echo "$LOG_PREFIX ERROR: systemctl --user start $unit_name failed" >&2
|
|
419
|
+
_RELOAD_FAILED=$((_RELOAD_FAILED + 1))
|
|
420
|
+
fi
|
|
421
|
+
done
|
|
422
|
+
|
|
423
|
+
if [ "$_RELOAD_FAILED" -gt 0 ]; then
|
|
424
|
+
echo "$LOG_PREFIX ERROR: $_RELOAD_FAILED systemd unit(s) failed to restart" >&2
|
|
425
|
+
fi
|
|
426
|
+
|
|
427
|
+
if [ "$_INSTALL_OK" = "false" ] || [ "$_RELOAD_FAILED" -gt 0 ]; then
|
|
428
|
+
exit 1
|
|
429
|
+
fi
|
|
430
|
+
|
|
431
|
+
exit 0
|
|
432
|
+
`;
|
|
433
|
+
}
|
|
434
|
+
// ---------------------------------------------------------------------------
|
|
435
|
+
// Per-project file writing
|
|
436
|
+
// ---------------------------------------------------------------------------
|
|
437
|
+
/**
|
|
438
|
+
* Write run.sh and systemd unit for a single project. Does NOT systemctl start.
|
|
439
|
+
* Returns the unit file path.
|
|
440
|
+
*/
|
|
441
|
+
function writeProjectServiceFiles(project, options = {}) {
|
|
442
|
+
const { tenantCode, projectCode } = project;
|
|
443
|
+
const projectKey = `${sanitize(tenantCode)}-${sanitize(projectCode)}`;
|
|
444
|
+
const logDir = getLogDir();
|
|
445
|
+
const projectLogDir = path.join(logDir, projectKey);
|
|
446
|
+
if (!fs.existsSync(projectLogDir)) {
|
|
447
|
+
fs.mkdirSync(projectLogDir, { recursive: true, mode: 0o700 });
|
|
448
|
+
}
|
|
449
|
+
const systemdDir = getSystemdUserDir();
|
|
450
|
+
if (!fs.existsSync(systemdDir)) {
|
|
451
|
+
fs.mkdirSync(systemdDir, { recursive: true });
|
|
452
|
+
}
|
|
453
|
+
const servicesDir = getServicesDir();
|
|
454
|
+
const projectServiceDir = path.join(servicesDir, projectKey);
|
|
455
|
+
if (!fs.existsSync(projectServiceDir)) {
|
|
456
|
+
fs.mkdirSync(projectServiceDir, { recursive: true, mode: 0o700 });
|
|
457
|
+
}
|
|
458
|
+
const projectConfigHostDir = getProjectConfigHostDir(tenantCode, projectCode);
|
|
459
|
+
if (!fs.existsSync(projectConfigHostDir)) {
|
|
460
|
+
fs.mkdirSync(projectConfigHostDir, { recursive: true, mode: 0o700 });
|
|
461
|
+
}
|
|
462
|
+
const updateScriptPath = getUpdateScriptPath();
|
|
463
|
+
const wrapperScriptPath = path.join(projectServiceDir, 'run.sh');
|
|
464
|
+
const wrapperScript = generateWrapperScript({
|
|
465
|
+
imageName: docker_utils_1.IMAGE_NAME,
|
|
466
|
+
tenantCode,
|
|
467
|
+
projectCode,
|
|
468
|
+
projectConfigHostDir,
|
|
469
|
+
projectDir: project.projectDir,
|
|
470
|
+
token: project.token,
|
|
471
|
+
apiUrl: project.apiUrl,
|
|
472
|
+
anthropicApiKey: process.env.ANTHROPIC_API_KEY,
|
|
473
|
+
claudeCodeOauthToken: process.env.CLAUDE_CODE_OAUTH_TOKEN,
|
|
474
|
+
verbose: options.verbose,
|
|
475
|
+
updateScriptPath,
|
|
476
|
+
});
|
|
477
|
+
// 0o700 — wrapper embeds the agent token (and optionally ANTHROPIC_API_KEY
|
|
478
|
+
// / CLAUDE_CODE_OAUTH_TOKEN) as shell-quoted literals. See writeFileEnsuringMode.
|
|
479
|
+
writeFileEnsuringMode(wrapperScriptPath, wrapperScript, 0o700);
|
|
480
|
+
const unitName = getProjectUnitName(tenantCode, projectCode);
|
|
481
|
+
const unitPath = getProjectUnitFilePath(tenantCode, projectCode);
|
|
482
|
+
const unit = generateProjectServiceUnit({ unitName, wrapperScriptPath, logDir: projectLogDir });
|
|
483
|
+
fs.writeFileSync(unitPath, unit, 'utf-8');
|
|
484
|
+
return unitPath;
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Install service files and immediately start a single project via systemctl.
|
|
488
|
+
* Idempotent: stops any existing service before starting so that token/config
|
|
489
|
+
* updates take effect immediately.
|
|
490
|
+
*/
|
|
491
|
+
function installAndStartProject(project, options = {}) {
|
|
492
|
+
const updateScriptPath = getUpdateScriptPath();
|
|
493
|
+
const updateScript = generateUpdateScript();
|
|
494
|
+
writeFileEnsuringMode(updateScriptPath, updateScript, 0o700);
|
|
495
|
+
writeProjectServiceFiles(project, options);
|
|
496
|
+
const unitName = getProjectUnitName(project.tenantCode, project.projectCode);
|
|
497
|
+
const unitFile = `${unitName}.service`;
|
|
498
|
+
// Reload systemd so the new/updated unit is recognised. Use the same
|
|
499
|
+
// diagnostic key as the strategy install() so support logs can correlate.
|
|
500
|
+
try {
|
|
501
|
+
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'pipe' });
|
|
502
|
+
}
|
|
503
|
+
catch (error) {
|
|
504
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
505
|
+
logger_1.logger.warn((0, i18n_1.t)('service.daemonReloadFailed', { message }));
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
// Stop first so that updated run.sh / token changes take effect.
|
|
509
|
+
try {
|
|
510
|
+
(0, child_process_1.execSync)(`systemctl --user stop "${unitFile}"`, { stdio: 'pipe' });
|
|
511
|
+
}
|
|
512
|
+
catch { /* not running */ }
|
|
513
|
+
// Enable so the service starts on login. Warn (don't fail) on errors —
|
|
514
|
+
// common cases are missing user instance (linger off on shared hosts),
|
|
515
|
+
// which still allows start to succeed for the current session.
|
|
516
|
+
try {
|
|
517
|
+
(0, child_process_1.execSync)(`systemctl --user enable "${unitFile}"`, { stdio: 'pipe' });
|
|
518
|
+
}
|
|
519
|
+
catch (error) {
|
|
520
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
521
|
+
logger_1.logger.warn((0, i18n_1.t)('service.enableFailed', { unit: unitFile, message }));
|
|
522
|
+
}
|
|
523
|
+
try {
|
|
524
|
+
(0, child_process_1.execSync)(`systemctl --user start "${unitFile}"`, { stdio: 'pipe' });
|
|
525
|
+
}
|
|
526
|
+
catch (error) {
|
|
527
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
528
|
+
logger_1.logger.warn((0, i18n_1.t)('service.loadWarning', { label: `${unitName}: ${message}` }));
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
// Verify the service is actually active after start.
|
|
532
|
+
try {
|
|
533
|
+
const out = (0, child_process_1.execSync)(`systemctl --user is-active "${unitFile}"`, { stdio: 'pipe' }).toString().trim();
|
|
534
|
+
if (out !== 'active') {
|
|
535
|
+
logger_1.logger.warn((0, i18n_1.t)('service.loadWarning', { label: unitName }));
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
catch {
|
|
539
|
+
logger_1.logger.warn((0, i18n_1.t)('service.loadWarning', { label: unitName }));
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
// ---------------------------------------------------------------------------
|
|
543
|
+
// LinuxServiceStrategy
|
|
544
|
+
// ---------------------------------------------------------------------------
|
|
80
545
|
class LinuxServiceStrategy {
|
|
81
546
|
install(options) {
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (!fs.existsSync(entryPoint)) {
|
|
87
|
-
logger_1.logger.error((0, i18n_1.t)('service.entryPointNotFound', { path: entryPoint }));
|
|
547
|
+
const config = (0, config_manager_1.loadConfig)();
|
|
548
|
+
const projects = config ? (0, config_manager_1.getProjectList)(config) : [];
|
|
549
|
+
if (projects.length === 0) {
|
|
550
|
+
logger_1.logger.error((0, i18n_1.t)('service.noProjectsConfigured'));
|
|
88
551
|
return;
|
|
89
552
|
}
|
|
553
|
+
const logDir = getLogDir();
|
|
90
554
|
if (!fs.existsSync(logDir)) {
|
|
91
555
|
fs.mkdirSync(logDir, { recursive: true });
|
|
92
556
|
}
|
|
93
|
-
const systemdDir =
|
|
557
|
+
const systemdDir = getSystemdUserDir();
|
|
94
558
|
if (!fs.existsSync(systemdDir)) {
|
|
95
559
|
fs.mkdirSync(systemdDir, { recursive: true });
|
|
96
560
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
561
|
+
const updateScriptPath = getUpdateScriptPath();
|
|
562
|
+
const updateScript = generateUpdateScript();
|
|
563
|
+
writeFileEnsuringMode(updateScriptPath, updateScript, 0o700);
|
|
564
|
+
const writtenUnits = [];
|
|
565
|
+
const expectedUnitNames = new Set();
|
|
566
|
+
for (const project of projects) {
|
|
567
|
+
const unitPath = writeProjectServiceFiles(project, { verbose: options.verbose });
|
|
568
|
+
const unitName = getProjectUnitName(project.tenantCode, project.projectCode);
|
|
569
|
+
expectedUnitNames.add(unitName);
|
|
570
|
+
writtenUnits.push({
|
|
571
|
+
projectCode: project.projectCode,
|
|
572
|
+
unitPath,
|
|
573
|
+
unitFile: `${unitName}.service`,
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
// Remove orphaned per-project units for projects that are no longer in
|
|
577
|
+
// config. Without this, `service start` / `status` would keep iterating
|
|
578
|
+
// over stale units with outdated tokens because getAllProjectUnits()
|
|
579
|
+
// walks the filesystem, not the config.
|
|
580
|
+
for (const { unitName, unitPath } of getAllProjectUnits()) {
|
|
581
|
+
if (expectedUnitNames.has(unitName))
|
|
582
|
+
continue;
|
|
583
|
+
const orphanUnitFile = `${unitName}.service`;
|
|
584
|
+
try {
|
|
585
|
+
(0, child_process_1.execSync)(`systemctl --user disable --now "${orphanUnitFile}"`, { stdio: 'pipe' });
|
|
586
|
+
}
|
|
587
|
+
catch { /* not loaded — ignore */ }
|
|
588
|
+
try {
|
|
589
|
+
if (fs.existsSync(unitPath))
|
|
590
|
+
fs.unlinkSync(unitPath);
|
|
591
|
+
}
|
|
592
|
+
catch (error) {
|
|
593
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
594
|
+
logger_1.logger.warn((0, i18n_1.t)('service.orphanUnitRemoveFailed', { unit: orphanUnitFile, message }));
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
// Reload systemd so the new/updated units are recognised, then enable
|
|
598
|
+
// each so they auto-start at next login/boot. Failures to enable surface
|
|
599
|
+
// as warnings (lingering may not be configured) — the unit file itself
|
|
600
|
+
// is still on disk and a subsequent `service start` will run it for the
|
|
601
|
+
// current session, so we still emit the per-project "installed" line
|
|
602
|
+
// after attempting enable. The warning makes clear that auto-start may
|
|
603
|
+
// not work until linger is enabled.
|
|
604
|
+
try {
|
|
605
|
+
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'pipe' });
|
|
606
|
+
}
|
|
607
|
+
catch (error) {
|
|
608
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
609
|
+
logger_1.logger.warn((0, i18n_1.t)('service.daemonReloadFailed', { message }));
|
|
610
|
+
}
|
|
611
|
+
for (const { projectCode, unitPath, unitFile } of writtenUnits) {
|
|
612
|
+
try {
|
|
613
|
+
(0, child_process_1.execSync)(`systemctl --user enable "${unitFile}"`, { stdio: 'pipe' });
|
|
614
|
+
}
|
|
615
|
+
catch (error) {
|
|
616
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
617
|
+
logger_1.logger.warn((0, i18n_1.t)('service.enableFailed', { unit: unitFile, message }));
|
|
618
|
+
}
|
|
619
|
+
logger_1.logger.success((0, i18n_1.t)('service.projectInstalled', { projectCode, path: unitPath }));
|
|
620
|
+
}
|
|
621
|
+
logger_1.logger.info((0, i18n_1.t)('service.loadHintMulti'));
|
|
110
622
|
logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
|
|
111
623
|
logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
|
|
112
624
|
}
|
|
113
625
|
uninstall() {
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
116
|
-
logger_1.logger.warn((0, i18n_1.t)('service.notInstalled
|
|
626
|
+
const projectUnits = getAllProjectUnits();
|
|
627
|
+
if (projectUnits.length === 0) {
|
|
628
|
+
logger_1.logger.warn((0, i18n_1.t)('service.notInstalled'));
|
|
117
629
|
return;
|
|
118
630
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
631
|
+
for (const { unitName, unitPath } of projectUnits) {
|
|
632
|
+
const unitFile = `${unitName}.service`;
|
|
633
|
+
// Stop and disable; ignore failures (may not be loaded)
|
|
634
|
+
try {
|
|
635
|
+
(0, child_process_1.execSync)(`systemctl --user disable --now "${unitFile}"`, { stdio: 'pipe' });
|
|
636
|
+
}
|
|
637
|
+
catch { /* not loaded */ }
|
|
638
|
+
if (fs.existsSync(unitPath)) {
|
|
639
|
+
fs.unlinkSync(unitPath);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
try {
|
|
643
|
+
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'pipe' });
|
|
644
|
+
}
|
|
645
|
+
catch { /* tolerate */ }
|
|
646
|
+
logger_1.logger.success((0, i18n_1.t)('service.uninstalled'));
|
|
122
647
|
}
|
|
123
648
|
start() {
|
|
124
|
-
const
|
|
125
|
-
if (
|
|
126
|
-
logger_1.logger.error((0, i18n_1.t)('service.notInstalled
|
|
649
|
+
const projectUnits = getAllProjectUnits();
|
|
650
|
+
if (projectUnits.length === 0) {
|
|
651
|
+
logger_1.logger.error((0, i18n_1.t)('service.notInstalled'));
|
|
127
652
|
return;
|
|
128
653
|
}
|
|
654
|
+
let failed = false;
|
|
129
655
|
try {
|
|
130
|
-
const serviceName = SERVICE_NAME.replace('.service', '');
|
|
131
656
|
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'pipe' });
|
|
132
|
-
(0, child_process_1.execSync)(`systemctl --user start ${serviceName}`, { stdio: 'pipe' });
|
|
133
|
-
logger_1.logger.success((0, i18n_1.t)('service.started'));
|
|
134
657
|
}
|
|
135
|
-
catch
|
|
136
|
-
|
|
137
|
-
|
|
658
|
+
catch {
|
|
659
|
+
// tolerate — start may still work
|
|
660
|
+
}
|
|
661
|
+
for (const { unitName } of projectUnits) {
|
|
662
|
+
const unit = `${unitName}.service`;
|
|
663
|
+
try {
|
|
664
|
+
(0, child_process_1.execSync)(`systemctl --user start "${unit}"`, { stdio: 'pipe' });
|
|
665
|
+
}
|
|
666
|
+
catch (error) {
|
|
667
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
668
|
+
// Include unit name so operators can identify the failing project
|
|
669
|
+
// when start runs over N units.
|
|
670
|
+
logger_1.logger.error((0, i18n_1.t)('service.unitStartFailed', { unit, message }));
|
|
671
|
+
failed = true;
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
if (!failed) {
|
|
675
|
+
logger_1.logger.success((0, i18n_1.t)('service.started'));
|
|
138
676
|
}
|
|
139
677
|
}
|
|
140
678
|
stop() {
|
|
141
|
-
const
|
|
142
|
-
if (
|
|
143
|
-
logger_1.logger.error((0, i18n_1.t)('service.notInstalled
|
|
679
|
+
const projectUnits = getAllProjectUnits();
|
|
680
|
+
if (projectUnits.length === 0) {
|
|
681
|
+
logger_1.logger.error((0, i18n_1.t)('service.notInstalled'));
|
|
144
682
|
return;
|
|
145
683
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
684
|
+
let failed = false;
|
|
685
|
+
for (const { unitName } of projectUnits) {
|
|
686
|
+
const unit = `${unitName}.service`;
|
|
687
|
+
try {
|
|
688
|
+
(0, child_process_1.execSync)(`systemctl --user stop "${unit}"`, { stdio: 'pipe' });
|
|
689
|
+
}
|
|
690
|
+
catch (error) {
|
|
691
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
692
|
+
logger_1.logger.error((0, i18n_1.t)('service.unitStopFailed', { unit, message }));
|
|
693
|
+
failed = true;
|
|
694
|
+
}
|
|
150
695
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
logger_1.logger.error((0, i18n_1.t)('service.stopFailed', { message }));
|
|
696
|
+
if (!failed) {
|
|
697
|
+
logger_1.logger.success((0, i18n_1.t)('service.stopped'));
|
|
154
698
|
}
|
|
155
699
|
}
|
|
156
700
|
restart() {
|
|
157
|
-
const
|
|
158
|
-
if (
|
|
159
|
-
logger_1.logger.error((0, i18n_1.t)('service.notInstalled
|
|
701
|
+
const projectUnits = getAllProjectUnits();
|
|
702
|
+
if (projectUnits.length === 0) {
|
|
703
|
+
logger_1.logger.error((0, i18n_1.t)('service.notInstalled'));
|
|
160
704
|
return;
|
|
161
705
|
}
|
|
706
|
+
let failed = false;
|
|
162
707
|
try {
|
|
163
708
|
(0, child_process_1.execSync)('systemctl --user daemon-reload', { stdio: 'pipe' });
|
|
164
|
-
const serviceName = SERVICE_NAME.replace('.service', '');
|
|
165
|
-
(0, child_process_1.execSync)(`systemctl --user restart ${serviceName}`, { stdio: 'pipe' });
|
|
166
|
-
logger_1.logger.success((0, i18n_1.t)('service.restarted'));
|
|
167
709
|
}
|
|
168
|
-
catch
|
|
169
|
-
|
|
170
|
-
|
|
710
|
+
catch {
|
|
711
|
+
// tolerate
|
|
712
|
+
}
|
|
713
|
+
for (const { unitName } of projectUnits) {
|
|
714
|
+
const unit = `${unitName}.service`;
|
|
715
|
+
try {
|
|
716
|
+
(0, child_process_1.execSync)(`systemctl --user restart "${unit}"`, { stdio: 'pipe' });
|
|
717
|
+
}
|
|
718
|
+
catch (error) {
|
|
719
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
720
|
+
logger_1.logger.error((0, i18n_1.t)('service.unitRestartFailed', { unit, message }));
|
|
721
|
+
failed = true;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
if (!failed) {
|
|
725
|
+
logger_1.logger.success((0, i18n_1.t)('service.restarted'));
|
|
171
726
|
}
|
|
172
727
|
}
|
|
173
728
|
status() {
|
|
174
|
-
const
|
|
729
|
+
const projectUnits = getAllProjectUnits();
|
|
175
730
|
const logDir = getLogDir();
|
|
176
|
-
if (
|
|
731
|
+
if (projectUnits.length === 0) {
|
|
177
732
|
return { installed: false, running: false };
|
|
178
733
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
734
|
+
// Build a reverse map from unit name → original projectCode using the
|
|
735
|
+
// user's config. sanitize() collapses `_` and other chars to `-`, so
|
|
736
|
+
// splitting the unit name on `-` is lossy when tenant/project codes
|
|
737
|
+
// contain those characters; the config is the source of truth.
|
|
738
|
+
const config = (0, config_manager_1.loadConfig)();
|
|
739
|
+
const projectByUnitName = new Map();
|
|
740
|
+
if (config) {
|
|
741
|
+
for (const project of (0, config_manager_1.getProjectList)(config)) {
|
|
742
|
+
projectByUnitName.set(getProjectUnitName(project.tenantCode, project.projectCode), project.projectCode);
|
|
743
|
+
}
|
|
187
744
|
}
|
|
188
|
-
|
|
189
|
-
|
|
745
|
+
const projects = [];
|
|
746
|
+
let anyRunning = false;
|
|
747
|
+
let firstPid;
|
|
748
|
+
for (const { unitName } of projectUnits) {
|
|
749
|
+
// Prefer the canonical projectCode from config. For orphaned units no
|
|
750
|
+
// longer in config, fall back to the unit name with the brand prefix
|
|
751
|
+
// stripped so users can see something close to the original code.
|
|
752
|
+
const fallback = unitName.startsWith(`${SERVICE_PREFIX}-`)
|
|
753
|
+
? unitName.slice(SERVICE_PREFIX.length + 1)
|
|
754
|
+
: unitName;
|
|
755
|
+
const projectCode = projectByUnitName.get(unitName) ?? fallback;
|
|
756
|
+
let running = false;
|
|
757
|
+
let pid;
|
|
758
|
+
try {
|
|
759
|
+
const output = (0, child_process_1.execSync)(`systemctl --user show "${unitName}.service" --property=ActiveState,MainPID --no-pager`, { stdio: 'pipe' }).toString();
|
|
760
|
+
const activeMatch = output.match(/ActiveState=(\w+)/);
|
|
761
|
+
const pidMatch = output.match(/MainPID=(\d+)/);
|
|
762
|
+
if (activeMatch?.[1] === 'active') {
|
|
763
|
+
running = true;
|
|
764
|
+
if (pidMatch && pidMatch[1] !== '0') {
|
|
765
|
+
pid = parseInt(pidMatch[1], 10);
|
|
766
|
+
if (!firstPid)
|
|
767
|
+
firstPid = pid;
|
|
768
|
+
}
|
|
769
|
+
anyRunning = true;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
catch {
|
|
773
|
+
// Not loaded — running stays false
|
|
774
|
+
}
|
|
775
|
+
projects.push({ label: unitName, projectCode, running, pid });
|
|
190
776
|
}
|
|
777
|
+
return { installed: true, running: anyRunning, pid: firstPid, logDir, projects };
|
|
191
778
|
}
|
|
192
779
|
}
|
|
193
780
|
exports.LinuxServiceStrategy = LinuxServiceStrategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,11 @@ export declare function registerServiceCommands(program: Command): void;
|
|
|
17
17
|
* Install service files and immediately start a single project.
|
|
18
18
|
* Called automatically after addProject() so users don't need to run
|
|
19
19
|
* install-service manually after registering a token.
|
|
20
|
-
*
|
|
20
|
+
*
|
|
21
|
+
* Supported platforms:
|
|
22
|
+
* - darwin: per-project LaunchAgents
|
|
23
|
+
* - linux: per-project systemd --user units
|
|
24
|
+
* Other platforms log a hint and skip.
|
|
21
25
|
*/
|
|
22
26
|
export declare function installAndStartProject(project: ProjectRegistration, options?: {
|
|
23
27
|
verbose?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-command.d.ts","sourceRoot":"","sources":["../../src/cli/service-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,EAAyB,aAAa,EAA0D,MAAM,0BAA0B,CAAA;AAGvI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAgBnD,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAOlC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAOrC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6ClE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE9D;AAED
|
|
1
|
+
{"version":3,"file":"service-command.d.ts","sourceRoot":"","sources":["../../src/cli/service-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,OAAO,EAAyB,aAAa,EAA0D,MAAM,0BAA0B,CAAA;AAGvI,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAgBnD,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAOlC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAOrC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6ClE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,IAAI,CAUN;AAGD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -182,13 +182,21 @@ function registerServiceCommands(program) {
|
|
|
182
182
|
* Install service files and immediately start a single project.
|
|
183
183
|
* Called automatically after addProject() so users don't need to run
|
|
184
184
|
* install-service manually after registering a token.
|
|
185
|
-
*
|
|
185
|
+
*
|
|
186
|
+
* Supported platforms:
|
|
187
|
+
* - darwin: per-project LaunchAgents
|
|
188
|
+
* - linux: per-project systemd --user units
|
|
189
|
+
* Other platforms log a hint and skip.
|
|
186
190
|
*/
|
|
187
191
|
function installAndStartProject(project, options = {}) {
|
|
188
|
-
if (process.platform
|
|
189
|
-
|
|
192
|
+
if (process.platform === 'darwin') {
|
|
193
|
+
(0, darwin_service_1.installAndStartProject)(project, options);
|
|
190
194
|
return;
|
|
191
195
|
}
|
|
192
|
-
(
|
|
196
|
+
if (process.platform === 'linux') {
|
|
197
|
+
(0, linux_service_1.installAndStartProject)(project, options);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
logger_1.logger.info((0, i18n_1.t)('service.autoStartNotSupported'));
|
|
193
201
|
}
|
|
194
202
|
//# sourceMappingURL=service-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-command.js","sourceRoot":"","sources":["../../src/cli/service-command.ts"],"names":[],"mappings":";;;AAuBA,wCAOC;AAED,4CAOC;AAED,oCAOC;AAED,kCAOC;AAED,wCAOC;AAED,sCA6CC;AAED,0DAyEC;
|
|
1
|
+
{"version":3,"file":"service-command.js","sourceRoot":"","sources":["../../src/cli/service-command.ts"],"names":[],"mappings":"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"}
|
package/dist/locales/en.json
CHANGED
|
@@ -174,23 +174,24 @@
|
|
|
174
174
|
"cmd.service.status.verbose": "Show detailed status with log file paths",
|
|
175
175
|
"service.unsupportedPlatform": "This command is not supported on {{platform}}.",
|
|
176
176
|
"service.entryPointNotFound": "CLI entry point not found: {{path}}",
|
|
177
|
-
"service.installed": "
|
|
178
|
-
"service.projectInstalled": "
|
|
177
|
+
"service.installed": "Service file created: {{path}}",
|
|
178
|
+
"service.projectInstalled": "Service file created for {{projectCode}}: {{path}}",
|
|
179
179
|
"service.loadHint": "To start the service now, run: launchctl load {{path}}",
|
|
180
180
|
"service.loadHintMulti": "To start all services, run: ai-support-agent service start",
|
|
181
181
|
"service.legacyPlistFound": "Found legacy plist at {{path}}. Run 'service uninstall' to remove it.",
|
|
182
182
|
"service.noProjectsConfigured": "No projects configured. Run 'ai-support-agent configure' to register a project first.",
|
|
183
183
|
"service.logDir": "Logs will be written to: {{path}}",
|
|
184
|
-
"service.notInstalled": "
|
|
185
|
-
"service.uninstalled": "
|
|
184
|
+
"service.notInstalled": "No service files found. Service is not installed.",
|
|
185
|
+
"service.uninstalled": "Service files removed.",
|
|
186
|
+
"service.daemonReloadFailed": "Warning: systemctl --user daemon-reload failed: {{message}}",
|
|
187
|
+
"service.enableFailed": "Warning: systemctl --user enable {{unit}} failed: {{message}}. The service will run now but may not auto-start at next login.",
|
|
188
|
+
"service.orphanUnitRemoveFailed": "Warning: failed to remove orphaned unit {{unit}}: {{message}}",
|
|
189
|
+
"service.unitStartFailed": "Failed to start {{unit}}: {{message}}",
|
|
190
|
+
"service.unitStopFailed": "Failed to stop {{unit}}: {{message}}",
|
|
191
|
+
"service.unitRestartFailed": "Failed to restart {{unit}}: {{message}}",
|
|
186
192
|
"service.overwriting": "Existing service file found at {{path}}. Overwriting.",
|
|
187
193
|
"service.noLogRotation": "Note: Logs are not automatically rotated.",
|
|
188
194
|
"service.unloadHint": "If the service is running, stop it with: launchctl remove {{label}}",
|
|
189
|
-
"service.installed.linux": "systemd user service created: {{path}}",
|
|
190
|
-
"service.loadHint.linux": "To start the service now, run: systemctl --user daemon-reload && systemctl --user enable --now ai-support-agent",
|
|
191
|
-
"service.notInstalled.linux": "systemd user service not found. Service is not installed.",
|
|
192
|
-
"service.uninstalled.linux": "systemd user service removed.",
|
|
193
|
-
"service.unloadHint.linux": "If the service is running, stop it with: systemctl --user disable --now ai-support-agent",
|
|
194
195
|
"service.installed.win32": "Scheduled task created: {{taskName}}",
|
|
195
196
|
"service.loadHint.win32": "To start the task now, run: schtasks /Run /TN \"{{taskName}}\"",
|
|
196
197
|
"service.notInstalled.win32": "Scheduled task not found. Service is not installed.",
|
|
@@ -208,8 +209,8 @@
|
|
|
208
209
|
"service.status.stopped": "Service is installed but not running.",
|
|
209
210
|
"service.status.logHint": "Logs:\n stdout: {{outLog}}\n stderr: {{errLog}}",
|
|
210
211
|
"service.autoStartFailed": "Warning: could not auto-start service for this project: {{message}}",
|
|
211
|
-
"service.autoStartNotSupported": "Service auto-start is
|
|
212
|
-
"service.loadWarning": "Warning:
|
|
212
|
+
"service.autoStartNotSupported": "Service auto-start is not supported on this platform. Run 'ai-support-agent service install' then 'ai-support-agent service start' to start the service manually.",
|
|
213
|
+
"service.loadWarning": "Warning: service {{label}} may not have loaded correctly. Run 'ai-support-agent service start' to retry.",
|
|
213
214
|
"service.status.noProjects": "No projects registered. Run 'ai-support-agent configure --token <token>' to register a project.",
|
|
214
215
|
"service.status.projectRunning": "✓ {{projectCode}}: running (PID: {{pid}})",
|
|
215
216
|
"service.status.projectStopped": "✗ {{projectCode}}: stopped"
|
package/dist/locales/ja.json
CHANGED
|
@@ -174,23 +174,24 @@
|
|
|
174
174
|
"cmd.service.status.verbose": "ログファイルのパスを含む詳細情報を表示",
|
|
175
175
|
"service.unsupportedPlatform": "このコマンドは {{platform}} ではサポートされていません。",
|
|
176
176
|
"service.entryPointNotFound": "CLIエントリポイントが見つかりません: {{path}}",
|
|
177
|
-
"service.installed": "
|
|
178
|
-
"service.projectInstalled": "{{projectCode}}
|
|
177
|
+
"service.installed": "サービスファイルを作成しました: {{path}}",
|
|
178
|
+
"service.projectInstalled": "{{projectCode}} のサービスファイルを作成しました: {{path}}",
|
|
179
179
|
"service.loadHint": "サービスを今すぐ起動するには: launchctl load {{path}}",
|
|
180
180
|
"service.loadHintMulti": "全サービスを起動するには: ai-support-agent service start",
|
|
181
181
|
"service.legacyPlistFound": "旧来の plist が見つかりました: {{path}}。'service uninstall' で削除してください。",
|
|
182
182
|
"service.noProjectsConfigured": "プロジェクトが設定されていません。先に 'ai-support-agent configure' を実行してプロジェクトを登録してください。",
|
|
183
183
|
"service.logDir": "ログ出力先: {{path}}",
|
|
184
|
-
"service.notInstalled": "
|
|
185
|
-
"service.uninstalled": "
|
|
184
|
+
"service.notInstalled": "サービスファイルが見つかりません。サービスはインストールされていません。",
|
|
185
|
+
"service.uninstalled": "サービスファイルを削除しました。",
|
|
186
|
+
"service.daemonReloadFailed": "警告: systemctl --user daemon-reload に失敗しました: {{message}}",
|
|
187
|
+
"service.enableFailed": "警告: systemctl --user enable {{unit}} に失敗しました: {{message}}。現在のセッションではサービスは起動しますが、次回ログイン時に自動起動しない可能性があります。",
|
|
188
|
+
"service.orphanUnitRemoveFailed": "警告: 残存ユニット {{unit}} の削除に失敗しました: {{message}}",
|
|
189
|
+
"service.unitStartFailed": "{{unit}} の起動に失敗しました: {{message}}",
|
|
190
|
+
"service.unitStopFailed": "{{unit}} の停止に失敗しました: {{message}}",
|
|
191
|
+
"service.unitRestartFailed": "{{unit}} の再起動に失敗しました: {{message}}",
|
|
186
192
|
"service.overwriting": "既存のサービスファイルが見つかりました: {{path}}。上書きします。",
|
|
187
193
|
"service.noLogRotation": "注意: ログは自動ローテーションされません。",
|
|
188
194
|
"service.unloadHint": "サービスが実行中の場合は停止してください: launchctl remove {{label}}",
|
|
189
|
-
"service.installed.linux": "systemd ユーザーサービスを作成しました: {{path}}",
|
|
190
|
-
"service.loadHint.linux": "サービスを今すぐ起動するには: systemctl --user daemon-reload && systemctl --user enable --now ai-support-agent",
|
|
191
|
-
"service.notInstalled.linux": "systemd ユーザーサービスが見つかりません。サービスはインストールされていません。",
|
|
192
|
-
"service.uninstalled.linux": "systemd ユーザーサービスを削除しました。",
|
|
193
|
-
"service.unloadHint.linux": "サービスが実行中の場合は停止してください: systemctl --user disable --now ai-support-agent",
|
|
194
195
|
"service.installed.win32": "スケジュールタスクを作成しました: {{taskName}}",
|
|
195
196
|
"service.loadHint.win32": "タスクを今すぐ実行するには: schtasks /Run /TN \"{{taskName}}\"",
|
|
196
197
|
"service.notInstalled.win32": "スケジュールタスクが見つかりません。サービスはインストールされていません。",
|
|
@@ -208,8 +209,8 @@
|
|
|
208
209
|
"service.status.stopped": "サービスはインストール済みですが停止中です。",
|
|
209
210
|
"service.status.logHint": "ログ:\n stdout: {{outLog}}\n stderr: {{errLog}}",
|
|
210
211
|
"service.autoStartFailed": "警告: プロジェクトのサービス自動起動に失敗しました: {{message}}",
|
|
211
|
-
"service.autoStartNotSupported": "
|
|
212
|
-
"service.loadWarning": "警告:
|
|
212
|
+
"service.autoStartNotSupported": "このプラットフォームではサービスの自動起動に対応していません。'ai-support-agent service install' 後に 'ai-support-agent service start' で手動起動してください。",
|
|
213
|
+
"service.loadWarning": "警告: サービス {{label}} が正しくロードされていない可能性があります。'ai-support-agent service start' で再試行してください。",
|
|
213
214
|
"service.status.noProjects": "登録済みプロジェクトがありません。'ai-support-agent configure --token <token>' でプロジェクトを登録してください。",
|
|
214
215
|
"service.status.projectRunning": "✓ {{projectCode}}: 実行中 (PID: {{pid}})",
|
|
215
216
|
"service.status.projectStopped": "✗ {{projectCode}}: 停止中"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-agent.d.ts","sourceRoot":"","sources":["../src/project-agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"project-agent.d.ts","sourceRoot":"","sources":["../src/project-agent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAIxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAmBjD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAoB,MAAM,SAAS,CAAA;AAKnF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,qBAAa,YAAY;IA+CrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IA/C1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAQ/B;IAED,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO9B;IAED,OAAO,CAAC,aAAa,CAAe;IAKpC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,uBAAuB,CAA+B;IAI9D,OAAO,CAAC,iBAAiB,CAAoD;IAC7E,OAAO,CAAC,iBAAiB,CAA8C;gBAGrE,OAAO,EAAE,mBAAmB,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,EAC7C,kBAAkB,CAAC,EAAE,aAAa,EAClC,iBAAiB,CAAC,EAAE,MAAM;IAqD5B,KAAK,IAAI,IAAI;IAab,IAAI,IAAI,IAAI;IAUZ,MAAM,IAAI,OAAO;IAIjB,SAAS,IAAI,SAAS;IAItB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgB7B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvF,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCrC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YA2CtB,gBAAgB;YAgKhB,eAAe;IAuE7B,OAAO,CAAC,gBAAgB;CAezB"}
|
package/dist/project-agent.js
CHANGED
|
@@ -270,26 +270,23 @@ class ProjectAgent {
|
|
|
270
270
|
logger_1.logger.success(`${this.prefix} Update to ${targetVersion} successful, restarting...`);
|
|
271
271
|
this.stop();
|
|
272
272
|
setTimeout(() => {
|
|
273
|
+
// Inside a Docker container (spawned via `docker run`), process.send is
|
|
274
|
+
// not available. Exit with DOCKER_UPDATE_EXIT_CODE so the host-side
|
|
275
|
+
// DockerSupervisor detects the update and calls installUpdateAndRestart().
|
|
276
|
+
if (process.env.AI_SUPPORT_AGENT_IN_DOCKER === '1') {
|
|
277
|
+
try {
|
|
278
|
+
const versionFile = path.join((0, config_manager_1.getConfigDir)(), 'update-version.json');
|
|
279
|
+
fs.writeFileSync(versionFile, JSON.stringify({ version: targetVersion }), 'utf-8');
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
logger_1.logger.warn(`[update] Failed to write update-version.json: ${err instanceof Error ? err.message : String(err)}`);
|
|
283
|
+
}
|
|
284
|
+
process.exit(constants_1.DOCKER_UPDATE_EXIT_CODE);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
273
287
|
// When running as a child process (forked by ChildProcessManager),
|
|
274
288
|
// notify the parent runner and exit cleanly.
|
|
275
|
-
// In Docker mode the runner exits with DOCKER_UPDATE_EXIT_CODE so the
|
|
276
|
-
// host-side runInDocker() rebuilds the image for the new version.
|
|
277
|
-
// reExecProcess() from a worker would spawn a new runner process
|
|
278
|
-
// in addition to the existing parent, causing duplicate auto-update.
|
|
279
289
|
if (process.send) {
|
|
280
|
-
// Write the new version to a file in the config directory so the host-side
|
|
281
|
-
// runInDocker() can read it and install the correct version before rebuilding
|
|
282
|
-
// the Docker image. The config directory is volume-mounted and accessible
|
|
283
|
-
// from both inside the container and the host.
|
|
284
|
-
if (process.env.AI_SUPPORT_AGENT_IN_DOCKER === '1') {
|
|
285
|
-
try {
|
|
286
|
-
const versionFile = path.join((0, config_manager_1.getConfigDir)(), 'update-version.json');
|
|
287
|
-
fs.writeFileSync(versionFile, JSON.stringify({ version: targetVersion }), 'utf-8');
|
|
288
|
-
}
|
|
289
|
-
catch (err) {
|
|
290
|
-
logger_1.logger.warn(`[update] Failed to write update-version.json: ${err instanceof Error ? err.message : String(err)}`);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
290
|
process.send({ type: 'update_complete', tenantCode: this.tenantCode, projectCode: this.projectCode });
|
|
294
291
|
process.exit(0);
|
|
295
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-agent.js","sourceRoot":"","sources":["../src/project-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-agent.js","sourceRoot":"","sources":["../src/project-agent.ts"],"names":[],"mappings":"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"}
|