@agegr/pi-web 0.2.1

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 (272) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/package.json +1 -0
  3. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  4. package/.next/server/app/_global-error/page/build-manifest.json +17 -0
  5. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  6. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  7. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  8. package/.next/server/app/_global-error/page.js +10 -0
  9. package/.next/server/app/_global-error/page.js.map +5 -0
  10. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  11. package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  12. package/.next/server/app/_global-error.html +1 -0
  13. package/.next/server/app/_global-error.meta +15 -0
  14. package/.next/server/app/_global-error.rsc +15 -0
  15. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  16. package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +6 -0
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  20. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  21. package/.next/server/app/_not-found/page/build-manifest.json +17 -0
  22. package/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  23. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  24. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  25. package/.next/server/app/_not-found/page.js +13 -0
  26. package/.next/server/app/_not-found/page.js.map +5 -0
  27. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  28. package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  29. package/.next/server/app/_not-found.html +1 -0
  30. package/.next/server/app/_not-found.meta +16 -0
  31. package/.next/server/app/_not-found.rsc +16 -0
  32. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
  33. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  34. package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
  35. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  36. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  37. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  38. package/.next/server/app/api/agent/[id]/events/route/app-paths-manifest.json +3 -0
  39. package/.next/server/app/api/agent/[id]/events/route/build-manifest.json +9 -0
  40. package/.next/server/app/api/agent/[id]/events/route/server-reference-manifest.json +4 -0
  41. package/.next/server/app/api/agent/[id]/events/route.js +6 -0
  42. package/.next/server/app/api/agent/[id]/events/route.js.map +5 -0
  43. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
  44. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +3 -0
  45. package/.next/server/app/api/agent/[id]/route/app-paths-manifest.json +3 -0
  46. package/.next/server/app/api/agent/[id]/route/build-manifest.json +9 -0
  47. package/.next/server/app/api/agent/[id]/route/server-reference-manifest.json +4 -0
  48. package/.next/server/app/api/agent/[id]/route.js +7 -0
  49. package/.next/server/app/api/agent/[id]/route.js.map +5 -0
  50. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
  51. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +3 -0
  52. package/.next/server/app/api/agent/new/route/app-paths-manifest.json +3 -0
  53. package/.next/server/app/api/agent/new/route/build-manifest.json +9 -0
  54. package/.next/server/app/api/agent/new/route/server-reference-manifest.json +4 -0
  55. package/.next/server/app/api/agent/new/route.js +7 -0
  56. package/.next/server/app/api/agent/new/route.js.map +5 -0
  57. package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
  58. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +3 -0
  59. package/.next/server/app/api/files/[...path]/route/app-paths-manifest.json +3 -0
  60. package/.next/server/app/api/files/[...path]/route/build-manifest.json +9 -0
  61. package/.next/server/app/api/files/[...path]/route/server-reference-manifest.json +4 -0
  62. package/.next/server/app/api/files/[...path]/route.js +7 -0
  63. package/.next/server/app/api/files/[...path]/route.js.map +5 -0
  64. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
  65. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +3 -0
  66. package/.next/server/app/api/models/route/app-paths-manifest.json +3 -0
  67. package/.next/server/app/api/models/route/build-manifest.json +9 -0
  68. package/.next/server/app/api/models/route/server-reference-manifest.json +4 -0
  69. package/.next/server/app/api/models/route.js +6 -0
  70. package/.next/server/app/api/models/route.js.map +5 -0
  71. package/.next/server/app/api/models/route.js.nft.json +1 -0
  72. package/.next/server/app/api/models/route_client-reference-manifest.js +3 -0
  73. package/.next/server/app/api/models-config/route/app-paths-manifest.json +3 -0
  74. package/.next/server/app/api/models-config/route/build-manifest.json +9 -0
  75. package/.next/server/app/api/models-config/route/server-reference-manifest.json +4 -0
  76. package/.next/server/app/api/models-config/route.js +7 -0
  77. package/.next/server/app/api/models-config/route.js.map +5 -0
  78. package/.next/server/app/api/models-config/route.js.nft.json +1 -0
  79. package/.next/server/app/api/models-config/route_client-reference-manifest.js +3 -0
  80. package/.next/server/app/api/sessions/[id]/context/route/app-paths-manifest.json +3 -0
  81. package/.next/server/app/api/sessions/[id]/context/route/build-manifest.json +9 -0
  82. package/.next/server/app/api/sessions/[id]/context/route/server-reference-manifest.json +4 -0
  83. package/.next/server/app/api/sessions/[id]/context/route.js +7 -0
  84. package/.next/server/app/api/sessions/[id]/context/route.js.map +5 -0
  85. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
  86. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +3 -0
  87. package/.next/server/app/api/sessions/[id]/route/app-paths-manifest.json +3 -0
  88. package/.next/server/app/api/sessions/[id]/route/build-manifest.json +9 -0
  89. package/.next/server/app/api/sessions/[id]/route/server-reference-manifest.json +4 -0
  90. package/.next/server/app/api/sessions/[id]/route.js +7 -0
  91. package/.next/server/app/api/sessions/[id]/route.js.map +5 -0
  92. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
  93. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +3 -0
  94. package/.next/server/app/api/sessions/new/route/app-paths-manifest.json +3 -0
  95. package/.next/server/app/api/sessions/new/route/build-manifest.json +9 -0
  96. package/.next/server/app/api/sessions/new/route/server-reference-manifest.json +4 -0
  97. package/.next/server/app/api/sessions/new/route.js +6 -0
  98. package/.next/server/app/api/sessions/new/route.js.map +5 -0
  99. package/.next/server/app/api/sessions/new/route.js.nft.json +1 -0
  100. package/.next/server/app/api/sessions/new/route_client-reference-manifest.js +3 -0
  101. package/.next/server/app/api/sessions/route/app-paths-manifest.json +3 -0
  102. package/.next/server/app/api/sessions/route/build-manifest.json +9 -0
  103. package/.next/server/app/api/sessions/route/server-reference-manifest.json +4 -0
  104. package/.next/server/app/api/sessions/route.js +7 -0
  105. package/.next/server/app/api/sessions/route.js.map +5 -0
  106. package/.next/server/app/api/sessions/route.js.nft.json +1 -0
  107. package/.next/server/app/api/sessions/route_client-reference-manifest.js +3 -0
  108. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +3 -0
  109. package/.next/server/app/favicon.ico/route/build-manifest.json +9 -0
  110. package/.next/server/app/favicon.ico/route.js +8 -0
  111. package/.next/server/app/favicon.ico/route.js.map +5 -0
  112. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  113. package/.next/server/app/favicon.ico.body +0 -0
  114. package/.next/server/app/favicon.ico.meta +1 -0
  115. package/.next/server/app/index.html +1 -0
  116. package/.next/server/app/index.meta +14 -0
  117. package/.next/server/app/index.rsc +15 -0
  118. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -0
  119. package/.next/server/app/index.segments/_full.segment.rsc +15 -0
  120. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  121. package/.next/server/app/index.segments/_index.segment.rsc +5 -0
  122. package/.next/server/app/index.segments/_tree.segment.rsc +2 -0
  123. package/.next/server/app/page/app-paths-manifest.json +3 -0
  124. package/.next/server/app/page/build-manifest.json +17 -0
  125. package/.next/server/app/page/next-font-manifest.json +6 -0
  126. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  127. package/.next/server/app/page/server-reference-manifest.json +4 -0
  128. package/.next/server/app/page.js +14 -0
  129. package/.next/server/app/page.js.map +5 -0
  130. package/.next/server/app/page.js.nft.json +1 -0
  131. package/.next/server/app/page_client-reference-manifest.js +3 -0
  132. package/.next/server/app-paths-manifest.json +16 -0
  133. package/.next/server/chunks/[externals]_next_dist_0h.fyd6._.js +3 -0
  134. package/.next/server/chunks/[externals]_next_dist_0h.fyd6._.js.map +1 -0
  135. package/.next/server/chunks/[root-of-the-server]__002d92q._.js +6 -0
  136. package/.next/server/chunks/[root-of-the-server]__002d92q._.js.map +1 -0
  137. package/.next/server/chunks/[root-of-the-server]__00a-~o4._.js +3 -0
  138. package/.next/server/chunks/[root-of-the-server]__00a-~o4._.js.map +1 -0
  139. package/.next/server/chunks/[root-of-the-server]__06qx74m._.js +5 -0
  140. package/.next/server/chunks/[root-of-the-server]__06qx74m._.js.map +1 -0
  141. package/.next/server/chunks/[root-of-the-server]__0_ehal9._.js +5 -0
  142. package/.next/server/chunks/[root-of-the-server]__0_ehal9._.js.map +1 -0
  143. package/.next/server/chunks/[root-of-the-server]__0a-p9wd._.js +3 -0
  144. package/.next/server/chunks/[root-of-the-server]__0a-p9wd._.js.map +1 -0
  145. package/.next/server/chunks/[root-of-the-server]__0b0kii6._.js +8 -0
  146. package/.next/server/chunks/[root-of-the-server]__0b0kii6._.js.map +1 -0
  147. package/.next/server/chunks/[root-of-the-server]__0cw6f~v._.js +5 -0
  148. package/.next/server/chunks/[root-of-the-server]__0cw6f~v._.js.map +1 -0
  149. package/.next/server/chunks/[root-of-the-server]__0llo_uy._.js +5 -0
  150. package/.next/server/chunks/[root-of-the-server]__0llo_uy._.js.map +1 -0
  151. package/.next/server/chunks/[root-of-the-server]__0rr3q~-._.js +5 -0
  152. package/.next/server/chunks/[root-of-the-server]__0rr3q~-._.js.map +1 -0
  153. package/.next/server/chunks/[root-of-the-server]__0y7g-4j._.js +4 -0
  154. package/.next/server/chunks/[root-of-the-server]__0y7g-4j._.js.map +1 -0
  155. package/.next/server/chunks/[root-of-the-server]__11j~5mn._.js +3 -0
  156. package/.next/server/chunks/[root-of-the-server]__11j~5mn._.js.map +1 -0
  157. package/.next/server/chunks/[turbopack]_runtime.js +903 -0
  158. package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
  159. package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_events_route_actions_05o7blz.js +3 -0
  160. package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_events_route_actions_05o7blz.js.map +1 -0
  161. package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_route_actions_0kr98j0.js +3 -0
  162. package/.next/server/chunks/_next-internal_server_app_api_agent_[id]_route_actions_0kr98j0.js.map +1 -0
  163. package/.next/server/chunks/_next-internal_server_app_api_agent_new_route_actions_0w3r5tj.js +3 -0
  164. package/.next/server/chunks/_next-internal_server_app_api_agent_new_route_actions_0w3r5tj.js.map +1 -0
  165. package/.next/server/chunks/_next-internal_server_app_api_files_[___path]_route_actions_0_g4akf.js +3 -0
  166. package/.next/server/chunks/_next-internal_server_app_api_files_[___path]_route_actions_0_g4akf.js.map +1 -0
  167. package/.next/server/chunks/_next-internal_server_app_api_models-config_route_actions_0ipr5cq.js +3 -0
  168. package/.next/server/chunks/_next-internal_server_app_api_models-config_route_actions_0ipr5cq.js.map +1 -0
  169. package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_0vfccm4.js +3 -0
  170. package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_0vfccm4.js.map +1 -0
  171. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_context_route_actions_0d0pnzf.js +3 -0
  172. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_context_route_actions_0d0pnzf.js.map +1 -0
  173. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_route_actions_0eo4u5w.js +3 -0
  174. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_route_actions_0eo4u5w.js.map +1 -0
  175. package/.next/server/chunks/_next-internal_server_app_api_sessions_new_route_actions_093p~n-.js +3 -0
  176. package/.next/server/chunks/_next-internal_server_app_api_sessions_new_route_actions_093p~n-.js.map +1 -0
  177. package/.next/server/chunks/_next-internal_server_app_api_sessions_route_actions_0y1t9w0.js +3 -0
  178. package/.next/server/chunks/_next-internal_server_app_api_sessions_route_actions_0y1t9w0.js.map +1 -0
  179. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js +3 -0
  180. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_095lj93.js.map +1 -0
  181. package/.next/server/chunks/lib_session-reader_ts_07kvkqq._.js +5 -0
  182. package/.next/server/chunks/lib_session-reader_ts_07kvkqq._.js.map +1 -0
  183. package/.next/server/chunks/node_modules_next_04~_e52._.js +13 -0
  184. package/.next/server/chunks/node_modules_next_04~_e52._.js.map +1 -0
  185. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js +3 -0
  186. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js.map +1 -0
  187. package/.next/server/chunks/ssr/[root-of-the-server]__00d4x5d._.js +3 -0
  188. package/.next/server/chunks/ssr/[root-of-the-server]__00d4x5d._.js.map +1 -0
  189. package/.next/server/chunks/ssr/[root-of-the-server]__02hi65f._.js +3 -0
  190. package/.next/server/chunks/ssr/[root-of-the-server]__02hi65f._.js.map +1 -0
  191. package/.next/server/chunks/ssr/[root-of-the-server]__06-2p1a._.js +33 -0
  192. package/.next/server/chunks/ssr/[root-of-the-server]__06-2p1a._.js.map +1 -0
  193. package/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +19 -0
  194. package/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js.map +1 -0
  195. package/.next/server/chunks/ssr/[root-of-the-server]__0jag6jd._.js +3 -0
  196. package/.next/server/chunks/ssr/[root-of-the-server]__0jag6jd._.js.map +1 -0
  197. package/.next/server/chunks/ssr/[root-of-the-server]__0pr3cat._.js +33 -0
  198. package/.next/server/chunks/ssr/[root-of-the-server]__0pr3cat._.js.map +1 -0
  199. package/.next/server/chunks/ssr/[root-of-the-server]__0pspq~2._.js +6 -0
  200. package/.next/server/chunks/ssr/[root-of-the-server]__0pspq~2._.js.map +1 -0
  201. package/.next/server/chunks/ssr/[root-of-the-server]__0w~zl.s._.js +3 -0
  202. package/.next/server/chunks/ssr/[root-of-the-server]__0w~zl.s._.js.map +1 -0
  203. package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
  204. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
  205. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
  206. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js.map +1 -0
  207. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
  208. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js.map +1 -0
  209. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
  210. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js.map +1 -0
  211. package/.next/server/chunks/ssr/app_layout_tsx_13yf0ls._.js +3 -0
  212. package/.next/server/chunks/ssr/app_layout_tsx_13yf0ls._.js.map +1 -0
  213. package/.next/server/chunks/ssr/components_ToolPanel_tsx_0r3vloj._.js +3 -0
  214. package/.next/server/chunks/ssr/components_ToolPanel_tsx_0r3vloj._.js.map +1 -0
  215. package/.next/server/chunks/ssr/components_ToolPanel_tsx_0ybdq6k._.js +3 -0
  216. package/.next/server/chunks/ssr/components_ToolPanel_tsx_0ybdq6k._.js.map +1 -0
  217. package/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
  218. package/.next/server/chunks/ssr/node_modules_09w7yel._.js.map +1 -0
  219. package/.next/server/chunks/ssr/node_modules_0vtdjw7._.js +3 -0
  220. package/.next/server/chunks/ssr/node_modules_0vtdjw7._.js.map +1 -0
  221. package/.next/server/chunks/ssr/node_modules_next_dist_09y1ibj._.js +6 -0
  222. package/.next/server/chunks/ssr/node_modules_next_dist_09y1ibj._.js.map +1 -0
  223. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
  224. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js.map +1 -0
  225. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
  226. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js.map +1 -0
  227. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
  228. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js.map +1 -0
  229. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
  230. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js.map +1 -0
  231. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_002l7yi.js +4 -0
  232. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_002l7yi.js.map +1 -0
  233. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02suzhc.js +4 -0
  234. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02suzhc.js.map +1 -0
  235. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nsg22r.js +4 -0
  236. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0nsg22r.js.map +1 -0
  237. package/.next/server/functions-config-manifest.json +4 -0
  238. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  239. package/.next/server/middleware-build-manifest.js +21 -0
  240. package/.next/server/middleware-manifest.json +6 -0
  241. package/.next/server/next-font-manifest.js +1 -0
  242. package/.next/server/next-font-manifest.json +6 -0
  243. package/.next/server/pages/404.html +1 -0
  244. package/.next/server/pages/500.html +1 -0
  245. package/.next/server/pages-manifest.json +4 -0
  246. package/.next/server/prefetch-hints.json +1 -0
  247. package/.next/server/server-reference-manifest.js +1 -0
  248. package/.next/server/server-reference-manifest.json +5 -0
  249. package/.next/static/chunks/0-j.wjqnc6zff.js +1 -0
  250. package/.next/static/chunks/02i7dfk78~t~2.js +4 -0
  251. package/.next/static/chunks/02p06lvcsni3l.js +1 -0
  252. package/.next/static/chunks/03~yq9q893hmn.js +1 -0
  253. package/.next/static/chunks/09dho1gmydle0.js +1 -0
  254. package/.next/static/chunks/0_mdnxjv887c..css +1 -0
  255. package/.next/static/chunks/0cj37tl-sc0gx.js +2 -0
  256. package/.next/static/chunks/0h4bblvd1oiwg.js +1 -0
  257. package/.next/static/chunks/0j-yjan8jn-8-.js +31 -0
  258. package/.next/static/chunks/0lpjxrppxb_hc.js +1 -0
  259. package/.next/static/chunks/turbopack-04u~j1o-remaj.js +1 -0
  260. package/.next/static/h_DPSqE34dYtPmxavamVm/_buildManifest.js +11 -0
  261. package/.next/static/h_DPSqE34dYtPmxavamVm/_clientMiddlewareManifest.js +1 -0
  262. package/.next/static/h_DPSqE34dYtPmxavamVm/_ssgManifest.js +1 -0
  263. package/.next/static/media/favicon.0~uco8ba8mwit.ico +0 -0
  264. package/README.md +62 -0
  265. package/bin/pi-web.js +24 -0
  266. package/next.config.ts +8 -0
  267. package/package.json +43 -0
  268. package/public/file.svg +1 -0
  269. package/public/globe.svg +1 -0
  270. package/public/next.svg +1 -0
  271. package/public/vercel.svg +1 -0
  272. package/public/window.svg +1 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0j-yjan8jn-8-.js","static/chunks/02i7dfk78~t~2.js","static/chunks/0-j.wjqnc6zff.js","static/chunks/0cj37tl-sc0gx.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_ASSET_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function w(e){let t=W(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=w,u.A=function(e){return this.r(e)(w.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return W(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),v=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[v]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[k]:e=>e(t)};return e.then(e=>{r[v]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[v]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[v]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[C]=e):i(u[v]),P(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function $(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,u.U=U,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let R=s.prototype,S=new Map;u.M=S;let E=new Map,_=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!S.has(e)||E.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))_.has(o)||_.set(o,n)}for(let e of o)E.has(e)||E.set(e,n);await n}R.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:$(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return M(i.Parent,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.q=function(e,t){m.call(this,`${e}${r}`,t)},R.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let W=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return B(e,i.Parent,t.id)};function B(e,t,r){let n=S.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:$(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,S)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}B(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
@@ -0,0 +1,11 @@
1
+ self.__BUILD_MANIFEST = {
2
+ "__rewrites": {
3
+ "afterFiles": [],
4
+ "beforeFiles": [],
5
+ "fallback": []
6
+ },
7
+ "sortedPages": [
8
+ "/_app",
9
+ "/_error"
10
+ ]
11
+ };self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
@@ -0,0 +1 @@
1
+ self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()
@@ -0,0 +1 @@
1
+ self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
package/README.md ADDED
@@ -0,0 +1,62 @@
1
+ # pi-web
2
+
3
+ A web interface for the [pi coding agent](https://github.com/badlogic/pi-mono). Browse sessions, chat with the agent, fork conversations, and navigate message branches — all in the browser.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm install
9
+ npm run dev
10
+ ```
11
+
12
+ Open [http://localhost:3030](http://localhost:3030).
13
+
14
+ Production:
15
+
16
+ ```bash
17
+ npm run build
18
+ npm start
19
+ ```
20
+
21
+ Recommended: download a pre-configured working folder (with skills already set up) from https://github.com/agegr/working-chat/
22
+
23
+ ```bash
24
+ git clone https://github.com/agegr/working-chat.git
25
+ ```
26
+
27
+ ## Features
28
+
29
+ - **Session browser** — lists all pi sessions grouped by working directory
30
+ - **Live chat** — sends messages to the agent with real-time streaming via SSE
31
+ - **Fork** — branch a session from any user message into a new independent session
32
+ - **In-session branching** — navigate back to any point and continue from there, creating a branch in the same session file
33
+ - **Branch navigator** — visual switcher for branch points within a session
34
+ - **Model selector** — switch models mid-session
35
+ - **Tool panel** — toggle which tools the agent can use
36
+ - **Compact** — summarize long sessions to save context window
37
+ - **Steer / Follow-up** — interrupt the agent mid-run or queue a message for after it finishes
38
+
39
+ ## Notes
40
+
41
+ - **Agent data directory** — reads sessions from `~/.pi/agent/sessions` by default. Set `PI_CODING_AGENT_DIR` to use another agent directory.
42
+ - **Models** — reads available models from `models.json` in the agent directory. You can edit them from the sidebar `Models` panel.
43
+ - **Files** — the sidebar includes a file explorer for the current working directory and can open files in tabs.
44
+
45
+ ## Project structure
46
+
47
+ ```
48
+ app/
49
+ api/
50
+ sessions/ # read session files
51
+ agent/ # send commands, stream events
52
+ files/ # browse and open files in the current cwd
53
+ models/ # list available models
54
+ models-config/ # read and write models.json
55
+ components/ # UI components
56
+ lib/
57
+ session-reader.ts # parse .jsonl session files
58
+ rpc-manager.ts # manage AgentSession lifecycle
59
+ types.ts
60
+ ```
61
+
62
+ Sessions are stored as `.jsonl` files at `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl`.
package/bin/pi-web.js ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ const { spawn } = require("child_process");
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+
8
+ const pkgDir = path.join(__dirname, "..");
9
+ const nextBin = path.join(pkgDir, "node_modules", ".bin", "next");
10
+ const nextDir = path.join(pkgDir, ".next");
11
+ const port = process.env.PORT || "3030";
12
+
13
+ if (!fs.existsSync(nextDir)) {
14
+ console.error("Build artifacts not found. Please report this issue.");
15
+ process.exit(1);
16
+ }
17
+
18
+ const child = spawn(nextBin, ["start", "-p", port], {
19
+ cwd: pkgDir,
20
+ stdio: "inherit",
21
+ env: { ...process.env },
22
+ });
23
+
24
+ child.on("exit", (code) => process.exit(code ?? 0));
package/next.config.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { NextConfig } from "next";
2
+
3
+ const nextConfig: NextConfig = {
4
+ serverExternalPackages: ["@mariozechner/pi-coding-agent", "@mariozechner/pi-ai"],
5
+ allowedDevOrigins: ['192.168.*.*'],
6
+ };
7
+
8
+ export default nextConfig;
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@agegr/pi-web",
3
+ "version": "0.2.1",
4
+ "description": "Web UI for the pi coding agent",
5
+ "bin": {
6
+ "pi-web": "bin/pi-web.js"
7
+ },
8
+ "files": [
9
+ "bin",
10
+ ".next/server",
11
+ ".next/static",
12
+ ".next/BUILD_ID",
13
+ ".next/package.json",
14
+ "public",
15
+ "next.config.ts",
16
+ "package.json"
17
+ ],
18
+ "scripts": {
19
+ "dev": "next dev -p 3030",
20
+ "build": "next build",
21
+ "start": "next start -p 3030",
22
+ "lint": "eslint ."
23
+ },
24
+ "dependencies": {
25
+ "@mariozechner/pi-coding-agent": "^0.62.0",
26
+ "next": "16.2.1",
27
+ "react": "^19.2.4",
28
+ "react-dom": "^19.2.4",
29
+ "react-markdown": "^10.1.0",
30
+ "remark-gfm": "^4.0.1"
31
+ },
32
+ "devDependencies": {
33
+ "@tailwindcss/postcss": "^4.2.2",
34
+ "@types/node": "^25",
35
+ "@types/react": "^19",
36
+ "@types/react-dom": "^19",
37
+ "eslint": "^9",
38
+ "eslint-config-next": "16.2.1",
39
+ "postcss": "^8",
40
+ "tailwindcss": "^4.2.2",
41
+ "typescript": "^5"
42
+ }
43
+ }
@@ -0,0 +1 @@
1
+ <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>