@hasna/browser 0.4.5 → 0.4.7
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/LICENSE +1 -1
- package/README.md +14 -1
- package/dist/cli/commands/tools.d.ts.map +1 -1
- package/dist/cli/index.js +1262 -773
- package/dist/db/gallery.d.ts.map +1 -1
- package/dist/engines/tui.d.ts +62 -22
- package/dist/engines/tui.d.ts.map +1 -1
- package/dist/index.js +345 -100
- package/dist/lib/actions.d.ts +2 -1
- package/dist/lib/actions.d.ts.map +1 -1
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/session.d.ts +4 -0
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/stealth.d.ts.map +1 -1
- package/dist/mcp/actions.d.ts.map +1 -1
- package/dist/mcp/agents.d.ts +3 -0
- package/dist/mcp/agents.d.ts.map +1 -0
- package/dist/mcp/gallery.d.ts +3 -0
- package/dist/mcp/gallery.d.ts.map +1 -0
- package/dist/mcp/index.js +914 -526
- package/dist/mcp/integration.d.ts +3 -0
- package/dist/mcp/integration.d.ts.map +1 -0
- package/dist/mcp/meta-regression.test.d.ts +2 -0
- package/dist/mcp/meta-regression.test.d.ts.map +1 -0
- package/dist/mcp/meta.d.ts.map +1 -1
- package/dist/mcp/sessions.d.ts.map +1 -1
- package/dist/mcp/tui.d.ts.map +1 -1
- package/dist/server/index.js +460 -145
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/db/gallery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../src/db/gallery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../../src/db/gallery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAwDpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,YAAY,CA8BvF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAIxD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE,CAqBlE;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/D,YAAY,GAAG,IAAI,CAarB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG5C;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKrE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAIvE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAE7E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,YAAY,EAAE,CASnE;AAED,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CA2BhE"}
|
package/dist/engines/tui.d.ts
CHANGED
|
@@ -1,25 +1,55 @@
|
|
|
1
1
|
import { type ChildProcess } from "node:child_process";
|
|
2
2
|
import type { Browser, Page } from "playwright";
|
|
3
3
|
export type TuiTheme = "dark" | "light" | "system";
|
|
4
|
+
export type TuiReadMethod = "buffer" | "dom";
|
|
5
|
+
export interface TuiRowRef {
|
|
6
|
+
row: number;
|
|
7
|
+
text: string;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
selector?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TuiState {
|
|
12
|
+
method: TuiReadMethod;
|
|
13
|
+
text: string;
|
|
14
|
+
rows: string[];
|
|
15
|
+
row_count: number;
|
|
16
|
+
cols: number | null;
|
|
17
|
+
total_rows: number;
|
|
18
|
+
buffer_length: number | null;
|
|
19
|
+
cursor_row: number;
|
|
20
|
+
cursor_col: number;
|
|
21
|
+
font_size: number | null;
|
|
22
|
+
theme: "dark" | "light";
|
|
23
|
+
refs: Record<string, TuiRowRef>;
|
|
24
|
+
}
|
|
4
25
|
export interface TuiSession {
|
|
5
26
|
ttydProcess: ChildProcess;
|
|
6
27
|
port: number;
|
|
7
28
|
browser: Browser;
|
|
8
29
|
page: Page;
|
|
9
30
|
theme: TuiTheme;
|
|
31
|
+
method: TuiReadMethod;
|
|
32
|
+
lastHealthCheck: number;
|
|
33
|
+
reconnectCount: number;
|
|
10
34
|
}
|
|
35
|
+
export type TuiHealthStatus = {
|
|
36
|
+
healthy: true;
|
|
37
|
+
latency_ms: number;
|
|
38
|
+
} | {
|
|
39
|
+
healthy: false;
|
|
40
|
+
reason: string;
|
|
41
|
+
};
|
|
11
42
|
/**
|
|
12
|
-
*
|
|
43
|
+
* Probe the ttyd page with a cheap evaluate call to determine if the connection
|
|
44
|
+
* is still alive. Returns within HEALTH_CHECK_TIMEOUT_MS.
|
|
13
45
|
*/
|
|
14
|
-
export declare function
|
|
46
|
+
export declare function isTuiHealthy(session: TuiSession): Promise<TuiHealthStatus>;
|
|
15
47
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* @param options - Viewport and headless options
|
|
20
|
-
* @returns TuiSession with Playwright page connected to the ttyd web UI
|
|
48
|
+
* Attempt to reconnect to a stuck ttyd session. Kills the old process, restarts
|
|
49
|
+
* ttyd on the same port, and re-attaches Playwright. Returns a new TuiSession;
|
|
50
|
+
* the old session is invalid after this call.
|
|
21
51
|
*/
|
|
22
|
-
export declare function
|
|
52
|
+
export declare function reconnectTui(session: TuiSession, command: string, options?: {
|
|
23
53
|
headless?: boolean;
|
|
24
54
|
viewport?: {
|
|
25
55
|
width: number;
|
|
@@ -27,27 +57,37 @@ export declare function launchTui(command: string, options?: {
|
|
|
27
57
|
};
|
|
28
58
|
theme?: TuiTheme;
|
|
29
59
|
fontSize?: number;
|
|
60
|
+
method?: TuiReadMethod;
|
|
30
61
|
}): Promise<TuiSession>;
|
|
31
62
|
/**
|
|
32
|
-
*
|
|
33
|
-
* Types into the terminal's xterm.js input.
|
|
34
|
-
*/
|
|
35
|
-
export declare function sendKeys(page: Page, keys: string): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Send a special key (Enter, Escape, ArrowUp, etc.) to the TUI.
|
|
63
|
+
* Check if ttyd is installed on this system.
|
|
38
64
|
*/
|
|
39
|
-
export declare function
|
|
65
|
+
export declare function isTuiAvailable(): boolean;
|
|
40
66
|
/**
|
|
41
|
-
*
|
|
42
|
-
* Works with both canvas-based and DOM-based xterm.js renderers.
|
|
67
|
+
* Launch a terminal app via ttyd and connect Playwright to it.
|
|
43
68
|
*/
|
|
44
|
-
export declare function
|
|
69
|
+
export declare function launchTui(command: string, options?: {
|
|
70
|
+
headless?: boolean;
|
|
71
|
+
viewport?: {
|
|
72
|
+
width: number;
|
|
73
|
+
height: number;
|
|
74
|
+
};
|
|
75
|
+
theme?: TuiTheme;
|
|
76
|
+
fontSize?: number;
|
|
77
|
+
method?: TuiReadMethod;
|
|
78
|
+
}): Promise<TuiSession>;
|
|
79
|
+
export declare function getTerminalState(page: Page, method?: TuiReadMethod, timeoutMs?: number): Promise<TuiState>;
|
|
80
|
+
export declare function sendKeys(page: Page, keys: string, timeoutMs?: number): Promise<void>;
|
|
81
|
+
export declare function sendSpecialKey(page: Page, key: string, timeoutMs?: number): Promise<void>;
|
|
82
|
+
export declare function getTerminalText(page: Page, timeoutMs?: number, method?: TuiReadMethod): Promise<string>;
|
|
45
83
|
/**
|
|
46
84
|
* Wait for specific text to appear in the terminal output.
|
|
85
|
+
* Per-poll health probe detects a stuck terminal early and returns stuck:true.
|
|
47
86
|
*/
|
|
48
|
-
export declare function waitForTerminalText(page: Page, text: string, timeoutMs?: number): Promise<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
87
|
+
export declare function waitForTerminalText(page: Page, text: string, timeoutMs?: number, method?: TuiReadMethod): Promise<{
|
|
88
|
+
found: boolean;
|
|
89
|
+
elapsed_ms: number;
|
|
90
|
+
stuck: boolean;
|
|
91
|
+
}>;
|
|
52
92
|
export declare function closeTui(session: TuiSession): Promise<void>;
|
|
53
93
|
//# sourceMappingURL=tui.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/engines/tui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/engines/tui.ts"],"names":[],"mappings":"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"}
|