@circuitwall/jarela 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +6 -6
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  16. package/.next/standalone/.next/server/app/_not-found.rsc +5 -5
  17. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  18. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  20. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/standalone/.next/server/app/index.html +2 -2
  24. package/.next/standalone/.next/server/app/index.rsc +7 -7
  25. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +7 -7
  27. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
  29. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  30. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/setup.html +1 -1
  33. package/.next/standalone/.next/server/app/setup.rsc +5 -5
  34. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
  35. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +5 -5
  37. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  40. package/.next/standalone/.next/server/middleware-build-manifest.js +20 -1
  41. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  42. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  43. package/.next/standalone/.next/server/pages/404.html +2 -2
  44. package/.next/standalone/.next/server/pages/500.html +1 -1
  45. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  46. package/.next/standalone/.next/static/IauO0rNZkUVPX834k-SBa/_buildManifest.js +1 -0
  47. package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js +21026 -0
  48. package/.next/standalone/.next/static/chunks/3457-5218e06617c4db2a.js.map +1 -0
  49. package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js +18276 -0
  50. package/.next/standalone/.next/static/chunks/4bd1b696-f4afdf0ad1d556a5.js.map +1 -0
  51. package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js +728 -0
  52. package/.next/standalone/.next/static/chunks/6945-269d42dc1784c71a.js.map +1 -0
  53. package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js +64051 -0
  54. package/.next/standalone/.next/static/chunks/8657-ce5d7648903bc458.js.map +1 -0
  55. package/.next/standalone/.next/static/chunks/app/_global-error/page-ef2695e78d17eafd.js +17 -0
  56. package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js +191 -0
  57. package/.next/standalone/.next/static/chunks/app/_not-found/page-1c2b53258ccc0873.js.map +1 -0
  58. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-ef2695e78d17eafd.js +17 -0
  59. package/.next/standalone/.next/static/chunks/app/api/v1/access/route-ef2695e78d17eafd.js +17 -0
  60. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-ef2695e78d17eafd.js +17 -0
  61. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-ef2695e78d17eafd.js +17 -0
  62. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-ef2695e78d17eafd.js +17 -0
  63. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-ef2695e78d17eafd.js +17 -0
  64. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-ef2695e78d17eafd.js +17 -0
  65. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-ef2695e78d17eafd.js +17 -0
  66. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-ef2695e78d17eafd.js +17 -0
  67. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-ef2695e78d17eafd.js +17 -0
  68. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-ef2695e78d17eafd.js +17 -0
  69. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-ef2695e78d17eafd.js +17 -0
  70. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-ef2695e78d17eafd.js +17 -0
  71. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-ef2695e78d17eafd.js +17 -0
  72. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-ef2695e78d17eafd.js +17 -0
  73. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-ef2695e78d17eafd.js +17 -0
  74. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-ef2695e78d17eafd.js +17 -0
  75. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-ef2695e78d17eafd.js +17 -0
  76. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-ef2695e78d17eafd.js +17 -0
  77. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-ef2695e78d17eafd.js +17 -0
  78. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-ef2695e78d17eafd.js +17 -0
  79. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-ef2695e78d17eafd.js +17 -0
  80. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-ef2695e78d17eafd.js +17 -0
  81. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-ef2695e78d17eafd.js +17 -0
  82. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-ef2695e78d17eafd.js +17 -0
  83. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-ef2695e78d17eafd.js +17 -0
  84. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-ef2695e78d17eafd.js +17 -0
  85. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-ef2695e78d17eafd.js +17 -0
  86. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-ef2695e78d17eafd.js +17 -0
  87. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-ef2695e78d17eafd.js +17 -0
  88. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-ef2695e78d17eafd.js +17 -0
  89. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-ef2695e78d17eafd.js +17 -0
  90. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-ef2695e78d17eafd.js +17 -0
  91. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-ef2695e78d17eafd.js +17 -0
  92. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-ef2695e78d17eafd.js +17 -0
  93. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-ef2695e78d17eafd.js +17 -0
  94. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-ef2695e78d17eafd.js +17 -0
  95. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-ef2695e78d17eafd.js +17 -0
  96. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-ef2695e78d17eafd.js +17 -0
  97. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-ef2695e78d17eafd.js +17 -0
  98. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-ef2695e78d17eafd.js +17 -0
  99. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-ef2695e78d17eafd.js +17 -0
  100. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-ef2695e78d17eafd.js +17 -0
  101. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-ef2695e78d17eafd.js +17 -0
  102. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-ef2695e78d17eafd.js +17 -0
  103. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-ef2695e78d17eafd.js +17 -0
  104. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-ef2695e78d17eafd.js +17 -0
  105. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-ef2695e78d17eafd.js +17 -0
  106. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-ef2695e78d17eafd.js +17 -0
  107. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-ef2695e78d17eafd.js +17 -0
  108. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-ef2695e78d17eafd.js +17 -0
  109. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-ef2695e78d17eafd.js +17 -0
  110. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-ef2695e78d17eafd.js +17 -0
  111. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-ef2695e78d17eafd.js +17 -0
  112. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-ef2695e78d17eafd.js +17 -0
  113. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-ef2695e78d17eafd.js +17 -0
  114. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-ef2695e78d17eafd.js +17 -0
  115. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-ef2695e78d17eafd.js +17 -0
  116. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-ef2695e78d17eafd.js +17 -0
  117. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-ef2695e78d17eafd.js +17 -0
  118. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-ef2695e78d17eafd.js +17 -0
  119. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-ef2695e78d17eafd.js +17 -0
  120. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-ef2695e78d17eafd.js +17 -0
  121. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-ef2695e78d17eafd.js +17 -0
  122. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-ef2695e78d17eafd.js +17 -0
  123. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-ef2695e78d17eafd.js +17 -0
  124. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-ef2695e78d17eafd.js +17 -0
  125. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-ef2695e78d17eafd.js +17 -0
  126. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-ef2695e78d17eafd.js +17 -0
  127. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-ef2695e78d17eafd.js +17 -0
  128. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-ef2695e78d17eafd.js +17 -0
  129. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-ef2695e78d17eafd.js +17 -0
  130. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-ef2695e78d17eafd.js +17 -0
  131. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-ef2695e78d17eafd.js +17 -0
  132. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-ef2695e78d17eafd.js +17 -0
  133. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-ef2695e78d17eafd.js +17 -0
  134. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-ef2695e78d17eafd.js +17 -0
  135. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-ef2695e78d17eafd.js +17 -0
  136. package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js +211 -0
  137. package/.next/standalone/.next/static/chunks/app/layout-0814b4dde82d031c.js.map +1 -0
  138. package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js +18162 -0
  139. package/.next/standalone/.next/static/chunks/app/page-a20902703c0a4f10.js.map +1 -0
  140. package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js +709 -0
  141. package/.next/standalone/.next/static/chunks/app/setup/page-28c01e39806ffb39.js.map +1 -0
  142. package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js +17321 -0
  143. package/.next/standalone/.next/static/chunks/framework-01304d5a84d96921.js.map +1 -0
  144. package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js +40 -0
  145. package/.next/standalone/.next/static/chunks/main-app-3f37bcefd1eaffaf.js.map +1 -0
  146. package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js +10973 -0
  147. package/.next/standalone/.next/static/chunks/main-da6c99fc920e0f54.js.map +1 -0
  148. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ef2695e78d17eafd.js +17 -0
  149. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ef2695e78d17eafd.js +17 -0
  150. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js +19 -0
  151. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-e0f5f907bea96484.js.map +1 -0
  152. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ef2695e78d17eafd.js +17 -0
  153. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ef2695e78d17eafd.js +17 -0
  154. package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js +330 -0
  155. package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js.map +1 -0
  156. package/.next/standalone/.next/static/css/61d4279c2300e146.css +120 -0
  157. package/.next/standalone/.next/static/css/61d4279c2300e146.css.map +1 -0
  158. package/.next/standalone/.next/static/css/cc66c456aba91258.css +5 -0
  159. package/.next/standalone/.next/static/css/cc66c456aba91258.css.map +1 -0
  160. package/.next/standalone/package.json +8 -7
  161. package/.next/standalone/public/sw.js.map +1 -0
  162. package/.next/standalone/public/swe-worker-f61931bc2770d10b.js.map +1 -0
  163. package/.next/standalone/server.js +1 -1
  164. package/CHANGELOG.md +26 -0
  165. package/next.config.ts +15 -0
  166. package/package.json +8 -7
  167. package/public/sw.js.map +1 -0
  168. package/public/swe-worker-f61931bc2770d10b.js.map +1 -0
  169. package/scripts/jarela-bin.mjs +9 -0
  170. package/scripts/optimize-client-chunks.mjs +144 -0
  171. package/scripts/start-prod.mjs +10 -0
  172. package/.next/standalone/.next/static/YPyYnTKBZDNmNtxfosViy/_buildManifest.js +0 -1
  173. package/.next/standalone/.next/static/chunks/3457-33fb797ce4ab98b5.js +0 -32
  174. package/.next/standalone/.next/static/chunks/4bd1b696-d3a0b478714afd8c.js +0 -1
  175. package/.next/standalone/.next/static/chunks/6945-fe3c2c29fcc9747d.js +0 -1
  176. package/.next/standalone/.next/static/chunks/8657-4832c6fc644bc4b4.js +0 -1
  177. package/.next/standalone/.next/static/chunks/app/_global-error/page-2a40ae26adab6590.js +0 -1
  178. package/.next/standalone/.next/static/chunks/app/_not-found/page-a6e862db975a5eb0.js +0 -1
  179. package/.next/standalone/.next/static/chunks/app/api/v1/access/[identity]/route-2a40ae26adab6590.js +0 -1
  180. package/.next/standalone/.next/static/chunks/app/api/v1/access/route-2a40ae26adab6590.js +0 -1
  181. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/compact/route-2a40ae26adab6590.js +0 -1
  182. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/display-filters/route-2a40ae26adab6590.js +0 -1
  183. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/route-2a40ae26adab6590.js +0 -1
  184. package/.next/standalone/.next/static/chunks/app/api/v1/agents/[id]/thread/route-2a40ae26adab6590.js +0 -1
  185. package/.next/standalone/.next/static/chunks/app/api/v1/agents/route-2a40ae26adab6590.js +0 -1
  186. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/chats/route-2a40ae26adab6590.js +0 -1
  187. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/lookup/route-2a40ae26adab6590.js +0 -1
  188. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/pair/route-2a40ae26adab6590.js +0 -1
  189. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/route-2a40ae26adab6590.js +0 -1
  190. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/[route_id]/route-2a40ae26adab6590.js +0 -1
  191. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/routes/route-2a40ae26adab6590.js +0 -1
  192. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/[id]/status/route-2a40ae26adab6590.js +0 -1
  193. package/.next/standalone/.next/static/chunks/app/api/v1/bridges/route-2a40ae26adab6590.js +0 -1
  194. package/.next/standalone/.next/static/chunks/app/api/v1/builtin-tools/route-2a40ae26adab6590.js +0 -1
  195. package/.next/standalone/.next/static/chunks/app/api/v1/documents/search/route-2a40ae26adab6590.js +0 -1
  196. package/.next/standalone/.next/static/chunks/app/api/v1/documents/settings/route-2a40ae26adab6590.js +0 -1
  197. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/reindex/route-2a40ae26adab6590.js +0 -1
  198. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/[id]/route-2a40ae26adab6590.js +0 -1
  199. package/.next/standalone/.next/static/chunks/app/api/v1/documents/sources/route-2a40ae26adab6590.js +0 -1
  200. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/allowlist/route-2a40ae26adab6590.js +0 -1
  201. package/.next/standalone/.next/static/chunks/app/api/v1/env-sync/route-2a40ae26adab6590.js +0 -1
  202. package/.next/standalone/.next/static/chunks/app/api/v1/events/route-2a40ae26adab6590.js +0 -1
  203. package/.next/standalone/.next/static/chunks/app/api/v1/events/test/route-2a40ae26adab6590.js +0 -1
  204. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/route-2a40ae26adab6590.js +0 -1
  205. package/.next/standalone/.next/static/chunks/app/api/v1/extensions/tools/[name]/secrets/route-2a40ae26adab6590.js +0 -1
  206. package/.next/standalone/.next/static/chunks/app/api/v1/files/[name]/route-2a40ae26adab6590.js +0 -1
  207. package/.next/standalone/.next/static/chunks/app/api/v1/fs/browse/route-2a40ae26adab6590.js +0 -1
  208. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/[id]/route-2a40ae26adab6590.js +0 -1
  209. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/default/route-2a40ae26adab6590.js +0 -1
  210. package/.next/standalone/.next/static/chunks/app/api/v1/harnesses/route-2a40ae26adab6590.js +0 -1
  211. package/.next/standalone/.next/static/chunks/app/api/v1/health/route-2a40ae26adab6590.js +0 -1
  212. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/route-2a40ae26adab6590.js +0 -1
  213. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/[name]/test/route-2a40ae26adab6590.js +0 -1
  214. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/callback/route-2a40ae26adab6590.js +0 -1
  215. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/start/route-2a40ae26adab6590.js +0 -1
  216. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/gmail/oauth/status/route-2a40ae26adab6590.js +0 -1
  217. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/callback/route-2a40ae26adab6590.js +0 -1
  218. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/start/route-2a40ae26adab6590.js +0 -1
  219. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/outlook/oauth/status/route-2a40ae26adab6590.js +0 -1
  220. package/.next/standalone/.next/static/chunks/app/api/v1/integrations/route-2a40ae26adab6590.js +0 -1
  221. package/.next/standalone/.next/static/chunks/app/api/v1/maps/embed/route-2a40ae26adab6590.js +0 -1
  222. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/[name]/route-2a40ae26adab6590.js +0 -1
  223. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/registry/route-2a40ae26adab6590.js +0 -1
  224. package/.next/standalone/.next/static/chunks/app/api/v1/mcp-servers/route-2a40ae26adab6590.js +0 -1
  225. package/.next/standalone/.next/static/chunks/app/api/v1/memory/[namespace]/[key]/route-2a40ae26adab6590.js +0 -1
  226. package/.next/standalone/.next/static/chunks/app/api/v1/memory/route-2a40ae26adab6590.js +0 -1
  227. package/.next/standalone/.next/static/chunks/app/api/v1/models/[name]/route-2a40ae26adab6590.js +0 -1
  228. package/.next/standalone/.next/static/chunks/app/api/v1/models/route-2a40ae26adab6590.js +0 -1
  229. package/.next/standalone/.next/static/chunks/app/api/v1/page-capture/route-2a40ae26adab6590.js +0 -1
  230. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/approve/route-2a40ae26adab6590.js +0 -1
  231. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/[id]/deny/route-2a40ae26adab6590.js +0 -1
  232. package/.next/standalone/.next/static/chunks/app/api/v1/pending-actions/route-2a40ae26adab6590.js +0 -1
  233. package/.next/standalone/.next/static/chunks/app/api/v1/profile/location/route-2a40ae26adab6590.js +0 -1
  234. package/.next/standalone/.next/static/chunks/app/api/v1/profile/route-2a40ae26adab6590.js +0 -1
  235. package/.next/standalone/.next/static/chunks/app/api/v1/providers/[provider]/models/route-2a40ae26adab6590.js +0 -1
  236. package/.next/standalone/.next/static/chunks/app/api/v1/providers/github-copilot/auth/route-2a40ae26adab6590.js +0 -1
  237. package/.next/standalone/.next/static/chunks/app/api/v1/providers/route-2a40ae26adab6590.js +0 -1
  238. package/.next/standalone/.next/static/chunks/app/api/v1/proxy-config/route-2a40ae26adab6590.js +0 -1
  239. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/route-2a40ae26adab6590.js +0 -1
  240. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/[id]/run/route-2a40ae26adab6590.js +0 -1
  241. package/.next/standalone/.next/static/chunks/app/api/v1/scheduled-tasks/route-2a40ae26adab6590.js +0 -1
  242. package/.next/standalone/.next/static/chunks/app/api/v1/setup/test-key/route-2a40ae26adab6590.js +0 -1
  243. package/.next/standalone/.next/static/chunks/app/api/v1/tailscale/route-2a40ae26adab6590.js +0 -1
  244. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/[agent_id]/route-2a40ae26adab6590.js +0 -1
  245. package/.next/standalone/.next/static/chunks/app/api/v1/tasks/route-2a40ae26adab6590.js +0 -1
  246. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/route-2a40ae26adab6590.js +0 -1
  247. package/.next/standalone/.next/static/chunks/app/api/v1/threads/[thread_id]/run/route-2a40ae26adab6590.js +0 -1
  248. package/.next/standalone/.next/static/chunks/app/api/v1/threads/route-2a40ae26adab6590.js +0 -1
  249. package/.next/standalone/.next/static/chunks/app/api/v1/tools/route-2a40ae26adab6590.js +0 -1
  250. package/.next/standalone/.next/static/chunks/app/api/v1/update/route-2a40ae26adab6590.js +0 -1
  251. package/.next/standalone/.next/static/chunks/app/api/v1/voice/transcribe/route-2a40ae26adab6590.js +0 -1
  252. package/.next/standalone/.next/static/chunks/app/api/v1/voice/tts/route-2a40ae26adab6590.js +0 -1
  253. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/route-2a40ae26adab6590.js +0 -1
  254. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/[id]/run/route-2a40ae26adab6590.js +0 -1
  255. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/reaction-scripts/route-2a40ae26adab6590.js +0 -1
  256. package/.next/standalone/.next/static/chunks/app/api/v1/watchers/route-2a40ae26adab6590.js +0 -1
  257. package/.next/standalone/.next/static/chunks/app/layout-764e6d7e68bc7d35.js +0 -1
  258. package/.next/standalone/.next/static/chunks/app/page-a4f8846bc63c9c2f.js +0 -24
  259. package/.next/standalone/.next/static/chunks/app/setup/page-ed59c750c18fee42.js +0 -1
  260. package/.next/standalone/.next/static/chunks/framework-29e3791c8b7ad5e0.js +0 -1
  261. package/.next/standalone/.next/static/chunks/main-app-cb0edf855588e8f1.js +0 -1
  262. package/.next/standalone/.next/static/chunks/main-b611c7b6b84fbe95.js +0 -5
  263. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-2a40ae26adab6590.js +0 -1
  264. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-2a40ae26adab6590.js +0 -1
  265. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-23ce00bb5787d544.js +0 -1
  266. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-2a40ae26adab6590.js +0 -1
  267. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-2a40ae26adab6590.js +0 -1
  268. package/.next/standalone/.next/static/chunks/webpack-5793430421782353.js +0 -1
  269. package/.next/standalone/.next/static/css/5eacd01f773eed7f.css +0 -11
  270. package/.next/standalone/.next/static/css/a0f98435baf0fccf.css +0 -1
  271. /package/.next/standalone/.next/static/{YPyYnTKBZDNmNtxfosViy → IauO0rNZkUVPX834k-SBa}/_ssgManifest.js +0 -0
@@ -0,0 +1,709 @@
1
+ (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[620],{
2
+
3
+ /***/ 24:
4
+ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
5
+
6
+ Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 5047));
7
+
8
+
9
+ /***/ }),
10
+
11
+ /***/ 981:
12
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
13
+
14
+ "use strict";
15
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
16
+ /* harmony export */ A: () => (/* binding */ ShieldCheck)
17
+ /* harmony export */ });
18
+ /* unused harmony export __iconNode */
19
+ /* harmony import */ var _createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9537);
20
+ /**
21
+ * @license lucide-react v1.16.0 - ISC
22
+ *
23
+ * This source code is licensed under the ISC license.
24
+ * See the LICENSE file in the root directory of this source tree.
25
+ */
26
+ const __iconNode = [
27
+ [
28
+ "path",
29
+ {
30
+ d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
31
+ key: "oel41y"
32
+ }
33
+ ],
34
+ [
35
+ "path",
36
+ {
37
+ d: "m9 12 2 2 4-4",
38
+ key: "dzmm74"
39
+ }
40
+ ]
41
+ ];
42
+ const ShieldCheck = (0,_createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)("shield-check", __iconNode);
43
+ //# sourceMappingURL=shield-check.mjs.map
44
+
45
+
46
+ /***/ }),
47
+
48
+ /***/ 1275:
49
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
50
+
51
+ "use strict";
52
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
53
+ /* harmony export */ A: () => (/* binding */ ExternalLink)
54
+ /* harmony export */ });
55
+ /* unused harmony export __iconNode */
56
+ /* harmony import */ var _createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9537);
57
+ /**
58
+ * @license lucide-react v1.16.0 - ISC
59
+ *
60
+ * This source code is licensed under the ISC license.
61
+ * See the LICENSE file in the root directory of this source tree.
62
+ */
63
+ const __iconNode = [
64
+ [
65
+ "path",
66
+ {
67
+ d: "M15 3h6v6",
68
+ key: "1q9fwt"
69
+ }
70
+ ],
71
+ [
72
+ "path",
73
+ {
74
+ d: "M10 14 21 3",
75
+ key: "gplh6r"
76
+ }
77
+ ],
78
+ [
79
+ "path",
80
+ {
81
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
82
+ key: "a6xqqp"
83
+ }
84
+ ]
85
+ ];
86
+ const ExternalLink = (0,_createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)("external-link", __iconNode);
87
+ //# sourceMappingURL=external-link.mjs.map
88
+
89
+
90
+ /***/ }),
91
+
92
+ /***/ 2571:
93
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
94
+
95
+ "use strict";
96
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
97
+ /* harmony export */ A: () => (/* binding */ LoaderCircle)
98
+ /* harmony export */ });
99
+ /* unused harmony export __iconNode */
100
+ /* harmony import */ var _createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9537);
101
+ /**
102
+ * @license lucide-react v1.16.0 - ISC
103
+ *
104
+ * This source code is licensed under the ISC license.
105
+ * See the LICENSE file in the root directory of this source tree.
106
+ */
107
+ const __iconNode = [
108
+ [
109
+ "path",
110
+ {
111
+ d: "M21 12a9 9 0 1 1-6.219-8.56",
112
+ key: "13zald"
113
+ }
114
+ ]
115
+ ];
116
+ const LoaderCircle = (0,_createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)("loader-circle", __iconNode);
117
+ //# sourceMappingURL=loader-circle.mjs.map
118
+
119
+
120
+ /***/ }),
121
+
122
+ /***/ 4890:
123
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
124
+
125
+ "use strict";
126
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
127
+ /* harmony export */ A: () => (/* binding */ CircleX)
128
+ /* harmony export */ });
129
+ /* unused harmony export __iconNode */
130
+ /* harmony import */ var _createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9537);
131
+ /**
132
+ * @license lucide-react v1.16.0 - ISC
133
+ *
134
+ * This source code is licensed under the ISC license.
135
+ * See the LICENSE file in the root directory of this source tree.
136
+ */
137
+ const __iconNode = [
138
+ [
139
+ "circle",
140
+ {
141
+ cx: "12",
142
+ cy: "12",
143
+ r: "10",
144
+ key: "1mglay"
145
+ }
146
+ ],
147
+ [
148
+ "path",
149
+ {
150
+ d: "m15 9-6 6",
151
+ key: "1uzhvr"
152
+ }
153
+ ],
154
+ [
155
+ "path",
156
+ {
157
+ d: "m9 9 6 6",
158
+ key: "z0biqf"
159
+ }
160
+ ]
161
+ ];
162
+ const CircleX = (0,_createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)("circle-x", __iconNode);
163
+ //# sourceMappingURL=circle-x.mjs.map
164
+
165
+
166
+ /***/ }),
167
+
168
+ /***/ 4962:
169
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
170
+
171
+ "use strict";
172
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
173
+ /* harmony export */ A: () => (/* binding */ CircleCheck)
174
+ /* harmony export */ });
175
+ /* unused harmony export __iconNode */
176
+ /* harmony import */ var _createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9537);
177
+ /**
178
+ * @license lucide-react v1.16.0 - ISC
179
+ *
180
+ * This source code is licensed under the ISC license.
181
+ * See the LICENSE file in the root directory of this source tree.
182
+ */
183
+ const __iconNode = [
184
+ [
185
+ "circle",
186
+ {
187
+ cx: "12",
188
+ cy: "12",
189
+ r: "10",
190
+ key: "1mglay"
191
+ }
192
+ ],
193
+ [
194
+ "path",
195
+ {
196
+ d: "m9 12 2 2 4-4",
197
+ key: "dzmm74"
198
+ }
199
+ ]
200
+ ];
201
+ const CircleCheck = (0,_createLucideIcon_mjs__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)("circle-check", __iconNode);
202
+ //# sourceMappingURL=circle-check.mjs.map
203
+
204
+
205
+ /***/ }),
206
+
207
+ /***/ 5047:
208
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
209
+
210
+ "use strict";
211
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
212
+ /* harmony export */ FirstKeySetup: () => (/* binding */ FirstKeySetup)
213
+ /* harmony export */ });
214
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5155);
215
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2115);
216
+ /* harmony import */ var _barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1275);
217
+ /* harmony import */ var _barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4962);
218
+ /* harmony import */ var _barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4890);
219
+ /* harmony import */ var _barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2571);
220
+ /* harmony import */ var _barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(981);
221
+ /* harmony import */ var _api_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1490);
222
+ /* harmony import */ var _lib_env_app_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7920);
223
+ /* __next_internal_client_entry_do_not_use__ FirstKeySetup auto */
224
+ // First-key setup screen (ADR-0010). Three fields, one button. Once a key
225
+ // validates and saves, the user lands in the chat and the agent takes over
226
+ // the rest of onboarding.
227
+
228
+
229
+
230
+
231
+ const PROVIDER_INFO = {
232
+ anthropic: {
233
+ label: "Anthropic (Claude)",
234
+ signupUrl: "https://console.anthropic.com/settings/keys",
235
+ placeholder: "sk-ant-…",
236
+ defaultModel: "claude-opus-4-7"
237
+ },
238
+ openai: {
239
+ label: "OpenAI (GPT)",
240
+ signupUrl: "https://platform.openai.com/api-keys",
241
+ placeholder: "sk-…",
242
+ defaultModel: "gpt-4o"
243
+ },
244
+ gemini: {
245
+ label: "Google (Gemini)",
246
+ signupUrl: "https://aistudio.google.com/apikey",
247
+ placeholder: "AIza…",
248
+ defaultModel: "gemini-2.5-pro"
249
+ },
250
+ deepseek: {
251
+ label: "DeepSeek",
252
+ signupUrl: "https://platform.deepseek.com/api_keys",
253
+ placeholder: "sk-…",
254
+ defaultModel: "deepseek-chat"
255
+ }
256
+ };
257
+ function FirstKeySetup() {
258
+ const [provider, setProvider] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("anthropic");
259
+ const [apiKey, setApiKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("");
260
+ const [model, setModel] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(PROVIDER_INFO.anthropic.defaultModel);
261
+ const [testing, setTesting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
262
+ const [test, setTest] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
263
+ const [saving, setSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
264
+ const [saveError, setSaveError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
265
+ function pickProvider(p) {
266
+ setProvider(p);
267
+ setModel(PROVIDER_INFO[p].defaultModel);
268
+ setTest(null);
269
+ setSaveError(null);
270
+ }
271
+ async function runTest() {
272
+ if (!apiKey.trim()) return;
273
+ setTesting(true);
274
+ setTest(null);
275
+ setSaveError(null);
276
+ try {
277
+ const res = await fetch("/api/v1/setup/test-key", {
278
+ method: "POST",
279
+ headers: {
280
+ "Content-Type": "application/json"
281
+ },
282
+ body: JSON.stringify({
283
+ provider,
284
+ api_key: apiKey.trim()
285
+ })
286
+ });
287
+ const data = await res.json();
288
+ setTest(data);
289
+ if (data.ok && data.models && data.models.length > 0 && !data.models.includes(model)) {
290
+ setModel(data.models[0]);
291
+ }
292
+ } catch (err) {
293
+ setTest({
294
+ ok: false,
295
+ error: `network error: ${err instanceof Error ? err.message : String(err)}`
296
+ });
297
+ } finally{
298
+ setTesting(false);
299
+ }
300
+ }
301
+ async function save() {
302
+ if (!apiKey.trim() || !model.trim()) return;
303
+ setSaving(true);
304
+ setSaveError(null);
305
+ try {
306
+ const name = `${provider}-default`;
307
+ await _api_client__WEBPACK_IMPORTED_MODULE_2__/* .api */ .FH.models.create(name, {
308
+ provider,
309
+ model_id: model.trim(),
310
+ params: {
311
+ api_key: apiKey.trim()
312
+ },
313
+ is_default: true
314
+ });
315
+ window.location.href = "/";
316
+ } catch (err) {
317
+ setSaveError(err instanceof Error ? err.message : String(err));
318
+ } finally{
319
+ setSaving(false);
320
+ }
321
+ }
322
+ const info = PROVIDER_INFO[provider];
323
+ return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("main", {
324
+ className: "min-h-screen flex items-center justify-center bg-surface text-fg px-4 py-12",
325
+ children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
326
+ className: "w-full max-w-lg",
327
+ children: [
328
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
329
+ className: "flex items-center gap-3 mb-8",
330
+ children: [
331
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", {
332
+ src: "/logo-mark-transparent.png",
333
+ alt: "",
334
+ className: "h-10 w-auto"
335
+ }),
336
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
337
+ children: [
338
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("h1", {
339
+ className: "text-2xl font-semibold tracking-tight",
340
+ children: [
341
+ "Welcome to ",
342
+ (0,_lib_env_app_config__WEBPACK_IMPORTED_MODULE_3__/* .getAppName */ .fj)()
343
+ ]
344
+ }),
345
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
346
+ className: "text-sm text-fg-subtle",
347
+ children: "One key to get started — your assistant handles the rest."
348
+ })
349
+ ]
350
+ })
351
+ ]
352
+ }),
353
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
354
+ className: "rounded-xl border border-border bg-surface-2 p-5 space-y-5",
355
+ children: [
356
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
357
+ className: "space-y-2",
358
+ children: [
359
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label", {
360
+ className: "text-xs font-medium text-fg-subtle",
361
+ children: "Provider"
362
+ }),
363
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
364
+ className: "grid grid-cols-2 gap-2",
365
+ children: Object.keys(PROVIDER_INFO).map((p)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
366
+ type: "button",
367
+ onClick: ()=>pickProvider(p),
368
+ className: `px-3 py-2 rounded border text-sm text-left transition ${provider === p ? "border-emerald-500 bg-emerald-950/30 text-fg" : "border-border hover:border-fg-faint text-fg-muted"}`,
369
+ children: PROVIDER_INFO[p].label
370
+ }, p))
371
+ })
372
+ ]
373
+ }),
374
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
375
+ className: "space-y-2",
376
+ children: [
377
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
378
+ className: "flex items-baseline justify-between",
379
+ children: [
380
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label", {
381
+ htmlFor: "api-key",
382
+ className: "text-xs font-medium text-fg-subtle",
383
+ children: "API key"
384
+ }),
385
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("a", {
386
+ href: info.signupUrl,
387
+ target: "_blank",
388
+ rel: "noreferrer noopener",
389
+ className: "text-xs text-emerald-500 hover:underline inline-flex items-center gap-1",
390
+ children: [
391
+ "I don't have one yet ",
392
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A, {
393
+ size: 11
394
+ })
395
+ ]
396
+ })
397
+ ]
398
+ }),
399
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input", {
400
+ id: "api-key",
401
+ type: "password",
402
+ value: apiKey,
403
+ onChange: (e)=>{
404
+ setApiKey(e.target.value);
405
+ setTest(null);
406
+ },
407
+ placeholder: info.placeholder,
408
+ className: "w-full px-3 py-2 rounded border border-border bg-surface text-fg placeholder:text-fg-faint focus:border-emerald-500 focus:outline-none font-mono text-sm",
409
+ autoComplete: "off",
410
+ spellCheck: false
411
+ }),
412
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
413
+ className: "text-[11px] text-fg-faint",
414
+ children: "Stored encrypted at rest in your local database. Never sent anywhere except the provider you selected."
415
+ })
416
+ ]
417
+ }),
418
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
419
+ className: "space-y-2",
420
+ children: [
421
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("label", {
422
+ htmlFor: "model",
423
+ className: "text-xs font-medium text-fg-subtle",
424
+ children: "Default model"
425
+ }),
426
+ test?.ok && test.models && test.models.length > 0 ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("select", {
427
+ id: "model",
428
+ value: model,
429
+ onChange: (e)=>setModel(e.target.value),
430
+ className: "w-full px-3 py-2 rounded border border-border bg-surface text-fg text-sm",
431
+ children: test.models.map((m)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", {
432
+ value: m,
433
+ children: m
434
+ }, m))
435
+ }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("input", {
436
+ id: "model",
437
+ type: "text",
438
+ value: model,
439
+ onChange: (e)=>setModel(e.target.value),
440
+ className: "w-full px-3 py-2 rounded border border-border bg-surface text-fg text-sm font-mono"
441
+ })
442
+ ]
443
+ }),
444
+ test && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
445
+ className: `rounded p-3 text-sm flex items-start gap-2 ${test.ok ? "border border-emerald-700/50 bg-emerald-950/30 text-emerald-300" : "border border-rose-700/50 bg-rose-950/30 text-rose-300"}`,
446
+ children: [
447
+ test.ok ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
448
+ size: 16,
449
+ className: "mt-0.5 shrink-0"
450
+ }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, {
451
+ size: 16,
452
+ className: "mt-0.5 shrink-0"
453
+ }),
454
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
455
+ children: test.ok ? `Key validated. ${test.models?.length ?? 0} models available.` : test.error
456
+ })
457
+ ]
458
+ }),
459
+ saveError && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
460
+ className: "rounded p-3 text-sm border border-rose-700/50 bg-rose-950/30 text-rose-300",
461
+ children: [
462
+ "Save failed: ",
463
+ saveError
464
+ ]
465
+ }),
466
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
467
+ className: "flex gap-2",
468
+ children: [
469
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
470
+ type: "button",
471
+ onClick: runTest,
472
+ disabled: testing || !apiKey.trim(),
473
+ className: "flex-1 px-4 py-2 rounded border border-border text-sm hover:border-fg-faint disabled:opacity-50 inline-flex items-center justify-center gap-2",
474
+ children: testing ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
475
+ children: [
476
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
477
+ size: 14,
478
+ className: "animate-spin"
479
+ }),
480
+ " Testing"
481
+ ]
482
+ }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
483
+ children: [
484
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A, {
485
+ size: 14
486
+ }),
487
+ " Test connection"
488
+ ]
489
+ })
490
+ }),
491
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("button", {
492
+ type: "button",
493
+ onClick: save,
494
+ disabled: saving || !test?.ok || !model.trim(),
495
+ className: "flex-1 px-4 py-2 rounded bg-emerald-700 hover:bg-emerald-600 disabled:opacity-50 disabled:hover:bg-emerald-700 text-white text-sm inline-flex items-center justify-center gap-2",
496
+ children: [
497
+ saving ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_barrel_optimize_names_CheckCircle2_ExternalLink_Loader2_ShieldCheck_XCircle_lucide_react__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
498
+ size: 14,
499
+ className: "animate-spin"
500
+ }) : null,
501
+ "Save and continue"
502
+ ]
503
+ })
504
+ ]
505
+ })
506
+ ]
507
+ }),
508
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
509
+ className: "mt-6 text-center text-xs text-fg-faint",
510
+ children: "After this screen, your assistant can help you connect Gmail, Outlook, Atlassian, and more — no extra menus to navigate."
511
+ })
512
+ ]
513
+ })
514
+ });
515
+ }
516
+
517
+
518
+ /***/ }),
519
+
520
+ /***/ 9537:
521
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
522
+
523
+ "use strict";
524
+
525
+ // EXPORTS
526
+ __webpack_require__.d(__webpack_exports__, {
527
+ A: () => (/* binding */ createLucideIcon)
528
+ });
529
+
530
+ // EXTERNAL MODULE: ./node_modules/next/dist/compiled/react/index.js
531
+ var react = __webpack_require__(2115);
532
+ ;// ./node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs
533
+ /**
534
+ * @license lucide-react v1.16.0 - ISC
535
+ *
536
+ * This source code is licensed under the ISC license.
537
+ * See the LICENSE file in the root directory of this source tree.
538
+ */ const mergeClasses = (...classes)=>classes.filter((className, index, array)=>{
539
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
540
+ }).join(" ").trim();
541
+ //# sourceMappingURL=mergeClasses.mjs.map
542
+
543
+ ;// ./node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs
544
+ /**
545
+ * @license lucide-react v1.16.0 - ISC
546
+ *
547
+ * This source code is licensed under the ISC license.
548
+ * See the LICENSE file in the root directory of this source tree.
549
+ */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
550
+ //# sourceMappingURL=toKebabCase.mjs.map
551
+
552
+ ;// ./node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs
553
+ /**
554
+ * @license lucide-react v1.16.0 - ISC
555
+ *
556
+ * This source code is licensed under the ISC license.
557
+ * See the LICENSE file in the root directory of this source tree.
558
+ */ const toCamelCase = (string)=>string.replace(/^([A-Z])|[\s-_]+(\w)/g, (match, p1, p2)=>p2 ? p2.toUpperCase() : p1.toLowerCase());
559
+ //# sourceMappingURL=toCamelCase.mjs.map
560
+
561
+ ;// ./node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs
562
+ /**
563
+ * @license lucide-react v1.16.0 - ISC
564
+ *
565
+ * This source code is licensed under the ISC license.
566
+ * See the LICENSE file in the root directory of this source tree.
567
+ */
568
+ const toPascalCase = (string)=>{
569
+ const camelCase = toCamelCase(string);
570
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
571
+ };
572
+ //# sourceMappingURL=toPascalCase.mjs.map
573
+
574
+ ;// ./node_modules/lucide-react/dist/esm/defaultAttributes.mjs
575
+ /**
576
+ * @license lucide-react v1.16.0 - ISC
577
+ *
578
+ * This source code is licensed under the ISC license.
579
+ * See the LICENSE file in the root directory of this source tree.
580
+ */ var defaultAttributes = {
581
+ xmlns: "http://www.w3.org/2000/svg",
582
+ width: 24,
583
+ height: 24,
584
+ viewBox: "0 0 24 24",
585
+ fill: "none",
586
+ stroke: "currentColor",
587
+ strokeWidth: 2,
588
+ strokeLinecap: "round",
589
+ strokeLinejoin: "round"
590
+ };
591
+ //# sourceMappingURL=defaultAttributes.mjs.map
592
+
593
+ ;// ./node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs
594
+ /**
595
+ * @license lucide-react v1.16.0 - ISC
596
+ *
597
+ * This source code is licensed under the ISC license.
598
+ * See the LICENSE file in the root directory of this source tree.
599
+ */ const hasA11yProp = (props)=>{
600
+ for(const prop in props){
601
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
602
+ return true;
603
+ }
604
+ }
605
+ return false;
606
+ };
607
+ //# sourceMappingURL=hasA11yProp.mjs.map
608
+
609
+ ;// ./node_modules/lucide-react/dist/esm/context.mjs
610
+ /* __next_internal_client_entry_do_not_use__ LucideProvider,useLucideContext auto */
611
+ /**
612
+ * @license lucide-react v1.16.0 - ISC
613
+ *
614
+ * This source code is licensed under the ISC license.
615
+ * See the LICENSE file in the root directory of this source tree.
616
+ */
617
+ const LucideContext = /*#__PURE__*/ (0,react.createContext)({});
618
+ function LucideProvider({ children, size, color, strokeWidth, absoluteStrokeWidth, className }) {
619
+ const value = useMemo(()=>({
620
+ size,
621
+ color,
622
+ strokeWidth,
623
+ absoluteStrokeWidth,
624
+ className
625
+ }), [
626
+ size,
627
+ color,
628
+ strokeWidth,
629
+ absoluteStrokeWidth,
630
+ className
631
+ ]);
632
+ return /*#__PURE__*/ createElement(LucideContext.Provider, {
633
+ value
634
+ }, children);
635
+ }
636
+ const useLucideContext = ()=>(0,react.useContext)(LucideContext);
637
+ //# sourceMappingURL=context.mjs.map
638
+
639
+ ;// ./node_modules/lucide-react/dist/esm/Icon.mjs
640
+ /* __next_internal_client_entry_do_not_use__ default auto */
641
+ /**
642
+ * @license lucide-react v1.16.0 - ISC
643
+ *
644
+ * This source code is licensed under the ISC license.
645
+ * See the LICENSE file in the root directory of this source tree.
646
+ */
647
+
648
+
649
+
650
+
651
+ const Icon = /*#__PURE__*/ (0,react.forwardRef)(({ color, size, strokeWidth, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref)=>{
652
+ const { size: contextSize = 24, strokeWidth: contextStrokeWidth = 2, absoluteStrokeWidth: contextAbsoluteStrokeWidth = false, color: contextColor = "currentColor", className: contextClass = "" } = useLucideContext() ?? {};
653
+ const calculatedStrokeWidth = absoluteStrokeWidth ?? contextAbsoluteStrokeWidth ? Number(strokeWidth ?? contextStrokeWidth) * 24 / Number(size ?? contextSize) : strokeWidth ?? contextStrokeWidth;
654
+ return /*#__PURE__*/ (0,react.createElement)("svg", {
655
+ ref,
656
+ ...defaultAttributes,
657
+ width: size ?? contextSize ?? defaultAttributes.width,
658
+ height: size ?? contextSize ?? defaultAttributes.height,
659
+ stroke: color ?? contextColor,
660
+ strokeWidth: calculatedStrokeWidth,
661
+ className: mergeClasses("lucide", contextClass, className),
662
+ ...!children && !hasA11yProp(rest) && {
663
+ "aria-hidden": "true"
664
+ },
665
+ ...rest
666
+ }, [
667
+ ...iconNode.map(([tag, attrs])=>/*#__PURE__*/ (0,react.createElement)(tag, attrs)),
668
+ ...Array.isArray(children) ? children : [
669
+ children
670
+ ]
671
+ ]);
672
+ });
673
+ //# sourceMappingURL=Icon.mjs.map
674
+
675
+ ;// ./node_modules/lucide-react/dist/esm/createLucideIcon.mjs
676
+ /**
677
+ * @license lucide-react v1.16.0 - ISC
678
+ *
679
+ * This source code is licensed under the ISC license.
680
+ * See the LICENSE file in the root directory of this source tree.
681
+ */
682
+
683
+
684
+
685
+
686
+ const createLucideIcon = (iconName, iconNode)=>{
687
+ const Component = /*#__PURE__*/ (0,react.forwardRef)(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react.createElement)(Icon, {
688
+ ref,
689
+ iconNode,
690
+ className: mergeClasses(`lucide-${toKebabCase(toPascalCase(iconName))}`, `lucide-${iconName}`, className),
691
+ ...props
692
+ }));
693
+ Component.displayName = toPascalCase(iconName);
694
+ return Component;
695
+ };
696
+ //# sourceMappingURL=createLucideIcon.mjs.map
697
+
698
+
699
+ /***/ })
700
+
701
+ },
702
+ /******/ __webpack_require__ => { // webpackRuntimeModules
703
+ /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
704
+ /******/ __webpack_require__.O(0, [6945,8441,3457,7358], () => (__webpack_exec__(24)));
705
+ /******/ var __webpack_exports__ = __webpack_require__.O();
706
+ /******/ _N_E = __webpack_exports__;
707
+ /******/ }
708
+ ]);
709
+ //# sourceMappingURL=page-28c01e39806ffb39.js.map