helloagents 3.0.16-beta.1 → 3.0.17-beta.1
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 +13 -15
- package/README_CN.md +13 -15
- package/gemini-extension.json +1 -1
- package/package.json +2 -1
- package/scripts/cli-codex-config.mjs +2 -8
- package/scripts/cli-messages.mjs +1 -1
- package/scripts/cli-runtime-root.mjs +24 -2
- package/scripts/cli-utils.mjs +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helloagents",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.17-beta.1",
|
|
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.17-beta.1",
|
|
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)
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
## Contents
|
|
31
31
|
|
|
32
32
|
- [What HelloAGENTS Does](#what-helloagents-does)
|
|
33
|
-
- [What Changed Since v3.0.
|
|
33
|
+
- [What Changed Since v3.0.16](#what-changed-since-v3016)
|
|
34
34
|
- [Core Features](#core-features)
|
|
35
35
|
- [Quick Start](#quick-start)
|
|
36
36
|
- [CLI Management](#cli-management)
|
|
@@ -77,17 +77,15 @@ HelloAGENTS adds a workflow layer on top of Claude Code, Gemini CLI, and Codex C
|
|
|
77
77
|
| Completion is vague | Natural language says “done” | Delivery checks use state, evidence, and verification |
|
|
78
78
|
| Config writes are risky | CLI files can drift | Install, update, cleanup, and doctor flows check managed files |
|
|
79
79
|
|
|
80
|
-
## What Changed Since v3.0.
|
|
80
|
+
## What Changed Since v3.0.16
|
|
81
81
|
|
|
82
|
-
These are the main user-visible changes in `v3.0.
|
|
82
|
+
These are the main user-visible changes in `v3.0.17`, compared with `v3.0.16 beta`:
|
|
83
83
|
|
|
84
|
-
-
|
|
85
|
-
- Codex
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
- UI rule boundaries are clearer: the shared UI baseline is the minimum quality line, and `hello-ui` adds concrete design, implementation, and visual validation rules in global mode, activated projects, or explicit UI workflows.
|
|
90
|
-
- One-shot installers now support `HELLOAGENTS_ACTION=cleanup` for host cleanup without uninstalling the package.
|
|
84
|
+
- Managed host configuration now uses `helloagents-js.cmd` as the single stable entrypoint across Windows, macOS, and Linux.
|
|
85
|
+
- Codex `notify` now writes `notify = ["helloagents-js.cmd", "codex-notify"]`, so a synced `config.toml` no longer needs OS-specific command names.
|
|
86
|
+
- Claude Code and Gemini CLI standby hooks now use the same managed entrypoint as Codex, keeping host configuration wording and behavior consistent.
|
|
87
|
+
- The package exposes `helloagents-js.cmd` as an npm bin alias while keeping the runtime command path independent of Node global package locations.
|
|
88
|
+
- Runtime-root refresh now retries transient Windows filesystem rename errors, reducing occasional update/install failures when files are still being released.
|
|
91
89
|
|
|
92
90
|
## Core Features
|
|
93
91
|
|
|
@@ -235,10 +233,10 @@ The CLI manages host files explicitly:
|
|
|
235
233
|
npm install -g helloagents
|
|
236
234
|
```
|
|
237
235
|
|
|
238
|
-
If another executable named `helloagents` already exists in your `PATH`, use the stable alias:
|
|
236
|
+
If another executable named `helloagents` already exists in your `PATH`, use the stable managed-entry alias:
|
|
239
237
|
|
|
240
238
|
```bash
|
|
241
|
-
helloagents-js
|
|
239
|
+
helloagents-js.cmd
|
|
242
240
|
```
|
|
243
241
|
|
|
244
242
|
By default, `postinstall` installs the package command, initializes `~/.helloagents/helloagents.json`, and syncs runtime files to `~/.helloagents/helloagents`. No host CLI is deployed unless you set `HELLOAGENTS=target[:mode]`, such as `HELLOAGENTS=codex:global`.
|
|
@@ -316,7 +314,7 @@ If you omit `--standby` or `--global`, HelloAGENTS first reuses the tracked/dete
|
|
|
316
314
|
|
|
317
315
|
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`, and defaults to `standby`.
|
|
318
316
|
|
|
319
|
-
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`.
|
|
317
|
+
Host configs use the stable `helloagents-js.cmd` entrypoint and runtime root `~/.helloagents/helloagents`, so Node global package paths can change without breaking managed hooks or Codex `notify`. The same managed `config.toml` works across Windows, macOS, and Linux.
|
|
320
318
|
|
|
321
319
|
#### npm commands
|
|
322
320
|
|
|
@@ -643,7 +641,7 @@ Codex is rules-file driven by default.
|
|
|
643
641
|
|
|
644
642
|
- standby writes `~/.codex/AGENTS.md`
|
|
645
643
|
- standby writes a managed `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
646
|
-
- standby writes a managed `notify = ["helloagents-js", "codex-notify"]` command for closeout notification
|
|
644
|
+
- standby writes a managed `notify = ["helloagents-js.cmd", "codex-notify"]` command for closeout notification
|
|
647
645
|
- standby creates `~/.codex/helloagents -> ~/.helloagents/helloagents`
|
|
648
646
|
- global mode installs the native local-plugin chain
|
|
649
647
|
- HelloAGENTS does not enable Codex hooks by default
|
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)
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
## 目录
|
|
31
31
|
|
|
32
32
|
- [HelloAGENTS 做什么](#helloagents-做什么)
|
|
33
|
-
- [相对 v3.0.
|
|
33
|
+
- [相对 v3.0.16 的真实变化](#相对-v3016-的真实变化)
|
|
34
34
|
- [核心功能](#核心功能)
|
|
35
35
|
- [快速开始](#快速开始)
|
|
36
36
|
- [CLI 管理](#cli-管理)
|
|
@@ -77,17 +77,15 @@ HelloAGENTS 叠加在 Claude Code、Gemini CLI 和 Codex CLI 之上,帮助模
|
|
|
77
77
|
| 完成态模糊 | 自然语言说“完成” | 按状态、证据和验证结果交付 |
|
|
78
78
|
| 配置容易漂移 | CLI 文件可能不一致 | 安装、更新、清理和 doctor 会检查受管文件 |
|
|
79
79
|
|
|
80
|
-
## 相对 v3.0.
|
|
80
|
+
## 相对 v3.0.16 的真实变化
|
|
81
81
|
|
|
82
|
-
下面是当前 `v3.0.
|
|
82
|
+
下面是当前 `v3.0.17` 相对 `v3.0.16 beta` 的主要可见变化:
|
|
83
83
|
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
- UI 规则边界更清晰:共享 UI 基线是最低质量线;在全局模式、已激活项目或显式 UI 工作流中,`hello-ui` 补充具体设计、实现和视觉验收规则。
|
|
90
|
-
- 一键安装脚本新增 `HELLOAGENTS_ACTION=cleanup`,可只清理宿主集成而不卸载包。
|
|
84
|
+
- 受管宿主配置统一使用 `helloagents-js.cmd` 作为 Windows、macOS 和 Linux 三端稳定入口。
|
|
85
|
+
- Codex `notify` 统一写入 `notify = ["helloagents-js.cmd", "codex-notify"]`,同步同一份 `config.toml` 时不再需要区分系统。
|
|
86
|
+
- Claude Code 与 Gemini CLI 的标准模式 hooks 也使用同一受管入口,与 Codex 的配置行为和文档表述保持一致。
|
|
87
|
+
- npm 包新增 `helloagents-js.cmd` bin alias,同时保持运行命令不依赖 Node 全局包的实际安装路径。
|
|
88
|
+
- 稳定运行根目录刷新增加 Windows 临时文件系统重试,减少文件释放延迟导致的偶发更新/安装失败。
|
|
91
89
|
|
|
92
90
|
## 核心功能
|
|
93
91
|
|
|
@@ -235,10 +233,10 @@ CLI 显式管理宿主文件:
|
|
|
235
233
|
npm install -g helloagents
|
|
236
234
|
```
|
|
237
235
|
|
|
238
|
-
如果系统里已经有别的 `helloagents`
|
|
236
|
+
如果系统里已经有别的 `helloagents` 可执行文件,可以使用稳定的受管入口别名:
|
|
239
237
|
|
|
240
238
|
```bash
|
|
241
|
-
helloagents-js
|
|
239
|
+
helloagents-js.cmd
|
|
242
240
|
```
|
|
243
241
|
|
|
244
242
|
默认情况下,`postinstall` 会安装包命令、初始化 `~/.helloagents/helloagents.json`,并把运行时文件同步到 `~/.helloagents/helloagents`。如果希望 npm 在安装或更新后直接部署,设置 `HELLOAGENTS=目标[:模式]`,例如 `HELLOAGENTS=codex:global`。
|
|
@@ -316,7 +314,7 @@ helloagents doctor codex --json
|
|
|
316
314
|
|
|
317
315
|
当你不想依赖更新过程中的 `helloagents` 可执行文件时,用 npm 或一键脚本。`HELLOAGENTS=目标[:模式]` 中,目标支持 `all`、`claude`、`gemini`、`codex`;模式支持 `standby`、`global`,省略时默认 `standby`。
|
|
318
316
|
|
|
319
|
-
宿主配置使用稳定的 `helloagents-js` 入口和运行根目录 `~/.helloagents/helloagents`,Node 全局包路径变化不会破坏受管 hooks 或 Codex `notify
|
|
317
|
+
宿主配置使用稳定的 `helloagents-js.cmd` 入口和运行根目录 `~/.helloagents/helloagents`,Node 全局包路径变化不会破坏受管 hooks 或 Codex `notify`。同一份受管 `config.toml` 可在 Windows、macOS 和 Linux 之间同步。
|
|
320
318
|
|
|
321
319
|
#### npm 命令
|
|
322
320
|
|
|
@@ -645,7 +643,7 @@ Codex 默认走规则文件驱动。
|
|
|
645
643
|
|
|
646
644
|
- 标准模式写入 `~/.codex/AGENTS.md`
|
|
647
645
|
- 标准模式写入受管 `model_instructions_file = "~/.codex/AGENTS.md"`
|
|
648
|
-
- 标准模式写入受管 `notify = ["helloagents-js", "codex-notify"]` 命令用于收尾通知
|
|
646
|
+
- 标准模式写入受管 `notify = ["helloagents-js.cmd", "codex-notify"]` 命令用于收尾通知
|
|
649
647
|
- 标准模式创建 `~/.codex/helloagents -> ~/.helloagents/helloagents`
|
|
650
648
|
- 全局模式安装原生本地插件流程
|
|
651
649
|
- HelloAGENTS 默认不启用 Codex hooks
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helloagents",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.17-beta.1",
|
|
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",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"bin": {
|
|
14
14
|
"helloagents": "cli.mjs",
|
|
15
15
|
"helloagents-js": "cli.mjs",
|
|
16
|
+
"helloagents-js.cmd": "cli.mjs",
|
|
16
17
|
"helloagents-turn-state": "scripts/turn-state-cli.mjs"
|
|
17
18
|
},
|
|
18
19
|
"scripts": {
|
|
@@ -7,9 +7,7 @@ import {
|
|
|
7
7
|
export const CODEX_PLUGIN_CONFIG_HEADER = '[plugins."helloagents@local-plugins"]'
|
|
8
8
|
export const CODEX_MANAGED_TOML_COMMENT = '# helloagents-managed'
|
|
9
9
|
export const CODEX_MANAGED_MODEL_INSTRUCTIONS_PATH = '~/.codex/AGENTS.md'
|
|
10
|
-
export const CODEX_MANAGED_NOTIFY_COMMAND =
|
|
11
|
-
? 'helloagents-js.cmd'
|
|
12
|
-
: 'helloagents-js'
|
|
10
|
+
export const CODEX_MANAGED_NOTIFY_COMMAND = 'helloagents-js.cmd'
|
|
13
11
|
export const CODEX_MANAGED_NOTIFY_VALUE = `["${CODEX_MANAGED_NOTIFY_COMMAND}", "codex-notify"]`
|
|
14
12
|
|
|
15
13
|
function normalizePath(value = '') {
|
|
@@ -33,11 +31,7 @@ export function isManagedCodexModelInstruction(line = '') {
|
|
|
33
31
|
|
|
34
32
|
export function isManagedCodexNotify(line = '') {
|
|
35
33
|
const value = String(line || '').replace(/\\/g, '/')
|
|
36
|
-
return value.includes(
|
|
37
|
-
|| (
|
|
38
|
-
value.includes('helloagents-js')
|
|
39
|
-
&& value.includes('codex-notify')
|
|
40
|
-
)
|
|
34
|
+
return value.includes(CODEX_MANAGED_NOTIFY_VALUE)
|
|
41
35
|
}
|
|
42
36
|
|
|
43
37
|
export function isManagedCodexBackupInstruction(line = '') {
|
package/scripts/cli-messages.mjs
CHANGED
|
@@ -87,7 +87,7 @@ HelloAGENTS v${pkgVersion} — The orchestration kernel for AI CLIs
|
|
|
87
87
|
${msg('安装', 'Install')}:
|
|
88
88
|
npm install -g helloagents ${msg('(安装命令并同步稳定运行根目录;CLI 部署需显式执行 helloagents install ...)', '(installs the command and syncs the stable runtime root; deploy to CLIs explicitly with helloagents install ...)')}
|
|
89
89
|
HELLOAGENTS=codex:global npm install -g helloagents
|
|
90
|
-
helloagents-js
|
|
90
|
+
helloagents-js.cmd ${msg('(受管宿主配置的跨平台稳定入口)', '(cross-platform stable entrypoint for managed host configs)')}
|
|
91
91
|
|
|
92
92
|
${msg('模式切换', 'Mode switching')}:
|
|
93
93
|
helloagents --global ${msg('全局模式(自动尝试 Claude/Gemini 插件或扩展;Codex 自动装原生本地插件)', 'Global mode (auto-attempts Claude/Gemini plugins or extensions; native local plugin auto-install for Codex)')}
|
|
@@ -43,6 +43,26 @@ function samePath(left, right) {
|
|
|
43
43
|
return process.platform === 'win32' ? a.toLowerCase() === b.toLowerCase() : a === b
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
function wait(ms) {
|
|
47
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function retryTransientFs(operation) {
|
|
51
|
+
let lastError
|
|
52
|
+
for (let attempt = 0; attempt < 6; attempt += 1) {
|
|
53
|
+
try {
|
|
54
|
+
return operation()
|
|
55
|
+
} catch (error) {
|
|
56
|
+
lastError = error
|
|
57
|
+
if (!['EPERM', 'EBUSY', 'ENOTEMPTY'].includes(error?.code) || attempt === 5) {
|
|
58
|
+
throw error
|
|
59
|
+
}
|
|
60
|
+
wait(40 * (attempt + 1))
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
throw lastError
|
|
64
|
+
}
|
|
65
|
+
|
|
46
66
|
/** Sync package runtime files into the stable root without copying repo-only files. */
|
|
47
67
|
export function syncRuntimeRoot(sourceRoot, runtimeRoot) {
|
|
48
68
|
const source = resolve(sourceRoot)
|
|
@@ -57,8 +77,10 @@ export function syncRuntimeRoot(sourceRoot, runtimeRoot) {
|
|
|
57
77
|
|
|
58
78
|
try {
|
|
59
79
|
copyEntries(source, staging, RUNTIME_ROOT_ENTRIES)
|
|
60
|
-
|
|
61
|
-
|
|
80
|
+
retryTransientFs(() => {
|
|
81
|
+
removeIfExists(target)
|
|
82
|
+
renameSync(staging, target)
|
|
83
|
+
})
|
|
62
84
|
return { synced: true, root: target }
|
|
63
85
|
} catch (error) {
|
|
64
86
|
removeIfExists(staging)
|
package/scripts/cli-utils.mjs
CHANGED
|
@@ -132,9 +132,9 @@ export function cleanSettingsHooks(settingsPath, cleanPermissions = false) {
|
|
|
132
132
|
|
|
133
133
|
function rewriteHookCommandToCli(command = '', pathVar = '') {
|
|
134
134
|
const replacements = new Map([
|
|
135
|
-
[`node "${pathVar}/scripts/notify.mjs"`, 'helloagents-js notify'],
|
|
136
|
-
[`node "${pathVar}/scripts/guard.mjs"`, 'helloagents-js guard'],
|
|
137
|
-
[`node "${pathVar}/scripts/ralph-loop.mjs"`, 'helloagents-js ralph-loop'],
|
|
135
|
+
[`node "${pathVar}/scripts/notify.mjs"`, 'helloagents-js.cmd notify'],
|
|
136
|
+
[`node "${pathVar}/scripts/guard.mjs"`, 'helloagents-js.cmd guard'],
|
|
137
|
+
[`node "${pathVar}/scripts/ralph-loop.mjs"`, 'helloagents-js.cmd ralph-loop'],
|
|
138
138
|
]);
|
|
139
139
|
|
|
140
140
|
let next = command;
|