@vibesdotdev/control 0.0.0-stage → 1.0.0-rc.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 (523) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +90 -2
  3. package/dist/browser/browser.cloud.plugin.d.ts +21 -0
  4. package/dist/browser/browser.cloud.plugin.d.ts.map +1 -0
  5. package/dist/browser/browser.cloud.plugin.js +37 -0
  6. package/dist/browser/browser.cloud.plugin.js.map +1 -0
  7. package/dist/browser/browser.consumer.plugin.d.ts +4 -0
  8. package/dist/browser/browser.consumer.plugin.d.ts.map +1 -0
  9. package/dist/browser/browser.consumer.plugin.js +77 -0
  10. package/dist/browser/browser.consumer.plugin.js.map +1 -0
  11. package/dist/browser/browser.plugin.d.ts +3 -0
  12. package/dist/browser/browser.plugin.d.ts.map +1 -0
  13. package/dist/browser/browser.plugin.js +3 -0
  14. package/dist/browser/browser.plugin.js.map +1 -0
  15. package/dist/browser/bun/webview.backend.d.ts +23 -0
  16. package/dist/browser/bun/webview.backend.d.ts.map +1 -0
  17. package/dist/browser/bun/webview.backend.js +262 -0
  18. package/dist/browser/bun/webview.backend.js.map +1 -0
  19. package/dist/browser/bun/webview.descriptor.d.ts +21 -0
  20. package/dist/browser/bun/webview.descriptor.d.ts.map +1 -0
  21. package/dist/browser/bun/webview.descriptor.js +21 -0
  22. package/dist/browser/bun/webview.descriptor.js.map +1 -0
  23. package/dist/browser/bun/webview.plugin.d.ts +3 -0
  24. package/dist/browser/bun/webview.plugin.d.ts.map +1 -0
  25. package/dist/browser/bun/webview.plugin.js +24 -0
  26. package/dist/browser/bun/webview.plugin.js.map +1 -0
  27. package/dist/browser/client/browser-client.d.ts +92 -0
  28. package/dist/browser/client/browser-client.d.ts.map +1 -0
  29. package/dist/browser/client/browser-client.js +138 -0
  30. package/dist/browser/client/browser-client.js.map +1 -0
  31. package/dist/browser/client/workspace-client.d.ts +29 -0
  32. package/dist/browser/client/workspace-client.d.ts.map +1 -0
  33. package/dist/browser/client/workspace-client.js +38 -0
  34. package/dist/browser/client/workspace-client.js.map +1 -0
  35. package/dist/browser/contracts.d.ts +246 -0
  36. package/dist/browser/contracts.d.ts.map +1 -0
  37. package/dist/browser/contracts.js +38 -0
  38. package/dist/browser/contracts.js.map +1 -0
  39. package/dist/browser/index.d.ts +6 -0
  40. package/dist/browser/index.d.ts.map +1 -0
  41. package/dist/browser/index.js +7 -0
  42. package/dist/browser/index.js.map +1 -0
  43. package/dist/browser/plugin.d.ts +3 -0
  44. package/dist/browser/plugin.d.ts.map +1 -0
  45. package/dist/browser/plugin.js +3 -0
  46. package/dist/browser/plugin.js.map +1 -0
  47. package/dist/browser/runtime/backend/kind.d.ts +23 -0
  48. package/dist/browser/runtime/backend/kind.d.ts.map +1 -0
  49. package/dist/browser/runtime/backend/kind.js +12 -0
  50. package/dist/browser/runtime/backend/kind.js.map +1 -0
  51. package/dist/browser/runtime/backend/playwright.descriptor.d.ts +20 -0
  52. package/dist/browser/runtime/backend/playwright.descriptor.d.ts.map +1 -0
  53. package/dist/browser/runtime/backend/playwright.descriptor.js +20 -0
  54. package/dist/browser/runtime/backend/playwright.descriptor.js.map +1 -0
  55. package/dist/browser/runtime/backend/resolve.d.ts +8 -0
  56. package/dist/browser/runtime/backend/resolve.d.ts.map +1 -0
  57. package/dist/browser/runtime/backend/resolve.js +43 -0
  58. package/dist/browser/runtime/backend/resolve.js.map +1 -0
  59. package/dist/browser/runtime/backend/types.d.ts +12 -0
  60. package/dist/browser/runtime/backend/types.d.ts.map +1 -0
  61. package/dist/browser/runtime/backend/types.js +12 -0
  62. package/dist/browser/runtime/backend/types.js.map +1 -0
  63. package/dist/browser/runtime/backends/playwright.backend.d.ts +71 -0
  64. package/dist/browser/runtime/backends/playwright.backend.d.ts.map +1 -0
  65. package/dist/browser/runtime/backends/playwright.backend.js +177 -0
  66. package/dist/browser/runtime/backends/playwright.backend.js.map +1 -0
  67. package/dist/browser/runtime/index.d.ts +3 -0
  68. package/dist/browser/runtime/index.d.ts.map +1 -0
  69. package/dist/browser/runtime/index.js +2 -0
  70. package/dist/browser/runtime/index.js.map +1 -0
  71. package/dist/browser/runtime/launcher.d.ts +18 -0
  72. package/dist/browser/runtime/launcher.d.ts.map +1 -0
  73. package/dist/browser/runtime/launcher.js +123 -0
  74. package/dist/browser/runtime/launcher.js.map +1 -0
  75. package/dist/browser/runtime/manager-host.d.ts +22 -0
  76. package/dist/browser/runtime/manager-host.d.ts.map +1 -0
  77. package/dist/browser/runtime/manager-host.js +102 -0
  78. package/dist/browser/runtime/manager-host.js.map +1 -0
  79. package/dist/browser/runtime/manager.context.d.ts +19 -0
  80. package/dist/browser/runtime/manager.context.d.ts.map +1 -0
  81. package/dist/browser/runtime/manager.context.descriptor.d.ts +30 -0
  82. package/dist/browser/runtime/manager.context.descriptor.d.ts.map +1 -0
  83. package/dist/browser/runtime/manager.context.descriptor.js +7 -0
  84. package/dist/browser/runtime/manager.context.descriptor.js.map +1 -0
  85. package/dist/browser/runtime/manager.context.impl.consumer.d.ts +6 -0
  86. package/dist/browser/runtime/manager.context.impl.consumer.d.ts.map +1 -0
  87. package/dist/browser/runtime/manager.context.impl.consumer.js +7 -0
  88. package/dist/browser/runtime/manager.context.impl.consumer.js.map +1 -0
  89. package/dist/browser/runtime/manager.context.js +19 -0
  90. package/dist/browser/runtime/manager.context.js.map +1 -0
  91. package/dist/browser/runtime/manager.d.ts +97 -0
  92. package/dist/browser/runtime/manager.d.ts.map +1 -0
  93. package/dist/browser/runtime/manager.js +731 -0
  94. package/dist/browser/runtime/manager.js.map +1 -0
  95. package/dist/browser/runtime/safe-url.d.ts +27 -0
  96. package/dist/browser/runtime/safe-url.d.ts.map +1 -0
  97. package/dist/browser/runtime/safe-url.js +77 -0
  98. package/dist/browser/runtime/safe-url.js.map +1 -0
  99. package/dist/browser/runtime/session-lease.d.ts +24 -0
  100. package/dist/browser/runtime/session-lease.d.ts.map +1 -0
  101. package/dist/browser/runtime/session-lease.js +65 -0
  102. package/dist/browser/runtime/session-lease.js.map +1 -0
  103. package/dist/browser/runtime/step-executor.d.ts +14 -0
  104. package/dist/browser/runtime/step-executor.d.ts.map +1 -0
  105. package/dist/browser/runtime/step-executor.js +97 -0
  106. package/dist/browser/runtime/step-executor.js.map +1 -0
  107. package/dist/browser/runtime/types.d.ts +54 -0
  108. package/dist/browser/runtime/types.d.ts.map +1 -0
  109. package/dist/browser/runtime/types.js +5 -0
  110. package/dist/browser/runtime/types.js.map +1 -0
  111. package/dist/browser/schemas/backend.d.ts +79 -0
  112. package/dist/browser/schemas/backend.d.ts.map +1 -0
  113. package/dist/browser/schemas/backend.js +33 -0
  114. package/dist/browser/schemas/backend.js.map +1 -0
  115. package/dist/browser/schemas/cli.d.ts +55 -0
  116. package/dist/browser/schemas/cli.d.ts.map +1 -0
  117. package/dist/browser/schemas/cli.js +37 -0
  118. package/dist/browser/schemas/cli.js.map +1 -0
  119. package/dist/browser/schemas/client.d.ts +28 -0
  120. package/dist/browser/schemas/client.d.ts.map +1 -0
  121. package/dist/browser/schemas/client.js +7 -0
  122. package/dist/browser/schemas/client.js.map +1 -0
  123. package/dist/browser/schemas/page.d.ts +71 -0
  124. package/dist/browser/schemas/page.d.ts.map +1 -0
  125. package/dist/browser/schemas/page.js +32 -0
  126. package/dist/browser/schemas/page.js.map +1 -0
  127. package/dist/browser/schemas/profile.d.ts +14 -0
  128. package/dist/browser/schemas/profile.d.ts.map +1 -0
  129. package/dist/browser/schemas/profile.js +14 -0
  130. package/dist/browser/schemas/profile.js.map +1 -0
  131. package/dist/browser/schemas/recipe.d.ts +218 -0
  132. package/dist/browser/schemas/recipe.d.ts.map +1 -0
  133. package/dist/browser/schemas/recipe.js +91 -0
  134. package/dist/browser/schemas/recipe.js.map +1 -0
  135. package/dist/browser/schemas/session.d.ts +42 -0
  136. package/dist/browser/schemas/session.d.ts.map +1 -0
  137. package/dist/browser/schemas/session.js +22 -0
  138. package/dist/browser/schemas/session.js.map +1 -0
  139. package/dist/browser/schemas/tab.d.ts +38 -0
  140. package/dist/browser/schemas/tab.d.ts.map +1 -0
  141. package/dist/browser/schemas/tab.js +20 -0
  142. package/dist/browser/schemas/tab.js.map +1 -0
  143. package/dist/browser/schemas/tool-card.d.ts +68 -0
  144. package/dist/browser/schemas/tool-card.d.ts.map +1 -0
  145. package/dist/browser/schemas/tool-card.js +29 -0
  146. package/dist/browser/schemas/tool-card.js.map +1 -0
  147. package/dist/browser/schemas/webview.d.ts +40 -0
  148. package/dist/browser/schemas/webview.d.ts.map +1 -0
  149. package/dist/browser/schemas/webview.js +5 -0
  150. package/dist/browser/schemas/webview.js.map +1 -0
  151. package/dist/browser/schemas/workspace.d.ts +8 -0
  152. package/dist/browser/schemas/workspace.d.ts.map +1 -0
  153. package/dist/browser/schemas/workspace.js +7 -0
  154. package/dist/browser/schemas/workspace.js.map +1 -0
  155. package/dist/browser/shared/ai-client.d.ts +26 -0
  156. package/dist/browser/shared/ai-client.d.ts.map +1 -0
  157. package/dist/browser/shared/ai-client.js +27 -0
  158. package/dist/browser/shared/ai-client.js.map +1 -0
  159. package/dist/browser/shared/ai-request.d.ts +26 -0
  160. package/dist/browser/shared/ai-request.d.ts.map +1 -0
  161. package/dist/browser/shared/ai-request.js +32 -0
  162. package/dist/browser/shared/ai-request.js.map +1 -0
  163. package/dist/browser/shared/cleanup.d.ts +5 -0
  164. package/dist/browser/shared/cleanup.d.ts.map +1 -0
  165. package/dist/browser/shared/cleanup.js +15 -0
  166. package/dist/browser/shared/cleanup.js.map +1 -0
  167. package/dist/browser/shared/constants.d.ts +19 -0
  168. package/dist/browser/shared/constants.d.ts.map +1 -0
  169. package/dist/browser/shared/constants.js +13 -0
  170. package/dist/browser/shared/constants.js.map +1 -0
  171. package/dist/browser/shared/json.d.ts +5 -0
  172. package/dist/browser/shared/json.d.ts.map +1 -0
  173. package/dist/browser/shared/json.js +3 -0
  174. package/dist/browser/shared/json.js.map +1 -0
  175. package/dist/browser/shared/paths.d.ts +33 -0
  176. package/dist/browser/shared/paths.d.ts.map +1 -0
  177. package/dist/browser/shared/paths.js +55 -0
  178. package/dist/browser/shared/paths.js.map +1 -0
  179. package/dist/browser/shared/steps.d.ts +82 -0
  180. package/dist/browser/shared/steps.d.ts.map +1 -0
  181. package/dist/browser/shared/steps.js +88 -0
  182. package/dist/browser/shared/steps.js.map +1 -0
  183. package/dist/browser/shared/storage-state.d.ts +23 -0
  184. package/dist/browser/shared/storage-state.d.ts.map +1 -0
  185. package/dist/browser/shared/storage-state.js +5 -0
  186. package/dist/browser/shared/storage-state.js.map +1 -0
  187. package/dist/browser/shared/tool-summary.d.ts +48 -0
  188. package/dist/browser/shared/tool-summary.d.ts.map +1 -0
  189. package/dist/browser/shared/tool-summary.js +183 -0
  190. package/dist/browser/shared/tool-summary.js.map +1 -0
  191. package/dist/browser/storage/browser-profile.record.descriptor.d.ts +28 -0
  192. package/dist/browser/storage/browser-profile.record.descriptor.d.ts.map +1 -0
  193. package/dist/browser/storage/browser-profile.record.descriptor.js +129 -0
  194. package/dist/browser/storage/browser-profile.record.descriptor.js.map +1 -0
  195. package/dist/browser/storage/browser-recipe.record.descriptor.d.ts +29 -0
  196. package/dist/browser/storage/browser-recipe.record.descriptor.d.ts.map +1 -0
  197. package/dist/browser/storage/browser-recipe.record.descriptor.js +103 -0
  198. package/dist/browser/storage/browser-recipe.record.descriptor.js.map +1 -0
  199. package/dist/browser/storage/browser-session.record.descriptor.d.ts +28 -0
  200. package/dist/browser/storage/browser-session.record.descriptor.d.ts.map +1 -0
  201. package/dist/browser/storage/browser-session.record.descriptor.js +147 -0
  202. package/dist/browser/storage/browser-session.record.descriptor.js.map +1 -0
  203. package/dist/browser/storage/browser-tab.record.descriptor.d.ts +28 -0
  204. package/dist/browser/storage/browser-tab.record.descriptor.d.ts.map +1 -0
  205. package/dist/browser/storage/browser-tab.record.descriptor.js +153 -0
  206. package/dist/browser/storage/browser-tab.record.descriptor.js.map +1 -0
  207. package/dist/browser/storage/database.d.ts +9 -0
  208. package/dist/browser/storage/database.d.ts.map +1 -0
  209. package/dist/browser/storage/database.js +16 -0
  210. package/dist/browser/storage/database.js.map +1 -0
  211. package/dist/browser/storage/index.d.ts +6 -0
  212. package/dist/browser/storage/index.d.ts.map +1 -0
  213. package/dist/browser/storage/index.js +5 -0
  214. package/dist/browser/storage/index.js.map +1 -0
  215. package/dist/browser/storage/types.d.ts +78 -0
  216. package/dist/browser/storage/types.d.ts.map +1 -0
  217. package/dist/browser/storage/types.js +5 -0
  218. package/dist/browser/storage/types.js.map +1 -0
  219. package/dist/browser/tools/cdp/implementation.d.ts +6 -0
  220. package/dist/browser/tools/cdp/implementation.d.ts.map +1 -0
  221. package/dist/browser/tools/cdp/implementation.js +20 -0
  222. package/dist/browser/tools/cdp/implementation.js.map +1 -0
  223. package/dist/browser/tools/control/implementation.d.ts +7 -0
  224. package/dist/browser/tools/control/implementation.d.ts.map +1 -0
  225. package/dist/browser/tools/control/implementation.js +185 -0
  226. package/dist/browser/tools/control/implementation.js.map +1 -0
  227. package/dist/browser/tools/control/prompts/index.d.ts +113 -0
  228. package/dist/browser/tools/control/prompts/index.d.ts.map +1 -0
  229. package/dist/browser/tools/control/prompts/index.js +5 -0
  230. package/dist/browser/tools/control/prompts/index.js.map +1 -0
  231. package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.d.ts +114 -0
  232. package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.d.ts.map +1 -0
  233. package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.js +57 -0
  234. package/dist/browser/tools/control/prompts/plan-request.prompt.descriptor.js.map +1 -0
  235. package/dist/browser/tools/control/prompts/planner.prompt.descriptor.d.ts +113 -0
  236. package/dist/browser/tools/control/prompts/planner.prompt.descriptor.d.ts.map +1 -0
  237. package/dist/browser/tools/control/prompts/planner.prompt.descriptor.js +15 -0
  238. package/dist/browser/tools/control/prompts/planner.prompt.descriptor.js.map +1 -0
  239. package/dist/browser/tools/control/schemas.d.ts +220 -0
  240. package/dist/browser/tools/control/schemas.d.ts.map +1 -0
  241. package/dist/browser/tools/control/schemas.js +49 -0
  242. package/dist/browser/tools/control/schemas.js.map +1 -0
  243. package/dist/browser/tools/direct/implementation.d.ts +7 -0
  244. package/dist/browser/tools/direct/implementation.d.ts.map +1 -0
  245. package/dist/browser/tools/direct/implementation.js +63 -0
  246. package/dist/browser/tools/direct/implementation.js.map +1 -0
  247. package/dist/browser/tools/direct/schemas.d.ts +209 -0
  248. package/dist/browser/tools/direct/schemas.d.ts.map +1 -0
  249. package/dist/browser/tools/direct/schemas.js +68 -0
  250. package/dist/browser/tools/direct/schemas.js.map +1 -0
  251. package/dist/browser/tools/index.d.ts +9 -0
  252. package/dist/browser/tools/index.d.ts.map +1 -0
  253. package/dist/browser/tools/index.js +9 -0
  254. package/dist/browser/tools/index.js.map +1 -0
  255. package/dist/browser/tools/observe/implementation.d.ts +7 -0
  256. package/dist/browser/tools/observe/implementation.d.ts.map +1 -0
  257. package/dist/browser/tools/observe/implementation.js +59 -0
  258. package/dist/browser/tools/observe/implementation.js.map +1 -0
  259. package/dist/browser/tools/observe/schemas.d.ts +63 -0
  260. package/dist/browser/tools/observe/schemas.d.ts.map +1 -0
  261. package/dist/browser/tools/observe/schemas.js +38 -0
  262. package/dist/browser/tools/observe/schemas.js.map +1 -0
  263. package/dist/browser/tools/observe/vision.d.ts +21 -0
  264. package/dist/browser/tools/observe/vision.d.ts.map +1 -0
  265. package/dist/browser/tools/observe/vision.js +73 -0
  266. package/dist/browser/tools/observe/vision.js.map +1 -0
  267. package/dist/browser/tools/recipe/implementation.d.ts +4 -0
  268. package/dist/browser/tools/recipe/implementation.d.ts.map +1 -0
  269. package/dist/browser/tools/recipe/implementation.js +259 -0
  270. package/dist/browser/tools/recipe/implementation.js.map +1 -0
  271. package/dist/browser/tools/recipe/schemas.d.ts +646 -0
  272. package/dist/browser/tools/recipe/schemas.d.ts.map +1 -0
  273. package/dist/browser/tools/recipe/schemas.js +126 -0
  274. package/dist/browser/tools/recipe/schemas.js.map +1 -0
  275. package/dist/browser/tools/session/implementation.d.ts +7 -0
  276. package/dist/browser/tools/session/implementation.d.ts.map +1 -0
  277. package/dist/browser/tools/session/implementation.js +111 -0
  278. package/dist/browser/tools/session/implementation.js.map +1 -0
  279. package/dist/browser/tools/session/index.d.ts +5 -0
  280. package/dist/browser/tools/session/index.d.ts.map +1 -0
  281. package/dist/browser/tools/session/index.js +6 -0
  282. package/dist/browser/tools/session/index.js.map +1 -0
  283. package/dist/browser/tools/session/schemas.d.ts +78 -0
  284. package/dist/browser/tools/session/schemas.d.ts.map +1 -0
  285. package/dist/browser/tools/session/schemas.js +60 -0
  286. package/dist/browser/tools/session/schemas.js.map +1 -0
  287. package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.d.ts +114 -0
  288. package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.d.ts.map +1 -0
  289. package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.js +22 -0
  290. package/dist/browser/tools/unified/browser-recipe.prompt.descriptor.js.map +1 -0
  291. package/dist/browser/tools/unified/browser.impl.cloud.d.ts +8 -0
  292. package/dist/browser/tools/unified/browser.impl.cloud.d.ts.map +1 -0
  293. package/dist/browser/tools/unified/browser.impl.cloud.js +381 -0
  294. package/dist/browser/tools/unified/browser.impl.cloud.js.map +1 -0
  295. package/dist/browser/tools/unified/browser.impl.consumer.d.ts +14 -0
  296. package/dist/browser/tools/unified/browser.impl.consumer.d.ts.map +1 -0
  297. package/dist/browser/tools/unified/browser.impl.consumer.js +87 -0
  298. package/dist/browser/tools/unified/browser.impl.consumer.js.map +1 -0
  299. package/dist/browser/tools/unified/browser.unified.descriptor.d.ts +587 -0
  300. package/dist/browser/tools/unified/browser.unified.descriptor.d.ts.map +1 -0
  301. package/dist/browser/tools/unified/browser.unified.descriptor.js +54 -0
  302. package/dist/browser/tools/unified/browser.unified.descriptor.js.map +1 -0
  303. package/dist/browser/tools/unified/execution-binding.d.ts +5 -0
  304. package/dist/browser/tools/unified/execution-binding.d.ts.map +1 -0
  305. package/dist/browser/tools/unified/execution-binding.js +51 -0
  306. package/dist/browser/tools/unified/execution-binding.js.map +1 -0
  307. package/dist/browser/tools/unified/index.d.ts +5 -0
  308. package/dist/browser/tools/unified/index.d.ts.map +1 -0
  309. package/dist/browser/tools/unified/index.js +6 -0
  310. package/dist/browser/tools/unified/index.js.map +1 -0
  311. package/dist/browser/tools/unified/scan-cache-wiring.d.ts +16 -0
  312. package/dist/browser/tools/unified/scan-cache-wiring.d.ts.map +1 -0
  313. package/dist/browser/tools/unified/scan-cache-wiring.js +87 -0
  314. package/dist/browser/tools/unified/scan-cache-wiring.js.map +1 -0
  315. package/dist/browser/tools/unified/schemas.d.ts +786 -0
  316. package/dist/browser/tools/unified/schemas.d.ts.map +1 -0
  317. package/dist/browser/tools/unified/schemas.js +354 -0
  318. package/dist/browser/tools/unified/schemas.js.map +1 -0
  319. package/dist/browser/tools/webmcp/detection-script.d.ts +19 -0
  320. package/dist/browser/tools/webmcp/detection-script.d.ts.map +1 -0
  321. package/dist/browser/tools/webmcp/detection-script.js +104 -0
  322. package/dist/browser/tools/webmcp/detection-script.js.map +1 -0
  323. package/dist/browser/tools/webmcp/implementation.d.ts +18 -0
  324. package/dist/browser/tools/webmcp/implementation.d.ts.map +1 -0
  325. package/dist/browser/tools/webmcp/implementation.js +61 -0
  326. package/dist/browser/tools/webmcp/implementation.js.map +1 -0
  327. package/dist/cli/browser/browser.cli-group.descriptor.d.ts +17 -0
  328. package/dist/cli/browser/browser.cli-group.descriptor.d.ts.map +1 -0
  329. package/dist/cli/browser/browser.cli-group.descriptor.js +17 -0
  330. package/dist/cli/browser/browser.cli-group.descriptor.js.map +1 -0
  331. package/dist/cli/browser/browser.cli.plugin.d.ts +12 -0
  332. package/dist/cli/browser/browser.cli.plugin.d.ts.map +1 -0
  333. package/dist/cli/browser/browser.cli.plugin.js +179 -0
  334. package/dist/cli/browser/browser.cli.plugin.js.map +1 -0
  335. package/dist/cli/browser/browser.recipe.cli-group.descriptor.d.ts +18 -0
  336. package/dist/cli/browser/browser.recipe.cli-group.descriptor.d.ts.map +1 -0
  337. package/dist/cli/browser/browser.recipe.cli-group.descriptor.js +18 -0
  338. package/dist/cli/browser/browser.recipe.cli-group.descriptor.js.map +1 -0
  339. package/dist/cli/browser/browser.session.cli-group.descriptor.d.ts +18 -0
  340. package/dist/cli/browser/browser.session.cli-group.descriptor.d.ts.map +1 -0
  341. package/dist/cli/browser/browser.session.cli-group.descriptor.js +18 -0
  342. package/dist/cli/browser/browser.session.cli-group.descriptor.js.map +1 -0
  343. package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.d.ts +36 -0
  344. package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.d.ts.map +1 -0
  345. package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.js +29 -0
  346. package/dist/cli/browser/commands/control/browser.control.cli-command.descriptor.js.map +1 -0
  347. package/dist/cli/browser/commands/control/browser.control.impl.d.ts +7 -0
  348. package/dist/cli/browser/commands/control/browser.control.impl.d.ts.map +1 -0
  349. package/dist/cli/browser/commands/control/browser.control.impl.js +67 -0
  350. package/dist/cli/browser/commands/control/browser.control.impl.js.map +1 -0
  351. package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.d.ts +38 -0
  352. package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.d.ts.map +1 -0
  353. package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.js +28 -0
  354. package/dist/cli/browser/commands/direct/browser.direct.cli-command.descriptor.js.map +1 -0
  355. package/dist/cli/browser/commands/direct/browser.direct.impl.d.ts +7 -0
  356. package/dist/cli/browser/commands/direct/browser.direct.impl.d.ts.map +1 -0
  357. package/dist/cli/browser/commands/direct/browser.direct.impl.js +85 -0
  358. package/dist/cli/browser/commands/direct/browser.direct.impl.js.map +1 -0
  359. package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.d.ts +30 -0
  360. package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.d.ts.map +1 -0
  361. package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.js +22 -0
  362. package/dist/cli/browser/commands/observe/browser.observe.cli-command.descriptor.js.map +1 -0
  363. package/dist/cli/browser/commands/observe/browser.observe.impl.d.ts +7 -0
  364. package/dist/cli/browser/commands/observe/browser.observe.impl.d.ts.map +1 -0
  365. package/dist/cli/browser/commands/observe/browser.observe.impl.js +59 -0
  366. package/dist/cli/browser/commands/observe/browser.observe.impl.js.map +1 -0
  367. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.d.ts +38 -0
  368. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.d.ts.map +1 -0
  369. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.js +26 -0
  370. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.cli-command.descriptor.js.map +1 -0
  371. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.d.ts +7 -0
  372. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.d.ts.map +1 -0
  373. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.js +60 -0
  374. package/dist/cli/browser/commands/recipe/create/browser.recipe.create.impl.js.map +1 -0
  375. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.d.ts +25 -0
  376. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.d.ts.map +1 -0
  377. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.js +22 -0
  378. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.cli-command.descriptor.js.map +1 -0
  379. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.d.ts +7 -0
  380. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.d.ts.map +1 -0
  381. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.js +35 -0
  382. package/dist/cli/browser/commands/recipe/delete/browser.recipe.delete.impl.js.map +1 -0
  383. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.d.ts +25 -0
  384. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.d.ts.map +1 -0
  385. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.js +22 -0
  386. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.cli-command.descriptor.js.map +1 -0
  387. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.d.ts +7 -0
  388. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.d.ts.map +1 -0
  389. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.js +88 -0
  390. package/dist/cli/browser/commands/recipe/get/browser.recipe.get.impl.js.map +1 -0
  391. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.d.ts +20 -0
  392. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.d.ts.map +1 -0
  393. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.js +19 -0
  394. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.cli-command.descriptor.js.map +1 -0
  395. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.d.ts +7 -0
  396. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.d.ts.map +1 -0
  397. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.js +34 -0
  398. package/dist/cli/browser/commands/recipe/list/browser.recipe.list.impl.js.map +1 -0
  399. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.d.ts +37 -0
  400. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.d.ts.map +1 -0
  401. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.js +26 -0
  402. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.cli-command.descriptor.js.map +1 -0
  403. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.d.ts +7 -0
  404. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.d.ts.map +1 -0
  405. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.js +88 -0
  406. package/dist/cli/browser/commands/recipe/run/browser.recipe.run.impl.js.map +1 -0
  407. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.d.ts +37 -0
  408. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.d.ts.map +1 -0
  409. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.js +26 -0
  410. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.cli-command.descriptor.js.map +1 -0
  411. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.d.ts +7 -0
  412. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.d.ts.map +1 -0
  413. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.js +63 -0
  414. package/dist/cli/browser/commands/recipe/update/browser.recipe.update.impl.js.map +1 -0
  415. package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.d.ts +28 -0
  416. package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.d.ts.map +1 -0
  417. package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.js +23 -0
  418. package/dist/cli/browser/commands/session/close/browser.session.close.cli-command.descriptor.js.map +1 -0
  419. package/dist/cli/browser/commands/session/close/browser.session.close.impl.d.ts +35 -0
  420. package/dist/cli/browser/commands/session/close/browser.session.close.impl.d.ts.map +1 -0
  421. package/dist/cli/browser/commands/session/close/browser.session.close.impl.js +75 -0
  422. package/dist/cli/browser/commands/session/close/browser.session.close.impl.js.map +1 -0
  423. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.d.ts +16 -0
  424. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.d.ts.map +1 -0
  425. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.js +16 -0
  426. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.cli-command.descriptor.js.map +1 -0
  427. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.d.ts +7 -0
  428. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.d.ts.map +1 -0
  429. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.js +14 -0
  430. package/dist/cli/browser/commands/session/dismiss/browser.session.dismiss.impl.js.map +1 -0
  431. package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.d.ts +25 -0
  432. package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.d.ts.map +1 -0
  433. package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.js +22 -0
  434. package/dist/cli/browser/commands/session/get/browser.session.get.cli-command.descriptor.js.map +1 -0
  435. package/dist/cli/browser/commands/session/get/browser.session.get.impl.d.ts +18 -0
  436. package/dist/cli/browser/commands/session/get/browser.session.get.impl.d.ts.map +1 -0
  437. package/dist/cli/browser/commands/session/get/browser.session.get.impl.js +61 -0
  438. package/dist/cli/browser/commands/session/get/browser.session.get.impl.js.map +1 -0
  439. package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.d.ts +27 -0
  440. package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.d.ts.map +1 -0
  441. package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.js +24 -0
  442. package/dist/cli/browser/commands/session/list/browser.session.list.cli-command.descriptor.js.map +1 -0
  443. package/dist/cli/browser/commands/session/list/browser.session.list.impl.d.ts +22 -0
  444. package/dist/cli/browser/commands/session/list/browser.session.list.impl.d.ts.map +1 -0
  445. package/dist/cli/browser/commands/session/list/browser.session.list.impl.js +73 -0
  446. package/dist/cli/browser/commands/session/list/browser.session.list.impl.js.map +1 -0
  447. package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.d.ts +25 -0
  448. package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.d.ts.map +1 -0
  449. package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.js +22 -0
  450. package/dist/cli/browser/commands/session/present/browser.session.present.cli-command.descriptor.js.map +1 -0
  451. package/dist/cli/browser/commands/session/present/browser.session.present.impl.d.ts +7 -0
  452. package/dist/cli/browser/commands/session/present/browser.session.present.impl.d.ts.map +1 -0
  453. package/dist/cli/browser/commands/session/present/browser.session.present.impl.js +29 -0
  454. package/dist/cli/browser/commands/session/present/browser.session.present.impl.js.map +1 -0
  455. package/dist/cli/browser/commands/session/resolve-session.d.ts +19 -0
  456. package/dist/cli/browser/commands/session/resolve-session.d.ts.map +1 -0
  457. package/dist/cli/browser/commands/session/resolve-session.js +11 -0
  458. package/dist/cli/browser/commands/session/resolve-session.js.map +1 -0
  459. package/dist/cli/browser/commands/session/session-age.d.ts +6 -0
  460. package/dist/cli/browser/commands/session/session-age.d.ts.map +1 -0
  461. package/dist/cli/browser/commands/session/session-age.js +34 -0
  462. package/dist/cli/browser/commands/session/session-age.js.map +1 -0
  463. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.d.ts +26 -0
  464. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.d.ts.map +1 -0
  465. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.js +24 -0
  466. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.cli-command.descriptor.js.map +1 -0
  467. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.d.ts +32 -0
  468. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.d.ts.map +1 -0
  469. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.js +112 -0
  470. package/dist/cli/browser/commands/session/sweep/browser.session.sweep.impl.js.map +1 -0
  471. package/dist/index.d.ts +25 -0
  472. package/dist/index.d.ts.map +1 -0
  473. package/dist/index.js +24 -0
  474. package/dist/index.js.map +1 -0
  475. package/dist/svelte/browser/BrowserWorkspace.svelte +450 -0
  476. package/dist/svelte/browser/BrowserWorkspace.svelte.d.ts +20 -0
  477. package/dist/svelte/browser/BrowserWorkspace.svelte.d.ts.map +1 -0
  478. package/dist/svelte/browser/browser-automation-svelte.plugin.d.ts +3 -0
  479. package/dist/svelte/browser/browser-automation-svelte.plugin.d.ts.map +1 -0
  480. package/dist/svelte/browser/browser-automation-svelte.plugin.js +25 -0
  481. package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.d.ts +4 -0
  482. package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.d.ts.map +1 -0
  483. package/dist/svelte/browser/docs/browser-automation-svelte.docs.descriptor.js +55 -0
  484. package/dist/svelte/browser/index.d.ts +6 -0
  485. package/dist/svelte/browser/index.d.ts.map +1 -0
  486. package/dist/svelte/browser/index.js +4 -0
  487. package/dist/svelte/browser/state.svelte.d.ts +28 -0
  488. package/dist/svelte/browser/state.svelte.d.ts.map +1 -0
  489. package/dist/svelte/browser/state.svelte.js +87 -0
  490. package/dist/svelte/browser/styles.css +10 -0
  491. package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte +268 -0
  492. package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte.d.ts +10 -0
  493. package/dist/svelte/browser/tool-widgets/BrowserToolCard.svelte.d.ts.map +1 -0
  494. package/dist/svelte/browser/tool-widgets/index.d.ts +2 -0
  495. package/dist/svelte/browser/tool-widgets/index.d.ts.map +1 -0
  496. package/dist/svelte/browser/tool-widgets/index.js +1 -0
  497. package/dist/svelte/browser/tool-widgets/summary.d.ts +2 -0
  498. package/dist/svelte/browser/tool-widgets/summary.d.ts.map +1 -0
  499. package/dist/svelte/browser/tool-widgets/summary.js +1 -0
  500. package/dist/svelte/browser/types.d.ts +16 -0
  501. package/dist/svelte/browser/types.d.ts.map +1 -0
  502. package/dist/svelte/browser/types.js +1 -0
  503. package/dist/tui/browser/browser-sessions.app.descriptor.d.ts +33 -0
  504. package/dist/tui/browser/browser-sessions.app.descriptor.d.ts.map +1 -0
  505. package/dist/tui/browser/browser-sessions.app.descriptor.js +33 -0
  506. package/dist/tui/browser/browser-sessions.app.descriptor.js.map +1 -0
  507. package/dist/tui/browser/browser-sessions.app.impl.d.ts +4 -0
  508. package/dist/tui/browser/browser-sessions.app.impl.d.ts.map +1 -0
  509. package/dist/tui/browser/browser-sessions.app.impl.js +231 -0
  510. package/dist/tui/browser/browser-sessions.app.impl.js.map +1 -0
  511. package/dist/tui/browser/browser.tui.plugin.d.ts +13 -0
  512. package/dist/tui/browser/browser.tui.plugin.d.ts.map +1 -0
  513. package/dist/tui/browser/browser.tui.plugin.js +52 -0
  514. package/dist/tui/browser/browser.tui.plugin.js.map +1 -0
  515. package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.d.ts +4 -0
  516. package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.d.ts.map +1 -0
  517. package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.js +31 -0
  518. package/dist/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.js.map +1 -0
  519. package/dist/tui/browser/tool-widgets/summary.d.ts +40 -0
  520. package/dist/tui/browser/tool-widgets/summary.d.ts.map +1 -0
  521. package/dist/tui/browser/tool-widgets/summary.js +16 -0
  522. package/dist/tui/browser/tool-widgets/summary.js.map +1 -0
  523. package/package.json +212 -4
@@ -0,0 +1,231 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useState } from 'react';
3
+ import { List } from '@vibesdotdev/tui/components/data/List';
4
+ import { DSBadge, DSButton, DSText, Panel } from '@vibesdotdev/tui/components/content';
5
+ import { HStack, VStack } from '@vibesdotdev/tui/components/layout';
6
+ import { PageActions, PageHeader, PageLayout } from '@vibesdotdev/tui/components/page';
7
+ import { dsBase, dsColors } from '@vibesdotdev/tui/theme';
8
+ import { DSInput } from '@vibesdotdev/tui/components/form/controls/Input';
9
+ import { useOptionalKeybindDispatcherContext } from '@vibesdotdev/tui/input';
10
+ import { getLogger } from '@vibesdotdev/logging';
11
+ import { settle } from '@vibesdotdev/kernel';
12
+ import { getVibesBrowserClient } from "../../browser/client/browser-client.js";
13
+ const initialState = {
14
+ sessions: [],
15
+ profiles: [],
16
+ tabs: [],
17
+ recipes: [],
18
+ activeRuntimeCount: 0,
19
+ loaded: false,
20
+ loading: true,
21
+ presenting: false,
22
+ error: null,
23
+ status: 'Opening browser sessions',
24
+ lastUpdated: null
25
+ };
26
+ function formatRefreshAge(updatedAt) {
27
+ if (!updatedAt)
28
+ return 'Updated pending';
29
+ const seconds = Math.max(0, Math.round((Date.now() - updatedAt) / 1000));
30
+ if (seconds < 5)
31
+ return 'Updated just now';
32
+ if (seconds < 60)
33
+ return `Updated ${seconds}s ago`;
34
+ return `Updated ${Math.round(seconds / 60)}m ago`;
35
+ }
36
+ function formatDate(value) {
37
+ if (!value)
38
+ return 'never';
39
+ const date = new Date(value);
40
+ if (Number.isNaN(date.getTime()))
41
+ return value;
42
+ return date.toISOString().replace('T', ' ').replace('Z', ' UTC');
43
+ }
44
+ function profileName(profiles, profileId) {
45
+ if (!profileId)
46
+ return 'Default profile';
47
+ const profile = profiles.find((candidate) => candidate.id === profileId);
48
+ return profile?.name ?? profileId;
49
+ }
50
+ async function readBrowserState(runtime) {
51
+ const client = await getVibesBrowserClient(runtime);
52
+ const [sessionsPage, profilesPage, tabsPage, recipesPage] = await Promise.all([
53
+ client.sessions.list({ limit: 100, orderBy: { lastUsedAt: 'desc' } }),
54
+ client.profiles.list({ limit: 100, orderBy: { lastUsedAt: 'desc' } }),
55
+ client.tabs.list({ limit: 250, orderBy: { lastActiveAt: 'desc' } }),
56
+ client.recipes.list({ limit: 100, orderBy: { updatedAt: 'desc' } })
57
+ ]);
58
+ const activeRuntimeCount = client.getRuntimeManager().getActiveSessionCount();
59
+ return {
60
+ ...initialState,
61
+ sessions: [...sessionsPage.items],
62
+ profiles: [...profilesPage.items],
63
+ tabs: [...tabsPage.items],
64
+ recipes: [...recipesPage.items],
65
+ activeRuntimeCount,
66
+ loaded: true,
67
+ loading: false,
68
+ status: null,
69
+ lastUpdated: Date.now()
70
+ };
71
+ }
72
+ function BrowserRuntimeStatus({ error, onRefresh, onHome }) {
73
+ const isError = Boolean(error);
74
+ return (_jsx(VStack, { padding: 2, justify: "center", style: { width: '100%', height: '100%' }, children: _jsxs(Panel, { padding: "sm", gap: "xs", status: isError ? 'error' : 'info', children: [_jsxs(HStack, { gap: 1, children: [_jsx(DSBadge, { label: isError ? 'error' : 'loading', color: isError ? 'danger' : 'primary', variant: "subtle" }), _jsx("text", { style: { fg: isError ? dsColors.danger.solid : dsColors.primary.solid }, children: isError ? 'Browser sessions unavailable' : 'Opening browser sessions' }), _jsx("box", { style: { flexGrow: 1 } }), _jsx(DSButton, { label: "Refresh", size: "sm", color: "primary", variant: "ghost", onClick: onRefresh }), onHome && (_jsx(DSButton, { label: "Home", size: "sm", color: "neutral", variant: "ghost", onClick: onHome }))] }), _jsx(DSText, { variant: "muted", children: error ?? 'Checking saved sessions, profiles, tabs, and automation recipes.' })] }) }));
75
+ }
76
+ function BrowserSessionsApp(props) {
77
+ const { runtime, navigate } = props;
78
+ const logger = getLogger('control:browser-sessions-tui', runtime);
79
+ const { initialState: preloadedState, initialSelectedId, autoRefresh = true } = props;
80
+ const [state, setState] = useState(preloadedState ?? initialState);
81
+ const [selectedId, setSelectedId] = useState(initialSelectedId ?? preloadedState?.sessions[0]?.id ?? null);
82
+ const [filter, setFilter] = useState('');
83
+ const refresh = useCallback(async () => {
84
+ setState((prev) => ({ ...prev, loading: true, error: null, status: 'Opening browser sessions' }));
85
+ const result = await settle(() => readBrowserState(runtime));
86
+ if (result.ok) {
87
+ const next = result.value;
88
+ setState(next);
89
+ setSelectedId((current) => {
90
+ if (current && next.sessions.some((session) => session.id === current))
91
+ return current;
92
+ return next.sessions[0]?.id ?? null;
93
+ });
94
+ }
95
+ else {
96
+ const error = result.cause;
97
+ logger.error('Browser session action failed', { error });
98
+ const message = error instanceof Error ? error.message : String(error);
99
+ setState((prev) => ({
100
+ ...prev,
101
+ loaded: true,
102
+ loading: false,
103
+ error: message,
104
+ status: null,
105
+ lastUpdated: Date.now()
106
+ }));
107
+ }
108
+ }, [runtime]);
109
+ useEffect(() => {
110
+ if (!autoRefresh)
111
+ return;
112
+ void refresh();
113
+ }, [autoRefresh, refresh]);
114
+ const selected = useMemo(() => state.sessions.find((session) => session.id === selectedId) ?? null, [state.sessions, selectedId]);
115
+ const selectedTabs = useMemo(() => state.tabs.filter((tab) => tab.sessionId === selectedId), [state.tabs, selectedId]);
116
+ const filtering = filter.trim().length > 0;
117
+ const filteredSessions = useMemo(() => {
118
+ const q = filter.trim().toLowerCase();
119
+ if (!q)
120
+ return state.sessions;
121
+ return state.sessions.filter((session) => (session.name ?? '').toLowerCase().includes(q) || session.id.toLowerCase().includes(q));
122
+ }, [state.sessions, filter]);
123
+ const sessionItems = useMemo(() => filteredSessions.map((session) => ({
124
+ id: session.id,
125
+ primary: session.name ?? session.id,
126
+ secondary: `${session.status} - ${profileName(state.profiles, session.profileId)}`,
127
+ icon: session.status === 'active' ? '*' : '-'
128
+ })), [state.profiles, filteredSessions]);
129
+ const presentSelected = useCallback(async () => {
130
+ if (!selectedId)
131
+ return;
132
+ setState((prev) => ({ ...prev, presenting: true, error: null, status: 'Presenting selected browser session' }));
133
+ const outcome = await settle(async () => {
134
+ const client = await getVibesBrowserClient(runtime);
135
+ return client.present({ id: selectedId });
136
+ });
137
+ if (outcome.ok) {
138
+ const result = outcome.value;
139
+ setState((prev) => ({
140
+ ...prev,
141
+ presenting: false,
142
+ status: `Presented ${result.url}`,
143
+ lastUpdated: Date.now()
144
+ }));
145
+ }
146
+ else {
147
+ const error = outcome.cause;
148
+ logger.error('Browser session action failed', { error });
149
+ setState((prev) => ({
150
+ ...prev,
151
+ presenting: false,
152
+ error: error instanceof Error ? error.message : String(error),
153
+ status: null,
154
+ lastUpdated: Date.now()
155
+ }));
156
+ }
157
+ }, [runtime, selectedId]);
158
+ const dismissPresentation = useCallback(async () => {
159
+ setState((prev) => ({ ...prev, presenting: true, error: null, status: 'Dismissing browser presentation' }));
160
+ const outcome = await settle(async () => {
161
+ const client = await getVibesBrowserClient(runtime);
162
+ await client.dismiss();
163
+ });
164
+ if (outcome.ok) {
165
+ setState((prev) => ({
166
+ ...prev,
167
+ presenting: false,
168
+ status: 'Presentation dismissed',
169
+ lastUpdated: Date.now()
170
+ }));
171
+ }
172
+ else {
173
+ const error = outcome.cause;
174
+ logger.error('Browser session action failed', { error });
175
+ setState((prev) => ({
176
+ ...prev,
177
+ presenting: false,
178
+ error: error instanceof Error ? error.message : String(error),
179
+ status: null,
180
+ lastUpdated: Date.now()
181
+ }));
182
+ }
183
+ }, [runtime]);
184
+ // Shortcuts are declared in tui/src/input/keybind-config.ts (category
185
+ // "Browser Sessions") and handled through the shell's KeybindDispatcher, so
186
+ // the `?` help overlay lists them and user overrides apply. The registry
187
+ // keeps r/p/d out of here while the filter input has focus (insert mode);
188
+ // only `browser.sessions.back` (Esc, not typeable) is declared
189
+ // allowInInsertMode so it can clear the query.
190
+ const dispatcher = useOptionalKeybindDispatcherContext();
191
+ useEffect(() => {
192
+ if (!dispatcher)
193
+ return;
194
+ const removeHandlers = dispatcher.onAll({
195
+ 'browser.sessions.refresh': () => {
196
+ void refresh();
197
+ return true;
198
+ },
199
+ 'browser.sessions.present': () => {
200
+ void presentSelected();
201
+ return true;
202
+ },
203
+ 'browser.sessions.dismiss': () => {
204
+ void dismissPresentation();
205
+ return true;
206
+ },
207
+ 'browser.sessions.back': (context) => {
208
+ if (context.mode === 'insert') {
209
+ if (!filter)
210
+ return false;
211
+ setFilter('');
212
+ return true;
213
+ }
214
+ if (!navigate)
215
+ return false;
216
+ navigate('/');
217
+ return true;
218
+ }
219
+ });
220
+ return () => { removeHandlers(); };
221
+ }, [dismissPresentation, dispatcher, filter, navigate, presentSelected, refresh]);
222
+ if (!state.loaded && state.loading) {
223
+ return (_jsx(PageLayout, { header: _jsx(PageHeader, { title: "Browser Sessions", description: "Inspect /browser sessions, profiles, tabs, and presentation state." }), footer: _jsx(PageActions, { left: _jsxs(HStack, { gap: 1, children: [_jsx(DSBadge, { label: "Browser workspace", color: "primary", variant: "subtle" }), _jsx(DSBadge, { label: "Checking sessions", color: "neutral", variant: "subtle" })] }), right: _jsx(DSBadge, { label: "Refresh available", color: "warning", variant: "subtle" }) }), children: _jsx(BrowserRuntimeStatus, { error: state.error, onRefresh: () => void refresh(), onHome: navigate ? () => navigate('/') : undefined }) }));
224
+ }
225
+ return (_jsx(PageLayout, { header: _jsx(PageHeader, { title: "Browser Sessions", description: "Inspect /browser sessions, profiles, tabs, and presentation state." }), footer: _jsx(PageActions, { left: _jsx(HStack, { gap: 1, children: _jsx("text", { style: { fg: dsBase.mutedForeground }, children: `${state.sessions.length} sessions | ${state.activeRuntimeCount} live | ${formatRefreshAge(state.lastUpdated)}` }) }), right: _jsxs(HStack, { gap: 1, children: [state.error ? (_jsx("text", { style: { fg: dsColors.danger.solid }, children: `! ${state.error}` })) : null, _jsx(DSButton, { label: "Refresh", variant: "ghost", color: "neutral", size: "xs", onClick: () => void refresh() }), _jsx(DSButton, { label: "Present", variant: "ghost", color: "primary", size: "xs", disabled: !selectedId || state.presenting, onClick: () => void presentSelected() }), _jsx("text", { style: { fg: dsBase.mutedForeground }, children: "[d] dismiss" })] }) }), noScroll: true, children: _jsxs(HStack, { grow: true, gap: "none", align: "stretch", children: [_jsx(VStack, { style: { width: '38%', minWidth: 34 }, gap: 0, children: state.sessions.length === 0 ? (_jsxs(VStack, { padding: 2, gap: 1, children: [_jsx(DSText, { variant: "muted", children: "No browser sessions in storage." }), _jsx(DSText, { variant: "muted", children: "Run a browser tool, then refresh this route." })] })) : (_jsxs(_Fragment, { children: [_jsxs(HStack, { justify: "between", paddingLeft: 1, paddingRight: 1, paddingTop: 1, children: [_jsx(DSText, { children: "Sessions" }), _jsx(DSText, { variant: "muted", children: filtering
226
+ ? `${filteredSessions.length}/${state.sessions.length}`
227
+ : `${state.sessions.length}` })] }), _jsx("box", { style: { paddingLeft: 1, paddingRight: 1 }, children: _jsx(DSInput, { id: "browser-sessions-filter", zone: "sidebar", value: filter, onChange: setFilter, placeholder: "Filter sessions", variant: "search", size: "sm" }) }), sessionItems.length === 0 ? (_jsx(VStack, { paddingLeft: 1, paddingRight: 1, children: _jsx(DSText, { variant: "muted", children: `No sessions match "${filter.trim()}".` }) })) : (_jsx(List, { id: "browser-sessions-list", zone: "sidebar", items: sessionItems, selectedId: selectedId ?? undefined, onSelect: (item) => setSelectedId(item.id), keyboardEnabled: true, autoFocus: true, emptyMessage: "No browser sessions." }))] })) }), _jsx("box", { style: { flexGrow: 1, border: ['left'], borderColor: dsBase.border }, children: _jsx(VStack, { padding: 2, gap: 1, children: selected ? (_jsxs(_Fragment, { children: [_jsxs(HStack, { gap: 1, children: [_jsx(DSBadge, { label: selected.status, color: selected.status === 'active' ? 'success' : 'neutral', variant: "subtle" }), _jsx(DSBadge, { label: profileName(state.profiles, selected.profileId), color: "primary", variant: "subtle" }), _jsx(DSBadge, { label: `tabs:${selectedTabs.length}`, color: "neutral", variant: "subtle" }), _jsx(DSBadge, { label: `recipes:${state.recipes.length}`, color: "neutral", variant: "subtle" })] }), _jsxs(VStack, { gap: 0, children: [_jsx("text", { children: selected.name }), _jsxs(HStack, { gap: 1, children: [_jsx("text", { style: { fg: dsBase.mutedForeground }, children: "Selected session" }), _jsx("text", { children: selected.id })] }), _jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Base URL ", selected.baseUrl ?? 'not set'] }), _jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Last used ", formatDate(selected.lastUsedAt)] }), _jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Created ", formatDate(selected.createdAt)] }), selected.storageStatePath ? (_jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Storage state ", selected.storageStatePath] })) : null] }), _jsxs(VStack, { gap: 0, children: [_jsx(DSText, { variant: "muted", children: "Tabs" }), selectedTabs.length === 0 ? (_jsx(DSText, { variant: "muted", children: "No tab records for this session." })) : (selectedTabs.slice(0, 8).map((tab) => (_jsxs(HStack, { gap: 1, children: [_jsx(DSBadge, { label: tab.status, color: tab.status === 'open' ? 'success' : 'neutral', variant: "subtle" }), _jsx("text", { style: { fg: dsBase.foreground }, children: tab.url ?? '(blank)' })] }, tab.id))))] }), state.status ? _jsx(DSText, { variant: "muted", children: state.status }) : null] })) : (_jsxs(VStack, { gap: 1, children: [_jsx(DSText, { variant: "muted", children: "Select a browser session to inspect tabs and presentation state." }), state.status ? _jsx(DSText, { variant: "muted", children: state.status }) : null] })) }) })] }) }));
228
+ }
229
+ const implementation = { component: BrowserSessionsApp };
230
+ export default implementation;
231
+ //# sourceMappingURL=browser-sessions.app.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-sessions.app.impl.js","sourceRoot":"","sources":["../../../src/tui/browser/browser-sessions.app.impl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Browser Automation TUI Slice Plugin
3
+ *
4
+ * Registers the `browser-sessions` TUI app against the `tui/app` kind
5
+ * owned by `@vibesdotdev/tui`, and the first-party `browser` `tools/ui`
6
+ * widget so terminal chat never falls through to the JSON default.
7
+ * The core `@vibesdotdev/control/browser-automation/plugin` stays
8
+ * surface-neutral so SSR/web/worker apps can consume browser
9
+ * tools/storage without bundling the TUI machinery.
10
+ */
11
+ declare const defaultExport: import("@vibesdotdev/kernel").RuntimePlugin;
12
+ export default defaultExport;
13
+ //# sourceMappingURL=browser.tui.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.tui.plugin.d.ts","sourceRoot":"","sources":["../../../src/tui/browser/browser.tui.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,QAAA,MAAM,aAAa,6CAwCjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Browser Automation TUI Slice Plugin
3
+ *
4
+ * Registers the `browser-sessions` TUI app against the `tui/app` kind
5
+ * owned by `@vibesdotdev/tui`, and the first-party `browser` `tools/ui`
6
+ * widget so terminal chat never falls through to the JSON default.
7
+ * The core `@vibesdotdev/control/browser-automation/plugin` stays
8
+ * surface-neutral so SSR/web/worker apps can consume browser
9
+ * tools/storage without bundling the TUI machinery.
10
+ */
11
+ import { createRuntimePlugin } from '@vibesdotdev/kernel';
12
+ import browserSessionsAppDescriptor from "./browser-sessions.app.descriptor.js";
13
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
14
+ const defaultExport = createRuntimePlugin({
15
+ id: 'browser-automation.tui',
16
+ name: 'Browser Automation TUI Surface',
17
+ description: 'TUI app `browser-sessions` and the designed `browser` tool-result widget',
18
+ dependencies: ['browser-automation', 'tui'],
19
+ descriptors: [browserSessionsAppDescriptor],
20
+ loaders: [
21
+ {
22
+ id: 'browser-sessions',
23
+ kind: 'tui/app',
24
+ load: async () => {
25
+ // `.js` specifier (not `.tsx`): resolves to the `.tsx` source under
26
+ // bun and to the built `.js` under node/dist — matching the sibling
27
+ // `browser.plugin.ts` loaders. A `.tsx` literal breaks the dist build
28
+ // because dist ships `.js`, so any non-bun consumer would throw here.
29
+ const { default: impl } = await import("./browser-sessions.app.impl.js");
30
+ return { impl };
31
+ }
32
+ }
33
+ ],
34
+ // The widget registrar's module re-exports the TUI widget components, so it
35
+ // is imported here, on activation, never by this plugin module: a plugin
36
+ // module imports no implementation graph. A host without the `tui` plugin
37
+ // refuses this plugin on its dependencies before activation and never loads
38
+ // the TUI layer (a bundled host keeps it external and could not import it).
39
+ async onActivate(runtime) {
40
+ const { registerTuiToolWidget } = await import('@vibesdotdev/tools/tui/tool-widgets');
41
+ registerTuiToolWidget(runtime, {
42
+ toolId: 'browser',
43
+ id: 'browser.tui-widget',
44
+ name: 'Browser TUI Widget',
45
+ description: 'Renders browser tool results in terminal chat transcripts.',
46
+ tags: ['browser', 'automation', 'tui'],
47
+ load: () => import("./tool-widgets/BrowserToolWidget.impl.consumer.js")
48
+ });
49
+ }
50
+ });
51
+ export default defaultExport;
52
+ //# sourceMappingURL=browser.tui.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.tui.plugin.js","sourceRoot":"","sources":["../../../src/tui/browser/browser.tui.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,4BAA4B,MAAM,sCAAsC,CAAC;AAEhF,kIAAkI;AAClI,MAAM,aAAa,GAAG,mBAAmB,CAAC;IACzC,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,gCAAgC;IACtC,WAAW,EACV,0EAA0E;IAC3E,YAAY,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC;IAE3C,WAAW,EAAE,CAAC,4BAA4B,CAAC;IAE3C,OAAO,EAAE;QACR;YACC,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK,IAAI,EAAE;gBAChB,oEAAoE;gBACpE,oEAAoE;gBACpE,sEAAsE;gBACtE,sEAAsE;gBACtE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAiC,CAAC,CAAC;gBAC1E,OAAO,EAAE,IAAI,EAAE,CAAC;YACjB,CAAC;SACD;KACD;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QACtF,qBAAqB,CAAC,OAAO,EAAE;YAC9B,MAAM,EAAE,SAAS;YACjB,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,4DAA4D;YACzE,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;YACtC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mDAAoD,CAAC;SACxE,CAAC,CAAC;IACJ,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type TuiToolWidgetProps } from '@vibesdotdev/tools/tui/tool-widgets';
3
+ export default function BrowserToolWidget(tool: TuiToolWidgetProps): ReactNode;
4
+ //# sourceMappingURL=BrowserToolWidget.impl.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserToolWidget.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAGN,KAAK,kBAAkB,EACvB,MAAM,qCAAqC,CAAC;AAK7C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,CAuF7E"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
2
+ import { ToolWidgetCard, truncateText } from '@vibesdotdev/tools/tui/tool-widgets';
3
+ import { VStack } from '@vibesdotdev/tui/components/layout';
4
+ import { dsBase, dsColors, dsSpace } from '@vibesdotdev/tui/theme';
5
+ import { browserToolFacts } from "./summary.js";
6
+ export default function BrowserToolWidget(tool) {
7
+ const failed = tool.status === 'failed' || Boolean(tool.error);
8
+ const facts = browserToolFacts(tool.args, tool.output, failed);
9
+ const meta = [
10
+ facts.action !== 'browser' ? facts.action : '',
11
+ facts.fromCache === true ? 'cached' : facts.fromCache === false ? 'live' : '',
12
+ facts.stepsLabel,
13
+ facts.iterations !== null ? `${facts.iterations} iterations` : '',
14
+ facts.hasScreenshot ? 'screenshot' : '',
15
+ facts.knowledgeCount ? `${facts.knowledgeCount} saved` : '',
16
+ facts.linkCount ? `${facts.linkCount} links` : '',
17
+ facts.hardware,
18
+ facts.transport
19
+ ].filter(Boolean);
20
+ return (_jsx(ToolWidgetCard, { tool: tool, title: facts.title, defaultOpen: failed, children: _jsxs(VStack, { gap: dsSpace.xs, children: [failed ? (_jsx("text", { style: { fg: dsColors.danger.solid }, children: tool.error || facts.payloadError || 'The browser tool failed.' })) : null, meta.length ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: meta.join(' | ') })) : null, facts.pageTitle || facts.finalUrl ? (_jsx("text", { style: { fg: dsBase.foreground }, children: facts.pageTitle || facts.finalUrl })) : null, facts.pageTitle && facts.finalUrl ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: facts.finalUrl })) : null, facts.instruction ? (_jsx("text", { style: { fg: dsBase.foreground }, children: truncateText(facts.instruction, 200) })) : null, facts.message ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: facts.message })) : null, !failed && facts.payloadError ? (_jsx("text", { style: { fg: dsColors.danger.solid }, children: facts.payloadError })) : null, facts.note ? _jsx("text", { style: { fg: dsBase.mutedForeground }, children: facts.note }) : null, facts.scannedAtLabel ? (_jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Scanned ", facts.scannedAtLabel] })) : null, facts.bodyPreview ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: truncateText(facts.bodyPreview, 240) })) : null, facts.recipeNames.length ? (_jsx("text", { style: { fg: dsBase.foreground }, children: facts.recipeNames.join(', ') })) : null, facts.sessionNames.length ? (_jsx("text", { style: { fg: dsBase.foreground }, children: facts.sessionNames.join(', ') })) : null, facts.webmcpTools.length ? (_jsx("text", { style: { fg: dsBase.foreground }, children: facts.webmcpTools.join(', ') })) : facts.detected === false ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: "No WebMCP tools advertised." })) : null, facts.sources.length ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: facts.sources.join(' · ') })) : null, facts.manifestUrl ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: facts.manifestUrl })) : null, facts.knowledgeTitles.length ? (_jsxs("text", { style: { fg: dsBase.mutedForeground }, children: ["Saved: ", facts.knowledgeTitles.join(', ')] })) : null, !failed &&
21
+ !facts.finalUrl &&
22
+ !facts.message &&
23
+ !facts.note &&
24
+ !facts.bodyPreview &&
25
+ !facts.recipeNames.length &&
26
+ !facts.sessionNames.length &&
27
+ !facts.webmcpTools.length &&
28
+ facts.detected === null &&
29
+ !facts.namedEntity ? (_jsx("text", { style: { fg: dsBase.mutedForeground }, children: "No additional detail." })) : null] }) }));
30
+ }
31
+ //# sourceMappingURL=BrowserToolWidget.impl.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserToolWidget.impl.consumer.js","sourceRoot":"","sources":["../../../../src/tui/browser/tool-widgets/BrowserToolWidget.impl.consumer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type * as z from 'zod/v4';
2
+ import { BrowserCardOutputSchema, BrowserCardInputSchema } from '../../../browser/schemas/tool-card.ts';
3
+ export declare function browserToolFacts(input: z.input<typeof BrowserCardInputSchema>, output: z.input<typeof BrowserCardOutputSchema>, failed: boolean): {
4
+ bodyPreview: string;
5
+ hasScreenshot: boolean;
6
+ knowledgeCount: number;
7
+ knowledgeTitles: string[];
8
+ linkCount: number;
9
+ action: string;
10
+ failed: boolean;
11
+ title: string;
12
+ host: string;
13
+ finalUrl: string;
14
+ pageTitle: string;
15
+ bodyMarkdown: string;
16
+ message: string;
17
+ payloadError: string;
18
+ truncated: boolean;
19
+ fromCache: boolean | null;
20
+ scannedAtLabel: string;
21
+ screenshot: string;
22
+ knowledgeItems: import("../../../browser/shared/tool-summary.ts").KnowledgeItem[];
23
+ links: import("../../../browser/shared/tool-summary.ts").LinkEntry[];
24
+ stepsLabel: string;
25
+ iterations: number | null;
26
+ instruction: string;
27
+ namedEntity: string;
28
+ recipeNames: string[];
29
+ sessionNames: string[];
30
+ transport: string;
31
+ hardware: string;
32
+ note: string;
33
+ detected: boolean | null;
34
+ webmcpTools: string[];
35
+ sources: string[];
36
+ manifestUrl: string;
37
+ hasPageDetail: boolean;
38
+ };
39
+ export type BrowserToolFacts = ReturnType<typeof browserToolFacts>;
40
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../../src/tui/browser/tool-widgets/summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAExG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,EAAE,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/I;AACD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { browserToolFacts as sharedFacts } from "../../../browser/shared/tool-summary.js";
2
+ import { BrowserCardOutputSchema, BrowserCardInputSchema } from "../../../browser/schemas/tool-card.js";
3
+ export function browserToolFacts(input, output, failed) {
4
+ const parsed = BrowserCardOutputSchema.parse(output);
5
+ const facts = sharedFacts(input, parsed, failed);
6
+ const titles = facts.knowledgeItems.map(item => item.title || item.id).slice(0, 8);
7
+ return {
8
+ ...facts,
9
+ bodyPreview: facts.bodyMarkdown,
10
+ hasScreenshot: facts.hasScreenshot || Boolean(parsed.screenshotPath),
11
+ knowledgeCount: titles.length,
12
+ knowledgeTitles: titles,
13
+ linkCount: parsed.links.length
14
+ };
15
+ }
16
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../../src/tui/browser/tool-widgets/summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAExG,MAAM,UAAU,gBAAgB,CAAC,KAA6C,EAAE,MAA+C,EAAE,MAAe;IAC/I,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO;QACN,GAAG,KAAK;QACR,WAAW,EAAE,KAAK,CAAC,YAAY;QAC/B,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QACpE,cAAc,EAAE,MAAM,CAAC,MAAM;QAC7B,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;KAC9B,CAAC;AACH,CAAC"}