@aitne/dashboard 0.1.9 → 0.1.10

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 (599) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/diagnostics/route-bundle-stats.json +269 -295
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/prerender-manifest.json +24 -0
  7. package/.next/routes-manifest.json +6 -0
  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.js.nft.json +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +15 -15
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/activity/page.js.nft.json +1 -1
  26. package/.next/server/app/activity/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/activity.html +1 -1
  28. package/.next/server/app/activity.rsc +28 -27
  29. package/.next/server/app/activity.segments/_full.segment.rsc +28 -27
  30. package/.next/server/app/activity.segments/_head.segment.rsc +4 -4
  31. package/.next/server/app/activity.segments/_index.segment.rsc +10 -10
  32. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  33. package/.next/server/app/activity.segments/activity/__PAGE__.segment.rsc +4 -4
  34. package/.next/server/app/activity.segments/activity.segment.rsc +4 -4
  35. package/.next/server/app/agents/[slug]/executions/page.js.nft.json +1 -1
  36. package/.next/server/app/agents/[slug]/executions/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/agents/[slug]/page.js.nft.json +1 -1
  38. package/.next/server/app/agents/[slug]/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/agents/page.js.nft.json +1 -1
  40. package/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/agents.html +1 -1
  42. package/.next/server/app/agents.rsc +17 -17
  43. package/.next/server/app/agents.segments/_full.segment.rsc +17 -17
  44. package/.next/server/app/agents.segments/_head.segment.rsc +4 -4
  45. package/.next/server/app/agents.segments/_index.segment.rsc +10 -10
  46. package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  47. package/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
  48. package/.next/server/app/agents.segments/agents.segment.rsc +3 -3
  49. package/.next/server/app/analytics/page.js.nft.json +1 -1
  50. package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/analytics.html +1 -1
  52. package/.next/server/app/analytics.rsc +23 -24
  53. package/.next/server/app/analytics.segments/_full.segment.rsc +23 -24
  54. package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
  55. package/.next/server/app/analytics.segments/_index.segment.rsc +10 -10
  56. package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
  57. package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +4 -4
  58. package/.next/server/app/analytics.segments/analytics.segment.rsc +4 -4
  59. package/.next/server/app/browser-tasks/[id]/page.js.nft.json +1 -1
  60. package/.next/server/app/browser-tasks/[id]/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/browser-tasks/page.js.nft.json +1 -1
  62. package/.next/server/app/browser-tasks/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/browser-tasks.html +1 -1
  64. package/.next/server/app/browser-tasks.rsc +17 -17
  65. package/.next/server/app/browser-tasks.segments/_full.segment.rsc +17 -17
  66. package/.next/server/app/browser-tasks.segments/_head.segment.rsc +4 -4
  67. package/.next/server/app/browser-tasks.segments/_index.segment.rsc +10 -10
  68. package/.next/server/app/browser-tasks.segments/_tree.segment.rsc +2 -2
  69. package/.next/server/app/browser-tasks.segments/browser-tasks/__PAGE__.segment.rsc +4 -4
  70. package/.next/server/app/browser-tasks.segments/browser-tasks.segment.rsc +3 -3
  71. package/.next/server/app/chat/page.js.nft.json +1 -1
  72. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/chat.html +1 -1
  74. package/.next/server/app/chat.rsc +17 -17
  75. package/.next/server/app/chat.segments/_full.segment.rsc +17 -17
  76. package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
  77. package/.next/server/app/chat.segments/_index.segment.rsc +10 -10
  78. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  79. package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +4 -4
  80. package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
  81. package/.next/server/app/connections/calendar/page.js.nft.json +1 -1
  82. package/.next/server/app/connections/calendar/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/connections/calendar.html +1 -1
  84. package/.next/server/app/connections/calendar.rsc +18 -18
  85. package/.next/server/app/connections/calendar.segments/_full.segment.rsc +18 -18
  86. package/.next/server/app/connections/calendar.segments/_head.segment.rsc +4 -4
  87. package/.next/server/app/connections/calendar.segments/_index.segment.rsc +10 -10
  88. package/.next/server/app/connections/calendar.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/connections/calendar.segments/connections/calendar/__PAGE__.segment.rsc +4 -4
  90. package/.next/server/app/connections/calendar.segments/connections/calendar.segment.rsc +3 -3
  91. package/.next/server/app/connections/calendar.segments/connections.segment.rsc +4 -4
  92. package/.next/server/app/connections/journal/page.js.nft.json +1 -1
  93. package/.next/server/app/connections/journal/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/connections/journal.html +1 -1
  95. package/.next/server/app/connections/journal.rsc +16 -16
  96. package/.next/server/app/connections/journal.segments/_full.segment.rsc +16 -16
  97. package/.next/server/app/connections/journal.segments/_head.segment.rsc +4 -4
  98. package/.next/server/app/connections/journal.segments/_index.segment.rsc +10 -10
  99. package/.next/server/app/connections/journal.segments/_tree.segment.rsc +2 -2
  100. package/.next/server/app/connections/journal.segments/connections/journal/__PAGE__.segment.rsc +2 -2
  101. package/.next/server/app/connections/journal.segments/connections/journal.segment.rsc +3 -3
  102. package/.next/server/app/connections/journal.segments/connections.segment.rsc +4 -4
  103. package/.next/server/app/connections/knowledge/page.js.nft.json +1 -1
  104. package/.next/server/app/connections/knowledge/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/connections/knowledge.html +1 -1
  106. package/.next/server/app/connections/knowledge.rsc +18 -18
  107. package/.next/server/app/connections/knowledge.segments/_full.segment.rsc +18 -18
  108. package/.next/server/app/connections/knowledge.segments/_head.segment.rsc +4 -4
  109. package/.next/server/app/connections/knowledge.segments/_index.segment.rsc +10 -10
  110. package/.next/server/app/connections/knowledge.segments/_tree.segment.rsc +2 -2
  111. package/.next/server/app/connections/knowledge.segments/connections/knowledge/__PAGE__.segment.rsc +4 -4
  112. package/.next/server/app/connections/knowledge.segments/connections/knowledge.segment.rsc +3 -3
  113. package/.next/server/app/connections/knowledge.segments/connections.segment.rsc +4 -4
  114. package/.next/server/app/connections/mail/page.js.nft.json +1 -1
  115. package/.next/server/app/connections/mail/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/connections/mail.html +1 -1
  117. package/.next/server/app/connections/mail.rsc +18 -18
  118. package/.next/server/app/connections/mail.segments/_full.segment.rsc +18 -18
  119. package/.next/server/app/connections/mail.segments/_head.segment.rsc +4 -4
  120. package/.next/server/app/connections/mail.segments/_index.segment.rsc +10 -10
  121. package/.next/server/app/connections/mail.segments/_tree.segment.rsc +2 -2
  122. package/.next/server/app/connections/mail.segments/connections/mail/__PAGE__.segment.rsc +4 -4
  123. package/.next/server/app/connections/mail.segments/connections/mail.segment.rsc +3 -3
  124. package/.next/server/app/connections/mail.segments/connections.segment.rsc +4 -4
  125. package/.next/server/app/connections/mcp/page.js.nft.json +1 -1
  126. package/.next/server/app/connections/mcp/page_client-reference-manifest.js +1 -1
  127. package/.next/server/app/connections/mcp.html +1 -1
  128. package/.next/server/app/connections/mcp.rsc +18 -18
  129. package/.next/server/app/connections/mcp.segments/_full.segment.rsc +18 -18
  130. package/.next/server/app/connections/mcp.segments/_head.segment.rsc +4 -4
  131. package/.next/server/app/connections/mcp.segments/_index.segment.rsc +10 -10
  132. package/.next/server/app/connections/mcp.segments/_tree.segment.rsc +2 -2
  133. package/.next/server/app/connections/mcp.segments/connections/mcp/__PAGE__.segment.rsc +4 -4
  134. package/.next/server/app/connections/mcp.segments/connections/mcp.segment.rsc +3 -3
  135. package/.next/server/app/connections/mcp.segments/connections.segment.rsc +4 -4
  136. package/.next/server/app/connections/messaging/page.js.nft.json +1 -1
  137. package/.next/server/app/connections/messaging/page_client-reference-manifest.js +1 -1
  138. package/.next/server/app/connections/messaging.html +1 -1
  139. package/.next/server/app/connections/messaging.rsc +18 -18
  140. package/.next/server/app/connections/messaging.segments/_full.segment.rsc +18 -18
  141. package/.next/server/app/connections/messaging.segments/_head.segment.rsc +4 -4
  142. package/.next/server/app/connections/messaging.segments/_index.segment.rsc +10 -10
  143. package/.next/server/app/connections/messaging.segments/_tree.segment.rsc +2 -2
  144. package/.next/server/app/connections/messaging.segments/connections/messaging/__PAGE__.segment.rsc +4 -4
  145. package/.next/server/app/connections/messaging.segments/connections/messaging.segment.rsc +3 -3
  146. package/.next/server/app/connections/messaging.segments/connections.segment.rsc +4 -4
  147. package/.next/server/app/connections/page.js.nft.json +1 -1
  148. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  149. package/.next/server/app/connections/repositories/page.js.nft.json +1 -1
  150. package/.next/server/app/connections/repositories/page_client-reference-manifest.js +1 -1
  151. package/.next/server/app/connections/repositories.html +1 -1
  152. package/.next/server/app/connections/repositories.rsc +18 -18
  153. package/.next/server/app/connections/repositories.segments/_full.segment.rsc +18 -18
  154. package/.next/server/app/connections/repositories.segments/_head.segment.rsc +4 -4
  155. package/.next/server/app/connections/repositories.segments/_index.segment.rsc +10 -10
  156. package/.next/server/app/connections/repositories.segments/_tree.segment.rsc +2 -2
  157. package/.next/server/app/connections/repositories.segments/connections/repositories/__PAGE__.segment.rsc +4 -4
  158. package/.next/server/app/connections/repositories.segments/connections/repositories.segment.rsc +3 -3
  159. package/.next/server/app/connections/repositories.segments/connections.segment.rsc +4 -4
  160. package/.next/server/app/connections/routines/page.js.nft.json +1 -1
  161. package/.next/server/app/connections/routines/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/connections/routines.html +1 -1
  163. package/.next/server/app/connections/routines.rsc +16 -16
  164. package/.next/server/app/connections/routines.segments/_full.segment.rsc +16 -16
  165. package/.next/server/app/connections/routines.segments/_head.segment.rsc +4 -4
  166. package/.next/server/app/connections/routines.segments/_index.segment.rsc +10 -10
  167. package/.next/server/app/connections/routines.segments/_tree.segment.rsc +2 -2
  168. package/.next/server/app/connections/routines.segments/connections/routines/__PAGE__.segment.rsc +2 -2
  169. package/.next/server/app/connections/routines.segments/connections/routines.segment.rsc +3 -3
  170. package/.next/server/app/connections/routines.segments/connections.segment.rsc +4 -4
  171. package/.next/server/app/connections.html +1 -1
  172. package/.next/server/app/connections.rsc +16 -16
  173. package/.next/server/app/connections.segments/_full.segment.rsc +16 -16
  174. package/.next/server/app/connections.segments/_head.segment.rsc +4 -4
  175. package/.next/server/app/connections.segments/_index.segment.rsc +10 -10
  176. package/.next/server/app/connections.segments/_tree.segment.rsc +2 -2
  177. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +2 -2
  178. package/.next/server/app/connections.segments/connections.segment.rsc +4 -4
  179. package/.next/server/app/conversations/[id]/page.js.nft.json +1 -1
  180. package/.next/server/app/conversations/[id]/page_client-reference-manifest.js +1 -1
  181. package/.next/server/app/conversations/page.js.nft.json +1 -1
  182. package/.next/server/app/conversations/page_client-reference-manifest.js +1 -1
  183. package/.next/server/app/conversations.html +1 -1
  184. package/.next/server/app/conversations.rsc +15 -15
  185. package/.next/server/app/conversations.segments/_full.segment.rsc +15 -15
  186. package/.next/server/app/conversations.segments/_head.segment.rsc +4 -4
  187. package/.next/server/app/conversations.segments/_index.segment.rsc +10 -10
  188. package/.next/server/app/conversations.segments/_tree.segment.rsc +2 -2
  189. package/.next/server/app/conversations.segments/conversations/__PAGE__.segment.rsc +2 -2
  190. package/.next/server/app/conversations.segments/conversations.segment.rsc +3 -3
  191. package/.next/server/app/docs/[[...slug]]/page.js.nft.json +1 -1
  192. package/.next/server/app/docs/[[...slug]]/page_client-reference-manifest.js +1 -1
  193. package/.next/server/app/finance/page.js.nft.json +1 -1
  194. package/.next/server/app/finance/page_client-reference-manifest.js +1 -1
  195. package/.next/server/app/finance.html +1 -1
  196. package/.next/server/app/finance.rsc +17 -17
  197. package/.next/server/app/finance.segments/_full.segment.rsc +17 -17
  198. package/.next/server/app/finance.segments/_head.segment.rsc +4 -4
  199. package/.next/server/app/finance.segments/_index.segment.rsc +10 -10
  200. package/.next/server/app/finance.segments/_tree.segment.rsc +2 -2
  201. package/.next/server/app/finance.segments/finance/__PAGE__.segment.rsc +4 -4
  202. package/.next/server/app/finance.segments/finance.segment.rsc +3 -3
  203. package/.next/server/app/git/page.js.nft.json +1 -1
  204. package/.next/server/app/git/page_client-reference-manifest.js +1 -1
  205. package/.next/server/app/git.html +1 -1
  206. package/.next/server/app/git.rsc +17 -17
  207. package/.next/server/app/git.segments/_full.segment.rsc +17 -17
  208. package/.next/server/app/git.segments/_head.segment.rsc +4 -4
  209. package/.next/server/app/git.segments/_index.segment.rsc +10 -10
  210. package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
  211. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +4 -4
  212. package/.next/server/app/git.segments/git.segment.rsc +3 -3
  213. package/.next/server/app/health/page.js.nft.json +1 -1
  214. package/.next/server/app/health/page_client-reference-manifest.js +1 -1
  215. package/.next/server/app/health.html +1 -1
  216. package/.next/server/app/health.rsc +17 -17
  217. package/.next/server/app/health.segments/_full.segment.rsc +17 -17
  218. package/.next/server/app/health.segments/_head.segment.rsc +4 -4
  219. package/.next/server/app/health.segments/_index.segment.rsc +10 -10
  220. package/.next/server/app/health.segments/_tree.segment.rsc +2 -2
  221. package/.next/server/app/health.segments/health/__PAGE__.segment.rsc +4 -4
  222. package/.next/server/app/health.segments/health.segment.rsc +3 -3
  223. package/.next/server/app/index.html +1 -1
  224. package/.next/server/app/index.rsc +17 -17
  225. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  226. package/.next/server/app/index.segments/_full.segment.rsc +17 -17
  227. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  228. package/.next/server/app/index.segments/_index.segment.rsc +10 -10
  229. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  230. package/.next/server/app/knowledge/page.js.nft.json +1 -1
  231. package/.next/server/app/knowledge/page_client-reference-manifest.js +1 -1
  232. package/.next/server/app/knowledge.html +1 -1
  233. package/.next/server/app/knowledge.rsc +18 -18
  234. package/.next/server/app/knowledge.segments/_full.segment.rsc +18 -18
  235. package/.next/server/app/knowledge.segments/_head.segment.rsc +4 -4
  236. package/.next/server/app/knowledge.segments/_index.segment.rsc +10 -10
  237. package/.next/server/app/knowledge.segments/_tree.segment.rsc +2 -2
  238. package/.next/server/app/knowledge.segments/knowledge/__PAGE__.segment.rsc +4 -4
  239. package/.next/server/app/knowledge.segments/knowledge.segment.rsc +4 -4
  240. package/.next/server/app/page.js.nft.json +1 -1
  241. package/.next/server/app/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/reading/page.js.nft.json +1 -1
  243. package/.next/server/app/reading/page_client-reference-manifest.js +1 -1
  244. package/.next/server/app/reading.html +1 -1
  245. package/.next/server/app/reading.rsc +17 -17
  246. package/.next/server/app/reading.segments/_full.segment.rsc +17 -17
  247. package/.next/server/app/reading.segments/_head.segment.rsc +4 -4
  248. package/.next/server/app/reading.segments/_index.segment.rsc +10 -10
  249. package/.next/server/app/reading.segments/_tree.segment.rsc +2 -2
  250. package/.next/server/app/reading.segments/reading/__PAGE__.segment.rsc +4 -4
  251. package/.next/server/app/reading.segments/reading.segment.rsc +3 -3
  252. package/.next/server/app/schedule/page.js.nft.json +1 -1
  253. package/.next/server/app/schedule/page_client-reference-manifest.js +1 -1
  254. package/.next/server/app/schedule.html +1 -1
  255. package/.next/server/app/schedule.rsc +17 -17
  256. package/.next/server/app/schedule.segments/_full.segment.rsc +17 -17
  257. package/.next/server/app/schedule.segments/_head.segment.rsc +4 -4
  258. package/.next/server/app/schedule.segments/_index.segment.rsc +10 -10
  259. package/.next/server/app/schedule.segments/_tree.segment.rsc +2 -2
  260. package/.next/server/app/schedule.segments/schedule/__PAGE__.segment.rsc +4 -4
  261. package/.next/server/app/schedule.segments/schedule.segment.rsc +3 -3
  262. package/.next/server/app/settings/advanced/page.js.nft.json +1 -1
  263. package/.next/server/app/settings/advanced/page_client-reference-manifest.js +1 -1
  264. package/.next/server/app/settings/advanced.html +1 -1
  265. package/.next/server/app/settings/advanced.rsc +18 -18
  266. package/.next/server/app/settings/advanced.segments/_full.segment.rsc +18 -18
  267. package/.next/server/app/settings/advanced.segments/_head.segment.rsc +4 -4
  268. package/.next/server/app/settings/advanced.segments/_index.segment.rsc +10 -10
  269. package/.next/server/app/settings/advanced.segments/_tree.segment.rsc +2 -2
  270. package/.next/server/app/settings/advanced.segments/settings/advanced/__PAGE__.segment.rsc +4 -4
  271. package/.next/server/app/settings/advanced.segments/settings/advanced.segment.rsc +3 -3
  272. package/.next/server/app/settings/advanced.segments/settings.segment.rsc +4 -4
  273. package/.next/server/app/settings/backends/page.js.nft.json +1 -1
  274. package/.next/server/app/settings/backends/page_client-reference-manifest.js +1 -1
  275. package/.next/server/app/settings/backends.html +1 -1
  276. package/.next/server/app/settings/backends.rsc +16 -16
  277. package/.next/server/app/settings/backends.segments/_full.segment.rsc +16 -16
  278. package/.next/server/app/settings/backends.segments/_head.segment.rsc +4 -4
  279. package/.next/server/app/settings/backends.segments/_index.segment.rsc +10 -10
  280. package/.next/server/app/settings/backends.segments/_tree.segment.rsc +2 -2
  281. package/.next/server/app/settings/backends.segments/settings/backends/__PAGE__.segment.rsc +2 -2
  282. package/.next/server/app/settings/backends.segments/settings/backends.segment.rsc +3 -3
  283. package/.next/server/app/settings/backends.segments/settings.segment.rsc +4 -4
  284. package/.next/server/app/settings/commands/page.js.nft.json +1 -1
  285. package/.next/server/app/settings/commands/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/settings/commands.html +1 -1
  287. package/.next/server/app/settings/commands.rsc +18 -18
  288. package/.next/server/app/settings/commands.segments/_full.segment.rsc +18 -18
  289. package/.next/server/app/settings/commands.segments/_head.segment.rsc +4 -4
  290. package/.next/server/app/settings/commands.segments/_index.segment.rsc +10 -10
  291. package/.next/server/app/settings/commands.segments/_tree.segment.rsc +2 -2
  292. package/.next/server/app/settings/commands.segments/settings/commands/__PAGE__.segment.rsc +4 -4
  293. package/.next/server/app/settings/commands.segments/settings/commands.segment.rsc +3 -3
  294. package/.next/server/app/settings/commands.segments/settings.segment.rsc +4 -4
  295. package/.next/server/app/settings/connections/page.js.nft.json +1 -1
  296. package/.next/server/app/settings/connections/page_client-reference-manifest.js +1 -1
  297. package/.next/server/app/settings/connections.html +1 -1
  298. package/.next/server/app/settings/connections.rsc +16 -16
  299. package/.next/server/app/settings/connections.segments/_full.segment.rsc +16 -16
  300. package/.next/server/app/settings/connections.segments/_head.segment.rsc +4 -4
  301. package/.next/server/app/settings/connections.segments/_index.segment.rsc +10 -10
  302. package/.next/server/app/settings/connections.segments/_tree.segment.rsc +2 -2
  303. package/.next/server/app/settings/connections.segments/settings/connections/__PAGE__.segment.rsc +2 -2
  304. package/.next/server/app/settings/connections.segments/settings/connections.segment.rsc +3 -3
  305. package/.next/server/app/settings/connections.segments/settings.segment.rsc +4 -4
  306. package/.next/server/app/settings/integrations/browser-history/page.js.nft.json +1 -1
  307. package/.next/server/app/settings/integrations/browser-history/page_client-reference-manifest.js +1 -1
  308. package/.next/server/app/settings/integrations/browser-history-managed/b4/page.js.nft.json +1 -1
  309. package/.next/server/app/settings/integrations/browser-history-managed/b4/page_client-reference-manifest.js +1 -1
  310. package/.next/server/app/settings/integrations/browser-history-managed/b4.html +1 -1
  311. package/.next/server/app/settings/integrations/browser-history-managed/b4.rsc +18 -18
  312. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_full.segment.rsc +18 -18
  313. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_head.segment.rsc +4 -4
  314. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_index.segment.rsc +10 -10
  315. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/_tree.segment.rsc +2 -2
  316. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4/__PAGE__.segment.rsc +4 -4
  317. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed/b4.segment.rsc +3 -3
  318. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  319. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings/integrations.segment.rsc +3 -3
  320. package/.next/server/app/settings/integrations/browser-history-managed/b4.segments/settings.segment.rsc +4 -4
  321. package/.next/server/app/settings/integrations/browser-history-managed/page.js.nft.json +1 -1
  322. package/.next/server/app/settings/integrations/browser-history-managed/page_client-reference-manifest.js +1 -1
  323. package/.next/server/app/settings/integrations/browser-history-managed.html +1 -1
  324. package/.next/server/app/settings/integrations/browser-history-managed.rsc +18 -18
  325. package/.next/server/app/settings/integrations/browser-history-managed.segments/_full.segment.rsc +18 -18
  326. package/.next/server/app/settings/integrations/browser-history-managed.segments/_head.segment.rsc +4 -4
  327. package/.next/server/app/settings/integrations/browser-history-managed.segments/_index.segment.rsc +10 -10
  328. package/.next/server/app/settings/integrations/browser-history-managed.segments/_tree.segment.rsc +2 -2
  329. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed/__PAGE__.segment.rsc +4 -4
  330. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations/browser-history-managed.segment.rsc +3 -3
  331. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings/integrations.segment.rsc +3 -3
  332. package/.next/server/app/settings/integrations/browser-history-managed.segments/settings.segment.rsc +4 -4
  333. package/.next/server/app/settings/integrations/browser-history.html +1 -1
  334. package/.next/server/app/settings/integrations/browser-history.rsc +18 -18
  335. package/.next/server/app/settings/integrations/browser-history.segments/_full.segment.rsc +18 -18
  336. package/.next/server/app/settings/integrations/browser-history.segments/_head.segment.rsc +4 -4
  337. package/.next/server/app/settings/integrations/browser-history.segments/_index.segment.rsc +10 -10
  338. package/.next/server/app/settings/integrations/browser-history.segments/_tree.segment.rsc +2 -2
  339. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history/__PAGE__.segment.rsc +4 -4
  340. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations/browser-history.segment.rsc +3 -3
  341. package/.next/server/app/settings/integrations/browser-history.segments/settings/integrations.segment.rsc +3 -3
  342. package/.next/server/app/settings/integrations/browser-history.segments/settings.segment.rsc +4 -4
  343. package/.next/server/app/settings/journal/page.js.nft.json +1 -1
  344. package/.next/server/app/settings/journal/page_client-reference-manifest.js +1 -1
  345. package/.next/server/app/settings/journal.html +1 -1
  346. package/.next/server/app/settings/journal.rsc +18 -18
  347. package/.next/server/app/settings/journal.segments/_full.segment.rsc +18 -18
  348. package/.next/server/app/settings/journal.segments/_head.segment.rsc +4 -4
  349. package/.next/server/app/settings/journal.segments/_index.segment.rsc +10 -10
  350. package/.next/server/app/settings/journal.segments/_tree.segment.rsc +2 -2
  351. package/.next/server/app/settings/journal.segments/settings/journal/__PAGE__.segment.rsc +4 -4
  352. package/.next/server/app/settings/journal.segments/settings/journal.segment.rsc +3 -3
  353. package/.next/server/app/settings/journal.segments/settings.segment.rsc +4 -4
  354. package/.next/server/app/settings/lessons/page/app-paths-manifest.json +3 -0
  355. package/.next/server/app/settings/lessons/page/build-manifest.json +18 -0
  356. package/.next/server/app/settings/lessons/page/next-font-manifest.json +6 -0
  357. package/.next/server/app/settings/lessons/page/react-loadable-manifest.json +8 -0
  358. package/.next/server/app/settings/lessons/page/server-reference-manifest.json +4 -0
  359. package/.next/server/app/settings/lessons/page.js +16 -0
  360. package/.next/server/app/settings/lessons/page.js.nft.json +1 -0
  361. package/.next/server/app/settings/lessons/page_client-reference-manifest.js +3 -0
  362. package/.next/server/app/settings/lessons.html +1 -0
  363. package/.next/server/app/settings/lessons.meta +16 -0
  364. package/.next/server/app/settings/lessons.rsc +27 -0
  365. package/.next/server/app/settings/lessons.segments/_full.segment.rsc +27 -0
  366. package/.next/server/app/settings/lessons.segments/_head.segment.rsc +6 -0
  367. package/.next/server/app/settings/lessons.segments/_index.segment.rsc +11 -0
  368. package/.next/server/app/settings/lessons.segments/_tree.segment.rsc +2 -0
  369. package/.next/server/app/settings/lessons.segments/settings/lessons/__PAGE__.segment.rsc +9 -0
  370. package/.next/server/app/settings/lessons.segments/settings/lessons.segment.rsc +5 -0
  371. package/.next/server/app/settings/lessons.segments/settings.segment.rsc +5 -0
  372. package/.next/server/app/settings/management/page.js.nft.json +1 -1
  373. package/.next/server/app/settings/management/page_client-reference-manifest.js +1 -1
  374. package/.next/server/app/settings/management.html +1 -1
  375. package/.next/server/app/settings/management.rsc +18 -18
  376. package/.next/server/app/settings/management.segments/_full.segment.rsc +18 -18
  377. package/.next/server/app/settings/management.segments/_head.segment.rsc +4 -4
  378. package/.next/server/app/settings/management.segments/_index.segment.rsc +10 -10
  379. package/.next/server/app/settings/management.segments/_tree.segment.rsc +2 -2
  380. package/.next/server/app/settings/management.segments/settings/management/__PAGE__.segment.rsc +4 -4
  381. package/.next/server/app/settings/management.segments/settings/management.segment.rsc +3 -3
  382. package/.next/server/app/settings/management.segments/settings.segment.rsc +4 -4
  383. package/.next/server/app/settings/messaging/page.js.nft.json +1 -1
  384. package/.next/server/app/settings/messaging/page_client-reference-manifest.js +1 -1
  385. package/.next/server/app/settings/messaging.html +1 -1
  386. package/.next/server/app/settings/messaging.rsc +16 -16
  387. package/.next/server/app/settings/messaging.segments/_full.segment.rsc +16 -16
  388. package/.next/server/app/settings/messaging.segments/_head.segment.rsc +4 -4
  389. package/.next/server/app/settings/messaging.segments/_index.segment.rsc +10 -10
  390. package/.next/server/app/settings/messaging.segments/_tree.segment.rsc +2 -2
  391. package/.next/server/app/settings/messaging.segments/settings/messaging/__PAGE__.segment.rsc +2 -2
  392. package/.next/server/app/settings/messaging.segments/settings/messaging.segment.rsc +3 -3
  393. package/.next/server/app/settings/messaging.segments/settings.segment.rsc +4 -4
  394. package/.next/server/app/settings/models/page.js.nft.json +1 -1
  395. package/.next/server/app/settings/models/page_client-reference-manifest.js +1 -1
  396. package/.next/server/app/settings/models.html +1 -1
  397. package/.next/server/app/settings/models.rsc +18 -18
  398. package/.next/server/app/settings/models.segments/_full.segment.rsc +18 -18
  399. package/.next/server/app/settings/models.segments/_head.segment.rsc +4 -4
  400. package/.next/server/app/settings/models.segments/_index.segment.rsc +10 -10
  401. package/.next/server/app/settings/models.segments/_tree.segment.rsc +2 -2
  402. package/.next/server/app/settings/models.segments/settings/models/__PAGE__.segment.rsc +4 -4
  403. package/.next/server/app/settings/models.segments/settings/models.segment.rsc +3 -3
  404. package/.next/server/app/settings/models.segments/settings.segment.rsc +4 -4
  405. package/.next/server/app/settings/page.js.nft.json +1 -1
  406. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  407. package/.next/server/app/settings/processes/page.js.nft.json +1 -1
  408. package/.next/server/app/settings/processes/page_client-reference-manifest.js +1 -1
  409. package/.next/server/app/settings/processes.html +1 -1
  410. package/.next/server/app/settings/processes.rsc +16 -16
  411. package/.next/server/app/settings/processes.segments/_full.segment.rsc +16 -16
  412. package/.next/server/app/settings/processes.segments/_head.segment.rsc +4 -4
  413. package/.next/server/app/settings/processes.segments/_index.segment.rsc +10 -10
  414. package/.next/server/app/settings/processes.segments/_tree.segment.rsc +2 -2
  415. package/.next/server/app/settings/processes.segments/settings/processes/__PAGE__.segment.rsc +2 -2
  416. package/.next/server/app/settings/processes.segments/settings/processes.segment.rsc +3 -3
  417. package/.next/server/app/settings/processes.segments/settings.segment.rsc +4 -4
  418. package/.next/server/app/settings/routines/page.js.nft.json +1 -1
  419. package/.next/server/app/settings/routines/page_client-reference-manifest.js +1 -1
  420. package/.next/server/app/settings/routines.html +1 -1
  421. package/.next/server/app/settings/routines.rsc +18 -18
  422. package/.next/server/app/settings/routines.segments/_full.segment.rsc +18 -18
  423. package/.next/server/app/settings/routines.segments/_head.segment.rsc +4 -4
  424. package/.next/server/app/settings/routines.segments/_index.segment.rsc +10 -10
  425. package/.next/server/app/settings/routines.segments/_tree.segment.rsc +2 -2
  426. package/.next/server/app/settings/routines.segments/settings/routines/__PAGE__.segment.rsc +4 -4
  427. package/.next/server/app/settings/routines.segments/settings/routines.segment.rsc +3 -3
  428. package/.next/server/app/settings/routines.segments/settings.segment.rsc +4 -4
  429. package/.next/server/app/settings/schedule/page.js.nft.json +1 -1
  430. package/.next/server/app/settings/schedule/page_client-reference-manifest.js +1 -1
  431. package/.next/server/app/settings/schedule.html +1 -1
  432. package/.next/server/app/settings/schedule.rsc +18 -18
  433. package/.next/server/app/settings/schedule.segments/_full.segment.rsc +18 -18
  434. package/.next/server/app/settings/schedule.segments/_head.segment.rsc +4 -4
  435. package/.next/server/app/settings/schedule.segments/_index.segment.rsc +10 -10
  436. package/.next/server/app/settings/schedule.segments/_tree.segment.rsc +2 -2
  437. package/.next/server/app/settings/schedule.segments/settings/schedule/__PAGE__.segment.rsc +4 -4
  438. package/.next/server/app/settings/schedule.segments/settings/schedule.segment.rsc +3 -3
  439. package/.next/server/app/settings/schedule.segments/settings.segment.rsc +4 -4
  440. package/.next/server/app/settings/self-learning/page.js.nft.json +1 -1
  441. package/.next/server/app/settings/self-learning/page_client-reference-manifest.js +1 -1
  442. package/.next/server/app/settings/self-learning.html +1 -1
  443. package/.next/server/app/settings/self-learning.rsc +18 -18
  444. package/.next/server/app/settings/self-learning.segments/_full.segment.rsc +18 -18
  445. package/.next/server/app/settings/self-learning.segments/_head.segment.rsc +4 -4
  446. package/.next/server/app/settings/self-learning.segments/_index.segment.rsc +10 -10
  447. package/.next/server/app/settings/self-learning.segments/_tree.segment.rsc +2 -2
  448. package/.next/server/app/settings/self-learning.segments/settings/self-learning/__PAGE__.segment.rsc +4 -4
  449. package/.next/server/app/settings/self-learning.segments/settings/self-learning.segment.rsc +3 -3
  450. package/.next/server/app/settings/self-learning.segments/settings.segment.rsc +4 -4
  451. package/.next/server/app/settings/wiki/page.js.nft.json +1 -1
  452. package/.next/server/app/settings/wiki/page_client-reference-manifest.js +1 -1
  453. package/.next/server/app/settings/wiki/timeline/page.js.nft.json +1 -1
  454. package/.next/server/app/settings/wiki/timeline/page_client-reference-manifest.js +1 -1
  455. package/.next/server/app/settings/wiki/timeline.html +1 -1
  456. package/.next/server/app/settings/wiki/timeline.rsc +16 -16
  457. package/.next/server/app/settings/wiki/timeline.segments/_full.segment.rsc +16 -16
  458. package/.next/server/app/settings/wiki/timeline.segments/_head.segment.rsc +4 -4
  459. package/.next/server/app/settings/wiki/timeline.segments/_index.segment.rsc +10 -10
  460. package/.next/server/app/settings/wiki/timeline.segments/_tree.segment.rsc +2 -2
  461. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline/__PAGE__.segment.rsc +2 -2
  462. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki/timeline.segment.rsc +3 -3
  463. package/.next/server/app/settings/wiki/timeline.segments/settings/wiki.segment.rsc +3 -3
  464. package/.next/server/app/settings/wiki/timeline.segments/settings.segment.rsc +4 -4
  465. package/.next/server/app/settings/wiki.html +1 -1
  466. package/.next/server/app/settings/wiki.rsc +18 -18
  467. package/.next/server/app/settings/wiki.segments/_full.segment.rsc +18 -18
  468. package/.next/server/app/settings/wiki.segments/_head.segment.rsc +4 -4
  469. package/.next/server/app/settings/wiki.segments/_index.segment.rsc +10 -10
  470. package/.next/server/app/settings/wiki.segments/_tree.segment.rsc +2 -2
  471. package/.next/server/app/settings/wiki.segments/settings/wiki/__PAGE__.segment.rsc +4 -4
  472. package/.next/server/app/settings/wiki.segments/settings/wiki.segment.rsc +3 -3
  473. package/.next/server/app/settings/wiki.segments/settings.segment.rsc +4 -4
  474. package/.next/server/app/settings.html +1 -1
  475. package/.next/server/app/settings.rsc +18 -18
  476. package/.next/server/app/settings.segments/_full.segment.rsc +18 -18
  477. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  478. package/.next/server/app/settings.segments/_index.segment.rsc +10 -10
  479. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  480. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  481. package/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  482. package/.next/server/app/setup/page.js.nft.json +1 -1
  483. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  484. package/.next/server/app/setup.html +1 -1
  485. package/.next/server/app/setup.rsc +17 -17
  486. package/.next/server/app/setup.segments/_full.segment.rsc +17 -17
  487. package/.next/server/app/setup.segments/_head.segment.rsc +4 -4
  488. package/.next/server/app/setup.segments/_index.segment.rsc +10 -10
  489. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  490. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +4 -4
  491. package/.next/server/app/setup.segments/setup.segment.rsc +3 -3
  492. package/.next/server/app/trip/page.js.nft.json +1 -1
  493. package/.next/server/app/trip/page_client-reference-manifest.js +1 -1
  494. package/.next/server/app/trip.html +1 -1
  495. package/.next/server/app/trip.rsc +17 -17
  496. package/.next/server/app/trip.segments/_full.segment.rsc +17 -17
  497. package/.next/server/app/trip.segments/_head.segment.rsc +4 -4
  498. package/.next/server/app/trip.segments/_index.segment.rsc +10 -10
  499. package/.next/server/app/trip.segments/_tree.segment.rsc +2 -2
  500. package/.next/server/app/trip.segments/trip/__PAGE__.segment.rsc +4 -4
  501. package/.next/server/app/trip.segments/trip.segment.rsc +3 -3
  502. package/.next/server/app/wiki/page.js.nft.json +1 -1
  503. package/.next/server/app/wiki/page_client-reference-manifest.js +1 -1
  504. package/.next/server/app/wiki/timeline/page.js.nft.json +1 -1
  505. package/.next/server/app/wiki/timeline/page_client-reference-manifest.js +1 -1
  506. package/.next/server/app/wiki/timeline.html +1 -1
  507. package/.next/server/app/wiki/timeline.rsc +17 -17
  508. package/.next/server/app/wiki/timeline.segments/_full.segment.rsc +17 -17
  509. package/.next/server/app/wiki/timeline.segments/_head.segment.rsc +4 -4
  510. package/.next/server/app/wiki/timeline.segments/_index.segment.rsc +10 -10
  511. package/.next/server/app/wiki/timeline.segments/_tree.segment.rsc +2 -2
  512. package/.next/server/app/wiki/timeline.segments/wiki/timeline/__PAGE__.segment.rsc +4 -4
  513. package/.next/server/app/wiki/timeline.segments/wiki/timeline.segment.rsc +3 -3
  514. package/.next/server/app/wiki/timeline.segments/wiki.segment.rsc +3 -3
  515. package/.next/server/app/wiki.html +1 -1
  516. package/.next/server/app/wiki.rsc +17 -17
  517. package/.next/server/app/wiki.segments/_full.segment.rsc +17 -17
  518. package/.next/server/app/wiki.segments/_head.segment.rsc +4 -4
  519. package/.next/server/app/wiki.segments/_index.segment.rsc +10 -10
  520. package/.next/server/app/wiki.segments/_tree.segment.rsc +2 -2
  521. package/.next/server/app/wiki.segments/wiki/__PAGE__.segment.rsc +4 -4
  522. package/.next/server/app/wiki.segments/wiki.segment.rsc +3 -3
  523. package/.next/server/app-paths-manifest.json +1 -0
  524. package/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0o_o_hp.js +1 -1
  525. package/.next/server/chunks/ssr/0juq_dashboard__next-internal_server_app_settings_lessons_page_actions_0_yqadq.js +3 -0
  526. package/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0h7ji04.js +4 -0
  527. package/.next/server/chunks/ssr/[root-of-the-server]__03yuq_v._.js +7 -0
  528. package/.next/server/chunks/ssr/[root-of-the-server]__0kvyeu1._.js +3 -0
  529. package/.next/server/chunks/ssr/[root-of-the-server]__0znkqrs._.js +3 -0
  530. package/.next/server/chunks/ssr/{_0cvy_5o._.js → _00_--i0._.js} +2 -2
  531. package/.next/server/chunks/ssr/_00ej8j9._.js +3 -0
  532. package/.next/server/chunks/ssr/{_0n.cr_p._.js → _04jkn8c._.js} +2 -2
  533. package/.next/server/chunks/ssr/_09-o1vq._.js +3 -0
  534. package/.next/server/chunks/ssr/_0cccma-._.js +3 -0
  535. package/.next/server/chunks/ssr/{_0pigg8p._.js → _0evcd7w._.js} +2 -2
  536. package/.next/server/chunks/ssr/{_0klzava._.js → _0jrxrig._.js} +2 -2
  537. package/.next/server/chunks/ssr/_0nvpv18._.js +3 -0
  538. package/.next/server/chunks/ssr/{_0s4udmt._.js → _0o~hk.m._.js} +2 -2
  539. package/.next/server/chunks/ssr/_0pdbiu.._.js +9 -0
  540. package/.next/server/chunks/ssr/_0r25vcp._.js +3 -0
  541. package/.next/server/chunks/ssr/_0tf7hjz._.js +3 -0
  542. package/.next/server/chunks/ssr/_0xmdrbq._.js +3 -0
  543. package/.next/server/chunks/ssr/_0y-w3is._.js +3 -0
  544. package/.next/server/chunks/ssr/_0zz58.-._.js +1 -1
  545. package/.next/server/chunks/ssr/{_03qiunv._.js → _0~fi8o-._.js} +2 -2
  546. package/.next/server/chunks/ssr/_10s6iy.._.js +3 -0
  547. package/.next/server/chunks/ssr/{_03~tfh5._.js → _11pdc0s._.js} +2 -2
  548. package/.next/server/chunks/ssr/packages_dashboard_src_0uxs9-.._.js +1 -1
  549. package/.next/server/chunks/ssr/packages_dashboard_src_0z~3g5n._.js +3 -0
  550. package/.next/server/chunks/ssr/packages_shared_dist_index_0kuvow-.js +1 -1
  551. package/.next/server/middleware/middleware-manifest.json +1 -1
  552. package/.next/server/middleware-build-manifest.js +3 -3
  553. package/.next/server/middleware-manifest.json +1 -1
  554. package/.next/server/pages/404.html +1 -1
  555. package/.next/server/pages/500.html +1 -1
  556. package/.next/static/chunks/0-dw-4a8vg9m8.js +1 -0
  557. package/.next/static/chunks/0.za~0o8~5n1~.css +1 -0
  558. package/.next/static/chunks/0.~7m9beb0bmp.js +11 -0
  559. package/.next/static/chunks/{0ndazhatbfzo7.js → 02k085x_j4_bz.js} +1 -1
  560. package/.next/static/chunks/05xugzf8sfrxt.js +1 -0
  561. package/.next/static/chunks/073hnld9_qq5g.js +1 -0
  562. package/.next/static/chunks/{0ym9.va55pvtp.js → 0e3ds9mkx7.~v.js} +1 -1
  563. package/.next/static/chunks/{0m04i2v9cb~qe.js → 0fri59ogcsfbl.js} +1 -1
  564. package/.next/static/chunks/{0ytubabo8p3y0.js → 0j15hn~z~i56..js} +1 -1
  565. package/.next/static/chunks/{0z8eq-9fm5tni.js → 0mfem_s.3s4r-.js} +1 -1
  566. package/.next/static/chunks/{159r5abwjgz~a.js → 0t.xvj-t_vtrp.js} +1 -1
  567. package/.next/static/chunks/0vivqt8njmkpv.js +1 -0
  568. package/.next/static/chunks/{15pljj6~je.kw.js → 0v~gg~hn-8_k2.js} +1 -1
  569. package/.next/static/chunks/{0n6_wx41s~.c6.js → 0~7d6m~du_b.d.js} +1 -1
  570. package/.next/static/chunks/{17ncd9sikwfzz.js → 0~nct--xt2~bi.js} +1 -1
  571. package/.next/static/chunks/17b2~cmid8qeu.js +3 -0
  572. package/.next/static/chunks/{0105cq0xp5_hx.js → 17rcecfesskxn.js} +1 -1
  573. package/.next/types/routes.d.ts +2 -1
  574. package/.next/types/validator.ts +9 -0
  575. package/package.json +2 -2
  576. package/.next/server/chunks/ssr/[root-of-the-server]__0.tf.7i._.js +0 -7
  577. package/.next/server/chunks/ssr/[root-of-the-server]__0j8z8rh._.js +0 -3
  578. package/.next/server/chunks/ssr/_06pec-y._.js +0 -9
  579. package/.next/server/chunks/ssr/_07fm8yg._.js +0 -3
  580. package/.next/server/chunks/ssr/_0b--0p5._.js +0 -3
  581. package/.next/server/chunks/ssr/_0bz7.8y._.js +0 -3
  582. package/.next/server/chunks/ssr/_0erbggi._.js +0 -3
  583. package/.next/server/chunks/ssr/_0gp2p2l._.js +0 -3
  584. package/.next/server/chunks/ssr/_0jbimd_._.js +0 -3
  585. package/.next/server/chunks/ssr/_0nnu1fp._.js +0 -3
  586. package/.next/server/chunks/ssr/_0qu5la9._.js +0 -3
  587. package/.next/server/chunks/ssr/_0vn~fot._.js +0 -3
  588. package/.next/server/chunks/ssr/_0x._qd7._.js +0 -3
  589. package/.next/server/chunks/ssr/_0yh7rb_._.js +0 -3
  590. package/.next/static/chunks/01eo9jrlkjy03.js +0 -3
  591. package/.next/static/chunks/0_31fedlksujg.js +0 -1
  592. package/.next/static/chunks/0flms4gevti3_.js +0 -1
  593. package/.next/static/chunks/0mjh8s01-3c7z.css +0 -1
  594. package/.next/static/chunks/0obgpq3wenu4s.js +0 -11
  595. package/.next/static/chunks/0yh77irip2zjn.js +0 -1
  596. package/.next/static/chunks/1763zl5q3pn~0.js +0 -1
  597. /package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → i_QR0WWkZFeICcOMbfuUs}/_buildManifest.js +0 -0
  598. /package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → i_QR0WWkZFeICcOMbfuUs}/_clientMiddlewareManifest.js +0 -0
  599. /package/.next/static/{buq5uD5wcoRL2KUVTM1i7 → i_QR0WWkZFeICcOMbfuUs}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),r=e.i(81471);let n=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:a,interactive:l,...s}){return(0,t.jsx)("div",{className:(0,r.cn)(n({tone:a,interactive:l}),e),...s})},"CardHeader",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("mb-3 flex items-center justify-between",e),...n})},"CardStatLabel",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-sm font-medium text-muted-foreground",e),...n})},"CardTitle",0,function({className:e,...n}){return(0,t.jsx)("h3",{className:(0,r.cn)("text-lg font-semibold text-foreground",e),...n})},"CardValue",0,function({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("text-3xl font-bold text-foreground",e),...n})}])},39982,e=>{"use strict";var t=e.i(54710),r=e.i(81471);e.s(["PageHeader",0,function({title:e,description:n,icon:a,badge:l,actions:s,children:o,className:i}){return(0,t.jsxs)("header",{className:(0,r.cn)("flex flex-col gap-1",i),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[a&&(0,t.jsx)(a,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),l]}),s&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:s})]}),n&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:n}),o]})}])},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function r({title:e,defaultPath:n}){let a=await t.api.post("/system/pick-directory",{title:e,...n?{defaultPath:n}:{}});if("selected"===a.status&&a.path)return a.path;if("cancelled"===a.status)return null;throw Error(a.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,r])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},58436,e=>{"use strict";var t=e.i(54710),r=e.i(34416),n=e.i(55575),a=e.i(72740),l=e.i(20014),s=e.i(8652),o=e.i(66127),i=e.i(81471);e.s(["DirectoryPickerField",0,function({id:e,value:d,onChange:c,title:u,placeholder:m="Choose a folder...",defaultPath:p,disabled:h=!1,className:f,inputClassName:x,buttonLabel:b="Choose"}){let[g,v]=(0,r.useState)(!1),[k,w]=(0,r.useState)(null),y=async()=>{v(!0),w(null);try{let e=await (0,o.pickDirectoryFromDesktop)({title:u,defaultPath:d.trim()||p});e&&c(e)}catch(e){w(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{v(!1)}};return(0,t.jsxs)("div",{className:(0,i.cn)("space-y-1",f),children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(s.Input,{id:e,value:d,onChange:e=>{c(e.target.value),w(null)},placeholder:m,className:(0,i.cn)("font-mono text-sm",x),disabled:h||g}),(0,t.jsxs)(l.Button,{type:"button",variant:"outline",onClick:y,disabled:h||g,className:"shrink-0 gap-2",children:[g?(0,t.jsx)(a.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(n.FolderOpen,{className:"h-4 w-4"}),g?"Opening...":b]})]}),k&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:k})]})}])},75750,e=>{"use strict";let t=(0,e.i(77379).default)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],75750)},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let r={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},n=new Set(["opencode"]);function a(e){return n.has(e)}let l={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},s={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},o={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},i=["#6b7280","#9ca3af","#4b5563","#374151"],d={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function u(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let r=[];for(let[e,n]of Object.entries(t))n&&"object"==typeof n&&r.push({modelId:e,inputTokens:"number"==typeof n.inputTokens?n.inputTokens:0,outputTokens:"number"==typeof n.outputTokens?n.outputTokens:0,costUsd:"number"==typeof n.costUsd?n.costUsd:0});return r.sort((e,t)=>t.costUsd-e.costUsd)}function m(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,d,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,r,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let r of e){if(!r)continue;let e=m(r)??"other",n=t.get(e)??[];n.push(r),t.set(e,n)}let r={};for(let[e,n]of t){n.sort((e,t)=>e.localeCompare(t));let t="other"===e?i:o[e],a=n.length;n.forEach((e,n)=>{let l;l=a>=t.length?n%t.length:1===a?Math.floor(t.length/2):Math.floor((n+.5)*t.length/a),r[e]=t[l]})}return r},"detectBackendFromModel",0,m,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),r=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(r=`GPT-${r.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(r=r.replace(/^gemini\s*/i,"Gemini ")),r.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return l[e]??null},"getBackendLabel",0,function(e){return r[e]},"getBackendShortLabel",0,function(e){return s[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||a(e)},"isUiPreviewOnlyBackend",0,a,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=m(e);return t?d[t]:"gray"},"parseModelUsage",0,u,"pickDisplayModel",0,function(e,t){let r=u(t);return r.length>0&&r[0]?r[0].modelId:e??null}])},59134,e=>{"use strict";let t=(0,e.i(77379).default)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],59134)},70986,e=>{"use strict";var t=e.i(34416),r=e.i(91967),n=e.i(9413),a=e.i(36567),l=e.i(18731),s=e.i(22353),o=e.i(85565),i=e.i(90816),d=e.i(11207),c=e.i(54710),u="Collapsible",[m,p]=(0,n.createContextScope)(u),[h,f]=m(u),x=t.forwardRef((e,r)=>{let{__scopeCollapsible:n,open:l,defaultOpen:s,disabled:i,onOpenChange:m,...p}=e,[f,x]=(0,a.useControllableState)({prop:l,defaultProp:s??!1,onChange:m,caller:u});return(0,c.jsx)(h,{scope:n,disabled:i,contentId:(0,d.useId)(),open:f,onOpenToggle:t.useCallback(()=>x(e=>!e),[x]),children:(0,c.jsx)(o.Primitive.div,{"data-state":y(f),"data-disabled":i?"":void 0,...p,ref:r})})});x.displayName=u;var b="CollapsibleTrigger",g=t.forwardRef((e,t)=>{let{__scopeCollapsible:n,...a}=e,l=f(b,n);return(0,c.jsx)(o.Primitive.button,{type:"button","aria-controls":l.contentId,"aria-expanded":l.open||!1,"data-state":y(l.open),"data-disabled":l.disabled?"":void 0,disabled:l.disabled,...a,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,l.onOpenToggle)})});g.displayName=b;var v="CollapsibleContent",k=t.forwardRef((e,t)=>{let{forceMount:r,...n}=e,a=f(v,e.__scopeCollapsible);return(0,c.jsx)(i.Presence,{present:r||a.open,children:({present:e})=>(0,c.jsx)(w,{...n,ref:t,present:e})})});k.displayName=v;var w=t.forwardRef((e,r)=>{let{__scopeCollapsible:n,present:a,children:i,...d}=e,u=f(v,n),[m,p]=t.useState(a),h=t.useRef(null),x=(0,s.useComposedRefs)(r,h),b=t.useRef(0),g=b.current,k=t.useRef(0),w=k.current,j=u.open||m,C=t.useRef(j),S=t.useRef(void 0);return t.useEffect(()=>{let e=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,l.useLayoutEffect)(()=>{let e=h.current;if(e){S.current=S.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();b.current=t.height,k.current=t.width,C.current||(e.style.transitionDuration=S.current.transitionDuration,e.style.animationName=S.current.animationName),p(a)}},[u.open,a]),(0,c.jsx)(o.Primitive.div,{"data-state":y(u.open),"data-disabled":u.disabled?"":void 0,id:u.contentId,hidden:!j,...d,ref:x,style:{"--radix-collapsible-content-height":g?`${g}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:j&&i})});function y(e){return e?"open":"closed"}e.s(["Collapsible",0,x,"CollapsibleContent",0,k,"CollapsibleTrigger",0,g],70986)},24756,e=>{"use strict";var t=e.i(14260),r=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>r.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},13707,e=>{"use strict";var t=e.i(54710),r=e.i(34416),n=e.i(85565),a=e.i(90816),l=e.i(9413),s=e.i(22353),o=e.i(88248),i=e.i(75649),d=e.i(18731),c=e.i(27069),u=e.i(91967),m="ScrollArea",[p,h]=(0,l.createContextScope)(m),[f,x]=p(m),b=r.forwardRef((e,a)=>{let{__scopeScrollArea:l,type:o="hover",dir:d,scrollHideDelay:c=600,...u}=e,[m,p]=r.useState(null),[h,x]=r.useState(null),[b,g]=r.useState(null),[v,k]=r.useState(null),[w,y]=r.useState(null),[j,C]=r.useState(0),[S,N]=r.useState(0),[_,E]=r.useState(!1),[R,T]=r.useState(!1),P=(0,s.useComposedRefs)(a,e=>p(e)),B=(0,i.useDirection)(d);return(0,t.jsx)(f,{scope:l,type:o,dir:B,scrollHideDelay:c,scrollArea:m,viewport:h,onViewportChange:x,content:b,onContentChange:g,scrollbarX:v,onScrollbarXChange:k,scrollbarXEnabled:_,onScrollbarXEnabledChange:E,scrollbarY:w,onScrollbarYChange:y,scrollbarYEnabled:R,onScrollbarYEnabledChange:T,onCornerWidthChange:C,onCornerHeightChange:N,children:(0,t.jsx)(n.Primitive.div,{dir:B,...u,ref:P,style:{position:"relative","--radix-scroll-area-corner-width":j+"px","--radix-scroll-area-corner-height":S+"px",...e.style}})})});b.displayName=m;var g="ScrollAreaViewport",v=r.forwardRef((e,a)=>{let{__scopeScrollArea:l,children:o,nonce:i,...d}=e,c=x(g,l),u=r.useRef(null),m=(0,s.useComposedRefs)(a,u,c.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),(0,t.jsx)(n.Primitive.div,{"data-radix-scroll-area-viewport":"",...d,ref:m,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:o})})]})});v.displayName=g;var k="ScrollAreaScrollbar",w=r.forwardRef((e,n)=>{let{forceMount:a,...l}=e,s=x(k,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:i}=s,d="horizontal"===e.orientation;return r.useEffect(()=>(d?o(!0):i(!0),()=>{d?o(!1):i(!1)}),[d,o,i]),"hover"===s.type?(0,t.jsx)(y,{...l,ref:n,forceMount:a}):"scroll"===s.type?(0,t.jsx)(j,{...l,ref:n,forceMount:a}):"auto"===s.type?(0,t.jsx)(C,{...l,ref:n,forceMount:a}):"always"===s.type?(0,t.jsx)(S,{...l,ref:n}):null});w.displayName=k;var y=r.forwardRef((e,n)=>{let{forceMount:l,...s}=e,o=x(k,e.__scopeScrollArea),[i,d]=r.useState(!1);return r.useEffect(()=>{let e=o.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),d(!0)},n=()=>{t=window.setTimeout(()=>d(!1),o.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[o.scrollArea,o.scrollHideDelay]),(0,t.jsx)(a.Presence,{present:l||i,children:(0,t.jsx)(C,{"data-state":i?"visible":"hidden",...s,ref:n})})}),j=r.forwardRef((e,n)=>{var l;let{forceMount:s,...o}=e,i=x(k,e.__scopeScrollArea),d="horizontal"===e.orientation,c=K(()=>p("SCROLL_END"),100),[m,p]=(l={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>l[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===m){let e=window.setTimeout(()=>p("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[m,i.scrollHideDelay,p]),r.useEffect(()=>{let e=i.viewport,t=d?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(p("SCROLL"),c()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[i.viewport,d,p,c]),(0,t.jsx)(a.Presence,{present:s||"hidden"!==m,children:(0,t.jsx)(S,{"data-state":"hidden"===m?"hidden":"visible",...o,ref:n,onPointerEnter:(0,u.composeEventHandlers)(e.onPointerEnter,()=>p("POINTER_ENTER")),onPointerLeave:(0,u.composeEventHandlers)(e.onPointerLeave,()=>p("POINTER_LEAVE"))})})}),C=r.forwardRef((e,n)=>{let l=x(k,e.__scopeScrollArea),{forceMount:s,...o}=e,[i,d]=r.useState(!1),c="horizontal"===e.orientation,u=K(()=>{if(l.viewport){let e=l.viewport.offsetWidth<l.viewport.scrollWidth,t=l.viewport.offsetHeight<l.viewport.scrollHeight;d(c?e:t)}},10);return q(l.viewport,u),q(l.content,u),(0,t.jsx)(a.Presence,{present:s||i,children:(0,t.jsx)(S,{"data-state":i?"visible":"hidden",...o,ref:n})})}),S=r.forwardRef((e,n)=>{let{orientation:a="vertical",...l}=e,s=x(k,e.__scopeScrollArea),o=r.useRef(null),i=r.useRef(0),[d,c]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=F(d.viewport,d.content),m={...l,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>o.current=e,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:e=>i.current=e};function p(e,t){return function(e,t,r,n="ltr"){let a=O(r),l=t||a/2,s=r.scrollbar.paddingStart+l,o=r.scrollbar.size-r.scrollbar.paddingEnd-(a-l),i=r.content-r.viewport;return U([s,o],"ltr"===n?[0,i]:[-1*i,0])(e)}(e,i.current,d,t)}return"horizontal"===a?(0,t.jsx)(N,{...m,ref:n,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=H(s.viewport.scrollLeft,d,s.dir);o.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{s.viewport&&(s.viewport.scrollLeft=e)},onDragScroll:e=>{s.viewport&&(s.viewport.scrollLeft=p(e,s.dir))}}):"vertical"===a?(0,t.jsx)(_,{...m,ref:n,onThumbPositionChange:()=>{if(s.viewport&&o.current){let e=H(s.viewport.scrollTop,d);o.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{s.viewport&&(s.viewport.scrollTop=e)},onDragScroll:e=>{s.viewport&&(s.viewport.scrollTop=p(e))}}):null}),N=r.forwardRef((e,n)=>{let{sizes:a,onSizesChange:l,...o}=e,i=x(k,e.__scopeScrollArea),[d,c]=r.useState(),u=r.useRef(null),m=(0,s.useComposedRefs)(n,u,i.onScrollbarXChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(T,{"data-orientation":"horizontal",...o,ref:m,sizes:a,style:{bottom:0,left:"rtl"===i.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===i.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":O(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(i.viewport){var n,a;let l=i.viewport.scrollLeft+t.deltaX;e.onWheelScroll(l),n=l,a=r,n>0&&n<a&&t.preventDefault()}},onResize:()=>{u.current&&i.viewport&&d&&l({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:I(d.paddingLeft),paddingEnd:I(d.paddingRight)}})}})}),_=r.forwardRef((e,n)=>{let{sizes:a,onSizesChange:l,...o}=e,i=x(k,e.__scopeScrollArea),[d,c]=r.useState(),u=r.useRef(null),m=(0,s.useComposedRefs)(n,u,i.onScrollbarYChange);return r.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,t.jsx)(T,{"data-orientation":"vertical",...o,ref:m,sizes:a,style:{top:0,right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":O(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(i.viewport){var n,a;let l=i.viewport.scrollTop+t.deltaY;e.onWheelScroll(l),n=l,a=r,n>0&&n<a&&t.preventDefault()}},onResize:()=>{u.current&&i.viewport&&d&&l({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:I(d.paddingTop),paddingEnd:I(d.paddingBottom)}})}})}),[E,R]=p(k),T=r.forwardRef((e,a)=>{let{__scopeScrollArea:l,sizes:i,hasThumb:d,onThumbChange:c,onThumbPointerUp:m,onThumbPointerDown:p,onThumbPositionChange:h,onDragScroll:f,onWheelScroll:b,onResize:g,...v}=e,w=x(k,l),[y,j]=r.useState(null),C=(0,s.useComposedRefs)(a,e=>j(e)),S=r.useRef(null),N=r.useRef(""),_=w.viewport,R=i.content-i.viewport,T=(0,o.useCallbackRef)(b),P=(0,o.useCallbackRef)(h),B=K(g,10);function L(e){S.current&&f({x:e.clientX-S.current.left,y:e.clientY-S.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;y?.contains(t)&&T(e,R)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[_,y,R,T]),r.useEffect(P,[i,P]),q(y,B),q(w.content,B),(0,t.jsx)(E,{scope:l,scrollbar:y,hasThumb:d,onThumbChange:(0,o.useCallbackRef)(c),onThumbPointerUp:(0,o.useCallbackRef)(m),onThumbPositionChange:P,onThumbPointerDown:(0,o.useCallbackRef)(p),children:(0,t.jsx)(n.Primitive.div,{...v,ref:C,style:{position:"absolute",...v.style},onPointerDown:(0,u.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),S.current=y.getBoundingClientRect(),N.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",w.viewport&&(w.viewport.style.scrollBehavior="auto"),L(e))}),onPointerMove:(0,u.composeEventHandlers)(e.onPointerMove,L),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=N.current,w.viewport&&(w.viewport.style.scrollBehavior=""),S.current=null})})})}),P="ScrollAreaThumb",B=r.forwardRef((e,r)=>{let{forceMount:n,...l}=e,s=R(P,e.__scopeScrollArea);return(0,t.jsx)(a.Presence,{present:n||s.hasThumb,children:(0,t.jsx)(L,{ref:r,...l})})}),L=r.forwardRef((e,a)=>{let{__scopeScrollArea:l,style:o,...i}=e,d=x(P,l),c=R(P,l),{onThumbPositionChange:m}=c,p=(0,s.useComposedRefs)(a,e=>c.onThumbChange(e)),h=r.useRef(void 0),f=K(()=>{h.current&&(h.current(),h.current=void 0)},100);return r.useEffect(()=>{let e=d.viewport;if(e){let t=()=>{f(),h.current||(h.current=W(e,m),m())};return m(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[d.viewport,f,m]),(0,t.jsx)(n.Primitive.div,{"data-state":c.hasThumb?"visible":"hidden",...i,ref:p,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...o},onPointerDownCapture:(0,u.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;c.onThumbPointerDown({x:r,y:n})}),onPointerUp:(0,u.composeEventHandlers)(e.onPointerUp,c.onThumbPointerUp)})});B.displayName=P;var D="ScrollAreaCorner",A=r.forwardRef((e,r)=>{let n=x(D,e.__scopeScrollArea),a=!!(n.scrollbarX&&n.scrollbarY);return"scroll"!==n.type&&a?(0,t.jsx)(M,{...e,ref:r}):null});A.displayName=D;var M=r.forwardRef((e,a)=>{let{__scopeScrollArea:l,...s}=e,o=x(D,l),[i,d]=r.useState(0),[c,u]=r.useState(0),m=!!(i&&c);return q(o.scrollbarX,()=>{let e=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(e),u(e)}),q(o.scrollbarY,()=>{let e=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(e),d(e)}),m?(0,t.jsx)(n.Primitive.div,{...s,ref:a,style:{width:i,height:c,position:"absolute",right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:0,...e.style}}):null});function I(e){return e?parseInt(e,10):0}function F(e,t){let r=e/t;return isNaN(r)?0:r}function O(e){let t=F(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function H(e,t,r="ltr"){let n=O(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-a,s=t.content-t.viewport,o=(0,c.clamp)(e,"ltr"===r?[0,s]:[-1*s,0]);return U([0,s],[0,l-n])(o)}function U(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var W=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function a(){let l={left:e.scrollLeft,top:e.scrollTop},s=r.left!==l.left,o=r.top!==l.top;(s||o)&&t(),r=l,n=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(n)};function K(e,t){let n=(0,o.useCallbackRef)(e),a=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(a.current),[]),r.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(n,t)},[n,t])}function q(e,t){let r=(0,o.useCallbackRef)(t);(0,d.useLayoutEffect)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}var G=e.i(81471);let z=(0,r.forwardRef)(({className:e,children:r,...n},a)=>(0,t.jsxs)(b,{className:(0,G.cn)("relative overflow-hidden",e),...n,children:[(0,t.jsx)(v,{ref:a,className:"h-full w-full rounded-[inherit]",children:r}),(0,t.jsx)(w,{orientation:"vertical",className:"flex h-full w-2.5 touch-none select-none border-l border-l-transparent p-[1px] transition-colors",children:(0,t.jsx)(B,{className:"relative flex-1 rounded-full bg-border"})}),(0,t.jsx)(w,{orientation:"horizontal",className:"flex h-2.5 w-full flex-col touch-none select-none border-t border-t-transparent p-[1px] transition-colors",children:(0,t.jsx)(B,{className:"relative flex-1 rounded-full bg-border"})}),(0,t.jsx)(A,{})]}));z.displayName="ScrollArea",e.s(["ScrollArea",0,z],13707)},72010,e=>{"use strict";var t=e.i(54710),r=e.i(94237),n=e.i(72740),a=e.i(81471);let l=(0,r.cva)("animate-spin",{variants:{size:{xs:"h-3 w-3",sm:"h-3.5 w-3.5",md:"h-4 w-4",lg:"h-5 w-5"}},defaultVariants:{size:"md"}});e.s(["Spinner",0,function({className:e,size:r,...s}){return(0,t.jsx)(n.Loader2,{"aria-hidden":!0,className:(0,a.cn)(l({size:r}),e),...s})}])},86923,e=>{"use strict";var t=e.i(54710),r=e.i(34416),n=e.i(95486),a=e.i(72740),l=e.i(21682),s=e.i(7663),o=e.i(75750),i=e.i(74490),d=e.i(79634),c=e.i(48467),u=e.i(20014),m=e.i(8652),p=e.i(10427),h=e.i(65268),f=e.i(24756),x=e.i(87040),b=e.i(76176),g=e.i(81471),v=e.i(99758),k=e.i(59134),w=e.i(1718),y=e.i(27102),j=e.i(13707),C=e.i(57415),S=e.i(14260);function N({value:e,onChange:a,disabled:l,preferredTier:s,placeholder:o="Select model"}){let i,[p,f]=(0,r.useState)(!1),[x,b]=(0,r.useState)(""),[v,R]=(0,r.useState)(s??"all"),[T,P]=(0,r.useState)(!1),[B,L]=(0,r.useState)(!0),{data:D,isLoading:A,error:M}=(0,S.useQuery)({queryKey:["opencode-live-models"],queryFn:()=>h.api.get("/backends/opencode/live-models"),enabled:p,staleTime:3e5}),I=(i=(0,n.useQueryClient)(),(0,C.useMutation)({mutationFn:()=>h.api.get("/backends/opencode/live-models?refresh=1"),onSuccess:e=>{i.setQueryData(["opencode-live-models"],e)}})),F=(0,r.useMemo)(()=>{if(!D)return[];let e=x.trim().toLowerCase();return D.providers.map(t=>({...t,models:t.models.filter(t=>(!T||!!t.isFree)&&(!B||!!t.supportsToolUse)&&("all"===v||t.tier===v)&&(!e||t.modelId.toLowerCase().includes(e)||t.shortId.toLowerCase().includes(e)||t.name.toLowerCase().includes(e)||t.family.toLowerCase().includes(e)))})).filter(e=>e.models.length>0)},[D,x,v,T,B]),O=F.reduce((e,t)=>e+t.models.length,0),H=D?.providers.reduce((e,t)=>e+t.models.length,0)??0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Button,{type:"button",variant:"outline",disabled:l,onClick:()=>f(!0),className:"w-full justify-start truncate font-mono text-xs",children:e||(0,t.jsx)("span",{className:"text-muted-foreground italic",children:o})}),(0,t.jsx)(y.Dialog,{open:p,onOpenChange:f,children:(0,t.jsxs)(y.DialogContent,{className:"max-w-3xl",children:[(0,t.jsx)(y.DialogTitle,{children:"OpenCode model"}),(0,t.jsxs)(y.DialogDescription,{children:["Live catalogue from ",(0,t.jsx)("code",{children:"client.config.providers()"})," — every model your opencode server can route to. Selecting writes the full ",(0,t.jsx)("code",{children:"provider/model"})," composite."]}),(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(w.Search,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(m.Input,{autoFocus:!0,placeholder:"Search by id, name, or family (e.g. gpt-oss, haiku, qwen)",value:x,onChange:e=>b(e.target.value),className:"pl-8"})]}),(0,t.jsx)(u.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>I.mutate(),disabled:I.isPending,title:"Re-enumerate after opencode auth changes",children:(0,t.jsx)(k.RefreshCw,{className:(0,g.cn)("h-3.5 w-3.5",I.isPending&&"animate-spin")})})]}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs",children:[(0,t.jsx)(_,{active:"all"===v,onClick:()=>R("all"),label:"All tiers"}),["lite","medium","high"].map(e=>(0,t.jsx)(_,{active:v===e,onClick:()=>R(e),label:e},e)),(0,t.jsx)("div",{className:"mx-1 h-4 w-px bg-border"}),(0,t.jsx)(_,{active:B,onClick:()=>L(e=>!e),label:"tool-use only"}),(0,t.jsx)(_,{active:T,onClick:()=>P(e=>!e),label:"free only"}),(0,t.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[O,"/",H," models"]})]}),A&&(0,t.jsx)("p",{className:"mt-4 text-sm text-muted-foreground",children:"Loading…"}),M&&(0,t.jsxs)(d.Alert,{variant:"warning",className:"mt-3 text-xs",children:["Failed to enumerate models: ",M instanceof Error?M.message:"unknown error",". Confirm the daemon is running and the opencode server has at least one provider configured."]}),D&&(0,t.jsxs)(j.ScrollArea,{className:"mt-3 h-[420px] rounded-md border border-border",children:[0===F.length&&(0,t.jsx)("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"No models match these filters."}),F.map(r=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"sticky top-0 z-10 flex items-center gap-2 border-b border-border bg-muted/95 px-3 py-1.5 backdrop-blur",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider text-foreground",children:r.name}),(0,t.jsx)(c.Badge,{variant:"gray",className:"text-[10px]",children:r.source}),(0,t.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:r.models.length})]}),r.models.map(r=>(0,t.jsx)(E,{model:r,selected:r.modelId===e,onSelect:()=>{a(r.modelId),f(!1)}},r.modelId))]},r.id))]}),D&&(0,t.jsxs)("p",{className:"mt-2 text-[11px] text-muted-foreground",children:[D.cached?"Cached":"Fresh"," as of ",new Date(D.fetchedAt).toLocaleTimeString(),". Add providers via ",(0,t.jsx)("code",{children:"opencode auth login"}),", then click Refresh."]})]})})]})}function _({active:e,onClick:r,label:n}){return(0,t.jsx)("button",{type:"button",onClick:r,className:(0,g.cn)("rounded-full border px-2 py-0.5 transition-colors",e?"border-foreground bg-foreground text-background":"border-border bg-background text-muted-foreground hover:bg-muted"),children:n})}function E({model:e,selected:r,onSelect:n}){return(0,t.jsxs)("button",{type:"button",onClick:n,className:(0,g.cn)("flex w-full items-center gap-3 border-b border-border/40 px-3 py-2 text-left transition-colors hover:bg-muted/50",r&&"bg-accent/40"),children:[(0,t.jsx)(v.Check,{className:(0,g.cn)("h-3.5 w-3.5 shrink-0",r?"text-foreground":"text-transparent")}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-sm font-medium text-foreground",children:e.name}),(0,t.jsx)("div",{className:"truncate font-mono text-[11px] text-muted-foreground",children:e.modelId})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[e.isFree&&(0,t.jsx)(c.Badge,{variant:"green",className:"text-[10px]",children:"free"}),!e.supportsToolUse&&(0,t.jsx)(c.Badge,{variant:"gray",className:"text-[10px] text-muted-foreground",children:"no tools"}),(0,t.jsx)(c.Badge,{variant:"gray",className:"text-[10px]",children:e.tier}),!e.isFree&&null!==e.usdPer1kIn&&(0,t.jsxs)("span",{className:"font-mono text-[10px] tabular-nums text-muted-foreground",children:["$",e.usdPer1kIn.toFixed(4),"/$",e.usdPer1kOut?.toFixed(4)??"?"]})]})]})}let R={"message.dm":"DM response quality may degrade. Sonnet is recommended for important conversations.","message.mention":"Mention response quality may degrade. Sonnet is recommended.","dashboard.chat":"Dashboard chat response quality may degrade. Sonnet is recommended.","routine.morning_routine":"Long-form generation may produce shorter/rougher output with Haiku. Sonnet is recommended.","routine.evening_review":"Long-form generation may produce shorter/rougher output with Haiku. Sonnet is recommended.","routine.weekly_review":"Weekly reviews require reasoning depth. Haiku may produce less coherent output.","routine.monthly_review":"Monthly reviews require reasoning depth. Haiku may produce less coherent output.","agent.task":"Sonnet is recommended for complex task execution. Haiku may make rougher tool-use decisions."};function T(e){return!(e&&e.mainModel.trim()&&(!e.fallbackBackend||e.fallbackModel?.trim()))}function P(e,t,r){let n,a=(n=e.filter(e=>e.tier===t)).length>0?n:e;return r&&a.some(e=>e.modelId===r)?r:a[0]?.modelId??e[0]?.modelId??""}function B(e,t){return t?e.find(e=>e.modelId===t)?.label??(0,b.formatModelName)(t):"Disabled"}e.s(["BackendSettingsSection",0,function({onToast:e,sections:v=["processes"],processKeys:k,title:w="Process Routing",description:y}){let j=v.includes("processes"),C=(0,n.useQueryClient)(),{data:S,error:_,isLoading:E}=(0,f.useBackends)({enabled:j}),{data:L,error:D,isLoading:A}=(0,x.useProcessConfig)({enabled:j}),[M,I]=(0,r.useState)(null),[F,O]=(0,r.useState)(null),[H,U]=(0,r.useState)(!1),W=(0,r.useCallback)(async()=>{await Promise.all([C.invalidateQueries({queryKey:["backends"]}),C.invalidateQueries({queryKey:["process-config"]}),C.invalidateQueries({queryKey:["cost"]}),C.invalidateQueries({queryKey:["metrics"]})])},[C]),K=j?_??D:null;if(K){let e=K instanceof h.ApiError&&503===K.status;return(0,t.jsxs)(i.Card,{children:[(0,t.jsx)(i.CardHeader,{children:(0,t.jsx)(i.CardTitle,{children:"Process Routing"})}),(0,t.jsx)("p",{className:"max-w-prose text-sm text-muted-foreground",children:e?"Multi-backend tables are not available yet. Run migrations first.":K instanceof Error?K.message:"Failed to load process routing."})]})}if(!j)return null;if(E||!S||A||!L)return(0,t.jsxs)(i.Card,{children:[(0,t.jsx)(i.CardHeader,{children:(0,t.jsx)(i.CardTitle,{children:"Process Routing"})}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading process routing…"})]});let q=new Map(S.backends.map(e=>[e.id,e])),G=S.backends.filter(e=>e.enabled),z=(k?L.configs.filter(e=>k.includes(e.processKey)):L.configs).reduce((e,t)=>{let r=(0,b.getProcessGroup)(t.processKey),n=e.find(e=>e.group===r);return n?n.configs.push(t):e.push({group:r,configs:[t]}),e},[]);async function V(){if(F){U(!0);try{let t=await h.api.put(`/process-config/${F.processKey}`,{mainBackend:F.mainBackend,mainModel:F.mainModel,fallbackBackend:F.fallbackBackend,fallbackModel:F.fallbackModel,maxTurns:F.maxTurns,maxBudgetUsd:F.maxBudgetUsd});await W(),t.warnings?.length?e("warning",`Saved — ${t.warnings.map(e=>e.message).join("; ")}`):e("success",`${(0,b.getProcessLabel)(F.processKey)} updated`),I(null),O(null)}catch(t){e("error",function(e){if(!(e instanceof h.ApiError))return e instanceof Error?e.message:"Request failed";let t=e.body,r="string"==typeof t?.error?t.error:null,n=Array.isArray(t?.processKeys)?t.processKeys.filter(e=>"string"==typeof e):[];switch(r){case"backend_in_use":return`This backend is still used by: ${n.join(", ")}. Reassign those processes first.`;case"default_backend":return"Reassign the default backend before disabling it.";case"main_backend_disabled":return"The selected main backend is disabled. Enable it first.";case"fallback_backend_disabled":return"The selected fallback backend is disabled. Enable it first.";case"fallback_same_as_main":return"Fallback backend must differ from the main backend.";case"fallback_incomplete":return"Fallback backend and fallback model must either both be set or both be disabled.";case"invalid_main_model":return"The selected main model does not belong to the chosen backend.";case"invalid_fallback_model":return"The selected fallback model does not belong to the chosen fallback backend.";case"multi_backend_unavailable":return"Multi-backend tables are not available yet. Run migrations first.";default:return e.message}}(t))}finally{U(!1)}}}return(0,t.jsxs)(i.Card,{children:[(0,t.jsx)(i.CardHeader,{className:"items-start",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(i.CardTitle,{children:w}),(0,t.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-muted-foreground",children:y??(0,t.jsxs)(t.Fragment,{children:["One row per process (event-handling pipeline). Each row shows the resolved main backend and model, an optional fallback, and the per-run limits. Click ",(0,t.jsx)("em",{children:"Edit"})," to override any of them. Fallback kicks in only on ",(0,t.jsx)("em",{children:"decisive"})," main-backend failures (quota exhausted, auth broken, model unavailable, timeout — not ordinary rate limiting)."," ","“Default” badges mean the value is inherited from the main backend’s preset defaults above."]})})]})}),(0,t.jsx)("div",{className:"space-y-3",children:z.map(e=>(0,t.jsxs)("div",{className:"space-y-3",children:[!k&&(0,t.jsx)("h3",{className:"px-1 text-xs font-semibold uppercase text-muted-foreground",children:e.group}),e.configs.map(e=>{var r;let n,i=q.get(e.mainBackend),h=e.fallbackBackend?q.get(e.fallbackBackend):null,f=M===e.processKey&&F,x=f?q.get(F.mainBackend)?.models??[]:[],v=f&&F.fallbackBackend?q.get(F.fallbackBackend)?.models??[]:[];return(0,t.jsxs)("div",{className:"rounded-xl border border-border p-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("p",{className:"text-base font-medium text-foreground",children:(0,b.getProcessLabel)(e.processKey)}),(0,t.jsxs)(c.Badge,{variant:"high"===e.defaultTier?"purple":"medium"===e.defaultTier?"blue":"default",children:["Default ",e.defaultTier]})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e.processKey}),(n=function(e,t,r){if("routine.morning_routine"===e&&"claude"===t){let e=r.find(e=>"high"===e.tier&&e.available&&!e.deprecated);return e?`Defaults to Sonnet to preserve Claude quota — ${e.label} depletes the 5h window much faster. If you want better instruction-following or more thorough day-plan output, switch Main Model to ${e.label}.`:null}return null}(e.processKey,e.mainBackend,i?.models??[]))?(0,t.jsx)(d.Alert,{variant:"info",className:"mt-2 text-xs",children:n}):null]}),(0,t.jsxs)("div",{className:"grid gap-3 text-sm text-muted-foreground md:grid-cols-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"Main"}),(0,t.jsx)("p",{children:i?(0,b.getBackendLabel)(i.id):e.mainBackend}),(0,t.jsx)("p",{children:i?B(i.models,e.mainModel):e.mainModel})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"Fallback"}),h&&e.fallbackModel?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:(0,b.getBackendLabel)(h.id)}),(0,t.jsx)("p",{children:B(h.models,e.fallbackModel)})]}):(0,t.jsx)("p",{children:"Disabled"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium text-foreground",children:"Limits"}),(0,t.jsxs)("p",{children:[e.maxTurns," turns"]}),(0,t.jsxs)("p",{children:[(0,g.formatCurrency)(e.maxBudgetUsd)," soft budget"]})]})]})]}),(0,t.jsxs)(u.Button,{variant:"outline",onClick:()=>{I(e.processKey),O({processKey:e.processKey,defaultTier:e.defaultTier,mainBackend:e.mainBackend,mainModel:e.mainModel,fallbackBackend:e.fallbackBackend,fallbackModel:e.fallbackModel,maxTurns:e.maxTurns,maxBudgetUsd:e.maxBudgetUsd})},children:[(0,t.jsx)(l.Pencil,{className:"h-3.5 w-3.5"}),"Edit"]})]}),f&&F&&(0,t.jsxs)("div",{className:"mt-4 grid gap-4 rounded-xl border border-border/80 bg-muted/30 p-4 md:grid-cols-2",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Main backend"}),(0,t.jsxs)(p.Select,{value:F.mainBackend,onValueChange:e=>(function(e){let t=q.get(e);if(!t||!F)return;let r=F.fallbackBackend===e,n="opencode"===e?t.models.some(e=>e.modelId===F.mainModel)?F.mainModel:"":P(t.models,F.defaultTier,F.mainModel);O({...F,mainBackend:e,mainModel:n,fallbackBackend:r?null:F.fallbackBackend,fallbackModel:r?null:F.fallbackModel})})(e),children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:"Select backend"})}),(0,t.jsx)(p.SelectContent,{children:S.backends.map(e=>{let r=(0,b.isUiPreviewOnlyBackend)(e.id);return(0,t.jsxs)(p.SelectItem,{value:e.id,disabled:!e.enabled||r,children:[(0,b.getBackendLabel)(e.id),r?b.UI_PREVIEW_ONLY_BADGE_SUFFIX:""]},e.id)})})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Main model"}),"opencode"===F.mainBackend?(0,t.jsx)(N,{value:F.mainModel,onChange:e=>O(t=>t?{...t,mainModel:e}:t),preferredTier:F.defaultTier}):(0,t.jsxs)(p.Select,{value:F.mainModel,onValueChange:e=>O(t=>t?{...t,mainModel:e}:t),children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:"Select model"})}),(0,t.jsx)(p.SelectContent,{children:x.map(e=>(0,t.jsx)(p.SelectItem,{value:e.modelId,children:e.label},e.modelId))})]}),!!(r=F.mainModel)&&r.toLowerCase().includes("haiku")&&R[F.processKey]&&(0,t.jsx)(d.Alert,{variant:"warning",className:"mt-2 text-xs",children:R[F.processKey]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Fallback backend"}),(0,t.jsxs)(p.Select,{value:F.fallbackBackend??"__none__",onValueChange:e=>(function(e){if(!F)return;if(!e)return void O({...F,fallbackBackend:null,fallbackModel:null});let t=q.get(e);if(!t)return;let r="opencode"===e?F.fallbackModel&&t.models.some(e=>e.modelId===F.fallbackModel)?F.fallbackModel:"":P(t.models,F.defaultTier,F.fallbackModel);O({...F,fallbackBackend:e,fallbackModel:r})})("__none__"===e?null:e),children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:"Select backend"})}),(0,t.jsxs)(p.SelectContent,{children:[(0,t.jsx)(p.SelectItem,{value:"__none__",children:"Disabled"}),S.backends.map(e=>{let r=(0,b.isUiPreviewOnlyBackend)(e.id);return(0,t.jsxs)(p.SelectItem,{value:e.id,disabled:!e.enabled||e.id===F.mainBackend||r,children:[(0,b.getBackendLabel)(e.id),r?b.UI_PREVIEW_ONLY_BADGE_SUFFIX:""]},e.id)})]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Fallback model"}),"opencode"===F.fallbackBackend?(0,t.jsx)(N,{value:F.fallbackModel??"",onChange:e=>O(t=>t?{...t,fallbackModel:e}:t),preferredTier:F.defaultTier,placeholder:"Select fallback model"}):(0,t.jsxs)(p.Select,{disabled:!F.fallbackBackend,value:F.fallbackModel??"__none__",onValueChange:e=>O(t=>t?{...t,fallbackModel:"__none__"===e?null:e}:t),children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:"Select model"})}),(0,t.jsxs)(p.SelectContent,{children:[(0,t.jsx)(p.SelectItem,{value:"__none__",children:"Disabled"}),v.map(e=>(0,t.jsx)(p.SelectItem,{value:e.modelId,children:e.label},e.modelId))]})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Max turns"}),(0,t.jsx)(m.Input,{type:"number",min:1,max:1e3,value:F.maxTurns,onChange:e=>O(t=>t?{...t,maxTurns:Number(e.target.value)||1}:t)}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Hard cap on agent turns per run for this process. One turn = one model response (possibly with tool calls). When reached, the run stops mid-task — raise this if you see ",(0,t.jsx)("code",{children:"max_turns_reached"})," in the audit log."]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Soft budget (USD)"}),(0,t.jsx)(m.Input,{type:"number",min:0,max:1e4,step:"0.01",value:F.maxBudgetUsd,onChange:e=>O(t=>t?{...t,maxBudgetUsd:Number(e.target.value)||0}:t)}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Per-run spend cap in USD. “Soft” because the check happens between turns, so a single long turn can overshoot slightly. Runs that exceed the cap are aborted. Set to 0 to disable and rely only on the turn cap."})]}),(0,t.jsxs)("div",{className:"md:col-span-2 flex items-center justify-between gap-3",children:[(0,t.jsxs)("p",{className:"max-w-xl text-xs text-muted-foreground",children:[(0,t.jsx)("strong",{children:"Fallback backend/model"})," is consulted only on decisive failures: quota exhaustion, auth breakage, model refusal, timeout, or unrecoverable provider errors. Transient 5xx and ordinary rate limits are retried on the main backend first."]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(u.Button,{variant:"outline",onClick:()=>{I(null),O(null)},children:[(0,t.jsx)(o.XCircle,{className:"h-4 w-4"}),"Cancel"]}),(0,t.jsxs)(u.Button,{onClick:V,disabled:H||T(F),title:T(F)?"Pick a main model first — opencode requires an explicit selection from the live catalogue.":void 0,children:[H?(0,t.jsx)(a.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(s.Save,{className:"h-4 w-4"}),"Save Process"]})]})]})]})]},e.processKey)})]},e.group))}),G.length<2&&(0,t.jsx)(d.Alert,{variant:"warning",className:"mt-4 rounded-xl px-4 py-3 text-sm",children:"Enable another backend if you want fallback routing to be available for any process."})]})}],86923)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),s=e.i(81471);let a=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:i,...r}){return(0,t.jsx)("div",{className:(0,s.cn)(a({tone:n,interactive:i}),e),...r})},"CardHeader",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("mb-3 flex items-center justify-between",e),...a})},"CardStatLabel",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-sm font-medium text-muted-foreground",e),...a})},"CardTitle",0,function({className:e,...a}){return(0,t.jsx)("h3",{className:(0,s.cn)("text-lg font-semibold text-foreground",e),...a})},"CardValue",0,function({className:e,...a}){return(0,t.jsx)("div",{className:(0,s.cn)("text-3xl font-bold text-foreground",e),...a})}])},39982,e=>{"use strict";var t=e.i(54710),s=e.i(81471);e.s(["PageHeader",0,function({title:e,description:a,icon:n,badge:i,actions:r,children:l,className:o}){return(0,t.jsxs)("header",{className:(0,s.cn)("flex flex-col gap-1",o),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)(n,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),i]}),r&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:r})]}),a&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:a}),l]})}])},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},55575,e=>{"use strict";let t=(0,e.i(77379).default)("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],55575)},66127,e=>{"use strict";var t=e.i(65268);async function s({title:e,defaultPath:a}){let n=await t.api.post("/system/pick-directory",{title:e,...a?{defaultPath:a}:{}});if("selected"===n.status&&n.path)return n.path;if("cancelled"===n.status)return null;throw Error(n.message??"Folder picker is unavailable.")}e.s(["pickDirectoryFromDesktop",0,s])},25795,e=>{"use strict";let t=(0,e.i(77379).default)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],25795)},82239,e=>{"use strict";var t=e.i(54710),s=e.i(25795),a=e.i(10628);e.s(["RestartRequiredBadge",0,function(){return(0,t.jsxs)(a.Tooltip,{children:[(0,t.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-sm bg-amber-100 px-1 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:[(0,t.jsx)(s.RotateCcw,{className:"h-2.5 w-2.5"}),"restart"]})}),(0,t.jsx)(a.TooltipContent,{side:"top",className:"max-w-[220px] text-xs",children:"Changing this value requires a daemon restart to take effect."})]})}])},49681,e=>{"use strict";var t=e.i(54710),s=e.i(7771),a=e.i(95486),n=e.i(8011),i=e.i(10628),r=e.i(81471);e.s(["DocsHelpInline",0,function({docId:e,anchor:l=null,label:o,className:d}){let c=(0,a.useQueryClient)(),u=o??"Help";return(0,t.jsx)(i.TooltipProvider,{delayDuration:300,children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),(0,n.openDocsHelpSlideover)(c,{docId:e,anchor:l,autoFocusComposer:!1})},className:(0,r.cn)("inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 transition hover:bg-accent hover:text-foreground",d),"aria-label":`Open help — ${u}`,"data-testid":"docs-help-inline",children:(0,t.jsx)(s.HelpCircle,{className:"h-3.5 w-3.5","aria-hidden":"true"})})}),(0,t.jsx)(i.TooltipContent,{side:"top",children:(0,t.jsx)("span",{children:u})})]})})}])},88,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(99758),n=e.i(55575),i=e.i(21682),r=e.i(60168),l=e.i(25795),o=e.i(90925),d=e.i(36451);e.i(18446);var c=e.i(28444),u=e.i(48467),x=e.i(20014),m=e.i(74490),f=e.i(8652),h=e.i(82239),p=e.i(49681),b=e.i(66127),g=e.i(36413);let y=new Set(c.RESTART_REQUIRED_KEY_TUPLE);function v(e){return null===e?"":String(e)}e.s(["ConfigSection",0,function({title:e,children:s,helpDocId:a,helpAnchor:n}){return(0,t.jsxs)(m.Card,{children:[(0,t.jsx)(m.CardHeader,{children:(0,t.jsxs)(m.CardTitle,{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{children:e}),a&&(0,t.jsx)(p.DocsHelpInline,{docId:a,anchor:n??null,label:e})]})}),(0,t.jsx)("div",{className:"space-y-0.5 [&>p]:max-w-prose",children:s})]})},"EditableArrayField",0,function({label:e,values:a,configKey:i,variant:l="gray",placeholder:o="Add item...",directoryPicker:c,modified:m,onSave:p}){let g=y.has(i),[v,j]=(0,s.useState)(""),[k,w]=(0,s.useState)(!1),[N,C]=(0,s.useState)(null),S=async()=>{let e=v.trim();if(!(!e||a.includes(e))){w(!0),C(null);try{await p(i,[...a,e]),j("")}catch{}finally{w(!1)}}},E=async e=>{w(!0);try{await p(i,a.filter(t=>t!==e))}finally{w(!1)}},F=async()=>{if(c){w(!0),C(null);try{let e=await (0,b.pickDirectoryFromDesktop)({title:c.title,defaultPath:v.trim()||c.defaultPath});if(!e)return;if(a.includes(e)){j(e),C("That directory is already in the list.");return}await p(i,[...a,e]),j("")}catch(e){C(e instanceof Error?e.message:"Folder picker is unavailable.")}finally{w(!1)}}};return(0,t.jsxs)("div",{className:`py-2${m?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":i,children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground mb-2 inline-flex items-center gap-1.5",children:[e,g&&(0,t.jsx)(h.RestartRequiredBadge,{}),m&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[a.map(e=>(0,t.jsxs)(u.Badge,{variant:l,className:"gap-1 pr-1",children:[e,(0,t.jsx)("button",{onClick:()=>E(e),disabled:k,className:"ml-0.5 rounded-sm hover:bg-black/10 dark:hover:bg-white/10 p-0.5 transition-colors",children:(0,t.jsx)(d.X,{className:"h-3 w-3"})})]},e)),0===a.length&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground italic",children:"No items"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(f.Input,{value:v,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&S()},placeholder:o,className:"max-w-[320px]",disabled:k}),c&&(0,t.jsxs)(x.Button,{size:"sm",variant:"outline",onClick:F,disabled:k,children:[(0,t.jsx)(n.FolderOpen,{className:"h-3.5 w-3.5 mr-1"}),c.buttonLabel??"Choose"]}),(0,t.jsxs)(x.Button,{size:"sm",variant:"outline",onClick:S,disabled:!v.trim()||k,children:[(0,t.jsx)(r.Plus,{className:"h-3.5 w-3.5 mr-1"}),"Add"]})]}),N&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive",children:N})]})},"EditableBooleanField",0,function({label:e,value:a,configKey:n,description:i,modified:r,defaultValue:o,onSave:d}){let[c,u]=(0,s.useState)(!1),m=y.has(n),f=void 0!==o&&a===o,p=async()=>{u(!0);try{await d(n,!a)}finally{u(!1)}},b=async()=>{if(void 0!==o){u(!0);try{await d(n,o)}finally{u(!1)}}};return(0,t.jsx)("div",{className:`py-1.5 group${r?" border-l-2 border-blue-500 pl-2 -ml-1 rounded":""}`,"data-config-key":n,children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,m&&(0,t.jsx)(h.RestartRequiredBadge,{}),r&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==o&&!f&&!r&&(0,t.jsxs)("button",{type:"button",onClick:b,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]})]}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:i})]}),(0,t.jsx)(x.Button,{variant:a?"default":"outline",size:"sm",onClick:p,disabled:c,children:a?"Enabled":"Disabled"})]})})},"EditableField",0,function({label:e,value:n,configKey:r,type:c="text",suffix:u,description:m,min:p,max:b,nullable:j=!1,emptyLabel:k="Not set",modified:w,defaultValue:N,onSave:C}){let S=y.has(r),[E,F]=(0,s.useState)(!1),[B,L]=(0,s.useState)(v(n)),[T,M]=(0,s.useState)(!1),[P,D]=(0,s.useState)(null),R=(0,s.useRef)(null),K=(0,g.useDiscardGeneration)(),A=(0,s.useRef)(K);(0,s.useEffect)(()=>{K!==A.current&&(A.current=K,F(!1),D(null))},[K]),(0,s.useEffect)(()=>{E&&R.current?.focus()},[E]),(0,s.useEffect)(()=>{E||L(v(n))},[n,E]);let $=void 0!==N&&n===N,q=async e=>{if(e.stopPropagation(),void 0!==N){M(!0);try{await C(r,N)}finally{M(!1)}}},H=async e=>{e.stopPropagation(),M(!0);try{await C(r,null)}finally{M(!1)}},z=async()=>{let e=B.trim(),t=j&&""===e?null:"number"===c?Number(B):B;if(t===n)return void F(!1);if(null!==t&&"number"===c&&(void 0!==p||void 0!==b)&&(void 0!==p&&t<p||void 0!==b&&t>b))return void D(`Must be ${p??""}–${b??""}`);D(null),M(!0);try{await C(r,t),F(!1)}catch{}finally{M(!1)}};return E?(0,t.jsxs)("div",{className:"py-1.5","data-config-key":r,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground shrink-0 min-w-[140px] inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(h.RestartRequiredBadge,{})]}),(0,t.jsx)(f.Input,{ref:R,type:c,value:B,onChange:e=>{L(e.target.value),D(null)},onKeyDown:e=>{"Enter"===e.key&&z(),"Escape"===e.key&&(L(v(n)),F(!1))},className:"max-w-[240px]",disabled:T,min:p,max:b}),u&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:u}),(0,t.jsx)(x.Button,{size:"sm",variant:"ghost",onClick:z,disabled:T,className:"h-7 w-7 p-0",children:(0,t.jsx)(a.Check,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(x.Button,{size:"sm",variant:"ghost",onClick:()=>{L(v(n)),D(null),F(!1)},className:"h-7 w-7 p-0",children:(0,t.jsx)(d.X,{className:"h-3.5 w-3.5"})})]}),P&&(0,t.jsx)("p",{className:"text-xs text-destructive mt-1 ml-[148px]",children:P}),m&&!P&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 ml-[148px]",children:m})]}):(0,t.jsxs)("div",{className:`py-1.5 group cursor-pointer rounded px-1 -mx-1 hover:bg-muted/50 transition-colors${w?" border-l-2 border-blue-500 pl-2":""}`,"data-config-key":r,onClick:()=>F(!0),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground inline-flex items-center gap-1.5",children:[e,S&&(0,t.jsx)(h.RestartRequiredBadge,{})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[w&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-blue-600 dark:text-blue-400",children:"modified"}),void 0!==N&&!$&&!w&&(0,t.jsxs)("button",{type:"button",onClick:q,className:"text-[10px] text-muted-foreground hover:text-foreground transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(l.RotateCcw,{className:"h-2.5 w-2.5"}),"reset"]}),j&&null!==n&&!w&&(0,t.jsxs)("button",{type:"button",onClick:H,title:`Clear — sets ${e} to ${k}`,className:"text-[10px] text-muted-foreground hover:text-destructive transition-colors inline-flex items-center gap-0.5 opacity-0 group-hover:opacity-100",children:[(0,t.jsx)(o.Trash2,{className:"h-2.5 w-2.5"}),"clear"]}),(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:null===n?k:"$"===u?`$${n}`:u?`${n} ${u}`:String(n)}),(0,t.jsx)(i.Pencil,{className:"h-3 w-3 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),m&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:m})]})}])},44178,e=>{"use strict";var t=e.i(57415),s=e.i(14260),a=e.i(95486),n=e.i(65268);class i extends Error{conflict;constructor(e){super("context_conflict"),this.conflict=e,this.name="ContextConflictError"}}e.s(["ContextConflictError",0,i,"useContextFile",0,function(e,t){return(0,s.useQuery)({queryKey:["context",e],queryFn:()=>n.api.get(`/context/${e}`),enabled:!!e&&t?.enabled!==!1,refetchOnWindowFocus:t?.enabled!==!1})},"useContextList",0,function(e){return(0,s.useQuery)({queryKey:["context-list",e],queryFn:()=>n.api.get(`/context/list/${e}`)})},"useDeleteContextFile",0,function(){let e=(0,a.useQueryClient)();return(0,t.useMutation)({mutationFn:async({path:e})=>n.api.delete(`/context/${e}`),onSuccess:(t,{path:s})=>{e.removeQueries({queryKey:["context",s]}),e.invalidateQueries({queryKey:["snapshots",s]});let a=s.includes("/")?s.split("/")[0]:null;a&&e.invalidateQueries({queryKey:["context-list",a]}),s.startsWith("policies/routines/custom/")&&e.invalidateQueries({queryKey:["context-list","routines"]})}})},"useUpdateContextFile",0,function(){let e=(0,a.useQueryClient)();return(0,t.useMutation)({mutationFn:async({path:e,content:t,expectedMtime:s})=>{try{return await n.api.put(`/context/${e}`,{content:t,...void 0!==s?{expectedMtime:s}:{}})}catch(e){if(e instanceof n.ApiError&&409===e.status&&e.body?.error==="conflict"){let t=e.body;throw new i({currentMtime:t.currentMtime??"",currentContent:t.currentContent??""})}throw e}},onSuccess:(t,{path:s,content:a})=>{e.setQueryData(["context",s],e=>e?{...e,content:a,lastModified:t.lastModified}:{content:a,lastModified:t.lastModified,editable:!0}),e.invalidateQueries({queryKey:["snapshots",s]});let n=s.includes("/")?s.split("/")[0]:null;n&&e.invalidateQueries({queryKey:["context-list",n]})}})}])},40893,e=>{"use strict";var t=e.i(54710),s=e.i(81187),a=e.i(20014),n=e.i(81471);e.s(["FileConflictBanner",0,function({onReload:e,onOverwrite:i,isPending:r=!1,reloadLabel:l="Reload latest",className:o}){return(0,t.jsxs)("div",{role:"alert","aria-live":"assertive",className:(0,n.cn)("rounded-md border border-amber-500/50 bg-amber-500/10 p-3 text-xs",o),children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-2 font-semibold text-amber-900 dark:text-amber-200",children:[(0,t.jsx)(s.AlertTriangle,{className:"h-3.5 w-3.5"}),"File was modified by another process"]}),(0,t.jsx)("p",{className:"mb-3 text-amber-900/90 dark:text-amber-100/90",children:"The agent or another tab wrote to this file after you started editing. Your unsaved draft is preserved — choose how to proceed."}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(a.Button,{size:"sm",variant:"outline",onClick:e,disabled:r,className:"h-7",children:l}),(0,t.jsx)(a.Button,{size:"sm",variant:"destructive",onClick:i,disabled:r,className:"h-7",children:r?"Overwriting…":"Overwrite with my edits"})]})]})}])},28309,e=>{"use strict";var t=e.i(54710),s=e.i(34416),a=e.i(65268),n=e.i(88423),i=e.i(36413),r=e.i(14260),l=e.i(44178),o=e.i(79634),d=e.i(48467),c=e.i(20014),u=e.i(74490),x=e.i(39982),m=e.i(88),f=e.i(40893),h=e.i(81471);function p(e,t){return t<=0?0:Math.min(100,Math.max(0,Math.round(e/t*100)))}function b(e){return e>=100?"full":e>=80?"warn":"ok"}function g(){let{data:e}=(0,n.useConfig)(),{df:s}=(0,n.useConfigDefaults)(),{deferSaveFor:a,dv:r,dirtyFields:l}=(0,i.useDirtyFields)();if(!e)return(0,t.jsx)(u.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"})});let o=a(e),d=r("feedbackLearningEnabled",e.feedbackLearningEnabled);return(0,t.jsxs)(m.ConfigSection,{title:"Feedback learning",children:[(0,t.jsx)(m.EditableBooleanField,{label:"Enable feedback learning",value:d,configKey:"feedbackLearningEnabled",description:"Master switch. While off, no signals are consolidated and no lessons are injected — capture continues but nothing new takes effect.",modified:l.has("feedbackLearningEnabled"),defaultValue:s("feedbackLearningEnabled"),onSave:o}),(0,t.jsx)(m.EditableField,{label:"Promotion threshold",value:r("feedbackPromotionThreshold",e.feedbackPromotionThreshold),configKey:"feedbackPromotionThreshold",type:"number",min:1,max:10,description:"Weighted evidence a behavioral/self-critique signal must reach before it becomes an injectable lesson. An explicit owner directive promotes on the first occurrence regardless. Higher = slower to learn, fewer false lessons.",modified:l.has("feedbackPromotionThreshold"),defaultValue:s("feedbackPromotionThreshold"),onSave:o}),(0,t.jsx)(m.EditableField,{label:"Global lessons byte cap",value:r("feedbackLessonMaxBytesGlobal",e.feedbackLessonMaxBytesGlobal),configKey:"feedbackLessonMaxBytesGlobal",type:"number",suffix:"B",min:1024,max:32768,description:"Hard size cap for policies/agent-lessons.md. Over cap, the lowest-signal lessons are evicted during consolidation.",modified:l.has("feedbackLessonMaxBytesGlobal"),defaultValue:s("feedbackLessonMaxBytesGlobal"),onSave:o}),(0,t.jsx)(m.EditableField,{label:"Per-agent lessons byte cap",value:r("feedbackLessonMaxBytesPerAgent",e.feedbackLessonMaxBytesPerAgent),configKey:"feedbackLessonMaxBytesPerAgent",type:"number",suffix:"B",min:512,max:16384,description:"Hard size cap for each policies/agents/<slug>/lessons.md store.",modified:l.has("feedbackLessonMaxBytesPerAgent"),defaultValue:s("feedbackLessonMaxBytesPerAgent"),onSave:o}),(0,t.jsx)(m.EditableField,{label:"Lesson staleness horizon",value:r("feedbackLessonStaleDays",e.feedbackLessonStaleDays),configKey:"feedbackLessonStaleDays",type:"number",suffix:"days",min:7,max:365,description:"A lesson not reinforced within this window is pruned at the next consolidation — unless it is a durable constraint, which never expires.",modified:l.has("feedbackLessonStaleDays"),defaultValue:s("feedbackLessonStaleDays"),onSave:o}),(0,t.jsx)(m.EditableField,{label:"Signal retention",value:r("feedbackSignalRetentionDays",e.feedbackSignalRetentionDays),configKey:"feedbackSignalRetentionDays",type:"number",suffix:"days",min:30,max:365,description:"How long consumed raw feedback signals are kept before the nightly retention sweep drops them. Unconsolidated signals are never swept.",modified:l.has("feedbackSignalRetentionDays"),defaultValue:s("feedbackSignalRetentionDays"),onSave:o})]})}function y(){let{data:e,isLoading:n,error:i}=(0,r.useQuery)({queryKey:["feedback-lessons"],queryFn:()=>a.api.get("/feedback/lessons"),staleTime:3e4}),[l,d]=(0,s.useState)(null);return(0,t.jsxs)(u.Card,{className:"flex flex-col gap-3 p-4",children:[(0,t.jsx)(u.CardHeader,{className:"p-0",children:(0,t.jsx)(u.CardTitle,{className:"text-sm font-semibold",children:"Lesson stores"})}),n&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading lesson stores…"}),i&&(0,t.jsxs)(o.Alert,{variant:"error",children:["Failed to load lesson stores:"," ",i?.message??"unknown error"]}),e&&(0,t.jsxs)(t.Fragment,{children:[!e.enabled&&(0,t.jsx)(o.Alert,{variant:"warning",children:"Feedback learning is turned off — existing lessons are not being injected and no new ones are forming. Toggle it on above to resume."}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:[e.pendingSignals," signal",1===e.pendingSignals?"":"s"," ","awaiting the next nightly consolidation · promotion threshold"," ",e.promotionThreshold]}),(0,t.jsx)("ul",{className:"flex flex-col divide-y",children:e.stores.map(e=>(0,t.jsx)(j,{store:e,open:l===e.path,onToggle:()=>d(t=>t===e.path?null:e.path)},e.path))})]})]})}let v={ok:"bg-primary",warn:"bg-amber-500",full:"bg-destructive"};function j({store:e,open:s,onToggle:a}){var n;let i,r,l,o=(i={ok:0,warn:1,full:2},r=b(p(e.bytes,e.capBytes)),l=b(p(e.entries,e.maxEntries)),e.overCap?"full":i[r]>=i[l]?r:l),d=Math.max(p(e.bytes,e.capBytes),p(e.entries,e.maxEntries));return(0,t.jsxs)("li",{className:"py-3 first:pt-0",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:"agent"===(n=e.scope)?"Global — all agents & routines":n.startsWith("agent:")?n.slice(6):n}),(0,t.jsx)("p",{className:"truncate font-mono text-[11px] text-muted-foreground",children:e.path}),(0,t.jsx)("p",{className:"pt-0.5 text-xs text-muted-foreground",children:function(e){if(!e.exists)return"Not created yet — no lessons consolidated";let t=[`${e.active} active`];return e.provisional>0&&t.push(`${e.provisional} provisional`),t.push(`${e.bytes}/${e.capBytes} B`),e.overCap&&t.push("over cap"),t.join(" · ")}(e)}),e.exists&&(0,t.jsx)("div",{className:"mt-1.5 h-1.5 w-full max-w-xs overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("div",{className:(0,h.cn)("h-full rounded-full transition-all",v[o]),style:{width:`${d}%`}})})]}),(0,t.jsx)(c.Button,{type:"button",size:"sm",variant:s?"secondary":"outline",disabled:!e.exists,onClick:a,children:e.exists?s?"Close":"Edit":"Empty"})]}),s&&e.exists&&(0,t.jsx)("div",{className:"pt-3",children:(0,t.jsx)(k,{path:e.path})})]})}function k({path:e}){let s=(0,l.useContextFile)(e);return s.isLoading?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading…"}):s.error||!s.data?(0,t.jsxs)("p",{className:"text-sm text-destructive",children:["Failed to load ",e,":"," ",s.error?.message??"unknown error"]}):(0,t.jsx)(w,{path:e,initial:s.data,editable:!1!==s.data.editable},e)}function w({path:e,initial:n,editable:i}){let[r,o]=(0,s.useState)(n.content),[d,u]=(0,s.useState)({content:n.content,mtime:n.lastModified}),[x,m]=(0,s.useState)(null),[p,b]=(0,s.useState)(null),[g,y]=(0,s.useState)(null),v=(0,l.useUpdateContextFile)(),j=r!==d.content;(0,s.useEffect)(()=>{if(!j)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[j]);let k=async t=>{b(null);try{let s=await v.mutateAsync({path:e,content:r,expectedMtime:t});u({content:r,mtime:s.lastModified}),y(null),m("Saved."),window.setTimeout(()=>m(null),2500)}catch(e){e instanceof l.ContextConflictError?y({mtime:e.conflict.currentMtime,content:e.conflict.currentContent}):(a.ApiError,b(e.message))}},N=()=>k(d.mtime);return(0,t.jsxs)("div",{className:"flex flex-col gap-2 rounded-md border border-border bg-muted/20 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Last modified: ",(0,h.formatAbsoluteTime)(d.mtime)]}),(0,t.jsx)(c.Button,{type:"button",size:"sm",onClick:N,disabled:!j||!i||v.isPending||null!==g,children:v.isPending?"Saving…":"Save"})]}),g&&(0,t.jsx)(f.FileConflictBanner,{onReload:()=>{g&&(o(g.content),u({content:g.content,mtime:g.mtime}),y(null),b(null))},onOverwrite:()=>{g&&k(g.mtime)},isPending:v.isPending}),(0,t.jsx)("textarea",{value:r,onChange:e=>o(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()&&(e.preventDefault(),j&&i&&!v.isPending&&N())},disabled:!i,spellCheck:!1,className:"min-h-[320px] w-full resize-y rounded-md border border-border bg-background p-3 font-mono text-xs leading-relaxed focus:outline-none focus:ring-2 focus:ring-ring"}),(0,t.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:["Edits go through the same context write path the nightly consolidation uses. Keep the ",(0,t.jsx)("code",{children:"## Lessons"})," bullets and their"," ",(0,t.jsx)("code",{children:"<!-- ev=… -->"})," trailers intact so the consolidator can keep merging them."]}),x&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x}),p&&(0,t.jsx)("p",{className:"text-xs text-destructive",children:p})]})}e.s(["default",0,function(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.PageHeader,{title:"Lessons",badge:(0,t.jsx)(d.Badge,{variant:"amber",children:"Preview"}),description:(0,t.jsx)(t.Fragment,{children:"The agent calibrates its own behaviour from your feedback: when you correct it, state a preference, or its weekly self-critique flags a pattern, the signal is captured, consolidated each night into a scoped “lesson”, and injected back into exactly the agents that can act on it. Global lessons steer notification discipline and operating style; a per-agent lesson is injected only into that one Agent's runs. Tune how aggressively lessons form and review or hand-edit the stores below."})}),(0,t.jsx)(g,{}),(0,t.jsx)(y,{})]})}],28309)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:i,...r}){return(0,t.jsx)("div",{className:(0,a.cn)(s({tone:n,interactive:i}),e),...r})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...s})}])},39982,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["PageHeader",0,function({title:e,description:s,icon:n,badge:i,actions:r,children:d,className:l}){return(0,t.jsxs)("header",{className:(0,a.cn)("flex flex-col gap-1",l),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)(n,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),i]}),r&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:r})]}),s&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:s}),d]})}])},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let a={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},s=new Set(["opencode"]);function n(e){return s.has(e)}let i={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},r={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},d={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},l=["#6b7280","#9ca3af","#4b5563","#374151"],o={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function m(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let a=[];for(let[e,s]of Object.entries(t))s&&"object"==typeof s&&a.push({modelId:e,inputTokens:"number"==typeof s.inputTokens?s.inputTokens:0,outputTokens:"number"==typeof s.outputTokens?s.outputTokens:0,costUsd:"number"==typeof s.costUsd?s.costUsd:0});return a.sort((e,t)=>t.costUsd-e.costUsd)}function u(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,o,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,a,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let a of e){if(!a)continue;let e=u(a)??"other",s=t.get(e)??[];s.push(a),t.set(e,s)}let a={};for(let[e,s]of t){s.sort((e,t)=>e.localeCompare(t));let t="other"===e?l:d[e],n=s.length;s.forEach((e,s)=>{let i;i=n>=t.length?s%t.length:1===n?Math.floor(t.length/2):Math.floor((s+.5)*t.length/n),a[e]=t[i]})}return a},"detectBackendFromModel",0,u,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),a=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(a=`GPT-${a.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(a=a.replace(/^gemini\s*/i,"Gemini ")),a.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return i[e]??null},"getBackendLabel",0,function(e){return a[e]},"getBackendShortLabel",0,function(e){return r[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||n(e)},"isUiPreviewOnlyBackend",0,n,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=u(e);return t?o[t]:"gray"},"parseModelUsage",0,m,"pickDisplayModel",0,function(e,t){let a=m(t);return a.length>0&&a[0]?a[0].modelId:e??null}])},24756,e=>{"use strict";var t=e.i(14260),a=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>a.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},20492,37720,e=>{"use strict";var t=e.i(77379);let a=(0,t.default)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);e.s(["Power",0,a],20492);let s=(0,t.default)("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["PowerOff",0,s],37720)},53561,e=>{"use strict";var t=e.i(54710),a=e.i(34416);e.i(18446);var s=e.i(38082),n=e.i(99758),i=e.i(21682),r=e.i(60168),d=e.i(20492),l=e.i(37720),o=e.i(7663),c=e.i(90925),m=e.i(81187),u=e.i(36451),h=e.i(65268),p=e.i(39982),x=e.i(57415),g=e.i(14260),b=e.i(95486);let f=["commands"];var j=e.i(24756),k=e.i(20014),y=e.i(74490),N=e.i(8652),v=e.i(48467),C=e.i(10427),w=e.i(79634),I=e.i(76176),S=e.i(81471);let _=s.RUNTIME_AVAILABLE_BACKEND_IDS,A=/^[a-z0-9][a-z0-9_-]{0,31}$/,E={id:null,name:"",description:"",prompt:"",backendId:"claude",modelId:"claude-sonnet-4-6",enabled:!0,enabledSkills:["notify"],instructionMd:""};function M(e){let t=e.trim().toLowerCase();return t.startsWith("!")?t.slice(1):t}function B(e){return`!${M(e)}`}function D(e){return e.displayName??e.label??e.modelId}function T(e){return e instanceof h.ApiError||e instanceof Error?e.message:"Request failed"}function L({command:e}){return(0,t.jsxs)(y.Card,{className:"p-4",children:[(0,t.jsxs)(y.CardHeader,{className:"mb-2 gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)(y.CardTitle,{className:"text-base",children:e.title}),(0,t.jsx)("p",{className:"pt-1 font-mono text-sm text-primary",children:e.command})]}),(0,t.jsx)(v.Badge,{variant:"gray",children:"Built-in"})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description}),e.details.length>0&&(0,t.jsx)("ul",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:e.details.map(e=>(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)(n.Check,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-success"}),(0,t.jsx)("span",{children:e})]},e))})]})}function P({command:e,model:a,hasBuiltInConflict:s,busy:n,onEdit:r,onDelete:d}){return(0,t.jsxs)(y.Card,{tone:s?"warning":"default",className:"p-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("h3",{className:"font-mono text-base font-semibold text-primary",children:e.command}),(0,t.jsx)(v.Badge,{variant:e.enabled?"green":"gray",children:e.enabled?"Enabled":"Disabled"}),s&&(0,t.jsx)(v.Badge,{variant:"amber",children:"Name conflict"}),(0,t.jsx)(v.Badge,{variant:"blue",children:e.backendId})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-foreground",children:e.description||"No description provided."}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["Model: ",a?D(a):e.modelId]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(k.Button,{variant:"outline",size:"sm",onClick:r,disabled:n,children:[(0,t.jsx)(i.Pencil,{className:"mr-2 h-4 w-4"}),"Edit"]}),(0,t.jsxs)(k.Button,{variant:"destructive",size:"sm",onClick:d,disabled:n,children:[(0,t.jsx)(c.Trash2,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]}),s&&(0,t.jsxs)("div",{className:"mt-3 flex gap-2 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-200",children:[(0,t.jsx)(m.AlertTriangle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{children:"A built-in command with this name now exists. Runtime dispatch will use the built-in command until this custom command is renamed."})]}),(0,t.jsx)("div",{className:"mt-3 max-h-28 overflow-auto rounded-md bg-muted p-3 text-xs text-muted-foreground",children:(0,t.jsx)("pre",{className:"whitespace-pre-wrap font-sans",children:e.prompt})})]})}function F({draft:e,builtInReserved:a,userCommands:s,modelsByBackend:n,availableSkills:i,maxInstructionMdLength:r,busy:c,onChange:m,onCancel:h,onSave:p}){let x=M(e.name),g=B(e.name),b=A.test(x),f=a.has(g),j=s.some(t=>t.command===g&&t.id!==e.id),v=n.get(e.backendId)??[],w=v.some(t=>t.modelId===e.modelId),E=e.instructionMd.length>r,T=b&&!f&&!j&&e.prompt.trim().length>0&&w&&!E&&!c,L="claude"===e.backendId?"CLAUDE.md":"codex"===e.backendId?"AGENTS.md":"GEMINI.md",P=e.name.trim()?b?f?"This is a built-in command.":j?"This custom command already exists.":`${g} is available.`:"Use lowercase letters, numbers, hyphens, or underscores.":"Enter the part after !.";return(0,t.jsxs)(y.Card,{className:"p-4",children:[(0,t.jsxs)(y.CardHeader,{className:"mb-4",children:[(0,t.jsx)(y.CardTitle,{className:"text-base",children:e.id?`Edit ${g}`:"New Custom Command"}),(0,t.jsx)(k.Button,{variant:"ghost",size:"icon",onClick:h,disabled:c,children:(0,t.jsx)(u.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Command"}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"inline-flex h-9 items-center rounded-l-md border border-r-0 border-input bg-muted px-3 font-mono text-sm text-muted-foreground",children:"!"}),(0,t.jsx)(N.Input,{value:e.name.startsWith("!")?e.name.slice(1):e.name,onChange:t=>m({...e,name:t.target.value}),className:"rounded-l-none font-mono",placeholder:"digest",disabled:c})]}),(0,t.jsx)("p",{className:(0,S.cn)("text-xs",!b||f||j?"text-destructive":"text-muted-foreground"),children:P})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Description"}),(0,t.jsx)(N.Input,{value:e.description,onChange:t=>m({...e,description:t.target.value}),placeholder:"Short label shown in settings and help",disabled:c})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Backend"}),(0,t.jsxs)(C.Select,{value:e.backendId,onValueChange:t=>{let a=n.get(t)?.find(e=>e.available)?.modelId??n.get(t)?.[0]?.modelId??"";m({...e,backendId:t,modelId:a})},disabled:c,children:[(0,t.jsx)(C.SelectTrigger,{children:(0,t.jsx)(C.SelectValue,{})}),(0,t.jsx)(C.SelectContent,{children:_.map(e=>{let a=(0,I.isUiPreviewOnlyBackend)(e);return(0,t.jsxs)(C.SelectItem,{value:e,disabled:a,children:[e,a?I.UI_PREVIEW_ONLY_BADGE_SUFFIX:""]},e)})})]})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Model"}),(0,t.jsxs)(C.Select,{value:e.modelId,onValueChange:t=>m({...e,modelId:t}),disabled:c||0===v.length,children:[(0,t.jsx)(C.SelectTrigger,{children:(0,t.jsx)(C.SelectValue,{placeholder:"Select model"})}),(0,t.jsx)(C.SelectContent,{children:v.map(e=>(0,t.jsxs)(C.SelectItem,{value:e.modelId,children:[D(e),e.deprecated?" · legacy":""]},e.modelId))})]})]})]}),(0,t.jsxs)("label",{className:"mt-4 block space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Instruction Prompt"}),(0,t.jsx)("textarea",{value:e.prompt,onChange:t=>m({...e,prompt:t.target.value}),rows:8,className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",placeholder:"Describe exactly what the agent should do when this command is invoked.",disabled:c})]}),(0,t.jsxs)("fieldset",{className:"mt-4 space-y-2",children:[(0,t.jsx)("legend",{className:"text-sm font-medium text-foreground",children:"Skills"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Skill modules are materialized into the working directory for this command. Leave only ",(0,t.jsx)("code",{children:"notify"})," checked for a minimal DM-reply turn; add more if your prompt needs them."]}),(0,t.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 md:grid-cols-3",children:i.map(a=>{let s=e.enabledSkills.includes(a);return(0,t.jsxs)("label",{className:"inline-flex items-start gap-2 rounded-md border border-input bg-background px-2.5 py-1.5 text-sm",children:[(0,t.jsx)("input",{type:"checkbox",checked:s,onChange:()=>{let t;return t=e.enabledSkills.includes(a),void m({...e,enabledSkills:t?e.enabledSkills.filter(e=>e!==a):[...e.enabledSkills,a]})},disabled:c,className:"mt-0.5 h-4 w-4 rounded border-input accent-primary"}),(0,t.jsx)("span",{className:"font-mono text-xs",children:a})]},a)})}),0===e.enabledSkills.length&&(0,t.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["No skills selected — the agent will run with only safety + your instructions. Reply quality may suffer without ",(0,t.jsx)("code",{children:"notify"}),"."]})]}),(0,t.jsxs)("label",{className:"mt-4 block space-y-1.5",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-foreground",children:[L," body (optional)"]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Custom profile body written into the working directory's"," ",(0,t.jsx)("code",{children:L})," for this command. Leave blank to use the default conversational profile. The safety preamble and your character block are always emitted around it."]}),(0,t.jsx)("textarea",{value:e.instructionMd,onChange:t=>m({...e,instructionMd:t.target.value}),rows:8,className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",placeholder:"Replace the default conversational persona for this command. e.g. 'You are a terse summariser…'",disabled:c}),(0,t.jsxs)("p",{className:(0,S.cn)("text-xs",E?"text-destructive":"text-muted-foreground"),children:[e.instructionMd.length.toLocaleString()," /"," ",r.toLocaleString()," characters"]})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("label",{className:"inline-flex items-center gap-2 text-sm text-foreground",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:t=>m({...e,enabled:t.target.checked}),className:"h-4 w-4 rounded border-input accent-primary",disabled:c}),e.enabled?(0,t.jsx)(d.Power,{className:"h-4 w-4 text-success"}):(0,t.jsx)(l.PowerOff,{className:"h-4 w-4 text-muted-foreground"}),"Enabled"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(k.Button,{variant:"outline",onClick:h,disabled:c,children:"Cancel"}),(0,t.jsxs)(k.Button,{onClick:p,disabled:!T,children:[(0,t.jsx)(o.Save,{className:"mr-2 h-4 w-4"}),"Save Command"]})]})]})]})}e.s(["default",0,function(){let e,s,n,i=(0,g.useQuery)({queryKey:f,queryFn:()=>h.api.get("/commands")}),d=(0,j.useBackends)(),l=(e=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:e=>h.api.post("/commands",e),onSuccess:t=>{e.setQueryData(f,t)}})),o=(s=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:({id:e,body:t})=>h.api.put(`/commands/${e}`,t),onSuccess:e=>{s.setQueryData(f,e)}})),c=(n=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:e=>h.api.delete(`/commands/${e}`),onSuccess:e=>{n.setQueryData(f,e)}})),[u,N]=(0,a.useState)(null),[v,C]=(0,a.useState)(null),I=(0,a.useMemo)(()=>{let e=d.data?.backends??[],t=new Map;for(let a of e)t.set(a.id,a.models.filter(e=>e.available).sort((e,t)=>!!e.deprecated!=!!t.deprecated?e.deprecated?1:-1:D(e).localeCompare(D(t))));return t},[d.data?.backends]),S=(0,a.useMemo)(()=>new Set(i.data?.builtInCommands.map(e=>e.command)??[]),[i.data?.builtInCommands]),_=(0,a.useMemo)(()=>(i.data?.userCommands??[]).filter(e=>S.has(e.command)),[i.data?.userCommands,S]),A=(0,a.useMemo)(()=>i.data?.constraints.defaultSkills??["notify"],[i.data?.constraints.defaultSkills]),R=(0,a.useMemo)(()=>i.data?.constraints.availableSkills??[],[i.data?.constraints.availableSkills]),O=i.data?.constraints.maxInstructionMdLength??32e3,G=async()=>{if(!u)return;let e=u.instructionMd.trim(),t={name:M(u.name),description:u.description.trim(),prompt:u.prompt.trim(),backendId:u.backendId,modelId:u.modelId,enabled:u.enabled,enabledSkills:u.enabledSkills,instructionMd:0===e.length?null:e};try{u.id?(await o.mutateAsync({id:u.id,body:t}),C(`${B(u.name)} updated`)):(await l.mutateAsync(t),C(`${B(u.name)} created`)),N(null)}catch(e){C(T(e))}},W=async e=>{if(window.confirm(`Delete ${e.command}?`))try{await c.mutateAsync(e.id),u?.id===e.id&&N(null),C(`${e.command} deleted`)}catch(e){C(T(e))}},U=l.isPending||o.isPending||c.isPending;return i.isLoading||d.isLoading?(0,t.jsx)(y.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading commands…"})}):i.error||d.error||!i.data||!d.data?(0,t.jsx)(y.Card,{tone:"error",className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-destructive",children:"Failed to load command settings."})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.PageHeader,{title:"Commands",description:(0,t.jsxs)(t.Fragment,{children:["Messaging shortcuts that begin with ",(0,t.jsx)("code",{children:"!"}),". Built-in commands are system controls; custom commands run your saved prompt on the backend and model you choose."]})}),v&&(0,t.jsx)(w.Alert,{className:"rounded-lg px-4 py-2.5 text-sm",children:v}),_.length>0&&(0,t.jsx)(w.Alert,{variant:"warning",icon:!1,className:"rounded-lg px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(m.AlertTriangle,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:"Some custom commands now conflict with built-in commands."}),(0,t.jsx)("p",{className:"mt-1 text-muted-foreground",children:"Built-in commands take precedence at runtime. Rename the custom command to make it callable again."}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:_.map(e=>(0,t.jsx)("code",{className:"rounded bg-background px-1.5 py-0.5 font-mono text-xs",children:e.command},e.id))})]})]})}),(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Built-in"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Read-only controls handled by the daemon without model cost."})]})}),(0,t.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:i.data.builtInCommands.map(e=>(0,t.jsx)(L,{command:e},e.command))})]}),(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Custom"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"User-defined commands are validated against built-in and existing custom names."})]}),(0,t.jsxs)(k.Button,{onClick:()=>{let e=d.data?.defaultBackend??"claude",t=I.get(e)?.find(e=>e.available)?.modelId??I.get(e)?.[0]?.modelId??E.modelId;N({...E,backendId:e,modelId:t,enabledSkills:[...A]}),C(null)},disabled:U,children:[(0,t.jsx)(r.Plus,{className:"mr-2 h-4 w-4"}),"New Command"]})]}),u&&(0,t.jsx)(F,{draft:u,builtInReserved:S,userCommands:i.data.userCommands,modelsByBackend:I,availableSkills:R,maxInstructionMdLength:O,busy:U,onChange:N,onCancel:()=>N(null),onSave:G}),0===i.data.userCommands.length?(0,t.jsx)(y.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No custom commands yet."})}):(0,t.jsx)("div",{className:"grid gap-3",children:i.data.userCommands.map(e=>(0,t.jsx)(P,{command:e,model:I.get(e.backendId)?.find(t=>t.modelId===e.modelId),hasBuiltInConflict:S.has(e.command),busy:U,onEdit:()=>{N({id:e.id,name:e.name,description:e.description,prompt:e.prompt,backendId:e.backendId,modelId:e.modelId,enabled:e.enabled,enabledSkills:e.enabledSkills??[...A],instructionMd:e.instructionMd??""}),C(null)},onDelete:()=>W(e)},e.id))})]})]})}],53561)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74490,e=>{"use strict";var t=e.i(54710),a=e.i(81471);let s=(0,e.i(94237).cva)("rounded-xl border p-5 shadow-[0_1px_3px_rgb(0_0_0/0.04)]",{variants:{tone:{default:"border-border bg-card",warning:"border-amber-200 bg-amber-50/50 dark:border-amber-900 dark:bg-amber-950/30",success:"border-emerald-200 bg-emerald-50/50 dark:border-emerald-900 dark:bg-emerald-950/30",error:"border-red-200 bg-red-50/50 dark:border-red-900 dark:bg-red-950/30"},interactive:{true:"transition-shadow duration-150 hover:shadow-[0_4px_6px_rgb(0_0_0/0.06)]",false:""}},defaultVariants:{tone:"default",interactive:!1}});e.s(["Card",0,function({className:e,tone:n,interactive:i,...r}){return(0,t.jsx)("div",{className:(0,a.cn)(s({tone:n,interactive:i}),e),...r})},"CardHeader",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("mb-3 flex items-center justify-between",e),...s})},"CardStatLabel",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-sm font-medium text-muted-foreground",e),...s})},"CardTitle",0,function({className:e,...s}){return(0,t.jsx)("h3",{className:(0,a.cn)("text-lg font-semibold text-foreground",e),...s})},"CardValue",0,function({className:e,...s}){return(0,t.jsx)("div",{className:(0,a.cn)("text-3xl font-bold text-foreground",e),...s})}])},39982,e=>{"use strict";var t=e.i(54710),a=e.i(81471);e.s(["PageHeader",0,function({title:e,description:s,icon:n,badge:i,actions:r,children:d,className:l}){return(0,t.jsxs)("header",{className:(0,a.cn)("flex flex-col gap-1",l),children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)(n,{className:"h-5 w-5 text-muted-foreground"}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:e}),i]}),r&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:r})]}),s&&(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:s}),d]})}])},21682,e=>{"use strict";let t=(0,e.i(77379).default)("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],21682)},90925,e=>{"use strict";let t=(0,e.i(77379).default)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);e.s(["Trash2",0,t],90925)},60168,e=>{"use strict";let t=(0,e.i(77379).default)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],60168)},99758,e=>{"use strict";let t=(0,e.i(77379).default)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],99758)},76176,e=>{"use strict";e.i(18446);var t=e.i(38082);let a={claude:"Claude Code",codex:"OpenAI Codex",gemini:"Gemini CLI",opencode:"OpenCode"},s=new Set(["opencode"]);function n(e){return s.has(e)}let i={gemini:{badgeLabel:"Vendor deprecation",shortSuffix:" (deprecated)",reason:"Google announced Gemini CLI will stop serving free, Pro, and Ultra requests on 2026-06-18 in favor of Antigravity CLI. Standard / Enterprise licenses keep access. Avoid binding new processes to Gemini if you rely on consumer-tier auth."}},r={claude:"Claude",codex:"Codex",gemini:"Gemini",opencode:"OpenCode"},d={claude:["#7C2D12","#B54B2D","#E15B40","#F97316","#FDBA74"],codex:["#86198F","#A21CAF","#D946EF","#E879F9","#F5D0FE"],gemini:["#1E3A8A","#1D4ED8","#1C69FF","#60A5FA","#93C5FD"],opencode:["#7C2D12","#C2410C","#FF7300","#F59E0B","#FCD34D"]},l=["#6b7280","#9ca3af","#4b5563","#374151"],o={claude:"orange",codex:"pink",gemini:"blue",opencode:"orange"},c={"routine.morning_routine":"Morning Routine","routine.evening_review":"Evening Review","routine.weekly_review":"Weekly Review","routine.monthly_review":"Monthly Review","routine.hourly_check":"Hourly Check","routine.roadmap_refresh":"Roadmap Refresh","message.dm":"Direct Messages","message.mention":"Mentions","dashboard.chat":"Dashboard Chat","agent.task":"Scheduled Tasks","calendar.change":"Calendar Events",gmail_classify:"Gmail Classification","github.pull_request.review_requested":"GitHub Review Requests","github.assigned":"GitHub Assignments","github.security_alert":"GitHub Security Alerts","github.workflow_run.failed":"GitHub CI Failures","wiki.ingest_url":"Wiki URL Ingest","wiki.compile":"Wiki Compile","wiki.ask":"Wiki Ask"};function m(e){let t;if(!e)return[];try{t=JSON.parse(e)}catch{return[]}if(!t||"object"!=typeof t)return[];let a=[];for(let[e,s]of Object.entries(t))s&&"object"==typeof s&&a.push({modelId:e,inputTokens:"number"==typeof s.inputTokens?s.inputTokens:0,outputTokens:"number"==typeof s.outputTokens?s.outputTokens:0,costUsd:"number"==typeof s.costUsd?s.costUsd:0});return a.sort((e,t)=>t.costUsd-e.costUsd)}function u(e){if(!e)return null;let t=e.toLowerCase();return/^[a-z0-9_.-]+\/[a-z0-9_.-]+/.test(t)?"opencode":t.includes("claude")||t.includes("sonnet")||t.includes("opus")||t.includes("haiku")?"claude":t.includes("gemini")?"gemini":t.includes("gpt")||t.includes("codex")||t.includes("o3")||t.includes("o4")?"codex":null}e.s(["BACKEND_BADGE_VARIANTS",0,o,"BACKEND_COLORS",0,{claude:"#E15B40",codex:"#D946EF",gemini:"#1C69FF",opencode:"#FF7300"},"BACKEND_LABELS",0,a,"BACKEND_PROVIDER_LABELS",0,{claude:"Claude (Anthropic)",codex:"ChatGPT (OpenAI)",gemini:"Gemini (Google)",opencode:"OpenCode (sst/opencode)"},"BACKEND_PROVIDER_SHORT",0,{claude:"Claude",codex:"ChatGPT",gemini:"Gemini",opencode:"OpenCode"},"BACKEND_WEB_SEARCH_DESCRIPTIONS",0,{claude:"Lets the agent call Anthropic's built-in WebSearch tool.",codex:"Lets the agent call OpenAI's web_search tool. Works in safe (sandbox) mode — the tool runs at OpenAI, not as a local shell command.",gemini:"Lets the agent call Gemini's google_web_search tool.",opencode:"Lets the agent call the configured OpenCode provider's web-search tool when the OpenCode runtime is enabled."},"CHART_CATEGORY_PALETTE",0,["#3b82f6","#10b981","#f59e0b","#8b5cf6","#ec4899","#14b8a6","#f97316","#6366f1","#ef4444","#22c55e"],"UI_PREVIEW_ONLY_BADGE_SUFFIX",0," (coming soon)","UI_PREVIEW_ONLY_REASON",0,"Coming soon — OpenCode is wired internally but not yet ready for selection in this release. The card stays visible so you can see what is on the roadmap.","assignModelColors",0,function(e){let t=new Map;for(let a of e){if(!a)continue;let e=u(a)??"other",s=t.get(e)??[];s.push(a),t.set(e,s)}let a={};for(let[e,s]of t){s.sort((e,t)=>e.localeCompare(t));let t="other"===e?l:d[e],n=s.length;s.forEach((e,s)=>{let i;i=n>=t.length?s%t.length:1===n?Math.floor(t.length/2):Math.floor((s+.5)*t.length/n),a[e]=t[i]})}return a},"detectBackendFromModel",0,u,"formatModelName",0,function(e){return e?e.replace(/^[a-z0-9_.-]+\//i,"").replace(/^claude-/,"Claude ").replace(/^gpt-/,"GPT-").replace(/^gemini-/,"Gemini ").replace(/-/g," ").replace(/\bpreview\b/gi,"(preview)").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\bcodex\b/gi,"Codex").replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\s+/g," ").trim():"Not set"},"formatShortModelName",0,function(e){if(!e)return"unknown";if("opus"===e)return"Opus";if("sonnet"===e)return"Sonnet";let t=e.replace(/^[a-z0-9_.-]+\//i,""),a=t.replace(/-\d{8,}$/,"").replace(/^claude-/,"").replace(/(\d+)-(\d+)(?![-\d])/g,"$1.$2").replace(/-/g," ");return t.startsWith("gpt-")&&(a=`GPT-${a.replace(/^gpt\s*/i,"")}`),t.startsWith("gemini-")&&(a=a.replace(/^gemini\s*/i,"Gemini ")),a.replace(/\bopus\b/gi,"Opus").replace(/\bsonnet\b/gi,"Sonnet").replace(/\bhaiku\b/gi,"Haiku").replace(/\bpro\b/gi,"Pro").replace(/\bflash\b/gi,"Flash").replace(/\blite\b/gi,"Lite").replace(/\bmini\b/gi,"Mini").replace(/\s+/g," ").trim()},"getBackendDeprecation",0,function(e){return i[e]??null},"getBackendLabel",0,function(e){return a[e]},"getBackendShortLabel",0,function(e){return r[e]},"getProcessGroup",0,function(e){return e.startsWith("wiki.")?"Wiki":e.startsWith("message.")||e.startsWith("dashboard.")?"Conversation":e.startsWith("routine.")?"Routines":e.startsWith("git.")||e.startsWith("github.")?"Git & GitHub":e.startsWith("calendar.")||"gmail_classify"===e?"Integrations":"Tasks"},"getProcessLabel",0,function(e){return c[e]??e},"isBackendSelectionDisabled",0,function(e){return!(0,t.isRuntimeAvailableBackendId)(e)||n(e)},"isUiPreviewOnlyBackend",0,n,"modelBadgeVariant",0,function(e){if(!e)return"gray";let t=u(e);return t?o[t]:"gray"},"parseModelUsage",0,m,"pickDisplayModel",0,function(e,t){let a=m(t);return a.length>0&&a[0]?a[0].modelId:e??null}])},24756,e=>{"use strict";var t=e.i(14260),a=e.i(65268);e.s(["useBackends",0,function(e){return(0,t.useQuery)({queryKey:["backends"],queryFn:()=>a.api.get("/backends"),enabled:e?.enabled??!0,staleTime:6e4})}])},20492,37720,e=>{"use strict";var t=e.i(77379);let a=(0,t.default)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]);e.s(["Power",0,a],20492);let s=(0,t.default)("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);e.s(["PowerOff",0,s],37720)},53561,e=>{"use strict";var t=e.i(54710),a=e.i(34416);e.i(18446);var s=e.i(38082),n=e.i(99758),i=e.i(21682),r=e.i(60168),d=e.i(20492),l=e.i(37720),o=e.i(7663),c=e.i(90925),m=e.i(81187),u=e.i(36451),h=e.i(65268),p=e.i(39982),x=e.i(57415),g=e.i(14260),b=e.i(95486);let f=["commands"];var j=e.i(24756),k=e.i(20014),y=e.i(74490),N=e.i(8652),v=e.i(48467),C=e.i(10427),w=e.i(79634),I=e.i(76176),S=e.i(81471);let _=s.RUNTIME_AVAILABLE_BACKEND_IDS,A=/^[a-z0-9][a-z0-9_-]{0,31}$/,E={id:null,name:"",description:"",prompt:"",backendId:"claude",modelId:"claude-sonnet-4-6",enabled:!0,enabledSkills:["notify"],instructionMd:""};function M(e){let t=e.trim().toLowerCase();return t.startsWith("!")?t.slice(1):t}function B(e){return`!${M(e)}`}function D(e){return e.displayName??e.label??e.modelId}function T(e){return e instanceof h.ApiError||e instanceof Error?e.message:"Request failed"}function L({command:e}){return(0,t.jsxs)(y.Card,{className:"p-4",children:[(0,t.jsxs)(y.CardHeader,{className:"mb-2 gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)(y.CardTitle,{className:"text-base",children:e.title}),(0,t.jsx)("p",{className:"pt-1 font-mono text-sm text-primary",children:e.command})]}),(0,t.jsx)(v.Badge,{variant:"gray",children:"Built-in"})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e.description}),e.details.length>0&&(0,t.jsx)("ul",{className:"mt-3 space-y-1 text-sm text-muted-foreground",children:e.details.map(e=>(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)(n.Check,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-success"}),(0,t.jsx)("span",{children:e})]},e))})]})}function P({command:e,model:a,hasBuiltInConflict:s,busy:n,onEdit:r,onDelete:d}){return(0,t.jsxs)(y.Card,{tone:s?"warning":"default",className:"p-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("h3",{className:"font-mono text-base font-semibold text-primary",children:e.command}),(0,t.jsx)(v.Badge,{variant:e.enabled?"green":"gray",children:e.enabled?"Enabled":"Disabled"}),s&&(0,t.jsx)(v.Badge,{variant:"amber",children:"Name conflict"}),(0,t.jsx)(v.Badge,{variant:"blue",children:e.backendId})]}),(0,t.jsx)("p",{className:"mt-1 text-sm text-foreground",children:e.description||"No description provided."}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-muted-foreground",children:["Model: ",a?D(a):e.modelId]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(k.Button,{variant:"outline",size:"sm",onClick:r,disabled:n,children:[(0,t.jsx)(i.Pencil,{className:"mr-2 h-4 w-4"}),"Edit"]}),(0,t.jsxs)(k.Button,{variant:"destructive",size:"sm",onClick:d,disabled:n,children:[(0,t.jsx)(c.Trash2,{className:"mr-2 h-4 w-4"}),"Delete"]})]})]}),s&&(0,t.jsxs)("div",{className:"mt-3 flex gap-2 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:border-amber-900 dark:bg-amber-950/40 dark:text-amber-200",children:[(0,t.jsx)(m.AlertTriangle,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("span",{children:"A built-in command with this name now exists. Runtime dispatch will use the built-in command until this custom command is renamed."})]}),(0,t.jsx)("div",{className:"mt-3 max-h-28 overflow-auto rounded-md bg-muted p-3 text-xs text-muted-foreground",children:(0,t.jsx)("pre",{className:"whitespace-pre-wrap font-sans",children:e.prompt})})]})}function F({draft:e,builtInReserved:a,userCommands:s,modelsByBackend:n,availableSkills:i,maxInstructionMdLength:r,busy:c,onChange:m,onCancel:h,onSave:p}){let x=M(e.name),g=B(e.name),b=A.test(x),f=a.has(g),j=s.some(t=>t.command===g&&t.id!==e.id),v=n.get(e.backendId)??[],w=v.some(t=>t.modelId===e.modelId),E=e.instructionMd.length>r,T=b&&!f&&!j&&e.prompt.trim().length>0&&w&&!E&&!c,L="claude"===e.backendId?"CLAUDE.md":"codex"===e.backendId?"AGENTS.md":"GEMINI.md",P=e.name.trim()?b?f?"This is a built-in command.":j?"This custom command already exists.":`${g} is available.`:"Use lowercase letters, numbers, hyphens, or underscores.":"Enter the part after !.";return(0,t.jsxs)(y.Card,{className:"p-4",children:[(0,t.jsxs)(y.CardHeader,{className:"mb-4",children:[(0,t.jsx)(y.CardTitle,{className:"text-base",children:e.id?`Edit ${g}`:"New Custom Command"}),(0,t.jsx)(k.Button,{variant:"ghost",size:"icon",onClick:h,disabled:c,children:(0,t.jsx)(u.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Command"}),(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("span",{className:"inline-flex h-9 items-center rounded-l-md border border-r-0 border-input bg-muted px-3 font-mono text-sm text-muted-foreground",children:"!"}),(0,t.jsx)(N.Input,{value:e.name.startsWith("!")?e.name.slice(1):e.name,onChange:t=>m({...e,name:t.target.value}),className:"rounded-l-none font-mono",placeholder:"digest",disabled:c})]}),(0,t.jsx)("p",{className:(0,S.cn)("text-xs",!b||f||j?"text-destructive":"text-muted-foreground"),children:P})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Description"}),(0,t.jsx)(N.Input,{value:e.description,onChange:t=>m({...e,description:t.target.value}),placeholder:"Short label shown in settings and help",disabled:c})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Backend"}),(0,t.jsxs)(C.Select,{value:e.backendId,onValueChange:t=>{let a=n.get(t)?.find(e=>e.available)?.modelId??n.get(t)?.[0]?.modelId??"";m({...e,backendId:t,modelId:a})},disabled:c,children:[(0,t.jsx)(C.SelectTrigger,{children:(0,t.jsx)(C.SelectValue,{})}),(0,t.jsx)(C.SelectContent,{children:_.map(e=>{let a=(0,I.isUiPreviewOnlyBackend)(e);return(0,t.jsxs)(C.SelectItem,{value:e,disabled:a,children:[e,a?I.UI_PREVIEW_ONLY_BADGE_SUFFIX:""]},e)})})]})]}),(0,t.jsxs)("label",{className:"space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Model"}),(0,t.jsxs)(C.Select,{value:e.modelId,onValueChange:t=>m({...e,modelId:t}),disabled:c||0===v.length,children:[(0,t.jsx)(C.SelectTrigger,{children:(0,t.jsx)(C.SelectValue,{placeholder:"Select model"})}),(0,t.jsx)(C.SelectContent,{children:v.map(e=>(0,t.jsxs)(C.SelectItem,{value:e.modelId,children:[D(e),e.deprecated?" · legacy":""]},e.modelId))})]})]})]}),(0,t.jsxs)("label",{className:"mt-4 block space-y-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Instruction Prompt"}),(0,t.jsx)("textarea",{value:e.prompt,onChange:t=>m({...e,prompt:t.target.value}),rows:8,className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",placeholder:"Describe exactly what the agent should do when this command is invoked.",disabled:c})]}),(0,t.jsxs)("fieldset",{className:"mt-4 space-y-2",children:[(0,t.jsx)("legend",{className:"text-sm font-medium text-foreground",children:"Skills"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Skill modules are materialized into the working directory for this command. Leave only ",(0,t.jsx)("code",{children:"notify"})," checked for a minimal DM-reply turn; add more if your prompt needs them."]}),(0,t.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 md:grid-cols-3",children:i.map(a=>{let s=e.enabledSkills.includes(a);return(0,t.jsxs)("label",{className:"inline-flex items-start gap-2 rounded-md border border-input bg-background px-2.5 py-1.5 text-sm",children:[(0,t.jsx)("input",{type:"checkbox",checked:s,onChange:()=>{let t;return t=e.enabledSkills.includes(a),void m({...e,enabledSkills:t?e.enabledSkills.filter(e=>e!==a):[...e.enabledSkills,a]})},disabled:c,className:"mt-0.5 h-4 w-4 rounded border-input accent-primary"}),(0,t.jsx)("span",{className:"font-mono text-xs",children:a})]},a)})}),0===e.enabledSkills.length&&(0,t.jsxs)("p",{className:"text-xs text-amber-600 dark:text-amber-400",children:["No skills selected — the agent will run with only safety + your instructions. Reply quality may suffer without ",(0,t.jsx)("code",{children:"notify"}),"."]})]}),(0,t.jsxs)("label",{className:"mt-4 block space-y-1.5",children:[(0,t.jsxs)("span",{className:"text-sm font-medium text-foreground",children:[L," body (optional)"]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Custom profile body written into the working directory's"," ",(0,t.jsx)("code",{children:L})," for this command. Leave blank to use the default conversational profile. The safety preamble and your character block are always emitted around it."]}),(0,t.jsx)("textarea",{value:e.instructionMd,onChange:t=>m({...e,instructionMd:t.target.value}),rows:8,className:"w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",placeholder:"Replace the default conversational persona for this command. e.g. 'You are a terse summariser…'",disabled:c}),(0,t.jsxs)("p",{className:(0,S.cn)("text-xs",E?"text-destructive":"text-muted-foreground"),children:[e.instructionMd.length.toLocaleString()," /"," ",r.toLocaleString()," characters"]})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("label",{className:"inline-flex items-center gap-2 text-sm text-foreground",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:t=>m({...e,enabled:t.target.checked}),className:"h-4 w-4 rounded border-input accent-primary",disabled:c}),e.enabled?(0,t.jsx)(d.Power,{className:"h-4 w-4 text-success"}):(0,t.jsx)(l.PowerOff,{className:"h-4 w-4 text-muted-foreground"}),"Enabled"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(k.Button,{variant:"outline",onClick:h,disabled:c,children:"Cancel"}),(0,t.jsxs)(k.Button,{onClick:p,disabled:!T,children:[(0,t.jsx)(o.Save,{className:"mr-2 h-4 w-4"}),"Save Command"]})]})]})]})}e.s(["default",0,function(){let e,s,n,i=(0,g.useQuery)({queryKey:f,queryFn:()=>h.api.get("/commands")}),d=(0,j.useBackends)(),l=(e=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:e=>h.api.post("/commands",e),onSuccess:t=>{e.setQueryData(f,t)}})),o=(s=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:({id:e,body:t})=>h.api.put(`/commands/${e}`,t),onSuccess:e=>{s.setQueryData(f,e)}})),c=(n=(0,b.useQueryClient)(),(0,x.useMutation)({mutationFn:e=>h.api.delete(`/commands/${e}`),onSuccess:e=>{n.setQueryData(f,e)}})),[u,N]=(0,a.useState)(null),[v,C]=(0,a.useState)(null),I=(0,a.useMemo)(()=>{let e=d.data?.backends??[],t=new Map;for(let a of e)t.set(a.id,a.models.filter(e=>e.available).sort((e,t)=>!!e.deprecated!=!!t.deprecated?e.deprecated?1:-1:D(e).localeCompare(D(t))));return t},[d.data?.backends]),S=(0,a.useMemo)(()=>new Set(i.data?.builtInCommands.map(e=>e.command)??[]),[i.data?.builtInCommands]),_=(0,a.useMemo)(()=>(i.data?.userCommands??[]).filter(e=>S.has(e.command)),[i.data?.userCommands,S]),A=(0,a.useMemo)(()=>i.data?.constraints.defaultSkills??["notify"],[i.data?.constraints.defaultSkills]),R=(0,a.useMemo)(()=>i.data?.constraints.availableSkills??[],[i.data?.constraints.availableSkills]),O=i.data?.constraints.maxInstructionMdLength??32e3,G=async()=>{if(!u)return;let e=u.instructionMd.trim(),t={name:M(u.name),description:u.description.trim(),prompt:u.prompt.trim(),backendId:u.backendId,modelId:u.modelId,enabled:u.enabled,enabledSkills:u.enabledSkills,instructionMd:0===e.length?null:e};try{u.id?(await o.mutateAsync({id:u.id,body:t}),C(`${B(u.name)} updated`)):(await l.mutateAsync(t),C(`${B(u.name)} created`)),N(null)}catch(e){C(T(e))}},W=async e=>{if(window.confirm(`Delete ${e.command}?`))try{await c.mutateAsync(e.id),u?.id===e.id&&N(null),C(`${e.command} deleted`)}catch(e){C(T(e))}},U=l.isPending||o.isPending||c.isPending;return i.isLoading||d.isLoading?(0,t.jsx)(y.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading commands…"})}):i.error||d.error||!i.data||!d.data?(0,t.jsx)(y.Card,{tone:"error",className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-destructive",children:"Failed to load command settings."})}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p.PageHeader,{title:"Commands",description:(0,t.jsxs)(t.Fragment,{children:["Messaging shortcuts that begin with ",(0,t.jsx)("code",{children:"!"}),". Built-in commands are system controls; custom commands run your saved prompt on the backend and model you choose."]})}),v&&(0,t.jsx)(w.Alert,{className:"rounded-lg px-4 py-2.5 text-sm",children:v}),_.length>0&&(0,t.jsx)(w.Alert,{variant:"warning",icon:!1,className:"rounded-lg px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)(m.AlertTriangle,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"font-medium",children:"Some custom commands now conflict with built-in commands."}),(0,t.jsx)("p",{className:"mt-1 text-muted-foreground",children:"Built-in commands take precedence at runtime. Rename the custom command to make it callable again."}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:_.map(e=>(0,t.jsx)("code",{className:"rounded bg-background px-1.5 py-0.5 font-mono text-xs",children:e.command},e.id))})]})]})}),(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Built-in"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Read-only controls handled by the daemon without model cost."})]})}),(0,t.jsx)("div",{className:"grid gap-3 md:grid-cols-2",children:i.data.builtInCommands.map(e=>(0,t.jsx)(L,{command:e},e.command))})]}),(0,t.jsxs)("section",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:"Custom"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"User-defined commands are validated against built-in and existing custom names."})]}),(0,t.jsxs)(k.Button,{onClick:()=>{let e=d.data?.defaultBackend??"claude",t=I.get(e)?.find(e=>e.available)?.modelId??I.get(e)?.[0]?.modelId??E.modelId;N({...E,backendId:e,modelId:t,enabledSkills:[...A]}),C(null)},disabled:U,children:[(0,t.jsx)(r.Plus,{className:"mr-2 h-4 w-4"}),"New Command"]})]}),u&&(0,t.jsx)(F,{draft:u,builtInReserved:S,userCommands:i.data.userCommands,modelsByBackend:I,availableSkills:R,maxInstructionMdLength:O,busy:U,onChange:N,onCancel:()=>N(null),onSave:G}),0===i.data.userCommands.length?(0,t.jsx)(y.Card,{className:"p-4",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No custom commands yet."})}):(0,t.jsx)("div",{className:"grid gap-3",children:i.data.userCommands.map(e=>(0,t.jsx)(P,{command:e,model:I.get(e.backendId)?.find(t=>t.modelId===e.modelId),hasBuiltInConflict:S.has(e.command),busy:U,onEdit:()=>{N({id:e.id,name:e.name,description:e.description,prompt:e.prompt,backendId:e.backendId,modelId:e.modelId,enabled:e.enabled,enabledSkills:e.enabledSkills??[...A],instructionMd:e.instructionMd??""}),C(null)},onDelete:()=>W(e)},e.id))})]})]})}],53561)}]);