replicas-engine 0.1.589 → 0.1.591
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 +51 -5
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -7345,6 +7345,7 @@ var EnvironmentDetailsService = class {
|
|
|
7345
7345
|
]);
|
|
7346
7346
|
details.engineVersion = ENGINE_ENV.REPLICAS_SANDBOX_IMAGE_VERSION;
|
|
7347
7347
|
details.supportsMidTurnSteering = true;
|
|
7348
|
+
details.supportsClaudeMidTurnSteering = true;
|
|
7348
7349
|
details.supportsGoalUpdates = true;
|
|
7349
7350
|
details.supportsQueuedMessageEditing = true;
|
|
7350
7351
|
details.claudeAuthMethod = detectClaudeAuthMethod();
|
|
@@ -8914,6 +8915,10 @@ var CodingAgentManager = class {
|
|
|
8914
8915
|
if (!taken) {
|
|
8915
8916
|
return { success: false, queue: this.getQueue() };
|
|
8916
8917
|
}
|
|
8918
|
+
const keepQueued = this.keepSteeredMessageQueued();
|
|
8919
|
+
if (keepQueued) {
|
|
8920
|
+
this.messageQueue.restoreToQueue(taken.message, 0);
|
|
8921
|
+
}
|
|
8917
8922
|
let steered = false;
|
|
8918
8923
|
try {
|
|
8919
8924
|
steered = await this.steerRequest(taken.message);
|
|
@@ -8921,10 +8926,22 @@ var CodingAgentManager = class {
|
|
|
8921
8926
|
console.error("[CodingAgentManager] steerRequest threw, keeping message queued:", error);
|
|
8922
8927
|
}
|
|
8923
8928
|
if (!steered) {
|
|
8924
|
-
|
|
8929
|
+
if (keepQueued) {
|
|
8930
|
+
const prioritized = this.messageQueue.takeFromQueue(messageId);
|
|
8931
|
+
if (prioritized) this.messageQueue.restoreToQueue(prioritized.message, taken.index);
|
|
8932
|
+
} else {
|
|
8933
|
+
this.messageQueue.restoreToQueue(taken.message, taken.index);
|
|
8934
|
+
}
|
|
8925
8935
|
this.messageQueue.resumeIfIdle();
|
|
8926
8936
|
}
|
|
8927
|
-
return {
|
|
8937
|
+
return {
|
|
8938
|
+
success: steered,
|
|
8939
|
+
queue: this.getQueue(),
|
|
8940
|
+
...steered ? { steeredAt: (/* @__PURE__ */ new Date()).toISOString() } : {}
|
|
8941
|
+
};
|
|
8942
|
+
}
|
|
8943
|
+
keepSteeredMessageQueued() {
|
|
8944
|
+
return false;
|
|
8928
8945
|
}
|
|
8929
8946
|
steerRequest(_request) {
|
|
8930
8947
|
return Promise.resolve(false);
|
|
@@ -9859,6 +9876,14 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
9859
9876
|
}
|
|
9860
9877
|
await this.abortAllPendingToolInputs();
|
|
9861
9878
|
}
|
|
9879
|
+
keepSteeredMessageQueued() {
|
|
9880
|
+
return true;
|
|
9881
|
+
}
|
|
9882
|
+
async steerRequest() {
|
|
9883
|
+
if (!this.messageQueue.isProcessing()) return false;
|
|
9884
|
+
await this.interruptActiveTurn();
|
|
9885
|
+
return true;
|
|
9886
|
+
}
|
|
9862
9887
|
async abortAllPendingToolInputs() {
|
|
9863
9888
|
const pending = Array.from(this.pendingToolInputs.values());
|
|
9864
9889
|
this.pendingToolInputs.clear();
|
|
@@ -11011,7 +11036,7 @@ var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
|
11011
11036
|
var MIN_CODEX_CLI_VERSION = "0.144.6";
|
|
11012
11037
|
var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
|
|
11013
11038
|
var codexCliVersionEnsured = null;
|
|
11014
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
11039
|
+
var ENGINE_PACKAGE_VERSION = "0.1.591";
|
|
11015
11040
|
var INITIALIZE_METHOD = "initialize";
|
|
11016
11041
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
11017
11042
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -16491,9 +16516,30 @@ var ChatService = class {
|
|
|
16491
16516
|
queue: chat.provider.getQueue()
|
|
16492
16517
|
};
|
|
16493
16518
|
}
|
|
16494
|
-
steerFromQueue(chatId, messageId) {
|
|
16519
|
+
async steerFromQueue(chatId, messageId) {
|
|
16495
16520
|
const chat = this.requireChat(chatId);
|
|
16496
|
-
|
|
16521
|
+
const queuedMessageIds = new Set(chat.provider.getQueue().map((message) => message.id));
|
|
16522
|
+
const interruptedMessageId = chat.activeMessageId ?? chat.pendingMessageIds.find((pendingMessageId) => !queuedMessageIds.has(pendingMessageId)) ?? null;
|
|
16523
|
+
const result = await chat.provider.steerFromQueue(messageId);
|
|
16524
|
+
if (!result.success || chat.persisted.provider !== "claude") {
|
|
16525
|
+
return result;
|
|
16526
|
+
}
|
|
16527
|
+
chat.pendingMessageIds = [
|
|
16528
|
+
messageId,
|
|
16529
|
+
...chat.pendingMessageIds.filter((pendingMessageId) => pendingMessageId !== messageId && pendingMessageId !== interruptedMessageId)
|
|
16530
|
+
];
|
|
16531
|
+
this.analyticsService.noteTurnEnded(chatId);
|
|
16532
|
+
chat.hasActiveTurn = false;
|
|
16533
|
+
chat.activeMessageId = null;
|
|
16534
|
+
if (interruptedMessageId) {
|
|
16535
|
+
chat.acceptedUserEvents.delete(interruptedMessageId);
|
|
16536
|
+
}
|
|
16537
|
+
this.touch(chat);
|
|
16538
|
+
await this.publish({
|
|
16539
|
+
type: "chat.interrupted",
|
|
16540
|
+
payload: { chatId, interrupted: true, queue: [] }
|
|
16541
|
+
});
|
|
16542
|
+
return result;
|
|
16497
16543
|
}
|
|
16498
16544
|
async respondToToolInput(chatId, requestId, selectionId) {
|
|
16499
16545
|
const chat = this.requireChat(chatId);
|