@fitlab-ai/agent-infra 0.9.15 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -6
- package/README.zh-CN.md +2 -6
- package/bin/internal-cli.sh +0 -13
- package/dist/bin/internal-cli.js +11 -49
- package/dist/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.js +6 -2
- package/dist/lib/agent-clients/adapters/codex-lifecycle/store.js +43 -3
- package/dist/lib/fs/durable-write.js +2 -0
- package/dist/lib/internal/cli-route-inventory.js +3 -4
- package/dist/lib/internal/manual-validation.js +17 -8
- package/dist/lib/internal/platform-comment.js +60 -2
- package/dist/lib/internal/task-artifact.js +1 -1
- package/dist/lib/internal/task-finalization.js +2 -2
- package/dist/lib/internal/task-lifecycle.js +4 -4
- package/dist/lib/internal/task-operation-registry.js +22 -13
- package/dist/lib/internal/task-orchestration.js +2 -2
- package/dist/lib/internal/task-review.js +12 -7
- package/dist/lib/platform/activity-recovery.js +159 -0
- package/dist/lib/platform/issue-comments.js +89 -31
- package/dist/lib/platform/issues.js +1 -1
- package/dist/lib/platform/pr-change-report.js +5 -4
- package/dist/lib/platform/pr-summary.js +64 -32
- package/dist/lib/platform/pull-requests.js +3 -3
- package/dist/lib/platform/task-comment-projection.js +70 -0
- package/dist/lib/platform/task-identities.js +2 -9
- package/dist/lib/platform/task-recovery.js +55 -0
- package/dist/lib/platform/verification-sync.js +45 -7
- package/dist/lib/pr-review/evidence-grading.js +4 -8
- package/dist/lib/sandbox/commands/rm.js +21 -2
- package/dist/lib/sandbox/control/executor.js +4 -2
- package/dist/lib/sandbox/control/server.js +29 -9
- package/dist/lib/sandbox/control/state.js +7 -1
- package/dist/lib/sandbox/control/task-workflow.js +1 -1
- package/dist/lib/sandbox/control/workflow-executor.js +87 -35
- package/dist/lib/sandbox/index.js +1 -2
- package/dist/lib/sandbox/removal.js +116 -1011
- package/dist/lib/sandbox/workspace-identity.js +17 -1
- package/dist/lib/server/process-state.js +17 -5
- package/dist/lib/task/artifact-command.js +11 -30
- package/dist/lib/task/artifact-operations.js +17 -231
- package/dist/lib/task/artifact-recovery.js +476 -0
- package/dist/lib/task/artifact-repair-intent.js +90 -39
- package/dist/lib/task/commit-operation.js +31 -4
- package/dist/lib/task/control-authority.js +39 -8
- package/dist/lib/task/control-recovery.js +14 -2
- package/dist/lib/task/create-service.js +1 -8
- package/dist/lib/task/delegation-receipts.js +64 -3
- package/dist/lib/task/events.js +165 -23
- package/dist/lib/task/human-override.js +5 -8
- package/dist/lib/task/intermediate-cleanup.js +91 -8
- package/dist/lib/task/lifecycle-recovery.js +549 -0
- package/dist/lib/task/lifecycle.js +12 -3
- package/dist/lib/task/local-artifact-finalization.js +212 -123
- package/dist/lib/task/manual-validation-receipt.js +5 -1
- package/dist/lib/task/orchestration.js +52 -2
- package/dist/lib/task/pr-delivery-fact.js +12 -56
- package/dist/lib/task/recovery-warning.js +19 -0
- package/dist/lib/task/review-command.js +3 -2
- package/dist/lib/task/review-finalization.js +294 -74
- package/dist/lib/{host-control → task}/secure-fs.js +8 -19
- package/dist/lib/task/short-id.js +15 -7
- package/dist/lib/task/task-execution-lock.js +1 -1
- package/dist/lib/task/verification-engine.js +3 -14
- package/dist/lib/task/workflow-command.js +2 -1
- package/dist/lib/task/workflow-dispatch.js +161 -0
- package/dist/lib/version.js +1 -11
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.ts +7 -2
- package/lib/agent-clients/adapters/codex-lifecycle/store.ts +55 -3
- package/lib/fs/durable-write.ts +1 -0
- package/lib/internal/cli-route-inventory.ts +3 -4
- package/lib/internal/manual-validation.ts +17 -8
- package/lib/internal/platform-comment.ts +53 -2
- package/lib/internal/task-artifact.ts +1 -1
- package/lib/internal/task-finalization.ts +1 -1
- package/lib/internal/task-lifecycle.ts +5 -4
- package/lib/internal/task-operation-registry.ts +22 -13
- package/lib/internal/task-orchestration.ts +1 -1
- package/lib/internal/task-review.ts +11 -7
- package/lib/platform/activity-recovery.ts +179 -0
- package/lib/platform/issue-comments.ts +105 -30
- package/lib/platform/issues.ts +1 -1
- package/lib/platform/pr-change-report.ts +7 -5
- package/lib/platform/pr-summary.ts +64 -32
- package/lib/platform/pull-requests.ts +3 -3
- package/lib/platform/task-comment-projection.ts +79 -0
- package/lib/platform/task-identities.ts +3 -14
- package/lib/platform/task-recovery.ts +54 -0
- package/lib/platform/verification-sync.ts +48 -11
- package/lib/pr-review/evidence-grading.ts +4 -9
- package/lib/sandbox/commands/rm.ts +34 -2
- package/lib/sandbox/control/executor.ts +4 -2
- package/lib/sandbox/control/protocol.ts +6 -1
- package/lib/sandbox/control/server.ts +30 -10
- package/lib/sandbox/control/state.ts +9 -1
- package/lib/sandbox/control/task-workflow.ts +1 -1
- package/lib/sandbox/control/workflow-executor.ts +106 -35
- package/lib/sandbox/index.ts +1 -2
- package/lib/sandbox/removal.ts +126 -1128
- package/lib/sandbox/workspace-identity.ts +19 -3
- package/lib/server/process-state.ts +26 -5
- package/lib/task/artifact-command.ts +12 -29
- package/lib/task/artifact-operations.ts +22 -252
- package/lib/task/artifact-recovery.ts +572 -0
- package/lib/task/artifact-repair-intent.ts +126 -51
- package/lib/task/commit-operation.ts +35 -4
- package/lib/task/control-authority.ts +48 -15
- package/lib/task/control-recovery.ts +13 -1
- package/lib/task/create-service.ts +1 -10
- package/lib/task/delegation-receipts.ts +73 -2
- package/lib/task/events.ts +188 -24
- package/lib/task/human-override.ts +5 -8
- package/lib/task/intermediate-cleanup.ts +66 -12
- package/lib/task/lifecycle-recovery.ts +691 -0
- package/lib/task/lifecycle.ts +13 -4
- package/lib/task/local-artifact-finalization.ts +249 -131
- package/lib/task/manual-validation-receipt.ts +5 -1
- package/lib/task/orchestration.ts +65 -0
- package/lib/task/pr-delivery-fact.ts +15 -62
- package/lib/task/recovery-warning.ts +21 -0
- package/lib/task/review-command.ts +2 -1
- package/lib/task/review-finalization.ts +298 -84
- package/lib/{host-control → task}/secure-fs.ts +10 -32
- package/lib/task/short-id.ts +27 -5
- package/lib/task/task-execution-lock.ts +1 -1
- package/lib/task/verification-engine.ts +3 -17
- package/lib/task/verification-types.ts +0 -2
- package/lib/task/workflow-command.ts +2 -1
- package/lib/task/workflow-dispatch.ts +171 -0
- package/lib/version.ts +1 -15
- package/package.json +1 -1
- package/templates/.agents/rules/create-issue.en.md +1 -1
- package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
- package/templates/.agents/rules/issue-sync.en.md +12 -2
- package/templates/.agents/rules/issue-sync.zh-CN.md +13 -5
- package/templates/.agents/rules/local-artifact-repair.en.md +47 -39
- package/templates/.agents/rules/local-artifact-repair.zh-CN.md +45 -36
- package/templates/.agents/skills/analyze-task/SKILL.en.md +6 -6
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +6 -6
- package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/block-task/config/verify.json +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +3 -3
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -1
- package/templates/.agents/skills/code-task/SKILL.en.md +7 -7
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +8 -8
- package/templates/.agents/skills/code-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +1 -1
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/complete-task/config/verify.en.json +2 -2
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +2 -2
- package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +1 -1
- package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +1 -1
- package/templates/.agents/skills/create-pr/SKILL.en.md +2 -2
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/create-pr/config/verify.json +1 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +2 -2
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +2 -2
- package/templates/.agents/skills/create-task/SKILL.en.md +5 -5
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -5
- package/templates/.agents/skills/create-task/config/verify.json +1 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +8 -8
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +8 -8
- package/templates/.agents/skills/import-issue/config/verify.json +2 -2
- package/templates/.agents/skills/plan-task/SKILL.en.md +4 -4
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/plan-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/restore-task/SKILL.en.md +11 -6
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -6
- package/templates/.agents/skills/restore-task/config/verify.json +1 -1
- package/templates/.agents/skills/review-analysis/SKILL.en.md +3 -3
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +7 -7
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +6 -6
- package/templates/.agents/skills/review-code/SKILL.en.md +5 -4
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +5 -4
- package/templates/.agents/skills/review-code/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-code/reference/report-template.en.md +12 -12
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +12 -12
- package/templates/.agents/skills/review-plan/SKILL.en.md +3 -3
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/review-plan/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +7 -7
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +7 -7
- package/templates/.agents/skills/review-pr/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-pr/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +3 -3
- package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +3 -3
- package/templates/.agents/skills/run-manual-validation/config/verify.en.json +1 -1
- package/templates/.agents/skills/run-manual-validation/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/templates/task.en.md +1 -1
- package/templates/.agents/templates/task.zh-CN.md +1 -1
- package/templates/.claude/commands/import-issue.en.md +1 -1
- package/templates/.claude/commands/import-issue.zh-CN.md +1 -1
- package/templates/.claude/commands/restore-task.en.md +1 -1
- package/templates/.claude/commands/restore-task.zh-CN.md +1 -1
- package/dist/lib/host-control/audit.js +0 -19
- package/dist/lib/host-control/client.js +0 -142
- package/dist/lib/host-control/command.js +0 -49
- package/dist/lib/host-control/path.js +0 -160
- package/dist/lib/host-control/server.js +0 -159
- package/dist/lib/host-control/service.js +0 -112
- package/dist/lib/internal/host-control.js +0 -28
- package/lib/host-control/audit.ts +0 -22
- package/lib/host-control/client.ts +0 -172
- package/lib/host-control/command.ts +0 -60
- package/lib/host-control/path.ts +0 -167
- package/lib/host-control/server.ts +0 -180
- package/lib/host-control/service.ts +0 -133
- package/lib/internal/host-control.ts +0 -28
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import os from 'node:os';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
inspectHostControlEndpoint,
|
|
8
|
-
resolveHostControlEndpoint,
|
|
9
|
-
type HostControlPlatform
|
|
10
|
-
} from './path.ts';
|
|
11
|
-
import { serveHostControl, startHostControlServer, type HostControlDispatch, type RunningHostControlServer } from './server.ts';
|
|
12
|
-
|
|
13
|
-
export type HostControlServiceOptions = Readonly<{
|
|
14
|
-
platform?: HostControlPlatform;
|
|
15
|
-
uid?: number;
|
|
16
|
-
username?: string;
|
|
17
|
-
endpoint?: string;
|
|
18
|
-
dispatch: HostControlDispatch;
|
|
19
|
-
audit?: Parameters<typeof startHostControlServer>[0]['audit'];
|
|
20
|
-
}>;
|
|
21
|
-
|
|
22
|
-
export type HostControlServicePlatform = 'linux' | 'darwin' | 'unsupported';
|
|
23
|
-
|
|
24
|
-
function servicePlatform(): HostControlServicePlatform {
|
|
25
|
-
if (process.platform === 'linux' || process.platform === 'darwin') return process.platform;
|
|
26
|
-
return 'unsupported';
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function serviceEntryPoint(): string {
|
|
30
|
-
const compiled = fileURLToPath(new URL('../../bin/internal-cli.js', import.meta.url));
|
|
31
|
-
if (fs.existsSync(compiled)) return fs.realpathSync.native(compiled);
|
|
32
|
-
const candidate = process.argv[1];
|
|
33
|
-
if (candidate && fs.existsSync(candidate)) return fs.realpathSync.native(candidate);
|
|
34
|
-
return fs.realpathSync.native(fileURLToPath(new URL('../../bin/internal-cli.ts', import.meta.url)));
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function xml(value: string): string {
|
|
38
|
-
return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function systemdArgument(value: string): string {
|
|
42
|
-
const escaped = value.replace(/[\\"]/g, '\\$&')
|
|
43
|
-
.replace(/[\x00-\x1f\x7f]/g, (character) => `\\x${character.charCodeAt(0).toString(16).padStart(2, '0')}`)
|
|
44
|
-
.replaceAll('%', '%%');
|
|
45
|
-
return `"${escaped}"`;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function servicePaths(platform: HostControlServicePlatform = servicePlatform()): Readonly<{ unit?: string; plist?: string }> {
|
|
49
|
-
if (platform === 'linux') return { unit: path.join(os.homedir(), '.config', 'systemd', 'user', 'agent-infra-host-control.service') };
|
|
50
|
-
if (platform === 'darwin') return { plist: path.join(os.homedir(), 'Library', 'LaunchAgents', 'com.fitlab-ai.agent-infra.host-control.plist') };
|
|
51
|
-
throw new Error('HOST_CONTROL_UNSUPPORTED_PLATFORM');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function installHostControlService(platform: HostControlServicePlatform = servicePlatform()): string {
|
|
55
|
-
const paths = servicePaths(platform);
|
|
56
|
-
const entry = serviceEntryPoint();
|
|
57
|
-
if (paths.unit) {
|
|
58
|
-
// mkdir only applies mode to directories it creates, and this one usually
|
|
59
|
-
// already exists, so restate the intended mode explicitly.
|
|
60
|
-
fs.mkdirSync(path.dirname(paths.unit), { recursive: true, mode: 0o700 });
|
|
61
|
-
fs.chmodSync(path.dirname(paths.unit), 0o700);
|
|
62
|
-
fs.writeFileSync(paths.unit, [
|
|
63
|
-
'[Unit]',
|
|
64
|
-
'Description=agent-infra host-control service',
|
|
65
|
-
'',
|
|
66
|
-
'[Service]',
|
|
67
|
-
// The ':' executable prefix disables environment expansion for literal paths.
|
|
68
|
-
`ExecStart=${systemdArgument(`:${process.execPath}`)} ${systemdArgument(entry)} host-control serve`,
|
|
69
|
-
'Restart=on-failure',
|
|
70
|
-
'NoNewPrivileges=true',
|
|
71
|
-
// Workers receive host paths, including working directories and inputs under /tmp.
|
|
72
|
-
'PrivateTmp=false',
|
|
73
|
-
'',
|
|
74
|
-
'[Install]',
|
|
75
|
-
'WantedBy=default.target',
|
|
76
|
-
''
|
|
77
|
-
].join('\n'), { mode: 0o600 });
|
|
78
|
-
fs.chmodSync(paths.unit, 0o600);
|
|
79
|
-
return paths.unit;
|
|
80
|
-
}
|
|
81
|
-
const plist = paths.plist!;
|
|
82
|
-
fs.mkdirSync(path.dirname(plist), { recursive: true, mode: 0o700 });
|
|
83
|
-
fs.chmodSync(path.dirname(plist), 0o700);
|
|
84
|
-
const argumentsXml = [process.execPath, entry, 'host-control', 'serve']
|
|
85
|
-
.map((argument) => ` <string>${xml(argument)}</string>`)
|
|
86
|
-
.join('\n');
|
|
87
|
-
fs.writeFileSync(plist, [
|
|
88
|
-
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
89
|
-
'<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">',
|
|
90
|
-
'<plist version="1.0">',
|
|
91
|
-
'<dict>',
|
|
92
|
-
' <key>Label</key>',
|
|
93
|
-
' <string>com.fitlab-ai.agent-infra.host-control</string>',
|
|
94
|
-
' <key>ProgramArguments</key>',
|
|
95
|
-
' <array>',
|
|
96
|
-
argumentsXml,
|
|
97
|
-
' </array>',
|
|
98
|
-
' <key>RunAtLoad</key>',
|
|
99
|
-
' <true/>',
|
|
100
|
-
' <key>KeepAlive</key>',
|
|
101
|
-
' <true/>',
|
|
102
|
-
'</dict>',
|
|
103
|
-
'</plist>',
|
|
104
|
-
''
|
|
105
|
-
].join('\n'), { mode: 0o600 });
|
|
106
|
-
fs.chmodSync(plist, 0o600);
|
|
107
|
-
return plist;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function uninstallHostControlService(platform: HostControlServicePlatform = servicePlatform()): string {
|
|
111
|
-
const paths = servicePaths(platform);
|
|
112
|
-
const target = paths.unit ?? paths.plist!;
|
|
113
|
-
fs.rmSync(target, { force: true });
|
|
114
|
-
return target;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export function hostControlServiceEndpoint(options: Pick<HostControlServiceOptions, 'platform' | 'uid' | 'username' | 'endpoint'> = {}): string {
|
|
118
|
-
return options.endpoint ?? resolveHostControlEndpoint(options);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export async function startHostControlService(options: HostControlServiceOptions): Promise<RunningHostControlServer> {
|
|
122
|
-
return startHostControlServer({ endpoint: hostControlServiceEndpoint(options), dispatch: options.dispatch, ...(options.audit ? { audit: options.audit } : {}) });
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export async function serveHostControlService(options: HostControlServiceOptions, signal?: AbortSignal): Promise<void> {
|
|
126
|
-
await serveHostControl({ endpoint: hostControlServiceEndpoint(options), dispatch: options.dispatch, ...(options.audit ? { audit: options.audit } : {}) }, signal);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
export function hostControlServiceStatus(options: Pick<HostControlServiceOptions, 'platform' | 'uid' | 'username' | 'endpoint'> = {}): Readonly<{ endpoint: string; available: boolean; code: string | null }> {
|
|
130
|
-
const endpoint = hostControlServiceEndpoint(options);
|
|
131
|
-
const result = inspectHostControlEndpoint(endpoint, { uid: options.uid ?? process.getuid?.() });
|
|
132
|
-
return { endpoint, available: result.ok, code: result.code };
|
|
133
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { dispatchHostControlCommand } from '../host-control/command.ts';
|
|
2
|
-
import { hostControlServiceStatus, installHostControlService, serveHostControlService, uninstallHostControlService } from '../host-control/service.ts';
|
|
3
|
-
import { internalHandlerRoute } from './cli-route-inventory.ts';
|
|
4
|
-
|
|
5
|
-
export async function hostControl(args: readonly string[]): Promise<void> {
|
|
6
|
-
const action = args[0] ?? '';
|
|
7
|
-
if (internalHandlerRoute('host-control', 'serve', action)) {
|
|
8
|
-
const controller = new AbortController();
|
|
9
|
-
process.once('SIGINT', () => controller.abort());
|
|
10
|
-
process.once('SIGTERM', () => controller.abort());
|
|
11
|
-
await serveHostControlService({ dispatch: dispatchHostControlCommand }, controller.signal);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
if (internalHandlerRoute('host-control', 'status', action)) {
|
|
15
|
-
process.stdout.write(`${JSON.stringify(hostControlServiceStatus())}\n`);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (internalHandlerRoute('host-control', 'install', action)) {
|
|
19
|
-
process.stdout.write(`${JSON.stringify({ status: 'completed', path: installHostControlService() })}\n`);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (internalHandlerRoute('host-control', 'uninstall', action)) {
|
|
23
|
-
process.stdout.write(`${JSON.stringify({ status: 'completed', path: uninstallHostControlService() })}\n`);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
process.stdout.write(`${JSON.stringify({ status: 'failed', changed: false, error: { code: 'HOST_CONTROL_COMMAND_INVALID', message: 'usage: host-control <serve|status|install|uninstall>' } })}\n`);
|
|
27
|
-
process.exitCode = 1;
|
|
28
|
-
}
|