@qfeius/everyline-cli 0.1.5 → 0.1.7

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/bin/checksums.txt CHANGED
@@ -1,6 +1,6 @@
1
- af353cfbd86324b8648364b825e1b818fa80b6ddc5baef42bc82ef4234e00339 bin/darwin-amd64/everyline-cli
2
- 50a2d1f486de58fec995be15f4e88ed1d9f389429384e78f161a40723cb8d045 bin/darwin-arm64/everyline-cli
3
- 593314210b4803a8c489676d8f72a7b69d0cee84c214fa1e895e734cdb143357 bin/linux-amd64/everyline-cli
4
- 0cf8a8cf32efea14bb86151f440e9a391d1d8463c3c62bd47b2164009d4f118c bin/linux-arm64/everyline-cli
5
- 51efebd5d0c64b30543ecef7cc9e0dbc076171abf0703cdd38ec19de39c1bf51 bin/windows-amd64/everyline-cli.exe
6
- f06572abf1f8ea30bf6c1d8a9118ba7eebbd58be72901de330a4278f1e6f1b85 bin/windows-arm64/everyline-cli.exe
1
+ ba21698514a93c847ffc55dabcb62ff47f2d179d7f84d241889d9c7eb7f4d37f bin/darwin-amd64/everyline-cli
2
+ c0386b4268cb17b1ee164e4ff624f1ede8d0cd22b0d665e94e944f8ed9a90ffd bin/darwin-arm64/everyline-cli
3
+ 5b57406ed950bb8cb111c8884faf99bdec1ef1c10d85618a1de7909a998ec433 bin/linux-amd64/everyline-cli
4
+ 85b80929fa0e8782dfacbf89c85da78b44820fe05edd524f3d0e26c51f77221f bin/linux-arm64/everyline-cli
5
+ 82c77ba745c24898ea8a89f9ffe2db4562a5376bb09992aea3e18d083b297b6e bin/windows-amd64/everyline-cli.exe
6
+ bedae910c506e47f2d04a4445ca57215b8f72b0c62761b5737aea947c8457784 bin/windows-arm64/everyline-cli.exe
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -8,8 +8,8 @@ Skill 的安装位置和验证入口由 Agent 宿主决定,不要跨宿主复
8
8
 
9
9
  | 宿主 | 安装入口 | 用户级位置或管理方式 |
10
10
  | --- | --- | --- |
11
- | Codex | 本地 Skill 目录 | `$HOME/.agents/skills/everyline-{shared,review,review-config}` |
12
- | WorkBuddy | 「专家·技能·连接器」或本地 Skill 目录 | `$HOME/.workbuddy/skills/everyline-{shared,review,review-config}` |
11
+ | Codex | 本地 Skill 目录 | `$HOME/.agents/skills/everyline-{review,review-config}` |
12
+ | WorkBuddy | 「专家·技能·连接器」或本地 Skill 目录 | `$HOME/.workbuddy/skills/everyline-{review,review-config}` |
13
13
  | 豆包 | 本地 npm 同步,或技能管理中的 ZIP 导入 | 本地使用已存在的 `workspace/.user_skills`;自定义目录用 `EVERYLINE_DOUBAO_SKILLS_DIR` 指定;云端仍分别导入两个 `*-skill.zip` |
14
14
 
15
15
  OpenAI 官方文档将 Skill 定义为包含 `SKILL.md` 及可选 references、scripts、assets 的目录。Codex 支持显式 `$skill-name` 调用和按 description 自动触发,并扫描用户级 `$HOME/.agents/skills`。详见 [OpenAI Build skills](https://learn.chatgpt.com/docs/build-skills)。WorkBuddy 使用自己的 `$HOME/.workbuddy/skills`,可参考 [WorkBuddy 技能系统说明](https://cloud.tencent.com/developer/article/2693324);豆包电脑版当前通过界面上传本地 Skill,可参考 [豆包工作任务自定义 Skill 说明](https://www.beating.news/flash/362784),最终入口以客户端实际展示为准。
@@ -202,7 +202,7 @@ dist/everyline-review-skill.zip
202
202
  dist/everyline-review-config-skill.zip
203
203
  ```
204
204
 
205
- 每个 ZIP 根目录都直接包含自己的 `SKILL.md`;审查和配置 ZIP 还包含对应 `references/`。构建过程会清理旧的 `dist/everyline-shared-skill.zip` 和 `dist/everyline-cli-skill.zip`,避免重复导入公共授权入口。
205
+ 每个 ZIP 根目录都直接包含自己的 `SKILL.md`;review ZIP 还包含配置路由参考页 `references/review-config.md`,config 的完整操作流程在其 `SKILL.md` 中。构建过程会清理旧的 `dist/everyline-shared-skill.zip` 和 `dist/everyline-cli-skill.zip`,避免重复导入公共授权入口。
206
206
 
207
207
  在豆包中安装:
208
208
 
@@ -641,3 +641,15 @@ Windows PowerShell 使用自定义 prefix 时:
641
641
  $EverylineNpmPrefix = Join-Path $HOME ".local"
642
642
  npm uninstall -g --prefix $EverylineNpmPrefix @qfeius/everyline-cli
643
643
  ```
644
+
645
+ ### 恢复缺失的命令入口
646
+
647
+ macOS/Linux 全局包仍存在但 `everyline-cli` 命令入口缺失时,使用原安装 prefix 执行:
648
+
649
+ ```bash
650
+ npm rebuild -g --foreground-scripts --allow-scripts=@qfeius/everyline-cli @qfeius/everyline-cli
651
+ ```
652
+
653
+ 安装脚本会按包实际所在 prefix 检查并恢复缺失链接;显式设置 `--bin-links=false` 时跳过恢复。已有文件或链接保持原样;Windows 的命令 shim 由 npm rebuild 管理。入口后来再次被删除时,需要重新执行恢复命令,不会在后台自动重建。
654
+
655
+ 两个 Skill 的主文件以提供的附件为内容基准:review 主文件包含完整公共接入及审查流程,配置操作全文放在 config 主文件;review 的配置参考页仅负责转交 config。配置入口按宿主技能名称加载 review 的公共接入章节,不依赖跨 ZIP 的相对路径。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qfeius/everyline-cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "EveryLine CLI 工具的 npm/npx 薄包装",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -346,6 +346,40 @@ function ensureFirstInstallState(packageRoot, environment, userHome, platform, r
346
346
  return { path: statePath, ...JSON.parse(output) };
347
347
  }
348
348
 
349
+ /**
350
+ * restoreGlobalCommand 恢复 macOS/Linux 全局包缺失的命令链接,保留已有入口。
351
+ * 入参:packageRoot(string)为包目录;platform(string)为平台;environment(object)为 npm 环境。
352
+ * 返回值:void;禁用命令链接、非全局、Windows 或非标准全局布局直接返回,文件系统错误向上传递。
353
+ */
354
+ function restoreGlobalCommand(packageRoot, platform, environment) {
355
+ // 尊重 npm 显式禁用命令链接的选择,避免 postinstall 重新创建已被 npm 跳过的入口。
356
+ if (environment.npm_config_bin_links === "false" ||
357
+ environment.npm_config_global !== "true" || platform === "win32") return;
358
+ // 从包实际所在位置推导 prefix,避免使用另一个 Node/npm 的全局目录。
359
+ const root = resolve(packageRoot);
360
+ const modules = dirname(dirname(root));
361
+ if (basename(root) !== "everyline-cli" || basename(dirname(root)) !== "@qfeius" ||
362
+ basename(modules) !== "node_modules" || basename(dirname(modules)) !== "lib") return;
363
+ const source = join(root, "scripts", "run.js");
364
+ if (!existsSync(source)) throw new Error(`npm 包缺少命令入口: ${source}`);
365
+ const target = join(dirname(dirname(modules)), "bin", "everyline-cli");
366
+ try {
367
+ // lstat 也能识别失效链接;已有入口交给 npm 管理,绝不覆盖用户文件。
368
+ lstatSync(target);
369
+ return;
370
+ } catch (error) {
371
+ if (error.code !== "ENOENT") throw error;
372
+ }
373
+ mkdirSync(dirname(target), { recursive: true });
374
+ chmodSync(source, 0o755);
375
+ try {
376
+ symlinkSync(source, target);
377
+ } catch (error) {
378
+ // 并发 npm 已创建入口时保留其结果。
379
+ if (error.code !== "EEXIST") throw error;
380
+ }
381
+ }
382
+
349
383
  /**
350
384
  * installPackage 保留首次安装意图,将三宿主同步、废弃入口迁出和最终安装状态提交放在同一恢复流程中。
351
385
  * 入参:options(object,可选),可注入 packageRoot、platform、architecture、environment 和 userHome 供安装与测试使用。
@@ -368,6 +402,8 @@ function installPackage(options = {}) {
368
402
  chmodSync(binary, 0o755);
369
403
  }
370
404
 
405
+ restoreGlobalCommand(packageRoot, platform, environment);
406
+
371
407
  if (!shouldInstallCodexSkill(environment)) {
372
408
  return {
373
409
  binary,
@@ -492,6 +528,7 @@ if (require.main === module) {
492
528
  }
493
529
 
494
530
  module.exports = {
531
+ restoreGlobalCommand,
495
532
  formatInstallOutput,
496
533
  installPackage,
497
534
  ensureFirstInstallState,