@sleep2agi/agent-network 2.3.0-preview.39 → 2.3.0-preview.40
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/dist/bin/anet.cjs +101 -0
- package/dist/bin/cli.js +2 -2
- package/dist/src/client.js +1 -1
- package/dist/src/grok-copresence-disclosure.d.ts +2 -2
- package/dist/src/grok-copresence-profile.d.ts +16 -0
- package/dist/src/im/feishu/worker.js +1 -1
- package/dist/src/node-server.js +7 -7
- package/dist/src/opencode-agent-node-pair.d.ts +3 -3
- package/dist/src/outbound-tool-names.d.ts +1 -0
- package/dist/src/package-mode-preflight.d.ts +31 -0
- package/dist/src/tmux-exact-target.d.ts +34 -0
- package/dist/src/tmux-pane-prompt.d.ts +22 -0
- package/dist/src/unsafe-package-path-reason.d.ts +17 -0
- package/package.json +3 -3
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// anet 的 bin 入口垫片 —— 唯一职责:在【解析真正的 ESM 入口之前】把 Node 版本讲清楚。
|
|
4
|
+
//
|
|
5
|
+
// 🔴 为什么必须是 CJS,而且必须是手写不进构建:
|
|
6
|
+
//
|
|
7
|
+
// dist/bin/cli.js 是 ESM(package.json 里 type: module),而且经 javascript-obfuscator
|
|
8
|
+
// 处理过。老 Node 读到它的第一行 `import{createRequire}from'node:module'` 就抛
|
|
9
|
+
//
|
|
10
|
+
// SyntaxError: Unexpected token {
|
|
11
|
+
//
|
|
12
|
+
// ——**在任何一行代码执行之前**。cli.ts 里那个 checkNodeVersion()(required "22.13.0")
|
|
13
|
+
// 写在同一个文件里,所以它永远轮不到跑。**一个写在 ESM 里的版本检查,救不了一个
|
|
14
|
+
// 连 ESM 都解析不了的 Node。**
|
|
15
|
+
//
|
|
16
|
+
// 用户实际看到的是一屏混淆后的代码 + SyntaxError,完全指不到真因。
|
|
17
|
+
// (2026-08-18 现场:Node 10/12 世代的栈,`internal/bootstrap/node.js`、
|
|
18
|
+
// `Function.Module.runMain`、`loader.js:723`。)
|
|
19
|
+
//
|
|
20
|
+
// package.json 的 engines.node>=22.13.0 也不拦:npm 默认 engine-strict=false,
|
|
21
|
+
// 那只是安装时的一句警告。
|
|
22
|
+
//
|
|
23
|
+
// 🔴 本文件的写法约束(违反其中任何一条,垫片自己就会在同一个地方炸):
|
|
24
|
+
// - 只用 ES5 语法:var / function / 字符串拼接。不用 const/let、箭头函数、
|
|
25
|
+
// 模板串、可选链(?.)、空值合并(??)。
|
|
26
|
+
// - **不能出现字面量的 `import(...)`** —— 动态 import 是 Node 12.17+ 才能【解析】的
|
|
27
|
+
// 语法,老 Node 在解析阶段就会失败。所以用 new Function 把它推迟到调用时再解析,
|
|
28
|
+
// 而调用只发生在版本检查通过之后。
|
|
29
|
+
// - 不进 bun build,不进 obfuscator。构建里只 cp 过去。
|
|
30
|
+
|
|
31
|
+
// 🔴 两个阈值,回答两个不同的问题。把它们合成一个,就是我 2026-08-18 犯的错:
|
|
32
|
+
//
|
|
33
|
+
// PARSE_FLOOR = 16.0.0 「这个 Node 能不能**加载**入口?」
|
|
34
|
+
// 低于它,dist/bin/cli.js 的第一行 `import{createRequire}from'node:module'`
|
|
35
|
+
// 连解析都过不去(ESM 语句需要 Node>=12;`node:` 前缀需要 >=14.18/16)。
|
|
36
|
+
// 这时**必须硬退**,因为再往下没有任何一行自己的代码能跑。
|
|
37
|
+
//
|
|
38
|
+
// SUPPORTED = 22.13.0 「这个 Node 是不是受支持的版本?」
|
|
39
|
+
// 这是 package.json engines 声明的下限,而产品对它的既有立场是
|
|
40
|
+
// **警告并继续** —— cli.ts 的 checkNodeVersion() 只在 `anet upgrade` 里
|
|
41
|
+
// 打一行 "Continuing anyway"。
|
|
42
|
+
//
|
|
43
|
+
// 🔴 第一版我用 SUPPORTED 做硬退,直接把 e2e 打红了:CI 镜像跑的是 Node 20
|
|
44
|
+
// (tests/Dockerfile 里 setup_20.x),5 个 suite 当场全灭。
|
|
45
|
+
// **垫片不该比产品自己的立场更严** —— 它的职责是把「解析不了」这件事讲清楚,
|
|
46
|
+
// 不是顺手收紧支持策略。那是另一个决定,要单独做。
|
|
47
|
+
var PARSE_FLOOR = '16.0.0';
|
|
48
|
+
var SUPPORTED = '22.13.0';
|
|
49
|
+
|
|
50
|
+
function parts(v) {
|
|
51
|
+
var a = String(v).split('.');
|
|
52
|
+
return [parseInt(a[0], 10) || 0, parseInt(a[1], 10) || 0, parseInt(a[2], 10) || 0];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function gte(a, b) {
|
|
56
|
+
return a[0] > b[0]
|
|
57
|
+
|| (a[0] === b[0] && a[1] > b[1])
|
|
58
|
+
|| (a[0] === b[0] && a[1] === b[1] && a[2] >= b[2]);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var cur = parts(process.versions.node);
|
|
62
|
+
|
|
63
|
+
if (!gte(cur, parts(PARSE_FLOOR))) {
|
|
64
|
+
console.error('');
|
|
65
|
+
console.error(' \u274c anet 无法在 Node ' + process.versions.node + ' 上启动。');
|
|
66
|
+
console.error('');
|
|
67
|
+
console.error(' 它的入口是 ESM,而这个版本的 Node 连解析都做不到 —— 没有垫片的话,');
|
|
68
|
+
console.error(' 你看到的会是一屏代码加一句 SyntaxError,而真因是版本。');
|
|
69
|
+
console.error('');
|
|
70
|
+
console.error(' 升级 Node(任选其一):');
|
|
71
|
+
console.error(' nvm install 22 && nvm use 22');
|
|
72
|
+
console.error(' curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs');
|
|
73
|
+
console.error('');
|
|
74
|
+
console.error(' 然后: node -v && anet -v');
|
|
75
|
+
console.error('');
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (!gte(cur, parts(SUPPORTED))) {
|
|
80
|
+
// 警告不退出 —— 与 cli.ts 的既有立场一致。走 stderr,不污染任何解析 stdout 的调用方。
|
|
81
|
+
console.error('[anet] \u26a0 Node ' + process.versions.node + ' 低于受支持的 >=' + SUPPORTED
|
|
82
|
+
+ ';能跑,但不保证。升级: nvm install ' + SUPPORTED.split('.')[0]);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var path = require('path');
|
|
86
|
+
var url = require('url');
|
|
87
|
+
var entry = path.join(__dirname, 'cli.js');
|
|
88
|
+
|
|
89
|
+
// 🔴 把 argv[1] 指回真入口。cli.ts 有多处用 process.argv[1] 推自身位置
|
|
90
|
+
// (:792 resolve(argv[1])、:1094-1095 join(argv[1],'..','..')、:4445)。
|
|
91
|
+
// 不改的话 argv[1] 会变成本垫片的路径 —— 同目录,多数推导仍成立,
|
|
92
|
+
// 但"多数成立"不是"成立",直接指回去让行为逐字不变。
|
|
93
|
+
process.argv[1] = entry;
|
|
94
|
+
|
|
95
|
+
// 见上:不能写字面量 import()。
|
|
96
|
+
var dynamicImport = new Function('u', 'return import(u);');
|
|
97
|
+
dynamicImport(url.pathToFileURL(entry).href).catch(function (e) {
|
|
98
|
+
console.error('[anet] 无法加载 ' + entry);
|
|
99
|
+
console.error(e && e.stack ? e.stack : e);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
});
|