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.
Files changed (2) hide show
  1. package/dist/src/index.js +18 -14
  2. 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 Xvfb / openbox / x11vnc / noVNC pre-installed and the live noVNC viewer is automatically 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).
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, x11vnc, noVNC, ffmpeg, and Google Chrome. The engine also auto-registers the noVNC 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.
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 noVNC viewer URL (\`https://6080-<hash>.tryreplicas.com/\`) for the workspace desktop. 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.
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 \`![\u2026](\u2026)\` line in your chat reply. See \`MEDI
1198
1198
 
1199
1199
  | Component | Where |
1200
1200
  |---|---|
1201
- | \`xvfb\`, \`openbox\`, \`tint2\`, \`x11vnc\`, \`websockify\`, \`xdotool\`, \`scrot\`, \`ffmpeg\`, \`google-chrome\` | Baked into the workspace image |
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 / x11vnc / websockify processes | Managed by \`replicas-computer.service\` |
1204
- | noVNC preview URL (port 6080) | Registered by the engine on startup (authenticated) |
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 noVNC viewer.",
1212
- bullet: "- Driving the workspace Linux desktop (open a browser, click, type, scroll, screenshot, record) and exposing a live noVNC viewer in the dashboard",
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 DESKTOP_NOVNC_PORT = 6080;
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: DESKTOP_NOVNC_PORT, authenticated: true },
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 ${DESKTOP_NOVNC_PORT} (status ${response.status}).`
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 ${DESKTOP_NOVNC_PORT} after ${REGISTRATION_TIMEOUT_MS}ms`
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.569";
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: DESKTOP_NOVNC_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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.569",
3
+ "version": "0.1.571",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",