replicas-engine 0.1.435 → 0.1.436

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 +69 -13
  2. package/package.json +1 -1
package/dist/src/index.js CHANGED
@@ -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-14-v6";
509
+ var E2B_TEMPLATE_NAME = "replicas-sandbox-2026-07-14-v7";
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 "auth method is api_key";
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.435";
8523
+ var ENGINE_PACKAGE_VERSION = "0.1.436";
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 ?? DEFAULT_CODEX_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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-engine",
3
- "version": "0.1.435",
3
+ "version": "0.1.436",
4
4
  "description": "Lightweight API server for Replicas workspaces",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",