replicas-engine 0.1.240 → 0.1.242

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.
Files changed (2) hide show
  1. package/dist/src/index.js +36 -11
  2. package/package.json +1 -1
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",
@@ -286,7 +290,7 @@ var WORKSPACE_SIZES = ["small", "large"];
286
290
  var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
287
291
 
288
292
  // ../shared/src/e2b.ts
289
- var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-05-30-v1";
293
+ var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-05-30-v3";
290
294
 
291
295
  // ../shared/src/runtime-env.ts
292
296
  function parsePosixEnvFile(content) {
@@ -1785,6 +1789,7 @@ var DEFAULT_CHAT_TITLES = {
1785
1789
  };
1786
1790
  var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
1787
1791
  var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
1792
+ var DEFAULT_CODEX_MODEL = "gpt-5.5";
1788
1793
  function normalizeClaudeModel(model) {
1789
1794
  if (model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
1790
1795
  return CLAUDE_OPUS_1M_MODEL;
@@ -1797,7 +1802,7 @@ var MODEL_LABELS = {
1797
1802
  [CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
1798
1803
  [LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
1799
1804
  haiku: "Haiku 4.5",
1800
- "gpt-5.5": "GPT-5.5",
1805
+ [DEFAULT_CODEX_MODEL]: "GPT-5.5",
1801
1806
  "gpt-5.4": "GPT-5.4",
1802
1807
  "gpt-5.4-mini": "GPT-5.4 Mini",
1803
1808
  "gpt-5.3-codex": "GPT-5.3 Codex",
@@ -5783,7 +5788,7 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
5783
5788
  rawMaxTokens: Number.isFinite(usage.rawMaxTokens) ? usage.rawMaxTokens : maxTokens,
5784
5789
  percentage: clampPercentage(rawPercentage),
5785
5790
  compactsAutomatically: usage.isAutoCompactEnabled === true,
5786
- ...typeof usage.autoCompactThreshold === "number" && Number.isFinite(usage.autoCompactThreshold) ? { autoCompactThreshold: usage.autoCompactThreshold } : {},
5791
+ ...autoCompactThresholdField(usage.autoCompactThreshold),
5787
5792
  categories: usage.categories.map((category) => ({
5788
5793
  name: category.name,
5789
5794
  tokens: category.tokens,
@@ -6081,7 +6086,7 @@ var AspClient = class {
6081
6086
  // src/managers/codex-asp/app-server-process.ts
6082
6087
  var DEFAULT_CODEX_BINARY = "codex";
6083
6088
  var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
6084
- var ENGINE_PACKAGE_VERSION = "0.1.240";
6089
+ var ENGINE_PACKAGE_VERSION = "0.1.242";
6085
6090
  var INITIALIZE_METHOD = "initialize";
6086
6091
  var INITIALIZED_NOTIFICATION = "initialized";
6087
6092
  var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
@@ -6348,7 +6353,7 @@ function isCodexAuthError(error) {
6348
6353
  }
6349
6354
 
6350
6355
  // src/managers/codex-asp/mappers.ts
6351
- var DEFAULT_MODEL = "gpt-5.5";
6356
+ var DEFAULT_MODEL = DEFAULT_CODEX_MODEL;
6352
6357
  var THREAD_START_METHOD = "thread/start";
6353
6358
  var THREAD_RESUME_METHOD = "thread/resume";
6354
6359
  var THREAD_READ_METHOD = "thread/read";
@@ -6359,6 +6364,24 @@ var TURN_START_METHOD = "turn/start";
6359
6364
  var TURN_INTERRUPT_METHOD = "turn/interrupt";
6360
6365
  var ACCOUNT_RATE_LIMITS_READ_METHOD = "account/rateLimits/read";
6361
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
+ }
6362
6385
  function toReasoningEffort(thinkingLevel) {
6363
6386
  return codexReasoningEffortForThinkingLevel(thinkingLevel);
6364
6387
  }
@@ -6731,27 +6754,29 @@ function mergeCodexAspTranscripts(primary, supplemental) {
6731
6754
  }
6732
6755
  async function buildThreadStartParams(workingDirectory, request, developerInstructions) {
6733
6756
  const additionalDirectories = await getAgentAdditionalDirectories();
6757
+ const model = request.model ?? DEFAULT_MODEL;
6734
6758
  return {
6735
- model: request.model ?? DEFAULT_MODEL,
6759
+ model,
6736
6760
  cwd: workingDirectory,
6737
6761
  runtimeWorkspaceRoots: additionalDirectories,
6738
6762
  sandbox: "danger-full-access",
6739
6763
  developerInstructions: developerInstructions ?? null,
6740
- config: { web_search: "live" },
6764
+ config: codexAspConfigForModel(model),
6741
6765
  experimentalRawEvents: false,
6742
6766
  persistExtendedHistory: false
6743
6767
  };
6744
6768
  }
6745
6769
  async function buildThreadResumeParams(workingDirectory, threadId, request, developerInstructions) {
6746
6770
  const additionalDirectories = await getAgentAdditionalDirectories();
6771
+ const model = request.model ?? DEFAULT_MODEL;
6747
6772
  return {
6748
6773
  threadId,
6749
- model: request.model ?? DEFAULT_MODEL,
6774
+ model,
6750
6775
  cwd: workingDirectory,
6751
6776
  runtimeWorkspaceRoots: additionalDirectories,
6752
6777
  sandbox: "danger-full-access",
6753
6778
  developerInstructions: developerInstructions ?? null,
6754
- config: { web_search: "live" },
6779
+ config: codexAspConfigForModel(model),
6755
6780
  excludeTurns: false,
6756
6781
  persistExtendedHistory: false
6757
6782
  };
@@ -7574,6 +7599,7 @@ var CodexAspManager = class extends CodingAgentManager {
7574
7599
  const payload = buildCodexTokenUsageContextUsagePayload({
7575
7600
  model,
7576
7601
  modelContextWindow: tokenUsage.modelContextWindow,
7602
+ autoCompactThreshold: codexAspAutoCompactTokenLimitForModel(model),
7577
7603
  last: {
7578
7604
  inputTokens: tokenUsage.last.inputTokens,
7579
7605
  outputTokens: tokenUsage.last.outputTokens,
@@ -7598,7 +7624,6 @@ import { existsSync as existsSync6 } from "fs";
7598
7624
  import { join as join14 } from "path";
7599
7625
  import { homedir as homedir12 } from "os";
7600
7626
  import { parse as parseToml, stringify as stringifyToml } from "smol-toml";
7601
- var DEFAULT_MODEL2 = "gpt-5.5";
7602
7627
  var CODEX_CONFIG_PATH = join14(homedir12(), ".codex", "config.toml");
7603
7628
  function isJsonlEvent2(value) {
7604
7629
  if (!isRecord4(value)) {
@@ -7758,7 +7783,7 @@ var CodexManager = class extends CodingAgentManager {
7758
7783
  workingDirectory: this.workingDirectory,
7759
7784
  skipGitRepoCheck: true,
7760
7785
  sandboxMode,
7761
- model: model || DEFAULT_MODEL2,
7786
+ model: model || DEFAULT_CODEX_MODEL,
7762
7787
  webSearchMode,
7763
7788
  additionalDirectories,
7764
7789
  ...codexReasoningEffort ? { modelReasoningEffort: codexReasoningEffort } : {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.240",
3
+ "version": "0.1.242",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",