@sage-protocol/pi-adapter 0.1.2 → 0.1.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 +15 -0
- package/SKILL.md +6 -0
- package/dist/sage-pi-adapter.d.ts +3 -3
- package/dist/sage-pi-adapter.d.ts.map +1 -1
- package/dist/sage-pi-adapter.js +295 -210
- package/dist/sage-pi-adapter.js.map +1 -1
- package/extensions/index.ts +3 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -69,6 +69,21 @@ export SAGE_SUGGEST_LIMIT=3
|
|
|
69
69
|
export SAGE_SUGGEST_DEBOUNCE_MS=800
|
|
70
70
|
export SAGE_SECURITY_HOOKS=1
|
|
71
71
|
export SAGE_RLM_FEEDBACK=1
|
|
72
|
+
export SAGE_SHOW_HOOK_MESSAGES=1
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Manual hook command check (hook reads prompt from env/stdin, not positional args):
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
PROMPT="cpp libraries" SAGE_SOURCE=pi-extension sage suggest hook skill --limit 3
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`sage suggest hook skill "cpp libraries"` is expected to fail because hook mode does not accept positional query text.
|
|
82
|
+
|
|
83
|
+
Use plain query mode when testing manually without hook env:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
sage suggest skill "cpp libraries"
|
|
72
87
|
```
|
|
73
88
|
|
|
74
89
|
## Harness Integration (Recommended)
|
package/SKILL.md
CHANGED
|
@@ -41,6 +41,12 @@ pi list
|
|
|
41
41
|
|
|
42
42
|
Then restart `pi` and verify `sage_status` is callable.
|
|
43
43
|
|
|
44
|
+
Hook command semantics:
|
|
45
|
+
|
|
46
|
+
- `sage suggest hook skill` reads prompt from env/stdin (for IDE/agent hooks)
|
|
47
|
+
- It does not accept positional query text
|
|
48
|
+
- Manual query testing uses `sage suggest skill "..."`
|
|
49
|
+
|
|
44
50
|
## Required Patch Pattern
|
|
45
51
|
|
|
46
52
|
```ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SageDomain =
|
|
1
|
+
export type SageDomain = "prompts" | "skills" | "builder" | "governance" | "chat" | "social" | "rlm" | "library_sync" | "security" | "meta" | "hub" | "library" | "help" | "external";
|
|
2
2
|
export interface ToolResult {
|
|
3
3
|
content?: Array<{
|
|
4
4
|
type: string;
|
|
@@ -62,7 +62,7 @@ export interface SageCommandResult {
|
|
|
62
62
|
}
|
|
63
63
|
export type SageCommandRunner = (request: SageCommandRequest) => Promise<SageCommandResult>;
|
|
64
64
|
type SecurityDecision = {
|
|
65
|
-
decision:
|
|
65
|
+
decision: "allow" | "block" | "warn";
|
|
66
66
|
reason?: string;
|
|
67
67
|
};
|
|
68
68
|
export declare class SageMcpBridge {
|
|
@@ -97,7 +97,7 @@ export declare class SageMcpBridge {
|
|
|
97
97
|
export declare class SageHookRuntime {
|
|
98
98
|
private config;
|
|
99
99
|
private commandRunner;
|
|
100
|
-
constructor(config: Required<Pick<SageP2Config,
|
|
100
|
+
constructor(config: Required<Pick<SageP2Config, "sageBin" | "timeoutMs">> & SageP2Config);
|
|
101
101
|
getSessionContext(sessionId?: string): Promise<string>;
|
|
102
102
|
suggestSkill(prompt: string, sessionId?: string): Promise<string>;
|
|
103
103
|
capturePrompt(prompt: string, sessionId?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sage-pi-adapter.d.ts","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sage-pi-adapter.d.ts","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/sage-pi-adapter.js
CHANGED
|
@@ -1,41 +1,140 @@
|
|
|
1
|
-
import { Type } from
|
|
2
|
-
import { spawn } from
|
|
3
|
-
import { randomUUID } from
|
|
4
|
-
const CODE_MODE_SEARCH_TOOLS = [
|
|
5
|
-
const CODE_MODE_EXECUTE_TOOLS = [
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
const CODE_MODE_SEARCH_TOOLS = ["sage_search", "sage_code_sage_search"];
|
|
5
|
+
const CODE_MODE_EXECUTE_TOOLS = ["sage_execute", "sage_code_sage_execute"];
|
|
6
6
|
const SEARCH_ACTION_ALIASES = {
|
|
7
7
|
skills: {
|
|
8
|
-
search_skills:
|
|
9
|
-
list_skills:
|
|
10
|
-
get_skill:
|
|
11
|
-
use_skill:
|
|
12
|
-
sync_skills:
|
|
8
|
+
search_skills: "search",
|
|
9
|
+
list_skills: "list",
|
|
10
|
+
get_skill: "get",
|
|
11
|
+
use_skill: "use",
|
|
12
|
+
sync_skills: "sync",
|
|
13
13
|
},
|
|
14
14
|
prompts: {
|
|
15
|
-
search_prompts:
|
|
16
|
-
list_prompts:
|
|
17
|
-
get_prompt:
|
|
15
|
+
search_prompts: "search",
|
|
16
|
+
list_prompts: "list",
|
|
17
|
+
get_prompt: "get",
|
|
18
18
|
},
|
|
19
19
|
external: {
|
|
20
|
-
list_external_servers:
|
|
21
|
-
search_external:
|
|
20
|
+
list_external_servers: "list_servers",
|
|
21
|
+
search_external: "search",
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
const EXECUTE_ACTION_ALIASES = {
|
|
25
25
|
skills: {
|
|
26
|
-
use_skill:
|
|
27
|
-
sync_skills:
|
|
26
|
+
use_skill: "use",
|
|
27
|
+
sync_skills: "sync",
|
|
28
28
|
},
|
|
29
29
|
external: {
|
|
30
|
-
execute_external:
|
|
31
|
-
call_external:
|
|
30
|
+
execute_external: "execute",
|
|
31
|
+
call_external: "call",
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
+
const EXTERNAL_SEARCH_ACTIONS = new Set(["list_servers", "search"]);
|
|
35
|
+
const EXTERNAL_EXECUTE_ACTIONS = new Set(["execute", "call"]);
|
|
36
|
+
const EXTERNAL_TOOL_ALIASES = {
|
|
37
|
+
web_search: "duckduckgo_web_search",
|
|
38
|
+
};
|
|
39
|
+
const DOMAINLESS_ACTION_DOMAIN_HINTS = {
|
|
40
|
+
search: "prompts",
|
|
41
|
+
list: "prompts",
|
|
42
|
+
get: "prompts",
|
|
43
|
+
search_prompts: "prompts",
|
|
44
|
+
list_prompts: "prompts",
|
|
45
|
+
get_prompt: "prompts",
|
|
46
|
+
use: "skills",
|
|
47
|
+
sync: "skills",
|
|
48
|
+
search_skills: "skills",
|
|
49
|
+
list_skills: "skills",
|
|
50
|
+
get_skill: "skills",
|
|
51
|
+
use_skill: "skills",
|
|
52
|
+
sync_skills: "skills",
|
|
53
|
+
recommend: "builder",
|
|
54
|
+
suggest: "meta",
|
|
55
|
+
status: "hub",
|
|
56
|
+
list_servers: "hub",
|
|
57
|
+
session_list: "hub",
|
|
58
|
+
start: "hub",
|
|
59
|
+
stop: "hub",
|
|
60
|
+
};
|
|
61
|
+
const DOMAINLESS_ACTIONS = new Set(Object.keys(DOMAINLESS_ACTION_DOMAIN_HINTS));
|
|
62
|
+
function mapExternalToolAlias(toolName) {
|
|
63
|
+
const normalized = toolName.trim().toLowerCase();
|
|
64
|
+
return EXTERNAL_TOOL_ALIASES[normalized] ?? normalized;
|
|
65
|
+
}
|
|
66
|
+
function normalizeParams(input) {
|
|
67
|
+
return input && typeof input === "object" && !Array.isArray(input)
|
|
68
|
+
? input
|
|
69
|
+
: {};
|
|
70
|
+
}
|
|
71
|
+
function looksLikeExternalToolAction(action) {
|
|
72
|
+
if (!action)
|
|
73
|
+
return false;
|
|
74
|
+
if (EXTERNAL_TOOL_ALIASES[action])
|
|
75
|
+
return true;
|
|
76
|
+
if (DOMAINLESS_ACTIONS.has(action))
|
|
77
|
+
return false;
|
|
78
|
+
return action.includes("_");
|
|
79
|
+
}
|
|
80
|
+
function normalizeCodeModeRequest(mode, args) {
|
|
81
|
+
const rawDomain = String(args.domain ?? "")
|
|
82
|
+
.trim()
|
|
83
|
+
.toLowerCase();
|
|
84
|
+
const rawAction = String(args.action ?? "")
|
|
85
|
+
.trim()
|
|
86
|
+
.toLowerCase();
|
|
87
|
+
const payload = normalizeParams(args.params);
|
|
88
|
+
if (!rawAction) {
|
|
89
|
+
throw new Error("Missing required parameter 'action'");
|
|
90
|
+
}
|
|
91
|
+
if (!rawDomain && looksLikeExternalToolAction(rawAction)) {
|
|
92
|
+
return {
|
|
93
|
+
domain: "external",
|
|
94
|
+
action: mode === "search" ? "search" : "call",
|
|
95
|
+
params: {
|
|
96
|
+
tool_name: mapExternalToolAlias(rawAction),
|
|
97
|
+
tool_params: payload,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const domain = rawDomain || DOMAINLESS_ACTION_DOMAIN_HINTS[rawAction] || "";
|
|
102
|
+
if (!domain) {
|
|
103
|
+
throw new Error("Missing required parameter 'domain'. Include a Sage domain like prompts, skills, or external.");
|
|
104
|
+
}
|
|
105
|
+
const action = normalizeAction(mode === "search" ? SEARCH_ACTION_ALIASES : EXECUTE_ACTION_ALIASES, domain, rawAction);
|
|
106
|
+
if (domain === "external") {
|
|
107
|
+
const allowedActions = mode === "search" ? EXTERNAL_SEARCH_ACTIONS : EXTERNAL_EXECUTE_ACTIONS;
|
|
108
|
+
if (!allowedActions.has(action)) {
|
|
109
|
+
return {
|
|
110
|
+
domain,
|
|
111
|
+
action: mode === "search" ? "search" : "call",
|
|
112
|
+
params: {
|
|
113
|
+
tool_name: mapExternalToolAlias(action),
|
|
114
|
+
tool_params: payload,
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (action !== "list_servers" &&
|
|
119
|
+
typeof payload.tool_name === "string" &&
|
|
120
|
+
payload.tool_name.trim()) {
|
|
121
|
+
return {
|
|
122
|
+
domain,
|
|
123
|
+
action,
|
|
124
|
+
params: {
|
|
125
|
+
...payload,
|
|
126
|
+
tool_name: mapExternalToolAlias(payload.tool_name),
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return { domain, action, params: payload };
|
|
132
|
+
}
|
|
34
133
|
function normalizeAction(aliasesByDomain, domain, action) {
|
|
35
134
|
const normalizedDomain = domain.trim().toLowerCase();
|
|
36
135
|
const normalizedAction = action.trim().toLowerCase();
|
|
37
136
|
if (!normalizedAction)
|
|
38
|
-
return
|
|
137
|
+
return "";
|
|
39
138
|
const domainAliases = aliasesByDomain[normalizedDomain];
|
|
40
139
|
if (!domainAliases)
|
|
41
140
|
return normalizedAction;
|
|
@@ -45,15 +144,15 @@ async function defaultSageCommandRunner(request) {
|
|
|
45
144
|
return new Promise((resolve, reject) => {
|
|
46
145
|
const proc = spawn(request.command, request.args, {
|
|
47
146
|
env: { ...process.env, ...request.env },
|
|
48
|
-
stdio: [
|
|
147
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
49
148
|
});
|
|
50
|
-
let stdout =
|
|
51
|
-
let stderr =
|
|
149
|
+
let stdout = "";
|
|
150
|
+
let stderr = "";
|
|
52
151
|
let timedOut = false;
|
|
53
152
|
let settled = false;
|
|
54
153
|
const timeout = setTimeout(() => {
|
|
55
154
|
timedOut = true;
|
|
56
|
-
proc.kill(
|
|
155
|
+
proc.kill("SIGTERM");
|
|
57
156
|
}, request.timeoutMs);
|
|
58
157
|
const finish = (result) => {
|
|
59
158
|
if (settled)
|
|
@@ -62,22 +161,22 @@ async function defaultSageCommandRunner(request) {
|
|
|
62
161
|
clearTimeout(timeout);
|
|
63
162
|
resolve(result);
|
|
64
163
|
};
|
|
65
|
-
proc.on(
|
|
164
|
+
proc.on("error", (err) => {
|
|
66
165
|
if (settled)
|
|
67
166
|
return;
|
|
68
167
|
settled = true;
|
|
69
168
|
clearTimeout(timeout);
|
|
70
169
|
reject(err);
|
|
71
170
|
});
|
|
72
|
-
proc.stdout.setEncoding(
|
|
73
|
-
proc.stderr.setEncoding(
|
|
74
|
-
proc.stdout.on(
|
|
171
|
+
proc.stdout.setEncoding("utf8");
|
|
172
|
+
proc.stderr.setEncoding("utf8");
|
|
173
|
+
proc.stdout.on("data", (chunk) => {
|
|
75
174
|
stdout += chunk;
|
|
76
175
|
});
|
|
77
|
-
proc.stderr.on(
|
|
176
|
+
proc.stderr.on("data", (chunk) => {
|
|
78
177
|
stderr += chunk;
|
|
79
178
|
});
|
|
80
|
-
proc.on(
|
|
179
|
+
proc.on("close", (code) => {
|
|
81
180
|
finish({
|
|
82
181
|
exitCode: code ?? -1,
|
|
83
182
|
stdout,
|
|
@@ -92,55 +191,55 @@ async function defaultSageCommandRunner(request) {
|
|
|
92
191
|
});
|
|
93
192
|
}
|
|
94
193
|
function extractText(input) {
|
|
95
|
-
if (typeof input ===
|
|
194
|
+
if (typeof input === "string")
|
|
96
195
|
return input;
|
|
97
196
|
if (Array.isArray(input)) {
|
|
98
197
|
return input
|
|
99
198
|
.map((block) => {
|
|
100
|
-
if (!block || typeof block !==
|
|
101
|
-
return
|
|
199
|
+
if (!block || typeof block !== "object")
|
|
200
|
+
return "";
|
|
102
201
|
const text = block.text;
|
|
103
|
-
return typeof text ===
|
|
202
|
+
return typeof text === "string" ? text : "";
|
|
104
203
|
})
|
|
105
204
|
.filter(Boolean)
|
|
106
|
-
.join(
|
|
205
|
+
.join("\n")
|
|
107
206
|
.trim();
|
|
108
207
|
}
|
|
109
|
-
if (!input || typeof input !==
|
|
110
|
-
return
|
|
208
|
+
if (!input || typeof input !== "object")
|
|
209
|
+
return "";
|
|
111
210
|
const obj = input;
|
|
112
211
|
const direct = [obj.text, obj.content, obj.prompt, obj.message, obj.input];
|
|
113
212
|
for (const candidate of direct) {
|
|
114
|
-
if (typeof candidate ===
|
|
213
|
+
if (typeof candidate === "string" && candidate.trim())
|
|
115
214
|
return candidate.trim();
|
|
116
215
|
}
|
|
117
216
|
if (Array.isArray(obj.content)) {
|
|
118
217
|
const fromBlocks = obj.content
|
|
119
218
|
.map((block) => {
|
|
120
|
-
if (!block || typeof block !==
|
|
121
|
-
return
|
|
219
|
+
if (!block || typeof block !== "object")
|
|
220
|
+
return "";
|
|
122
221
|
const blockText = block.text;
|
|
123
|
-
return typeof blockText ===
|
|
222
|
+
return typeof blockText === "string" ? blockText : "";
|
|
124
223
|
})
|
|
125
224
|
.filter(Boolean)
|
|
126
|
-
.join(
|
|
225
|
+
.join("\n")
|
|
127
226
|
.trim();
|
|
128
227
|
if (fromBlocks)
|
|
129
228
|
return fromBlocks;
|
|
130
229
|
}
|
|
131
|
-
return
|
|
230
|
+
return "";
|
|
132
231
|
}
|
|
133
232
|
function extractUsage(input) {
|
|
134
|
-
if (!input || typeof input !==
|
|
233
|
+
if (!input || typeof input !== "object")
|
|
135
234
|
return {};
|
|
136
235
|
const obj = input;
|
|
137
|
-
const usage = (obj.usage && typeof obj.usage ===
|
|
236
|
+
const usage = (obj.usage && typeof obj.usage === "object"
|
|
138
237
|
? obj.usage
|
|
139
238
|
: undefined) ?? obj;
|
|
140
239
|
const toStringOrUndefined = (value) => {
|
|
141
|
-
if (typeof value ===
|
|
240
|
+
if (typeof value === "string" && value.trim())
|
|
142
241
|
return value.trim();
|
|
143
|
-
if (typeof value ===
|
|
242
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
144
243
|
return String(value);
|
|
145
244
|
return undefined;
|
|
146
245
|
};
|
|
@@ -154,36 +253,36 @@ function extractUsage(input) {
|
|
|
154
253
|
};
|
|
155
254
|
}
|
|
156
255
|
function parseMessageEndEvent(event) {
|
|
157
|
-
if (!event || typeof event !==
|
|
256
|
+
if (!event || typeof event !== "object")
|
|
158
257
|
return null;
|
|
159
258
|
const root = event;
|
|
160
|
-
if (root.type !==
|
|
259
|
+
if (root.type !== "message_end")
|
|
161
260
|
return null;
|
|
162
261
|
const message = root.message;
|
|
163
|
-
if (!message || typeof message !==
|
|
262
|
+
if (!message || typeof message !== "object")
|
|
164
263
|
return null;
|
|
165
264
|
const msg = message;
|
|
166
|
-
const role = typeof msg.role ===
|
|
265
|
+
const role = typeof msg.role === "string" ? msg.role : "";
|
|
167
266
|
if (!role)
|
|
168
267
|
return null;
|
|
169
268
|
const content = extractText(msg.content ?? msg);
|
|
170
269
|
return { role, content, usage: msg.usage };
|
|
171
270
|
}
|
|
172
271
|
function extractJsonFromMcpResult(result) {
|
|
173
|
-
if (!result || typeof result !==
|
|
272
|
+
if (!result || typeof result !== "object")
|
|
174
273
|
return undefined;
|
|
175
274
|
const obj = result;
|
|
176
275
|
if (!Array.isArray(obj.content) || obj.content.length === 0)
|
|
177
276
|
return undefined;
|
|
178
277
|
const text = obj.content
|
|
179
278
|
.map((entry) => {
|
|
180
|
-
if (!entry || typeof entry !==
|
|
181
|
-
return
|
|
279
|
+
if (!entry || typeof entry !== "object")
|
|
280
|
+
return "";
|
|
182
281
|
const raw = entry.text;
|
|
183
|
-
return typeof raw ===
|
|
282
|
+
return typeof raw === "string" ? raw : "";
|
|
184
283
|
})
|
|
185
284
|
.filter(Boolean)
|
|
186
|
-
.join(
|
|
285
|
+
.join("\n");
|
|
187
286
|
if (!text)
|
|
188
287
|
return undefined;
|
|
189
288
|
try {
|
|
@@ -195,21 +294,21 @@ function extractJsonFromMcpResult(result) {
|
|
|
195
294
|
}
|
|
196
295
|
function toToolResultText(result) {
|
|
197
296
|
return {
|
|
198
|
-
content: [{ type:
|
|
297
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
199
298
|
details: result,
|
|
200
299
|
};
|
|
201
300
|
}
|
|
202
301
|
function appendText(result, text) {
|
|
203
302
|
const existing = Array.isArray(result.content) ? [...result.content] : [];
|
|
204
|
-
existing.push({ type:
|
|
303
|
+
existing.push({ type: "text", text });
|
|
205
304
|
return { ...result, content: existing };
|
|
206
305
|
}
|
|
207
306
|
function looksUnknownToolError(error) {
|
|
208
307
|
const msg = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();
|
|
209
|
-
return (msg.includes(
|
|
210
|
-
msg.includes(
|
|
211
|
-
msg.includes(
|
|
212
|
-
msg.includes(
|
|
308
|
+
return (msg.includes("unknown tool") ||
|
|
309
|
+
msg.includes("not found") ||
|
|
310
|
+
msg.includes("no such tool") ||
|
|
311
|
+
msg.includes("does not exist"));
|
|
213
312
|
}
|
|
214
313
|
function parseSecurityDecision(stdout) {
|
|
215
314
|
const lines = stdout
|
|
@@ -220,18 +319,18 @@ function parseSecurityDecision(stdout) {
|
|
|
220
319
|
for (const line of lines) {
|
|
221
320
|
try {
|
|
222
321
|
const parsed = JSON.parse(line);
|
|
223
|
-
const rawDecision = typeof parsed.decision ===
|
|
322
|
+
const rawDecision = typeof parsed.decision === "string" ? parsed.decision : "";
|
|
224
323
|
if (!rawDecision)
|
|
225
324
|
continue;
|
|
226
|
-
const reason = typeof parsed.reason ===
|
|
227
|
-
if (rawDecision ===
|
|
228
|
-
const isWarn = typeof reason ===
|
|
229
|
-
return { decision: isWarn ?
|
|
325
|
+
const reason = typeof parsed.reason === "string" ? parsed.reason : undefined;
|
|
326
|
+
if (rawDecision === "block") {
|
|
327
|
+
const isWarn = typeof reason === "string" && /security warning/i.test(reason);
|
|
328
|
+
return { decision: isWarn ? "warn" : "block", reason };
|
|
230
329
|
}
|
|
231
|
-
if (rawDecision ===
|
|
232
|
-
return { decision:
|
|
233
|
-
if (rawDecision ===
|
|
234
|
-
return { decision:
|
|
330
|
+
if (rawDecision === "warn")
|
|
331
|
+
return { decision: "warn", reason };
|
|
332
|
+
if (rawDecision === "allow")
|
|
333
|
+
return { decision: "allow", reason };
|
|
235
334
|
}
|
|
236
335
|
catch {
|
|
237
336
|
continue;
|
|
@@ -278,26 +377,26 @@ export class SageMcpBridge {
|
|
|
278
377
|
async stop() {
|
|
279
378
|
this.stopped = true;
|
|
280
379
|
this.ready = false;
|
|
281
|
-
this.rejectAllPending(
|
|
380
|
+
this.rejectAllPending("MCP bridge stopped");
|
|
282
381
|
if (this.proc) {
|
|
283
|
-
this.proc.kill(
|
|
382
|
+
this.proc.kill("SIGTERM");
|
|
284
383
|
this.proc = null;
|
|
285
384
|
}
|
|
286
385
|
}
|
|
287
386
|
async listTools() {
|
|
288
|
-
const result = (await this.request(
|
|
387
|
+
const result = (await this.request("tools/list", {}));
|
|
289
388
|
return result.tools ?? [];
|
|
290
389
|
}
|
|
291
390
|
async callTool(name, args) {
|
|
292
|
-
const result = (await this.request(
|
|
391
|
+
const result = (await this.request("tools/call", {
|
|
293
392
|
name,
|
|
294
393
|
arguments: args,
|
|
295
394
|
}));
|
|
296
395
|
if (result.isError) {
|
|
297
396
|
const errorText = result.content
|
|
298
|
-
?.map((entry) => entry.text ??
|
|
397
|
+
?.map((entry) => entry.text ?? "")
|
|
299
398
|
.filter(Boolean)
|
|
300
|
-
.join(
|
|
399
|
+
.join("\n") || "MCP tool error";
|
|
301
400
|
throw new Error(errorText);
|
|
302
401
|
}
|
|
303
402
|
return result;
|
|
@@ -322,21 +421,21 @@ export class SageMcpBridge {
|
|
|
322
421
|
}
|
|
323
422
|
if (lastUnknownError)
|
|
324
423
|
throw lastUnknownError;
|
|
325
|
-
throw new Error(
|
|
424
|
+
throw new Error("Sage code-mode tools are unavailable");
|
|
326
425
|
}
|
|
327
426
|
async initialize() {
|
|
328
|
-
await this.request(
|
|
329
|
-
protocolVersion:
|
|
427
|
+
await this.request("initialize", {
|
|
428
|
+
protocolVersion: "2024-11-05",
|
|
330
429
|
capabilities: {},
|
|
331
|
-
clientInfo: { name:
|
|
430
|
+
clientInfo: { name: "sage-pi-adapter", version: "0.2.0" },
|
|
332
431
|
});
|
|
333
|
-
this.notify(
|
|
432
|
+
this.notify("notifications/initialized", {});
|
|
334
433
|
this.ready = true;
|
|
335
434
|
}
|
|
336
435
|
async spawn() {
|
|
337
436
|
await new Promise((resolve, reject) => {
|
|
338
437
|
const proc = spawn(this.command, this.args, {
|
|
339
|
-
stdio: [
|
|
438
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
340
439
|
env: { ...process.env, ...this.env },
|
|
341
440
|
});
|
|
342
441
|
let settled = false;
|
|
@@ -346,11 +445,11 @@ export class SageMcpBridge {
|
|
|
346
445
|
settled = true;
|
|
347
446
|
reject(err);
|
|
348
447
|
};
|
|
349
|
-
proc.on(
|
|
448
|
+
proc.on("error", (err) => {
|
|
350
449
|
if (!this.stopped)
|
|
351
450
|
rejectOnce(err);
|
|
352
451
|
});
|
|
353
|
-
proc.on(
|
|
452
|
+
proc.on("exit", (code) => {
|
|
354
453
|
if (this.stopped)
|
|
355
454
|
return;
|
|
356
455
|
if (!this.ready) {
|
|
@@ -360,12 +459,12 @@ export class SageMcpBridge {
|
|
|
360
459
|
this.ready = false;
|
|
361
460
|
this.rejectAllPending(`MCP process exited (code ${code ?? -1})`);
|
|
362
461
|
});
|
|
363
|
-
proc.stdout.setEncoding(
|
|
364
|
-
let buffer =
|
|
365
|
-
proc.stdout.on(
|
|
462
|
+
proc.stdout.setEncoding("utf8");
|
|
463
|
+
let buffer = "";
|
|
464
|
+
proc.stdout.on("data", (chunk) => {
|
|
366
465
|
buffer += chunk;
|
|
367
|
-
const lines = buffer.split(
|
|
368
|
-
buffer = lines.pop() ??
|
|
466
|
+
const lines = buffer.split("\n");
|
|
467
|
+
buffer = lines.pop() ?? "";
|
|
369
468
|
for (const line of lines) {
|
|
370
469
|
if (line.trim())
|
|
371
470
|
this.handleLine(line);
|
|
@@ -379,7 +478,7 @@ export class SageMcpBridge {
|
|
|
379
478
|
request(method, params) {
|
|
380
479
|
return new Promise((resolve, reject) => {
|
|
381
480
|
if (!this.proc?.stdin?.writable) {
|
|
382
|
-
reject(new Error(
|
|
481
|
+
reject(new Error("MCP process not running"));
|
|
383
482
|
return;
|
|
384
483
|
}
|
|
385
484
|
const id = randomUUID();
|
|
@@ -388,15 +487,15 @@ export class SageMcpBridge {
|
|
|
388
487
|
reject(new Error(`MCP request timed out: ${method}`));
|
|
389
488
|
}, this.requestTimeoutMs);
|
|
390
489
|
this.pending.set(id, { resolve, reject, timeout });
|
|
391
|
-
const req = { jsonrpc:
|
|
392
|
-
this.proc.stdin.write(JSON.stringify(req) +
|
|
490
|
+
const req = { jsonrpc: "2.0", id, method, params };
|
|
491
|
+
this.proc.stdin.write(JSON.stringify(req) + "\n");
|
|
393
492
|
});
|
|
394
493
|
}
|
|
395
494
|
notify(method, params) {
|
|
396
495
|
if (!this.proc?.stdin?.writable)
|
|
397
496
|
return;
|
|
398
|
-
const msg = { jsonrpc:
|
|
399
|
-
this.proc.stdin.write(JSON.stringify(msg) +
|
|
497
|
+
const msg = { jsonrpc: "2.0", method, params };
|
|
498
|
+
this.proc.stdin.write(JSON.stringify(msg) + "\n");
|
|
400
499
|
}
|
|
401
500
|
handleLine(line) {
|
|
402
501
|
let msg;
|
|
@@ -436,34 +535,23 @@ export class SageHookRuntime {
|
|
|
436
535
|
this.commandRunner = config.commandRunner ?? defaultSageCommandRunner;
|
|
437
536
|
}
|
|
438
537
|
async getSessionContext(sessionId) {
|
|
439
|
-
const result = await this.run([
|
|
440
|
-
return result?.stdout.trim() ??
|
|
538
|
+
const result = await this.run(["skill", "context", "--format", "opencode"], { SAGE_SESSION_ID: sessionId ?? "" }, undefined, true);
|
|
539
|
+
return result?.stdout.trim() ?? "";
|
|
441
540
|
}
|
|
442
541
|
async suggestSkill(prompt, sessionId) {
|
|
443
542
|
const trimmed = prompt.trim();
|
|
444
543
|
if (!trimmed)
|
|
445
|
-
return
|
|
446
|
-
const args = [
|
|
447
|
-
'suggest',
|
|
448
|
-
'hook',
|
|
449
|
-
'skill',
|
|
450
|
-
'--limit',
|
|
451
|
-
String(this.config.suggestLimit ?? 3),
|
|
452
|
-
];
|
|
544
|
+
return "";
|
|
545
|
+
const args = ["suggest", "hook", "skill", "--limit", String(this.config.suggestLimit ?? 3)];
|
|
453
546
|
if (this.config.enableProvision !== false)
|
|
454
|
-
args.push(
|
|
455
|
-
if (this.config.source) {
|
|
456
|
-
args.push('--source', this.config.source);
|
|
457
|
-
}
|
|
458
|
-
if (sessionId) {
|
|
459
|
-
args.push('--session', sessionId);
|
|
460
|
-
}
|
|
547
|
+
args.push("--provision");
|
|
461
548
|
const result = await this.run(args, {
|
|
462
549
|
PROMPT: trimmed,
|
|
463
550
|
SAGE_PROMPT: trimmed,
|
|
464
|
-
|
|
551
|
+
SAGE_SOURCE: this.config.source ?? "pi",
|
|
552
|
+
SAGE_SESSION_ID: sessionId ?? "",
|
|
465
553
|
}, JSON.stringify({ prompt: trimmed }), true);
|
|
466
|
-
return result?.stdout.trim() ??
|
|
554
|
+
return result?.stdout.trim() ?? "";
|
|
467
555
|
}
|
|
468
556
|
async capturePrompt(prompt, sessionId) {
|
|
469
557
|
if (this.config.enableRlmFeedback === false)
|
|
@@ -471,11 +559,11 @@ export class SageHookRuntime {
|
|
|
471
559
|
const trimmed = prompt.trim();
|
|
472
560
|
if (!trimmed)
|
|
473
561
|
return;
|
|
474
|
-
await this.run([
|
|
562
|
+
await this.run(["capture", "hook", "prompt"], {
|
|
475
563
|
PROMPT: trimmed,
|
|
476
564
|
SAGE_PROMPT: trimmed,
|
|
477
|
-
SAGE_SOURCE: this.config.source ??
|
|
478
|
-
SAGE_SESSION_ID: sessionId ??
|
|
565
|
+
SAGE_SOURCE: this.config.source ?? "pi",
|
|
566
|
+
SAGE_SESSION_ID: sessionId ?? "",
|
|
479
567
|
}, JSON.stringify({ prompt: trimmed }), true);
|
|
480
568
|
}
|
|
481
569
|
async captureResponse(response, usage, sessionId) {
|
|
@@ -484,26 +572,26 @@ export class SageHookRuntime {
|
|
|
484
572
|
const trimmed = response.trim();
|
|
485
573
|
if (!trimmed)
|
|
486
574
|
return;
|
|
487
|
-
await this.run([
|
|
575
|
+
await this.run(["capture", "hook", "response"], {
|
|
488
576
|
SAGE_RESPONSE: trimmed,
|
|
489
577
|
LAST_RESPONSE: trimmed,
|
|
490
|
-
SAGE_SOURCE: this.config.source ??
|
|
491
|
-
SAGE_SESSION_ID: sessionId ??
|
|
492
|
-
TOKENS_INPUT: usage.input ??
|
|
493
|
-
TOKENS_OUTPUT: usage.output ??
|
|
578
|
+
SAGE_SOURCE: this.config.source ?? "pi",
|
|
579
|
+
SAGE_SESSION_ID: sessionId ?? "",
|
|
580
|
+
TOKENS_INPUT: usage.input ?? "",
|
|
581
|
+
TOKENS_OUTPUT: usage.output ?? "",
|
|
494
582
|
}, JSON.stringify({ response: trimmed }), true);
|
|
495
583
|
}
|
|
496
584
|
async scanPreTool(toolName, toolInput, sessionId) {
|
|
497
585
|
if (this.config.enableSecurityHooks === false)
|
|
498
586
|
return null;
|
|
499
587
|
const payload = {
|
|
500
|
-
hook_event_name:
|
|
588
|
+
hook_event_name: "PreToolUse",
|
|
501
589
|
tool_name: toolName,
|
|
502
590
|
tool_input: toolInput,
|
|
503
591
|
};
|
|
504
|
-
const result = await this.run([
|
|
505
|
-
SAGE_SOURCE: this.config.source ??
|
|
506
|
-
SAGE_SESSION_ID: sessionId ??
|
|
592
|
+
const result = await this.run(["security", "scan-hook"], {
|
|
593
|
+
SAGE_SOURCE: this.config.source ?? "pi",
|
|
594
|
+
SAGE_SESSION_ID: sessionId ?? "",
|
|
507
595
|
}, JSON.stringify(payload), true);
|
|
508
596
|
return result ? parseSecurityDecision(result.stdout) : null;
|
|
509
597
|
}
|
|
@@ -511,22 +599,22 @@ export class SageHookRuntime {
|
|
|
511
599
|
if (this.config.enableSecurityHooks === false)
|
|
512
600
|
return null;
|
|
513
601
|
const payload = {
|
|
514
|
-
hook_event_name:
|
|
602
|
+
hook_event_name: "PostToolUse",
|
|
515
603
|
tool_name: toolName,
|
|
516
604
|
tool_input: toolInput,
|
|
517
605
|
tool_response: toolResult,
|
|
518
606
|
};
|
|
519
|
-
const result = await this.run([
|
|
520
|
-
SAGE_SOURCE: this.config.source ??
|
|
521
|
-
SAGE_SESSION_ID: sessionId ??
|
|
607
|
+
const result = await this.run(["security", "scan-hook"], {
|
|
608
|
+
SAGE_SOURCE: this.config.source ?? "pi",
|
|
609
|
+
SAGE_SESSION_ID: sessionId ?? "",
|
|
522
610
|
}, JSON.stringify(payload), true);
|
|
523
611
|
return result ? parseSecurityDecision(result.stdout) : null;
|
|
524
612
|
}
|
|
525
613
|
async run(args, env, stdin, ignoreFailures = false) {
|
|
526
614
|
try {
|
|
527
615
|
const commandEnv = {
|
|
528
|
-
HOME: process.env.HOME ??
|
|
529
|
-
PATH: process.env.PATH ??
|
|
616
|
+
HOME: process.env.HOME ?? "",
|
|
617
|
+
PATH: process.env.PATH ?? "",
|
|
530
618
|
...(this.config.env ?? {}),
|
|
531
619
|
...env,
|
|
532
620
|
};
|
|
@@ -542,7 +630,7 @@ export class SageHookRuntime {
|
|
|
542
630
|
});
|
|
543
631
|
if (!ignoreFailures && (result.timedOut || result.exitCode !== 0)) {
|
|
544
632
|
const reason = result.timedOut
|
|
545
|
-
? `timed out: ${this.config.sageBin} ${args.join(
|
|
633
|
+
? `timed out: ${this.config.sageBin} ${args.join(" ")}`
|
|
546
634
|
: `failed (${result.exitCode}): ${result.stderr || result.stdout}`;
|
|
547
635
|
throw new Error(reason);
|
|
548
636
|
}
|
|
@@ -556,43 +644,43 @@ export class SageHookRuntime {
|
|
|
556
644
|
}
|
|
557
645
|
}
|
|
558
646
|
const SageDomainType = Type.Union([
|
|
559
|
-
Type.Literal(
|
|
560
|
-
Type.Literal(
|
|
561
|
-
Type.Literal(
|
|
562
|
-
Type.Literal(
|
|
563
|
-
Type.Literal(
|
|
564
|
-
Type.Literal(
|
|
565
|
-
Type.Literal(
|
|
566
|
-
Type.Literal(
|
|
567
|
-
Type.Literal(
|
|
568
|
-
Type.Literal(
|
|
569
|
-
Type.Literal(
|
|
570
|
-
Type.Literal(
|
|
571
|
-
Type.Literal(
|
|
572
|
-
|
|
647
|
+
Type.Literal("prompts"),
|
|
648
|
+
Type.Literal("skills"),
|
|
649
|
+
Type.Literal("builder"),
|
|
650
|
+
Type.Literal("governance"),
|
|
651
|
+
Type.Literal("chat"),
|
|
652
|
+
Type.Literal("social"),
|
|
653
|
+
Type.Literal("rlm"),
|
|
654
|
+
Type.Literal("library_sync"),
|
|
655
|
+
Type.Literal("security"),
|
|
656
|
+
Type.Literal("meta"),
|
|
657
|
+
Type.Literal("hub"),
|
|
658
|
+
Type.Literal("library"),
|
|
659
|
+
Type.Literal("help"),
|
|
660
|
+
Type.Literal("external"),
|
|
661
|
+
], { description: "Sage domain namespace" });
|
|
573
662
|
export function createSageSearchTool(mcpBridge) {
|
|
574
663
|
return {
|
|
575
|
-
name:
|
|
576
|
-
label:
|
|
577
|
-
description:
|
|
664
|
+
name: "sage_search",
|
|
665
|
+
label: "Sage: Search",
|
|
666
|
+
description: "Sage code-mode search/discovery (domain/action routing)",
|
|
578
667
|
parameters: Type.Object({
|
|
579
|
-
domain: SageDomainType,
|
|
668
|
+
domain: Type.Optional(SageDomainType),
|
|
580
669
|
action: Type.String(),
|
|
581
670
|
params: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
|
|
582
671
|
}),
|
|
583
672
|
execute: async (_toolCallId, params) => {
|
|
584
673
|
try {
|
|
585
|
-
const
|
|
586
|
-
const
|
|
587
|
-
const
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
if (domain === 'external' && !['list_servers', 'search'].includes(action)) {
|
|
674
|
+
const normalized = normalizeCodeModeRequest("search", params);
|
|
675
|
+
const domain = normalized.domain;
|
|
676
|
+
const action = normalized.action;
|
|
677
|
+
const payload = normalized.params;
|
|
678
|
+
if (domain === "external" && !["list_servers", "search"].includes(action)) {
|
|
591
679
|
return {
|
|
592
680
|
content: [
|
|
593
681
|
{
|
|
594
|
-
type:
|
|
595
|
-
text:
|
|
682
|
+
type: "text",
|
|
683
|
+
text: "For external domain, sage_search only supports actions: list_servers, search",
|
|
596
684
|
},
|
|
597
685
|
],
|
|
598
686
|
isError: true,
|
|
@@ -609,7 +697,7 @@ export function createSageSearchTool(mcpBridge) {
|
|
|
609
697
|
return {
|
|
610
698
|
content: [
|
|
611
699
|
{
|
|
612
|
-
type:
|
|
700
|
+
type: "text",
|
|
613
701
|
text: `sage_search failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
614
702
|
},
|
|
615
703
|
],
|
|
@@ -621,27 +709,26 @@ export function createSageSearchTool(mcpBridge) {
|
|
|
621
709
|
}
|
|
622
710
|
export function createSageExecuteTool(mcpBridge) {
|
|
623
711
|
return {
|
|
624
|
-
name:
|
|
625
|
-
label:
|
|
626
|
-
description:
|
|
712
|
+
name: "sage_execute",
|
|
713
|
+
label: "Sage: Execute",
|
|
714
|
+
description: "Sage code-mode execute/mutations (domain/action routing)",
|
|
627
715
|
parameters: Type.Object({
|
|
628
|
-
domain: SageDomainType,
|
|
716
|
+
domain: Type.Optional(SageDomainType),
|
|
629
717
|
action: Type.String(),
|
|
630
718
|
params: Type.Optional(Type.Record(Type.String(), Type.Unknown())),
|
|
631
719
|
}),
|
|
632
720
|
execute: async (_toolCallId, params) => {
|
|
633
721
|
try {
|
|
634
|
-
const
|
|
635
|
-
const
|
|
636
|
-
const
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
if (domain === 'external' && !['execute', 'call'].includes(action)) {
|
|
722
|
+
const normalized = normalizeCodeModeRequest("execute", params);
|
|
723
|
+
const domain = normalized.domain;
|
|
724
|
+
const action = normalized.action;
|
|
725
|
+
const payload = normalized.params;
|
|
726
|
+
if (domain === "external" && !["execute", "call"].includes(action)) {
|
|
640
727
|
return {
|
|
641
728
|
content: [
|
|
642
729
|
{
|
|
643
|
-
type:
|
|
644
|
-
text:
|
|
730
|
+
type: "text",
|
|
731
|
+
text: "For external domain, sage_execute only supports actions: execute, call",
|
|
645
732
|
},
|
|
646
733
|
],
|
|
647
734
|
isError: true,
|
|
@@ -658,7 +745,7 @@ export function createSageExecuteTool(mcpBridge) {
|
|
|
658
745
|
return {
|
|
659
746
|
content: [
|
|
660
747
|
{
|
|
661
|
-
type:
|
|
748
|
+
type: "text",
|
|
662
749
|
text: `sage_execute failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
663
750
|
},
|
|
664
751
|
],
|
|
@@ -670,26 +757,26 @@ export function createSageExecuteTool(mcpBridge) {
|
|
|
670
757
|
}
|
|
671
758
|
export function createSageStatusTool(mcpBridge) {
|
|
672
759
|
return {
|
|
673
|
-
name:
|
|
674
|
-
label:
|
|
675
|
-
description:
|
|
760
|
+
name: "sage_status",
|
|
761
|
+
label: "Sage: Status",
|
|
762
|
+
description: "Check Sage adapter health and MCP bridge status",
|
|
676
763
|
parameters: Type.Object({}),
|
|
677
764
|
execute: async () => {
|
|
678
765
|
const bridgeConnected = mcpBridge.isReady();
|
|
679
766
|
if (bridgeConnected) {
|
|
680
767
|
try {
|
|
681
768
|
const context = await mcpBridge.callCodeModeSearch({
|
|
682
|
-
domain:
|
|
683
|
-
action:
|
|
769
|
+
domain: "meta",
|
|
770
|
+
action: "get_project_context",
|
|
684
771
|
params: {},
|
|
685
772
|
});
|
|
686
773
|
return {
|
|
687
774
|
content: [
|
|
688
775
|
{
|
|
689
|
-
type:
|
|
776
|
+
type: "text",
|
|
690
777
|
text: JSON.stringify({
|
|
691
778
|
bridgeConnected,
|
|
692
|
-
sageAdapterVersion:
|
|
779
|
+
sageAdapterVersion: "0.2.0",
|
|
693
780
|
context: extractJsonFromMcpResult(context) ?? context,
|
|
694
781
|
}, null, 2),
|
|
695
782
|
},
|
|
@@ -703,10 +790,10 @@ export function createSageStatusTool(mcpBridge) {
|
|
|
703
790
|
return {
|
|
704
791
|
content: [
|
|
705
792
|
{
|
|
706
|
-
type:
|
|
793
|
+
type: "text",
|
|
707
794
|
text: JSON.stringify({
|
|
708
795
|
bridgeConnected,
|
|
709
|
-
sageAdapterVersion:
|
|
796
|
+
sageAdapterVersion: "0.2.0",
|
|
710
797
|
}, null, 2),
|
|
711
798
|
},
|
|
712
799
|
],
|
|
@@ -723,12 +810,12 @@ export function wrapToolsWithSageSecurity(tools, options) {
|
|
|
723
810
|
execute: async (toolCallId, params, signal, onUpdate, ctx) => {
|
|
724
811
|
const sessionId = options.getSessionId?.();
|
|
725
812
|
const pre = await options.hookRuntime.scanPreTool(tool.name, params, sessionId);
|
|
726
|
-
if (pre?.decision ===
|
|
813
|
+
if (pre?.decision === "block") {
|
|
727
814
|
return {
|
|
728
815
|
content: [
|
|
729
816
|
{
|
|
730
|
-
type:
|
|
731
|
-
text: `Sage security blocked ${tool.name}: ${pre.reason ??
|
|
817
|
+
type: "text",
|
|
818
|
+
text: `Sage security blocked ${tool.name}: ${pre.reason ?? "high-risk payload detected"}`,
|
|
732
819
|
},
|
|
733
820
|
],
|
|
734
821
|
details: { blockedBySageSecurity: true, reason: pre.reason, tool: tool.name },
|
|
@@ -737,8 +824,8 @@ export function wrapToolsWithSageSecurity(tools, options) {
|
|
|
737
824
|
}
|
|
738
825
|
const result = await originalExecute(toolCallId, params, signal, onUpdate, ctx);
|
|
739
826
|
const post = await options.hookRuntime.scanPostTool(tool.name, params, result, sessionId);
|
|
740
|
-
if (post?.decision ===
|
|
741
|
-
return appendText(result, `Sage security ${post.decision}: ${post.reason ??
|
|
827
|
+
if (post?.decision === "warn" || post?.decision === "block") {
|
|
828
|
+
return appendText(result, `Sage security ${post.decision}: ${post.reason ?? "treat this output as untrusted content."}`);
|
|
742
829
|
}
|
|
743
830
|
return result;
|
|
744
831
|
},
|
|
@@ -749,7 +836,7 @@ async function injectHookMessage(session, customType, content, display = false)
|
|
|
749
836
|
const trimmed = content.trim();
|
|
750
837
|
if (!trimmed)
|
|
751
838
|
return;
|
|
752
|
-
if (typeof session.sendHookMessage ===
|
|
839
|
+
if (typeof session.sendHookMessage === "function") {
|
|
753
840
|
await session.sendHookMessage({
|
|
754
841
|
customType,
|
|
755
842
|
content: trimmed,
|
|
@@ -763,12 +850,12 @@ export function createSageExtensions(options) {
|
|
|
763
850
|
const { mcpBridge, debounceMs = 800 } = options;
|
|
764
851
|
const hookRuntime = options.hookRuntime ??
|
|
765
852
|
new SageHookRuntime({
|
|
766
|
-
sageBin: options.config.sageBin ??
|
|
853
|
+
sageBin: options.config.sageBin ?? "sage",
|
|
767
854
|
timeoutMs: options.config.timeoutMs ?? 20_000,
|
|
768
855
|
...options.config,
|
|
769
856
|
});
|
|
770
857
|
mcpBridge.start().catch((error) => {
|
|
771
|
-
console.error(
|
|
858
|
+
console.error("[sage-pi-adapter] failed to start MCP bridge:", error);
|
|
772
859
|
});
|
|
773
860
|
const sageTools = [
|
|
774
861
|
createSageSearchTool(mcpBridge),
|
|
@@ -779,9 +866,9 @@ export function createSageExtensions(options) {
|
|
|
779
866
|
hookRuntime,
|
|
780
867
|
getSessionId: options.getSessionId,
|
|
781
868
|
});
|
|
782
|
-
let currentSuggestions =
|
|
869
|
+
let currentSuggestions = "";
|
|
783
870
|
let lastInjectionTimestamp = 0;
|
|
784
|
-
let lastSuggestionPrompt =
|
|
871
|
+
let lastSuggestionPrompt = "";
|
|
785
872
|
return {
|
|
786
873
|
customTools,
|
|
787
874
|
sageInjectSuggestion: async (userPrompt, session, sessionId) => {
|
|
@@ -801,35 +888,35 @@ export function createSageExtensions(options) {
|
|
|
801
888
|
return;
|
|
802
889
|
currentSuggestions = suggestions;
|
|
803
890
|
if (session) {
|
|
804
|
-
await injectHookMessage(session,
|
|
891
|
+
await injectHookMessage(session, "sage-suggested-skills", suggestions, false);
|
|
805
892
|
}
|
|
806
893
|
}
|
|
807
894
|
catch (error) {
|
|
808
|
-
console.error(
|
|
895
|
+
console.error("[sage-pi-adapter] suggestion hook failed:", error);
|
|
809
896
|
}
|
|
810
897
|
},
|
|
811
898
|
sageClearSuggestions: () => {
|
|
812
|
-
currentSuggestions =
|
|
813
|
-
lastSuggestionPrompt =
|
|
899
|
+
currentSuggestions = "";
|
|
900
|
+
lastSuggestionPrompt = "";
|
|
814
901
|
},
|
|
815
902
|
sageGetSuggestions: () => currentSuggestions,
|
|
816
903
|
};
|
|
817
904
|
}
|
|
818
905
|
export async function createSageSessionConfig(config = {}) {
|
|
819
906
|
const normalized = {
|
|
820
|
-
sageBin: config.sageBin ??
|
|
907
|
+
sageBin: config.sageBin ?? "sage",
|
|
821
908
|
timeoutMs: config.timeoutMs ?? 20_000,
|
|
822
909
|
suggestLimit: config.suggestLimit ?? 3,
|
|
823
910
|
suggestDebounceMs: config.suggestDebounceMs ?? 800,
|
|
824
911
|
enableProvision: config.enableProvision ?? true,
|
|
825
912
|
enableRlmFeedback: config.enableRlmFeedback ?? true,
|
|
826
913
|
enableSecurityHooks: config.enableSecurityHooks ?? true,
|
|
827
|
-
source: config.source ??
|
|
914
|
+
source: config.source ?? "pi",
|
|
828
915
|
...config,
|
|
829
916
|
};
|
|
830
917
|
const sageEnv = {
|
|
831
|
-
HOME: process.env.HOME ??
|
|
832
|
-
PATH: process.env.PATH ??
|
|
918
|
+
HOME: process.env.HOME ?? "",
|
|
919
|
+
PATH: process.env.PATH ?? "",
|
|
833
920
|
...(normalized.env ?? {}),
|
|
834
921
|
};
|
|
835
922
|
if (normalized.sageProfile) {
|
|
@@ -837,7 +924,7 @@ export async function createSageSessionConfig(config = {}) {
|
|
|
837
924
|
}
|
|
838
925
|
const hookRuntime = new SageHookRuntime(normalized);
|
|
839
926
|
let activeSessionId;
|
|
840
|
-
const mcpBridge = new SageMcpBridge(normalized.sageBin, [
|
|
927
|
+
const mcpBridge = new SageMcpBridge(normalized.sageBin, ["mcp", "start"], sageEnv, normalized.timeoutMs);
|
|
841
928
|
const extension = createSageExtensions({
|
|
842
929
|
config: normalized,
|
|
843
930
|
mcpBridge,
|
|
@@ -860,34 +947,32 @@ export async function createSageSessionConfig(config = {}) {
|
|
|
860
947
|
.then(async (context) => {
|
|
861
948
|
if (!context)
|
|
862
949
|
return;
|
|
863
|
-
await injectHookMessage(session,
|
|
950
|
+
await injectHookMessage(session, "sage-session-context", context, false);
|
|
864
951
|
})
|
|
865
952
|
.catch((error) => {
|
|
866
|
-
console.error(
|
|
953
|
+
console.error("[sage-pi-adapter] failed to inject session context:", error);
|
|
867
954
|
});
|
|
868
955
|
const unsubscribe = session.subscribe((event) => {
|
|
869
956
|
const parsed = parseMessageEndEvent(event);
|
|
870
957
|
if (!parsed)
|
|
871
958
|
return;
|
|
872
|
-
if (parsed.role ===
|
|
959
|
+
if (parsed.role === "user") {
|
|
873
960
|
const content = parsed.content.trim();
|
|
874
961
|
if (!content)
|
|
875
962
|
return;
|
|
876
963
|
void hookRuntime.capturePrompt(content, activeSessionId).catch((error) => {
|
|
877
|
-
console.error(
|
|
964
|
+
console.error("[sage-pi-adapter] prompt capture failed:", error);
|
|
878
965
|
});
|
|
879
966
|
void extension.sageInjectSuggestion(content, session, activeSessionId);
|
|
880
967
|
return;
|
|
881
968
|
}
|
|
882
|
-
if (parsed.role ===
|
|
969
|
+
if (parsed.role === "assistant") {
|
|
883
970
|
const response = parsed.content.trim();
|
|
884
971
|
if (!response)
|
|
885
972
|
return;
|
|
886
973
|
const usage = extractUsage(parsed.usage);
|
|
887
|
-
void hookRuntime
|
|
888
|
-
.
|
|
889
|
-
.catch((error) => {
|
|
890
|
-
console.error('[sage-pi-adapter] response capture failed:', error);
|
|
974
|
+
void hookRuntime.captureResponse(response, usage, activeSessionId).catch((error) => {
|
|
975
|
+
console.error("[sage-pi-adapter] response capture failed:", error);
|
|
891
976
|
});
|
|
892
977
|
}
|
|
893
978
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sage-pi-adapter.js","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA8GzC,MAAM,sBAAsB,GAAG,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AACxE,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;AAE3E,MAAM,qBAAqB,GAA2C;IACpE,MAAM,EAAE;QACN,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,MAAM;KACpB;IACD,OAAO,EAAE;QACP,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,KAAK;KAClB;IACD,QAAQ,EAAE;QACR,qBAAqB,EAAE,cAAc;QACrC,eAAe,EAAE,QAAQ;KAC1B;CACF,CAAC;AAEF,MAAM,sBAAsB,GAA2C;IACrE,MAAM,EAAE;QACN,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,MAAM;KACpB;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,SAAS;QAC3B,aAAa,EAAE,MAAM;KACtB;CACF,CAAC;AAEF,SAAS,eAAe,CACtB,eAAuD,EACvD,MAAc,EACd,MAAc;IAEd,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa;QAAE,OAAO,gBAAgB,CAAC;IAC5C,OAAO,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAA2B;IAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;YAChD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAQ,EAAE;YACjD,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,CAAC;gBACL,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC;gBACpB,MAAM;gBACN,MAAM;gBACN,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACnD,MAAM,IAAI,GAAI,KAAiC,CAAC,IAAI,CAAC;YACrD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEnD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3E,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO;aAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACnD,MAAM,SAAS,GAAI,KAAiC,CAAC,IAAI,CAAC;YAC1D,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QAEV,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,MAAM,KAAK,GACT,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QACzC,CAAC,CAAE,GAAG,CAAC,KAAiC;QACxC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;IAExB,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAsB,EAAE;QACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EACH,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;YACvC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;YACvC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,MAAM,EACJ,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC;YACxC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC;YACxC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,GAAG,GAAG,OAAkC,CAAC;IAE/C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAe;IAC/C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9E,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;SACrB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACnD,MAAM,GAAG,GAAI,KAAiC,CAAC,IAAI,CAAC;QACpD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,MAAM;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAkB,EAAE,IAAY;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/F,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,OAAO,EAAE,CAAC;IAEb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAC3D,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,WAAW,KAAK,MAAM;gBAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAChE,IAAI,WAAW,KAAK,OAAO;gBAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,aAAa;IAQd;IACA;IACA;IACA;IAVF,IAAI,GAA0C,IAAI,CAAC;IACnD,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,KAAK,GAAG,KAAK,CAAC;IACd,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAyB,IAAI,CAAC;IAElD,YACU,OAAe,EACf,IAAc,EACd,MAA8B,EAAE,EAChC,mBAAmB,MAAM;QAHzB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAU;QACd,QAAG,GAAH,GAAG,CAA6B;QAChC,qBAAgB,GAAhB,gBAAgB,CAAS;IAChC,CAAC;IAEJ,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;QAC3B,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAEhD,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAEnD,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA6B;QACxD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC/C,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC,CAGD,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,SAAS,GACb,MAAM,CAAC,OAAO;gBACZ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;iBACjC,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAA6B;QACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAA6B;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,UAAoB,EACpB,IAA6B;QAE7B,IAAI,gBAAgB,GAAiB,IAAI,CAAC;QAE1C,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC/C,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB;YAAE,MAAM,gBAAgB,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YAC/B,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE;SAC1D,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC1C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;aACrC,CAAC,CAAC;YAEH,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,UAAU,GAAG,CAAC,GAAU,EAAQ,EAAE;gBACtC,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,UAAU,CAAC,IAAI,KAAK,CAAC,kDAAkD,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvF,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACvC,MAAM,IAAI,KAAK,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,EAAE;wBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,OAAO,CAAC,MAAc,EAAE,MAA+B;QAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,MAAc,EAAE,MAA+B;QAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ;YAAE,OAAO;QACxC,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,IAAI,GAAoB,CAAC;QACzB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO;QACpD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAGN;IAFZ,aAAa,CAAoB;IAEzC,YAAoB,MAA4E;QAA5E,WAAM,GAAN,MAAM,CAAsE;QAC9F,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,wBAAwB,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAkB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAC5C,EAAE,eAAe,EAAE,SAAS,IAAI,EAAE,EAAE,EACpC,SAAS,EACT,IAAI,CACL,CAAC;QACF,OAAO,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAkB;QACnD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG;YACX,SAAS;YACT,MAAM;YACN,OAAO;YACP,SAAS;YACT,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;SACtC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,IAAI,EACJ;YACE,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,SAAS,IAAI,EAAE;SACjC,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EACnC,IAAI,CACL,CAAC;QAEF,OAAO,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,SAAkB;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,KAAK;YAAE,OAAO;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,IAAI,CAAC,GAAG,CACZ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC7B;YACE,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI;YACvC,eAAe,EAAE,SAAS,IAAI,EAAE;SACjC,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EACnC,IAAI,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,KAA0C,EAC1C,SAAkB;QAElB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,KAAK;YAAE,OAAO;QACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,IAAI,CAAC,GAAG,CACZ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAC/B;YACE,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI;YACvC,eAAe,EAAE,SAAS,IAAI,EAAE;YAChC,YAAY,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;YAC/B,aAAa,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;SAClC,EACD,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACrC,IAAI,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,SAAkC,EAClC,SAAkB;QAElB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,YAAY;YAC7B,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,SAAS;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB;YACE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI;YACvC,eAAe,EAAE,SAAS,IAAI,EAAE;SACjC,EACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,IAAI,CACL,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,SAAkC,EAClC,UAAmB,EACnB,SAAkB;QAElB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,aAAa;YAC9B,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,UAAU;SAC1B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB;YACE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI;YACvC,eAAe,EAAE,SAAS,IAAI,EAAE;SACjC,EACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,IAAI,CACL,CAAC;QAEF,OAAO,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,GAAG,CACf,IAAc,EACd,GAA2B,EAC3B,KAAc,EACd,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC;YACH,MAAM,UAAU,GAA2B;gBACzC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;gBAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;gBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC1B,GAAG,GAAG;aACP,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;gBACtC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,IAAI;gBACJ,GAAG,EAAE,UAAU;gBACf,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;aACjC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ;oBAC5B,CAAC,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACvD,CAAC,CAAC,WAAW,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,cAAc;gBAAE,MAAM,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAC/B;IACE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;CACzB,EACD,EAAE,WAAW,EAAE,uBAAuB,EAAE,CACzC,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,yDAAyD;QACtE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAClE,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,WAAmB,EACnB,MAA+B,EACV,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,eAAe,CAC5B,qBAAqB,EACrB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAC5B,CAAC;gBACF,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;oBAChD,CAAC,CAAE,MAAM,CAAC,MAAkC;oBAC5C,CAAC,CAAC,EAAE,CAAC;gBAET,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1E,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,8EAA8E;6BACrF;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC;oBAChD,MAAM;oBACN,MAAM;oBACN,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;gBAEH,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;yBACtF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAAwB;IAC5D,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,0DAA0D;QACvE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAClE,CAAC;QACF,OAAO,EAAE,KAAK,EACZ,WAAmB,EACnB,MAA+B,EACV,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,eAAe,CAC5B,sBAAsB,EACtB,MAAM,EACN,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAC5B,CAAC;gBACF,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;oBAChD,CAAC,CAAE,MAAM,CAAC,MAAkC;oBAC5C,CAAC,CAAC,EAAE,CAAC;gBAET,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnE,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,wEAAwE;6BAC/E;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC;oBACjD,MAAM;oBACN,MAAM;oBACN,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;gBAEH,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;yBACvF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,iDAAiD;QAC9D,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,IAAyB,EAAE;YACvC,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YAE5C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC;wBACjD,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,qBAAqB;wBAC7B,MAAM,EAAE,EAAE;qBACX,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,eAAe;oCACf,kBAAkB,EAAE,OAAO;oCAC3B,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI,OAAO;iCACtD,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,eAAe;4BACf,kBAAkB,EAAE,OAAO;yBAC5B,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;gBACD,OAAO,EAAE,EAAE,eAAe,EAAE;aAC7B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAeD,MAAM,UAAU,yBAAyB,CACvC,KAAuB,EACvB,OAA4B;IAE5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QAErC,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,KAAK,EACZ,UAAkB,EAClB,MAA+B,EAC/B,MAAoB,EACpB,QAAuC,EACvC,GAAa,EACQ,EAAE;gBACvB,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;gBAE3C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAChF,IAAI,GAAG,EAAE,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,yBAAyB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,4BAA4B,EAAE;6BAC1F;yBACF;wBACD,OAAO,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;wBAC7E,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAChF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAE1F,IAAI,IAAI,EAAE,QAAQ,KAAK,MAAM,IAAI,IAAI,EAAE,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC5D,OAAO,UAAU,CACf,MAAM,EACN,iBAAiB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,IAAI,yCAAyC,EAAE,CAC9F,CAAC;gBACJ,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAqB,EACrB,UAAkB,EAClB,OAAe,EACf,OAAO,GAAG,KAAK;IAEf,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAClD,MAAM,OAAO,CAAC,eAAe,CAC3B;YACE,UAAU;YACV,OAAO,EAAE,OAAO;YAChB,OAAO;SACR,EACD,KAAK,CACN,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,MAAM,OAAO,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA6B;IAUhE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,IAAI,eAAe,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM;YACzC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM;YAC7C,GAAG,OAAO,CAAC,MAAM;SAClB,CAAC,CAAC;IAEL,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG;QAChB,oBAAoB,CAAC,SAAS,CAAC;QAC/B,qBAAqB,CAAC,SAAS,CAAC;QAChC,oBAAoB,CAAC,SAAS,CAAC;KAChC,CAAC;IAEF,MAAM,WAAW,GAAG,yBAAyB,CAAC,SAAS,EAAE;QACvD,WAAW;QACX,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAC;IAEH,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,oBAAoB,GAAG,EAAE,CAAC;IAE9B,OAAO;QACL,WAAW;QACX,oBAAoB,EAAE,KAAK,EACzB,UAAkB,EAClB,OAAsB,EACtB,SAAkB,EACH,EAAE;YACjB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,GAAG,sBAAsB,GAAG,UAAU;gBAAE,OAAO;YACtD,IAAI,MAAM,KAAK,oBAAoB;gBAAE,OAAO;YAE5C,sBAAsB,GAAG,GAAG,CAAC;YAC7B,oBAAoB,GAAG,MAAM,CAAC;YAE9B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;oBAAE,OAAO;gBAEhC,kBAAkB,GAAG,WAAW,CAAC;gBACjC,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,oBAAoB,EAAE,GAAS,EAAE;YAC/B,kBAAkB,GAAG,EAAE,CAAC;YACxB,oBAAoB,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,kBAAkB,EAAE,GAAW,EAAE,CAAC,kBAAkB;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAuB,EAAE;IAOzB,MAAM,UAAU,GAAyE;QACvF,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;QACrC,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,GAAG;QAClD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;QACnD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI;QACvD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,GAAG,MAAM;KACV,CAAC;IAEF,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;QAC5B,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC;KAC1B,CAAC;IAEF,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,eAAmC,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,aAAa,CACjC,UAAU,CAAC,OAAO,EAClB,CAAC,KAAK,EAAE,OAAO,CAAC,EAChB,OAAO,EACP,UAAU,CAAC,SAAS,CACrB,CAAC;IAEF,MAAM,SAAS,GAAG,oBAAoB,CAAC;QACrC,MAAM,EAAE,UAAU;QAClB,SAAS;QACT,WAAW;QACX,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;QACnC,UAAU,EAAE,UAAU,CAAC,iBAAiB;KACzC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAAC,KAAuB,EAAoB,EAAE,CAC9D,yBAAyB,CAAC,KAAK,EAAE;QAC/B,WAAW;QACX,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;KACpC,CAAC,CAAC;IAEL,OAAO;QACL,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,SAAS;QACT,qBAAqB,EAAE,SAAS;QAChC,UAAU,EAAE,CAAC,OAAqB,EAAgB,EAAE;YAClD,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YAEpC,WAAW;iBACR,iBAAiB,CAAC,eAAe,CAAC;iBAClC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,MAAM,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3E,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;YAEL,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE;gBACvD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,MAAM;oBAAE,OAAO;gBAEpB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO;wBAAE,OAAO;oBAErB,KAAK,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACvE,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;oBACnE,CAAC,CAAC,CAAC;oBAEH,KAAK,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;oBACvE,OAAO;gBACT,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvC,IAAI,CAAC,QAAQ;wBAAE,OAAO;oBAEtB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzC,KAAK,WAAW;yBACb,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC;yBACjD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;oBACrE,CAAC,CAAC,CAAC;gBACP,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,GAAS,EAAE;gBAChB,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,eAAe;IACb,oBAAoB;IACpB,uBAAuB;IACvB,yBAAyB;IACzB,aAAa;IACb,eAAe;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sage-pi-adapter.js","sourceRoot":"","sources":["../src/sage-pi-adapter.ts"],"names":[],"mappings":"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"}
|
package/extensions/index.ts
CHANGED
|
@@ -108,6 +108,7 @@ function extractUsage(message: any): { input?: string; output?: string } {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
export default function sagePiAdapterExtension(pi: ExtensionApi): void {
|
|
111
|
+
const showHookMessages = parseBoolean(process.env.SAGE_SHOW_HOOK_MESSAGES, false);
|
|
111
112
|
const config: SageP2Config = {
|
|
112
113
|
sageBin: process.env.SAGE_BIN ?? 'sage',
|
|
113
114
|
sageProfile: process.env.SAGE_PROFILE,
|
|
@@ -155,7 +156,7 @@ export default function sagePiAdapterExtension(pi: ExtensionApi): void {
|
|
|
155
156
|
{
|
|
156
157
|
customType: 'sage-session-context',
|
|
157
158
|
content: context,
|
|
158
|
-
display:
|
|
159
|
+
display: showHookMessages,
|
|
159
160
|
},
|
|
160
161
|
{ deliverAs: 'nextTurn' }
|
|
161
162
|
);
|
|
@@ -182,7 +183,7 @@ export default function sagePiAdapterExtension(pi: ExtensionApi): void {
|
|
|
182
183
|
message: {
|
|
183
184
|
customType: 'sage-suggested-skills',
|
|
184
185
|
content: suggestions,
|
|
185
|
-
display:
|
|
186
|
+
display: showHookMessages,
|
|
186
187
|
},
|
|
187
188
|
};
|
|
188
189
|
});
|