@textjs/app 0.0.0-stage → 1.0.2

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.
Files changed (335) hide show
  1. package/README.md +34 -2
  2. package/bin/text.js +29 -0
  3. package/bin/text.ts +13 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/cli/build.d.ts +39 -0
  6. package/dist/cli/build.d.ts.map +1 -0
  7. package/dist/cli/build.js +157 -0
  8. package/dist/cli/build.js.map +1 -0
  9. package/dist/cli/config.d.ts +22 -0
  10. package/dist/cli/config.d.ts.map +1 -0
  11. package/dist/cli/config.js +73 -0
  12. package/dist/cli/config.js.map +1 -0
  13. package/dist/cli/dev.d.ts +12 -0
  14. package/dist/cli/dev.d.ts.map +1 -0
  15. package/dist/cli/dev.js +49 -0
  16. package/dist/cli/dev.js.map +1 -0
  17. package/dist/cli/index.d.ts +26 -0
  18. package/dist/cli/index.d.ts.map +1 -0
  19. package/dist/cli/index.js +192 -0
  20. package/dist/cli/index.js.map +1 -0
  21. package/dist/cli/run.d.ts +31 -0
  22. package/dist/cli/run.d.ts.map +1 -0
  23. package/dist/cli/run.js +111 -0
  24. package/dist/cli/run.js.map +1 -0
  25. package/dist/cli/start.d.ts +14 -0
  26. package/dist/cli/start.d.ts.map +1 -0
  27. package/dist/cli/start.js +183 -0
  28. package/dist/cli/start.js.map +1 -0
  29. package/dist/cli/ui.d.ts +35 -0
  30. package/dist/cli/ui.d.ts.map +1 -0
  31. package/dist/cli/ui.js +73 -0
  32. package/dist/cli/ui.js.map +1 -0
  33. package/dist/client.d.ts +34 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +93 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/config.d.ts +143 -0
  38. package/dist/config.d.ts.map +1 -0
  39. package/dist/config.js +28 -0
  40. package/dist/config.js.map +1 -0
  41. package/dist/context.d.ts +44 -0
  42. package/dist/context.d.ts.map +1 -0
  43. package/dist/context.js +26 -0
  44. package/dist/context.js.map +1 -0
  45. package/dist/dev-errors.d.ts +68 -0
  46. package/dist/dev-errors.d.ts.map +1 -0
  47. package/dist/dev-errors.js +121 -0
  48. package/dist/dev-errors.js.map +1 -0
  49. package/dist/devtools.d.ts +64 -0
  50. package/dist/devtools.d.ts.map +1 -0
  51. package/dist/devtools.js +186 -0
  52. package/dist/devtools.js.map +1 -0
  53. package/dist/frame-mirror.d.ts +19 -0
  54. package/dist/frame-mirror.d.ts.map +1 -0
  55. package/dist/frame-mirror.js +141 -0
  56. package/dist/frame-mirror.js.map +1 -0
  57. package/dist/frame-protocol.d.ts +175 -0
  58. package/dist/frame-protocol.d.ts.map +1 -0
  59. package/dist/frame-protocol.js +369 -0
  60. package/dist/frame-protocol.js.map +1 -0
  61. package/dist/history.d.ts +54 -0
  62. package/dist/history.d.ts.map +1 -0
  63. package/dist/history.js +152 -0
  64. package/dist/history.js.map +1 -0
  65. package/dist/index.d.ts +9 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +8 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/link.d.ts +32 -0
  70. package/dist/link.d.ts.map +1 -0
  71. package/dist/link.js +54 -0
  72. package/dist/link.js.map +1 -0
  73. package/dist/live-player.d.ts +83 -0
  74. package/dist/live-player.d.ts.map +1 -0
  75. package/dist/live-player.js +413 -0
  76. package/dist/live-player.js.map +1 -0
  77. package/dist/live-protocol.d.ts +132 -0
  78. package/dist/live-protocol.d.ts.map +1 -0
  79. package/dist/live-protocol.js +278 -0
  80. package/dist/live-protocol.js.map +1 -0
  81. package/dist/live-stub.d.ts +10 -0
  82. package/dist/live-stub.d.ts.map +1 -0
  83. package/dist/live-stub.js +32 -0
  84. package/dist/live-stub.js.map +1 -0
  85. package/dist/mcp/cli.d.ts +22 -0
  86. package/dist/mcp/cli.d.ts.map +1 -0
  87. package/dist/mcp/cli.js +177 -0
  88. package/dist/mcp/cli.js.map +1 -0
  89. package/dist/mcp/frame.d.ts +58 -0
  90. package/dist/mcp/frame.d.ts.map +1 -0
  91. package/dist/mcp/frame.js +169 -0
  92. package/dist/mcp/frame.js.map +1 -0
  93. package/dist/mcp/index.d.ts +15 -0
  94. package/dist/mcp/index.d.ts.map +1 -0
  95. package/dist/mcp/index.js +15 -0
  96. package/dist/mcp/index.js.map +1 -0
  97. package/dist/mcp/inspect.d.ts +95 -0
  98. package/dist/mcp/inspect.d.ts.map +1 -0
  99. package/dist/mcp/inspect.js +386 -0
  100. package/dist/mcp/inspect.js.map +1 -0
  101. package/dist/mcp/keys.d.ts +20 -0
  102. package/dist/mcp/keys.d.ts.map +1 -0
  103. package/dist/mcp/keys.js +87 -0
  104. package/dist/mcp/keys.js.map +1 -0
  105. package/dist/mcp/logs.d.ts +63 -0
  106. package/dist/mcp/logs.d.ts.map +1 -0
  107. package/dist/mcp/logs.js +217 -0
  108. package/dist/mcp/logs.js.map +1 -0
  109. package/dist/mcp/server.d.ts +64 -0
  110. package/dist/mcp/server.d.ts.map +1 -0
  111. package/dist/mcp/server.js +485 -0
  112. package/dist/mcp/server.js.map +1 -0
  113. package/dist/mcp/session.d.ts +230 -0
  114. package/dist/mcp/session.d.ts.map +1 -0
  115. package/dist/mcp/session.js +742 -0
  116. package/dist/mcp/session.js.map +1 -0
  117. package/dist/navigation-errors.d.ts +28 -0
  118. package/dist/navigation-errors.d.ts.map +1 -0
  119. package/dist/navigation-errors.js +43 -0
  120. package/dist/navigation-errors.js.map +1 -0
  121. package/dist/navigation.d.ts +21 -0
  122. package/dist/navigation.d.ts.map +1 -0
  123. package/dist/navigation.js +33 -0
  124. package/dist/navigation.js.map +1 -0
  125. package/dist/router.d.ts +76 -0
  126. package/dist/router.d.ts.map +1 -0
  127. package/dist/router.js +296 -0
  128. package/dist/router.js.map +1 -0
  129. package/dist/routing.d.ts +101 -0
  130. package/dist/routing.d.ts.map +1 -0
  131. package/dist/routing.js +286 -0
  132. package/dist/routing.js.map +1 -0
  133. package/dist/server/adapters/build-step.d.ts +34 -0
  134. package/dist/server/adapters/build-step.d.ts.map +1 -0
  135. package/dist/server/adapters/build-step.js +112 -0
  136. package/dist/server/adapters/build-step.js.map +1 -0
  137. package/dist/server/adapters/bun.d.ts +8 -0
  138. package/dist/server/adapters/bun.d.ts.map +1 -0
  139. package/dist/server/adapters/bun.js +89 -0
  140. package/dist/server/adapters/bun.js.map +1 -0
  141. package/dist/server/adapters/bundle.d.ts +21 -0
  142. package/dist/server/adapters/bundle.d.ts.map +1 -0
  143. package/dist/server/adapters/bundle.js +86 -0
  144. package/dist/server/adapters/bundle.js.map +1 -0
  145. package/dist/server/adapters/cloudflare.d.ts +29 -0
  146. package/dist/server/adapters/cloudflare.d.ts.map +1 -0
  147. package/dist/server/adapters/cloudflare.js +105 -0
  148. package/dist/server/adapters/cloudflare.js.map +1 -0
  149. package/dist/server/adapters/index.d.ts +10 -0
  150. package/dist/server/adapters/index.d.ts.map +1 -0
  151. package/dist/server/adapters/index.js +24 -0
  152. package/dist/server/adapters/index.js.map +1 -0
  153. package/dist/server/adapters/runtime-node.d.ts +16 -0
  154. package/dist/server/adapters/runtime-node.d.ts.map +1 -0
  155. package/dist/server/adapters/runtime-node.js +29 -0
  156. package/dist/server/adapters/runtime-node.js.map +1 -0
  157. package/dist/server/adapters/runtime.d.ts +42 -0
  158. package/dist/server/adapters/runtime.d.ts.map +1 -0
  159. package/dist/server/adapters/runtime.js +115 -0
  160. package/dist/server/adapters/runtime.js.map +1 -0
  161. package/dist/server/adapters/shared.d.ts +66 -0
  162. package/dist/server/adapters/shared.d.ts.map +1 -0
  163. package/dist/server/adapters/shared.js +124 -0
  164. package/dist/server/adapters/shared.js.map +1 -0
  165. package/dist/server/adapters/static.d.ts +9 -0
  166. package/dist/server/adapters/static.d.ts.map +1 -0
  167. package/dist/server/adapters/static.js +70 -0
  168. package/dist/server/adapters/static.js.map +1 -0
  169. package/dist/server/adapters/vercel.d.ts +43 -0
  170. package/dist/server/adapters/vercel.d.ts.map +1 -0
  171. package/dist/server/adapters/vercel.js +119 -0
  172. package/dist/server/adapters/vercel.js.map +1 -0
  173. package/dist/server/bun-jsx.d.ts +18 -0
  174. package/dist/server/bun-jsx.d.ts.map +1 -0
  175. package/dist/server/bun-jsx.js +56 -0
  176. package/dist/server/bun-jsx.js.map +1 -0
  177. package/dist/server/cache-route.d.ts +38 -0
  178. package/dist/server/cache-route.d.ts.map +1 -0
  179. package/dist/server/cache-route.js +109 -0
  180. package/dist/server/cache-route.js.map +1 -0
  181. package/dist/server/cache.d.ts +131 -0
  182. package/dist/server/cache.d.ts.map +1 -0
  183. package/dist/server/cache.js +409 -0
  184. package/dist/server/cache.js.map +1 -0
  185. package/dist/server/frames.d.ts +45 -0
  186. package/dist/server/frames.d.ts.map +1 -0
  187. package/dist/server/frames.js +294 -0
  188. package/dist/server/frames.js.map +1 -0
  189. package/dist/server/http.d.ts +80 -0
  190. package/dist/server/http.d.ts.map +1 -0
  191. package/dist/server/http.js +453 -0
  192. package/dist/server/http.js.map +1 -0
  193. package/dist/server/jsx-dev-runtime.d.ts +5 -0
  194. package/dist/server/jsx-dev-runtime.d.ts.map +1 -0
  195. package/dist/server/jsx-dev-runtime.js +6 -0
  196. package/dist/server/jsx-dev-runtime.js.map +1 -0
  197. package/dist/server/jsx-runtime.d.ts +10 -0
  198. package/dist/server/jsx-runtime.d.ts.map +1 -0
  199. package/dist/server/jsx-runtime.js +11 -0
  200. package/dist/server/jsx-runtime.js.map +1 -0
  201. package/dist/server/live-app.d.ts +87 -0
  202. package/dist/server/live-app.d.ts.map +1 -0
  203. package/dist/server/live-app.js +307 -0
  204. package/dist/server/live-app.js.map +1 -0
  205. package/dist/server/live-build.d.ts +70 -0
  206. package/dist/server/live-build.d.ts.map +1 -0
  207. package/dist/server/live-build.js +222 -0
  208. package/dist/server/live-build.js.map +1 -0
  209. package/dist/server/live-dev.d.ts +62 -0
  210. package/dist/server/live-dev.d.ts.map +1 -0
  211. package/dist/server/live-dev.js +313 -0
  212. package/dist/server/live-dev.js.map +1 -0
  213. package/dist/server/live-manifest.d.ts +23 -0
  214. package/dist/server/live-manifest.d.ts.map +1 -0
  215. package/dist/server/live-manifest.js +7 -0
  216. package/dist/server/live-manifest.js.map +1 -0
  217. package/dist/server/live-prod.d.ts +30 -0
  218. package/dist/server/live-prod.d.ts.map +1 -0
  219. package/dist/server/live-prod.js +97 -0
  220. package/dist/server/live-prod.js.map +1 -0
  221. package/dist/server/live-routes.d.ts +72 -0
  222. package/dist/server/live-routes.d.ts.map +1 -0
  223. package/dist/server/live-routes.js +274 -0
  224. package/dist/server/live-routes.js.map +1 -0
  225. package/dist/server/live-web.d.ts +16 -0
  226. package/dist/server/live-web.d.ts.map +1 -0
  227. package/dist/server/live-web.js +159 -0
  228. package/dist/server/live-web.js.map +1 -0
  229. package/dist/server/live.d.ts +138 -0
  230. package/dist/server/live.d.ts.map +1 -0
  231. package/dist/server/live.js +542 -0
  232. package/dist/server/live.js.map +1 -0
  233. package/dist/server/middleware-node.d.ts +48 -0
  234. package/dist/server/middleware-node.d.ts.map +1 -0
  235. package/dist/server/middleware-node.js +167 -0
  236. package/dist/server/middleware-node.js.map +1 -0
  237. package/dist/server/middleware-runtime.d.ts +97 -0
  238. package/dist/server/middleware-runtime.d.ts.map +1 -0
  239. package/dist/server/middleware-runtime.js +447 -0
  240. package/dist/server/middleware-runtime.js.map +1 -0
  241. package/dist/server/middleware.d.ts +145 -0
  242. package/dist/server/middleware.d.ts.map +1 -0
  243. package/dist/server/middleware.js +365 -0
  244. package/dist/server/middleware.js.map +1 -0
  245. package/dist/server/ppr.d.ts +22 -0
  246. package/dist/server/ppr.d.ts.map +1 -0
  247. package/dist/server/ppr.js +58 -0
  248. package/dist/server/ppr.js.map +1 -0
  249. package/dist/server/scan.d.ts +48 -0
  250. package/dist/server/scan.d.ts.map +1 -0
  251. package/dist/server/scan.js +161 -0
  252. package/dist/server/scan.js.map +1 -0
  253. package/dist/server/server-components.d.ts +65 -0
  254. package/dist/server/server-components.d.ts.map +1 -0
  255. package/dist/server/server-components.js +215 -0
  256. package/dist/server/server-components.js.map +1 -0
  257. package/dist/terminal.d.ts +5 -0
  258. package/dist/terminal.d.ts.map +1 -0
  259. package/dist/terminal.js +5 -0
  260. package/dist/terminal.js.map +1 -0
  261. package/dist/testing.d.ts +5 -0
  262. package/dist/testing.d.ts.map +1 -0
  263. package/dist/testing.js +5 -0
  264. package/dist/testing.js.map +1 -0
  265. package/dist/vite-plugin.d.ts +51 -0
  266. package/dist/vite-plugin.d.ts.map +1 -0
  267. package/dist/vite-plugin.js +403 -0
  268. package/dist/vite-plugin.js.map +1 -0
  269. package/package.json +130 -4
  270. package/src/cli/build.ts +182 -0
  271. package/src/cli/config.ts +72 -0
  272. package/src/cli/dev.ts +54 -0
  273. package/src/cli/index.ts +185 -0
  274. package/src/cli/run.ts +124 -0
  275. package/src/cli/start.ts +194 -0
  276. package/src/cli/ui.ts +93 -0
  277. package/src/client.tsx +122 -0
  278. package/src/config.ts +155 -0
  279. package/src/context.ts +69 -0
  280. package/src/dev-errors.ts +167 -0
  281. package/src/devtools.tsx +419 -0
  282. package/src/frame-mirror.ts +145 -0
  283. package/src/frame-protocol.ts +435 -0
  284. package/src/history.ts +201 -0
  285. package/src/index.ts +9 -0
  286. package/src/link.tsx +108 -0
  287. package/src/live-player.ts +449 -0
  288. package/src/live-protocol.ts +317 -0
  289. package/src/live-stub.tsx +32 -0
  290. package/src/mcp/cli.ts +188 -0
  291. package/src/mcp/frame.ts +224 -0
  292. package/src/mcp/index.ts +15 -0
  293. package/src/mcp/inspect.ts +445 -0
  294. package/src/mcp/keys.ts +86 -0
  295. package/src/mcp/logs.ts +225 -0
  296. package/src/mcp/server.ts +595 -0
  297. package/src/mcp/session.ts +821 -0
  298. package/src/navigation-errors.ts +60 -0
  299. package/src/navigation.ts +44 -0
  300. package/src/router.tsx +497 -0
  301. package/src/routing.ts +344 -0
  302. package/src/server/adapters/build-step.ts +135 -0
  303. package/src/server/adapters/bun.ts +92 -0
  304. package/src/server/adapters/bundle.ts +97 -0
  305. package/src/server/adapters/cloudflare.ts +111 -0
  306. package/src/server/adapters/index.ts +29 -0
  307. package/src/server/adapters/runtime-node.ts +34 -0
  308. package/src/server/adapters/runtime.ts +145 -0
  309. package/src/server/adapters/shared.ts +159 -0
  310. package/src/server/adapters/static.ts +68 -0
  311. package/src/server/adapters/vercel.ts +149 -0
  312. package/src/server/bun-jsx.ts +65 -0
  313. package/src/server/cache-route.ts +139 -0
  314. package/src/server/cache.ts +498 -0
  315. package/src/server/frames.ts +326 -0
  316. package/src/server/http.ts +467 -0
  317. package/src/server/jsx-dev-runtime.ts +9 -0
  318. package/src/server/jsx-runtime.ts +13 -0
  319. package/src/server/live-app.tsx +374 -0
  320. package/src/server/live-build.ts +258 -0
  321. package/src/server/live-dev.ts +357 -0
  322. package/src/server/live-manifest.ts +25 -0
  323. package/src/server/live-prod.ts +120 -0
  324. package/src/server/live-routes.ts +298 -0
  325. package/src/server/live-web.ts +170 -0
  326. package/src/server/live.ts +551 -0
  327. package/src/server/middleware-node.ts +168 -0
  328. package/src/server/middleware-runtime.ts +478 -0
  329. package/src/server/middleware.ts +451 -0
  330. package/src/server/ppr.ts +62 -0
  331. package/src/server/scan.ts +190 -0
  332. package/src/server/server-components.ts +224 -0
  333. package/src/terminal.ts +5 -0
  334. package/src/testing.ts +5 -0
  335. package/src/vite-plugin.ts +413 -0
@@ -0,0 +1,230 @@
1
+ /**
2
+ * A headless Text.js app session for `text mcp`: the `app/` directory mounted
3
+ * in-process (same route manifest and in-process route handlers as `text run`,
4
+ * memory history), rendered into an offscreen cell grid and driven with keys.
5
+ *
6
+ * Frame pacing is deterministic for agents: every input waits for the app to
7
+ * go idle — no scheduled frame, no in-flight `fetch`, and no commit or frame
8
+ * for `quietMs` — before the frame is read.
9
+ */
10
+ import { type ConsoleRoot, type ThemeName } from "@textjs/react";
11
+ import { type FlatRoute } from "../routing.js";
12
+ import { type ApiRoute } from "../server/scan.js";
13
+ import { type Region, type StyledRow } from "./frame.js";
14
+ import { FiberProbe, type Bounds, type InspectOptions, type InspectResult, type SceneGrid } from "./inspect.js";
15
+ import { LogBuffer } from "./logs.js";
16
+ export interface SessionOptions {
17
+ /** Project root (the directory containing `app/`). */
18
+ root: string;
19
+ /** Initial pathname (default `/`). */
20
+ path?: string;
21
+ /** Grid size (default: `text.config.ts` `viewport`, else 100×32). */
22
+ cols?: number;
23
+ rows?: number;
24
+ theme?: ThemeName;
25
+ /** Skip `text.config.ts`. */
26
+ skipConfig?: boolean;
27
+ /** Shared log buffer (console capture writes into the same buffer). */
28
+ logs?: LogBuffer;
29
+ /** Origin same-origin `fetch()` paths resolve against (default `http://localhost:3000`). */
30
+ origin?: string;
31
+ /** Quiet period that counts as idle (default 50ms). */
32
+ quietMs?: number;
33
+ }
34
+ export interface SettleResult {
35
+ idle: boolean;
36
+ waitedMs: number;
37
+ }
38
+ export interface FocusSummary {
39
+ id: string;
40
+ component?: string;
41
+ bounds?: Bounds;
42
+ }
43
+ export interface FrameSnapshot {
44
+ text: string;
45
+ cols: number;
46
+ rows: number;
47
+ /** Current location (`pathname + search + hash`). */
48
+ href: string;
49
+ /** Matched route pattern (`/deployments/[id]`, or `/_not-found`). */
50
+ route: string;
51
+ title?: string;
52
+ /** Count of distinct frames painted since the session started. */
53
+ frame: number;
54
+ idle: boolean;
55
+ focus: FocusSummary | null;
56
+ /** Block-cursor position inside the focused component, when one is visible. */
57
+ cursor: {
58
+ x: number;
59
+ y: number;
60
+ } | null;
61
+ /** Errors logged since the previous frame read (see the `logs` tool). */
62
+ newErrors: number;
63
+ /** Set when the app is not mounted (it called `exit()`, crashed, or failed to load). */
64
+ status: "running" | "exited" | "crashed" | "failed";
65
+ styles?: StyledRow[];
66
+ /** Effective (clamped) rectangle for region reads. */
67
+ region?: Region;
68
+ }
69
+ export interface FetchResult {
70
+ status: number;
71
+ statusText: string;
72
+ headers: Record<string, string>;
73
+ body: string;
74
+ /** Body was cut at `maxBytes`, or an event stream was cut after `streamMs`. */
75
+ truncated: boolean;
76
+ /** The response was still streaming when reading stopped (event streams). */
77
+ streaming?: boolean;
78
+ /** Matched `app/**\/route.ts` pattern. */
79
+ route: string | null;
80
+ }
81
+ /** A tool-facing error with an optional `TX###` code. */
82
+ export declare class SessionError extends Error {
83
+ readonly code: string | undefined;
84
+ constructor(message: string, code?: string);
85
+ }
86
+ export declare class HeadlessSession {
87
+ readonly logs: LogBuffer;
88
+ readonly rootDir: string;
89
+ private readonly options;
90
+ private scan;
91
+ private manifest;
92
+ private appRoot;
93
+ private scheduler;
94
+ private probe;
95
+ private readonly history;
96
+ private theme;
97
+ private cols;
98
+ private rows;
99
+ private resized;
100
+ private generation;
101
+ private frameSeq;
102
+ private lastActivity;
103
+ /** In-flight `fetch` calls per mount generation (a stale app's hung request never blocks idleness). */
104
+ private readonly inflight;
105
+ private errorCursor;
106
+ /** Normalized `options.origin` (no trailing slash). */
107
+ private readonly origin;
108
+ private status;
109
+ private loadError;
110
+ private disposed;
111
+ /** Async Server Components' promises (pending ones keep the session busy). */
112
+ private readonly serverCache;
113
+ readonly quietMs: number;
114
+ private constructor();
115
+ /** Load `text.config.ts`, import every route module and mount the app. */
116
+ static start(options: SessionOptions): Promise<HeadlessSession>;
117
+ private touch;
118
+ private loadConfig;
119
+ private trackFetch;
120
+ /**
121
+ * The app's `fetch`: same-origin URLs (`"/api/health"`,
122
+ * `"http://localhost:3000/api/x"`) run `app/**\/route.ts` handlers in-process
123
+ * exactly like `text dev`; everything else goes to the network.
124
+ */
125
+ handleFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
126
+ private recordError;
127
+ private mount;
128
+ private unmountApp;
129
+ private requireRoot;
130
+ /** Throw a tool error unless the app is mounted and running (not exited, crashed or failed to load). */
131
+ assertRunning(): void;
132
+ /** Whether the app is idle right now (see the module comment). */
133
+ isIdle(quietMs?: number): boolean;
134
+ /**
135
+ * Wait until the app is idle or `timeout` elapses. On timeout (a spinner or
136
+ * live chart that never stops), the pending frame is flushed so reads still
137
+ * see the latest committed tree.
138
+ */
139
+ settle(options?: {
140
+ quietMs?: number;
141
+ timeout?: number;
142
+ signal?: AbortSignal;
143
+ }): Promise<SettleResult>;
144
+ /**
145
+ * Send events in order, letting each one's effects and follow-up commits
146
+ * land before the next. Stops if the app exits or `signal` aborts (a timed
147
+ * out tool call must not keep typing into the next call's frame).
148
+ */
149
+ private dispatch;
150
+ press(keys: string | readonly string[], signal?: AbortSignal): Promise<number>;
151
+ type(text: string, signal?: AbortSignal): Promise<number>;
152
+ paste(text: string, signal?: AbortSignal): Promise<void>;
153
+ /**
154
+ * Mouse-wheel scroll by `rows` (positive scrolls down) and `cols`, sent in
155
+ * one-row steps like a wheel. Wheel input is not positional: it reaches the
156
+ * focused `<ScrollBox>` first, else every wheel-enabled one.
157
+ */
158
+ scroll(rows: number, cols?: number, signal?: AbortSignal): Promise<number>;
159
+ resize(cols: number, rows: number): {
160
+ cols: number;
161
+ rows: number;
162
+ };
163
+ navigate(target: {
164
+ path: string;
165
+ replace?: boolean;
166
+ } | "back" | "forward"): void;
167
+ get href(): string;
168
+ routes(): {
169
+ pages: FlatRoute[];
170
+ api: ApiRoute[];
171
+ current: string;
172
+ };
173
+ /** Read the current frame. Errors logged since the previous read are counted in `newErrors`. */
174
+ frame(options?: {
175
+ styles?: boolean;
176
+ region?: Partial<Region>;
177
+ trim?: boolean; /** Don't reset the `newErrors` counter. */
178
+ peek?: boolean;
179
+ }): FrameSnapshot;
180
+ contains(text: string): boolean;
181
+ get buffer(): ConsoleRoot["renderer"]["buffer"] | null;
182
+ get fiberProbe(): FiberProbe | null;
183
+ /** The mounted scene and grid size, for paint-order hit testing. */
184
+ get sceneGrid(): SceneGrid | null;
185
+ inspect(options?: InspectOptions): InspectResult;
186
+ private focusSummary;
187
+ /**
188
+ * Call an `app/**\/route.ts` handler in-process. The body is read up to
189
+ * `maxBytes` (then cancelled); event streams are read for `streamMs` and
190
+ * cancelled, so an SSE route returns its first events instead of hanging.
191
+ */
192
+ request(path: string, init?: {
193
+ method?: string;
194
+ headers?: Record<string, string>;
195
+ body?: string;
196
+ maxBytes?: number;
197
+ streamMs?: number;
198
+ }, signal?: AbortSignal): Promise<FetchResult>;
199
+ /**
200
+ * Re-import the app after file changes: unmount, purge every module under
201
+ * the project root from the module cache, re-scan `app/`, re-import and
202
+ * remount at the current location (history is kept).
203
+ */
204
+ reload(): Promise<{
205
+ purged: number;
206
+ }>;
207
+ dispose(): Promise<void>;
208
+ }
209
+ /**
210
+ * Delete every cached module under `root` (except dependencies and Text.js
211
+ * itself) so the next `import()` re-evaluates it. Bun's `require.cache`
212
+ * covers ES modules too.
213
+ */
214
+ export declare function purgeModuleCache(root: string): number;
215
+ /**
216
+ * `raw` as a URL on `origin`, or `null` when it targets anything else.
217
+ * Paths like `//evil.com` and `/\evil.com` (a backslash is a slash in
218
+ * special-scheme URLs) are protocol-relative, not same-origin.
219
+ */
220
+ export declare function sameOriginUrl(raw: string, origin: string): URL | null;
221
+ /**
222
+ * Read at most `maxBytes` of a response body, for at most `windowMs`, then
223
+ * cancel it. `open` is set when the body was still streaming.
224
+ */
225
+ export declare function readBody(response: Response, maxBytes: number, windowMs: number, signal?: AbortSignal): Promise<{
226
+ bytes: Uint8Array;
227
+ truncated: boolean;
228
+ open: boolean;
229
+ }>;
230
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}