helloagents 3.0.25 → 3.0.26
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +6 -5
- package/README_CN.md +6 -5
- package/bootstrap-lite.md +2 -2
- package/bootstrap.md +2 -2
- package/gemini-extension.json +1 -1
- package/install.ps1 +12 -6
- package/install.sh +37 -12
- package/package.json +1 -1
- package/scripts/cli-codex-hooks-state.mjs +7 -0
- package/scripts/cli-doctor-codex.mjs +4 -4
- package/scripts/cli-messages.mjs +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helloagents",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.26",
|
|
4
4
|
"description": "HelloAGENTS — The orchestration kernel that makes any AI CLI smarter. Adds intelligent routing, quality verification (Ralph Loop), safety guards, and notifications.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "HelloWind",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helloagents",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.26",
|
|
4
4
|
"description": "HelloAGENTS — Quality-driven orchestration kernel for AI CLIs with intelligent routing, quality verification (Ralph Loop), safety guards, and notifications.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "HelloWind",
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
**A workflow layer for AI coding CLIs: skills, project knowledge, delivery checks, safer config writes, and resumable execution.**
|
|
10
10
|
|
|
11
|
-
[](./package.json)
|
|
12
12
|
[](https://www.npmjs.com/package/helloagents)
|
|
13
13
|
[](./package.json)
|
|
14
14
|
[](./skills)
|
|
@@ -311,7 +311,7 @@ If you omit `--standby` or `--global`, HelloAGENTS first reuses the tracked/dete
|
|
|
311
311
|
|
|
312
312
|
### npm and one-shot script entries
|
|
313
313
|
|
|
314
|
-
Use these when you do not want to depend on the `helloagents` binary being available during package updates. In `HELLOAGENTS=target[:mode]`, target can be `all`, `claude`, `gemini`, or `codex`; mode can be `standby` or `global
|
|
314
|
+
Use these when you do not want to depend on the `helloagents` binary being available during package updates. In `HELLOAGENTS=target[:mode]`, target can be `all`, `claude`, `gemini`, or `codex`; mode can be `standby` or `global`. For install, an omitted mode is treated as `standby`. For update, cleanup, uninstall, and branch switching, an omitted mode is forwarded unchanged so HelloAGENTS can reuse the tracked or detected mode for that CLI first.
|
|
315
315
|
|
|
316
316
|
Host configs use the stable `helloagents-js` entrypoint and runtime root `~/.helloagents/helloagents`, so Node global package paths can change without breaking managed hooks or Codex `notify`. Codex hooks use standalone `~/.codex/hooks.json` instead of adding large hook blocks to `config.toml`, and Codex global plugin roots plus plugin cache now link back to that same stable runtime root.
|
|
317
317
|
|
|
@@ -642,11 +642,12 @@ Default shape:
|
|
|
642
642
|
Codex is rules-file driven by default.
|
|
643
643
|
|
|
644
644
|
- standby writes `~/.codex/AGENTS.md`
|
|
645
|
-
- standby writes a managed `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
645
|
+
- standby writes a portable managed `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
646
646
|
- standby writes a managed `notify = ["helloagents-js", "codex-notify"]` command for closeout notification
|
|
647
647
|
- standby writes silent Codex hooks to `~/.codex/hooks.json`
|
|
648
648
|
- Codex `SessionStart` stays silent and reads the current `~/.helloagents/helloagents.json` at runtime instead of baking a config snapshot into `config.toml`, so first-turn and post-compaction settings stay current
|
|
649
649
|
- install and update also sync HelloAGENTS-managed Codex hook trust state in `~/.codex/config.toml`, so Codex 0.129.0+ does not re-prompt for the managed hooks
|
|
650
|
+
- that hook trust state is machine-local generated metadata derived from the current absolute `~/.codex/hooks.json` path; unlike `model_instructions_file = "~/.codex/AGENTS.md"`, it is not portable config and should be regenerated on each machine
|
|
650
651
|
- standby creates `~/.codex/helloagents -> ~/.helloagents/helloagents`
|
|
651
652
|
- global mode installs the native local-plugin chain, but keeps `~/.helloagents/helloagents` as the single managed runtime source by linking plugin roots, plugin cache, and `~/.codex/helloagents` back to it
|
|
652
653
|
- cleanup removes only the HelloAGENTS-managed hook trust entries and legacy managed notify residues, while keeping user-owned hook state untouched
|
|
@@ -663,10 +664,10 @@ Run all tests:
|
|
|
663
664
|
npm test
|
|
664
665
|
```
|
|
665
666
|
|
|
666
|
-
The current suite includes
|
|
667
|
+
The current suite includes 118 tests and covers:
|
|
667
668
|
|
|
668
669
|
- install, update, uninstall, cleanup, and mode switching
|
|
669
|
-
- one-shot PowerShell lifecycle dispatch for install, update, cleanup, uninstall, and branch switching
|
|
670
|
+
- one-shot PowerShell lifecycle dispatch plus shell-wrapper mode-routing rules for install, update, cleanup, uninstall, and branch switching
|
|
670
671
|
- Claude, Gemini, and Codex config merge and restore behavior
|
|
671
672
|
- Codex managed `model_instructions_file`, `notify`, `hooks.json`, hook trust state, local plugin, marketplace, and cache behavior
|
|
672
673
|
- Codex cleanup of legacy managed notify variants on Windows and canonical managed notify restoration rules
|
package/README_CN.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
**面向 AI 编码 CLI 的工作流层:技能、知识库、交付检查、更安全的配置写入,以及可恢复的执行流程。**
|
|
10
10
|
|
|
11
|
-
[](./package.json)
|
|
12
12
|
[](https://www.npmjs.com/package/helloagents)
|
|
13
13
|
[](./package.json)
|
|
14
14
|
[](./skills)
|
|
@@ -311,7 +311,7 @@ helloagents codex goals enable
|
|
|
311
311
|
|
|
312
312
|
### npm 和一键脚本入口
|
|
313
313
|
|
|
314
|
-
当你不想依赖更新过程中的 `helloagents` 可执行文件时,用 npm 或一键脚本。`HELLOAGENTS=目标[:模式]` 中,目标支持 `all`、`claude`、`gemini`、`codex`;模式支持 `standby`、`global
|
|
314
|
+
当你不想依赖更新过程中的 `helloagents` 可执行文件时,用 npm 或一键脚本。`HELLOAGENTS=目标[:模式]` 中,目标支持 `all`、`claude`、`gemini`、`codex`;模式支持 `standby`、`global`。用于安装时,省略模式按 `standby` 处理;用于更新、清理、卸载和切换分支时,省略模式会原样下传,让 HelloAGENTS 先复用该 CLI 已记录或检测到的模式。
|
|
315
315
|
|
|
316
316
|
宿主配置使用稳定的 `helloagents-js` 入口和运行根目录 `~/.helloagents/helloagents`,Node 全局包路径变化不会破坏受管 hooks 或 Codex `notify`。Codex hooks 使用独立 `~/.codex/hooks.json`,不把大段配置写入 `config.toml`;Codex 全局插件根目录和插件缓存也会回链到这个稳定运行根目录。
|
|
317
317
|
|
|
@@ -644,11 +644,12 @@ UI 任务遵循以下优先级:
|
|
|
644
644
|
Codex 默认走规则文件驱动。
|
|
645
645
|
|
|
646
646
|
- 标准模式写入 `~/.codex/AGENTS.md`
|
|
647
|
-
-
|
|
647
|
+
- 标准模式写入可移植的受管 `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
648
648
|
- 标准模式写入受管 `notify = ["helloagents-js", "codex-notify"]` 命令用于收尾通知
|
|
649
649
|
- 标准模式把静默 Codex hooks 写入 `~/.codex/hooks.json`
|
|
650
650
|
- Codex 的 `SessionStart` 保持静默,并在运行时读取当前 `~/.helloagents/helloagents.json`,不会把配置快照固化进 `config.toml`,因此首次对话和上下文压缩后的设置都能保持最新
|
|
651
651
|
- 安装和更新还会把 HelloAGENTS 受管的 Codex hook trust 状态同步到 `~/.codex/config.toml`,因此 Codex 0.129.0+ 不会再对这些受管 hooks 反复提示确认
|
|
652
|
+
- 这些 hook trust 状态是基于当前机器 `~/.codex/hooks.json` 真实绝对路径生成的本机状态;它不同于 `model_instructions_file = "~/.codex/AGENTS.md"` 这类可移植配置,应在每台机器上重新生成
|
|
652
653
|
- 标准模式创建 `~/.codex/helloagents -> ~/.helloagents/helloagents`
|
|
653
654
|
- 全局模式安装原生本地插件流程,但仍把 `~/.helloagents/helloagents` 作为唯一受管运行时源;插件根目录、插件缓存和 `~/.codex/helloagents` 都会回链到它
|
|
654
655
|
- 清理时只删除 HelloAGENTS 自己写入的 hook trust 条目和旧式受管 notify 残留,不影响用户已有的 hook 状态
|
|
@@ -665,10 +666,10 @@ Codex 默认走规则文件驱动。
|
|
|
665
666
|
npm test
|
|
666
667
|
```
|
|
667
668
|
|
|
668
|
-
当前测试共
|
|
669
|
+
当前测试共 118 项,覆盖:
|
|
669
670
|
|
|
670
671
|
- 安装、更新、卸载、清理和模式切换
|
|
671
|
-
- PowerShell
|
|
672
|
+
- PowerShell 一键脚本分发链路,以及 shell 包装脚本在安装、更新、清理、卸载和分支切换中的模式传递规则
|
|
672
673
|
- Claude、Gemini、Codex 的配置合并与恢复
|
|
673
674
|
- Codex 受管 `model_instructions_file`、`notify`、`hooks.json`、hook trust 状态、本地插件、marketplace 和缓存行为
|
|
674
675
|
- Windows 下 Codex 旧式受管 notify 变体的清理,以及受管 notify 恢复规则
|
package/bootstrap-lite.md
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
### 语言与表述(强制)
|
|
31
31
|
- 所有用户可见文本,包括回复、生成文件、CLI 输出、运行时提示、模板内容、文档与说明,都必须遵守:简洁、自然、准确、合理、不赘述、不冗余、不过度精简
|
|
32
32
|
- 准确优先于压缩:不得为了更短而省略必要的条件、边界、风险、状态、路径、验证结论或下一步动作
|
|
33
|
-
-
|
|
34
|
-
-
|
|
33
|
+
- 不输出黑话、营销话、内部化表述或空泛形容;源码字段名、协议名、命令、路径、配置键等必须保留原名时除外
|
|
34
|
+
- 不输出客套内容、邀约式表述、重复确认、能力陈述或空泛建议
|
|
35
35
|
- 同一概念前后用语保持一致;先给结论再给细节,避免同义反复、重复解释和堆砌近义句
|
|
36
36
|
- 优化既有约束或文案时,优先在原条目内收敛表达;只有边界独立且原条目无法承载时才新增条目,并同步删除重复表述
|
|
37
37
|
|
package/bootstrap.md
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
### 语言与表述(强制)
|
|
31
31
|
- 所有用户可见文本,包括回复、生成文件、CLI 输出、运行时提示、模板内容、文档与说明,都必须遵守:简洁、自然、准确、合理、不赘述、不冗余、不过度精简
|
|
32
32
|
- 准确优先于压缩:不得为了更短而省略必要的条件、边界、风险、状态、路径、验证结论或下一步动作
|
|
33
|
-
-
|
|
34
|
-
-
|
|
33
|
+
- 不输出黑话、营销话、内部化表述或空泛形容;源码字段名、协议名、命令、路径、配置键等必须保留原名时除外
|
|
34
|
+
- 不输出客套内容、邀约式表述、重复确认、能力陈述或空泛建议
|
|
35
35
|
- 同一概念前后用语保持一致;先给结论再给细节,避免同义反复、重复解释和堆砌近义句
|
|
36
36
|
- 优化既有约束或文案时,优先在原条目内收敛表达;只有边界独立且原条目无法承载时才新增条目,并同步删除重复表述
|
|
37
37
|
|
package/gemini-extension.json
CHANGED
package/install.ps1
CHANGED
|
@@ -26,15 +26,14 @@ if ($env:HELLOAGENTS) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
if (-not $Target) { $Target = "all" }
|
|
29
|
-
if (-not $Mode) { $Mode = "standby" }
|
|
30
29
|
$Target = $Target.ToLowerInvariant()
|
|
31
|
-
$Mode = $Mode.ToLowerInvariant()
|
|
30
|
+
if ($Mode) { $Mode = $Mode.ToLowerInvariant() }
|
|
32
31
|
|
|
33
32
|
if (@("all", "claude", "gemini", "codex") -notcontains $Target) {
|
|
34
33
|
throw "Unsupported HELLOAGENTS target: $Target"
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
if (@("standby", "global") -notcontains $Mode) {
|
|
36
|
+
if ($Mode -and @("standby", "global") -notcontains $Mode) {
|
|
38
37
|
throw "Unsupported HELLOAGENTS mode: $Mode"
|
|
39
38
|
}
|
|
40
39
|
|
|
@@ -57,16 +56,23 @@ function Invoke-Npm {
|
|
|
57
56
|
function Enable-PostinstallDeploy {
|
|
58
57
|
$env:HELLOAGENTS_DEPLOY = "1"
|
|
59
58
|
$env:HELLOAGENTS_TARGET = $Target
|
|
60
|
-
|
|
59
|
+
if ($Mode) {
|
|
60
|
+
$env:HELLOAGENTS_MODE = $Mode
|
|
61
|
+
} else {
|
|
62
|
+
$env:HELLOAGENTS_MODE = "standby"
|
|
63
|
+
}
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
function Invoke-HostScript {
|
|
64
67
|
param([string]$ScriptName)
|
|
68
|
+
$scriptArgs = @("explore", "-g", "helloagents", "--", "npm", "run", $ScriptName, "--")
|
|
65
69
|
if ($Target -eq "all") {
|
|
66
|
-
|
|
70
|
+
$scriptArgs += "--all"
|
|
67
71
|
} else {
|
|
68
|
-
|
|
72
|
+
$scriptArgs += $Target
|
|
69
73
|
}
|
|
74
|
+
if ($Mode) { $scriptArgs += "--$Mode" }
|
|
75
|
+
Invoke-Npm -NpmArgs $scriptArgs
|
|
70
76
|
}
|
|
71
77
|
|
|
72
78
|
function Sync-Hosts {
|
package/install.sh
CHANGED
|
@@ -32,7 +32,6 @@ if [ -n "${HELLOAGENTS:-}" ]; then
|
|
|
32
32
|
fi
|
|
33
33
|
|
|
34
34
|
TARGET="${TARGET:-all}"
|
|
35
|
-
MODE="${MODE:-standby}"
|
|
36
35
|
TARGET="$(printf '%s' "$TARGET" | tr '[:upper:]' '[:lower:]')"
|
|
37
36
|
MODE="$(printf '%s' "$MODE" | tr '[:upper:]' '[:lower:]')"
|
|
38
37
|
|
|
@@ -41,10 +40,12 @@ case "$TARGET" in
|
|
|
41
40
|
*) echo "Unsupported HELLOAGENTS target: $TARGET" >&2; exit 1 ;;
|
|
42
41
|
esac
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
if [ -n "$MODE" ]; then
|
|
44
|
+
case "$MODE" in
|
|
45
|
+
standby|global) ;;
|
|
46
|
+
*) echo "Unsupported HELLOAGENTS mode: $MODE" >&2; exit 1 ;;
|
|
47
|
+
esac
|
|
48
|
+
fi
|
|
48
49
|
|
|
49
50
|
if [ -z "$PACKAGE" ]; then
|
|
50
51
|
if [ -n "$BRANCH" ]; then
|
|
@@ -56,32 +57,56 @@ fi
|
|
|
56
57
|
|
|
57
58
|
sync_hosts() {
|
|
58
59
|
if [ "$TARGET" = "all" ]; then
|
|
59
|
-
|
|
60
|
+
if [ -n "$MODE" ]; then
|
|
61
|
+
npm explore -g helloagents -- npm run sync-hosts -- --all "--$MODE"
|
|
62
|
+
else
|
|
63
|
+
npm explore -g helloagents -- npm run sync-hosts -- --all
|
|
64
|
+
fi
|
|
60
65
|
else
|
|
61
|
-
|
|
66
|
+
if [ -n "$MODE" ]; then
|
|
67
|
+
npm explore -g helloagents -- npm run sync-hosts -- "$TARGET" "--$MODE"
|
|
68
|
+
else
|
|
69
|
+
npm explore -g helloagents -- npm run sync-hosts -- "$TARGET"
|
|
70
|
+
fi
|
|
62
71
|
fi
|
|
63
72
|
}
|
|
64
73
|
|
|
65
74
|
cleanup_hosts() {
|
|
66
75
|
if [ "$TARGET" = "all" ]; then
|
|
67
|
-
|
|
76
|
+
if [ -n "$MODE" ]; then
|
|
77
|
+
npm explore -g helloagents -- npm run cleanup-hosts -- --all "--$MODE"
|
|
78
|
+
else
|
|
79
|
+
npm explore -g helloagents -- npm run cleanup-hosts -- --all
|
|
80
|
+
fi
|
|
68
81
|
else
|
|
69
|
-
|
|
82
|
+
if [ -n "$MODE" ]; then
|
|
83
|
+
npm explore -g helloagents -- npm run cleanup-hosts -- "$TARGET" "--$MODE"
|
|
84
|
+
else
|
|
85
|
+
npm explore -g helloagents -- npm run cleanup-hosts -- "$TARGET"
|
|
86
|
+
fi
|
|
70
87
|
fi
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
uninstall_hosts() {
|
|
74
91
|
if [ "$TARGET" = "all" ]; then
|
|
75
|
-
|
|
92
|
+
if [ -n "$MODE" ]; then
|
|
93
|
+
npm explore -g helloagents -- npm run uninstall -- --all "--$MODE"
|
|
94
|
+
else
|
|
95
|
+
npm explore -g helloagents -- npm run uninstall -- --all
|
|
96
|
+
fi
|
|
76
97
|
else
|
|
77
|
-
|
|
98
|
+
if [ -n "$MODE" ]; then
|
|
99
|
+
npm explore -g helloagents -- npm run uninstall -- "$TARGET" "--$MODE"
|
|
100
|
+
else
|
|
101
|
+
npm explore -g helloagents -- npm run uninstall -- "$TARGET"
|
|
102
|
+
fi
|
|
78
103
|
fi
|
|
79
104
|
}
|
|
80
105
|
|
|
81
106
|
enable_postinstall_deploy() {
|
|
82
107
|
export HELLOAGENTS_DEPLOY=1
|
|
83
108
|
export HELLOAGENTS_TARGET="$TARGET"
|
|
84
|
-
export HELLOAGENTS_MODE="$MODE"
|
|
109
|
+
export HELLOAGENTS_MODE="${MODE:-standby}"
|
|
85
110
|
}
|
|
86
111
|
|
|
87
112
|
case "$ACTION" in
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helloagents",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.26",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "HelloAGENTS — The orchestration kernel that makes any AI CLI smarter. Adds intelligent routing, quality verification (Ralph Loop), safety guards, and notifications.",
|
|
6
6
|
"author": "HelloWind",
|
|
@@ -25,6 +25,13 @@ const EVENTS_WITH_MATCHER = new Set([
|
|
|
25
25
|
'SessionStart',
|
|
26
26
|
])
|
|
27
27
|
|
|
28
|
+
// Codex persists hook trust under `[hooks.state."<key>"]`, where the key is
|
|
29
|
+
// derived from the discovered hooks.json absolute path plus event/group/handler
|
|
30
|
+
// indexes. That makes hook trust machine-local materialized state rather than a
|
|
31
|
+
// portable config value. Keep portable config such as
|
|
32
|
+
// `model_instructions_file = "~/.codex/AGENTS.md"` separate from this generated
|
|
33
|
+
// trust metadata and regenerate it on each machine during install/update.
|
|
34
|
+
|
|
28
35
|
const HOOK_STATE_HEADER_RE = /^\[hooks\.state\."((?:\\.|[^"])*)"\](?:\s*#.*)?$/
|
|
29
36
|
|
|
30
37
|
function normalizeLineEndings(text = '') {
|
|
@@ -106,8 +106,8 @@ function appendCodexStandbyIssues(runtime, issues, checks) {
|
|
|
106
106
|
if (!checks.codexHooksFeature) issues.push(buildDoctorIssue(runtime, 'codex-hooks-feature-disabled', 'Codex hooks 功能被显式关闭', 'Codex hooks feature is explicitly disabled'))
|
|
107
107
|
if (!checks.standaloneHooks) issues.push(buildDoctorIssue(runtime, 'standby-hooks-missing', 'standby `~/.codex/hooks.json` 缺少 HelloAGENTS hooks', 'Standby `~/.codex/hooks.json` is missing HelloAGENTS hooks'))
|
|
108
108
|
if (checks.standaloneHooks && !checks.standaloneHooksMatch) issues.push(buildDoctorIssue(runtime, 'standby-hooks-drift', 'standby `~/.codex/hooks.json` 与当前 hooks-codex.json 不一致', 'Standby `~/.codex/hooks.json` differs from the current hooks-codex.json'))
|
|
109
|
-
if (checks.standaloneHooks && !checks.managedHookTrust) issues.push(buildDoctorIssue(runtime, 'standby-hook-trust-missing', 'standby `config.toml` 缺少 HelloAGENTS hooks trust', 'Standby `config.toml` is missing HelloAGENTS hook trust metadata'))
|
|
110
|
-
if (checks.standaloneHooks && checks.managedHookTrust && !checks.managedHookTrustMatch) issues.push(buildDoctorIssue(runtime, 'standby-hook-trust-drift', 'standby hooks trust
|
|
109
|
+
if (checks.standaloneHooks && !checks.managedHookTrust) issues.push(buildDoctorIssue(runtime, 'standby-hook-trust-missing', 'standby `config.toml` 缺少 HelloAGENTS hooks trust 本机状态', 'Standby `config.toml` is missing HelloAGENTS machine-local hook trust metadata'))
|
|
110
|
+
if (checks.standaloneHooks && checks.managedHookTrust && !checks.managedHookTrustMatch) issues.push(buildDoctorIssue(runtime, 'standby-hook-trust-drift', 'standby hooks trust 本机状态与当前 hooks 定义或本机路径不一致', 'Standby machine-local hook trust metadata differs from the current hooks definition or local path'))
|
|
111
111
|
if (checks.pluginRoot || checks.pluginCache || checks.marketplaceEntry || checks.pluginEnabled) {
|
|
112
112
|
issues.push(buildDoctorIssue(runtime, 'standby-global-residue', 'standby 模式下仍残留 global 插件文件或配置', 'Global plugin artifacts still remain while Codex is in standby mode'))
|
|
113
113
|
}
|
|
@@ -132,8 +132,8 @@ function appendCodexGlobalIssues(runtime, issues, checks, pluginVersion, cacheVe
|
|
|
132
132
|
if (!checks.codexHooksFeature) issues.push(buildDoctorIssue(runtime, 'codex-hooks-feature-disabled', 'Codex hooks 功能被显式关闭', 'Codex hooks feature is explicitly disabled'))
|
|
133
133
|
if (!checks.standaloneHooks) issues.push(buildDoctorIssue(runtime, 'global-hooks-missing', 'global `~/.codex/hooks.json` 缺少 HelloAGENTS hooks', 'Global `~/.codex/hooks.json` is missing HelloAGENTS hooks'))
|
|
134
134
|
if (checks.standaloneHooks && !checks.standaloneHooksMatch) issues.push(buildDoctorIssue(runtime, 'global-hooks-drift', 'global `~/.codex/hooks.json` 与当前 hooks-codex.json 不一致', 'Global `~/.codex/hooks.json` differs from the current hooks-codex.json'))
|
|
135
|
-
if (checks.standaloneHooks && !checks.managedHookTrust) issues.push(buildDoctorIssue(runtime, 'global-hook-trust-missing', 'global `config.toml` 缺少 HelloAGENTS hooks trust', 'Global `config.toml` is missing HelloAGENTS hook trust metadata'))
|
|
136
|
-
if (checks.standaloneHooks && checks.managedHookTrust && !checks.managedHookTrustMatch) issues.push(buildDoctorIssue(runtime, 'global-hook-trust-drift', 'global hooks trust
|
|
135
|
+
if (checks.standaloneHooks && !checks.managedHookTrust) issues.push(buildDoctorIssue(runtime, 'global-hook-trust-missing', 'global `config.toml` 缺少 HelloAGENTS hooks trust 本机状态', 'Global `config.toml` is missing HelloAGENTS machine-local hook trust metadata'))
|
|
136
|
+
if (checks.standaloneHooks && checks.managedHookTrust && !checks.managedHookTrustMatch) issues.push(buildDoctorIssue(runtime, 'global-hook-trust-drift', 'global hooks trust 本机状态与当前 hooks 定义或本机路径不一致', 'Global machine-local hook trust metadata differs from the current hooks definition or local path'))
|
|
137
137
|
if (pluginVersion && !checks.pluginVersionMatch) issues.push(buildDoctorIssue(runtime, 'global-plugin-version-drift', 'global 插件根目录版本与当前包版本不一致', 'Global plugin root version does not match the current package version'))
|
|
138
138
|
if (cacheVersion && !checks.pluginCacheVersionMatch) issues.push(buildDoctorIssue(runtime, 'global-plugin-cache-version-drift', 'global 插件缓存版本与当前包版本不一致', 'Global plugin cache version does not match the current package version'))
|
|
139
139
|
}
|
package/scripts/cli-messages.mjs
CHANGED
|
@@ -110,7 +110,7 @@ ${msg('分支切换', 'Branch switching')}:
|
|
|
110
110
|
${msg('诊断', 'Diagnostics')}:
|
|
111
111
|
helloagents doctor
|
|
112
112
|
helloagents doctor codex --json
|
|
113
|
-
${msg('检查 carrier、链接、hooks、配置注入、Codex 插件安装、受管 model_instructions_file
|
|
113
|
+
${msg('检查 carrier、链接、hooks、配置注入、Codex 插件安装、受管 model_instructions_file 指向、Codex hook trust 本机状态与版本漂移', 'Checks carriers, links, hooks, config injections, Codex plugin installation, managed model_instructions_file targeting, machine-local Codex hook trust state, and version drift')}
|
|
114
114
|
|
|
115
115
|
${msg('Codex /goal', 'Codex /goal')}:
|
|
116
116
|
helloagents codex goals status
|