replicas-engine 0.1.239 → 0.1.241
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/README.md +1 -1
- package/dist/src/index.js +41 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ The engine is expected to run in a VM/sandbox with:
|
|
|
60
60
|
|
|
61
61
|
### Provisioning contract (what monolith injects before engine start)
|
|
62
62
|
|
|
63
|
-
From `monolith/src/lib/
|
|
63
|
+
From `monolith/src/lib/sandbox-helpers.ts` + `monolith/src/lib/workspaces.ts`, the VM is expected to be prepped with:
|
|
64
64
|
|
|
65
65
|
- Git identity (optional but expected for commits):
|
|
66
66
|
- `git config --global user.name <bot-or-user-name>`
|
package/dist/src/index.js
CHANGED
|
@@ -151,6 +151,9 @@ function percentage(tokens, maxTokens) {
|
|
|
151
151
|
if (!maxTokens || maxTokens <= 0) return 0;
|
|
152
152
|
return clampPercentage(tokens / maxTokens * 100);
|
|
153
153
|
}
|
|
154
|
+
function autoCompactThresholdField(autoCompactThreshold) {
|
|
155
|
+
return typeof autoCompactThreshold === "number" && Number.isFinite(autoCompactThreshold) ? { autoCompactThreshold } : {};
|
|
156
|
+
}
|
|
154
157
|
function clampTokensToWindow(rawTokens, maxTokens) {
|
|
155
158
|
if (!maxTokens || maxTokens <= 0) return { totalTokens: rawTokens };
|
|
156
159
|
if (rawTokens <= maxTokens) return { totalTokens: rawTokens };
|
|
@@ -180,6 +183,7 @@ function buildCodexTokenUsageContextUsagePayload(usage) {
|
|
|
180
183
|
rawMaxTokens: maxTokens,
|
|
181
184
|
percentage: percentage(totalTokens, maxTokens),
|
|
182
185
|
compactsAutomatically: true,
|
|
186
|
+
...autoCompactThresholdField(usage.autoCompactThreshold),
|
|
183
187
|
categories: compactCategories([
|
|
184
188
|
{
|
|
185
189
|
name: "Input context",
|
|
@@ -282,20 +286,12 @@ var SANDBOX_LIFECYCLE = {
|
|
|
282
286
|
AUTO_DELETE_MINUTES: -1,
|
|
283
287
|
SSH_TOKEN_EXPIRATION_MINUTES: 3 * 60
|
|
284
288
|
};
|
|
285
|
-
function buildPaths(homeDir) {
|
|
286
|
-
return {
|
|
287
|
-
HOME_DIR: homeDir,
|
|
288
|
-
WORKSPACES_DIR: `${homeDir}/workspaces`,
|
|
289
|
-
REPLICAS_DIR: `${homeDir}/.replicas`,
|
|
290
|
-
REPLICAS_FILES_DIR: `${homeDir}/.replicas/files`,
|
|
291
|
-
REPLICAS_RUNTIME_ENV_FILE: `${homeDir}/.replicas/runtime-env.sh`
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
var DAYTONA_PATHS = buildPaths("/home/ubuntu");
|
|
295
|
-
var E2B_PATHS = buildPaths("/home/user");
|
|
296
289
|
var WORKSPACE_SIZES = ["small", "large"];
|
|
297
290
|
var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
|
|
298
291
|
|
|
292
|
+
// ../shared/src/e2b.ts
|
|
293
|
+
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-05-30-v2";
|
|
294
|
+
|
|
299
295
|
// ../shared/src/runtime-env.ts
|
|
300
296
|
function parsePosixEnvFile(content) {
|
|
301
297
|
const result = {};
|
|
@@ -1783,7 +1779,6 @@ function isClaudeAuthErrorText(text) {
|
|
|
1783
1779
|
}
|
|
1784
1780
|
|
|
1785
1781
|
// ../shared/src/engine/environment.ts
|
|
1786
|
-
var DAYTONA_SNAPSHOT_ID = "29-05-2026-royal-york-v10";
|
|
1787
1782
|
var DESKTOP_NOVNC_PORT = 6080;
|
|
1788
1783
|
|
|
1789
1784
|
// ../shared/src/engine/types.ts
|
|
@@ -1794,6 +1789,7 @@ var DEFAULT_CHAT_TITLES = {
|
|
|
1794
1789
|
};
|
|
1795
1790
|
var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
|
|
1796
1791
|
var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
|
|
1792
|
+
var DEFAULT_CODEX_MODEL = "gpt-5.5";
|
|
1797
1793
|
function normalizeClaudeModel(model) {
|
|
1798
1794
|
if (model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
|
|
1799
1795
|
return CLAUDE_OPUS_1M_MODEL;
|
|
@@ -1806,7 +1802,7 @@ var MODEL_LABELS = {
|
|
|
1806
1802
|
[CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
1807
1803
|
[LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
1808
1804
|
haiku: "Haiku 4.5",
|
|
1809
|
-
|
|
1805
|
+
[DEFAULT_CODEX_MODEL]: "GPT-5.5",
|
|
1810
1806
|
"gpt-5.4": "GPT-5.4",
|
|
1811
1807
|
"gpt-5.4-mini": "GPT-5.4 Mini",
|
|
1812
1808
|
"gpt-5.3-codex": "GPT-5.3 Codex",
|
|
@@ -3309,7 +3305,7 @@ function upsertRepositoryStatus(current, incoming) {
|
|
|
3309
3305
|
}
|
|
3310
3306
|
function createDefaultDetails() {
|
|
3311
3307
|
return {
|
|
3312
|
-
engineVersion:
|
|
3308
|
+
engineVersion: E2B_TEMPLATE_NAME,
|
|
3313
3309
|
globalWarmHookCompleted: { status: "n/a", details: null },
|
|
3314
3310
|
environmentWarmHookCompleted: { status: "n/a", details: null },
|
|
3315
3311
|
environmentStartHookCompleted: { status: "n/a", details: null },
|
|
@@ -3353,7 +3349,7 @@ var EnvironmentDetailsService = class {
|
|
|
3353
3349
|
gitService.listRepositories(),
|
|
3354
3350
|
detectGitIdentityConfigured()
|
|
3355
3351
|
]);
|
|
3356
|
-
details.engineVersion =
|
|
3352
|
+
details.engineVersion = E2B_TEMPLATE_NAME;
|
|
3357
3353
|
details.claudeAuthMethod = detectClaudeAuthMethod();
|
|
3358
3354
|
details.codexAuthMethod = detectCodexAuthMethod();
|
|
3359
3355
|
details.gitIdentityConfigured = gitIdentityConfigured;
|
|
@@ -5792,7 +5788,7 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
5792
5788
|
rawMaxTokens: Number.isFinite(usage.rawMaxTokens) ? usage.rawMaxTokens : maxTokens,
|
|
5793
5789
|
percentage: clampPercentage(rawPercentage),
|
|
5794
5790
|
compactsAutomatically: usage.isAutoCompactEnabled === true,
|
|
5795
|
-
...
|
|
5791
|
+
...autoCompactThresholdField(usage.autoCompactThreshold),
|
|
5796
5792
|
categories: usage.categories.map((category) => ({
|
|
5797
5793
|
name: category.name,
|
|
5798
5794
|
tokens: category.tokens,
|
|
@@ -6090,7 +6086,7 @@ var AspClient = class {
|
|
|
6090
6086
|
// src/managers/codex-asp/app-server-process.ts
|
|
6091
6087
|
var DEFAULT_CODEX_BINARY = "codex";
|
|
6092
6088
|
var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
6093
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
6089
|
+
var ENGINE_PACKAGE_VERSION = "0.1.241";
|
|
6094
6090
|
var INITIALIZE_METHOD = "initialize";
|
|
6095
6091
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
6096
6092
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -6357,7 +6353,7 @@ function isCodexAuthError(error) {
|
|
|
6357
6353
|
}
|
|
6358
6354
|
|
|
6359
6355
|
// src/managers/codex-asp/mappers.ts
|
|
6360
|
-
var DEFAULT_MODEL =
|
|
6356
|
+
var DEFAULT_MODEL = DEFAULT_CODEX_MODEL;
|
|
6361
6357
|
var THREAD_START_METHOD = "thread/start";
|
|
6362
6358
|
var THREAD_RESUME_METHOD = "thread/resume";
|
|
6363
6359
|
var THREAD_READ_METHOD = "thread/read";
|
|
@@ -6368,6 +6364,24 @@ var TURN_START_METHOD = "turn/start";
|
|
|
6368
6364
|
var TURN_INTERRUPT_METHOD = "turn/interrupt";
|
|
6369
6365
|
var ACCOUNT_RATE_LIMITS_READ_METHOD = "account/rateLimits/read";
|
|
6370
6366
|
var MAX_CODEX_ASP_TRANSCRIPT_OUTPUT_CHARS = DEFAULT_HOOK_OUTPUT_PREVIEW_CHARS;
|
|
6367
|
+
var CODEX_ASP_AUTO_COMPACT_RATIO = 0.85;
|
|
6368
|
+
var CODEX_ASP_MODEL_CONTEXT_WINDOWS = {
|
|
6369
|
+
[DEFAULT_MODEL]: 258400
|
|
6370
|
+
};
|
|
6371
|
+
function codexAspAutoCompactTokenLimitForModel(model) {
|
|
6372
|
+
const contextWindow = CODEX_ASP_MODEL_CONTEXT_WINDOWS[model ?? DEFAULT_MODEL];
|
|
6373
|
+
return contextWindow === void 0 ? void 0 : Math.floor(contextWindow * CODEX_ASP_AUTO_COMPACT_RATIO);
|
|
6374
|
+
}
|
|
6375
|
+
function codexAspConfigForModel(model) {
|
|
6376
|
+
const tokenLimit = codexAspAutoCompactTokenLimitForModel(model);
|
|
6377
|
+
return {
|
|
6378
|
+
web_search: "live",
|
|
6379
|
+
...tokenLimit !== void 0 ? {
|
|
6380
|
+
model_auto_compact_token_limit: tokenLimit,
|
|
6381
|
+
model_auto_compact_token_limit_scope: "total"
|
|
6382
|
+
} : {}
|
|
6383
|
+
};
|
|
6384
|
+
}
|
|
6371
6385
|
function toReasoningEffort(thinkingLevel) {
|
|
6372
6386
|
return codexReasoningEffortForThinkingLevel(thinkingLevel);
|
|
6373
6387
|
}
|
|
@@ -6740,27 +6754,29 @@ function mergeCodexAspTranscripts(primary, supplemental) {
|
|
|
6740
6754
|
}
|
|
6741
6755
|
async function buildThreadStartParams(workingDirectory, request, developerInstructions) {
|
|
6742
6756
|
const additionalDirectories = await getAgentAdditionalDirectories();
|
|
6757
|
+
const model = request.model ?? DEFAULT_MODEL;
|
|
6743
6758
|
return {
|
|
6744
|
-
model
|
|
6759
|
+
model,
|
|
6745
6760
|
cwd: workingDirectory,
|
|
6746
6761
|
runtimeWorkspaceRoots: additionalDirectories,
|
|
6747
6762
|
sandbox: "danger-full-access",
|
|
6748
6763
|
developerInstructions: developerInstructions ?? null,
|
|
6749
|
-
config:
|
|
6764
|
+
config: codexAspConfigForModel(model),
|
|
6750
6765
|
experimentalRawEvents: false,
|
|
6751
6766
|
persistExtendedHistory: false
|
|
6752
6767
|
};
|
|
6753
6768
|
}
|
|
6754
6769
|
async function buildThreadResumeParams(workingDirectory, threadId, request, developerInstructions) {
|
|
6755
6770
|
const additionalDirectories = await getAgentAdditionalDirectories();
|
|
6771
|
+
const model = request.model ?? DEFAULT_MODEL;
|
|
6756
6772
|
return {
|
|
6757
6773
|
threadId,
|
|
6758
|
-
model
|
|
6774
|
+
model,
|
|
6759
6775
|
cwd: workingDirectory,
|
|
6760
6776
|
runtimeWorkspaceRoots: additionalDirectories,
|
|
6761
6777
|
sandbox: "danger-full-access",
|
|
6762
6778
|
developerInstructions: developerInstructions ?? null,
|
|
6763
|
-
config:
|
|
6779
|
+
config: codexAspConfigForModel(model),
|
|
6764
6780
|
excludeTurns: false,
|
|
6765
6781
|
persistExtendedHistory: false
|
|
6766
6782
|
};
|
|
@@ -7583,6 +7599,7 @@ var CodexAspManager = class extends CodingAgentManager {
|
|
|
7583
7599
|
const payload = buildCodexTokenUsageContextUsagePayload({
|
|
7584
7600
|
model,
|
|
7585
7601
|
modelContextWindow: tokenUsage.modelContextWindow,
|
|
7602
|
+
autoCompactThreshold: codexAspAutoCompactTokenLimitForModel(model),
|
|
7586
7603
|
last: {
|
|
7587
7604
|
inputTokens: tokenUsage.last.inputTokens,
|
|
7588
7605
|
outputTokens: tokenUsage.last.outputTokens,
|
|
@@ -7607,7 +7624,6 @@ import { existsSync as existsSync6 } from "fs";
|
|
|
7607
7624
|
import { join as join14 } from "path";
|
|
7608
7625
|
import { homedir as homedir12 } from "os";
|
|
7609
7626
|
import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
|
|
7610
|
-
var DEFAULT_MODEL2 = "gpt-5.5";
|
|
7611
7627
|
var CODEX_CONFIG_PATH = join14(homedir12(), ".codex", "config.toml");
|
|
7612
7628
|
function isJsonlEvent2(value) {
|
|
7613
7629
|
if (!isRecord4(value)) {
|
|
@@ -7767,7 +7783,7 @@ var CodexManager = class extends CodingAgentManager {
|
|
|
7767
7783
|
workingDirectory: this.workingDirectory,
|
|
7768
7784
|
skipGitRepoCheck: true,
|
|
7769
7785
|
sandboxMode,
|
|
7770
|
-
model: model ||
|
|
7786
|
+
model: model || DEFAULT_CODEX_MODEL,
|
|
7771
7787
|
webSearchMode,
|
|
7772
7788
|
additionalDirectories,
|
|
7773
7789
|
...codexReasoningEffort ? { modelReasoningEffort: codexReasoningEffort } : {}
|
|
@@ -10307,7 +10323,7 @@ function createV1Routes(deps) {
|
|
|
10307
10323
|
});
|
|
10308
10324
|
app2.get("/version", (c) => {
|
|
10309
10325
|
const response = {
|
|
10310
|
-
version:
|
|
10326
|
+
version: E2B_TEMPLATE_NAME
|
|
10311
10327
|
};
|
|
10312
10328
|
return c.json(response);
|
|
10313
10329
|
});
|