replicas-engine 0.1.435 → 0.1.437
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 +81 -25
- package/package.json +1 -1
package/dist/src/index.js
CHANGED
|
@@ -429,12 +429,11 @@ var PLANS = {
|
|
|
429
429
|
monthlyPrice: 0,
|
|
430
430
|
seatPriceCents: 0,
|
|
431
431
|
features: [
|
|
432
|
-
"2,400
|
|
433
|
-
"Use them however you want, manual or automated",
|
|
434
|
-
"Automations (limited to 2)",
|
|
435
|
-
"Warm pools and warm hooks",
|
|
432
|
+
"2,400 manual/automated workspace minutes per month",
|
|
436
433
|
"Up to 3 repositories",
|
|
437
|
-
"Up to 5 environments"
|
|
434
|
+
"Up to 5 environments",
|
|
435
|
+
"Up to 2 automations",
|
|
436
|
+
"Warm pools and warm hooks"
|
|
438
437
|
]
|
|
439
438
|
},
|
|
440
439
|
developer: {
|
|
@@ -443,8 +442,8 @@ var PLANS = {
|
|
|
443
442
|
monthlyPrice: 120,
|
|
444
443
|
seatPriceCents: 12e3,
|
|
445
444
|
features: [
|
|
446
|
-
"Unlimited manual
|
|
447
|
-
"5,000
|
|
445
|
+
"Unlimited manual workspace minutes",
|
|
446
|
+
"5,000 automated workspace minutes per month",
|
|
448
447
|
"Up to 10 repositories",
|
|
449
448
|
"Up to 15 environments",
|
|
450
449
|
"Up to 5 automations",
|
|
@@ -458,12 +457,12 @@ var PLANS = {
|
|
|
458
457
|
monthlyPrice: 300,
|
|
459
458
|
seatPriceCents: 3e4,
|
|
460
459
|
features: [
|
|
461
|
-
"Unlimited manual
|
|
462
|
-
"15,000
|
|
460
|
+
"Unlimited manual workspace minutes",
|
|
461
|
+
"15,000 automated workspace minutes per month",
|
|
463
462
|
"Unlimited repositories",
|
|
464
463
|
"Unlimited automations",
|
|
465
|
-
"Higher API rate limits",
|
|
466
464
|
"Warm pools and warm hooks",
|
|
465
|
+
"Higher API rate limits",
|
|
467
466
|
"Auto-upgraded sandbox resources (4 vCPU, 32 GB disk, 16 GB memory)",
|
|
468
467
|
"Shared Slack support channel"
|
|
469
468
|
]
|
|
@@ -474,11 +473,12 @@ var PLANS = {
|
|
|
474
473
|
monthlyPrice: 0,
|
|
475
474
|
seatPriceCents: 0,
|
|
476
475
|
features: [
|
|
477
|
-
"Unlimited
|
|
476
|
+
"Unlimited manual workspace minutes",
|
|
477
|
+
"Unlimited automated workspace minutes",
|
|
478
478
|
"Unlimited automations",
|
|
479
|
+
"Custom warm hooks and pools",
|
|
479
480
|
"Custom API rates",
|
|
480
481
|
"Custom rate limits",
|
|
481
|
-
"Custom warm hooks and pools",
|
|
482
482
|
"Shared Slack support channel",
|
|
483
483
|
"SOC 2"
|
|
484
484
|
]
|
|
@@ -506,7 +506,7 @@ var WORKSPACE_SIZES = ["small", "large"];
|
|
|
506
506
|
var INVALID_WORKSPACE_SIZE_ERROR = `Invalid size: must be one of ${WORKSPACE_SIZES.join(", ")}`;
|
|
507
507
|
|
|
508
508
|
// ../shared/src/e2b.ts
|
|
509
|
-
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-
|
|
509
|
+
var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-15-v2";
|
|
510
510
|
|
|
511
511
|
// ../shared/src/runtime-env.ts
|
|
512
512
|
function shellQuotePosix(value) {
|
|
@@ -2792,6 +2792,9 @@ function paginateChatHistory(full, params) {
|
|
|
2792
2792
|
// ../shared/src/routes/codex.ts
|
|
2793
2793
|
var CODEX_AUTH_ENV_KEYS = [
|
|
2794
2794
|
"OPENAI_API_KEY",
|
|
2795
|
+
"AZURE_OPENAI_API_KEY",
|
|
2796
|
+
"CODEX_FOUNDRY_BASE_URL",
|
|
2797
|
+
"CODEX_FOUNDRY_MODEL",
|
|
2795
2798
|
"REPLICAS_CODEX_AUTH_METHOD"
|
|
2796
2799
|
];
|
|
2797
2800
|
function codexAuthEnvFromResponse(response) {
|
|
@@ -2800,13 +2803,21 @@ function codexAuthEnvFromResponse(response) {
|
|
|
2800
2803
|
return { REPLICAS_CODEX_AUTH_METHOD: "oauth" };
|
|
2801
2804
|
case "api_key":
|
|
2802
2805
|
return { OPENAI_API_KEY: response.apiKey, REPLICAS_CODEX_AUTH_METHOD: "api_key" };
|
|
2806
|
+
case "foundry":
|
|
2807
|
+
return {
|
|
2808
|
+
AZURE_OPENAI_API_KEY: response.apiKey,
|
|
2809
|
+
CODEX_FOUNDRY_BASE_URL: response.baseUrl,
|
|
2810
|
+
CODEX_FOUNDRY_MODEL: response.model,
|
|
2811
|
+
REPLICAS_CODEX_AUTH_METHOD: "foundry"
|
|
2812
|
+
};
|
|
2803
2813
|
}
|
|
2804
2814
|
}
|
|
2805
2815
|
var CODEX_AUTH_ENV_KEYS_BY_METHOD = {
|
|
2806
2816
|
none: [],
|
|
2807
2817
|
oauth: ["REPLICAS_CODEX_AUTH_METHOD"],
|
|
2808
2818
|
api_key: ["OPENAI_API_KEY", "REPLICAS_CODEX_AUTH_METHOD"],
|
|
2809
|
-
bedrock: []
|
|
2819
|
+
bedrock: [],
|
|
2820
|
+
foundry: ["AZURE_OPENAI_API_KEY", "CODEX_FOUNDRY_BASE_URL", "CODEX_FOUNDRY_MODEL", "REPLICAS_CODEX_AUTH_METHOD"]
|
|
2810
2821
|
};
|
|
2811
2822
|
|
|
2812
2823
|
// ../shared/src/routes/claude.ts
|
|
@@ -2817,6 +2828,12 @@ var CLAUDE_AUTH_ENV_KEYS = [
|
|
|
2817
2828
|
"AWS_SECRET_ACCESS_KEY",
|
|
2818
2829
|
"AWS_REGION",
|
|
2819
2830
|
"ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION",
|
|
2831
|
+
"CLAUDE_CODE_USE_FOUNDRY",
|
|
2832
|
+
"ANTHROPIC_FOUNDRY_API_KEY",
|
|
2833
|
+
"ANTHROPIC_FOUNDRY_RESOURCE",
|
|
2834
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL",
|
|
2835
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL",
|
|
2836
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL",
|
|
2820
2837
|
"REPLICAS_CLAUDE_AUTH_METHOD"
|
|
2821
2838
|
];
|
|
2822
2839
|
function claudeAuthEnvFromResponse(response) {
|
|
@@ -2834,6 +2851,16 @@ function claudeAuthEnvFromResponse(response) {
|
|
|
2834
2851
|
...response.smallFastModelRegion ? { ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION: response.smallFastModelRegion } : {},
|
|
2835
2852
|
REPLICAS_CLAUDE_AUTH_METHOD: "bedrock"
|
|
2836
2853
|
};
|
|
2854
|
+
case "foundry":
|
|
2855
|
+
return {
|
|
2856
|
+
CLAUDE_CODE_USE_FOUNDRY: "1",
|
|
2857
|
+
ANTHROPIC_FOUNDRY_API_KEY: response.apiKey,
|
|
2858
|
+
ANTHROPIC_FOUNDRY_RESOURCE: response.resource,
|
|
2859
|
+
...response.sonnetModel ? { ANTHROPIC_DEFAULT_SONNET_MODEL: response.sonnetModel } : {},
|
|
2860
|
+
...response.haikuModel ? { ANTHROPIC_DEFAULT_HAIKU_MODEL: response.haikuModel } : {},
|
|
2861
|
+
...response.opusModel ? { ANTHROPIC_DEFAULT_OPUS_MODEL: response.opusModel } : {},
|
|
2862
|
+
REPLICAS_CLAUDE_AUTH_METHOD: "foundry"
|
|
2863
|
+
};
|
|
2837
2864
|
}
|
|
2838
2865
|
}
|
|
2839
2866
|
var CLAUDE_AUTH_ENV_KEYS_BY_METHOD = {
|
|
@@ -2847,6 +2874,15 @@ var CLAUDE_AUTH_ENV_KEYS_BY_METHOD = {
|
|
|
2847
2874
|
"AWS_REGION",
|
|
2848
2875
|
"ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION",
|
|
2849
2876
|
"REPLICAS_CLAUDE_AUTH_METHOD"
|
|
2877
|
+
],
|
|
2878
|
+
foundry: [
|
|
2879
|
+
"CLAUDE_CODE_USE_FOUNDRY",
|
|
2880
|
+
"ANTHROPIC_FOUNDRY_API_KEY",
|
|
2881
|
+
"ANTHROPIC_FOUNDRY_RESOURCE",
|
|
2882
|
+
"ANTHROPIC_DEFAULT_SONNET_MODEL",
|
|
2883
|
+
"ANTHROPIC_DEFAULT_HAIKU_MODEL",
|
|
2884
|
+
"ANTHROPIC_DEFAULT_OPUS_MODEL",
|
|
2885
|
+
"REPLICAS_CLAUDE_AUTH_METHOD"
|
|
2850
2886
|
]
|
|
2851
2887
|
};
|
|
2852
2888
|
|
|
@@ -3301,13 +3337,13 @@ function requireValidURL(value, name) {
|
|
|
3301
3337
|
}
|
|
3302
3338
|
}
|
|
3303
3339
|
function parseClaudeAuthMethod(value) {
|
|
3304
|
-
if (value === "oauth" || value === "api_key" || value === "bedrock") {
|
|
3340
|
+
if (value === "oauth" || value === "api_key" || value === "bedrock" || value === "foundry") {
|
|
3305
3341
|
return value;
|
|
3306
3342
|
}
|
|
3307
3343
|
return void 0;
|
|
3308
3344
|
}
|
|
3309
3345
|
function parseCodexAuthMethod(value) {
|
|
3310
|
-
if (value === "oauth" || value === "api_key") {
|
|
3346
|
+
if (value === "oauth" || value === "api_key" || value === "foundry") {
|
|
3311
3347
|
return value;
|
|
3312
3348
|
}
|
|
3313
3349
|
return void 0;
|
|
@@ -3709,7 +3745,7 @@ var ClaudeTokenManager = class extends BaseRefreshManager {
|
|
|
3709
3745
|
}
|
|
3710
3746
|
getSkipReason() {
|
|
3711
3747
|
const method = ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD;
|
|
3712
|
-
if (method === "api_key" || method === "bedrock") {
|
|
3748
|
+
if (method === "api_key" || method === "bedrock" || method === "foundry") {
|
|
3713
3749
|
return `auth method is ${method}`;
|
|
3714
3750
|
}
|
|
3715
3751
|
return null;
|
|
@@ -3813,8 +3849,8 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
3813
3849
|
super("CodexTokenManager");
|
|
3814
3850
|
}
|
|
3815
3851
|
getSkipReason() {
|
|
3816
|
-
if (ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "api_key") {
|
|
3817
|
-
return
|
|
3852
|
+
if (ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "api_key" || ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "foundry") {
|
|
3853
|
+
return `auth method is ${ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD}`;
|
|
3818
3854
|
}
|
|
3819
3855
|
if (!ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD && ENGINE_ENV.OPENAI_API_KEY) {
|
|
3820
3856
|
return "OPENAI_API_KEY is set";
|
|
@@ -3843,7 +3879,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
3843
3879
|
try {
|
|
3844
3880
|
console.log("[CodexTokenManager] Fetching fresh credentials from monolith after auth failure...");
|
|
3845
3881
|
const failedMethod = ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD;
|
|
3846
|
-
await this.refreshWithRequest(failedMethod === "oauth" || failedMethod === "api_key" ? {
|
|
3882
|
+
await this.refreshWithRequest(failedMethod === "oauth" || failedMethod === "api_key" || failedMethod === "foundry" ? {
|
|
3847
3883
|
failedMethod,
|
|
3848
3884
|
failureReason
|
|
3849
3885
|
} : void 0);
|
|
@@ -4900,6 +4936,9 @@ function detectClaudeAuthMethod() {
|
|
|
4900
4936
|
if (existsSync3(CLAUDE_CREDENTIALS_PATH)) {
|
|
4901
4937
|
return "oauth";
|
|
4902
4938
|
}
|
|
4939
|
+
if (ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "foundry") {
|
|
4940
|
+
return "foundry";
|
|
4941
|
+
}
|
|
4903
4942
|
if (ENGINE_ENV.CLAUDE_CODE_USE_BEDROCK && ENGINE_ENV.AWS_ACCESS_KEY_ID && ENGINE_ENV.AWS_SECRET_ACCESS_KEY) {
|
|
4904
4943
|
return "bedrock";
|
|
4905
4944
|
}
|
|
@@ -4915,6 +4954,7 @@ function detectCodexAuthMethod() {
|
|
|
4915
4954
|
if (ENGINE_ENV.OPENAI_API_KEY) {
|
|
4916
4955
|
return "api_key";
|
|
4917
4956
|
}
|
|
4957
|
+
if (ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "foundry") return "foundry";
|
|
4918
4958
|
return "none";
|
|
4919
4959
|
}
|
|
4920
4960
|
function detectCursorAuthMethod() {
|
|
@@ -6689,13 +6729,13 @@ function buildCodexAgentEnv() {
|
|
|
6689
6729
|
}
|
|
6690
6730
|
function shouldStripAnthropicApiKey(isBedrock) {
|
|
6691
6731
|
const method = ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD;
|
|
6692
|
-
return method === "oauth" || method === "bedrock" || isBedrock;
|
|
6732
|
+
return method === "oauth" || method === "bedrock" || method === "foundry" || isBedrock;
|
|
6693
6733
|
}
|
|
6694
6734
|
function isClaudeBedrockEnv(env) {
|
|
6695
6735
|
return ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "bedrock" || env.REPLICAS_CLAUDE_AUTH_METHOD === "bedrock" || env.CLAUDE_CODE_USE_BEDROCK === "1";
|
|
6696
6736
|
}
|
|
6697
6737
|
function shouldStripOpenAIApiKey() {
|
|
6698
|
-
return ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "oauth";
|
|
6738
|
+
return ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "oauth" || ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "foundry";
|
|
6699
6739
|
}
|
|
6700
6740
|
|
|
6701
6741
|
// src/utils/agent-additional-directories.ts
|
|
@@ -7673,12 +7713,14 @@ var ClaudeManager = class _ClaudeManager extends CodingAgentManager {
|
|
|
7673
7713
|
return "Anthropic API key authentication failed. The key may be invalid, revoked, out of credits, or missing access to the selected Claude model. Update the Anthropic API key in Settings \u2192 Agents and try again.";
|
|
7674
7714
|
case "bedrock":
|
|
7675
7715
|
return "AWS Bedrock authentication failed. Check the Bedrock credentials, region, IAM permissions, and Claude model access in Settings \u2192 Agents, then try again.";
|
|
7716
|
+
case "foundry":
|
|
7717
|
+
return "Microsoft Foundry authentication failed. Check the API key, resource, and Claude deployment names in Settings \u2192 Agents, then try again.";
|
|
7676
7718
|
default:
|
|
7677
7719
|
return "Claude authentication failed after multiple attempts. Check your Claude, Anthropic API key, or Bedrock credentials in Settings \u2192 Agents and try again.";
|
|
7678
7720
|
}
|
|
7679
7721
|
}
|
|
7680
7722
|
resolveClaudeAuthMethodForMessage() {
|
|
7681
|
-
if (ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "oauth" || ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "api_key" || ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "bedrock") {
|
|
7723
|
+
if (ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "oauth" || ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "api_key" || ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "bedrock" || ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD === "foundry") {
|
|
7682
7724
|
return ENGINE_ENV.REPLICAS_CLAUDE_AUTH_METHOD;
|
|
7683
7725
|
}
|
|
7684
7726
|
if (ENGINE_ENV.CLAUDE_CODE_USE_BEDROCK === "1" || ENGINE_ENV.AWS_ACCESS_KEY_ID || ENGINE_ENV.AWS_SECRET_ACCESS_KEY) return "bedrock";
|
|
@@ -8478,7 +8520,7 @@ var DEFAULT_CODEX_ARGS = ["app-server", "--listen", "stdio://"];
|
|
|
8478
8520
|
var MIN_CODEX_CLI_VERSION = "0.144.0";
|
|
8479
8521
|
var CODEX_UPGRADE_TIMEOUT_MS = 12e4;
|
|
8480
8522
|
var codexCliVersionEnsured = null;
|
|
8481
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
8523
|
+
var ENGINE_PACKAGE_VERSION = "0.1.437";
|
|
8482
8524
|
var INITIALIZE_METHOD = "initialize";
|
|
8483
8525
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
8484
8526
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -8493,7 +8535,21 @@ var AppServerProcess = class {
|
|
|
8493
8535
|
shuttingDown = false;
|
|
8494
8536
|
constructor(options = {}) {
|
|
8495
8537
|
this.binary = options.binary ?? DEFAULT_CODEX_BINARY;
|
|
8496
|
-
this.args = options.args ??
|
|
8538
|
+
this.args = options.args ?? (ENGINE_ENV.REPLICAS_CODEX_AUTH_METHOD === "foundry" ? [
|
|
8539
|
+
...DEFAULT_CODEX_ARGS,
|
|
8540
|
+
"-c",
|
|
8541
|
+
`model=${JSON.stringify(process.env.CODEX_FOUNDRY_MODEL)}`,
|
|
8542
|
+
"-c",
|
|
8543
|
+
'model_provider="azure"',
|
|
8544
|
+
"-c",
|
|
8545
|
+
'model_providers.azure.name="Azure OpenAI"',
|
|
8546
|
+
"-c",
|
|
8547
|
+
`model_providers.azure.base_url=${JSON.stringify(process.env.CODEX_FOUNDRY_BASE_URL)}`,
|
|
8548
|
+
"-c",
|
|
8549
|
+
'model_providers.azure.env_key="AZURE_OPENAI_API_KEY"',
|
|
8550
|
+
"-c",
|
|
8551
|
+
'model_providers.azure.wire_api="responses"'
|
|
8552
|
+
] : DEFAULT_CODEX_ARGS);
|
|
8497
8553
|
this.env = options.env ?? buildCodexAgentEnv();
|
|
8498
8554
|
this.cwd = options.cwd ?? ENGINE_ENV.WORKSPACE_ROOT;
|
|
8499
8555
|
}
|