@twinklerg/coden 0.1.6 → 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.
Files changed (3) hide show
  1. package/README.md +14 -5
  2. package/dist/index.js +262 -255
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -34,6 +34,7 @@ just check
34
34
  export CODEN_OPENAI_API_KEY=...
35
35
  coden "修复当前项目的测试失败"
36
36
  coden -p --auto "实现功能并运行测试"
37
+ coden --smart-approve "实现功能并运行测试"
37
38
 
38
39
  export CODEN_ANTHROPIC_API_KEY=...
39
40
  coden --provider anthropic --model claude-sonnet-4-20250514
@@ -46,7 +47,7 @@ coden --resume # 列出当前工作区的会话
46
47
 
47
48
  支持 `/help`、`/skills`、`/session`、`/sessions`、`/compact`、`/reload`、`/new` 和 `/quit`。启动横幅会显示当前版本与 16 位 workspace hash。
48
49
 
49
- 核心选项:`--provider`、`--model`、`-p/--print`、`--resume [session-id]`、`--auto`、`--allow-outside-workspace`、`--verbose`、`--max-steps`、可重复的 `--plugin` 和 `--version`。
50
+ 核心选项:`--provider`、`--model`、`-p/--print`、`--resume [session-id]`、`--smart-approve`、`--auto`、`--allow-outside-workspace`、`--verbose`、`--max-steps`、可重复的 `--plugin` 和 `--version`。
50
51
 
51
52
  ## 配置
52
53
 
@@ -56,6 +57,8 @@ coden --resume # 列出当前工作区的会话
56
57
  {
57
58
  "provider": "openai",
58
59
  "model": "gpt-5-mini",
60
+ "approvalModel": "gpt-5-mini",
61
+ "approvalStrictness": "medium",
59
62
  "maxSteps": 20,
60
63
  "contextWindow": 128000,
61
64
  "reservedOutputTokens": 8192,
@@ -71,17 +74,22 @@ coden --resume # 列出当前工作区的会话
71
74
 
72
75
  `env` 字段(用户级与项目级均可)声明环境变量(含敏感密钥),加载配置时注入进程环境,无需手动 `export`。两级 `env` 合并时**项目级逐键覆盖用户级**;注入**不覆盖** `shell` 中已导出的同名变量(CLI > 环境变量 > 配置 env)。密钥请放 `~/.config/coden/` 或 `.coden/`(已被 `gitignore` 忽略、默认不入库),不要放进会被提交、共享或分发的目录。
73
76
 
77
+ `approvalModel` 使用与任务相同的 provider 和凭据,未设置时回退到 `model`。`approvalStrictness` 只能是 `soft`、`medium` 或 `hard`,默认 `medium`。
78
+
74
79
  会话和 trace 位于 `$XDG_DATA_HOME/coden/sessions/<workspace-hash>/`(默认 `~/.local/share/coden`)。
75
80
 
76
81
  ## Agent Skills
77
82
 
78
- CodeN 兼容 [Agent Skills](https://agentskills.io/specification) 的渐进式披露格式。启动时只扫描以下两个标准目录的直接子目录;每个候选项必须为 `<skill-name>/SKILL.md`:
83
+ CodeN 兼容 [Agent Skills](https://agentskills.io/specification) 的渐进式披露格式。启动时扫描以下目录的直接子目录;每个候选项必须为 `<skill-name>/SKILL.md`:
79
84
 
80
85
  ```text
81
86
  ~/.agents/skills/<skill-name>/SKILL.md
87
+ <workspace>/skills/<skill-name>/SKILL.md
82
88
  <workspace>/.agents/skills/<skill-name>/SKILL.md
83
89
  ```
84
90
 
91
+ 其中 `skills/` 用于仓库随附、可公开分发的 Skill,`.agents/skills/` 用于本地安装的项目级 Skill。同名条目按上述顺序覆盖,因此本地安装的项目级 Skill 优先级最高。
92
+
85
93
  项目级 Skill 覆盖同名用户级 Skill。`SKILL.md` 使用 YAML frontmatter,最小内容如下:
86
94
 
87
95
  ```markdown
@@ -97,7 +105,7 @@ Read the relevant files before changing them.
97
105
 
98
106
  启动上下文只包含有效 Skill 的名称和描述,不会注入完整正文。任务匹配时,模型调用只接受名称的 `activate_skill` 加载完整说明和 Skill 绝对根目录;引用的 `references/`、`scripts/` 等资源仍按需使用普通工具读取。`/skills` 不调用模型,按名称列出当前生效的名称、描述和 `project`/`user` 来源。Skill 仅在启动时发现,文件变更需重启后生效。无效、超限或通过符号链接逃逸扫描根目录的条目会被跳过;`--verbose` 显示原因。
99
107
 
100
- 仓库提供 [`coden-tool-plugin-development`](.agents/skills/coden-tool-plugin-development/SKILL.md) Skill,用于指导兼容 Agent Skills 的编程智能体创建、修改和测试本地 TypeScript 或 npm 分发的 CodeN 工具插件,并完成发布前验证。可从本仓库安装指定 Skill:
108
+ 仓库提供 [`coden-tool-plugin-development`](skills/coden-tool-plugin-development/SKILL.md) Skill,用于指导兼容 Agent Skills 的编程智能体创建、修改和测试本地 TypeScript 或 npm 分发的 CodeN 工具插件,并完成发布前验证。可从本仓库安装指定 Skill:
101
109
 
102
110
  ```bash
103
111
  npx skills add TwinklerG/CodeN --skill coden-tool-plugin-development
@@ -109,7 +117,8 @@ npx skills add TwinklerG/CodeN --skill coden-tool-plugin-development
109
117
 
110
118
  | 模式 | 工作区内 `read`/`write`/`edit` | 工作区外 `read`/`write`/`edit` |
111
119
  | --- | --- | --- |
112
- | 默认交互模式 | 保持原有风险确认 | 作为修改操作请求逐次或会话授权 |
120
+ | 默认交互模式 | `read` 自动允许;`write`/`edit` 人工确认 | 作为修改操作请求逐次或会话授权 |
121
+ | `--smart-approve` | `read` 自动允许;普通 `write`/`edit` 逐次由独立 LLM 审查,不确定时人工确认 | 直接人工确认 |
113
122
  | `--auto` | 自动允许 | 返回 `permission.outside_workspace_denied` |
114
123
  | `--auto --allow-outside-workspace` | 自动允许 | 自动允许 |
115
124
 
@@ -125,7 +134,7 @@ CodeN 扫描:
125
134
  - `<workspace>/.coden/plugins/*.ts`
126
135
  - `--plugin` 或配置中的附加目录
127
136
 
128
- 项目插件首次加载需信任确认(`--auto` 跳过)。插件应避免模块顶层副作用;`/reload` 基于内容哈希重建模块并原子替换 Registry(内容未变的插件复用已加载模块)。
137
+ 项目插件首次加载始终需人工信任确认;`--auto` 只跳过工具调用确认,不会跳过工作区插件信任。智能审批对每次普通工作区内修改独立审查;危险、工作区外、无效输出、超时或模型故障都转人工,且没有输入时失败关闭。LLM 审批不是沙箱。插件应避免模块顶层副作用;`/reload` 基于内容哈希重建模块并原子替换 Registry(内容未变的插件复用已加载模块)。
129
138
 
130
139
  **插件必须是自包含单文件**:Bun 的模块缓存按真实路径去重且忽略查询参数,因此 CodeN 通过 `data:text/typescript` URL 加载插件源码以保证重载生效——相对路径导入(`./helper.ts`)无法解析,npm 包导入(`import pc from "picocolors"`)正常工作。
131
140