@te-river/opencode-team-mode 1.7.1 → 1.7.3
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 +1009 -849
- package/README.zh-CN.md +906 -756
- package/dist/host/v2-browser-gate.d.ts +4 -1
- package/dist/host/v2-browser-gate.d.ts.map +1 -1
- package/dist/host/v2-browser-gate.js +1 -1
- package/dist/host/v2-browser-gate.js.map +1 -1
- package/dist/host/v2-capabilities.js +1 -1
- package/dist/host/v2-capabilities.js.map +1 -1
- package/dist/host/v2-guard.d.ts +3 -1
- package/dist/host/v2-guard.d.ts.map +1 -1
- package/dist/host/v2-guard.js +2 -2
- package/dist/host/v2-guard.js.map +1 -1
- package/dist/host/v2-offload.d.ts +12 -2
- package/dist/host/v2-offload.d.ts.map +1 -1
- package/dist/host/v2-offload.js +9 -9
- package/dist/host/v2-offload.js.map +1 -1
- package/dist/host/v2-probe-chain.d.ts +5 -1
- package/dist/host/v2-probe-chain.d.ts.map +1 -1
- package/dist/host/v2-probe-chain.js +4 -6
- package/dist/host/v2-probe-chain.js.map +1 -1
- package/dist/host/v2-probe.d.ts.map +1 -1
- package/dist/host/v2-probe.js +2 -1
- package/dist/host/v2-probe.js.map +1 -1
- package/dist/host/v2-prune.d.ts +5 -1
- package/dist/host/v2-prune.d.ts.map +1 -1
- package/dist/host/v2-prune.js +8 -14
- package/dist/host/v2-prune.js.map +1 -1
- package/dist/host/v2-retry.d.ts +9 -2
- package/dist/host/v2-retry.d.ts.map +1 -1
- package/dist/host/v2-retry.js +13 -15
- package/dist/host/v2-retry.js.map +1 -1
- package/dist/host/v2-session.d.ts +6 -2
- package/dist/host/v2-session.d.ts.map +1 -1
- package/dist/host/v2-session.js +7 -13
- package/dist/host/v2-session.js.map +1 -1
- package/dist/host/v2.d.ts +7 -2
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +38 -35
- package/dist/host/v2.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 +23 -7
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/specialists.d.ts +1 -1
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +1 -1
- package/dist/tm/args-schema.d.ts +1 -1
- package/dist/tm/args-schema.js +6 -6
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/board.js +2 -2
- package/dist/tm/board.js.map +1 -1
- package/dist/tm/config-files.d.ts +41 -17
- package/dist/tm/config-files.d.ts.map +1 -1
- package/dist/tm/config-files.js +68 -73
- package/dist/tm/config-files.js.map +1 -1
- package/dist/tm/config-layers.d.ts +65 -33
- package/dist/tm/config-layers.d.ts.map +1 -1
- package/dist/tm/config-layers.js +165 -81
- package/dist/tm/config-layers.js.map +1 -1
- package/dist/tm/config-template.d.ts +32 -0
- package/dist/tm/config-template.d.ts.map +1 -0
- package/dist/tm/config-template.js +74 -0
- package/dist/tm/config-template.js.map +1 -0
- package/dist/tm/config.d.ts +115 -140
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +100 -200
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/index.d.ts +11 -3
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +46 -16
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/ledger.d.ts +7 -3
- package/dist/tm/ledger.d.ts.map +1 -1
- package/dist/tm/ledger.js +5 -4
- package/dist/tm/ledger.js.map +1 -1
- package/dist/tm/memory.js +3 -3
- package/dist/tm/pipelines.js +1 -1
- package/dist/tm/search.js +6 -6
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/stats.js +2 -2
- package/dist/tm/stats.js.map +1 -1
- package/dist/tm/tools.js +2 -2
- package/dist/tm/webfetch.d.ts +5 -2
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +24 -18
- package/dist/tm/webfetch.js.map +1 -1
- package/docs/installation-v2.md +61 -38
- package/docs/installation.md +4 -4
- package/docs/v2-port-notes.md +31 -0
- package/package.json +1 -1
- package/scripts/gen-v2-config.mjs +40 -4
- package/dist/approval-gate.d.ts +0 -205
- package/dist/approval-gate.d.ts.map +0 -1
- package/dist/approval-gate.js +0 -627
- package/dist/approval-gate.js.map +0 -1
- package/dist/host/v1.d.ts +0 -14
- package/dist/host/v1.d.ts.map +0 -1
- package/dist/host/v1.js +0 -340
- package/dist/host/v1.js.map +0 -1
- package/dist/host/v2-client.d.ts +0 -53
- package/dist/host/v2-client.d.ts.map +0 -1
- package/dist/host/v2-client.js +0 -193
- package/dist/host/v2-client.js.map +0 -1
- package/dist/host/v2-transcript.d.ts +0 -73
- package/dist/host/v2-transcript.d.ts.map +0 -1
- package/dist/host/v2-transcript.js +0 -151
- package/dist/host/v2-transcript.js.map +0 -1
- package/dist/host-hooks.d.ts +0 -126
- package/dist/host-hooks.d.ts.map +0 -1
- package/dist/host-hooks.js +0 -284
- package/dist/host-hooks.js.map +0 -1
- package/dist/tm/bash-timeout.d.ts +0 -72
- package/dist/tm/bash-timeout.d.ts.map +0 -1
- package/dist/tm/bash-timeout.js +0 -100
- package/dist/tm/bash-timeout.js.map +0 -1
- package/dist/tm/browser.d.ts +0 -642
- package/dist/tm/browser.d.ts.map +0 -1
- package/dist/tm/browser.js +0 -2836
- package/dist/tm/browser.js.map +0 -1
- package/dist/tm/ptc/budgets.d.ts +0 -59
- package/dist/tm/ptc/budgets.d.ts.map +0 -1
- package/dist/tm/ptc/budgets.js +0 -138
- package/dist/tm/ptc/budgets.js.map +0 -1
- package/dist/tm/ptc/contract.d.ts +0 -171
- package/dist/tm/ptc/contract.d.ts.map +0 -1
- package/dist/tm/ptc/contract.js +0 -85
- package/dist/tm/ptc/contract.js.map +0 -1
- package/dist/tm/ptc/driver.d.ts +0 -40
- package/dist/tm/ptc/driver.d.ts.map +0 -1
- package/dist/tm/ptc/driver.js +0 -213
- package/dist/tm/ptc/driver.js.map +0 -1
- package/dist/tm/ptc/engines.d.ts +0 -43
- package/dist/tm/ptc/engines.d.ts.map +0 -1
- package/dist/tm/ptc/engines.js +0 -454
- package/dist/tm/ptc/engines.js.map +0 -1
- package/dist/tm/ptc/gate.d.ts +0 -28
- package/dist/tm/ptc/gate.d.ts.map +0 -1
- package/dist/tm/ptc/gate.js +0 -130
- package/dist/tm/ptc/gate.js.map +0 -1
- package/dist/tm/ptc/index.d.ts +0 -19
- package/dist/tm/ptc/index.d.ts.map +0 -1
- package/dist/tm/ptc/index.js +0 -15
- package/dist/tm/ptc/index.js.map +0 -1
- package/dist/tm/ptc/pscan.d.ts +0 -30
- package/dist/tm/ptc/pscan.d.ts.map +0 -1
- package/dist/tm/ptc/pscan.js +0 -341
- package/dist/tm/ptc/pscan.js.map +0 -1
- package/dist/tm/ptc/summary.d.ts +0 -17
- package/dist/tm/ptc/summary.d.ts.map +0 -1
- package/dist/tm/ptc/summary.js +0 -134
- package/dist/tm/ptc/summary.js.map +0 -1
- package/dist/tm/ptc/tool.d.ts +0 -66
- package/dist/tm/ptc/tool.d.ts.map +0 -1
- package/dist/tm/ptc/tool.js +0 -231
- package/dist/tm/ptc/tool.js.map +0 -1
- package/dist/tm/ptc.d.ts +0 -298
- package/dist/tm/ptc.d.ts.map +0 -1
- package/dist/tm/ptc.js +0 -865
- package/dist/tm/ptc.js.map +0 -1
- package/dist/tm/pty.d.ts +0 -70
- package/dist/tm/pty.d.ts.map +0 -1
- package/dist/tm/pty.js +0 -245
- package/dist/tm/pty.js.map +0 -1
- package/dist/tool-coerce.d.ts +0 -24
- package/dist/tool-coerce.d.ts.map +0 -1
- package/dist/tool-coerce.js +0 -63
- package/dist/tool-coerce.js.map +0 -1
package/dist/tm/board.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tm/board.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tm/board.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@
|
|
|
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 two file layers, then
|
|
8
|
-
*
|
|
9
|
-
* env strings) sees the file values.
|
|
7
|
+
* READS the two file layers, then hands the merged JSON values to
|
|
8
|
+
* `resolveConfig` (the registry-driven validator).
|
|
10
9
|
*
|
|
11
|
-
* Two layers only, low→high:
|
|
12
|
-
* (the host's own config has none either —
|
|
10
|
+
* Two layers only, low→high: `全局 < 项目`. There is NO session layer and
|
|
11
|
+
* NO env layer (the host's own config has none either —
|
|
12
|
+
* `opencode.ai/v2/docs/config`).
|
|
13
13
|
*
|
|
14
14
|
* The project layer MIRRORS the host's layering semantics: search from the
|
|
15
15
|
* current directory up to the filesystem root; merge the DIRECT files
|
|
@@ -18,14 +18,15 @@
|
|
|
18
18
|
* ancestor files are merged (closer wins) into ONE text so the pure layer's
|
|
19
19
|
* two project slots (`project` / `project:.opencode`) keep their meaning.
|
|
20
20
|
*
|
|
21
|
-
* `
|
|
22
|
-
*
|
|
21
|
+
* `envOnly` is an explicit parameter (test injection) — it removes every file
|
|
22
|
+
* layer BEFORE any read, so the escape valve costs zero IO.
|
|
23
23
|
*
|
|
24
24
|
* Every root is INJECTABLE (`ConfigFileRoots`) so tests point at a temp dir
|
|
25
25
|
* and never touch the user's real `~/.config/opencode`.
|
|
26
26
|
*/
|
|
27
27
|
import { type EnvLike, type LayeredConfigResult } from "./config-layers.js";
|
|
28
28
|
import { type TmConfig } from "./config.js";
|
|
29
|
+
import type { AutoCreateState } from "./config-template.js";
|
|
29
30
|
/** The file name both layers use. */
|
|
30
31
|
export declare const CONFIG_FILE_NAME = "team-mode.jsonc";
|
|
31
32
|
export interface ConfigFileRoots {
|
|
@@ -37,6 +38,8 @@ export interface ConfigFileRoots {
|
|
|
37
38
|
home?: string;
|
|
38
39
|
}
|
|
39
40
|
export interface ConfigFileRead {
|
|
41
|
+
/** The resolved global dir (whether or not the file exists). */
|
|
42
|
+
globalDir: string;
|
|
40
43
|
/** Global file raw JSONC, or null when it does not exist / is unreadable. */
|
|
41
44
|
globalLayer: string | null;
|
|
42
45
|
/** Absolute path of the global file when it was read. */
|
|
@@ -53,9 +56,17 @@ export interface ConfigFileRead {
|
|
|
53
56
|
reason: string;
|
|
54
57
|
}>;
|
|
55
58
|
}
|
|
56
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* The resolved global config dir. The host's global config dir is
|
|
61
|
+
* `~/.config/opencode`, overridable by `OPENCODE_CONFIG_DIR` — the global
|
|
62
|
+
* `team-mode.jsonc` lives beside the host's own global config, so honor the
|
|
63
|
+
* same override (and it keeps a test that redirects OPENCODE_CONFIG_DIR
|
|
64
|
+
* hermetic). `OPENCODE_CONFIG_DIR` is the host's own variable, not ours.
|
|
65
|
+
*/
|
|
66
|
+
export declare function resolveGlobalDir(roots?: ConfigFileRoots, env?: EnvLike): string;
|
|
67
|
+
/** Locate and read both file layers. Pure IO — no globals beyond the
|
|
57
68
|
* injected roots. */
|
|
58
|
-
export declare function readConfigFiles(roots?: ConfigFileRoots): ConfigFileRead;
|
|
69
|
+
export declare function readConfigFiles(roots?: ConfigFileRoots, env?: EnvLike): ConfigFileRead;
|
|
59
70
|
export interface LayeredTmConfig {
|
|
60
71
|
/** The resolved runtime config (file values folded in). */
|
|
61
72
|
cfg: TmConfig;
|
|
@@ -64,18 +75,31 @@ export interface LayeredTmConfig {
|
|
|
64
75
|
/** What the reader actually found on disk. */
|
|
65
76
|
files: ConfigFileRead;
|
|
66
77
|
}
|
|
78
|
+
export interface ResolveLayeredTmConfigOptions {
|
|
79
|
+
/** Remove every file layer (test injection). */
|
|
80
|
+
envOnly?: boolean;
|
|
81
|
+
/** Lowest-priority default overrides (BELOW the file layers). v2 uses it to
|
|
82
|
+
* default `webfetchAllowedDomains` to `["*"]` when no file sets it. The
|
|
83
|
+
* auto-created global file is INERT (every key commented), so it sets
|
|
84
|
+
* nothing and never shadows these; a user-edited file still wins. */
|
|
85
|
+
configDefaults?: Record<string, unknown>;
|
|
86
|
+
/** Env used only for `OPENCODE_CONFIG_DIR` (the host's own variable). */
|
|
87
|
+
env?: EnvLike;
|
|
88
|
+
}
|
|
67
89
|
/**
|
|
68
90
|
* Resolve the runtime config through the layered pipeline: read the files
|
|
69
|
-
* (unless `
|
|
70
|
-
*
|
|
71
|
-
* `
|
|
72
|
-
*
|
|
91
|
+
* (unless `envOnly`), merge with the pure resolver, then hand the merged JSON
|
|
92
|
+
* values (plus any `configDefaults`) to `resolveConfig`. The returned
|
|
93
|
+
* `layered`/`files` are what `tm_stats` renders so the user can see WHERE
|
|
94
|
+
* each key came from.
|
|
73
95
|
*/
|
|
74
|
-
export declare function resolveLayeredTmConfig(
|
|
96
|
+
export declare function resolveLayeredTmConfig(roots?: ConfigFileRoots, opts?: ResolveLayeredTmConfigOptions): LayeredTmConfig;
|
|
75
97
|
/**
|
|
76
98
|
* The `tm_stats` config section. Renders the per-key source, the red-line
|
|
77
|
-
* keys a file tried to set, the unknown keys (warned, never applied)
|
|
78
|
-
* env-only flag — the
|
|
99
|
+
* keys a PROJECT file tried to set, the unknown keys (warned, never applied),
|
|
100
|
+
* the env-only flag and the auto-create outcome — the facts that make "which
|
|
101
|
+
* layer won" checkable. `autoCreate` is the state the boot row recorded
|
|
102
|
+
* (`ensureGlobalConfig`); omitted only by a caller that never ran it.
|
|
79
103
|
*/
|
|
80
|
-
export declare function renderConfigSection(layered: LayeredConfigResult, files: ConfigFileRead): string;
|
|
104
|
+
export declare function renderConfigSection(layered: LayeredConfigResult, files: ConfigFileRead, autoCreate?: AutoCreateState): string;
|
|
81
105
|
//# sourceMappingURL=config-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"config-files.d.ts","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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;CACd;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,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;sBACsB;AACtB,wBAAgB,eAAe,CAAC,KAAK,GAAE,eAAoB,EAAE,GAAG,GAAE,OAAqB,GAAG,cAAc,CAqCvG;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;AAYD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,eAAoB,EAC3B,IAAI,GAAE,6BAAkC,GACvC,eAAe,CAiBjB;AAWD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,UAAU,CAAC,EAAE,eAAe,GAC3B,MAAM,CA4BR"}
|
package/dist/tm/config-files.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
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 two file layers, then
|
|
8
|
-
*
|
|
9
|
-
* env strings) sees the file values.
|
|
7
|
+
* READS the two file layers, then hands the merged JSON values to
|
|
8
|
+
* `resolveConfig` (the registry-driven validator).
|
|
10
9
|
*
|
|
11
|
-
* Two layers only, low→high:
|
|
12
|
-
* (the host's own config has none either —
|
|
10
|
+
* Two layers only, low→high: `全局 < 项目`. There is NO session layer and
|
|
11
|
+
* NO env layer (the host's own config has none either —
|
|
12
|
+
* `opencode.ai/v2/docs/config`).
|
|
13
13
|
*
|
|
14
14
|
* The project layer MIRRORS the host's layering semantics: search from the
|
|
15
15
|
* current directory up to the filesystem root; merge the DIRECT files
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
* ancestor files are merged (closer wins) into ONE text so the pure layer's
|
|
19
19
|
* two project slots (`project` / `project:.opencode`) keep their meaning.
|
|
20
20
|
*
|
|
21
|
-
* `
|
|
22
|
-
*
|
|
21
|
+
* `envOnly` is an explicit parameter (test injection) — it removes every file
|
|
22
|
+
* layer BEFORE any read, so the escape valve costs zero IO.
|
|
23
23
|
*
|
|
24
24
|
* Every root is INJECTABLE (`ConfigFileRoots`) so tests point at a temp dir
|
|
25
25
|
* and never touch the user's real `~/.config/opencode`.
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
import * as fs from "node:fs";
|
|
28
28
|
import * as os from "node:os";
|
|
29
29
|
import * as path from "node:path";
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
30
|
+
import { parseJsonc, resolveLayeredConfig, } from "./config-layers.js";
|
|
31
|
+
import { resolveConfig } from "./config.js";
|
|
32
32
|
/** The file name both layers use. */
|
|
33
33
|
export const CONFIG_FILE_NAME = "team-mode.jsonc";
|
|
34
34
|
function readTextFile(p) {
|
|
@@ -78,11 +78,24 @@ function mergeTexts(entries, skipped) {
|
|
|
78
78
|
}
|
|
79
79
|
return any ? JSON.stringify(merged) : null;
|
|
80
80
|
}
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
|
|
81
|
+
/**
|
|
82
|
+
* The resolved global config dir. The host's global config dir is
|
|
83
|
+
* `~/.config/opencode`, overridable by `OPENCODE_CONFIG_DIR` — the global
|
|
84
|
+
* `team-mode.jsonc` lives beside the host's own global config, so honor the
|
|
85
|
+
* same override (and it keeps a test that redirects OPENCODE_CONFIG_DIR
|
|
86
|
+
* hermetic). `OPENCODE_CONFIG_DIR` is the host's own variable, not ours.
|
|
87
|
+
*/
|
|
88
|
+
export function resolveGlobalDir(roots = {}, env = process.env) {
|
|
84
89
|
const home = roots.home ?? os.homedir();
|
|
85
|
-
const
|
|
90
|
+
const override = typeof env.OPENCODE_CONFIG_DIR === "string" && env.OPENCODE_CONFIG_DIR.trim()
|
|
91
|
+
? env.OPENCODE_CONFIG_DIR.trim()
|
|
92
|
+
: undefined;
|
|
93
|
+
return roots.globalDir ?? override ?? path.join(home, ".config", "opencode");
|
|
94
|
+
}
|
|
95
|
+
/** Locate and read both file layers. Pure IO — no globals beyond the
|
|
96
|
+
* injected roots. */
|
|
97
|
+
export function readConfigFiles(roots = {}, env = process.env) {
|
|
98
|
+
const globalDir = resolveGlobalDir(roots, env);
|
|
86
99
|
const projectDir = roots.projectDir ?? process.cwd();
|
|
87
100
|
const skipped = [];
|
|
88
101
|
const globalPath = path.join(globalDir, CONFIG_FILE_NAME);
|
|
@@ -107,6 +120,7 @@ export function readConfigFiles(roots = {}) {
|
|
|
107
120
|
}
|
|
108
121
|
}
|
|
109
122
|
return {
|
|
123
|
+
globalDir,
|
|
110
124
|
globalLayer,
|
|
111
125
|
globalPath: globalLayer !== null ? globalPath : null,
|
|
112
126
|
projectLayer: [mergeTexts(directEntries, skipped), mergeTexts(opencodeEntries, skipped)],
|
|
@@ -115,52 +129,28 @@ export function readConfigFiles(roots = {}) {
|
|
|
115
129
|
skipped,
|
|
116
130
|
};
|
|
117
131
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (type === "string[]")
|
|
128
|
-
return Array.isArray(value) ? value.map(String).join(",") : String(value);
|
|
129
|
-
if (type === "record") {
|
|
130
|
-
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
131
|
-
return Object.entries(value)
|
|
132
|
-
.map(([k, v]) => `${k}=${v}`)
|
|
133
|
-
.join(",");
|
|
134
|
-
}
|
|
135
|
-
return String(value);
|
|
136
|
-
}
|
|
137
|
-
return String(value);
|
|
138
|
-
}
|
|
132
|
+
const EMPTY_FILES = (globalDir) => ({
|
|
133
|
+
globalDir,
|
|
134
|
+
globalLayer: null,
|
|
135
|
+
globalPath: null,
|
|
136
|
+
projectLayer: [null, null],
|
|
137
|
+
projectPaths: [],
|
|
138
|
+
opencodePaths: [],
|
|
139
|
+
skipped: [],
|
|
140
|
+
});
|
|
139
141
|
/**
|
|
140
142
|
* Resolve the runtime config through the layered pipeline: read the files
|
|
141
|
-
* (unless `
|
|
142
|
-
*
|
|
143
|
-
* `
|
|
144
|
-
*
|
|
143
|
+
* (unless `envOnly`), merge with the pure resolver, then hand the merged JSON
|
|
144
|
+
* values (plus any `configDefaults`) to `resolveConfig`. The returned
|
|
145
|
+
* `layered`/`files` are what `tm_stats` renders so the user can see WHERE
|
|
146
|
+
* each key came from.
|
|
145
147
|
*/
|
|
146
|
-
export function resolveLayeredTmConfig(
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// redirects OPENCODE_CONFIG_DIR hermetic).
|
|
152
|
-
const configDirOverride = typeof env.OPENCODE_CONFIG_DIR === "string" && env.OPENCODE_CONFIG_DIR.trim()
|
|
153
|
-
? env.OPENCODE_CONFIG_DIR.trim()
|
|
154
|
-
: undefined;
|
|
155
|
-
const effectiveRoots = {
|
|
156
|
-
...roots,
|
|
157
|
-
globalDir: roots.globalDir ?? configDirOverride,
|
|
158
|
-
};
|
|
159
|
-
const files = envOnly
|
|
160
|
-
? { globalLayer: null, globalPath: null, projectLayer: [null, null], projectPaths: [], opencodePaths: [], skipped: [] }
|
|
161
|
-
: readConfigFiles(effectiveRoots);
|
|
148
|
+
export function resolveLayeredTmConfig(roots = {}, opts = {}) {
|
|
149
|
+
const env = opts.env ?? process.env;
|
|
150
|
+
const envOnly = opts.envOnly ?? false;
|
|
151
|
+
const globalDir = resolveGlobalDir(roots, env);
|
|
152
|
+
const files = envOnly ? EMPTY_FILES(globalDir) : readConfigFiles(roots, env);
|
|
162
153
|
const base = resolveLayeredConfig({
|
|
163
|
-
env,
|
|
164
154
|
globalLayer: files.globalLayer,
|
|
165
155
|
projectLayer: files.projectLayer,
|
|
166
156
|
envOnly,
|
|
@@ -169,34 +159,39 @@ export function resolveLayeredTmConfig(env = process.env, roots = {}) {
|
|
|
169
159
|
...base,
|
|
170
160
|
skippedLayers: [...files.skipped, ...base.skippedLayers],
|
|
171
161
|
};
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
if (source === "env")
|
|
176
|
-
continue;
|
|
177
|
-
const spec = specByKey.get(key);
|
|
178
|
-
if (!spec)
|
|
179
|
-
continue;
|
|
180
|
-
synthetic[spec.env] = stringifyForEnv(spec.type, layered.values[key]);
|
|
181
|
-
}
|
|
182
|
-
return { cfg: resolveTmConfig(synthetic), layered, files };
|
|
162
|
+
// `configDefaults` sits BELOW the file layers: a file value always wins.
|
|
163
|
+
const merged = { ...(opts.configDefaults ?? {}), ...layered.values };
|
|
164
|
+
return { cfg: resolveConfig(merged), layered, files };
|
|
183
165
|
}
|
|
166
|
+
/** The four auto-create states in the user's words — the boot row records the
|
|
167
|
+
* token, the report must not make the user decode it. */
|
|
168
|
+
const AUTO_CREATE_LABEL = {
|
|
169
|
+
created: "已创建",
|
|
170
|
+
present: "已存在",
|
|
171
|
+
off: "关闭",
|
|
172
|
+
failed: "创建失败",
|
|
173
|
+
};
|
|
184
174
|
/**
|
|
185
175
|
* The `tm_stats` config section. Renders the per-key source, the red-line
|
|
186
|
-
* keys a file tried to set, the unknown keys (warned, never applied)
|
|
187
|
-
* env-only flag — the
|
|
176
|
+
* keys a PROJECT file tried to set, the unknown keys (warned, never applied),
|
|
177
|
+
* the env-only flag and the auto-create outcome — the facts that make "which
|
|
178
|
+
* layer won" checkable. `autoCreate` is the state the boot row recorded
|
|
179
|
+
* (`ensureGlobalConfig`); omitted only by a caller that never ran it.
|
|
188
180
|
*/
|
|
189
|
-
export function renderConfigSection(layered, files) {
|
|
181
|
+
export function renderConfigSection(layered, files, autoCreate) {
|
|
190
182
|
const lines = ["", "### 分层配置(team-mode.jsonc)", ""];
|
|
191
|
-
lines.push(`- 层序
|
|
183
|
+
lines.push(`- 层序 全局 < 项目 · 全局文件 ${files.globalPath ? "有" : "无"} · ` +
|
|
192
184
|
`项目文件 ${files.projectPaths.length} 个(其中 .opencode ${files.opencodePaths.length} 个)· ` +
|
|
193
|
-
`
|
|
185
|
+
`envOnly ${layered.envOnlyActive ? "开(文件层已全部忽略)" : "关"}`);
|
|
186
|
+
if (autoCreate) {
|
|
187
|
+
lines.push(`- 全局文件自动创建:${AUTO_CREATE_LABEL[autoCreate]}(${autoCreate})`);
|
|
188
|
+
}
|
|
194
189
|
const sources = Object.entries(layered.perKeySource);
|
|
195
190
|
lines.push(sources.length
|
|
196
191
|
? `- 每键来源:${sources.map(([k, s]) => `${k}=${s}`).join(" · ")}`
|
|
197
|
-
: "-
|
|
192
|
+
: "- 每键来源:(没有任何键来自文件,全部走默认)");
|
|
198
193
|
if (layered.ignoredRedLineKeys.length) {
|
|
199
|
-
lines.push(`-
|
|
194
|
+
lines.push(`- 红线键被项目文件尝试设置(已忽略,仅全局生效):${layered.ignoredRedLineKeys.map((r) => `${r.key}(${r.layer})`).join(" · ")}`);
|
|
200
195
|
}
|
|
201
196
|
if (layered.unknownKeys.length) {
|
|
202
197
|
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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"config-files.js","sourceRoot":"","sources":["../../src/tm/config-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Layered `team-mode` configuration — the PURE layer (package ①, 2026-10-06).
|
|
3
3
|
*
|
|
4
|
+
* `team-mode.jsonc` is the ONLY configuration source. There is no `TM_*`
|
|
5
|
+
* config env var any more: the registry below carries each key's default and
|
|
6
|
+
* its one-line doc, and the template generator (`config-template.ts`) renders
|
|
7
|
+
* the global file straight from it, so a comment and a key can never drift.
|
|
8
|
+
*
|
|
4
9
|
* Two file layers only, per the user's decision (2026-10-06): the host's own
|
|
5
10
|
* config has NO session layer (opencode.ai/v2/docs/config), so neither do we.
|
|
6
11
|
*
|
|
7
|
-
*
|
|
12
|
+
* global < project
|
|
8
13
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* every direct config).
|
|
14
|
+
* Within the project layer the `.opencode/` file wins over the direct one,
|
|
15
|
+
* mirroring the host's own discovery order (direct files merged
|
|
16
|
+
* farthest→closest, then `.opencode/` dirs in the same order — every
|
|
17
|
+
* discovered `.opencode` config overrides every direct config).
|
|
14
18
|
*
|
|
15
19
|
* This module is deliberately IO-free: it takes raw JSONC text (or null when
|
|
16
20
|
* a file does not exist) and returns a resolved view. Reading the files,
|
|
@@ -23,40 +27,68 @@
|
|
|
23
27
|
* parse");
|
|
24
28
|
* - a single key with the WRONG TYPE is dropped from that layer only, and
|
|
25
29
|
* the next layer down answers for it;
|
|
26
|
-
* - a RED-LINE key
|
|
27
|
-
*
|
|
30
|
+
* - a RED-LINE key is honored ONLY in the GLOBAL file (D1). Written in a
|
|
31
|
+
* project file it is IGNORED outright and reported (see RED_LINE_EXEMPT_KEYS).
|
|
28
32
|
*/
|
|
29
33
|
/** Env-like record — kept local so this module has no import cycle with config.ts. */
|
|
30
34
|
export type EnvLike = Record<string, string | undefined>;
|
|
31
35
|
export type ConfigValueType = "number" | "string" | "string[]" | "record";
|
|
32
|
-
/** One honored knob: its canonical file key, the
|
|
33
|
-
*
|
|
34
|
-
* a key absent here is reported as unknown (warned,
|
|
36
|
+
/** One honored knob: its canonical file key, the JSON type a file value must
|
|
37
|
+
* have, its default, and the one-line doc the template renders. The registry
|
|
38
|
+
* IS the "known key" set — a key absent here is reported as unknown (warned,
|
|
39
|
+
* never applied). */
|
|
35
40
|
export interface ConfigKeySpec {
|
|
36
|
-
/** Canonical file key (camelCase; matches the TmConfig field
|
|
41
|
+
/** Canonical file key (camelCase; matches the TmConfig field). */
|
|
37
42
|
key: string;
|
|
38
|
-
/** The env var this key mirrors. */
|
|
39
|
-
env: string;
|
|
40
43
|
type: ConfigValueType;
|
|
41
|
-
/**
|
|
44
|
+
/** The default value — the ONLY default source. `resolveConfig` fills it. */
|
|
45
|
+
default: unknown;
|
|
46
|
+
/** One-line Chinese doc — the template comment's only source. */
|
|
47
|
+
doc: string;
|
|
48
|
+
/** Red-line: honored ONLY in the global file; a project value is ignored. */
|
|
42
49
|
redLine?: boolean;
|
|
43
|
-
/** Why
|
|
50
|
+
/** Why a project file may not override it (shown in the ignored-key report). */
|
|
44
51
|
redLineReason?: string;
|
|
52
|
+
/** Clamp floor for a `number` value. */
|
|
53
|
+
min?: number;
|
|
54
|
+
/** Clamp ceiling for a `number` value. */
|
|
55
|
+
max?: number;
|
|
56
|
+
/** Legal values for a `string` (e.g. on/off). */
|
|
57
|
+
enum?: readonly string[];
|
|
45
58
|
}
|
|
59
|
+
/** Default tm_bash read-only allowlist (P3, command-level). The PS
|
|
60
|
+
* -Object entries are pure pipeline formatters — no write capability. */
|
|
61
|
+
export declare const DEFAULT_BASH_READONLY_ALLOWED: readonly string[];
|
|
62
|
+
/**
|
|
63
|
+
* Seeded tm_webfetch / tm_search domain allowlist — every host the search
|
|
64
|
+
* engines and data sources ride (all reachable from mainland China without
|
|
65
|
+
* API keys): wiki term / bilibili search / bing CN + international / baidu /
|
|
66
|
+
* sogou / 360, the npm registry (JSON search + package metadata) and the
|
|
67
|
+
* GitHub (search API + repo pages + raw/gist content), its ghproxy.net
|
|
68
|
+
* mainland mirror, and PARENT domains for baidu/moegirl so every sibling
|
|
69
|
+
* subdomain (baike./tieba./mzh./mobile.) is covered. A site's OWN asset CDN
|
|
70
|
+
* on a brand-unrelated domain has to be seeded too — same-site cannot infer it,
|
|
71
|
+
* and blocking it is what makes a page render blank (bdimg.com below is that
|
|
72
|
+
* case, measured). Subdomains of an entry are included; a lone "*" opens
|
|
73
|
+
* every host.
|
|
74
|
+
*/
|
|
75
|
+
export declare const DEFAULT_WEBFETCH_DOMAINS: readonly string[];
|
|
46
76
|
/**
|
|
47
|
-
* The honored-key registry
|
|
48
|
-
*
|
|
77
|
+
* The honored-key registry — the single source of truth for keys, types,
|
|
78
|
+
* defaults and docs. Extend it when a new knob is wired: an unlisted real
|
|
79
|
+
* knob would be reported as "unknown" (a false positive), and a key missing
|
|
80
|
+
* here is missing from the generated template too.
|
|
49
81
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
82
|
+
* `default` is the ONLY default source; `resolveConfig` (src/tm/config.ts)
|
|
83
|
+
* fills it and clamps `number` values to `min`/`max`. A `number` whose
|
|
84
|
+
* default is an integer is truncated to an integer; a fractional default
|
|
85
|
+
* (searchRelevanceFloor, retryJitter) keeps its fraction.
|
|
54
86
|
*/
|
|
55
87
|
export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
|
|
56
88
|
/** The red-line keys, derived from the registry (single source of truth). */
|
|
57
89
|
export declare const RED_LINE_EXEMPT_KEYS: readonly string[];
|
|
58
90
|
/** Standard layer names, low→high. */
|
|
59
|
-
export type LayerSource = "
|
|
91
|
+
export type LayerSource = "global" | "project" | "project:.opencode";
|
|
60
92
|
export interface SkippedLayer {
|
|
61
93
|
name: string;
|
|
62
94
|
reason: string;
|
|
@@ -71,23 +103,22 @@ export interface UnknownKey {
|
|
|
71
103
|
layer: string;
|
|
72
104
|
}
|
|
73
105
|
export interface LayeredConfigResult {
|
|
74
|
-
/** Final merged value per canonical key
|
|
75
|
-
*
|
|
76
|
-
*
|
|
106
|
+
/** Final merged value per canonical key, from the FILE layers only. A value
|
|
107
|
+
* is the parsed JSON value. Keys absent everywhere are not listed (the
|
|
108
|
+
* caller applies the registry defaults). */
|
|
77
109
|
values: Record<string, unknown>;
|
|
78
|
-
/** For every key present in
|
|
110
|
+
/** For every key present in a file layer: which layer it came from. */
|
|
79
111
|
perKeySource: Record<string, LayerSource>;
|
|
80
112
|
/** Layers dropped whole because they failed to parse. */
|
|
81
113
|
skippedLayers: SkippedLayer[];
|
|
82
|
-
/** Red-line keys a file tried to set (ignored;
|
|
114
|
+
/** Red-line keys a PROJECT file tried to set (ignored; global/default answers). */
|
|
83
115
|
ignoredRedLineKeys: IgnoredRedLineKey[];
|
|
84
116
|
/** Keys not in the registry (warned, never applied). */
|
|
85
117
|
unknownKeys: UnknownKey[];
|
|
86
|
-
/** True when
|
|
118
|
+
/** True when the caller removed every file layer (test injection). */
|
|
87
119
|
envOnlyActive: boolean;
|
|
88
120
|
}
|
|
89
121
|
export interface ResolveLayeredConfigInput {
|
|
90
|
-
env: EnvLike;
|
|
91
122
|
/** Global file raw JSONC, or null/undefined when it does not exist. */
|
|
92
123
|
globalLayer?: string | null;
|
|
93
124
|
/** Project file(s). A single raw text, or an array ordered low→high
|
|
@@ -95,7 +126,7 @@ export interface ResolveLayeredConfigInput {
|
|
|
95
126
|
projectLayer?: string | null | Array<string | null>;
|
|
96
127
|
/** Override the red-line exempt set (defaults to RED_LINE_EXEMPT_KEYS). */
|
|
97
128
|
exempt?: readonly string[];
|
|
98
|
-
/**
|
|
129
|
+
/** Remove every file layer (test injection). */
|
|
99
130
|
envOnly?: boolean;
|
|
100
131
|
}
|
|
101
132
|
/**
|
|
@@ -109,9 +140,10 @@ export declare function maskJsoncComments(src: string): string;
|
|
|
109
140
|
/** Parse JSONC (comments + trailing commas) into a value. Throws on a real
|
|
110
141
|
* syntax error — the caller turns that into a whole-layer skip. */
|
|
111
142
|
export declare function parseJsonc(src: string): unknown;
|
|
143
|
+
export declare function isPlainObject(v: unknown): v is Record<string, unknown>;
|
|
112
144
|
/**
|
|
113
|
-
* Resolve the layered config. Pure: no IO, no globals
|
|
114
|
-
*
|
|
145
|
+
* Resolve the layered config. Pure: no IO, no globals. See the module
|
|
146
|
+
* header for the three rules.
|
|
115
147
|
*/
|
|
116
148
|
export declare function resolveLayeredConfig(input: ResolveLayeredConfigInput): LayeredConfigResult;
|
|
117
149
|
//# sourceMappingURL=config-layers.d.ts.map
|
|
@@ -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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"}
|