replicas-cli 0.2.222 → 0.2.224

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 +80 -63
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -8933,7 +8933,7 @@ var HOOK_EXEC_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
8933
8933
  var REPLICAS_CONFIG_FILENAMES = ["replicas.json", "replicas.yaml", "replicas.yml"];
8934
8934
 
8935
8935
  // ../shared/src/cli-version.ts
8936
- var CLI_VERSION = "0.2.222";
8936
+ var CLI_VERSION = "0.2.224";
8937
8937
 
8938
8938
  // ../shared/src/engine/environment.ts
8939
8939
  var DESKTOP_NOVNC_PORT = 6080;
@@ -8991,6 +8991,29 @@ var MODEL_LABELS = {
8991
8991
  "gpt-5-codex": "GPT-5 Codex",
8992
8992
  "gpt-5": "GPT-5"
8993
8993
  };
8994
+ var CANVAS_KIND_BY_EXTENSION = {
8995
+ ".md": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
8996
+ ".markdown": { kind: "markdown", mimeType: "text/markdown; charset=utf-8" },
8997
+ ".html": { kind: "html", mimeType: "text/html; charset=utf-8" },
8998
+ ".htm": { kind: "html", mimeType: "text/html; charset=utf-8" },
8999
+ ".png": { kind: "image", mimeType: "image/png" },
9000
+ ".jpg": { kind: "image", mimeType: "image/jpeg" },
9001
+ ".jpeg": { kind: "image", mimeType: "image/jpeg" },
9002
+ ".gif": { kind: "image", mimeType: "image/gif" },
9003
+ ".webp": { kind: "image", mimeType: "image/webp" },
9004
+ ".svg": { kind: "image", mimeType: "image/svg+xml" },
9005
+ ".mp4": { kind: "video", mimeType: "video/mp4" },
9006
+ ".webm": { kind: "video", mimeType: "video/webm" },
9007
+ ".mov": { kind: "video", mimeType: "video/quicktime" },
9008
+ ".mp3": { kind: "audio", mimeType: "audio/mpeg" },
9009
+ ".wav": { kind: "audio", mimeType: "audio/wav" },
9010
+ ".ogg": { kind: "audio", mimeType: "audio/ogg" }
9011
+ };
9012
+ function classifyCanvasFilename(filename) {
9013
+ const idx = filename.lastIndexOf(".");
9014
+ const ext = idx === -1 ? "" : filename.slice(idx).toLowerCase();
9015
+ return CANVAS_KIND_BY_EXTENSION[ext] ?? { kind: "other", mimeType: "application/octet-stream" };
9016
+ }
8994
9017
 
8995
9018
  // ../shared/src/engine/v1.ts
8996
9019
  var MERGED_MESSAGE_SEPARATOR = "\n\n<!-- replicas:merged -->\n\n";
@@ -10347,8 +10370,8 @@ var SOURCE_CONFIG = {
10347
10370
  github_pr_existing_general: { label: "GitHub PR", color: "#8b949e" },
10348
10371
  slack_task: { label: "Slack", color: "#BF6CC2" },
10349
10372
  automation_triggered: { label: "Automation", color: "#f59e0b" },
10350
- plan_quote: { label: "Plan", color: "#66bb6a" },
10351
- inline_diff_comments: { label: "Diff Comments", color: "#66bb6a" },
10373
+ plan_quote: { label: "Plan", color: "#3eeba3" },
10374
+ inline_diff_comments: { label: "Diff Comments", color: "#3eeba3" },
10352
10375
  merged: { label: "Bundled", color: "#a3a3a3" }
10353
10376
  };
10354
10377
 
@@ -13000,17 +13023,11 @@ async function previewRemoveCommand(workspaceId, options) {
13000
13023
  import fs4 from "fs";
13001
13024
  import path5 from "path";
13002
13025
  var MONOLITH_URL4 = process.env.MONOLITH_URL || process.env.REPLICAS_MONOLITH_URL || "https://api.tryreplicas.com";
13003
- var EXT_INFO = {
13004
- png: { kind: MEDIA_KIND.IMAGE, contentType: "image/png" },
13005
- jpg: { kind: MEDIA_KIND.IMAGE, contentType: "image/jpeg" },
13006
- jpeg: { kind: MEDIA_KIND.IMAGE, contentType: "image/jpeg" },
13007
- webp: { kind: MEDIA_KIND.IMAGE, contentType: "image/webp" },
13008
- svg: { kind: MEDIA_KIND.IMAGE, contentType: "image/svg+xml" },
13009
- mp4: { kind: MEDIA_KIND.VIDEO, contentType: "video/mp4" },
13010
- webm: { kind: MEDIA_KIND.VIDEO, contentType: "video/webm" },
13011
- mp3: { kind: MEDIA_KIND.AUDIO, contentType: "audio/mpeg" },
13012
- wav: { kind: MEDIA_KIND.AUDIO, contentType: "audio/wav" }
13013
- };
13026
+ function mediaInfo(ext) {
13027
+ const { kind, mimeType } = classifyCanvasFilename(`.${ext}`);
13028
+ if (kind !== "image" && kind !== "video" && kind !== "audio") return void 0;
13029
+ return { kind, contentType: mimeType };
13030
+ }
13014
13031
  function resolveKind(ext, override) {
13015
13032
  if (override) {
13016
13033
  if (!MEDIA_KINDS.includes(override)) {
@@ -13018,7 +13035,7 @@ function resolveKind(ext, override) {
13018
13035
  }
13019
13036
  return override;
13020
13037
  }
13021
- const inferred = EXT_INFO[ext]?.kind;
13038
+ const inferred = mediaInfo(ext)?.kind;
13022
13039
  if (!inferred) {
13023
13040
  throw new Error(`Cannot infer kind from extension '.${ext}'. Pass --kind explicitly.`);
13024
13041
  }
@@ -13039,7 +13056,7 @@ async function uploadOne(filePath, options) {
13039
13056
  const fileName = path5.basename(absPath);
13040
13057
  const ext = path5.extname(absPath).slice(1).toLowerCase();
13041
13058
  const kind = resolveKind(ext, options.kind);
13042
- const contentType = EXT_INFO[ext]?.contentType ?? "application/octet-stream";
13059
+ const contentType = mediaInfo(ext)?.contentType ?? "application/octet-stream";
13043
13060
  const form = new FormData();
13044
13061
  form.append("file", new Blob([fs4.readFileSync(absPath)], { type: contentType }), fileName);
13045
13062
  form.append("kind", kind);
@@ -13970,7 +13987,7 @@ function StatusBar({ focusPanel, viewingDiff, hasDiffAvailable }) {
13970
13987
  justifyContent: "space-between",
13971
13988
  width: "100%",
13972
13989
  children: [
13973
- /* @__PURE__ */ jsx("text", { children: /* @__PURE__ */ jsx("span", { fg: "#66bb6a", children: /* @__PURE__ */ jsx("strong", { children: "Replicas" }) }) }),
13990
+ /* @__PURE__ */ jsx("text", { children: /* @__PURE__ */ jsx("span", { fg: "#3eeba3", children: /* @__PURE__ */ jsx("strong", { children: "Replicas" }) }) }),
13974
13991
  /* @__PURE__ */ jsxs("text", { children: [
13975
13992
  /* @__PURE__ */ jsxs("span", { fg: "#555555", children: [
13976
13993
  hints,
@@ -14210,7 +14227,7 @@ function WorkspaceSidebar({
14210
14227
  width: 28,
14211
14228
  border: true,
14212
14229
  borderStyle: "rounded",
14213
- borderColor: focused ? "#66bb6a" : "#333333",
14230
+ borderColor: focused ? "#3eeba3" : "#333333",
14214
14231
  title: "Workspaces",
14215
14232
  titleAlignment: "center",
14216
14233
  flexDirection: "column",
@@ -14249,8 +14266,8 @@ function WorkspaceSidebar({
14249
14266
  const isSelected = item.workspaceId === selectedWorkspaceId;
14250
14267
  const isConfirming = confirmDelete === item.workspaceId;
14251
14268
  const dot = item.status === "active" ? "\u25CF" : item.status === "preparing" ? "\u25CC" : "\u25CB";
14252
- const dotColor = item.status === "active" ? "#66bb6a" : item.status === "preparing" ? "#ffaa00" : "#666666";
14253
- const nameColor = isSelected ? "#66bb6a" : "#cccccc";
14269
+ const dotColor = item.status === "active" ? "#3eeba3" : item.status === "preparing" ? "#ffaa00" : "#666666";
14270
+ const nameColor = isSelected ? "#3eeba3" : "#cccccc";
14254
14271
  const itemBg = isConfirming ? "#331111" : isCursor ? "#1a1a1a" : isSelected ? "#0a1a0a" : "#0a0a0a";
14255
14272
  if (isConfirming) {
14256
14273
  return /* @__PURE__ */ jsxs2("box", { height: 1, backgroundColor: "#331111", paddingX: 1, flexDirection: "row", gap: 1, children: [
@@ -14258,7 +14275,7 @@ function WorkspaceSidebar({
14258
14275
  /* @__PURE__ */ jsx2("box", { onMouseDown: () => {
14259
14276
  onDeleteWorkspace(item.workspaceId);
14260
14277
  setConfirmDelete(null);
14261
- }, children: /* @__PURE__ */ jsx2("text", { children: /* @__PURE__ */ jsx2("span", { fg: "#66bb6a", children: "[y]" }) }) }),
14278
+ }, children: /* @__PURE__ */ jsx2("text", { children: /* @__PURE__ */ jsx2("span", { fg: "#3eeba3", children: "[y]" }) }) }),
14262
14279
  /* @__PURE__ */ jsx2("box", { onMouseDown: () => setConfirmDelete(null), children: /* @__PURE__ */ jsx2("text", { children: /* @__PURE__ */ jsx2("span", { fg: "#ff4444", children: "[n]" }) }) })
14263
14280
  ] }, `w-${item.workspaceId}`);
14264
14281
  }
@@ -14294,7 +14311,7 @@ function WorkspaceSidebar({
14294
14311
  paddingX: 1,
14295
14312
  onMouseDown: () => handleItemClick(globalIndex),
14296
14313
  children: /* @__PURE__ */ jsxs2("text", { children: [
14297
- /* @__PURE__ */ jsx2("span", { fg: isCursor ? "#66bb6a" : "#444444", children: " + " }),
14314
+ /* @__PURE__ */ jsx2("span", { fg: isCursor ? "#3eeba3" : "#444444", children: " + " }),
14298
14315
  /* @__PURE__ */ jsx2("span", { fg: isCursor ? "#888888" : "#333333", children: "New workspace" })
14299
14316
  ] })
14300
14317
  },
@@ -14323,11 +14340,11 @@ import { useState as useState5, useMemo as useMemo4 } from "react";
14323
14340
  import "opentui-spinner/react";
14324
14341
  import { createPulse } from "opentui-spinner";
14325
14342
  import { jsx as jsx3, jsxs as jsxs3 } from "@opentui/react/jsx-runtime";
14326
- var thinkingColor = createPulse(["#66bb6a", "#4caf50", "#2e7d32"], 0.5);
14343
+ var thinkingColor = createPulse(["#3eeba3", "#2ca774", "#1c6a49"], 0.5);
14327
14344
  function SpinnerLabel({ color, label }) {
14328
14345
  return /* @__PURE__ */ jsxs3("box", { flexDirection: "row", gap: 1, children: [
14329
14346
  /* @__PURE__ */ jsx3("spinner", { name: "dots", color: color ?? thinkingColor, interval: 80 }),
14330
- label && /* @__PURE__ */ jsx3("text", { children: /* @__PURE__ */ jsx3("span", { fg: color ?? "#66bb6a", children: label }) })
14347
+ label && /* @__PURE__ */ jsx3("text", { children: /* @__PURE__ */ jsx3("span", { fg: color ?? "#3eeba3", children: label }) })
14331
14348
  ] });
14332
14349
  }
14333
14350
 
@@ -14343,14 +14360,14 @@ var sharedSyntaxStyle = null;
14343
14360
  function getSyntaxStyle() {
14344
14361
  if (!sharedSyntaxStyle) {
14345
14362
  sharedSyntaxStyle = SyntaxStyle.fromTheme([
14346
- { scope: ["markup.heading", "markup.heading.1", "markup.heading.2", "markup.heading.3"], style: { foreground: "#66bb6a", bold: true } },
14363
+ { scope: ["markup.heading", "markup.heading.1", "markup.heading.2", "markup.heading.3"], style: { foreground: "#3eeba3", bold: true } },
14347
14364
  { scope: ["markup.bold", "markup.strong"], style: { foreground: "#ffffff", bold: true } },
14348
14365
  { scope: ["markup.italic", "markup.emphasis"], style: { foreground: "#e0e0e0", italic: true } },
14349
14366
  { scope: ["markup.link"], style: { foreground: "#7dcfff", underline: true } },
14350
14367
  { scope: ["markup.link.url"], style: { foreground: "#7dcfff", underline: true } },
14351
- { scope: ["markup.link.text"], style: { foreground: "#66bb6a", underline: true } },
14352
- { scope: ["markup.link.label"], style: { foreground: "#66bb6a", underline: true } },
14353
- { scope: ["markup.list"], style: { foreground: "#66bb6a" } },
14368
+ { scope: ["markup.link.text"], style: { foreground: "#3eeba3", underline: true } },
14369
+ { scope: ["markup.link.label"], style: { foreground: "#3eeba3", underline: true } },
14370
+ { scope: ["markup.list"], style: { foreground: "#3eeba3" } },
14354
14371
  { scope: ["markup.quote"], style: { foreground: "#888888", italic: true } },
14355
14372
  { scope: ["markup.raw", "markup.raw.block"], style: { foreground: "#bb9af7" } },
14356
14373
  { scope: ["markup.raw.inline"], style: { foreground: "#bb9af7", background: "#1a1a2e" } },
@@ -14456,7 +14473,7 @@ function diffProps(filePath) {
14456
14473
  addedBg: "#0d2b0d",
14457
14474
  removedBg: "#2b0d0d",
14458
14475
  contextBg: "#0a0a0a",
14459
- addedSignColor: "#66bb6a",
14476
+ addedSignColor: "#3eeba3",
14460
14477
  removedSignColor: "#ff4444",
14461
14478
  lineNumberFg: "#555555",
14462
14479
  lineNumberBg: "#0a0a0a",
@@ -14706,8 +14723,8 @@ function DiffViewer({ diff, repoName, focused }) {
14706
14723
  flexShrink: 0,
14707
14724
  children: [
14708
14725
  /* @__PURE__ */ jsx4("box", { paddingX: 1, flexShrink: 0, height: 1, children: /* @__PURE__ */ jsxs4("text", { children: [
14709
- /* @__PURE__ */ jsx4("span", { fg: filesPaneActive ? "#66bb6a" : "#333333", children: filesPaneActive ? "\u25B8 " : " " }),
14710
- /* @__PURE__ */ jsx4("span", { fg: filesPaneActive ? "#66bb6a" : "#888888", children: filesPaneActive ? /* @__PURE__ */ jsxs4("strong", { children: [
14726
+ /* @__PURE__ */ jsx4("span", { fg: filesPaneActive ? "#3eeba3" : "#333333", children: filesPaneActive ? "\u25B8 " : " " }),
14727
+ /* @__PURE__ */ jsx4("span", { fg: filesPaneActive ? "#3eeba3" : "#888888", children: filesPaneActive ? /* @__PURE__ */ jsxs4("strong", { children: [
14711
14728
  files.length,
14712
14729
  " ",
14713
14730
  files.length === 1 ? "file" : "files",
@@ -14752,7 +14769,7 @@ function DiffViewer({ diff, repoName, focused }) {
14752
14769
  const removed = node.removed ?? 0;
14753
14770
  const addedPart = added > 0 ? `+${added}` : "";
14754
14771
  const removedPart = removed > 0 ? `-${removed}` : "";
14755
- const bubbleColor = added > 0 && removed > 0 ? "#ffaa00" : removed > 0 ? "#ff4444" : "#66bb6a";
14772
+ const bubbleColor = added > 0 && removed > 0 ? "#ffaa00" : removed > 0 ? "#ff4444" : "#3eeba3";
14756
14773
  const overhead = indent.length + 2 + statsColumnWidth + 1;
14757
14774
  const nameMax = Math.max(1, usable - overhead);
14758
14775
  const displayName = truncateName(node.name, nameMax);
@@ -14774,10 +14791,10 @@ function DiffViewer({ diff, repoName, focused }) {
14774
14791
  "\u25CF",
14775
14792
  " "
14776
14793
  ] }),
14777
- /* @__PURE__ */ jsx4("span", { fg: isSelectedFile || isCursor ? "#66bb6a" : "#cccccc", children: displayName })
14794
+ /* @__PURE__ */ jsx4("span", { fg: isSelectedFile || isCursor ? "#3eeba3" : "#cccccc", children: displayName })
14778
14795
  ] }),
14779
14796
  /* @__PURE__ */ jsx4("box", { width: statsColumnWidth, flexShrink: 0, justifyContent: "flex-end", flexDirection: "row", children: /* @__PURE__ */ jsxs4("text", { children: [
14780
- addedPart && /* @__PURE__ */ jsx4("span", { fg: "#66bb6a", children: addedPart }),
14797
+ addedPart && /* @__PURE__ */ jsx4("span", { fg: "#3eeba3", children: addedPart }),
14781
14798
  addedPart && removedPart && /* @__PURE__ */ jsx4("span", { fg: "#444444", children: " " }),
14782
14799
  removedPart && /* @__PURE__ */ jsx4("span", { fg: "#ff4444", children: removedPart })
14783
14800
  ] }) })
@@ -14794,7 +14811,7 @@ function DiffViewer({ diff, repoName, focused }) {
14794
14811
  /* @__PURE__ */ jsxs4("box", { flexDirection: "row", justifyContent: "space-between", height: 1, children: [
14795
14812
  /* @__PURE__ */ jsxs4("text", { children: [
14796
14813
  /* @__PURE__ */ jsx4("span", { fg: "#ffffff", children: /* @__PURE__ */ jsx4("strong", { children: repoName }) }),
14797
- totalAdded > 0 && /* @__PURE__ */ jsxs4("span", { fg: "#66bb6a", children: [
14814
+ totalAdded > 0 && /* @__PURE__ */ jsxs4("span", { fg: "#3eeba3", children: [
14798
14815
  " +",
14799
14816
  totalAdded
14800
14817
  ] }),
@@ -14811,14 +14828,14 @@ function DiffViewer({ diff, repoName, focused }) {
14811
14828
  ] })
14812
14829
  ] }),
14813
14830
  /* @__PURE__ */ jsx4("box", { flexDirection: "row", height: 1, backgroundColor: "#0d0d0d", paddingX: 1, children: /* @__PURE__ */ jsxs4("text", { children: [
14814
- /* @__PURE__ */ jsx4("span", { fg: diffPaneActive ? "#66bb6a" : "#444444", children: diffPaneActive ? "\u25B8 " : " " }),
14831
+ /* @__PURE__ */ jsx4("span", { fg: diffPaneActive ? "#3eeba3" : "#444444", children: diffPaneActive ? "\u25B8 " : " " }),
14815
14832
  (() => {
14816
14833
  const lastSlash = selected.path.lastIndexOf("/");
14817
14834
  const dir = lastSlash >= 0 ? selected.path.slice(0, lastSlash + 1) : "";
14818
14835
  const base = lastSlash >= 0 ? selected.path.slice(lastSlash + 1) : selected.path;
14819
14836
  return /* @__PURE__ */ jsxs4(Fragment, { children: [
14820
14837
  dir && /* @__PURE__ */ jsx4("span", { fg: "#666666", children: dir }),
14821
- /* @__PURE__ */ jsx4("span", { fg: diffPaneActive ? "#66bb6a" : "#ffffff", children: /* @__PURE__ */ jsx4("strong", { children: base }) })
14838
+ /* @__PURE__ */ jsx4("span", { fg: diffPaneActive ? "#3eeba3" : "#ffffff", children: /* @__PURE__ */ jsx4("strong", { children: base }) })
14822
14839
  ] });
14823
14840
  })()
14824
14841
  ] }) })
@@ -15049,7 +15066,7 @@ function truncate4(text, maxLen) {
15049
15066
  return text.length > maxLen ? text.slice(0, maxLen - 1) + "\u2026" : text;
15050
15067
  }
15051
15068
  function StatusIcon({ status }) {
15052
- if (status === "completed") return /* @__PURE__ */ jsxs6("span", { fg: "#66bb6a", children: [
15069
+ if (status === "completed") return /* @__PURE__ */ jsxs6("span", { fg: "#3eeba3", children: [
15053
15070
  " ",
15054
15071
  "\u2713"
15055
15072
  ] });
@@ -15115,7 +15132,7 @@ function ExpandableAction({
15115
15132
  ] });
15116
15133
  }
15117
15134
  var CHANGE_STYLE = {
15118
- add: { color: "#66bb6a", sign: "+" },
15135
+ add: { color: "#3eeba3", sign: "+" },
15119
15136
  delete: { color: "#ff4444", sign: "-" }
15120
15137
  };
15121
15138
  var DEFAULT_CHANGE_STYLE = { color: "#ffaa00", sign: "~" };
@@ -15150,7 +15167,7 @@ function PatchOperation({ op, defaultExpanded = false }) {
15150
15167
  stats.removed
15151
15168
  ] }),
15152
15169
  stats.removed > 0 && stats.added > 0 && /* @__PURE__ */ jsx6("span", { fg: "#444444", children: " " }),
15153
- stats.added > 0 && /* @__PURE__ */ jsxs6("span", { fg: "#66bb6a", children: [
15170
+ stats.added > 0 && /* @__PURE__ */ jsxs6("span", { fg: "#3eeba3", children: [
15154
15171
  "+",
15155
15172
  stats.added
15156
15173
  ] })
@@ -15175,7 +15192,7 @@ function UserMessageContent({ content }) {
15175
15192
  paddingY: 1,
15176
15193
  marginX: 1,
15177
15194
  children: isStructuredPrompt(parsed) ? /* @__PURE__ */ jsx6(StructuredUserMessage, { parsed }) : /* @__PURE__ */ jsxs6(Fragment3, { children: [
15178
- /* @__PURE__ */ jsx6("text", { children: /* @__PURE__ */ jsx6("span", { fg: "#66bb6a", children: /* @__PURE__ */ jsx6("strong", { children: "You" }) }) }),
15195
+ /* @__PURE__ */ jsx6("text", { children: /* @__PURE__ */ jsx6("span", { fg: "#3eeba3", children: /* @__PURE__ */ jsx6("strong", { children: "You" }) }) }),
15179
15196
  /* @__PURE__ */ jsx6("text", { fg: "#ffffff", selectable: true, children: content })
15180
15197
  ] })
15181
15198
  }
@@ -15191,7 +15208,7 @@ function ChatMessage({ message, provider }) {
15191
15208
  }
15192
15209
  case "agent":
15193
15210
  return /* @__PURE__ */ jsxs6("box", { flexDirection: "column", paddingX: 1, children: [
15194
- /* @__PURE__ */ jsx6("text", { children: /* @__PURE__ */ jsx6("span", { fg: "#66bb6a", children: /* @__PURE__ */ jsx6("strong", { children: AGENT_LABELS[provider] }) }) }),
15211
+ /* @__PURE__ */ jsx6("text", { children: /* @__PURE__ */ jsx6("span", { fg: "#3eeba3", children: /* @__PURE__ */ jsx6("strong", { children: AGENT_LABELS[provider] }) }) }),
15195
15212
  /* @__PURE__ */ jsx6(
15196
15213
  "markdown",
15197
15214
  {
@@ -15251,7 +15268,7 @@ function ChatMessage({ message, provider }) {
15251
15268
  ")"
15252
15269
  ] }) }) }),
15253
15270
  message.items.map((item, i) => /* @__PURE__ */ jsxs6("text", { children: [
15254
- /* @__PURE__ */ jsx6("span", { fg: item.completed ? "#66bb6a" : "#555555", children: item.completed ? " \u2611" : " \u2610" }),
15271
+ /* @__PURE__ */ jsx6("span", { fg: item.completed ? "#3eeba3" : "#555555", children: item.completed ? " \u2611" : " \u2610" }),
15255
15272
  /* @__PURE__ */ jsxs6("span", { fg: "#ffffff", children: [
15256
15273
  " ",
15257
15274
  item.text
@@ -15284,7 +15301,7 @@ var textareaKeyBindings = [
15284
15301
  { name: "return", meta: true, action: "newline" }
15285
15302
  ];
15286
15303
  var MODE_COLORS = {
15287
- build: { border: "#66bb6a", text: "#66bb6a" },
15304
+ build: { border: "#3eeba3", text: "#3eeba3" },
15288
15305
  plan: { border: "#d97706", text: "#d97706" }
15289
15306
  };
15290
15307
  function ChatArea({
@@ -15362,7 +15379,7 @@ function ChatArea({
15362
15379
  flexGrow: 1,
15363
15380
  border: true,
15364
15381
  borderStyle: "rounded",
15365
- borderColor: anyFocused ? "#66bb6a" : "#333333",
15382
+ borderColor: anyFocused ? "#3eeba3" : "#333333",
15366
15383
  title: "Chat",
15367
15384
  titleAlignment: "center",
15368
15385
  flexDirection: "column",
@@ -15375,7 +15392,7 @@ function ChatArea({
15375
15392
  paddingX: 1,
15376
15393
  marginX: 1,
15377
15394
  border: true,
15378
- borderColor: tabsFocused ? "#66bb6a" : "#333333",
15395
+ borderColor: tabsFocused ? "#3eeba3" : "#333333",
15379
15396
  backgroundColor: "#000000",
15380
15397
  flexDirection: "row",
15381
15398
  gap: 1,
@@ -15575,7 +15592,7 @@ var AUTH_METHOD_LABELS = {
15575
15592
  };
15576
15593
  function StatusDot({ status }) {
15577
15594
  if (status === true || status === "yes") {
15578
- return /* @__PURE__ */ jsx8("span", { fg: "#66bb6a", children: "\u2713" });
15595
+ return /* @__PURE__ */ jsx8("span", { fg: "#3eeba3", children: "\u2713" });
15579
15596
  }
15580
15597
  if (status === false || status === "no") {
15581
15598
  return /* @__PURE__ */ jsx8("span", { fg: "#ff4444", children: "\u2717" });
@@ -15628,7 +15645,7 @@ function InteractiveRow({ id, label, highlighted, disabled, onClick }) {
15628
15645
  paddingX: 1,
15629
15646
  backgroundColor: highlighted ? "#1a2a1a" : "#111111",
15630
15647
  onMouseDown: onClick,
15631
- children: /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: highlighted ? "#66bb6a" : "#7dcfff", children: label }) })
15648
+ children: /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: highlighted ? "#3eeba3" : "#7dcfff", children: label }) })
15632
15649
  }
15633
15650
  );
15634
15651
  }
@@ -15641,7 +15658,7 @@ function ViewModeRow({
15641
15658
  onClick
15642
15659
  }) {
15643
15660
  const bg = highlighted ? "#1a2a1a" : "#111111";
15644
- const fg = disabled ? "#444444" : active ? "#66bb6a" : "#cccccc";
15661
+ const fg = disabled ? "#444444" : active ? "#3eeba3" : "#cccccc";
15645
15662
  const marker = active ? "\u25B8" : " ";
15646
15663
  return /* @__PURE__ */ jsx8(
15647
15664
  "box",
@@ -15651,7 +15668,7 @@ function ViewModeRow({
15651
15668
  backgroundColor: bg,
15652
15669
  onMouseDown: disabled ? void 0 : onClick,
15653
15670
  children: /* @__PURE__ */ jsxs8("text", { children: [
15654
- /* @__PURE__ */ jsxs8("span", { fg: active ? "#66bb6a" : "#555555", children: [
15671
+ /* @__PURE__ */ jsxs8("span", { fg: active ? "#3eeba3" : "#555555", children: [
15655
15672
  marker,
15656
15673
  " "
15657
15674
  ] }),
@@ -15661,7 +15678,7 @@ function ViewModeRow({
15661
15678
  );
15662
15679
  }
15663
15680
  function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, agentAvailability, previews, onWakeWorkspace, onViewDiff, wakingWorkspaceId, viewMode, viewingDiffRepoName, onSelectChatMode, onSelectDiffMode, onCreatePr, isPlanMode }) {
15664
- const borderColor = focused ? "#66bb6a" : "#333333";
15681
+ const borderColor = focused ? "#3eeba3" : "#333333";
15665
15682
  const [cursorIndex, setCursorIndex] = useState6(0);
15666
15683
  const interactiveItems = useMemo5(() => {
15667
15684
  if (!status || !workspaceName) return [];
@@ -15808,7 +15825,7 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15808
15825
  }
15809
15826
  );
15810
15827
  }
15811
- const statusColor = status.status === "active" ? "#66bb6a" : status.status === "sleeping" ? "#ffaa00" : "#ff4444";
15828
+ const statusColor = status.status === "active" ? "#3eeba3" : status.status === "sleeping" ? "#ffaa00" : "#ff4444";
15812
15829
  const rawEnv = status.environmentDetails;
15813
15830
  const env = rawEnv && agentAvailability ? {
15814
15831
  ...rawEnv,
@@ -15891,11 +15908,11 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15891
15908
  env && /* @__PURE__ */ jsxs8(Section, { title: "Agents", children: [
15892
15909
  /* @__PURE__ */ jsxs8("box", { flexDirection: "row", justifyContent: "space-between", paddingX: 1, backgroundColor: "#111111", children: [
15893
15910
  /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: "#cccccc", children: "Claude" }) }),
15894
- /* @__PURE__ */ jsx8("text", { children: AUTH_METHOD_LABELS[env.claudeAuthMethod] ? /* @__PURE__ */ jsx8("span", { fg: "#66bb6a", children: AUTH_METHOD_LABELS[env.claudeAuthMethod] }) : /* @__PURE__ */ jsx8("span", { fg: "#ff4444", children: "\u2717" }) })
15911
+ /* @__PURE__ */ jsx8("text", { children: AUTH_METHOD_LABELS[env.claudeAuthMethod] ? /* @__PURE__ */ jsx8("span", { fg: "#3eeba3", children: AUTH_METHOD_LABELS[env.claudeAuthMethod] }) : /* @__PURE__ */ jsx8("span", { fg: "#ff4444", children: "\u2717" }) })
15895
15912
  ] }),
15896
15913
  /* @__PURE__ */ jsxs8("box", { flexDirection: "row", justifyContent: "space-between", paddingX: 1, backgroundColor: "#111111", children: [
15897
15914
  /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: "#cccccc", children: "Codex" }) }),
15898
- /* @__PURE__ */ jsx8("text", { children: AUTH_METHOD_LABELS[env.codexAuthMethod] ? /* @__PURE__ */ jsx8("span", { fg: "#66bb6a", children: AUTH_METHOD_LABELS[env.codexAuthMethod] }) : /* @__PURE__ */ jsx8("span", { fg: "#ff4444", children: "\u2717" }) })
15915
+ /* @__PURE__ */ jsx8("text", { children: AUTH_METHOD_LABELS[env.codexAuthMethod] ? /* @__PURE__ */ jsx8("span", { fg: "#3eeba3", children: AUTH_METHOD_LABELS[env.codexAuthMethod] }) : /* @__PURE__ */ jsx8("span", { fg: "#ff4444", children: "\u2717" }) })
15899
15916
  ] })
15900
15917
  ] }),
15901
15918
  /* @__PURE__ */ jsx8(Section, { title: "View", children: (() => {
@@ -15927,7 +15944,7 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15927
15944
  const isActive = viewMode === "diff" && viewingDiffRepoName === item.repoName;
15928
15945
  const cursorOn = isHighlighted(item);
15929
15946
  const bg = cursorOn ? "#1a2a1a" : isActive ? "#0d2b0d" : "#111111";
15930
- const nameColor = isActive || cursorOn ? "#66bb6a" : "#cccccc";
15947
+ const nameColor = isActive || cursorOn ? "#3eeba3" : "#cccccc";
15931
15948
  return /* @__PURE__ */ jsxs8(
15932
15949
  "box",
15933
15950
  {
@@ -15939,11 +15956,11 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15939
15956
  justifyContent: "space-between",
15940
15957
  children: [
15941
15958
  /* @__PURE__ */ jsxs8("text", { children: [
15942
- /* @__PURE__ */ jsx8("span", { fg: isActive ? "#66bb6a" : "#555555", children: isActive ? " \u25B8 " : " \u2514 " }),
15959
+ /* @__PURE__ */ jsx8("span", { fg: isActive ? "#3eeba3" : "#555555", children: isActive ? " \u25B8 " : " \u2514 " }),
15943
15960
  isActive ? /* @__PURE__ */ jsx8("span", { fg: nameColor, children: /* @__PURE__ */ jsx8("strong", { children: item.repoName }) }) : /* @__PURE__ */ jsx8("span", { fg: nameColor, children: item.repoName })
15944
15961
  ] }),
15945
15962
  /* @__PURE__ */ jsxs8("text", { children: [
15946
- item.added > 0 && /* @__PURE__ */ jsxs8("span", { fg: "#66bb6a", children: [
15963
+ item.added > 0 && /* @__PURE__ */ jsxs8("span", { fg: "#3eeba3", children: [
15947
15964
  "+",
15948
15965
  item.added
15949
15966
  ] }),
@@ -15982,7 +15999,7 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15982
15999
  ":",
15983
16000
  preview2.port
15984
16001
  ] }) }),
15985
- /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: previewItem && isHighlighted(previewItem) ? "#66bb6a" : "#7dcfff", children: "\u2197" }) })
16002
+ /* @__PURE__ */ jsx8("text", { children: /* @__PURE__ */ jsx8("span", { fg: previewItem && isHighlighted(previewItem) ? "#3eeba3" : "#7dcfff", children: "\u2197" }) })
15986
16003
  ]
15987
16004
  },
15988
16005
  i
@@ -15999,7 +16016,7 @@ function WorkspaceInfo({ status, workspaceName, workspaceId, focused, loading, a
15999
16016
  "\u2514",
16000
16017
  " "
16001
16018
  ] }),
16002
- /* @__PURE__ */ jsx8("span", { fg: repo.currentBranch !== repo.defaultBranch ? "#ffaa00" : "#66bb6a", children: repo.currentBranch })
16019
+ /* @__PURE__ */ jsx8("span", { fg: repo.currentBranch !== repo.defaultBranch ? "#ffaa00" : "#3eeba3", children: repo.currentBranch })
16003
16020
  ] }) }),
16004
16021
  prItems.map((prItem) => /* @__PURE__ */ jsx8(
16005
16022
  InteractiveRow,
@@ -16080,8 +16097,8 @@ function ToastProvider({ children }) {
16080
16097
  // src/interactive/components/Toast.tsx
16081
16098
  import { jsx as jsx10 } from "@opentui/react/jsx-runtime";
16082
16099
  var VARIANT_COLORS = {
16083
- info: { border: "#66bb6a", bg: "#0a1a0a" },
16084
- success: { border: "#66bb6a", bg: "#0a1a0a" },
16100
+ info: { border: "#3eeba3", bg: "#0a1f17" },
16101
+ success: { border: "#3eeba3", bg: "#0a1f17" },
16085
16102
  warning: { border: "#ffaa00", bg: "#1a1a0a" },
16086
16103
  error: { border: "#ff4444", bg: "#1a0a0a" }
16087
16104
  };
@@ -16449,7 +16466,7 @@ function AppInner() {
16449
16466
  flexGrow: 1,
16450
16467
  border: true,
16451
16468
  borderStyle: "rounded",
16452
- borderColor: focusPanel !== "sidebar" && focusPanel !== "info" ? "#66bb6a" : "#333333",
16469
+ borderColor: focusPanel !== "sidebar" && focusPanel !== "info" ? "#3eeba3" : "#333333",
16453
16470
  backgroundColor: "#000000",
16454
16471
  flexDirection: "column",
16455
16472
  title: "Diff",
@@ -16491,7 +16508,7 @@ function AppInner() {
16491
16508
  ] }),
16492
16509
  /* @__PURE__ */ jsxs9("text", { fg: "#555555", children: [
16493
16510
  "Press ",
16494
- /* @__PURE__ */ jsx11("span", { fg: "#66bb6a", children: /* @__PURE__ */ jsx11("strong", { children: "w" }) }),
16511
+ /* @__PURE__ */ jsx11("span", { fg: "#3eeba3", children: /* @__PURE__ */ jsx11("strong", { children: "w" }) }),
16495
16512
  " to wake it up"
16496
16513
  ] })
16497
16514
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.222",
3
+ "version": "0.2.224",
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": {