coconet 0.5.0 → 0.6.0
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/README.md +7 -5
- package/bin/coconet +5 -0
- package/cli.mjs +1 -1
- package/package.json +3 -4
- package/release-manifest.json +6 -6
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ npm install --global coconet
|
|
|
7
7
|
coconet version
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
npm 在自己已经可执行的全局 bin
|
|
10
|
+
npm 在自己已经可执行的全局 bin 目录只安装一个稳定 POSIX shell 启动器。启动器读取包版本和 `${XDG_DATA_HOME:-$HOME/.local/share}/coconet/current/manifest.json`:版本匹配时直接 `exec` 原生 Runtime;缺失或不匹配时调用包内未暴露为 bin 的 Node setup,安装成功后静默重同步用户已登记的 Agent integrations,并在同一终端继续执行原参数。Node 只参与首次安装和升级,不成为日常父进程,也不需要再把 `~/.local/bin` 加入 `PATH`。
|
|
11
11
|
|
|
12
12
|
卸载不能只删除 npm 包,因为 user-scope Agent Plugin、Marketplace、Hook trust、cache 与版本化 Runtime 不归 npm package tree 管理。标准顺序是:
|
|
13
13
|
|
|
@@ -18,16 +18,18 @@ npm uninstall --global coconet
|
|
|
18
18
|
|
|
19
19
|
第一步默认保留 Coconet 本地协作状态;使用 `coconet uninstall --purge` 才删除固定 Coconet 状态和凭据。npm launcher 在第二步前仍然存在,因此再次运行 `coconet` 会按缺失 Runtime 流程重新安装。npm lifecycle script 不承担 Agent 配置清理,避免 `--ignore-scripts`、非交互包管理器和部分失败导致静默残留。
|
|
20
20
|
|
|
21
|
-
Bootstrap 在 npm 包与目标 Runtime 同版本时使用 `--no-bin-link`,只原子切换版本化 `current`,不会覆盖 npm 管理的 `coconet`。归档直装仍可创建 `${XDG_BIN_HOME:-$HOME/.local/bin}/coconet
|
|
21
|
+
Bootstrap 在 npm 包与目标 Runtime 同版本时使用 `--no-bin-link`,只原子切换版本化 `current`,不会覆盖 npm 管理的 `coconet`。归档直装仍可创建 `${XDG_BIN_HOME:-$HOME/.local/bin}/coconet`。包内 `cli.mjs` 只供 launcher、受控候选和发布测试调用;npm 不再创建 `coconet-setup` 命令。`npx` 不作为正式交互或发布门禁;不要把本包加入业务仓库 dependency。
|
|
22
|
+
|
|
23
|
+
Runtime 与 Agent 接入分离。安装 npm 包不会探测 `codex` / `claude`,用户通过 `coconet agent add <codex|claude>` 登记具体实例;升级只同步登记表中的项,单项失败保存在 `agent list` 状态中且不阻止原命令。
|
|
22
24
|
|
|
23
25
|
| 文件 | 职责 |
|
|
24
26
|
|---|---|
|
|
25
|
-
| `bin/coconet` | 解析 npm 包与当前 Runtime
|
|
26
|
-
| `cli.mjs` |
|
|
27
|
+
| `bin/coconet` | 解析 npm 包与当前 Runtime 版本,按需启动内部 setup,静默触发已登记 Agent 的版本同步,并以原参数 `exec` 匹配 Runtime。 |
|
|
28
|
+
| `cli.mjs` | 不公开为 npm bin 的下载、安全解压、临时目录清理与 Bootstrap 进程编排。 |
|
|
27
29
|
| `core.mjs` | 平台映射、制品命名、参数、checksum 和 archive path 契约。 |
|
|
28
30
|
| `cli.test.mjs` | 覆盖严格 umask、启动器匹配 / 缺失 / 升级 / 取消 / 失败状态,以及同一 Shell 的临时全局安装。 |
|
|
29
31
|
| `core.test.mjs` | 覆盖支持矩阵、参数映射、checksum、路径逃逸与本地文件校验。 |
|
|
30
|
-
| `package.json` / `package-lock.json` | npm
|
|
32
|
+
| `package.json` / `package-lock.json` | npm 身份、单一公开 bin、Node 基线、固定 tar 依赖与可重现安装。 |
|
|
31
33
|
| `release-manifest.json` | 固定 npm 同版本、`xfey/coconet` 精确 Tag 与四个平台 Client SHA-256;内部版本保持空映射。 |
|
|
32
34
|
|
|
33
35
|
包装层根据 macOS / Linux 与 `amd64` / `arm64` 选择制品,通过 HTTPS 下载或读取用户明确提供的本地 archive 与 checksum,验证 SHA-256,拒绝不安全 tar 条目和 mode,再执行同版本 Bootstrap。本地 artifact 同样经过文件类型、archive checksum、安全 tar 条目和 bundle Manifest 四层校验。包装层不会连接仓库或上传 Session。
|
package/bin/coconet
CHANGED
|
@@ -88,4 +88,9 @@ if [ ! -x "$runtime" ] || [ "$installed_version" != "$package_version" ]; then
|
|
|
88
88
|
exit 1
|
|
89
89
|
fi
|
|
90
90
|
|
|
91
|
+
# Reconcile only integrations the user explicitly registered. Individual
|
|
92
|
+
# Agent failures are stored by the Runtime and never block the requested CLI
|
|
93
|
+
# command or turn the verified Runtime upgrade into a failed installation.
|
|
94
|
+
"$runtime" _agent-sync >/dev/null 2>&1 || :
|
|
95
|
+
|
|
91
96
|
exec "$runtime" "$@"
|
package/cli.mjs
CHANGED
|
@@ -192,7 +192,7 @@ function runBootstrap(command, arguments_) {
|
|
|
192
192
|
|
|
193
193
|
function printUsage(output = process.stderr) {
|
|
194
194
|
output.write(
|
|
195
|
-
"usage: coconet-setup [install] [--release VERSION] [--base-url HTTPS_URL | --artifact FILE --checksum FILE] [--yes] [--json] [--root DIR] [--bin-dir DIR]
|
|
195
|
+
"usage: coconet internal-setup [install] [--release VERSION] [--base-url HTTPS_URL | --artifact FILE --checksum FILE] [--yes] [--json] [--root DIR] [--bin-dir DIR]\n",
|
|
196
196
|
);
|
|
197
197
|
}
|
|
198
198
|
|
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coconet",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Install the verified Coconet runtime
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Install the verified Coconet runtime for the current user.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"coconet": "./bin/coconet"
|
|
8
|
-
"coconet-setup": "./cli.mjs"
|
|
7
|
+
"coconet": "./bin/coconet"
|
|
9
8
|
},
|
|
10
9
|
"files": [
|
|
11
10
|
"README.md",
|
package/release-manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 2,
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"repository": "xfey/coconet",
|
|
5
|
-
"release_tag": "v0.
|
|
5
|
+
"release_tag": "v0.6.0",
|
|
6
6
|
"archives": {
|
|
7
|
-
"coconet-0.
|
|
8
|
-
"coconet-0.
|
|
9
|
-
"coconet-0.
|
|
10
|
-
"coconet-0.
|
|
7
|
+
"coconet-0.6.0-darwin-amd64.tar.gz": "969d9af80c6b490dcb4ab0d5b343887ae1f8aaa0ae2db1a1efaf13a08e6e19af",
|
|
8
|
+
"coconet-0.6.0-darwin-arm64.tar.gz": "60c374f68034d90fbac85030f98fe942c2585618072d707df27141a6c931992e",
|
|
9
|
+
"coconet-0.6.0-linux-amd64.tar.gz": "431b0b70061db8bced833b7e05f589db24af3ac5499c7c42f1cd3fdbf199695b",
|
|
10
|
+
"coconet-0.6.0-linux-arm64.tar.gz": "b01d68ef66d47e6cb095d1937149d8e54f76c41e1e054ce1935ab8b1ac664871"
|
|
11
11
|
}
|
|
12
12
|
}
|