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.
Files changed (101) hide show
  1. package/dist/backend/backend/src/constants.d.ts +30 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +30 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/index.d.ts.map +1 -1
  6. package/dist/backend/backend/src/index.js +35 -2
  7. package/dist/backend/backend/src/index.js.map +1 -1
  8. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +33 -0
  9. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  10. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +63 -0
  11. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  12. package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.d.ts +76 -0
  13. package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.d.ts.map +1 -0
  14. package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.js +108 -0
  15. package/dist/backend/backend/src/services/agent/relogin-agent-resumer.service.js.map +1 -0
  16. package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts +13 -0
  17. package/dist/backend/backend/src/services/core/crewly-home.utils.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/core/crewly-home.utils.js +18 -0
  19. package/dist/backend/backend/src/services/core/crewly-home.utils.js.map +1 -1
  20. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +361 -0
  21. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -0
  22. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +756 -0
  23. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -0
  24. package/dist/backend/backend/src/services/harness/harness.service.d.ts +16 -1
  25. package/dist/backend/backend/src/services/harness/harness.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/harness/harness.service.js +28 -1
  27. package/dist/backend/backend/src/services/harness/harness.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/harness/harness.types.d.ts +16 -1
  29. package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
  31. package/dist/backend/backend/src/services/harness/login-expiry-rules.d.ts +75 -0
  32. package/dist/backend/backend/src/services/harness/login-expiry-rules.d.ts.map +1 -0
  33. package/dist/backend/backend/src/services/harness/login-expiry-rules.js +159 -0
  34. package/dist/backend/backend/src/services/harness/login-expiry-rules.js.map +1 -0
  35. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +21 -1
  36. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +39 -0
  38. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  39. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +80 -0
  40. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -0
  41. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js +127 -0
  42. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -0
  43. package/dist/backend/build-info.json +2 -2
  44. package/dist/cli/backend/src/constants.d.ts +30 -0
  45. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  46. package/dist/cli/backend/src/constants.js +30 -0
  47. package/dist/cli/backend/src/constants.js.map +1 -1
  48. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +33 -0
  49. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  50. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +63 -0
  51. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  52. package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts +13 -0
  53. package/dist/cli/backend/src/services/core/crewly-home.utils.d.ts.map +1 -1
  54. package/dist/cli/backend/src/services/core/crewly-home.utils.js +18 -0
  55. package/dist/cli/backend/src/services/core/crewly-home.utils.js.map +1 -1
  56. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +361 -0
  57. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -0
  58. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +756 -0
  59. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -0
  60. package/dist/cli/backend/src/services/harness/harness.service.d.ts +16 -1
  61. package/dist/cli/backend/src/services/harness/harness.service.d.ts.map +1 -1
  62. package/dist/cli/backend/src/services/harness/harness.service.js +28 -1
  63. package/dist/cli/backend/src/services/harness/harness.service.js.map +1 -1
  64. package/dist/cli/backend/src/services/harness/harness.types.d.ts +16 -1
  65. package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
  66. package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
  67. package/dist/cli/backend/src/services/harness/login-expiry-rules.d.ts +75 -0
  68. package/dist/cli/backend/src/services/harness/login-expiry-rules.d.ts.map +1 -0
  69. package/dist/cli/backend/src/services/harness/login-expiry-rules.js +159 -0
  70. package/dist/cli/backend/src/services/harness/login-expiry-rules.js.map +1 -0
  71. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +21 -1
  72. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  73. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +39 -0
  74. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  75. package/dist/cli/cli/src/commands/harness-setup.d.ts +2 -1
  76. package/dist/cli/cli/src/commands/harness-setup.d.ts.map +1 -1
  77. package/dist/cli/cli/src/commands/harness-setup.js +23 -8
  78. package/dist/cli/cli/src/commands/harness-setup.js.map +1 -1
  79. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  80. package/dist/cli/cli/src/commands/start.js +3 -2
  81. package/dist/cli/cli/src/commands/start.js.map +1 -1
  82. package/dist/cli/cli/src/commands/upgrade.d.ts +2 -1
  83. package/dist/cli/cli/src/commands/upgrade.d.ts.map +1 -1
  84. package/dist/cli/cli/src/commands/upgrade.js +10 -4
  85. package/dist/cli/cli/src/commands/upgrade.js.map +1 -1
  86. package/dist/cli/cli/src/utils/harness-engine.d.ts +54 -5
  87. package/dist/cli/cli/src/utils/harness-engine.d.ts.map +1 -1
  88. package/dist/cli/cli/src/utils/harness-engine.js +168 -6
  89. package/dist/cli/cli/src/utils/harness-engine.js.map +1 -1
  90. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  91. package/dist/cli/cli/src/utils/marketplace.js +17 -3
  92. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  93. package/dist/cli/cli/src/utils/self-install.d.ts +37 -0
  94. package/dist/cli/cli/src/utils/self-install.d.ts.map +1 -0
  95. package/dist/cli/cli/src/utils/self-install.js +63 -0
  96. package/dist/cli/cli/src/utils/self-install.js.map +1 -0
  97. package/dist/cli/cli/src/utils/templates.d.ts +2 -1
  98. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  99. package/dist/cli/cli/src/utils/templates.js +17 -11
  100. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  101. 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
- /** `in-process` (dies with the CLI) or `backend` (visible to web / phone) */
28
- readonly where: 'in-process' | 'backend';
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 the local backend answers `/health`.
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
- * @returns True when it is up
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;AAKH,OAAO,EAAE,cAAc,EAAwB,MAAM,0DAA0D,CAAC;AAChH,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,wDAAwD,CAAC;AAGlI,uDAAuD;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE3H,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9C,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,QAG7B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG3E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAyB,GAAG,MAAM,CAEvE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,MAAyB,EAAE,IAAI,GAAE,QAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1H;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,CAQ/E;AAeD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,MAA0B,EAAE,IAAI,GAAE,QAA0B,GAAG,WAAW,CAS3H;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAO,GAC9C,OAAO,CAAC,WAAW,CAAC,CAItB"}
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 the local backend answers `/health`.
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
- * @returns True when it is up
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":"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"}
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":"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"}
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
- /** Returns the directory of the CLI entry point, or CWD as fallback */
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
- return process.argv[1] ? path.dirname(path.resolve(process.argv[1])) : process.cwd();
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 entry point (process.argv[1]) to find the project root
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;AAOH,+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;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAcxC;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAsD9C;AA+CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEhE"}
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 entry point (process.argv[1]) to find the project root
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
- // Walk up from the CLI entry script to find config/templates/
23
- let dir = process.argv[1] ? path.dirname(path.resolve(process.argv[1])) : process.cwd();
24
- for (let i = 0; i < 10; i++) {
25
- const candidate = path.join(dir, 'config', 'templates');
26
- if (existsSync(candidate)) {
27
- return candidate;
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');