crewly 1.20.126 → 1.20.128
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/backend/backend/src/constants.d.ts +30 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +30 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +35 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +33 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +63 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.d.ts +76 -0
- package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.js +108 -0
- package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.js.map +1 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts +13 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/crewly-home.utils.js +18 -0
- package/dist/backend/backend/src/services/core/crewly-home.utils.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +361 -0
- package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js +756 -0
- package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -0
- package/dist/backend/backend/src/services/harness/harness.service.d.ts +16 -1
- package/dist/backend/backend/src/services/harness/harness.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.service.js +28 -1
- package/dist/backend/backend/src/services/harness/harness.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.types.d.ts +16 -1
- package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
- package/dist/backend/backend/src/services/harness/login-expiry-rules.d.ts +75 -0
- package/dist/backend/backend/src/services/harness/login-expiry-rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/harness/login-expiry-rules.js +159 -0
- package/dist/backend/backend/src/services/harness/login-expiry-rules.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +21 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +39 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +80 -0
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js +127 -0
- package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +30 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +30 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +33 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +63 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts +13 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/crewly-home.utils.js +18 -0
- package/dist/cli/backend/src/services/core/crewly-home.utils.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +361 -0
- package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js +756 -0
- package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -0
- package/dist/cli/backend/src/services/harness/harness.service.d.ts +16 -1
- package/dist/cli/backend/src/services/harness/harness.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.service.js +28 -1
- package/dist/cli/backend/src/services/harness/harness.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.types.d.ts +16 -1
- package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
- package/dist/cli/backend/src/services/harness/login-expiry-rules.d.ts +75 -0
- package/dist/cli/backend/src/services/harness/login-expiry-rules.d.ts.map +1 -0
- package/dist/cli/backend/src/services/harness/login-expiry-rules.js +159 -0
- package/dist/cli/backend/src/services/harness/login-expiry-rules.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +21 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +39 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/cli/src/commands/harness-setup.d.ts +2 -1
- package/dist/cli/cli/src/commands/harness-setup.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/harness-setup.js +23 -8
- package/dist/cli/cli/src/commands/harness-setup.js.map +1 -1
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +3 -2
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/commands/upgrade.d.ts +2 -1
- package/dist/cli/cli/src/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/upgrade.js +10 -4
- package/dist/cli/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/cli/src/utils/harness-engine.d.ts +54 -5
- package/dist/cli/cli/src/utils/harness-engine.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/harness-engine.js +168 -6
- package/dist/cli/cli/src/utils/harness-engine.js.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.js +17 -3
- package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
- package/dist/cli/cli/src/utils/self-install.d.ts +37 -0
- package/dist/cli/cli/src/utils/self-install.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/self-install.js +63 -0
- package/dist/cli/cli/src/utils/self-install.js.map +1 -0
- package/dist/cli/cli/src/utils/templates.d.ts +2 -1
- package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/templates.js +17 -11
- package/dist/cli/cli/src/utils/templates.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @module cli/utils/harness-engine
|
|
17
17
|
*/
|
|
18
|
+
import { type ChildProcess } from 'child_process';
|
|
18
19
|
import { HarnessService } from '../../../backend/src/services/harness/harness.service.js';
|
|
19
20
|
import { type HarnessId, type LoginSession } from '../../../backend/src/services/harness/harness.types.js';
|
|
20
21
|
/** Minimal JSON HTTP client (injectable for tests). */
|
|
@@ -24,8 +25,12 @@ export type HttpJson = (method: 'GET' | 'POST', url: string, body?: unknown) =>
|
|
|
24
25
|
}>;
|
|
25
26
|
/** Drives a login session wherever it lives. */
|
|
26
27
|
export interface LoginDriver {
|
|
27
|
-
/**
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* `in-process` (dies with the CLI), `backend` (visible to web / phone) or
|
|
30
|
+
* `detached` (a background process that outlives the CLI; device-code
|
|
31
|
+
* logins only, see {@link createDetachedLoginDriver})
|
|
32
|
+
*/
|
|
33
|
+
readonly where: 'in-process' | 'backend' | 'detached';
|
|
29
34
|
start(harnessId: HarnessId, method: string): Promise<LoginSession>;
|
|
30
35
|
get(sessionId: string): Promise<LoginSession>;
|
|
31
36
|
input(sessionId: string, text: string): Promise<LoginSession>;
|
|
@@ -55,13 +60,21 @@ export declare function getBackendPort(env?: NodeJS.ProcessEnv): number;
|
|
|
55
60
|
*/
|
|
56
61
|
export declare function localBackendUrl(port?: number): string;
|
|
57
62
|
/**
|
|
58
|
-
* Whether
|
|
63
|
+
* Whether *this user's* backend answers `/health` on the port.
|
|
64
|
+
*
|
|
65
|
+
* Loopback needs no API token, so answering is not enough: on a shared
|
|
66
|
+
* machine the port may belong to another Unix user's Crewly (e.g. a
|
|
67
|
+
* production backend running as root on 8787). The backend reports the id of
|
|
68
|
+
* the Crewly home it serves (`homeId`); only a backend serving this CLI's
|
|
69
|
+
* home counts. A backend too old to report it does not count either — the
|
|
70
|
+
* CLI then runs the login in-process, which is always safe.
|
|
59
71
|
*
|
|
60
72
|
* @param port - Backend port
|
|
61
73
|
* @param http - HTTP client
|
|
62
|
-
* @
|
|
74
|
+
* @param homeId - This CLI's Crewly home id (tests)
|
|
75
|
+
* @returns True when our own backend is up
|
|
63
76
|
*/
|
|
64
|
-
export declare function isBackendRunning(port?: number, http?: HttpJson): Promise<boolean>;
|
|
77
|
+
export declare function isBackendRunning(port?: number, http?: HttpJson, homeId?: string): Promise<boolean>;
|
|
65
78
|
/**
|
|
66
79
|
* The harness engine for this CLI process: silent logger, and settings
|
|
67
80
|
* written through a fresh SettingsService (the backend's singleton is not
|
|
@@ -95,5 +108,41 @@ export declare function createBackendLoginDriver(baseUrl?: string, http?: HttpJs
|
|
|
95
108
|
export declare function pickLoginDriver(service: HarnessService, options?: {
|
|
96
109
|
port?: number;
|
|
97
110
|
http?: HttpJson;
|
|
111
|
+
homeId?: string;
|
|
98
112
|
}): Promise<LoginDriver>;
|
|
113
|
+
/** Injectable pieces of {@link createDetachedLoginDriver} (tests). */
|
|
114
|
+
export interface DetachedLoginDeps {
|
|
115
|
+
spawn?: (command: string, args: readonly string[], options: {
|
|
116
|
+
env: NodeJS.ProcessEnv;
|
|
117
|
+
cwd: string;
|
|
118
|
+
logFd: number;
|
|
119
|
+
}) => ChildProcess;
|
|
120
|
+
/** Environment for the login command (defaults to the broker's env: harness PATH, BROWSER=true, no API token) */
|
|
121
|
+
env?: Record<string, string>;
|
|
122
|
+
/** Directory for the login's output file (defaults to `<crewlyHome>/logs`) */
|
|
123
|
+
logDir?: string;
|
|
124
|
+
homeDir?: string;
|
|
125
|
+
kill?: (pid: number, signal: NodeJS.Signals) => void;
|
|
126
|
+
now?: () => number;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Login driver that runs a device-code login as a background process which
|
|
130
|
+
* outlives the CLI.
|
|
131
|
+
*
|
|
132
|
+
* Used by `--yes` when no backend of ours is running: an in-process broker
|
|
133
|
+
* would have to keep the CLI waiting (up to 15 minutes) for the owner to
|
|
134
|
+
* enter the code on a phone — an agent or installer running the command
|
|
135
|
+
* would hit its own timeout and kill the login with it. Detached, the CLI
|
|
136
|
+
* prints the link and code and returns; the harness finishes the login by
|
|
137
|
+
* itself (Codex writes `$CODEX_HOME/auth.json`) and exits when the code is
|
|
138
|
+
* used or expires.
|
|
139
|
+
*
|
|
140
|
+
* Only methods that need no typed reply qualify (no `inputPromptPattern`):
|
|
141
|
+
* nothing is connected to the process's stdin.
|
|
142
|
+
*
|
|
143
|
+
* @param service - Harness service (for the broker's env)
|
|
144
|
+
* @param deps - Injectable pieces (tests)
|
|
145
|
+
* @returns Driver
|
|
146
|
+
*/
|
|
147
|
+
export declare function createDetachedLoginDriver(service: HarnessService, deps?: DetachedLoginDeps): LoginDriver;
|
|
99
148
|
//# sourceMappingURL=harness-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-engine.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/harness-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"harness-engine.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/harness-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,16 @@
|
|
|
16
16
|
* @module cli/utils/harness-engine
|
|
17
17
|
*/
|
|
18
18
|
import axios from 'axios';
|
|
19
|
+
import { spawn } from 'child_process';
|
|
20
|
+
import * as fs from 'fs';
|
|
21
|
+
import * as os from 'os';
|
|
22
|
+
import * as path from 'path';
|
|
23
|
+
import { randomUUID } from 'crypto';
|
|
19
24
|
import { HARNESS_CONSTANTS } from '../../../backend/src/constants.js';
|
|
25
|
+
import { getCrewlyHomeId, getCrewlyHomePath } from '../../../backend/src/services/core/crewly-home.utils.js';
|
|
26
|
+
import { getHarnessDefinition, getLoginMethod } from '../../../backend/src/services/harness/harness-registry.js';
|
|
27
|
+
import { resolveExecutable } from '../../../backend/src/services/harness/harness-exec.utils.js';
|
|
28
|
+
import { evaluateLoginRules, getLoginRules, normalizeTerminalOutput, redactSecrets } from '../../../backend/src/services/harness/login-rules.js';
|
|
20
29
|
import { SettingsService } from '../../../backend/src/services/settings/settings.service.js';
|
|
21
30
|
import { createHarnessService } from '../../../backend/src/services/harness/harness.service.js';
|
|
22
31
|
import { SILENT_HARNESS_LOGGER } from '../../../backend/src/services/harness/harness.types.js';
|
|
@@ -53,16 +62,24 @@ export function localBackendUrl(port = getBackendPort()) {
|
|
|
53
62
|
return `http://localhost:${port}`;
|
|
54
63
|
}
|
|
55
64
|
/**
|
|
56
|
-
* Whether
|
|
65
|
+
* Whether *this user's* backend answers `/health` on the port.
|
|
66
|
+
*
|
|
67
|
+
* Loopback needs no API token, so answering is not enough: on a shared
|
|
68
|
+
* machine the port may belong to another Unix user's Crewly (e.g. a
|
|
69
|
+
* production backend running as root on 8787). The backend reports the id of
|
|
70
|
+
* the Crewly home it serves (`homeId`); only a backend serving this CLI's
|
|
71
|
+
* home counts. A backend too old to report it does not count either — the
|
|
72
|
+
* CLI then runs the login in-process, which is always safe.
|
|
57
73
|
*
|
|
58
74
|
* @param port - Backend port
|
|
59
75
|
* @param http - HTTP client
|
|
60
|
-
* @
|
|
76
|
+
* @param homeId - This CLI's Crewly home id (tests)
|
|
77
|
+
* @returns True when our own backend is up
|
|
61
78
|
*/
|
|
62
|
-
export async function isBackendRunning(port = getBackendPort(), http = defaultHttpJson) {
|
|
79
|
+
export async function isBackendRunning(port = getBackendPort(), http = defaultHttpJson, homeId = getCrewlyHomeId()) {
|
|
63
80
|
try {
|
|
64
|
-
const { status } = await http('GET', `${localBackendUrl(port)}/health`);
|
|
65
|
-
return status === 200;
|
|
81
|
+
const { status, body } = await http('GET', `${localBackendUrl(port)}/health`);
|
|
82
|
+
return status === 200 && body?.homeId === homeId;
|
|
66
83
|
}
|
|
67
84
|
catch {
|
|
68
85
|
return false;
|
|
@@ -138,6 +155,151 @@ export function createBackendLoginDriver(baseUrl = localBackendUrl(), http = def
|
|
|
138
155
|
export async function pickLoginDriver(service, options = {}) {
|
|
139
156
|
const port = options.port ?? getBackendPort();
|
|
140
157
|
const http = options.http ?? defaultHttpJson;
|
|
141
|
-
return (await isBackendRunning(port, http)) ? createBackendLoginDriver(localBackendUrl(port), http) : createInProcessLoginDriver(service);
|
|
158
|
+
return (await isBackendRunning(port, http, options.homeId)) ? createBackendLoginDriver(localBackendUrl(port), http) : createInProcessLoginDriver(service);
|
|
159
|
+
}
|
|
160
|
+
/** Default spawner: a new process group, output to the log file, not tied to this process. */
|
|
161
|
+
function spawnDetached(command, args, options) {
|
|
162
|
+
const child = spawn(command, [...args], {
|
|
163
|
+
env: options.env,
|
|
164
|
+
cwd: options.cwd,
|
|
165
|
+
detached: true,
|
|
166
|
+
stdio: ['ignore', options.logFd, options.logFd],
|
|
167
|
+
});
|
|
168
|
+
child.unref();
|
|
169
|
+
return child;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Login driver that runs a device-code login as a background process which
|
|
173
|
+
* outlives the CLI.
|
|
174
|
+
*
|
|
175
|
+
* Used by `--yes` when no backend of ours is running: an in-process broker
|
|
176
|
+
* would have to keep the CLI waiting (up to 15 minutes) for the owner to
|
|
177
|
+
* enter the code on a phone — an agent or installer running the command
|
|
178
|
+
* would hit its own timeout and kill the login with it. Detached, the CLI
|
|
179
|
+
* prints the link and code and returns; the harness finishes the login by
|
|
180
|
+
* itself (Codex writes `$CODEX_HOME/auth.json`) and exits when the code is
|
|
181
|
+
* used or expires.
|
|
182
|
+
*
|
|
183
|
+
* Only methods that need no typed reply qualify (no `inputPromptPattern`):
|
|
184
|
+
* nothing is connected to the process's stdin.
|
|
185
|
+
*
|
|
186
|
+
* @param service - Harness service (for the broker's env)
|
|
187
|
+
* @param deps - Injectable pieces (tests)
|
|
188
|
+
* @returns Driver
|
|
189
|
+
*/
|
|
190
|
+
export function createDetachedLoginDriver(service, deps = {}) {
|
|
191
|
+
const doSpawn = deps.spawn ?? spawnDetached;
|
|
192
|
+
const now = deps.now ?? Date.now;
|
|
193
|
+
const kill = deps.kill ?? ((pid, signal) => process.kill(pid, signal));
|
|
194
|
+
const sessions = new Map();
|
|
195
|
+
const snapshot = (id) => {
|
|
196
|
+
const record = sessions.get(id);
|
|
197
|
+
if (!record)
|
|
198
|
+
throw new Error(`No login session ${id}`);
|
|
199
|
+
const rules = getLoginRules(record.harnessId, record.method);
|
|
200
|
+
let raw = '';
|
|
201
|
+
try {
|
|
202
|
+
raw = fs.readFileSync(record.logFile, 'utf-8');
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
// Not written yet.
|
|
206
|
+
}
|
|
207
|
+
const screen = normalizeTerminalOutput(raw);
|
|
208
|
+
const match = rules ? evaluateLoginRules(rules, screen, { final: record.exited }) : null;
|
|
209
|
+
let state;
|
|
210
|
+
let message = null;
|
|
211
|
+
if (record.cancelled) {
|
|
212
|
+
state = 'cancelled';
|
|
213
|
+
}
|
|
214
|
+
else if (match?.failureMessage) {
|
|
215
|
+
state = 'failed';
|
|
216
|
+
message = match.failureMessage;
|
|
217
|
+
}
|
|
218
|
+
else if (match?.succeeded) {
|
|
219
|
+
state = 'succeeded';
|
|
220
|
+
}
|
|
221
|
+
else if (record.exited) {
|
|
222
|
+
state = 'failed';
|
|
223
|
+
message = record.spawnError ?? 'The login command exited before showing a sign-in link.';
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
state = match?.url || match?.userCode ? 'awaiting_user' : 'starting';
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
id,
|
|
230
|
+
harnessId: record.harnessId,
|
|
231
|
+
method: record.method,
|
|
232
|
+
state,
|
|
233
|
+
url: match?.url ?? null,
|
|
234
|
+
userCode: match?.userCode ?? null,
|
|
235
|
+
needsInput: false,
|
|
236
|
+
message,
|
|
237
|
+
screen: redactSecrets(screen.text).slice(-HARNESS_CONSTANTS.LOGIN.SCREEN_MAX_CHARS),
|
|
238
|
+
startedAt: new Date(record.startedAt).toISOString(),
|
|
239
|
+
updatedAt: new Date(now()).toISOString(),
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
return {
|
|
243
|
+
where: 'detached',
|
|
244
|
+
start: async (harnessId, method) => {
|
|
245
|
+
const def = getHarnessDefinition(harnessId);
|
|
246
|
+
const broker = getLoginMethod(harnessId, method)?.broker;
|
|
247
|
+
const rules = getLoginRules(harnessId, method);
|
|
248
|
+
if (!def || !broker || !rules)
|
|
249
|
+
throw new Error(`${def?.displayName ?? harnessId} has no "${method}" sign-in that Crewly runs`);
|
|
250
|
+
if (rules.inputPromptPattern)
|
|
251
|
+
throw new Error(`${def.displayName}'s sign-in needs a code typed back; it cannot run in the background`);
|
|
252
|
+
const env = deps.env ?? service.broker.buildEnv();
|
|
253
|
+
const command = resolveExecutable(broker.command, env.PATH);
|
|
254
|
+
if (!command)
|
|
255
|
+
throw new Error(`${def.displayName} is not installed`);
|
|
256
|
+
const logDir = deps.logDir ?? path.join(getCrewlyHomePath(), 'logs');
|
|
257
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
258
|
+
const logFile = path.join(logDir, `login-${harnessId}.log`);
|
|
259
|
+
// Unlink rather than truncate: an earlier login may still be writing
|
|
260
|
+
// to the old file, and must not scribble over this one.
|
|
261
|
+
fs.rmSync(logFile, { force: true });
|
|
262
|
+
const fd = fs.openSync(logFile, 'w', 0o600);
|
|
263
|
+
const id = `detached-${randomUUID()}`;
|
|
264
|
+
const record = { harnessId, method: method, pid: undefined, logFile, startedAt: now(), exited: false, spawnError: null, cancelled: false };
|
|
265
|
+
sessions.set(id, record);
|
|
266
|
+
try {
|
|
267
|
+
const child = doSpawn(command, broker.args, { env, cwd: deps.homeDir ?? os.homedir(), logFd: fd });
|
|
268
|
+
record.pid = child.pid;
|
|
269
|
+
child.on('exit', () => { record.exited = true; });
|
|
270
|
+
child.on('error', (error) => {
|
|
271
|
+
record.exited = true;
|
|
272
|
+
record.spawnError = error.message;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
fs.closeSync(fd);
|
|
277
|
+
}
|
|
278
|
+
return snapshot(id);
|
|
279
|
+
},
|
|
280
|
+
get: async (sessionId) => snapshot(sessionId),
|
|
281
|
+
input: async () => {
|
|
282
|
+
throw new Error('A background sign-in takes no typed input');
|
|
283
|
+
},
|
|
284
|
+
cancel: async (sessionId) => {
|
|
285
|
+
const record = sessions.get(sessionId);
|
|
286
|
+
if (record && !record.exited && !record.cancelled && record.pid) {
|
|
287
|
+
try {
|
|
288
|
+
kill(-record.pid, 'SIGTERM'); // the whole process group
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
try {
|
|
292
|
+
kill(record.pid, 'SIGTERM');
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Already gone.
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
if (record)
|
|
300
|
+
record.cancelled = true;
|
|
301
|
+
return snapshot(sessionId);
|
|
302
|
+
},
|
|
303
|
+
};
|
|
142
304
|
}
|
|
143
305
|
//# sourceMappingURL=harness-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-engine.js","sourceRoot":"","sources":["../../../../../cli/src/utils/harness-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4DAA4D,CAAC;AAC7F,OAAO,EAAkB,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChH,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"harness-engine.js","sourceRoot":"","sources":["../../../../../cli/src/utils/harness-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,25 @@
|
|
|
10
10
|
import path from 'path';
|
|
11
11
|
import os from 'os';
|
|
12
12
|
import { readFile, writeFile, mkdir, copyFile, rm } from 'fs/promises';
|
|
13
|
-
import { existsSync, readFileSync, readdirSync } from 'fs';
|
|
13
|
+
import { existsSync, readFileSync, readdirSync, realpathSync } from 'fs';
|
|
14
14
|
import { createHash } from 'crypto';
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Returns the directory of the CLI entry point, or CWD as fallback.
|
|
17
|
+
*
|
|
18
|
+
* The entry is realpath'd: a global install runs through a `bin` symlink whose
|
|
19
|
+
* own directory is outside the package, so walking up from it never finds
|
|
20
|
+
* the package root.
|
|
21
|
+
*/
|
|
16
22
|
function getCliDir() {
|
|
17
|
-
|
|
23
|
+
const entry = process.argv[1];
|
|
24
|
+
if (!entry)
|
|
25
|
+
return process.cwd();
|
|
26
|
+
try {
|
|
27
|
+
return path.dirname(realpathSync(entry));
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return path.dirname(path.resolve(entry));
|
|
31
|
+
}
|
|
18
32
|
}
|
|
19
33
|
import { Readable } from 'stream';
|
|
20
34
|
import { pipeline } from 'stream/promises';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* npm arguments for installing Crewly over itself (`crewly upgrade`,
|
|
3
|
+
* `crewly start --auto-upgrade`).
|
|
4
|
+
*
|
|
5
|
+
* When the global npm folder is not writable (a system Node on Linux), the
|
|
6
|
+
* installer puts Crewly under the user-owned prefix `<crewlyHome>/npm-global`
|
|
7
|
+
* — the same prefix harness installs fall back to. A plain `npm install -g`
|
|
8
|
+
* would then fail with EACCES (or install a second copy elsewhere), so an
|
|
9
|
+
* upgrade must target the prefix the running copy lives in.
|
|
10
|
+
*
|
|
11
|
+
* @module cli/utils/self-install
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Whether a package root lies inside the user npm prefix.
|
|
15
|
+
*
|
|
16
|
+
* @param packageRoot - Crewly package root (null when unknown)
|
|
17
|
+
* @param userPrefix - The user npm prefix
|
|
18
|
+
* @returns True when installed under the prefix
|
|
19
|
+
*/
|
|
20
|
+
export declare function isUnderUserPrefix(packageRoot: string | null, userPrefix: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* `npm` arguments that install `spec` where the running Crewly lives.
|
|
23
|
+
*
|
|
24
|
+
* @param spec - Package spec, e.g. `crewly@latest`
|
|
25
|
+
* @param packageRoot - Running package root (defaults to the resolved one)
|
|
26
|
+
* @param userPrefix - User npm prefix (defaults to `<crewlyHome>/npm-global`)
|
|
27
|
+
* @returns Arguments for `npm`
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* selfInstallArgs('crewly@latest');
|
|
32
|
+
* // ['install', '-g', 'crewly@latest'] (global install)
|
|
33
|
+
* // ['install', '-g', '--prefix', '/home/me/.crewly/npm-global', 'crewly@latest'] (user prefix)
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function selfInstallArgs(spec: string, packageRoot?: string | null, userPrefix?: string): string[];
|
|
37
|
+
//# sourceMappingURL=self-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-install.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/self-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAqBH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAKzF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,MAAM,GAAG,IAA2B,EACjD,UAAU,GAAE,MAA2B,GACrC,MAAM,EAAE,CAEV"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* npm arguments for installing Crewly over itself (`crewly upgrade`,
|
|
3
|
+
* `crewly start --auto-upgrade`).
|
|
4
|
+
*
|
|
5
|
+
* When the global npm folder is not writable (a system Node on Linux), the
|
|
6
|
+
* installer puts Crewly under the user-owned prefix `<crewlyHome>/npm-global`
|
|
7
|
+
* — the same prefix harness installs fall back to. A plain `npm install -g`
|
|
8
|
+
* would then fail with EACCES (or install a second copy elsewhere), so an
|
|
9
|
+
* upgrade must target the prefix the running copy lives in.
|
|
10
|
+
*
|
|
11
|
+
* @module cli/utils/self-install
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { getUserNpmPrefix } from '../../../backend/src/services/harness/harness-exec.utils.js';
|
|
16
|
+
import { resolvePackageRoot } from './package-root.js';
|
|
17
|
+
/**
|
|
18
|
+
* Resolve symlinks when the path exists.
|
|
19
|
+
*
|
|
20
|
+
* @param p - Path
|
|
21
|
+
* @returns Real path, or the resolved path when it does not exist
|
|
22
|
+
*/
|
|
23
|
+
function realOrResolved(p) {
|
|
24
|
+
try {
|
|
25
|
+
return fs.realpathSync(p);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return path.resolve(p);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether a package root lies inside the user npm prefix.
|
|
33
|
+
*
|
|
34
|
+
* @param packageRoot - Crewly package root (null when unknown)
|
|
35
|
+
* @param userPrefix - The user npm prefix
|
|
36
|
+
* @returns True when installed under the prefix
|
|
37
|
+
*/
|
|
38
|
+
export function isUnderUserPrefix(packageRoot, userPrefix) {
|
|
39
|
+
if (!packageRoot)
|
|
40
|
+
return false;
|
|
41
|
+
const root = realOrResolved(packageRoot);
|
|
42
|
+
const prefix = realOrResolved(userPrefix);
|
|
43
|
+
return root === prefix || root.startsWith(prefix + path.sep);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `npm` arguments that install `spec` where the running Crewly lives.
|
|
47
|
+
*
|
|
48
|
+
* @param spec - Package spec, e.g. `crewly@latest`
|
|
49
|
+
* @param packageRoot - Running package root (defaults to the resolved one)
|
|
50
|
+
* @param userPrefix - User npm prefix (defaults to `<crewlyHome>/npm-global`)
|
|
51
|
+
* @returns Arguments for `npm`
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* selfInstallArgs('crewly@latest');
|
|
56
|
+
* // ['install', '-g', 'crewly@latest'] (global install)
|
|
57
|
+
* // ['install', '-g', '--prefix', '/home/me/.crewly/npm-global', 'crewly@latest'] (user prefix)
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function selfInstallArgs(spec, packageRoot = resolvePackageRoot(), userPrefix = getUserNpmPrefix()) {
|
|
61
|
+
return isUnderUserPrefix(packageRoot, userPrefix) ? ['install', '-g', '--prefix', userPrefix, spec] : ['install', '-g', spec];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=self-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-install.js","sourceRoot":"","sources":["../../../../../cli/src/utils/self-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6DAA6D,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;GAKG;AACH,SAAS,cAAc,CAAC,CAAS;IAChC,IAAI,CAAC;QACJ,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAA0B,EAAE,UAAkB;IAC/E,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,cAA6B,kBAAkB,EAAE,EACjD,aAAqB,gBAAgB,EAAE;IAEvC,OAAO,iBAAiB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/H,CAAC"}
|
|
@@ -33,7 +33,8 @@ export interface TeamTemplate {
|
|
|
33
33
|
/**
|
|
34
34
|
* Resolves the absolute path to the config/templates/ directory.
|
|
35
35
|
*
|
|
36
|
-
* Walks up from the CLI
|
|
36
|
+
* Walks up from the CLI's real location (see `packageRootCandidates`: the
|
|
37
|
+
* registered module dir, the realpath of process.argv[1], then the cwd) to find the project root
|
|
37
38
|
* containing config/templates/. Falls back to process.cwd() if not found
|
|
38
39
|
* (e.g. in test environments).
|
|
39
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAID;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAkBxC;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAsD9C;AA+CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEhE"}
|
|
@@ -8,28 +8,34 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import path from 'path';
|
|
10
10
|
import { readFileSync, readdirSync, existsSync, statSync } from 'fs';
|
|
11
|
+
import { packageRootCandidates } from './package-root.js';
|
|
11
12
|
// ========================= Internals =========================
|
|
12
13
|
/**
|
|
13
14
|
* Resolves the absolute path to the config/templates/ directory.
|
|
14
15
|
*
|
|
15
|
-
* Walks up from the CLI
|
|
16
|
+
* Walks up from the CLI's real location (see `packageRootCandidates`: the
|
|
17
|
+
* registered module dir, the realpath of process.argv[1], then the cwd) to find the project root
|
|
16
18
|
* containing config/templates/. Falls back to process.cwd() if not found
|
|
17
19
|
* (e.g. in test environments).
|
|
18
20
|
*
|
|
19
21
|
* @returns Absolute path to templates directory
|
|
20
22
|
*/
|
|
21
23
|
export function getTemplatesDir() {
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
// Anchor on the CLI's real location: a global install runs through a `bin`
|
|
25
|
+
// symlink (e.g. ~/.crewly/npm-global/bin/crewly), whose own directory has no
|
|
26
|
+
// config/ above it — only its realpath inside the package does.
|
|
27
|
+
for (const start of packageRootCandidates()) {
|
|
28
|
+
let dir = start;
|
|
29
|
+
for (let i = 0; i < 10; i++) {
|
|
30
|
+
const candidate = path.join(dir, 'config', 'templates');
|
|
31
|
+
if (existsSync(candidate)) {
|
|
32
|
+
return candidate;
|
|
33
|
+
}
|
|
34
|
+
const parent = path.dirname(dir);
|
|
35
|
+
if (parent === dir)
|
|
36
|
+
break;
|
|
37
|
+
dir = parent;
|
|
28
38
|
}
|
|
29
|
-
const parent = path.dirname(dir);
|
|
30
|
-
if (parent === dir)
|
|
31
|
-
break;
|
|
32
|
-
dir = parent;
|
|
33
39
|
}
|
|
34
40
|
// Fallback: relative to CWD (for development and tests)
|
|
35
41
|
return path.join(process.cwd(), 'config', 'templates');
|