opencode-gbk-tools 0.1.24 → 0.1.25
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 +5 -2
- package/dist/agents/gbk-engine.md +33 -0
- package/dist/cli/index.js +2 -2
- package/dist/release-manifest.json +7 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
为 OpenCode 提供一套自动识别编码的文本工具,以及面向 `GBK` / `GB18030` 的专用工具。
|
|
4
4
|
|
|
5
|
-
解决 OpenCode 内置工具难以稳定处理非 UTF-8 文本文件的问题,并通过 plugin 让所有 agents
|
|
5
|
+
解决 OpenCode 内置工具难以稳定处理非 UTF-8 文本文件的问题,并通过 plugin 让所有 agents 默认获得这些工具与规则;同时提供一个只允许调用 `text_*` / `gbk_*` 自定义工具的 `gbk-engine` agent。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
| `gbk_edit` | 精确替换 GBK 文件中的指定文本块 |
|
|
19
19
|
| `gbk_search` | 在 GBK 文件中搜索关键词,返回行号和上下文 |
|
|
20
20
|
| 本地/全局 plugin 规则 | 给所有 agents 注入“优先使用 `text_*`”的系统提示,并统一开放 `gbk_*` 工具 |
|
|
21
|
+
| `gbk-engine` agent | 禁用 OpenCode 内置读写编辑工具,只保留 `text_*` / `gbk_*` 自定义工具 |
|
|
21
22
|
|
|
22
23
|
---
|
|
23
24
|
|
|
@@ -34,8 +35,9 @@ npx opencode-gbk-tools install
|
|
|
34
35
|
- `text_read` / `text_write` / `text_edit`
|
|
35
36
|
- `gbk_read` / `gbk_write` / `gbk_edit` / `gbk_search`
|
|
36
37
|
- 对文本文件优先使用 `text_*` 的系统提示
|
|
38
|
+
- `.opencode/agents/gbk-engine.md` 或 `~/.config/opencode/agents/gbk-engine.md`
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
如果你希望强制禁用内置 `read` / `write` / `edit` / `apply_patch`,可以直接切换到专属 `gbk-engine` agent。
|
|
39
41
|
|
|
40
42
|
---
|
|
41
43
|
|
|
@@ -205,6 +207,7 @@ A:不要。现在优先用 `mode="insertAfter"` 或 `mode="insertBefore"`,
|
|
|
205
207
|
|
|
206
208
|
| 版本 | 说明 |
|
|
207
209
|
|------|------|
|
|
210
|
+
| 0.1.25 | 恢复并正式发布专属 `gbk-engine` agent;通过 agent 白名单禁用内置 `read` / `write` / `edit` / `apply_patch`,只保留 `text_*` / `gbk_*` 自定义工具,并把 agent 纳入构建、安装与 release manifest |
|
|
208
211
|
| 0.1.17 | 修复 OpenCode 以 npm plugin 方式加载包时缺少 `./server` 导出导致的插件加载失败问题;补充 `main` 与 `./server` 入口兼容性 |
|
|
209
212
|
| 0.1.16 | 去掉专属 `gbk-engine` agent 安装链路,改为通过 plugin + tools 让全部 agents 统一支持 `text_*` / `gbk_*`;同步更新安装说明 |
|
|
210
213
|
| 0.1.15 | 为 GBK 大文件统一引入行字节索引与流式读/搜/改路径,提升局部编辑、搜索与大块修改时的性能、稳定性与准确性 |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 仅使用 opencode-gbk-tools 自定义工具处理自动编码文本与 GBK/GB18030 文件
|
|
3
|
+
mode: primary
|
|
4
|
+
temperature: 0
|
|
5
|
+
tools:
|
|
6
|
+
"*": false
|
|
7
|
+
read: false
|
|
8
|
+
write: false
|
|
9
|
+
edit: false
|
|
10
|
+
apply_patch: false
|
|
11
|
+
text_read: true
|
|
12
|
+
text_write: true
|
|
13
|
+
text_edit: true
|
|
14
|
+
gbk_read: true
|
|
15
|
+
gbk_write: true
|
|
16
|
+
gbk_edit: true
|
|
17
|
+
gbk_search: true
|
|
18
|
+
permission:
|
|
19
|
+
task:
|
|
20
|
+
"*": deny
|
|
21
|
+
---
|
|
22
|
+
你是 `gbk-engine`。
|
|
23
|
+
|
|
24
|
+
你只能使用 `opencode-gbk-tools` 提供的 `text_*` 与 `gbk_*` 工具,不允许退回到 OpenCode 内置的 `read`、`write`、`edit`、`apply_patch` 或其他内置工具。
|
|
25
|
+
|
|
26
|
+
工作规则:
|
|
27
|
+
|
|
28
|
+
- 通用文本文件优先使用 `text_read`、`text_write`、`text_edit`
|
|
29
|
+
- 只有在用户明确指定 `GBK` / `GB18030` 文件,或自动编码检测失败时,才优先使用 `gbk_*` 工具
|
|
30
|
+
- 编辑前先读取目标文件;对大文件先搜索,再局部读取
|
|
31
|
+
- 插入内容优先使用 `mode="insertAfter"` 或 `mode="insertBefore"` 搭配 `anchor` / `content`
|
|
32
|
+
- 只有在精确替换现有内容时,才使用 `oldString` / `newString`
|
|
33
|
+
- 如果自定义工具不可用,要明确说明当前 OpenCode 没有加载 `opencode-gbk-tools` plugin
|
package/dist/cli/index.js
CHANGED
|
@@ -60,7 +60,7 @@ function resolveTargetBase(target, cwd) {
|
|
|
60
60
|
// src/cli/install.ts
|
|
61
61
|
async function installCommand(args) {
|
|
62
62
|
const targetBase = resolveTargetBase(args.target, args.cwd);
|
|
63
|
-
const allowedArtifacts = new Set(args.artifacts ?? ["plugin"]);
|
|
63
|
+
const allowedArtifacts = new Set(args.artifacts ?? ["plugin", "agent"]);
|
|
64
64
|
const releaseManifest = JSON.parse(await fs3.readFile(path3.join(args.packageRoot, "dist", "release-manifest.json"), "utf8"));
|
|
65
65
|
const selectedArtifacts = releaseManifest.artifacts.filter((artifact) => allowedArtifacts.has(artifact.kind));
|
|
66
66
|
const existingManifest = await loadInstalledManifest(targetBase);
|
|
@@ -190,7 +190,7 @@ async function setupCommand(args) {
|
|
|
190
190
|
await fs6.mkdir(configBase, { recursive: true });
|
|
191
191
|
const configPath = await resolveConfigFile(configBase);
|
|
192
192
|
await ensurePluginConfigured(configPath, pluginName);
|
|
193
|
-
const installResult = await installCommand({ ...args, force: true, artifacts: ["plugin"] });
|
|
193
|
+
const installResult = await installCommand({ ...args, force: true, artifacts: ["plugin", "agent"] });
|
|
194
194
|
return {
|
|
195
195
|
configPath,
|
|
196
196
|
targetBase: installResult.targetBase
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": 1,
|
|
3
3
|
"packageName": "opencode-gbk-tools",
|
|
4
|
-
"packageVersion": "0.1.
|
|
4
|
+
"packageVersion": "0.1.25",
|
|
5
5
|
"artifacts": [
|
|
6
6
|
{
|
|
7
7
|
"relativePath": "plugins/opencode-gbk-tools.js",
|
|
8
8
|
"kind": "plugin",
|
|
9
9
|
"expectedHash": "55f2eae379bf3bd5a9129fbc413f255a4ffd9186d90a4fe26ecb3cc75b5a4c68",
|
|
10
10
|
"hashAlgorithm": "sha256"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"relativePath": "agents/gbk-engine.md",
|
|
14
|
+
"kind": "agent",
|
|
15
|
+
"expectedHash": "05a97cfe24d72339e45616638d0706d46c0d3782a3bfedefa1e59978adc5c3be",
|
|
16
|
+
"hashAlgorithm": "sha256"
|
|
11
17
|
}
|
|
12
18
|
]
|
|
13
19
|
}
|