replicas-engine 0.1.375 → 0.1.376
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 +188 -155
- package/package.json +2 -2
package/dist/src/index.js
CHANGED
|
@@ -130,11 +130,180 @@ function detectLanguageByPath(filePath) {
|
|
|
130
130
|
return EXT_TO_LANGUAGE[ext] ?? null;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
// ../shared/src/engine/types.ts
|
|
134
|
+
var DEFAULT_CHAT_TITLES = {
|
|
135
|
+
claude: "Claude Code",
|
|
136
|
+
codex: "Codex",
|
|
137
|
+
cursor: "Cursor",
|
|
138
|
+
opencode: "Opencode",
|
|
139
|
+
relay: "Relay"
|
|
140
|
+
};
|
|
141
|
+
var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
|
|
142
|
+
var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
|
|
143
|
+
var CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8";
|
|
144
|
+
var CLAUDE_SONNET_5_MODEL = "claude-sonnet-5";
|
|
145
|
+
var CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5";
|
|
146
|
+
var CLAUDE_OPUS_4_8_BEDROCK_MODEL = "us.anthropic.claude-opus-4-8";
|
|
147
|
+
var CLAUDE_SONNET_5_BEDROCK_MODEL = "anthropic.claude-sonnet-5";
|
|
148
|
+
var CLAUDE_HAIKU_4_5_BEDROCK_MODEL = "us.anthropic.claude-haiku-4-5-20251001-v1:0";
|
|
149
|
+
var DEFAULT_CLAUDE_MODEL = CLAUDE_OPUS_4_8_MODEL;
|
|
150
|
+
var DEFAULT_CODEX_MODEL = "gpt-5.5";
|
|
151
|
+
var DEFAULT_CURSOR_MODEL = "composer-2.5";
|
|
152
|
+
var DEFAULT_OPENCODE_MODEL = "z-ai/glm-5.2";
|
|
153
|
+
function normalizeClaudeModel(model) {
|
|
154
|
+
if (model === "opus" || model === CLAUDE_OPUS_1M_MODEL || model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
|
|
155
|
+
return DEFAULT_CLAUDE_MODEL;
|
|
156
|
+
}
|
|
157
|
+
if (model === "sonnet") {
|
|
158
|
+
return CLAUDE_SONNET_5_MODEL;
|
|
159
|
+
}
|
|
160
|
+
if (model === "haiku") {
|
|
161
|
+
return CLAUDE_HAIKU_4_5_MODEL;
|
|
162
|
+
}
|
|
163
|
+
return model;
|
|
164
|
+
}
|
|
165
|
+
var CLAUDE_MODEL_CONTEXT_WINDOWS = {
|
|
166
|
+
[CLAUDE_OPUS_4_8_MODEL]: 1e6,
|
|
167
|
+
[CLAUDE_SONNET_5_MODEL]: 1e6,
|
|
168
|
+
[CLAUDE_HAIKU_4_5_MODEL]: 2e5,
|
|
169
|
+
[CLAUDE_OPUS_4_8_BEDROCK_MODEL]: 1e6,
|
|
170
|
+
[CLAUDE_SONNET_5_BEDROCK_MODEL]: 1e6,
|
|
171
|
+
[CLAUDE_HAIKU_4_5_BEDROCK_MODEL]: 2e5,
|
|
172
|
+
"anthropic.claude-opus-4-8": 1e6,
|
|
173
|
+
"us.anthropic.claude-sonnet-5": 1e6,
|
|
174
|
+
"anthropic.claude-haiku-4-5": 2e5,
|
|
175
|
+
"claude-haiku-4-5-20251001": 2e5,
|
|
176
|
+
"claude-haiku-4-5@20251001": 2e5
|
|
177
|
+
};
|
|
178
|
+
function getClaudeModelContextWindow(model) {
|
|
179
|
+
if (!model) return null;
|
|
180
|
+
const normalized = normalizeClaudeModel(model) ?? model;
|
|
181
|
+
return CLAUDE_MODEL_CONTEXT_WINDOWS[normalized] ?? CLAUDE_MODEL_CONTEXT_WINDOWS[model] ?? null;
|
|
182
|
+
}
|
|
183
|
+
function canUseClaudeFastMode(model) {
|
|
184
|
+
return normalizeClaudeModel(model) === CLAUDE_OPUS_4_8_MODEL || model === "claude-opus-4-7";
|
|
185
|
+
}
|
|
186
|
+
var AGENT_MODELS = {
|
|
187
|
+
claude: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL, CLAUDE_HAIKU_4_5_MODEL],
|
|
188
|
+
codex: [DEFAULT_CODEX_MODEL, "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex", "gpt-5.2"],
|
|
189
|
+
cursor: [
|
|
190
|
+
CLAUDE_OPUS_4_8_MODEL,
|
|
191
|
+
"gpt-5.5",
|
|
192
|
+
"composer-2.5",
|
|
193
|
+
CLAUDE_SONNET_5_MODEL,
|
|
194
|
+
"claude-opus-4-7",
|
|
195
|
+
"gpt-5.4",
|
|
196
|
+
"gpt-5.4-mini",
|
|
197
|
+
"gpt-5.4-nano",
|
|
198
|
+
"gpt-5.3-codex",
|
|
199
|
+
"gpt-5.2",
|
|
200
|
+
"gpt-5.2-codex",
|
|
201
|
+
"gpt-5.1",
|
|
202
|
+
"gpt-5.1-codex-max",
|
|
203
|
+
"gpt-5.1-codex-mini",
|
|
204
|
+
"gpt-5-mini",
|
|
205
|
+
"gemini-3.1-pro",
|
|
206
|
+
"gemini-3-flash",
|
|
207
|
+
"grok-4.3",
|
|
208
|
+
CLAUDE_HAIKU_4_5_MODEL,
|
|
209
|
+
"kimi-k2.5"
|
|
210
|
+
],
|
|
211
|
+
opencode: [DEFAULT_OPENCODE_MODEL, "minimax/minimax-m3", "xiaomi/mimo-v2.5-pro", "moonshotai/kimi-k2.6"],
|
|
212
|
+
relay: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL]
|
|
213
|
+
};
|
|
214
|
+
var MODEL_LABELS = {
|
|
215
|
+
sonnet: "Sonnet 5",
|
|
216
|
+
"claude-sonnet-5": "Sonnet 5",
|
|
217
|
+
opus: "Opus 4.8",
|
|
218
|
+
[CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
219
|
+
[LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
220
|
+
haiku: "Haiku 4.5",
|
|
221
|
+
[DEFAULT_CODEX_MODEL]: "GPT-5.5",
|
|
222
|
+
[DEFAULT_OPENCODE_MODEL]: "GLM 5.2 via OpenRouter",
|
|
223
|
+
"minimax/minimax-m3": "MiniMax M3 via OpenRouter",
|
|
224
|
+
"xiaomi/mimo-v2.5-pro": "MiMo V2.5 Pro via OpenRouter",
|
|
225
|
+
"moonshotai/kimi-k2.6": "Kimi K2.6 via OpenRouter",
|
|
226
|
+
"gpt-5.4": "GPT-5.4",
|
|
227
|
+
"gpt-5.4-mini": "GPT-5.4 Mini",
|
|
228
|
+
"gpt-5.4-nano": "GPT-5.4 Nano",
|
|
229
|
+
"gpt-5.3-codex": "GPT-5.3 Codex",
|
|
230
|
+
"gpt-5.2": "GPT-5.2",
|
|
231
|
+
"gpt-5.2-codex": "GPT-5.2 Codex",
|
|
232
|
+
"gpt-5.1": "GPT-5.1",
|
|
233
|
+
"gpt-5.1-codex-max": "GPT-5.1 Codex Max",
|
|
234
|
+
"gpt-5.1-codex-mini": "GPT-5.1 Codex Mini",
|
|
235
|
+
"gpt-5-mini": "GPT-5 Mini",
|
|
236
|
+
"composer-2.5": "Composer 2.5",
|
|
237
|
+
[CLAUDE_OPUS_4_8_MODEL]: "Opus 4.8",
|
|
238
|
+
"claude-opus-4-7": "Opus 4.7",
|
|
239
|
+
[CLAUDE_HAIKU_4_5_MODEL]: "Haiku 4.5",
|
|
240
|
+
"gemini-3.1-pro": "Gemini 3.1 Pro",
|
|
241
|
+
"gemini-3-flash": "Gemini 3 Flash",
|
|
242
|
+
"grok-4.3": "Grok 4.3",
|
|
243
|
+
"kimi-k2.5": "Kimi K2.5"
|
|
244
|
+
};
|
|
245
|
+
var IMAGE_MEDIA_TYPES = ["image/png", "image/jpeg", "image/gif", "image/webp"];
|
|
246
|
+
var MAX_CANVAS_FILE_BYTES = 5 * 1024 * 1024;
|
|
247
|
+
function isCanvasTextKind(kind) {
|
|
248
|
+
return kind === "markdown" || kind === "html";
|
|
249
|
+
}
|
|
250
|
+
function sanitizeCanvasFilename(filename) {
|
|
251
|
+
const safe = filename.split(/[\\/]/).pop() ?? "";
|
|
252
|
+
if (!safe || safe !== filename || safe.startsWith(".")) return null;
|
|
253
|
+
return safe;
|
|
254
|
+
}
|
|
255
|
+
function bytesToBase64(bytes) {
|
|
256
|
+
let binary = "";
|
|
257
|
+
const chunkSize = 32768;
|
|
258
|
+
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
259
|
+
binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
|
|
260
|
+
}
|
|
261
|
+
return btoa(binary);
|
|
262
|
+
}
|
|
263
|
+
function serializeCanvasContentResponse(input) {
|
|
264
|
+
const base = {
|
|
265
|
+
filename: input.filename,
|
|
266
|
+
kind: input.kind,
|
|
267
|
+
sizeBytes: input.sizeBytes,
|
|
268
|
+
mimeType: input.mimeType
|
|
269
|
+
};
|
|
270
|
+
if (isCanvasTextKind(input.kind)) {
|
|
271
|
+
return { ...base, content: new TextDecoder().decode(input.bytes) };
|
|
272
|
+
}
|
|
273
|
+
return { ...base, base64: bytesToBase64(input.bytes) };
|
|
274
|
+
}
|
|
275
|
+
var CANVAS_KIND_BY_EXTENSION = {
|
|
276
|
+
".md": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
|
|
277
|
+
".markdown": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
|
|
278
|
+
".html": { kind: "html", mimeType: "text/html; charset=utf-8" },
|
|
279
|
+
".htm": { kind: "html", mimeType: "text/html; charset=utf-8" },
|
|
280
|
+
".png": { kind: "image", mimeType: "image/png" },
|
|
281
|
+
".jpg": { kind: "image", mimeType: "image/jpeg" },
|
|
282
|
+
".jpeg": { kind: "image", mimeType: "image/jpeg" },
|
|
283
|
+
".gif": { kind: "image", mimeType: "image/gif" },
|
|
284
|
+
".webp": { kind: "image", mimeType: "image/webp" },
|
|
285
|
+
".svg": { kind: "image", mimeType: "image/svg+xml" },
|
|
286
|
+
".mp4": { kind: "video", mimeType: "video/mp4" },
|
|
287
|
+
".webm": { kind: "video", mimeType: "video/webm" },
|
|
288
|
+
".mov": { kind: "video", mimeType: "video/quicktime" },
|
|
289
|
+
".mp3": { kind: "audio", mimeType: "audio/mpeg" },
|
|
290
|
+
".wav": { kind: "audio", mimeType: "audio/wav" },
|
|
291
|
+
".ogg": { kind: "audio", mimeType: "audio/ogg" }
|
|
292
|
+
};
|
|
293
|
+
function classifyCanvasFilename(filename) {
|
|
294
|
+
const idx = filename.lastIndexOf(".");
|
|
295
|
+
const ext = idx === -1 ? "" : filename.slice(idx).toLowerCase();
|
|
296
|
+
return CANVAS_KIND_BY_EXTENSION[ext] ?? { kind: "other", mimeType: "application/octet-stream" };
|
|
297
|
+
}
|
|
298
|
+
|
|
133
299
|
// ../shared/src/context-usage.ts
|
|
134
300
|
var CODEX_CATEGORY_COLORS = {
|
|
135
301
|
input: "#3eeba3",
|
|
136
302
|
output: "#56b6c2"
|
|
137
303
|
};
|
|
304
|
+
function numberOrNull(value) {
|
|
305
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
306
|
+
}
|
|
138
307
|
function clampPercentage(value) {
|
|
139
308
|
if (!Number.isFinite(value)) return 0;
|
|
140
309
|
if (value < 0) return 0;
|
|
@@ -148,6 +317,16 @@ function percentage(tokens, maxTokens) {
|
|
|
148
317
|
function autoCompactThresholdField(autoCompactThreshold) {
|
|
149
318
|
return typeof autoCompactThreshold === "number" && Number.isFinite(autoCompactThreshold) ? { autoCompactThreshold } : {};
|
|
150
319
|
}
|
|
320
|
+
function normalizeAutoCompactThreshold(threshold, maxTokens) {
|
|
321
|
+
const value = numberOrNull(threshold);
|
|
322
|
+
if (value === null) return null;
|
|
323
|
+
if (value <= 0) return null;
|
|
324
|
+
if (value > 100) {
|
|
325
|
+
return maxTokens && maxTokens > 0 ? percentage(value, maxTokens) : null;
|
|
326
|
+
}
|
|
327
|
+
if (value > 0 && value <= 1) return clampPercentage(value * 100);
|
|
328
|
+
return clampPercentage(value);
|
|
329
|
+
}
|
|
151
330
|
function clampTokensToWindow(rawTokens, maxTokens) {
|
|
152
331
|
if (!maxTokens || maxTokens <= 0) return { totalTokens: rawTokens };
|
|
153
332
|
if (rawTokens <= maxTokens) return { totalTokens: rawTokens };
|
|
@@ -295,7 +474,7 @@ var WORKSPACE_SIZES = ["small", "large"];
|
|
|
295
474
|
var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
|
|
296
475
|
|
|
297
476
|
// ../shared/src/e2b.ts
|
|
298
|
-
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-01-
|
|
477
|
+
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-01-v2";
|
|
299
478
|
|
|
300
479
|
// ../shared/src/runtime-env.ts
|
|
301
480
|
function parsePosixEnvFile(content) {
|
|
@@ -2244,154 +2423,6 @@ function isCodexAuthError(error) {
|
|
|
2244
2423
|
// ../shared/src/engine/environment.ts
|
|
2245
2424
|
var DESKTOP_NOVNC_PORT = 6080;
|
|
2246
2425
|
|
|
2247
|
-
// ../shared/src/engine/types.ts
|
|
2248
|
-
var DEFAULT_CHAT_TITLES = {
|
|
2249
|
-
claude: "Claude Code",
|
|
2250
|
-
codex: "Codex",
|
|
2251
|
-
cursor: "Cursor",
|
|
2252
|
-
opencode: "Opencode",
|
|
2253
|
-
relay: "Relay"
|
|
2254
|
-
};
|
|
2255
|
-
var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
|
|
2256
|
-
var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
|
|
2257
|
-
var CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8";
|
|
2258
|
-
var CLAUDE_SONNET_5_MODEL = "claude-sonnet-5";
|
|
2259
|
-
var CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5";
|
|
2260
|
-
var CLAUDE_OPUS_4_8_BEDROCK_MODEL = "us.anthropic.claude-opus-4-8";
|
|
2261
|
-
var CLAUDE_SONNET_5_BEDROCK_MODEL = "anthropic.claude-sonnet-5";
|
|
2262
|
-
var CLAUDE_HAIKU_4_5_BEDROCK_MODEL = "us.anthropic.claude-haiku-4-5-20251001-v1:0";
|
|
2263
|
-
var DEFAULT_CLAUDE_MODEL = CLAUDE_OPUS_4_8_MODEL;
|
|
2264
|
-
var DEFAULT_CODEX_MODEL = "gpt-5.5";
|
|
2265
|
-
var DEFAULT_CURSOR_MODEL = "composer-2.5";
|
|
2266
|
-
var DEFAULT_OPENCODE_MODEL = "z-ai/glm-5.2";
|
|
2267
|
-
function normalizeClaudeModel(model) {
|
|
2268
|
-
if (model === "opus" || model === CLAUDE_OPUS_1M_MODEL || model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
|
|
2269
|
-
return DEFAULT_CLAUDE_MODEL;
|
|
2270
|
-
}
|
|
2271
|
-
if (model === "sonnet") {
|
|
2272
|
-
return CLAUDE_SONNET_5_MODEL;
|
|
2273
|
-
}
|
|
2274
|
-
if (model === "haiku") {
|
|
2275
|
-
return CLAUDE_HAIKU_4_5_MODEL;
|
|
2276
|
-
}
|
|
2277
|
-
return model;
|
|
2278
|
-
}
|
|
2279
|
-
function canUseClaudeFastMode(model) {
|
|
2280
|
-
return normalizeClaudeModel(model) === CLAUDE_OPUS_4_8_MODEL || model === "claude-opus-4-7";
|
|
2281
|
-
}
|
|
2282
|
-
var AGENT_MODELS = {
|
|
2283
|
-
claude: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL, CLAUDE_HAIKU_4_5_MODEL],
|
|
2284
|
-
codex: [DEFAULT_CODEX_MODEL, "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex", "gpt-5.2"],
|
|
2285
|
-
cursor: [
|
|
2286
|
-
CLAUDE_OPUS_4_8_MODEL,
|
|
2287
|
-
"gpt-5.5",
|
|
2288
|
-
"composer-2.5",
|
|
2289
|
-
CLAUDE_SONNET_5_MODEL,
|
|
2290
|
-
"claude-opus-4-7",
|
|
2291
|
-
"gpt-5.4",
|
|
2292
|
-
"gpt-5.4-mini",
|
|
2293
|
-
"gpt-5.4-nano",
|
|
2294
|
-
"gpt-5.3-codex",
|
|
2295
|
-
"gpt-5.2",
|
|
2296
|
-
"gpt-5.2-codex",
|
|
2297
|
-
"gpt-5.1",
|
|
2298
|
-
"gpt-5.1-codex-max",
|
|
2299
|
-
"gpt-5.1-codex-mini",
|
|
2300
|
-
"gpt-5-mini",
|
|
2301
|
-
"gemini-3.1-pro",
|
|
2302
|
-
"gemini-3-flash",
|
|
2303
|
-
"grok-4.3",
|
|
2304
|
-
CLAUDE_HAIKU_4_5_MODEL,
|
|
2305
|
-
"kimi-k2.5"
|
|
2306
|
-
],
|
|
2307
|
-
opencode: [DEFAULT_OPENCODE_MODEL, "minimax/minimax-m3", "xiaomi/mimo-v2.5-pro", "moonshotai/kimi-k2.6"],
|
|
2308
|
-
relay: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL]
|
|
2309
|
-
};
|
|
2310
|
-
var MODEL_LABELS = {
|
|
2311
|
-
sonnet: "Sonnet 5",
|
|
2312
|
-
"claude-sonnet-5": "Sonnet 5",
|
|
2313
|
-
opus: "Opus 4.8",
|
|
2314
|
-
[CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
2315
|
-
[LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
|
|
2316
|
-
haiku: "Haiku 4.5",
|
|
2317
|
-
[DEFAULT_CODEX_MODEL]: "GPT-5.5",
|
|
2318
|
-
[DEFAULT_OPENCODE_MODEL]: "GLM 5.2 via OpenRouter",
|
|
2319
|
-
"minimax/minimax-m3": "MiniMax M3 via OpenRouter",
|
|
2320
|
-
"xiaomi/mimo-v2.5-pro": "MiMo V2.5 Pro via OpenRouter",
|
|
2321
|
-
"moonshotai/kimi-k2.6": "Kimi K2.6 via OpenRouter",
|
|
2322
|
-
"gpt-5.4": "GPT-5.4",
|
|
2323
|
-
"gpt-5.4-mini": "GPT-5.4 Mini",
|
|
2324
|
-
"gpt-5.4-nano": "GPT-5.4 Nano",
|
|
2325
|
-
"gpt-5.3-codex": "GPT-5.3 Codex",
|
|
2326
|
-
"gpt-5.2": "GPT-5.2",
|
|
2327
|
-
"gpt-5.2-codex": "GPT-5.2 Codex",
|
|
2328
|
-
"gpt-5.1": "GPT-5.1",
|
|
2329
|
-
"gpt-5.1-codex-max": "GPT-5.1 Codex Max",
|
|
2330
|
-
"gpt-5.1-codex-mini": "GPT-5.1 Codex Mini",
|
|
2331
|
-
"gpt-5-mini": "GPT-5 Mini",
|
|
2332
|
-
"composer-2.5": "Composer 2.5",
|
|
2333
|
-
[CLAUDE_OPUS_4_8_MODEL]: "Opus 4.8",
|
|
2334
|
-
"claude-opus-4-7": "Opus 4.7",
|
|
2335
|
-
[CLAUDE_HAIKU_4_5_MODEL]: "Haiku 4.5",
|
|
2336
|
-
"gemini-3.1-pro": "Gemini 3.1 Pro",
|
|
2337
|
-
"gemini-3-flash": "Gemini 3 Flash",
|
|
2338
|
-
"grok-4.3": "Grok 4.3",
|
|
2339
|
-
"kimi-k2.5": "Kimi K2.5"
|
|
2340
|
-
};
|
|
2341
|
-
var IMAGE_MEDIA_TYPES = ["image/png", "image/jpeg", "image/gif", "image/webp"];
|
|
2342
|
-
var MAX_CANVAS_FILE_BYTES = 5 * 1024 * 1024;
|
|
2343
|
-
function isCanvasTextKind(kind) {
|
|
2344
|
-
return kind === "markdown" || kind === "html";
|
|
2345
|
-
}
|
|
2346
|
-
function sanitizeCanvasFilename(filename) {
|
|
2347
|
-
const safe = filename.split(/[\\/]/).pop() ?? "";
|
|
2348
|
-
if (!safe || safe !== filename || safe.startsWith(".")) return null;
|
|
2349
|
-
return safe;
|
|
2350
|
-
}
|
|
2351
|
-
function bytesToBase64(bytes) {
|
|
2352
|
-
let binary = "";
|
|
2353
|
-
const chunkSize = 32768;
|
|
2354
|
-
for (let i = 0; i < bytes.length; i += chunkSize) {
|
|
2355
|
-
binary += String.fromCharCode(...bytes.subarray(i, i + chunkSize));
|
|
2356
|
-
}
|
|
2357
|
-
return btoa(binary);
|
|
2358
|
-
}
|
|
2359
|
-
function serializeCanvasContentResponse(input) {
|
|
2360
|
-
const base = {
|
|
2361
|
-
filename: input.filename,
|
|
2362
|
-
kind: input.kind,
|
|
2363
|
-
sizeBytes: input.sizeBytes,
|
|
2364
|
-
mimeType: input.mimeType
|
|
2365
|
-
};
|
|
2366
|
-
if (isCanvasTextKind(input.kind)) {
|
|
2367
|
-
return { ...base, content: new TextDecoder().decode(input.bytes) };
|
|
2368
|
-
}
|
|
2369
|
-
return { ...base, base64: bytesToBase64(input.bytes) };
|
|
2370
|
-
}
|
|
2371
|
-
var CANVAS_KIND_BY_EXTENSION = {
|
|
2372
|
-
".md": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
|
|
2373
|
-
".markdown": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
|
|
2374
|
-
".html": { kind: "html", mimeType: "text/html; charset=utf-8" },
|
|
2375
|
-
".htm": { kind: "html", mimeType: "text/html; charset=utf-8" },
|
|
2376
|
-
".png": { kind: "image", mimeType: "image/png" },
|
|
2377
|
-
".jpg": { kind: "image", mimeType: "image/jpeg" },
|
|
2378
|
-
".jpeg": { kind: "image", mimeType: "image/jpeg" },
|
|
2379
|
-
".gif": { kind: "image", mimeType: "image/gif" },
|
|
2380
|
-
".webp": { kind: "image", mimeType: "image/webp" },
|
|
2381
|
-
".svg": { kind: "image", mimeType: "image/svg+xml" },
|
|
2382
|
-
".mp4": { kind: "video", mimeType: "video/mp4" },
|
|
2383
|
-
".webm": { kind: "video", mimeType: "video/webm" },
|
|
2384
|
-
".mov": { kind: "video", mimeType: "video/quicktime" },
|
|
2385
|
-
".mp3": { kind: "audio", mimeType: "audio/mpeg" },
|
|
2386
|
-
".wav": { kind: "audio", mimeType: "audio/wav" },
|
|
2387
|
-
".ogg": { kind: "audio", mimeType: "audio/ogg" }
|
|
2388
|
-
};
|
|
2389
|
-
function classifyCanvasFilename(filename) {
|
|
2390
|
-
const idx = filename.lastIndexOf(".");
|
|
2391
|
-
const ext = idx === -1 ? "" : filename.slice(idx).toLowerCase();
|
|
2392
|
-
return CANVAS_KIND_BY_EXTENSION[ext] ?? { kind: "other", mimeType: "application/octet-stream" };
|
|
2393
|
-
}
|
|
2394
|
-
|
|
2395
2426
|
// ../shared/src/engine/v1.ts
|
|
2396
2427
|
var MERGED_MESSAGE_SEPARATOR = "\n\n<!-- replicas:merged -->\n\n";
|
|
2397
2428
|
function normalizeCodexAspTranscriptStatus(status, failed = false) {
|
|
@@ -7371,9 +7402,11 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
7371
7402
|
return this.systemPromptOverride ? "relay" : "claude";
|
|
7372
7403
|
}
|
|
7373
7404
|
buildContextUsagePayload(usage) {
|
|
7374
|
-
const
|
|
7375
|
-
const
|
|
7405
|
+
const reportedMaxTokens = Number.isFinite(usage.maxTokens) ? usage.maxTokens : null;
|
|
7406
|
+
const knownMaxTokens = getClaudeModelContextWindow(usage.model);
|
|
7407
|
+
const maxTokens = knownMaxTokens ?? reportedMaxTokens;
|
|
7376
7408
|
const clamped = clampTokensToWindow(usage.totalTokens, maxTokens);
|
|
7409
|
+
const autoCompactThreshold = normalizeAutoCompactThreshold(usage.autoCompactThreshold, maxTokens);
|
|
7377
7410
|
return {
|
|
7378
7411
|
provider: this.getContextUsageProvider(),
|
|
7379
7412
|
source: "claude_context",
|
|
@@ -7381,10 +7414,10 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
7381
7414
|
totalTokens: clamped.totalTokens,
|
|
7382
7415
|
...clamped.totalProcessedTokens !== void 0 ? { totalProcessedTokens: clamped.totalProcessedTokens } : {},
|
|
7383
7416
|
maxTokens,
|
|
7384
|
-
rawMaxTokens: Number.isFinite(usage.rawMaxTokens) ? usage.rawMaxTokens : maxTokens,
|
|
7385
|
-
percentage:
|
|
7417
|
+
rawMaxTokens: knownMaxTokens ?? (Number.isFinite(usage.rawMaxTokens) ? usage.rawMaxTokens : maxTokens),
|
|
7418
|
+
percentage: percentage(clamped.totalTokens, maxTokens),
|
|
7386
7419
|
compactsAutomatically: usage.isAutoCompactEnabled === true,
|
|
7387
|
-
...autoCompactThresholdField(
|
|
7420
|
+
...autoCompactThresholdField(autoCompactThreshold),
|
|
7388
7421
|
categories: usage.categories.map((category) => ({
|
|
7389
7422
|
name: category.name,
|
|
7390
7423
|
tokens: category.tokens,
|
|
@@ -7783,7 +7816,7 @@ var AspClient = class {
|
|
|
7783
7816
|
// src/managers/codex-asp/app-server-process.ts
|
|
7784
7817
|
var DEFAULT_CODEX_BINARY = "codex";
|
|
7785
7818
|
var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
7786
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
7819
|
+
var ENGINE_PACKAGE_VERSION = "0.1.376";
|
|
7787
7820
|
var INITIALIZE_METHOD = "initialize";
|
|
7788
7821
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
7789
7822
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "replicas-engine",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.376",
|
|
4
4
|
"description": "Lightweight API server for Replicas workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"author": "Replicas",
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
34
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.197",
|
|
35
35
|
"@connectrpc/connect-node": "1.7.0",
|
|
36
36
|
"@cursor/sdk": "1.0.19",
|
|
37
37
|
"@hono/node-server": "^1.19.5",
|