@twinklerg/coden 0.1.5 → 0.1.6
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 +43 -5
- package/dist/index.js +343 -193
- package/dist/plugin/index.d.ts +6 -0
- package/dist/plugin/index.js +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ CodeN(Code NJU)是一个用 TypeScript 独立实现的极简编程智能体
|
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
bun add -g @twinklerg/coden # 或 npm install -g @twinklerg/coden
|
|
13
|
-
coden --version # 0.1.
|
|
13
|
+
coden --version # 0.1.6
|
|
14
14
|
coden --help
|
|
15
15
|
```
|
|
16
16
|
|
|
@@ -44,9 +44,9 @@ coden --resume # 列出当前工作区的会话
|
|
|
44
44
|
|
|
45
45
|
无 prompt 时进入 REPL。交互式 REPL 支持完整多行编辑:Enter 提交;终端可区分该按键时,Shift+Enter 插入换行;所有终端均可在行尾输入单个 `\` 后按 Enter 继续下一行(`\\` 表示保留一个字面反斜杠)。支持多行粘贴、跨行方向键编辑和当前进程内输入历史。传统终端若无法区分 Shift+Enter,请使用行尾 `\`。
|
|
46
46
|
|
|
47
|
-
支持 `/help`、`/session`、`/sessions`、`/compact`、`/reload`、`/new` 和 `/quit`。启动横幅会显示当前版本与 16 位 workspace hash。
|
|
47
|
+
支持 `/help`、`/skills`、`/session`、`/sessions`、`/compact`、`/reload`、`/new` 和 `/quit`。启动横幅会显示当前版本与 16 位 workspace hash。
|
|
48
48
|
|
|
49
|
-
核心选项:`--provider`、`--model`、`-p/--print`、`--resume [session-id]`、`--auto`、`--verbose`、`--max-steps`、可重复的 `--plugin` 和 `--version`。
|
|
49
|
+
核心选项:`--provider`、`--model`、`-p/--print`、`--resume [session-id]`、`--auto`、`--allow-outside-workspace`、`--verbose`、`--max-steps`、可重复的 `--plugin` 和 `--version`。
|
|
50
50
|
|
|
51
51
|
## 配置
|
|
52
52
|
|
|
@@ -73,11 +73,49 @@ coden --resume # 列出当前工作区的会话
|
|
|
73
73
|
|
|
74
74
|
会话和 trace 位于 `$XDG_DATA_HOME/coden/sessions/<workspace-hash>/`(默认 `~/.local/share/coden`)。
|
|
75
75
|
|
|
76
|
+
## Agent Skills
|
|
77
|
+
|
|
78
|
+
CodeN 兼容 [Agent Skills](https://agentskills.io/specification) 的渐进式披露格式。启动时只扫描以下两个标准目录的直接子目录;每个候选项必须为 `<skill-name>/SKILL.md`:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
~/.agents/skills/<skill-name>/SKILL.md
|
|
82
|
+
<workspace>/.agents/skills/<skill-name>/SKILL.md
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
项目级 Skill 覆盖同名用户级 Skill。`SKILL.md` 使用 YAML frontmatter,最小内容如下:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
---
|
|
89
|
+
name: pdf-processing
|
|
90
|
+
description: Use when reading or modifying PDF documents.
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
# PDF workflow
|
|
94
|
+
|
|
95
|
+
Read the relevant files before changing them.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
启动上下文只包含有效 Skill 的名称和描述,不会注入完整正文。任务匹配时,模型调用只接受名称的 `activate_skill` 加载完整说明和 Skill 绝对根目录;引用的 `references/`、`scripts/` 等资源仍按需使用普通工具读取。`/skills` 不调用模型,按名称列出当前生效的名称、描述和 `project`/`user` 来源。Skill 仅在启动时发现,文件变更需重启后生效。无效、超限或通过符号链接逃逸扫描根目录的条目会被跳过;`--verbose` 显示原因。
|
|
99
|
+
|
|
100
|
+
仓库提供 [`coden-tool-plugin-development`](.agents/skills/coden-tool-plugin-development/SKILL.md) Skill,用于指导兼容 Agent Skills 的编程智能体创建、修改和测试本地 TypeScript 或 npm 分发的 CodeN 工具插件,并完成发布前验证。可从本仓库安装指定 Skill:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx skills add TwinklerG/CodeN --skill coden-tool-plugin-development
|
|
104
|
+
```
|
|
105
|
+
|
|
76
106
|
## 工具与权限
|
|
77
107
|
|
|
78
|
-
|
|
108
|
+
默认提供 `read`、`write`、`edit`、`bash` 和只读的 `activate_skill`;没有有效 Skill 时,激活工具会返回 `skill.not_found`。结构化文件工具按最终真实路径(新文件按最近存在的真实父目录)分类,避免符号链接绕过:
|
|
109
|
+
|
|
110
|
+
| 模式 | 工作区内 `read`/`write`/`edit` | 工作区外 `read`/`write`/`edit` |
|
|
111
|
+
| --- | --- | --- |
|
|
112
|
+
| 默认交互模式 | 保持原有风险确认 | 作为修改操作请求逐次或会话授权 |
|
|
113
|
+
| `--auto` | 自动允许 | 返回 `permission.outside_workspace_denied` |
|
|
114
|
+
| `--auto --allow-outside-workspace` | 自动允许 | 自动允许 |
|
|
115
|
+
|
|
116
|
+
`--allow-outside-workspace` 只能与 `--auto` 一起使用,并且**只**控制 `read`、`write`、`edit`。它会允许修改当前工作区之外的任意文本文件,应仅在明确需要时使用。`activate_skill` 仅自动读取已发现且重新验证过的入口 `SKILL.md`;使用普通 `read` 访问用户级 Skill 的附属资源仍适用表中的外部路径规则。
|
|
79
117
|
|
|
80
|
-
**这不是通用安全沙箱。** `bash` 和 TypeScript
|
|
118
|
+
**这不是通用安全沙箱。** `bash` 不受结构化文件路径开关约束,仍以工作区作为当前目录但可以访问外部路径;`bash` 和 TypeScript 插件拥有当前用户进程权限。风险分类是防误操作的启发式护栏。Bash 超时会终止其进程组;主进程内的插件只能通过 `AbortSignal` 协作取消,忽略信号的可信插件可能在超时结果返回后继续运行。
|
|
81
119
|
|
|
82
120
|
## 本地 TypeScript 插件
|
|
83
121
|
|