replicas-engine 0.1.569 → 0.1.571
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/index.js +18 -14
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -989,7 +989,7 @@ function getGoalCommandObjectiveValidationError(message, goalMode) {
|
|
|
989
989
|
|
|
990
990
|
// ../shared/src/default-skills/replicas-agent/abilities/computer.ts
|
|
991
991
|
var SECTION = `### Computer use (Linux desktop control)
|
|
992
|
-
Drive the workspace's Linux desktop - open a browser, click, type, scroll, screenshot, record - via the \`replicas computer\` CLI. Every Replicas workspace boots with
|
|
992
|
+
Drive the workspace's Linux desktop - open a browser, click, type, scroll, screenshot, record - via the \`replicas computer\` CLI. Every Replicas workspace boots with a live H.264 and Opus stream published as an authenticated preview, so a \`Desktop\` tab is always available in the dashboard. Use \`replicas computer info\` to get the viewer URL when you want to share it (e.g. point a user on Slack at the live stream).
|
|
993
993
|
|
|
994
994
|
**Reference:** \`references/COMPUTER-USE.md\`
|
|
995
995
|
|
|
@@ -1000,7 +1000,7 @@ Use this when:
|
|
|
1000
1000
|
- You want to record a screen capture of a task as proof to share back`;
|
|
1001
1001
|
var REFERENCE = `# Computer use (Linux desktop control)
|
|
1002
1002
|
|
|
1003
|
-
Every Replicas workspace boots with a full Linux desktop stack - Xvfb (1920\xD71080), openbox, tint2,
|
|
1003
|
+
Every Replicas workspace boots with a full Linux desktop stack - Xvfb (1920\xD71080), openbox, tint2, PulseAudio, ffmpeg, and Google Chrome. The engine auto-registers the H.264 and Opus viewer (port 6080) as an authenticated preview at startup, so the dashboard \`Desktop\` tab is live the moment the workspace is up. You drive the desktop through the \`replicas computer\` CLI.
|
|
1004
1004
|
|
|
1005
1005
|
Use this for anything the user can't reasonably do via an API - clicking around web apps, filling forms, testing UI changes, dragging files between desktop apps, recording a walkthrough.
|
|
1006
1006
|
|
|
@@ -1052,7 +1052,7 @@ replicas media upload /tmp/demo.mp4 --name "Demo recording"
|
|
|
1052
1052
|
## Command reference
|
|
1053
1053
|
|
|
1054
1054
|
### \`replicas computer info\`
|
|
1055
|
-
Prints the live
|
|
1055
|
+
Prints the live desktop viewer URL (\`https://6080-<hash>.tryreplicas.com/\`). The engine auto-registers this authenticated preview on startup; \`info\` just looks it up. Use it when you want to share the live stream URL with the user out-of-band (e.g. in a Slack reply) - the dashboard \`Desktop\` tab already points at the same URL automatically.
|
|
1056
1056
|
|
|
1057
1057
|
If invoked very early in the workspace lifecycle, \`info\` will poll briefly while the engine finishes registering the preview, then error if it's still not available.
|
|
1058
1058
|
|
|
@@ -1198,18 +1198,18 @@ Then embed the printed \`\` line in your chat reply. See \`MEDI
|
|
|
1198
1198
|
|
|
1199
1199
|
| Component | Where |
|
|
1200
1200
|
|---|---|
|
|
1201
|
-
| \`xvfb\`, \`openbox\`, \`tint2\`, \`
|
|
1201
|
+
| \`xvfb\`, \`openbox\`, \`tint2\`, \`pulseaudio\`, \`xautomation\`, \`xdotool\`, \`scrot\`, \`ffmpeg\`, \`google-chrome\` | Baked into the workspace image |
|
|
1202
1202
|
| \`replicas-computer\`, desktop assets, and service unit | Installed by \`replicas-computer setup\` during the image build |
|
|
1203
|
-
| Xvfb / openbox / tint2 /
|
|
1204
|
-
|
|
|
1203
|
+
| Xvfb / openbox / tint2 / PulseAudio / stream processes | Managed by \`replicas-computer.service\` |
|
|
1204
|
+
| Desktop stream URL (port 6080) | Registered by the engine on startup (authenticated) |
|
|
1205
1205
|
| Dashboard \`Desktop\` tab | Always available once the engine has registered the preview |
|
|
1206
1206
|
|
|
1207
1207
|
You can call any of the input tools (\`click\`, \`type\`, \`screenshot\`, etc.) immediately - the daemons are already running.
|
|
1208
1208
|
`;
|
|
1209
1209
|
var COMPUTER_ABILITY = {
|
|
1210
1210
|
label: "Computer use",
|
|
1211
|
-
description: "Drive the workspace's Linux desktop and stream a live
|
|
1212
|
-
bullet: "- Driving the workspace Linux desktop (open a browser, click, type, scroll, screenshot, record) and exposing a live
|
|
1211
|
+
description: "Drive the workspace's Linux desktop and stream a live H.264 and Opus viewer.",
|
|
1212
|
+
bullet: "- Driving the workspace Linux desktop (open a browser, click, type, scroll, screenshot, record) and exposing a live audio and video stream in the dashboard",
|
|
1213
1213
|
section: SECTION,
|
|
1214
1214
|
referenceFile: { name: "COMPUTER-USE.md", content: REFERENCE }
|
|
1215
1215
|
};
|
|
@@ -3078,7 +3078,7 @@ function hasChatStarted(chat) {
|
|
|
3078
3078
|
}
|
|
3079
3079
|
|
|
3080
3080
|
// ../shared/src/engine/environment.ts
|
|
3081
|
-
var
|
|
3081
|
+
var DESKTOP_STREAM_PORT = 6080;
|
|
3082
3082
|
|
|
3083
3083
|
// ../shared/src/engine/v1.ts
|
|
3084
3084
|
import { z } from "zod";
|
|
@@ -3439,6 +3439,10 @@ function findPrMergeSignals(request) {
|
|
|
3439
3439
|
return checks.flatMap(([name, pattern]) => pattern.test(combined) ? [name] : []);
|
|
3440
3440
|
}
|
|
3441
3441
|
|
|
3442
|
+
// ../shared/src/routes/client-state.ts
|
|
3443
|
+
var MAX_CLIENT_STATE_REQUEST_BYTES = 5 * 1024 * 1024;
|
|
3444
|
+
var MAX_CLIENT_STATE_BYTES_PER_USER = 10 * 1024 * 1024;
|
|
3445
|
+
|
|
3442
3446
|
// ../shared/src/routes/workspaces.ts
|
|
3443
3447
|
var WORKSPACE_STATUSES = ["active", "sleeping", "archived", "preparing", "error"];
|
|
3444
3448
|
var WORKSPACE_STATUS_FILTERS = WORKSPACE_STATUSES.map((status) => status === "error" ? "failed" : status);
|
|
@@ -7923,12 +7927,12 @@ var ATTEMPT_TIMEOUT_MS = 8e3;
|
|
|
7923
7927
|
async function attemptRegistration() {
|
|
7924
7928
|
try {
|
|
7925
7929
|
const response = await monolithRequest("/v1/previews", {
|
|
7926
|
-
body: { port:
|
|
7930
|
+
body: { port: DESKTOP_STREAM_PORT, authenticated: true },
|
|
7927
7931
|
signal: AbortSignal.timeout(ATTEMPT_TIMEOUT_MS)
|
|
7928
7932
|
});
|
|
7929
7933
|
if (response.ok || response.status === 409) {
|
|
7930
7934
|
console.log(
|
|
7931
|
-
`[DesktopPreview] Registered port ${
|
|
7935
|
+
`[DesktopPreview] Registered port ${DESKTOP_STREAM_PORT} (status ${response.status}).`
|
|
7932
7936
|
);
|
|
7933
7937
|
return true;
|
|
7934
7938
|
}
|
|
@@ -7955,7 +7959,7 @@ async function registerDesktopPreview() {
|
|
|
7955
7959
|
await new Promise((resolve4) => setTimeout(resolve4, RETRY_DELAY_MS));
|
|
7956
7960
|
}
|
|
7957
7961
|
console.error(
|
|
7958
|
-
`[DesktopPreview] Gave up registering port ${
|
|
7962
|
+
`[DesktopPreview] Gave up registering port ${DESKTOP_STREAM_PORT} after ${REGISTRATION_TIMEOUT_MS}ms`
|
|
7959
7963
|
);
|
|
7960
7964
|
}
|
|
7961
7965
|
|
|
@@ -10776,7 +10780,7 @@ var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
|
10776
10780
|
var MIN_CODEX_CLI_VERSION = "0.144.6";
|
|
10777
10781
|
var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
|
|
10778
10782
|
var codexCliVersionEnsured = null;
|
|
10779
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
10783
|
+
var ENGINE_PACKAGE_VERSION = "0.1.571";
|
|
10780
10784
|
var INITIALIZE_METHOD = "initialize";
|
|
10781
10785
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
10782
10786
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -18520,7 +18524,7 @@ async function checkActiveSSHSessions() {
|
|
|
18520
18524
|
}
|
|
18521
18525
|
function checkDesktopReady() {
|
|
18522
18526
|
return new Promise((resolve4) => {
|
|
18523
|
-
const socket = connect({ host: "127.0.0.1", port:
|
|
18527
|
+
const socket = connect({ host: "127.0.0.1", port: DESKTOP_STREAM_PORT });
|
|
18524
18528
|
const done = (ready) => {
|
|
18525
18529
|
socket.destroy();
|
|
18526
18530
|
resolve4(ready);
|