@shepai/cli 1.179.1 → 1.180.0-pr548.764147

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 (924) hide show
  1. package/apis/json-schema/Application.yaml +40 -0
  2. package/apis/json-schema/ApplicationStatus.yaml +8 -0
  3. package/apis/json-schema/InteractiveMessage.yaml +3 -0
  4. package/apis/json-schema/WorkflowStep.yaml +53 -0
  5. package/apis/json-schema/WorkflowStepStatus.yaml +10 -0
  6. package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts +17 -0
  7. package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.d.ts.map +1 -0
  8. package/dist/packages/core/src/application/ports/output/repositories/application-repository.interface.js +6 -0
  9. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +1 -0
  10. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +13 -0
  12. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts +52 -0
  14. package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.d.ts.map +1 -0
  15. package/dist/packages/core/src/application/ports/output/repositories/workflow-step-repository.interface.js +11 -0
  16. package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts +36 -0
  17. package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.d.ts.map +1 -0
  18. package/dist/packages/core/src/application/ports/output/services/application-brief-store.interface.js +22 -0
  19. package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts +116 -0
  20. package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.d.ts.map +1 -0
  21. package/dist/packages/core/src/application/ports/output/services/application-creation-prompt-builder.interface.js +27 -0
  22. package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts +100 -0
  23. package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.d.ts.map +1 -0
  24. package/dist/packages/core/src/application/ports/output/services/application-file-system-service.interface.js +20 -0
  25. package/dist/packages/core/src/application/ports/output/services/index.d.ts +4 -0
  26. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  27. package/dist/packages/core/src/application/ports/output/services/index.js +1 -0
  28. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +111 -5
  29. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts +46 -0
  31. package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.d.ts.map +1 -0
  32. package/dist/packages/core/src/application/ports/output/services/terminal-session-service.interface.js +9 -0
  33. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts +92 -0
  34. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.d.ts.map +1 -0
  35. package/dist/packages/core/src/application/use-cases/applications/create-application.use-case.js +305 -0
  36. package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts +15 -0
  37. package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.d.ts.map +1 -0
  38. package/dist/packages/core/src/application/use-cases/applications/delete-application.use-case.js +45 -0
  39. package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts +13 -0
  40. package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.d.ts.map +1 -0
  41. package/dist/packages/core/src/application/use-cases/applications/get-application.use-case.js +33 -0
  42. package/dist/packages/core/src/application/use-cases/applications/index.d.ts +13 -0
  43. package/dist/packages/core/src/application/use-cases/applications/index.d.ts.map +1 -0
  44. package/dist/packages/core/src/application/use-cases/applications/index.js +10 -0
  45. package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts +18 -0
  46. package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.d.ts.map +1 -0
  47. package/dist/packages/core/src/application/use-cases/applications/list-application-files.use-case.js +41 -0
  48. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts +13 -0
  49. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.d.ts.map +1 -0
  50. package/dist/packages/core/src/application/use-cases/applications/list-applications.use-case.js +33 -0
  51. package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts +22 -0
  52. package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.d.ts.map +1 -0
  53. package/dist/packages/core/src/application/use-cases/applications/read-application-file-raw.use-case.js +46 -0
  54. package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts +19 -0
  55. package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.d.ts.map +1 -0
  56. package/dist/packages/core/src/application/use-cases/applications/read-application-file.use-case.js +43 -0
  57. package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts +14 -0
  58. package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.d.ts.map +1 -0
  59. package/dist/packages/core/src/application/use-cases/applications/update-application.use-case.js +33 -0
  60. package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts +21 -0
  61. package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.d.ts.map +1 -0
  62. package/dist/packages/core/src/application/use-cases/applications/watch-application-files.use-case.js +43 -0
  63. package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts +22 -0
  64. package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.d.ts.map +1 -0
  65. package/dist/packages/core/src/application/use-cases/applications/write-application-file.use-case.js +44 -0
  66. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts +18 -0
  67. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts.map +1 -1
  68. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.js +1 -1
  69. package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts +19 -0
  70. package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.d.ts.map +1 -0
  71. package/dist/packages/core/src/application/use-cases/terminal/create-terminal-session.use-case.js +42 -0
  72. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +77 -0
  73. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  74. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +191 -0
  75. package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts +50 -0
  76. package/dist/packages/core/src/application/workflows/application-creation.workflow.d.ts.map +1 -0
  77. package/dist/packages/core/src/application/workflows/application-creation.workflow.js +138 -0
  78. package/dist/packages/core/src/domain/generated/output.d.ts +102 -0
  79. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  80. package/dist/packages/core/src/domain/generated/output.js +14 -0
  81. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  82. package/dist/packages/core/src/infrastructure/di/container.js +93 -1
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts +37 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.d.ts.map +1 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/application.mapper.js +52 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts +1 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts.map +1 -1
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.js +2 -0
  89. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts +25 -0
  90. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.d.ts.map +1 -0
  91. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-step.mapper.js +50 -0
  92. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts +5 -0
  93. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.d.ts.map +1 -0
  94. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-create-applications-table.js +34 -0
  95. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts +31 -0
  96. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.d.ts.map +1 -0
  97. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/057-workflow-steps.js +72 -0
  98. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts +21 -0
  99. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.d.ts.map +1 -0
  100. package/dist/packages/core/src/infrastructure/repositories/sqlite-application.repository.js +98 -0
  101. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.js +2 -2
  102. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +1 -0
  103. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
  104. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +16 -0
  105. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts +29 -0
  106. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.d.ts.map +1 -0
  107. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-step.repository.js +157 -0
  108. package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts +25 -0
  109. package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.d.ts.map +1 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/application-creation/application-creation-prompt.builder.js +95 -0
  111. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts +2 -0
  112. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.d.ts.map +1 -0
  113. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/brand.js +11 -0
  114. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts +14 -0
  115. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.d.ts.map +1 -0
  116. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/dynamic.js +50 -0
  117. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts +2 -0
  118. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.d.ts.map +1 -0
  119. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/mission.js +10 -0
  120. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts +2 -0
  121. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.d.ts.map +1 -0
  122. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/output-contract.js +20 -0
  123. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts +2 -0
  124. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.d.ts.map +1 -0
  125. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/quality.js +12 -0
  126. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts +2 -0
  127. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.d.ts.map +1 -0
  128. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/role.js +9 -0
  129. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts +2 -0
  130. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.d.ts.map +1 -0
  131. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/tech-stack.js +23 -0
  132. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts +2 -0
  133. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.d.ts.map +1 -0
  134. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/user-interaction.js +29 -0
  135. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts +15 -0
  136. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.d.ts.map +1 -0
  137. package/dist/packages/core/src/infrastructure/services/agents/application-creation/prompts/workflow.js +40 -0
  138. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  139. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +14 -8
  140. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  141. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +4 -1
  142. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  143. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +11 -6
  144. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts +2 -2
  145. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.d.ts.map +1 -1
  146. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/pr-branding.js +2 -2
  147. package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts +20 -0
  148. package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.d.ts.map +1 -0
  149. package/dist/packages/core/src/infrastructure/services/filesystem/application-brief.store.js +40 -0
  150. package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts +18 -0
  151. package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.d.ts.map +1 -0
  152. package/dist/packages/core/src/infrastructure/services/filesystem/node-application-file-system.service.js +292 -0
  153. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  154. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +3 -2
  155. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts +16 -5
  156. package/dist/packages/core/src/infrastructure/services/git/pr-branding.d.ts.map +1 -1
  157. package/dist/packages/core/src/infrastructure/services/git/pr-branding.js +38 -7
  158. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +49 -10
  159. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  160. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +323 -149
  161. package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts +22 -0
  162. package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.d.ts.map +1 -0
  163. package/dist/packages/core/src/infrastructure/services/terminal/pty-terminal-session.service.js +182 -0
  164. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  165. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +11 -1
  166. package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts +7 -0
  167. package/dist/src/presentation/web/app/actions/check-all-agents-status.d.ts.map +1 -0
  168. package/dist/src/presentation/web/app/actions/check-all-agents-status.js +30 -0
  169. package/dist/src/presentation/web/app/actions/create-application.d.ts +33 -0
  170. package/dist/src/presentation/web/app/actions/create-application.d.ts.map +1 -0
  171. package/dist/src/presentation/web/app/actions/create-application.js +29 -0
  172. package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts +20 -0
  173. package/dist/src/presentation/web/app/actions/create-project-and-feature.d.ts.map +1 -0
  174. package/dist/src/presentation/web/app/actions/create-project-and-feature.js +84 -0
  175. package/dist/src/presentation/web/app/actions/delete-application.d.ts +4 -0
  176. package/dist/src/presentation/web/app/actions/delete-application.d.ts.map +1 -0
  177. package/dist/src/presentation/web/app/actions/delete-application.js +16 -0
  178. package/dist/src/presentation/web/app/actions/deploy-application.d.ts +20 -0
  179. package/dist/src/presentation/web/app/actions/deploy-application.d.ts.map +1 -0
  180. package/dist/src/presentation/web/app/actions/deploy-application.js +62 -0
  181. package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts +25 -0
  182. package/dist/src/presentation/web/app/actions/get-application-debug-prompt.d.ts.map +1 -0
  183. package/dist/src/presentation/web/app/actions/get-application-debug-prompt.js +37 -0
  184. package/dist/src/presentation/web/app/actions/get-git-log.js +2 -2
  185. package/dist/src/presentation/web/app/actions/update-application.d.ts +5 -0
  186. package/dist/src/presentation/web/app/actions/update-application.d.ts.map +1 -0
  187. package/dist/src/presentation/web/app/actions/update-application.js +21 -0
  188. package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts +17 -0
  189. package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.d.ts.map +1 -0
  190. package/dist/src/presentation/web/app/api/applications/[id]/files/content/route.js +63 -0
  191. package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts +17 -0
  192. package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.d.ts.map +1 -0
  193. package/dist/src/presentation/web/app/api/applications/[id]/files/raw/route.js +55 -0
  194. package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts +16 -0
  195. package/dist/src/presentation/web/app/api/applications/[id]/files/route.d.ts.map +1 -0
  196. package/dist/src/presentation/web/app/api/applications/[id]/files/route.js +23 -0
  197. package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts +21 -0
  198. package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.d.ts.map +1 -0
  199. package/dist/src/presentation/web/app/api/applications/[id]/files/watch/route.js +86 -0
  200. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts +15 -6
  201. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
  202. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +36 -20
  203. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts +21 -0
  204. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.d.ts.map +1 -0
  205. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/stream/route.js +82 -0
  206. package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts +15 -0
  207. package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.d.ts.map +1 -0
  208. package/dist/src/presentation/web/app/api/terminal/[sessionId]/input/route.js +27 -0
  209. package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts +15 -0
  210. package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.d.ts.map +1 -0
  211. package/dist/src/presentation/web/app/api/terminal/[sessionId]/resize/route.js +27 -0
  212. package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts +15 -0
  213. package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.d.ts.map +1 -0
  214. package/dist/src/presentation/web/app/api/terminal/[sessionId]/route.js +20 -0
  215. package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts +17 -0
  216. package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.d.ts.map +1 -0
  217. package/dist/src/presentation/web/app/api/terminal/[sessionId]/stream/route.js +76 -0
  218. package/dist/src/presentation/web/app/api/terminal/route.d.ts +12 -0
  219. package/dist/src/presentation/web/app/api/terminal/route.d.ts.map +1 -0
  220. package/dist/src/presentation/web/app/api/terminal/route.js +34 -0
  221. package/dist/src/presentation/web/app/application/[id]/page.d.ts +8 -0
  222. package/dist/src/presentation/web/app/application/[id]/page.d.ts.map +1 -0
  223. package/dist/src/presentation/web/app/application/[id]/page.js +65 -0
  224. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
  225. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  226. package/dist/src/presentation/web/app/build-graph-nodes.js +19 -0
  227. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +5 -1
  228. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
  229. package/dist/src/presentation/web/components/assistant-ui/thread.js +19 -5
  230. package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts +24 -0
  231. package/dist/src/presentation/web/components/common/application-node/application-node-config.d.ts.map +1 -0
  232. package/dist/src/presentation/web/components/common/application-node/application-node-config.js +1 -0
  233. package/dist/src/presentation/web/components/common/application-node/application-node.d.ts +7 -0
  234. package/dist/src/presentation/web/components/common/application-node/application-node.d.ts.map +1 -0
  235. package/dist/src/presentation/web/components/common/application-node/application-node.js +156 -0
  236. package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts +12 -0
  237. package/dist/src/presentation/web/components/common/application-node/application-node.stories.d.ts.map +1 -0
  238. package/dist/src/presentation/web/components/common/application-node/application-node.stories.js +100 -0
  239. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.d.ts.map +1 -1
  240. package/dist/src/presentation/web/components/common/attachment-chip/attachment-chip.js +1 -1
  241. package/dist/src/presentation/web/components/features/application-page/application-page.d.ts +31 -0
  242. package/dist/src/presentation/web/components/features/application-page/application-page.d.ts.map +1 -0
  243. package/dist/src/presentation/web/components/features/application-page/application-page.js +330 -0
  244. package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts +9 -0
  245. package/dist/src/presentation/web/components/features/application-page/application-page.stories.d.ts.map +1 -0
  246. package/dist/src/presentation/web/components/features/application-page/application-page.stories.js +51 -0
  247. package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts +11 -0
  248. package/dist/src/presentation/web/components/features/application-page/ide-tab/api.d.ts.map +1 -0
  249. package/dist/src/presentation/web/components/features/application-page/ide-tab/api.js +35 -0
  250. package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts +27 -0
  251. package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.d.ts.map +1 -0
  252. package/dist/src/presentation/web/components/features/application-page/ide-tab/editor-pane.js +147 -0
  253. package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts +19 -0
  254. package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.d.ts.map +1 -0
  255. package/dist/src/presentation/web/components/features/application-page/ide-tab/file-tree-panel.js +85 -0
  256. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts +16 -0
  257. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.d.ts.map +1 -0
  258. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.js +53 -0
  259. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts +9 -0
  260. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.d.ts.map +1 -0
  261. package/dist/src/presentation/web/components/features/application-page/ide-tab/ide-tab.stories.js +111 -0
  262. package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts +27 -0
  263. package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.d.ts.map +1 -0
  264. package/dist/src/presentation/web/components/features/application-page/ide-tab/image-viewer.js +162 -0
  265. package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts +3 -0
  266. package/dist/src/presentation/web/components/features/application-page/ide-tab/index.d.ts.map +1 -0
  267. package/dist/src/presentation/web/components/features/application-page/ide-tab/index.js +1 -0
  268. package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts +56 -0
  269. package/dist/src/presentation/web/components/features/application-page/ide-tab/types.d.ts.map +1 -0
  270. package/dist/src/presentation/web/components/features/application-page/ide-tab/types.js +35 -0
  271. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts +39 -0
  272. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.d.ts.map +1 -0
  273. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-ide-state.js +238 -0
  274. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts +14 -0
  275. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.d.ts.map +1 -0
  276. package/dist/src/presentation/web/components/features/application-page/ide-tab/use-resolved-theme.js +37 -0
  277. package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts +19 -0
  278. package/dist/src/presentation/web/components/features/application-page/run-dev-button.d.ts.map +1 -0
  279. package/dist/src/presentation/web/components/features/application-page/run-dev-button.js +80 -0
  280. package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts +9 -0
  281. package/dist/src/presentation/web/components/features/application-page/terminal-tab.d.ts.map +1 -0
  282. package/dist/src/presentation/web/components/features/application-page/terminal-tab.js +224 -0
  283. package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts +6 -0
  284. package/dist/src/presentation/web/components/features/application-page/web-preview-tab.d.ts.map +1 -0
  285. package/dist/src/presentation/web/components/features/application-page/web-preview-tab.js +57 -0
  286. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  287. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +4 -2
  288. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +38 -1
  289. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
  290. package/dist/src/presentation/web/components/features/chat/ChatTab.js +53 -8
  291. package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts +36 -0
  292. package/dist/src/presentation/web/components/features/chat/StepTracker.d.ts.map +1 -0
  293. package/dist/src/presentation/web/components/features/chat/StepTracker.js +133 -0
  294. package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts +11 -0
  295. package/dist/src/presentation/web/components/features/chat/StepTracker.stories.d.ts.map +1 -0
  296. package/dist/src/presentation/web/components/features/chat/StepTracker.stories.js +121 -0
  297. package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts +12 -0
  298. package/dist/src/presentation/web/components/features/chat/chat-state-query.d.ts.map +1 -0
  299. package/dist/src/presentation/web/components/features/chat/chat-state-query.js +20 -0
  300. package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts +38 -0
  301. package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.d.ts.map +1 -0
  302. package/dist/src/presentation/web/components/features/chat/tool-bubble/detect.js +91 -0
  303. package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts +17 -0
  304. package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.d.ts.map +1 -0
  305. package/dist/src/presentation/web/components/features/chat/tool-bubble/file-card.js +25 -0
  306. package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts +11 -0
  307. package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.d.ts.map +1 -0
  308. package/dist/src/presentation/web/components/features/chat/tool-bubble/generic-bubble.js +15 -0
  309. package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts +21 -0
  310. package/dist/src/presentation/web/components/features/chat/tool-bubble/index.d.ts.map +1 -0
  311. package/dist/src/presentation/web/components/features/chat/tool-bubble/index.js +37 -0
  312. package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts +14 -0
  313. package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.d.ts.map +1 -0
  314. package/dist/src/presentation/web/components/features/chat/tool-bubble/tool-chip.js +13 -0
  315. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +52 -1
  316. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
  317. package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +360 -28
  318. package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts +21 -0
  319. package/dist/src/presentation/web/components/features/chat/workflow-placeholder.d.ts.map +1 -0
  320. package/dist/src/presentation/web/components/features/chat/workflow-placeholder.js +40 -0
  321. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts +3 -1
  322. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  323. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +183 -120
  324. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts +4 -16
  325. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.d.ts.map +1 -1
  326. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.stories.js +16 -109
  327. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  328. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +40 -17
  329. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -0
  330. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  331. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +25 -1
  332. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +2 -1
  333. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -1
  334. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +9 -2
  335. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  336. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +2 -9
  337. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +2 -1
  338. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  339. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +2 -0
  340. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts +3 -1
  341. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
  342. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +9 -4
  343. package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts +1 -1
  344. package/dist/src/presentation/web/hooks/deployment-status-provider.d.ts.map +1 -1
  345. package/dist/src/presentation/web/hooks/deployment-status-provider.js +4 -1
  346. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +5 -0
  347. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  348. package/dist/src/presentation/web/hooks/use-graph-state.js +37 -2
  349. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +13 -3
  350. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
  351. package/dist/src/presentation/web/hooks/use-turn-statuses.js +73 -13
  352. package/dist/src/presentation/web/lib/derive-graph.d.ts +11 -1
  353. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  354. package/dist/src/presentation/web/lib/derive-graph.js +35 -1
  355. package/dist/src/presentation/web/lib/layout-with-dagre.d.ts +8 -1
  356. package/dist/src/presentation/web/lib/layout-with-dagre.d.ts.map +1 -1
  357. package/dist/src/presentation/web/lib/layout-with-dagre.js +27 -3
  358. package/dist/src/presentation/web/next.config.d.ts.map +1 -1
  359. package/dist/src/presentation/web/next.config.js +1 -0
  360. package/dist/translations/ar/web.json +2 -1
  361. package/dist/translations/de/web.json +2 -1
  362. package/dist/translations/en/web.json +2 -1
  363. package/dist/translations/es/web.json +2 -1
  364. package/dist/translations/fr/web.json +2 -1
  365. package/dist/translations/he/web.json +2 -1
  366. package/dist/translations/pt/web.json +2 -1
  367. package/dist/translations/ru/web.json +2 -1
  368. package/dist/translations/uk/web.json +2 -1
  369. package/dist/tsconfig.build.tsbuildinfo +1 -1
  370. package/package.json +5 -3
  371. package/web/.next/BUILD_ID +1 -1
  372. package/web/.next/app-path-routes-manifest.json +11 -0
  373. package/web/.next/build-manifest.json +5 -5
  374. package/web/.next/fallback-build-manifest.json +2 -2
  375. package/web/.next/prerender-manifest.json +3 -3
  376. package/web/.next/required-server-files.js +4 -3
  377. package/web/.next/required-server-files.json +4 -3
  378. package/web/.next/routes-manifest.json +84 -0
  379. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  380. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +111 -81
  381. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +6 -5
  382. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  383. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  384. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  385. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +107 -77
  386. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +6 -5
  387. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  388. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  389. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  390. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +113 -83
  391. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +6 -5
  392. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  393. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  394. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  395. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
  396. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +6 -5
  397. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  398. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  399. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  400. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +129 -99
  401. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +6 -5
  402. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  403. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  404. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  405. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
  406. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +6 -5
  407. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  408. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  409. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  410. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
  411. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +6 -5
  412. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  413. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  414. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  415. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +107 -77
  416. package/web/.next/server/app/(dashboard)/chat/page.js +6 -5
  417. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  418. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  419. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  420. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +113 -83
  421. package/web/.next/server/app/(dashboard)/create/page.js +6 -5
  422. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  423. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  424. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  425. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +129 -99
  426. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +6 -5
  427. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  428. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  429. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  430. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +129 -99
  431. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +6 -5
  432. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  433. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  434. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  435. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +107 -77
  436. package/web/.next/server/app/(dashboard)/page.js +6 -5
  437. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  438. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  439. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  440. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +109 -79
  441. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +6 -5
  442. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  443. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  444. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  445. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +109 -79
  446. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +6 -5
  447. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  448. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  449. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  450. package/web/.next/server/app/_global-error/page.js +1 -1
  451. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  452. package/web/.next/server/app/_global-error.html +2 -2
  453. package/web/.next/server/app/_global-error.rsc +1 -1
  454. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  455. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  456. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  457. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  458. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  459. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  460. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +27 -12
  461. package/web/.next/server/app/_not-found/page.js +2 -2
  462. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  463. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  464. package/web/.next/server/app/api/applications/[id]/files/content/route/app-paths-manifest.json +3 -0
  465. package/web/.next/server/app/api/applications/[id]/files/content/route/build-manifest.json +11 -0
  466. package/web/.next/server/app/api/applications/[id]/files/content/route/server-reference-manifest.json +4 -0
  467. package/web/.next/server/app/api/applications/[id]/files/content/route.js +6 -0
  468. package/web/.next/server/app/api/applications/[id]/files/content/route.js.map +5 -0
  469. package/web/.next/server/app/api/applications/[id]/files/content/route.js.nft.json +1 -0
  470. package/web/.next/server/app/api/applications/[id]/files/content/route_client-reference-manifest.js +2 -0
  471. package/web/.next/server/app/api/applications/[id]/files/raw/route/app-paths-manifest.json +3 -0
  472. package/web/.next/server/app/api/applications/[id]/files/raw/route/build-manifest.json +11 -0
  473. package/web/.next/server/app/api/applications/[id]/files/raw/route/server-reference-manifest.json +4 -0
  474. package/web/.next/server/app/api/applications/[id]/files/raw/route.js +7 -0
  475. package/web/.next/server/app/api/applications/[id]/files/raw/route.js.map +5 -0
  476. package/web/.next/server/app/api/applications/[id]/files/raw/route.js.nft.json +1 -0
  477. package/web/.next/server/app/api/applications/[id]/files/raw/route_client-reference-manifest.js +2 -0
  478. package/web/.next/server/app/api/applications/[id]/files/route/app-paths-manifest.json +3 -0
  479. package/web/.next/server/app/api/applications/[id]/files/route/build-manifest.json +11 -0
  480. package/web/.next/server/app/api/applications/[id]/files/route/server-reference-manifest.json +4 -0
  481. package/web/.next/server/app/api/applications/[id]/files/route.js +6 -0
  482. package/web/.next/server/app/api/applications/[id]/files/route.js.map +5 -0
  483. package/web/.next/server/app/api/applications/[id]/files/route.js.nft.json +1 -0
  484. package/web/.next/server/app/api/applications/[id]/files/route_client-reference-manifest.js +2 -0
  485. package/web/.next/server/app/api/applications/[id]/files/watch/route/app-paths-manifest.json +3 -0
  486. package/web/.next/server/app/api/applications/[id]/files/watch/route/build-manifest.json +11 -0
  487. package/web/.next/server/app/api/applications/[id]/files/watch/route/server-reference-manifest.json +4 -0
  488. package/web/.next/server/app/api/applications/[id]/files/watch/route.js +6 -0
  489. package/web/.next/server/app/api/applications/[id]/files/watch/route.js.map +5 -0
  490. package/web/.next/server/app/api/applications/[id]/files/watch/route.js.nft.json +1 -0
  491. package/web/.next/server/app/api/applications/[id]/files/watch/route_client-reference-manifest.js +2 -0
  492. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  493. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  494. package/web/.next/server/app/api/directory/list/route.js +1 -1
  495. package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -1
  496. package/web/.next/server/app/api/evidence/route.js +1 -1
  497. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  498. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  499. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  500. package/web/.next/server/app/api/graph-data/route.js +1 -1
  501. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  502. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  503. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  504. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/app-paths-manifest.json +3 -0
  505. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/build-manifest.json +11 -0
  506. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route/server-reference-manifest.json +4 -0
  507. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js +6 -0
  508. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.map +5 -0
  509. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route.js.nft.json +1 -0
  510. package/web/.next/server/app/api/interactive/chat/turn-statuses/stream/route_client-reference-manifest.js +2 -0
  511. package/web/.next/server/app/api/sessions/route.js +1 -1
  512. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  513. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  514. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  515. package/web/.next/server/app/api/terminal/[sessionId]/input/route/app-paths-manifest.json +3 -0
  516. package/web/.next/server/app/api/terminal/[sessionId]/input/route/build-manifest.json +11 -0
  517. package/web/.next/server/app/api/terminal/[sessionId]/input/route/server-reference-manifest.json +4 -0
  518. package/web/.next/server/app/api/terminal/[sessionId]/input/route.js +6 -0
  519. package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.map +5 -0
  520. package/web/.next/server/app/api/terminal/[sessionId]/input/route.js.nft.json +1 -0
  521. package/web/.next/server/app/api/terminal/[sessionId]/input/route_client-reference-manifest.js +2 -0
  522. package/web/.next/server/app/api/terminal/[sessionId]/resize/route/app-paths-manifest.json +3 -0
  523. package/web/.next/server/app/api/terminal/[sessionId]/resize/route/build-manifest.json +11 -0
  524. package/web/.next/server/app/api/terminal/[sessionId]/resize/route/server-reference-manifest.json +4 -0
  525. package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js +6 -0
  526. package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.map +5 -0
  527. package/web/.next/server/app/api/terminal/[sessionId]/resize/route.js.nft.json +1 -0
  528. package/web/.next/server/app/api/terminal/[sessionId]/resize/route_client-reference-manifest.js +2 -0
  529. package/web/.next/server/app/api/terminal/[sessionId]/route/app-paths-manifest.json +3 -0
  530. package/web/.next/server/app/api/terminal/[sessionId]/route/build-manifest.json +11 -0
  531. package/web/.next/server/app/api/terminal/[sessionId]/route/server-reference-manifest.json +4 -0
  532. package/web/.next/server/app/api/terminal/[sessionId]/route.js +6 -0
  533. package/web/.next/server/app/api/terminal/[sessionId]/route.js.map +5 -0
  534. package/web/.next/server/app/api/terminal/[sessionId]/route.js.nft.json +1 -0
  535. package/web/.next/server/app/api/terminal/[sessionId]/route_client-reference-manifest.js +2 -0
  536. package/web/.next/server/app/api/terminal/[sessionId]/stream/route/app-paths-manifest.json +3 -0
  537. package/web/.next/server/app/api/terminal/[sessionId]/stream/route/build-manifest.json +11 -0
  538. package/web/.next/server/app/api/terminal/[sessionId]/stream/route/server-reference-manifest.json +4 -0
  539. package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js +6 -0
  540. package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.map +5 -0
  541. package/web/.next/server/app/api/terminal/[sessionId]/stream/route.js.nft.json +1 -0
  542. package/web/.next/server/app/api/terminal/[sessionId]/stream/route_client-reference-manifest.js +2 -0
  543. package/web/.next/server/app/api/terminal/route/app-paths-manifest.json +3 -0
  544. package/web/.next/server/app/api/terminal/route/build-manifest.json +11 -0
  545. package/web/.next/server/app/api/terminal/route/server-reference-manifest.json +4 -0
  546. package/web/.next/server/app/api/terminal/route.js +6 -0
  547. package/web/.next/server/app/api/terminal/route.js.map +5 -0
  548. package/web/.next/server/app/api/terminal/route.js.nft.json +1 -0
  549. package/web/.next/server/app/api/terminal/route_client-reference-manifest.js +2 -0
  550. package/web/.next/server/app/application/[id]/page/app-paths-manifest.json +3 -0
  551. package/web/.next/server/app/application/[id]/page/build-manifest.json +18 -0
  552. package/web/.next/server/app/application/[id]/page/next-font-manifest.json +6 -0
  553. package/web/.next/server/app/application/[id]/page/react-loadable-manifest.json +8 -0
  554. package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +230 -0
  555. package/web/.next/server/app/application/[id]/page.js +19 -0
  556. package/web/.next/server/app/application/[id]/page.js.map +5 -0
  557. package/web/.next/server/app/application/[id]/page.js.nft.json +1 -0
  558. package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +2 -0
  559. package/web/.next/server/app/features/page/build-manifest.json +3 -3
  560. package/web/.next/server/app/features/page/server-reference-manifest.json +27 -12
  561. package/web/.next/server/app/features/page.js +2 -2
  562. package/web/.next/server/app/features/page.js.nft.json +1 -1
  563. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  564. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  565. package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
  566. package/web/.next/server/app/settings/page.js +2 -2
  567. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  568. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  569. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  570. package/web/.next/server/app/skills/page/server-reference-manifest.json +56 -26
  571. package/web/.next/server/app/skills/page.js +4 -3
  572. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  573. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  574. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  575. package/web/.next/server/app/tools/page/server-reference-manifest.json +52 -22
  576. package/web/.next/server/app/tools/page.js +3 -2
  577. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  578. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  579. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  580. package/web/.next/server/app/version/page/server-reference-manifest.json +27 -12
  581. package/web/.next/server/app/version/page.js +3 -3
  582. package/web/.next/server/app/version/page.js.nft.json +1 -1
  583. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  584. package/web/.next/server/app-paths-manifest.json +11 -0
  585. package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js +3 -0
  586. package/web/.next/server/chunks/0d725_next-internal_server_app_api_applications_[id]_files_raw_route_actions_69e55b18.js.map +1 -0
  587. package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js +3 -0
  588. package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_resize_route_actions_068451e5.js.map +1 -0
  589. package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js +3 -0
  590. package/web/.next/server/chunks/0d725_next-internal_server_app_api_terminal_[sessionId]_stream_route_actions_475d5f68.js.map +1 -0
  591. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  592. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  593. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js +3 -0
  594. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_terminal_[sessionId]_route_actions_20e0d9a3.js.map +1 -0
  595. package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js +3 -0
  596. package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_content_route_actions_b0c05593.js.map +1 -0
  597. package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js +3 -0
  598. package/web/.next/server/chunks/8ba4b_server_app_api_applications_[id]_files_watch_route_actions_30d3aeeb.js.map +1 -0
  599. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js +3 -0
  600. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_stream_route_actions_52514889.js.map +1 -0
  601. package/web/.next/server/chunks/[root-of-the-server]__038012df._.js +3 -0
  602. package/web/.next/server/chunks/[root-of-the-server]__038012df._.js.map +1 -0
  603. package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js +3 -0
  604. package/web/.next/server/chunks/[root-of-the-server]__0e3323be._.js.map +1 -0
  605. package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js +3 -0
  606. package/web/.next/server/chunks/[root-of-the-server]__38b9b39e._.js.map +1 -0
  607. package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js +3 -0
  608. package/web/.next/server/chunks/[root-of-the-server]__3c22f57d._.js.map +1 -0
  609. package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js +3 -0
  610. package/web/.next/server/chunks/[root-of-the-server]__4906ab60._.js.map +1 -0
  611. package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js → [root-of-the-server]__4eb2c4e4._.js} +2 -2
  612. package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js → [root-of-the-server]__5e3c6f3a._.js} +2 -2
  613. package/web/.next/server/chunks/[root-of-the-server]__72175657._.js +9 -0
  614. package/web/.next/server/chunks/[root-of-the-server]__72175657._.js.map +1 -0
  615. package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js → [root-of-the-server]__86965b92._.js} +2 -2
  616. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +19 -13
  617. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
  618. package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js +3 -0
  619. package/web/.next/server/chunks/[root-of-the-server]__92409aeb._.js.map +1 -0
  620. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  621. package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js +6 -0
  622. package/web/.next/server/chunks/[root-of-the-server]__a52f55af._.js.map +1 -0
  623. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__ac92afe7._.js} +2 -2
  624. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__ac92afe7._.js.map} +1 -1
  625. package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js +3 -0
  626. package/web/.next/server/chunks/{[root-of-the-server]__c78383b1._.js.map → [root-of-the-server]__b2a4bfcc._.js.map} +1 -1
  627. package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js → [root-of-the-server]__c8f90b29._.js} +2 -2
  628. package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js → [root-of-the-server]__cbf5b20b._.js} +2 -2
  629. package/web/.next/server/chunks/{[root-of-the-server]__2b71641f._.js.map → [root-of-the-server]__cbf5b20b._.js.map} +1 -1
  630. package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js +3 -0
  631. package/web/.next/server/chunks/[root-of-the-server]__ccfcaa08._.js.map +1 -0
  632. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  633. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  634. package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js +9 -0
  635. package/web/.next/server/chunks/[root-of-the-server]__deb67d81._.js.map +1 -0
  636. package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js → [root-of-the-server]__ecd08b79._.js} +2 -2
  637. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js +3 -0
  638. package/web/.next/server/chunks/b1a17_presentation_web__next-internal_server_app_api_terminal_route_actions_f93ca3cb.js.map +1 -0
  639. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js +3 -0
  640. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_applications_[id]_files_route_actions_e1af3c3a.js.map +1 -0
  641. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js +3 -0
  642. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_terminal_[sessionId]_input_route_actions_b7785e18.js.map +1 -0
  643. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  644. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  645. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  646. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  647. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js +3 -0
  648. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js.map +1 -0
  649. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +3 -0
  650. package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -0
  651. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js → [root-of-the-server]__090f24cb._.js} +2 -2
  652. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d1040bd1._.js.map → [root-of-the-server]__090f24cb._.js.map} +1 -1
  653. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +4 -0
  654. package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -0
  655. package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +4 -0
  656. package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js.map +1 -0
  657. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +4 -0
  658. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -0
  659. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +12 -0
  660. package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -0
  661. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +4 -0
  662. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js.map +1 -0
  663. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +3 -0
  664. package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js → [root-of-the-server]__7aa484f5._.js} +2 -2
  666. package/web/.next/server/chunks/ssr/{[root-of-the-server]__efeeaed4._.js.map → [root-of-the-server]__7aa484f5._.js.map} +1 -1
  667. package/web/.next/server/chunks/ssr/{[root-of-the-server]__86ff0bc5._.js → [root-of-the-server]__87bc4dac._.js} +3 -3
  668. package/web/.next/server/chunks/ssr/[root-of-the-server]__87bc4dac._.js.map +1 -0
  669. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js → [root-of-the-server]__894882ab._.js} +2 -2
  670. package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js +3 -0
  671. package/web/.next/server/chunks/ssr/[root-of-the-server]__a3a4ddef._.js.map +1 -0
  672. package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js +3 -0
  673. package/web/.next/server/chunks/ssr/[root-of-the-server]__a4222b95._.js.map +1 -0
  674. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +3 -0
  675. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -0
  676. package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +3 -0
  677. package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +1 -0
  678. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js +4 -0
  679. package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +1 -0
  680. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +4 -0
  681. package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -0
  682. package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js → [root-of-the-server]__e265da61._.js} +2 -2
  683. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +3 -0
  684. package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -0
  685. package/web/.next/server/chunks/ssr/_0277d3b5._.js +21 -0
  686. package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -0
  687. package/web/.next/server/chunks/ssr/_1879404a._.js +1 -1
  688. package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -1
  689. package/web/.next/server/chunks/ssr/_1e08a336._.js +1 -1
  690. package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
  691. package/web/.next/server/chunks/ssr/_2bea8166._.js +4 -0
  692. package/web/.next/server/chunks/ssr/_2bea8166._.js.map +1 -0
  693. package/web/.next/server/chunks/ssr/_44531b76._.js +9 -0
  694. package/web/.next/server/chunks/ssr/_44531b76._.js.map +1 -0
  695. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  696. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  697. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  698. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  699. package/web/.next/server/chunks/ssr/_5bf2415e._.js +7 -0
  700. package/web/.next/server/chunks/ssr/_5bf2415e._.js.map +1 -0
  701. package/web/.next/server/chunks/ssr/_82c47cc2._.js +3 -0
  702. package/web/.next/server/chunks/ssr/{_bb09579b._.js.map → _82c47cc2._.js.map} +1 -1
  703. package/web/.next/server/chunks/ssr/_869a3a15._.js +3 -0
  704. package/web/.next/server/chunks/ssr/_869a3a15._.js.map +1 -0
  705. package/web/.next/server/chunks/ssr/{_7d50fed0._.js → _946a7fc6._.js} +3 -3
  706. package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -0
  707. package/web/.next/server/chunks/ssr/_948d3cc6._.js +3 -0
  708. package/web/.next/server/chunks/ssr/_948d3cc6._.js.map +1 -0
  709. package/web/.next/server/chunks/ssr/{_5889596f._.js → _96718a00._.js} +2 -2
  710. package/web/.next/server/chunks/ssr/_96718a00._.js.map +1 -0
  711. package/web/.next/server/chunks/ssr/_9df33116._.js +3 -0
  712. package/web/.next/server/chunks/ssr/_9df33116._.js.map +1 -0
  713. package/web/.next/server/chunks/ssr/_b227ff50._.js +3 -0
  714. package/web/.next/server/chunks/ssr/_b227ff50._.js.map +1 -0
  715. package/web/.next/server/chunks/ssr/_e071ba48._.js +3 -0
  716. package/web/.next/server/chunks/ssr/_e071ba48._.js.map +1 -0
  717. package/web/.next/server/chunks/ssr/_ee88b448._.js +3 -0
  718. package/web/.next/server/chunks/ssr/_ee88b448._.js.map +1 -0
  719. package/web/.next/server/chunks/ssr/_eff1b518._.js +3 -0
  720. package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -0
  721. package/web/.next/server/chunks/ssr/_f227429a._.js +3 -0
  722. package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -0
  723. package/web/.next/server/chunks/ssr/{_496c9117._.js → _f86fc1bf._.js} +2 -2
  724. package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -0
  725. package/web/.next/server/chunks/ssr/_f8c55130._.js +4 -0
  726. package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -0
  727. package/web/.next/server/chunks/ssr/_ff6f3257._.js +3 -0
  728. package/web/.next/server/chunks/ssr/_ff6f3257._.js.map +1 -0
  729. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  730. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  731. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  732. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  733. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  734. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  735. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  736. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  737. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +3 -0
  738. package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -0
  739. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +3 -0
  740. package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -0
  741. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +3 -0
  742. package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -0
  743. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +3 -0
  744. package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -0
  745. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +3 -0
  746. package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -0
  747. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +3 -0
  748. package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -0
  749. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +3 -0
  750. package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -0
  751. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +3 -0
  752. package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -0
  753. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +3 -0
  754. package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -0
  755. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +32 -0
  756. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -0
  757. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +3 -0
  758. package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -0
  759. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +3 -0
  760. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -0
  761. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  762. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  763. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +3 -0
  764. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js.map +1 -0
  765. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +3 -0
  766. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -0
  767. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  768. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  769. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  770. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
  771. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +3 -0
  772. package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -0
  773. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +3 -0
  774. package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +1 -0
  775. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  776. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  777. package/web/.next/server/middleware-build-manifest.js +3 -3
  778. package/web/.next/server/pages/500.html +2 -2
  779. package/web/.next/server/server-reference-manifest.js +1 -1
  780. package/web/.next/server/server-reference-manifest.json +1084 -703
  781. package/web/.next/static/chunks/{d26d0a7bc1a9b5a4.js → 010215070d22b4e6.js} +2 -2
  782. package/web/.next/static/chunks/06b9d6dbf635c370.css +1 -0
  783. package/web/.next/static/chunks/0a67d6e50e27452e.js +1 -0
  784. package/web/.next/static/chunks/11ef340e4cfbdbe6.js +1 -0
  785. package/web/.next/static/chunks/1ae0cf5be30ef398.js +1 -0
  786. package/web/.next/static/chunks/2a64d4b1a285fac5.js +1 -0
  787. package/web/.next/static/chunks/2ddda685a9100fd8.js +19 -0
  788. package/web/.next/static/chunks/2fe20598e1b4793a.js +5 -0
  789. package/web/.next/static/chunks/3ee4449e73eb4917.js +1 -0
  790. package/web/.next/static/chunks/{eb1ca1b0a34166f5.js → 66261997e6f830f1.js} +1 -1
  791. package/web/.next/static/chunks/6ecbcce796343f44.js +1 -0
  792. package/web/.next/static/chunks/7c3fe3c694874dea.js +1 -0
  793. package/web/.next/static/chunks/8f783e12274578c2.js +1 -0
  794. package/web/.next/static/chunks/927442d2628f6e22.js +1 -0
  795. package/web/.next/static/chunks/9370d114ce5b69fb.js +7 -0
  796. package/web/.next/static/chunks/b17c2d874c373d4e.js +1 -0
  797. package/web/.next/static/chunks/b2a010b2ba8710f4.js +1 -0
  798. package/web/.next/static/chunks/b7b85a15f387ab7c.css +1 -0
  799. package/web/.next/static/chunks/b99506a6f7bc2fa8.js +1 -0
  800. package/web/.next/static/chunks/{5a2bdbc57ed1368e.js → c1559152cf2ab9c6.js} +1 -1
  801. package/web/.next/static/chunks/d2182843a406b5a7.js +5 -0
  802. package/web/.next/static/chunks/edf812d5efffa096.js +7 -0
  803. package/web/.next/static/chunks/{f5c61237675acc89.js → ee9a716c6424ff25.js} +1 -1
  804. package/web/.next/static/chunks/f7a55ba1f789c55f.js +1 -0
  805. package/web/.next/static/chunks/fcf27468f8026dbd.js +1 -0
  806. package/web/.next/static/chunks/fe8bcc8ff36a61c0.js +1 -0
  807. package/web/.next/static/chunks/{turbopack-fa58b7ea4a4b26e7.js → turbopack-d16f2f815897af68.js} +1 -1
  808. package/web/next.config.mjs +1 -1
  809. package/web/package.json +7 -0
  810. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +0 -3
  811. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js +0 -3
  812. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_bdff55d6.js.map +0 -1
  813. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js +0 -3
  814. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_6aa77d75.js.map +0 -1
  815. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js +0 -3
  816. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_24adb073.js.map +0 -1
  817. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js +0 -3
  818. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_281e0ef8._.js.map +0 -1
  819. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js +0 -3
  820. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_a593f310._.js.map +0 -1
  821. package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js +0 -3
  822. package/web/.next/server/chunks/ssr/[root-of-the-server]__16c1388b._.js.map +0 -1
  823. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +0 -4
  824. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +0 -1
  825. package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js +0 -3
  826. package/web/.next/server/chunks/ssr/[root-of-the-server]__22d17c66._.js.map +0 -1
  827. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +0 -4
  828. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +0 -1
  829. package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js +0 -3
  830. package/web/.next/server/chunks/ssr/[root-of-the-server]__75070d2e._.js.map +0 -1
  831. package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js +0 -4
  832. package/web/.next/server/chunks/ssr/[root-of-the-server]__7c634c0f._.js.map +0 -1
  833. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +0 -1
  834. package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js +0 -4
  835. package/web/.next/server/chunks/ssr/[root-of-the-server]__8f02b364._.js.map +0 -1
  836. package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js +0 -3
  837. package/web/.next/server/chunks/ssr/[root-of-the-server]__9dde817e._.js.map +0 -1
  838. package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js +0 -3
  839. package/web/.next/server/chunks/ssr/[root-of-the-server]__a00db173._.js.map +0 -1
  840. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +0 -4
  841. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +0 -1
  842. package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js +0 -4
  843. package/web/.next/server/chunks/ssr/[root-of-the-server]__cf751517._.js.map +0 -1
  844. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js +0 -3
  845. package/web/.next/server/chunks/ssr/[root-of-the-server]__e5f31e9a._.js.map +0 -1
  846. package/web/.next/server/chunks/ssr/_15f6bbd4._.js +0 -3
  847. package/web/.next/server/chunks/ssr/_15f6bbd4._.js.map +0 -1
  848. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  849. package/web/.next/server/chunks/ssr/_396a6887._.js +0 -3
  850. package/web/.next/server/chunks/ssr/_396a6887._.js.map +0 -1
  851. package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
  852. package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
  853. package/web/.next/server/chunks/ssr/_496c9117._.js.map +0 -1
  854. package/web/.next/server/chunks/ssr/_49b8d085._.js +0 -3
  855. package/web/.next/server/chunks/ssr/_49b8d085._.js.map +0 -1
  856. package/web/.next/server/chunks/ssr/_5889596f._.js.map +0 -1
  857. package/web/.next/server/chunks/ssr/_6abfa39e._.js +0 -3
  858. package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +0 -1
  859. package/web/.next/server/chunks/ssr/_74a1a173._.js +0 -7
  860. package/web/.next/server/chunks/ssr/_74a1a173._.js.map +0 -1
  861. package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
  862. package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
  863. package/web/.next/server/chunks/ssr/_7d50fed0._.js.map +0 -1
  864. package/web/.next/server/chunks/ssr/_9bbdd461._.js +0 -4
  865. package/web/.next/server/chunks/ssr/_9bbdd461._.js.map +0 -1
  866. package/web/.next/server/chunks/ssr/_b7a43c05._.js +0 -3
  867. package/web/.next/server/chunks/ssr/_b7a43c05._.js.map +0 -1
  868. package/web/.next/server/chunks/ssr/_bb09579b._.js +0 -3
  869. package/web/.next/server/chunks/ssr/_bcd239dd._.js +0 -3
  870. package/web/.next/server/chunks/ssr/_bcd239dd._.js.map +0 -1
  871. package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
  872. package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
  873. package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js +0 -3
  874. package/web/.next/server/chunks/ssr/node_modules__pnpm_63d47a3e._.js.map +0 -1
  875. package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js +0 -3
  876. package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js.map +0 -1
  877. package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js +0 -3
  878. package/web/.next/server/chunks/ssr/src_presentation_web_0338c789._.js.map +0 -1
  879. package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js +0 -5
  880. package/web/.next/server/chunks/ssr/src_presentation_web_071f1e80._.js.map +0 -1
  881. package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js +0 -3
  882. package/web/.next/server/chunks/ssr/src_presentation_web_55c1ff7d._.js.map +0 -1
  883. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js +0 -3
  884. package/web/.next/server/chunks/ssr/src_presentation_web_9a543843._.js.map +0 -1
  885. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js +0 -3
  886. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ad14a90f.js.map +0 -1
  887. package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js +0 -3
  888. package/web/.next/server/chunks/ssr/src_presentation_web_bade80bd._.js.map +0 -1
  889. package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js +0 -3
  890. package/web/.next/server/chunks/ssr/src_presentation_web_d5838156._.js.map +0 -1
  891. package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js +0 -5
  892. package/web/.next/server/chunks/ssr/src_presentation_web_dc28bc60._.js.map +0 -1
  893. package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js +0 -3
  894. package/web/.next/server/chunks/ssr/src_presentation_web_dcb020e3._.js.map +0 -1
  895. package/web/.next/static/chunks/09edd35d194bec06.js +0 -5
  896. package/web/.next/static/chunks/124b79a5d2a760fb.css +0 -1
  897. package/web/.next/static/chunks/200e07d995bd9a42.js +0 -1
  898. package/web/.next/static/chunks/22e3a3738308da2e.js +0 -1
  899. package/web/.next/static/chunks/25d3c4d18b8aecff.js +0 -7
  900. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
  901. package/web/.next/static/chunks/34444901ca3a1c3b.js +0 -1
  902. package/web/.next/static/chunks/3cf86457869c47bc.js +0 -1
  903. package/web/.next/static/chunks/4052a4971fbbac9c.js +0 -1
  904. package/web/.next/static/chunks/55060446f5490f20.js +0 -3
  905. package/web/.next/static/chunks/59bff7b33ebe5f68.js +0 -1
  906. package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
  907. package/web/.next/static/chunks/971e52f3f386ccfd.js +0 -1
  908. package/web/.next/static/chunks/981c6f3f1db99b4e.js +0 -1
  909. package/web/.next/static/chunks/b63e6727c84f30e2.js +0 -1
  910. package/web/.next/static/chunks/c10c0d6d458453bc.js +0 -1
  911. package/web/.next/static/chunks/c94a6a3d54dd4997.js +0 -5
  912. package/web/.next/static/chunks/d04d868f0971941d.js +0 -1
  913. package/web/.next/static/chunks/e7502fb670f32235.js +0 -1
  914. package/web/.next/static/chunks/fb7211d94190d010.js +0 -5
  915. /package/web/.next/server/chunks/{[root-of-the-server]__2f61738a._.js.map → [root-of-the-server]__4eb2c4e4._.js.map} +0 -0
  916. /package/web/.next/server/chunks/{[root-of-the-server]__acea6565._.js.map → [root-of-the-server]__5e3c6f3a._.js.map} +0 -0
  917. /package/web/.next/server/chunks/{[root-of-the-server]__31598852._.js.map → [root-of-the-server]__86965b92._.js.map} +0 -0
  918. /package/web/.next/server/chunks/{[root-of-the-server]__e3692208._.js.map → [root-of-the-server]__c8f90b29._.js.map} +0 -0
  919. /package/web/.next/server/chunks/{[root-of-the-server]__fc6fd958._.js.map → [root-of-the-server]__ecd08b79._.js.map} +0 -0
  920. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__e0592c69._.js.map → [root-of-the-server]__894882ab._.js.map} +0 -0
  921. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__357d99f9._.js.map → [root-of-the-server]__e265da61._.js.map} +0 -0
  922. /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_buildManifest.js +0 -0
  923. /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_clientMiddlewareManifest.json +0 -0
  924. /package/web/.next/static/{mLJ1Qa4FUFmmZm0crRH2U → ex3OTWRXHxfwD9RkifALI}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/git-branch.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/timer.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/activity.ts","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/rocket.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/minus.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/layout-grid.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-switch%401.2.6_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact_82f001e3bde9922eaefd6f7b0722a9bb/node_modules/%40radix-ui/react-switch/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/switch.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTloOCIgLz4KICA8cGF0aCBkPSJtNCAxNyA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '6', x2: '6', y1: '3', y2: '15', key: '17qcm7' }],\n ['circle', { cx: '18', cy: '6', r: '3', key: '1h7g24' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M18 9a9 9 0 0 1-9 9', key: 'n2h4wq' }],\n];\n\n/**\n * @component @name GitBranch\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iNiIgeDI9IjYiIHkxPSIzIiB5Mj0iMTUiIC8+CiAgPGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIgLz4KICA8cGF0aCBkPSJNMTggOWE5IDkgMCAwIDEtOSA5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/git-branch\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GitBranch = createLucideIcon('git-branch', __iconNode);\n\nexport default GitBranch;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2', key: '14vaq8' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11', key: '17fdiu' }],\n ['circle', { cx: '12', cy: '14', r: '8', key: '1e1u0o' }],\n];\n\n/**\n * @component @name Timer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTAiIHgyPSIxNCIgeTE9IjIiIHkyPSIyIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjE1IiB5MT0iMTQiIHkyPSIxMSIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjE0IiByPSI4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Timer = createLucideIcon('timer', __iconNode);\n\nexport default Timer;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2',\n key: '169zse',\n },\n ],\n];\n\n/**\n * @component @name Activity\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTJoLTIuNDhhMiAyIDAgMCAwLTEuOTMgMS40NmwtMi4zNSA4LjM2YS4yNS4yNSAwIDAgMS0uNDggMEw5LjI0IDIuMThhLjI1LjI1IDAgMCAwLS40OCAwbC0yLjM1IDguMzZBMiAyIDAgMCAxIDQuNDkgMTJIMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/activity\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Activity = createLucideIcon('activity', __iconNode);\n\nexport default Activity;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground rounded-xl border shadow', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z',\n key: 'm3kijz',\n },\n ],\n [\n 'path',\n {\n d: 'm12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z',\n key: '1fmvmk',\n },\n ],\n ['path', { d: 'M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0', key: '1f8sc4' }],\n ['path', { d: 'M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5', key: 'qeys4' }],\n];\n\n/**\n * @component @name Rocket\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNC41IDE2LjVjLTEuNSAxLjI2LTIgNS0yIDVzMy43NC0uNSA1LTJjLjcxLS44NC43LTIuMTMtLjA5LTIuOTFhMi4xOCAyLjE4IDAgMCAwLTIuOTEtLjA5eiIgLz4KICA8cGF0aCBkPSJtMTIgMTUtMy0zYTIyIDIyIDAgMCAxIDItMy45NUExMi44OCAxMi44OCAwIDAgMSAyMiAyYzAgMi43Mi0uNzggNy41LTYgMTFhMjIuMzUgMjIuMzUgMCAwIDEtNCAyeiIgLz4KICA8cGF0aCBkPSJNOSAxMkg0cy41NS0zLjAzIDItNGMxLjYyLTEuMDggNSAwIDUgMCIgLz4KICA8cGF0aCBkPSJNMTIgMTV2NXMzLjAzLS41NSA0LTJjMS4wOC0xLjYyIDAtNSAwLTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/rocket\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Rocket = createLucideIcon('rocket', __iconNode);\n\nexport default Rocket;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M5 12h14', key: '1ays0h' }]];\n\n/**\n * @component @name Minus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Minus = createLucideIcon('minus', __iconNode);\n\nexport default Minus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '7', height: '7', x: '3', y: '3', rx: '1', key: '1g98yp' }],\n ['rect', { width: '7', height: '7', x: '14', y: '3', rx: '1', key: '6d4xhi' }],\n ['rect', { width: '7', height: '7', x: '14', y: '14', rx: '1', key: 'nxv5o0' }],\n ['rect', { width: '7', height: '7', x: '3', y: '14', rx: '1', key: '1bb6yr' }],\n];\n\n/**\n * @component @name LayoutGrid\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIzIiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIxNCIgeT0iMyIgcng9IjEiIC8+CiAgPHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iNyIgeD0iMTQiIHk9IjE0IiByeD0iMSIgLz4KICA8cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSI3IiB4PSIzIiB5PSIxNCIgcng9IjEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/layout-grid\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LayoutGrid = createLucideIcon('layout-grid', __iconNode);\n\nexport default LayoutGrid;\n","\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,6,8,9]}
@@ -1,5 +1,5 @@
1
- module.exports=[63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},38376,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:d,blurDataURL:e,objectFit:f}){let g=c?40*c:a,h=d?40*d:b,i=g&&h?`viewBox='0 0 ${g} ${h}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${i}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${i?"none":"contain"===f?"xMidYMid":"cover"===f?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${e}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},20729,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},6877,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return j}}),a.r(61712);let d=a.r(27478),e=a.r(38376),f=a.r(20729),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:j=!1,preload:k=!1,loading:l,className:m,quality:n,width:o,height:p,fill:q=!1,style:r,overrideSrc:s,onLoad:t,onLoadingComplete:u,placeholder:v="empty",blurDataURL:w,fetchPriority:x,decoding:y="async",layout:z,objectFit:A,objectPosition:B,lazyBoundary:C,lazyRoot:D,...E},F){var G;let H,I,J,{imgConf:K,showAltText:L,blurComplete:M,defaultLoader:N}=F,O=K||f.imageConfigDefault;if("allSizes"in O)H=O;else{let a=[...O.deviceSizes,...O.imageSizes].sort((a,b)=>a-b),b=O.deviceSizes.sort((a,b)=>a-b),c=O.qualities?.sort((a,b)=>a-b);H={...O,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===N)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let P=E.loader||N;delete E.loader,delete E.srcSet;let Q="__next_img_default"in P;if(Q){if("custom"===H.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
1
+ module.exports=[67273,a=>{"use strict";var b=a.i(2811);a.s(["CircleCheck",()=>b.default])},63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},38376,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:d,blurDataURL:e,objectFit:f}){let g=c?40*c:a,h=d?40*d:b,i=g&&h?`viewBox='0 0 ${g} ${h}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${i}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${i?"none":"contain"===f?"xMidYMid":"cover"===f?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${e}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},20729,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},6877,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return j}}),a.r(61712);let d=a.r(27478),e=a.r(38376),f=a.r(20729),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:j=!1,preload:k=!1,loading:l,className:m,quality:n,width:o,height:p,fill:q=!1,style:r,overrideSrc:s,onLoad:t,onLoadingComplete:u,placeholder:v="empty",blurDataURL:w,fetchPriority:x,decoding:y="async",layout:z,objectFit:A,objectPosition:B,lazyBoundary:C,lazyRoot:D,...E},F){var G;let H,I,J,{imgConf:K,showAltText:L,blurComplete:M,defaultLoader:N}=F,O=K||f.imageConfigDefault;if("allSizes"in O)H=O;else{let a=[...O.deviceSizes,...O.imageSizes].sort((a,b)=>a-b),b=O.deviceSizes.sort((a,b)=>a-b),c=O.qualities?.sort((a,b)=>a-b);H={...O,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===N)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let P=E.loader||N;delete E.loader,delete E.srcSet;let Q="__next_img_default"in P;if(Q){if("custom"===H.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
2
2
  Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=P;P=b=>{let{config:c,...d}=b;return a(d)}}if(z){"fill"===z&&(q=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[z];a&&(r={...r,...a});let c={responsive:"100vw",fill:"100vw"}[z];c&&!b&&(b=c)}let R="",S=i(o),T=i(p);if((G=a)&&"object"==typeof G&&(h(G)||void 0!==G.src)){let b=h(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(I=b.blurWidth,J=b.blurHeight,w=w||b.blurDataURL,R=b.src,!q)if(S||T){if(S&&!T){let a=S/b.width;T=Math.round(b.height*a)}else if(!S&&T){let a=T/b.height;S=Math.round(b.width*a)}}else S=b.width,T=b.height}let U=!j&&!k&&("lazy"===l||void 0===l);(!(a="string"==typeof a?a:R)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,U=!1),H.unoptimized&&(c=!0),Q&&!H.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let V=i(n),W=Object.assign(q?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:A,objectPosition:B}:{},L?{}:{color:"transparent"},r),X=M||"empty"===v?null:"blur"===v?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:S,heightInt:T,blurWidth:I,blurHeight:J,blurDataURL:w||"",objectFit:W.objectFit})}")`:`url("${v}")`,Y=g.includes(W.objectFit)?"fill"===W.objectFit?"100% 100%":"cover":W.objectFit,Z=X?{backgroundSize:Y,backgroundPosition:W.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},$=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){let a=(0,d.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//")&&a){let c=b.includes("?")?"&":"?";b=`${b}${c}dpl=${a}`}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:H,src:a,unoptimized:c,width:S,quality:V,sizes:b,loader:P}),_=U?"lazy":l;return{props:{...E,loading:_,fetchPriority:x,width:S,height:T,decoding:y,className:m,style:{...W,...Z},sizes:$.sizes,srcSet:$.srcSet,src:s||$.src},meta:{unoptimized:c,preload:k||j,placeholder:v,fill:q}}}},59712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(96960),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},64687,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.HeadManagerContext},83250,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(3988),h=a.r(12656),i=g._(a.r(96960)),j=f._(a.r(59712)),k=a.r(64687);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(61712);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},6741,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.ImageConfigContext},72195,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.RouterContext},83401,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,0):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},71331,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(83401),e=a.r(27478);function f({config:a,src:b,width:c,quality:f}){if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let g=(0,d.findClosestQuality)(f,a),h=(0,e.getDeploymentId)();return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${g}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},16132,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(12656),g=e._(a.r(96960)),h=d._(a.r(55690)),i=d._(a.r(83250)),j=a.r(6877),k=a.r(20729),l=a.r(6741);a.r(61712);let m=a.r(72195),n=d._(a.r(71331)),o=a.r(2065),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},83810,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(6877),h=a.r(16132),i=f._(a.r(71331));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},61640,(a,b,c)=>{b.exports=a.r(83810)},17606,a=>{"use strict";var b=a.i(12656),c=a.i(61640),d=a.i(85536);function e(a,e){function f({className:f}){return(0,b.jsx)(c.default,{src:a,alt:e,width:24,height:24,className:(0,d.cn)("rounded-sm object-contain",f)})}return f.displayName=`BrandIcon(${e})`,f}function f(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}function g({className:a,...c}){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:(0,d.cn)("h-6 w-6",a),...c,children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("linearGradient",{id:"dev-flask-grad",x1:"6",y1:"22",x2:"18",y2:"8",gradientUnits:"userSpaceOnUse",children:[(0,b.jsx)("stop",{offset:"0%",stopColor:"#8B5CF6"}),(0,b.jsx)("stop",{offset:"50%",stopColor:"#EC4899"}),(0,b.jsx)("stop",{offset:"100%",stopColor:"#F59E0B"})]})}),(0,b.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",fill:"url(#dev-flask-grad)",opacity:"0.9"}),(0,b.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",stroke:"url(#dev-flask-grad)",strokeWidth:"1.5",fill:"none"}),(0,b.jsx)("circle",{cx:"10",cy:"14",r:"1.2",fill:"white",opacity:"0.7"}),(0,b.jsx)("circle",{cx:"13.5",cy:"16",r:"0.8",fill:"white",opacity:"0.5"}),(0,b.jsx)("circle",{cx:"11.5",cy:"17.5",r:"0.6",fill:"white",opacity:"0.4"}),(0,b.jsx)("path",{d:"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z",fill:"#F59E0B"})]})}g.displayName="DevAgentIcon";let h={"claude-code":e("/icons/agents/claude-ai-icon.svg","Claude Code"),"codex-cli":e("/icons/agents/openai.svg","Codex CLI"),"copilot-cli":e("/icons/agents/copilot.svg","Copilot CLI"),cursor:e("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":e("/icons/agents/gemini-cli.jpeg","Gemini CLI"),aider:e("/icons/agents/aider.png","Aider"),continue:e("/icons/agents/continue.jpeg","Continue"),dev:g};function i(a){return a&&a in h?h[a]:f}a.s(["agentTypeLabels",0,{"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"Copilot CLI",cursor:"Cursor","gemini-cli":"Gemini CLI",aider:"Aider",continue:"Continue",dev:"Demo"},"getAgentTypeIcon",()=>i])},83852,a=>{"use strict";let b={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},c={displayName:"",description:""};function d(a){let d=b[a];return d||{...c,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}a.s(["getModelMeta",()=>d])},3410,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],3410)},94132,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",()=>b],94132)},25397,12,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("002b2d6a19af658eb2af3962fffd28f9cbe0a1ca9e",b.callServer,void 0,b.findSourceMapURL,"getAllAgentModels");a.s(["getAllAgentModels",()=>c],25397);let d=(0,b.createServerReference)("60aa8065f4320f3938a41ec820c76c4f847afeddd7",b.callServer,void 0,b.findSourceMapURL,"updateAgentAndModel");a.s(["updateAgentAndModel",()=>d],12)}];
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let g=(0,d.findClosestQuality)(f,a),h=(0,e.getDeploymentId)();return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${g}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},16132,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(12656),g=e._(a.r(96960)),h=d._(a.r(55690)),i=d._(a.r(83250)),j=a.r(6877),k=a.r(20729),l=a.r(6741);a.r(61712);let m=a.r(72195),n=d._(a.r(71331)),o=a.r(2065),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},83810,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(6877),h=a.r(16132),i=f._(a.r(71331));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},61640,(a,b,c)=>{b.exports=a.r(83810)},17606,a=>{"use strict";var b=a.i(12656),c=a.i(61640),d=a.i(85536);function e(a,e){function f({className:f}){return(0,b.jsx)(c.default,{src:a,alt:e,width:24,height:24,className:(0,d.cn)("rounded-sm object-contain",f)})}return f.displayName=`BrandIcon(${e})`,f}function f(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}function g({className:a,...c}){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:(0,d.cn)("h-6 w-6",a),...c,children:[(0,b.jsx)("defs",{children:(0,b.jsxs)("linearGradient",{id:"dev-flask-grad",x1:"6",y1:"22",x2:"18",y2:"8",gradientUnits:"userSpaceOnUse",children:[(0,b.jsx)("stop",{offset:"0%",stopColor:"#8B5CF6"}),(0,b.jsx)("stop",{offset:"50%",stopColor:"#EC4899"}),(0,b.jsx)("stop",{offset:"100%",stopColor:"#F59E0B"})]})}),(0,b.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",fill:"url(#dev-flask-grad)",opacity:"0.9"}),(0,b.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",stroke:"url(#dev-flask-grad)",strokeWidth:"1.5",fill:"none"}),(0,b.jsx)("circle",{cx:"10",cy:"14",r:"1.2",fill:"white",opacity:"0.7"}),(0,b.jsx)("circle",{cx:"13.5",cy:"16",r:"0.8",fill:"white",opacity:"0.5"}),(0,b.jsx)("circle",{cx:"11.5",cy:"17.5",r:"0.6",fill:"white",opacity:"0.4"}),(0,b.jsx)("path",{d:"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z",fill:"#F59E0B"})]})}g.displayName="DevAgentIcon";let h={"claude-code":e("/icons/agents/claude-ai-icon.svg","Claude Code"),"codex-cli":e("/icons/agents/openai.svg","Codex CLI"),"copilot-cli":e("/icons/agents/copilot.svg","Copilot CLI"),cursor:e("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":e("/icons/agents/gemini-cli.jpeg","Gemini CLI"),aider:e("/icons/agents/aider.png","Aider"),continue:e("/icons/agents/continue.jpeg","Continue"),dev:g};function i(a){return a&&a in h?h[a]:f}a.s(["agentTypeLabels",0,{"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"Copilot CLI",cursor:"Cursor","gemini-cli":"Gemini CLI",aider:"Aider",continue:"Continue",dev:"Demo"},"getAgentTypeIcon",()=>i])},83852,a=>{"use strict";let b={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},c={displayName:"",description:""};function d(a){let d=b[a];return d||{...c,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}a.s(["getModelMeta",()=>d])},3410,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],3410)},94132,a=>{"use strict";let b=(0,a.i(25700).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",()=>b],94132)},38814,36186,38537,37143,a=>{"use strict";let b=(0,a.i(25700).default)("circle-minus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);a.s(["CircleMinus",()=>b],38814);var c=a.i(25674);let d=(0,c.createServerReference)("007aeaf6b9cc2895bc45bd2757d8ecc7213e375608",c.callServer,void 0,c.findSourceMapURL,"getAllAgentModels");a.s(["getAllAgentModels",()=>d],36186);let e=(0,c.createServerReference)("00680ea744685a72cf190df7df5209c6ea563a3c45",c.callServer,void 0,c.findSourceMapURL,"checkAllAgentsStatus");a.s(["checkAllAgentsStatus",()=>e],38537);let f=(0,c.createServerReference)("60607a90ee76487584eaa11b18e6bc689d28f743ae",c.callServer,void 0,c.findSourceMapURL,"updateAgentAndModel");a.s(["updateAgentAndModel",()=>f],37143)},61781,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(72016),e=a.i(94132),f=a.i(3410),g=a.i(67273),h=a.i(38814),i=a.i(36186),j=a.i(38537),k=a.i(37143),l=a.i(17606),m=a.i(83852),n=a.i(18948),o=a.i(80646),p=a.i(85536);function q({initialAgentType:a,initialModel:q,agentType:r,model:s,onAgentModelChange:t,onSave:u,saveError:v,saving:w,disabled:x,className:y,mode:z,showInstallStatus:A}){let[B,C]=c.useState(!1),[D,E]=c.useState([]),[F,G]=c.useState(!0),[H,I]=c.useState({}),[J,K]=c.useState(r??a),[L,M]=c.useState(s??q),[N,O]=c.useState(!1),[P,Q]=c.useState(null),[R,S]=c.useState(0),[T,U]=c.useState(null);c.useEffect(()=>{(0,i.getAllAgentModels)().then(E).finally(()=>G(!1)),A&&(0,j.checkAllAgentsStatus)().then(I)},[A]),c.useEffect(()=>{K(r??a)},[r,a]),c.useEffect(()=>{M(s??q)},[s,q]);let V=c.useRef(B);c.useEffect(()=>{let a=V.current;if(V.current=B,a&&!B){let a=setTimeout(()=>{S(0),U(null)},150);return()=>clearTimeout(a)}},[B]);let W=async(a,b)=>{if(C(!1),a===J&&b===L)return;if(Q(null),"override"===z){K(a),M(b),t?.(a,b);return}let c=u??(async(a,b)=>(0,k.updateAgentAndModel)(a,b||null));O(!0);try{let d=await c(a,b);if(d&&"ok"in d&&!d.ok)return void Q(d.error??"Failed to save");K(a),M(b),t?.(a,b)}catch{Q("Failed to save")}finally{O(!1)}},X=v??P,Y=(0,l.getAgentTypeIcon)(J),Z=D.find(a=>a.agentType===J)?.label??J,$=L?(0,m.getModelMeta)(L).displayName||L:null,_=T?D.find(a=>a.agentType===T):null;return(0,b.jsxs)("div",{className:(0,p.cn)("flex flex-col gap-1",y),children:[(0,b.jsxs)(o.Popover,{open:B,onOpenChange:C,children:[(0,b.jsx)(o.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":B,disabled:(x??!1)||F||(w??!1)||N,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,b.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(Y,{className:"h-4 w-4 shrink-0"}),F?"Loading…":(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:Z}),$?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:$})]}):null]})]})})}),(0,b.jsx)(o.PopoverContent,{className:"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,b.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===R?"-50%":"0%"})`,width:"200%"},children:[(0,b.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,b.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),D.map(a=>{let c=(0,l.getAgentTypeIcon)(a.agentType),e=J===a.agentType,i=a.models.length>0;return(0,b.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",e&&"bg-accent/50"),onClick:()=>{i?(U(a.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>S(1))})):W(a.agentType,"")},children:[(0,b.jsx)(c,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{className:"flex-1 text-start",children:a.label}),A&&a.agentType in H?H[a.agentType]?(0,b.jsx)(g.CircleCheck,{className:"h-3 w-3 shrink-0 text-emerald-500"}):(0,b.jsx)(h.CircleMinus,{className:"text-muted-foreground/40 h-3 w-3 shrink-0"}):null,e&&!i?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,i?(0,b.jsx)(f.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},a.agentType)})]}),(0,b.jsx)("div",{className:"w-1/2 shrink-0",children:_?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{S(0),setTimeout(()=>U(null),220)},children:[(0,b.jsx)(e.ChevronLeft,{className:"h-3.5 w-3.5"}),_.label]}),_.models.map(a=>{let c=J===_.agentType&&L===a.id;return(0,b.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors","hover:bg-accent hover:text-accent-foreground",c&&"bg-accent/50"),onClick:()=>W(_.agentType,a.id),children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"text-xs font-medium",children:a.displayName}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:a.description})]}),c?(0,b.jsx)(d.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},a.id)})]}):null})]})})]}),!!X&&(0,b.jsx)("p",{className:"text-destructive text-sm",children:X})]})}a.s(["AgentModelPicker",()=>q])},40617,a=>{"use strict";let b=(0,a.i(25700).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);a.s(["default",()=>b])}];
4
4
 
5
- //# sourceMappingURL=_7d50fed0._.js.map
5
+ //# sourceMappingURL=_946a7fc6._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-blur-svg.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-config.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/get-img-props.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/side-effect.tsx","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/head.tsx","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/image-config-context.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/server/route-modules/app-page/vendored/contexts/router-context.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/find-closest-quality.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-loader.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/image-component.tsx","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/image-external.tsx","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/image.js","../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.tsx","../../../../../../../src/presentation/web/lib/model-metadata.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-right.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevron-left.ts","../../../../../../../src/presentation/web/app/actions/data%3Aff47ad%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A346038%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A8be85f%20%3Ctext/javascript%3E","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-minus.ts","../../../../../../../src/presentation/web/components/features/settings/AgentModelPicker/index.tsx","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/code.ts"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/app/api-reference/components/image#path) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Maximum Redirects](https://nextjs.org/docs/api-reference/next/image#maximumredirects) */\n maximumRedirects: number\n\n /** @see [Maximum Response Body](https://nextjs.org/docs/api-reference/next/image#maximumresponsebody) */\n maximumResponseBody: number\n\n /** @see [Dangerously Allow Local IP](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-local-ip) */\n dangerouslyAllowLocalIP: boolean\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n /**\n * @deprecated Use `remotePatterns` instead to protect your application from malicious users.\n */\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 14400, // 4 hours\n formats: ['image/webp'],\n maximumRedirects: 3,\n maximumResponseBody: 50_000_000, // 50 MB\n dangerouslyAllowLocalIP: false,\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: [75],\n unoptimized: false,\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getDeploymentId } from './deployment-id'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n preload?: boolean\n /**\n * @deprecated Use `preload` prop instead.\n * See https://nextjs.org/docs/app/api-reference/components/image#preload\n */\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n const deploymentId = getDeploymentId()\n if (src.startsWith('/') && !src.startsWith('//') && deploymentId) {\n const sep = src.includes('?') ? '&' : '?'\n src = `${src}${sep}dpl=${deploymentId}`\n }\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n preload = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n preload: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority &&\n !preload &&\n (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (preload && priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n lcpImage.loading === 'lazy' &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n const loadingFinal = isLazy ? 'lazy' : loading\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, loading: loadingFinal, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: loadingFinal,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, preload: preload || priority, placeholder, fill }\n return { props, meta }\n}\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ImageConfigContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].RouterContext\n","import type { NextConfig } from '../../server/config-shared'\n\n/**\n * Find the closest matching `quality` in the list of `config.qualities`\n * @param quality the quality prop passed to the image component\n * @param config the \"images\" configuration from next.config.js\n * @returns the closest matching quality value\n */\nexport function findClosestQuality(\n quality: number | undefined,\n config: NextConfig['images'] | undefined\n): number {\n const q = quality || 75\n if (!config?.qualities?.length) {\n return q\n }\n return config.qualities.reduce(\n (prev, cur) => (Math.abs(cur - q) < Math.abs(prev - q) ? cur : prev),\n 0\n )\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\nimport { findClosestQuality } from './find-closest-quality'\nimport { getDeploymentId } from './deployment-id'\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n let deploymentId = getDeploymentId()\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/') && deploymentId ? `&dpl=${deploymentId}` : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject<OnLoad | undefined>\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject<OnLoad | undefined>,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record<string, string | undefined> {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef<HTMLImageElement | null, ImageElementProps>(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n <img\n {...rest}\n {...getDynamicProps(fetchPriority)}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading={loading}\n width={width}\n height={height}\n decoding={decoding}\n data-nimg={fill ? 'fill' : '1'}\n className={className}\n style={style}\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes={sizes}\n srcSet={srcSet}\n src={src}\n ref={ref}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...opts}\n />\n </Head>\n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef<HTMLImageElement | null, ImageProps>(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities,\n // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n <ImageElement\n {...imgAttributes}\n unoptimized={imgMeta.unoptimized}\n placeholder={imgMeta.placeholder}\n fill={imgMeta.fill}\n onLoadRef={onLoadRef}\n onLoadingCompleteRef={onLoadingCompleteRef}\n setBlurComplete={setBlurComplete}\n setShowAltText={setShowAltText}\n sizesInput={props.sizes}\n ref={forwardedRef}\n />\n }\n {imgMeta.preload ? (\n <ImagePreload\n isAppRouter={isAppRouter}\n imgAttributes={imgAttributes}\n />\n ) : null}\n </>\n )\n }\n)\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import type { ComponentType, SVGProps } from 'react';\nimport Image from 'next/image';\nimport { cn } from '@/lib/utils';\n\n/** Agent type values mirroring the TypeSpec AgentType enum. */\nexport type AgentTypeValue =\n | 'claude-code'\n | 'codex-cli'\n | 'copilot-cli'\n | 'cursor'\n | 'gemini-cli'\n | 'aider'\n | 'continue'\n | 'dev';\n\ntype IconProps = SVGProps<SVGSVGElement> & { className?: string };\n\n/** Create a stable image-based icon component for a brand. */\nfunction createBrandIcon(src: string, alt: string): ComponentType<IconProps> {\n function BrandIcon({ className }: IconProps) {\n return (\n <Image\n src={src}\n alt={alt}\n width={24}\n height={24}\n className={cn('rounded-sm object-contain', className)}\n />\n );\n }\n BrandIcon.displayName = `BrandIcon(${alt})`;\n return BrandIcon;\n}\n\n/** Fallback icon when agent type is unknown or undefined. */\nexport function DefaultAgentIcon(props: IconProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" fill=\"currentColor\" />\n </svg>\n );\n}\n\n/** Colorful flask icon for the Demo Executor agent. */\nfunction DevAgentIcon({ className, ...props }: IconProps) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={cn('h-6 w-6', className)}\n {...(props as object)}\n >\n <defs>\n <linearGradient\n id=\"dev-flask-grad\"\n x1=\"6\"\n y1=\"22\"\n x2=\"18\"\n y2=\"8\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0%\" stopColor=\"#8B5CF6\" />\n <stop offset=\"50%\" stopColor=\"#EC4899\" />\n <stop offset=\"100%\" stopColor=\"#F59E0B\" />\n </linearGradient>\n </defs>\n {/* Flask body */}\n <path\n d=\"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z\"\n fill=\"url(#dev-flask-grad)\"\n opacity=\"0.9\"\n />\n {/* Flask neck outline */}\n <path\n d=\"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z\"\n stroke=\"url(#dev-flask-grad)\"\n strokeWidth=\"1.5\"\n fill=\"none\"\n />\n {/* Bubbles */}\n <circle cx=\"10\" cy=\"14\" r=\"1.2\" fill=\"white\" opacity=\"0.7\" />\n <circle cx=\"13.5\" cy=\"16\" r=\"0.8\" fill=\"white\" opacity=\"0.5\" />\n <circle cx=\"11.5\" cy=\"17.5\" r=\"0.6\" fill=\"white\" opacity=\"0.4\" />\n {/* Spark */}\n <path d=\"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z\" fill=\"#F59E0B\" />\n </svg>\n );\n}\nDevAgentIcon.displayName = 'DevAgentIcon';\n\nconst agentTypeIconMap: Record<AgentTypeValue, ComponentType<IconProps>> = {\n 'claude-code': createBrandIcon('/icons/agents/claude-ai-icon.svg', 'Claude Code'),\n 'codex-cli': createBrandIcon('/icons/agents/openai.svg', 'Codex CLI'),\n 'copilot-cli': createBrandIcon('/icons/agents/copilot.svg', 'Copilot CLI'),\n cursor: createBrandIcon('/icons/agents/cursor.jpeg', 'Cursor'),\n 'gemini-cli': createBrandIcon('/icons/agents/gemini-cli.jpeg', 'Gemini CLI'),\n aider: createBrandIcon('/icons/agents/aider.png', 'Aider'),\n continue: createBrandIcon('/icons/agents/continue.jpeg', 'Continue'),\n dev: DevAgentIcon,\n};\n\n/** Human-readable labels for agent types. */\nexport const agentTypeLabels: Record<AgentTypeValue, string> = {\n 'claude-code': 'Claude Code',\n 'codex-cli': 'Codex CLI',\n 'copilot-cli': 'Copilot CLI',\n cursor: 'Cursor',\n 'gemini-cli': 'Gemini CLI',\n aider: 'Aider',\n continue: 'Continue',\n dev: 'Demo',\n};\n\n/** Resolve an agent type string to its corresponding icon component. */\nexport function getAgentTypeIcon(agentType?: string): ComponentType<IconProps> {\n if (agentType && agentType in agentTypeIconMap) {\n return agentTypeIconMap[agentType as AgentTypeValue];\n }\n return DefaultAgentIcon;\n}\n","export interface ModelMeta {\n displayName: string;\n description: string;\n}\n\n/**\n * Presentation-layer metadata for known LLM model identifiers.\n * Maps raw model IDs to human-friendly display names and short descriptions.\n */\nconst MODEL_METADATA: Record<string, ModelMeta> = {\n // Claude models\n 'claude-opus-4-6': { displayName: 'Opus 4.6', description: 'Most capable, complex tasks' },\n 'claude-sonnet-4-6': { displayName: 'Sonnet 4.6', description: 'Fast & balanced' },\n 'claude-haiku-4-5': { displayName: 'Haiku 4.5', description: 'Lightweight & quick' },\n\n // Gemini models\n 'gemini-3.1-pro': { displayName: 'Gemini 3.1 Pro', description: 'Advanced reasoning' },\n 'gemini-3-flash': { displayName: 'Gemini 3 Flash', description: 'Ultra-fast responses' },\n 'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', description: 'Reliable workhorse' },\n 'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', description: 'Speed-optimized' },\n\n // OpenAI models\n 'gpt-5.4-high': { displayName: 'GPT-5.4', description: 'Latest reasoning model' },\n 'gpt-5.2': { displayName: 'GPT-5.2', description: 'Flagship model' },\n 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', description: 'Code specialist' },\n\n // Other\n 'composer-1.5': { displayName: 'Composer 1.5', description: 'Multi-file editing' },\n 'grok-code': { displayName: 'Grok Code', description: 'xAI code model' },\n\n // Demo / fun models\n 'gpt-8': { displayName: 'GPT-8', description: 'Writes code before you think it' },\n 'opus-7': { displayName: 'Opus 7', description: 'Achieved consciousness, ships on time' },\n};\n\nconst FALLBACK: ModelMeta = { displayName: '', description: '' };\n\nexport function getModelMeta(modelId: string): ModelMeta {\n const meta = MODEL_METADATA[modelId];\n if (meta) return meta;\n // Fallback: prettify the raw ID\n return {\n ...FALLBACK,\n displayName: modelId\n .replace(/^claude-/, '')\n .replace(/^gemini-/, 'Gemini ')\n .replace(/^gpt-/, 'GPT-')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase()),\n };\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","/* __next_internal_action_entry_do_not_use__ [{\"007aeaf6b9cc2895bc45bd2757d8ecc7213e375608\":\"getAllAgentModels\"},\"src/presentation/web/app/actions/get-all-agent-models.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"007aeaf6b9cc2895bc45bd2757d8ecc7213e375608\",callServer,void 0,findSourceMapURL,\"getAllAgentModels\");export{$$RSC_SERVER_ACTION_0 as getAllAgentModels};","/* __next_internal_action_entry_do_not_use__ [{\"00680ea744685a72cf190df7df5209c6ea563a3c45\":\"checkAllAgentsStatus\"},\"src/presentation/web/app/actions/check-all-agents-status.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"00680ea744685a72cf190df7df5209c6ea563a3c45\",callServer,void 0,findSourceMapURL,\"checkAllAgentsStatus\");export{$$RSC_SERVER_ACTION_0 as checkAllAgentsStatus};","/* __next_internal_action_entry_do_not_use__ [{\"60607a90ee76487584eaa11b18e6bc689d28f743ae\":\"updateAgentAndModel\"},\"src/presentation/web/app/actions/update-agent-and-model.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"60607a90ee76487584eaa11b18e6bc689d28f743ae\",callServer,void 0,findSourceMapURL,\"updateAgentAndModel\");export{$$RSC_SERVER_ACTION_0 as updateAgentAndModel};","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n];\n\n/**\n * @component @name CircleMinus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxMmg4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/circle-minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleMinus = createLucideIcon('circle-minus', __iconNode);\n\nexport default CircleMinus;\n","'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronLeft, ChevronRight, CircleCheck, CircleMinus } from 'lucide-react';\nimport { getAllAgentModels } from '@/app/actions/get-all-agent-models';\nimport type { AgentModelGroup } from '@/app/actions/get-all-agent-models';\nimport { checkAllAgentsStatus } from '@/app/actions/check-all-agents-status';\nimport type { AgentInstallMap } from '@/app/actions/check-all-agents-status';\nimport { updateAgentAndModel } from '@/app/actions/update-agent-and-model';\nimport { getAgentTypeIcon } from '@/components/common/feature-node/agent-type-icons';\nimport { getModelMeta } from '@/lib/model-metadata';\nimport { Button } from '@/components/ui/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { cn } from '@/lib/utils';\n\nexport interface AgentModelPickerProps {\n initialAgentType: string;\n initialModel: string;\n agentType?: string;\n model?: string;\n onAgentModelChange?: (agentType: string, model: string) => void;\n onSave?: (agentType: string, model: string) => Promise<AgentModelPickerSaveResult | void>;\n saveError?: string | null;\n saving?: boolean;\n disabled?: boolean;\n className?: string;\n /** 'settings' persists to DB; 'override' only calls onAgentModelChange */\n mode: 'settings' | 'override';\n /** Show installed/not-installed badges next to agent names */\n showInstallStatus?: boolean;\n}\n\nexport interface AgentModelPickerSaveResult {\n ok: boolean;\n error?: string;\n}\n\nexport function AgentModelPicker({\n initialAgentType,\n initialModel,\n agentType: controlledAgentType,\n model: controlledModel,\n onAgentModelChange,\n onSave,\n saveError,\n saving,\n disabled,\n className,\n mode,\n showInstallStatus,\n}: AgentModelPickerProps) {\n const [open, setOpen] = React.useState(false);\n const [groups, setGroups] = React.useState<AgentModelGroup[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [installMap, setInstallMap] = React.useState<AgentInstallMap>({});\n const [agentType, setAgentType] = React.useState(controlledAgentType ?? initialAgentType);\n const [model, setModel] = React.useState(controlledModel ?? initialModel);\n const [internalSaving, setInternalSaving] = React.useState(false);\n const [internalError, setInternalError] = React.useState<string | null>(null);\n\n // 0 = agent list visible, 1 = model list visible\n const [level, setLevel] = React.useState(0);\n // Which agent's models to show (kept separate from level for animation)\n const [drillAgent, setDrillAgent] = React.useState<string | null>(null);\n\n React.useEffect(() => {\n getAllAgentModels()\n .then(setGroups)\n .finally(() => setLoading(false));\n if (showInstallStatus) {\n checkAllAgentsStatus().then(setInstallMap);\n }\n }, [showInstallStatus]);\n\n React.useEffect(() => {\n setAgentType(controlledAgentType ?? initialAgentType);\n }, [controlledAgentType, initialAgentType]);\n\n React.useEffect(() => {\n setModel(controlledModel ?? initialModel);\n }, [controlledModel, initialModel]);\n\n // Reset drill-down when popover transitions from open → closed (not on initial mount)\n const prevOpenRef = React.useRef(open);\n React.useEffect(() => {\n const wasOpen = prevOpenRef.current;\n prevOpenRef.current = open;\n if (wasOpen && !open) {\n const t = setTimeout(() => {\n setLevel(0);\n setDrillAgent(null);\n }, 150);\n return () => clearTimeout(t);\n }\n }, [open]);\n\n const drillInto = (agent: string) => {\n setDrillAgent(agent);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => setLevel(1));\n });\n };\n\n const drillBack = () => {\n setLevel(0);\n setTimeout(() => setDrillAgent(null), 220);\n };\n\n const handleSelect = async (newAgentType: string, newModel: string) => {\n setOpen(false);\n\n if (newAgentType === agentType && newModel === model) return;\n\n setInternalError(null);\n\n if (mode === 'override') {\n setAgentType(newAgentType);\n setModel(newModel);\n onAgentModelChange?.(newAgentType, newModel);\n return;\n }\n\n const persistSelection =\n onSave ??\n (async (nextAgentType: string, nextModel: string) =>\n updateAgentAndModel(nextAgentType, nextModel || null));\n\n setInternalSaving(true);\n try {\n const result = await persistSelection(newAgentType, newModel);\n if (result && 'ok' in result && !result.ok) {\n setInternalError(result.error ?? 'Failed to save');\n return;\n }\n setAgentType(newAgentType);\n setModel(newModel);\n onAgentModelChange?.(newAgentType, newModel);\n } catch {\n setInternalError('Failed to save');\n } finally {\n setInternalSaving(false);\n }\n };\n\n const isDisabled = (disabled ?? false) || loading || (saving ?? false) || internalSaving;\n const error = saveError ?? internalError;\n\n const AgentIcon = getAgentTypeIcon(agentType);\n const agentLabel = groups.find((g) => g.agentType === agentType)?.label ?? agentType;\n const modelName = model ? getModelMeta(model).displayName || model : null;\n\n const activeGroup = drillAgent ? groups.find((g) => g.agentType === drillAgent) : null;\n\n return (\n <div className={cn('flex flex-col gap-1', className)}>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={isDisabled}\n className=\"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30\"\n >\n <span className=\"flex items-center gap-2 truncate\">\n <AgentIcon className=\"h-4 w-4 shrink-0\" />\n {loading ? (\n 'Loading…'\n ) : (\n <span className=\"flex items-center gap-1\">\n <span className=\"text-muted-foreground text-xs\">{agentLabel}</span>\n {modelName ? (\n <>\n <span className=\"text-muted-foreground/50 text-xs\">·</span>\n <span className=\"text-xs font-medium\">{modelName}</span>\n </>\n ) : null}\n </span>\n )}\n </span>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"z-[70] w-(--radix-popover-trigger-width) overflow-hidden p-0\"\n align=\"start\"\n >\n {/* Sliding container — both panels side by side, translateX controlled by level */}\n <div\n className=\"flex transition-transform duration-200 ease-in-out\"\n style={{ transform: `translateX(${level === 1 ? '-50%' : '0%'})`, width: '200%' }}\n >\n {/* ── Level 1: Agent list ── */}\n <div className=\"w-1/2 shrink-0\">\n <div className=\"text-muted-foreground border-b px-3 py-2 text-xs font-medium\">\n Select agent\n </div>\n {groups.map((group) => {\n const GroupIcon = getAgentTypeIcon(group.agentType);\n const isActive = agentType === group.agentType;\n const hasModels = group.models.length > 0;\n\n return (\n <button\n key={group.agentType}\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors',\n 'hover:bg-accent hover:text-accent-foreground',\n isActive && 'bg-accent/50'\n )}\n onClick={() => {\n if (hasModels) {\n drillInto(group.agentType);\n } else {\n handleSelect(group.agentType, '');\n }\n }}\n >\n <GroupIcon className=\"h-4 w-4 shrink-0\" />\n <span className=\"flex-1 text-start\">{group.label}</span>\n {showInstallStatus && group.agentType in installMap ? (\n installMap[group.agentType] ? (\n <CircleCheck className=\"h-3 w-3 shrink-0 text-emerald-500\" />\n ) : (\n <CircleMinus className=\"text-muted-foreground/40 h-3 w-3 shrink-0\" />\n )\n ) : null}\n {isActive && !hasModels ? (\n <Check className=\"text-primary h-3.5 w-3.5 shrink-0\" />\n ) : null}\n {hasModels ? (\n <ChevronRight className=\"text-muted-foreground h-3.5 w-3.5 shrink-0\" />\n ) : null}\n </button>\n );\n })}\n </div>\n\n {/* ── Level 2: Model list for selected agent ── */}\n <div className=\"w-1/2 shrink-0\">\n {activeGroup ? (\n <>\n {/* Back header */}\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors\"\n onClick={drillBack}\n >\n <ChevronLeft className=\"h-3.5 w-3.5\" />\n {activeGroup.label}\n </button>\n\n {/* Model items */}\n {activeGroup.models.map((m) => {\n const isSelected = agentType === activeGroup.agentType && model === m.id;\n return (\n <button\n key={m.id}\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-start transition-colors',\n 'hover:bg-accent hover:text-accent-foreground',\n isSelected && 'bg-accent/50'\n )}\n onClick={() => handleSelect(activeGroup.agentType, m.id)}\n >\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"text-xs font-medium\">{m.displayName}</span>\n <span className=\"text-muted-foreground text-xs\">{m.description}</span>\n </div>\n {isSelected ? (\n <Check className=\"text-primary h-3.5 w-3.5 shrink-0\" />\n ) : null}\n </button>\n );\n })}\n </>\n ) : null}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n {Boolean(error) && <p className=\"text-destructive text-sm\">{error}</p>}\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm16 18 6-6-6-6', key: 'eg8j8' }],\n ['path', { d: 'm8 6-6 6 6 6', key: 'ppft3o' }],\n];\n\n/**\n * @component @name Code\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJtOCA2LTYgNiA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/code\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Code = createLucideIcon('code', __iconNode);\n\nexport default Code;\n"],"names":["getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","std","svgWidth","svgHeight","viewBox","preserveAspectRatio","VALID_LOADERS","imageConfigDefault","deviceSizes","imageSizes","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","maximumRedirects","maximumResponseBody","dangerouslyAllowLocalIP","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","undefined","remotePatterns","qualities","unoptimized","getImgProps","VALID_LOADING_VALUES","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","src","default","isStaticImageData","isStaticImport","allImgs","Map","perfObserver","getInt","x","Number","isFinite","NaN","test","parseInt","getWidths","allSizes","width","sizes","viewportWidthRe","percentSizes","match","exec","push","length","smallestRatio","Math","min","widths","filter","s","kind","Set","map","w","find","p","generateImgAttrs","config","quality","deploymentId","getDeploymentId","startsWith","sep","includes","srcSet","last","i","join","priority","preload","loading","className","height","fill","style","overrideSrc","onLoad","onLoadingComplete","placeholder","fetchPriority","decoding","layout","objectPosition","lazyBoundary","lazyRoot","rest","_state","imgConf","showAltText","blurComplete","defaultLoader","c","sort","a","b","Error","isDefaultLoader","customImageLoader","obj","_","opts","layoutToStyle","intrinsic","maxWidth","responsive","layoutToSizes","layoutStyle","layoutSizes","staticSrc","staticImageData","JSON","stringify","ratio","round","isLazy","split","endsWith","qualityInt","process","env","NODE_ENV","output","position","isNaN","String","warnOnce","VALID_BLUR_EXT","urlStr","url","URL","err","pathname","search","legacyKey","legacyValue","Object","entries","window","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","get","observe","type","buffered","console","error","imgStyle","assign","left","top","right","bottom","color","backgroundImage","backgroundSize","placeholderStyle","backgroundPosition","backgroundRepeat","imgAttributes","loadingFinal","fullUrl","e","location","href","set","props","meta","SideEffect","isServer","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","Boolean","updateHead","add","children","delete","_pendingUpdate","module","exports","require","vendored","HeadManagerContext","defaultHead","head","charSet","name","content","onlyReactElement","list","child","React","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","has","len","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","srcMessage","cloneElement","Head","useContext","Effect","ImageConfigContext","RouterContext","findClosestQuality","q","prev","cur","abs","missingValues","NEXT_RUNTIME","hasLocalMatch","parsedSrc","hasRemoteMatch","hostname","encodeURIComponent","__next_img_default","Image","configEnv","__NEXT_IMAGE_OPTS","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","onLoadRef","onLoadingCompleteRef","setBlurComplete","sizesInput","decode","Promise","resolve","catch","then","parentElement","isConnected","current","event","Event","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","origSrc","searchParams","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","getComputedStyle","valid","heightModified","toString","widthModified","getDynamicProps","use","fetchpriority","ImageElement","forwardRef","setShowAltText","onError","forwardedRef","ownRef","useCallback","complete","ref","useMergedRef","data-nimg","ImagePreload","isAppRouter","as","imageSrcSet","crossOrigin","referrerPolicy","ReactDOM","link","rel","pagesRouter","configContext","useMemo","useRef","useState","imgMeta","getImageProps","imgProps"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,16,17,21]}
@@ -0,0 +1,3 @@
1
+ module.exports=[50488,92548,81927,98530,a=>{"use strict";var b=a.i(25700);let c=(0,b.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);a.s(["Code2",()=>c],50488);let d=(0,b.default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);a.s(["GitCommitHorizontal",()=>d],92548);var e=a.i(25674);let f=(0,e.createServerReference)("405edeb960dc46ad164d1ad5a5c859330a16785fbc",e.callServer,void 0,e.findSourceMapURL,"openIde");a.s(["openIde",()=>f],81927);let g=(0,e.createServerReference)("406ba8e570318b7df7304afec0382a0dd3a14919ac",e.callServer,void 0,e.findSourceMapURL,"openShell");a.s(["openShell",()=>g],98530)},53170,a=>{"use strict";let b=(0,a.i(25700).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);a.s(["GitBranch",()=>b],53170)},71238,a=>{"use strict";let b=(0,a.i(25700).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",()=>b],71238)},63698,a=>{"use strict";let b=(0,a.i(25700).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],63698)},50490,a=>{"use strict";let b=(0,a.i(25700).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],50490)},5698,a=>{"use strict";let b=(0,a.i(25700).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",()=>b],5698)},66691,45751,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(25674);let e=(0,d.createServerReference)("405fb0a316223114f67e74678e3323455baf2f5951",d.callServer,void 0,d.findSourceMapURL,"deployFeature"),f=(0,d.createServerReference)("40c3f89549397ef3aa548e0b969e7385f2767270c4",d.callServer,void 0,d.findSourceMapURL,"deployRepository"),g=(0,d.createServerReference)("40d2564dfe8a3d1fee0f189f0adbe0a6c43119ca42",d.callServer,void 0,d.findSourceMapURL,"deployApplication"),h=(0,d.createServerReference)("404d0c03b185e02e07b3c3b667d728aa607c56ba1d",d.callServer,void 0,d.findSourceMapURL,"stopDeployment"),i=(0,d.createServerReference)("40284db3fb2eccefa3ece84cb43f44888e559f52a6",d.callServer,void 0,d.findSourceMapURL,"getDeploymentStatus");var j=a.i(87139);let k={status:null,url:null,targetType:null,hydrated:!1,deployLoading:!1,stopLoading:!1,deployError:null};class l{entries=new Map;listeners=new Map;globalListeners=new Set;hydrate(a){let b=new Set;for(let c of a)b.add(c.targetId),this.update(c.targetId,{status:c.state,url:c.url,targetType:c.targetType,hydrated:!0});for(let[a,c]of this.entries)!b.has(a)&&c.hydrated&&null!==c.status?this.update(a,{status:null,url:null}):b.has(a)||c.hydrated||this.update(a,{hydrated:!0})}getEntry(a){return this.entries.get(a)??k}update(a,b){let c={...this.entries.get(a)??k,...b};this.entries.set(a,c),this.notify(a)}setStatus(a,b){null===b?this.update(a,{status:null,url:null,hydrated:!0}):this.update(a,{status:b.state,url:b.url,hydrated:!0})}subscribe(a,b){let c=this.listeners.get(a);return c||(c=new Set,this.listeners.set(a,c)),c.add(b),()=>{c?.delete(b),c?.size===0&&this.listeners.delete(a)}}subscribeAll(a){return this.globalListeners.add(a),()=>{this.globalListeners.delete(a)}}notify(a){let b=this.listeners.get(a);if(b)for(let a of b)a();for(let a of this.globalListeners)a()}}a.s(["DeploymentStatusStore",()=>l,"EMPTY_ENTRY",0,k],45751);let m=(0,j.createLogger)("[DeploymentStatusProvider]"),n=new Set(["Booting","Ready"]),o=(0,c.createContext)(null);function p({initialDeployments:a,children:d}){let j=(0,c.useRef)(null);j.current||(j.current=new l,j.current.hydrate(a));let k=j.current;(0,c.useEffect)(()=>{k.hydrate(a)},[a,k]);let p=(0,c.useRef)(new Map),q=(0,c.useCallback)(a=>{let b=p.current.get(a);b&&(clearInterval(b),p.current.delete(a))},[]),r=(0,c.useCallback)(a=>{if(p.current.has(a))return;let b=setInterval(async()=>{let b;try{b=await i(a)}catch(b){m.warn(`poll failed for "${a}"`,b),k.setStatus(a,null),q(a);return}if(!b||"Stopped"===b.state){k.setStatus(a,null),q(a);return}k.setStatus(a,b)},3e3);p.current.set(a,b)},[k,q]);(0,c.useEffect)(()=>{let a=p.current,b=k.subscribeAll(()=>{for(let[b]of a){let a=k.getEntry(b);a.status&&n.has(a.status)||q(b)}});return()=>{for(let[,c]of(b(),a))clearInterval(c);a.clear()}},[k,q]);let s=(0,c.useCallback)(a=>{!a||k.getEntry(a).hydrated||(k.update(a,{hydrated:!0}),(async()=>{try{let b=await i(a);k.setStatus(a,b),b&&n.has(b.state)&&r(a)}catch(b){m.warn(`ensureHydrated failed for "${a}"`,b)}})())},[k,r]),t=(0,c.useCallback)(async a=>{k.update(a.targetId,{deployLoading:!0,deployError:null});try{let b="feature"===a.targetType?await e(a.targetId):"application"===a.targetType?await g(a.targetId):await f(a.repositoryPath);if(!b.success)return void k.update(a.targetId,{deployLoading:!1,deployError:b.error??"An unexpected error occurred"});k.update(a.targetId,{deployLoading:!1,status:b.state??null,url:null,hydrated:!0,targetType:a.targetType}),r(a.targetId)}catch(c){let b=c instanceof Error?c.message:"An unexpected error occurred";k.update(a.targetId,{deployLoading:!1,deployError:b})}},[k,r]),u=(0,c.useCallback)(async a=>{if(a){k.update(a,{stopLoading:!0});try{(await h(a)).success?(q(a),k.update(a,{stopLoading:!1,status:null,url:null})):k.update(a,{stopLoading:!1})}catch(b){m.warn("stop error (non-critical)",b),k.update(a,{stopLoading:!1})}}},[k,q]),v=(0,c.useMemo)(()=>({store:k,deploy:t,stop:u,ensureHydrated:s}),[k,t,u,s]);return(0,b.jsx)(o.Provider,{value:v,children:d})}function q(){let a=(0,c.useContext)(o);if(!a)throw Error("useDeploymentStatusContext must be used within a <DeploymentStatusProvider>");return a}function r(){let a=(0,c.useContext)(o);return a||s}let s={store:new l,deploy:async()=>{},stop:async()=>{},ensureHydrated:()=>{}};a.s(["DeploymentStatusProvider",()=>p,"useDeploymentStatusContext",()=>q,"useDeploymentStatusContextOptional",()=>r],66691)},18662,a=>{"use strict";var b=a.i(96960),c=a.i(66691);function d(){}function e(a){let{store:e,deploy:f,stop:g,ensureHydrated:h}=(0,c.useDeploymentStatusContextOptional)(),i=a?.targetId??"",j=(0,b.useCallback)(a=>i?e.subscribe(i,a):d,[e,i]),k=(0,b.useCallback)(()=>i?e.getEntry(i):e.getEntry(""),[e,i]),l=(0,b.useSyncExternalStore)(j,k,k);return(0,b.useEffect)(()=>{i&&h(i)},[i,h]),{deploy:(0,b.useCallback)(async()=>{a&&await f(a)},[f,a]),stop:(0,b.useCallback)(async()=>{i&&await g(i)},[g,i]),deployLoading:l.deployLoading,stopLoading:l.stopLoading,deployError:l.deployError,status:l.status,url:l.url}}a.s(["useDeployAction",()=>e])},78454,a=>{"use strict";a.i(24255),a.s([])},33511,a=>{"use strict";let b=(0,a.i(25700).default)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);a.s(["Archive",()=>b],33511)},85937,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("40b048a02e06222a81b71c2cff7879941a8b6502cb",b.callServer,void 0,b.findSourceMapURL,"openFolder");a.s(["openFolder",()=>c])},55628,a=>{"use strict";var b=a.i(96960),c=a.i(81927),d=a.i(98530),e=a.i(85937),f=a.i(25674);let g=(0,f.createServerReference)("40a4fcd98a7e6d3077a082cb24020e8d9053c5d35e",f.callServer,void 0,f.findSourceMapURL,"syncRepository");function h(a){let[f,h]=(0,b.useState)(!1),[i,j]=(0,b.useState)(!1),[k,l]=(0,b.useState)(!1),[m,n]=(0,b.useState)(!1),[o,p]=(0,b.useState)(null),[q,r]=(0,b.useState)(null),[s,t]=(0,b.useState)(null),[u,v]=(0,b.useState)(null),w=(0,b.useRef)(null),x=(0,b.useRef)(null),y=(0,b.useRef)(null),z=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{w.current&&clearTimeout(w.current),x.current&&clearTimeout(x.current),y.current&&clearTimeout(y.current),z.current&&clearTimeout(z.current)},[]);let A=(0,b.useCallback)(async(b,c,d,e,f)=>{if(a&&!f){e.current&&clearTimeout(e.current),c(!0),d(null);try{let a=await b();if(!a.success){let b=a.error??"An unexpected error occurred";d(b),e.current=setTimeout(()=>d(null),5e3)}}catch(a){d(a instanceof Error?a.message:"An unexpected error occurred"),e.current=setTimeout(()=>d(null),5e3)}finally{c(!1)}}},[a]);return{openInIde:(0,b.useCallback)(()=>A(()=>(0,c.openIde)({repositoryPath:a.repositoryPath}),h,p,w,f),[A,f,a]),openInShell:(0,b.useCallback)(()=>A(()=>(0,d.openShell)({repositoryPath:a.repositoryPath}),j,r,x,i),[A,i,a]),openFolder:(0,b.useCallback)(()=>A(()=>(0,e.openFolder)(a.repositoryPath),l,t,y,k),[A,k,a]),syncMain:(0,b.useCallback)(()=>A(()=>g(a.repositoryId??""),n,v,z,m),[A,m,a]),ideLoading:f,shellLoading:i,folderLoading:k,syncLoading:m,ideError:o,shellError:q,folderError:s,syncError:u}}a.s(["useRepositoryActions",()=>h],55628)}];
2
+
3
+ //# sourceMappingURL=_948d3cc6._.js.map