replicas-engine 0.1.1262 → 0.1.1263
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/src/{asp-host-Y3F2DEYR.js → asp-host-J32FRYRC.js} +5 -5
- package/dist/src/{chunk-DEE2MIUW.js → chunk-AHPBQSXT.js} +1 -1
- package/dist/src/{chunk-CNWOP7LH.js → chunk-BN2QDNKJ.js} +2 -2
- package/dist/src/{chunk-R76SPM26.js → chunk-DTERKPBR.js} +2 -2
- package/dist/src/{chunk-IWENYTHI.js → chunk-E3U4EX4U.js} +6 -6
- package/dist/src/{chunk-WINIX7II.js → chunk-FNPPBKJI.js} +12 -3
- package/dist/src/{chunk-XDF5QDJU.js → chunk-KGZ2ER7G.js} +1 -1
- package/dist/src/{chunk-VAPDZVIY.js → chunk-RDJ73FDQ.js} +3 -3
- package/dist/src/{chunk-ARSZGGKG.js → chunk-SJIWGPT3.js} +2 -2
- package/dist/src/command-protection-hook.js +4 -4
- package/dist/src/headless-agent.js +4 -4
- package/dist/src/index.js +26 -15
- package/dist/src/post-tool-pr-hook.js +2 -2
- package/dist/src/subagent-mcp.js +1 -1
- package/package.json +1 -1
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
listRunningCodexModels,
|
|
9
9
|
restartCodexAspHost,
|
|
10
10
|
restartCodexAspHostIfRunning
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-E3U4EX4U.js";
|
|
12
|
+
import "./chunk-SJIWGPT3.js";
|
|
13
|
+
import "./chunk-RDJ73FDQ.js";
|
|
14
|
+
import "./chunk-AHPBQSXT.js";
|
|
15
15
|
import "./chunk-UZSNFLDQ.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-FNPPBKJI.js";
|
|
17
17
|
import "./chunk-VEQXQN22.js";
|
|
18
18
|
export {
|
|
19
19
|
CODEX_ULTRAFAST_SERVICE_TIER,
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
HOOK_EXEC_MAX_BUFFER_BYTES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FNPPBKJI.js";
|
|
7
7
|
|
|
8
8
|
// src/utils/exec.ts
|
|
9
9
|
import { exec, execFile } from "child_process";
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
getOriginDefaultBranch,
|
|
6
6
|
monolithRequest,
|
|
7
7
|
runGitCommand
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-SJIWGPT3.js";
|
|
9
9
|
import {
|
|
10
10
|
extractCommandProtectionCommandText,
|
|
11
11
|
findCommandProtectionGitLookups,
|
|
12
12
|
findGitCommitSignals,
|
|
13
13
|
findPrMergeSignals,
|
|
14
14
|
parseCommandProtectionRequest
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FNPPBKJI.js";
|
|
16
16
|
|
|
17
17
|
// src/services/command-protection-service.ts
|
|
18
18
|
import { readFile, stat } from "fs/promises";
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
AspClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RDJ73FDQ.js";
|
|
7
7
|
import {
|
|
8
8
|
ASTER_BASE_URL,
|
|
9
9
|
ASTER_PROVIDER,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
isRecord,
|
|
14
14
|
readOllamaAuthEnv,
|
|
15
15
|
readOpenAICompatibleAuthEnv
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FNPPBKJI.js";
|
|
17
17
|
|
|
18
18
|
// src/managers/codex-asp/notification-dispatch.ts
|
|
19
19
|
var TURN_STARTED_METHOD = "turn/started";
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
resolveDiffBase,
|
|
11
11
|
runGitCommand,
|
|
12
12
|
setAgentCredentialSnapshot
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SJIWGPT3.js";
|
|
14
14
|
import {
|
|
15
15
|
AppServerProcess,
|
|
16
16
|
buildCodexAgentEnv
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-RDJ73FDQ.js";
|
|
18
18
|
import {
|
|
19
19
|
SUBPROCESS_MAX_BUFFER,
|
|
20
20
|
execFileAsync
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-AHPBQSXT.js";
|
|
22
22
|
import {
|
|
23
23
|
isRecord
|
|
24
24
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
resolveOpenAICompatibleModelsUrl,
|
|
56
56
|
splitMothershipInstructions,
|
|
57
57
|
withTimeout
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-FNPPBKJI.js";
|
|
59
59
|
|
|
60
60
|
// src/managers/codex-token-manager.ts
|
|
61
61
|
import { promises as fs } from "fs";
|
|
@@ -291,7 +291,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
291
291
|
await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
|
|
292
292
|
await this.applyCredentialsResponse(data);
|
|
293
293
|
setAgentCredentialSnapshot("codex", data);
|
|
294
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
294
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-J32FRYRC.js");
|
|
295
295
|
await restartCodexAspHostIfRunning2();
|
|
296
296
|
});
|
|
297
297
|
await this.start(true);
|
|
@@ -313,7 +313,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
313
313
|
const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
|
|
314
314
|
await this.applyCredentialsResponse(data);
|
|
315
315
|
if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
|
|
316
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
316
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-J32FRYRC.js");
|
|
317
317
|
await restartCodexAspHostIfRunning2();
|
|
318
318
|
}
|
|
319
319
|
setAgentCredentialSnapshot("codex", data);
|
|
@@ -2008,6 +2008,8 @@ function parsePosixEnvFile(content) {
|
|
|
2008
2008
|
// ../shared/src/engine/environment.ts
|
|
2009
2009
|
var ENGINE_PORT = 3737;
|
|
2010
2010
|
var DESKTOP_STREAM_PORT = 6080;
|
|
2011
|
+
var DEVICES_DIR = ".ssh/replicas-devices";
|
|
2012
|
+
var DEVICE_SCREEN_FILE_SUFFIX = ".screen.json";
|
|
2011
2013
|
|
|
2012
2014
|
// ../shared/src/git.ts
|
|
2013
2015
|
var GIT_CREDENTIAL_HELPER_FILENAME = ".git-credential-replicas";
|
|
@@ -2387,19 +2389,24 @@ var createEnvironmentMcpRequestSchema = z14.object({
|
|
|
2387
2389
|
]).describe("stdio: `{ command, args, env }`. http/sse: `{ url, headers }`.")
|
|
2388
2390
|
});
|
|
2389
2391
|
var updateEnvironmentMcpRequestSchema = createEnvironmentMcpRequestSchema.partial();
|
|
2392
|
+
var screenPasswordSchema = z14.string().min(1, "Enter the screen password").max(256).describe('Screen Sharing password, for `replicas computer screen`. On a Mac, the "VNC viewers may control screen with password" password. Never returned.');
|
|
2390
2393
|
var createEnvironmentDeviceRequestSchema = z14.object({
|
|
2391
2394
|
name: z14.string().regex(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/, "Use lowercase letters, numbers and dashes").describe("SSH alias in workspaces, e.g. `mac-mini` for `ssh mac-mini`."),
|
|
2392
2395
|
host: z14.string().max(253).regex(/^(?:[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?|[0-9A-Fa-f:]+)$/, "Enter a hostname or IP address").describe("Hostname or IP, such as a Tailscale MagicDNS name (`mac-mini`) or a public address."),
|
|
2393
2396
|
port: z14.number().int().min(1).max(65535).optional().describe("SSH port. Defaults to 22."),
|
|
2394
|
-
username: z14.string().regex(/^[A-Za-z0-9_][A-Za-z0-9._-]{0,63}$/, "Enter the account name on the device").describe("Account the agent signs in as.")
|
|
2397
|
+
username: z14.string().regex(/^[A-Za-z0-9_][A-Za-z0-9._-]{0,63}$/, "Enter the account name on the device").describe("Account the agent signs in as."),
|
|
2398
|
+
screen_password: screenPasswordSchema.optional()
|
|
2399
|
+
});
|
|
2400
|
+
var updateEnvironmentDeviceRequestSchema = createEnvironmentDeviceRequestSchema.partial().extend({
|
|
2401
|
+
screen_password: z14.union([screenPasswordSchema, z14.literal("")]).optional().describe("New Screen Sharing password, or an empty string to remove it.")
|
|
2395
2402
|
});
|
|
2396
|
-
var updateEnvironmentDeviceRequestSchema = createEnvironmentDeviceRequestSchema.partial();
|
|
2397
2403
|
var provisionedDeviceSchema = z14.object({
|
|
2398
2404
|
name: z14.string(),
|
|
2399
2405
|
host: z14.string(),
|
|
2400
2406
|
port: z14.number(),
|
|
2401
2407
|
username: z14.string(),
|
|
2402
|
-
private_key: z14.string()
|
|
2408
|
+
private_key: z14.string(),
|
|
2409
|
+
screen_password: z14.string().optional()
|
|
2403
2410
|
});
|
|
2404
2411
|
|
|
2405
2412
|
// ../shared/src/routes/workspaces.ts
|
|
@@ -10541,6 +10548,8 @@ export {
|
|
|
10541
10548
|
parsePosixEnvFile,
|
|
10542
10549
|
ENGINE_PORT,
|
|
10543
10550
|
DESKTOP_STREAM_PORT,
|
|
10551
|
+
DEVICES_DIR,
|
|
10552
|
+
DEVICE_SCREEN_FILE_SUFFIX,
|
|
10544
10553
|
GIT_CREDENTIAL_HELPER_FILENAME,
|
|
10545
10554
|
GITHUB_CREDENTIAL_REFRESH_PATH,
|
|
10546
10555
|
GITLAB_CREDENTIAL_REFRESH_PATH,
|
|
@@ -3,10 +3,10 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
execFileAsync
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AHPBQSXT.js";
|
|
7
7
|
import {
|
|
8
8
|
isVersionBelow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FNPPBKJI.js";
|
|
10
10
|
|
|
11
11
|
// src/utils/codex-agent-env.ts
|
|
12
12
|
function buildCodexAgentEnv(source = process.env) {
|
|
@@ -240,7 +240,7 @@ function getCodexModelProvider(method) {
|
|
|
240
240
|
if (method === "foundry") return "azure";
|
|
241
241
|
return method === "ollama" || method === "openai-compatible" ? "replicas_openai_compatible" : "openai";
|
|
242
242
|
}
|
|
243
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
243
|
+
var ENGINE_PACKAGE_VERSION = "0.1.1263";
|
|
244
244
|
var INITIALIZE_METHOD = "initialize";
|
|
245
245
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
246
246
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
SUBPROCESS_MAX_BUFFER,
|
|
6
6
|
execFileAsync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AHPBQSXT.js";
|
|
8
8
|
import {
|
|
9
9
|
isRecord as isRecord2
|
|
10
10
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
parsePosixEnvFile,
|
|
21
21
|
provisionedDeviceSchema,
|
|
22
22
|
readReplicasRuntimeEnv
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-FNPPBKJI.js";
|
|
24
24
|
|
|
25
25
|
// src/runtime-env-loader.ts
|
|
26
26
|
import { readFileSync } from "fs";
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
evaluateCommandProtection
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-BN2QDNKJ.js";
|
|
7
|
+
import "./chunk-SJIWGPT3.js";
|
|
8
|
+
import "./chunk-AHPBQSXT.js";
|
|
9
9
|
import {
|
|
10
10
|
isRecord
|
|
11
11
|
} from "./chunk-UZSNFLDQ.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-FNPPBKJI.js";
|
|
13
13
|
import "./chunk-VEQXQN22.js";
|
|
14
14
|
|
|
15
15
|
// src/command-protection-hook.ts
|
|
@@ -13,12 +13,12 @@ import {
|
|
|
13
13
|
recoverCompletedTurn,
|
|
14
14
|
spawnMuseMsp,
|
|
15
15
|
startMuseSession
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-DTERKPBR.js";
|
|
17
17
|
import {
|
|
18
18
|
AppServerProcess,
|
|
19
19
|
buildCodexAgentEnv
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-RDJ73FDQ.js";
|
|
21
|
+
import "./chunk-AHPBQSXT.js";
|
|
22
22
|
import {
|
|
23
23
|
AGENT,
|
|
24
24
|
OPENCODE_GO_PROVIDER,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
headlessAgentUsagePath,
|
|
29
29
|
isRecord,
|
|
30
30
|
withTimeout
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-FNPPBKJI.js";
|
|
32
32
|
import "./chunk-VEQXQN22.js";
|
|
33
33
|
|
|
34
34
|
// src/headless-agent.ts
|
package/dist/src/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
evaluateCommandProtection,
|
|
28
28
|
extractToolCommand,
|
|
29
29
|
reportCommandProtectionBlock
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-BN2QDNKJ.js";
|
|
31
31
|
import {
|
|
32
32
|
ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
|
|
33
33
|
AGENT_MESSAGE_DELTA_METHOD,
|
|
@@ -64,10 +64,10 @@ import {
|
|
|
64
64
|
spawnMuseMsp,
|
|
65
65
|
startMuseSession,
|
|
66
66
|
uuidV7
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-DTERKPBR.js";
|
|
68
68
|
import {
|
|
69
69
|
publishedPullRequestUrls
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-KGZ2ER7G.js";
|
|
71
71
|
import {
|
|
72
72
|
ACCOUNT_RATE_LIMITS_READ_METHOD,
|
|
73
73
|
AsyncLock,
|
|
@@ -140,7 +140,7 @@ import {
|
|
|
140
140
|
timestampFromSeconds,
|
|
141
141
|
upsertCredentialFileLines,
|
|
142
142
|
writeSecureCredentialFile
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-E3U4EX4U.js";
|
|
144
144
|
import {
|
|
145
145
|
ENGINE_ENV,
|
|
146
146
|
monolithRequest,
|
|
@@ -149,15 +149,15 @@ import {
|
|
|
149
149
|
reloadEngineEnv,
|
|
150
150
|
resolveDiffBase,
|
|
151
151
|
setAgentCredentialSnapshot
|
|
152
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-SJIWGPT3.js";
|
|
153
153
|
import {
|
|
154
154
|
getCodexModelProvider
|
|
155
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-RDJ73FDQ.js";
|
|
156
156
|
import {
|
|
157
157
|
SUBPROCESS_MAX_BUFFER,
|
|
158
158
|
execAsync,
|
|
159
159
|
execFileAsync
|
|
160
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-AHPBQSXT.js";
|
|
161
161
|
import {
|
|
162
162
|
isRecord as isRecord2
|
|
163
163
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -207,6 +207,8 @@ import {
|
|
|
207
207
|
DEFAULT_START_HOOK_TIMEOUT_MS,
|
|
208
208
|
DEFAULT_WEB_APP_URL,
|
|
209
209
|
DESKTOP_STREAM_PORT,
|
|
210
|
+
DEVICES_DIR,
|
|
211
|
+
DEVICE_SCREEN_FILE_SUFFIX,
|
|
210
212
|
ENGINE_ACTIVATE_PATH,
|
|
211
213
|
ENGINE_HEALTH_MAX_WAIT_MS,
|
|
212
214
|
ENGINE_HEALTH_WAIT_HEADER,
|
|
@@ -397,7 +399,7 @@ import {
|
|
|
397
399
|
workspaceTokenRequestSchema,
|
|
398
400
|
workspaceTokenResponseSchema,
|
|
399
401
|
wrapInTag
|
|
400
|
-
} from "./chunk-
|
|
402
|
+
} from "./chunk-FNPPBKJI.js";
|
|
401
403
|
import {
|
|
402
404
|
cloneMcpConfig,
|
|
403
405
|
ensureCompatibilityImports,
|
|
@@ -10523,7 +10525,7 @@ async function registerDesktopPreview(signal) {
|
|
|
10523
10525
|
// src/services/device-service.ts
|
|
10524
10526
|
import { mkdir as mkdir7, rm as rm2, writeFile as writeFile4 } from "fs/promises";
|
|
10525
10527
|
import { join as join8 } from "path";
|
|
10526
|
-
var
|
|
10528
|
+
var DEVICES_DIR2 = join8(ENGINE_ENV.HOME_DIR, DEVICES_DIR);
|
|
10527
10529
|
var TAILSCALED_UNIT = "replicas-tailscaled";
|
|
10528
10530
|
function sshConfig(devices, tailnet) {
|
|
10529
10531
|
return devices.map((device) => [
|
|
@@ -10531,7 +10533,7 @@ function sshConfig(devices, tailnet) {
|
|
|
10531
10533
|
` HostName ${device.host}`,
|
|
10532
10534
|
` Port ${device.port}`,
|
|
10533
10535
|
` User ${device.username}`,
|
|
10534
|
-
` IdentityFile ${join8(
|
|
10536
|
+
` IdentityFile ${join8(DEVICES_DIR2, device.name)}`,
|
|
10535
10537
|
" IdentitiesOnly yes",
|
|
10536
10538
|
" StrictHostKeyChecking accept-new",
|
|
10537
10539
|
" ServerAliveInterval 30",
|
|
@@ -10565,24 +10567,33 @@ async function joinTailnet(authKey, workspaceId, signal) {
|
|
|
10565
10567
|
}
|
|
10566
10568
|
async function connectDevices(signal) {
|
|
10567
10569
|
const { REPLICAS_ENV_DEVICES: devices, TS_AUTHKEY: authKey, REPLICAS_WORKSPACE_ID: workspaceId } = ENGINE_ENV;
|
|
10568
|
-
await rm2(
|
|
10570
|
+
await rm2(DEVICES_DIR2, { recursive: true, force: true });
|
|
10569
10571
|
if (devices.length === 0) {
|
|
10570
10572
|
await execFileAsync("sudo", ["systemctl", "stop", TAILSCALED_UNIT], { signal }).catch(() => void 0);
|
|
10571
10573
|
return;
|
|
10572
10574
|
}
|
|
10573
|
-
await mkdir7(
|
|
10574
|
-
await Promise.all(devices.
|
|
10575
|
-
|
|
10575
|
+
await mkdir7(DEVICES_DIR2, { recursive: true, mode: 448 });
|
|
10576
|
+
await Promise.all(devices.flatMap((device) => [
|
|
10577
|
+
writeFile4(join8(DEVICES_DIR2, device.name), device.private_key, { mode: 384 }),
|
|
10578
|
+
...device.screen_password === void 0 ? [] : [writeFile4(
|
|
10579
|
+
join8(DEVICES_DIR2, `${device.name}${DEVICE_SCREEN_FILE_SUFFIX}`),
|
|
10580
|
+
JSON.stringify({ username: device.username, password: device.screen_password }),
|
|
10581
|
+
{ mode: 384 }
|
|
10582
|
+
)]
|
|
10583
|
+
]));
|
|
10584
|
+
await writeFile4(join8(DEVICES_DIR2, "devices.conf"), sshConfig(devices, authKey !== void 0), { mode: 384 });
|
|
10576
10585
|
if (authKey && workspaceId) await joinTailnet(authKey, workspaceId, signal);
|
|
10577
10586
|
}
|
|
10578
10587
|
function devicesInstruction() {
|
|
10579
10588
|
const devices = ENGINE_ENV.REPLICAS_ENV_DEVICES;
|
|
10580
10589
|
if (devices.length === 0) return void 0;
|
|
10581
10590
|
const list = devices.map((device) => `\`${device.name}\` (${device.username}@${device.host})`).join(", ");
|
|
10591
|
+
const screens = devices.filter((device) => device.screen_password !== void 0).map((device) => `\`${device.name}\``);
|
|
10582
10592
|
return [
|
|
10583
10593
|
`The user's own computers are reachable over SSH by name: ${list}. Use \`ssh <name>\`, \`scp\` and \`rsync\` as usual, and \`ssh -L\` to reach a service running on one.`,
|
|
10584
10594
|
"They are personal machines with the user's files and accounts: change only what the task needs, and ask before anything destructive or hard to undo.",
|
|
10585
|
-
...ENGINE_ENV.TS_AUTHKEY ? ["They are reached through the user's tailnet. If a connection fails, `tailscale status` shows whether this workspace joined it."] : []
|
|
10595
|
+
...ENGINE_ENV.TS_AUTHKEY ? ["They are reached through the user's tailnet. If a connection fails, `tailscale status` shows whether this workspace joined it."] : [],
|
|
10596
|
+
...screens.length > 0 ? [`To see and control the screen of ${screens.join(", ")}, run \`replicas computer screen <name>\`: it shows on this desktop, where the other \`replicas computer\` commands drive it. Prefer \`ssh\` when a command does the job.`] : []
|
|
10586
10597
|
].join(" ");
|
|
10587
10598
|
}
|
|
10588
10599
|
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
publishedPullRequestUrls
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KGZ2ER7G.js";
|
|
7
7
|
import {
|
|
8
8
|
isRecord
|
|
9
9
|
} from "./chunk-UZSNFLDQ.js";
|
|
10
10
|
import {
|
|
11
11
|
shouldRefreshPullRequests
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FNPPBKJI.js";
|
|
13
13
|
import "./chunk-VEQXQN22.js";
|
|
14
14
|
|
|
15
15
|
// src/services/post-tool-pr-notifier.ts
|
package/dist/src/subagent-mcp.js
CHANGED