replicas-engine 0.1.1000 → 0.1.1001
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.
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
getCodexAspHost,
|
|
6
6
|
restartCodexAspHost,
|
|
7
7
|
restartCodexAspHostIfRunning
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2DRZES2X.js";
|
|
9
9
|
import "./chunk-7CQ5HPG5.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-YCHNQQI2.js";
|
|
11
11
|
import "./chunk-IIJ5KKS3.js";
|
|
12
12
|
import "./chunk-UZSNFLDQ.js";
|
|
13
13
|
import "./chunk-NOZZLX6A.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
AppServerProcess,
|
|
11
11
|
buildCodexAgentEnv
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YCHNQQI2.js";
|
|
13
13
|
import {
|
|
14
14
|
SUBPROCESS_MAX_BUFFER,
|
|
15
15
|
execFileAsync
|
|
@@ -264,7 +264,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
264
264
|
await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
|
|
265
265
|
await this.applyCredentialsResponse(data);
|
|
266
266
|
setAgentCredentialSnapshot("codex", data);
|
|
267
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
267
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-XVFSG3YF.js");
|
|
268
268
|
await restartCodexAspHostIfRunning2();
|
|
269
269
|
});
|
|
270
270
|
await this.start(true);
|
|
@@ -285,7 +285,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
285
285
|
const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
|
|
286
286
|
await this.applyCredentialsResponse(data);
|
|
287
287
|
if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
|
|
288
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
288
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-XVFSG3YF.js");
|
|
289
289
|
await restartCodexAspHostIfRunning2();
|
|
290
290
|
}
|
|
291
291
|
setAgentCredentialSnapshot("codex", data);
|
|
@@ -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.1001";
|
|
244
244
|
var INITIALIZE_METHOD = "initialize";
|
|
245
245
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
246
246
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
package/dist/src/index.js
CHANGED
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
refreshDelayMs,
|
|
72
72
|
restartCodexAspHost,
|
|
73
73
|
routineRefreshRequest
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-2DRZES2X.js";
|
|
75
75
|
import {
|
|
76
76
|
ENGINE_ENV,
|
|
77
77
|
monolithRequest,
|
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
import {
|
|
84
84
|
AspClient,
|
|
85
85
|
getCodexModelProvider
|
|
86
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-YCHNQQI2.js";
|
|
87
87
|
import {
|
|
88
88
|
SUBPROCESS_MAX_BUFFER,
|
|
89
89
|
execAsync,
|
|
@@ -10167,6 +10167,7 @@ var EnvironmentDetailsService = class {
|
|
|
10167
10167
|
details.engineVersion = ENGINE_ENV.REPLICAS_SANDBOX_IMAGE_VERSION;
|
|
10168
10168
|
details.supportsMidTurnSteering = true;
|
|
10169
10169
|
details.supportsClaudeMidTurnSteering = true;
|
|
10170
|
+
details.supportsCursorMidTurnSteering = true;
|
|
10170
10171
|
details.supportsSendNow = true;
|
|
10171
10172
|
details.supportsClaudeGoals = true;
|
|
10172
10173
|
details.supportsGoalUpdates = true;
|
|
@@ -16445,6 +16446,7 @@ async function listCursorCommandsInDirectory(directory) {
|
|
|
16445
16446
|
var CursorManager = class extends CodingAgentManager {
|
|
16446
16447
|
agent = null;
|
|
16447
16448
|
activeRun = null;
|
|
16449
|
+
pendingSteers = /* @__PURE__ */ new Set();
|
|
16448
16450
|
activeModel = null;
|
|
16449
16451
|
abortActiveTurn = null;
|
|
16450
16452
|
reconnectNoticeVisible = false;
|
|
@@ -16471,6 +16473,27 @@ var CursorManager = class extends CodingAgentManager {
|
|
|
16471
16473
|
await this.cancelRun(this.activeRun);
|
|
16472
16474
|
this.abortActiveTurn?.();
|
|
16473
16475
|
}
|
|
16476
|
+
// Cursor's steer API is text-only, so an image message interrupts the turn and runs next instead.
|
|
16477
|
+
async steerFromQueue(messageId) {
|
|
16478
|
+
await this.initialized;
|
|
16479
|
+
const queued = this.messageQueue.getQueue().find(({ id }) => id === messageId);
|
|
16480
|
+
return queued?.images?.length ? this.sendNow(messageId) : super.steerFromQueue(messageId);
|
|
16481
|
+
}
|
|
16482
|
+
// Cursor's steer resolves once the turn appends the message, so it settles later; the turn
|
|
16483
|
+
// waits for pending steers before completing, and an unread one is requeued as a follow-up.
|
|
16484
|
+
async steerRequest(request) {
|
|
16485
|
+
const run = this.activeRun;
|
|
16486
|
+
if (!run?.steer || run.status !== "running" || request.images?.length) return false;
|
|
16487
|
+
const pending = run.steer(request.message).then((outcome) => {
|
|
16488
|
+
if (outcome !== "complete_delivered") return;
|
|
16489
|
+
const steer = this.markSteerRead(request.id);
|
|
16490
|
+
if (steer) this.recordUserMessageHistoryEvent(steer, this.historyFile);
|
|
16491
|
+
}).catch((error) => {
|
|
16492
|
+
console.error("[CursorManager] Failed to steer Cursor run:", error);
|
|
16493
|
+
}).finally(() => this.pendingSteers.delete(pending));
|
|
16494
|
+
this.pendingSteers.add(pending);
|
|
16495
|
+
return true;
|
|
16496
|
+
}
|
|
16474
16497
|
async cancelRun(run) {
|
|
16475
16498
|
if (!run || run.status !== "running") return;
|
|
16476
16499
|
try {
|
|
@@ -16707,6 +16730,7 @@ var CursorManager = class extends CodingAgentManager {
|
|
|
16707
16730
|
this.abortActiveTurn = null;
|
|
16708
16731
|
this.activeRun = null;
|
|
16709
16732
|
this.activeModel = null;
|
|
16733
|
+
await raceWithTimeout(Promise.allSettled(this.pendingSteers), CURSOR_RUN_SETTLE_TIMEOUT_MS);
|
|
16710
16734
|
await this.historyFile.flush();
|
|
16711
16735
|
await this.onTurnComplete();
|
|
16712
16736
|
}
|
|
@@ -61688,7 +61712,7 @@ var ChatService = class {
|
|
|
61688
61712
|
}
|
|
61689
61713
|
let eventToPublish = event;
|
|
61690
61714
|
if (event.type === "event_msg" && event.payload.type === "user_message") {
|
|
61691
|
-
if (chat.activeMessageId) {
|
|
61715
|
+
if (chat.activeMessageId && !event.payload[USER_MESSAGE_ID_PAYLOAD_KEY]) {
|
|
61692
61716
|
event.payload[USER_MESSAGE_ID_PAYLOAD_KEY] = chat.activeMessageId;
|
|
61693
61717
|
eventToPublish = {
|
|
61694
61718
|
...event,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "replicas-engine",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1001",
|
|
4
4
|
"description": "Lightweight API server for Replicas workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@anthropic-ai/claude-agent-sdk": "0.3.284",
|
|
43
43
|
"@anthropic-ai/sdk": "0.128.0",
|
|
44
44
|
"@connectrpc/connect-node": "1.7.0",
|
|
45
|
-
"@cursor/sdk": "1.0.
|
|
45
|
+
"@cursor/sdk": "1.0.36",
|
|
46
46
|
"@earendil-works/pi-ai": "0.85.0",
|
|
47
47
|
"@earendil-works/pi-coding-agent": "0.85.0",
|
|
48
48
|
"@earendil-works/pi-server": "0.85.0",
|