@bd7pil/reeve 0.1.10 → 0.1.12
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 +1 -1
- package/agents/executor.md +1 -1
- package/agents/foreman.md +1 -1
- package/agents/reviewer.md +1 -1
- package/default-fallback.json +21 -19
- package/package.json +1 -1
- package/provision.json +2 -2
- package/src/gate/lanes.js +1 -1
- package/src/index.js +1 -1
- package/src/models.js +4 -3
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ v2 原生缺的那几条,全靠这个插件补齐:
|
|
|
44
44
|
| ⑥ | **补名册**:`ctx.session.hook("context")` → 把 subagent 名册接进 `subagent` 工具描述 | `src/roster.js` + `src/index.js` |
|
|
45
45
|
|
|
46
46
|
**另有可选的「代理自持 + 运行时注册 + 链热更 + 性能统计」**(不是钩子,是 opt-in 的服务管理、注册与取数):
|
|
47
|
-
|
|
47
|
+
插件还会注册四个档位模型、把内置 agent 藏起来、设默认 agent —— 所以引擎配置里**不用写** `models` / `agents` / `default_agent`。
|
|
48
48
|
`options.proxy.enabled` 打开后,
|
|
49
49
|
插件自己完成 取件 → 派生链 → 拉起/复用 → 等就绪 → 收敛 → 守护,**不需要任何外部脚本**(见 `src/proxy.js` 与 PROGRESS §6.6)。
|
|
50
50
|
二进制**按平台 pin**(`BIFROST_PINS`:`linux-x64` / `win32-x64`,各带版本化 URL + sha256 + size);
|
package/agents/executor.md
CHANGED
package/agents/foreman.md
CHANGED
package/agents/reviewer.md
CHANGED
package/default-fallback.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "GATE 的兜底配置(机器上没有任何 reeve-fallback.jsonc 时用它)。刻意只放付费候选——免费车道(@free)属于每台机器自己的选择,写在用户配置里。",
|
|
3
3
|
"//cells": "providers.<id>:base_url + path(默认 /v1/chat/completions)+ auth(auth.json 里的 id,按序取第一个有 key 的)+ key(env.X 引用或公开字面量,覆盖 auth)+ lane(native | passthrough)+ models/models_fetch(目录来源)。",
|
|
4
|
-
"//tiers": "chain_for_model 里的 `reeve/*`
|
|
4
|
+
"//tiers": "chain_for_model 里的 `reeve/*` 四条 = 引擎档位模型(插件注册的 reeve/flash|coding|pro|multimodal)。引擎发**全名**进请求体,键必须写全名。没有免费车道时:flash → coding(便宜付费链)、coding → coding、pro → reasoning、multimodal → vision。",
|
|
5
5
|
"schema": 1,
|
|
6
6
|
"policy": {
|
|
7
7
|
"retry_on_errors": [401, 402, 403, 429, 500, 503, 529],
|
|
@@ -36,26 +36,28 @@
|
|
|
36
36
|
"static": {}
|
|
37
37
|
},
|
|
38
38
|
"chains": {
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
39
|
+
"reasoning": { "targets": ["zhipuai-coding-plan/glm-5.3", "xxyapi-deepseek/deepseek-v4.1-flash", "deepseek/deepseek-flash"] },
|
|
40
|
+
"coding": { "targets": ["zhipuai-coding-plan/glm-5.3-flash", "xxyapi-deepseek/deepseek-v4.1-flash", "lmuai/glm-5.3-flash", "deepseek/deepseek-flash"] },
|
|
41
|
+
"vision": { "targets": ["xxyapi-deepseek/deepseek-v4.1-flash", "lmuai/glm-5.3-flash", "zhipuai-coding-plan/glm-5.3-flash"] },
|
|
42
|
+
"fallback": { "targets": ["zhipuai-coding-plan/glm-5.3-flash", "xxyapi-deepseek/deepseek-v4.1-flash", "deepseek/deepseek-flash"] }
|
|
42
43
|
},
|
|
43
44
|
"agents": {
|
|
44
|
-
"planner": "
|
|
45
|
-
"advisor": "
|
|
46
|
-
"critic": "
|
|
47
|
-
"foreman": "
|
|
48
|
-
"executor": "
|
|
49
|
-
"reviewer": "
|
|
50
|
-
"scout": "
|
|
51
|
-
"librarian": "
|
|
45
|
+
"planner": "reasoning",
|
|
46
|
+
"advisor": "reasoning",
|
|
47
|
+
"critic": "reasoning",
|
|
48
|
+
"foreman": "coding",
|
|
49
|
+
"executor": "coding",
|
|
50
|
+
"reviewer": "coding",
|
|
51
|
+
"scout": "coding",
|
|
52
|
+
"librarian": "coding"
|
|
52
53
|
},
|
|
53
54
|
"chain_for_model": {
|
|
54
|
-
"reeve/flash": "
|
|
55
|
-
"reeve/
|
|
56
|
-
"reeve/
|
|
57
|
-
"
|
|
58
|
-
"zhipuai-coding-plan/glm-5.3
|
|
55
|
+
"reeve/flash": "coding",
|
|
56
|
+
"reeve/coding": "coding",
|
|
57
|
+
"reeve/pro": "reasoning",
|
|
58
|
+
"reeve/multimodal": "vision",
|
|
59
|
+
"zhipuai-coding-plan/glm-5.3": "reasoning",
|
|
60
|
+
"zhipuai-coding-plan/glm-5.3-flash": "coding"
|
|
59
61
|
},
|
|
60
|
-
"default_chain": "
|
|
61
|
-
}
|
|
62
|
+
"default_chain": "fallback"
|
|
63
|
+
}
|
package/package.json
CHANGED
package/provision.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": 1,
|
|
3
3
|
"name": "reeve",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.12",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"//": "REEVE 在 ocrc 实例里的装配说明。**没有二进制工件** —— 代理层是插件内的 GATE(纯 JS),不需要任何本地服务(Bifrost 时代已结束)。",
|
|
7
7
|
"host": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
]
|
|
16
16
|
},
|
|
17
17
|
"enginePlugin": {
|
|
18
|
-
"spec": "@bd7pil/reeve@0.1.
|
|
18
|
+
"spec": "@bd7pil/reeve@0.1.12",
|
|
19
19
|
"kind": "package",
|
|
20
20
|
"entry": "~/.ocrc/components/reeve/node_modules/@bd7pil/reeve",
|
|
21
21
|
"requiresPeer": []
|
package/src/gate/lanes.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// GATE 的路由与尝试计划 —— **纯逻辑**(可测的部分)。
|
|
2
2
|
//
|
|
3
3
|
// 路由优先级(含一条 omo 语义的细化):
|
|
4
|
-
// ① 请求的 model 就是链名(`
|
|
4
|
+
// ① 请求的 model 就是链名(`reasoning`)→ 走它;
|
|
5
5
|
// ② 该 session 的 agent 有链,且请求的模型就是那条链的首选(或请求不是一个可直投的
|
|
6
6
|
// `provider/model`)→ 走 agent 的链;
|
|
7
7
|
// ③ 请求是一个可直投的 `provider/model`(provider 已在注册表里)→ 直投
|
package/src/index.js
CHANGED
|
@@ -383,7 +383,7 @@ export default {
|
|
|
383
383
|
|
|
384
384
|
// ---- ⓪ 注册(让 opencode.jsonc 尽量短)----
|
|
385
385
|
// 三件事都在插件里做,配置里就不用写 models / agents / default_agent:
|
|
386
|
-
// a)
|
|
386
|
+
// a) 四个档位模型(配置里已写的不动 —— 配置说话时以配置为准)
|
|
387
387
|
// b) 把内置 agent 藏起来(前台只出现编排者)
|
|
388
388
|
// c) 默认 agent = foreman(存在才设)
|
|
389
389
|
// ⚠️ 端点(baseURL / key)**注册不了**:Provider.Info 没有 URL、Connection 只是凭据引用、
|
package/src/models.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// 四个档位的**模型注册** —— 让 opencode.jsonc 里不再需要一份 models 映射。
|
|
2
2
|
//
|
|
3
3
|
// 为什么能做:v2 的插件 API 有 `ctx.provider.transform(editor => editor.models.set(id, models))`
|
|
4
4
|
//(`packages/plugin/src/promise/provider.ts` @v2.0.27),`Model.Info` 也能从最小形状造出来。
|
|
@@ -16,9 +16,10 @@ import { readFile } from 'node:fs/promises'
|
|
|
16
16
|
import { homedir } from 'node:os'
|
|
17
17
|
import { join } from 'node:path'
|
|
18
18
|
|
|
19
|
-
/**
|
|
19
|
+
/** 四个档位。`images` 决定这一档声明不声明"能吃图"(只有视觉档声明)。 */
|
|
20
20
|
export const REEVE_TIERS = Object.freeze([
|
|
21
|
-
{ id: 'flash', modelID: 'reeve/flash', name: 'REEVE flash
|
|
21
|
+
{ id: 'flash', modelID: 'reeve/flash', name: 'REEVE flash(免费优先链)', images: false },
|
|
22
|
+
{ id: 'coding', modelID: 'reeve/coding', name: 'REEVE coding(中型链)', images: false },
|
|
22
23
|
{ id: 'pro', modelID: 'reeve/pro', name: 'REEVE pro(强推理链)', images: false },
|
|
23
24
|
{ id: 'multimodal', modelID: 'reeve/multimodal', name: 'REEVE multimodal(视觉链)', images: true },
|
|
24
25
|
])
|