replicas-cli 0.2.677 → 0.2.679

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/README.md CHANGED
@@ -45,7 +45,7 @@ Connect to a workspace via SSH.
45
45
  Open a workspace in VS Code via Remote SSH. Omit the argument to pick a workspace with the arrow keys and Enter, or pass a name or ID. Names with spaces work with or without quotes.
46
46
 
47
47
  ### Coding agents
48
- Use `replicas claude-auth` or `replicas codex-auth` to connect Claude Code or Codex credentials. Cursor uses a Cursor API key configured in Coding Agents settings.
48
+ Use `replicas claude-auth` or `replicas codex-auth` to connect subscription credentials. Gemini CLI and Cursor use API keys configured in Coding Agents settings.
49
49
 
50
50
  ## Configuration
51
51
 
package/dist/index.cjs CHANGED
@@ -7694,6 +7694,7 @@ var AGENT = {
7694
7694
  CURSOR: "cursor",
7695
7695
  DEEPSEEK: "deepseek",
7696
7696
  FX: "fx",
7697
+ GEMINI: "gemini",
7697
7698
  KIMI: "kimi",
7698
7699
  MUSE: "muse",
7699
7700
  OPENCODE: "opencode",
@@ -7748,6 +7749,11 @@ var AGENT_PROVIDER_OPTIONS = [
7748
7749
  label: "fx",
7749
7750
  description: "Use fx for tasks"
7750
7751
  },
7752
+ {
7753
+ value: "gemini",
7754
+ label: "Gemini CLI",
7755
+ description: "Use Gemini CLI for tasks"
7756
+ },
7751
7757
  {
7752
7758
  value: "kimi",
7753
7759
  label: "Kimi Code",
@@ -7782,6 +7788,7 @@ var THINKING_LEVELS_BY_AGENT = {
7782
7788
  cursor: STANDARD_THINKING_LEVELS,
7783
7789
  deepseek: STANDARD_THINKING_LEVELS,
7784
7790
  fx: STANDARD_THINKING_LEVELS,
7791
+ gemini: STANDARD_THINKING_LEVELS,
7785
7792
  kimi: STANDARD_THINKING_LEVELS,
7786
7793
  muse: VALID_THINKING_LEVELS.filter((level) => level !== "max" && level !== "ultracode"),
7787
7794
  opencode: STANDARD_THINKING_LEVELS,
@@ -7807,6 +7814,8 @@ function getProviderDisplayName(provider, variant = "short") {
7807
7814
  return variant === "long" ? "DeepSeek Harness" : "DeepSeek";
7808
7815
  case "fx":
7809
7816
  return "fx";
7817
+ case "gemini":
7818
+ return "Gemini";
7810
7819
  case "kimi":
7811
7820
  return variant === "long" ? "Kimi Code" : "Kimi";
7812
7821
  case "muse":
@@ -7860,6 +7869,7 @@ var CREDENTIAL_TYPE = {
7860
7869
  ASTER_API_KEY: "aster_api_key",
7861
7870
  OPENROUTER_API_KEY: "openrouter_api_key",
7862
7871
  AI_GATEWAY_API_KEY: "ai_gateway_api_key",
7872
+ GEMINI_API_KEY: "gemini_api_key",
7863
7873
  MUSE_OAUTH: "muse_oauth",
7864
7874
  MUSE_API_KEY: "muse_api_key"
7865
7875
  };
@@ -7890,6 +7900,9 @@ var AGENT_CREDENTIAL_METHODS_IN_ORDER = {
7890
7900
  [AGENT.FX]: [
7891
7901
  { method: CREDENTIAL_METHOD.AI_GATEWAY, credentialType: CREDENTIAL_TYPE.AI_GATEWAY_API_KEY }
7892
7902
  ],
7903
+ [AGENT.GEMINI]: [
7904
+ { method: CREDENTIAL_METHOD.API_KEY, credentialType: CREDENTIAL_TYPE.GEMINI_API_KEY }
7905
+ ],
7893
7906
  [AGENT.KIMI]: [
7894
7907
  { method: CREDENTIAL_METHOD.AI_GATEWAY, credentialType: CREDENTIAL_TYPE.AI_GATEWAY_API_KEY }
7895
7908
  ],
@@ -22510,6 +22523,7 @@ var OX_ALPHA_MODEL = "stealth/ox-alpha";
22510
22523
  var DEEPSEEK_V4_PRO_MODEL = "deepseek/deepseek-v4-pro-0813";
22511
22524
  var DEEPSEEK_V4_FLASH_MODEL = "deepseek/deepseek-v4-flash-0731";
22512
22525
  var DEFAULT_FX_MODEL = "zai/glm-5.2";
22526
+ var DEFAULT_GEMINI_MODEL = "gemini-3-flash-preview";
22513
22527
  var DEFAULT_KIMI_MODEL = "moonshotai/kimi-k2.6";
22514
22528
  var MUSE_SPARK_1_3_MODEL = "muse-spark-1.3";
22515
22529
  var DEFAULT_MUSE_MODEL = "muse-spark-1.2";
@@ -22613,6 +22627,7 @@ var AGENT_MODELS = {
22613
22627
  ],
22614
22628
  deepseek: prioritizeDeepseekModels(DEFAULT_OPENROUTER_MODELS),
22615
22629
  fx: [DEFAULT_FX_MODEL],
22630
+ gemini: [DEFAULT_GEMINI_MODEL, "gemini-3.1-pro-preview"],
22616
22631
  kimi: [DEFAULT_KIMI_MODEL],
22617
22632
  muse: [MUSE_SPARK_1_3_MODEL, DEFAULT_MUSE_MODEL],
22618
22633
  opencode: [...DEFAULT_OPENROUTER_MODELS, ...ASTER_MODELS],
@@ -22663,6 +22678,8 @@ var MODEL_LABELS = {
22663
22678
  "xiaomi/mimo-v2.5-pro": "MiMo V2.5 Pro via OpenRouter",
22664
22679
  "moonshotai/kimi-k2.6": "Kimi K2.6 via OpenRouter",
22665
22680
  "moonshotai/kimi-k3": "Kimi K3 via OpenRouter",
22681
+ "gemini-3-flash-preview": "Gemini 3 Flash Preview",
22682
+ "gemini-3.1-pro-preview": "Gemini 3.1 Pro Preview",
22666
22683
  [MUSE_SPARK_1_3_MODEL]: "Muse Spark 1.3",
22667
22684
  [DEFAULT_MUSE_MODEL]: "Muse Spark 1.2",
22668
22685
  "meta/muse-spark-1.3": "Muse Spark 1.3 via OpenRouter",
@@ -24715,7 +24732,7 @@ var SENTRY_ABILITY = {
24715
24732
 
24716
24733
  // ../shared/src/slack-response-style.ts
24717
24734
  var SLACK_CONCISE_REPLY_SHAPE = "short and easy to read. Use common, everyday words, simple sentences, and contractions where they sound natural. Avoid jargon, corporate language, and formal words when a plain word works. Start with what happened or what works now, then add only the context, limits, or next step people need. Cut repetition and play-by-play, but keep anything important. Put long logs and file-by-file recaps in the pull request or workspace unless the user asks for them";
24718
- var SLACK_QUOTE_REPLY_GUIDANCE = "Use a short Slack blockquote (`> quoted text`) only when answering a specific earlier message or when the reply would otherwise have an unclear referent. Quote only the relevant line; do not quote the latest message by default, repeat the full request, or add a blockquote when the reply is already unambiguous.";
24735
+ var SLACK_QUOTE_REPLY_GUIDANCE = "Use a short Slack blockquote (`> quoted text`) only when answering a specific earlier message or when the reply would otherwise have an unclear referent. Quote only the relevant line; do not quote the latest message by default, repeat the full request, or add a blockquote when the reply is already unambiguous. Escape the leading `<` in raw Slack mention and control markup such as `<@U\u2026>` and `<!channel>` as `&lt;` before quoting so it cannot notify anyone.";
24719
24736
  var SLACK_BLOCK_KIT_GUIDANCE = "Use Block Kit whenever structure or a link would make the message faster to scan or use. Before composing a structured message, read Slack's live [block catalog](https://docs.slack.dev/reference/block-kit/blocks) and the linked schema for each block you plan to use; do not rely on memory for which blocks exist or their fields. You have broad leeway to use display-only blocks and `actions` with URL buttons, but do not add controls that require an interaction callback. Keep simple replies as plain text, do not add decorative UI or repeat content across blocks, and always keep `text` as a concise, complete fallback for notifications and accessibility.";
24720
24737
  var SLACK_PR_BUTTON_GUIDANCE = 'The first time you share a given pull request or merge request link in a thread \u2014 the message announcing you opened it \u2014 attach a button for it: send `blocks` alongside `text` \u2014 a `section` block holding your message as `mrkdwn`, then an `actions` block with one element per newly shared link, `{"type": "button", "style": "primary", "text": {"type": "plain_text", "text": "View PR"}, "url": "<pr url>", "action_id": "view_pr"}`. Later messages about a pull request you already linked in this thread keep the link in the sentence and get no button, and never re-post a button for a link someone already has. Label it "View MR" for GitLab, and if there are several give each button a unique `action_id` and name its repository in the label ("View PR \xB7 web"). Always keep `text` populated with the same message \u2014 Slack uses it for notifications and fallback \u2014 and keep the link in the sentence too.';
24721
24738
 
@@ -26964,6 +26981,9 @@ function parseAgentEvents(events, agentType) {
26964
26981
  if (agentType === "kimi") {
26965
26982
  return parseAcpEvents(events, "kimi");
26966
26983
  }
26984
+ if (agentType === "gemini") {
26985
+ return parseAcpEvents(events, "gemini");
26986
+ }
26967
26987
  if (agentType === "muse") {
26968
26988
  return parseMuseEvents(events);
26969
26989
  }
@@ -27309,7 +27329,7 @@ var headlessFilesystemAgentResultSchema = external_exports.object({
27309
27329
  });
27310
27330
 
27311
27331
  // ../shared/src/cli-version.ts
27312
- var CLI_VERSION = "0.2.677";
27332
+ var CLI_VERSION = "0.2.679";
27313
27333
 
27314
27334
  // ../shared/src/version.ts
27315
27335
  function compareVersions(v1, v2) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.677",
3
+ "version": "0.2.679",
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": {