@love-moon/conductor-cli 0.4.0 → 0.4.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @love-moon/conductor-cli
2
2
 
3
+ ## 0.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - aada753: Add explicit ChatGPT and Gemini web backend aliases, expose project icon
8
+ configuration in generated CLI settings, and default browser-backed session
9
+ checks to headed mode for reliable authenticated detection.
10
+ - Updated dependencies [aada753]
11
+ - @love-moon/ai-sdk@0.4.1
12
+ - @love-moon/conductor-sdk@0.4.1
13
+
3
14
  ## 0.4.0
4
15
 
5
16
  ### Minor Changes
@@ -42,13 +42,21 @@ const DEFAULT_CLIs = {
42
42
  execArgs: "",
43
43
  description: "GitHub Copilot (built in via SDK)"
44
44
  },
45
- "chat-web": {
45
+ // chat-web is the runtime backend (an in-process Chromium driver, not a CLI
46
+ // binary). It has multiple sub-providers selected via --model. Each user-
47
+ // facing alias below resolves to the chat-web runtime; advertising the bare
48
+ // `chat-web` backend would be ambiguous, so we emit two explicit aliases.
49
+ "web-chatgpt": {
46
50
  command: "chat-web",
47
- // Add `--model gemini` to use Google AI Studio's Gemini instead of
48
- // the default ChatGPT. The CLI parses --model from this entry and
49
- // forwards it to ai-sdk; it doesn't actually exec the command line.
50
- execArgs: "",
51
- description: "Chat web automation (ChatGPT / Gemini via @love-moon/chat-web)"
51
+ execArgs: "--model chatgpt",
52
+ description: "Chat web (ChatGPT) via @love-moon/chat-web",
53
+ runtimeBackend: "chat-web"
54
+ },
55
+ "web-gemini": {
56
+ command: "chat-web",
57
+ execArgs: "--model gemini",
58
+ description: "Chat web (Google AI Studio / Gemini) via @love-moon/chat-web",
59
+ runtimeBackend: "chat-web"
52
60
  },
53
61
  };
54
62
 
@@ -101,12 +109,11 @@ function buildConfigEntryLines(cli, info, { commented = false } = {}) {
101
109
  if (cli === "opencode") {
102
110
  lines.push(`${commentPrefix}opencode runs via ai-sdk server mode with permission=allow`);
103
111
  }
104
- if (cli === "chat-web") {
105
- // chat-web defaults to its `chatgpt` sub-provider. The CLI extracts
106
- // `--model` from this line and forwards it to ai-sdk; the command
107
- // itself is never spawned (chat-web is an in-process SDK).
108
- lines.push(`${commentPrefix}chat-web drives a real Chromium browser via @love-moon/chat-web`);
109
- lines.push(`${commentPrefix}defaults to ChatGPT; use \`chat-web --model gemini\` for AI Studio (Gemini)`);
112
+ if (cli === "web-chatgpt") {
113
+ // web-chatgpt / web-gemini both resolve to the chat-web runtime backend
114
+ // (an in-process Chromium driver via @love-moon/chat-web). The command
115
+ // line is not executed; CLI parses --model from it.
116
+ lines.push(`${commentPrefix}web-chatgpt / web-gemini drive a real Chromium browser via @love-moon/chat-web`);
110
117
  }
111
118
 
112
119
  lines.push(`${entryPrefix}${cli}: ${fullCommand}`);
@@ -235,7 +242,10 @@ async function main() {
235
242
  console.log(colorize("✓ Detected the following coding CLIs:", "green"));
236
243
  detectedCLIs.forEach((cli) => {
237
244
  const info = DEFAULT_CLIs[cli];
238
- console.log(` • ${colorize(info.command, "cyan")} - ${info.description}`);
245
+ // Display the alias name (key) so backends like web-chatgpt and
246
+ // web-gemini that share the chat-web runtime are not collapsed to a
247
+ // single duplicate "chat-web" line.
248
+ console.log(` • ${colorize(cli, "cyan")} - ${info.description}`);
239
249
  });
240
250
  console.log("");
241
251
  }
@@ -309,14 +319,15 @@ function detectInstalledCLIs() {
309
319
  const detected = [];
310
320
 
311
321
  for (const [key, info] of Object.entries(DEFAULT_CLIs)) {
312
- if (!RUNTIME_SUPPORTED_BACKENDS.includes(key)) {
322
+ const runtimeBackend = info.runtimeBackend || key;
323
+ if (!RUNTIME_SUPPORTED_BACKENDS.includes(runtimeBackend)) {
313
324
  continue;
314
325
  }
315
- if (key === "copilot" && isBuiltInCopilotAvailable()) {
326
+ if (runtimeBackend === "copilot" && isBuiltInCopilotAvailable()) {
316
327
  detected.push(key);
317
328
  continue;
318
329
  }
319
- if (key === "chat-web" && isBuiltInChatWebAvailable()) {
330
+ if (runtimeBackend === "chat-web" && isBuiltInChatWebAvailable()) {
320
331
  detected.push(key);
321
332
  continue;
322
333
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@love-moon/conductor-cli",
3
- "version": "0.4.0",
4
- "gitCommitId": "2d1526c",
3
+ "version": "0.4.1",
4
+ "gitCommitId": "ff00acf",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/lovemoon-ai/conductor.git"
@@ -23,8 +23,8 @@
23
23
  "test": "node --test test/*.test.js"
24
24
  },
25
25
  "dependencies": {
26
- "@love-moon/ai-sdk": "0.4.0",
27
- "@love-moon/conductor-sdk": "0.4.0",
26
+ "@love-moon/ai-sdk": "0.4.1",
27
+ "@love-moon/conductor-sdk": "0.4.1",
28
28
  "@github/copilot-sdk": "^0.2.2",
29
29
  "chrome-launcher": "^1.2.1",
30
30
  "chrome-remote-interface": "^0.33.0",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "optionalDependencies": {
39
39
  "@roamhq/wrtc": "^0.10.0",
40
- "@love-moon/chat-web": "0.4.0"
40
+ "@love-moon/chat-web": "0.4.1"
41
41
  },
42
42
  "pnpm": {
43
43
  "onlyBuiltDependencies": [
package/src/daemon.js CHANGED
@@ -1247,6 +1247,12 @@ export function startDaemon(config = {}, deps = {}) {
1247
1247
  }
1248
1248
 
1249
1249
  const PROJECT_SETTINGS_TEMPLATE = [
1250
+ "# icon: \"🚀\"",
1251
+ "# Optional icon shown on the project card in the web project list.",
1252
+ "# Accepts an emoji, an http(s):// URL, or a path to a local image",
1253
+ "# (svg/png/jpg/gif/webp/ico/avif) relative to this .conductor/ directory.",
1254
+ "# Remove this line to use the default folder icon.",
1255
+ "",
1250
1256
  "worktree:",
1251
1257
  " sync_branch: false",
1252
1258
  " symlink: []",