@love-moon/conductor-cli 0.17.1 → 0.17.2
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 +26 -0
- package/bin/conductor-config.js +9 -3
- package/bin/conductor-fire.js +4 -4
- package/package.json +5 -5
- package/src/daemon.js +3 -0
- package/src/remote/client.js +5 -1
- package/src/remote/mcp-launch.js +1 -0
- package/src/runtime-backends.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @love-moon/conductor-cli
|
|
2
2
|
|
|
3
|
+
## 0.17.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 0a9488e: Add Kimi website text conversations with persistent login, multi-turn context,
|
|
8
|
+
reply progress, new chats and browser diagnostics. Expose the provider through
|
|
9
|
+
ai-sdk's chat-web backend and the web-kimi Conductor configuration alias.
|
|
10
|
+
|
|
11
|
+
Explicit unknown chat-web providers now fail with a clear error instead of
|
|
12
|
+
silently opening ChatGPT. The existing kimi CLI backend is unchanged.
|
|
13
|
+
|
|
14
|
+
- b16c1ae: Allow a shared daemon to run the AI side of a Global AI Backend task while code
|
|
15
|
+
stays on one of the user's own daemons. Advertise
|
|
16
|
+
`shared_ai_global_backend_v1` and forward the task id on remote exec, file, and
|
|
17
|
+
MCP requests so the backend can authorize only that task's remote binding.
|
|
18
|
+
|
|
19
|
+
Keep remote grants tied to active tasks: shared credentials cannot mint remote
|
|
20
|
+
bindings, renew them through restarts or persistent rounds, or reactivate ended
|
|
21
|
+
tasks through status updates. Check shared AI compatibility when restarting or
|
|
22
|
+
starting later rounds of an existing remote task too.
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [b124565]
|
|
25
|
+
- Updated dependencies [0a9488e]
|
|
26
|
+
- @love-moon/ai-sdk@0.17.2
|
|
27
|
+
- @love-moon/conductor-sdk@0.17.2
|
|
28
|
+
|
|
3
29
|
## 0.17.1
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/bin/conductor-config.js
CHANGED
|
@@ -55,13 +55,19 @@ const DEFAULT_CLIs = {
|
|
|
55
55
|
// chat-web is the runtime backend (an in-process Chromium driver, not a CLI
|
|
56
56
|
// binary). It has multiple sub-providers selected via --model. Each user-
|
|
57
57
|
// facing alias below resolves to the chat-web runtime; advertising the bare
|
|
58
|
-
// `chat-web` backend would be ambiguous, so we emit
|
|
58
|
+
// `chat-web` backend would be ambiguous, so we emit explicit aliases.
|
|
59
59
|
"web-chatgpt": {
|
|
60
60
|
command: "chat-web",
|
|
61
61
|
execArgs: "--model chatgpt",
|
|
62
62
|
description: "Chat web (ChatGPT) via @love-moon/chat-web",
|
|
63
63
|
runtimeBackend: "chat-web"
|
|
64
64
|
},
|
|
65
|
+
"web-kimi": {
|
|
66
|
+
command: "chat-web",
|
|
67
|
+
execArgs: "--model kimi",
|
|
68
|
+
description: "Chat web (Kimi) via @love-moon/chat-web",
|
|
69
|
+
runtimeBackend: "chat-web"
|
|
70
|
+
},
|
|
65
71
|
"web-gemini": {
|
|
66
72
|
command: "chat-web",
|
|
67
73
|
execArgs: "--model gemini",
|
|
@@ -137,10 +143,10 @@ function buildConfigEntryLines(cli, info, { commented = false } = {}) {
|
|
|
137
143
|
lines.push(`${commentPrefix}opencode runs via ai-sdk server mode with permission=allow`);
|
|
138
144
|
}
|
|
139
145
|
if (cli === "web-chatgpt") {
|
|
140
|
-
// web-chatgpt / web-gemini
|
|
146
|
+
// web-chatgpt / web-gemini / web-kimi resolve to the chat-web runtime backend
|
|
141
147
|
// (an in-process Chromium driver via @love-moon/chat-web). The command
|
|
142
148
|
// line is not executed; CLI parses --model from it.
|
|
143
|
-
lines.push(`${commentPrefix}web-chatgpt / web-gemini drive a real Chromium browser via @love-moon/chat-web`);
|
|
149
|
+
lines.push(`${commentPrefix}web-chatgpt / web-gemini / web-kimi drive a real Chromium browser via @love-moon/chat-web`);
|
|
144
150
|
}
|
|
145
151
|
|
|
146
152
|
lines.push(`${entryPrefix}${cli}: ${fullCommand}`);
|
package/bin/conductor-fire.js
CHANGED
|
@@ -940,10 +940,10 @@ async function main() {
|
|
|
940
940
|
env: process.env,
|
|
941
941
|
});
|
|
942
942
|
|
|
943
|
-
// chat-web tasks
|
|
944
|
-
//
|
|
945
|
-
//
|
|
946
|
-
//
|
|
943
|
+
// chat-web tasks retain a tab in the shared profile browser while alive.
|
|
944
|
+
// New runtimes schedule turns across tasks; older runtimes exclusively
|
|
945
|
+
// own the profile. Cap task lifetime so abandoned sessions release their
|
|
946
|
+
// browser resources in either runtime.
|
|
947
947
|
// The conversation itself is preserved (it lives in the provider account
|
|
948
948
|
// and the persisted profile; closing the browser does not delete it).
|
|
949
949
|
const runtimeBackendToken = String(sessionCommandLine || "")
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@love-moon/conductor-cli",
|
|
3
|
-
"version": "0.17.
|
|
4
|
-
"gitCommitId": "
|
|
3
|
+
"version": "0.17.2",
|
|
4
|
+
"gitCommitId": "1671ee1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/lovemoon-ai/conductor.git"
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"test": "node --test test/*.test.js"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@love-moon/ai-sdk": "0.17.
|
|
28
|
-
"@love-moon/conductor-sdk": "0.17.
|
|
27
|
+
"@love-moon/ai-sdk": "0.17.2",
|
|
28
|
+
"@love-moon/conductor-sdk": "0.17.2",
|
|
29
29
|
"@github/copilot-sdk": "^0.3.0",
|
|
30
30
|
"chrome-launcher": "^1.2.1",
|
|
31
31
|
"chrome-remote-interface": "^0.33.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
40
|
"@roamhq/wrtc": "^0.10.0",
|
|
41
|
-
"@love-moon/chat-web": "0.17.
|
|
41
|
+
"@love-moon/chat-web": "0.17.2"
|
|
42
42
|
},
|
|
43
43
|
"pnpm": {
|
|
44
44
|
"onlyBuiltDependencies": [
|
package/src/daemon.js
CHANGED
|
@@ -3928,6 +3928,9 @@ export function startDaemon(config = {}, deps = {}) {
|
|
|
3928
3928
|
// another daemon over `conductor remote` and binds the remote_* MCP tools
|
|
3929
3929
|
// to a remoteWorkspace as well as a remoteWorktree.
|
|
3930
3930
|
"global_backend_v1",
|
|
3931
|
+
// A shared AI also sends CONDUCTOR_TASK_ID on every remote request so the
|
|
3932
|
+
// backend can grant only that task's A → B remote permission.
|
|
3933
|
+
"shared_ai_global_backend_v1",
|
|
3931
3934
|
"backend_session_list",
|
|
3932
3935
|
CUSTOM_COMMANDS_CAPABILITY,
|
|
3933
3936
|
UPDATE_DAEMON_CAPABILITY,
|
package/src/remote/client.js
CHANGED
|
@@ -62,7 +62,11 @@ export function loadCliConfig(configFile, env = process.env) {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
function authHeaders(config) {
|
|
65
|
-
|
|
65
|
+
const taskId = process.env.CONDUCTOR_TASK_ID?.trim();
|
|
66
|
+
return {
|
|
67
|
+
Authorization: `Bearer ${config.agentToken}`,
|
|
68
|
+
...(taskId ? { "X-Conductor-Task-Id": taskId } : {}),
|
|
69
|
+
};
|
|
66
70
|
}
|
|
67
71
|
|
|
68
72
|
async function toApiError(response) {
|
package/src/remote/mcp-launch.js
CHANGED
package/src/runtime-backends.js
CHANGED
|
@@ -19,9 +19,9 @@ const BUILT_IN_RUNTIME_BACKEND_SET = new Set(BUILT_IN_RUNTIME_BACKENDS);
|
|
|
19
19
|
//
|
|
20
20
|
// chat-web is intentionally NOT here even though it's also command-optional
|
|
21
21
|
// (it drives a Chromium browser, not a CLI). The reason: chat-web has
|
|
22
|
-
// configurable sub-providers (chatgpt / gemini /
|
|
22
|
+
// configurable sub-providers (chatgpt / gemini / kimi) selected via
|
|
23
23
|
// `--model`, and surfacing a bare `chat-web` backend alongside user
|
|
24
|
-
// aliases like `web-chatgpt` / `web-gemini` is just confusing — the alias
|
|
24
|
+
// aliases like `web-chatgpt` / `web-gemini` / `web-kimi` is just confusing — the alias
|
|
25
25
|
// IS the sub-provider choice. Users who want chat-web must declare an
|
|
26
26
|
// explicit allow_cli_list entry (which is also where `--model` lives).
|
|
27
27
|
const COMMAND_OPTIONAL_BUILT_IN_RUNTIME_BACKENDS = ["copilot", "dsh"];
|