@te-river/opencode-team-mode 1.7.2 → 1.7.4
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 +1008 -849
- package/README.zh-CN.md +905 -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-events.d.ts +8 -2
- package/dist/host/v2-events.d.ts.map +1 -1
- package/dist/host/v2-events.js +16 -2
- package/dist/host/v2-events.js.map +1 -1
- package/dist/host/v2-guard.d.ts +3 -45
- package/dist/host/v2-guard.d.ts.map +1 -1
- package/dist/host/v2-guard.js +10 -73
- 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 +10 -3
- package/dist/host/v2-retry.d.ts.map +1 -1
- package/dist/host/v2-retry.js +14 -16
- 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 +0 -5
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +32 -73
- 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 +47 -19
- 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 +16 -0
- package/dist/prompts/shared.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 +164 -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 +113 -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/dispatch.d.ts +0 -9
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +14 -16
- package/dist/tm/dispatch.js.map +1 -1
- package/dist/tm/index.d.ts +12 -12
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +48 -26
- 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 +59 -38
- package/docs/installation.md +4 -4
- package/package.json +1 -1
- package/scripts/gen-v2-config.mjs +8 -7
- 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/config-layers.js
CHANGED
|
@@ -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,93 +27,185 @@
|
|
|
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
|
*/
|
|
33
|
+
/** Default tm_bash read-only allowlist (P3, command-level). The PS
|
|
34
|
+
* -Object entries are pure pipeline formatters — no write capability. */
|
|
35
|
+
export const DEFAULT_BASH_READONLY_ALLOWED = [
|
|
36
|
+
"ls", "cat", "head", "tail", "grep", "rg", "find", "awk", "sort", "uniq",
|
|
37
|
+
"wc", "cut", "dir", "Get-Content", "Get-ChildItem", "Select-String",
|
|
38
|
+
"Measure-Object", "Select-Object", "Where-Object", "Sort-Object",
|
|
39
|
+
"Group-Object", "Test-Path",
|
|
40
|
+
// Process LISTING, read-only and write-free. An agent verifying that a
|
|
41
|
+
// process really exited (a leftover browser, a stray server) had no allowed
|
|
42
|
+
// way to ask the OS, and a claim the user cannot check is worth less than one
|
|
43
|
+
// they can. findstr joins it for the same reason: `tasklist | findstr /i
|
|
44
|
+
// msedge` is the natural Windows spelling of that check, and refusing it only
|
|
45
|
+
// turned one call into two (live evidence: refused, then re-run with
|
|
46
|
+
// Select-String).
|
|
47
|
+
"tasklist", "ps", "findstr",
|
|
48
|
+
];
|
|
29
49
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
50
|
+
* Seeded tm_webfetch / tm_search domain allowlist — every host the search
|
|
51
|
+
* engines and data sources ride (all reachable from mainland China without
|
|
52
|
+
* API keys): wiki term / bilibili search / bing CN + international / baidu /
|
|
53
|
+
* sogou / 360, the npm registry (JSON search + package metadata) and the
|
|
54
|
+
* GitHub (search API + repo pages + raw/gist content), its ghproxy.net
|
|
55
|
+
* mainland mirror, and PARENT domains for baidu/moegirl so every sibling
|
|
56
|
+
* subdomain (baike./tieba./mzh./mobile.) is covered. A site's OWN asset CDN
|
|
57
|
+
* on a brand-unrelated domain has to be seeded too — same-site cannot infer it,
|
|
58
|
+
* and blocking it is what makes a page render blank (bdimg.com below is that
|
|
59
|
+
* case, measured). Subdomains of an entry are included; a lone "*" opens
|
|
60
|
+
* every host.
|
|
61
|
+
*/
|
|
62
|
+
export const DEFAULT_WEBFETCH_DOMAINS = [
|
|
63
|
+
// CN search engines + content (parent domains cover every sibling subdomain)
|
|
64
|
+
"baidu.com", // www. search / baike. encyclopedia / tieba. — real sessions hit baike.baidu.com
|
|
65
|
+
// Baidu's OWN static + anti-spam CDN. Not a subdomain of baidu.com, so a
|
|
66
|
+
// same-site subresource policy can never infer it, and a page whose own
|
|
67
|
+
// bundle we block is a blank page we then report as "no content" — that is
|
|
68
|
+
// the bug this seed closes (measured 2026-09-23: baike.baidu.com/ rendered 0
|
|
69
|
+
// addressable nodes while the identical client with this host allowed
|
|
70
|
+
// rendered 260).
|
|
71
|
+
"bdimg.com", // bkssl. challenge scripts / resource. / static. asset bundles
|
|
72
|
+
"moegirl.org.cn", // mobile. term / mzh. main site — real sessions hit mzh
|
|
73
|
+
"bilibili.com", // search. / www. video pages / space.
|
|
74
|
+
"www.sogou.com",
|
|
75
|
+
"www.so.com",
|
|
76
|
+
"cn.bing.com",
|
|
77
|
+
"www.bing.com",
|
|
78
|
+
"zhihu.com", // CN Q&A
|
|
79
|
+
"juejin.cn", // CN dev community
|
|
80
|
+
"csdn.net", // CN dev blogs
|
|
81
|
+
"cnblogs.com", // CN dev blogs
|
|
82
|
+
"gitee.com", // CN code hosting
|
|
83
|
+
// international dev sources (reachable from CN, no API keys)
|
|
84
|
+
"github.com",
|
|
85
|
+
"api.github.com",
|
|
86
|
+
"raw.githubusercontent.com",
|
|
87
|
+
"gist.githubusercontent.com",
|
|
88
|
+
"ghproxy.net", // mainland mirror for github raw
|
|
89
|
+
"stackoverflow.com",
|
|
90
|
+
"npmjs.org", // registry. + www. package pages
|
|
91
|
+
"pypi.org",
|
|
92
|
+
"learn.microsoft.com",
|
|
93
|
+
];
|
|
94
|
+
/**
|
|
95
|
+
* The honored-key registry — the single source of truth for keys, types,
|
|
96
|
+
* defaults and docs. Extend it when a new knob is wired: an unlisted real
|
|
97
|
+
* knob would be reported as "unknown" (a false positive), and a key missing
|
|
98
|
+
* here is missing from the generated template too.
|
|
32
99
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
100
|
+
* `default` is the ONLY default source; `resolveConfig` (src/tm/config.ts)
|
|
101
|
+
* fills it and clamps `number` values to `min`/`max`. A `number` whose
|
|
102
|
+
* default is an integer is truncated to an integer; a fractional default
|
|
103
|
+
* (searchRelevanceFloor, retryJitter) keeps its fraction.
|
|
37
104
|
*/
|
|
38
105
|
export const CONFIG_KEYS = [
|
|
39
|
-
// ----
|
|
40
|
-
{ key: "offloadThreshold",
|
|
41
|
-
{ key: "previewLines",
|
|
42
|
-
{ key: "previewMaxTokens",
|
|
43
|
-
{ key: "fetchMaxLines",
|
|
44
|
-
{ key: "blackboardDir",
|
|
45
|
-
{ key: "trajectoryDir",
|
|
46
|
-
{ key: "blackboardTtlDays",
|
|
47
|
-
{ key: "
|
|
48
|
-
{ key: "
|
|
49
|
-
{ key: "
|
|
50
|
-
{ key: "
|
|
51
|
-
{ key: "
|
|
52
|
-
|
|
53
|
-
{ key: "
|
|
54
|
-
{ key: "
|
|
55
|
-
{ key: "
|
|
56
|
-
{ key: "
|
|
57
|
-
{ key: "
|
|
58
|
-
{ key: "
|
|
59
|
-
|
|
60
|
-
{ key: "
|
|
61
|
-
{ key: "
|
|
62
|
-
{ key: "
|
|
63
|
-
|
|
64
|
-
{ key: "
|
|
65
|
-
{ key: "
|
|
66
|
-
{ key: "
|
|
67
|
-
|
|
68
|
-
{ key: "
|
|
69
|
-
{ key: "
|
|
70
|
-
// ----
|
|
71
|
-
{ key: "
|
|
72
|
-
{ key: "
|
|
73
|
-
|
|
74
|
-
{ key: "
|
|
75
|
-
|
|
76
|
-
{ key: "agentTemperature",
|
|
77
|
-
{ key: "compactionContext",
|
|
78
|
-
|
|
106
|
+
// ---- offload / preview / store ----
|
|
107
|
+
{ key: "offloadThreshold", type: "number", default: 2000, min: 0, max: 10_000_000, doc: "卸载阈值(估算 token;等于阈值也卸载)。" },
|
|
108
|
+
{ key: "previewLines", type: "number", default: 20, min: 1, max: 1000, doc: "预览构建器最多扫描的原始行数。" },
|
|
109
|
+
{ key: "previewMaxTokens", type: "number", default: 80, min: 10, max: 100_000, doc: "预览的硬上限(估算 token)。" },
|
|
110
|
+
{ key: "fetchMaxLines", type: "number", default: 2000, min: 1, max: 1_000_000, doc: "tm_fetch 单段最多返回的行数。" },
|
|
111
|
+
{ key: "blackboardDir", type: "string", default: "", doc: "运行载荷存储目录;空 = 自动(<repo>/.git/opencode-team/blackboard)。" },
|
|
112
|
+
{ key: "trajectoryDir", type: "string", default: "", doc: "轨迹存储目录;空 = 自动(<repo>/.git/opencode-team/trajectory)。" },
|
|
113
|
+
{ key: "blackboardTtlDays", type: "number", default: 7, min: 1, max: 365, doc: "句柄 TTL(天),也是过期运行目录的清理周期。" },
|
|
114
|
+
{ key: "memoryGlobalDir", type: "string", default: "", doc: "tm_memory 全局作用域目录;空 = 自动(~/.opencode-team/memories/global)。" },
|
|
115
|
+
{ key: "memorySessionTtlMin", type: "number", default: 240, min: 1, max: 100_000, doc: "tm_memory 会话作用域条目 TTL(分钟)。" },
|
|
116
|
+
{ key: "memoryMaxEntries", type: "number", default: 200, min: 1, max: 100_000, doc: "tm_memory 每个作用域的最大条目数;超限时 add 报错并提示 compact/forget。" },
|
|
117
|
+
{ key: "memoryStaleDays", type: "number", default: 30, min: 0, max: 3650, doc: "tm_memory 陈旧标记天数;0 = 关闭 [stale Nd] 标记。" },
|
|
118
|
+
{ key: "memorySessionPersist", type: "string", default: "", doc: "tm_memory 会话持久化:空 = 仅进程内;\"1\" = 同时落盘。" },
|
|
119
|
+
// ---- search ----
|
|
120
|
+
{ key: "searchDefaultEngine", type: "string", default: "auto", doc: "tm_search 默认引擎;auto = 按查询分类并行扇出。" },
|
|
121
|
+
{ key: "searchMaxHits", type: "number", default: 10, min: 3, max: 30, doc: "每个引擎腿与最终融合列表保留的命中数。" },
|
|
122
|
+
{ key: "searchWeights", type: "record", default: {}, doc: "按引擎覆盖融合权重,如 {\"bing\": 0.2};未列出的沿用内置表。" },
|
|
123
|
+
{ key: "searchDisabledEngines", type: "string[]", default: [], doc: "从引擎名册与所有 auto 路由中移除的引擎名。" },
|
|
124
|
+
{ key: "searchRelevanceFloor", type: "number", default: 0.35, min: 0, max: 1, doc: "零重叠命中的权重系数(降权保留,不删除)。" },
|
|
125
|
+
{ key: "hitBlacklist", type: "string[]", default: [], doc: "搜索结果里额外屏蔽的域名(与内置 maimai.cn 合并)。" },
|
|
126
|
+
// ---- offload tiering / web cache ----
|
|
127
|
+
{ key: "offloadThresholdText", type: "number", default: 4000, min: 0, max: 10_000_000, doc: "文本/日志类卸载阈值;全局阈值显式设置且本键未设时继承全局。" },
|
|
128
|
+
{ key: "offloadThresholdData", type: "number", default: 2000, min: 0, max: 10_000_000, doc: "json/csv/代码/二进制类卸载阈值;继承规则同上。" },
|
|
129
|
+
{ key: "webCacheTtlSec", type: "number", default: 300, min: 0, max: 86_400, doc: "URL 级缓存 TTL(秒);0 = 关闭。" },
|
|
130
|
+
// ---- join / board ----
|
|
131
|
+
{ key: "joinMaxWaitMs", type: "number", default: 60_000, min: 0, max: 600_000, doc: "tm_join 单次有界等待的上限(毫秒)。" },
|
|
132
|
+
{ key: "boardMaxChars", type: "number", default: 200_000, min: 1_000, max: 2_000_000, doc: "tm_board_write 单个文件的字符上限。" },
|
|
133
|
+
{ key: "boardMaxFiles", type: "number", default: 200, min: 4, max: 2_000, doc: "tm_board_write 每个会话目录的文件数上限。" },
|
|
134
|
+
// ---- task offload / store reclaim ----
|
|
135
|
+
{ key: "taskOffload", type: "string", default: "on", enum: ["on", "off"], doc: "宿主后台子代理的大回复是否卸载为预览 + tm_join 指针;off = 原样注入。" },
|
|
136
|
+
{ key: "storeReclaim", type: "string", default: "on", enum: ["on", "off"], doc: "启动时回收升级遗留的存储分片;off = 保留磁盘现状(测试用)。" },
|
|
137
|
+
// ---- bash timeout ----
|
|
138
|
+
{ key: "bashTimeoutMaxMs", type: "number", default: 0, min: 0, max: 3_600_000, doc: "内置 shell 工具 timeout 参数的全局上限(毫秒);0 = 不限。" },
|
|
139
|
+
{ key: "bashTimeoutProbeMs", type: "number", default: 60_000, min: 0, max: 600_000, doc: "只读探针命令的 timeout 上限(毫秒);0 = 关闭。" },
|
|
140
|
+
// ---- orphaned (kept so an existing config still parses) ----
|
|
141
|
+
{ key: "askTimeoutFloorMin", type: "number", default: 1, min: 1, max: 1440, doc: "(已孤儿)v1 审批门 ask 超时的下限(分钟);保留以便旧配置继续解析。" },
|
|
142
|
+
// ---- v1-only knobs (listed + parseable; no v2 reader) ----
|
|
143
|
+
{ key: "agentTemperature", type: "string", default: "", doc: "(v1-only)按角色覆盖 temperature,如 reviewer=0.05;team=0.4。" },
|
|
144
|
+
{ key: "compactionContext", type: "string", default: "on", enum: ["on", "off"], doc: "(v1-only)压缩时推送必须存活的上下文清单。" },
|
|
145
|
+
{ key: "shellEnv", type: "string", default: "", doc: "(v1-only)注入 shell 的 K=V;K2=V2 白名单透传。" },
|
|
146
|
+
{ key: "ptcWebBridge", type: "string", default: "on", enum: ["on", "off"], doc: "(v1-only)tm_ptc_run 的 web 桥。" },
|
|
147
|
+
// ---- native offload / probe chain ----
|
|
148
|
+
{ key: "nativeOffload", type: "string", default: "on", enum: ["on", "off"], doc: "宿主原生工具(read/grep/shell…)的大结果是否按 JIT 治理卸载;off = 原样进上下文。" },
|
|
149
|
+
{ key: "nativeSnapshotMaxTokens", type: "number", default: 1200, min: 100, max: 20_000, doc: "原生浏览器快照按寻址行保留的 token 预算。" },
|
|
150
|
+
{ key: "nativeReportMaxTokens", type: "number", default: 1600, min: 200, max: 20_000, doc: "原生报告形结果按表格保留的 token 预算。" },
|
|
151
|
+
{ key: "probeChain", type: "string", default: "on", enum: ["on", "off"], doc: "连续原生 read/grep/glob/shell 后追加一行 Code Mode 采用提示;off = 关闭。" },
|
|
152
|
+
{ key: "probeChainAfter", type: "number", default: 3, min: 0, max: 1000, doc: "连续多少次原生调用后开始提示;0 = 关闭。" },
|
|
153
|
+
// ---- v2 request layers ----
|
|
154
|
+
{ key: "v2CodeMode", type: "string", default: "", doc: "v2 工具交付:direct = 发送 options.codemode=false;空 = 目录模式。" },
|
|
155
|
+
{ key: "prune", type: "string", default: "on", enum: ["on", "off"], doc: "上下文裁剪(已结算消息替换为指针);off = 关闭。" },
|
|
156
|
+
{ key: "pruneAtPercent", type: "number", default: 70, min: 40, max: 90, doc: "上下文裁剪启动的窗口占比(%)。" },
|
|
157
|
+
{ key: "pruneKeepTailPercent", type: "number", default: 40, min: 0, max: 90, doc: "裁剪时尾部逐字保留的窗口占比(%)。" },
|
|
158
|
+
{ key: "retry", type: "string", default: "on", enum: ["on", "off"], doc: "错峰重试(识别限流 + 注入等待 + 冷却);off = 关闭。" },
|
|
159
|
+
{ key: "retryBaseMs", type: "number", default: 5000, min: 1, max: 3_600_000, doc: "重试退避基数(毫秒)。" },
|
|
160
|
+
{ key: "retryMaxMs", type: "number", default: 60_000, min: 1, max: 3_600_000, doc: "重试退避上限(毫秒)。" },
|
|
161
|
+
{ key: "retryJitter", type: "number", default: 0.3, min: 0, max: 0.95, doc: "重试退避抖动比例。" },
|
|
162
|
+
{ key: "retryBreakAfter", type: "number", default: 5, min: 1, max: 1000, doc: "连续多少次错误后触发断路器。" },
|
|
163
|
+
{ key: "retryCooldownMs", type: "number", default: 60_000, min: 0, max: 3_600_000, doc: "断路器冷却时长(毫秒)。" },
|
|
164
|
+
{ key: "splitAdvice", type: "string", default: "on", enum: ["on", "off"], doc: "派发 brief 过大时注入拆分建议;off = 关闭。" },
|
|
165
|
+
{ key: "splitBriefTokens", type: "number", default: 4000, min: 200, max: 200_000, doc: "触发拆分建议的 brief token 阈值。" },
|
|
166
|
+
{ key: "splitMaxCriteria", type: "number", default: 3, min: 1, max: 50, doc: "拆分建议里每条交付的验收标准上限。" },
|
|
167
|
+
{ key: "v2BrowserGate", type: "string", default: "on", enum: ["on", "off"], doc: "原生 browser_* 目录的域名/地址/R6 门禁;off = 关闭。" },
|
|
168
|
+
{ key: "ledgerMaxItems", type: "number", default: 200, min: 10, max: 100_000, doc: "tm_ledger 每个会话的最大条目数。" },
|
|
169
|
+
// ---- RED-LINE knobs: honored ONLY in the global file (D1) ----
|
|
79
170
|
{
|
|
80
171
|
key: "envProtect",
|
|
81
|
-
env: "TM_ENV_PROTECT",
|
|
82
172
|
type: "string",
|
|
173
|
+
default: "strict",
|
|
83
174
|
redLine: true,
|
|
84
175
|
redLineReason: "R6 判定模式,off 即关掉环境防护;项目文件可被提交共享,不得关掉红线",
|
|
176
|
+
doc: "R6 环境防护模式(strict/standard/off)。",
|
|
85
177
|
},
|
|
86
178
|
{
|
|
87
179
|
key: "r6FineAsk",
|
|
88
|
-
env: "TM_R6_FINE_ASK",
|
|
89
180
|
type: "string",
|
|
181
|
+
default: "",
|
|
90
182
|
redLine: true,
|
|
91
183
|
redLineReason: "R6 ask 策略,决定每条命令是否走细粒度判定;文件不得放宽",
|
|
184
|
+
doc: "R6 细粒度 ask 策略;off = 每条 shell 命令都升为 ask。",
|
|
92
185
|
},
|
|
93
186
|
{
|
|
94
187
|
key: "privateSpace",
|
|
95
|
-
env: "TM_PRIVATE_SPACE",
|
|
96
188
|
type: "string",
|
|
189
|
+
default: "deny",
|
|
97
190
|
redLine: true,
|
|
98
191
|
redLineReason: "地址红线门,allow 会放开整段私网;文件不得放宽",
|
|
192
|
+
doc: "私网地址策略(allow/deny/ask)。",
|
|
99
193
|
},
|
|
100
194
|
{
|
|
101
195
|
key: "webfetchAllowedDomains",
|
|
102
|
-
env: "TM_WEBFETCH_ALLOWED_DOMAINS",
|
|
103
196
|
type: "string[]",
|
|
197
|
+
default: DEFAULT_WEBFETCH_DOMAINS,
|
|
104
198
|
redLine: true,
|
|
105
199
|
redLineReason: "网络出网白名单;项目文件可被提交共享,不得放宽",
|
|
200
|
+
doc: "网络出网白名单(含子域;\"*\" = 任意主机)。",
|
|
106
201
|
},
|
|
107
202
|
{
|
|
108
203
|
key: "bashReadonlyAllowed",
|
|
109
|
-
env: "TM_BASH_READONLY_ALLOWED",
|
|
110
204
|
type: "string[]",
|
|
205
|
+
default: DEFAULT_BASH_READONLY_ALLOWED,
|
|
111
206
|
redLine: true,
|
|
112
207
|
redLineReason: "P3 只读门;放宽即扩大可执行命令面",
|
|
208
|
+
doc: "P3 只读命令白名单(tm_bash / shell 探针)。",
|
|
113
209
|
},
|
|
114
210
|
];
|
|
115
211
|
/** The red-line keys, derived from the registry (single source of truth). */
|
|
@@ -218,7 +314,7 @@ export function parseJsonc(src) {
|
|
|
218
314
|
// ---------------------------------------------------------------------------
|
|
219
315
|
// Merge
|
|
220
316
|
// ---------------------------------------------------------------------------
|
|
221
|
-
function isPlainObject(v) {
|
|
317
|
+
export function isPlainObject(v) {
|
|
222
318
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
223
319
|
}
|
|
224
320
|
function typeOk(type, v) {
|
|
@@ -233,11 +329,6 @@ function typeOk(type, v) {
|
|
|
233
329
|
return isPlainObject(v) && Object.values(v).every((x) => typeof x === "number");
|
|
234
330
|
}
|
|
235
331
|
}
|
|
236
|
-
/** `TM_CONFIG_ENV_ONLY` is truthy on 1/true/on/yes (case-insensitive). */
|
|
237
|
-
function envOnlyFromEnv(env) {
|
|
238
|
-
const raw = env.TM_CONFIG_ENV_ONLY;
|
|
239
|
-
return typeof raw === "string" && /^(1|true|on|yes)$/i.test(raw.trim());
|
|
240
|
-
}
|
|
241
332
|
function projectLayerList(projectLayer) {
|
|
242
333
|
if (projectLayer == null)
|
|
243
334
|
return [];
|
|
@@ -251,13 +342,12 @@ function projectLayerList(projectLayer) {
|
|
|
251
342
|
return out;
|
|
252
343
|
}
|
|
253
344
|
/**
|
|
254
|
-
* Resolve the layered config. Pure: no IO, no globals
|
|
255
|
-
*
|
|
345
|
+
* Resolve the layered config. Pure: no IO, no globals. See the module
|
|
346
|
+
* header for the three rules.
|
|
256
347
|
*/
|
|
257
348
|
export function resolveLayeredConfig(input) {
|
|
258
|
-
const { env } = input;
|
|
259
349
|
const exempt = new Set(input.exempt ?? RED_LINE_EXEMPT_KEYS);
|
|
260
|
-
const envOnlyActive = input.envOnly ??
|
|
350
|
+
const envOnlyActive = input.envOnly ?? false;
|
|
261
351
|
// Ordered low→high. envOnly removes every file layer BEFORE any parse.
|
|
262
352
|
const fileLayers = [];
|
|
263
353
|
if (!envOnlyActive) {
|
|
@@ -284,30 +374,23 @@ export function resolveLayeredConfig(input) {
|
|
|
284
374
|
continue;
|
|
285
375
|
}
|
|
286
376
|
for (const [key, value] of Object.entries(obj)) {
|
|
287
|
-
if (exempt.has(key)) {
|
|
288
|
-
ignoredRedLineKeys.push({ key, layer: layer.name, value });
|
|
289
|
-
continue;
|
|
290
|
-
}
|
|
291
377
|
const spec = KEY_BY_NAME.get(key);
|
|
292
378
|
if (!spec) {
|
|
293
379
|
unknownKeys.push({ key, layer: layer.name });
|
|
294
380
|
continue;
|
|
295
381
|
}
|
|
382
|
+
// D1: a red-line key is honored ONLY in the global file.
|
|
383
|
+
if (spec.redLine && layer.name !== "global") {
|
|
384
|
+
ignoredRedLineKeys.push({ key, layer: layer.name, value });
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
296
387
|
if (!typeOk(spec.type, value))
|
|
297
388
|
continue; // drop this key from THIS layer only
|
|
298
389
|
fileValues.set(key, { value, source: layer.name });
|
|
299
390
|
}
|
|
300
391
|
}
|
|
301
|
-
// env is the lowest layer; files override it.
|
|
302
392
|
const values = {};
|
|
303
393
|
const perKeySource = {};
|
|
304
|
-
for (const spec of CONFIG_KEYS) {
|
|
305
|
-
const raw = env[spec.env];
|
|
306
|
-
if (typeof raw === "string" && raw.trim() !== "") {
|
|
307
|
-
values[spec.key] = raw;
|
|
308
|
-
perKeySource[spec.key] = "env";
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
394
|
for (const [key, { value, source }] of fileValues) {
|
|
312
395
|
values[key] = value;
|
|
313
396
|
perKeySource[key] = source;
|
|
@@ -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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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global `team-mode.jsonc` template + its idempotent writer.
|
|
3
|
+
*
|
|
4
|
+
* `renderConfigTemplate()` walks `CONFIG_KEYS` and nothing else, so a comment,
|
|
5
|
+
* a key and its default can never drift from the registry. `ensureGlobalConfig`
|
|
6
|
+
* writes it ATOMICALLY (tmp + rename) and ONLY when the file is absent — an
|
|
7
|
+
* existing file is never overwritten (the user's edits are theirs).
|
|
8
|
+
*
|
|
9
|
+
* The plugin calls this at boot (see `createTmTools`), so a fresh install gets
|
|
10
|
+
* a fully-commented config listing every key. `TM_CONFIG_AUTOCREATE=off` (an
|
|
11
|
+
* internal/test switch) or the plugin option `autoCreate:false` turns it off.
|
|
12
|
+
*/
|
|
13
|
+
/** Render the full global config file (JSONC, every registry key listed).
|
|
14
|
+
*
|
|
15
|
+
* Every key is written as a COMMENT, so the auto-created file sets NOTHING:
|
|
16
|
+
* the registry defaults answer, and a personality's `configDefaults` (v2's
|
|
17
|
+
* `webfetchAllowedDomains: ["*"]`) is not shadowed by a file nobody edited.
|
|
18
|
+
* A user uncomments the keys they want to change. The file is valid JSONC
|
|
19
|
+
* (`{}` once the comments are masked). */
|
|
20
|
+
export declare function renderConfigTemplate(): string;
|
|
21
|
+
export type AutoCreateState = "created" | "present" | "off" | "failed";
|
|
22
|
+
/**
|
|
23
|
+
* Ensure the global config file exists. `autoCreate:false` writes nothing
|
|
24
|
+
* and reports `off`. An existing file is left byte-for-byte untouched
|
|
25
|
+
* (`present`). A missing one is written atomically (`created`). A write
|
|
26
|
+
* that THROWS reports `failed` — distinct from `present`, so the boot row
|
|
27
|
+
* does not claim a file exists when the write never landed.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureGlobalConfig(globalDir: string, opts?: {
|
|
30
|
+
autoCreate?: boolean;
|
|
31
|
+
}): AutoCreateState;
|
|
32
|
+
//# sourceMappingURL=config-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-template.d.ts","sourceRoot":"","sources":["../../src/tm/config-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH;;;;;;2CAM2C;AAC3C,wBAAgB,oBAAoB,IAAI,MAAM,CAU7C;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEtE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,eAAe,CAoB1G"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The global `team-mode.jsonc` template + its idempotent writer.
|
|
3
|
+
*
|
|
4
|
+
* `renderConfigTemplate()` walks `CONFIG_KEYS` and nothing else, so a comment,
|
|
5
|
+
* a key and its default can never drift from the registry. `ensureGlobalConfig`
|
|
6
|
+
* writes it ATOMICALLY (tmp + rename) and ONLY when the file is absent — an
|
|
7
|
+
* existing file is never overwritten (the user's edits are theirs).
|
|
8
|
+
*
|
|
9
|
+
* The plugin calls this at boot (see `createTmTools`), so a fresh install gets
|
|
10
|
+
* a fully-commented config listing every key. `TM_CONFIG_AUTOCREATE=off` (an
|
|
11
|
+
* internal/test switch) or the plugin option `autoCreate:false` turns it off.
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from "node:fs";
|
|
14
|
+
import * as path from "node:path";
|
|
15
|
+
import { CONFIG_KEYS } from "./config-layers.js";
|
|
16
|
+
import { CONFIG_FILE_NAME } from "./config-files.js";
|
|
17
|
+
/** The file header — Chinese, and the only prose the template carries. */
|
|
18
|
+
const HEADER = [
|
|
19
|
+
"// team-mode.jsonc — TeamMode 唯一配置源",
|
|
20
|
+
"// 本文件由插件首次启动时自动生成;删除后下次启动会重新生成。",
|
|
21
|
+
"// 层序:全局(本文件) < 项目(<repo>/team-mode.jsonc 或 <repo>/.opencode/team-mode.jsonc)",
|
|
22
|
+
"// 红线键(redLine)只能在本全局文件里设置;项目文件设置会被忽略。",
|
|
23
|
+
].join("\n");
|
|
24
|
+
/** Render the full global config file (JSONC, every registry key listed).
|
|
25
|
+
*
|
|
26
|
+
* Every key is written as a COMMENT, so the auto-created file sets NOTHING:
|
|
27
|
+
* the registry defaults answer, and a personality's `configDefaults` (v2's
|
|
28
|
+
* `webfetchAllowedDomains: ["*"]`) is not shadowed by a file nobody edited.
|
|
29
|
+
* A user uncomments the keys they want to change. The file is valid JSONC
|
|
30
|
+
* (`{}` once the comments are masked). */
|
|
31
|
+
export function renderConfigTemplate() {
|
|
32
|
+
const lines = [HEADER, "{"];
|
|
33
|
+
CONFIG_KEYS.forEach((spec, i) => {
|
|
34
|
+
const doc = spec.redLine ? `${spec.doc}(红线:仅全局)` : spec.doc;
|
|
35
|
+
lines.push(` // ${doc}`);
|
|
36
|
+
const comma = i === CONFIG_KEYS.length - 1 ? "" : ",";
|
|
37
|
+
lines.push(` // ${JSON.stringify(spec.key)}: ${JSON.stringify(spec.default)}${comma}`);
|
|
38
|
+
});
|
|
39
|
+
lines.push("}");
|
|
40
|
+
return lines.join("\n") + "\n";
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Ensure the global config file exists. `autoCreate:false` writes nothing
|
|
44
|
+
* and reports `off`. An existing file is left byte-for-byte untouched
|
|
45
|
+
* (`present`). A missing one is written atomically (`created`). A write
|
|
46
|
+
* that THROWS reports `failed` — distinct from `present`, so the boot row
|
|
47
|
+
* does not claim a file exists when the write never landed.
|
|
48
|
+
*/
|
|
49
|
+
export function ensureGlobalConfig(globalDir, opts = {}) {
|
|
50
|
+
if (opts.autoCreate === false)
|
|
51
|
+
return "off";
|
|
52
|
+
const file = path.join(globalDir, CONFIG_FILE_NAME);
|
|
53
|
+
try {
|
|
54
|
+
if (fs.existsSync(file))
|
|
55
|
+
return "present";
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* fall through to the write attempt */
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
fs.mkdirSync(globalDir, { recursive: true });
|
|
62
|
+
const tmp = `${file}.tmp-${process.pid}-${Date.now()}`;
|
|
63
|
+
fs.writeFileSync(tmp, renderConfigTemplate(), "utf8");
|
|
64
|
+
fs.renameSync(tmp, file);
|
|
65
|
+
return "created";
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// A read-only config dir must not cost the session its tools; the file
|
|
69
|
+
// simply stays absent and the registry defaults answer. Reported as
|
|
70
|
+
// `failed` so the boot row does not read as "a file is there".
|
|
71
|
+
return "failed";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=config-template.js.map
|
|
@@ -0,0 +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,+EAA+E;IAC/E,wCAAwC;CACzC,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"}
|