agim-cli 1.1.0 → 1.1.1
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/CHANGELOG.md +89 -0
- package/dist/cli-ui/i18n.d.ts +4 -4
- package/dist/cli-ui/i18n.js +4 -4
- package/dist/cli-ui/i18n.js.map +1 -1
- package/dist/core/agent-base.d.ts +5 -2
- package/dist/core/agent-base.d.ts.map +1 -1
- package/dist/core/agent-base.js +68 -24
- package/dist/core/agent-base.js.map +1 -1
- package/dist/core/approval-bus.d.ts +41 -2
- package/dist/core/approval-bus.d.ts.map +1 -1
- package/dist/core/approval-bus.js +167 -36
- package/dist/core/approval-bus.js.map +1 -1
- package/dist/core/approval-router.d.ts.map +1 -1
- package/dist/core/approval-router.js +190 -87
- package/dist/core/approval-router.js.map +1 -1
- package/dist/core/commands/approval.d.ts.map +1 -1
- package/dist/core/commands/approval.js +7 -5
- package/dist/core/commands/approval.js.map +1 -1
- package/dist/core/commands/builtin.js +2 -2
- package/dist/core/commands/builtin.js.map +1 -1
- package/dist/core/self-protect.d.ts +3 -2
- package/dist/core/self-protect.d.ts.map +1 -1
- package/dist/core/self-protect.js +75 -41
- package/dist/core/self-protect.js.map +1 -1
- package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts.map +1 -1
- package/dist/plugins/agents/opencode/opencode-http-adapter.js +46 -15
- package/dist/plugins/agents/opencode/opencode-http-adapter.js.map +1 -1
- package/dist/web/public/settings.html +89 -0
- package/dist/web/server.js +16 -0
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,28 @@
|
|
|
15
15
|
// Claude/Codex/OpenCode reports back to the user verbatim. No IM y/n
|
|
16
16
|
// card appears.
|
|
17
17
|
//
|
|
18
|
+
// DESIGN — split by tool intent, not field name:
|
|
19
|
+
//
|
|
20
|
+
// - Bash actually EXECUTES shell — its `command` is an action. Match
|
|
21
|
+
// against BASH_DANGER_PATTERNS (systemctl, pkill, agim restart, ...).
|
|
22
|
+
//
|
|
23
|
+
// - Edit/Write/NotebookEdit author CONTENT — their `new_string` /
|
|
24
|
+
// `content` is text being written to a file, not a command being run.
|
|
25
|
+
// Shell-literal patterns (`systemctl restart agim` as a string in a
|
|
26
|
+
// doc, i18n string, comment, this very file) MUST NOT trip the guard;
|
|
27
|
+
// blocking them would mean operators can't debrand / refactor /
|
|
28
|
+
// document their own service. Match only CODE_DANGER_PATTERNS — JS
|
|
29
|
+
// code that DYNAMICALLY signals our pid (process.kill).
|
|
30
|
+
//
|
|
31
|
+
// - Other tools (Read, Grep, Glob, MCP tools) read or query — no shell
|
|
32
|
+
// execution, no content authoring. Skip the scan entirely.
|
|
33
|
+
//
|
|
34
|
+
// Earlier versions stringified the whole input as a catch-all haystack;
|
|
35
|
+
// that scanned removal-side fields like Edit.old_string and made the
|
|
36
|
+
// guard block edits that *delete* the dangerous literal from a file —
|
|
37
|
+
// the very edits a debrand needs. The split below removes that footgun
|
|
38
|
+
// and the broader "shell literal in a doc trips the guard" class with it.
|
|
39
|
+
//
|
|
18
40
|
// LIMITATIONS:
|
|
19
41
|
// 1. When IMHUB_DANGEROUSLY_SKIP_PERMISSIONS=1 (Claude only), no approval
|
|
20
42
|
// request is ever generated — Claude runs Bash directly. Layer 2
|
|
@@ -33,11 +55,11 @@
|
|
|
33
55
|
// closes the loop fully for Claude (default-permission mode) and
|
|
34
56
|
// OpenCode (bus-mode).
|
|
35
57
|
const PROCESS_NAMES = '(agim|im-hub-pro|im-hub|dist/cli\\.js)';
|
|
36
|
-
/** Patterns
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
const
|
|
58
|
+
/** Patterns matched against Bash's `command` field. These describe *actions*
|
|
59
|
+
* the shell would actually take — they must NOT be applied to text being
|
|
60
|
+
* written into a file, because the exact same string can appear as a
|
|
61
|
+
* legitimate literal in docs / i18n / source code. */
|
|
62
|
+
const BASH_DANGER_PATTERNS = [
|
|
41
63
|
{
|
|
42
64
|
regex: new RegExp(`\\b(systemctl|service)\\s+(restart|stop|kill|reload|disable)\\s+${PROCESS_NAMES}`),
|
|
43
65
|
reason: 'systemctl restart/stop on the Agim service',
|
|
@@ -47,9 +69,6 @@ const SELF_PROTECT_PATTERNS = [
|
|
|
47
69
|
reason: 'pkill / killall targeting the Agim service',
|
|
48
70
|
},
|
|
49
71
|
{
|
|
50
|
-
// kill <pid> where pid happens to be our own — checked dynamically by the
|
|
51
|
-
// caller; we also match the literal command-name pattern for the case
|
|
52
|
-
// where the LLM does `kill $(pgrep agim)` etc.
|
|
53
72
|
regex: new RegExp(`\\bkill\\b[^|;&]*\\$\\(\\s*pgrep[^)]*${PROCESS_NAMES}`),
|
|
54
73
|
reason: 'kill $(pgrep agim)',
|
|
55
74
|
},
|
|
@@ -61,9 +80,15 @@ const SELF_PROTECT_PATTERNS = [
|
|
|
61
80
|
regex: /\bnpm\s+(restart|stop)\b/,
|
|
62
81
|
reason: 'npm restart/stop',
|
|
63
82
|
},
|
|
83
|
+
];
|
|
84
|
+
/** Patterns matched against Edit/Write content fields (`new_string`,
|
|
85
|
+
* `content`, `new_source`). These describe code that would dynamically
|
|
86
|
+
* signal a process — i.e. the script, once written and executed, would
|
|
87
|
+
* kill agim. Pure shell-literal patterns deliberately don't appear here:
|
|
88
|
+
* a `.md` file mentioning `systemctl restart agim` is documentation, not
|
|
89
|
+
* a weapon. */
|
|
90
|
+
const CODE_DANGER_PATTERNS = [
|
|
64
91
|
{
|
|
65
|
-
// Process.kill JS call in Edit/Write tools — captures attempts to write
|
|
66
|
-
// a script that signals our PID.
|
|
67
92
|
regex: /process\.kill\s*\(\s*[^,)]+,\s*['"]SIG(TERM|KILL|INT|HUP)['"]?\s*\)/,
|
|
68
93
|
reason: 'process.kill() targeting an Agim signal',
|
|
69
94
|
},
|
|
@@ -77,43 +102,52 @@ const REDIRECT_TEMPLATE = (reason) => '🛑 检测到尝试通过工具调用重
|
|
|
77
102
|
' · 浏览器打开 web 控制台 → Safety 卡片 → Restart\n' +
|
|
78
103
|
' · 终端运行 `agim restart`';
|
|
79
104
|
/** Examine a tool-use request from an agent (Claude/Codex/OpenCode MCP
|
|
80
|
-
* sidecar relays them all through approval-bus).
|
|
81
|
-
* if it matches a self-protect pattern, otherwise null.
|
|
105
|
+
* sidecar relays them all through approval-bus). Returns a deny reason
|
|
106
|
+
* if it matches a self-protect pattern, otherwise null. Dispatch is
|
|
107
|
+
* strictly tool-name based — see the DESIGN block above. */
|
|
82
108
|
export function checkToolUse(toolName, input) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
haystacks.push(input.content);
|
|
90
|
-
if (typeof input.new_string === 'string')
|
|
91
|
-
haystacks.push(input.new_string);
|
|
92
|
-
if (typeof input.file_path === 'string')
|
|
93
|
-
haystacks.push(input.file_path);
|
|
94
|
-
// Stringify the whole input as a fallback so we still catch weird shapes.
|
|
95
|
-
try {
|
|
96
|
-
haystacks.push(JSON.stringify(input));
|
|
97
|
-
}
|
|
98
|
-
catch { /* ignore */ }
|
|
99
|
-
for (const hay of haystacks) {
|
|
100
|
-
for (const { regex, reason } of SELF_PROTECT_PATTERNS) {
|
|
101
|
-
if (regex.test(hay)) {
|
|
109
|
+
if (toolName === 'Bash') {
|
|
110
|
+
const cmd = input.command;
|
|
111
|
+
if (typeof cmd !== 'string' || cmd.length === 0)
|
|
112
|
+
return null;
|
|
113
|
+
for (const { regex, reason } of BASH_DANGER_PATTERNS) {
|
|
114
|
+
if (regex.test(cmd))
|
|
102
115
|
return { deny: true, message: REDIRECT_TEMPLATE(reason) };
|
|
103
|
-
}
|
|
104
116
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const ourPid = String(process.pid);
|
|
109
|
-
for (const hay of haystacks) {
|
|
110
|
-
if (/\bkill\b/.test(hay) && hay.includes(ourPid)) {
|
|
117
|
+
// PID dynamic check — `kill 3001362`, `kill -9 3001362`, etc.
|
|
118
|
+
const ourPid = String(process.pid);
|
|
119
|
+
if (/\bkill\b/.test(cmd) && cmd.includes(ourPid)) {
|
|
111
120
|
return { deny: true, message: REDIRECT_TEMPLATE(`kill ${ourPid} (our pid)`) };
|
|
112
121
|
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
if (toolName === 'Edit' || toolName === 'Write' || toolName === 'NotebookEdit') {
|
|
125
|
+
const candidates = [];
|
|
126
|
+
if (typeof input.new_string === 'string')
|
|
127
|
+
candidates.push(input.new_string);
|
|
128
|
+
if (typeof input.content === 'string')
|
|
129
|
+
candidates.push(input.content);
|
|
130
|
+
if (typeof input.new_source === 'string')
|
|
131
|
+
candidates.push(input.new_source);
|
|
132
|
+
if (candidates.length === 0)
|
|
133
|
+
return null;
|
|
134
|
+
const ourPid = String(process.pid);
|
|
135
|
+
for (const hay of candidates) {
|
|
136
|
+
for (const { regex, reason } of CODE_DANGER_PATTERNS) {
|
|
137
|
+
if (regex.test(hay))
|
|
138
|
+
return { deny: true, message: REDIRECT_TEMPLATE(reason) };
|
|
139
|
+
}
|
|
140
|
+
// Author-time PID kill — `process.kill(<ourPid>, 'SIGTERM')`. Narrower
|
|
141
|
+
// than the Bash `\bkill\b` check because we don't want to match the
|
|
142
|
+
// word "kill" appearing in arbitrary prose / code comments.
|
|
143
|
+
if (/process\.kill/.test(hay) && hay.includes(ourPid)) {
|
|
144
|
+
return { deny: true, message: REDIRECT_TEMPLATE(`process.kill(${ourPid}) (our pid)`) };
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
113
148
|
}
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
void toolName;
|
|
149
|
+
// Read, Grep, Glob, LS, NotebookRead, WebFetch, WebSearch, all MCP tools:
|
|
150
|
+
// no shell execution, no content authoring → nothing to defend against.
|
|
117
151
|
return null;
|
|
118
152
|
}
|
|
119
153
|
//# sourceMappingURL=self-protect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-protect.js","sourceRoot":"","sources":["../../src/core/self-protect.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,iEAAiE;AACjE,sEAAsE;AACtE,qEAAqE;AACrE,6DAA6D;AAC7D,wEAAwE;AACxE,oEAAoE;AACpE,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,wEAAwE;AACxE,qEAAqE;AACrE,gBAAgB;AAChB,EAAE;AACF,eAAe;AACf,0EAA0E;AAC1E,oEAAoE;AACpE,uEAAuE;AACvE,kCAAkC;AAClC,qEAAqE;AACrE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,wBAAwB;AACxB,mEAAmE;AACnE,wEAAwE;AACxE,2CAA2C;AAC3C,oEAAoE;AACpE,mEAAmE;AACnE,iEAAiE;AACjE,uBAAuB;AAEvB,MAAM,aAAa,GAAG,wCAAwC,CAAA;AAE9D;;;
|
|
1
|
+
{"version":3,"file":"self-protect.js","sourceRoot":"","sources":["../../src/core/self-protect.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,iEAAiE;AACjE,sEAAsE;AACtE,qEAAqE;AACrE,6DAA6D;AAC7D,wEAAwE;AACxE,oEAAoE;AACpE,2DAA2D;AAC3D,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,wEAAwE;AACxE,qEAAqE;AACrE,gBAAgB;AAChB,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,EAAE;AACF,oEAAoE;AACpE,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,oEAAoE;AACpE,uEAAuE;AACvE,4DAA4D;AAC5D,EAAE;AACF,yEAAyE;AACzE,+DAA+D;AAC/D,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,0EAA0E;AAC1E,EAAE;AACF,eAAe;AACf,0EAA0E;AAC1E,oEAAoE;AACpE,uEAAuE;AACvE,kCAAkC;AAClC,qEAAqE;AACrE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,wBAAwB;AACxB,mEAAmE;AACnE,wEAAwE;AACxE,2CAA2C;AAC3C,oEAAoE;AACpE,mEAAmE;AACnE,iEAAiE;AACjE,uBAAuB;AAEvB,MAAM,aAAa,GAAG,wCAAwC,CAAA;AAE9D;;;uDAGuD;AACvD,MAAM,oBAAoB,GAA6C;IACrE;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,mEAAmE,aAAa,EAAE,CAAC;QACrG,MAAM,EAAE,4CAA4C;KACrD;IACD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,kCAAkC,aAAa,EAAE,CAAC;QACpE,MAAM,EAAE,4CAA4C;KACrD;IACD;QACE,KAAK,EAAE,IAAI,MAAM,CAAC,wCAAwC,aAAa,EAAE,CAAC;QAC1E,MAAM,EAAE,oBAAoB;KAC7B;IACD;QACE,KAAK,EAAE,wDAAwD;QAC/D,MAAM,EAAE,sCAAsC;KAC/C;IACD;QACE,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,kBAAkB;KAC3B;CACF,CAAA;AAED;;;;;gBAKgB;AAChB,MAAM,oBAAoB,GAA6C;IACrE;QACE,KAAK,EAAE,qEAAqE;QAC5E,MAAM,EAAE,yCAAyC;KAClD;CACF,CAAA;AAED;;yDAEyD;AACzD,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAU,EAAE,CACnD,8BAA8B,GAAG,MAAM,GAAG,MAAM;IAChD,yCAAyC;IACzC,gCAAgC;IAChC,4CAA4C;IAC5C,0BAA0B,CAAA;AAE5B;;;6DAG6D;AAC7D,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,KAA8B;IAE9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAA;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5D,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAA;QAChF,CAAC;QACD,8DAA8D;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,QAAQ,MAAM,YAAY,CAAC,EAAE,CAAA;QAC/E,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC3E,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrE,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAExC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAClC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;gBACrD,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAA;YAChF,CAAC;YACD,uEAAuE;YACvE,oEAAoE;YACpE,4DAA4D;YAC5D,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,MAAM,aAAa,CAAC,EAAE,CAAA;YACxF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-http-adapter.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/opencode/opencode-http-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode-http-adapter.d.ts","sourceRoot":"","sources":["../../../../src/plugins/agents/opencode/opencode-http-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,10 @@
|
|
|
26
26
|
// the adapter falls back to auto-`once` so non-IM call paths (web,
|
|
27
27
|
// scheduler) keep working.
|
|
28
28
|
// 5. Exits cleanly on `session.status: idle` for the right session,
|
|
29
|
-
// surfaces `session.error`, and is bounded by
|
|
30
|
-
// (
|
|
29
|
+
// surfaces `session.error`, and is bounded by an idle watchdog
|
|
30
|
+
// (OPENCODE_IDLE_TIMEOUT_MS / IMHUB_AGENT_IDLE_TIMEOUT_MS, default
|
|
31
|
+
// 60 min, 0 = disabled) that fires only when the daemon goes
|
|
32
|
+
// completely silent — slow human approvals don't count.
|
|
31
33
|
//
|
|
32
34
|
// Selection: env IMHUB_OPENCODE_DRIVER=http picks this; anything else (incl
|
|
33
35
|
// unset) picks the stdio adapter. See ./index.ts factory.
|
|
@@ -45,7 +47,11 @@ import { logger as rootLogger } from '../../../core/logger.js';
|
|
|
45
47
|
import { opencodeServe as defaultServe } from './serve-manager.js';
|
|
46
48
|
import { approvalBus as defaultApprovalBus } from '../../../core/approval-bus.js';
|
|
47
49
|
const log = rootLogger.child({ component: 'agent.opencode.http' });
|
|
48
|
-
|
|
50
|
+
// Idle (no-SSE-event) timeout — matches the semantics in agent-base.ts: the
|
|
51
|
+
// watchdog re-arms on every event the daemon emits, so slow human-in-the-loop
|
|
52
|
+
// approvals don't count against the budget; only true silence does. Override
|
|
53
|
+
// via OPENCODE_IDLE_TIMEOUT_MS or IMHUB_AGENT_IDLE_TIMEOUT_MS; set 0 to disable.
|
|
54
|
+
const DEFAULT_IDLE_TIMEOUT_MS = 60 * 60 * 1000;
|
|
49
55
|
export class OpenCodeHttpAdapter extends OpenCodeAdapter {
|
|
50
56
|
serve;
|
|
51
57
|
fetchImpl;
|
|
@@ -239,18 +245,29 @@ export class OpenCodeHttpAdapter extends OpenCodeAdapter {
|
|
|
239
245
|
const t = setTimeout(() => { sse.close(); }, 500);
|
|
240
246
|
t.unref?.();
|
|
241
247
|
});
|
|
242
|
-
const
|
|
243
|
-
|
|
248
|
+
const idleTimeout = resolveIdleTimeout();
|
|
249
|
+
let watchdogTimedOut = false;
|
|
250
|
+
// Idle watchdog: re-armed on every SSE event. Without this, an SSE that
|
|
251
|
+
// truly hangs (no events at all) would block the for-await forever — the
|
|
252
|
+
// old in-loop `Date.now() > timeoutAt` only fired when an event arrived.
|
|
253
|
+
let watchdog = null;
|
|
254
|
+
const armWatchdog = () => {
|
|
255
|
+
if (idleTimeout <= 0)
|
|
256
|
+
return;
|
|
257
|
+
if (watchdog)
|
|
258
|
+
clearTimeout(watchdog);
|
|
259
|
+
watchdog = setTimeout(() => {
|
|
260
|
+
watchdogTimedOut = true;
|
|
261
|
+
sse.close(); // unblocks the for-await
|
|
262
|
+
}, idleTimeout);
|
|
263
|
+
};
|
|
264
|
+
armWatchdog();
|
|
244
265
|
let surfacedError = null;
|
|
245
266
|
const yieldedPartIds = new Set();
|
|
246
267
|
let sseYieldedAnyText = false;
|
|
247
268
|
try {
|
|
248
269
|
for await (const event of sse) {
|
|
249
|
-
|
|
250
|
-
log.warn({ event: 'opencode.http.timeout', sessionID, timeoutMs }, 'http adapter timed out');
|
|
251
|
-
yield `\n\n⚠️ 处理超时(已超过 ${Math.round(timeoutMs / 60000)} 分钟)`;
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
270
|
+
armWatchdog();
|
|
254
271
|
if (event.type === 'permission.asked') {
|
|
255
272
|
this.routeAsk(event, baseUrl, sessionID, callOpts);
|
|
256
273
|
continue;
|
|
@@ -273,8 +290,16 @@ export class OpenCodeHttpAdapter extends OpenCodeAdapter {
|
|
|
273
290
|
}
|
|
274
291
|
}
|
|
275
292
|
finally {
|
|
293
|
+
if (watchdog)
|
|
294
|
+
clearTimeout(watchdog);
|
|
276
295
|
sse.close();
|
|
277
296
|
}
|
|
297
|
+
if (watchdogTimedOut) {
|
|
298
|
+
const mins = Math.round(idleTimeout / 60000);
|
|
299
|
+
log.warn({ event: 'opencode.http.idle-timeout', sessionID, idleTimeoutMs: idleTimeout, reason: 'idle' }, `opencode HTTP idle for ${mins}min — assumed hang, terminated`);
|
|
300
|
+
yield `\n\n⚠️ opencode 子进程 ${mins} 分钟无任何输出,强制超时(可能 hang 或网络挂起)`;
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
278
303
|
const result = await promptPromise;
|
|
279
304
|
if (result && typeof result === 'object' && 'error' in result) {
|
|
280
305
|
log.warn({ event: 'opencode.http.prompt_failed', err: String(result.error) }, 'prompt POST failed');
|
|
@@ -608,14 +633,20 @@ function decisionToOpencodeReply(decision) {
|
|
|
608
633
|
? { reply: 'reject', message: decision.message }
|
|
609
634
|
: { reply: 'reject' };
|
|
610
635
|
}
|
|
611
|
-
function
|
|
612
|
-
const
|
|
613
|
-
|
|
636
|
+
function resolveIdleTimeout() {
|
|
637
|
+
const sources = [
|
|
638
|
+
['OPENCODE_IDLE_TIMEOUT_MS', process.env.OPENCODE_IDLE_TIMEOUT_MS],
|
|
639
|
+
['IMHUB_AGENT_IDLE_TIMEOUT_MS', process.env.IMHUB_AGENT_IDLE_TIMEOUT_MS],
|
|
640
|
+
];
|
|
641
|
+
for (const [envKey, raw] of sources) {
|
|
642
|
+
if (raw === undefined)
|
|
643
|
+
continue;
|
|
614
644
|
const n = parseInt(raw, 10);
|
|
615
|
-
if (Number.isFinite(n) && n
|
|
645
|
+
if (Number.isFinite(n) && n >= 0)
|
|
616
646
|
return n;
|
|
647
|
+
log.warn({ event: 'opencode.http.idle-timeout.invalid', raw, envKey }, `Invalid idle timeout env "${envKey}=${raw}", trying next source / default`);
|
|
617
648
|
}
|
|
618
|
-
return
|
|
649
|
+
return DEFAULT_IDLE_TIMEOUT_MS;
|
|
619
650
|
}
|
|
620
651
|
async function safeText(res) {
|
|
621
652
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-http-adapter.js","sourceRoot":"","sources":["../../../../src/plugins/agents/opencode/opencode-http-adapter.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,EAAE;AACF,mBAAmB;AACnB,iFAAiF;AACjF,0EAA0E;AAC1E,sEAAsE;AACtE,wEAAwE;AACxE,8EAA8E;AAC9E,EAAE;AACF,iCAAiC;AACjC,uEAAuE;AACvE,wEAAwE;AACxE,oEAAoE;AACpE,iDAAiD;AACjD,4EAA4E;AAC5E,mCAAmC;AACnC,kEAAkE;AAClE,iEAAiE;AACjE,2EAA2E;AAC3E,0EAA0E;AAC1E,oBAAoB;AACpB,wEAAwE;AACxE,sEAAsE;AACtE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,gCAAgC;AAChC,sEAAsE;AACtE,uEAAuE;AACvE,yBAAyB;AACzB,EAAE;AACF,4EAA4E;AAC5E,0DAA0D;AAC1D,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,kDAAkD;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAA6B,aAAa,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7F,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAmC,MAAM,+BAA+B,CAAA;AAElH,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAA;AAElE,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AA2DzC,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACrC,KAAK,CAAsB;IAC3B,SAAS,CAAc;IACxC,sDAAsD;IACrC,WAAW,CAAoB;IAChD;;;;qEAIiE;IAChD,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnD,YAAY,OAA2B,EAAE;QACvC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAA;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI;YAC1C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC,CAAA;QAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,EACpF,4FAA4F,CAAC,CAAA;IACjG,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAoB,EAAE,SAAiB,EAAE,IAAmB;QAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QAEvB,4EAA4E;QAC5E,wEAAwE;QACxE,gCAAgC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,CAAA;QACvE,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC;gBAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kDAAkD,CAAC,CAAC;QACjG,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAsE,EAAE,CAAA;gBACnF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA;gBAC1F,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ;oBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;gBACjF,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ;oBAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;gBACpF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACvG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC;4BAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,uEAAuE;YACvE,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS,CAAA;YAC3E,IACE,IAAI,CAAC,IAAI,KAAK,MAAM;gBACpB,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,EAAE,GAAG;gBACd,QAAQ,KAAK,SAAS,EACtB,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAoB,EAAE,SAAiB;QACjD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAAE,OAAO,KAAK,CAAA;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,CAAA;QACpD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QACnC,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,MAAM,CAAA;IAC7E,CAAC;IAED,YAAY,CAAC,KAAoB,EAAE,SAAiB;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO,IAAI,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;QACpC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,KAA4C,CAAA;QAC5D,IAAI,GAAG,GAAG,eAAe,CAAA;QACzB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAA;YAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,IAA2C,CAAA;YAC1D,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QAClE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACvB,CAAC;IAED,yBAAyB,CAAC,MAAc,EAAE,OAAuB;QAC/D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAA;QACnD,MAAM,WAAW,GAAG,OAAO;aACxB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;aAC7E,IAAI,CAAC,MAAM,CAAC,CAAA;QACf,OAAO,mCAAmC,WAAW,wBAAwB,MAAM,EAAE,CAAA;IACvF,CAAC;IAEQ,KAAK,CAAC,CAAC,UAAU,CACxB,UAAkB,EAClB,MAAc,EACd,OAAuB,EACvB,IAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAA;QAEhD,IAAI,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAA;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACvD,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACrE,CAAC;YACD,yEAAyE;YACzE,uEAAuE;YACvE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7B,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,iEAAiE;QACnE,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,kEAAkE;YAClE,iEAAiE;YACjE,mEAAmE;YACnE,oEAAoE;YACpE,mCAAmC;YACnC,EAAE;YACF,iEAAiE;YACjE,iEAAiE;YACjE,+DAA+D;YAC/D,+CAA+C;YAC/C,MAAM,aAAa,GAAG,SAAS,CAAA;YAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACtC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC/D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBACzC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;YACvG,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CACN,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EACtH,YAAY,CACb,CAAA;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,kBAAkB;YAClD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAEnD,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAG,gBAAgB;YAClC,CAAC,CAAC,GAAG,gBAAgB,OAAO,gBAAgB,EAAE;YAC9C,CAAC,CAAC,gBAAgB,CAAA;QAEpB,0DAA0D;QAC1D,EAAE;QACF,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;aAC7E,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAY,CAAA,CAAC,CAAA;QAErG,yEAAyE;QACzE,sEAAsE;QACtE,oEAAoE;QACpE,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAE/C;YAAC,CAAuC,CAAC,KAAK,EAAE,EAAE,CAAA;QACrD,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,cAAc,EAAE,CAAA;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QAExC,IAAI,aAAa,GAAkB,IAAI,CAAA;QACvC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;QACxC,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAE7B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,wBAAwB,CAAC,CAAA;oBAC5F,MAAM,mBAAmB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;oBAC5D,OAAM;gBACR,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;oBAClD,SAAQ;gBACV,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAA;oBAC9B,SAAQ;gBACV,CAAC;gBAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAC1E,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,MAAM;wBAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBACtC,iBAAiB,GAAG,IAAI,CAAA;oBACxB,MAAM,IAAI,CAAA;gBACZ,CAAC;gBAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;oBACvC,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,GAAG,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAA;QAClC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAA;YACnG,MAAM,oBAAoB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;YAChD,OAAM;QACR,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAA;YACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,GAAG,CAAC,IAAI,CACN,EAAE,KAAK,EAAE,iCAAiC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAC9E,iEAAiE,CAClE,CAAA;gBACH,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,OAAO;oBAAE,MAAM,IAAI,CAAA;YACxC,CAAC;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,2BAA2B,aAAa,EAAE,CAAA;QAClD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,IAA6B,EAC7B,cAA2B,EAC3B,IAAmB;QAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEzD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAsE,EAAE,CAAA;YACnF,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1E,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAChC,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ;gBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;YAC3F,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;YAC9F,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvG,IAAI,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ;YAClC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACrE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;gBAAE,SAAQ;YAC7B,IAAI,IAAI,CAAC,EAAE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAQ;YACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yEAAyE;IAEzE;;;;;;;;;;;;;OAaG;IACK,QAAQ,CAAC,KAAoB,EAAE,OAAe,EAAE,WAAmB,EAAE,IAAmB;QAC9F,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAA;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAA;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAM;QAErC,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBAClE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YACnF,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAA;QAC5B,MAAM,SAAS,GAAG,GAAG,EAAE,WAAW,EAAE;eAC/B,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;eAC7D,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAElE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,EAAE,CAAA;YACV,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG;YACV,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAkB;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;SAChC,CAAA;QACD,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAQ,EAAE;YAC5C,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAA;YAC9C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACpF,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YAChF,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,GAAG,EAAE,wBAAwB,CAAC;YAC5B,KAAK,EAAE,WAAW,EAAG,uDAAuD;YAC5E,KAAK;YACL,QAAQ,EAAE,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;YAChF,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;aAChF;YACD,GAAG;YACH,QAAQ;SACT,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACxB,sEAAsE;YACtE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YACpF,QAAQ,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB;QACzB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QACxE,MAAM,GAAG,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAc,EAAE,CAAC,CAAA;QAC1F,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,EAAE,CAAA;QAC9B,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACpF,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA,CAAE,mBAAmB;IACvE,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,SAAiB;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM,CAAE,YAAY;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,YAAY,SAAS,EAAE,EAAE;YAClE,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;SAC9C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QAChC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ,EAAE,EAC/G,yCAAyC,CAAC,CAAA;IAC9C,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,IAAmB;QAC9D,2DAA2D;QAC3D,EAAE;QACF,0BAA0B;QAC1B,wEAAwE;QACxE,qEAAqE;QACrE,iEAAiE;QACjE,oDAAoD;QACpD,EAAE;QACF,iCAAiC;QACjC,kEAAkE;QAClE,mEAAmE;QACnE,0BAA0B;QAC1B,sEAAsE;QACtE,qEAAqE;QACrE,iEAAiE;QACjE,mEAAmE;QACnE,4CAA4C;QAC5C,+DAA+D;QAC/D,oEAAoE;QACpE,8CAA8C;QAC9C,EAAE;QACF,sEAAsE;QACtE,2BAA2B;QAC3B,4BAA4B;QAC5B,0CAA0C;QAC1C,gDAAgD;QAChD,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,cAAc;SACtB,CAAA;QACD,yEAAyE;QACzE,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC9C,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,UAAU,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC9F,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAqB,CAAA;QAChD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QACvE,GAAG,CAAC,IAAI,CACN;YACE,KAAK,EAAE,+BAA+B;YACtC,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,GAAG,EAAE,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC;SACvC,EACD,iBAAiB,CAClB,CAAA;QACD,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,SAAiB,EACjB,MAAc,EACd,IAAmB;QAEnB,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACxC,CAAA;QACD,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC7C,2EAA2E;QAC3E,2EAA2E;QAC3E,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,YAAY,SAAS,UAAU,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,IAAI,EAA6B,CAAA;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,OAAe,EACf,SAAiB,EACjB,KAAmC,EACnC,OAAgB;QAEhB,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAA;QAC/C,IAAI,KAAK,KAAK,QAAQ,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,eAAe,SAAS,QAAQ,EAAE;YAC3E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,QAAQ,EAAE;YACnD,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;SACzC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;GAWG;AACH,SAAS,yBAAyB,CAAC,IAAmB;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,OAAO;QACL,gCAAgC;QAChC,mEAAmE;QACnE,oEAAoE;QACpE,yDAAyD;QACzD,uEAAuE;QACvE,sEAAsE;QACtE,EAAE;QACF,oBAAoB,GAAG,EAAE;QACzB,EAAE;QACF,4DAA4D;QAC5D,EAAE;QACF,oEAAoE;QACpE,4DAA4D;QAC5D,uEAAuE;QACvE,uEAAuE;QACvE,0DAA0D;KAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IAC3D,OAAO,QAAQ,CAAC,OAAO;QACrB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;QAChD,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;IAC3C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAa;IACnC,IAAI,CAAC;QAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAA;IAAC,CAAC;AACrE,CAAC;AAkBD,MAAM,OAAO,WAAW;IACd,MAAM,CAAe;IACrB,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,GAAG,EAAE,CAAA;IACR,MAAM,GAAG,KAAK,CAAA;IAEtB,YAAY,IAAmC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAA8B,CAAA;IAC5D,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC;YAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAChD,IAAI,IAAI;gBAAE,OAAM;YAChB,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,MAAK;gBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;gBAClC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;gBAChC,IAAI,GAAG;oBAAE,MAAM,GAAG,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QACtC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode-http-adapter.js","sourceRoot":"","sources":["../../../../src/plugins/agents/opencode/opencode-http-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,6 +141,16 @@
|
|
|
141
141
|
adminConfirmRemove: 'Remove admin {p}:{u}?',
|
|
142
142
|
adminPublicBindWarn: '⚠️ Web is bound publicly — admin editor disabled to prevent random visitors from granting themselves access. Bind to 127.0.0.1 to enable.',
|
|
143
143
|
adminBootstrapHint: 'Bootstrap token exists at {path}. Run `cat` on the server, then send `/setup admin <token>` in IM to self-onboard.',
|
|
144
|
+
|
|
145
|
+
// ── Approval policy (timeout default) ─────────────────────
|
|
146
|
+
approvalPolicyTitle: 'Approval Policy',
|
|
147
|
+
approvalPolicyHint: 'What does Agim do when a tool-use approval times out (no IM reply within the budget)? Default deny is strict; switch to allow when you\'ll be away from IM and want the agent to keep moving.',
|
|
148
|
+
approvalTimeoutDefaultLabel: 'On approval timeout',
|
|
149
|
+
approvalTimeoutDeny: 'Deny (default — strict, human in the loop)',
|
|
150
|
+
approvalTimeoutAllow: 'Allow (user-away mode — agent proceeds silently)',
|
|
151
|
+
approvalPolicySave: 'Save',
|
|
152
|
+
approvalPolicySaved: 'Saved — applies to the next pending approval, no restart needed.',
|
|
153
|
+
approvalPolicyLoadFailed: 'Failed to load approval policy',
|
|
144
154
|
},
|
|
145
155
|
zh: {
|
|
146
156
|
title: 'Agim — 设置',
|
|
@@ -268,6 +278,16 @@
|
|
|
268
278
|
adminConfirmRemove: '移除管理员 {p}:{u}?',
|
|
269
279
|
adminPublicBindWarn: '⚠️ web 控制台目前监听公开地址 — 为防止陌生访问者擅自给自己加 admin,此编辑器已禁用。绑回 127.0.0.1 后启用。',
|
|
270
280
|
adminBootstrapHint: '检测到一次性 token 文件在 {path}。在服务器上 `cat` 该文件取 token,然后在 IM 里发 /setup admin <token> 即可把自己设为 admin。',
|
|
281
|
+
|
|
282
|
+
// ── 审批策略 (超时默认决策) ───────────────────────────────
|
|
283
|
+
approvalPolicyTitle: '审批策略',
|
|
284
|
+
approvalPolicyHint: '当工具调用审批超时(IM 端没在限定时间内回复)时 Agim 该怎么办?默认 deny 严格、人在回路;切到 allow 是"出门模式",让 agent 继续跑、不卡你。',
|
|
285
|
+
approvalTimeoutDefaultLabel: '审批超时时',
|
|
286
|
+
approvalTimeoutDeny: '拒绝(默认 — 严格,人工把关)',
|
|
287
|
+
approvalTimeoutAllow: '放行(出门模式 — agent 静默继续)',
|
|
288
|
+
approvalPolicySave: '保存',
|
|
289
|
+
approvalPolicySaved: '已保存 — 下一个挂起的审批起就生效,无需重启。',
|
|
290
|
+
approvalPolicyLoadFailed: '加载审批策略失败',
|
|
271
291
|
},
|
|
272
292
|
};
|
|
273
293
|
function t(key) { return T[window.__lang][key] || T.en[key] || key; }
|
|
@@ -709,6 +729,7 @@
|
|
|
709
729
|
<h1>${t('h1')}</h1>
|
|
710
730
|
${renderServiceCard()}
|
|
711
731
|
${renderSafetyCard()}
|
|
732
|
+
${renderApprovalPolicyCard()}
|
|
712
733
|
${renderAgentsCard()}
|
|
713
734
|
${renderMessengersCard()}
|
|
714
735
|
${renderAcpCard()}
|
|
@@ -721,6 +742,8 @@
|
|
|
721
742
|
void loadServiceStatus();
|
|
722
743
|
// Admin allowlist list — loads via /api/admin-allowlist.
|
|
723
744
|
void loadAdminList();
|
|
745
|
+
// Approval policy (IMHUB_TIMEOUT_DEFAULT) — loaded via /api/env.
|
|
746
|
+
void loadApprovalPolicy();
|
|
724
747
|
}
|
|
725
748
|
|
|
726
749
|
// ==========================================
|
|
@@ -840,6 +863,69 @@
|
|
|
840
863
|
`;
|
|
841
864
|
}
|
|
842
865
|
|
|
866
|
+
// ==========================================
|
|
867
|
+
// Approval Policy card — IMHUB_TIMEOUT_DEFAULT (deny|allow).
|
|
868
|
+
// Hot-reloads via process.env mutation in handlePutEnv, no restart.
|
|
869
|
+
// ==========================================
|
|
870
|
+
function renderApprovalPolicyCard() {
|
|
871
|
+
return `
|
|
872
|
+
<div class="card">
|
|
873
|
+
<h2>${t('approvalPolicyTitle')}</h2>
|
|
874
|
+
<div class="hint" style="margin-bottom:10px">${t('approvalPolicyHint')}</div>
|
|
875
|
+
<div style="margin-bottom:8px">
|
|
876
|
+
<label for="approval-timeout-default">${t('approvalTimeoutDefaultLabel')}</label>
|
|
877
|
+
<select id="approval-timeout-default">
|
|
878
|
+
<option value="deny">${t('approvalTimeoutDeny')}</option>
|
|
879
|
+
<option value="allow">${t('approvalTimeoutAllow')}</option>
|
|
880
|
+
</select>
|
|
881
|
+
</div>
|
|
882
|
+
<div class="actions">
|
|
883
|
+
<button type="button" class="btn btn-primary" id="approval-policy-save">${t('approvalPolicySave')}</button>
|
|
884
|
+
<span id="approval-policy-status" class="hint" style="margin-left:10px"></span>
|
|
885
|
+
</div>
|
|
886
|
+
</div>
|
|
887
|
+
`;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
async function loadApprovalPolicy() {
|
|
891
|
+
const sel = document.getElementById('approval-timeout-default');
|
|
892
|
+
const status = document.getElementById('approval-policy-status');
|
|
893
|
+
if (!sel) return;
|
|
894
|
+
try {
|
|
895
|
+
const res = await authFetch('/api/env?reveal=1');
|
|
896
|
+
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
897
|
+
const data = await res.json();
|
|
898
|
+
const v = (data.env && typeof data.env.IMHUB_TIMEOUT_DEFAULT === 'string')
|
|
899
|
+
? data.env.IMHUB_TIMEOUT_DEFAULT.toLowerCase()
|
|
900
|
+
: 'deny';
|
|
901
|
+
sel.value = v === 'allow' ? 'allow' : 'deny';
|
|
902
|
+
} catch (err) {
|
|
903
|
+
if (status) status.textContent = t('approvalPolicyLoadFailed');
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
async function saveApprovalPolicy() {
|
|
908
|
+
const sel = document.getElementById('approval-timeout-default');
|
|
909
|
+
const status = document.getElementById('approval-policy-status');
|
|
910
|
+
if (!sel || !status) return;
|
|
911
|
+
const v = sel.value === 'allow' ? 'allow' : 'deny';
|
|
912
|
+
try {
|
|
913
|
+
// authFetch is a thin fetch wrapper that doesn't check res.ok — a
|
|
914
|
+
// 5xx from the server still resolves the promise. Without this guard
|
|
915
|
+
// the UI would lie ("已保存") on a failed write.
|
|
916
|
+
const res = await authFetch('/api/env', {
|
|
917
|
+
method: 'PUT',
|
|
918
|
+
headers: { 'Content-Type': 'application/json' },
|
|
919
|
+
body: JSON.stringify({ updates: { IMHUB_TIMEOUT_DEFAULT: v } }),
|
|
920
|
+
});
|
|
921
|
+
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
922
|
+
status.textContent = t('approvalPolicySaved');
|
|
923
|
+
setTimeout(() => { status.textContent = ''; }, 4000);
|
|
924
|
+
} catch (err) {
|
|
925
|
+
status.textContent = t('saveFailed');
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
|
|
843
929
|
// ==========================================
|
|
844
930
|
// Agents card
|
|
845
931
|
// ==========================================
|
|
@@ -1346,6 +1432,9 @@
|
|
|
1346
1432
|
document.getElementById('svc-stop')?.addEventListener('click', () => svcAction('stop'));
|
|
1347
1433
|
document.getElementById('svc-start')?.addEventListener('click', () => svcAction('start'));
|
|
1348
1434
|
|
|
1435
|
+
// Approval Policy card — IMHUB_TIMEOUT_DEFAULT toggle.
|
|
1436
|
+
document.getElementById('approval-policy-save')?.addEventListener('click', saveApprovalPolicy);
|
|
1437
|
+
|
|
1349
1438
|
// Add admin (Safety card → Admin Allowlist).
|
|
1350
1439
|
document.getElementById('admin-add')?.addEventListener('click', async () => {
|
|
1351
1440
|
const platform = (document.getElementById('admin-platform')?.value || '').trim();
|
package/dist/web/server.js
CHANGED
|
@@ -1544,6 +1544,11 @@ const ENV_EDITABLE_KEYS = [
|
|
|
1544
1544
|
// Safety card toggle — drives the Claude --dangerously-skip-permissions
|
|
1545
1545
|
// branch in plugins/agents/claude-code/index.ts. Not a secret, plain '1'/'0'.
|
|
1546
1546
|
'IMHUB_DANGEROUSLY_SKIP_PERMISSIONS',
|
|
1547
|
+
// Approval Policy card — 'allow' | 'deny' (default deny). Decides what the
|
|
1548
|
+
// approval bus does when a tool-use prompt times out with no human reply.
|
|
1549
|
+
// Hot-reload: handlePutEnv mutates process.env so approval-bus picks up the
|
|
1550
|
+
// new value on the next timer fire, no restart needed.
|
|
1551
|
+
'IMHUB_TIMEOUT_DEFAULT',
|
|
1547
1552
|
];
|
|
1548
1553
|
const SECRET_KEYS = new Set(['IMHUB_SMTP_PASS', 'IMHUB_BAIDU_MAP_AK']);
|
|
1549
1554
|
function maskSecret(v) {
|
|
@@ -1594,6 +1599,17 @@ async function handlePutEnv(req, res) {
|
|
|
1594
1599
|
}
|
|
1595
1600
|
const { updateEnvFile } = await import('../cli-ui/env-file.js');
|
|
1596
1601
|
updateEnvFile(safe);
|
|
1602
|
+
// Hot-reload: mutate process.env so modules that re-read on use (e.g.
|
|
1603
|
+
// approval-bus's isTimeoutDefaultAllow) pick up the change without
|
|
1604
|
+
// waiting for a service restart. Modules that capture at module load
|
|
1605
|
+
// (most SMTP / Baidu callers) still need a restart to see the new value
|
|
1606
|
+
// — that's a per-module decision, not enforced here.
|
|
1607
|
+
for (const [k, v] of Object.entries(safe)) {
|
|
1608
|
+
if (v === null)
|
|
1609
|
+
delete process.env[k];
|
|
1610
|
+
else
|
|
1611
|
+
process.env[k] = v;
|
|
1612
|
+
}
|
|
1597
1613
|
sendJson(res, 200, { ok: true, updated: Object.keys(safe) });
|
|
1598
1614
|
}
|
|
1599
1615
|
catch (err) {
|