magic-agent 1.0.3 → 1.0.49
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/CLIENT-CONTRACT.md +254 -8
- package/README.md +48 -5
- package/client-ui/index.html +32 -0
- package/client-ui/pc/app.css +89 -1
- package/client-ui/pc/index.html +18 -8
- package/client-ui/pc/js/00-base.js +8 -30
- package/client-ui/pc/js/05-task-list-render.js +4 -1
- package/client-ui/pc/js/07-chat-stream-render.js +2 -85
- package/client-ui/pc/js/10-markdown.js +3 -171
- package/client-ui/pc/js/18-askbox.js +2 -176
- package/client-ui/pc/js/90-glue.js +1 -1
- package/client-ui/pc/js/91-workbench-stubs.js +4 -10
- package/client-ui/pc/js/93-rail.js +10 -3
- package/client-ui/shared/conv/01-dom.js +52 -0
- package/client-ui/shared/conv/02-media-kinds.js +34 -0
- package/client-ui/shared/conv/03-chat-message.js +1561 -0
- package/client-ui/shared/conv/06-ask-answer.js +377 -0
- package/client-ui/shared/conv/07-stream-delegation.js +158 -0
- package/client-ui/{pc/js → shared/conv}/09-stream-apply.js +121 -6
- package/client-ui/shared/conv/10-markdown-render.js +252 -0
- package/client-ui/shared/conv/18-askbox-markup.js +185 -0
- package/client-ui/{pc/js → shared/conv}/19-attachments.js +365 -21
- package/client-ui/shared/conv/27-conv-ledger.js +381 -0
- package/client-ui/{pc/js → shared/conv}/29-msg-variants.js +112 -3
- package/client-ui/shared/conv/README.md +257 -0
- package/client-ui/shared/conv/conv.css +1638 -0
- package/client-ui/shared/conv/dom-map.md +170 -0
- package/client-ui/shared/conv/manifest.json +44 -0
- package/client-ui/shared/conversation.css +368 -190
- package/client-ui/shared/conversation.js +1722 -788
- package/client-ui/shared/host-glue.js +143 -0
- package/client-ui/shared/transport-http.js +130 -6
- package/client-ui-mobile/index.html +2417 -103
- package/cmd/magic-client/clientctl.go +273 -0
- package/cmd/magic-client/main.go +71 -5
- package/go.mod +6 -3
- package/go.sum +4 -1
- package/internal/agent/arkclaw.go +3 -2
- package/internal/agent/arkclaw_stream.go +126 -8
- package/internal/agent/arkclaw_stream_test.go +97 -15
- package/internal/agent/arkclaw_test.go +3 -3
- package/internal/agent/attachments.go +18 -5
- package/internal/agent/attachments_test.go +7 -1
- package/internal/agent/capability_test.go +11 -1
- package/internal/agent/claude.go +96 -158
- package/internal/agent/codebuddy.go +108 -133
- package/internal/agent/codebuddy_gateway.go +8 -4
- package/internal/agent/codebuddy_gateway_stream.go +82 -2
- package/internal/agent/codebuddy_gateway_test.go +236 -1
- package/internal/agent/codebuddy_stream_test.go +262 -0
- package/internal/agent/codex.go +50 -9
- package/internal/agent/codex_stream_test.go +30 -0
- package/internal/agent/codex_test.go +24 -0
- package/internal/agent/custom_models.go +109 -3
- package/internal/agent/custom_models_test.go +74 -0
- package/internal/agent/dsh.go +464 -130
- package/internal/agent/dsh_resume.go +258 -0
- package/internal/agent/dsh_sdk.go +68 -17
- package/internal/agent/dsh_sdk_test.go +102 -2
- package/internal/agent/dsh_test.go +409 -36
- package/internal/agent/engine.go +26 -6
- package/internal/agent/engine_base.go +46 -2
- package/internal/agent/engine_base_test.go +29 -0
- package/internal/agent/engine_test.go +101 -0
- package/internal/agent/env.go +69 -1
- package/internal/agent/itemtracker.go +271 -0
- package/internal/agent/launch.go +192 -0
- package/internal/agent/launch_test.go +206 -0
- package/internal/agent/launch_unix.go +15 -0
- package/internal/agent/launch_windows.go +24 -0
- package/internal/agent/limitnotice.go +103 -0
- package/internal/agent/limitnotice_test.go +211 -0
- package/internal/agent/llmengine.go +2 -2
- package/internal/agent/models.go +3 -2
- package/internal/agent/openclaw.go +4 -3
- package/internal/agent/openclaw_acp.go +7 -0
- package/internal/agent/openclaw_test.go +2 -2
- package/internal/agent/permission.go +100 -11
- package/internal/agent/permission_test.go +100 -36
- package/internal/agent/runcmd.go +13 -3
- package/internal/agent/runner.go +7 -1
- package/internal/agent/runner_test.go +1 -1
- package/internal/agent/stream.go +777 -43
- package/internal/agent/stream_test.go +3 -2
- package/internal/agent/stream_timeline_test.go +905 -0
- package/internal/agent/streamjson.go +36 -2
- package/internal/agent/toolkind.go +20 -1
- package/internal/agent/toolkind_test.go +7 -1
- package/internal/agent/tools_suffix_test.go +10 -3
- package/internal/agent/trae.go +5 -3
- package/internal/agent/workspace_test.go +52 -0
- package/internal/cli/ask.go +260 -33
- package/internal/cli/ask_test.go +15 -11
- package/internal/cli/attach_test.go +32 -20
- package/internal/cli/clientcmd.go +156 -0
- package/internal/cli/events.go +53 -8
- package/internal/cli/events_test.go +230 -0
- package/internal/cli/keepalive_test.go +101 -6
- package/internal/cli/permission_test.go +5 -1
- package/internal/cli/root.go +174 -32
- package/internal/cli/session.go +175 -28
- package/internal/cli/session_test.go +144 -5
- package/internal/cli/sessionlog.go +385 -38
- package/internal/cli/sessionlog_test.go +708 -0
- package/internal/cli/sessionlog_user_test.go +142 -1
- package/internal/cli/sessiontitle.go +141 -0
- package/internal/client/browse.go +456 -0
- package/internal/client/browse_test.go +199 -0
- package/internal/client/cors_test.go +35 -0
- package/internal/client/daemon.go +525 -0
- package/internal/client/daemon_test.go +212 -0
- package/internal/client/detach_unix.go +19 -0
- package/internal/client/detach_windows.go +27 -0
- package/internal/client/pair.go +3 -3
- package/internal/client/plugins.go +376 -0
- package/internal/client/plugins_test.go +223 -0
- package/internal/client/proxy.go +374 -0
- package/internal/client/proxy_test.go +212 -0
- package/internal/client/service.go +1464 -48
- package/internal/client/service_test.go +649 -206
- package/internal/client/session_events_test.go +130 -0
- package/internal/client/wsproxy.go +113 -0
- package/internal/client/wsproxy_test.go +102 -0
- package/internal/session/delete.go +151 -0
- package/internal/session/delete_test.go +103 -0
- package/internal/session/session.go +155 -20
- package/internal/session/session_append.go +79 -21
- package/internal/session/session_test.go +124 -10
- package/internal/session/sessionlog.go +572 -6
- package/internal/session/sessionlog_read_test.go +410 -0
- package/internal/session/title.go +486 -0
- package/internal/session/title_test.go +298 -0
- package/npm/bin/magic-agent.js +101 -10
- package/npm/bin/magic-client.js +118 -0
- package/npm/dist/darwin-arm64/magic-agent +0 -0
- package/npm/dist/darwin-arm64/magic-client +0 -0
- package/npm/dist/darwin-x64/magic-agent +0 -0
- package/npm/dist/darwin-x64/magic-client +0 -0
- package/npm/dist/linux-arm64/magic-agent +0 -0
- package/npm/dist/linux-arm64/magic-client +0 -0
- package/npm/dist/linux-x64/magic-agent +0 -0
- package/npm/dist/linux-x64/magic-client +0 -0
- package/npm/dist/win32-x64/magic-agent.exe +0 -0
- package/npm/dist/win32-x64/magic-client.exe +0 -0
- package/npm/install.js +36 -13
- package/npm/lib/platform.js +27 -5
- package/package.json +8 -3
- package/client-ui/pc/js/03-chat-message.js +0 -880
- package/client-ui/pc/js/06-ask-answer.js +0 -204
- /package/client-ui/{pc/js → shared/conv}/08-ask-event-map.js +0 -0
- /package/client-ui/{pc → shared}/vendor/highlight.min.js +0 -0
- /package/client-ui/{pc → shared}/vendor/marked.min.js +0 -0
- /package/client-ui/{pc → shared}/vendor/purify.min.js +0 -0
package/npm/lib/platform.js
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
// platform.js - node 平台标识 -> Go 交叉编译目标 / 产物路径 的统一映射。
|
|
4
4
|
//
|
|
5
5
|
// 约定:dist/<goos>-<goarch>/magic-agent[.exe]
|
|
6
|
+
// dist/<goos>-<goarch>/magic-client[.exe] ← 客户端插件,与 core 并排
|
|
6
7
|
// darwin-arm64 darwin-x64 linux-arm64 linux-x64 win32-x64
|
|
8
|
+
//
|
|
9
|
+
// 为什么两个二进制都放进 dist/<plat>/:`magic-agent client start` 靠「与自己同目录」
|
|
10
|
+
// 找 magic-client(见 internal/cli/clientcmd.go)。放一起,这一条兜底路径就永远命中,
|
|
11
|
+
// 不必依赖 PATH 里那份版本是否一致。
|
|
7
12
|
|
|
8
13
|
const path = require("path");
|
|
9
14
|
|
|
@@ -27,8 +32,8 @@ function currentTarget() {
|
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
34
|
|
|
30
|
-
function exeName(goos) {
|
|
31
|
-
return goos === "windows" ?
|
|
35
|
+
function exeName(goos, base = "magic-agent") {
|
|
36
|
+
return goos === "windows" ? `${base}.exe` : base;
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
/** 包根目录(npm/ 的上一级) */
|
|
@@ -42,16 +47,32 @@ function binaryPath(target) {
|
|
|
42
47
|
return path.join(distDir, target.dir, exeName(target.goos));
|
|
43
48
|
}
|
|
44
49
|
|
|
50
|
+
/** 客户端插件产物的绝对路径(与 core 同目录) */
|
|
51
|
+
function clientBinaryPath(target) {
|
|
52
|
+
return path.join(distDir, target.dir, exeName(target.goos, "magic-client"));
|
|
53
|
+
}
|
|
54
|
+
|
|
45
55
|
/**
|
|
46
56
|
* 定位可用的 go 可执行文件。
|
|
47
|
-
* 顺序:MAGIC_AGENT_GO_BIN > PATH > homebrew
|
|
57
|
+
* 顺序:MAGIC_AGENT_GO_BIN > PATH > 常见安装位置(homebrew / 官方安装包 / 版本目录)。
|
|
48
58
|
*/
|
|
49
59
|
function findGo() {
|
|
50
60
|
const fs = require("fs");
|
|
51
61
|
const candidates = [];
|
|
52
62
|
if (process.env.MAGIC_AGENT_GO_BIN) candidates.push(process.env.MAGIC_AGENT_GO_BIN);
|
|
53
63
|
candidates.push("go");
|
|
54
|
-
|
|
64
|
+
if (process.platform === "win32") {
|
|
65
|
+
const pf = process.env["ProgramFiles"] || "C:\\Program Files";
|
|
66
|
+
const pf86 = process.env["ProgramFiles(x86)"] || "C:\\Program Files (x86)";
|
|
67
|
+
candidates.push(
|
|
68
|
+
path.join(pf, "Go", "bin", "go.exe"),
|
|
69
|
+
path.join(pf86, "Go", "bin", "go.exe"),
|
|
70
|
+
"C:\\Go\\bin\\go.exe",
|
|
71
|
+
path.join(process.env.LOCALAPPDATA || "", "Programs", "Go", "bin", "go.exe")
|
|
72
|
+
);
|
|
73
|
+
} else {
|
|
74
|
+
candidates.push("/opt/homebrew/bin/go", "/usr/local/go/bin/go", "/usr/local/bin/go");
|
|
75
|
+
}
|
|
55
76
|
for (const c of candidates) {
|
|
56
77
|
try {
|
|
57
78
|
if (c === "go") {
|
|
@@ -59,7 +80,7 @@ function findGo() {
|
|
|
59
80
|
execFileSync("go", ["version"], { stdio: "ignore" });
|
|
60
81
|
return "go";
|
|
61
82
|
}
|
|
62
|
-
if (fs.existsSync(c)) return c;
|
|
83
|
+
if (c && fs.existsSync(c)) return c;
|
|
63
84
|
} catch (_) {
|
|
64
85
|
/* 继续找下一个 */
|
|
65
86
|
}
|
|
@@ -74,5 +95,6 @@ module.exports = {
|
|
|
74
95
|
pkgRoot,
|
|
75
96
|
distDir,
|
|
76
97
|
binaryPath,
|
|
98
|
+
clientBinaryPath,
|
|
77
99
|
findGo,
|
|
78
100
|
};
|
package/package.json
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "magic-agent",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.49",
|
|
4
4
|
"description": "专业的 agent CLI 代理工具 - 统一 claude / codebuddy / trae / llm / codex / openclaw 引擎",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
7
|
-
"magic-agent": "npm/bin/magic-agent.js"
|
|
7
|
+
"magic-agent": "npm/bin/magic-agent.js",
|
|
8
|
+
"magic-client": "npm/bin/magic-client.js"
|
|
8
9
|
},
|
|
9
10
|
"scripts": {
|
|
10
11
|
"build": "node npm/build.js",
|
|
11
12
|
"build:current": "node npm/build.js --current",
|
|
12
13
|
"bump": "node npm/bump.js",
|
|
13
14
|
"prepack": "node npm/build.js",
|
|
14
|
-
"postinstall": "node npm/install.js"
|
|
15
|
+
"postinstall": "node npm/install.js",
|
|
16
|
+
"check:ui": "node tests/check-ui-spec.mjs",
|
|
17
|
+
"check:conv": "node tests/check-conv-shards.mjs",
|
|
18
|
+
"check:conv-host": "node tests/check-conv-shared-host.mjs",
|
|
19
|
+
"check:conv-comp": "node tests/check-conv-component.mjs"
|
|
15
20
|
},
|
|
16
21
|
"files": [
|
|
17
22
|
"npm/bin/",
|