replicas-cli 0.2.812 → 0.2.814

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/index.cjs +35 -110
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -7629,13 +7629,6 @@ var SUBAGENT_MCP_HARNESSES = [AGENT.CLAUDE, AGENT.CODEX];
7629
7629
  function isValidAgentProvider(value) {
7630
7630
  return VALID_AGENT_PROVIDERS.some((p) => p === value);
7631
7631
  }
7632
- var LEGACY_RELAY_BASE_PROVIDERS = [AGENT.CLAUDE, AGENT.CODEX, AGENT.OPENCODE, AGENT.PI];
7633
- function normalizeLegacyChatProvider(provider, relayBaseProvider) {
7634
- if (provider === "relay") {
7635
- return LEGACY_RELAY_BASE_PROVIDERS.find((base) => base === relayBaseProvider) ?? AGENT.CLAUDE;
7636
- }
7637
- return isValidAgentProvider(provider) ? provider : null;
7638
- }
7639
7632
  var AGENT_PROVIDER_OPTIONS = [
7640
7633
  {
7641
7634
  value: "claude",
@@ -22491,6 +22484,7 @@ var CLAUDE_OPUS_5_MODEL = "claude-opus-5";
22491
22484
  var CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8";
22492
22485
  var CLAUDE_SONNET_5_5_MODEL = "claude-sonnet-5-5";
22493
22486
  var CLAUDE_SONNET_5_MODEL = "claude-sonnet-5";
22487
+ var CLAUDE_HAIKU_5_5_MODEL = "claude-haiku-5-5";
22494
22488
  var CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5";
22495
22489
  var CLAUDE_FABLE_5_1_BEDROCK_MODEL = "anthropic.claude-fable-5-1";
22496
22490
  var CLAUDE_FABLE_5_BEDROCK_MODEL = "anthropic.claude-fable-5";
@@ -22499,6 +22493,7 @@ var CLAUDE_OPUS_5_BEDROCK_MODEL = "anthropic.claude-opus-5";
22499
22493
  var CLAUDE_OPUS_4_8_BEDROCK_MODEL = "us.anthropic.claude-opus-4-8";
22500
22494
  var CLAUDE_SONNET_5_5_BEDROCK_MODEL = "anthropic.claude-sonnet-5-5";
22501
22495
  var CLAUDE_SONNET_5_BEDROCK_MODEL = "anthropic.claude-sonnet-5";
22496
+ var CLAUDE_HAIKU_5_5_BEDROCK_MODEL = "anthropic.claude-haiku-5-5";
22502
22497
  var CLAUDE_HAIKU_4_5_BEDROCK_MODEL = "us.anthropic.claude-haiku-4-5-20251001-v1:0";
22503
22498
  var DEFAULT_CLAUDE_MODEL = CLAUDE_OPUS_5_5_MODEL;
22504
22499
  var GPT_6_ASTRA_MODEL = "gpt-6-astra";
@@ -22550,6 +22545,7 @@ var CLAUDE_MODEL_CONTEXT_WINDOWS = {
22550
22545
  [CLAUDE_OPUS_4_8_MODEL]: 1e6,
22551
22546
  [CLAUDE_SONNET_5_5_MODEL]: 1e6,
22552
22547
  [CLAUDE_SONNET_5_MODEL]: 1e6,
22548
+ [CLAUDE_HAIKU_5_5_MODEL]: 1e6,
22553
22549
  [CLAUDE_HAIKU_4_5_MODEL]: 2e5,
22554
22550
  [CLAUDE_FABLE_5_1_BEDROCK_MODEL]: 1e6,
22555
22551
  [CLAUDE_FABLE_5_BEDROCK_MODEL]: 1e6,
@@ -22558,6 +22554,7 @@ var CLAUDE_MODEL_CONTEXT_WINDOWS = {
22558
22554
  [CLAUDE_OPUS_4_8_BEDROCK_MODEL]: 1e6,
22559
22555
  [CLAUDE_SONNET_5_5_BEDROCK_MODEL]: 1e6,
22560
22556
  [CLAUDE_SONNET_5_BEDROCK_MODEL]: 1e6,
22557
+ [CLAUDE_HAIKU_5_5_BEDROCK_MODEL]: 1e6,
22561
22558
  [CLAUDE_HAIKU_4_5_BEDROCK_MODEL]: 2e5,
22562
22559
  "anthropic.claude-opus-4-8": 1e6,
22563
22560
  "us.anthropic.claude-sonnet-5": 1e6,
@@ -22565,18 +22562,33 @@ var CLAUDE_MODEL_CONTEXT_WINDOWS = {
22565
22562
  "claude-haiku-4-5-20251001": 2e5,
22566
22563
  "claude-haiku-4-5@20251001": 2e5
22567
22564
  };
22565
+ var CLAUDE_MODEL_MIN_SANDBOX_IMAGE = {
22566
+ [CLAUDE_FABLE_5_1_MODEL]: "replicas-sandbox-2026-09-01-v6",
22567
+ [CLAUDE_FABLE_5_MODEL]: null,
22568
+ [CLAUDE_OPUS_5_5_MODEL]: "replicas-sandbox-2026-09-22-v4",
22569
+ [CLAUDE_OPUS_5_MODEL]: null,
22570
+ [CLAUDE_OPUS_4_8_MODEL]: null,
22571
+ [CLAUDE_SONNET_5_5_MODEL]: "replicas-sandbox-2026-09-28-v7",
22572
+ [CLAUDE_SONNET_5_MODEL]: null,
22573
+ [CLAUDE_HAIKU_5_5_MODEL]: "replicas-sandbox-2026-10-08-v4",
22574
+ [CLAUDE_HAIKU_4_5_MODEL]: null
22575
+ };
22576
+ var CODEX_MODEL_MIN_SANDBOX_IMAGE = {
22577
+ [DEFAULT_CODEX_MODEL]: "replicas-sandbox-2026-09-30-v11",
22578
+ [GPT_6_SOL_MODEL]: "replicas-sandbox-2026-09-24-v1",
22579
+ [GPT_6_ASTRA_MODEL]: "replicas-sandbox-2026-09-04-v7",
22580
+ [GPT_6_LUNA_MODEL]: "replicas-sandbox-2026-09-24-v1",
22581
+ [GPT_5_6_SOL_MODEL]: null,
22582
+ [GPT_5_6_TERRA_MODEL]: null,
22583
+ [GPT_5_6_LUNA_MODEL]: null,
22584
+ "gpt-5.5": null,
22585
+ "gpt-5.4": null,
22586
+ "gpt-5.4-mini": null,
22587
+ "gpt-5.2": null
22588
+ };
22568
22589
  var AGENT_MODELS = {
22569
- claude: [
22570
- CLAUDE_FABLE_5_1_MODEL,
22571
- CLAUDE_FABLE_5_MODEL,
22572
- CLAUDE_OPUS_5_5_MODEL,
22573
- CLAUDE_OPUS_5_MODEL,
22574
- CLAUDE_OPUS_4_8_MODEL,
22575
- CLAUDE_SONNET_5_5_MODEL,
22576
- CLAUDE_SONNET_5_MODEL,
22577
- CLAUDE_HAIKU_4_5_MODEL
22578
- ],
22579
- codex: [DEFAULT_CODEX_MODEL, GPT_6_SOL_MODEL, GPT_6_ASTRA_MODEL, GPT_6_LUNA_MODEL, GPT_5_6_SOL_MODEL, GPT_5_6_TERRA_MODEL, GPT_5_6_LUNA_MODEL, "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.2"],
22590
+ claude: Object.keys(CLAUDE_MODEL_MIN_SANDBOX_IMAGE),
22591
+ codex: Object.keys(CODEX_MODEL_MIN_SANDBOX_IMAGE),
22580
22592
  cursor: [
22581
22593
  CLAUDE_FABLE_5_1_MODEL,
22582
22594
  CLAUDE_FABLE_5_MODEL,
@@ -22653,22 +22665,12 @@ function getAgentModelOptions(provider, overrides) {
22653
22665
  if (override?.length) return override;
22654
22666
  if (provider === "claude" || provider === "codex") return DEFAULT_STATIC_AGENT_MODELS[provider];
22655
22667
  if (provider === "cursor") return DEFAULT_CURSOR_MODELS;
22656
- return AGENT_MODELS[provider];
22668
+ return AGENT_MODELS[provider] ?? [];
22657
22669
  }
22658
- var CLAUDE_MODEL_MIN_SANDBOX_IMAGE = {
22659
- [CLAUDE_FABLE_5_1_MODEL]: "replicas-sandbox-2026-09-01-v6",
22660
- [CLAUDE_OPUS_5_5_MODEL]: "replicas-sandbox-2026-09-22-v4",
22661
- [CLAUDE_SONNET_5_5_MODEL]: "replicas-sandbox-2026-09-28-v7"
22662
- };
22663
- var CODEX_MODEL_MIN_SANDBOX_IMAGE = {
22664
- [GPT_6_ASTRA_MODEL]: "replicas-sandbox-2026-09-04-v7",
22665
- [GPT_6_1_SOL_MODEL]: "replicas-sandbox-2026-09-30-v11",
22666
- [GPT_6_SOL_MODEL]: "replicas-sandbox-2026-09-24-v1",
22667
- [GPT_6_LUNA_MODEL]: "replicas-sandbox-2026-09-24-v1"
22668
- };
22669
22670
  var SANDBOX_IMAGE_MODEL_FALLBACKS = {
22670
22671
  [CLAUDE_OPUS_5_5_MODEL]: CLAUDE_OPUS_5_MODEL,
22671
22672
  [CLAUDE_SONNET_5_5_MODEL]: CLAUDE_SONNET_5_MODEL,
22673
+ [CLAUDE_HAIKU_5_5_MODEL]: CLAUDE_HAIKU_4_5_MODEL,
22672
22674
  [GPT_6_1_SOL_MODEL]: GPT_6_SOL_MODEL,
22673
22675
  [GPT_6_SOL_MODEL]: GPT_5_6_SOL_MODEL,
22674
22676
  [GPT_6_ASTRA_MODEL]: GPT_5_6_TERRA_MODEL,
@@ -22725,6 +22727,7 @@ var MODEL_LABELS = {
22725
22727
  "composer-2.5": "Composer 2.5",
22726
22728
  [CLAUDE_OPUS_4_8_MODEL]: "Opus 4.8",
22727
22729
  "claude-opus-4-7": "Opus 4.7",
22730
+ [CLAUDE_HAIKU_5_5_MODEL]: "Haiku 5.5",
22728
22731
  [CLAUDE_HAIKU_4_5_MODEL]: "Haiku 4.5",
22729
22732
  "gemini-3.8-flash": "Gemini 3.8 Flash",
22730
22733
  "gemini-3.1-pro": "Gemini 3.1 Pro",
@@ -22786,7 +22789,7 @@ var quotaLimitKindSchema = external_exports.enum(["rate_limit", "out_of_credits"
22786
22789
  var chatForkInfoSchema = external_exports.object({
22787
22790
  source: external_exports.object({
22788
22791
  chatId: external_exports.string().min(1),
22789
- provider: external_exports.string().transform((provider, ctx) => normalizeLegacyChatProvider(provider) ?? (ctx.addIssue({ code: "custom" }), external_exports.NEVER)),
22792
+ provider: external_exports.enum(VALID_AGENT_PROVIDERS),
22790
22793
  title: external_exports.string()
22791
22794
  }),
22792
22795
  trigger: external_exports.enum(["manual", "auto", "side"]),
@@ -27056,19 +27059,6 @@ var TaskAccumulator = class {
27056
27059
  }
27057
27060
  };
27058
27061
 
27059
- // ../shared/src/display-message/parsers/mcp.ts
27060
- function parseMcpToolName(name) {
27061
- const prefix = "mcp__";
27062
- if (!name.startsWith(prefix)) return null;
27063
- const rest = name.slice(prefix.length);
27064
- const sep = rest.indexOf("__");
27065
- if (sep <= 0) return null;
27066
- const server = rest.slice(0, sep);
27067
- const tool = rest.slice(sep + 2);
27068
- if (!server || !tool) return null;
27069
- return { server, tool };
27070
- }
27071
-
27072
27062
  // ../shared/src/display-message/parsers/claude-parser.ts
27073
27063
  var ABORTED_TERMINAL_REASONS = /* @__PURE__ */ new Set(["aborted_streaming", "aborted_tools"]);
27074
27064
  var COMMAND_TOOL_NAMES = /* @__PURE__ */ new Set(["Bash", "bash", "shell"]);
@@ -27418,48 +27408,6 @@ function parseClaudeEvents(events, parentToolUseId) {
27418
27408
  status: "in_progress",
27419
27409
  timestamp: event.timestamp
27420
27410
  });
27421
- } else if (toolName === "mcp__relay-subagent-tools__spawn_agent") {
27422
- const inputObj = typeof toolInput === "string" ? safeJsonParse(toolInput, {}) : toolInput;
27423
- const provider = typeof inputObj.provider === "string" ? inputObj.provider : "unknown";
27424
- const prompt = typeof inputObj.prompt === "string" ? inputObj.prompt : "";
27425
- const model = typeof inputObj.model === "string" ? inputObj.model : void 0;
27426
- const title = typeof inputObj.title === "string" ? inputObj.title : void 0;
27427
- messages.push(createSubagentMessage(messages.length, event.timestamp, {
27428
- toolUseId,
27429
- description: title || `Relay subagent (${provider})`,
27430
- prompt,
27431
- subagentType: provider,
27432
- model,
27433
- thinkingLevel: isValidThinkingLevel(inputObj.thinking_level) ? inputObj.thinking_level : void 0,
27434
- status: "in_progress",
27435
- nestedEvents: [],
27436
- isChatBased: true
27437
- }));
27438
- } else if (toolName === "mcp__relay-subagent-tools__message_agent") {
27439
- const inputObj = typeof toolInput === "string" ? safeJsonParse(toolInput, {}) : toolInput;
27440
- messages.push({
27441
- id: `subagent-followup-${event.timestamp}-${messages.length}`,
27442
- type: "subagent_followup",
27443
- toolUseId,
27444
- chatId: typeof inputObj.chatId === "string" ? inputObj.chatId : "",
27445
- message: typeof inputObj.message === "string" ? inputObj.message : "",
27446
- model: typeof inputObj.model === "string" ? inputObj.model : void 0,
27447
- thinkingLevel: isValidThinkingLevel(inputObj.thinking_level) ? inputObj.thinking_level : void 0,
27448
- status: "in_progress",
27449
- timestamp: event.timestamp
27450
- });
27451
- } else if (toolName === "mcp__relay-subagent-tools__delete_agent") {
27452
- const inputObj = typeof toolInput === "string" ? safeJsonParse(toolInput, {}) : toolInput;
27453
- const mcp = parseMcpToolName(toolName);
27454
- messages.push({
27455
- id: `toolcall-${event.timestamp}-${messages.length}`,
27456
- type: "tool_call",
27457
- server: mcp?.server ?? "relay-subagent-tools",
27458
- tool: mcp?.tool ?? "delete_agent",
27459
- input: inputObj,
27460
- status: "in_progress",
27461
- timestamp: event.timestamp
27462
- });
27463
27411
  } else {
27464
27412
  messages.push({
27465
27413
  id: `toolcall-${event.timestamp}-${messages.length}`,
@@ -27621,15 +27569,6 @@ function parseClaudeEvents(events, parentToolUseId) {
27621
27569
  } else if (message.type === "subagent") {
27622
27570
  message.output = resultContent;
27623
27571
  message.status = status;
27624
- if (!message.chatId && resultContent) {
27625
- const parsed = safeJsonParse(resultContent, {});
27626
- if (parsed.chatId) {
27627
- message.chatId = parsed.chatId;
27628
- }
27629
- }
27630
- } else if (message.type === "subagent_followup") {
27631
- message.output = resultContent;
27632
- message.status = status;
27633
27572
  }
27634
27573
  });
27635
27574
  for (const message of messages) {
@@ -27642,12 +27581,6 @@ function parseClaudeEvents(events, parentToolUseId) {
27642
27581
  message.subagentType ?? (message.subagentType = toolMessage.subagentType);
27643
27582
  }
27644
27583
  }
27645
- if (message.type !== "subagent_followup") continue;
27646
- const target = messages.find((candidate) => candidate.type === "subagent" && candidate.chatId === message.chatId);
27647
- if (target?.type === "subagent") {
27648
- message.targetTitle = target.description;
27649
- message.targetProvider = target.subagentType;
27650
- }
27651
27584
  }
27652
27585
  const staleIndexes = new Set(supersededUserMessageIndexes);
27653
27586
  for (const streamId of [...completedStreamIds, ...supersededStreamIds]) {
@@ -28086,7 +28019,7 @@ var headlessAgentRequestSchema = external_exports.object({
28086
28019
  });
28087
28020
 
28088
28021
  // ../shared/src/cli-version.ts
28089
- var CLI_VERSION = "0.2.812";
28022
+ var CLI_VERSION = "0.2.814";
28090
28023
 
28091
28024
  // ../shared/src/version.ts
28092
28025
  function compareVersions(v1, v2) {
@@ -30922,14 +30855,6 @@ function formatDisplayMessage(message) {
30922
30855
  console.log(import_chalk16.default.gray(` ${truncate(message.output, 200)}`));
30923
30856
  }
30924
30857
  break;
30925
- case "subagent_followup":
30926
- console.log(import_chalk16.default.magenta(`
30927
- [${time3}] MESSAGE SUBAGENT: ${message.targetTitle ?? message.chatId}`));
30928
- console.log(import_chalk16.default.white(` ${truncate(message.message, 500)}`));
30929
- if (message.output) {
30930
- console.log(import_chalk16.default.gray(` ${truncate(message.output, 200)}`));
30931
- }
30932
- break;
30933
30858
  case "error":
30934
30859
  console.log(import_chalk16.default.red(`
30935
30860
  [${time3}] ERROR:`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.812",
3
+ "version": "0.2.814",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {