@te-river/opencode-team-mode 1.8.5 → 1.8.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 +9 -8
- package/README.zh-CN.md +10 -9
- 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 +19 -8
- 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 +67 -11
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +254 -27
- package/dist/tm/dispatch.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
|
@@ -4,12 +4,16 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Package ① (`config-layers.ts`) is the PURE layer: it takes raw JSONC text
|
|
6
6
|
* and returns the merged view. This module is the IO half — it LOCATES and
|
|
7
|
-
* READS the
|
|
8
|
-
*
|
|
7
|
+
* READS the file layers, then hands the merged JSON values to `resolveConfig`
|
|
8
|
+
* (the registry-driven validator).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* Three layers, low→high: `全局 < 项目 < 系统`. There is NO session layer and
|
|
11
11
|
* NO env layer (the host's own config has none either —
|
|
12
|
-
* `opencode.ai/v2/docs/config`)
|
|
12
|
+
* `opencode.ai/v2/docs/config`), but the host DOES have a managed-settings
|
|
13
|
+
* layer (`/etc/opencode`, `%ProgramData%\opencode`) and its docs put it above
|
|
14
|
+
* every user layer ("Managed settings have the highest precedence"), so the
|
|
15
|
+
* system file is read LAST and wins — including for the red-line keys, which
|
|
16
|
+
* a project file still cannot set.
|
|
13
17
|
*
|
|
14
18
|
* The project layer MIRRORS the host's layering semantics: search from the
|
|
15
19
|
* current directory up to the filesystem root; merge the DIRECT files
|
|
@@ -36,6 +40,10 @@ export interface ConfigFileRoots {
|
|
|
36
40
|
projectDir?: string;
|
|
37
41
|
/** Home dir used to derive the default global dir (default `os.homedir()`). */
|
|
38
42
|
home?: string;
|
|
43
|
+
/** Directory holding the SYSTEM (managed settings) file. Defaults to the
|
|
44
|
+
* platform root (`%ProgramData%\opencode` / `/etc/opencode`); injectable so
|
|
45
|
+
* a test never reads — or writes — the real machine-wide path. */
|
|
46
|
+
systemDir?: string;
|
|
39
47
|
}
|
|
40
48
|
export interface ConfigFileRead {
|
|
41
49
|
/** The resolved global dir (whether or not the file exists). */
|
|
@@ -50,6 +58,13 @@ export interface ConfigFileRead {
|
|
|
50
58
|
projectPaths: string[];
|
|
51
59
|
/** The `.opencode/` subset of `projectPaths` (for the report). */
|
|
52
60
|
opencodePaths: string[];
|
|
61
|
+
/** The resolved system dir, or null when this platform has none derivable
|
|
62
|
+
* (Windows without `ProgramData`). */
|
|
63
|
+
systemDir: string | null;
|
|
64
|
+
/** System (managed settings) file raw JSONC, or null when absent. */
|
|
65
|
+
systemLayer: string | null;
|
|
66
|
+
/** Absolute path of the system file when it was read. */
|
|
67
|
+
systemPath: string | null;
|
|
53
68
|
/** Files dropped WHOLE because they failed to parse (never half-applied). */
|
|
54
69
|
skipped: Array<{
|
|
55
70
|
name: string;
|
|
@@ -64,8 +79,17 @@ export interface ConfigFileRead {
|
|
|
64
79
|
* hermetic). `OPENCODE_CONFIG_DIR` is the host's own variable, not ours.
|
|
65
80
|
*/
|
|
66
81
|
export declare function resolveGlobalDir(roots?: ConfigFileRoots, env?: EnvLike): string;
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
82
|
+
/**
|
|
83
|
+
* The resolved SYSTEM (managed settings) config dir — the host's own
|
|
84
|
+
* highest-precedence layer (`opencode.ai/v2/docs/config`): `/etc/opencode` on
|
|
85
|
+
* POSIX, `%ProgramData%\opencode` on Windows. Returns `null` when the root
|
|
86
|
+
* cannot be derived (Windows with `ProgramData` unset), and the layer is then
|
|
87
|
+
* simply absent rather than guessed at. No IO, so `envOnly` may still resolve
|
|
88
|
+
* it for the report.
|
|
89
|
+
*/
|
|
90
|
+
export declare function resolveSystemDir(roots?: ConfigFileRoots, env?: EnvLike, platform?: NodeJS.Platform): string | null;
|
|
91
|
+
/** Locate and read every file layer. Pure IO — no globals beyond the injected
|
|
92
|
+
* roots. */
|
|
69
93
|
export declare function readConfigFiles(roots?: ConfigFileRoots, env?: EnvLike): ConfigFileRead;
|
|
70
94
|
export interface LayeredTmConfig {
|
|
71
95
|
/** The resolved runtime config (file values folded in). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;uEAEmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,oEAAoE;IACpE,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClC,uEAAuE;IACvE,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB;2CACuC;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,qEAAqE;IACrE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAmDD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,eAAoB,EAAE,GAAG,GAAE,OAAqB,GAAG,MAAM,CAOhG;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,eAAoB,EAC3B,GAAG,GAAE,OAAqB,EAC1B,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,MAAM,GAAG,IAAI,CAOf;AAED;aACa;AACb,wBAAgB,eAAe,CAAC,KAAK,GAAE,eAAoB,EAAE,GAAG,GAAE,OAAqB,GAAG,cAAc,CA+CvG;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,GAAG,EAAE,QAAQ,CAAA;IACb,4EAA4E;IAC5E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,cAAc,CAAA;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;0EAGsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,yEAAyE;IACzE,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAeD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,eAAoB,EAC3B,IAAI,GAAE,6BAAkC,GACvC,eAAe,CAoBjB;AAWD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,UAAU,CAAC,EAAE,eAAe,GAC3B,MAAM,CA6BR"}
|
package/dist/tm/config-files.js
CHANGED
|
@@ -4,12 +4,16 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Package ① (`config-layers.ts`) is the PURE layer: it takes raw JSONC text
|
|
6
6
|
* and returns the merged view. This module is the IO half — it LOCATES and
|
|
7
|
-
* READS the
|
|
8
|
-
*
|
|
7
|
+
* READS the file layers, then hands the merged JSON values to `resolveConfig`
|
|
8
|
+
* (the registry-driven validator).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* Three layers, low→high: `全局 < 项目 < 系统`. There is NO session layer and
|
|
11
11
|
* NO env layer (the host's own config has none either —
|
|
12
|
-
* `opencode.ai/v2/docs/config`)
|
|
12
|
+
* `opencode.ai/v2/docs/config`), but the host DOES have a managed-settings
|
|
13
|
+
* layer (`/etc/opencode`, `%ProgramData%\opencode`) and its docs put it above
|
|
14
|
+
* every user layer ("Managed settings have the highest precedence"), so the
|
|
15
|
+
* system file is read LAST and wins — including for the red-line keys, which
|
|
16
|
+
* a project file still cannot set.
|
|
13
17
|
*
|
|
14
18
|
* The project layer MIRRORS the host's layering semantics: search from the
|
|
15
19
|
* current directory up to the filesystem root; merge the DIRECT files
|
|
@@ -92,14 +96,37 @@ export function resolveGlobalDir(roots = {}, env = process.env) {
|
|
|
92
96
|
: undefined;
|
|
93
97
|
return roots.globalDir ?? override ?? path.join(home, ".config", "opencode");
|
|
94
98
|
}
|
|
95
|
-
/**
|
|
96
|
-
*
|
|
99
|
+
/**
|
|
100
|
+
* The resolved SYSTEM (managed settings) config dir — the host's own
|
|
101
|
+
* highest-precedence layer (`opencode.ai/v2/docs/config`): `/etc/opencode` on
|
|
102
|
+
* POSIX, `%ProgramData%\opencode` on Windows. Returns `null` when the root
|
|
103
|
+
* cannot be derived (Windows with `ProgramData` unset), and the layer is then
|
|
104
|
+
* simply absent rather than guessed at. No IO, so `envOnly` may still resolve
|
|
105
|
+
* it for the report.
|
|
106
|
+
*/
|
|
107
|
+
export function resolveSystemDir(roots = {}, env = process.env, platform = process.platform) {
|
|
108
|
+
if (roots.systemDir)
|
|
109
|
+
return roots.systemDir;
|
|
110
|
+
if (platform === "win32") {
|
|
111
|
+
const pd = typeof env.ProgramData === "string" ? env.ProgramData.trim() : "";
|
|
112
|
+
return pd ? path.join(pd, "opencode") : null;
|
|
113
|
+
}
|
|
114
|
+
return "/etc/opencode";
|
|
115
|
+
}
|
|
116
|
+
/** Locate and read every file layer. Pure IO — no globals beyond the injected
|
|
117
|
+
* roots. */
|
|
97
118
|
export function readConfigFiles(roots = {}, env = process.env) {
|
|
98
119
|
const globalDir = resolveGlobalDir(roots, env);
|
|
99
120
|
const projectDir = roots.projectDir ?? process.cwd();
|
|
121
|
+
const systemDir = resolveSystemDir(roots, env);
|
|
100
122
|
const skipped = [];
|
|
101
123
|
const globalPath = path.join(globalDir, CONFIG_FILE_NAME);
|
|
102
124
|
const globalLayer = readTextFile(globalPath);
|
|
125
|
+
// The system file is handed to the pure layer as TEXT: a parse failure is
|
|
126
|
+
// then reported as a skipped `system` layer — the same whole-layer rule the
|
|
127
|
+
// global file follows (no second parser here).
|
|
128
|
+
const systemPathCandidate = systemDir ? path.join(systemDir, CONFIG_FILE_NAME) : null;
|
|
129
|
+
const systemLayer = systemPathCandidate ? readTextFile(systemPathCandidate) : null;
|
|
103
130
|
const directEntries = [];
|
|
104
131
|
const opencodeEntries = [];
|
|
105
132
|
const projectPaths = [];
|
|
@@ -126,16 +153,22 @@ export function readConfigFiles(roots = {}, env = process.env) {
|
|
|
126
153
|
projectLayer: [mergeTexts(directEntries, skipped), mergeTexts(opencodeEntries, skipped)],
|
|
127
154
|
projectPaths,
|
|
128
155
|
opencodePaths,
|
|
156
|
+
systemDir,
|
|
157
|
+
systemLayer,
|
|
158
|
+
systemPath: systemLayer !== null ? systemPathCandidate : null,
|
|
129
159
|
skipped,
|
|
130
160
|
};
|
|
131
161
|
}
|
|
132
|
-
const EMPTY_FILES = (globalDir) => ({
|
|
162
|
+
const EMPTY_FILES = (globalDir, systemDir) => ({
|
|
133
163
|
globalDir,
|
|
134
164
|
globalLayer: null,
|
|
135
165
|
globalPath: null,
|
|
136
166
|
projectLayer: [null, null],
|
|
137
167
|
projectPaths: [],
|
|
138
168
|
opencodePaths: [],
|
|
169
|
+
systemDir,
|
|
170
|
+
systemLayer: null,
|
|
171
|
+
systemPath: null,
|
|
139
172
|
skipped: [],
|
|
140
173
|
});
|
|
141
174
|
/**
|
|
@@ -149,10 +182,13 @@ export function resolveLayeredTmConfig(roots = {}, opts = {}) {
|
|
|
149
182
|
const env = opts.env ?? process.env;
|
|
150
183
|
const envOnly = opts.envOnly ?? false;
|
|
151
184
|
const globalDir = resolveGlobalDir(roots, env);
|
|
152
|
-
const files = envOnly
|
|
185
|
+
const files = envOnly
|
|
186
|
+
? EMPTY_FILES(globalDir, resolveSystemDir(roots, env))
|
|
187
|
+
: readConfigFiles(roots, env);
|
|
153
188
|
const base = resolveLayeredConfig({
|
|
154
189
|
globalLayer: files.globalLayer,
|
|
155
190
|
projectLayer: files.projectLayer,
|
|
191
|
+
systemLayer: files.systemLayer,
|
|
156
192
|
envOnly,
|
|
157
193
|
});
|
|
158
194
|
const layered = {
|
|
@@ -180,8 +216,9 @@ const AUTO_CREATE_LABEL = {
|
|
|
180
216
|
*/
|
|
181
217
|
export function renderConfigSection(layered, files, autoCreate) {
|
|
182
218
|
const lines = ["", "### 分层配置(team-mode.jsonc)", ""];
|
|
183
|
-
lines.push(`- 层序 全局 < 项目 · 全局文件 ${files.globalPath ? "有" : "无"} · ` +
|
|
219
|
+
lines.push(`- 层序 全局 < 项目 < 系统(最高) · 全局文件 ${files.globalPath ? "有" : "无"} · ` +
|
|
184
220
|
`项目文件 ${files.projectPaths.length} 个(其中 .opencode ${files.opencodePaths.length} 个)· ` +
|
|
221
|
+
`系统文件 ${files.systemPath ? "有" : files.systemDir ? "无" : "本平台无此层"} · ` +
|
|
185
222
|
`envOnly ${layered.envOnlyActive ? "开(文件层已全部忽略)" : "关"}`);
|
|
186
223
|
if (autoCreate) {
|
|
187
224
|
lines.push(`- 全局文件自动创建:${AUTO_CREATE_LABEL[autoCreate]}(${autoCreate})`);
|
|
@@ -191,7 +228,7 @@ export function renderConfigSection(layered, files, autoCreate) {
|
|
|
191
228
|
? `- 每键来源:${sources.map(([k, s]) => `${k}=${s}`).join(" · ")}`
|
|
192
229
|
: "- 每键来源:(没有任何键来自文件,全部走默认)");
|
|
193
230
|
if (layered.ignoredRedLineKeys.length) {
|
|
194
|
-
lines.push(`-
|
|
231
|
+
lines.push(`- 红线键被项目文件尝试设置(已忽略,仅全局与系统层生效):${layered.ignoredRedLineKeys.map((r) => `${r.key}(${r.layer})`).join(" · ")}`);
|
|
195
232
|
}
|
|
196
233
|
if (layered.unknownKeys.length) {
|
|
197
234
|
lines.push(`- 未知键(告警不应用):${layered.unknownKeys.map((u) => `${u.key}(${u.layer})`).join(" · ")}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* its one-line doc, and the template generator (`config-template.ts`) renders
|
|
7
7
|
* the global file straight from it, so a comment and a key can never drift.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* config has NO session layer (opencode.ai/v2/docs/config), so neither do we
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Three file layers, low→high: `global < project < system`. The host's own
|
|
10
|
+
* config has NO session layer (opencode.ai/v2/docs/config), so neither do we;
|
|
11
|
+
* it DOES have a managed-settings layer (`/etc/opencode`,
|
|
12
|
+
* `%ProgramData%\opencode`) which the docs place ABOVE every user layer
|
|
13
|
+
* ("Managed settings have the highest precedence") — hence `system` last.
|
|
13
14
|
*
|
|
14
15
|
* Within the project layer the `.opencode/` file wins over the direct one,
|
|
15
16
|
* mirroring the host's own discovery order (direct files merged
|
|
@@ -27,8 +28,10 @@
|
|
|
27
28
|
* parse");
|
|
28
29
|
* - a single key with the WRONG TYPE is dropped from that layer only, and
|
|
29
30
|
* the next layer down answers for it;
|
|
30
|
-
* - a RED-LINE key is honored ONLY in the GLOBAL file (D1). Written
|
|
31
|
-
* project file it is IGNORED outright and reported (see
|
|
31
|
+
* - a RED-LINE key is honored ONLY in the GLOBAL or SYSTEM file (D1). Written
|
|
32
|
+
* in a project file it is IGNORED outright and reported with its layer (see
|
|
33
|
+
* RED_LINE_EXEMPT_KEYS / RED_LINE_LAYERS) — a project file can be committed
|
|
34
|
+
* and shared, an admin-managed system file cannot.
|
|
32
35
|
*/
|
|
33
36
|
/** Env-like record — kept local so this module has no import cycle with config.ts. */
|
|
34
37
|
export type EnvLike = Record<string, string | undefined>;
|
|
@@ -45,7 +48,7 @@ export interface ConfigKeySpec {
|
|
|
45
48
|
default: unknown;
|
|
46
49
|
/** One-line Chinese doc — the template comment's only source. */
|
|
47
50
|
doc: string;
|
|
48
|
-
/** Red-line: honored ONLY in the global file; a project value is ignored. */
|
|
51
|
+
/** Red-line: honored ONLY in the global or system file; a project value is ignored. */
|
|
49
52
|
redLine?: boolean;
|
|
50
53
|
/** Why a project file may not override it (shown in the ignored-key report). */
|
|
51
54
|
redLineReason?: string;
|
|
@@ -91,7 +94,11 @@ export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
|
|
|
91
94
|
/** The red-line keys, derived from the registry (single source of truth). */
|
|
92
95
|
export declare const RED_LINE_EXEMPT_KEYS: readonly string[];
|
|
93
96
|
/** Standard layer names, low→high. */
|
|
94
|
-
export type LayerSource = "global" | "project" | "project:.opencode";
|
|
97
|
+
export type LayerSource = "global" | "project" | "project:.opencode" | "system";
|
|
98
|
+
/** The layers a RED-LINE key is honored in: the user's own global file and the
|
|
99
|
+
* admin-managed system file. Every PROJECT layer loses (a project file is
|
|
100
|
+
* committed and shared, so it must not be able to widen a red line). */
|
|
101
|
+
export declare const RED_LINE_LAYERS: readonly LayerSource[];
|
|
95
102
|
export interface SkippedLayer {
|
|
96
103
|
name: string;
|
|
97
104
|
reason: string;
|
|
@@ -114,7 +121,8 @@ export interface LayeredConfigResult {
|
|
|
114
121
|
perKeySource: Record<string, LayerSource>;
|
|
115
122
|
/** Layers dropped whole because they failed to parse. */
|
|
116
123
|
skippedLayers: SkippedLayer[];
|
|
117
|
-
/** Red-line keys a PROJECT file tried to set (ignored; global/default
|
|
124
|
+
/** Red-line keys a PROJECT file tried to set (ignored; global/system/default
|
|
125
|
+
* answers). */
|
|
118
126
|
ignoredRedLineKeys: IgnoredRedLineKey[];
|
|
119
127
|
/** Keys not in the registry (warned, never applied). */
|
|
120
128
|
unknownKeys: UnknownKey[];
|
|
@@ -127,6 +135,9 @@ export interface ResolveLayeredConfigInput {
|
|
|
127
135
|
/** Project file(s). A single raw text, or an array ordered low→high
|
|
128
136
|
* (`[direct, .opencode]`) so the `.opencode/` file wins. */
|
|
129
137
|
projectLayer?: string | null | Array<string | null>;
|
|
138
|
+
/** System (managed settings) file raw JSONC, or null/undefined when absent.
|
|
139
|
+
* The HIGHEST-precedence layer — see the module header. */
|
|
140
|
+
systemLayer?: string | null;
|
|
130
141
|
/** Override the red-line exempt set (defaults to RED_LINE_EXEMPT_KEYS). */
|
|
131
142
|
exempt?: readonly string[];
|
|
132
143
|
/** Remove every file layer (test injection). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-layers.d.ts","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config-layers.d.ts","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/config-layers.js
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* its one-line doc, and the template generator (`config-template.ts`) renders
|
|
7
7
|
* the global file straight from it, so a comment and a key can never drift.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* config has NO session layer (opencode.ai/v2/docs/config), so neither do we
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Three file layers, low→high: `global < project < system`. The host's own
|
|
10
|
+
* config has NO session layer (opencode.ai/v2/docs/config), so neither do we;
|
|
11
|
+
* it DOES have a managed-settings layer (`/etc/opencode`,
|
|
12
|
+
* `%ProgramData%\opencode`) which the docs place ABOVE every user layer
|
|
13
|
+
* ("Managed settings have the highest precedence") — hence `system` last.
|
|
13
14
|
*
|
|
14
15
|
* Within the project layer the `.opencode/` file wins over the direct one,
|
|
15
16
|
* mirroring the host's own discovery order (direct files merged
|
|
@@ -27,8 +28,10 @@
|
|
|
27
28
|
* parse");
|
|
28
29
|
* - a single key with the WRONG TYPE is dropped from that layer only, and
|
|
29
30
|
* the next layer down answers for it;
|
|
30
|
-
* - a RED-LINE key is honored ONLY in the GLOBAL file (D1). Written
|
|
31
|
-
* project file it is IGNORED outright and reported (see
|
|
31
|
+
* - a RED-LINE key is honored ONLY in the GLOBAL or SYSTEM file (D1). Written
|
|
32
|
+
* in a project file it is IGNORED outright and reported with its layer (see
|
|
33
|
+
* RED_LINE_EXEMPT_KEYS / RED_LINE_LAYERS) — a project file can be committed
|
|
34
|
+
* and shared, an admin-managed system file cannot.
|
|
32
35
|
*/
|
|
33
36
|
/** Default tm_bash read-only allowlist (P3, command-level). The PS
|
|
34
37
|
* -Object entries are pure pipeline formatters — no write capability. */
|
|
@@ -220,6 +223,11 @@ export const CONFIG_KEYS = [
|
|
|
220
223
|
/** The red-line keys, derived from the registry (single source of truth). */
|
|
221
224
|
export const RED_LINE_EXEMPT_KEYS = CONFIG_KEYS.filter((k) => k.redLine).map((k) => k.key);
|
|
222
225
|
const KEY_BY_NAME = new Map(CONFIG_KEYS.map((k) => [k.key, k]));
|
|
226
|
+
/** The layers a RED-LINE key is honored in: the user's own global file and the
|
|
227
|
+
* admin-managed system file. Every PROJECT layer loses (a project file is
|
|
228
|
+
* committed and shared, so it must not be able to widen a red line). */
|
|
229
|
+
export const RED_LINE_LAYERS = ["global", "system"];
|
|
230
|
+
const RED_LINE_LAYER_SET = new Set(RED_LINE_LAYERS);
|
|
223
231
|
// ---------------------------------------------------------------------------
|
|
224
232
|
// JSONC
|
|
225
233
|
// ---------------------------------------------------------------------------
|
|
@@ -358,11 +366,14 @@ export function resolveLayeredConfig(input) {
|
|
|
358
366
|
const exempt = new Set(input.exempt ?? RED_LINE_EXEMPT_KEYS);
|
|
359
367
|
const envOnlyActive = input.envOnly ?? false;
|
|
360
368
|
// Ordered low→high. envOnly removes every file layer BEFORE any parse.
|
|
369
|
+
// `system` is LAST: the host's managed settings outrank every user layer.
|
|
361
370
|
const fileLayers = [];
|
|
362
371
|
if (!envOnlyActive) {
|
|
363
372
|
if (typeof input.globalLayer === "string")
|
|
364
373
|
fileLayers.push({ name: "global", text: input.globalLayer });
|
|
365
374
|
fileLayers.push(...projectLayerList(input.projectLayer));
|
|
375
|
+
if (typeof input.systemLayer === "string")
|
|
376
|
+
fileLayers.push({ name: "system", text: input.systemLayer });
|
|
366
377
|
}
|
|
367
378
|
const skippedLayers = [];
|
|
368
379
|
const ignoredRedLineKeys = [];
|
|
@@ -388,8 +399,8 @@ export function resolveLayeredConfig(input) {
|
|
|
388
399
|
unknownKeys.push({ key, layer: layer.name });
|
|
389
400
|
continue;
|
|
390
401
|
}
|
|
391
|
-
// D1: a red-line key is honored ONLY in the global file.
|
|
392
|
-
if (spec.redLine && layer.name
|
|
402
|
+
// D1: a red-line key is honored ONLY in the global or system file.
|
|
403
|
+
if (spec.redLine && !RED_LINE_LAYER_SET.has(layer.name)) {
|
|
393
404
|
ignoredRedLineKeys.push({ key, layer: layer.name, value });
|
|
394
405
|
continue;
|
|
395
406
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-layers.js","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-layers.js","sourceRoot":"","sources":["../../src/tm/config-layers.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,8 @@ import { CONFIG_FILE_NAME } from "./config-files.js";
|
|
|
18
18
|
const HEADER = [
|
|
19
19
|
"// team-mode.jsonc — TeamMode 唯一配置源",
|
|
20
20
|
"// 本文件由插件首次启动时自动生成;删除后下次启动会重新生成。",
|
|
21
|
-
"// 层序:全局(本文件) < 项目(<repo>/team-mode.jsonc 或 <repo>/.opencode/team-mode.jsonc)",
|
|
22
|
-
"// 红线键(redLine
|
|
21
|
+
"// 层序:全局(本文件) < 项目(<repo>/team-mode.jsonc 或 <repo>/.opencode/team-mode.jsonc) < system(%ProgramData%\\opencode 或 /etc/opencode,最高)",
|
|
22
|
+
"// 红线键(redLine)只能在全局或 system 文件里设置;项目文件设置会被忽略并报告。",
|
|
23
23
|
].join("\n");
|
|
24
24
|
/** Render the full global config file (JSONC, every registry key listed).
|
|
25
25
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-template.js","sourceRoot":"","sources":["../../src/tm/config-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,0EAA0E;AAC1E,MAAM,MAAM,GAAG;IACb,qCAAqC;IACrC,kCAAkC;IAClC
|
|
1
|
+
{"version":3,"file":"config-template.js","sourceRoot":"","sources":["../../src/tm/config-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,0EAA0E;AAC1E,MAAM,MAAM,GAAG;IACb,qCAAqC;IACrC,kCAAkC;IAClC,oIAAoI;IACpI,mDAAmD;CACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;;;;2CAM2C;AAC3C,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QAC3D,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,CAAC,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QACrD,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAChC,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAAiC,EAAE;IACvF,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;IACnD,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACtD,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAA;QACrD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,qEAAqE;QACrE,+DAA+D;QAC/D,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC"}
|
package/dist/tm/dispatch.d.ts
CHANGED
|
@@ -85,13 +85,27 @@ export interface ChildRecord {
|
|
|
85
85
|
* through this tool — so the row reports state and the settle moment and must never
|
|
86
86
|
* be rendered as if we held the text. */
|
|
87
87
|
via?: "host-injection";
|
|
88
|
-
/** How this row reached its settled state
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
|
|
88
|
+
/** How this row reached its settled state — four sources, kept apart because their
|
|
89
|
+
* EVIDENCE differs:
|
|
90
|
+
* - `event`: the host named this child session in a `session.idle`;
|
|
91
|
+
* - `injection`: the host's own completion envelope reached the parent;
|
|
92
|
+
* - `session-get`: the host's own `session.get` record carried a `time.idle` — the
|
|
93
|
+
* strongest source, and the only one that also carries the host's `outcome` word;
|
|
94
|
+
* - `parent-idle`: an INFERENCE, now only a fallback for a host that cannot be asked:
|
|
95
|
+
* a still-running host child of a session that just went idle has been collected.
|
|
96
|
+
* Printed as a presumption, never as 完成.
|
|
97
|
+
* Measured on 2.1.4: a child's own `session.idle` is not forwarded to plugin subscribers,
|
|
98
|
+
* while `session.get({sessionID})` answers `time.idle` on an idle session — so the
|
|
99
|
+
* presumption is the fallback, not the default. */
|
|
100
|
+
settleSource?: "event" | "parent-idle" | "injection" | "session-get";
|
|
101
|
+
/** The host's own `outcome` word for the finished run (`succeeded`, …), copied verbatim
|
|
102
|
+
* and never translated: it is the only first-hand statement about how it ended. */
|
|
103
|
+
outcome?: string;
|
|
104
|
+
/** The host's own run window from `session.get`: `time.created` / `time.idle`. Reported
|
|
105
|
+
* as the child's duration instead of ours (an adopted row's `startedAt` is our discovery
|
|
106
|
+
* moment, not the run's start). */
|
|
107
|
+
hostCreatedAt?: number;
|
|
108
|
+
hostIdleAt?: number;
|
|
95
109
|
/** Whether the body tm_join actually READ was a finished turn: true only when the last
|
|
96
110
|
* assistant message carried `time.completed`. Absent/false is NOT "the child failed" —
|
|
97
111
|
* it is the measurement that lets a presumed settle avoid presenting the text written
|
|
@@ -185,6 +199,22 @@ export declare function openHostTodos(todos: unknown): HostTodo[];
|
|
|
185
199
|
* caller must degrade, and `create`/`promptAsync` are deliberately NOT part
|
|
186
200
|
* of this contract any more: nothing here spawns sessions. */
|
|
187
201
|
export declare function sessionApiOf(client: unknown): SessionApi | null;
|
|
202
|
+
/** What the host's own `session.get` said about ONE session, reduced to the facts that can
|
|
203
|
+
* settle a row. Measured on 2.1.4: `ctx.session.get({sessionID})` returns
|
|
204
|
+
* `{id, projectID, agent, model, cost, tokens, outcome, time:{created, updated, idle, viewed},
|
|
205
|
+
* title, permissions, location}` — `time.idle` exists exactly when the session has finished
|
|
206
|
+
* a run, and `outcome` is the host's own word for how it went.
|
|
207
|
+
*
|
|
208
|
+
* `answered:false` means "we could not ask", NEVER "it is still running". The two lead to
|
|
209
|
+
* opposite conclusions (fall back to the presumption vs keep 运行中), so they stay separate
|
|
210
|
+
* fields rather than one boolean plus a guess. */
|
|
211
|
+
export interface HostSessionState {
|
|
212
|
+
answered: boolean;
|
|
213
|
+
createdAt?: number;
|
|
214
|
+
idleAt?: number;
|
|
215
|
+
outcome?: string;
|
|
216
|
+
}
|
|
217
|
+
export declare function readHostSessionState(api: SessionApi | null, sessionID: string): Promise<HostSessionState>;
|
|
188
218
|
/** The host's OWN visible-and-non-blocking sub-agent path: its built-in `task`
|
|
189
219
|
* takes `background: true`, and because that card is rendered by the host's
|
|
190
220
|
* own `task` renderer it links to the live child session — which a plugin tool
|
|
@@ -282,8 +312,18 @@ export declare function describeHostError(err: unknown, max?: number): string;
|
|
|
282
312
|
* that had already landed — the fix is to say it, not to withhold the text.
|
|
283
313
|
*/
|
|
284
314
|
export declare const INCOMPLETE_PRESUMED_BODY_WARNING = "\u26A0 \u63A8\u5B9A\u7ED3\u7B97\u4E14\u6B63\u6587\u672A\u5E26\u5B8C\u6210\u65F6\u95F4\uFF1A\u8FD9\u53EF\u80FD\u662F\u6700\u540E\u4E00\u6B21\u5DE5\u5177\u8C03\u7528\u524D\u7684\u534A\u622A\u8BDD\uFF0C\u4E0D\u8981\u636E\u6B64\u5224\u5B9A\u4EA4\u4ED8\uFF1B\u7A0D\u540E\u518D\u6B21 tm_join \u53EF\u590D\u6838\uFF08\u6216\u8BA9\u5B50\u4EE3\u7406\u7EED\u8DD1\uFF09\u3002";
|
|
285
|
-
/** One child's status line — the lead reads these, so keep them terse.
|
|
315
|
+
/** One child's status line — the lead reads these, so keep them terse. The tag is chosen by
|
|
316
|
+
* the settle SOURCE, because the same word would otherwise cover a host-confirmed finish, an
|
|
317
|
+
* unreachable seam and a guess: only `session-get` may print the host's outcome, and nothing
|
|
318
|
+
* but a real settlement may print 完成. */
|
|
286
319
|
export declare function renderChildLine(c: ChildRecord, elapsedMs: number): string;
|
|
320
|
+
/**
|
|
321
|
+
* One line saying HOW the round's rows reached their state: `宿主确认` (the host's own record,
|
|
322
|
+
* event or envelope), `推定` (our inference) and `未结算` (still running). A lead skimming two
|
|
323
|
+
* rows that both read 已结算 otherwise cannot tell which one the host actually confirmed — and
|
|
324
|
+
* that difference is the whole point of asking `session.get` first.
|
|
325
|
+
*/
|
|
326
|
+
export declare function settleTallyLine(children: readonly ChildRecord[]): string;
|
|
287
327
|
/** Verdicts tm_join can actually observe (issue #7's "leader keeps control"). */
|
|
288
328
|
export declare function summarizeStates(children: readonly ChildRecord[]): {
|
|
289
329
|
running: number;
|
|
@@ -324,9 +364,9 @@ export declare function cancelOutcomeParts(tally: Partial<Record<CancelOutcome,
|
|
|
324
364
|
* #steer — the THREE outcomes an interjection can produce, kept as data for the same
|
|
325
365
|
* reason #33 kept five: the host admitting input is an observation (it named the inbox
|
|
326
366
|
* item), and the host answering without naming one is not. `steered` is the only bucket
|
|
327
|
-
* allowed to print 已受理, and
|
|
328
|
-
*
|
|
329
|
-
*
|
|
367
|
+
* allowed to print 已受理, and acceptance is all the WRITE itself proves — delivery happens
|
|
368
|
+
* at a step boundary, and whether the child acted on the line is a later fact. That is why
|
|
369
|
+
* `verifySteerDelivery` exists: `已送达` is a second, separate observation.
|
|
330
370
|
*/
|
|
331
371
|
export type SteerOutcome = "steered" | "not-steered" | "no-seam";
|
|
332
372
|
/** Read the acceptance verdict out of the v2 bridge's `{data:{outcome,inboxID,seam,message}}`.
|
|
@@ -347,6 +387,22 @@ export declare function steerVerdictLine(outcome: SteerOutcome, opts?: {
|
|
|
347
387
|
inboxID?: string;
|
|
348
388
|
seam?: string;
|
|
349
389
|
}): string;
|
|
390
|
+
/** C: 已受理 vs 已送达. An interjection is DELIVERED at a step boundary, so the write itself
|
|
391
|
+
* only proves admission. The one checkable fact afterwards is whether the item still sits
|
|
392
|
+
* in that child's inbox — gone = the host handed it over, present = still queued. A list we
|
|
393
|
+
* cannot read is `unverified`, never `delivered`: a missing answer is not evidence. */
|
|
394
|
+
export type SteerDelivery = "delivered" | "queued" | "unverified";
|
|
395
|
+
/** What the lead reads after the delivery check. Every branch says out loud that delivery is
|
|
396
|
+
* not obedience — the composition must never promise what the child will do. */
|
|
397
|
+
export declare function steerDeliveryLine(v: SteerDelivery, inboxID?: string, note?: string): string;
|
|
398
|
+
/** Re-read the child's inbox once after a successful steer and answer the only question that
|
|
399
|
+
* can be answered: is the item still pending? `unverified` covers every shape we cannot
|
|
400
|
+
* read — no seam, a throwing call, a payload with items we could not identify — because
|
|
401
|
+
* "absent" must not be inferred from "unreadable". */
|
|
402
|
+
export declare function verifySteerDelivery(api: SessionApi | null, sessionID: string, inboxID: string): Promise<{
|
|
403
|
+
verdict: SteerDelivery;
|
|
404
|
+
note?: string;
|
|
405
|
+
}>;
|
|
350
406
|
export declare function steerOutcomeLabel(o: SteerOutcome): string;
|
|
351
407
|
/** Fixed order so a rerun prints the same line; an absent outcome prints nothing, not "0". */
|
|
352
408
|
export declare function steerOutcomeParts(tally: Partial<Record<SteerOutcome, number>>): string[];
|