replicas-cli 0.2.313 → 0.2.315

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.mjs +148 -122
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -7639,6 +7639,153 @@ var USER_MESSAGE_ID_PAYLOAD_KEY = "replicasMessageId";
7639
7639
  var CODEX_ASP_ITEM_ID_PAYLOAD_KEY = "codexAspItemId";
7640
7640
  var CODEX_QUOTA_STATUS_EVENT_TYPE = "codex-quota-status";
7641
7641
 
7642
+ // ../shared/src/engine/types.ts
7643
+ var DEFAULT_CHAT_TITLES = {
7644
+ claude: "Claude Code",
7645
+ codex: "Codex",
7646
+ cursor: "Cursor",
7647
+ opencode: "Opencode",
7648
+ relay: "Relay"
7649
+ };
7650
+ function getInitialChatId(chats, preferredProvider = "claude") {
7651
+ if (chats.length === 0) return null;
7652
+ const isDefault = (c) => c.title === DEFAULT_CHAT_TITLES[c.provider];
7653
+ const hasActivity = (c) => c.updatedAt > c.createdAt;
7654
+ const mostActive = (list) => list.filter(hasActivity).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))[0] ?? null;
7655
+ const preferred = chats.filter((c) => c.provider === preferredProvider);
7656
+ const others = chats.filter((c) => c.provider !== preferredProvider);
7657
+ return mostActive(preferred)?.id ?? mostActive(others)?.id ?? preferred.find(isDefault)?.id ?? others.find(isDefault)?.id ?? chats[0]?.id ?? null;
7658
+ }
7659
+ var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
7660
+ var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
7661
+ var CLAUDE_FABLE_5_MODEL = "claude-fable-5";
7662
+ var CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8";
7663
+ var CLAUDE_SONNET_5_MODEL = "claude-sonnet-5";
7664
+ var CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5";
7665
+ var CLAUDE_FABLE_5_BEDROCK_MODEL = "anthropic.claude-fable-5";
7666
+ var CLAUDE_OPUS_4_8_BEDROCK_MODEL = "us.anthropic.claude-opus-4-8";
7667
+ var CLAUDE_SONNET_5_BEDROCK_MODEL = "anthropic.claude-sonnet-5";
7668
+ var CLAUDE_HAIKU_4_5_BEDROCK_MODEL = "us.anthropic.claude-haiku-4-5-20251001-v1:0";
7669
+ var DEFAULT_CLAUDE_MODEL = CLAUDE_OPUS_4_8_MODEL;
7670
+ var DEFAULT_CODEX_MODEL = "gpt-5.5";
7671
+ var DEFAULT_OPENCODE_MODEL = "z-ai/glm-5.2";
7672
+ function normalizeClaudeModel(model) {
7673
+ if (model === "opus" || model === CLAUDE_OPUS_1M_MODEL || model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
7674
+ return DEFAULT_CLAUDE_MODEL;
7675
+ }
7676
+ if (model === "fable") {
7677
+ return CLAUDE_FABLE_5_MODEL;
7678
+ }
7679
+ if (model === "sonnet") {
7680
+ return CLAUDE_SONNET_5_MODEL;
7681
+ }
7682
+ if (model === "haiku") {
7683
+ return CLAUDE_HAIKU_4_5_MODEL;
7684
+ }
7685
+ return model;
7686
+ }
7687
+ var CLAUDE_MODEL_CONTEXT_WINDOWS = {
7688
+ [CLAUDE_FABLE_5_MODEL]: 1e6,
7689
+ [CLAUDE_OPUS_4_8_MODEL]: 1e6,
7690
+ [CLAUDE_SONNET_5_MODEL]: 1e6,
7691
+ [CLAUDE_HAIKU_4_5_MODEL]: 2e5,
7692
+ [CLAUDE_FABLE_5_BEDROCK_MODEL]: 1e6,
7693
+ [CLAUDE_OPUS_4_8_BEDROCK_MODEL]: 1e6,
7694
+ [CLAUDE_SONNET_5_BEDROCK_MODEL]: 1e6,
7695
+ [CLAUDE_HAIKU_4_5_BEDROCK_MODEL]: 2e5,
7696
+ "anthropic.claude-opus-4-8": 1e6,
7697
+ "us.anthropic.claude-sonnet-5": 1e6,
7698
+ "anthropic.claude-haiku-4-5": 2e5,
7699
+ "claude-haiku-4-5-20251001": 2e5,
7700
+ "claude-haiku-4-5@20251001": 2e5
7701
+ };
7702
+ var AGENT_MODELS = {
7703
+ claude: [CLAUDE_FABLE_5_MODEL, DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL, CLAUDE_HAIKU_4_5_MODEL],
7704
+ codex: [DEFAULT_CODEX_MODEL, "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex", "gpt-5.2"],
7705
+ cursor: [
7706
+ CLAUDE_FABLE_5_MODEL,
7707
+ CLAUDE_OPUS_4_8_MODEL,
7708
+ "gpt-5.5",
7709
+ "composer-2.5",
7710
+ CLAUDE_SONNET_5_MODEL,
7711
+ "claude-opus-4-7",
7712
+ "gpt-5.4",
7713
+ "gpt-5.4-mini",
7714
+ "gpt-5.4-nano",
7715
+ "gpt-5.3-codex",
7716
+ "gpt-5.2",
7717
+ "gpt-5.2-codex",
7718
+ "gpt-5.1",
7719
+ "gpt-5.1-codex-max",
7720
+ "gpt-5.1-codex-mini",
7721
+ "gpt-5-mini",
7722
+ "gemini-3.1-pro",
7723
+ "gemini-3-flash",
7724
+ "grok-4.3",
7725
+ CLAUDE_HAIKU_4_5_MODEL,
7726
+ "kimi-k2.5"
7727
+ ],
7728
+ opencode: [DEFAULT_OPENCODE_MODEL, "minimax/minimax-m3", "xiaomi/mimo-v2.5-pro", "moonshotai/kimi-k2.6"],
7729
+ relay: [CLAUDE_FABLE_5_MODEL, DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL]
7730
+ };
7731
+ var MODEL_LABELS = {
7732
+ fable: "Fable 5",
7733
+ [CLAUDE_FABLE_5_MODEL]: "Fable 5",
7734
+ sonnet: "Sonnet 5",
7735
+ "claude-sonnet-5": "Sonnet 5",
7736
+ opus: "Opus 4.8",
7737
+ [CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
7738
+ [LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
7739
+ haiku: "Haiku 4.5",
7740
+ [DEFAULT_CODEX_MODEL]: "GPT-5.5",
7741
+ [DEFAULT_OPENCODE_MODEL]: "GLM 5.2 via OpenRouter",
7742
+ "minimax/minimax-m3": "MiniMax M3 via OpenRouter",
7743
+ "xiaomi/mimo-v2.5-pro": "MiMo V2.5 Pro via OpenRouter",
7744
+ "moonshotai/kimi-k2.6": "Kimi K2.6 via OpenRouter",
7745
+ "gpt-5.4": "GPT-5.4",
7746
+ "gpt-5.4-mini": "GPT-5.4 Mini",
7747
+ "gpt-5.4-nano": "GPT-5.4 Nano",
7748
+ "gpt-5.3-codex": "GPT-5.3 Codex",
7749
+ "gpt-5.2": "GPT-5.2",
7750
+ "gpt-5.2-codex": "GPT-5.2 Codex",
7751
+ "gpt-5.1": "GPT-5.1",
7752
+ "gpt-5.1-codex-max": "GPT-5.1 Codex Max",
7753
+ "gpt-5.1-codex-mini": "GPT-5.1 Codex Mini",
7754
+ "gpt-5-mini": "GPT-5 Mini",
7755
+ "composer-2.5": "Composer 2.5",
7756
+ [CLAUDE_OPUS_4_8_MODEL]: "Opus 4.8",
7757
+ "claude-opus-4-7": "Opus 4.7",
7758
+ [CLAUDE_HAIKU_4_5_MODEL]: "Haiku 4.5",
7759
+ "gemini-3.1-pro": "Gemini 3.1 Pro",
7760
+ "gemini-3-flash": "Gemini 3 Flash",
7761
+ "grok-4.3": "Grok 4.3",
7762
+ "kimi-k2.5": "Kimi K2.5"
7763
+ };
7764
+ var MAX_CANVAS_FILE_BYTES = 5 * 1024 * 1024;
7765
+ var CANVAS_KIND_BY_EXTENSION = {
7766
+ ".md": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
7767
+ ".markdown": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
7768
+ ".html": { kind: "html", mimeType: "text/html; charset=utf-8" },
7769
+ ".htm": { kind: "html", mimeType: "text/html; charset=utf-8" },
7770
+ ".png": { kind: "image", mimeType: "image/png" },
7771
+ ".jpg": { kind: "image", mimeType: "image/jpeg" },
7772
+ ".jpeg": { kind: "image", mimeType: "image/jpeg" },
7773
+ ".gif": { kind: "image", mimeType: "image/gif" },
7774
+ ".webp": { kind: "image", mimeType: "image/webp" },
7775
+ ".svg": { kind: "image", mimeType: "image/svg+xml" },
7776
+ ".mp4": { kind: "video", mimeType: "video/mp4" },
7777
+ ".webm": { kind: "video", mimeType: "video/webm" },
7778
+ ".mov": { kind: "video", mimeType: "video/quicktime" },
7779
+ ".mp3": { kind: "audio", mimeType: "audio/mpeg" },
7780
+ ".wav": { kind: "audio", mimeType: "audio/wav" },
7781
+ ".ogg": { kind: "audio", mimeType: "audio/ogg" }
7782
+ };
7783
+ function classifyCanvasFilename(filename) {
7784
+ const idx = filename.lastIndexOf(".");
7785
+ const ext = idx === -1 ? "" : filename.slice(idx).toLowerCase();
7786
+ return CANVAS_KIND_BY_EXTENSION[ext] ?? { kind: "other", mimeType: "application/octet-stream" };
7787
+ }
7788
+
7642
7789
  // ../shared/src/pricing.ts
7643
7790
  var INTEGRATION_SOURCES = ["slack", "linear", "github", "gitlab"];
7644
7791
  var SYSTEMIC_SOURCES = ["api", "automation"];
@@ -9360,7 +9507,7 @@ var HOOK_EXEC_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
9360
9507
  var REPLICAS_CONFIG_FILENAMES = ["replicas.json", "replicas.yaml", "replicas.yml"];
9361
9508
 
9362
9509
  // ../shared/src/cli-version.ts
9363
- var CLI_VERSION = "0.2.313";
9510
+ var CLI_VERSION = "0.2.315";
9364
9511
 
9365
9512
  // ../shared/src/engine/environment.ts
9366
9513
  var DESKTOP_NOVNC_PORT = 6080;
@@ -9372,127 +9519,6 @@ function getDesktopViewerUrl(publicUrl) {
9372
9519
  var DESKTOP_VIEWER_WIDTH = 1920;
9373
9520
  var DESKTOP_VIEWER_HEIGHT = 1080;
9374
9521
 
9375
- // ../shared/src/engine/types.ts
9376
- var DEFAULT_CHAT_TITLES = {
9377
- claude: "Claude Code",
9378
- codex: "Codex",
9379
- cursor: "Cursor",
9380
- opencode: "Opencode",
9381
- relay: "Relay"
9382
- };
9383
- function getInitialChatId(chats, preferredProvider = "claude") {
9384
- if (chats.length === 0) return null;
9385
- const isDefault = (c) => c.title === DEFAULT_CHAT_TITLES[c.provider];
9386
- const hasActivity = (c) => c.updatedAt > c.createdAt;
9387
- const mostActive = (list) => list.filter(hasActivity).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt))[0] ?? null;
9388
- const preferred = chats.filter((c) => c.provider === preferredProvider);
9389
- const others = chats.filter((c) => c.provider !== preferredProvider);
9390
- return mostActive(preferred)?.id ?? mostActive(others)?.id ?? preferred.find(isDefault)?.id ?? others.find(isDefault)?.id ?? chats[0]?.id ?? null;
9391
- }
9392
- var CLAUDE_OPUS_1M_MODEL = "opus[1m]";
9393
- var LEGACY_CLAUDE_OPUS_1M_MODEL = "opus-1m";
9394
- var CLAUDE_OPUS_4_8_MODEL = "claude-opus-4-8";
9395
- var CLAUDE_SONNET_5_MODEL = "claude-sonnet-5";
9396
- var CLAUDE_HAIKU_4_5_MODEL = "claude-haiku-4-5";
9397
- var DEFAULT_CLAUDE_MODEL = CLAUDE_OPUS_4_8_MODEL;
9398
- var DEFAULT_CODEX_MODEL = "gpt-5.5";
9399
- var DEFAULT_OPENCODE_MODEL = "z-ai/glm-5.2";
9400
- function normalizeClaudeModel(model) {
9401
- if (model === "opus" || model === CLAUDE_OPUS_1M_MODEL || model === LEGACY_CLAUDE_OPUS_1M_MODEL) {
9402
- return DEFAULT_CLAUDE_MODEL;
9403
- }
9404
- if (model === "sonnet") {
9405
- return CLAUDE_SONNET_5_MODEL;
9406
- }
9407
- if (model === "haiku") {
9408
- return CLAUDE_HAIKU_4_5_MODEL;
9409
- }
9410
- return model;
9411
- }
9412
- var AGENT_MODELS = {
9413
- claude: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL, CLAUDE_HAIKU_4_5_MODEL],
9414
- codex: [DEFAULT_CODEX_MODEL, "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex", "gpt-5.2"],
9415
- cursor: [
9416
- CLAUDE_OPUS_4_8_MODEL,
9417
- "gpt-5.5",
9418
- "composer-2.5",
9419
- CLAUDE_SONNET_5_MODEL,
9420
- "claude-opus-4-7",
9421
- "gpt-5.4",
9422
- "gpt-5.4-mini",
9423
- "gpt-5.4-nano",
9424
- "gpt-5.3-codex",
9425
- "gpt-5.2",
9426
- "gpt-5.2-codex",
9427
- "gpt-5.1",
9428
- "gpt-5.1-codex-max",
9429
- "gpt-5.1-codex-mini",
9430
- "gpt-5-mini",
9431
- "gemini-3.1-pro",
9432
- "gemini-3-flash",
9433
- "grok-4.3",
9434
- CLAUDE_HAIKU_4_5_MODEL,
9435
- "kimi-k2.5"
9436
- ],
9437
- opencode: [DEFAULT_OPENCODE_MODEL, "minimax/minimax-m3", "xiaomi/mimo-v2.5-pro", "moonshotai/kimi-k2.6"],
9438
- relay: [DEFAULT_CLAUDE_MODEL, CLAUDE_SONNET_5_MODEL]
9439
- };
9440
- var MODEL_LABELS = {
9441
- sonnet: "Sonnet 5",
9442
- "claude-sonnet-5": "Sonnet 5",
9443
- opus: "Opus 4.8",
9444
- [CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
9445
- [LEGACY_CLAUDE_OPUS_1M_MODEL]: "Opus 4.8 (1M)",
9446
- haiku: "Haiku 4.5",
9447
- [DEFAULT_CODEX_MODEL]: "GPT-5.5",
9448
- [DEFAULT_OPENCODE_MODEL]: "GLM 5.2 via OpenRouter",
9449
- "minimax/minimax-m3": "MiniMax M3 via OpenRouter",
9450
- "xiaomi/mimo-v2.5-pro": "MiMo V2.5 Pro via OpenRouter",
9451
- "moonshotai/kimi-k2.6": "Kimi K2.6 via OpenRouter",
9452
- "gpt-5.4": "GPT-5.4",
9453
- "gpt-5.4-mini": "GPT-5.4 Mini",
9454
- "gpt-5.4-nano": "GPT-5.4 Nano",
9455
- "gpt-5.3-codex": "GPT-5.3 Codex",
9456
- "gpt-5.2": "GPT-5.2",
9457
- "gpt-5.2-codex": "GPT-5.2 Codex",
9458
- "gpt-5.1": "GPT-5.1",
9459
- "gpt-5.1-codex-max": "GPT-5.1 Codex Max",
9460
- "gpt-5.1-codex-mini": "GPT-5.1 Codex Mini",
9461
- "gpt-5-mini": "GPT-5 Mini",
9462
- "composer-2.5": "Composer 2.5",
9463
- [CLAUDE_OPUS_4_8_MODEL]: "Opus 4.8",
9464
- "claude-opus-4-7": "Opus 4.7",
9465
- [CLAUDE_HAIKU_4_5_MODEL]: "Haiku 4.5",
9466
- "gemini-3.1-pro": "Gemini 3.1 Pro",
9467
- "gemini-3-flash": "Gemini 3 Flash",
9468
- "grok-4.3": "Grok 4.3",
9469
- "kimi-k2.5": "Kimi K2.5"
9470
- };
9471
- var MAX_CANVAS_FILE_BYTES = 5 * 1024 * 1024;
9472
- var CANVAS_KIND_BY_EXTENSION = {
9473
- ".md": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
9474
- ".markdown": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
9475
- ".html": { kind: "html", mimeType: "text/html; charset=utf-8" },
9476
- ".htm": { kind: "html", mimeType: "text/html; charset=utf-8" },
9477
- ".png": { kind: "image", mimeType: "image/png" },
9478
- ".jpg": { kind: "image", mimeType: "image/jpeg" },
9479
- ".jpeg": { kind: "image", mimeType: "image/jpeg" },
9480
- ".gif": { kind: "image", mimeType: "image/gif" },
9481
- ".webp": { kind: "image", mimeType: "image/webp" },
9482
- ".svg": { kind: "image", mimeType: "image/svg+xml" },
9483
- ".mp4": { kind: "video", mimeType: "video/mp4" },
9484
- ".webm": { kind: "video", mimeType: "video/webm" },
9485
- ".mov": { kind: "video", mimeType: "video/quicktime" },
9486
- ".mp3": { kind: "audio", mimeType: "audio/mpeg" },
9487
- ".wav": { kind: "audio", mimeType: "audio/wav" },
9488
- ".ogg": { kind: "audio", mimeType: "audio/ogg" }
9489
- };
9490
- function classifyCanvasFilename(filename) {
9491
- const idx = filename.lastIndexOf(".");
9492
- const ext = idx === -1 ? "" : filename.slice(idx).toLowerCase();
9493
- return CANVAS_KIND_BY_EXTENSION[ext] ?? { kind: "other", mimeType: "application/octet-stream" };
9494
- }
9495
-
9496
9522
  // ../shared/src/engine/v1.ts
9497
9523
  var MERGED_MESSAGE_SEPARATOR = "\n\n<!-- replicas:merged -->\n\n";
9498
9524
  function normalizeCodexAspTranscriptStatus(status, failed = false) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.313",
3
+ "version": "0.2.315",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.mjs",
6
6
  "bin": {