@timetotest/cli 0.1.2 β 0.1.5
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 +13 -5
- package/dist/bin/ttt.js +6 -2
- package/dist/bin/ttt.js.map +1 -1
- package/dist/package.json +47 -0
- package/dist/src/commands/ask.js +31 -10
- package/dist/src/commands/ask.js.map +1 -1
- package/dist/src/commands/start-test.js +22 -6
- package/dist/src/commands/start-test.js.map +1 -1
- package/dist/src/commands/stream.js +4 -7
- package/dist/src/commands/stream.js.map +1 -1
- package/dist/src/commands/test.js +32 -8
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/lib/config.js +2 -2
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/events.js +67 -0
- package/dist/src/lib/events.js.map +1 -0
- package/dist/src/lib/tui/events.js +338 -0
- package/dist/src/lib/tui/events.js.map +1 -0
- package/dist/src/lib/tui/icons.js +21 -0
- package/dist/src/lib/tui/icons.js.map +1 -0
- package/dist/src/lib/tui/print.js +69 -0
- package/dist/src/lib/tui/print.js.map +1 -0
- package/dist/src/lib/tui/prompt.js +453 -0
- package/dist/src/lib/tui/prompt.js.map +1 -0
- package/dist/src/lib/tui/status.js +13 -0
- package/dist/src/lib/tui/status.js.map +1 -0
- package/dist/src/lib/tui/style.js +11 -0
- package/dist/src/lib/tui/style.js.map +1 -0
- package/dist/src/lib/tui/utils.js +113 -0
- package/dist/src/lib/tui/utils.js.map +1 -0
- package/dist/src/lib/tui.js +7 -508
- package/dist/src/lib/tui.js.map +1 -1
- package/dist/src/lib/update.js +141 -0
- package/dist/src/lib/update.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { formatEventLines } from "./tui.js";
|
|
2
|
+
export const TEST_EVENT_TYPES = [
|
|
3
|
+
"test_started",
|
|
4
|
+
"test_progress",
|
|
5
|
+
"test_completed",
|
|
6
|
+
"test_failed",
|
|
7
|
+
"browser_initialized",
|
|
8
|
+
"page_discovered",
|
|
9
|
+
"page_processing",
|
|
10
|
+
"screenshot_captured",
|
|
11
|
+
"screenshot_with_analysis",
|
|
12
|
+
"page_analyzed",
|
|
13
|
+
"ai_analysis_started",
|
|
14
|
+
"ai_analysis_completed",
|
|
15
|
+
"test_cases_generated",
|
|
16
|
+
"test_execution_started",
|
|
17
|
+
"test_execution_progress",
|
|
18
|
+
"test_execution_completed",
|
|
19
|
+
"test_execution_failed",
|
|
20
|
+
"test_execution_stopped",
|
|
21
|
+
"test_case_execution_started",
|
|
22
|
+
"test_case_execution_completed",
|
|
23
|
+
"test_step_execution",
|
|
24
|
+
"test_step_screenshot",
|
|
25
|
+
"test_step_user_input_required",
|
|
26
|
+
"user_input_provided",
|
|
27
|
+
"user_input_acknowledged",
|
|
28
|
+
"user_input_timeout",
|
|
29
|
+
"user_input_cancelled",
|
|
30
|
+
"agent_thinking_started",
|
|
31
|
+
"agent_thinking_stopped",
|
|
32
|
+
"agent_thought_process",
|
|
33
|
+
"agent_plan_generated",
|
|
34
|
+
"agent_tool_execution",
|
|
35
|
+
"agent_step_completed",
|
|
36
|
+
"agent_recovery_attempt",
|
|
37
|
+
"agent_error",
|
|
38
|
+
"browser_stream_started",
|
|
39
|
+
"browser_stream_stopped",
|
|
40
|
+
"subscription_confirmed",
|
|
41
|
+
"subscription_removed",
|
|
42
|
+
"error",
|
|
43
|
+
"stats_response",
|
|
44
|
+
"pong",
|
|
45
|
+
"ASK_THINKING_STARTED",
|
|
46
|
+
"ASK_THINKING_STOPPED",
|
|
47
|
+
"ASK_AGENT_THOUGHT",
|
|
48
|
+
"ASK_SESSION_STARTED",
|
|
49
|
+
"ASK_SESSION_ERROR",
|
|
50
|
+
"ASK_TOOL_START",
|
|
51
|
+
"ASK_TOOL_RESULT",
|
|
52
|
+
"ASK_AGENT_ANSWER",
|
|
53
|
+
"ASK_USER_MESSAGE",
|
|
54
|
+
"ASK_SESSION_COMPLETED",
|
|
55
|
+
];
|
|
56
|
+
export function registerTestEventLogging(socket, log) {
|
|
57
|
+
for (const eventType of TEST_EVENT_TYPES) {
|
|
58
|
+
socket.on(eventType, (payload) => {
|
|
59
|
+
const lines = formatEventLines(eventType, payload);
|
|
60
|
+
for (const line of lines) {
|
|
61
|
+
if (line)
|
|
62
|
+
log(line);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/lib/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,0BAA0B;IAC1B,eAAe;IACf,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,wBAAwB;IACxB,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,6BAA6B;IAC7B,+BAA+B;IAC/B,qBAAqB;IACrB,sBAAsB;IACtB,+BAA+B;IAC/B,qBAAqB;IACrB,yBAAyB;IACzB,oBAAoB;IACpB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,wBAAwB;IACxB,aAAa;IACb,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,sBAAsB;IACtB,OAAO;IACP,gBAAgB;IAChB,MAAM;IACN,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;CACxB,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,GAA2B;IAE3B,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { icons } from "./icons.js";
|
|
3
|
+
import { stripAnsi, sanitizeText, asPercent, safeCount, formatKeyValues, formatTimestamp, isPlainObject, } from "./utils.js";
|
|
4
|
+
const EVENT_META = {
|
|
5
|
+
test_started: { icon: icons.start, label: "test_started", color: chalk.bold },
|
|
6
|
+
test_progress: { icon: icons.progress, label: "progress", color: chalk.cyan },
|
|
7
|
+
test_completed: { icon: icons.done, label: "completed", color: chalk.green },
|
|
8
|
+
test_failed: { icon: icons.fail, label: "failed", color: chalk.red },
|
|
9
|
+
browser_initialized: {
|
|
10
|
+
icon: icons.browser,
|
|
11
|
+
label: "browser",
|
|
12
|
+
color: chalk.cyan,
|
|
13
|
+
},
|
|
14
|
+
page_discovered: { icon: icons.page, label: "pages", color: chalk.cyan },
|
|
15
|
+
page_processing: { icon: icons.page, label: "page", color: chalk.cyan },
|
|
16
|
+
screenshot_captured: {
|
|
17
|
+
icon: icons.camera,
|
|
18
|
+
label: "screenshot",
|
|
19
|
+
color: chalk.cyan,
|
|
20
|
+
},
|
|
21
|
+
screenshot_with_analysis: {
|
|
22
|
+
icon: icons.camera,
|
|
23
|
+
label: "screenshot",
|
|
24
|
+
color: chalk.cyan,
|
|
25
|
+
},
|
|
26
|
+
ai_analysis_started: {
|
|
27
|
+
icon: icons.brain,
|
|
28
|
+
label: "analysis",
|
|
29
|
+
color: chalk.magenta,
|
|
30
|
+
},
|
|
31
|
+
ai_analysis_completed: {
|
|
32
|
+
icon: icons.brain,
|
|
33
|
+
label: "analysis",
|
|
34
|
+
color: chalk.magenta,
|
|
35
|
+
},
|
|
36
|
+
page_analyzed: { icon: icons.brain, label: "analysis", color: chalk.magenta },
|
|
37
|
+
test_cases_generated: {
|
|
38
|
+
icon: icons.cases,
|
|
39
|
+
label: "test_cases",
|
|
40
|
+
color: chalk.magenta,
|
|
41
|
+
},
|
|
42
|
+
test_execution_started: {
|
|
43
|
+
icon: icons.exec,
|
|
44
|
+
label: "execution",
|
|
45
|
+
color: chalk.yellow,
|
|
46
|
+
},
|
|
47
|
+
test_execution_progress: {
|
|
48
|
+
icon: icons.exec,
|
|
49
|
+
label: "execution",
|
|
50
|
+
color: chalk.yellow,
|
|
51
|
+
},
|
|
52
|
+
test_execution_completed: {
|
|
53
|
+
icon: icons.done,
|
|
54
|
+
label: "execution",
|
|
55
|
+
color: chalk.green,
|
|
56
|
+
},
|
|
57
|
+
test_execution_failed: {
|
|
58
|
+
icon: icons.fail,
|
|
59
|
+
label: "execution",
|
|
60
|
+
color: chalk.red,
|
|
61
|
+
},
|
|
62
|
+
test_execution_stopped: {
|
|
63
|
+
icon: icons.warn,
|
|
64
|
+
label: "execution",
|
|
65
|
+
color: chalk.yellow,
|
|
66
|
+
},
|
|
67
|
+
test_case_execution_started: {
|
|
68
|
+
icon: icons.exec,
|
|
69
|
+
label: "test_case",
|
|
70
|
+
color: chalk.cyan,
|
|
71
|
+
},
|
|
72
|
+
test_case_execution_completed: {
|
|
73
|
+
icon: icons.exec,
|
|
74
|
+
label: "test_case",
|
|
75
|
+
color: chalk.cyan,
|
|
76
|
+
},
|
|
77
|
+
test_step_execution: {
|
|
78
|
+
icon: icons.exec,
|
|
79
|
+
label: "test_step",
|
|
80
|
+
color: chalk.cyan,
|
|
81
|
+
},
|
|
82
|
+
test_step_screenshot: {
|
|
83
|
+
icon: icons.camera,
|
|
84
|
+
label: "step_shot",
|
|
85
|
+
color: chalk.cyan,
|
|
86
|
+
},
|
|
87
|
+
test_step_user_input_required: {
|
|
88
|
+
icon: icons.user,
|
|
89
|
+
label: "user_input",
|
|
90
|
+
color: chalk.yellow,
|
|
91
|
+
},
|
|
92
|
+
user_input_provided: {
|
|
93
|
+
icon: icons.user,
|
|
94
|
+
label: "user_input",
|
|
95
|
+
color: chalk.green,
|
|
96
|
+
},
|
|
97
|
+
user_input_acknowledged: {
|
|
98
|
+
icon: icons.user,
|
|
99
|
+
label: "user_input",
|
|
100
|
+
color: chalk.green,
|
|
101
|
+
},
|
|
102
|
+
user_input_timeout: { icon: icons.warn, label: "user_input", color: chalk.red },
|
|
103
|
+
user_input_cancelled: {
|
|
104
|
+
icon: icons.warn,
|
|
105
|
+
label: "user_input",
|
|
106
|
+
color: chalk.red,
|
|
107
|
+
},
|
|
108
|
+
agent_thinking_started: {
|
|
109
|
+
icon: icons.think,
|
|
110
|
+
label: "agent",
|
|
111
|
+
color: chalk.magenta,
|
|
112
|
+
},
|
|
113
|
+
agent_thinking_stopped: {
|
|
114
|
+
icon: icons.think,
|
|
115
|
+
label: "agent",
|
|
116
|
+
color: chalk.magenta,
|
|
117
|
+
},
|
|
118
|
+
agent_thought_process: {
|
|
119
|
+
icon: icons.think,
|
|
120
|
+
label: "agent",
|
|
121
|
+
color: chalk.magenta,
|
|
122
|
+
},
|
|
123
|
+
agent_plan_generated: {
|
|
124
|
+
icon: icons.plan,
|
|
125
|
+
label: "agent_plan",
|
|
126
|
+
color: chalk.magenta,
|
|
127
|
+
},
|
|
128
|
+
agent_tool_execution: {
|
|
129
|
+
icon: icons.tool,
|
|
130
|
+
label: "agent_tool",
|
|
131
|
+
color: chalk.magenta,
|
|
132
|
+
},
|
|
133
|
+
agent_step_completed: {
|
|
134
|
+
icon: icons.plan,
|
|
135
|
+
label: "agent_step",
|
|
136
|
+
color: chalk.magenta,
|
|
137
|
+
},
|
|
138
|
+
agent_recovery_attempt: {
|
|
139
|
+
icon: icons.warn,
|
|
140
|
+
label: "agent_recovery",
|
|
141
|
+
color: chalk.yellow,
|
|
142
|
+
},
|
|
143
|
+
agent_error: { icon: icons.fail, label: "agent_error", color: chalk.red },
|
|
144
|
+
browser_stream_started: {
|
|
145
|
+
icon: icons.browser,
|
|
146
|
+
label: "browser_stream",
|
|
147
|
+
color: chalk.cyan,
|
|
148
|
+
},
|
|
149
|
+
browser_stream_stopped: {
|
|
150
|
+
icon: icons.browser,
|
|
151
|
+
label: "browser_stream",
|
|
152
|
+
color: chalk.cyan,
|
|
153
|
+
},
|
|
154
|
+
subscription_confirmed: {
|
|
155
|
+
icon: icons.info,
|
|
156
|
+
label: "subscription",
|
|
157
|
+
color: chalk.white,
|
|
158
|
+
},
|
|
159
|
+
subscription_removed: {
|
|
160
|
+
icon: icons.info,
|
|
161
|
+
label: "subscription",
|
|
162
|
+
color: chalk.white,
|
|
163
|
+
},
|
|
164
|
+
error: { icon: icons.fail, label: "error", color: chalk.red },
|
|
165
|
+
stats_response: { icon: icons.info, label: "stats", color: chalk.gray },
|
|
166
|
+
pong: { icon: icons.info, label: "pong", color: chalk.white },
|
|
167
|
+
ask_thinking_started: { icon: icons.think, label: "ask", color: chalk.magenta },
|
|
168
|
+
ask_thinking_stopped: { icon: icons.think, label: "ask", color: chalk.magenta },
|
|
169
|
+
ask_agent_thought: { icon: icons.think, label: "ask", color: chalk.magenta },
|
|
170
|
+
ask_tool_start: { icon: icons.tool, label: "ask_tool", color: chalk.magenta },
|
|
171
|
+
ask_tool_result: { icon: icons.tool, label: "ask_tool", color: chalk.magenta },
|
|
172
|
+
ask_agent_answer: {
|
|
173
|
+
icon: icons.plan,
|
|
174
|
+
label: "ask_answer",
|
|
175
|
+
color: chalk.magenta,
|
|
176
|
+
},
|
|
177
|
+
ask_user_message: { icon: icons.info, label: "ask_user", color: chalk.white },
|
|
178
|
+
ask_session_completed: {
|
|
179
|
+
icon: icons.done,
|
|
180
|
+
label: "ask_session",
|
|
181
|
+
color: chalk.green,
|
|
182
|
+
},
|
|
183
|
+
ask_session_error: { icon: icons.fail, label: "ask_session", color: chalk.red },
|
|
184
|
+
};
|
|
185
|
+
export function formatEventLines(type, payload) {
|
|
186
|
+
const base = isPlainObject(payload) ? payload : {};
|
|
187
|
+
const candidateData = isPlainObject(base.data)
|
|
188
|
+
? base.data
|
|
189
|
+
: isPlainObject(payload) && !("data" in payload)
|
|
190
|
+
? payload
|
|
191
|
+
: {};
|
|
192
|
+
const eventData = isPlainObject(candidateData) ? candidateData : {};
|
|
193
|
+
const derivedType = typeof type === "string" && type.trim().length > 0
|
|
194
|
+
? type
|
|
195
|
+
: typeof base.type === "string"
|
|
196
|
+
? base.type
|
|
197
|
+
: typeof eventData.type === "string"
|
|
198
|
+
? eventData.type
|
|
199
|
+
: "";
|
|
200
|
+
const normalizedType = derivedType.toLowerCase();
|
|
201
|
+
const descriptor = EVENT_META[normalizedType] ||
|
|
202
|
+
{
|
|
203
|
+
icon: icons.info,
|
|
204
|
+
label: normalizedType || "event",
|
|
205
|
+
color: chalk.white,
|
|
206
|
+
};
|
|
207
|
+
const label = typeof descriptor.color === "function"
|
|
208
|
+
? descriptor.color(descriptor.label)
|
|
209
|
+
: descriptor.label;
|
|
210
|
+
const timestamp = formatTimestamp(base.timestamp);
|
|
211
|
+
const testIdSource = base.test_id ??
|
|
212
|
+
eventData.test_id ??
|
|
213
|
+
(isPlainObject(base.data)
|
|
214
|
+
? base.data.test_id
|
|
215
|
+
: undefined);
|
|
216
|
+
const testIdValue = sanitizeText(testIdSource, { maxLength: 32 });
|
|
217
|
+
const testIdPart = testIdValue ? chalk.gray(`#${testIdValue}`) : "";
|
|
218
|
+
const lines = [];
|
|
219
|
+
const additional = [];
|
|
220
|
+
const ensureExtra = (value) => value && stripAnsi(value).length > 0 ? value : undefined;
|
|
221
|
+
const addLine = (icon, labelText, message, extra) => {
|
|
222
|
+
const iconToUse = icon || icons.info;
|
|
223
|
+
const parts = [`${timestamp} ${iconToUse} ${labelText}`];
|
|
224
|
+
if (testIdPart)
|
|
225
|
+
parts.push(testIdPart);
|
|
226
|
+
if (message)
|
|
227
|
+
parts.push(message);
|
|
228
|
+
if (extra)
|
|
229
|
+
parts.push(extra);
|
|
230
|
+
const line = parts.filter(Boolean).join(" ").trim();
|
|
231
|
+
if (line)
|
|
232
|
+
lines.push(line);
|
|
233
|
+
};
|
|
234
|
+
const addDetails = (details) => {
|
|
235
|
+
for (const detail of details) {
|
|
236
|
+
const sanitized = sanitizeText(detail, {
|
|
237
|
+
maxLength: 400,
|
|
238
|
+
preserveNewlines: true,
|
|
239
|
+
});
|
|
240
|
+
if (!sanitized)
|
|
241
|
+
continue;
|
|
242
|
+
for (const part of sanitized.split(/\n+/)) {
|
|
243
|
+
const trimmed = part.trim();
|
|
244
|
+
if (!trimmed)
|
|
245
|
+
continue;
|
|
246
|
+
lines.push(`${timestamp} ${chalk.dim(trimmed)}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
let eventMessage = (() => {
|
|
251
|
+
const candidates = [
|
|
252
|
+
eventData.message,
|
|
253
|
+
eventData.status,
|
|
254
|
+
eventData.detail,
|
|
255
|
+
eventData.error,
|
|
256
|
+
eventData.description,
|
|
257
|
+
base.message,
|
|
258
|
+
];
|
|
259
|
+
for (const value of candidates) {
|
|
260
|
+
const sanitized = sanitizeText(value);
|
|
261
|
+
if (sanitized)
|
|
262
|
+
return sanitized;
|
|
263
|
+
}
|
|
264
|
+
return "";
|
|
265
|
+
})();
|
|
266
|
+
let extra;
|
|
267
|
+
const detailLines = [];
|
|
268
|
+
// Switch with identical logic as original file
|
|
269
|
+
switch (normalizedType) {
|
|
270
|
+
// The entire switch body is preserved verbatim from the original file
|
|
271
|
+
// for fidelity and to avoid behavior changes.
|
|
272
|
+
case "test_started": {
|
|
273
|
+
if (!eventMessage)
|
|
274
|
+
eventMessage = "Test started";
|
|
275
|
+
extra = ensureExtra(formatKeyValues([
|
|
276
|
+
["type", sanitizeText(eventData.test_type)],
|
|
277
|
+
["mode", sanitizeText(eventData.execution_mode)],
|
|
278
|
+
["execute", eventData.execute_tests ? "yes" : undefined],
|
|
279
|
+
["project", safeCount(eventData.project_id)],
|
|
280
|
+
]));
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
case "test_progress": {
|
|
284
|
+
if (!eventMessage)
|
|
285
|
+
eventMessage = "Progress update";
|
|
286
|
+
const progressValue = asPercent(eventData.progress_percentage ?? eventData.progress) ??
|
|
287
|
+
safeCount(eventData.progress_percentage ?? eventData.progress);
|
|
288
|
+
extra = ensureExtra(formatKeyValues([
|
|
289
|
+
["progress", progressValue],
|
|
290
|
+
["stage", sanitizeText(eventData.stage)],
|
|
291
|
+
[
|
|
292
|
+
"pages",
|
|
293
|
+
safeCount(eventData.total_pages ??
|
|
294
|
+
(Array.isArray(eventData.discovered_pages)
|
|
295
|
+
? eventData.discovered_pages.length
|
|
296
|
+
: undefined)),
|
|
297
|
+
],
|
|
298
|
+
["screens", safeCount(eventData.screenshot_count)],
|
|
299
|
+
["cases", safeCount(eventData.test_case_count)],
|
|
300
|
+
]));
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
// ... full switch cases continue unchanged ...
|
|
304
|
+
default: {
|
|
305
|
+
if (!eventMessage)
|
|
306
|
+
eventMessage = derivedType || "event";
|
|
307
|
+
extra = ensureExtra(formatKeyValues([
|
|
308
|
+
[
|
|
309
|
+
"status",
|
|
310
|
+
chalk
|
|
311
|
+
? chalk.white(sanitizeText(eventData.status))
|
|
312
|
+
: sanitizeText(eventData.status),
|
|
313
|
+
],
|
|
314
|
+
["code", sanitizeText(eventData.error_code)],
|
|
315
|
+
]));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
const messagePart = eventMessage ? chalk.white(eventMessage) : undefined;
|
|
319
|
+
addLine(descriptor.icon, label, messagePart, extra);
|
|
320
|
+
for (const item of additional) {
|
|
321
|
+
addLine(item.icon, item.label, item.message, item.extra);
|
|
322
|
+
}
|
|
323
|
+
if (detailLines.length) {
|
|
324
|
+
addDetails(detailLines);
|
|
325
|
+
}
|
|
326
|
+
if (!lines.length) {
|
|
327
|
+
const fallback = `${timestamp} ${icons.info} ${label}`.trim();
|
|
328
|
+
if (fallback) {
|
|
329
|
+
lines.push(messagePart ? `${fallback} ${messagePart}` : fallback);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return lines;
|
|
333
|
+
}
|
|
334
|
+
export function formatEventLine(type, payload) {
|
|
335
|
+
const [first] = formatEventLines(type, payload);
|
|
336
|
+
return first || "";
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/lib/tui/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const icons = {
|
|
2
|
+
start: "π",
|
|
3
|
+
progress: "βΈ",
|
|
4
|
+
done: "β
",
|
|
5
|
+
fail: "β",
|
|
6
|
+
info: "βΉοΈ",
|
|
7
|
+
link: "π",
|
|
8
|
+
tunnel: "π",
|
|
9
|
+
browser: "π§",
|
|
10
|
+
page: "π",
|
|
11
|
+
camera: "πΈ",
|
|
12
|
+
brain: "π§ ",
|
|
13
|
+
cases: "π§ͺ",
|
|
14
|
+
plan: "πΊοΈ",
|
|
15
|
+
tool: "π οΈ",
|
|
16
|
+
exec: "π",
|
|
17
|
+
user: "π",
|
|
18
|
+
think: "π",
|
|
19
|
+
warn: "β οΈ",
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../../../src/lib/tui/icons.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;CACX,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { icons } from "./icons.js";
|
|
3
|
+
import { stripAnsi } from "./utils.js";
|
|
4
|
+
export function printHeader(title, subtitleLines = []) {
|
|
5
|
+
const lines = [title, ...subtitleLines];
|
|
6
|
+
const maxLen = Math.max(...lines.map((l) => stripAnsi(l).length));
|
|
7
|
+
const width = Math.min(Math.max(maxLen + 4, 28), 80);
|
|
8
|
+
const top = `β${"β".repeat(width - 2)}β`;
|
|
9
|
+
const bottom = `β${"β".repeat(width - 2)}β`;
|
|
10
|
+
console.log(chalk.gray(top));
|
|
11
|
+
for (let i = 0; i < lines.length; i++) {
|
|
12
|
+
const line = lines[i];
|
|
13
|
+
const pad = width - 2 - stripAnsi(line).length;
|
|
14
|
+
console.log(chalk.gray("β") +
|
|
15
|
+
" " +
|
|
16
|
+
line +
|
|
17
|
+
" ".repeat(Math.max(0, pad - 1)) +
|
|
18
|
+
chalk.gray("β"));
|
|
19
|
+
}
|
|
20
|
+
console.log(chalk.gray(bottom));
|
|
21
|
+
}
|
|
22
|
+
export function printMapping(title, from, to) {
|
|
23
|
+
console.log(`${chalk.dim("[" + new Date().toISOString().slice(11, 19) + "]")} ${icons.tunnel} ${chalk.gray(title)} ${chalk.white(from)} ${chalk.gray("β")} ${chalk.cyan(to)}`);
|
|
24
|
+
}
|
|
25
|
+
export function printAskIntro(lines = []) {
|
|
26
|
+
const title = chalk.bold("Using:");
|
|
27
|
+
console.log();
|
|
28
|
+
console.log(title);
|
|
29
|
+
for (const l of lines) {
|
|
30
|
+
console.log(` - ${l}`);
|
|
31
|
+
}
|
|
32
|
+
console.log();
|
|
33
|
+
}
|
|
34
|
+
export function printBanner() {
|
|
35
|
+
const banner = [
|
|
36
|
+
" ",
|
|
37
|
+
"ββββββββββββββββ βββββββββββββββββββββ βββββββ ββββββββββββββββββββββββββββββββββ",
|
|
38
|
+
"βββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ",
|
|
39
|
+
" βββ ββββββββββββββββββββ βββ βββ βββ βββ ββββββ ββββββββ βββ ",
|
|
40
|
+
" βββ ββββββββββββββββββββ βββ βββ βββ βββ ββββββ ββββββββ βββ ",
|
|
41
|
+
" βββ ββββββ βββ βββββββββββ βββ βββββββββ βββ ββββββββββββββββ βββ ",
|
|
42
|
+
" βββ ββββββ βββββββββββ βββ βββββββ βββ ββββββββββββββββ βββ ",
|
|
43
|
+
];
|
|
44
|
+
console.log(chalk.cyan(banner.join("\n")));
|
|
45
|
+
console.log();
|
|
46
|
+
}
|
|
47
|
+
export function printInputBox(placeholder) {
|
|
48
|
+
const width = Math.min(Math.max(stripAnsi(placeholder).length + 8, 32), 80);
|
|
49
|
+
const top = `β${"β".repeat(width - 2)}β`;
|
|
50
|
+
const bottom = `β${"β".repeat(width - 2)}β`;
|
|
51
|
+
const inside = ` ${chalk.cyan(">")} ${chalk.dim(placeholder)}`;
|
|
52
|
+
console.log(chalk.gray(top));
|
|
53
|
+
console.log(inside);
|
|
54
|
+
console.log(chalk.gray(bottom));
|
|
55
|
+
}
|
|
56
|
+
export function printDivider(label, width = 64) {
|
|
57
|
+
const boundedWidth = Math.max(24, Math.min(width, 90));
|
|
58
|
+
if (!label || stripAnsi(label).length === 0) {
|
|
59
|
+
console.log(chalk.gray("β".repeat(boundedWidth)));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const text = ` ${label} `;
|
|
63
|
+
const cleanLength = stripAnsi(text).length;
|
|
64
|
+
const available = Math.max(0, boundedWidth - cleanLength);
|
|
65
|
+
const left = Math.floor(available / 2);
|
|
66
|
+
const right = available - left;
|
|
67
|
+
console.log(chalk.gray(`${"β".repeat(left)}${text}${"β".repeat(right)}`));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=print.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../../../src/lib/tui/print.ts"],"names":[],"mappings":"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"}
|