orquesta-agent 0.2.249 → 0.2.251

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.
@@ -1 +1 @@
1
- {"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC3C;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUhE;AAkFD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D1H;AAsDD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DvH"}
1
+ {"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC3C;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUhE;AAkFD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F1H;AAsDD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DvH"}
@@ -137,11 +137,15 @@ export async function runCoordination(spec, orquestaToken, log) {
137
137
  };
138
138
  let replied = false;
139
139
  try {
140
- // 2. HISTORY → reply if one is owed (decided in code, not by the model)
140
+ // 2. HISTORY → reply if one is owed (decided in code, not by the model). On a
141
+ // video call the reply is drafted to be SPOKEN (short, plain), on chat it is
142
+ // the normal markdown-ok reply.
143
+ const isCall = spec.mode === 'call';
144
+ const draft = (h) => isCall ? draftSpokenReply(spec, h, orquestaToken) : draftReply(spec, h, orquestaToken);
141
145
  const hr = await rr(spec, `/api/channels/${spec.channelId}/history?limit=12`);
142
146
  const hist = (await hr.json().catch(() => ({}))).history || [];
143
147
  if (replyIsOwed(spec, hist)) {
144
- const reply = await draftReply(spec, hist, orquestaToken);
148
+ const reply = await draft(hist);
145
149
  if (reply) {
146
150
  await send(reply);
147
151
  replied = true;
@@ -158,19 +162,56 @@ export async function runCoordination(spec, orquestaToken, log) {
158
162
  else {
159
163
  log('Woken but nothing addressed to me — leaving silently (no chatter)');
160
164
  }
161
- // 3. LISTEN briefly for an immediate follow-up (bounded; never loops forever)
162
- for (let i = 0; i < 3; i++) {
163
- const lr = await rr(spec, `/api/channels/${spec.channelId}/listen?timeout=8`, { headers: sid() });
164
- const data = (await lr.json().catch(() => ({})));
165
- const fresh = (data.messages || []).filter(m => m.from && m.from !== spec.callsign);
166
- if (fresh.length === 0)
167
- continue;
168
- // A peer/operator spoke after we joined → a reply is owed.
169
- const follow = await draftReply(spec, fresh, orquestaToken);
170
- if (follow) {
171
- await send(follow);
172
- replied = true;
173
- log(`Follow-up reply: ${follow.slice(0, 120)}`);
165
+ // 3. LISTEN for follow-ups. On CHAT this is a brief bounded peek (the agent is
166
+ // re-woken by the webhook on the next message, so lingering only looks "online"
167
+ // and gets skipped). On a CALL that model is wrong: a call is a live
168
+ // conversation, so leaving after ~24s drops the agent out of the room after its
169
+ // first couple of lines (observed on 2026-09-22: "agent sent 2 messages then
170
+ // disconnected"). In call mode we stay in the room and keep answering until the
171
+ // human goes quiet for a while or a hard cap is hit, then leave cleanly.
172
+ if (isCall) {
173
+ const HARD_CAP_MS = 10 * 60_000; // never hold a PTY forever
174
+ const IDLE_LEAVE_MS = 90_000; // leave if nobody says anything for 90s
175
+ const deadline = Date.now() + HARD_CAP_MS;
176
+ let lastHeardAt = Date.now();
177
+ while (Date.now() < deadline && Date.now() - lastHeardAt < IDLE_LEAVE_MS) {
178
+ const lr = await rr(spec, `/api/channels/${spec.channelId}/listen?timeout=20`, { headers: sid() });
179
+ if (!lr.ok) {
180
+ if (lr.status === 401 || lr.status === 404)
181
+ break;
182
+ continue;
183
+ }
184
+ const data = (await lr.json().catch(() => ({})));
185
+ const fresh = (data.messages || []).filter(m => m.from && m.from !== spec.callsign);
186
+ if (fresh.length === 0)
187
+ continue; // timeout tick, no speech — keep waiting
188
+ lastHeardAt = Date.now();
189
+ // Only the operator/human or lines addressed to us oblige a reply; peer
190
+ // broadcasts are context, not a prompt (same rule as replyIsOwed).
191
+ if (!replyIsOwed(spec, fresh))
192
+ continue;
193
+ const follow = await draftSpokenReply(spec, fresh, orquestaToken);
194
+ if (follow) {
195
+ await send(follow);
196
+ replied = true;
197
+ log(`Spoke: ${follow.slice(0, 120)}`);
198
+ }
199
+ }
200
+ }
201
+ else {
202
+ for (let i = 0; i < 3; i++) {
203
+ const lr = await rr(spec, `/api/channels/${spec.channelId}/listen?timeout=8`, { headers: sid() });
204
+ const data = (await lr.json().catch(() => ({})));
205
+ const fresh = (data.messages || []).filter(m => m.from && m.from !== spec.callsign);
206
+ if (fresh.length === 0)
207
+ continue;
208
+ // A peer/operator spoke after we joined → a reply is owed.
209
+ const follow = await draftReply(spec, fresh, orquestaToken);
210
+ if (follow) {
211
+ await send(follow);
212
+ replied = true;
213
+ log(`Follow-up reply: ${follow.slice(0, 120)}`);
214
+ }
174
215
  }
175
216
  }
176
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -32,9 +32,10 @@ import * as logger from './logger.js';
32
32
  import { listDirectory, readFileForBrowser } from './fs-browse.js';
33
33
  import { startDaemon, isDaemonChild, acquireSingleInstanceLock } from './daemon.js';
34
34
  import { getCliTokenHash } from './cli-config.js';
35
- import { validateToken, markDisconnected, subscribeToChannel, setAgentToken, reportAgentError, reportAgentProblem, persistAgentSettings, startHeartbeat, stopHeartbeat, setOnTokenInvalidated, setPermissionModeUpdater, setCliPreferenceUpdater, setCliEndpointUpdater, setBrowserEnabledUpdater, setSandboxUpdater, setSandboxAccessUpdater, setCurrentProjectId, getCurrentProjectId, fetchCredentials, fetchSkills, syncSkillsToDirectory, uploadClaudeMd, setClaudeAuthChecker, setOrquestaCliChecker, setKimiCliChecker, setCursorCliChecker, setKiroCliChecker, setActiveCliResolver, setEffectiveConfigResolver, setAgentVersion, setAgentName, } from './supabase.js';
35
+ import { validateToken, markDisconnected, subscribeToChannel, setAgentToken, reportAgentError, reportAgentProblem, persistAgentSettings, startHeartbeat, stopHeartbeat, setOnTokenInvalidated, setPermissionModeUpdater, setCliPreferenceUpdater, setCliEndpointUpdater, setBrowserEnabledUpdater, setRemoteDesktopUpdater, setSandboxUpdater, setSandboxAccessUpdater, setCurrentProjectId, getCurrentProjectId, fetchCredentials, fetchSkills, syncSkillsToDirectory, uploadClaudeMd, setClaudeAuthChecker, setOrquestaCliChecker, setKimiCliChecker, setCursorCliChecker, setKiroCliChecker, setActiveCliResolver, setEffectiveConfigResolver, setAgentVersion, setAgentName, } from './supabase.js';
36
36
  import { createSocketIOConnection, createExecutionChannel, setupSocketIOListeners, } from './socketio-transport.js';
37
37
  import { execSync, spawn } from 'child_process';
38
+ import * as remoteDesktop from './remote-desktop.js';
38
39
  import { execute, evaluate, cancel, cancelAll, hasRunningProcesses, checkClaudeAuth, configureAuth, gitClone, gitPull, gitCommitAndPush, gitNumstatSince, getCurrentGitBranch, setPermissionMode, setSandboxConfig, setSandboxAccess, setAgentInstructions, setProjectSettings, handleSupervisionResponse, setInjectedCredentials, generatePlanItems, isOrquestaCliAvailable, isClaudeCliAvailable, setCliPreference, setCliEndpoint, setBrowserEnabled, selectCli, isKimiCliAvailable, isCursorCliAvailable, checkCursorAuth, isKiroCliAvailable, checkKiroAuth,
39
40
  // Interactive session functions
40
41
  startSession, sendSessionInput, endSession, terminateSession, hasActiveSession, hasActiveSessionFor, getEffectiveRuntimeConfig, getSessionStatus, resizeSession, setOnSessionEnded, listResumableSessions, } from './executor.js';
@@ -60,6 +61,9 @@ let token = null;
60
61
  let myTokenId = null; // Token ID for multi-agent command filtering
61
62
  let workingDirectory = process.cwd();
62
63
  let currentPermissionMode = 'auto';
64
+ // Remote-desktop control state, surfaced to the dashboard via effectiveConfig.
65
+ let remoteDesktopEnabled = false;
66
+ let remoteDesktopAvailable = false;
63
67
  async function setup() {
64
68
  logger.banner(VERSION);
65
69
  logger.info('Setup wizard for Orquesta Agent\n');
@@ -275,7 +279,16 @@ async function connect(options) {
275
279
  flagOverrides.push('sandbox');
276
280
  if (options.sandboxMode)
277
281
  flagOverrides.push('sandboxMode');
278
- setEffectiveConfigResolver(() => ({ ...getEffectiveRuntimeConfig(), flagOverrides }));
282
+ setEffectiveConfigResolver(() => ({
283
+ ...getEffectiveRuntimeConfig(),
284
+ flagOverrides,
285
+ remoteDesktop: {
286
+ enabled: remoteDesktopEnabled,
287
+ available: remoteDesktopAvailable,
288
+ vncRunning: remoteDesktop.getVncStatus().running,
289
+ reason: remoteDesktop.getVncStatus().reason,
290
+ },
291
+ }));
279
292
  // Set custom agent name if provided (included in agentInfo sent to server)
280
293
  if (options.agentName) {
281
294
  setAgentName(options.agentName);
@@ -350,6 +363,40 @@ async function connect(options) {
350
363
  if (typeof validation.browserEnabled === 'boolean')
351
364
  setBrowserEnabled(validation.browserEnabled);
352
365
  setBrowserEnabledUpdater((enabled) => setBrowserEnabled(enabled));
366
+ // Per-project remote-desktop control (default off). Control of the REAL
367
+ // desktop is high-risk, so it is refused outright when the project runs in
368
+ // sandbox STRICT — strict isolation and full desktop takeover are mutually
369
+ // exclusive by design. Applied at startup and live-updated via heartbeat.
370
+ const applyRemoteDesktop = (enabled, mode) => {
371
+ if (enabled && sandboxMode === 'strict') {
372
+ logger.warn('[remote-desktop] refused: project is in sandbox STRICT (incompatible with desktop control)');
373
+ remoteDesktopEnabled = false;
374
+ remoteDesktop.shutdownRemoteDesktop();
375
+ return;
376
+ }
377
+ remoteDesktopEnabled = enabled;
378
+ if (!enabled) {
379
+ remoteDesktop.shutdownRemoteDesktop();
380
+ return;
381
+ }
382
+ // Refresh native-control availability (nut.js) for the dashboard badge.
383
+ void remoteDesktop.isAvailable().then((ok) => { remoteDesktopAvailable = ok; });
384
+ const wantLive = mode === 'live' || mode === 'both' || mode === undefined;
385
+ if (wantLive) {
386
+ // Start the VNC server for human take-over; idle-reaped after 10 min.
387
+ void remoteDesktop.startVnc({ idleTimeoutMs: 10 * 60_000 }).then((status) => {
388
+ if (!status.running && status.reason) {
389
+ logger.warn(`[remote-desktop] VNC not started: ${status.reason}`);
390
+ }
391
+ });
392
+ }
393
+ // Automation (computer-use) needs no server; it runs on demand via nut.js.
394
+ logger.info(`[remote-desktop] enabled (mode: ${mode || 'both'})`);
395
+ };
396
+ if (typeof validation.remoteDesktopEnabled === 'boolean') {
397
+ applyRemoteDesktop(validation.remoteDesktopEnabled, validation.remoteDesktopMode);
398
+ }
399
+ setRemoteDesktopUpdater((enabled, mode) => applyRemoteDesktop(enabled, mode));
353
400
  // Set agent instructions if provided (includes skills markdown)
354
401
  if (validation.agentMd) {
355
402
  setAgentInstructions(validation.agentMd);
@@ -729,6 +776,11 @@ async function connect(options) {
729
776
  onSessionResize: (payload) => resizeSession(payload.sessionId, payload.cols, payload.rows),
730
777
  });
731
778
  channel = fakeChannel;
779
+ // Wire the remote-desktop relay onto this socket (frames + input) — gated
780
+ // live by the per-project setting via the remoteDesktopEnabled flag.
781
+ if (validation.projectId) {
782
+ remoteDesktop.attachRemoteDesktopSocket(socket, validation.projectId, () => remoteDesktopEnabled);
783
+ }
732
784
  return; // skip Supabase setup
733
785
  }
734
786
  // ── Socket.io transport (Orquesta Cloud) ──────────────────────────────────
@@ -1497,6 +1549,11 @@ async function gracefulCleanup(signal) {
1497
1549
  logger.info('Waiting for running processes to complete...');
1498
1550
  cancelAll();
1499
1551
  }
1552
+ // Stop the remote-desktop VNC server if running.
1553
+ try {
1554
+ remoteDesktop.shutdownRemoteDesktop();
1555
+ }
1556
+ catch { /* best-effort */ }
1500
1557
  // Tear down any browser sessions
1501
1558
  await shutdownAllBrowserSessions().catch(err => logger.warn(`Failed to shut down browser sessions: ${err?.message || err}`));
1502
1559
  // Stop local HTTP server (for browser-RPC bridge)