@te-river/opencode-team-mode 1.8.5 → 1.8.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.
- package/README.md +10 -9
- package/README.zh-CN.md +11 -10
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +14 -5
- package/dist/agents.js.map +1 -1
- package/dist/host/v2-types.d.ts +0 -1
- package/dist/host/v2-types.d.ts.map +1 -1
- package/dist/host/v2.d.ts +9 -5
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +84 -72
- package/dist/host/v2.js.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/prompts/lead.d.ts +1 -1
- package/dist/prompts/lead.d.ts.map +1 -1
- package/dist/prompts/lead.js +7 -0
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +1 -1
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +10 -0
- package/dist/prompts/shared.js.map +1 -1
- package/dist/tm/config-files.d.ts +30 -6
- package/dist/tm/config-files.d.ts.map +1 -1
- package/dist/tm/config-files.js +47 -10
- package/dist/tm/config-files.js.map +1 -1
- package/dist/tm/config-layers.d.ts +20 -9
- package/dist/tm/config-layers.d.ts.map +1 -1
- package/dist/tm/config-layers.js +20 -9
- package/dist/tm/config-layers.js.map +1 -1
- package/dist/tm/config-template.js +2 -2
- package/dist/tm/config-template.js.map +1 -1
- package/dist/tm/dispatch.d.ts +101 -11
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +572 -30
- package/dist/tm/dispatch.js.map +1 -1
- package/dist/tm/ledger.d.ts +50 -7
- package/dist/tm/ledger.d.ts.map +1 -1
- package/dist/tm/ledger.js +161 -18
- package/dist/tm/ledger.js.map +1 -1
- package/dist/tm/pipelines.d.ts.map +1 -1
- package/dist/tm/pipelines.js +6 -3
- package/dist/tm/pipelines.js.map +1 -1
- package/dist/tm/result.d.ts +13 -1
- package/dist/tm/result.d.ts.map +1 -1
- package/dist/tm/result.js +14 -2
- package/dist/tm/result.js.map +1 -1
- package/docs/installation-v2.md +28 -24
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ Under the table sits the workflow discipline: deterministic routing, a ≤30-lin
|
|
|
77
77
|
| 🧪 **Tester** | Test engineer | Real edge-case tests; static verification; governed UI verification via the host's native `browser_*` tools |
|
|
78
78
|
| 🔎 **Researcher** | Knowledge finder | Local repo first, then the web — one of the two network roles (with the Lead) |
|
|
79
79
|
|
|
80
|
-
Out of the box, **Team is your default agent** — new chats open straight into the orchestrator (
|
|
80
|
+
Out of the box, **Team is your default agent** — the installer writes `default_agent: "Team"`, so new chats open straight into the orchestrator (see [Configuration](#️-configuration)).
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
@@ -237,10 +237,11 @@ The offload / trajectory / memory stores live under `<repo>/.git/opencode-team/`
|
|
|
237
237
|
| Layer | Path | Precedence |
|
|
238
238
|
|---|---|---|
|
|
239
239
|
| **global** | `~/.config/opencode/team-mode.jsonc` (honours `OPENCODE_CONFIG_DIR`) | lowest — every project |
|
|
240
|
-
| **project** | `<dir>/team-mode.jsonc`, walking from the workspace **up to the filesystem root** |
|
|
241
|
-
| **project** | `<dir>/.opencode/team-mode.jsonc`, same walk |
|
|
240
|
+
| **project** | `<dir>/team-mode.jsonc`, walking from the workspace **up to the filesystem root** | middle — direct files merge farthest→closest |
|
|
241
|
+
| **project** | `<dir>/.opencode/team-mode.jsonc`, same walk | highest user layer — every `.opencode/` file overrides every direct file |
|
|
242
|
+
| **system** | `%ProgramData%\opencode\team-mode.jsonc` (Windows) / `/etc/opencode/team-mode.jsonc` (POSIX) | **highest overall** — the host's managed-settings layer outranks every user layer |
|
|
242
243
|
|
|
243
|
-
|
|
244
|
+
So there are **three** file layers (`global < project < system`), and that walk and precedence are the host's own config-layering rule, copied rather than invented; on a platform with no derivable root (Windows without `PROGRAMDATA`) the system layer does not exist and the report says so. JSONC comments are masked at the byte level, so a commented-out key cannot read as live. A layer that fails to parse is skipped **whole**; a single bad key loses only itself; unknown keys are warned about and never applied. `tm_stats` renders the result: per-key source, skipped layers, unknown keys, auto-create state.
|
|
244
245
|
|
|
245
246
|
### It writes itself
|
|
246
247
|
|
|
@@ -250,7 +251,7 @@ When the global file is **absent**, the plugin creates it at boot — atomically
|
|
|
250
251
|
// 全局配置。取消注释即可生效;默认全部注释 = 什么都不设置。
|
|
251
252
|
{
|
|
252
253
|
// "offloadThreshold": 2000, // 卸载阈值(估算 token;等于阈值也卸载)。
|
|
253
|
-
// "envProtect": "strict", // R6 环境防护模式(strict/standard/off
|
|
254
|
+
// "envProtect": "strict", // R6 环境防护模式(strict/standard/off)。(红线:仅全局或 system)
|
|
254
255
|
// …共 64 个键,每个都带一行说明
|
|
255
256
|
}
|
|
256
257
|
```
|
|
@@ -259,7 +260,7 @@ Turn it off with the plugin option `autoCreate: false`, or the internal switch `
|
|
|
259
260
|
|
|
260
261
|
### Red-line keys
|
|
261
262
|
|
|
262
|
-
Five keys are **honored only in the global file**: `envProtect`, `r6FineAsk`, `privateSpace`, `webfetchAllowedDomains`, `bashReadonlyAllowed`. A project file may set them, but the value is **ignored and reported** — a committed project config must not switch off a guard for everyone who clones the repo. The set is derived from the registry (`redLine: true`), so a new red-line key is red-line by declaration.
|
|
263
|
+
Five keys are **honored only in the global or `system` file**: `envProtect`, `r6FineAsk`, `privateSpace`, `webfetchAllowedDomains`, `bashReadonlyAllowed`. A project file may set them, but the value is **ignored and reported** — a committed project config must not switch off a guard for everyone who clones the repo; the `system` layer is the admin-managed one, so it MAY set them. The set is derived from the registry (`redLine: true`), so a new red-line key is red-line by declaration.
|
|
263
264
|
|
|
264
265
|
### Plugin options
|
|
265
266
|
|
|
@@ -276,7 +277,7 @@ Options live on the plugin entry, not in `team-mode.jsonc`:
|
|
|
276
277
|
|
|
277
278
|
| Option | Default | Meaning |
|
|
278
279
|
|---|---|---|
|
|
279
|
-
| `defaultAgent` | `true` |
|
|
280
|
+
| `defaultAgent` | `true` | Check and report which agent the installer's `default_agent` names. The 2.1.x plugin ctx has no `agent.default`, so the plugin cannot promote anything; `false` skips the check. |
|
|
280
281
|
| `autoCreate` | `true` | Write the inert global `team-mode.jsonc` at boot when absent. |
|
|
281
282
|
| `ttlDays` (alias `blackboardTtlDays`) | `5` | Blackboard retention, valid range (0, 365]. |
|
|
282
283
|
| `envProtect` | `true` | Plugin-wide kill switch; `false` resolves the R6 mode to `off`. |
|
|
@@ -321,7 +322,7 @@ Your own agents named `team` / `architect` / … always take precedence; the plu
|
|
|
321
322
|
| `boardMaxChars` | number | `200000` | `tm_board_write` per-file cap — over it the write refuses (with a split-the-topic hint) rather than truncating a deliverable. |
|
|
322
323
|
| `boardMaxFiles` | number | `200` | Markdown files per session folder; the TTL sweeper is the only reclaim path, so the refusal names it. |
|
|
323
324
|
| `joinMaxWaitMs` | number | `60000` | Ceiling on `tm_join { waitMs }`; a second consecutive wait that settled nothing is cut to 10 s with a "stop waiting" directive. |
|
|
324
|
-
| `ledgerMaxItems` | number | `
|
|
325
|
+
| `ledgerMaxItems` | number | `1000` | `tm_ledger` items per session; past it the oldest DONE items are archived to `team-mode/ledger-archive` (and reported), and only when nothing is left to archive does the list refuse — it never quietly drops an ask. |
|
|
325
326
|
| **Memory** | | | |
|
|
326
327
|
| `memoryGlobalDir` | string | auto | GLOBAL tier store; empty = `~/.opencode-team/memories/global`. |
|
|
327
328
|
| `memorySessionTtlMin` | number | `240` | Session-tier entry TTL (lazy + boot sweep). |
|
|
@@ -442,7 +443,7 @@ Module map, per-layer seams and every measured host fact: [AGENTS.md](./AGENTS.m
|
|
|
442
443
|
}
|
|
443
444
|
```
|
|
444
445
|
|
|
445
|
-
**Disable one:** `"researcher": { "disable": true }`. Board retention, auto-create, the default
|
|
446
|
+
**Disable one:** `"researcher": { "disable": true }`. Board retention, auto-create, the default-agent check and the R6 kill switch are plugin-entry `options` — see [Configuration](#️-configuration).
|
|
446
447
|
|
|
447
448
|
## ❓ Troubleshooting
|
|
448
449
|
|
package/README.zh-CN.md
CHANGED
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
| 🧪 **Tester** | 测试工程师 | 带真边界条件的测试;静态验证(构建 / 类型检查 / lint);经宿主原生 `browser_*` 工具的治理化 UI 验证 |
|
|
70
70
|
| 🔎 **Researcher** | 找资料 | 本地仓库优先,然后才是网络——两个联网角色之一(另一个是 Lead) |
|
|
71
71
|
|
|
72
|
-
开箱即用时 **Team 就是你的默认 agent
|
|
72
|
+
开箱即用时 **Team 就是你的默认 agent**——安装器会写 `default_agent: "Team"`,新会话直接进编排者(见[配置](#️-配置))。
|
|
73
73
|
|
|
74
74
|
## 📦 安装
|
|
75
75
|
|
|
@@ -224,10 +224,11 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
224
224
|
| 层 | 路径 | 优先级 |
|
|
225
225
|
|---|---|---|
|
|
226
226
|
| **全局** | `~/.config/opencode/team-mode.jsonc`(认宿主的 `OPENCODE_CONFIG_DIR`) | 最低——对所有项目生效 |
|
|
227
|
-
| **项目** | `<目录>/team-mode.jsonc`,从工作区**一路向上直到文件系统根**逐级找 |
|
|
228
|
-
| **项目** | `<目录>/.opencode/team-mode.jsonc`,同样的向上查找 |
|
|
227
|
+
| **项目** | `<目录>/team-mode.jsonc`,从工作区**一路向上直到文件系统根**逐级找 | 居中——直系文件由远及近合并 |
|
|
228
|
+
| **项目** | `<目录>/.opencode/team-mode.jsonc`,同样的向上查找 | 用户层里最高——每个 `.opencode/` 文件都覆盖每个直系文件 |
|
|
229
|
+
| **system** | `%ProgramData%\opencode\team-mode.jsonc`(Windows)/ `/etc/opencode/team-mode.jsonc`(POSIX) | **整体最高**——宿主的 managed-settings 层压过所有用户层 |
|
|
229
230
|
|
|
230
|
-
|
|
231
|
+
所以文件层一共**三层**(`global < project < system`);这套查找与优先级就是宿主自己的配置分层规则,照抄而不是发明。推不出根目录的平台(没有 `PROGRAMDATA` 的 Windows)就是没有这一层,报告里也会这样写。JSONC 受支持:`//` 和 `/* */` 注释按字节偏移打掩码,被注释掉的键不会被读成生效的键。解析失败的一层被**整体**跳过(半份配置比没有更糟),单个坏键只丢自己;未知键会告警且永不应用。`tm_stats` 会把结果渲染出来:每个键的来源、跳过的层、未知键、自动创建状态。
|
|
231
232
|
|
|
232
233
|
### 它会自己写一份
|
|
233
234
|
|
|
@@ -237,7 +238,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
237
238
|
// 全局配置。取消注释即可生效;默认全部注释 = 什么都不设置。
|
|
238
239
|
{
|
|
239
240
|
// "offloadThreshold": 2000, // 卸载阈值(估算 token;等于阈值也卸载)。
|
|
240
|
-
// "envProtect": "strict", // R6 环境防护模式(strict/standard/off
|
|
241
|
+
// "envProtect": "strict", // R6 环境防护模式(strict/standard/off)。(红线:仅全局或 system)
|
|
241
242
|
// …共 64 个键,每个都带一行说明
|
|
242
243
|
}
|
|
243
244
|
```
|
|
@@ -246,7 +247,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
246
247
|
|
|
247
248
|
### 红线键
|
|
248
249
|
|
|
249
|
-
|
|
250
|
+
有五个键**只在全局或 `system` 文件里被认**:`envProtect`、`r6FineAsk`、`privateSpace`、`webfetchAllowedDomains`、`bashReadonlyAllowed`。项目文件可以写它们,但那个值**被忽略并被报出来**——一份会被提交的项目配置不该能给所有克隆这份仓库的人关掉某个守卫;`system` 层是管理员托管的那一层,所以它可以设。这条规则由注册表本身推导(规格上的 `redLine: true`),所以新加的红线键天然就是红线。
|
|
250
251
|
|
|
251
252
|
### 插件选项
|
|
252
253
|
|
|
@@ -263,7 +264,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
263
264
|
|
|
264
265
|
| 选项 | 默认 | 含义 |
|
|
265
266
|
|---|---|---|
|
|
266
|
-
| `defaultAgent` | `true` |
|
|
267
|
+
| `defaultAgent` | `true` | 检查并报告安装器写的 `default_agent` 指向谁。2.1.x 插件 ctx 没有 `agent.default`,插件无法提默认;`false` 只跳过这项检查。 |
|
|
267
268
|
| `autoCreate` | `true` | 全局 `team-mode.jsonc` 缺失时在启动时写入那份惰性模板。 |
|
|
268
269
|
| `ttlDays`(别名 `blackboardTtlDays`) | `5` | 黑板保留期,有效区间 (0, 365]。 |
|
|
269
270
|
| `envProtect` | `true` | 插件级总开关;`false` 会把 R6 模式解析成 `off`。 |
|
|
@@ -309,7 +310,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
309
310
|
| `boardMaxChars` | number | `200000` | `tm_board_write` 单个文件的字符上限——超过就**拒绝**(并提示"拆成两个主题"),而不是把交付截断。 |
|
|
310
311
|
| `boardMaxFiles` | number | `200` | 每个会话目录允许的 Markdown 文件数。TTL 清扫器是唯一的回收路径,所以拒绝时会点名它。 |
|
|
311
312
|
| `joinMaxWaitMs` | number | `60000` | `tm_join { waitMs }` 的上限。曾经是 300 000,而有次会话的领队连着两次停在里面(19 分钟什么都不干),子代理却在干活——等待不是并行,所以默认值现在说的是"看一眼,然后干活"。第二次连续等待若仍未结算任何东西,会被砍到 10 秒,并答复接下来该做什么。 |
|
|
312
|
-
| `ledgerMaxItems` | number | `
|
|
313
|
+
| `ledgerMaxItems` | number | `1000` | 每会话 `tm_ledger` 条目上限。超出时先把最旧的「已完成」条目归档到 `team-mode/ledger-archive`(并在回复里报数),没有可归档的才拒绝——绝不悄悄丢掉最早的条目。 |
|
|
313
314
|
|
|
314
315
|
**记忆**
|
|
315
316
|
|
|
@@ -414,7 +415,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
414
415
|
- **静态验证:** 构建 / 类型检查 / lint / 测试。禁止临时起意的浏览器自动化;未验证的 UI 工作以 `UI NOT VERIFIED: <待人工检查项>` 收尾。
|
|
415
416
|
- **证据标准:** "完成 / 修好 / 通过"必须带可验证证据——输出、日志、diff。**用你的语言,不是工具的语言:** 受治理工具回复的是中文,所以每个角色的散文保持你的语言,只在"它本身就是证据"时逐字引用中文字符串。
|
|
416
417
|
|
|
417
|
-
**架构,三行说完。** 包只导出 `{id, setup}`;加载器调一次 `setup(ctx)`:注册 `tm_*`
|
|
418
|
+
**架构,三行说完。** 包只导出 `{id, setup}`;加载器调一次 `setup(ctx)`:注册 `tm_*` 工具、解析那三层配置(`global < project < system`)、在 `permission.evaluate` 上装 R6/地址守卫、在 `tool.execute.after` 上挂 JIT 治理、并发布黑板注记——你自定义的同名 agent 永远优先。让这层配置值得信任的规则只有一条:**`CONFIG_KEYS` 就是注册表,也是唯一事实来源**,不在里面的键会被报成未知且永不应用,红线集合由这个注册表推导而不是手工列一遍。模块地图、每个文件的接缝和实测到的宿主事实都在 [AGENTS.md](./AGENTS.md);每条 v2 论断背后的带日期证据在 [docs/v2-port-notes.md](./docs/v2-port-notes.md)。
|
|
418
419
|
|
|
419
420
|
## 🔧 自定义
|
|
420
421
|
|
|
@@ -445,7 +446,7 @@ HTML 引擎在中国大陆**全部免 Key 可达**,且全部在种子域名白
|
|
|
445
446
|
}
|
|
446
447
|
```
|
|
447
448
|
|
|
448
|
-
**停用一个:** `"researcher": { "disable": true }
|
|
449
|
+
**停用一个:** `"researcher": { "disable": true }`。黑板保留期、自动创建、默认角色检查和 R6 总开关都是插件条目上的 `options`——见[配置](#️-配置)。
|
|
449
450
|
|
|
450
451
|
## ❓ 故障排查
|
|
451
452
|
|
package/dist/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAqI9D;;;;wCAIwC;AACxC,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAGhG;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAqI9D;;;;wCAIwC;AACxC,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAGhG;AAuLD,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAW9C,CAAA"}
|
package/dist/agents.js
CHANGED
|
@@ -183,6 +183,15 @@ function applyNetworkPermission(permission, isWebRole, isTester = false) {
|
|
|
183
183
|
/* ------------------------------------------------------------------ */
|
|
184
184
|
/* Agent definitions */
|
|
185
185
|
/* ------------------------------------------------------------------ */
|
|
186
|
+
/* `mode` and who is allowed to run where (docs: https://opencode.ai/v2/docs/agents,
|
|
187
|
+
* read 2026-10-25). `mode: "subagent"` means "runs ONLY in a child session", and a
|
|
188
|
+
* command's `agent:` key SWITCHES THE CURRENT SESSION's agent — so a specialist
|
|
189
|
+
* pinned to `subagent` could not be selected by `/team-architect` & co at all. All
|
|
190
|
+
* five specialists are therefore `mode: "all"` (either way: dispatchable as a child
|
|
191
|
+
* AND selectable in the primary session); the lead stays `primary` because it only
|
|
192
|
+
* ever runs the main session. T3 ("only the lead dispatches") does NOT ride on
|
|
193
|
+
* `mode` — it is the `subagent: deny` permission triple in `whitelist()`, which every
|
|
194
|
+
* specialist keeps, so widening the mode grants no dispatch right. */
|
|
186
195
|
const teamLead = {
|
|
187
196
|
mode: "primary",
|
|
188
197
|
description: "Team lead orchestrator — routes work to specialist agents " +
|
|
@@ -202,7 +211,7 @@ const teamLead = {
|
|
|
202
211
|
permission: whitelist("task", "edit", "write", "bash", "question"),
|
|
203
212
|
};
|
|
204
213
|
const architect = {
|
|
205
|
-
mode: "
|
|
214
|
+
mode: "all",
|
|
206
215
|
description: "System architect — designs module structure, API contracts, data models, " +
|
|
207
216
|
"and technical strategy; revises designs when review or testing exposes a " +
|
|
208
217
|
"flaw. Use when you need a design doc, architecture decision record, or " +
|
|
@@ -219,7 +228,7 @@ const architect = {
|
|
|
219
228
|
permission: whitelist(),
|
|
220
229
|
};
|
|
221
230
|
const implementer = {
|
|
222
|
-
mode: "
|
|
231
|
+
mode: "all",
|
|
223
232
|
description: "Core implementer — writes production code, creates files, and builds " +
|
|
224
233
|
"features according to the architect's design; applies review-driven fix " +
|
|
225
234
|
"tasks. Use when you need clean, working code written quickly.",
|
|
@@ -231,7 +240,7 @@ const implementer = {
|
|
|
231
240
|
permission: whitelist("edit", "write", "bash"),
|
|
232
241
|
};
|
|
233
242
|
const reviewer = {
|
|
234
|
-
mode: "
|
|
243
|
+
mode: "all",
|
|
235
244
|
description: "Code reviewer — reviews ONE dimension per dispatch (completeness / " +
|
|
236
245
|
"correctness / impact) with severity-graded, actionable findings; the " +
|
|
237
246
|
"lead defaults to one correctness dispatch and escalates to three " +
|
|
@@ -248,7 +257,7 @@ const reviewer = {
|
|
|
248
257
|
permission: whitelist("bash"),
|
|
249
258
|
};
|
|
250
259
|
const tester = {
|
|
251
|
-
mode: "
|
|
260
|
+
mode: "all",
|
|
252
261
|
description: "Test engineer — writes and runs unit/integration tests, classifies " +
|
|
253
262
|
"failures (product bug vs bad test vs environment), verifies via build, " +
|
|
254
263
|
"typecheck, static analysis and API-level tests, verifies user-visible " +
|
|
@@ -264,7 +273,7 @@ const tester = {
|
|
|
264
273
|
permission: whitelist("edit", "write", "bash"),
|
|
265
274
|
};
|
|
266
275
|
const researcher = {
|
|
267
|
-
mode: "
|
|
276
|
+
mode: "all",
|
|
268
277
|
description: "Researcher — investigates the local repository (code, configs, " +
|
|
269
278
|
"installed/vendored packages, shipped documentation) and, when local " +
|
|
270
279
|
"sources are insufficient, the web via the priority ladder: governed " +
|
package/dist/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2-types.d.ts
CHANGED
|
@@ -126,7 +126,6 @@ export interface V2AgentInfo {
|
|
|
126
126
|
export interface V2AgentEditor {
|
|
127
127
|
list(): ReadonlyArray<V2AgentInfo>;
|
|
128
128
|
get(id: string): V2AgentInfo | undefined;
|
|
129
|
-
default(id: string | undefined): void;
|
|
130
129
|
update(id: string, update: (agent: V2AgentInfo) => void): void;
|
|
131
130
|
remove(id: string): void;
|
|
132
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-types.d.ts","sourceRoot":"","sources":["../../src/host/v2-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"v2-types.d.ts","sourceRoot":"","sources":["../../src/host/v2-types.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2.d.ts
CHANGED
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
* Two host limits are stated rather than discovered later:
|
|
17
17
|
* - creating agents: `AgentEditor` has no `add`, so the six roles must come
|
|
18
18
|
* from the user's config (the installer writes `agents/*.md`).
|
|
19
|
-
* - the default
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* - the default agent: NOT a plugin capability. Probed on a live 2.1.4 host
|
|
20
|
+
* (2026-10-25), the plugin ctx `agent` domain carries `get / list / transform /
|
|
21
|
+
* reload` and no `default` at all (`typeof ctx.agent.default === "undefined"`),
|
|
22
|
+
* so the old `editor.default("Team")` call could only throw into its own catch
|
|
23
|
+
* and then report a state nobody had measured. The one mechanism that works is
|
|
24
|
+
* the installer writing `default_agent` into the global `opencode.jsonc`, so the
|
|
25
|
+
* boot reports what THAT key says. `defaultAgent: false` in the plugin options
|
|
26
|
+
* opts out of the check and the report — it never implied the plugin could
|
|
27
|
+
* promote anything.
|
|
24
28
|
*
|
|
25
29
|
* The official confirmation dialog is absent as well, and for a different
|
|
26
30
|
* reason: probed on the live host, a plugin has no way to raise one.
|
package/dist/host/v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAoCH,OAAO,KAAK,EAA0B,QAAQ,EAA8B,MAAM,eAAe,CAAA;AAEjG;;;;;kEAKkE;AAClE,eAAO,MAAM,iBAAiB,QAGmB,CAAA;AASjD,eAAO,MAAM,aAAa,EAAE,QA+2C3B,CAAA"}
|
package/dist/host/v2.js
CHANGED
|
@@ -16,11 +16,15 @@
|
|
|
16
16
|
* Two host limits are stated rather than discovered later:
|
|
17
17
|
* - creating agents: `AgentEditor` has no `add`, so the six roles must come
|
|
18
18
|
* from the user's config (the installer writes `agents/*.md`).
|
|
19
|
-
* - the default
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* - the default agent: NOT a plugin capability. Probed on a live 2.1.4 host
|
|
20
|
+
* (2026-10-25), the plugin ctx `agent` domain carries `get / list / transform /
|
|
21
|
+
* reload` and no `default` at all (`typeof ctx.agent.default === "undefined"`),
|
|
22
|
+
* so the old `editor.default("Team")` call could only throw into its own catch
|
|
23
|
+
* and then report a state nobody had measured. The one mechanism that works is
|
|
24
|
+
* the installer writing `default_agent` into the global `opencode.jsonc`, so the
|
|
25
|
+
* boot reports what THAT key says. `defaultAgent: false` in the plugin options
|
|
26
|
+
* opts out of the check and the report — it never implied the plugin could
|
|
27
|
+
* promote anything.
|
|
24
28
|
*
|
|
25
29
|
* The official confirmation dialog is absent as well, and for a different
|
|
26
30
|
* reason: probed on the live host, a plugin has no way to raise one.
|
|
@@ -89,23 +93,6 @@ export const v2Personality = {
|
|
|
89
93
|
return;
|
|
90
94
|
}
|
|
91
95
|
const directory = directoryOf(ctx);
|
|
92
|
-
// ---------- #38 runtime fallback: is the configured default role on disk? ----------
|
|
93
|
-
// The plugin cannot see config-directory roles through ctx.agent (probed: the
|
|
94
|
-
// editor snapshot holds only the 7 built-ins), so a `default_agent` naming a
|
|
95
|
-
// missing role would make the host fall back to `build` SILENTLY. Reading the
|
|
96
|
-
// global config from disk is the only way to say so. Never throws, never
|
|
97
|
-
// affects startup, and prints only the role name + the file path it looked for.
|
|
98
|
-
let defaultAgentCheck = { state: "no-config" };
|
|
99
|
-
try {
|
|
100
|
-
defaultAgentCheck = checkDefaultAgentRole({ configDir: globalConfigDir() });
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
defaultAgentCheck = { state: "unreadable" };
|
|
104
|
-
}
|
|
105
|
-
if (defaultAgentCheck.state === "missing-role") {
|
|
106
|
-
console.warn(`[team-mode] 全局配置的 default_agent="${defaultAgentCheck.defaultAgent}" 指向的角色文件不存在(${defaultAgentCheck.roleFile}):` +
|
|
107
|
-
"宿主会静默退回 build,会话不再是 Team。重跑 scripts/install.ps1(Windows)或 scripts/install.sh 修复。");
|
|
108
|
-
}
|
|
109
96
|
// ---------- Team-scope isolation (#22, the user's requirement 2026-09-25) ----------
|
|
110
97
|
// Every v2 hook fires for EVERY agent on this host. This one object is what
|
|
111
98
|
// each layer asks before it mutates a request, a result, or a permission —
|
|
@@ -221,6 +208,64 @@ export const v2Personality = {
|
|
|
221
208
|
const v2CodeModeDirect = /^(1|true|yes|on|direct)$/i.test(cfg.v2CodeMode.trim());
|
|
222
209
|
const registrations = [];
|
|
223
210
|
const notes = [];
|
|
211
|
+
// ---------- the default agent belongs to the INSTALLER, not the plugin ----------
|
|
212
|
+
// Probed on a live 2.1.4 host (2026-10-25): `typeof ctx.agent.default === "undefined"`
|
|
213
|
+
// — the ctx `agent` domain is `get / list / transform / reload`. The
|
|
214
|
+
// `editor.default("Team")` call this file used to make therefore could only ever
|
|
215
|
+
// throw into its own catch, and the boot row then published a verdict nobody had
|
|
216
|
+
// measured (`called-unverified`). The mechanism that actually decides the default
|
|
217
|
+
// is the installer writing `default_agent` into the global `opencode.jsonc`, so the
|
|
218
|
+
// boot reads THAT file and reports what it says. `defaultAgent:false` keeps its
|
|
219
|
+
// documented meaning — skip the check/report — and no longer implies a promotion.
|
|
220
|
+
//
|
|
221
|
+
// #38's warning survives unchanged in substance: the plugin cannot see
|
|
222
|
+
// config-directory roles through ctx.agent (the editor snapshot holds only the 7
|
|
223
|
+
// built-ins), so a `default_agent` naming a role file that does not exist makes the
|
|
224
|
+
// host fall back to `build` SILENTLY. Reading the global config is the only way to
|
|
225
|
+
// say so; it never throws, never affects startup, and prints only the role name and
|
|
226
|
+
// the file path it looked for (never config content).
|
|
227
|
+
const defaultAgentEnabled = options.defaultAgent !== false;
|
|
228
|
+
let defaultAgentCheck = { state: "no-config" };
|
|
229
|
+
if (defaultAgentEnabled) {
|
|
230
|
+
try {
|
|
231
|
+
defaultAgentCheck = checkDefaultAgentRole({ configDir: globalConfigDir() });
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
defaultAgentCheck = { state: "unreadable" };
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/** The boot rows' `agents_default` — which role the INSTALLER's `default_agent`
|
|
238
|
+
* names, never a promotion verdict. `missing` = no usable key on disk,
|
|
239
|
+
* `no-config` = no global config file to read, `unreadable` = it exists but did
|
|
240
|
+
* not parse, `opt-out` = the `defaultAgent:false` option. */
|
|
241
|
+
const agentsDefault = !defaultAgentEnabled
|
|
242
|
+
? "opt-out"
|
|
243
|
+
: defaultAgentCheck.state === "ok"
|
|
244
|
+
? normalizeAgentName(defaultAgentCheck.defaultAgent ?? "") === normalizeAgentName("team")
|
|
245
|
+
? "installer:Team"
|
|
246
|
+
: "installer:other"
|
|
247
|
+
: defaultAgentCheck.state === "missing-role" || defaultAgentCheck.state === "no-default"
|
|
248
|
+
? "missing"
|
|
249
|
+
: defaultAgentCheck.state === "unreadable"
|
|
250
|
+
? "unreadable"
|
|
251
|
+
: "no-config";
|
|
252
|
+
if (defaultAgentEnabled) {
|
|
253
|
+
if (defaultAgentCheck.state === "missing-role") {
|
|
254
|
+
console.warn(`[team-mode] 全局配置的 default_agent="${defaultAgentCheck.defaultAgent}" 指向的角色文件不存在(${defaultAgentCheck.roleFile}):` +
|
|
255
|
+
"宿主会静默退回 build,会话不再是 Team。重跑 scripts/install.ps1(Windows)或 scripts/install.sh 修复。" +
|
|
256
|
+
"(2.1.x 插件 ctx 没有 agent.default,默认只能由安装器写 default_agent 决定。)");
|
|
257
|
+
}
|
|
258
|
+
else if (agentsDefault !== "installer:Team") {
|
|
259
|
+
// Only spoken when the default is NOT confirmed to be Team: a measured
|
|
260
|
+
// "installer:Team" needs no note (the boot row carries it), and a note that
|
|
261
|
+
// repeated the happy case would just train the reader to skip the block.
|
|
262
|
+
notes.push(agentsDefault === "installer:other"
|
|
263
|
+
? `Team 不是默认角色:全局 default_agent="${defaultAgentCheck.defaultAgent}"。` +
|
|
264
|
+
"2.1.x 插件 ctx 没有 agent.default,插件无法设置默认——默认只能由安装器写 default_agent 决定,重跑 scripts/install.ps1 / install.sh 即可。"
|
|
265
|
+
: `默认角色不是 Team(installer 口径:${agentsDefault})。` +
|
|
266
|
+
"2.1.x 插件 ctx 没有 agent.default,插件无法设置默认——默认只能由安装器写 default_agent 决定,重跑 scripts/install.ps1 / install.sh 即可。");
|
|
267
|
+
}
|
|
268
|
+
}
|
|
224
269
|
// ---------- register the governed tools ----------
|
|
225
270
|
const entries = Object.entries(tmRuntime.tools);
|
|
226
271
|
// The retired tools are not registered. The host's own `execute` (Code
|
|
@@ -583,14 +628,6 @@ export const v2Personality = {
|
|
|
583
628
|
// the COARSE escalation (every command asks) only as the fallback:
|
|
584
629
|
// `TM_R6_FINE_ASK=off`, or no hook installed to hand the decision to.
|
|
585
630
|
const escalateShellAsk = envProtectMode !== "off" && needsCoarseShellAsk(cfg, guards.installed);
|
|
586
|
-
// Team is ALWAYS the default (the user's standing instruction — see the
|
|
587
|
-
// header for why there is no conservative form). `default()` on
|
|
588
|
-
// an agent that does not exist would just make the host fall back to build
|
|
589
|
-
// silently, so it is gated on the role actually being present, and the
|
|
590
|
-
// refusal to promote is reported rather than hidden.
|
|
591
|
-
const promoteTeamDefault = options.defaultAgent !== false;
|
|
592
|
-
let defaultPromoted = null;
|
|
593
|
-
let defaultPostCheck = "not-attempted";
|
|
594
631
|
if (typeof ctx.agent?.transform === "function") {
|
|
595
632
|
registrations.push(await ctx.agent.transform((editor) => {
|
|
596
633
|
agentsEditorRounds++;
|
|
@@ -611,30 +648,13 @@ export const v2Personality = {
|
|
|
611
648
|
if (merged.changed)
|
|
612
649
|
editor.update(id, (a) => { a.permissions = merged.triples; });
|
|
613
650
|
}
|
|
614
|
-
if (promoteTeamDefault) {
|
|
615
|
-
// `editor.get("Team")` returning nothing is NOT evidence the host does
|
|
616
|
-
// not know the role — the live run is literally executing as `team` while
|
|
617
|
-
// this snapshot lists only the 7 built-ins, so the transform receives the
|
|
618
|
-
// agent set from BEFORE the config directory merged. Gating the
|
|
619
|
-
// promotion on that stale look-up is how "Team is always the default"
|
|
620
|
-
// silently stopped being true, so the call is attempted regardless and
|
|
621
|
-
// the AFTER view is what gets recorded.
|
|
622
|
-
let ok = true;
|
|
623
|
-
try {
|
|
624
|
-
editor.default("Team");
|
|
625
|
-
}
|
|
626
|
-
catch {
|
|
627
|
-
ok = false;
|
|
628
|
-
}
|
|
629
|
-
defaultPromoted = ok;
|
|
630
|
-
defaultPostCheck = editor.get?.("Team") ? "present-after" : "absent-after";
|
|
631
|
-
}
|
|
632
651
|
// Recorded HERE, at the moment of observation. The host defers this
|
|
633
|
-
// callback
|
|
634
|
-
//
|
|
635
|
-
//
|
|
636
|
-
//
|
|
637
|
-
//
|
|
652
|
+
// callback, so the boot record cannot claim anything about what has not
|
|
653
|
+
// happened yet — least of all `agents_missing: ""`, which reads as
|
|
654
|
+
// "all six roles found" when the truth at that instant was "nobody has
|
|
655
|
+
// looked". `agents_default` is NOT part of the observation: it comes from
|
|
656
|
+
// the installer's `default_agent` key (read synchronously at boot), because
|
|
657
|
+
// 2.1.x gives the plugin no `editor.default` to call at all.
|
|
638
658
|
try {
|
|
639
659
|
tmRuntime.pipelines.store.appendTrajectory({
|
|
640
660
|
tool: "host",
|
|
@@ -650,10 +670,9 @@ export const v2Personality = {
|
|
|
650
670
|
agents_editor_rounds: agentsEditorRounds,
|
|
651
671
|
agents_editor_unseen: missingAgents.join(","),
|
|
652
672
|
agents_resolved_in_request: resolvedAgentIds().join(","),
|
|
653
|
-
agents_default:
|
|
673
|
+
agents_default: agentsDefault,
|
|
654
674
|
agents_unmapped: [...unmappedActions].join(" "),
|
|
655
675
|
agents_normalized: true,
|
|
656
|
-
agents_default_post: defaultPostCheck,
|
|
657
676
|
// Is "all six missing" the host having no roles, or the callback
|
|
658
677
|
// firing before it loaded them? Those need different fixes and the
|
|
659
678
|
// difference is not guessable from the outside — the editor's own view
|
|
@@ -690,19 +709,6 @@ export const v2Personality = {
|
|
|
690
709
|
else {
|
|
691
710
|
notes.push("ctx.agent.transform 不存在,角色权限矩阵未规范化");
|
|
692
711
|
}
|
|
693
|
-
if (defaultPromoted === false) {
|
|
694
|
-
notes.push("Team 没有成为默认:editor.default(\"Team\") 抛错了");
|
|
695
|
-
}
|
|
696
|
-
else if (defaultPromoted && defaultPostCheck !== "present-after") {
|
|
697
|
-
// Measured on a live 2.0.16 standalone boot: the call is accepted, `team` is
|
|
698
|
-
// absent from the editor before AND after, and `default_agent` in
|
|
699
|
-
// opencode.jsonc keeps the user's value. The plugin therefore cannot promote
|
|
700
|
-
// the default on v2 — the transform receives the agent set from before the
|
|
701
|
-
// config directory merges. Saying so is the whole point: this file used to
|
|
702
|
-
// claim the promotion was live-verified, and the only thing that actually
|
|
703
|
-
// makes Team the default is the installer writing the key.
|
|
704
|
-
notes.push("Team 默认:editor.default(\"team\") 已被宿主接受但**无法核验生效**(transform 拿到的是配置合并前的角色集,实测调用后 editor 里仍无 team)。真正让这个要求成立的是安装器写 `default_agent: \"team\"`——没装过安装器就别假定 Team 是默认。");
|
|
705
|
-
}
|
|
706
712
|
if (unmappedActions.size) {
|
|
707
713
|
notes.push(`白名单里这些键在 v2 没有对应动作,已如实丢弃:${[...unmappedActions].join(",")}`);
|
|
708
714
|
}
|
|
@@ -1220,7 +1226,11 @@ export const v2Personality = {
|
|
|
1220
1226
|
agents_editor_rounds: agentsEditorRounds,
|
|
1221
1227
|
agents_editor_unseen: agentsEditorRounds ? missingAgents.join(",") : "",
|
|
1222
1228
|
agents_resolved_in_request: resolvedAgentIds().join(","),
|
|
1223
|
-
|
|
1229
|
+
// The INSTALLER's verdict, read synchronously at boot (see the block beside
|
|
1230
|
+
// `notes`): `installer:Team` / `installer:other` / `missing` / `no-config` /
|
|
1231
|
+
// `unreadable` / `opt-out`. Not a promotion verdict — 2.1.4 gives the plugin
|
|
1232
|
+
// no `agent.default`, so the plugin has nothing to promote with.
|
|
1233
|
+
agents_default: agentsDefault,
|
|
1224
1234
|
request_hooks: session.registrations.length,
|
|
1225
1235
|
guard_hooks: guards.registrations.length,
|
|
1226
1236
|
storage_probe: storageProbe.state,
|
|
@@ -1242,9 +1252,11 @@ export const v2Personality = {
|
|
|
1242
1252
|
request_removed_plan: removedPlanSizes,
|
|
1243
1253
|
board_ttl_days: ttlDays,
|
|
1244
1254
|
// #38: the runtime fallback's verdict — "ok" / "missing-role" / "no-default"
|
|
1245
|
-
// / "no-config" / "unreadable"
|
|
1246
|
-
//
|
|
1247
|
-
|
|
1255
|
+
// / "no-config" / "unreadable", plus "opt-out" when `defaultAgent:false` told
|
|
1256
|
+
// us to skip the check entirely (so a skipped read is never printed as
|
|
1257
|
+
// "no-config"). `default_agent_missing` names the role only when one is
|
|
1258
|
+
// actually missing, so a clean boot prints an empty string.
|
|
1259
|
+
default_agent_check: defaultAgentEnabled ? defaultAgentCheck.state : "opt-out",
|
|
1248
1260
|
default_agent_missing: defaultAgentCheck.state === "missing-role" ? defaultAgentCheck.defaultAgent ?? "" : "",
|
|
1249
1261
|
env_protect: envProtectMode,
|
|
1250
1262
|
note: notes.join(" · "),
|