replicas-engine 0.1.578 → 0.1.579
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 +54 -17
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -8598,8 +8598,11 @@ var MessageQueueService = class {
|
|
|
8598
8598
|
processing = false;
|
|
8599
8599
|
messageIdCounter = 0;
|
|
8600
8600
|
processMessage;
|
|
8601
|
-
|
|
8601
|
+
onProcessingChanged;
|
|
8602
|
+
constructor(processMessage, onProcessingChanged = () => {
|
|
8603
|
+
}) {
|
|
8602
8604
|
this.processMessage = processMessage;
|
|
8605
|
+
this.onProcessingChanged = onProcessingChanged;
|
|
8603
8606
|
}
|
|
8604
8607
|
generateMessageId() {
|
|
8605
8608
|
return `msg_${Date.now()}_${++this.messageIdCounter}`;
|
|
@@ -8655,12 +8658,16 @@ var MessageQueueService = class {
|
|
|
8655
8658
|
}
|
|
8656
8659
|
async startProcessing(queuedMessage) {
|
|
8657
8660
|
this.processing = true;
|
|
8661
|
+
this.onProcessingChanged(true);
|
|
8658
8662
|
try {
|
|
8659
8663
|
await this.processMessage(queuedMessage);
|
|
8660
8664
|
} catch (error) {
|
|
8661
8665
|
console.error("[MessageQueue] Error processing message:", error);
|
|
8662
8666
|
} finally {
|
|
8663
8667
|
this.processing = false;
|
|
8668
|
+
if (this.queue.length === 0) {
|
|
8669
|
+
this.onProcessingChanged(false);
|
|
8670
|
+
}
|
|
8664
8671
|
await this.processNextInQueue();
|
|
8665
8672
|
}
|
|
8666
8673
|
}
|
|
@@ -8767,6 +8774,7 @@ var CodingAgentManager = class {
|
|
|
8767
8774
|
onSaveSessionId;
|
|
8768
8775
|
onEvent;
|
|
8769
8776
|
hostOnTurnComplete;
|
|
8777
|
+
onProcessingChanged;
|
|
8770
8778
|
compacting = false;
|
|
8771
8779
|
constructor(options) {
|
|
8772
8780
|
this.workingDirectory = options.workingDirectory ?? ENGINE_ENV.WORKSPACE_ROOT;
|
|
@@ -8774,6 +8782,8 @@ var CodingAgentManager = class {
|
|
|
8774
8782
|
this.onSaveSessionId = options.onSaveSessionId;
|
|
8775
8783
|
this.onEvent = options.onEvent;
|
|
8776
8784
|
this.hostOnTurnComplete = options.onTurnComplete;
|
|
8785
|
+
this.onProcessingChanged = options.onProcessingChanged ?? (() => {
|
|
8786
|
+
});
|
|
8777
8787
|
}
|
|
8778
8788
|
onTurnComplete = async () => {
|
|
8779
8789
|
if (this.compacting) {
|
|
@@ -8815,7 +8825,7 @@ var CodingAgentManager = class {
|
|
|
8815
8825
|
historyFile.append(event);
|
|
8816
8826
|
}
|
|
8817
8827
|
initializeManager(processMessage) {
|
|
8818
|
-
this.messageQueue = new MessageQueueService(processMessage);
|
|
8828
|
+
this.messageQueue = new MessageQueueService(processMessage, this.onProcessingChanged);
|
|
8819
8829
|
this.initialized = this.initialize();
|
|
8820
8830
|
}
|
|
8821
8831
|
async interrupt() {
|
|
@@ -9726,8 +9736,11 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
9726
9736
|
}
|
|
9727
9737
|
async interruptActiveTurn() {
|
|
9728
9738
|
this.pendingInterrupt = true;
|
|
9729
|
-
|
|
9730
|
-
|
|
9739
|
+
const query2 = this.activeQuery;
|
|
9740
|
+
if (query2) {
|
|
9741
|
+
const taskIds = [...this.activeBackgroundTasks];
|
|
9742
|
+
await Promise.allSettled(taskIds.map((taskId) => query2.stopTask(taskId)));
|
|
9743
|
+
await query2.interrupt();
|
|
9731
9744
|
}
|
|
9732
9745
|
await this.abortAllPendingToolInputs();
|
|
9733
9746
|
}
|
|
@@ -9751,7 +9764,7 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
9751
9764
|
return this.authRetrying;
|
|
9752
9765
|
}
|
|
9753
9766
|
isProcessing() {
|
|
9754
|
-
return super.isProcessing() || isClaudeSessionActive(this.sessionActivity);
|
|
9767
|
+
return super.isProcessing() || isClaudeSessionActive(this.sessionActivity) || this.activeBackgroundTasks.size > 0;
|
|
9755
9768
|
}
|
|
9756
9769
|
hasActiveBackgroundTasks() {
|
|
9757
9770
|
return this.activeBackgroundTasks.size > 0;
|
|
@@ -10437,6 +10450,10 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
10437
10450
|
}
|
|
10438
10451
|
static updateBackgroundTaskState(message, activeTasks) {
|
|
10439
10452
|
if (message.type !== "system") return;
|
|
10453
|
+
if (message.subtype === "session_state_changed" && message.state === "idle") {
|
|
10454
|
+
activeTasks.clear();
|
|
10455
|
+
return;
|
|
10456
|
+
}
|
|
10440
10457
|
if (message.subtype === "background_tasks_changed") {
|
|
10441
10458
|
activeTasks.clear();
|
|
10442
10459
|
for (const task of message.tasks) {
|
|
@@ -10879,7 +10896,7 @@ var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
|
10879
10896
|
var MIN_CODEX_CLI_VERSION = "0.144.6";
|
|
10880
10897
|
var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
|
|
10881
10898
|
var codexCliVersionEnsured = null;
|
|
10882
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
10899
|
+
var ENGINE_PACKAGE_VERSION = "0.1.579";
|
|
10883
10900
|
var INITIALIZE_METHOD = "initialize";
|
|
10884
10901
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
10885
10902
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -15987,9 +16004,12 @@ function acceptedEventInCodexTranscript(acceptedEvent, transcript) {
|
|
|
15987
16004
|
}
|
|
15988
16005
|
var LAST_MESSAGE_PREVIEW_MAX = 200;
|
|
15989
16006
|
var MAX_ACCEPTED_SEND_RESPONSES = 50;
|
|
15990
|
-
function
|
|
16007
|
+
function hasActiveAgentWork(chat) {
|
|
15991
16008
|
return chat.provider.isProcessing() || (chat.provider.hasActiveBackgroundTasks?.() ?? false);
|
|
15992
16009
|
}
|
|
16010
|
+
function hasActiveChatTurn(chat) {
|
|
16011
|
+
return chat.hasActiveTurn || chat.pendingMessageIds.length > 0;
|
|
16012
|
+
}
|
|
15993
16013
|
function isPersistedChat(value) {
|
|
15994
16014
|
if (!isRecord4(value)) {
|
|
15995
16015
|
return false;
|
|
@@ -16030,7 +16050,7 @@ var ChatService = class {
|
|
|
16030
16050
|
this.workingDirectory = workingDirectory;
|
|
16031
16051
|
this.analyticsService = analyticsService2;
|
|
16032
16052
|
keepAliveService.setActivityCheck(
|
|
16033
|
-
() => [...this.chats.values()].some((chat) => !chat.persisted.deletedAt &&
|
|
16053
|
+
() => [...this.chats.values()].some((chat) => !chat.persisted.deletedAt && hasActiveAgentWork(chat))
|
|
16034
16054
|
);
|
|
16035
16055
|
}
|
|
16036
16056
|
workingDirectory;
|
|
@@ -16273,7 +16293,7 @@ var ChatService = class {
|
|
|
16273
16293
|
const chat = this.requireChat(chatId);
|
|
16274
16294
|
return {
|
|
16275
16295
|
chatId,
|
|
16276
|
-
processing: chat
|
|
16296
|
+
processing: hasActiveChatTurn(chat),
|
|
16277
16297
|
queue: chat.provider.getQueue()
|
|
16278
16298
|
};
|
|
16279
16299
|
}
|
|
@@ -16409,7 +16429,7 @@ var ChatService = class {
|
|
|
16409
16429
|
getProcessingCount() {
|
|
16410
16430
|
let count = 0;
|
|
16411
16431
|
for (const chat of this.chats.values()) {
|
|
16412
|
-
if (!chat.persisted.deletedAt &&
|
|
16432
|
+
if (!chat.persisted.deletedAt && hasActiveAgentWork(chat)) {
|
|
16413
16433
|
count += 1;
|
|
16414
16434
|
}
|
|
16415
16435
|
}
|
|
@@ -16451,6 +16471,16 @@ var ChatService = class {
|
|
|
16451
16471
|
const onProviderEvent = (event) => {
|
|
16452
16472
|
this.handleTurnEvent(persisted.id, event);
|
|
16453
16473
|
};
|
|
16474
|
+
const onProcessingChanged = (processing) => {
|
|
16475
|
+
if (processing) return;
|
|
16476
|
+
const chat = this.getRuntimeChat(persisted.id);
|
|
16477
|
+
if (!chat) return;
|
|
16478
|
+
this.publish({
|
|
16479
|
+
type: "chat.updated",
|
|
16480
|
+
payload: { chat: this.toSummary(chat) }
|
|
16481
|
+
}).catch(() => {
|
|
16482
|
+
});
|
|
16483
|
+
};
|
|
16454
16484
|
if (persisted.parentChatId === void 0) {
|
|
16455
16485
|
persisted.parentChatId = null;
|
|
16456
16486
|
}
|
|
@@ -16462,7 +16492,8 @@ var ChatService = class {
|
|
|
16462
16492
|
initialSessionId: persisted.providerSessionId,
|
|
16463
16493
|
onSaveSessionId: saveSession,
|
|
16464
16494
|
onTurnComplete: onProviderTurnComplete,
|
|
16465
|
-
onEvent: onProviderEvent
|
|
16495
|
+
onEvent: onProviderEvent,
|
|
16496
|
+
onProcessingChanged
|
|
16466
16497
|
});
|
|
16467
16498
|
} else if (persisted.provider === "relay") {
|
|
16468
16499
|
provider = new RelayManager({
|
|
@@ -16472,6 +16503,7 @@ var ChatService = class {
|
|
|
16472
16503
|
onSaveSessionId: saveSession,
|
|
16473
16504
|
onTurnComplete: onProviderTurnComplete,
|
|
16474
16505
|
onEvent: onProviderEvent,
|
|
16506
|
+
onProcessingChanged,
|
|
16475
16507
|
chatId: persisted.id,
|
|
16476
16508
|
codexAvailable: isCodexAvailable(),
|
|
16477
16509
|
opencodeAvailable: isOpencodeAvailable(),
|
|
@@ -16485,7 +16517,8 @@ var ChatService = class {
|
|
|
16485
16517
|
initialSessionId: persisted.providerSessionId,
|
|
16486
16518
|
onSaveSessionId: saveSession,
|
|
16487
16519
|
onTurnComplete: onProviderTurnComplete,
|
|
16488
|
-
onEvent: onProviderEvent
|
|
16520
|
+
onEvent: onProviderEvent,
|
|
16521
|
+
onProcessingChanged
|
|
16489
16522
|
});
|
|
16490
16523
|
} else if (persisted.provider === "opencode") {
|
|
16491
16524
|
provider = new OpencodeManager({
|
|
@@ -16494,7 +16527,8 @@ var ChatService = class {
|
|
|
16494
16527
|
initialSessionId: persisted.providerSessionId,
|
|
16495
16528
|
onSaveSessionId: saveSession,
|
|
16496
16529
|
onTurnComplete: onProviderTurnComplete,
|
|
16497
|
-
onEvent: onProviderEvent
|
|
16530
|
+
onEvent: onProviderEvent,
|
|
16531
|
+
onProcessingChanged
|
|
16498
16532
|
});
|
|
16499
16533
|
} else if (persisted.provider === "pi") {
|
|
16500
16534
|
provider = new PiManager({
|
|
@@ -16503,7 +16537,8 @@ var ChatService = class {
|
|
|
16503
16537
|
initialSessionId: persisted.providerSessionId,
|
|
16504
16538
|
onSaveSessionId: saveSession,
|
|
16505
16539
|
onTurnComplete: onProviderTurnComplete,
|
|
16506
|
-
onEvent: onProviderEvent
|
|
16540
|
+
onEvent: onProviderEvent,
|
|
16541
|
+
onProcessingChanged
|
|
16507
16542
|
});
|
|
16508
16543
|
} else {
|
|
16509
16544
|
provider = new CodexAspManager({
|
|
@@ -16512,7 +16547,8 @@ var ChatService = class {
|
|
|
16512
16547
|
initialSessionId: persisted.providerSessionId,
|
|
16513
16548
|
onSaveSessionId: saveSession,
|
|
16514
16549
|
onTurnComplete: onProviderTurnComplete,
|
|
16515
|
-
onEvent: onProviderEvent
|
|
16550
|
+
onEvent: onProviderEvent,
|
|
16551
|
+
onProcessingChanged
|
|
16516
16552
|
});
|
|
16517
16553
|
}
|
|
16518
16554
|
return {
|
|
@@ -16541,7 +16577,8 @@ var ChatService = class {
|
|
|
16541
16577
|
title: chat.persisted.title,
|
|
16542
16578
|
createdAt: chat.persisted.createdAt,
|
|
16543
16579
|
updatedAt: chat.persisted.updatedAt,
|
|
16544
|
-
processing:
|
|
16580
|
+
processing: hasActiveChatTurn(chat),
|
|
16581
|
+
activityTrackingVersion: 1,
|
|
16545
16582
|
awaitingInput: chat.provider.isAwaitingInput?.() ?? false,
|
|
16546
16583
|
isCompacting: chat.provider.isCompacting?.() ?? false,
|
|
16547
16584
|
isAuthRetrying: chat.provider.isAuthRetrying?.() ?? false,
|
|
@@ -16660,7 +16697,7 @@ var ChatService = class {
|
|
|
16660
16697
|
payload: {
|
|
16661
16698
|
chatId,
|
|
16662
16699
|
isComplete: true,
|
|
16663
|
-
processing:
|
|
16700
|
+
processing: false,
|
|
16664
16701
|
completedAt
|
|
16665
16702
|
}
|
|
16666
16703
|
}).catch(() => {
|