@inhuman.tools/quickdraw 0.0.0-bootstrap.0 → 0.2.0

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 (522) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +102 -1
  3. package/aurora.vert +168 -0
  4. package/dist/bench/host.d.ts +62 -0
  5. package/dist/bench/host.d.ts.map +1 -0
  6. package/dist/bench/host.js +77 -0
  7. package/dist/bench/host.js.map +1 -0
  8. package/dist/bench/main.d.ts +6 -0
  9. package/dist/bench/main.d.ts.map +1 -0
  10. package/dist/bench/main.js +118 -0
  11. package/dist/bench/main.js.map +1 -0
  12. package/dist/bench/model.d.ts +36 -0
  13. package/dist/bench/model.d.ts.map +1 -0
  14. package/dist/bench/model.js +112 -0
  15. package/dist/bench/model.js.map +1 -0
  16. package/dist/bench/tea.d.ts +14 -0
  17. package/dist/bench/tea.d.ts.map +1 -0
  18. package/dist/bench/tea.js +6 -0
  19. package/dist/bench/tea.js.map +1 -0
  20. package/dist/bench/view.d.ts +9 -0
  21. package/dist/bench/view.d.ts.map +1 -0
  22. package/dist/bench/view.js +88 -0
  23. package/dist/bench/view.js.map +1 -0
  24. package/dist/bench/worker.d.ts +6 -0
  25. package/dist/bench/worker.d.ts.map +1 -0
  26. package/dist/bench/worker.js +46 -0
  27. package/dist/bench/worker.js.map +1 -0
  28. package/dist/buffer/bgfx-mark.d.ts +32 -0
  29. package/dist/buffer/bgfx-mark.d.ts.map +1 -0
  30. package/dist/buffer/bgfx-mark.js +43 -0
  31. package/dist/buffer/bgfx-mark.js.map +1 -0
  32. package/dist/buffer/index.d.ts +191 -0
  33. package/dist/buffer/index.d.ts.map +1 -0
  34. package/dist/buffer/index.js +353 -0
  35. package/dist/buffer/index.js.map +1 -0
  36. package/dist/capabilities/env.d.ts +23 -0
  37. package/dist/capabilities/env.d.ts.map +1 -0
  38. package/dist/capabilities/env.js +35 -0
  39. package/dist/capabilities/env.js.map +1 -0
  40. package/dist/capabilities/index.d.ts +13 -0
  41. package/dist/capabilities/index.d.ts.map +1 -0
  42. package/dist/capabilities/index.js +13 -0
  43. package/dist/capabilities/index.js.map +1 -0
  44. package/dist/capabilities/parse.d.ts +41 -0
  45. package/dist/capabilities/parse.d.ts.map +1 -0
  46. package/dist/capabilities/parse.js +86 -0
  47. package/dist/capabilities/parse.js.map +1 -0
  48. package/dist/capabilities/probe.d.ts +37 -0
  49. package/dist/capabilities/probe.d.ts.map +1 -0
  50. package/dist/capabilities/probe.js +75 -0
  51. package/dist/capabilities/probe.js.map +1 -0
  52. package/dist/capabilities/sequences.d.ts +33 -0
  53. package/dist/capabilities/sequences.d.ts.map +1 -0
  54. package/dist/capabilities/sequences.js +36 -0
  55. package/dist/capabilities/sequences.js.map +1 -0
  56. package/dist/capabilities/types.d.ts +25 -0
  57. package/dist/capabilities/types.d.ts.map +1 -0
  58. package/dist/capabilities/types.js +5 -0
  59. package/dist/capabilities/types.js.map +1 -0
  60. package/dist/index.d.ts +11 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +11 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/input/decode.d.ts +167 -0
  65. package/dist/input/decode.d.ts.map +1 -0
  66. package/dist/input/decode.js +825 -0
  67. package/dist/input/decode.js.map +1 -0
  68. package/dist/input/draft.d.ts +85 -0
  69. package/dist/input/draft.d.ts.map +1 -0
  70. package/dist/input/draft.js +276 -0
  71. package/dist/input/draft.js.map +1 -0
  72. package/dist/input/index.d.ts +3 -0
  73. package/dist/input/index.d.ts.map +1 -0
  74. package/dist/input/index.js +3 -0
  75. package/dist/input/index.js.map +1 -0
  76. package/dist/input/prompt-blocks.d.ts +58 -0
  77. package/dist/input/prompt-blocks.d.ts.map +1 -0
  78. package/dist/input/prompt-blocks.js +48 -0
  79. package/dist/input/prompt-blocks.js.map +1 -0
  80. package/dist/input/rich-draft.d.ts +46 -0
  81. package/dist/input/rich-draft.d.ts.map +1 -0
  82. package/dist/input/rich-draft.js +391 -0
  83. package/dist/input/rich-draft.js.map +1 -0
  84. package/dist/input/rich-hit.d.ts +17 -0
  85. package/dist/input/rich-hit.d.ts.map +1 -0
  86. package/dist/input/rich-hit.js +89 -0
  87. package/dist/input/rich-hit.js.map +1 -0
  88. package/dist/input/rich-intake.d.ts +16 -0
  89. package/dist/input/rich-intake.d.ts.map +1 -0
  90. package/dist/input/rich-intake.js +22 -0
  91. package/dist/input/rich-intake.js.map +1 -0
  92. package/dist/input/rich-paint.d.ts +13 -0
  93. package/dist/input/rich-paint.d.ts.map +1 -0
  94. package/dist/input/rich-paint.js +18 -0
  95. package/dist/input/rich-paint.js.map +1 -0
  96. package/dist/internals/bgfx/index.d.ts +17 -0
  97. package/dist/internals/bgfx/index.d.ts.map +1 -0
  98. package/dist/internals/bgfx/index.js +17 -0
  99. package/dist/internals/bgfx/index.js.map +1 -0
  100. package/dist/internals/bgfx/materialize.d.ts +31 -0
  101. package/dist/internals/bgfx/materialize.d.ts.map +1 -0
  102. package/dist/internals/bgfx/materialize.js +117 -0
  103. package/dist/internals/bgfx/materialize.js.map +1 -0
  104. package/dist/internals/bgfx/opacity.d.ts +37 -0
  105. package/dist/internals/bgfx/opacity.d.ts.map +1 -0
  106. package/dist/internals/bgfx/opacity.js +76 -0
  107. package/dist/internals/bgfx/opacity.js.map +1 -0
  108. package/dist/internals/bgfx/registry.d.ts +13 -0
  109. package/dist/internals/bgfx/registry.d.ts.map +1 -0
  110. package/dist/internals/bgfx/registry.js +24 -0
  111. package/dist/internals/bgfx/registry.js.map +1 -0
  112. package/dist/internals/bgfx/sab-layout.d.ts +61 -0
  113. package/dist/internals/bgfx/sab-layout.d.ts.map +1 -0
  114. package/dist/internals/bgfx/sab-layout.js +107 -0
  115. package/dist/internals/bgfx/sab-layout.js.map +1 -0
  116. package/dist/internals/bgfx/shader-frame-host.d.ts +22 -0
  117. package/dist/internals/bgfx/shader-frame-host.d.ts.map +1 -0
  118. package/dist/internals/bgfx/shader-frame-host.js +165 -0
  119. package/dist/internals/bgfx/shader-frame-host.js.map +1 -0
  120. package/dist/internals/bgfx/shadertoy-catalog.d.ts +41 -0
  121. package/dist/internals/bgfx/shadertoy-catalog.d.ts.map +1 -0
  122. package/dist/internals/bgfx/shadertoy-catalog.js +200 -0
  123. package/dist/internals/bgfx/shadertoy-catalog.js.map +1 -0
  124. package/dist/internals/bgfx/shadertoy-gl.d.ts +38 -0
  125. package/dist/internals/bgfx/shadertoy-gl.d.ts.map +1 -0
  126. package/dist/internals/bgfx/shadertoy-gl.js +283 -0
  127. package/dist/internals/bgfx/shadertoy-gl.js.map +1 -0
  128. package/dist/internals/bgfx/types.d.ts +51 -0
  129. package/dist/internals/bgfx/types.d.ts.map +1 -0
  130. package/dist/internals/bgfx/types.js +14 -0
  131. package/dist/internals/bgfx/types.js.map +1 -0
  132. package/dist/internals/bgfx-worker.d.ts +6 -0
  133. package/dist/internals/bgfx-worker.d.ts.map +1 -0
  134. package/dist/internals/bgfx-worker.js +131 -0
  135. package/dist/internals/bgfx-worker.js.map +1 -0
  136. package/dist/layout/birth.d.ts +77 -0
  137. package/dist/layout/birth.d.ts.map +1 -0
  138. package/dist/layout/birth.js +148 -0
  139. package/dist/layout/birth.js.map +1 -0
  140. package/dist/layout/children.d.ts +5 -0
  141. package/dist/layout/children.d.ts.map +1 -0
  142. package/dist/layout/children.js +19 -0
  143. package/dist/layout/children.js.map +1 -0
  144. package/dist/layout/chrome_frame.d.ts +254 -0
  145. package/dist/layout/chrome_frame.d.ts.map +1 -0
  146. package/dist/layout/chrome_frame.js +1080 -0
  147. package/dist/layout/chrome_frame.js.map +1 -0
  148. package/dist/layout/chrome_mask.d.ts +40 -0
  149. package/dist/layout/chrome_mask.d.ts.map +1 -0
  150. package/dist/layout/chrome_mask.js +150 -0
  151. package/dist/layout/chrome_mask.js.map +1 -0
  152. package/dist/layout/engine.d.ts +49 -0
  153. package/dist/layout/engine.d.ts.map +1 -0
  154. package/dist/layout/engine.js +1269 -0
  155. package/dist/layout/engine.js.map +1 -0
  156. package/dist/layout/flex.d.ts +36 -0
  157. package/dist/layout/flex.d.ts.map +1 -0
  158. package/dist/layout/flex.js +111 -0
  159. package/dist/layout/flex.js.map +1 -0
  160. package/dist/layout/grid.d.ts +36 -0
  161. package/dist/layout/grid.d.ts.map +1 -0
  162. package/dist/layout/grid.js +126 -0
  163. package/dist/layout/grid.js.map +1 -0
  164. package/dist/layout/index.d.ts +30 -0
  165. package/dist/layout/index.d.ts.map +1 -0
  166. package/dist/layout/index.js +30 -0
  167. package/dist/layout/index.js.map +1 -0
  168. package/dist/layout/indication.d.ts +34 -0
  169. package/dist/layout/indication.d.ts.map +1 -0
  170. package/dist/layout/indication.js +68 -0
  171. package/dist/layout/indication.js.map +1 -0
  172. package/dist/layout/length.d.ts +18 -0
  173. package/dist/layout/length.d.ts.map +1 -0
  174. package/dist/layout/length.js +24 -0
  175. package/dist/layout/length.js.map +1 -0
  176. package/dist/layout/live_paint.d.ts +145 -0
  177. package/dist/layout/live_paint.d.ts.map +1 -0
  178. package/dist/layout/live_paint.js +255 -0
  179. package/dist/layout/live_paint.js.map +1 -0
  180. package/dist/layout/markdown.d.ts +22 -0
  181. package/dist/layout/markdown.d.ts.map +1 -0
  182. package/dist/layout/markdown.js +167 -0
  183. package/dist/layout/markdown.js.map +1 -0
  184. package/dist/layout/measure.d.ts +46 -0
  185. package/dist/layout/measure.d.ts.map +1 -0
  186. package/dist/layout/measure.js +307 -0
  187. package/dist/layout/measure.js.map +1 -0
  188. package/dist/layout/paint-hotkey.d.ts +45 -0
  189. package/dist/layout/paint-hotkey.d.ts.map +1 -0
  190. package/dist/layout/paint-hotkey.js +152 -0
  191. package/dist/layout/paint-hotkey.js.map +1 -0
  192. package/dist/layout/paint.d.ts +25 -0
  193. package/dist/layout/paint.d.ts.map +1 -0
  194. package/dist/layout/paint.js +189 -0
  195. package/dist/layout/paint.js.map +1 -0
  196. package/dist/layout/paint_theme.d.ts +85 -0
  197. package/dist/layout/paint_theme.d.ts.map +1 -0
  198. package/dist/layout/paint_theme.js +76 -0
  199. package/dist/layout/paint_theme.js.map +1 -0
  200. package/dist/layout/progress.d.ts +31 -0
  201. package/dist/layout/progress.d.ts.map +1 -0
  202. package/dist/layout/progress.js +83 -0
  203. package/dist/layout/progress.js.map +1 -0
  204. package/dist/layout/selection.d.ts +136 -0
  205. package/dist/layout/selection.d.ts.map +1 -0
  206. package/dist/layout/selection.js +312 -0
  207. package/dist/layout/selection.js.map +1 -0
  208. package/dist/layout/selection_gesture.d.ts +88 -0
  209. package/dist/layout/selection_gesture.d.ts.map +1 -0
  210. package/dist/layout/selection_gesture.js +239 -0
  211. package/dist/layout/selection_gesture.js.map +1 -0
  212. package/dist/layout/selection_paint.d.ts +47 -0
  213. package/dist/layout/selection_paint.d.ts.map +1 -0
  214. package/dist/layout/selection_paint.js +320 -0
  215. package/dist/layout/selection_paint.js.map +1 -0
  216. package/dist/layout/serialize.d.ts +49 -0
  217. package/dist/layout/serialize.d.ts.map +1 -0
  218. package/dist/layout/serialize.js +437 -0
  219. package/dist/layout/serialize.js.map +1 -0
  220. package/dist/layout/squeeze.d.ts +58 -0
  221. package/dist/layout/squeeze.d.ts.map +1 -0
  222. package/dist/layout/squeeze.js +239 -0
  223. package/dist/layout/squeeze.js.map +1 -0
  224. package/dist/layout/text.d.ts +44 -0
  225. package/dist/layout/text.d.ts.map +1 -0
  226. package/dist/layout/text.js +230 -0
  227. package/dist/layout/text.js.map +1 -0
  228. package/dist/layout/theme_store.d.ts +21 -0
  229. package/dist/layout/theme_store.d.ts.map +1 -0
  230. package/dist/layout/theme_store.js +133 -0
  231. package/dist/layout/theme_store.js.map +1 -0
  232. package/dist/layout/types.d.ts +564 -0
  233. package/dist/layout/types.d.ts.map +1 -0
  234. package/dist/layout/types.js +2 -0
  235. package/dist/layout/types.js.map +1 -0
  236. package/dist/layout/visual_draft.d.ts +60 -0
  237. package/dist/layout/visual_draft.d.ts.map +1 -0
  238. package/dist/layout/visual_draft.js +199 -0
  239. package/dist/layout/visual_draft.js.map +1 -0
  240. package/dist/lexicon/color.d.ts +22 -0
  241. package/dist/lexicon/color.d.ts.map +1 -0
  242. package/dist/lexicon/color.js +6 -0
  243. package/dist/lexicon/color.js.map +1 -0
  244. package/dist/lexicon/index.d.ts +15 -0
  245. package/dist/lexicon/index.d.ts.map +1 -0
  246. package/dist/lexicon/index.js +15 -0
  247. package/dist/lexicon/index.js.map +1 -0
  248. package/dist/lexicon/prominence.d.ts +46 -0
  249. package/dist/lexicon/prominence.d.ts.map +1 -0
  250. package/dist/lexicon/prominence.js +73 -0
  251. package/dist/lexicon/prominence.js.map +1 -0
  252. package/dist/lexicon/quarantine.d.ts +21 -0
  253. package/dist/lexicon/quarantine.d.ts.map +1 -0
  254. package/dist/lexicon/quarantine.js +15 -0
  255. package/dist/lexicon/quarantine.js.map +1 -0
  256. package/dist/lexicon/roles.d.ts +37 -0
  257. package/dist/lexicon/roles.d.ts.map +1 -0
  258. package/dist/lexicon/roles.js +52 -0
  259. package/dist/lexicon/roles.js.map +1 -0
  260. package/dist/lexicon/tiers.d.ts +18 -0
  261. package/dist/lexicon/tiers.d.ts.map +1 -0
  262. package/dist/lexicon/tiers.js +17 -0
  263. package/dist/lexicon/tiers.js.map +1 -0
  264. package/dist/measure/index.d.ts +43 -0
  265. package/dist/measure/index.d.ts.map +1 -0
  266. package/dist/measure/index.js +120 -0
  267. package/dist/measure/index.js.map +1 -0
  268. package/dist/render.d.ts +72 -0
  269. package/dist/render.d.ts.map +1 -0
  270. package/dist/render.js +164 -0
  271. package/dist/render.js.map +1 -0
  272. package/dist/runtime/agents_keys.d.ts +8 -0
  273. package/dist/runtime/agents_keys.d.ts.map +1 -0
  274. package/dist/runtime/agents_keys.js +24 -0
  275. package/dist/runtime/agents_keys.js.map +1 -0
  276. package/dist/runtime/agents_peek.d.ts +44 -0
  277. package/dist/runtime/agents_peek.d.ts.map +1 -0
  278. package/dist/runtime/agents_peek.js +96 -0
  279. package/dist/runtime/agents_peek.js.map +1 -0
  280. package/dist/runtime/agents_preview.d.ts +27 -0
  281. package/dist/runtime/agents_preview.d.ts.map +1 -0
  282. package/dist/runtime/agents_preview.js +122 -0
  283. package/dist/runtime/agents_preview.js.map +1 -0
  284. package/dist/runtime/box_bus.d.ts +144 -0
  285. package/dist/runtime/box_bus.d.ts.map +1 -0
  286. package/dist/runtime/box_bus.js +74 -0
  287. package/dist/runtime/box_bus.js.map +1 -0
  288. package/dist/runtime/clipboard-image.d.ts +20 -0
  289. package/dist/runtime/clipboard-image.d.ts.map +1 -0
  290. package/dist/runtime/clipboard-image.js +62 -0
  291. package/dist/runtime/clipboard-image.js.map +1 -0
  292. package/dist/runtime/copy_toast.d.ts +46 -0
  293. package/dist/runtime/copy_toast.d.ts.map +1 -0
  294. package/dist/runtime/copy_toast.js +117 -0
  295. package/dist/runtime/copy_toast.js.map +1 -0
  296. package/dist/runtime/echo.d.ts +41 -0
  297. package/dist/runtime/echo.d.ts.map +1 -0
  298. package/dist/runtime/echo.js +112 -0
  299. package/dist/runtime/echo.js.map +1 -0
  300. package/dist/runtime/frame.d.ts +79 -0
  301. package/dist/runtime/frame.d.ts.map +1 -0
  302. package/dist/runtime/frame.js +258 -0
  303. package/dist/runtime/frame.js.map +1 -0
  304. package/dist/runtime/index.d.ts +16 -0
  305. package/dist/runtime/index.d.ts.map +1 -0
  306. package/dist/runtime/index.js +16 -0
  307. package/dist/runtime/index.js.map +1 -0
  308. package/dist/runtime/key_buffer.d.ts +19 -0
  309. package/dist/runtime/key_buffer.d.ts.map +1 -0
  310. package/dist/runtime/key_buffer.js +24 -0
  311. package/dist/runtime/key_buffer.js.map +1 -0
  312. package/dist/runtime/keys.d.ts +66 -0
  313. package/dist/runtime/keys.d.ts.map +1 -0
  314. package/dist/runtime/keys.js +220 -0
  315. package/dist/runtime/keys.js.map +1 -0
  316. package/dist/runtime/paint_snapshot.d.ts +9 -0
  317. package/dist/runtime/paint_snapshot.d.ts.map +1 -0
  318. package/dist/runtime/paint_snapshot.js +8 -0
  319. package/dist/runtime/paint_snapshot.js.map +1 -0
  320. package/dist/runtime/paint_source.d.ts +266 -0
  321. package/dist/runtime/paint_source.d.ts.map +1 -0
  322. package/dist/runtime/paint_source.js +532 -0
  323. package/dist/runtime/paint_source.js.map +1 -0
  324. package/dist/runtime/present_loop.d.ts +11 -0
  325. package/dist/runtime/present_loop.d.ts.map +1 -0
  326. package/dist/runtime/present_loop.js +46 -0
  327. package/dist/runtime/present_loop.js.map +1 -0
  328. package/dist/runtime/present_profile.d.ts +58 -0
  329. package/dist/runtime/present_profile.d.ts.map +1 -0
  330. package/dist/runtime/present_profile.js +130 -0
  331. package/dist/runtime/present_profile.js.map +1 -0
  332. package/dist/runtime/raster.d.ts +24 -0
  333. package/dist/runtime/raster.d.ts.map +1 -0
  334. package/dist/runtime/raster.js +43 -0
  335. package/dist/runtime/raster.js.map +1 -0
  336. package/dist/runtime/renderer.d.ts +151 -0
  337. package/dist/runtime/renderer.d.ts.map +1 -0
  338. package/dist/runtime/renderer.js +1607 -0
  339. package/dist/runtime/renderer.js.map +1 -0
  340. package/dist/runtime/screenshot.d.ts +9 -0
  341. package/dist/runtime/screenshot.d.ts.map +1 -0
  342. package/dist/runtime/screenshot.js +111 -0
  343. package/dist/runtime/screenshot.js.map +1 -0
  344. package/dist/runtime/selection_host.d.ts +41 -0
  345. package/dist/runtime/selection_host.d.ts.map +1 -0
  346. package/dist/runtime/selection_host.js +190 -0
  347. package/dist/runtime/selection_host.js.map +1 -0
  348. package/dist/runtime/stderr_hold.d.ts +16 -0
  349. package/dist/runtime/stderr_hold.d.ts.map +1 -0
  350. package/dist/runtime/stderr_hold.js +23 -0
  351. package/dist/runtime/stderr_hold.js.map +1 -0
  352. package/dist/runtime/thought_birth.d.ts +25 -0
  353. package/dist/runtime/thought_birth.d.ts.map +1 -0
  354. package/dist/runtime/thought_birth.js +122 -0
  355. package/dist/runtime/thought_birth.js.map +1 -0
  356. package/dist/runtime/thought_collapsed.d.ts +35 -0
  357. package/dist/runtime/thought_collapsed.d.ts.map +1 -0
  358. package/dist/runtime/thought_collapsed.js +94 -0
  359. package/dist/runtime/thought_collapsed.js.map +1 -0
  360. package/dist/runtime/tty.d.ts +58 -0
  361. package/dist/runtime/tty.d.ts.map +1 -0
  362. package/dist/runtime/tty.js +130 -0
  363. package/dist/runtime/tty.js.map +1 -0
  364. package/dist/theme/ansi16.d.ts +34 -0
  365. package/dist/theme/ansi16.d.ts.map +1 -0
  366. package/dist/theme/ansi16.js +181 -0
  367. package/dist/theme/ansi16.js.map +1 -0
  368. package/dist/theme/ansi256.d.ts +15 -0
  369. package/dist/theme/ansi256.d.ts.map +1 -0
  370. package/dist/theme/ansi256.js +94 -0
  371. package/dist/theme/ansi256.js.map +1 -0
  372. package/dist/theme/ground.d.ts +8 -0
  373. package/dist/theme/ground.d.ts.map +1 -0
  374. package/dist/theme/ground.js +11 -0
  375. package/dist/theme/ground.js.map +1 -0
  376. package/dist/theme/index.d.ts +10 -0
  377. package/dist/theme/index.d.ts.map +1 -0
  378. package/dist/theme/index.js +10 -0
  379. package/dist/theme/index.js.map +1 -0
  380. package/dist/theme/region.d.ts +42 -0
  381. package/dist/theme/region.d.ts.map +1 -0
  382. package/dist/theme/region.js +105 -0
  383. package/dist/theme/region.js.map +1 -0
  384. package/dist/theme/resolver.d.ts +126 -0
  385. package/dist/theme/resolver.d.ts.map +1 -0
  386. package/dist/theme/resolver.js +366 -0
  387. package/dist/theme/resolver.js.map +1 -0
  388. package/dist/theme/salience.d.ts +90 -0
  389. package/dist/theme/salience.d.ts.map +1 -0
  390. package/dist/theme/salience.js +208 -0
  391. package/dist/theme/salience.js.map +1 -0
  392. package/dist/theme/seeds.d.ts +113 -0
  393. package/dist/theme/seeds.d.ts.map +1 -0
  394. package/dist/theme/seeds.js +52 -0
  395. package/dist/theme/seeds.js.map +1 -0
  396. package/dist/theme/selection.d.ts +94 -0
  397. package/dist/theme/selection.d.ts.map +1 -0
  398. package/dist/theme/selection.js +135 -0
  399. package/dist/theme/selection.js.map +1 -0
  400. package/dist/theme/theme.d.ts +41 -0
  401. package/dist/theme/theme.d.ts.map +1 -0
  402. package/dist/theme/theme.js +34 -0
  403. package/dist/theme/theme.js.map +1 -0
  404. package/dist/widgets/composer-caret.d.ts +47 -0
  405. package/dist/widgets/composer-caret.d.ts.map +1 -0
  406. package/dist/widgets/composer-caret.js +90 -0
  407. package/dist/widgets/composer-caret.js.map +1 -0
  408. package/dist/widgets/composer-click.d.ts +30 -0
  409. package/dist/widgets/composer-click.d.ts.map +1 -0
  410. package/dist/widgets/composer-click.js +89 -0
  411. package/dist/widgets/composer-click.js.map +1 -0
  412. package/dist/widgets/composer-command.d.ts +64 -0
  413. package/dist/widgets/composer-command.d.ts.map +1 -0
  414. package/dist/widgets/composer-command.js +127 -0
  415. package/dist/widgets/composer-command.js.map +1 -0
  416. package/dist/widgets/composer-frame.d.ts +74 -0
  417. package/dist/widgets/composer-frame.d.ts.map +1 -0
  418. package/dist/widgets/composer-frame.js +284 -0
  419. package/dist/widgets/composer-frame.js.map +1 -0
  420. package/dist/widgets/composer-picker.d.ts +89 -0
  421. package/dist/widgets/composer-picker.d.ts.map +1 -0
  422. package/dist/widgets/composer-picker.js +240 -0
  423. package/dist/widgets/composer-picker.js.map +1 -0
  424. package/dist/widgets/diff.d.ts +11 -0
  425. package/dist/widgets/diff.d.ts.map +1 -0
  426. package/dist/widgets/diff.js +19 -0
  427. package/dist/widgets/diff.js.map +1 -0
  428. package/dist/widgets/expand.d.ts +28 -0
  429. package/dist/widgets/expand.d.ts.map +1 -0
  430. package/dist/widgets/expand.js +94 -0
  431. package/dist/widgets/expand.js.map +1 -0
  432. package/dist/widgets/index.d.ts +126 -0
  433. package/dist/widgets/index.d.ts.map +1 -0
  434. package/dist/widgets/index.js +455 -0
  435. package/dist/widgets/index.js.map +1 -0
  436. package/dist/widgets/internals/arrival-lang.d.ts +88 -0
  437. package/dist/widgets/internals/arrival-lang.d.ts.map +1 -0
  438. package/dist/widgets/internals/arrival-lang.js +211 -0
  439. package/dist/widgets/internals/arrival-lang.js.map +1 -0
  440. package/dist/widgets/internals/diff-expand.d.ts +93 -0
  441. package/dist/widgets/internals/diff-expand.d.ts.map +1 -0
  442. package/dist/widgets/internals/diff-expand.js +1106 -0
  443. package/dist/widgets/internals/diff-expand.js.map +1 -0
  444. package/dist/widgets/internals/embedded-syntax.d.ts +62 -0
  445. package/dist/widgets/internals/embedded-syntax.d.ts.map +1 -0
  446. package/dist/widgets/internals/embedded-syntax.js +465 -0
  447. package/dist/widgets/internals/embedded-syntax.js.map +1 -0
  448. package/dist/widgets/internals/markdown-expand.d.ts +57 -0
  449. package/dist/widgets/internals/markdown-expand.d.ts.map +1 -0
  450. package/dist/widgets/internals/markdown-expand.js +980 -0
  451. package/dist/widgets/internals/markdown-expand.js.map +1 -0
  452. package/dist/widgets/internals/overlay-syntax.d.ts +24 -0
  453. package/dist/widgets/internals/overlay-syntax.d.ts.map +1 -0
  454. package/dist/widgets/internals/overlay-syntax.js +90 -0
  455. package/dist/widgets/internals/overlay-syntax.js.map +1 -0
  456. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts +6 -0
  457. package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts.map +1 -0
  458. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js +8 -0
  459. package/dist/widgets/internals/pierre-parse/cleanLastNewline.js.map +1 -0
  460. package/dist/widgets/internals/pierre-parse/constants.d.ts +13 -0
  461. package/dist/widgets/internals/pierre-parse/constants.d.ts.map +1 -0
  462. package/dist/widgets/internals/pierre-parse/constants.js +13 -0
  463. package/dist/widgets/internals/pierre-parse/constants.js.map +1 -0
  464. package/dist/widgets/internals/pierre-parse/detachString.d.ts +3 -0
  465. package/dist/widgets/internals/pierre-parse/detachString.d.ts.map +1 -0
  466. package/dist/widgets/internals/pierre-parse/detachString.js +24 -0
  467. package/dist/widgets/internals/pierre-parse/detachString.js.map +1 -0
  468. package/dist/widgets/internals/pierre-parse/index.d.ts +8 -0
  469. package/dist/widgets/internals/pierre-parse/index.d.ts.map +1 -0
  470. package/dist/widgets/internals/pierre-parse/index.js +8 -0
  471. package/dist/widgets/internals/pierre-parse/index.js.map +1 -0
  472. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts +15 -0
  473. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts.map +1 -0
  474. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js +39 -0
  475. package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js.map +1 -0
  476. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts +11 -0
  477. package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts.map +1 -0
  478. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js +621 -0
  479. package/dist/widgets/internals/pierre-parse/parsePatchFiles.js.map +1 -0
  480. package/dist/widgets/internals/pierre-parse/types.d.ts +73 -0
  481. package/dist/widgets/internals/pierre-parse/types.d.ts.map +1 -0
  482. package/dist/widgets/internals/pierre-parse/types.js +7 -0
  483. package/dist/widgets/internals/pierre-parse/types.js.map +1 -0
  484. package/dist/widgets/internals/syntax.d.ts +55 -0
  485. package/dist/widgets/internals/syntax.d.ts.map +1 -0
  486. package/dist/widgets/internals/syntax.js +261 -0
  487. package/dist/widgets/internals/syntax.js.map +1 -0
  488. package/dist/widgets/markdown.d.ts +14 -0
  489. package/dist/widgets/markdown.d.ts.map +1 -0
  490. package/dist/widgets/markdown.js +9 -0
  491. package/dist/widgets/markdown.js.map +1 -0
  492. package/dist/widgets/shadow-stream.d.ts +88 -0
  493. package/dist/widgets/shadow-stream.d.ts.map +1 -0
  494. package/dist/widgets/shadow-stream.js +359 -0
  495. package/dist/widgets/shadow-stream.js.map +1 -0
  496. package/dist/widgets/speech.d.ts +36 -0
  497. package/dist/widgets/speech.d.ts.map +1 -0
  498. package/dist/widgets/speech.js +238 -0
  499. package/dist/widgets/speech.js.map +1 -0
  500. package/dist/widgets/stream-birth.d.ts +13 -0
  501. package/dist/widgets/stream-birth.d.ts.map +1 -0
  502. package/dist/widgets/stream-birth.js +70 -0
  503. package/dist/widgets/stream-birth.js.map +1 -0
  504. package/dist/widgets/syntax-boot.d.ts +25 -0
  505. package/dist/widgets/syntax-boot.d.ts.map +1 -0
  506. package/dist/widgets/syntax-boot.js +181 -0
  507. package/dist/widgets/syntax-boot.js.map +1 -0
  508. package/dist/widgets/text.d.ts +16 -0
  509. package/dist/widgets/text.d.ts.map +1 -0
  510. package/dist/widgets/text.js +14 -0
  511. package/dist/widgets/text.js.map +1 -0
  512. package/dist/widgets/transcript.d.ts +44 -0
  513. package/dist/widgets/transcript.d.ts.map +1 -0
  514. package/dist/widgets/transcript.js +106 -0
  515. package/dist/widgets/transcript.js.map +1 -0
  516. package/doom.vert +1840 -0
  517. package/fonts/DejaVuSans.ttf +0 -0
  518. package/fonts/DejaVuSansMono.ttf +0 -0
  519. package/fonts/LICENSE-DejaVu.txt +187 -0
  520. package/fonts/README.md +6 -0
  521. package/gradient.vert +75 -0
  522. package/package.json +147 -4
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Host-local birth frontier for live stream peeks.
3
+ *
4
+ * Walks declared `live.kind === "birth"` ops in the visible tree, steps W,
5
+ * and hands the map to paint. Only the last site in tape order crawls;
6
+ * earlier sites snap W = T so they paint solid (missing W would rest at
7
+ * T − tipWindow and leave a dim tail). Does not rebuild widget constructors.
8
+ */
9
+ import { birthFrontierLive, createBirthFrontier, stepBirthFrontier, } from "../layout/index.js";
10
+ export function collectBirthSites(node, out = [], seen = new Set()) {
11
+ if (typeof node !== "object" || node === null)
12
+ return out;
13
+ const rec = node;
14
+ if (rec.type === "disclosure") {
15
+ const visible = rec.collapsed === false ? (rec.children ?? []) : [rec.summary];
16
+ for (const child of visible)
17
+ collectBirthSites(child, out, seen);
18
+ return out;
19
+ }
20
+ if (rec.live?.kind === "birth" && !seen.has(rec.live.siteId)) {
21
+ seen.add(rec.live.siteId);
22
+ out.push({ siteId: rec.live.siteId, T: rec.live.T });
23
+ }
24
+ if (Array.isArray(rec.children)) {
25
+ for (const c of rec.children)
26
+ collectBirthSites(c, out, seen);
27
+ }
28
+ return out;
29
+ }
30
+ export function stepThoughtBirthLedger(roots, frontiers, nowMs) {
31
+ const sites = [];
32
+ const seen = new Set();
33
+ for (const root of roots) {
34
+ for (const site of collectBirthSites(root)) {
35
+ if (seen.has(site.siteId))
36
+ continue;
37
+ seen.add(site.siteId);
38
+ sites.push(site);
39
+ }
40
+ }
41
+ return stepLatestBirthSites(sites, frontiers, nowMs);
42
+ }
43
+ /** Step frontiers from an already-collected site list (Paint DOM path). */
44
+ export function stepThoughtBirthFromSites(sites, frontiers, nowMs) {
45
+ return stepLatestBirthSites(sites, frontiers, nowMs);
46
+ }
47
+ export function stepThoughtBirthFromSnapshot(snapshot, frontiers, nowMs) {
48
+ const roots = [];
49
+ const tree = snapshot.tree;
50
+ if (tree && typeof tree === "object") {
51
+ if (tree.root != null)
52
+ roots.push(tree.root);
53
+ if (tree.boxes && typeof tree.boxes === "object") {
54
+ const ids = new Set(Object.values(tree.boxes));
55
+ for (const id of ids) {
56
+ if (typeof id === "number")
57
+ roots.push(snapshot.getBox(id));
58
+ }
59
+ }
60
+ }
61
+ return stepThoughtBirthLedger(roots, frontiers, nowMs);
62
+ }
63
+ function stepLatestBirthSites(sites, frontiers, nowMs) {
64
+ const unique = [];
65
+ const seen = new Set();
66
+ for (const site of sites) {
67
+ if (seen.has(site.siteId))
68
+ continue;
69
+ seen.add(site.siteId);
70
+ unique.push(site);
71
+ }
72
+ const latestId = unique.at(-1)?.siteId;
73
+ const inject = new Map();
74
+ for (const site of unique) {
75
+ const field = stepOneBirthSite(site, frontiers, nowMs, {
76
+ resolve: site.siteId !== latestId,
77
+ });
78
+ if (field != null)
79
+ inject.set(site.siteId, field);
80
+ }
81
+ for (const id of frontiers.keys()) {
82
+ if (!seen.has(id))
83
+ frontiers.delete(id);
84
+ }
85
+ return inject;
86
+ }
87
+ function stepOneBirthSite(site, frontiers, nowMs, opts) {
88
+ const T = site.T;
89
+ if (T <= 0) {
90
+ frontiers.delete(site.siteId);
91
+ return null;
92
+ }
93
+ if (opts?.resolve === true) {
94
+ const resolved = {
95
+ W: T,
96
+ T,
97
+ lastStepMs: nowMs,
98
+ sealed: true,
99
+ lastAdvanceMs: nowMs,
100
+ v: 0,
101
+ };
102
+ frontiers.set(site.siteId, resolved);
103
+ return { W: T };
104
+ }
105
+ const prev = frontiers.get(site.siteId);
106
+ const next = stepBirthFrontier(prev == null ? createBirthFrontier() : { ...prev, sealed: false }, {
107
+ T,
108
+ nowMs,
109
+ sealed: false,
110
+ });
111
+ frontiers.set(site.siteId, next);
112
+ return { W: next.W };
113
+ }
114
+ /** Any frontier still animating? Present arms its live timer off this. */
115
+ export function anyThoughtBirthLive(frontiers) {
116
+ for (const state of frontiers.values()) {
117
+ if (birthFrontierLive(state))
118
+ return true;
119
+ }
120
+ return false;
121
+ }
122
+ //# sourceMappingURL=thought_birth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thought_birth.js","sourceRoot":"","sources":["../../src/runtime/thought_birth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Host-local thought expand/collapse — display only.
3
+ * ThinkingStream stamps `onClick: { type: "toggle_collapsed", blockId }`; bare click
4
+ * flips `collapsed` on the disclosure. Both branches already live in the tree.
5
+ */
6
+ import type { PaintSnapshot } from "./frame.js";
7
+ export type ToggleCollapsedClick = {
8
+ readonly type: "toggle_collapsed";
9
+ readonly blockId: string;
10
+ };
11
+ export declare function isToggleCollapsedClick(value: unknown): value is ToggleCollapsedClick;
12
+ /**
13
+ * Walk hit meta + byKey parent chain for toggle_collapsed.
14
+ * Accepts raw HitMeta or elementAt's `{ key, meta }` wrapper.
15
+ */
16
+ export declare function toggleCollapsedFromHit(hit: {
17
+ onClick?: unknown;
18
+ parent?: string;
19
+ key?: string;
20
+ } | {
21
+ key: string;
22
+ meta: {
23
+ onClick?: unknown;
24
+ parent?: string;
25
+ key?: string;
26
+ };
27
+ } | null | undefined, byKey: Map<string, {
28
+ onClick?: unknown;
29
+ parent?: string;
30
+ key?: string;
31
+ }>): ToggleCollapsedClick | null;
32
+ /** `collapsedOverrides`: blockId → collapsed. Absent key → wire node.collapsed. */
33
+ export declare function applyThoughtCollapsed(node: unknown, collapsedOverrides: ReadonlyMap<string, boolean>): unknown;
34
+ export declare function paintSnapshotWithThoughtCollapsed(snapshot: PaintSnapshot, collapsedOverrides: ReadonlyMap<string, boolean>): PaintSnapshot;
35
+ //# sourceMappingURL=thought_collapsed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thought_collapsed.d.ts","sourceRoot":"","sources":["../../src/runtime/thought_collapsed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAKpF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EACC;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC3E,IAAI,GACJ,SAAS,EACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACvE,oBAAoB,GAAG,IAAI,CA6B7B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAmC9G;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,aAAa,CAQf"}
@@ -0,0 +1,94 @@
1
+ export function isToggleCollapsedClick(value) {
2
+ if (typeof value !== "object" || value === null)
3
+ return false;
4
+ const rec = value;
5
+ if (rec.type !== "toggle_collapsed")
6
+ return false;
7
+ return typeof rec.blockId === "string";
8
+ }
9
+ /**
10
+ * Walk hit meta + byKey parent chain for toggle_collapsed.
11
+ * Accepts raw HitMeta or elementAt's `{ key, meta }` wrapper.
12
+ */
13
+ export function toggleCollapsedFromHit(hit, byKey) {
14
+ let cur = hit && "meta" in hit && hit.meta ? hit.meta : hit;
15
+ const seen = new Set();
16
+ while (cur) {
17
+ if (isToggleCollapsedClick(cur.onClick))
18
+ return cur.onClick;
19
+ const parent = cur.parent;
20
+ if (!parent || seen.has(parent))
21
+ break;
22
+ seen.add(parent);
23
+ cur = byKey.get(parent);
24
+ }
25
+ const startKey = hit && "meta" in hit && hit.meta
26
+ ? (hit.meta.key ?? hit.key)
27
+ : hit && "key" in hit
28
+ ? hit.key
29
+ : undefined;
30
+ if (startKey) {
31
+ let key = startKey;
32
+ while (key.includes(":")) {
33
+ const parentKey = key.slice(0, key.lastIndexOf(":"));
34
+ if (seen.has(parentKey))
35
+ break;
36
+ seen.add(parentKey);
37
+ const meta = byKey.get(parentKey);
38
+ if (meta && isToggleCollapsedClick(meta.onClick))
39
+ return meta.onClick;
40
+ key = parentKey;
41
+ }
42
+ }
43
+ return null;
44
+ }
45
+ /** `collapsedOverrides`: blockId → collapsed. Absent key → wire node.collapsed. */
46
+ export function applyThoughtCollapsed(node, collapsedOverrides) {
47
+ if (typeof node !== "object" || node === null)
48
+ return node;
49
+ const rec = node;
50
+ if (rec.type === "disclosure" && isToggleCollapsedClick(rec.onClick)) {
51
+ const { blockId } = rec.onClick;
52
+ if (collapsedOverrides.has(blockId)) {
53
+ return { ...rec, collapsed: collapsedOverrides.get(blockId) };
54
+ }
55
+ }
56
+ let changed = false;
57
+ let summary = rec.type === "disclosure" ? rec.summary : undefined;
58
+ if (summary) {
59
+ const next = applyThoughtCollapsed(summary, collapsedOverrides);
60
+ if (next !== summary) {
61
+ summary = next;
62
+ changed = true;
63
+ }
64
+ }
65
+ let children = rec.children;
66
+ if (Array.isArray(children)) {
67
+ const next = children.map((child) => {
68
+ const c = applyThoughtCollapsed(child, collapsedOverrides);
69
+ if (c !== child)
70
+ changed = true;
71
+ return c;
72
+ });
73
+ if (changed)
74
+ children = next;
75
+ }
76
+ if (!changed)
77
+ return node;
78
+ return {
79
+ ...rec,
80
+ summary,
81
+ children,
82
+ };
83
+ }
84
+ export function paintSnapshotWithThoughtCollapsed(snapshot, collapsedOverrides) {
85
+ if (collapsedOverrides.size === 0)
86
+ return snapshot;
87
+ return {
88
+ tree: snapshot.tree,
89
+ getBox(id) {
90
+ return applyThoughtCollapsed(snapshot.getBox(id), collapsedOverrides);
91
+ },
92
+ };
93
+ }
94
+ //# sourceMappingURL=thought_collapsed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thought_collapsed.js","sourceRoot":"","sources":["../../src/runtime/thought_collapsed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * TTY lifecycle: ordered setup/teardown for alt-screen apps.
3
+ * Single owner of mode brackets. Leave-alt is LAST.
4
+ */
5
+ export type TtyOptions = {
6
+ /** Mode 2026 synchronized output — env-flag only for MVP (no DECRQM probe) */
7
+ sync2026?: boolean;
8
+ hideCursor?: boolean;
9
+ noWrap?: boolean;
10
+ };
11
+ export type TtySession = {
12
+ readonly entered: boolean;
13
+ /** Ordered enter sequences (for tests / write) */
14
+ enterBytes(): string;
15
+ /**
16
+ * Just the input-mode brackets, closed — mouse, paste, focus, kitty,
17
+ * modifyOtherKeys. The leading part of {@link exitBytes}, available on its own
18
+ * because it has to be written EARLIER than the rest: a host that drops raw
19
+ * mode first hands the shell a terminal still reporting mouse events, and the
20
+ * SGR bytes for the next click land as garbage on the prompt. Idempotent
21
+ * (DECRST of an already-reset mode is a no-op), so writing it here and again
22
+ * inside `exitBytes` costs nothing and keeps one spelling of the bytes.
23
+ */
24
+ inputModesOffBytes(): string;
25
+ /** Ordered teardown — leave-alt last */
26
+ exitBytes(): string;
27
+ /**
28
+ * CUP park. CSI row;colH is 1-based — a 0-based write parks off-screen.
29
+ * Clamps to ≥1.
30
+ */
31
+ parkCursor(row: number, col: number): string;
32
+ markEntered(): void;
33
+ markExited(): void;
34
+ };
35
+ export declare function createTtySession(opts?: TtyOptions): TtySession;
36
+ /**
37
+ * Host-owned 1003 any-motion. `enterBytes` never sends this — hover flood
38
+ * is scoped to slash-complete presence, and to copy-toast after its 3s arm
39
+ * (move dismisses the plaque). Written on the edge only.
40
+ *
41
+ * 1000/1002/1003 are mutually exclusive. `1003l` does not fall back to
42
+ * press+drag tracking — it drops mouse reporting entirely, so the
43
+ * terminal keeps the pointer (system selection, 1007 wheel-as-arrows)
44
+ * until the next `1003h`. Off re-asserts the enterBytes mouse set.
45
+ */
46
+ export declare function mouseAnyMotionBytes(on: boolean): string;
47
+ /**
48
+ * OSC 22 pointer shape (CSS cursor names; kitty / ghostty / xterm).
49
+ * `pointer` = clickable hit (`intent: activate`). `default` restores the
50
+ * I-beam / arrow. Written on the edge only — `enterBytes` never sends this.
51
+ * `exitBytes` restores default so the shell does not inherit a hand.
52
+ *
53
+ * Rejected: a `cursor` field on LayoutNode. TTY shape is host-owned, same
54
+ * as 1003; the layout already says clickable via intent.
55
+ */
56
+ export type MousePointerShape = "default" | "pointer";
57
+ export declare function mousePointerBytes(shape: MousePointerShape): string;
58
+ //# sourceMappingURL=tty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty.d.ts","sourceRoot":"","sources":["../../src/runtime/tty.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,UAAU,GAAG;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,UAAU,IAAI,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,kBAAkB,IAAI,MAAM,CAAC;IAC7B,wCAAwC;IACxC,SAAS,IAAI,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,WAAW,IAAI,IAAI,CAAC;IACpB,UAAU,IAAI,IAAI,CAAC;CACpB,CAAC;AAuDF,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,UAAe,GAAG,UAAU,CA2DlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAGvD;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAElE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * TTY lifecycle: ordered setup/teardown for alt-screen apps.
3
+ * Single owner of mode brackets. Leave-alt is LAST.
4
+ */
5
+ const ENTER_ALT = "\u001B[?1049h";
6
+ const ERASE_DISPLAY = "\u001B[2J";
7
+ const CUP_HOME = "\u001B[H";
8
+ /**
9
+ * Build a session. Does not touch process.stdout — caller writes.
10
+ * Teardown order (TERMINAL L2/L3):
11
+ * 1. keyboard / paste modes off (kitty pop, modifyOtherKeys, bracketed paste)
12
+ * 2. ?2026l if was on
13
+ * 3. CSI r (release scroll region)
14
+ * 4. ?7h autowrap on
15
+ * 5. ?25h show cursor
16
+ * 6. CUP bottom + CR LF
17
+ * 7. ?1049l leave alt LAST
18
+ *
19
+ * Keyboard / focus opt-in (OpenTUI / Ink / crossterm / Bubble Tea pattern):
20
+ * - CSI > 4 ; 2 m — xterm modifyOtherKeys mode 2 (Shift+Enter on partial
21
+ * terminals). Must precede kitty setup: iTerm clears kitty flags when
22
+ * modifyOtherKeys is enabled.
23
+ * - CSI > 31 u then CSI = 31 ; 1 u — kitty progressive: flag 1
24
+ * (disambiguate) | 2 (press / repeat / release) | 4 (shifted / base
25
+ * layout keys) | 8 (report all keys as escape codes) | 16 (associated
26
+ * text). Push so `CSI < u` restores the prior entry; SET is the spec's
27
+ * primary request (terminals that ignore push). Flag 8 delivers
28
+ * **Cmd/Super+letter** (e.g. Cmd+Z → CSI 122;9u) and isolated
29
+ * Super/Control as `{ type: "mod" }` (`CSI 57444;9u` press — super bit
30
+ * set). Flag 8 also stops UTF-8 letters — flag 16 puts the OS glyph in
31
+ * CSI field 3 so Shift/Caps/layout stay insertable. Flag 4 is the
32
+ * shifted-subfield fallback when field 3 is absent. Flag 2 is the
33
+ * release (`:3`) so the chrome modifier layer can drop. Decoder must
34
+ * accept plain CSI-u printables when this is on.
35
+ * - CSI ? 2004 h — bracketed paste
36
+ * - CSI ? 1004 h — focus in/out (CSI I / CSI O)
37
+ * - CSI ? 1000 h + ? 1002 h + ? 1006 h — SGR mouse press/release plus
38
+ * cell-motion-while-held, for drag-select (never ?1003 any-motion flood)
39
+ * - CSI ? 1007 h — alternate scroll: alt-screen wheel → cursor keys when
40
+ * mouse reporting is inactive (macOS Option is the native bypass)
41
+ */
42
+ /**
43
+ * The input-mode brackets, closed. A free function rather than a method so
44
+ * `exitBytes` can reuse it without a `this` binding a destructured caller would
45
+ * lose.
46
+ */
47
+ function inputModesOff() {
48
+ return [
49
+ "\u001B[?1006l", // SGR mouse off
50
+ "\u001B[?1002l", // cell-motion off
51
+ "\u001B[?1000l", // mouse tracking off
52
+ "\u001B[?1003l", // any-motion off (defensive)
53
+ "\u001B[?1007l", // alternate scroll off
54
+ "\u001B[?1004l", // focus report off
55
+ "\u001B[?2004l", // bracketed paste off
56
+ "\u001B[<u", // kitty keyboard pop
57
+ "\u001B[>4;0m", // modifyOtherKeys off
58
+ ].join("");
59
+ }
60
+ export function createTtySession(opts = {}) {
61
+ let entered = false;
62
+ const sync2026 = opts.sync2026 === true;
63
+ const hideCursor = opts.hideCursor !== false;
64
+ const noWrap = opts.noWrap !== false;
65
+ return {
66
+ get entered() {
67
+ return entered;
68
+ },
69
+ markEntered() {
70
+ entered = true;
71
+ },
72
+ markExited() {
73
+ entered = false;
74
+ },
75
+ enterBytes() {
76
+ const parts = [ENTER_ALT, ERASE_DISPLAY, CUP_HOME];
77
+ if (hideCursor)
78
+ parts.push("\u001B[?25l");
79
+ if (noWrap)
80
+ parts.push("\u001B[?7l");
81
+ if (sync2026)
82
+ parts.push("\u001B[?2026h");
83
+ // Input enhancements — ignored by unsupported terminals.
84
+ // Enable the fallback first: iTerm clears kitty flags on this request.
85
+ parts.push("\u001B[>4;2m", "\u001B[>31u", "\u001B[=31;1u", "\u001B[?2004h", "\u001B[?1004h", "\u001B[?1000h", "\u001B[?1002h", "\u001B[?1006h", "\u001B[?1007h");
86
+ return parts.join("");
87
+ },
88
+ inputModesOffBytes() {
89
+ return inputModesOff();
90
+ },
91
+ exitBytes() {
92
+ // 1 keyboard / paste / focus / mouse off before paint teardown
93
+ const parts = [
94
+ inputModesOff(),
95
+ mousePointerBytes("default"),
96
+ "\u001B[?2026l",
97
+ "\u001B[r",
98
+ "\u001B[?7h",
99
+ "\u001B[?25h",
100
+ "\u001B[999;1H\r\n",
101
+ "\u001B[?1049l",
102
+ ];
103
+ return parts.join("");
104
+ },
105
+ parkCursor(row, col) {
106
+ const r = Math.max(1, Math.floor(row));
107
+ const c = Math.max(1, Math.floor(col));
108
+ return `\u001B[${r};${c}H`;
109
+ },
110
+ };
111
+ }
112
+ /**
113
+ * Host-owned 1003 any-motion. `enterBytes` never sends this — hover flood
114
+ * is scoped to slash-complete presence, and to copy-toast after its 3s arm
115
+ * (move dismisses the plaque). Written on the edge only.
116
+ *
117
+ * 1000/1002/1003 are mutually exclusive. `1003l` does not fall back to
118
+ * press+drag tracking — it drops mouse reporting entirely, so the
119
+ * terminal keeps the pointer (system selection, 1007 wheel-as-arrows)
120
+ * until the next `1003h`. Off re-asserts the enterBytes mouse set.
121
+ */
122
+ export function mouseAnyMotionBytes(on) {
123
+ if (on)
124
+ return "\u001B[?1003h";
125
+ return "\u001B[?1003l\u001B[?1000h\u001B[?1002h\u001B[?1006h";
126
+ }
127
+ export function mousePointerBytes(shape) {
128
+ return `\u001B]22;${shape}\u0007`;
129
+ }
130
+ //# sourceMappingURL=tty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty.js","sourceRoot":"","sources":["../../src/runtime/tty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Polarity-preserving ANSI16 degradation for semantic roles.
3
+ *
4
+ * Nearest-RGB quantization collapses hue (error→yellow, etc.). This table
5
+ * pins each role to a hue-preserving slot so category is never lost.
6
+ * Legibility > category preservation > tier separation.
7
+ *
8
+ * Literal RGB (syntax highlight, no role) degrades via nearest-RGB on the
9
+ * classic 0–15 xterm palette — hue-preserving slots stay role-only.
10
+ */
11
+ import type { Rgb, SemanticRole } from "../lexicon/index.js";
12
+ export type CanvasPolarity = "dark" | "light";
13
+ export type Ansi16Slot = number;
14
+ /**
15
+ * Named ANSI slot → theme role whose hue/chroma we keep. Bright and dim
16
+ * share a role; SGR 1 is weight. Inverse of {@link ansi16Slot} (role → slot).
17
+ * Black/white land on furniture/voice, not a claimed gray RGB.
18
+ */
19
+ export declare const ANSI16_ROLE: readonly ["muted", "error", "success", "warning", "code", "running", "auto", "foreground", "muted", "error", "success", "emphasis", "code", "running", "accent", "foreground"];
20
+ /** Prominence ≥ this → loud tier; below → soft. */
21
+ export declare const LOUD_THRESHOLD = 0.8;
22
+ /** Nearest ANSI16 index for an sRGB triple (0–255). Euclidean in sRGB. */
23
+ export declare function nearestAnsi16(r: number, g: number, b: number): Ansi16Slot;
24
+ export declare function nearestAnsi16FromRgb(rgb: Rgb): Ansi16Slot;
25
+ /** Decode ANSI16 index to approximate RGB (xterm defaults). */
26
+ export declare function ansi16ToRgb(index: number): Rgb;
27
+ /**
28
+ * Canvas polarity from ground OKLCH L.
29
+ * `null` / undefined → reference ground polarity (dark).
30
+ */
31
+ export declare function canvasPolarity(groundLightness: number | null | undefined): CanvasPolarity;
32
+ /** Resolve role → ANSI16 slot for polarity + prominence. */
33
+ export declare function ansi16Slot(role: SemanticRole, polarity: CanvasPolarity, prominence?: number): Ansi16Slot;
34
+ //# sourceMappingURL=ansi16.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi16.d.ts","sourceRoot":"","sources":["../../src/theme/ansi16.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,WAAW,gLAiBoB,CAAC;AAE7C,mDAAmD;AACnD,eAAO,MAAM,cAAc,MAAM,CAAC;AAsBlC,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAgBzE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAEzD;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAI9C;AAmFD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAGzF;AAMD,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,SAAI,GAAG,UAAU,CAKnG"}