replicas-engine 0.1.415 → 0.1.417
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 +38 -7
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -490,7 +490,7 @@ var WORKSPACE_SIZES = ["small", "large"];
|
|
|
490
490
|
var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
|
|
491
491
|
|
|
492
492
|
// ../shared/src/e2b.ts
|
|
493
|
-
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-09-
|
|
493
|
+
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-09-v6";
|
|
494
494
|
|
|
495
495
|
// ../shared/src/runtime-env.ts
|
|
496
496
|
function parsePosixEnvFile(content) {
|
|
@@ -2629,6 +2629,34 @@ function applyCodexAspTranscriptDelta(current, delta) {
|
|
|
2629
2629
|
turns
|
|
2630
2630
|
};
|
|
2631
2631
|
}
|
|
2632
|
+
function chatHistoryPageParamsFromQuery(query2) {
|
|
2633
|
+
const parse = (value) => {
|
|
2634
|
+
if (value === void 0) return void 0;
|
|
2635
|
+
const parsed = Number.parseInt(value, 10);
|
|
2636
|
+
return Number.isInteger(parsed) && parsed >= 0 ? parsed : void 0;
|
|
2637
|
+
};
|
|
2638
|
+
return {
|
|
2639
|
+
limit: parse(query2.limit),
|
|
2640
|
+
beforeEvent: parse(query2.beforeEvent),
|
|
2641
|
+
beforeTurn: parse(query2.beforeTurn)
|
|
2642
|
+
};
|
|
2643
|
+
}
|
|
2644
|
+
function paginateChatHistory(full, params) {
|
|
2645
|
+
if (params.limit === void 0) return full;
|
|
2646
|
+
const eventsEnd = Math.min(params.beforeEvent ?? full.events.length, full.events.length);
|
|
2647
|
+
const eventsStartIndex = Math.max(0, eventsEnd - params.limit);
|
|
2648
|
+
const turns = full.codexAspTranscript?.turns;
|
|
2649
|
+
const turnsEnd = turns ? Math.min(params.beforeTurn ?? turns.length, turns.length) : 0;
|
|
2650
|
+
const turnsStartIndex = Math.max(0, turnsEnd - params.limit);
|
|
2651
|
+
const codexAspTranscript = full.codexAspTranscript && turns && (turnsStartIndex > 0 || turnsEnd < turns.length) ? { ...full.codexAspTranscript, turns: turns.slice(turnsStartIndex, turnsEnd) } : full.codexAspTranscript;
|
|
2652
|
+
return {
|
|
2653
|
+
...full,
|
|
2654
|
+
events: full.events.slice(eventsStartIndex, eventsEnd),
|
|
2655
|
+
eventsStartIndex,
|
|
2656
|
+
codexAspTranscript,
|
|
2657
|
+
...full.codexAspTranscript ? { turnsStartIndex } : {}
|
|
2658
|
+
};
|
|
2659
|
+
}
|
|
2632
2660
|
|
|
2633
2661
|
// ../shared/src/routes/codex.ts
|
|
2634
2662
|
var CODEX_AUTH_ENV_KEYS = [
|
|
@@ -8225,7 +8253,7 @@ var AspClient = class {
|
|
|
8225
8253
|
// src/managers/codex-asp/app-server-process.ts
|
|
8226
8254
|
var DEFAULT_CODEX_BINARY = "codex";
|
|
8227
8255
|
var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
8228
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
8256
|
+
var ENGINE_PACKAGE_VERSION = "0.1.417";
|
|
8229
8257
|
var INITIALIZE_METHOD = "initialize";
|
|
8230
8258
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
8231
8259
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -8485,7 +8513,7 @@ var SKILLS_LIST_METHOD = "skills/list";
|
|
|
8485
8513
|
var MAX_CODEX_ASP_TRANSCRIPT_OUTPUT_CHARS = DEFAULT_HOOK_OUTPUT_PREVIEW_CHARS;
|
|
8486
8514
|
function codexApprovalPolicyOverrides() {
|
|
8487
8515
|
if (!ENGINE_ENV.REPLICAS_DISABLE_GH_PR_MERGE) {
|
|
8488
|
-
return {};
|
|
8516
|
+
return { approvalPolicy: "never" };
|
|
8489
8517
|
}
|
|
8490
8518
|
return {
|
|
8491
8519
|
approvalPolicy: "untrusted",
|
|
@@ -12599,7 +12627,7 @@ var ChatService = class {
|
|
|
12599
12627
|
await rm(join21(HISTORY_DIR_BY_PROVIDER[persisted.provider], `${persisted.id}.jsonl`), { force: true });
|
|
12600
12628
|
await rm(this.senderFilePath(persisted.id), { force: true });
|
|
12601
12629
|
}
|
|
12602
|
-
async getChatHistory(chatId) {
|
|
12630
|
+
async getChatHistory(chatId, page = {}) {
|
|
12603
12631
|
const chat = this.requireChat(chatId);
|
|
12604
12632
|
const [history, senders] = await Promise.all([
|
|
12605
12633
|
chat.provider.getHistory(),
|
|
@@ -12612,13 +12640,13 @@ var ChatService = class {
|
|
|
12612
12640
|
}
|
|
12613
12641
|
const acceptedEvents = [...chat.acceptedUserEvents.entries()].filter(([messageId]) => messageId === chat.activeMessageId || !chat.hasActiveTurn && chat.pendingMessageIds[0] === messageId).map(([, acceptedEvent]) => acceptedEvent).filter((acceptedEvent) => !acceptedEventInCodexTranscript(acceptedEvent, history.codexAspTranscript) && !history.events.some((event) => isSameAcceptedUserEvent(event, acceptedEvent)));
|
|
12614
12642
|
const events = [...history.events, ...acceptedEvents].sort((a, b) => getEventTimestampMs(a) - getEventTimestampMs(b));
|
|
12615
|
-
return {
|
|
12643
|
+
return paginateChatHistory({
|
|
12616
12644
|
thread_id: history.thread_id,
|
|
12617
12645
|
events,
|
|
12618
12646
|
codexAspTranscript: history.codexAspTranscript ?? null,
|
|
12619
12647
|
goal: history.goal ?? chat.provider.getGoal?.() ?? null,
|
|
12620
12648
|
senders
|
|
12621
|
-
};
|
|
12649
|
+
}, page);
|
|
12622
12650
|
}
|
|
12623
12651
|
getProcessingCount() {
|
|
12624
12652
|
let count = 0;
|
|
@@ -13795,7 +13823,10 @@ function createV1Routes(deps) {
|
|
|
13795
13823
|
});
|
|
13796
13824
|
app2.get("/chats/:chatId/history", async (c) => {
|
|
13797
13825
|
try {
|
|
13798
|
-
const history = await deps.chatService.getChatHistory(
|
|
13826
|
+
const history = await deps.chatService.getChatHistory(
|
|
13827
|
+
c.req.param("chatId"),
|
|
13828
|
+
chatHistoryPageParamsFromQuery(c.req.query())
|
|
13829
|
+
);
|
|
13799
13830
|
return c.json(history);
|
|
13800
13831
|
} catch (error) {
|
|
13801
13832
|
if (error instanceof ChatNotFoundError) {
|