@aitne/dashboard 0.1.9 → 0.1.11

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 (1082) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -9
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/diagnostics/route-bundle-stats.json +595 -643
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/prerender-manifest.json +57 -105
  7. package/.next/routes-manifest.json +30 -42
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/next-font-manifest.json +4 -2
  16. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -1
  17. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/activity/page/next-font-manifest.json +4 -2
  28. package/.next/server/app/activity/page/react-loadable-manifest.json +1 -1
  29. package/.next/server/app/activity/page.js.nft.json +1 -1
  30. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/activity.html +1 -1
  32. package/.next/server/app/activity.rsc +30 -27
  33. package/.next/server/app/activity.segments/_full.segment.rsc +30 -27
  34. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  35. package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
  36. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  37. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  38. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  39. package/.next/server/app/agents/[slug]/executions/page/next-font-manifest.json +4 -2
  40. package/.next/server/app/agents/[slug]/executions/page/react-loadable-manifest.json +1 -1
  41. package/.next/server/app/agents/[slug]/executions/page.js.nft.json +1 -1
  42. package/.next/server/app/agents/[slug]/executions/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/agents/[slug]/page/next-font-manifest.json +4 -2
  44. package/.next/server/app/agents/[slug]/page/react-loadable-manifest.json +1 -1
  45. package/.next/server/app/agents/[slug]/page.js.nft.json +1 -1
  46. package/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/agents/page/next-font-manifest.json +4 -2
  48. package/.next/server/app/agents/page/react-loadable-manifest.json +1 -1
  49. package/.next/server/app/agents/page.js.nft.json +1 -1
  50. package/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/agents.html +1 -1
  52. package/.next/server/app/agents.rsc +18 -17
  53. package/.next/server/app/agents.segments/_full.segment.rsc +18 -17
  54. package/.next/server/app/agents.segments/_head.segment.rsc +4 -4
  55. package/.next/server/app/agents.segments/_index.segment.rsc +10 -10
  56. package/.next/server/app/agents.segments/_tree.segment.rsc +3 -2
  57. package/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
  58. package/.next/server/app/agents.segments/agents.segment.rsc +3 -3
  59. package/.next/server/app/analytics/page/next-font-manifest.json +4 -2
  60. package/.next/server/app/analytics/page/react-loadable-manifest.json +1 -1
  61. package/.next/server/app/analytics/page.js.nft.json +1 -1
  62. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/analytics.html +1 -1
  64. package/.next/server/app/analytics.rsc +21 -20
  65. package/.next/server/app/analytics.segments/_full.segment.rsc +21 -20
  66. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  67. package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
  68. package/.next/server/app/analytics.segments/_tree.segment.rsc +3 -2
  69. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  70. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  71. package/.next/server/app/browser/page/app-paths-manifest.json +3 -0
  72. package/.next/server/app/browser/page/next-font-manifest.json +8 -0
  73. package/.next/server/app/{settings/advanced → browser}/page/react-loadable-manifest.json +1 -1
  74. package/.next/server/app/browser/page.js +15 -0
  75. package/.next/server/app/browser/page.js.nft.json +1 -0
  76. package/.next/server/app/browser/page_client-reference-manifest.js +3 -0
  77. package/.next/server/app/browser-tasks/[id]/page/next-font-manifest.json +4 -2
  78. package/.next/server/app/browser-tasks/[id]/page/react-loadable-manifest.json +1 -1
  79. package/.next/server/app/browser-tasks/[id]/page.js.nft.json +1 -1
  80. package/.next/server/app/browser-tasks/[id]/page_client-reference-manifest.js +1 -1
  81. package/.next/server/app/browser-tasks/page/next-font-manifest.json +4 -2
  82. package/.next/server/app/browser-tasks/page/react-loadable-manifest.json +1 -1
  83. package/.next/server/app/browser-tasks/page.js.nft.json +1 -1
  84. package/.next/server/app/browser-tasks/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/browser-tasks.html +1 -1
  86. package/.next/server/app/browser-tasks.rsc +18 -17
  87. package/.next/server/app/browser-tasks.segments/_full.segment.rsc +18 -17
  88. package/.next/server/app/browser-tasks.segments/_head.segment.rsc +4 -4
  89. package/.next/server/app/browser-tasks.segments/_index.segment.rsc +10 -10
  90. package/.next/server/app/browser-tasks.segments/_tree.segment.rsc +3 -2
  91. package/.next/server/app/browser-tasks.segments/browser-tasks/__PAGE__.segment.rsc +4 -4
  92. package/.next/server/app/browser-tasks.segments/browser-tasks.segment.rsc +3 -3
  93. package/.next/server/app/browser.html +1 -0
  94. package/.next/server/app/browser.meta +15 -0
  95. package/.next/server/app/browser.rsc +27 -0
  96. package/.next/server/app/browser.segments/_full.segment.rsc +27 -0
  97. package/.next/server/app/browser.segments/_head.segment.rsc +6 -0
  98. package/.next/server/app/browser.segments/_index.segment.rsc +11 -0
  99. package/.next/server/app/browser.segments/_tree.segment.rsc +3 -0
  100. package/.next/server/app/browser.segments/browser/__PAGE__.segment.rsc +9 -0
  101. package/.next/server/app/browser.segments/browser.segment.rsc +5 -0
  102. package/.next/server/app/chat/page/next-font-manifest.json +4 -2
  103. package/.next/server/app/chat/page/react-loadable-manifest.json +1 -1
  104. package/.next/server/app/chat/page.js.nft.json +1 -1
  105. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/chat.html +1 -1
  107. package/.next/server/app/chat.rsc +18 -17
  108. package/.next/server/app/chat.segments/_full.segment.rsc +18 -17
  109. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  110. package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
  111. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  112. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  113. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  114. package/.next/server/app/connections/calendar/page/next-font-manifest.json +4 -2
  115. package/.next/server/app/connections/calendar/page/react-loadable-manifest.json +1 -1
  116. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  117. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  118. package/.next/server/app/connections/calendar.html +1 -1
  119. package/.next/server/app/connections/calendar.rsc +19 -18
  120. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +19 -18
  121. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  122. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
  123. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +3 -2
  124. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  125. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  126. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  127. package/.next/server/app/connections/journal/page/next-font-manifest.json +4 -2
  128. package/.next/server/app/connections/journal/page/react-loadable-manifest.json +1 -1
  129. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  130. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/connections/journal.html +1 -1
  132. package/.next/server/app/connections/journal.rsc +18 -17
  133. package/.next/server/app/connections/journal.segments/_full.segment.rsc +18 -17
  134. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  135. package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
  136. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +3 -2
  137. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +3 -3
  138. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  139. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  140. package/.next/server/app/connections/mail/page/next-font-manifest.json +4 -2
  141. package/.next/server/app/connections/mail/page/react-loadable-manifest.json +1 -1
  142. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  143. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  144. package/.next/server/app/connections/mail.html +1 -1
  145. package/.next/server/app/connections/mail.rsc +19 -18
  146. package/.next/server/app/connections/mail.segments/_full.segment.rsc +19 -18
  147. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  148. package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
  149. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +3 -2
  150. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  151. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  152. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  153. package/.next/server/app/connections/mcp/page/next-font-manifest.json +4 -2
  154. package/.next/server/app/connections/mcp/page/react-loadable-manifest.json +1 -1
  155. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  156. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/connections/mcp.html +1 -1
  158. package/.next/server/app/connections/mcp.rsc +19 -18
  159. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +19 -18
  160. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  161. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
  162. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +3 -2
  163. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  164. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  165. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  166. package/.next/server/app/connections/messaging/page/next-font-manifest.json +4 -2
  167. package/.next/server/app/connections/messaging/page/react-loadable-manifest.json +1 -1
  168. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  169. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  170. package/.next/server/app/connections/messaging.html +1 -1
  171. package/.next/server/app/connections/messaging.rsc +19 -18
  172. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +19 -18
  173. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  174. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
  175. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +3 -2
  176. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  177. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  178. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  179. package/.next/server/app/connections/notes/page/app-paths-manifest.json +3 -0
  180. package/.next/server/app/connections/notes/page/next-font-manifest.json +8 -0
  181. package/.next/server/app/{settings/backends → connections/notes}/page/react-loadable-manifest.json +1 -1
  182. package/.next/server/app/connections/{knowledge → notes}/page.js +6 -6
  183. package/.next/server/app/{settings/schedule → connections/notes}/page.js.nft.json +1 -1
  184. package/.next/server/app/connections/notes/page_client-reference-manifest.js +3 -0
  185. package/.next/server/app/connections/notes.html +1 -0
  186. package/.next/server/app/connections/{knowledge.meta → notes.meta} +3 -3
  187. package/.next/server/app/connections/notes.rsc +28 -0
  188. package/.next/server/app/connections/notes.segments/_full.segment.rsc +28 -0
  189. package/.next/server/app/connections/notes.segments/_head.segment.rsc +6 -0
  190. package/.next/server/app/connections/notes.segments/_index.segment.rsc +11 -0
  191. package/.next/server/app/connections/notes.segments/_tree.segment.rsc +3 -0
  192. package/.next/server/app/connections/notes.segments/connections/notes/__PAGE__.segment.rsc +9 -0
  193. package/.next/server/app/connections/notes.segments/connections/notes.segment.rsc +5 -0
  194. package/.next/server/app/connections/notes.segments/connections.segment.rsc +5 -0
  195. package/.next/server/app/connections/page/next-font-manifest.json +4 -2
  196. package/.next/server/app/connections/page/react-loadable-manifest.json +1 -1
  197. package/.next/server/app/connections/page.js.nft.json +1 -1
  198. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  199. package/.next/server/app/connections/repositories/page/next-font-manifest.json +4 -2
  200. package/.next/server/app/connections/repositories/page/react-loadable-manifest.json +1 -1
  201. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  202. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  203. package/.next/server/app/connections/repositories.html +1 -1
  204. package/.next/server/app/connections/repositories.rsc +23 -21
  205. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +23 -21
  206. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  207. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
  208. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +3 -2
  209. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  210. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  211. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  212. package/.next/server/app/connections/routines/page/next-font-manifest.json +4 -2
  213. package/.next/server/app/connections/routines/page/react-loadable-manifest.json +1 -1
  214. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  215. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  216. package/.next/server/app/connections/routines.html +1 -1
  217. package/.next/server/app/connections/routines.rsc +18 -17
  218. package/.next/server/app/connections/routines.segments/_full.segment.rsc +18 -17
  219. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  220. package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
  221. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +3 -2
  222. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +3 -3
  223. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  224. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  225. package/.next/server/app/connections.html +1 -1
  226. package/.next/server/app/connections.rsc +17 -16
  227. package/.next/server/app/connections.segments/_full.segment.rsc +17 -16
  228. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  229. package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
  230. package/.next/server/app/connections.segments/_tree.segment.rsc +3 -2
  231. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  232. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  233. package/.next/server/app/conversations/[id]/page/next-font-manifest.json +4 -2
  234. package/.next/server/app/conversations/[id]/page/react-loadable-manifest.json +1 -1
  235. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  236. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  237. package/.next/server/app/conversations/page/next-font-manifest.json +4 -2
  238. package/.next/server/app/conversations/page/react-loadable-manifest.json +1 -1
  239. package/.next/server/app/conversations/page.js.nft.json +1 -1
  240. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/conversations.html +1 -1
  242. package/.next/server/app/conversations.rsc +16 -15
  243. package/.next/server/app/conversations.segments/_full.segment.rsc +16 -15
  244. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  245. package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
  246. package/.next/server/app/conversations.segments/_tree.segment.rsc +3 -2
  247. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  248. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  249. package/.next/server/app/docs/[[...slug]]/page/next-font-manifest.json +4 -2
  250. package/.next/server/app/docs/[[...slug]]/page/react-loadable-manifest.json +1 -1
  251. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  252. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/finance/page/next-font-manifest.json +4 -2
  254. package/.next/server/app/finance/page/react-loadable-manifest.json +1 -1
  255. package/.next/server/app/finance/page.js.nft.json +1 -1
  256. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/finance.html +1 -1
  258. package/.next/server/app/finance.rsc +18 -17
  259. package/.next/server/app/finance.segments/_full.segment.rsc +18 -17
  260. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  261. package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
  262. package/.next/server/app/finance.segments/_tree.segment.rsc +3 -2
  263. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  264. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  265. package/.next/server/app/git/page/next-font-manifest.json +4 -2
  266. package/.next/server/app/git/page/react-loadable-manifest.json +1 -1
  267. package/.next/server/app/git/page.js.nft.json +1 -1
  268. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/git.html +1 -1
  270. package/.next/server/app/git.rsc +18 -17
  271. package/.next/server/app/git.segments/_full.segment.rsc +18 -17
  272. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  273. package/.next/server/app/git.segments/_index.segment.rsc +10 -10
  274. package/.next/server/app/git.segments/_tree.segment.rsc +3 -2
  275. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  276. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  277. package/.next/server/app/health/page/next-font-manifest.json +4 -2
  278. package/.next/server/app/health/page/react-loadable-manifest.json +1 -1
  279. package/.next/server/app/health/page.js.nft.json +1 -1
  280. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  281. package/.next/server/app/health.html +1 -1
  282. package/.next/server/app/health.rsc +18 -17
  283. package/.next/server/app/health.segments/_full.segment.rsc +18 -17
  284. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  285. package/.next/server/app/health.segments/_index.segment.rsc +10 -10
  286. package/.next/server/app/health.segments/_tree.segment.rsc +3 -2
  287. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  288. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  289. package/.next/server/app/index.html +1 -1
  290. package/.next/server/app/index.rsc +18 -17
  291. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  292. package/.next/server/app/index.segments/_full.segment.rsc +18 -17
  293. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  294. package/.next/server/app/index.segments/_index.segment.rsc +10 -10
  295. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  296. package/.next/server/app/knowledge/page/next-font-manifest.json +4 -2
  297. package/.next/server/app/knowledge/page/react-loadable-manifest.json +1 -1
  298. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  299. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  300. package/.next/server/app/knowledge.html +1 -1
  301. package/.next/server/app/knowledge.rsc +19 -18
  302. package/.next/server/app/knowledge.segments/_full.segment.rsc +19 -18
  303. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  304. package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
  305. package/.next/server/app/knowledge.segments/_tree.segment.rsc +3 -2
  306. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  307. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  308. package/.next/server/app/page/next-font-manifest.json +4 -2
  309. package/.next/server/app/page/react-loadable-manifest.json +1 -1
  310. package/.next/server/app/page.js.nft.json +1 -1
  311. package/.next/server/app/page_client-reference-manifest.js +1 -1
  312. package/.next/server/app/reading/page/next-font-manifest.json +4 -2
  313. package/.next/server/app/reading/page/react-loadable-manifest.json +1 -1
  314. package/.next/server/app/reading/page.js.nft.json +1 -1
  315. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  316. package/.next/server/app/reading.html +1 -1
  317. package/.next/server/app/reading.rsc +18 -17
  318. package/.next/server/app/reading.segments/_full.segment.rsc +18 -17
  319. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  320. package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
  321. package/.next/server/app/reading.segments/_tree.segment.rsc +3 -2
  322. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  323. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  324. package/.next/server/app/schedule/page/next-font-manifest.json +4 -2
  325. package/.next/server/app/schedule/page/react-loadable-manifest.json +1 -1
  326. package/.next/server/app/schedule/page.js.nft.json +1 -1
  327. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  328. package/.next/server/app/schedule.html +1 -1
  329. package/.next/server/app/schedule.rsc +18 -17
  330. package/.next/server/app/schedule.segments/_full.segment.rsc +18 -17
  331. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  332. package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
  333. package/.next/server/app/schedule.segments/_tree.segment.rsc +3 -2
  334. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  335. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  336. package/.next/server/app/settings/commands/page/next-font-manifest.json +4 -2
  337. package/.next/server/app/settings/commands/page/react-loadable-manifest.json +1 -1
  338. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  339. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  340. package/.next/server/app/settings/commands.html +1 -1
  341. package/.next/server/app/settings/commands.rsc +19 -18
  342. package/.next/server/app/settings/commands.segments/_full.segment.rsc +19 -18
  343. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  344. package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
  345. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +3 -2
  346. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  347. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  348. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  349. package/.next/server/app/settings/danger-zone/page/app-paths-manifest.json +3 -0
  350. package/.next/server/app/settings/danger-zone/page/next-font-manifest.json +8 -0
  351. package/.next/server/app/{connections/knowledge → settings/danger-zone}/page/react-loadable-manifest.json +1 -1
  352. package/.next/server/app/settings/{routines → danger-zone}/page.js +6 -6
  353. package/.next/server/app/settings/{connections → danger-zone}/page.js.nft.json +1 -1
  354. package/.next/server/app/settings/danger-zone/page_client-reference-manifest.js +3 -0
  355. package/.next/server/app/settings/danger-zone.html +1 -0
  356. package/.next/server/app/settings/{connections.meta → danger-zone.meta} +3 -3
  357. package/.next/server/app/settings/danger-zone.rsc +28 -0
  358. package/.next/server/app/settings/danger-zone.segments/_full.segment.rsc +28 -0
  359. package/.next/server/app/settings/danger-zone.segments/_head.segment.rsc +6 -0
  360. package/.next/server/app/settings/danger-zone.segments/_index.segment.rsc +11 -0
  361. package/.next/server/app/settings/danger-zone.segments/_tree.segment.rsc +3 -0
  362. package/.next/server/app/settings/danger-zone.segments/settings/danger-zone/__PAGE__.segment.rsc +9 -0
  363. package/.next/server/app/settings/danger-zone.segments/settings/danger-zone.segment.rsc +5 -0
  364. package/.next/server/app/settings/danger-zone.segments/settings.segment.rsc +5 -0
  365. package/.next/server/app/settings/hours/page/app-paths-manifest.json +3 -0
  366. package/.next/server/app/settings/hours/page/next-font-manifest.json +8 -0
  367. package/.next/server/app/settings/{connections → hours}/page/react-loadable-manifest.json +1 -1
  368. package/.next/server/app/settings/{schedule → hours}/page.js +6 -6
  369. package/.next/server/app/settings/{backends → hours}/page.js.nft.json +1 -1
  370. package/.next/server/app/settings/hours/page_client-reference-manifest.js +3 -0
  371. package/.next/server/app/settings/hours.html +1 -0
  372. package/.next/server/app/settings/{journal.meta → hours.meta} +3 -3
  373. package/.next/server/app/settings/hours.rsc +28 -0
  374. package/.next/server/app/settings/hours.segments/_full.segment.rsc +28 -0
  375. package/.next/server/app/settings/hours.segments/_head.segment.rsc +6 -0
  376. package/.next/server/app/settings/hours.segments/_index.segment.rsc +11 -0
  377. package/.next/server/app/settings/hours.segments/_tree.segment.rsc +3 -0
  378. package/.next/server/app/settings/hours.segments/settings/hours/__PAGE__.segment.rsc +9 -0
  379. package/.next/server/app/settings/hours.segments/settings/hours.segment.rsc +5 -0
  380. package/.next/server/app/settings/hours.segments/settings.segment.rsc +5 -0
  381. package/.next/server/app/settings/infrastructure/page/app-paths-manifest.json +3 -0
  382. package/.next/server/app/settings/infrastructure/page/next-font-manifest.json +8 -0
  383. package/.next/server/app/settings/infrastructure/page/react-loadable-manifest.json +8 -0
  384. package/.next/server/app/settings/infrastructure/page.js +16 -0
  385. package/.next/server/app/settings/{messaging → infrastructure}/page.js.nft.json +1 -1
  386. package/.next/server/app/settings/infrastructure/page_client-reference-manifest.js +3 -0
  387. package/.next/server/app/settings/infrastructure.html +1 -0
  388. package/.next/server/app/settings/infrastructure.meta +16 -0
  389. package/.next/server/app/settings/infrastructure.rsc +28 -0
  390. package/.next/server/app/settings/infrastructure.segments/_full.segment.rsc +28 -0
  391. package/.next/server/app/settings/infrastructure.segments/_head.segment.rsc +6 -0
  392. package/.next/server/app/settings/infrastructure.segments/_index.segment.rsc +11 -0
  393. package/.next/server/app/settings/infrastructure.segments/_tree.segment.rsc +3 -0
  394. package/.next/server/app/settings/infrastructure.segments/settings/infrastructure/__PAGE__.segment.rsc +9 -0
  395. package/.next/server/app/settings/infrastructure.segments/settings/infrastructure.segment.rsc +5 -0
  396. package/.next/server/app/settings/infrastructure.segments/settings.segment.rsc +5 -0
  397. package/.next/server/app/settings/integrations/browser-history/page/next-font-manifest.json +4 -2
  398. package/.next/server/app/settings/integrations/browser-history/page/react-loadable-manifest.json +1 -1
  399. package/.next/server/app/settings/integrations/browser-history/page.js.nft.json +1 -1
  400. package/.next/server/app/settings/integrations/browser-history/page_client-reference-manifest.js +1 -1
  401. package/.next/server/app/settings/integrations/browser-history-managed/b4/page/next-font-manifest.json +4 -2
  402. package/.next/server/app/settings/integrations/browser-history-managed/b4/page/react-loadable-manifest.json +1 -1
  403. package/.next/server/app/settings/integrations/browser-history-managed/b4/page.js.nft.json +1 -1
  404. package/.next/server/app/settings/integrations/browser-history-managed/b4/page_client-reference-manifest.js +1 -1
  405. package/.next/server/app/settings/integrations/browser-history-managed/b4.html +1 -1
  406. package/.next/server/app/settings/integrations/browser-history-managed/b4.rsc +19 -18
  407. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_full.segment.rsc +19 -18
  408. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_head.segment.rsc +4 -4
  409. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_index.segment.rsc +10 -10
  410. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_tree.segment.rsc +3 -2
  411. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4/__PAGE__.segment.rsc +4 -4
  412. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4.segment.rsc +3 -3
  413. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  414. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations.segment.rsc +3 -3
  415. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings.segment.rsc +4 -4
  416. package/.next/server/app/settings/integrations/browser-history-managed/page/next-font-manifest.json +4 -2
  417. package/.next/server/app/settings/integrations/browser-history-managed/page/react-loadable-manifest.json +1 -1
  418. package/.next/server/app/settings/integrations/browser-history-managed/page.js.nft.json +1 -1
  419. package/.next/server/app/settings/integrations/browser-history-managed/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/settings/integrations/browser-history-managed.html +1 -1
  421. package/.next/server/app/settings/integrations/browser-history-managed.rsc +19 -18
  422. package/.next/server/app/settings/integrations/browser-history-managed.segments/_full.segment.rsc +19 -18
  423. package/.next/server/app/settings/integrations/browser-history-managed.segments/_head.segment.rsc +4 -4
  424. package/.next/server/app/settings/integrations/browser-history-managed.segments/_index.segment.rsc +10 -10
  425. package/.next/server/app/settings/integrations/browser-history-managed.segments/_tree.segment.rsc +3 -2
  426. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed/__PAGE__.segment.rsc +4 -4
  427. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  428. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations.segment.rsc +3 -3
  429. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings.segment.rsc +4 -4
  430. package/.next/server/app/settings/integrations/browser-history.html +1 -1
  431. package/.next/server/app/settings/integrations/browser-history.rsc +19 -18
  432. package/.next/server/app/settings/integrations/browser-history.segments/_full.segment.rsc +19 -18
  433. package/.next/server/app/settings/integrations/browser-history.segments/_head.segment.rsc +4 -4
  434. package/.next/server/app/settings/integrations/browser-history.segments/_index.segment.rsc +10 -10
  435. package/.next/server/app/settings/integrations/browser-history.segments/_tree.segment.rsc +3 -2
  436. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history/__PAGE__.segment.rsc +4 -4
  437. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history.segment.rsc +3 -3
  438. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations.segment.rsc +3 -3
  439. package/.next/server/app/settings/integrations/browser-history.segments/settings.segment.rsc +4 -4
  440. package/.next/server/app/settings/lessons/page/app-paths-manifest.json +3 -0
  441. package/.next/server/app/settings/lessons/page/next-font-manifest.json +8 -0
  442. package/.next/server/app/settings/lessons/page/react-loadable-manifest.json +8 -0
  443. package/.next/server/app/settings/{journal → lessons}/page.js +6 -6
  444. package/.next/server/app/settings/{journal → lessons}/page.js.nft.json +1 -1
  445. package/.next/server/app/settings/lessons/page_client-reference-manifest.js +3 -0
  446. package/.next/server/app/settings/lessons.html +1 -0
  447. package/.next/server/app/settings/{backends.meta → lessons.meta} +3 -3
  448. package/.next/server/app/settings/lessons.rsc +28 -0
  449. package/.next/server/app/settings/lessons.segments/_full.segment.rsc +28 -0
  450. package/.next/server/app/settings/lessons.segments/_head.segment.rsc +6 -0
  451. package/.next/server/app/settings/lessons.segments/_index.segment.rsc +11 -0
  452. package/.next/server/app/settings/lessons.segments/_tree.segment.rsc +3 -0
  453. package/.next/server/app/settings/lessons.segments/settings/lessons/__PAGE__.segment.rsc +9 -0
  454. package/.next/server/app/settings/lessons.segments/settings/lessons.segment.rsc +5 -0
  455. package/.next/server/app/settings/lessons.segments/settings.segment.rsc +5 -0
  456. package/.next/server/app/settings/management/page/next-font-manifest.json +4 -2
  457. package/.next/server/app/settings/management/page/react-loadable-manifest.json +1 -1
  458. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  459. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  460. package/.next/server/app/settings/management.html +1 -1
  461. package/.next/server/app/settings/management.rsc +19 -18
  462. package/.next/server/app/settings/management.segments/_full.segment.rsc +19 -18
  463. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  464. package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
  465. package/.next/server/app/settings/management.segments/_tree.segment.rsc +3 -2
  466. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  467. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  468. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  469. package/.next/server/app/settings/models/page/next-font-manifest.json +4 -2
  470. package/.next/server/app/settings/models/page/react-loadable-manifest.json +1 -1
  471. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  472. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  473. package/.next/server/app/settings/models.html +1 -1
  474. package/.next/server/app/settings/models.rsc +19 -18
  475. package/.next/server/app/settings/models.segments/_full.segment.rsc +19 -18
  476. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  477. package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
  478. package/.next/server/app/settings/models.segments/_tree.segment.rsc +3 -2
  479. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  480. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  481. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  482. package/.next/server/app/settings/page/next-font-manifest.json +4 -2
  483. package/.next/server/app/settings/page/react-loadable-manifest.json +1 -1
  484. package/.next/server/app/settings/page.js.nft.json +1 -1
  485. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  486. package/.next/server/app/settings/safety/page/app-paths-manifest.json +3 -0
  487. package/.next/server/app/settings/safety/page/next-font-manifest.json +8 -0
  488. package/.next/server/app/settings/safety/page/react-loadable-manifest.json +8 -0
  489. package/.next/server/app/settings/{advanced → safety}/page.js +6 -6
  490. package/.next/server/app/settings/{processes → safety}/page.js.nft.json +1 -1
  491. package/.next/server/app/settings/safety/page_client-reference-manifest.js +3 -0
  492. package/.next/server/app/settings/safety.html +1 -0
  493. package/.next/server/app/settings/{advanced.meta → safety.meta} +3 -3
  494. package/.next/server/app/settings/safety.rsc +28 -0
  495. package/.next/server/app/settings/safety.segments/_full.segment.rsc +28 -0
  496. package/.next/server/app/settings/safety.segments/_head.segment.rsc +6 -0
  497. package/.next/server/app/settings/safety.segments/_index.segment.rsc +11 -0
  498. package/.next/server/app/settings/safety.segments/_tree.segment.rsc +3 -0
  499. package/.next/server/app/settings/safety.segments/settings/safety/__PAGE__.segment.rsc +9 -0
  500. package/.next/server/app/settings/safety.segments/settings/safety.segment.rsc +5 -0
  501. package/.next/server/app/settings/safety.segments/settings.segment.rsc +5 -0
  502. package/.next/server/app/settings/self-learning/page/next-font-manifest.json +4 -2
  503. package/.next/server/app/settings/self-learning/page/react-loadable-manifest.json +1 -1
  504. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  505. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  506. package/.next/server/app/settings/self-learning.html +1 -1
  507. package/.next/server/app/settings/self-learning.rsc +19 -18
  508. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +19 -18
  509. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  510. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
  511. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +3 -2
  512. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  513. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  514. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  515. package/.next/server/app/settings/wiki/page/next-font-manifest.json +4 -2
  516. package/.next/server/app/settings/wiki/page/react-loadable-manifest.json +1 -1
  517. package/.next/server/app/settings/wiki/page.js.nft.json +1 -1
  518. package/.next/server/app/settings/wiki/page_client-reference-manifest.js +1 -1
  519. package/.next/server/app/settings/wiki/timeline/page/next-font-manifest.json +4 -2
  520. package/.next/server/app/settings/wiki/timeline/page/react-loadable-manifest.json +1 -1
  521. package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -1
  522. package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +1 -1
  523. package/.next/server/app/settings/wiki/timeline.html +1 -1
  524. package/.next/server/app/settings/wiki/timeline.rsc +17 -16
  525. package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +17 -16
  526. package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +4 -4
  527. package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +10 -10
  528. package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +3 -2
  529. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +2 -2
  530. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +3 -3
  531. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +3 -3
  532. package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +4 -4
  533. package/.next/server/app/settings/wiki.html +1 -1
  534. package/.next/server/app/settings/wiki.rsc +19 -18
  535. package/.next/server/app/settings/wiki.segments/_full.segment.rsc +19 -18
  536. package/.next/server/app/settings/wiki.segments/_head.segment.rsc +4 -4
  537. package/.next/server/app/settings/wiki.segments/_index.segment.rsc +10 -10
  538. package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +3 -2
  539. package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +4 -4
  540. package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +3 -3
  541. package/.next/server/app/settings/wiki.segments/settings.segment.rsc +4 -4
  542. package/.next/server/app/settings.html +1 -1
  543. package/.next/server/app/settings.rsc +19 -18
  544. package/.next/server/app/settings.segments/_full.segment.rsc +19 -18
  545. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  546. package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
  547. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  548. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  549. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  550. package/.next/server/app/setup/page/next-font-manifest.json +4 -2
  551. package/.next/server/app/setup/page/react-loadable-manifest.json +1 -1
  552. package/.next/server/app/setup/page.js.nft.json +1 -1
  553. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  554. package/.next/server/app/setup.html +1 -1
  555. package/.next/server/app/setup.rsc +18 -17
  556. package/.next/server/app/setup.segments/_full.segment.rsc +18 -17
  557. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  558. package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
  559. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  560. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  561. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  562. package/.next/server/app/trip/page/next-font-manifest.json +4 -2
  563. package/.next/server/app/trip/page/react-loadable-manifest.json +1 -1
  564. package/.next/server/app/trip/page.js.nft.json +1 -1
  565. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  566. package/.next/server/app/trip.html +1 -1
  567. package/.next/server/app/trip.rsc +18 -17
  568. package/.next/server/app/trip.segments/_full.segment.rsc +18 -17
  569. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  570. package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
  571. package/.next/server/app/trip.segments/_tree.segment.rsc +3 -2
  572. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  573. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  574. package/.next/server/app/wiki/page/next-font-manifest.json +4 -2
  575. package/.next/server/app/wiki/page/react-loadable-manifest.json +1 -1
  576. package/.next/server/app/wiki/page.js.nft.json +1 -1
  577. package/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
  578. package/.next/server/app/wiki/timeline/page/next-font-manifest.json +4 -2
  579. package/.next/server/app/wiki/timeline/page/react-loadable-manifest.json +1 -1
  580. package/.next/server/app/wiki/timeline/page.js.nft.json +1 -1
  581. package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +1 -1
  582. package/.next/server/app/wiki/timeline.html +1 -1
  583. package/.next/server/app/wiki/timeline.rsc +18 -17
  584. package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +18 -17
  585. package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +4 -4
  586. package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +10 -10
  587. package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +3 -2
  588. package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +4 -4
  589. package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +3 -3
  590. package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +3 -3
  591. package/.next/server/app/wiki.html +1 -1
  592. package/.next/server/app/wiki.rsc +18 -17
  593. package/.next/server/app/wiki.segments/_full.segment.rsc +18 -17
  594. package/.next/server/app/wiki.segments/_head.segment.rsc +4 -4
  595. package/.next/server/app/wiki.segments/_index.segment.rsc +10 -10
  596. package/.next/server/app/wiki.segments/_tree.segment.rsc +3 -2
  597. package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +4 -4
  598. package/.next/server/app/wiki.segments/wiki.segment.rsc +3 -3
  599. package/.next/server/app-paths-manifest.json +7 -9
  600. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
  601. package/.next/server/chunks/[root-of-the-server]__02gp4s0._.js +1 -1
  602. package/.next/server/chunks/[root-of-the-server]__0gckkni._.js +1 -1
  603. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_notes_page_actions_04zn1-i.js +3 -0
  604. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_danger-zone_page_actions_0mp3gc-.js +3 -0
  605. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_lessons_page_actions_0_yqadq.js +3 -0
  606. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_safety_page_actions_05rsfax.js +3 -0
  607. package/.next/server/chunks/ssr/0juq_dashboard_src_app_settings_integrations_browser-history_page_tsx_0.30t~j._.js +1 -1
  608. package/.next/server/chunks/ssr/0x9-__next-internal_server_app_settings_infrastructure_page_actions_0u8fwic.js +3 -0
  609. package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_b4_page_tsx_03zkdyv._.js +1 -1
  610. package/.next/server/chunks/ssr/0x9-_src_app_settings_integrations_browser-history-managed_page_tsx_0q.v5ph._.js +1 -1
  611. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0-xf3nq.js +1 -1
  612. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_05t.o5v.js +4 -0
  613. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0~yic40.js → 0z~i_next_dist_esm_build_templates_app-page_07tjgqy.js} +3 -3
  614. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0dgjd77.js → 0z~i_next_dist_esm_build_templates_app-page_08-8pml.js} +3 -3
  615. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0~l1-oo.js → 0z~i_next_dist_esm_build_templates_app-page_0_hw.~x.js} +3 -3
  616. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i5nfg6.js → 0z~i_next_dist_esm_build_templates_app-page_0gja0sp.js} +3 -3
  617. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0rzk_wb.js → 0z~i_next_dist_esm_build_templates_app-page_0h7ji04.js} +3 -3
  618. package/.next/server/chunks/ssr/{0z~i_next_dist_esm_build_templates_app-page_0i3pbzc.js → 0z~i_next_dist_esm_build_templates_app-page_0xk7dvj.js} +3 -3
  619. package/.next/server/chunks/ssr/{[root-of-the-server]__0.oq_nd._.js → [root-of-the-server]__064iw-m._.js} +2 -2
  620. package/.next/server/chunks/ssr/[root-of-the-server]__0bcu47h._.js +3 -0
  621. package/.next/server/chunks/ssr/[root-of-the-server]__0dz8grn._.js +3 -0
  622. package/.next/server/chunks/ssr/[root-of-the-server]__0e3togs._.js +1 -1
  623. package/.next/server/chunks/ssr/[root-of-the-server]__0own5qk._.js +7 -0
  624. package/.next/server/chunks/ssr/{[root-of-the-server]__0k4~6v4._.js → [root-of-the-server]__0p.rqkz._.js} +2 -2
  625. package/.next/server/chunks/ssr/[root-of-the-server]__0twuzim._.js +1 -1
  626. package/.next/server/chunks/ssr/[root-of-the-server]__0v.2-w_._.js +9 -0
  627. package/.next/server/chunks/ssr/{[root-of-the-server]__0hxae6t._.js → [root-of-the-server]__0x90fri._.js} +2 -2
  628. package/.next/server/chunks/ssr/{[root-of-the-server]__0ku1mlh._.js → [root-of-the-server]__0znkqrs._.js} +2 -2
  629. package/.next/server/chunks/ssr/{[root-of-the-server]__138v34b._.js → [root-of-the-server]__12ocbb6._.js} +2 -2
  630. package/.next/server/chunks/ssr/_0-fa0e6._.js +3 -0
  631. package/.next/server/chunks/ssr/_0-fv_sr._.js +1 -1
  632. package/.next/server/chunks/ssr/_0.83~vc._.js +3 -0
  633. package/.next/server/chunks/ssr/_0.buz~z._.js +3 -0
  634. package/.next/server/chunks/ssr/_00m~lu3._.js +3 -0
  635. package/.next/server/chunks/ssr/_00yd82b._.js +3 -0
  636. package/.next/server/chunks/ssr/_01u8_20._.js +1 -1
  637. package/.next/server/chunks/ssr/_02-~4_x._.js +3 -0
  638. package/.next/server/chunks/ssr/_03ylkmo._.js +1 -1
  639. package/.next/server/chunks/ssr/_042qll3._.js +3 -0
  640. package/.next/server/chunks/ssr/_05-nasq._.js +3 -0
  641. package/.next/server/chunks/ssr/_052c-d8._.js +1 -1
  642. package/.next/server/chunks/ssr/_05etcnw._.js +3 -0
  643. package/.next/server/chunks/ssr/_06pfh8i._.js +3 -0
  644. package/.next/server/chunks/ssr/_07y8~wo._.js +3 -0
  645. package/.next/server/chunks/ssr/_0837jo1._.js +1 -1
  646. package/.next/server/chunks/ssr/_095g5nv._.js +3 -0
  647. package/.next/server/chunks/ssr/_0_59iz5._.js +3 -0
  648. package/.next/server/chunks/ssr/_0_mohhy._.js +3 -0
  649. package/.next/server/chunks/ssr/_0_qa7ix._.js +3 -0
  650. package/.next/server/chunks/ssr/_0a0gitj._.js +3 -0
  651. package/.next/server/chunks/ssr/_0bbgll1._.js +3 -0
  652. package/.next/server/chunks/ssr/_0bsns8f._.js +3 -0
  653. package/.next/server/chunks/ssr/_0cus~q3._.js +3 -0
  654. package/.next/server/chunks/ssr/_0cwcz17._.js +1 -1
  655. package/.next/server/chunks/ssr/_0do3r93._.js +3 -0
  656. package/.next/server/chunks/ssr/_0eoqkp.._.js +3 -0
  657. package/.next/server/chunks/ssr/_0fse1qi._.js +3 -0
  658. package/.next/server/chunks/ssr/_0g7_r5i._.js +1 -1
  659. package/.next/server/chunks/ssr/_0h-mq6i._.js +3 -0
  660. package/.next/server/chunks/ssr/_0h7l~qt._.js +3 -0
  661. package/.next/server/chunks/ssr/_0hojxqy._.js +1 -1
  662. package/.next/server/chunks/ssr/_0jlpcde._.js +3 -0
  663. package/.next/server/chunks/ssr/_0kn1u4v._.js +3 -0
  664. package/.next/server/chunks/ssr/_0l7uzol._.js +3 -0
  665. package/.next/server/chunks/ssr/_0m~vcd.._.js +3 -0
  666. package/.next/server/chunks/ssr/_0n2_n8d._.js +3 -0
  667. package/.next/server/chunks/ssr/_0p4ugyq._.js +3 -0
  668. package/.next/server/chunks/ssr/_0pbcc~c._.js +3 -0
  669. package/.next/server/chunks/ssr/_0q6ga5s._.js +3 -0
  670. package/.next/server/chunks/ssr/_0rcvmzk._.js +3 -0
  671. package/.next/server/chunks/ssr/_0tl98en._.js +1 -1
  672. package/.next/server/chunks/ssr/_0vtof91._.js +3 -0
  673. package/.next/server/chunks/ssr/_0wj-xi-._.js +1 -1
  674. package/.next/server/chunks/ssr/_0y-w3is._.js +3 -0
  675. package/.next/server/chunks/ssr/_0ys19k1._.js +3 -0
  676. package/.next/server/chunks/ssr/_0zegd8c._.js +3 -0
  677. package/.next/server/chunks/ssr/_0zskdhg._.js +3 -0
  678. package/.next/server/chunks/ssr/_0~5jogr._.js +3 -0
  679. package/.next/server/chunks/ssr/_10t~mm1._.js +5 -0
  680. package/.next/server/chunks/ssr/_12yrbbd._.js +3 -0
  681. package/.next/server/chunks/ssr/_12~voz0._.js +3 -0
  682. package/.next/server/chunks/ssr/_13x8vt3._.js +3 -0
  683. package/.next/server/chunks/ssr/node_modules__pnpm_0hiwu9~._.js +3 -0
  684. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_browser_page_actions_09ozuw5.js +3 -0
  685. package/.next/server/chunks/ssr/packages_dashboard__next-internal_server_app_settings_hours_page_actions_090o.uf.js +3 -0
  686. package/.next/server/chunks/ssr/packages_dashboard_src_08ni3k2._.js +1 -1
  687. package/.next/server/chunks/ssr/packages_dashboard_src_0dzu4m3._.js +1 -1
  688. package/.next/server/chunks/ssr/packages_dashboard_src_0l-df62._.js +1 -1
  689. package/.next/server/chunks/ssr/packages_dashboard_src_0somi_b._.js +3 -0
  690. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  691. package/.next/server/chunks/ssr/packages_dashboard_src_0wg3sud._.js +1 -1
  692. package/.next/server/chunks/ssr/packages_dashboard_src_0yi7124._.js +3 -0
  693. package/.next/server/chunks/ssr/packages_dashboard_src_0zhdaa4._.js +1 -1
  694. package/.next/server/chunks/ssr/packages_dashboard_src_13g~g03._.js +1 -1
  695. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_loading_tsx_0rzsqef._.js +1 -1
  696. package/.next/server/chunks/ssr/packages_dashboard_src_app_activity_page_tsx_08yep46._.js +1 -1
  697. package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_[slug]_page_tsx_038yph.._.js +1 -1
  698. package/.next/server/chunks/ssr/packages_dashboard_src_app_agents_page_tsx_0simg3k._.js +2 -2
  699. package/.next/server/chunks/ssr/packages_dashboard_src_app_analytics_page_tsx_0tb_amd._.js +1 -1
  700. package/.next/server/chunks/ssr/packages_dashboard_src_app_browser-tasks_[id]_page_tsx_0.80q8e._.js +1 -1
  701. package/.next/server/chunks/ssr/packages_dashboard_src_app_chat_page_tsx_0i0_8pw._.js +1 -1
  702. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_mcp_page_tsx_0lc.low._.js +2 -2
  703. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_repositories_page_tsx_08y6paq._.js +1 -1
  704. package/.next/server/chunks/ssr/packages_dashboard_src_app_git_page_tsx_0ah19-6._.js +1 -1
  705. package/.next/server/chunks/ssr/packages_dashboard_src_app_knowledge_page_tsx_0uf4..4._.js +1 -1
  706. package/.next/server/chunks/ssr/packages_dashboard_src_app_page_tsx_0.p6n1a._.js +1 -1
  707. package/.next/server/chunks/ssr/packages_dashboard_src_app_schedule_page_tsx_0znc404._.js +1 -1
  708. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_commands_page_tsx_0nacqrh._.js +1 -1
  709. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_hours_page_tsx_0shgzxo._.js +3 -0
  710. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_infrastructure_page_tsx_0c9oi1c._.js +3 -0
  711. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_management_page_tsx_09mnin5._.js +1 -1
  712. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_models_page_tsx_0djsx88._.js +1 -1
  713. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_page_tsx_13_rdav._.js +1 -1
  714. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_self-learning_page_tsx_0noj6fo._.js +1 -1
  715. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_wiki_page_tsx_0..1tkb._.js +1 -1
  716. package/.next/server/chunks/ssr/packages_dashboard_src_app_setup_page_tsx_06k3via._.js +1 -1
  717. package/.next/server/chunks/ssr/packages_dashboard_src_components_0c08h~y._.js +3 -0
  718. package/.next/server/chunks/ssr/packages_dashboard_src_components_agents_AgentEditor_tsx_1379k-6._.js +2 -2
  719. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_integration-card_tsx_0yh1a-~._.js +2 -2
  720. package/.next/server/chunks/ssr/packages_dashboard_src_components_connections_slack-card_tsx_0mahejj._.js +1 -1
  721. package/.next/server/chunks/ssr/packages_dashboard_src_components_logs_event-row_tsx_0gwfgqo._.js +3 -0
  722. package/.next/server/chunks/ssr/packages_dashboard_src_components_mail_gmail-card_tsx_0kpway8._.js +1 -1
  723. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
  724. package/.next/server/edge/chunks/[root-of-the-server]__0iap10r._.js +1 -1
  725. package/.next/server/middleware/middleware-manifest.json +29 -5
  726. package/.next/server/middleware-build-manifest.js +3 -3
  727. package/.next/server/middleware-manifest.json +29 -5
  728. package/.next/server/next-font-manifest.js +1 -1
  729. package/.next/server/next-font-manifest.json +51 -2
  730. package/.next/server/pages/404.html +1 -1
  731. package/.next/server/pages/500.html +1 -1
  732. package/.next/server/server-reference-manifest.js +1 -1
  733. package/.next/server/server-reference-manifest.json +1 -1
  734. package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → 4Wu33OvzutxPxXUu1PWPC}/_clientMiddlewareManifest.js +24 -0
  735. package/.next/static/chunks/0-sq9td.e1huw.js +1 -0
  736. package/.next/static/chunks/0-~s5n1hsw0xz.css +1 -0
  737. package/.next/static/chunks/0.1mo3ft90qg_.js +1 -0
  738. package/.next/static/chunks/0.eu.rxoo07x6.js +1 -0
  739. package/.next/static/chunks/0147tjztlthxv.js +1 -0
  740. package/.next/static/chunks/01~5c-.ttg~hv.js +1 -0
  741. package/.next/static/chunks/02jrxwgg0c4jp.js +1 -0
  742. package/.next/static/chunks/02tb-nh0a2y6t.js +1 -0
  743. package/.next/static/chunks/03ndokpk6o0.5.js +1 -0
  744. package/.next/static/chunks/03qz~hx5zgr~d.js +1 -0
  745. package/.next/static/chunks/042u~0qpgty0o.js +10 -0
  746. package/.next/static/chunks/050-z9-4lo_4l.js +1 -0
  747. package/.next/static/chunks/051m0t~qz1jvu.js +1 -0
  748. package/.next/static/chunks/0755mii5h~0jr.js +1 -0
  749. package/.next/static/chunks/07_-k85izz7.j.js +1 -0
  750. package/.next/static/chunks/07qdiaq4h1bev.js +1 -0
  751. package/.next/static/chunks/07w_f8nwejvtm.js +1 -0
  752. package/.next/static/chunks/087m534nojkn2.js +1 -0
  753. package/.next/static/chunks/08tuvmjn9p090.js +1 -0
  754. package/.next/static/chunks/09k746-3cizz1.js +19 -0
  755. package/.next/static/chunks/09sekcnc01we8.js +1 -0
  756. package/.next/static/chunks/0_-a6t77lnxg4.js +1 -0
  757. package/.next/static/chunks/0_b4esx30vjxq.js +1 -0
  758. package/.next/static/chunks/0_r~att41ue.r.js +1 -0
  759. package/.next/static/chunks/0cj6iorqj7he_.js +1 -0
  760. package/.next/static/chunks/0c~_onh_gv7zj.js +1 -0
  761. package/.next/static/chunks/0d13hqow~d37h.js +1 -0
  762. package/.next/static/chunks/0drk956_8nbwg.js +1 -0
  763. package/.next/static/chunks/0e-txs97b3.x9.js +1 -0
  764. package/.next/static/chunks/0ezl44_wv~csn.js +1 -0
  765. package/.next/static/chunks/0g-eqp3qwkojl.js +1 -0
  766. package/.next/static/chunks/0h5rf~pu59~hu.js +1 -0
  767. package/.next/static/chunks/0i8.oj~1w~u~..js +1 -0
  768. package/.next/static/chunks/0iichp621kqto.js +1 -0
  769. package/.next/static/chunks/{0afrwc5vvwfx4.js → 0iscxmienbk2m.js} +1 -1
  770. package/.next/static/chunks/0iv9k-z7~xtww.js +1 -0
  771. package/.next/static/chunks/0k6jf41ge3u~8.js +1 -0
  772. package/.next/static/chunks/0k9-e5pear~t4.js +3 -0
  773. package/.next/static/chunks/0kib-9vm23r0j.js +1 -0
  774. package/.next/static/chunks/0kj.5xdofdrz7.js +1 -0
  775. package/.next/static/chunks/0lbnukk03a8nv.js +1 -0
  776. package/.next/static/chunks/0m8e4hy-r8y-4.js +1 -0
  777. package/.next/static/chunks/{0ndazhatbfzo7.js → 0mkryl3ctt_xh.js} +1 -1
  778. package/.next/static/chunks/0mxp..4l7j1dn.js +1 -0
  779. package/.next/static/chunks/0o61x2xdye~o2.js +1 -0
  780. package/.next/static/chunks/0os-c6-aqwq4d.js +1 -0
  781. package/.next/static/chunks/0pxjn_pm269cw.js +1 -0
  782. package/.next/static/chunks/0qyxjj5z_is.d.js +1 -0
  783. package/.next/static/chunks/0s.cyrhyscm8x.js +1 -0
  784. package/.next/static/chunks/0wvyy~m_e1q5c.js +3 -0
  785. package/.next/static/chunks/0x96~upcinv2_.js +1 -0
  786. package/.next/static/chunks/0zo_ws6shrfnh.js +1 -0
  787. package/.next/static/chunks/0~kj3qxs7kx58.js +1 -0
  788. package/.next/static/chunks/10rtk-h9y-705.js +2 -0
  789. package/.next/static/chunks/115_4xjsk0jzh.js +1 -0
  790. package/.next/static/chunks/12zmqqk8p-b.~.js +1 -0
  791. package/.next/static/chunks/135nkfxk7so9p.js +1 -0
  792. package/.next/static/chunks/153z3m3.a2ubk.js +5 -0
  793. package/.next/static/chunks/15fpord4hyosp.js +1 -0
  794. package/.next/static/chunks/15~h2wegwdbf4.js +1 -0
  795. package/.next/static/chunks/16-i4p1ipmpts.js +1 -0
  796. package/.next/static/chunks/171j55n_9gyxb.js +1 -0
  797. package/.next/static/chunks/17c6~kld51ls5.js +11 -0
  798. package/.next/static/chunks/17tv5jbg2hiup.js +1 -0
  799. package/.next/static/chunks/187a-majiuj8r.js +1 -0
  800. package/.next/static/media/fraunces-latin-ext-wght-normal.08-a-oz-atsnn.woff2 +0 -0
  801. package/.next/static/media/fraunces-latin-wght-normal.0l9v6sgnyeoq8.woff2 +0 -0
  802. package/.next/static/media/fraunces-vietnamese-wght-normal.05ntv1..6v~z7.woff2 +0 -0
  803. package/.next/static/media/instrument-sans-latin-ext-wght-normal.0td0--1m0lec9.woff2 +0 -0
  804. package/.next/static/media/instrument-sans-latin-wght-normal.10bj0-z630vnn.woff2 +0 -0
  805. package/.next/types/routes.d.ts +8 -10
  806. package/.next/types/validator.ts +36 -54
  807. package/package.json +4 -2
  808. package/.next/server/app/connections/knowledge/page/app-paths-manifest.json +0 -3
  809. package/.next/server/app/connections/knowledge/page/next-font-manifest.json +0 -6
  810. package/.next/server/app/connections/knowledge/page.js.nft.json +0 -1
  811. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +0 -3
  812. package/.next/server/app/connections/knowledge.html +0 -1
  813. package/.next/server/app/connections/knowledge.rsc +0 -27
  814. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +0 -27
  815. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +0 -6
  816. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +0 -11
  817. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +0 -2
  818. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +0 -9
  819. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +0 -5
  820. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +0 -5
  821. package/.next/server/app/settings/advanced/page/app-paths-manifest.json +0 -3
  822. package/.next/server/app/settings/advanced/page/next-font-manifest.json +0 -6
  823. package/.next/server/app/settings/advanced/page.js.nft.json +0 -1
  824. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +0 -3
  825. package/.next/server/app/settings/advanced.html +0 -1
  826. package/.next/server/app/settings/advanced.rsc +0 -27
  827. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +0 -27
  828. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +0 -6
  829. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +0 -11
  830. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +0 -2
  831. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +0 -9
  832. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +0 -5
  833. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +0 -5
  834. package/.next/server/app/settings/backends/page/app-paths-manifest.json +0 -3
  835. package/.next/server/app/settings/backends/page/next-font-manifest.json +0 -6
  836. package/.next/server/app/settings/backends/page.js +0 -17
  837. package/.next/server/app/settings/backends/page_client-reference-manifest.js +0 -3
  838. package/.next/server/app/settings/backends.html +0 -1
  839. package/.next/server/app/settings/backends.rsc +0 -24
  840. package/.next/server/app/settings/backends.segments/_full.segment.rsc +0 -24
  841. package/.next/server/app/settings/backends.segments/_head.segment.rsc +0 -6
  842. package/.next/server/app/settings/backends.segments/_index.segment.rsc +0 -11
  843. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +0 -2
  844. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +0 -6
  845. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +0 -5
  846. package/.next/server/app/settings/backends.segments/settings.segment.rsc +0 -5
  847. package/.next/server/app/settings/connections/page/app-paths-manifest.json +0 -3
  848. package/.next/server/app/settings/connections/page/next-font-manifest.json +0 -6
  849. package/.next/server/app/settings/connections/page.js +0 -17
  850. package/.next/server/app/settings/connections/page_client-reference-manifest.js +0 -3
  851. package/.next/server/app/settings/connections.html +0 -1
  852. package/.next/server/app/settings/connections.rsc +0 -24
  853. package/.next/server/app/settings/connections.segments/_full.segment.rsc +0 -24
  854. package/.next/server/app/settings/connections.segments/_head.segment.rsc +0 -6
  855. package/.next/server/app/settings/connections.segments/_index.segment.rsc +0 -11
  856. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +0 -2
  857. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +0 -6
  858. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +0 -5
  859. package/.next/server/app/settings/connections.segments/settings.segment.rsc +0 -5
  860. package/.next/server/app/settings/journal/page/app-paths-manifest.json +0 -3
  861. package/.next/server/app/settings/journal/page/next-font-manifest.json +0 -6
  862. package/.next/server/app/settings/journal/page/react-loadable-manifest.json +0 -8
  863. package/.next/server/app/settings/journal/page_client-reference-manifest.js +0 -3
  864. package/.next/server/app/settings/journal.html +0 -1
  865. package/.next/server/app/settings/journal.rsc +0 -27
  866. package/.next/server/app/settings/journal.segments/_full.segment.rsc +0 -27
  867. package/.next/server/app/settings/journal.segments/_head.segment.rsc +0 -6
  868. package/.next/server/app/settings/journal.segments/_index.segment.rsc +0 -11
  869. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +0 -2
  870. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +0 -9
  871. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +0 -5
  872. package/.next/server/app/settings/journal.segments/settings.segment.rsc +0 -5
  873. package/.next/server/app/settings/messaging/page/app-paths-manifest.json +0 -3
  874. package/.next/server/app/settings/messaging/page/next-font-manifest.json +0 -6
  875. package/.next/server/app/settings/messaging/page/react-loadable-manifest.json +0 -8
  876. package/.next/server/app/settings/messaging/page.js +0 -17
  877. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +0 -3
  878. package/.next/server/app/settings/messaging.html +0 -1
  879. package/.next/server/app/settings/messaging.meta +0 -16
  880. package/.next/server/app/settings/messaging.rsc +0 -24
  881. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +0 -24
  882. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +0 -6
  883. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +0 -11
  884. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +0 -2
  885. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +0 -6
  886. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +0 -5
  887. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +0 -5
  888. package/.next/server/app/settings/processes/page/app-paths-manifest.json +0 -3
  889. package/.next/server/app/settings/processes/page/next-font-manifest.json +0 -6
  890. package/.next/server/app/settings/processes/page/react-loadable-manifest.json +0 -8
  891. package/.next/server/app/settings/processes/page.js +0 -17
  892. package/.next/server/app/settings/processes/page_client-reference-manifest.js +0 -3
  893. package/.next/server/app/settings/processes.html +0 -1
  894. package/.next/server/app/settings/processes.meta +0 -16
  895. package/.next/server/app/settings/processes.rsc +0 -24
  896. package/.next/server/app/settings/processes.segments/_full.segment.rsc +0 -24
  897. package/.next/server/app/settings/processes.segments/_head.segment.rsc +0 -6
  898. package/.next/server/app/settings/processes.segments/_index.segment.rsc +0 -11
  899. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +0 -2
  900. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +0 -6
  901. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +0 -5
  902. package/.next/server/app/settings/processes.segments/settings.segment.rsc +0 -5
  903. package/.next/server/app/settings/routines/page/app-paths-manifest.json +0 -3
  904. package/.next/server/app/settings/routines/page/build-manifest.json +0 -18
  905. package/.next/server/app/settings/routines/page/next-font-manifest.json +0 -6
  906. package/.next/server/app/settings/routines/page/react-loadable-manifest.json +0 -8
  907. package/.next/server/app/settings/routines/page/server-reference-manifest.json +0 -4
  908. package/.next/server/app/settings/routines/page.js.nft.json +0 -1
  909. package/.next/server/app/settings/routines/page_client-reference-manifest.js +0 -3
  910. package/.next/server/app/settings/routines.html +0 -1
  911. package/.next/server/app/settings/routines.meta +0 -16
  912. package/.next/server/app/settings/routines.rsc +0 -27
  913. package/.next/server/app/settings/routines.segments/_full.segment.rsc +0 -27
  914. package/.next/server/app/settings/routines.segments/_head.segment.rsc +0 -6
  915. package/.next/server/app/settings/routines.segments/_index.segment.rsc +0 -11
  916. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +0 -2
  917. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +0 -9
  918. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +0 -5
  919. package/.next/server/app/settings/routines.segments/settings.segment.rsc +0 -5
  920. package/.next/server/app/settings/schedule/page/app-paths-manifest.json +0 -3
  921. package/.next/server/app/settings/schedule/page/build-manifest.json +0 -18
  922. package/.next/server/app/settings/schedule/page/next-font-manifest.json +0 -6
  923. package/.next/server/app/settings/schedule/page/react-loadable-manifest.json +0 -8
  924. package/.next/server/app/settings/schedule/page/server-reference-manifest.json +0 -4
  925. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +0 -3
  926. package/.next/server/app/settings/schedule.html +0 -1
  927. package/.next/server/app/settings/schedule.meta +0 -16
  928. package/.next/server/app/settings/schedule.rsc +0 -27
  929. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +0 -27
  930. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +0 -6
  931. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +0 -11
  932. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +0 -2
  933. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +0 -9
  934. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +0 -5
  935. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +0 -5
  936. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_connections_knowledge_page_actions_06w7ski.js +0 -3
  937. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_advanced_page_actions_0x06bjx.js +0 -3
  938. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_backends_page_actions_0z3vipu.js +0 -3
  939. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_connections_page_actions_0n0b1rb.js +0 -3
  940. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_journal_page_actions_0_.h.-y.js +0 -3
  941. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_messaging_page_actions_0czehcp.js +0 -3
  942. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_processes_page_actions_0zbumx3.js +0 -3
  943. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_routines_page_actions_0-37ia4.js +0 -3
  944. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_schedule_page_actions_045j4zv.js +0 -3
  945. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0s6jb_7.js +0 -4
  946. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0wu80v6.js +0 -4
  947. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_113c8xj.js +0 -4
  948. package/.next/server/chunks/ssr/[root-of-the-server]__0.tf.7i._.js +0 -7
  949. package/.next/server/chunks/ssr/[root-of-the-server]__00ch_ms._.js +0 -3
  950. package/.next/server/chunks/ssr/[root-of-the-server]__00s5z4o._.js +0 -3
  951. package/.next/server/chunks/ssr/[root-of-the-server]__0j8z8rh._.js +0 -3
  952. package/.next/server/chunks/ssr/[root-of-the-server]__0kcivrd._.js +0 -3
  953. package/.next/server/chunks/ssr/[root-of-the-server]__0t-9jvt._.js +0 -3
  954. package/.next/server/chunks/ssr/_0-3uzu1._.js +0 -3
  955. package/.next/server/chunks/ssr/_0.yhrky._.js +0 -3
  956. package/.next/server/chunks/ssr/_0.zct4p._.js +0 -3
  957. package/.next/server/chunks/ssr/_03bq.de._.js +0 -3
  958. package/.next/server/chunks/ssr/_03qiunv._.js +0 -3
  959. package/.next/server/chunks/ssr/_03~tfh5._.js +0 -3
  960. package/.next/server/chunks/ssr/_04kt9.8._.js +0 -3
  961. package/.next/server/chunks/ssr/_05jfize._.js +0 -3
  962. package/.next/server/chunks/ssr/_06_m-vp._.js +0 -3
  963. package/.next/server/chunks/ssr/_06pec-y._.js +0 -9
  964. package/.next/server/chunks/ssr/_07fm8yg._.js +0 -3
  965. package/.next/server/chunks/ssr/_095u19_._.js +0 -3
  966. package/.next/server/chunks/ssr/_0_qwmiz._.js +0 -3
  967. package/.next/server/chunks/ssr/_0b--0p5._.js +0 -3
  968. package/.next/server/chunks/ssr/_0bz7.8y._.js +0 -3
  969. package/.next/server/chunks/ssr/_0bzj8lx._.js +0 -3
  970. package/.next/server/chunks/ssr/_0cvy_5o._.js +0 -3
  971. package/.next/server/chunks/ssr/_0da0k2u._.js +0 -3
  972. package/.next/server/chunks/ssr/_0erbggi._.js +0 -3
  973. package/.next/server/chunks/ssr/_0e~4oah._.js +0 -3
  974. package/.next/server/chunks/ssr/_0gp2p2l._.js +0 -3
  975. package/.next/server/chunks/ssr/_0ibeuw6._.js +0 -3
  976. package/.next/server/chunks/ssr/_0ixicrb._.js +0 -3
  977. package/.next/server/chunks/ssr/_0jbimd_._.js +0 -3
  978. package/.next/server/chunks/ssr/_0jg6hy0._.js +0 -3
  979. package/.next/server/chunks/ssr/_0klzava._.js +0 -3
  980. package/.next/server/chunks/ssr/_0mbbas-._.js +0 -3
  981. package/.next/server/chunks/ssr/_0n.cr_p._.js +0 -3
  982. package/.next/server/chunks/ssr/_0n5nlcq._.js +0 -3
  983. package/.next/server/chunks/ssr/_0nnu1fp._.js +0 -3
  984. package/.next/server/chunks/ssr/_0pg6_56._.js +0 -3
  985. package/.next/server/chunks/ssr/_0pigg8p._.js +0 -3
  986. package/.next/server/chunks/ssr/_0q8o~q1._.js +0 -3
  987. package/.next/server/chunks/ssr/_0qu5la9._.js +0 -3
  988. package/.next/server/chunks/ssr/_0r1lb0f._.js +0 -3
  989. package/.next/server/chunks/ssr/_0r9.4nv._.js +0 -3
  990. package/.next/server/chunks/ssr/_0s4udmt._.js +0 -3
  991. package/.next/server/chunks/ssr/_0vn~fot._.js +0 -3
  992. package/.next/server/chunks/ssr/_0x._qd7._.js +0 -3
  993. package/.next/server/chunks/ssr/_0yh7rb_._.js +0 -3
  994. package/.next/server/chunks/ssr/_0zz58.-._.js +0 -5
  995. package/.next/server/chunks/ssr/_0~62r4-._.js +0 -3
  996. package/.next/server/chunks/ssr/_12u1eq4._.js +0 -3
  997. package/.next/server/chunks/ssr/_12~0n.1._.js +0 -3
  998. package/.next/server/chunks/ssr/_139rl~~._.js +0 -3
  999. package/.next/server/chunks/ssr/node_modules__pnpm_0ehnn5t._.js +0 -3
  1000. package/.next/server/chunks/ssr/packages_dashboard_src_0ylj~og._.js +0 -3
  1001. package/.next/server/chunks/ssr/packages_dashboard_src_app_connections_knowledge_page_tsx_027jwd3._.js +0 -3
  1002. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_advanced_page_tsx_0o~_885._.js +0 -3
  1003. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_routines_page_tsx_0wcgtqz._.js +0 -27
  1004. package/.next/server/chunks/ssr/packages_dashboard_src_app_settings_schedule_page_tsx_0b8zr2l._.js +0 -3
  1005. package/.next/static/chunks/0-7buty0ytvtv.js +0 -1
  1006. package/.next/static/chunks/0.42rv-zt_0x9.js +0 -1
  1007. package/.next/static/chunks/00bnu7r6428v0.js +0 -5
  1008. package/.next/static/chunks/00w3emoohg-8r.js +0 -1
  1009. package/.next/static/chunks/0105cq0xp5_hx.js +0 -1
  1010. package/.next/static/chunks/01eo9jrlkjy03.js +0 -3
  1011. package/.next/static/chunks/01v7jn283j2tm.js +0 -1
  1012. package/.next/static/chunks/04l41qp5lpt_e.js +0 -1
  1013. package/.next/static/chunks/04ufv2_7i_b6..js +0 -1
  1014. package/.next/static/chunks/053f~_moi~csx.js +0 -2
  1015. package/.next/static/chunks/05z4egti~pj9t.js +0 -1
  1016. package/.next/static/chunks/08ql4siwtlgpn.js +0 -1
  1017. package/.next/static/chunks/08wmxlql_xq.d.js +0 -1
  1018. package/.next/static/chunks/0_31fedlksujg.js +0 -1
  1019. package/.next/static/chunks/0eaf903zc7v~5.js +0 -1
  1020. package/.next/static/chunks/0flms4gevti3_.js +0 -1
  1021. package/.next/static/chunks/0gj-lf~wlbr8e.js +0 -1
  1022. package/.next/static/chunks/0gurc-kqffso6.js +0 -1
  1023. package/.next/static/chunks/0gyst06ap~-n~.js +0 -19
  1024. package/.next/static/chunks/0g~py-0sje~1m.js +0 -1
  1025. package/.next/static/chunks/0hk8v-849puw8.js +0 -1
  1026. package/.next/static/chunks/0hlvfkk1o66wf.js +0 -1
  1027. package/.next/static/chunks/0hog4tqr3.skm.js +0 -10
  1028. package/.next/static/chunks/0igwe6jdxslbt.js +0 -1
  1029. package/.next/static/chunks/0ikm~jl5uiw6-.js +0 -1
  1030. package/.next/static/chunks/0jffu_yb.90.i.js +0 -1
  1031. package/.next/static/chunks/0m04i2v9cb~qe.js +0 -1
  1032. package/.next/static/chunks/0mjh8s01-3c7z.css +0 -1
  1033. package/.next/static/chunks/0n3b0fpsgml2x.js +0 -1
  1034. package/.next/static/chunks/0n6_wx41s~.c6.js +0 -1
  1035. package/.next/static/chunks/0obgpq3wenu4s.js +0 -11
  1036. package/.next/static/chunks/0p.w04inifyq..js +0 -1
  1037. package/.next/static/chunks/0qqty6t-yyty4.js +0 -3
  1038. package/.next/static/chunks/0q~dvm61tpf3~.js +0 -1
  1039. package/.next/static/chunks/0rt76ki54i~hm.js +0 -1
  1040. package/.next/static/chunks/0scggusqhhid7.js +0 -1
  1041. package/.next/static/chunks/0t9rda60_m-vk.js +0 -1
  1042. package/.next/static/chunks/0u9qsqnsm-skj.js +0 -1
  1043. package/.next/static/chunks/0urw8_v9f97en.js +0 -1
  1044. package/.next/static/chunks/0vcwfsuf878wc.js +0 -1
  1045. package/.next/static/chunks/0vktbjh2e4xpg.js +0 -1
  1046. package/.next/static/chunks/0ws8mq3rp~572.js +0 -1
  1047. package/.next/static/chunks/0x..-zi0av524.js +0 -1
  1048. package/.next/static/chunks/0xsb_r_t_1r-u.js +0 -1
  1049. package/.next/static/chunks/0yh77irip2zjn.js +0 -1
  1050. package/.next/static/chunks/0ym9.va55pvtp.js +0 -1
  1051. package/.next/static/chunks/0ytubabo8p3y0.js +0 -1
  1052. package/.next/static/chunks/0z8eq-9fm5tni.js +0 -1
  1053. package/.next/static/chunks/0zaa6zhrjsaik.js +0 -1
  1054. package/.next/static/chunks/0zimhqr6r4xlz.js +0 -1
  1055. package/.next/static/chunks/1121be2-kv8g~.js +0 -1
  1056. package/.next/static/chunks/1257_06cutyq_.js +0 -1
  1057. package/.next/static/chunks/12ee4r9-orwi8.js +0 -1
  1058. package/.next/static/chunks/13kdqs0pmjqy5.js +0 -1
  1059. package/.next/static/chunks/13tf0oa.w743m.js +0 -1
  1060. package/.next/static/chunks/159r5abwjgz~a.js +0 -25
  1061. package/.next/static/chunks/15pljj6~je.kw.js +0 -1
  1062. package/.next/static/chunks/16s5r16k361sd.js +0 -1
  1063. package/.next/static/chunks/16tqshshex~qk.js +0 -1
  1064. package/.next/static/chunks/1763zl5q3pn~0.js +0 -1
  1065. package/.next/static/chunks/17846-azlpszq.js +0 -1
  1066. package/.next/static/chunks/17ncd9sikwfzz.js +0 -1
  1067. /package/.next/server/app/{connections/knowledge → browser}/page/build-manifest.json +0 -0
  1068. /package/.next/server/app/{connections/knowledge → browser}/page/server-reference-manifest.json +0 -0
  1069. /package/.next/server/app/{settings/advanced → connections/notes}/page/build-manifest.json +0 -0
  1070. /package/.next/server/app/{settings/advanced → connections/notes}/page/server-reference-manifest.json +0 -0
  1071. /package/.next/server/app/settings/{backends → danger-zone}/page/build-manifest.json +0 -0
  1072. /package/.next/server/app/settings/{backends → danger-zone}/page/server-reference-manifest.json +0 -0
  1073. /package/.next/server/app/settings/{connections → hours}/page/build-manifest.json +0 -0
  1074. /package/.next/server/app/settings/{connections → hours}/page/server-reference-manifest.json +0 -0
  1075. /package/.next/server/app/settings/{journal → infrastructure}/page/build-manifest.json +0 -0
  1076. /package/.next/server/app/settings/{journal → infrastructure}/page/server-reference-manifest.json +0 -0
  1077. /package/.next/server/app/settings/{messaging → lessons}/page/build-manifest.json +0 -0
  1078. /package/.next/server/app/settings/{messaging → lessons}/page/server-reference-manifest.json +0 -0
  1079. /package/.next/server/app/settings/{processes → safety}/page/build-manifest.json +0 -0
  1080. /package/.next/server/app/settings/{processes → safety}/page/server-reference-manifest.json +0 -0
  1081. /package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → 4Wu33OvzutxPxXUu1PWPC}/_buildManifest.js +0 -0
  1082. /package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → 4Wu33OvzutxPxXUu1PWPC}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},67910,e=>{"use strict";var t=e.i(74533);e.s(["execWithStdin",0,function(e,r,i,s){return new Promise((n,o)=>{let a=(0,t.spawn)(e,r,{stdio:["pipe","pipe","pipe"],timeout:s?.timeout}),c="",l="";a.stdout.on("data",e=>{c+=e}),a.stderr.on("data",e=>{l+=e}),a.on("error",o),a.stdin.on("error",o),a.on("close",e=>{0===e?n({stdout:c,stderr:l}):o(Error(`Exit ${e}: ${l}`))}),a.stdin.write(i),a.stdin.end()})}])},22742,e=>{"use strict";var t=e.i(2157),r=e.i(50227),i=e.i(60526),s=e.i(67910);e.s(["WindowsDpapiSecretClient",0,class{secretsDir;psBinary;constructor(e,s){this.secretsDir=e??(0,r.join)((0,i.homedir)(),".personal-agent","secrets"),this.psBinary=s??"powershell.exe",(0,t.mkdirSync)(this.secretsDir,{recursive:!0})}filePath(e){if(/[/\\]/.test(e))throw Error(`Invalid secret name: ${e}`);return(0,r.join)(this.secretsDir,`${e}.dpapi`)}async has(e){return(0,t.existsSync)(this.filePath(e))}async get(e){let r=this.filePath(e);if(!(0,t.existsSync)(r))return null;let i=(0,t.readFileSync)(r,"utf-8").trim(),{stdout:n}=await (0,s.execWithStdin)(this.psBinary,["-NoProfile","-NonInteractive","-Command","$enc = [System.Console]::In.ReadToEnd().Trim(); $ss = ConvertTo-SecureString $enc; $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($ss); try { [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr) }; finally { [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) }"],i,{timeout:1e4});return n.trimEnd()}async set(e,r){let i=this.filePath(e),{stdout:n}=await (0,s.execWithStdin)(this.psBinary,["-NoProfile","-NonInteractive","-Command","$plain = [System.Console]::In.ReadToEnd(); $ss = ConvertTo-SecureString $plain -AsPlainText -Force; ConvertFrom-SecureString $ss"],r,{timeout:1e4});(0,t.writeFileSync)(i,n.trim(),"utf-8")}async delete(e){let r=this.filePath(e);(0,t.existsSync)(r)&&(0,t.unlinkSync)(r)}}])}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},74533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},67910,e=>{"use strict";var t=e.i(74533);e.s(["execWithStdin",0,function(e,r,i,s){return new Promise((n,o)=>{let a=(0,t.spawn)(e,r,{stdio:["pipe","pipe","pipe"],timeout:s?.timeout}),c="",d="";a.stdout.on("data",e=>{c+=e}),a.stderr.on("data",e=>{d+=e}),a.on("error",o),a.stdin.on("error",o),a.on("close",e=>{0===e?n({stdout:c,stderr:d}):o(Error(`Exit ${e}: ${d}`))}),a.stdin.write(i),a.stdin.end()})}])},22742,e=>{"use strict";var t=e.i(2157),r=e.i(50227),i=e.i(60526),s=e.i(67910);e.s(["WindowsDpapiSecretClient",0,class{secretsDir;psBinary;constructor(e,s){this.secretsDir=e??(0,r.join)((0,i.homedir)(),".personal-agent","secrets"),this.psBinary=s??"powershell.exe",(0,t.mkdirSync)(this.secretsDir,{recursive:!0,mode:448})}filePath(e){if(/[/\\]/.test(e))throw Error(`Invalid secret name: ${e}`);return(0,r.join)(this.secretsDir,`${e}.dpapi`)}async has(e){return(0,t.existsSync)(this.filePath(e))}async get(e){let r=this.filePath(e);if(!(0,t.existsSync)(r))return null;let i=(0,t.readFileSync)(r,"utf-8").trim(),{stdout:n}=await (0,s.execWithStdin)(this.psBinary,["-NoProfile","-NonInteractive","-Command","$enc = [System.Console]::In.ReadToEnd().Trim(); $ss = ConvertTo-SecureString $enc; $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($ss); try { [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr) }; finally { [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) }"],i,{timeout:1e4});return n.trimEnd()}async set(e,r){let i=this.filePath(e),{stdout:n}=await (0,s.execWithStdin)(this.psBinary,["-NoProfile","-NonInteractive","-Command","$plain = [System.Console]::In.ReadToEnd(); $ss = ConvertTo-SecureString $plain -AsPlainText -Force; ConvertFrom-SecureString $ss"],r,{timeout:1e4});(0,t.writeFileSync)(i,n.trim(),"utf-8")}async delete(e){let r=this.filePath(e);(0,t.existsSync)(r)&&(0,t.unlinkSync)(r)}}])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__02gp4s0._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},20217,e=>{"use strict";var t=e.i(66680),r=e.i(12057),s=e.i(2157),i=e.i(50227),a=e.i(60526);let n=(0,r.promisify)(t.scrypt),o="aes-256-gcm";class h{secretsDir;masterPassword;static async create(e,t){let r=new h(e,t);return await r.ensureMasterHash(),r}constructor(e,t){this.masterPassword=e,this.secretsDir=t??(0,i.join)((0,a.homedir)(),".personal-agent","secrets"),(0,s.mkdirSync)(this.secretsDir,{recursive:!0})}filePath(e){if(/[/\\]/.test(e))throw Error(`Invalid secret name: ${e}`);return(0,i.join)(this.secretsDir,`${e}.enc`)}masterHashPath(){return(0,i.join)(this.secretsDir,".master-hash")}async deriveKey(e){return await n(this.masterPassword,e,32,{N:16384,r:8,p:1})}async ensureMasterHash(){let e=this.masterHashPath();if((0,s.existsSync)(e)){let r=JSON.parse((0,s.readFileSync)(e,"utf-8")),i=Buffer.from(r.salt,"hex"),a=await this.deriveKey(i),n=Buffer.from(r.hash,"hex");if(!(0,t.timingSafeEqual)(a,n))throw Error("Master password mismatch. The password does not match the one used to create the secret store.")}else{let r=(0,t.randomBytes)(32),i=await this.deriveKey(r),a={salt:r.toString("hex"),hash:i.toString("hex")};(0,s.writeFileSync)(e,JSON.stringify(a),{encoding:"utf-8",mode:384})}}async has(e){return(0,s.existsSync)(this.filePath(e))}async get(e){let r=this.filePath(e);if(!(0,s.existsSync)(r))return null;let i=JSON.parse((0,s.readFileSync)(r,"utf-8")),a=Buffer.from(i.salt,"hex"),n=Buffer.from(i.iv,"hex"),h=Buffer.from(i.authTag,"hex"),c=Buffer.from(i.ciphertext,"hex"),f=await this.deriveKey(a),u=(0,t.createDecipheriv)(o,f,n);return u.setAuthTag(h),Buffer.concat([u.update(c),u.final()]).toString("utf-8")}async set(e,r){let i=(0,t.randomBytes)(32),a=(0,t.randomBytes)(12),n=await this.deriveKey(i),h=(0,t.createCipheriv)(o,n,a),c=Buffer.concat([h.update(r,"utf-8"),h.final()]),f=h.getAuthTag(),u={salt:i.toString("hex"),iv:a.toString("hex"),authTag:f.toString("hex"),ciphertext:c.toString("hex")};(0,s.writeFileSync)(this.filePath(e),JSON.stringify(u),{encoding:"utf-8",mode:384})}async delete(e){let t=this.filePath(e);(0,s.existsSync)(t)&&(0,s.unlinkSync)(t)}}e.s(["FileSecretClient",0,h,"resolveMasterPassword",0,function(e){if(process.env.PA_MASTER_PASSWORD)return process.env.PA_MASTER_PASSWORD;let t=e??(0,i.join)((0,a.homedir)(),".personal-agent","secrets"),r=(0,i.join)(t,".master-key");if((0,s.existsSync)(r)){let e=511&(0,s.statSync)(r).mode;if(384!==e&&256!==e)throw Error(`.master-key has permissions 0${e.toString(8)}, expected 0600 or 0400. Fix with: chmod 600 ${r}`);return(0,s.readFileSync)(r,"utf-8").trim()}return null}])}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},20217,e=>{"use strict";var t=e.i(66680),r=e.i(12057),s=e.i(2157),i=e.i(50227),a=e.i(60526);let n=(0,r.promisify)(t.scrypt),o="aes-256-gcm";class h{secretsDir;masterPassword;static async create(e,t){let r=new h(e,t);return await r.ensureMasterHash(),r}constructor(e,t){this.masterPassword=e,this.secretsDir=t??(0,i.join)((0,a.homedir)(),".personal-agent","secrets"),(0,s.mkdirSync)(this.secretsDir,{recursive:!0,mode:448});try{(0,s.chmodSync)(this.secretsDir,448)}catch{}}filePath(e){if(/[/\\]/.test(e))throw Error(`Invalid secret name: ${e}`);return(0,i.join)(this.secretsDir,`${e}.enc`)}masterHashPath(){return(0,i.join)(this.secretsDir,".master-hash")}async deriveKey(e){return await n(this.masterPassword,e,32,{N:16384,r:8,p:1})}async ensureMasterHash(){let e=this.masterHashPath();if((0,s.existsSync)(e)){let r=JSON.parse((0,s.readFileSync)(e,"utf-8")),i=Buffer.from(r.salt,"hex"),a=await this.deriveKey(i),n=Buffer.from(r.hash,"hex");if(!(0,t.timingSafeEqual)(a,n))throw Error("Master password mismatch. The password does not match the one used to create the secret store.")}else{let r=(0,t.randomBytes)(32),i=await this.deriveKey(r),a={salt:r.toString("hex"),hash:i.toString("hex")};(0,s.writeFileSync)(e,JSON.stringify(a),{encoding:"utf-8",mode:384})}}async has(e){return(0,s.existsSync)(this.filePath(e))}async get(e){let r=this.filePath(e);if(!(0,s.existsSync)(r))return null;let i=JSON.parse((0,s.readFileSync)(r,"utf-8")),a=Buffer.from(i.salt,"hex"),n=Buffer.from(i.iv,"hex"),h=Buffer.from(i.authTag,"hex"),c=Buffer.from(i.ciphertext,"hex"),f=await this.deriveKey(a),u=(0,t.createDecipheriv)(o,f,n);return u.setAuthTag(h),Buffer.concat([u.update(c),u.final()]).toString("utf-8")}async set(e,r){let i=(0,t.randomBytes)(32),a=(0,t.randomBytes)(12),n=await this.deriveKey(i),h=(0,t.createCipheriv)(o,n,a),c=Buffer.concat([h.update(r,"utf-8"),h.final()]),f=h.getAuthTag(),u={salt:i.toString("hex"),iv:a.toString("hex"),authTag:f.toString("hex"),ciphertext:c.toString("hex")};(0,s.writeFileSync)(this.filePath(e),JSON.stringify(u),{encoding:"utf-8",mode:384})}async delete(e){let t=this.filePath(e);(0,s.existsSync)(t)&&(0,s.unlinkSync)(t)}}e.s(["FileSecretClient",0,h,"resolveMasterPassword",0,function(e){if(process.env.PA_MASTER_PASSWORD)return process.env.PA_MASTER_PASSWORD;let t=e??(0,i.join)((0,a.homedir)(),".personal-agent","secrets"),r=(0,i.join)(t,".master-key");if((0,s.existsSync)(r)){let e=511&(0,s.statSync)(r).mode;if(384!==e&&256!==e)throw Error(`.master-key has permissions 0${e.toString(8)}, expected 0600 or 0400. Fix with: chmod 600 ${r}`);return(0,s.readFileSync)(r,"utf-8").trim()}return null}])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0gckkni._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[65009,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=0juq_dashboard__next-internal_server_app_connections_notes_page_actions_04zn1-i.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[74273,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=0juq_dashboard__next-internal_server_app_settings_danger-zone_page_actions_0mp3gc-.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[85361,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=0juq_dashboard__next-internal_server_app_settings_lessons_page_actions_0_yqadq.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[24999,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=0juq_dashboard__next-internal_server_app_settings_safety_page_actions_05rsfax.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24742,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(8753),e=a.i(62588),f=a.i(81130),g=a.i(32307),h=a.i(82687),i=a.i(43681),j=a.i(40715),k=a.i(93637),l=a.i(60133),m=a.i(92241),n=a.i(39293),o=a.i(50891),p=a.i(83997),q=a.i(8937),r=a.i(96336),s=a.i(7385),t=a.i(29629),u=a.i(7384),v=a.i(21218),w=a.i(30400),x=a.i(8212),y=a.i(28627),z=a.i(87206),A=a.i(74345),B=a.i(59974),C=a.i(54150),D=a.i(47026),E=a.i(78933),F=a.i(48558);let G=[{key:"chrome",label:"Chrome"},{key:"chromium",label:"Chromium"},{key:"edge",label:"Edge"},{key:"brave",label:"Brave"},{key:"comet",label:"Comet"},{key:"atlas",label:"Atlas"}],H=[{key:"work",label:"Work"},{key:"research",label:"Research"},{key:"shopping",label:"Shopping"},{key:"news",label:"News"},{key:"dev",label:"Development"},{key:"cloud-console",label:"Cloud console"},{key:"localhost",label:"Localhost"},{key:"app-config",label:"App config"},{key:"other",label:"Other"}],I={available:{label:"Available",tone:"default"},available_no_sync:{label:"No sync",tone:"amber"},available_sync_broken:{label:"Sync stale",tone:"amber"},permission_denied:{label:"Permission denied",tone:"red"},not_installed:{label:"Not installed",tone:"gray"},error:{label:"Error",tone:"red"}},J={auto:"Auto","forced-on":"Force on","forced-off":"Force off"},K="browser_history";function L(a){return a?new Date(a).toLocaleString():"Never"}function M({status:a}){return"available"===a||"available_no_sync"===a?(0,b.jsx)(h.CheckCircle2,{className:"h-4 w-4 text-emerald-600"}):"permission_denied"===a||"available_sync_broken"===a?(0,b.jsx)(g.AlertTriangle,{className:"h-4 w-4 text-amber-600"}):"error"===a?(0,b.jsx)(s.XCircle,{className:"h-4 w-4 text-red-600"}):(0,b.jsx)(j.EyeOff,{className:"h-4 w-4 text-muted-foreground"})}function N({icon:a,title:c,description:d}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-0.5 rounded-md border bg-muted p-2",children:(0,b.jsx)(a,{className:"h-4 w-4 text-muted-foreground"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:d})]})]})}function O({integration:a}){let c="direct"===(a?.state.mode??"disabled");return(0,b.jsx)(u.Badge,{variant:c?"default":"gray",children:c?"Direct":"Disabled"})}function P({allowlist:a,denylist:d,onSaveAllowlist:e,onSaveDenylist:f}){let g=a.join("\n"),h=d.join("\n"),[i,j]=(0,c.useState)(g),[l,m]=(0,c.useState)(h),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(!1),r=i!==g,s=l!==h;return(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:k.Filter,title:"Research domain filter",description:"Optionally constrain which domains contribute to research-cluster qualification. Leave both lists empty (default) to use automatic detection across all your research domains."})}),(0,b.jsxs)("div",{className:"grid gap-6 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Allowlist (opt-in)"}),(0,b.jsx)("textarea",{value:i,onChange:a=>j(a.target.value),placeholder:"arxiv.org\nanthropic.com\nsimonwillison.net",className:"min-h-[140px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"When non-empty, only visits whose eTLD+1 is in this list are counted as meaningful research. One domain per line or comma-separated; subdomains and paths are normalised away."}),(0,b.jsx)(v.Button,{size:"sm",variant:"outline",disabled:!r||n,onClick:async()=>{o(!0);try{await e(i)}finally{o(!1)}},children:n?"Saving…":r?"Save allowlist":"Saved"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Denylist (always-on)"}),(0,b.jsx)("textarea",{value:l,onChange:a=>m(a.target.value),placeholder:"news.ycombinator.com\nreddit.com",className:"min-h-[140px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Domains here are still recorded in your browser history but never produce offers or wiki summaries. Denylist wins over the allowlist if both contain the same domain."}),(0,b.jsx)(v.Button,{size:"sm",variant:"outline",disabled:!s||p,onClick:async()=>{q(!0);try{await f(l)}finally{q(!1)}},children:p?"Saving…":s?"Save denylist":"Saved"})]})]}),(0,b.jsx)("p",{className:"mt-4 rounded-md border p-3 text-xs text-muted-foreground",children:"Changes apply to new browser visits only; previously-classified visits are not reclassified (they age out via the retention window above)."})]})}function Q({enabled:a,onToast:e}){let[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,o]=(0,c.useState)(null),q=(0,d.useMutation)({mutationFn:()=>B.api.post("/browser-history/refresh-interests-reflection"),onSuccess:a=>{k(a),a.skipped?e("success",`Reflection refresh skipped (${a.skipped.reason})`):e("success",`Refreshed — ${a.themesSelected.length} themes, ${a.targetsWritten.length} files`)},onError:a=>{e("error",`Failed to refresh: ${a instanceof Error?a.message:"Unknown error"}`)}}),s=(0,d.useMutation)({mutationFn:()=>B.api.post("/browser-history/cleanup-interests-reflection",{alsoDeleteResearchThemesFile:f}),onSuccess:a=>{o(a),i(!1),e("success",`Cleaned up — ${a.blocksRemoved} blocks removed across ${a.filesAffected.length} files`)},onError:a=>{e("error",`Failed to clean up: ${a instanceof Error?a.message:"Unknown error"}`),i(!1)}});return(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:p.Sparkles,title:"Research themes (auto-refreshed weekly)",description:"Each weekly review refreshes a short `## Current research themes (auto)` block on identity/profile.md, the per-cluster snapshot at identity/research-themes.md, and matching project files. The feature runs automatically while browser history is enabled; the buttons below are for testing and one-shot cleanup."})}),!a&&(0,b.jsx)(t.Alert,{variant:"info",className:"mb-4",children:"Browser history is currently disabled, so weekly reflection is paused. Re-enable browser history above to resume the next weekly_review run."}),(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(n.RefreshCw,{className:"mt-0.5 h-4 w-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Refresh now"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Re-run the deterministic refresh against the most recent ISO Monday window. Same code path the Friday scheduler tick uses; the helper writes the auto-block in place if three or more qualifying themes are found."})]})]}),(0,b.jsxs)(v.Button,{size:"sm",variant:"outline",disabled:!a||q.isPending,onClick:()=>q.mutate(),children:[q.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n.RefreshCw,{className:"h-4 w-4"}),"Refresh now"]}),j&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"font-medium text-foreground",children:["Last refresh — week of ",j.weekStart]}),j.skipped?(0,b.jsxs)("div",{className:"mt-1 text-muted-foreground",children:["Skipped: ",j.skipped.reason]}):(0,b.jsxs)("ul",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Themes selected: ",j.themesSelected.length]}),(0,b.jsxs)("li",{children:["Files written: ",j.targetsWritten.length]}),(0,b.jsxs)("li",{children:["Projects annotated: ",j.projectsAnnotated]}),(0,b.jsxs)("li",{children:["Dormant since last week:"," ",j.clustersDormantSinceLastWeek]})]})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(r.Trash2,{className:"mt-0.5 h-4 w-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Clean up auto-blocks"}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["Strips every ",(0,b.jsx)("code",{children:"aitne:browser-interests v1"})," block from ",(0,b.jsx)("code",{children:"identity/profile.md"}),", ",(0,b.jsx)("code",{children:"_index.md"}),", and each ",(0,b.jsx)("code",{children:"plans/projects/*.md"}),", and (by default) deletes the wholly daemon-owned"," ",(0,b.jsx)("code",{children:"identity/research-themes.md"}),". One-shot purge — the next weekly_review re-creates fresh content."]})]})]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:f,onChange:a=>g(a.target.checked)}),(0,b.jsxs)("span",{children:["Also delete ",(0,b.jsx)("code",{children:"identity/research-themes.md"})]})]}),h?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(v.Button,{size:"sm",variant:"destructive",disabled:s.isPending,onClick:()=>s.mutate(),children:[s.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(r.Trash2,{className:"h-4 w-4"}),"Confirm purge"]}),(0,b.jsx)(v.Button,{size:"sm",variant:"ghost",disabled:s.isPending,onClick:()=>i(!1),children:"Cancel"})]}):(0,b.jsxs)(v.Button,{size:"sm",variant:"outline",disabled:s.isPending,onClick:()=>i(!0),children:[(0,b.jsx)(r.Trash2,{className:"h-4 w-4"}),"Clean up auto-blocks"]}),l&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 text-xs",children:[(0,b.jsx)("div",{className:"font-medium text-foreground",children:"Last cleanup"}),(0,b.jsxs)("ul",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Blocks removed: ",l.blocksRemoved]}),(0,b.jsxs)("li",{children:["Files affected: ",l.filesAffected.length]}),(0,b.jsxs)("li",{children:["research-themes.md deleted:"," ",l.researchThemesDeleted?"yes":"no"]})]})]})]})]})]})}a.s(["default",0,function(){let a=(0,f.useQueryClient)(),{data:g}=(0,C.useConfig)(),h=(0,e.useQuery)({queryKey:["browser-history-status"],queryFn:()=>B.api.get("/browser-history/status"),staleTime:15e3}),j=(0,e.useQuery)({queryKey:["integrations"],queryFn:()=>B.api.get("/integrations"),staleTime:3e4,select:a=>a.integrations.find(a=>a.key===K)??null}),k=(0,D.usePatchIntegration)(),{toast:p,showToast:r,saveField:s}=(0,E.useSaveConfig)(),[R,S]=(0,c.useState)(null),T=j.data,U=h.data?.capabilities??null,V=h.data?.lifecycle??{},W=(0,d.useMutation)({mutationFn:()=>B.api.post("/setup/redetect-browsers"),onSuccess:()=>{a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","Browser detection refreshed")},onError:a=>{r("error",`Failed to refresh detection: ${a instanceof Error?a.message:"Unknown error"}`)}}),X=(0,c.useMemo)(()=>U?Object.values(U.browsers).filter(a=>"available"===a||"available_no_sync"===a).length:0,[U]),Y=new Set(g?.browserHistoryCategories??[]);async function Z(b){S(b);try{await k.mutateAsync({key:K,body:{mode:b}}),a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","direct"===b?"Browser History enabled":"Browser History disabled")}catch(a){r("error",`Failed to update mode: ${a instanceof Error?a.message:"Unknown error"}`)}finally{S(null)}}async function $(){try{await B.api.patch("/config",{browserHistoryConsentAccepted:!0}),await B.api.patch(`/integrations/${K}`,{mode:"direct"}),a.invalidateQueries({queryKey:["config"]}),a.invalidateQueries({queryKey:["integrations"]}),a.invalidateQueries({queryKey:["health"]}),a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","Consent recorded and Browser History enabled")}catch(a){r("error",`Failed to enable Browser History: ${a instanceof Error?a.message:"Unknown error"}`)}}async function _(b,c){let d={...g?.browserHistoryBrowserOverrides??{},[b]:c};await s("browserHistoryBrowserOverrides",d),a.invalidateQueries({queryKey:["browser-history-status"]})}async function aa(b){if(g){var c;await s("browserHistoryLifecycle",(c=g.browserHistoryLifecycle,{...c,...b,per_browser:b.per_browser??c.per_browser??{}})),a.invalidateQueries({queryKey:["browser-history-status"]})}}async function ab(a,b){if(!g)return;let c=g.browserHistoryLifecycle,d=c.per_browser?.[a]??{};await aa({per_browser:{...c.per_browser??{},[a]:{...d,...b}}})}async function ac(a,b){let c=new Set(g?.browserHistoryCategories??[]);b?c.add(a):c.delete(a),await s("browserHistoryCategories",Array.from(c))}function ad(a){return Array.from(new Set(a.split(/[\n,]/).map(a=>a.trim()).filter(a=>a.length>0&&a.length<=253)))}if(!g||j.isLoading)return(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading..."]});let ae=g.browserHistoryConsentAccepted,af=T?.state.mode??"disabled",ag=g.browserHistoryLifecycle,ah=ag.enabled;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(z.PageHeader,{title:"Browser History",description:"Local browser-history ingestion, consent, browser detection, lifecycle supervision, and retention controls.",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(O,{integration:T}),(0,b.jsxs)(v.Button,{variant:"outline",size:"sm",onClick:()=>W.mutate(),disabled:W.isPending,children:[W.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n.RefreshCw,{className:"h-4 w-4"}),"Re-detect"]})]})}),(0,b.jsx)(A.SettingsToast,{toast:p}),!ae&&(0,b.jsx)(t.Alert,{variant:"warning",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Browser History is off until you consent."}),(0,b.jsx)("p",{className:"mt-1",children:"Enabling this feature lets the daemon read local browser history databases and store normalized, retention-limited rows for research and summary features."})]}),(0,b.jsxs)(v.Button,{size:"sm",onClick:$,disabled:k.isPending,className:"shrink-0",children:[(0,b.jsx)(o.ShieldCheck,{className:"h-4 w-4"}),"Enable"]})]})}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:o.ShieldCheck,title:"Consent & Mode",description:"Consent is separate from detection. Browser reads start only when consent is accepted and the integration is in Direct mode."})}),(0,b.jsxs)("div",{className:"grid gap-4 md:grid-cols-[1fr_auto] md:items-center",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-3",children:[(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Consent"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium",children:ae?"Accepted":"Not accepted"})]}),(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Detected browsers"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium",children:h.isLoading?"Checking...":X})]}),(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Last ingest"}),(0,b.jsx)("div",{className:"mt-1 truncate text-sm font-medium",children:L(h.data?.lastIngestAt)})]})]}),(0,b.jsxs)("div",{className:"flex rounded-md border p-1",children:[(0,b.jsxs)(v.Button,{size:"sm",variant:"direct"===af?"default":"ghost",disabled:!ae||null!==R,onClick:()=>Z("direct"),children:["direct"===R&&(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"On"]}),(0,b.jsxs)(v.Button,{size:"sm",variant:"disabled"===af?"default":"ghost",disabled:null!==R,onClick:()=>Z("disabled"),children:["disabled"===R&&(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Off"]})]})]})]}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:l.History,title:"Browsers",description:"Detection follows the host OS profile layout. Auto ingests readable, supported profiles when consent and Direct mode are active."})}),h.error&&(0,b.jsxs)(t.Alert,{variant:"error",className:"mb-4",children:["Failed to read browser status: ",h.error.message]}),(0,b.jsx)("div",{className:"divide-y rounded-md border",children:G.map(({key:a,label:c})=>{var d;let e=U?.browsers[a],f=U?.details[a],h=g.browserHistoryBrowserOverrides[a]??"auto",i="permission_denied"===e?{variant:"error",message:"The profile path exists, but the daemon cannot read it. Grant the daemon user read access to that browser profile directory."}:"available_sync_broken"===e?{variant:"warning",message:"The profile is readable, but sync looks stale. Lifecycle launch can keep this browser fresh on unattended hosts."}:null,j=V[a];return(0,b.jsxs)("div",{className:"grid gap-4 p-4 lg:grid-cols-[minmax(190px,1fr)_minmax(260px,1.5fr)_190px] lg:items-center",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(M,{status:e}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"font-medium",children:c}),e&&(0,b.jsx)(u.Badge,{variant:I[e].tone,children:I[e].label})]}),(0,b.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:f?.message??`${f?.readableProfiles??0}/${f?.profileCount??0} readable profiles`})]})]}),(0,b.jsxs)("div",{className:"grid gap-2 text-xs text-muted-foreground sm:grid-cols-3",children:[(0,b.jsxs)("span",{children:["Signed in: ",f?.signedInProfiles??0]}),(0,b.jsxs)("span",{children:["History mtime: ",L(f?.lastHistoryMtimeMs)]}),(0,b.jsxs)("span",{children:["Lifecycle: ",j?.state??"stopped"]}),(0,b.jsxs)("span",{children:["Last sync: ",L(j?.lastSuccessfulSyncAt)]}),(0,b.jsxs)("span",{children:["Failures: ",j?.consecutiveFailures??0]}),(0,b.jsxs)("span",{children:["Wait: ",(d=ag.per_browser?.[a]?.sync_flush_wait_seconds)?d<90?`${d}s`:`${Math.round(d/60)}m`:"n/a"]})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[(0,b.jsx)(y.NativeSelect,{"aria-label":`${c} override`,value:h,onChange:b=>void _(a,b.target.value),children:Object.entries(J).map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:ag.per_browser?.[a]?.enabled??!0,onChange:b=>void ab(a,{enabled:b.target.checked})}),"Lifecycle"]})]}),i&&(0,b.jsx)(t.Alert,{variant:i.variant,className:"lg:col-span-3",children:i.message})]},a)})})]}),(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1fr_1fr]",children:[(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:q.SlidersHorizontal,title:"Retention & Categories",description:"Keep normalized rows and raw search-query fragments on separate retention windows. Categories define the opt-in data classes eligible for downstream features."})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Normalized rows"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:365,value:g.browserHistoryRetentionDays,onChange:a=>void s("browserHistoryRetentionDays",Number.parseInt(a.target.value,10))}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Days"})]}),(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Search-query fragments"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:90,value:g.browserHistorySearchQueryRetentionDays,onChange:a=>void s("browserHistorySearchQueryRetentionDays",Number.parseInt(a.target.value,10))}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Days"})]})]}),(0,b.jsx)("div",{className:"mt-5 grid gap-2 sm:grid-cols-2",children:H.map(({key:a,label:c})=>(0,b.jsxs)("label",{className:(0,F.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-sm",Y.has(a)&&"border-primary/40 bg-primary/5"),children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:Y.has(a),onChange:b=>void ac(a,b.target.checked)}),(0,b.jsx)("span",{children:c})]},a))})]}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(N,{icon:i.Clock3,title:"Lifecycle",description:"Launch and health-check enabled browsers on unattended hosts so cloud sync has a chance to flush before snapshots are read."})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Supervisor"}),(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:ah,onChange:a=>void aa({enabled:a.target.checked})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Check interval"}),(0,b.jsx)(x.Input,{type:"number",min:5,max:360,value:ag.check_interval_minutes,onChange:a=>void aa({check_interval_minutes:Number.parseInt(a.target.value,10)})}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Minutes"})]}),(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Concurrent launches"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:4,value:ag.max_concurrent_launches,onChange:a=>void aa({max_concurrent_launches:Number.parseInt(a.target.value,10)})}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Browsers"})]})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Respect quiet hours"}),(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:ag.respect_quiet_hours,onChange:a=>void aa({respect_quiet_hours:a.target.checked})})]}),(0,b.jsx)("div",{className:"rounded-md border p-3 text-xs text-muted-foreground",children:"Failure escalation pauses a browser after repeated launch or sync validation failures and resumes automatically after the cooldown window."})]})]})]}),(0,b.jsx)(P,{allowlist:g.browserHistoryResearchDomainAllowlist,denylist:g.browserHistoryResearchDomainDenylist,onSaveAllowlist:a=>s("browserHistoryResearchDomainAllowlist",ad(a)),onSaveDenylist:a=>s("browserHistoryResearchDomainDenylist",ad(a))}),(0,b.jsx)(Q,{enabled:"disabled"!==af,onToast:r})]})}])}];
1
+ module.exports=[24742,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(8753),e=a.i(62588),f=a.i(81130),g=a.i(32307),h=a.i(82687),i=a.i(43681),j=a.i(40715),k=a.i(93637),l=a.i(60133),m=a.i(92241),n=a.i(39293),o=a.i(50891),p=a.i(83997),q=a.i(8937),r=a.i(96336),s=a.i(7385),t=a.i(29629),u=a.i(7384),v=a.i(21218),w=a.i(30400),x=a.i(8212),y=a.i(28627),z=a.i(87206),A=a.i(74345),B=a.i(59974),C=a.i(54150),D=a.i(47026),E=a.i(78933),F=a.i(48558);let G=[{key:"chrome",label:"Chrome"},{key:"chromium",label:"Chromium"},{key:"edge",label:"Edge"},{key:"brave",label:"Brave"},{key:"comet",label:"Comet"},{key:"atlas",label:"Atlas"}],H=[{key:"work",label:"Work"},{key:"research",label:"Research"},{key:"shopping",label:"Shopping"},{key:"news",label:"News"},{key:"dev",label:"Development"},{key:"cloud-console",label:"Cloud console"},{key:"localhost",label:"Localhost"},{key:"app-config",label:"App config"},{key:"other",label:"Other"}],I={available:{label:"Available",tone:"default"},available_no_sync:{label:"No sync",tone:"amber"},available_sync_broken:{label:"Sync stale",tone:"amber"},permission_denied:{label:"Permission denied",tone:"red"},not_installed:{label:"Not installed",tone:"gray"},error:{label:"Error",tone:"red"}},J={auto:"Auto","forced-on":"Force on","forced-off":"Force off"},K="browser_history";function L({status:a}){return"available"===a||"available_no_sync"===a?(0,b.jsx)(h.CheckCircle2,{className:"h-4 w-4 text-success"}):"permission_denied"===a||"available_sync_broken"===a?(0,b.jsx)(g.AlertTriangle,{className:"h-4 w-4 text-warning"}):"error"===a?(0,b.jsx)(s.XCircle,{className:"h-4 w-4 text-destructive"}):(0,b.jsx)(j.EyeOff,{className:"h-4 w-4 text-muted-foreground"})}function M({icon:a,title:c,description:d}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,b.jsx)("div",{className:"mt-0.5 rounded-md border bg-muted p-2",children:(0,b.jsx)(a,{className:"h-4 w-4 text-muted-foreground"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{className:"text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:d})]})]})}function N({integration:a}){let c="direct"===(a?.state.mode??"disabled");return(0,b.jsx)(u.Badge,{variant:c?"default":"gray",children:c?"Direct":"Disabled"})}function O({allowlist:a,denylist:d,onSaveAllowlist:e,onSaveDenylist:f}){let g=a.join("\n"),h=d.join("\n"),[i,j]=(0,c.useState)(g),[l,m]=(0,c.useState)(h),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(!1),r=i!==g,s=l!==h;return(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:k.Filter,title:"Research domain filter",description:"Optionally constrain which domains contribute to research-cluster qualification. Leave both lists empty (default) to use automatic detection across all your research domains."})}),(0,b.jsxs)("div",{className:"grid gap-6 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Allowlist (opt-in)"}),(0,b.jsx)("textarea",{value:i,onChange:a=>j(a.target.value),placeholder:"arxiv.org\nanthropic.com\nsimonwillison.net",className:"min-h-[140px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"When non-empty, only visits whose eTLD+1 is in this list are counted as meaningful research. One domain per line or comma-separated; subdomains and paths are normalised away."}),(0,b.jsx)(v.Button,{size:"sm",variant:"outline",disabled:!r||n,onClick:async()=>{o(!0);try{await e(i)}finally{o(!1)}},children:n?"Saving…":r?"Save allowlist":"Saved"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Denylist (always-on)"}),(0,b.jsx)("textarea",{value:l,onChange:a=>m(a.target.value),placeholder:"news.ycombinator.com\nreddit.com",className:"min-h-[140px] w-full resize-y rounded-md border border-border bg-muted/30 p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"Domains here are still recorded in your browser history but never produce offers or wiki summaries. Denylist wins over the allowlist if both contain the same domain."}),(0,b.jsx)(v.Button,{size:"sm",variant:"outline",disabled:!s||p,onClick:async()=>{q(!0);try{await f(l)}finally{q(!1)}},children:p?"Saving…":s?"Save denylist":"Saved"})]})]}),(0,b.jsx)("p",{className:"mt-4 rounded-md border p-3 text-xs text-muted-foreground",children:"Changes apply to new browser visits only; previously-classified visits are not reclassified (they age out via the retention window above)."})]})}function P({enabled:a,onToast:e}){let[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),[l,o]=(0,c.useState)(null),q=(0,d.useMutation)({mutationFn:()=>B.api.post("/browser-history/refresh-interests-reflection"),onSuccess:a=>{k(a),a.skipped?e("success",`Reflection refresh skipped (${a.skipped.reason})`):e("success",`Refreshed — ${a.themesSelected.length} themes, ${a.targetsWritten.length} files`)},onError:a=>{e("error",`Failed to refresh: ${a instanceof Error?a.message:"Unknown error"}`)}}),s=(0,d.useMutation)({mutationFn:()=>B.api.post("/browser-history/cleanup-interests-reflection",{alsoDeleteResearchThemesFile:f}),onSuccess:a=>{o(a),i(!1),e("success",`Cleaned up — ${a.blocksRemoved} blocks removed across ${a.filesAffected.length} files`)},onError:a=>{e("error",`Failed to clean up: ${a instanceof Error?a.message:"Unknown error"}`),i(!1)}});return(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:p.Sparkles,title:"Research themes (auto-refreshed weekly)",description:"Each weekly review refreshes a short `## Current research themes (auto)` block on identity/profile.md, the per-cluster snapshot at identity/research-themes.md, and matching project files. The feature runs automatically while browser history is enabled; the buttons below are for testing and one-shot cleanup."})}),!a&&(0,b.jsx)(t.Alert,{variant:"info",className:"mb-4",children:"Browser history is currently disabled, so weekly reflection is paused. Re-enable browser history above to resume the next weekly_review run."}),(0,b.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(n.RefreshCw,{className:"mt-0.5 h-4 w-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Refresh now"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Re-run the deterministic refresh against the most recent ISO Monday window. Same code path the Friday scheduler tick uses; the helper writes the auto-block in place if three or more qualifying themes are found."})]})]}),(0,b.jsxs)(v.Button,{size:"sm",variant:"outline",disabled:!a||q.isPending,onClick:()=>q.mutate(),children:[q.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n.RefreshCw,{className:"h-4 w-4"}),"Refresh now"]}),j&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 text-xs",children:[(0,b.jsxs)("div",{className:"font-medium text-foreground",children:["Last refresh — week of ",j.weekStart]}),j.skipped?(0,b.jsxs)("div",{className:"mt-1 text-muted-foreground",children:["Skipped: ",j.skipped.reason]}):(0,b.jsxs)("ul",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Themes selected: ",j.themesSelected.length]}),(0,b.jsxs)("li",{children:["Files written: ",j.targetsWritten.length]}),(0,b.jsxs)("li",{children:["Projects annotated: ",j.projectsAnnotated]}),(0,b.jsxs)("li",{children:["Dormant since last week:"," ",j.clustersDormantSinceLastWeek]})]})]})]}),(0,b.jsxs)("div",{className:"space-y-3 rounded-md border p-4",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(r.Trash2,{className:"mt-0.5 h-4 w-4 text-muted-foreground"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium",children:"Clean up auto-blocks"}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["Strips every ",(0,b.jsx)("code",{children:"aitne:browser-interests v1"})," block from ",(0,b.jsx)("code",{children:"identity/profile.md"}),", ",(0,b.jsx)("code",{children:"_index.md"}),", and each ",(0,b.jsx)("code",{children:"plans/projects/*.md"}),", and (by default) deletes the wholly daemon-owned"," ",(0,b.jsx)("code",{children:"identity/research-themes.md"}),". One-shot purge — the next weekly_review re-creates fresh content."]})]})]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:f,onChange:a=>g(a.target.checked)}),(0,b.jsxs)("span",{children:["Also delete ",(0,b.jsx)("code",{children:"identity/research-themes.md"})]})]}),h?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(v.Button,{size:"sm",variant:"destructive",disabled:s.isPending,onClick:()=>s.mutate(),children:[s.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(r.Trash2,{className:"h-4 w-4"}),"Confirm purge"]}),(0,b.jsx)(v.Button,{size:"sm",variant:"ghost",disabled:s.isPending,onClick:()=>i(!1),children:"Cancel"})]}):(0,b.jsxs)(v.Button,{size:"sm",variant:"outline",disabled:s.isPending,onClick:()=>i(!0),children:[(0,b.jsx)(r.Trash2,{className:"h-4 w-4"}),"Clean up auto-blocks"]}),l&&(0,b.jsxs)("div",{className:"rounded-md border bg-muted/30 p-3 text-xs",children:[(0,b.jsx)("div",{className:"font-medium text-foreground",children:"Last cleanup"}),(0,b.jsxs)("ul",{className:"mt-1 space-y-0.5 text-muted-foreground",children:[(0,b.jsxs)("li",{children:["Blocks removed: ",l.blocksRemoved]}),(0,b.jsxs)("li",{children:["Files affected: ",l.filesAffected.length]}),(0,b.jsxs)("li",{children:["research-themes.md deleted:"," ",l.researchThemesDeleted?"yes":"no"]})]})]})]})]})]})}a.s(["default",0,function(){let a=(0,f.useQueryClient)(),{data:g}=(0,C.useConfig)(),h=(0,e.useQuery)({queryKey:["browser-history-status"],queryFn:()=>B.api.get("/browser-history/status"),staleTime:15e3}),j=(0,e.useQuery)({queryKey:["integrations"],queryFn:()=>B.api.get("/integrations"),staleTime:3e4,select:a=>a.integrations.find(a=>a.key===K)??null}),k=(0,D.usePatchIntegration)(),{toast:p,showToast:r,saveField:s}=(0,E.useSaveConfig)(),[Q,R]=(0,c.useState)(null),S=j.data,T=h.data?.capabilities??null,U=h.data?.lifecycle??{},V=(0,d.useMutation)({mutationFn:()=>B.api.post("/setup/redetect-browsers"),onSuccess:()=>{a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","Browser detection refreshed")},onError:a=>{r("error",`Failed to refresh detection: ${a instanceof Error?a.message:"Unknown error"}`)}}),W=(0,c.useMemo)(()=>T?Object.values(T.browsers).filter(a=>"available"===a||"available_no_sync"===a).length:0,[T]),X=new Set(g?.browserHistoryCategories??[]);async function Y(b){R(b);try{await k.mutateAsync({key:K,body:{mode:b}}),a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","direct"===b?"Browser History enabled":"Browser History disabled")}catch(a){r("error",`Failed to update mode: ${a instanceof Error?a.message:"Unknown error"}`)}finally{R(null)}}async function Z(){try{await B.api.patch("/config",{browserHistoryConsentAccepted:!0}),await B.api.patch(`/integrations/${K}`,{mode:"direct"}),a.invalidateQueries({queryKey:["config"]}),a.invalidateQueries({queryKey:["integrations"]}),a.invalidateQueries({queryKey:["health"]}),a.invalidateQueries({queryKey:["browser-history-status"]}),r("success","Consent recorded and Browser History enabled")}catch(a){r("error",`Failed to enable Browser History: ${a instanceof Error?a.message:"Unknown error"}`)}}async function $(b,c){let d={...g?.browserHistoryBrowserOverrides??{},[b]:c};await s("browserHistoryBrowserOverrides",d),a.invalidateQueries({queryKey:["browser-history-status"]})}async function _(b){if(g){var c;await s("browserHistoryLifecycle",(c=g.browserHistoryLifecycle,{...c,...b,per_browser:b.per_browser??c.per_browser??{}})),a.invalidateQueries({queryKey:["browser-history-status"]})}}async function aa(a,b){if(!g)return;let c=g.browserHistoryLifecycle,d=c.per_browser?.[a]??{};await _({per_browser:{...c.per_browser??{},[a]:{...d,...b}}})}async function ab(a,b){let c=new Set(g?.browserHistoryCategories??[]);b?c.add(a):c.delete(a),await s("browserHistoryCategories",Array.from(c))}function ac(a){return Array.from(new Set(a.split(/[\n,]/).map(a=>a.trim()).filter(a=>a.length>0&&a.length<=253)))}if(!g||j.isLoading)return(0,b.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading..."]});let ad=g.browserHistoryConsentAccepted,ae=S?.state.mode??"disabled",af=g.browserHistoryLifecycle,ag=af.enabled;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(z.PageHeader,{title:"Browser History",description:"Local browser-history ingestion, consent, browser detection, lifecycle supervision, and retention controls.",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(N,{integration:S}),(0,b.jsxs)(v.Button,{variant:"outline",size:"sm",onClick:()=>V.mutate(),disabled:V.isPending,children:[V.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n.RefreshCw,{className:"h-4 w-4"}),"Re-detect"]})]})}),(0,b.jsx)(A.SettingsToast,{toast:p}),!ad&&(0,b.jsx)(t.Alert,{variant:"warning",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:"Browser History is off until you consent."}),(0,b.jsx)("p",{className:"mt-1",children:"Enabling this feature lets the daemon read local browser history databases and store normalized, retention-limited rows for research and summary features."})]}),(0,b.jsxs)(v.Button,{size:"sm",onClick:Z,disabled:k.isPending,className:"shrink-0",children:[(0,b.jsx)(o.ShieldCheck,{className:"h-4 w-4"}),"Enable"]})]})}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:o.ShieldCheck,title:"Consent & Mode",description:"Consent is separate from detection. Browser reads start only when consent is accepted and the integration is in Direct mode."})}),(0,b.jsxs)("div",{className:"grid gap-4 md:grid-cols-[1fr_auto] md:items-center",children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-3",children:[(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Consent"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium",children:ad?"Accepted":"Not accepted"})]}),(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Detected browsers"}),(0,b.jsx)("div",{className:"mt-1 text-sm font-medium",children:h.isLoading?"Checking...":W})]}),(0,b.jsxs)("div",{className:"rounded-md border p-3",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:"Last ingest"}),(0,b.jsx)("div",{className:"mt-1 truncate text-sm font-medium",children:(0,F.formatTimestamp)(h.data?.lastIngestAt,"Never")})]})]}),(0,b.jsxs)("div",{className:"flex rounded-md border p-1",children:[(0,b.jsxs)(v.Button,{size:"sm",variant:"direct"===ae?"default":"ghost",disabled:!ad||null!==Q,onClick:()=>Y("direct"),children:["direct"===Q&&(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"On"]}),(0,b.jsxs)(v.Button,{size:"sm",variant:"disabled"===ae?"default":"ghost",disabled:null!==Q,onClick:()=>Y("disabled"),children:["disabled"===Q&&(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Off"]})]})]})]}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:l.History,title:"Browsers",description:"Detection follows the host OS profile layout. Auto ingests readable, supported profiles when consent and Direct mode are active."})}),h.error&&(0,b.jsxs)(t.Alert,{variant:"error",className:"mb-4",children:["Failed to read browser status: ",h.error.message]}),(0,b.jsx)("div",{className:"divide-y rounded-md border",children:G.map(({key:a,label:c})=>{var d;let e=T?.browsers[a],f=T?.details[a],h=g.browserHistoryBrowserOverrides[a]??"auto",i="permission_denied"===e?{variant:"error",message:"The profile path exists, but the daemon cannot read it. Grant the daemon user read access to that browser profile directory."}:"available_sync_broken"===e?{variant:"warning",message:"The profile is readable, but sync looks stale. Lifecycle launch can keep this browser fresh on unattended hosts."}:null,j=U[a];return(0,b.jsxs)("div",{className:"grid gap-4 p-4 lg:grid-cols-[minmax(190px,1fr)_minmax(260px,1.5fr)_190px] lg:items-center",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(L,{status:e}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"font-medium",children:c}),e&&(0,b.jsx)(u.Badge,{variant:I[e].tone,children:I[e].label})]}),(0,b.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:f?.message??`${f?.readableProfiles??0}/${f?.profileCount??0} readable profiles`})]})]}),(0,b.jsxs)("div",{className:"grid gap-2 text-xs text-muted-foreground sm:grid-cols-3",children:[(0,b.jsxs)("span",{children:["Signed in: ",f?.signedInProfiles??0]}),(0,b.jsxs)("span",{children:["History mtime: ",(0,F.formatTimestamp)(f?.lastHistoryMtimeMs,"Never")]}),(0,b.jsxs)("span",{children:["Lifecycle: ",j?.state??"stopped"]}),(0,b.jsxs)("span",{children:["Last sync: ",(0,F.formatTimestamp)(j?.lastSuccessfulSyncAt,"Never")]}),(0,b.jsxs)("span",{children:["Failures: ",j?.consecutiveFailures??0]}),(0,b.jsxs)("span",{children:["Wait: ",(d=af.per_browser?.[a]?.sync_flush_wait_seconds)?d<90?`${d}s`:`${Math.round(d/60)}m`:"n/a"]})]}),(0,b.jsxs)("div",{className:"grid gap-2",children:[(0,b.jsx)(y.NativeSelect,{"aria-label":`${c} override`,value:h,onChange:b=>void $(a,b.target.value),children:Object.entries(J).map(([a,c])=>(0,b.jsx)("option",{value:a,children:c},a))}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:af.per_browser?.[a]?.enabled??!0,onChange:b=>void aa(a,{enabled:b.target.checked})}),"Lifecycle"]})]}),i&&(0,b.jsx)(t.Alert,{variant:i.variant,className:"lg:col-span-3",children:i.message})]},a)})})]}),(0,b.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[1fr_1fr]",children:[(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:q.SlidersHorizontal,title:"Retention & Categories",description:"Keep normalized rows and raw search-query fragments on separate retention windows. Categories define the opt-in data classes eligible for downstream features."})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Normalized rows"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:365,value:g.browserHistoryRetentionDays,onChange:a=>void s("browserHistoryRetentionDays",Number.parseInt(a.target.value,10))}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Days"})]}),(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Search-query fragments"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:90,value:g.browserHistorySearchQueryRetentionDays,onChange:a=>void s("browserHistorySearchQueryRetentionDays",Number.parseInt(a.target.value,10))}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Days"})]})]}),(0,b.jsx)("div",{className:"mt-5 grid gap-2 sm:grid-cols-2",children:H.map(({key:a,label:c})=>(0,b.jsxs)("label",{className:(0,F.cn)("flex items-center gap-2 rounded-md border px-3 py-2 text-sm",X.has(a)&&"border-primary/40 bg-primary/5"),children:[(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:X.has(a),onChange:b=>void ab(a,b.target.checked)}),(0,b.jsx)("span",{children:c})]},a))})]}),(0,b.jsxs)(w.Card,{children:[(0,b.jsx)(w.CardHeader,{children:(0,b.jsx)(M,{icon:i.Clock3,title:"Lifecycle",description:"Launch and health-check enabled browsers on unattended hosts so cloud sync has a chance to flush before snapshots are read."})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Supervisor"}),(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:ag,onChange:a=>void _({enabled:a.target.checked})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Check interval"}),(0,b.jsx)(x.Input,{type:"number",min:5,max:360,value:af.check_interval_minutes,onChange:a=>void _({check_interval_minutes:Number.parseInt(a.target.value,10)})}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Minutes"})]}),(0,b.jsxs)("label",{className:"grid gap-1 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Concurrent launches"}),(0,b.jsx)(x.Input,{type:"number",min:1,max:4,value:af.max_concurrent_launches,onChange:a=>void _({max_concurrent_launches:Number.parseInt(a.target.value,10)})}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Browsers"})]})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2 text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:"Respect quiet hours"}),(0,b.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-input",checked:af.respect_quiet_hours,onChange:a=>void _({respect_quiet_hours:a.target.checked})})]}),(0,b.jsx)("div",{className:"rounded-md border p-3 text-xs text-muted-foreground",children:"Failure escalation pauses a browser after repeated launch or sync validation failures and resumes automatically after the cooldown window."})]})]})]}),(0,b.jsx)(O,{allowlist:g.browserHistoryResearchDomainAllowlist,denylist:g.browserHistoryResearchDomainDenylist,onSaveAllowlist:a=>s("browserHistoryResearchDomainAllowlist",ac(a)),onSaveDenylist:a=>s("browserHistoryResearchDomainDenylist",ac(a))}),(0,b.jsx)(P,{enabled:"disabled"!==ae,onToast:r})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=0juq_dashboard_src_app_settings_integrations_browser-history_page_tsx_0.30t~j._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[94372,a=>{"use strict";a.s([])}];
2
+
3
+ //# sourceMappingURL=0x9-__next-internal_server_app_settings_infrastructure_page_actions_0u8fwic.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[69190,a=>{"use strict";var b=a.i(39752),c=a.i(62988),d=a.i(34542),e=a.i(8753),f=a.i(62588),g=a.i(81130),h=a.i(32307),i=a.i(57988),j=a.i(82687),k=a.i(92241),l=a.i(79159),m=a.i(50891),n=a.i(7385),o=a.i(29629),p=a.i(7384),q=a.i(21218),r=a.i(30400),s=a.i(6943),t=a.i(8212),u=a.i(87206),v=a.i(23780),w=a.i(59974);let x=["browser-automation-b4-enabled"],y=["browser-automation-b4-site-configs"],z=["browser-automation-b4-primary-channels"],A=["browser-automation-purchase-tokens"],B=new Set(["JPY","KRW","VND","CLP","ISK","PYG","RWF","UGX","BIF","DJF","GNF","KMF","MGA","XAF","XOF","XPF"]);function C(a,b){let c=b.toUpperCase(),d=B.has(c)?a.toLocaleString("en-US"):(a/100).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return"JPY"===c?`\xa5${d}`:`${c} ${d}`}function D(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{className:"flex flex-row items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"flex items-center gap-2 text-sm font-semibold",children:a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.ShieldCheck,{className:"h-4 w-4 text-green-600","aria-hidden":!0}),"Master toggle: ENABLED"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.ShieldAlert,{className:"h-4 w-4 text-muted-foreground","aria-hidden":!0}),"Master toggle: DISABLED"]})}),(0,b.jsxs)("div",{className:"text-sm text-muted-foreground",children:[a.primaryChannelCount," primary channel",1===a.primaryChannelCount?"":"s"," configured.",0===a.primaryChannelCount?" Add a primary channel before enabling.":""]})]}),(0,b.jsx)(q.Button,{variant:a.enabled?"outline":"default",disabled:a.loading||!a.enabled&&0===a.primaryChannelCount,onClick:()=>a.onRequestToggle(!a.enabled),children:a.enabled?"Disable":"Enable"})]})})}function E(a){let[c,e]=(0,d.useState)(!1);return(0,b.jsx)(s.Dialog,{open:a.open,onOpenChange:b=>!b&&a.onClose(),children:(0,b.jsxs)(s.DialogContent,{children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsxs)(s.DialogTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(l.ShieldAlert,{className:"h-5 w-5 text-amber-600","aria-hidden":!0}),"Enable experimental purchase confirmations?"]}),(0,b.jsxs)(s.DialogDescription,{className:"space-y-3 pt-2 text-sm",children:[(0,b.jsx)("p",{children:"Enabling B-4 lets Aitne complete checkouts on your behalf when you approve via DM. Aitne can be tricked. The DM-token guard is experimental and bypassable if the daemon or messaging platform is compromised."}),(0,b.jsx)("p",{children:"Money lost via approved purchases cannot be recovered by Aitne. You are solely responsible for every approval you type."}),(0,b.jsxs)("p",{children:[a.primaryChannelCount," primary channel",1===a.primaryChannelCount?"":"s"," will receive every confirmation DM."]})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(q.Button,{variant:"outline",onClick:a.onClose,disabled:c,children:"Cancel"}),(0,b.jsx)(q.Button,{variant:"destructive",onClick:async()=>{e(!0);try{await a.onConfirm()}finally{e(!1)}},disabled:c||0===a.primaryChannelCount,children:c?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin"}):"I understand — Enable"})]})]})})}function F(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Per-site configuration"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Currency, daily token + spend caps per site_key. Caps are enforced atomically at token-issuance time."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:0===a.rows.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No sites configured yet. After signing in to a site via the B-2.5 connect flow, return here to opt that site into B-4."}):a.rows.map(a=>(0,b.jsx)(G,{initial:a},a.siteKey))})]})})}function G(a){let c=(0,g.useQueryClient)(),[f,h]=(0,d.useState)(a.initial.enabled),[i,j]=(0,d.useState)(a.initial.currency),[k,l]=(0,d.useState)(a.initial.dailyTokenCap),[m,n]=(0,d.useState)(a.initial.dailySpendCapMinor),[o,r]=(0,d.useState)(a.initial.perTxCapMinorOverride??""),s=(0,e.useMutation)({mutationFn:async()=>w.api.patch(`/browser-automation/sites/${a.initial.siteKey}/b4-config`,{enabled:f,currency:i.toUpperCase(),dailyTokenCap:k,dailySpendCapMinor:m,perTxCapMinorOverride:""===o?null:o}),onSuccess:()=>{c.invalidateQueries({queryKey:y})}});return(0,b.jsxs)("div",{className:"rounded-md border p-3 text-sm",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.initial.siteKey}),f?(0,b.jsx)(p.Badge,{children:"enabled"}):(0,b.jsx)(p.Badge,{variant:"gray",children:"disabled"})]}),(0,b.jsx)(q.Button,{size:"sm",onClick:()=>s.mutate(),disabled:s.isPending,children:s.isPending?"Saving…":"Save"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-5",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Enabled"}),(0,b.jsxs)("select",{value:f?"1":"0",onChange:a=>h("1"===a.currentTarget.value),className:"rounded-md border bg-background px-2 py-1",children:[(0,b.jsx)("option",{value:"1",children:"enabled"}),(0,b.jsx)("option",{value:"0",children:"disabled"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Currency (ISO-4217)"}),(0,b.jsx)(t.Input,{value:i,onChange:a=>j(a.currentTarget.value.toUpperCase()),maxLength:3})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Daily token cap"}),(0,b.jsx)(t.Input,{type:"number",min:1,max:100,value:k,onChange:a=>l(Number(a.currentTarget.value)||1)})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Daily spend cap (minor)"}),(0,b.jsx)(t.Input,{type:"number",min:0,value:m,onChange:a=>n(Number(a.currentTarget.value)||0)})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Per-tx cap override"}),(0,b.jsx)(t.Input,{type:"number",min:0,value:o,placeholder:"(unset)",onChange:a=>{let b=a.currentTarget.value;""===b?r(""):r(Number(b))}})]})]}),s.isError&&(0,b.jsx)("div",{className:"mt-2 text-xs text-destructive",children:"Save failed. Check the daemon log for details."})]})}function H(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Primary channels"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only these DM channels receive a B-4 confirmation request. At least one is required to enable the master toggle."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.rows.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No primary channels configured. Mark a channel primary from the messaging settings page or via the API."}):a.rows.map(a=>(0,b.jsx)(I,{row:a},`${a.platform}:${a.channelId}`))})]})})}function I(a){let c=(0,g.useQueryClient)(),d=(0,e.useMutation)({mutationFn:async()=>w.api.patch(`/browser-automation/channels/${a.row.platform}/${encodeURIComponent(a.row.channelId)}/primary`,{primary:!1}),onSuccess:()=>{c.invalidateQueries({queryKey:z}),c.invalidateQueries({queryKey:x})}});return(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.row.platform}),(0,b.jsx)("span",{className:"font-mono text-xs",children:a.row.channelId}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["set ",new Date(a.row.setAt).toLocaleString()]})]}),(0,b.jsx)(q.Button,{size:"sm",variant:"outline",onClick:()=>d.mutate(),disabled:d.isPending,children:d.isPending?"…":"Clear primary"})]})}function J(a){let[e,f]=(0,d.useState)(a.nowMs);(0,d.useEffect)(()=>{if(!a.hasAnyPending)return;let b=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(b)},[a.hasAnyPending]);let g=Math.max(e,a.nowMs);return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Pending purchase tokens"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"In-flight purchase-confirmation requests waiting on the user's DM reply. Raw token strings are NEVER shown here."}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"lite-final-confirm-pointer",children:["Browser-task confirmations (non-purchase) share the same"," ",(0,b.jsx)("code",{children:"!~"})," token shape but live on their per-task detail page —"," ",(0,b.jsx)(c.default,{href:"/browser-tasks",className:"underline underline-offset-2 hover:text-foreground",children:"open Browser Tasks"})," ","to find them."]})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.tokens.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No pending purchase tokens."}):a.tokens.map(a=>(0,b.jsx)(K,{token:a,nowMs:g},a.jti))})]})})}function K(a){let c,d,f,h=(0,g.useQueryClient)(),i=(0,e.useMutation)({mutationFn:async()=>w.api.delete(`/browser-automation/purchase-tokens/${a.token.jti}`),onSuccess:()=>{h.invalidateQueries({queryKey:A})}});return(0,b.jsx)("div",{className:"rounded-md border p-3 text-sm",children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.token.siteKey}),(0,b.jsx)(p.Badge,{variant:"gray",children:a.token.status}),(0,b.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:["jti=",a.token.jti.slice(0,8),"…"]})]}),(0,b.jsxs)("div",{children:["Total"," ",(0,b.jsx)("strong",{children:C(a.token.maxAmountMinor,a.token.currency)})]}),a.token.notesForUser&&(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Agent: ",a.token.notesForUser]}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Delivered to ",a.token.deliveredChannels.length," channel",1===a.token.deliveredChannels.length?"":"s"," ·"," ","expires in"," ",(0,b.jsx)("strong",{children:(d=Math.floor((c=Math.max(0,a.token.expiresAt-a.nowMs))/6e4),f=Math.floor(c%6e4/1e3),`${d}m ${f.toString().padStart(2,"0")}s`)})]})]}),(0,b.jsx)(q.Button,{size:"sm",variant:"destructive",onClick:()=>i.mutate(),disabled:i.isPending,children:i.isPending?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin"}):"Cancel"})]})})}function L(a){let c=(0,d.useMemo)(()=>(function(a){let b=Date.now(),c=new Map;for(let d of a){if("confirmed"!==d.status||null===d.confirmedAmountMinor)continue;let a=`${d.siteKey}:${d.currency}`,e=c.get(a);e||(e={siteKey:d.siteKey,currency:d.currency,spentToday:0,spentWeek:0},c.set(a,e));let f=d.consumedAt??d.issuedAt;b-f<=864e5&&(e.spentToday+=d.confirmedAmountMinor),b-f<=6048e5&&(e.spentWeek+=d.confirmedAmountMinor)}return Array.from(c.values()).sort((a,b)=>b.spentWeek-a.spentWeek)})(a.tokens),[a.tokens]);return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Recent purchases"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Confirmed + cancelled tokens. Today / week aggregates per site_key."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),c.length>0&&(0,b.jsx)("div",{className:"mt-3 grid grid-cols-1 gap-2 md:grid-cols-2",children:c.map(a=>(0,b.jsxs)("div",{className:"rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.siteKey}),(0,b.jsx)(p.Badge,{children:a.currency})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:["Today: ",(0,b.jsx)("strong",{children:C(a.spentToday,a.currency)})," ","· Week: ",(0,b.jsx)("strong",{children:C(a.spentWeek,a.currency)})]})]},`${a.siteKey}:${a.currency}`))}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.tokens.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No recent purchases."}):a.tokens.slice(0,32).map(a=>(0,b.jsx)(M,{token:a},a.jti))})]})})}function M(a){let c=a.token;return(0,b.jsxs)("div",{className:"rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:["confirmed"===c.status?(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4 text-green-600","aria-hidden":!0}):(0,b.jsx)(n.XCircle,{className:"h-4 w-4 text-muted-foreground","aria-hidden":!0}),(0,b.jsx)(p.Badge,{variant:"gray",children:c.siteKey}),(0,b.jsx)(p.Badge,{variant:"gray",children:c.status}),c.cancelReason&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",c.cancelReason,")"]})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:new Date(c.consumedAt??c.cancelledAt??c.issuedAt).toLocaleString()})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[null!==c.confirmedAmountMinor?C(c.confirmedAmountMinor,c.currency):C(c.maxAmountMinor,c.currency)," ","· jti=",c.jti.slice(0,12),"…"," ",c.orderId&&(0,b.jsxs)("span",{children:["· order=",(0,b.jsx)("strong",{children:c.orderId})]})]})]})}h.AlertTriangle,a.s(["default",0,function(){var a;let e=(0,f.useQuery)({queryKey:x,queryFn:()=>w.api.get("/browser-automation/b4/enabled"),refetchInterval:3e4,staleTime:5e3}),g=(0,f.useQuery)({queryKey:y,queryFn:()=>w.api.get("/browser-automation/b4/site-configs"),refetchInterval:3e4,staleTime:5e3}),h=(0,f.useQuery)({queryKey:z,queryFn:()=>w.api.get("/browser-automation/b4/primary-channels"),refetchInterval:3e4,staleTime:5e3}),j=(a=!!e.data?.enabled,(0,f.useQuery)({queryKey:A,queryFn:()=>w.api.get("/browser-automation/purchase-tokens"),refetchInterval:a?3e3:3e4,staleTime:1e3,enabled:!0})),[k,m]=(0,d.useState)(!1),n=(j.data?.pending.length??0)>0;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(c.default,{href:"/settings/integrations/browser-history-managed",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(i.ArrowLeft,{className:"h-3.5 w-3.5"}),"Back to Browser Automation"]}),(0,b.jsx)(u.PageHeader,{title:"Experimental purchase (B-4)",description:"DM-token-gated checkout confirmations. Aitne can be tricked. The DM-token guard is experimental and bypassable if the daemon or messaging platform is compromised. Money lost via approved purchases cannot be recovered."}),(0,b.jsxs)(o.Alert,{variant:"warning",className:"flex items-start gap-3",children:[(0,b.jsx)(l.ShieldAlert,{className:"mt-0.5 h-5 w-5","aria-hidden":!0}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("div",{className:"font-semibold",children:"Experimental — confirm with full understanding"}),(0,b.jsx)("p",{children:"Every purchase requires a fresh single-use confirmation token the daemon mints AFTER the pre-confirm screenshot. The user types the exact token back in DM. Hard-deny categories from parent plan §23 (banking, brokerages, government, healthcare, identity / legal, generic payment processors not bound to a registered commerce workflow) remain absolutely denied — no token override possible."}),(0,b.jsx)("p",{children:"You are solely responsible for every approval you type. Aitne cannot reverse a confirmed purchase."})]})]}),(0,b.jsx)(D,{enabled:e.data?.enabled??!1,primaryChannelCount:e.data?.primaryChannelCount??0,loading:e.isLoading,onRequestToggle:a=>{a?m(!0):w.api.post("/browser-automation/b4/enabled",{enabled:!1}).finally(()=>e.refetch())}}),(0,b.jsx)(E,{open:k,onClose:()=>m(!1),onConfirm:async()=>{await w.api.post("/browser-automation/b4/enabled",{enabled:!0,acknowledge:!0}),await e.refetch(),m(!1)},primaryChannelCount:e.data?.primaryChannelCount??0}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(F,{rows:g.data?.rows??[],loading:g.isLoading}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(H,{rows:h.data?.rows??[],loading:h.isLoading}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(J,{tokens:j.data?.pending??[],nowMs:j.data?.now??0,loading:j.isLoading,hasAnyPending:n}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(L,{tokens:j.data?.recent??[],loading:j.isLoading})]})}])}];
1
+ module.exports=[69190,a=>{"use strict";var b=a.i(39752),c=a.i(62988),d=a.i(34542),e=a.i(8753),f=a.i(62588),g=a.i(81130),h=a.i(32307),i=a.i(57988),j=a.i(82687),k=a.i(92241),l=a.i(79159),m=a.i(50891),n=a.i(7385),o=a.i(29629),p=a.i(7384),q=a.i(21218),r=a.i(30400),s=a.i(6943),t=a.i(8212),u=a.i(87206),v=a.i(23780),w=a.i(59974);let x=["browser-automation-b4-enabled"],y=["browser-automation-b4-site-configs"],z=["browser-automation-b4-primary-channels"],A=["browser-automation-purchase-tokens"],B=new Set(["JPY","KRW","VND","CLP","ISK","PYG","RWF","UGX","BIF","DJF","GNF","KMF","MGA","XAF","XOF","XPF"]);function C(a,b){let c=b.toUpperCase(),d=B.has(c)?a.toLocaleString("en-US"):(a/100).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2});return"JPY"===c?`\xa5${d}`:`${c} ${d}`}function D(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{className:"flex flex-row items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"flex items-center gap-2 text-sm font-semibold",children:a.enabled?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.ShieldCheck,{className:"h-4 w-4 text-success","aria-hidden":!0}),"Master toggle: ENABLED"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.ShieldAlert,{className:"h-4 w-4 text-muted-foreground","aria-hidden":!0}),"Master toggle: DISABLED"]})}),(0,b.jsxs)("div",{className:"text-sm text-muted-foreground",children:[a.primaryChannelCount," primary channel",1===a.primaryChannelCount?"":"s"," configured.",0===a.primaryChannelCount?" Add a primary channel before enabling.":""]})]}),(0,b.jsx)(q.Button,{variant:a.enabled?"outline":"default",disabled:a.loading||!a.enabled&&0===a.primaryChannelCount,onClick:()=>a.onRequestToggle(!a.enabled),children:a.enabled?"Disable":"Enable"})]})})}function E(a){let[c,e]=(0,d.useState)(!1);return(0,b.jsx)(s.Dialog,{open:a.open,onOpenChange:b=>!b&&a.onClose(),children:(0,b.jsxs)(s.DialogContent,{children:[(0,b.jsxs)(s.DialogHeader,{children:[(0,b.jsxs)(s.DialogTitle,{className:"flex items-center gap-2",children:[(0,b.jsx)(l.ShieldAlert,{className:"h-5 w-5 text-warning","aria-hidden":!0}),"Enable experimental purchase confirmations?"]}),(0,b.jsxs)(s.DialogDescription,{className:"space-y-3 pt-2 text-sm",children:[(0,b.jsx)("p",{children:"Enabling B-4 lets Aitne complete checkouts on your behalf when you approve via DM. Aitne can be tricked. The DM-token guard is experimental and bypassable if the daemon or messaging platform is compromised."}),(0,b.jsx)("p",{children:"Money lost via approved purchases cannot be recovered by Aitne. You are solely responsible for every approval you type."}),(0,b.jsxs)("p",{children:[a.primaryChannelCount," primary channel",1===a.primaryChannelCount?"":"s"," will receive every confirmation DM."]})]})]}),(0,b.jsxs)(s.DialogFooter,{children:[(0,b.jsx)(q.Button,{variant:"outline",onClick:a.onClose,disabled:c,children:"Cancel"}),(0,b.jsx)(q.Button,{variant:"destructive",onClick:async()=>{e(!0);try{await a.onConfirm()}finally{e(!1)}},disabled:c||0===a.primaryChannelCount,children:c?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin"}):"I understand — Enable"})]})]})})}function F(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Per-site configuration"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Currency, daily token + spend caps per site_key. Caps are enforced atomically at token-issuance time."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:0===a.rows.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No sites configured yet. After signing in to a site via the B-2.5 connect flow, return here to opt that site into B-4."}):a.rows.map(a=>(0,b.jsx)(G,{initial:a},a.siteKey))})]})})}function G(a){let c=(0,g.useQueryClient)(),[f,h]=(0,d.useState)(a.initial.enabled),[i,j]=(0,d.useState)(a.initial.currency),[k,l]=(0,d.useState)(a.initial.dailyTokenCap),[m,n]=(0,d.useState)(a.initial.dailySpendCapMinor),[o,r]=(0,d.useState)(a.initial.perTxCapMinorOverride??""),s=(0,e.useMutation)({mutationFn:async()=>w.api.patch(`/browser-automation/sites/${a.initial.siteKey}/b4-config`,{enabled:f,currency:i.toUpperCase(),dailyTokenCap:k,dailySpendCapMinor:m,perTxCapMinorOverride:""===o?null:o}),onSuccess:()=>{c.invalidateQueries({queryKey:y})}});return(0,b.jsxs)("div",{className:"rounded-md border p-3 text-sm",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.initial.siteKey}),f?(0,b.jsx)(p.Badge,{children:"enabled"}):(0,b.jsx)(p.Badge,{variant:"gray",children:"disabled"})]}),(0,b.jsx)(q.Button,{size:"sm",onClick:()=>s.mutate(),disabled:s.isPending,children:s.isPending?"Saving…":"Save"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-5",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Enabled"}),(0,b.jsxs)("select",{value:f?"1":"0",onChange:a=>h("1"===a.currentTarget.value),className:"rounded-md border bg-background px-2 py-1",children:[(0,b.jsx)("option",{value:"1",children:"enabled"}),(0,b.jsx)("option",{value:"0",children:"disabled"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Currency (ISO-4217)"}),(0,b.jsx)(t.Input,{value:i,onChange:a=>j(a.currentTarget.value.toUpperCase()),maxLength:3})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Daily token cap"}),(0,b.jsx)(t.Input,{type:"number",min:1,max:100,value:k,onChange:a=>l(Number(a.currentTarget.value)||1)})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Daily spend cap (minor)"}),(0,b.jsx)(t.Input,{type:"number",min:0,value:m,onChange:a=>n(Number(a.currentTarget.value)||0)})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Per-tx cap override"}),(0,b.jsx)(t.Input,{type:"number",min:0,value:o,placeholder:"(unset)",onChange:a=>{let b=a.currentTarget.value;""===b?r(""):r(Number(b))}})]})]}),s.isError&&(0,b.jsx)("div",{className:"mt-2 text-xs text-destructive",children:"Save failed. Check the daemon log for details."})]})}function H(a){return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Primary channels"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Only these DM channels receive a B-4 confirmation request. At least one is required to enable the master toggle."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.rows.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No primary channels configured. Mark a channel primary from the messaging settings page or via the API."}):a.rows.map(a=>(0,b.jsx)(I,{row:a},`${a.platform}:${a.channelId}`))})]})})}function I(a){let c=(0,g.useQueryClient)(),d=(0,e.useMutation)({mutationFn:async()=>w.api.patch(`/browser-automation/channels/${a.row.platform}/${encodeURIComponent(a.row.channelId)}/primary`,{primary:!1}),onSuccess:()=>{c.invalidateQueries({queryKey:z}),c.invalidateQueries({queryKey:x})}});return(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.row.platform}),(0,b.jsx)("span",{className:"font-mono text-xs",children:a.row.channelId}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["set ",new Date(a.row.setAt).toLocaleString()]})]}),(0,b.jsx)(q.Button,{size:"sm",variant:"outline",onClick:()=>d.mutate(),disabled:d.isPending,children:d.isPending?"…":"Clear primary"})]})}function J(a){let[e,f]=(0,d.useState)(a.nowMs);(0,d.useEffect)(()=>{if(!a.hasAnyPending)return;let b=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(b)},[a.hasAnyPending]);let g=Math.max(e,a.nowMs);return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Pending purchase tokens"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"In-flight purchase-confirmation requests waiting on the user's DM reply. Raw token strings are NEVER shown here."}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"lite-final-confirm-pointer",children:["Browser-task confirmations (non-purchase) share the same"," ",(0,b.jsx)("code",{children:"!~"})," token shape but live on their per-task detail page —"," ",(0,b.jsx)(c.default,{href:"/browser-tasks",className:"underline underline-offset-2 hover:text-foreground",children:"open Browser Tasks"})," ","to find them."]})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.tokens.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No pending purchase tokens."}):a.tokens.map(a=>(0,b.jsx)(K,{token:a,nowMs:g},a.jti))})]})})}function K(a){let c,d,f,h=(0,g.useQueryClient)(),i=(0,e.useMutation)({mutationFn:async()=>w.api.delete(`/browser-automation/purchase-tokens/${a.token.jti}`),onSuccess:()=>{h.invalidateQueries({queryKey:A})}});return(0,b.jsx)("div",{className:"rounded-md border p-3 text-sm",children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.token.siteKey}),(0,b.jsx)(p.Badge,{variant:"gray",children:a.token.status}),(0,b.jsxs)("span",{className:"font-mono text-xs text-muted-foreground",children:["jti=",a.token.jti.slice(0,8),"…"]})]}),(0,b.jsxs)("div",{children:["Total"," ",(0,b.jsx)("strong",{children:C(a.token.maxAmountMinor,a.token.currency)})]}),a.token.notesForUser&&(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Agent: ",a.token.notesForUser]}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Delivered to ",a.token.deliveredChannels.length," channel",1===a.token.deliveredChannels.length?"":"s"," ·"," ","expires in"," ",(0,b.jsx)("strong",{children:(d=Math.floor((c=Math.max(0,a.token.expiresAt-a.nowMs))/6e4),f=Math.floor(c%6e4/1e3),`${d}m ${f.toString().padStart(2,"0")}s`)})]})]}),(0,b.jsx)(q.Button,{size:"sm",variant:"destructive",onClick:()=>i.mutate(),disabled:i.isPending,children:i.isPending?(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin"}):"Cancel"})]})})}function L(a){let c=(0,d.useMemo)(()=>(function(a){let b=Date.now(),c=new Map;for(let d of a){if("confirmed"!==d.status||null===d.confirmedAmountMinor)continue;let a=`${d.siteKey}:${d.currency}`,e=c.get(a);e||(e={siteKey:d.siteKey,currency:d.currency,spentToday:0,spentWeek:0},c.set(a,e));let f=d.consumedAt??d.issuedAt;b-f<=864e5&&(e.spentToday+=d.confirmedAmountMinor),b-f<=6048e5&&(e.spentWeek+=d.confirmedAmountMinor)}return Array.from(c.values()).sort((a,b)=>b.spentWeek-a.spentWeek)})(a.tokens),[a.tokens]);return(0,b.jsx)(r.Card,{children:(0,b.jsxs)(r.CardHeader,{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-base font-semibold",children:"Recent purchases"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Confirmed + cancelled tokens. Today / week aggregates per site_key."})]}),a.loading&&(0,b.jsx)(k.Loader2,{className:"h-4 w-4 animate-spin text-muted-foreground"})]}),c.length>0&&(0,b.jsx)("div",{className:"mt-3 grid grid-cols-1 gap-2 md:grid-cols-2",children:c.map(a=>(0,b.jsxs)("div",{className:"rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.Badge,{variant:"gray",children:a.siteKey}),(0,b.jsx)(p.Badge,{children:a.currency})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:["Today: ",(0,b.jsx)("strong",{children:C(a.spentToday,a.currency)})," ","· Week: ",(0,b.jsx)("strong",{children:C(a.spentWeek,a.currency)})]})]},`${a.siteKey}:${a.currency}`))}),(0,b.jsx)("div",{className:"mt-3 space-y-2",children:0===a.tokens.length?(0,b.jsx)("div",{className:"rounded-md border border-dashed p-4 text-sm text-muted-foreground",children:"No recent purchases."}):a.tokens.slice(0,32).map(a=>(0,b.jsx)(M,{token:a},a.jti))})]})})}function M(a){let c=a.token;return(0,b.jsxs)("div",{className:"rounded-md border p-2 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:["confirmed"===c.status?(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4 text-success","aria-hidden":!0}):(0,b.jsx)(n.XCircle,{className:"h-4 w-4 text-muted-foreground","aria-hidden":!0}),(0,b.jsx)(p.Badge,{variant:"gray",children:c.siteKey}),(0,b.jsx)(p.Badge,{variant:"gray",children:c.status}),c.cancelReason&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",c.cancelReason,")"]})]}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:new Date(c.consumedAt??c.cancelledAt??c.issuedAt).toLocaleString()})]}),(0,b.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground",children:[null!==c.confirmedAmountMinor?C(c.confirmedAmountMinor,c.currency):C(c.maxAmountMinor,c.currency)," ","· jti=",c.jti.slice(0,12),"…"," ",c.orderId&&(0,b.jsxs)("span",{children:["· order=",(0,b.jsx)("strong",{children:c.orderId})]})]})]})}h.AlertTriangle,a.s(["default",0,function(){var a;let e=(0,f.useQuery)({queryKey:x,queryFn:()=>w.api.get("/browser-automation/b4/enabled"),refetchInterval:3e4,staleTime:5e3}),g=(0,f.useQuery)({queryKey:y,queryFn:()=>w.api.get("/browser-automation/b4/site-configs"),refetchInterval:3e4,staleTime:5e3}),h=(0,f.useQuery)({queryKey:z,queryFn:()=>w.api.get("/browser-automation/b4/primary-channels"),refetchInterval:3e4,staleTime:5e3}),j=(a=!!e.data?.enabled,(0,f.useQuery)({queryKey:A,queryFn:()=>w.api.get("/browser-automation/purchase-tokens"),refetchInterval:a?3e3:3e4,staleTime:1e3,enabled:!0})),[k,m]=(0,d.useState)(!1),n=(j.data?.pending.length??0)>0;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(c.default,{href:"/settings/integrations/browser-history-managed",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(i.ArrowLeft,{className:"h-3.5 w-3.5"}),"Back to Browser Automation"]}),(0,b.jsx)(u.PageHeader,{title:"Experimental purchase (B-4)",description:"DM-token-gated checkout confirmations. Aitne can be tricked. The DM-token guard is experimental and bypassable if the daemon or messaging platform is compromised. Money lost via approved purchases cannot be recovered."}),(0,b.jsxs)(o.Alert,{variant:"warning",className:"flex items-start gap-3",children:[(0,b.jsx)(l.ShieldAlert,{className:"mt-0.5 h-5 w-5","aria-hidden":!0}),(0,b.jsxs)("div",{className:"space-y-1 text-sm",children:[(0,b.jsx)("div",{className:"font-semibold",children:"Experimental — confirm with full understanding"}),(0,b.jsx)("p",{children:"Every purchase requires a fresh single-use confirmation token the daemon mints AFTER the pre-confirm screenshot. The user types the exact token back in DM. Hard-deny categories from parent plan §23 (banking, brokerages, government, healthcare, identity / legal, generic payment processors not bound to a registered commerce workflow) remain absolutely denied — no token override possible."}),(0,b.jsx)("p",{children:"You are solely responsible for every approval you type. Aitne cannot reverse a confirmed purchase."})]})]}),(0,b.jsx)(D,{enabled:e.data?.enabled??!1,primaryChannelCount:e.data?.primaryChannelCount??0,loading:e.isLoading,onRequestToggle:a=>{a?m(!0):w.api.post("/browser-automation/b4/enabled",{enabled:!1}).finally(()=>e.refetch())}}),(0,b.jsx)(E,{open:k,onClose:()=>m(!1),onConfirm:async()=>{await w.api.post("/browser-automation/b4/enabled",{enabled:!0,acknowledge:!0}),await e.refetch(),m(!1)},primaryChannelCount:e.data?.primaryChannelCount??0}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(F,{rows:g.data?.rows??[],loading:g.isLoading}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(H,{rows:h.data?.rows??[],loading:h.isLoading}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(J,{tokens:j.data?.pending??[],nowMs:j.data?.now??0,loading:j.isLoading,hasAnyPending:n}),(0,b.jsx)(v.Separator,{}),(0,b.jsx)(L,{tokens:j.data?.recent??[],loading:j.isLoading})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=0x9-_src_app_settings_integrations_browser-history-managed_b4_page_tsx_03zkdyv._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[55611,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(8753),e=a.i(62588),f=a.i(81130),g=a.i(62988),h=a.i(32307),i=a.i(45787),j=a.i(82687),k=a.i(43681),l=a.i(60622),m=a.i(92241);let n=(0,a.i(5423).default)("PlugZap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]);var o=a.i(39293),p=a.i(79159),q=a.i(50891),r=a.i(7385),s=a.i(29629),t=a.i(7384),u=a.i(21218),v=a.i(30400),w=a.i(87206),x=a.i(59974);function y({onToast:a}){let d=(0,f.useQueryClient)(),{data:g,isLoading:h}=(0,e.useQuery)({queryKey:["config"],queryFn:()=>x.api.get("/config"),staleTime:3e4}),i=(g?.browserTaskHostnameDenylist??[]).join("\n"),[j,k]=(0,c.useState)(null),[l,n]=(0,c.useState)(!1),o=!h&&void 0!==g,p=j??i,q=null!==j&&j!==i;async function r(){if(q){n(!0);try{await x.api.patch("/config",{browserTaskHostnameDenylist:Array.from(new Set(p.split(/[\s,]+/).map(a=>a.trim().toLowerCase()).filter(a=>a.length>0)))}),d.invalidateQueries({queryKey:["config"]}),k(null),a?.("success","Browser-task denylist saved")}catch(b){a?.("error",`Failed to save denylist: ${b instanceof Error?b.message:"Unknown error"}`)}finally{n(!1)}}}return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Browser-task hostname exclusions"})}),(0,b.jsxs)("div",{className:"space-y-3 px-6 pb-6",children:[(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Browser-task runs with open navigation by default. Add hostnames here to block the sub-agent from visiting them — one entry per line. A bare hostname (",(0,b.jsx)("code",{children:"paypal.com"}),") blocks the host and any subdomain (",(0,b.jsx)("code",{children:"checkout.paypal.com"}),"); a wildcard form (",(0,b.jsx)("code",{children:"*.example.com"}),") is accepted as syntactic sugar for the same. Empty by default."]}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The list is independent of the network-layer protection inside the daemon (RFC1918, loopback, cloud-metadata ",(0,b.jsx)("code",{children:"169.254.169.254"}),"), which stays on regardless. URL-pattern blocking of checkout / commit- money flows (",(0,b.jsx)("code",{children:"payment-path-blocker"}),") is also always on."]}),(0,b.jsx)("textarea",{className:"font-mono min-h-32 w-full rounded-md border bg-background p-3 text-xs",value:p,placeholder:"paypal.com\nchase.com\n*.example.com",spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",onChange:a=>k(a.target.value),disabled:!o||l}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>void r(),disabled:!q||l,children:[l?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):null,"Save"]}),q&&(0,b.jsx)(u.Button,{size:"sm",variant:"outline",onClick:function(){k(null)},disabled:l,children:"Revert"}),!o&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading…"})]})]})]})}let z=["browser-history-managed-status"],A=["browser-history-managed-setup-status"],B=["browser-automation-sites"],C=["managed-chromium-install-status"];function D({status:a,onInstall:d,pending:e}){var f;let g,h,i,k=a?.state??"idle",n="downloading"===k||"verifying"===k,o=a?.progressPercent??0,p=a?.totalMib,q=a?.downloadedMib,[r,s]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{if(!n)return;let a=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(a)},[n]);let t=a?.startedAt!=null?Math.max(0,r-a.startedAt):0,v=(h=Math.floor((g=Math.floor(t/1e3))/60),i=g%60,h>0?`${h}m ${i.toString().padStart(2,"0")}s`:`${i}s`),w=null!=q&&t>1e3?q/(t/1e3):null,x=null!=w&&w>0?`${w.toFixed(1)} MiB/s`:null;return(0,b.jsx)("div",{className:"mt-3 space-y-2",children:"completed"===k?(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-md bg-emerald-50 px-3 py-1.5 text-sm text-emerald-800 dark:bg-emerald-950/40 dark:text-emerald-300",children:[(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Chromium installed",a?.binaryPath?(0,b.jsx)("code",{className:"ml-1 text-xs text-emerald-900/70 dark:text-emerald-300/70",children:(f=a.binaryPath).length<=60?f:`…${f.slice(f.length-57)}`}):null]}):n?(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(m.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"verifying"===k?"Verifying download…":"Downloading Chromium…"]}),(0,b.jsxs)("span",{children:[o,"%",null!=q&&null!=p?` (${q} / ${p} MiB)`:null]})]}),(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-blue-500 transition-[width] duration-500",style:{width:`${Math.max(2,o)}%`},"aria-label":`Install progress ${o}%`})}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:["Elapsed ",v]}),x?(0,b.jsx)("span",{children:x}):(0,b.jsx)("span",{children:"connecting…"})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:d,disabled:e,children:[e?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(l.Download,{className:"h-4 w-4"}),"failed"===k?"Retry download (~150 MiB)":"Download Chromium (~150 MiB)"]}),"failed"===k&&a?.errorMessage?(0,b.jsx)("span",{className:"text-xs text-red-700",children:a.errorMessage}):null]})})}function E(){return(0,b.jsx)(v.Card,{tone:"warning",children:(0,b.jsxs)(v.CardHeader,{className:"items-start",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-4 w-4 text-amber-700 dark:text-amber-300"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Experimental purchase confirmations (B-4)"})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"DM-token-gated checkout flows. Default off — every safety gate (master toggle, per-site caps, primary DM channel, §23 hard-deny categories) is configured on a dedicated page."})]}),(0,b.jsxs)(g.default,{href:"/settings/integrations/browser-history-managed/b4",className:"inline-flex shrink-0 items-center gap-1.5 rounded-md border border-border bg-background px-3 py-1.5 text-sm font-medium hover:bg-accent",children:["Open B-4 settings",(0,b.jsx)(i.ArrowRight,{className:"h-3.5 w-3.5"})]})]})})}function F({state:a}){return"ready"===a?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Ready"]}):"needs_setup"===a?(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(n,{className:"mr-1 h-3.5 w-3.5"})," Needs setup"]}):"needs_reauth"===a?(0,b.jsxs)(t.Badge,{variant:"amber",children:[(0,b.jsx)(p.ShieldAlert,{className:"mr-1 h-3.5 w-3.5"})," Re-auth needed"]}):"missing_binary"===a||"missing_sandbox"===a?(0,b.jsxs)(t.Badge,{variant:"red",children:[(0,b.jsx)(r.XCircle,{className:"mr-1 h-3.5 w-3.5"})," ",a.replace("_"," ")]}):"disconnected"===a?(0,b.jsx)(t.Badge,{variant:"gray",children:"Disconnected"}):(0,b.jsx)(t.Badge,{variant:"gray",children:"Off"})}function G({status:a,onAccept:d,pending:e,enableError:f,installStatus:g,onInstall:h,installPending:i}){let j="none"===a.sandboxPrimitive,k=!a.chromiumBinaryFound,l=g?.state??"idle",n="downloading"===l||"verifying"===l,[o,r]=(0,c.useState)(!1),t=(0,c.useRef)(d);(0,c.useEffect)(()=>{t.current=d},[d]),(0,c.useEffect)(()=>{!o||k||(r(!1),t.current())},[k,o]),(0,c.useEffect)(()=>{"failed"===l&&o&&r(!1)},[l,o]);let w="failed"===l,x=k&&(n||o),y=k?x?"Installing Chromium…":w?"Retry: download Chromium then enable":"Download Chromium (~150 MiB) then enable":"I understand — enable Browser Automation",z=e||i||x,A=f instanceof Error?f.message:null;return(0,b.jsxs)(v.Card,{tone:"warning",children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-5 w-5 text-amber-700 dark:text-amber-300"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Consent required to enable Browser Automation"})]})}),(0,b.jsxs)("div",{className:"space-y-4 text-sm leading-relaxed text-foreground",children:[(0,b.jsx)("p",{children:"Aitne wants to run a dedicated Chromium browser signed in to your Google account so it can continuously sync your phone's browser history and, on opt-in, drive open-ended tasks on signed-in sites."}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border bg-background/60 p-3 dark:bg-background/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-amber-700 dark:text-amber-300",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-3.5 w-3.5"})," Risk"]}),(0,b.jsx)("p",{className:"mt-1.5",children:"Aitne holds an OAuth refresh token for your Google account. If the daemon were ever compromised, an attacker could use that token to access your Gmail, Drive, Calendar, and other Google services."})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border bg-background/60 p-3 dark:bg-background/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-emerald-700 dark:text-emerald-300",children:[(0,b.jsx)(q.ShieldCheck,{className:"h-3.5 w-3.5"})," Mitigations"]}),(0,b.jsxs)("p",{className:"mt-1.5",children:["Chromium runs under an OS-level sandbox (",(0,b.jsx)("code",{className:"font-mono text-xs",children:a.sandboxPrimitive}),") and cannot exfiltrate to arbitrary networks. The agent layer has no tool capable of reading the profile directory. Disconnecting at any time removes the token from this machine."]})]})]}),j&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"No sandbox primitive detected on this host."}),(0,b.jsxs)("p",{className:"mt-1",children:["Enabling will run Chromium unsandboxed. We strongly recommend installing ",(0,b.jsx)("code",{className:"mx-1",children:"bubblewrap"})," or"," ",(0,b.jsx)("code",{className:"mx-1",children:"systemd-run"})," before proceeding."]})]}),k&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"Chromium isn't installed yet."}),(0,b.jsx)("p",{className:"mt-1",children:"Clicking the button below will download the Playwright-managed Chromium build (~150 MiB) into your Playwright cache and then enable Browser Automation. You can also start the download manually here:"}),(0,b.jsx)(D,{status:g,onInstall:h,pending:i}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["OS-package alternative — macOS:"," ",(0,b.jsx)("code",{children:"brew install --cask chromium"}),"; Debian/Ubuntu:"," ",(0,b.jsx)("code",{children:"sudo apt install chromium"}),"; Fedora:"," ",(0,b.jsx)("code",{children:"sudo dnf install chromium"}),"; Windows:"," ",(0,b.jsx)("code",{children:"winget install Hibbiki.Chromium"})," (or"," ",(0,b.jsx)("code",{children:"choco install chromium"}),")."]})]}),A&&(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Enable failed."}),(0,b.jsx)("p",{className:"mt-1",children:A})]}),(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("strong",{className:"font-medium text-foreground",children:"Alternative."})," ","The unmanaged Browser History integration on the other settings page works against your existing Chrome installation without holding an OAuth token."]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 pt-1",children:(0,b.jsxs)(u.Button,{onClick:()=>{if(k){r(!0),n||h();return}d()},disabled:z,size:"sm",children:[e||x?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(q.ShieldCheck,{className:"h-4 w-4"}),y]})})]})]})}function H({status:a,sandboxLabel:c}){return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Sync status"})}),(0,b.jsxs)("dl",{className:"grid grid-cols-1 gap-x-6 gap-y-2 text-sm sm:grid-cols-2",children:[(0,b.jsx)(I,{label:"Signed-in user",value:a.signedInUser??"—"}),(0,b.jsx)(I,{label:"Sandbox",value:c}),(0,b.jsx)(I,{label:"Last successful check",value:a.lastCheckAt?L(a.lastCheckAt):"Never"}),(0,b.jsx)(I,{label:"Last sync (History mtime)",value:a.lastSyncAt?L(a.lastSyncAt):"Never"}),(0,b.jsx)(I,{label:"Consecutive failures",value:String(a.consecutiveFailures)}),(0,b.jsx)(I,{label:"Paused until",value:a.pausedUntil?L(a.pausedUntil):"—"}),(0,b.jsx)(I,{label:"Chromium binary",value:a.chromiumBinaryFound?"Found":"Not installed"}),(0,b.jsx)(I,{label:"Display present",value:a.hasDisplay?"Yes":"No"})]})]})}function I({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:"w-44 shrink-0 text-muted-foreground",children:a}),(0,b.jsx)("span",{className:"font-mono text-foreground",children:c})]})}function J({setupStatus:a,onFinish:c,finishPending:d}){let e=a?.state==="running"&&a.signedIn;return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Clock3,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Sign-in in progress"})]})}),(0,b.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,b.jsx)("p",{children:"A Chromium window is open. Complete the Google sign-in (including 2FA if prompted). Once you're signed in, the dashboard will automatically detect the change and you can confirm below."}),(0,b.jsx)("div",{className:"flex items-center gap-3",children:e?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Signed in as"," ",a?.observedUser??"(unknown)"]}):(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(m.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"})," Waiting for sign-in…"]})}),(0,b.jsx)("div",{children:(0,b.jsxs)(u.Button,{onClick:c,disabled:!e||d,size:"sm",children:[d?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Confirm + close sign-in window"]})})]})]})}function K({status:a,onSetup:c,setupPending:d,onReconnect:e,reconnectPending:f,onDisconnect:g,disconnectPending:i}){let j="needs_setup"===a.state&&a.chromiumBinaryFound&&"none"!==a.sandboxPrimitive,k="needs_reauth"===a.state||"ready"===a.state;return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Actions"})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:c,disabled:!j||d,children:[d?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n,{className:"h-4 w-4"}),"Connect Google account"]}),(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",onClick:e,disabled:!k||f,children:[f?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(o.RefreshCw,{className:"h-4 w-4"}),"Reconnect / re-authenticate"]}),(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",className:"border-red-500 text-red-700 hover:bg-red-50 dark:border-red-700 dark:text-red-400 dark:hover:bg-red-950/40",onClick:g,disabled:i,children:[i?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h.AlertTriangle,{className:"h-4 w-4"}),"Disconnect"]})]}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["Disconnect quits the managed Chromium, deletes the profile directory from this device, and clears the cached state. Revoke the OAuth grant separately at"," ",(0,b.jsx)("a",{href:"https://myaccount.google.com/permissions",className:"underline",target:"_blank",rel:"noreferrer",children:"myaccount.google.com/permissions"})," ","for full account-side revocation."]})]})}function L(a){return new Date(a).toLocaleString()}function M({sites:a,isLoading:c,onMutated:d}){return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Authenticated sites"})}),(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Sign in once per site to let Aitne run authenticated browser tasks (e.g. fetch your Amazon order history). Each site keeps a separate profile dir under"," ",(0,b.jsx)("code",{children:"~/.personal-agent/chromium-automation-auth/<site>/"}),"; cookies for one site are never reachable from another."]}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[c&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"})," Loading sites…"]}),!c&&0===a.length&&(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["No sites registered. Add an entry to"," ",(0,b.jsx)("code",{children:"site-registry.ts"})," and rebuild the daemon."]}),a.map(a=>(0,b.jsx)(N,{site:a,onMutated:d},a.siteKey))]})]})}function N({site:a,onMutated:c}){var f;let g=(f="bootstrap_running"===a.state?a.siteKey:null,(0,e.useQuery)({queryKey:["browser-automation-site-status",f],queryFn:()=>x.api.get(`/browser-automation/sites/${f}/status`),refetchInterval:!!f&&2e3,enabled:!!f,staleTime:1e3})),i=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/connect`,{}),onSettled:c}),l=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/finalize`,{}),onSettled:c}),q=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/reauth`,{}),onSettled:c}),r=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/disconnect`,{}),onSettled:c}),s="connected"===a.state?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Connected"]}):"bootstrap_running"===a.state?(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(m.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"})," Signing in…"]}):"needs_reauth"===a.state?(0,b.jsxs)(t.Badge,{variant:"amber",children:[(0,b.jsx)(p.ShieldAlert,{className:"mr-1 h-3.5 w-3.5"})," Re-auth needed"]}):(0,b.jsx)(t.Badge,{variant:"gray",children:"Not connected"});return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-semibold",children:a.displayName}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[(0,b.jsx)("code",{children:a.siteKey})," · session max"," ",a.sessionMaxAgeDays," d",a.accountLabel?` \xb7 ${a.accountLabel}`:"",a.connectedAt?` \xb7 connected ${L(a.connectedAt)}`:""]})]}),s]}),"bootstrap_running"===a.state&&(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-blue-200 bg-blue-50 p-3 text-xs text-blue-900 dark:border-blue-900 dark:bg-blue-950/40 dark:text-blue-200",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(k.Clock3,{className:"h-3.5 w-3.5"})," Sign-in window open"]}),(0,b.jsxs)("p",{className:"mt-1",children:["Complete the sign-in in the Chromium window that just opened. Aitne is watching for"," ",(0,b.jsx)("code",{className:"font-mono",children:g.data?.signedIn?`the signed-in selector (detected${g.data.accountLabel?` as ${g.data.accountLabel}`:""})`:"the signed-in selector to resolve"}),"."]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>l.mutate(),disabled:!g.data?.signedIn||l.isPending,children:[l.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Confirm + close window"]})})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:["not_connected"===a.state&&(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>i.mutate(),disabled:i.isPending,children:[i.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n,{className:"h-4 w-4"}),"Connect ",a.displayName]}),("needs_reauth"===a.state||"connected"===a.state)&&(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",onClick:()=>q.mutate(),disabled:q.isPending,children:[q.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(o.RefreshCw,{className:"h-4 w-4"}),"Re-authenticate"]}),("connected"===a.state||"needs_reauth"===a.state||"bootstrap_running"===a.state)&&(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",className:"border-red-500 text-red-700 hover:bg-red-50 dark:border-red-700 dark:text-red-400 dark:hover:bg-red-950/40",onClick:()=>r.mutate(),disabled:r.isPending,children:[r.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h.AlertTriangle,{className:"h-4 w-4"}),"Disconnect"]})]})]})}a.s(["default",0,function(){var a;let g=(0,f.useQueryClient)(),h=(0,e.useQuery)({queryKey:z,queryFn:()=>x.api.get("/browser-history/managed/status"),refetchInterval:15e3,staleTime:5e3}),i=h.data,j=!!i?.bootstrapInProgress,k=(0,e.useQuery)({queryKey:A,queryFn:()=>x.api.get("/browser-history/managed/setup-status"),refetchInterval:!!j&&2e3,enabled:j,staleTime:1e3}),l=i?.state==="ready",n=(a=!!l,(0,e.useQuery)({queryKey:B,queryFn:()=>x.api.get("/browser-automation/sites"),refetchInterval:!!a&&15e3,enabled:a,staleTime:5e3})),o=(0,e.useQuery)({queryKey:C,queryFn:()=>x.api.get("/browser-history/managed/install-chromium/status"),refetchInterval:a=>{let b=a.state.data?.state;return"downloading"===b||"verifying"===b?1e3:5e3},staleTime:500}),p=o.data?.state==="downloading"||o.data?.state==="verifying",q=o.data,r=q?.state==="completed";(0,c.useEffect)(()=>{r&&g.invalidateQueries({queryKey:z})},[r,g]);let t=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/install-chromium",{}),onSettled:()=>{g.invalidateQueries({queryKey:C}),g.invalidateQueries({queryKey:z})}}),I=(0,d.useMutation)({mutationFn:a=>x.api.post("/browser-history/managed/enable",a),onSettled:()=>g.invalidateQueries({queryKey:z})}),L=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/setup",{}),onSettled:()=>{g.invalidateQueries({queryKey:z}),g.invalidateQueries({queryKey:A})}}),N=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/setup-finish",{}),onSettled:()=>{g.invalidateQueries({queryKey:z}),g.invalidateQueries({queryKey:A})}}),O=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/reconnect",{}),onSettled:()=>{g.invalidateQueries({queryKey:z}),g.invalidateQueries({queryKey:A})}}),P=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/disconnect",{}),onSettled:()=>g.invalidateQueries({queryKey:z})}),Q=(0,c.useMemo)(()=>{let a=i?.sandboxPrimitive??"none";return"none"===a?"None (unsandboxed)":"sandbox-exec"===a?"macOS sandbox-exec":"bubblewrap"===a?"Linux bubblewrap":"systemd-run"===a?"Linux systemd-run":"appcontainer-jobobject"===a?"Windows AppContainer":a},[i?.sandboxPrimitive]);if(h.isLoading)return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation."}),(0,b.jsx)(v.Card,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),(0,b.jsx)("span",{children:"Loading managed Chromium status…"})]})})]});if(!i)return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation."}),(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Status unavailable."}),(0,b.jsx)("p",{className:"mt-1",children:"The daemon did not return a status payload for Browser Automation. Check the daemon logs and reload this page."})]})]});let R=i.enabled;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation.",actions:(0,b.jsx)(F,{state:i.state})}),!R&&(0,b.jsx)(G,{status:i,onAccept:()=>I.mutate({enabled:!0,unsandboxedOptIn:"none"===i.sandboxPrimitive||void 0}),pending:I.isPending,enableError:I.error,installStatus:q??null,onInstall:()=>t.mutate(),installPending:t.isPending||p}),R&&(0,b.jsxs)(b.Fragment,{children:["missing_binary"===i.state&&(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Chromium binary not found."}),(0,b.jsx)("p",{className:"mt-1",children:"Aitne can download the Playwright-managed Chromium build (~150 MiB) into your Playwright cache, or you can install Chromium via your OS package manager."}),(0,b.jsx)(D,{status:q??null,onInstall:()=>t.mutate(),pending:t.isPending}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["OS-package alternative — macOS:"," ",(0,b.jsx)("code",{children:"brew install --cask chromium"}),"; Debian/Ubuntu:"," ",(0,b.jsx)("code",{children:"sudo apt install chromium"}),"; Fedora:"," ",(0,b.jsx)("code",{children:"sudo dnf install chromium"}),"; Windows:"," ",(0,b.jsx)("code",{children:"winget install Hibbiki.Chromium"})," (or"," ",(0,b.jsx)("code",{children:"choco install chromium"}),")."]})]}),"missing_sandbox"===i.state&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"No OS sandbox primitive available."}),(0,b.jsxs)("p",{className:"mt-1",children:["The host has neither ",(0,b.jsx)("code",{children:"bwrap"})," nor ",(0,b.jsx)("code",{children:"systemd-run"})," on PATH. Install ",(0,b.jsx)("code",{children:"bubblewrap"})," (",(0,b.jsx)("code",{children:"sudo apt install bubblewrap"}),") or explicitly opt in to unsandboxed mode below."]}),(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(u.Button,{size:"sm",onClick:()=>I.mutate({enabled:!0,unsandboxedOptIn:!0}),disabled:I.isPending,children:"Enable unsandboxed (not recommended)"})})]}),(0,b.jsx)(H,{status:i,sandboxLabel:Q}),j?(0,b.jsx)(J,{setupStatus:k.data,onFinish:()=>N.mutate(),finishPending:N.isPending}):(0,b.jsx)(K,{status:i,onSetup:()=>L.mutate(),setupPending:L.isPending,onReconnect:()=>O.mutate(),reconnectPending:O.isPending,onDisconnect:()=>P.mutate(),disconnectPending:P.isPending}),l&&(0,b.jsx)(M,{sites:n.data?.sites??[],isLoading:n.isLoading,onMutated:()=>{g.invalidateQueries({queryKey:B})}}),l&&(0,b.jsx)(E,{})]}),(0,b.jsx)(y,{})]})}],55611)}];
1
+ module.exports=[55611,a=>{"use strict";var b=a.i(39752),c=a.i(34542),d=a.i(8753),e=a.i(62588),f=a.i(81130),g=a.i(62988),h=a.i(32307),i=a.i(45787),j=a.i(82687),k=a.i(43681),l=a.i(60622),m=a.i(92241);let n=(0,a.i(5423).default)("PlugZap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]);var o=a.i(39293),p=a.i(79159),q=a.i(50891),r=a.i(7385),s=a.i(29629),t=a.i(7384),u=a.i(21218),v=a.i(30400),w=a.i(87206),x=a.i(59974);function y({onToast:a}){let d=(0,f.useQueryClient)(),{data:g,isLoading:h}=(0,e.useQuery)({queryKey:["config"],queryFn:()=>x.api.get("/config"),staleTime:3e4}),i=(g?.browserTaskHostnameDenylist??[]).join("\n"),[j,k]=(0,c.useState)(null),[l,n]=(0,c.useState)(!1),o=!h&&void 0!==g,p=j??i,q=null!==j&&j!==i;async function r(){if(q){n(!0);try{await x.api.patch("/config",{browserTaskHostnameDenylist:Array.from(new Set(p.split(/[\s,]+/).map(a=>a.trim().toLowerCase()).filter(a=>a.length>0)))}),d.invalidateQueries({queryKey:["config"]}),k(null),a?.("success","Browser-task denylist saved")}catch(b){a?.("error",`Failed to save denylist: ${b instanceof Error?b.message:"Unknown error"}`)}finally{n(!1)}}}return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Browser-task hostname exclusions"})}),(0,b.jsxs)("div",{className:"space-y-3 px-6 pb-6",children:[(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Browser-task runs with open navigation by default. Add hostnames here to block the sub-agent from visiting them — one entry per line. A bare hostname (",(0,b.jsx)("code",{children:"paypal.com"}),") blocks the host and any subdomain (",(0,b.jsx)("code",{children:"checkout.paypal.com"}),"); a wildcard form (",(0,b.jsx)("code",{children:"*.example.com"}),") is accepted as syntactic sugar for the same. Empty by default."]}),(0,b.jsxs)("p",{className:"text-xs text-muted-foreground",children:["The list is independent of the network-layer protection inside the daemon (RFC1918, loopback, cloud-metadata ",(0,b.jsx)("code",{children:"169.254.169.254"}),"), which stays on regardless. URL-pattern blocking of checkout / commit- money flows (",(0,b.jsx)("code",{children:"payment-path-blocker"}),") is also always on."]}),(0,b.jsx)("textarea",{className:"font-mono min-h-32 w-full rounded-md border bg-background p-3 text-xs",value:p,placeholder:"paypal.com\nchase.com\n*.example.com",spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",onChange:a=>k(a.target.value),disabled:!o||l}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>void r(),disabled:!q||l,children:[l?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):null,"Save"]}),q&&(0,b.jsx)(u.Button,{size:"sm",variant:"outline",onClick:function(){k(null)},disabled:l,children:"Revert"}),!o&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"Loading…"})]})]})]})}var z=a.i(48558),A=a.i(63251);let B=A.MANAGED_STATUS_QUERY_KEY,C=A.AUTOMATION_SITES_QUERY_KEY,D=["browser-history-managed-setup-status"],E=["managed-chromium-install-status"];function F({status:a,onInstall:d,pending:e}){var f;let g,h,i,k=a?.state??"idle",n="downloading"===k||"verifying"===k,o=a?.progressPercent??0,p=a?.totalMib,q=a?.downloadedMib,[r,s]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{if(!n)return;let a=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(a)},[n]);let t=a?.startedAt!=null?Math.max(0,r-a.startedAt):0,v=(h=Math.floor((g=Math.floor(t/1e3))/60),i=g%60,h>0?`${h}m ${i.toString().padStart(2,"0")}s`:`${i}s`),w=null!=q&&t>1e3?q/(t/1e3):null,x=null!=w&&w>0?`${w.toFixed(1)} MiB/s`:null;return(0,b.jsx)("div",{className:"mt-3 space-y-2",children:"completed"===k?(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-md bg-success/10 px-3 py-1.5 text-sm text-success",children:[(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Chromium installed",a?.binaryPath?(0,b.jsx)("code",{className:"ml-1 text-xs text-success/70",children:(f=a.binaryPath).length<=60?f:`…${f.slice(f.length-57)}`}):null]}):n?(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(m.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"verifying"===k?"Verifying download…":"Downloading Chromium…"]}),(0,b.jsxs)("span",{children:[o,"%",null!=q&&null!=p?` (${q} / ${p} MiB)`:null]})]}),(0,b.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-primary transition-[width] duration-500",style:{width:`${Math.max(2,o)}%`},"aria-label":`Install progress ${o}%`})}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground",children:[(0,b.jsxs)("span",{children:["Elapsed ",v]}),x?(0,b.jsx)("span",{children:x}):(0,b.jsx)("span",{children:"connecting…"})]})]}):(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:d,disabled:e,children:[e?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(l.Download,{className:"h-4 w-4"}),"failed"===k?"Retry download (~150 MiB)":"Download Chromium (~150 MiB)"]}),"failed"===k&&a?.errorMessage?(0,b.jsx)("span",{className:"text-xs text-destructive",children:a.errorMessage}):null]})})}function G(){return(0,b.jsx)(v.Card,{tone:"warning",children:(0,b.jsxs)(v.CardHeader,{className:"items-start",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-4 w-4 text-warning"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Experimental purchase confirmations (B-4)"})]}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"DM-token-gated checkout flows. Default off — every safety gate (master toggle, per-site caps, primary DM channel, §23 hard-deny categories) is configured on a dedicated page."})]}),(0,b.jsxs)(g.default,{href:"/settings/integrations/browser-history-managed/b4",className:"inline-flex shrink-0 items-center gap-1.5 rounded-md border border-border bg-background px-3 py-1.5 text-sm font-medium hover:bg-accent",children:["Open B-4 settings",(0,b.jsx)(i.ArrowRight,{className:"h-3.5 w-3.5"})]})]})})}function H({state:a}){return"ready"===a?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Ready"]}):"needs_setup"===a?(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(n,{className:"mr-1 h-3.5 w-3.5"})," Needs setup"]}):"needs_reauth"===a?(0,b.jsxs)(t.Badge,{variant:"amber",children:[(0,b.jsx)(p.ShieldAlert,{className:"mr-1 h-3.5 w-3.5"})," Re-auth needed"]}):"missing_binary"===a||"missing_sandbox"===a?(0,b.jsxs)(t.Badge,{variant:"red",children:[(0,b.jsx)(r.XCircle,{className:"mr-1 h-3.5 w-3.5"})," ",a.replace("_"," ")]}):"disconnected"===a?(0,b.jsx)(t.Badge,{variant:"gray",children:"Disconnected"}):(0,b.jsx)(t.Badge,{variant:"gray",children:"Off"})}function I({status:a,onAccept:d,pending:e,enableError:f,installStatus:g,onInstall:h,installPending:i}){let j="none"===a.sandboxPrimitive,k=!a.chromiumBinaryFound,l=g?.state??"idle",n="downloading"===l||"verifying"===l,[o,r]=(0,c.useState)(!1),t=(0,c.useRef)(d);(0,c.useEffect)(()=>{t.current=d},[d]),(0,c.useEffect)(()=>{!o||k||(r(!1),t.current())},[k,o]),(0,c.useEffect)(()=>{"failed"===l&&o&&r(!1)},[l,o]);let w="failed"===l,x=k&&(n||o),y=k?x?"Installing Chromium…":w?"Retry: download Chromium then enable":"Download Chromium (~150 MiB) then enable":"I understand — enable Browser Automation",z=e||i||x,A=f instanceof Error?f.message:null;return(0,b.jsxs)(v.Card,{tone:"warning",children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-5 w-5 text-warning"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Consent required to enable Browser Automation"})]})}),(0,b.jsxs)("div",{className:"space-y-4 text-sm leading-relaxed text-foreground",children:[(0,b.jsx)("p",{children:"Aitne wants to run a dedicated Chromium browser signed in to your Google account so it can continuously sync your phone's browser history and, on opt-in, drive open-ended tasks on signed-in sites."}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"rounded-md border border-border bg-background/60 p-3 dark:bg-background/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-warning",children:[(0,b.jsx)(p.ShieldAlert,{className:"h-3.5 w-3.5"})," Risk"]}),(0,b.jsx)("p",{className:"mt-1.5",children:"Aitne holds an OAuth refresh token for your Google account. If the daemon were ever compromised, an attacker could use that token to access your Gmail, Drive, Calendar, and other Google services."})]}),(0,b.jsxs)("div",{className:"rounded-md border border-border bg-background/60 p-3 dark:bg-background/30",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-success",children:[(0,b.jsx)(q.ShieldCheck,{className:"h-3.5 w-3.5"})," Mitigations"]}),(0,b.jsxs)("p",{className:"mt-1.5",children:["Chromium runs under an OS-level sandbox (",(0,b.jsx)("code",{className:"font-mono text-xs",children:a.sandboxPrimitive}),") and cannot exfiltrate to arbitrary networks. The agent layer has no tool capable of reading the profile directory. Disconnecting at any time removes the token from this machine."]})]})]}),j&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"No sandbox primitive detected on this host."}),(0,b.jsxs)("p",{className:"mt-1",children:["Enabling will run Chromium unsandboxed. We strongly recommend installing ",(0,b.jsx)("code",{className:"mx-1",children:"bubblewrap"})," or"," ",(0,b.jsx)("code",{className:"mx-1",children:"systemd-run"})," before proceeding."]})]}),k&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"Chromium isn't installed yet."}),(0,b.jsx)("p",{className:"mt-1",children:"Clicking the button below will download the Playwright-managed Chromium build (~150 MiB) into your Playwright cache and then enable Browser Automation. You can also start the download manually here:"}),(0,b.jsx)(F,{status:g,onInstall:h,pending:i}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["OS-package alternative — macOS:"," ",(0,b.jsx)("code",{children:"brew install --cask chromium"}),"; Debian/Ubuntu:"," ",(0,b.jsx)("code",{children:"sudo apt install chromium"}),"; Fedora:"," ",(0,b.jsx)("code",{children:"sudo dnf install chromium"}),"; Windows:"," ",(0,b.jsx)("code",{children:"winget install Hibbiki.Chromium"})," (or"," ",(0,b.jsx)("code",{children:"choco install chromium"}),")."]})]}),A&&(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Enable failed."}),(0,b.jsx)("p",{className:"mt-1",children:A})]}),(0,b.jsxs)("p",{className:"text-muted-foreground",children:[(0,b.jsx)("strong",{className:"font-medium text-foreground",children:"Alternative."})," ","The unmanaged Browser History integration on the other settings page works against your existing Chrome installation without holding an OAuth token."]}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 pt-1",children:(0,b.jsxs)(u.Button,{onClick:()=>{if(k){r(!0),n||h();return}d()},disabled:z,size:"sm",children:[e||x?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(q.ShieldCheck,{className:"h-4 w-4"}),y]})})]})]})}function J({status:a,sandboxLabel:c}){return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Sync status"})}),(0,b.jsxs)("dl",{className:"grid grid-cols-1 gap-x-6 gap-y-2 text-sm sm:grid-cols-2",children:[(0,b.jsx)(K,{label:"Signed-in user",value:a.signedInUser??"—"}),(0,b.jsx)(K,{label:"Sandbox",value:c}),(0,b.jsx)(K,{label:"Last successful check",value:(0,z.formatTimestamp)(a.lastCheckAt,"Never")}),(0,b.jsx)(K,{label:"Last sync (History mtime)",value:(0,z.formatTimestamp)(a.lastSyncAt,"Never")}),(0,b.jsx)(K,{label:"Consecutive failures",value:String(a.consecutiveFailures)}),(0,b.jsx)(K,{label:"Paused until",value:(0,z.formatTimestamp)(a.pausedUntil)}),(0,b.jsx)(K,{label:"Chromium binary",value:a.chromiumBinaryFound?"Found":"Not installed"}),(0,b.jsx)(K,{label:"Display present",value:a.hasDisplay?"Yes":"No"})]})]})}function K({label:a,value:c}){return(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:"w-44 shrink-0 text-muted-foreground",children:a}),(0,b.jsx)("span",{className:"font-mono text-foreground",children:c})]})}function L({setupStatus:a,onFinish:c,finishPending:d}){let e=a?.state==="running"&&a.signedIn;return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.Clock3,{className:"h-5 w-5 text-primary"}),(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Sign-in in progress"})]})}),(0,b.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,b.jsx)("p",{children:"A Chromium window is open. Complete the Google sign-in (including 2FA if prompted). Once you're signed in, the dashboard will automatically detect the change and you can confirm below."}),(0,b.jsx)("div",{className:"flex items-center gap-3",children:e?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Signed in as"," ",a?.observedUser??"(unknown)"]}):(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(m.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"})," Waiting for sign-in…"]})}),(0,b.jsx)("div",{children:(0,b.jsxs)(u.Button,{onClick:c,disabled:!e||d,size:"sm",children:[d?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Confirm + close sign-in window"]})})]})]})}function M({status:a,onSetup:c,setupPending:d,onReconnect:e,reconnectPending:f,onDisconnect:g,disconnectPending:i}){let j="needs_setup"===a.state&&a.chromiumBinaryFound&&"none"!==a.sandboxPrimitive,k="needs_reauth"===a.state||"ready"===a.state;return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Actions"})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(u.Button,{size:"sm",onClick:c,disabled:!j||d,children:[d?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n,{className:"h-4 w-4"}),"Connect Google account"]}),(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",onClick:e,disabled:!k||f,children:[f?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(o.RefreshCw,{className:"h-4 w-4"}),"Reconnect / re-authenticate"]}),(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",className:"border-destructive text-destructive hover:bg-destructive/10",onClick:g,disabled:i,children:[i?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h.AlertTriangle,{className:"h-4 w-4"}),"Disconnect"]})]}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["Disconnect quits the managed Chromium, deletes the profile directory from this device, and clears the cached state. Revoke the OAuth grant separately at"," ",(0,b.jsx)("a",{href:"https://myaccount.google.com/permissions",className:"underline",target:"_blank",rel:"noreferrer",children:"myaccount.google.com/permissions"})," ","for full account-side revocation."]})]})}function N({sites:a,isLoading:c,onMutated:d}){return(0,b.jsxs)(v.Card,{children:[(0,b.jsx)(v.CardHeader,{children:(0,b.jsx)(v.CardTitle,{className:"text-base",children:"Authenticated sites"})}),(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Sign in once per site to let Aitne run authenticated browser tasks (e.g. fetch your Amazon order history). Each site keeps a separate profile dir under"," ",(0,b.jsx)("code",{children:"~/.personal-agent/chromium-automation-auth/<site>/"}),"; cookies for one site are never reachable from another."]}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[c&&(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"})," Loading sites…"]}),!c&&0===a.length&&(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:["No sites registered. Add an entry to"," ",(0,b.jsx)("code",{children:"site-registry.ts"})," and rebuild the daemon."]}),a.map(a=>(0,b.jsx)(O,{site:a,onMutated:d},a.siteKey))]})]})}function O({site:a,onMutated:c}){var f;let g=(f="bootstrap_running"===a.state?a.siteKey:null,(0,e.useQuery)({queryKey:["browser-automation-site-status",f],queryFn:()=>x.api.get(`/browser-automation/sites/${f}/status`),refetchInterval:!!f&&2e3,enabled:!!f,staleTime:1e3})),i=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/connect`,{}),onSettled:c}),l=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/finalize`,{}),onSettled:c}),q=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/reauth`,{}),onSettled:c}),r=(0,d.useMutation)({mutationFn:()=>x.api.post(`/browser-automation/sites/${a.siteKey}/disconnect`,{}),onSettled:c}),s="connected"===a.state?(0,b.jsxs)(t.Badge,{variant:"green",children:[(0,b.jsx)(j.CheckCircle2,{className:"mr-1 h-3.5 w-3.5"})," Connected"]}):"bootstrap_running"===a.state?(0,b.jsxs)(t.Badge,{variant:"gray",children:[(0,b.jsx)(m.Loader2,{className:"mr-1 h-3.5 w-3.5 animate-spin"})," Signing in…"]}):"needs_reauth"===a.state?(0,b.jsxs)(t.Badge,{variant:"amber",children:[(0,b.jsx)(p.ShieldAlert,{className:"mr-1 h-3.5 w-3.5"})," Re-auth needed"]}):(0,b.jsx)(t.Badge,{variant:"gray",children:"Not connected"});return(0,b.jsxs)("div",{className:"rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-sm font-semibold",children:a.displayName}),(0,b.jsxs)("div",{className:"text-xs text-muted-foreground",children:[(0,b.jsx)("code",{children:a.siteKey})," · session max"," ",a.sessionMaxAgeDays," d",a.accountLabel?` \xb7 ${a.accountLabel}`:"",a.connectedAt?` \xb7 connected ${(0,z.formatTimestamp)(a.connectedAt)}`:""]})]}),s]}),"bootstrap_running"===a.state&&(0,b.jsxs)("div",{className:"mt-3 rounded-md border border-primary/40 bg-primary/10 p-3 text-xs text-primary",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 font-medium",children:[(0,b.jsx)(k.Clock3,{className:"h-3.5 w-3.5"})," Sign-in window open"]}),(0,b.jsxs)("p",{className:"mt-1",children:["Complete the sign-in in the Chromium window that just opened. Aitne is watching for"," ",(0,b.jsx)("code",{className:"font-mono",children:g.data?.signedIn?`the signed-in selector (detected${g.data.accountLabel?` as ${g.data.accountLabel}`:""})`:"the signed-in selector to resolve"}),"."]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>l.mutate(),disabled:!g.data?.signedIn||l.isPending,children:[l.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(j.CheckCircle2,{className:"h-4 w-4"}),"Confirm + close window"]})})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:["not_connected"===a.state&&(0,b.jsxs)(u.Button,{size:"sm",onClick:()=>i.mutate(),disabled:i.isPending,children:[i.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(n,{className:"h-4 w-4"}),"Connect ",a.displayName]}),("needs_reauth"===a.state||"connected"===a.state)&&(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",onClick:()=>q.mutate(),disabled:q.isPending,children:[q.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(o.RefreshCw,{className:"h-4 w-4"}),"Re-authenticate"]}),("connected"===a.state||"needs_reauth"===a.state||"bootstrap_running"===a.state)&&(0,b.jsxs)(u.Button,{size:"sm",variant:"outline",className:"border-destructive text-destructive hover:bg-destructive/10",onClick:()=>r.mutate(),disabled:r.isPending,children:[r.isPending?(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h.AlertTriangle,{className:"h-4 w-4"}),"Disconnect"]})]})]})}a.s(["default",0,function(){let a=(0,f.useQueryClient)(),g=(0,A.useManagedStatus)(15e3),h=g.data,i=!!h?.bootstrapInProgress,j=(0,e.useQuery)({queryKey:D,queryFn:()=>x.api.get("/browser-history/managed/setup-status"),refetchInterval:!!i&&2e3,enabled:i,staleTime:1e3}),k=h?.state==="ready",l=(0,A.useAutomationSites)(!!k),n=(0,e.useQuery)({queryKey:E,queryFn:()=>x.api.get("/browser-history/managed/install-chromium/status"),refetchInterval:a=>{let b=a.state.data?.state;return"downloading"===b||"verifying"===b?1e3:5e3},staleTime:500}),o=n.data?.state==="downloading"||n.data?.state==="verifying",p=n.data,q=p?.state==="completed";(0,c.useEffect)(()=>{q&&a.invalidateQueries({queryKey:B})},[q,a]);let r=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/install-chromium",{}),onSettled:()=>{a.invalidateQueries({queryKey:E}),a.invalidateQueries({queryKey:B})}}),t=(0,d.useMutation)({mutationFn:a=>x.api.post("/browser-history/managed/enable",a),onSettled:()=>a.invalidateQueries({queryKey:B})}),z=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/setup",{}),onSettled:()=>{a.invalidateQueries({queryKey:B}),a.invalidateQueries({queryKey:D})}}),K=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/setup-finish",{}),onSettled:()=>{a.invalidateQueries({queryKey:B}),a.invalidateQueries({queryKey:D})}}),O=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/reconnect",{}),onSettled:()=>{a.invalidateQueries({queryKey:B}),a.invalidateQueries({queryKey:D})}}),P=(0,d.useMutation)({mutationFn:()=>x.api.post("/browser-history/managed/disconnect",{}),onSettled:()=>a.invalidateQueries({queryKey:B})}),Q=(0,c.useMemo)(()=>{let a=h?.sandboxPrimitive??"none";return"none"===a?"None (unsandboxed)":"sandbox-exec"===a?"macOS sandbox-exec":"bubblewrap"===a?"Linux bubblewrap":"systemd-run"===a?"Linux systemd-run":"appcontainer-jobobject"===a?"Windows AppContainer":a},[h?.sandboxPrimitive]);if(g.isLoading)return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation."}),(0,b.jsx)(v.Card,{children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-muted-foreground",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),(0,b.jsx)("span",{children:"Loading managed Chromium status…"})]})})]});if(!h)return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation."}),(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Status unavailable."}),(0,b.jsx)("p",{className:"mt-1",children:"The daemon did not return a status payload for Browser Automation. Check the daemon logs and reload this page."})]})]});let R=h.enabled;return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(w.PageHeader,{title:"Browser Automation",description:"Optional daemon-supervised Chromium for OAuth-bound sync + automation.",actions:(0,b.jsx)(H,{state:h.state})}),!R&&(0,b.jsx)(I,{status:h,onAccept:()=>t.mutate({enabled:!0,unsandboxedOptIn:"none"===h.sandboxPrimitive||void 0}),pending:t.isPending,enableError:t.error,installStatus:p??null,onInstall:()=>r.mutate(),installPending:r.isPending||o}),R&&(0,b.jsxs)(b.Fragment,{children:["missing_binary"===h.state&&(0,b.jsxs)(s.Alert,{variant:"error",children:[(0,b.jsx)("div",{className:"font-medium",children:"Chromium binary not found."}),(0,b.jsx)("p",{className:"mt-1",children:"Aitne can download the Playwright-managed Chromium build (~150 MiB) into your Playwright cache, or you can install Chromium via your OS package manager."}),(0,b.jsx)(F,{status:p??null,onInstall:()=>r.mutate(),pending:r.isPending}),(0,b.jsxs)("p",{className:"mt-3 text-xs text-muted-foreground",children:["OS-package alternative — macOS:"," ",(0,b.jsx)("code",{children:"brew install --cask chromium"}),"; Debian/Ubuntu:"," ",(0,b.jsx)("code",{children:"sudo apt install chromium"}),"; Fedora:"," ",(0,b.jsx)("code",{children:"sudo dnf install chromium"}),"; Windows:"," ",(0,b.jsx)("code",{children:"winget install Hibbiki.Chromium"})," (or"," ",(0,b.jsx)("code",{children:"choco install chromium"}),")."]})]}),"missing_sandbox"===h.state&&(0,b.jsxs)(s.Alert,{variant:"warning",children:[(0,b.jsx)("div",{className:"font-medium",children:"No OS sandbox primitive available."}),(0,b.jsxs)("p",{className:"mt-1",children:["The host has neither ",(0,b.jsx)("code",{children:"bwrap"})," nor ",(0,b.jsx)("code",{children:"systemd-run"})," on PATH. Install ",(0,b.jsx)("code",{children:"bubblewrap"})," (",(0,b.jsx)("code",{children:"sudo apt install bubblewrap"}),") or explicitly opt in to unsandboxed mode below."]}),(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsx)(u.Button,{size:"sm",onClick:()=>t.mutate({enabled:!0,unsandboxedOptIn:!0}),disabled:t.isPending,children:"Enable unsandboxed (not recommended)"})})]}),(0,b.jsx)(J,{status:h,sandboxLabel:Q}),i?(0,b.jsx)(L,{setupStatus:j.data,onFinish:()=>K.mutate(),finishPending:K.isPending}):(0,b.jsx)(M,{status:h,onSetup:()=>z.mutate(),setupPending:z.isPending,onReconnect:()=>O.mutate(),reconnectPending:O.isPending,onDisconnect:()=>P.mutate(),disconnectPending:P.isPending}),k&&(0,b.jsx)(N,{sites:l.data?.sites??[],isLoading:l.isLoading,onMutated:()=>{a.invalidateQueries({queryKey:C})}}),k&&(0,b.jsx)(G,{})]}),(0,b.jsx)(y,{})]})}],55611)}];
2
2
 
3
3
  //# sourceMappingURL=0x9-_src_app_settings_integrations_browser-history-managed_page_tsx_0q.v5ph._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[10797,a=>{"use strict";var b=a.i(62800),c=a.i(94890),d=a.i(59239),e=a.i(72966),f=a.i(27074),g=a.i(74445),h=a.i(27785),i=a.i(51258),j=a.i(29386),k=a.i(26787),l=a.i(47276),m=a.i(83774),n=a.i(276),o=a.i(74833),p=a.i(38099),q=a.i(72152),r=a.i(97589),s=a.i(30668),t=a.i(32055);a.i(89185);var u=a.i(31618),v=a.i(29986),w=a.i(60732),x=a.i(86227),y=a.i(30012),z=a.i(84030),A=a.i(81243),B=a.i(93695),C=a.i(96935),D=a.i(16488),E=a.i(77657);a.i(59382);var F=a.i(15929),G=a.i(13848),H=a.i(80061),I=a.i(32702),J=a.i(56303),K=a.i(23998);let L=["",{children:["activity",{children:["__PAGE__",{},{metadata:{},page:[()=>a.r(97377),"[project]/packages/dashboard/src/app/activity/page.tsx"]},[]]},{metadata:{},loading:[()=>a.r(42436),"[project]/packages/dashboard/src/app/activity/loading.tsx"]},[]]},{metadata:{icon:[async c=>{let d=(0,i.interopDefault)(await a.r(6568));return[{url:(0,b.fillMetadataSegment)("//",await c.params,"icon.png",!0)+`?${d.src.split("/").splice(-1)[0]}`,sizes:`${d.width}x${d.height}`,type:"image/png"}]}]},layout:[()=>a.r(30732),"[project]/packages/dashboard/src/app/layout.tsx"],"not-found":[()=>a.r(71614),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[()=>a.r(98224),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>a.r(20088),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[()=>a.r(18781),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],M={require:a.r.bind(a),loadChunk:a.l.bind(a)},N=new c.AppPageRouteModule({definition:{kind:d.RouteKind.APP_PAGE,page:"/activity/page",pathname:"/activity",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(b,c,P){var Q,R,S,T,U;P.requestMeta&&(0,g.setRequestMeta)(b,P.requestMeta),N.isDev&&(0,g.addRequestMeta)(b,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,g.getRequestMeta)(b,"minimalMode"),W="/activity/page";W=W.replace(/\/index$/,"")||"/";let X=await N.prepare(b,c,{srcPage:W,multiZoneDraftMode:!1});if(!X)return c.statusCode=400,c.end("Bad Request"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,q.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,J.isInterceptionRouteAppPath)(ai)?null:N.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=b.headers["user-agent"]||"",aw=(0,t.getBotType)(av),ax=(0,p.isHtmlBotRequest)(b),ay=(0,g.getRequestMeta)(b,"isPrefetchRSCRequest")??"1"===b.headers[s.NEXT_ROUTER_PREFETCH_HEADER],az=(0,g.getRequestMeta)(b,"isRSCRequest")??(0,m.isRSCRequestHeader)(b.headers[s.RSC_HEADER]),aA=(0,r.getIsPossibleServerAction)(b),aB=(0,l.checkIsAppPPREnabled)(al.experimental.ppr),aC=b.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,g.getRequestMeta)(b,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let d=parseInt(aC,10),{maxPostponedStateSize:e,maxPostponedStateSizeBytes:f}=(0,D.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(d)&&d>0){if(d>f)return c.statusCode=413,c.end((0,D.getPostponedStateExceededErrorMessage)(e)),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let h="1 MB",i=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??h,j=d+(i!==h?a.r(95258).parse(i):1048576),k=await (0,D.readBodyWithSizeLimit)(b,j);if(null===k)return c.statusCode=413,c.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;if(k.length>=d){let a=k.subarray(0,d).toString("utf8");(0,g.addRequestMeta)(b,"postponed",a);let c=k.subarray(d);(0,g.addRequestMeta)(b,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${d} bytes of postponed state but only received ${k.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,g.getRequestMeta)(b,"postponed")&&aB&&"1"===b.headers[x.NEXT_RESUME_HEADER]&&"POST"===b.method){let{maxPostponedStateSize:a,maxPostponedStateSizeBytes:d}=(0,D.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),e=await (0,D.readBodyWithSizeLimit)(b,d);if(null===e)return c.statusCode=413,c.end((0,D.getPostponedStateExceededErrorMessage)(a)),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let f=e.toString("utf8");(0,g.addRequestMeta)(b,"postponed",f)}let aD=!0===N.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===b.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||!(0,m.isRSCRequestHeader)(b.headers[s.RSC_HEADER])&&"string"==typeof b.headers.cookie&&b.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(Q=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:Q.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===N.isDev,aI=!1,aJ=aF?(0,g.getRequestMeta)(b,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,g.getRequestMeta)(b,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,p.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===N.isDev||!aO||"string"==typeof aJ||(aP&&(0,g.getRequestMeta)(b,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,K.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,n.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(N.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),N.isDev||ah||!aO||!az||aL||(0,j.stripFlightHeaders)(b.headers);let aW={...F,tree:L,handler:O,routeModule:N,__next_app__:M};ad&&ae&&(0,o.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=b.method||"GET",aY=(0,f.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(b,c,am,!1):c.end("This page could not be found"),null);try{let a,j=N.getVaryHeader(ai,an);c.setHeader("Vary",j);let l=async(d,e)=>{let f=new k.NodeNextRequest(b),g=new k.NodeNextResponse(c);return N.render(f,g,e).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":c.statusCode,"next.rsc":!1});let b=aY.getRootSpanAttributes();if(!b)return;if(b.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${b.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=b.get("next.route");if(e){let b=`${aX} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),d.updateName(b),a&&a!==d&&(a.setAttribute("http.route",e),a.updateName(b))}else d.updateName(`${aX} ${W}`)})},m=(0,g.getRequestMeta)(b,"incrementalCache")||await N.getIncrementalCache(b,al,ag,V);null==m||m.resetRequestCache(),globalThis.__incrementalCache=m;let o=async({span:a,postponed:d,fallbackRouteParams:e,forceStaticRender:f})=>{let h={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,g.getRequestMeta)(b,"serverComponentsHmrCache"),fallbackRouteParams:e,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,i.interopDefault)(aW),params:$,routeModule:N,page:W,postponed:d,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof d||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:require("path").join(process.cwd(),N.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:P.waitUntil,onClose:a=>{c.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(a,c,d,e)=>N.onRequestError(b,a,d,e,ak),err:(0,g.getRequestMeta)(b,"invokeError")}};f&&(h.renderOpts.supportsDynamicResponse=!1);let j=await l(a,h),{metadata:k}=j,{cacheControl:n,headers:o={},fetchTags:p,fetchMetrics:q}=k;if(p&&(o[x.NEXT_CACHE_TAGS_HEADER]=p),b.fetchMetrics=q,aO&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aF){let a=k.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
1
+ module.exports=[10797,a=>{"use strict";var b=a.i(62800),c=a.i(94890),d=a.i(59239),e=a.i(72966),f=a.i(27074),g=a.i(74445),h=a.i(27785),i=a.i(51258),j=a.i(29386),k=a.i(26787),l=a.i(47276),m=a.i(83774),n=a.i(276),o=a.i(74833),p=a.i(38099),q=a.i(72152),r=a.i(97589),s=a.i(30668),t=a.i(32055);a.i(89185);var u=a.i(31618),v=a.i(29986),w=a.i(60732),x=a.i(86227),y=a.i(30012),z=a.i(84030),A=a.i(81243),B=a.i(93695),C=a.i(96935),D=a.i(16488),E=a.i(77657);a.i(59382);var F=a.i(15929),G=a.i(13848),H=a.i(80061),I=a.i(32702),J=a.i(56303),K=a.i(23998);let L=["",{children:["activity",{children:["__PAGE__",{},{metadata:{},page:[()=>a.r(97377),"[project]/packages/dashboard/src/app/activity/page.tsx"]},[]]},{metadata:{},loading:[()=>a.r(84461),"[project]/packages/dashboard/src/app/activity/loading.tsx"]},[]]},{metadata:{icon:[async c=>{let d=(0,i.interopDefault)(await a.r(6568));return[{url:(0,b.fillMetadataSegment)("//",await c.params,"icon.png",!0)+`?${d.src.split("/").splice(-1)[0]}`,sizes:`${d.width}x${d.height}`,type:"image/png"}]}]},layout:[()=>a.r(30732),"[project]/packages/dashboard/src/app/layout.tsx"],"not-found":[()=>a.r(71614),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[()=>a.r(98224),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>a.r(20088),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[()=>a.r(18781),"[project]/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],M={require:a.r.bind(a),loadChunk:a.l.bind(a)},N=new c.AppPageRouteModule({definition:{kind:d.RouteKind.APP_PAGE,page:"/activity/page",pathname:"/activity",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(b,c,P){var Q,R,S,T,U;P.requestMeta&&(0,g.setRequestMeta)(b,P.requestMeta),N.isDev&&(0,g.addRequestMeta)(b,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,g.getRequestMeta)(b,"minimalMode"),W="/activity/page";W=W.replace(/\/index$/,"")||"/";let X=await N.prepare(b,c,{srcPage:W,multiZoneDraftMode:!1});if(!X)return c.statusCode=400,c.end("Bad Request"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,q.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,J.isInterceptionRouteAppPath)(ai)?null:N.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=b.headers["user-agent"]||"",aw=(0,t.getBotType)(av),ax=(0,p.isHtmlBotRequest)(b),ay=(0,g.getRequestMeta)(b,"isPrefetchRSCRequest")??"1"===b.headers[s.NEXT_ROUTER_PREFETCH_HEADER],az=(0,g.getRequestMeta)(b,"isRSCRequest")??(0,m.isRSCRequestHeader)(b.headers[s.RSC_HEADER]),aA=(0,r.getIsPossibleServerAction)(b),aB=(0,l.checkIsAppPPREnabled)(al.experimental.ppr),aC=b.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,g.getRequestMeta)(b,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let d=parseInt(aC,10),{maxPostponedStateSize:e,maxPostponedStateSizeBytes:f}=(0,D.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(d)&&d>0){if(d>f)return c.statusCode=413,c.end((0,D.getPostponedStateExceededErrorMessage)(e)),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let h="1 MB",i=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??h,j=d+(i!==h?a.r(95258).parse(i):1048576),k=await (0,D.readBodyWithSizeLimit)(b,j);if(null===k)return c.statusCode=413,c.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;if(k.length>=d){let a=k.subarray(0,d).toString("utf8");(0,g.addRequestMeta)(b,"postponed",a);let c=k.subarray(d);(0,g.addRequestMeta)(b,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${d} bytes of postponed state but only received ${k.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,g.getRequestMeta)(b,"postponed")&&aB&&"1"===b.headers[x.NEXT_RESUME_HEADER]&&"POST"===b.method){let{maxPostponedStateSize:a,maxPostponedStateSizeBytes:d}=(0,D.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),e=await (0,D.readBodyWithSizeLimit)(b,d);if(null===e)return c.statusCode=413,c.end((0,D.getPostponedStateExceededErrorMessage)(a)),null==P.waitUntil||P.waitUntil.call(P,Promise.resolve()),null;let f=e.toString("utf8");(0,g.addRequestMeta)(b,"postponed",f)}let aD=!0===N.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===b.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||!(0,m.isRSCRequestHeader)(b.headers[s.RSC_HEADER])&&"string"==typeof b.headers.cookie&&b.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(Q=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:Q.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===N.isDev,aI=!1,aJ=aF?(0,g.getRequestMeta)(b,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,g.getRequestMeta)(b,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,p.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===N.isDev||!aO||"string"==typeof aJ||(aP&&(0,g.getRequestMeta)(b,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,K.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,n.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(N.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),N.isDev||ah||!aO||!az||aL||(0,j.stripFlightHeaders)(b.headers);let aW={...F,tree:L,handler:O,routeModule:N,__next_app__:M};ad&&ae&&(0,o.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=b.method||"GET",aY=(0,f.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(b,c,am,!1):c.end("This page could not be found"),null);try{let a,j=N.getVaryHeader(ai,an);c.setHeader("Vary",j);let l=async(d,e)=>{let f=new k.NodeNextRequest(b),g=new k.NodeNextResponse(c);return N.render(f,g,e).finally(()=>{if(!d)return;d.setAttributes({"http.status_code":c.statusCode,"next.rsc":!1});let b=aY.getRootSpanAttributes();if(!b)return;if(b.get("next.span_type")!==h.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${b.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=b.get("next.route");if(e){let b=`${aX} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),d.updateName(b),a&&a!==d&&(a.setAttribute("http.route",e),a.updateName(b))}else d.updateName(`${aX} ${W}`)})},m=(0,g.getRequestMeta)(b,"incrementalCache")||await N.getIncrementalCache(b,al,ag,V);null==m||m.resetRequestCache(),globalThis.__incrementalCache=m;let o=async({span:a,postponed:d,fallbackRouteParams:e,forceStaticRender:f})=>{let h={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,g.getRequestMeta)(b,"serverComponentsHmrCache"),fallbackRouteParams:e,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,i.interopDefault)(aW),params:$,routeModule:N,page:W,postponed:d,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof d||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:require("path").join(process.cwd(),N.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:P.waitUntil,onClose:a=>{c.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(a,c,d,e)=>N.onRequestError(b,a,d,e,ak),err:(0,g.getRequestMeta)(b,"invokeError")}};f&&(h.renderOpts.supportsDynamicResponse=!1);let j=await l(a,h),{metadata:k}=j,{cacheControl:n,headers:o={},fetchTags:p,fetchMetrics:q}=k;if(p&&(o[x.NEXT_CACHE_TAGS_HEADER]=p),b.fetchMetrics=q,aO&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aF){let a=k.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
2
2
  see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:j,headers:o,rscData:k.flightData,postponed:k.postponed,status:k.statusCode,segmentData:k.segmentData},cacheControl:n}},p=async({hasResolved:a,previousCacheEntry:f,isRevalidating:h,span:i,forceStaticRender:j=!1})=>{let k=!1===N.isDev,l=a||c.writableEnded;try{var q;let e;if(ar&&aj&&!f&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(b,c):(c.statusCode=404,c.end("This page could not be found")),null;if(at&&(e=(0,v.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(e=v.FallbackMode.PRERENDER),e===v.FallbackMode.PRERENDER&&(0,t.isBot)(av)&&(!aF||ax)&&(e=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ar=!0),ar&&(e!==v.FallbackMode.NOT_FOUND||f)&&(e=v.FallbackMode.BLOCKING_STATIC_RENDER),!V&&e!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!l&&!ah&&_&&(k||!au)){if((k||at)&&e===v.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new B.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let c=k&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,e=(k||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,n.getFallbackRouteParams)(aq,N):null;aG&&e&&(0,g.addRequestMeta)(b,"fallbackParams",e);let f=await N.handleResponse({cacheKey:c,req:b,nextConfig:al,routeKind:d.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:e,forceStaticRender:!0}),waitUntil:P.waitUntil,isMinimalMode:V});if(null===f)return null;if(f)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!m||ar||aI||aD||aE||ay||(0,I.scheduleOnNextTick)(async()=>{let c=N.getResponseCache(b);try{await c.revalidate(aU,m,aF,!1,a=>o({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,n.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,a,P.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete f.cacheControl,f}}let r=ar||h||!aJ?void 0:aJ;if(aP&&!V&&m&&(aL||aA)&&!j){let c=await m.get(ai,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});c&&c.value&&c.value.kind===u.CachedRouteKind.APP_PAGE&&(r=c.value.postponed,c&&(-1===c.isStale||!0===c.isStale)&&(0,I.scheduleOnNextTick)(async()=>{let c=N.getResponseCache(b);try{await c.revalidate(ai,m,aF,!1,a=>p({...a,forceStaticRender:!0}),null,a,P.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=!N.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,n.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,x=s&&s.length>0?s:null==at?void 0:at.fallbackRouteParams,y=null!=s&&s.length>0,z=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let a=(0,g.getRequestMeta)(b,"resolvedRouteParamKeys");a&&a.size>0&&(z=at.fallbackRouteParams.filter(b=>!a.has(b.paramName)))}let A=(k&&(0,g.getRequestMeta)(b,"renderFallbackShell")||y||aG&&!au)&&x?(0,n.createOpaqueFallbackRouteParams)(x):z&&z.length>0&&z.length<((null==at||null==(q=at.fallbackRouteParams)?void 0:q.length)??0)?(0,n.createOpaqueFallbackRouteParams)(z):aI?(0,n.getFallbackRouteParams)(aq,N):null;if((k||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let a=(0,n.createOpaqueFallbackRouteParams)(x??at.fallbackRouteParams);a&&(0,g.addRequestMeta)(b,"fallbackParams",a)}return o({span:i,postponed:r,fallbackRouteParams:A,forceStaticRender:j})}catch(a){throw(null==f?void 0:f.isStale)&&await N.onRequestError(b,a,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,e.getRevalidateReason)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),a}},q=async a=>{var e,f,h,i,j,k;let l,m=await N.handleResponse({cacheKey:aU,responseGenerator:b=>p({span:a,...b}),routeKind:d.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:b,nextConfig:al,prerenderManifest:ag,waitUntil:P.waitUntil,isMinimalMode:V});if(ah&&c.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&c.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(e=m.value)?void 0:e.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(h=m.value)?void 0:h.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;az&&!aA&&ao&&c.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!n||ay)&&(V||c.setHeader("x-nextjs-cache",ar?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),c.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(aJ)l={revalidate:0,expire:void 0};else if(aL)l={revalidate:0,expire:void 0};else if(!N.isDev)if(ah)l={revalidate:0,expire:void 0};else if(aO){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(i=m.cacheControl)?void 0:i.expire)??al.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else c.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aM&&(null==q?void 0:q.kind)===u.CachedRouteKind.APP_PAGE&&q.segmentData){c.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let a=null==(j=q.headers)?void 0:j[x.NEXT_CACHE_TAGS_HEADER];V&&aO&&a&&"string"==typeof a&&c.setHeader(x.NEXT_CACHE_TAGS_HEADER,a);let d=q.segmentData.get(aM);return void 0!==d?(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(c.statusCode=204,(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aP?(0,g.getRequestMeta)(b,"onCacheEntryV2")??(0,g.getRequestMeta)(b,"onCacheEntry"):(0,g.getRequestMeta)(b,"onCacheEntry");if(r){let a=(0,g.getRequestMeta)(b,"initURL")??b.url,c=a?(null==(k=(0,E.parseUrl)(a))?void 0:k.pathname)??a:void 0;if(await r(m,{url:c}))return null}if(q.headers){let a={...q.headers};for(let[b,d]of(V&&aO||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)c.appendHeader(b,a);else"number"==typeof d&&(d=d.toString()),c.appendHeader(b,d)}let t=null==(f=q.headers)?void 0:f[x.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&t&&"string"==typeof t&&c.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!q.status||az&&aF||(c.statusCode=q.status),!V&&q.status&&G.RedirectStatusCode[q.status]&&az&&(c.statusCode=200),n&&!aL&&c.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return c.statusCode=404,(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new H.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=q.html;if(aE&&aG){let a=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough(await (0,z.createInstantTestScriptInsertionTransformStream)(a)),(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||V||az)return(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aG||aH)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),o({span:a,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:b,res:c,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return a=aY.getActiveScopeSpan(),await aY.withPropagatedContext(b.headers,()=>aY.trace(h.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:f.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":b.url}},q),void 0,!a$);await q(aZ)}catch(a){throw a instanceof B.NoFallbackError||await N.onRequestError(b,a,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,e.getRevalidateReason)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),a}}a.s(["__next_app__",0,M,"handler",0,O,"routeModule",0,N],12147),a.i(12147),a.s(["ClientPageRoot",()=>F.ClientPageRoot,"ClientSegmentRoot",()=>F.ClientSegmentRoot,"Fragment",()=>F.Fragment,"HTTPAccessFallbackBoundary",()=>F.HTTPAccessFallbackBoundary,"InstantValidation",()=>F.InstantValidation,"LayoutRouter",()=>F.LayoutRouter,"LoadingBoundaryProvider",()=>F.LoadingBoundaryProvider,"Postpone",()=>F.Postpone,"RenderFromTemplateContext",()=>F.RenderFromTemplateContext,"RootLayoutBoundary",()=>F.RootLayoutBoundary,"SegmentViewNode",()=>F.SegmentViewNode,"SegmentViewStateNode",()=>F.SegmentViewStateNode,"__next_app__",0,M,"actionAsyncStorage",()=>F.actionAsyncStorage,"captureOwnerStack",()=>F.captureOwnerStack,"collectPrefetchHints",()=>F.collectPrefetchHints,"collectSegmentData",()=>F.collectSegmentData,"createElement",()=>F.createElement,"createMetadataComponents",()=>F.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>F.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>F.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>F.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>F.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>F.createTemporaryReferenceSet,"decodeAction",()=>F.decodeAction,"decodeFormState",()=>F.decodeFormState,"decodeReply",()=>F.decodeReply,"handler",0,O,"patchFetch",()=>F.patchFetch,"preconnect",()=>F.preconnect,"preloadFont",()=>F.preloadFont,"preloadStyle",()=>F.preloadStyle,"prerender",()=>F.prerender,"renderToReadableStream",()=>F.renderToReadableStream,"routeModule",0,N,"serverHooks",()=>F.serverHooks,"taintObjectReference",()=>F.taintObjectReference,"workAsyncStorage",()=>F.workAsyncStorage,"workUnitAsyncStorage",()=>F.workUnitAsyncStorage],10797)}];
3
3
 
4
4
  //# sourceMappingURL=0z~i_next_dist_esm_build_templates_app-page_0-xf3nq.js.map