@geohar/un-bien 0.20.16 → 0.20.17
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/dist/commands/deps.d.ts +1 -1
- package/dist/commands/test_scenarios.d.ts +20 -0
- package/dist/commands/test_scenarios.js +414 -0
- package/dist/commands/test_scenarios.js.map +1 -0
- package/dist/index.js +99 -714
- package/dist/index.js.map +1 -1
- package/dist/routing.d.ts +50 -0
- package/dist/routing.js +250 -0
- package/dist/routing.js.map +1 -0
- package/dist/session/received_images.js +1 -1
- package/dist/session/relay_lifecycle.d.ts +1 -1
- package/dist/session/relay_lifecycle.js +15 -2
- package/dist/session/relay_lifecycle.js.map +1 -1
- package/dist/session/rpc_handlers.js +1 -1
- package/package.json +1 -1
package/dist/commands/deps.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { AcquiredLock } from "../session/cwd_lock.js";
|
|
|
8
8
|
import type { RelayClient } from "../transport/relay_client.js";
|
|
9
9
|
import type { PlainPeerChannel } from "../transport/peer_channel.js";
|
|
10
10
|
import type { ThinkingLevel } from "../protocol/types.js";
|
|
11
|
-
/** App↔Pi room meta projected by the ROOT session (see index.ts `
|
|
11
|
+
/** App↔Pi room meta projected by the ROOT session (see index.ts `SessionState.myRoomMeta`). */
|
|
12
12
|
export type RoomMeta = {
|
|
13
13
|
name: string;
|
|
14
14
|
cwd: string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import type { EnvelopeMessage } from "../session/rpc_envelope.js";
|
|
3
|
+
export interface TestScenarioDeps {
|
|
4
|
+
/** Broadcast an envelope to every attached owner (the relay fan-out seam). */
|
|
5
|
+
broadcast: (env: EnvelopeMessage) => void;
|
|
6
|
+
/** Emit on the pi events bus (drives the extension's real bridges). */
|
|
7
|
+
emitBus: (channel: string, data: unknown) => void;
|
|
8
|
+
}
|
|
9
|
+
/** The pi-events-bus emitter — reads the live `_pi` handle at CALL time
|
|
10
|
+
* (accessor, not snapshot: `_pi` is reassigned by session replacement and
|
|
11
|
+
* tests). */
|
|
12
|
+
export declare function makeTestBusEmitter(piAccessor: () => ExtensionAPI | null): (channel: string, data: unknown) => void;
|
|
13
|
+
/** Run one canned UI-test scenario. Returns a short status for the notify. */
|
|
14
|
+
export declare function runTestScenario(deps: TestScenarioDeps, scenario: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* New-protocol inbound: dispatch an envelope-carried pi `RpcCommand` to the SDK
|
|
17
|
+
* and answer with a `{ rpc: response }` envelope to the SENDER. Native to the
|
|
18
|
+
* envelope wire — does NOT use the stock `_routeClientMessageFrom` switch. The
|
|
19
|
+
* SDK primitives (`_wakeAgent`, `_abortCurrentTurn`) are pi, not old protocol.
|
|
20
|
+
*/
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
const _TEST_SVG_B64 = Buffer.from('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 60">' +
|
|
2
|
+
'<rect width="120" height="60" rx="8" fill="#4c8bf5"/>' +
|
|
3
|
+
'<text x="60" y="37" font-size="16" fill="white" text-anchor="middle"' +
|
|
4
|
+
' font-family="sans-serif">un-bien</text></svg>').toString("base64");
|
|
5
|
+
/** The pi-events-bus emitter — reads the live `_pi` handle at CALL time
|
|
6
|
+
* (accessor, not snapshot: `_pi` is reassigned by session replacement and
|
|
7
|
+
* tests). */
|
|
8
|
+
export function makeTestBusEmitter(piAccessor) {
|
|
9
|
+
return (channel, data) => {
|
|
10
|
+
try {
|
|
11
|
+
;
|
|
12
|
+
piAccessor()?.events?.emit(channel, data);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
/* bus absent — best effort */
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Run one canned UI-test scenario. Returns a short status for the notify. */
|
|
20
|
+
export function runTestScenario(deps, scenario) {
|
|
21
|
+
const { broadcast, emitBus } = deps;
|
|
22
|
+
const s = (scenario.trim().split(/\s+/)[0] || "help").toLowerCase();
|
|
23
|
+
const id = `test-${Date.now()}`;
|
|
24
|
+
switch (s) {
|
|
25
|
+
case "ask-select":
|
|
26
|
+
broadcast({
|
|
27
|
+
rpc: {
|
|
28
|
+
type: "extension_ui_request",
|
|
29
|
+
id,
|
|
30
|
+
method: "select",
|
|
31
|
+
title: "Pick one (test)",
|
|
32
|
+
options: ["Alpha", "Beta", "Gamma"],
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
return "sent ask-select";
|
|
36
|
+
case "ask-confirm":
|
|
37
|
+
broadcast({
|
|
38
|
+
rpc: {
|
|
39
|
+
type: "extension_ui_request",
|
|
40
|
+
id,
|
|
41
|
+
method: "confirm",
|
|
42
|
+
title: "Confirm (test)",
|
|
43
|
+
message: "Proceed with the test action?",
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
return "sent ask-confirm";
|
|
47
|
+
case "ask-input":
|
|
48
|
+
broadcast({
|
|
49
|
+
rpc: {
|
|
50
|
+
type: "extension_ui_request",
|
|
51
|
+
id,
|
|
52
|
+
method: "input",
|
|
53
|
+
title: "Input (test)",
|
|
54
|
+
placeholder: "Type something…",
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
return "sent ask-input";
|
|
58
|
+
case "ask-editor":
|
|
59
|
+
broadcast({
|
|
60
|
+
rpc: {
|
|
61
|
+
type: "extension_ui_request",
|
|
62
|
+
id,
|
|
63
|
+
method: "editor",
|
|
64
|
+
title: "Editor (test)",
|
|
65
|
+
prefill: "edit me",
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
return "sent ask-editor";
|
|
69
|
+
case "ask-notify":
|
|
70
|
+
broadcast({
|
|
71
|
+
rpc: {
|
|
72
|
+
type: "extension_ui_request",
|
|
73
|
+
id,
|
|
74
|
+
method: "notify",
|
|
75
|
+
message: "This is a test notice.",
|
|
76
|
+
notify_type: "info",
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
return "sent ask-notify";
|
|
80
|
+
case "ask-rich":
|
|
81
|
+
emitBus("@eko24ive/pi-ask:started", {
|
|
82
|
+
version: 1,
|
|
83
|
+
flowId: `test-flow-${Date.now()}`,
|
|
84
|
+
source: "test",
|
|
85
|
+
title: "Rich ask (test)",
|
|
86
|
+
questions: [
|
|
87
|
+
{
|
|
88
|
+
id: "q1",
|
|
89
|
+
prompt: "Which approach?",
|
|
90
|
+
type: "single",
|
|
91
|
+
options: [
|
|
92
|
+
{ value: "a", label: "Approach A", description: "the safe one" },
|
|
93
|
+
{ value: "b", label: "Approach B", preview: "preview text here" },
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: "q2",
|
|
98
|
+
prompt: "Anything to add?",
|
|
99
|
+
type: "single",
|
|
100
|
+
options: [{ value: "ok", label: "Looks good", freeform: true }],
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
return "emitted pi-ask:started (rich)";
|
|
105
|
+
case "plan":
|
|
106
|
+
emitBus("plan:snapshot", {
|
|
107
|
+
ns: "test",
|
|
108
|
+
seq: 1,
|
|
109
|
+
items: [
|
|
110
|
+
{
|
|
111
|
+
id: "t1",
|
|
112
|
+
kind: "plan",
|
|
113
|
+
title: "Design the thing",
|
|
114
|
+
status: "done",
|
|
115
|
+
deps: [],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: "t2",
|
|
119
|
+
kind: "plan",
|
|
120
|
+
title: "Build the thing",
|
|
121
|
+
status: "in_progress",
|
|
122
|
+
deps: ["t1"],
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
id: "t3",
|
|
126
|
+
kind: "plan",
|
|
127
|
+
title: "Test the thing",
|
|
128
|
+
status: "pending",
|
|
129
|
+
deps: ["t2"],
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
});
|
|
133
|
+
return "emitted plan:snapshot";
|
|
134
|
+
case "subagents":
|
|
135
|
+
emitBus("subagents:created", {
|
|
136
|
+
id: "sa1",
|
|
137
|
+
type: "explore",
|
|
138
|
+
description: "Explore the codebase",
|
|
139
|
+
});
|
|
140
|
+
emitBus("subagents:started", { id: "sa1" });
|
|
141
|
+
emitBus("subagents:created", {
|
|
142
|
+
id: "sa2",
|
|
143
|
+
type: "plan",
|
|
144
|
+
description: "Draft an implementation plan",
|
|
145
|
+
});
|
|
146
|
+
emitBus("subagents:completed", { id: "sa2" });
|
|
147
|
+
return "emitted subagents lifecycle";
|
|
148
|
+
case "svg": {
|
|
149
|
+
// A TOOL card renders standalone; the app pulls tool-emitted images from
|
|
150
|
+
// INSIDE the tool_execution_end `result` (imagesFromToolResult unwraps
|
|
151
|
+
// `{content:[{type:"image",data,mimeType}]}`) and renders them below the
|
|
152
|
+
// card (WireImageView -> SVGImageView). Deliver the SVG that way.
|
|
153
|
+
const tc = `tc-svg-${Date.now()}`;
|
|
154
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
155
|
+
broadcast({
|
|
156
|
+
rpc: {
|
|
157
|
+
type: "tool_execution_start",
|
|
158
|
+
toolCallId: tc,
|
|
159
|
+
toolName: "render_svg",
|
|
160
|
+
args: { note: "test svg" },
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
broadcast({
|
|
164
|
+
rpc: {
|
|
165
|
+
type: "tool_execution_end",
|
|
166
|
+
toolCallId: tc,
|
|
167
|
+
result: {
|
|
168
|
+
content: [
|
|
169
|
+
{ type: "text", text: "rendered a test SVG" },
|
|
170
|
+
{
|
|
171
|
+
type: "image",
|
|
172
|
+
data: _TEST_SVG_B64,
|
|
173
|
+
mimeType: "image/svg+xml",
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
isError: false,
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
181
|
+
return "sent svg (envelope tool_execution_end + image)";
|
|
182
|
+
}
|
|
183
|
+
case "tool": {
|
|
184
|
+
const tc = `tc-${Date.now()}`;
|
|
185
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
186
|
+
broadcast({
|
|
187
|
+
rpc: {
|
|
188
|
+
type: "tool_execution_start",
|
|
189
|
+
toolCallId: tc,
|
|
190
|
+
toolName: "bash",
|
|
191
|
+
args: { command: "echo hello" },
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
broadcast({
|
|
195
|
+
rpc: {
|
|
196
|
+
type: "tool_execution_end",
|
|
197
|
+
toolCallId: tc,
|
|
198
|
+
result: "hello\n",
|
|
199
|
+
isError: false,
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
203
|
+
return "sent tool pair (envelope)";
|
|
204
|
+
}
|
|
205
|
+
case "diff": {
|
|
206
|
+
// Exercise the rich diff rendering: aux `{hunks}` (input Edit diff) rides
|
|
207
|
+
// ALONGSIDE the raw edit `tool_execution_start`. OUTPUT is classified
|
|
208
|
+
// app-side from the result, so no aux.output rides the end frame.
|
|
209
|
+
const tc = `tc-diff-${Date.now()}`;
|
|
210
|
+
const hunks = [
|
|
211
|
+
{
|
|
212
|
+
lines: [
|
|
213
|
+
{ kind: "context", oldLine: 1, newLine: 1, text: "const a = 1;" },
|
|
214
|
+
{ kind: "remove", oldLine: 2, text: "const b = 2;" },
|
|
215
|
+
{ kind: "add", newLine: 2, text: "const b = 3;" },
|
|
216
|
+
{ kind: "context", oldLine: 3, newLine: 3, text: "const c = 4;" },
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
];
|
|
220
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
221
|
+
broadcast({
|
|
222
|
+
rpc: {
|
|
223
|
+
type: "tool_execution_start",
|
|
224
|
+
toolCallId: tc,
|
|
225
|
+
toolName: "edit",
|
|
226
|
+
args: {
|
|
227
|
+
path: "demo.ts",
|
|
228
|
+
old_string: "const b = 2;",
|
|
229
|
+
new_string: "const b = 3;",
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
aux: { hunks },
|
|
233
|
+
});
|
|
234
|
+
broadcast({
|
|
235
|
+
rpc: {
|
|
236
|
+
type: "tool_execution_end",
|
|
237
|
+
toolCallId: tc,
|
|
238
|
+
result: "edited demo.ts",
|
|
239
|
+
isError: false,
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
243
|
+
return "sent diff (edit + aux hunks — shows the Diff⇄Content toggle)";
|
|
244
|
+
}
|
|
245
|
+
case "code-shell": {
|
|
246
|
+
// bash-family result → the app classifies it into a `code` block (lang
|
|
247
|
+
// shell), syntax-highlighted. OUTPUT is app-side now — no aux stamped.
|
|
248
|
+
const tc = `tc-sh-${Date.now()}`;
|
|
249
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
250
|
+
broadcast({
|
|
251
|
+
rpc: {
|
|
252
|
+
type: "tool_execution_start",
|
|
253
|
+
toolCallId: tc,
|
|
254
|
+
toolName: "bash",
|
|
255
|
+
args: { command: "ls -la" },
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
broadcast({
|
|
259
|
+
rpc: {
|
|
260
|
+
type: "tool_execution_end",
|
|
261
|
+
toolCallId: tc,
|
|
262
|
+
result: "total 24\ndrwxr-xr-x 5 geo staff 160 Aug 29 10:00 .\n-rw-r--r-- 1 geo staff 1024 index.ts\n-rw-r--r-- 1 geo staff 512 README.md",
|
|
263
|
+
isError: false,
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
267
|
+
return "sent code-shell (bash output → code block, lang shell)";
|
|
268
|
+
}
|
|
269
|
+
case "code-file": {
|
|
270
|
+
// read-family with a *.swift path → `code` block, lang inferred from the
|
|
271
|
+
// extension (swift) and highlighted.
|
|
272
|
+
const tc = `tc-rd-${Date.now()}`;
|
|
273
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
274
|
+
broadcast({
|
|
275
|
+
rpc: {
|
|
276
|
+
type: "tool_execution_start",
|
|
277
|
+
toolCallId: tc,
|
|
278
|
+
toolName: "read",
|
|
279
|
+
args: { path: "/src/Greeter.swift" },
|
|
280
|
+
},
|
|
281
|
+
});
|
|
282
|
+
broadcast({
|
|
283
|
+
rpc: {
|
|
284
|
+
type: "tool_execution_end",
|
|
285
|
+
toolCallId: tc,
|
|
286
|
+
result: 'struct Greeter {\n let name: String\n func greet() -> String {\n return "Hello, \\(name)!"\n }\n}',
|
|
287
|
+
isError: false,
|
|
288
|
+
},
|
|
289
|
+
});
|
|
290
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
291
|
+
return "sent code-file (read .swift → highlighted code block)";
|
|
292
|
+
}
|
|
293
|
+
case "diff-output": {
|
|
294
|
+
// A tool whose RESULT already embeds a unified diff → the app parses it
|
|
295
|
+
// into a `diff` block (re-reading persisted text; replay-safe).
|
|
296
|
+
const tc = `tc-do-${Date.now()}`;
|
|
297
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
298
|
+
broadcast({
|
|
299
|
+
rpc: {
|
|
300
|
+
type: "tool_execution_start",
|
|
301
|
+
toolCallId: tc,
|
|
302
|
+
toolName: "bash",
|
|
303
|
+
args: { command: "git diff" },
|
|
304
|
+
},
|
|
305
|
+
});
|
|
306
|
+
broadcast({
|
|
307
|
+
rpc: {
|
|
308
|
+
type: "tool_execution_end",
|
|
309
|
+
toolCallId: tc,
|
|
310
|
+
result: 'diff --git a/app.ts b/app.ts\n--- a/app.ts\n+++ b/app.ts\n@@ -1,3 +1,3 @@\n const port = 3000;\n-const host = "127.0.0.1";\n+const host = "0.0.0.0";\n start(host, port);',
|
|
311
|
+
isError: false,
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
315
|
+
return "sent diff-output (result embeds a unified diff → diff block)";
|
|
316
|
+
}
|
|
317
|
+
case "write": {
|
|
318
|
+
// write carries the new file text in args.content; no live diff → the
|
|
319
|
+
// card shows the Content view (new text as a code block, replay-safe).
|
|
320
|
+
const tc = `tc-wr-${Date.now()}`;
|
|
321
|
+
const content = "export function add(a: number, b: number): number {\n return a + b;\n}";
|
|
322
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
323
|
+
broadcast({
|
|
324
|
+
rpc: {
|
|
325
|
+
type: "tool_execution_start",
|
|
326
|
+
toolCallId: tc,
|
|
327
|
+
toolName: "write",
|
|
328
|
+
args: { path: "/src/math.ts", content },
|
|
329
|
+
},
|
|
330
|
+
});
|
|
331
|
+
broadcast({
|
|
332
|
+
rpc: {
|
|
333
|
+
type: "tool_execution_end",
|
|
334
|
+
toolCallId: tc,
|
|
335
|
+
result: "wrote /src/math.ts",
|
|
336
|
+
isError: false,
|
|
337
|
+
},
|
|
338
|
+
});
|
|
339
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
340
|
+
return "sent write (args.content → content-as-code block)";
|
|
341
|
+
}
|
|
342
|
+
case "agent": {
|
|
343
|
+
broadcast({ rpc: { type: "turn_start" } });
|
|
344
|
+
broadcast({
|
|
345
|
+
rpc: {
|
|
346
|
+
type: "message_update",
|
|
347
|
+
assistantMessageEvent: {
|
|
348
|
+
type: "text_delta",
|
|
349
|
+
delta: "This is a ",
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
});
|
|
353
|
+
broadcast({
|
|
354
|
+
rpc: {
|
|
355
|
+
type: "message_update",
|
|
356
|
+
assistantMessageEvent: {
|
|
357
|
+
type: "text_delta",
|
|
358
|
+
delta: "test agent message.",
|
|
359
|
+
},
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
broadcast({
|
|
363
|
+
rpc: {
|
|
364
|
+
type: "message_end",
|
|
365
|
+
message: {
|
|
366
|
+
role: "assistant",
|
|
367
|
+
content: [{ type: "text", text: "This is a test agent message." }],
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
});
|
|
371
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
372
|
+
return "sent agent message (envelope)";
|
|
373
|
+
}
|
|
374
|
+
case "error":
|
|
375
|
+
broadcast({
|
|
376
|
+
rpc: {
|
|
377
|
+
type: "message_end",
|
|
378
|
+
message: {
|
|
379
|
+
role: "assistant",
|
|
380
|
+
stopReason: "error",
|
|
381
|
+
errorMessage: "This is a test error.",
|
|
382
|
+
},
|
|
383
|
+
},
|
|
384
|
+
});
|
|
385
|
+
broadcast({ rpc: { type: "agent_settled" } });
|
|
386
|
+
return "sent error (envelope message_end/error)";
|
|
387
|
+
case "all":
|
|
388
|
+
for (const sc of [
|
|
389
|
+
"ask-notify",
|
|
390
|
+
"plan",
|
|
391
|
+
"subagents",
|
|
392
|
+
"svg",
|
|
393
|
+
"tool",
|
|
394
|
+
"diff",
|
|
395
|
+
"code-shell",
|
|
396
|
+
"code-file",
|
|
397
|
+
"diff-output",
|
|
398
|
+
"write",
|
|
399
|
+
"agent",
|
|
400
|
+
"error",
|
|
401
|
+
])
|
|
402
|
+
runTestScenario(deps, sc);
|
|
403
|
+
return "sent all (ask-notify, plan, subagents, svg, tool, diff, code-shell, code-file, diff-output, write, agent, error)";
|
|
404
|
+
default:
|
|
405
|
+
return "usage: /unbien test <ask-select|ask-confirm|ask-input|ask-editor|ask-notify|ask-rich|plan|subagents|svg|tool|diff|code-shell|code-file|diff-output|write|agent|error|all>";
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* New-protocol inbound: dispatch an envelope-carried pi `RpcCommand` to the SDK
|
|
410
|
+
* and answer with a `{ rpc: response }` envelope to the SENDER. Native to the
|
|
411
|
+
* envelope wire — does NOT use the stock `_routeClientMessageFrom` switch. The
|
|
412
|
+
* SDK primitives (`_wakeAgent`, `_abortCurrentTurn`) are pi, not old protocol.
|
|
413
|
+
*/
|
|
414
|
+
//# sourceMappingURL=test_scenarios.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_scenarios.js","sourceRoot":"","sources":["../../src/commands/test_scenarios.ts"],"names":[],"mappings":"AAcA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,+DAA+D;IAC7D,uDAAuD;IACvD,sEAAsE;IACtE,gDAAgD,CACnD,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAUpB;;cAEc;AACd,MAAM,UAAU,kBAAkB,CAAC,UAAqC;IACtE,OAAO,CAAC,OAAe,EAAE,IAAa,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,CAAC;YAAC,UAAU,EAAiC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAGD,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAC7B,IAAsB,EACtB,QAAgB;IAEhB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;IACnE,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,YAAY;YACf,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,EAAE;oBACF,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;iBACpC;aACF,CAAC,CAAA;YACF,OAAO,iBAAiB,CAAA;QAC1B,KAAK,aAAa;YAChB,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,EAAE;oBACF,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,+BAA+B;iBACzC;aACF,CAAC,CAAA;YACF,OAAO,kBAAkB,CAAA;QAC3B,KAAK,WAAW;YACd,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,EAAE;oBACF,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,cAAc;oBACrB,WAAW,EAAE,iBAAiB;iBAC/B;aACF,CAAC,CAAA;YACF,OAAO,gBAAgB,CAAA;QACzB,KAAK,YAAY;YACf,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,EAAE;oBACF,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,SAAS;iBACnB;aACF,CAAC,CAAA;YACF,OAAO,iBAAiB,CAAA;QAC1B,KAAK,YAAY;YACf,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,EAAE;oBACF,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,wBAAwB;oBACjC,WAAW,EAAE,MAAM;iBACpB;aACF,CAAC,CAAA;YACF,OAAO,iBAAiB,CAAA;QAC1B,KAAK,UAAU;YACb,OAAO,CAAC,0BAA0B,EAAE;gBAClC,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,iBAAiB;gBACxB,SAAS,EAAE;oBACT;wBACE,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,iBAAiB;wBACzB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE;4BACP,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE;4BAChE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE;yBAClE;qBACF;oBACD;wBACE,EAAE,EAAE,IAAI;wBACR,MAAM,EAAE,kBAAkB;wBAC1B,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qBAChE;iBACF;aACF,CAAC,CAAA;YACF,OAAO,+BAA+B,CAAA;QACxC,KAAK,MAAM;YACT,OAAO,CAAC,eAAe,EAAE;gBACvB,EAAE,EAAE,MAAM;gBACV,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE;oBACL;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,kBAAkB;wBACzB,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,EAAE;qBACT;oBACD;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,iBAAiB;wBACxB,MAAM,EAAE,aAAa;wBACrB,IAAI,EAAE,CAAC,IAAI,CAAC;qBACb;oBACD;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,gBAAgB;wBACvB,MAAM,EAAE,SAAS;wBACjB,IAAI,EAAE,CAAC,IAAI,CAAC;qBACb;iBACF;aACF,CAAC,CAAA;YACF,OAAO,uBAAuB,CAAA;QAChC,KAAK,WAAW;YACd,OAAO,CAAC,mBAAmB,EAAE;gBAC3B,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,sBAAsB;aACpC,CAAC,CAAA;YACF,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,mBAAmB,EAAE;gBAC3B,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,8BAA8B;aAC5C,CAAC,CAAA;YACF,OAAO,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC7C,OAAO,6BAA6B,CAAA;QACtC,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,kEAAkE;YAClE,MAAM,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACjC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;iBAC3B;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EAAE;wBACN,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE;4BAC7C;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,aAAa;gCACnB,QAAQ,EAAE,eAAe;6BAC1B;yBACF;qBACF;oBACD,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,gDAAgD,CAAA;QACzD,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAC7B,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;iBAChC;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,2BAA2B,CAAA;QACpC,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,0EAA0E;YAC1E,sEAAsE;YACtE,kEAAkE;YAClE,MAAM,EAAE,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAClC,MAAM,KAAK,GAAG;gBACZ;oBACE,KAAK,EAAE;wBACL,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;wBACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;wBACpD,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;wBACjD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE;qBAClE;iBACF;aACF,CAAA;YACD,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE;wBACJ,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE,cAAc;wBAC1B,UAAU,EAAE,cAAc;qBAC3B;iBACF;gBACD,GAAG,EAAE,EAAE,KAAK,EAAE;aACf,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EAAE,gBAAgB;oBACxB,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,8DAA8D,CAAA;QACvE,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,uEAAuE;YACvE,uEAAuE;YACvE,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAChC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;iBAC5B;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EACJ,sIAAsI;oBACxI,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,wDAAwD,CAAA;QACjE,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,yEAAyE;YACzE,qCAAqC;YACrC,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAChC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;iBACrC;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EACJ,mHAAmH;oBACrH,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,uDAAuD,CAAA;QAChE,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,wEAAwE;YACxE,gEAAgE;YAChE,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAChC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;iBAC9B;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EACJ,2KAA2K;oBAC7K,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,8DAA8D,CAAA;QACvE,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAChC,MAAM,OAAO,GACX,yEAAyE,CAAA;YAC3E,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE;iBACxC;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,UAAU,EAAE,EAAE;oBACd,MAAM,EAAE,oBAAoB;oBAC5B,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,mDAAmD,CAAA;QAC5D,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YAC1C,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,gBAAgB;oBACtB,qBAAqB,EAAE;wBACrB,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,YAAY;qBACpB;iBACF;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,gBAAgB;oBACtB,qBAAqB,EAAE;wBACrB,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,qBAAqB;qBAC7B;iBACF;aACF,CAAC,CAAA;YACF,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;qBACnE;iBACF;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,+BAA+B,CAAA;QACxC,CAAC;QACD,KAAK,OAAO;YACV,SAAS,CAAC;gBACR,GAAG,EAAE;oBACH,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE;wBACP,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,OAAO;wBACnB,YAAY,EAAE,uBAAuB;qBACtC;iBACF;aACF,CAAC,CAAA;YACF,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAA;YAC7C,OAAO,yCAAyC,CAAA;QAClD,KAAK,KAAK;YACR,KAAK,MAAM,EAAE,IAAI;gBACf,YAAY;gBACZ,MAAM;gBACN,WAAW;gBACX,KAAK;gBACL,MAAM;gBACN,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,OAAO;gBACP,OAAO;gBACP,OAAO;aACR;gBACC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAC3B,OAAO,kHAAkH,CAAA;QAC3H;YACE,OAAO,2KAA2K,CAAA;IACtL,CAAC;AACH,CAAC;AAED;;;;;GAKG"}
|