synapse-orch-ai 0.1.0

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 (1446) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +501 -0
  3. package/backend/core/__init__.py +0 -0
  4. package/backend/core/agent_logger.py +195 -0
  5. package/backend/core/builder_tools.py +1482 -0
  6. package/backend/core/compaction.py +188 -0
  7. package/backend/core/config.py +89 -0
  8. package/backend/core/json_store.py +50 -0
  9. package/backend/core/llm_providers.py +2088 -0
  10. package/backend/core/mcp_client.py +548 -0
  11. package/backend/core/mcp_oauth_state.py +37 -0
  12. package/backend/core/memory.py +714 -0
  13. package/backend/core/messaging/__init__.py +5 -0
  14. package/backend/core/messaging/adapters/__init__.py +1 -0
  15. package/backend/core/messaging/adapters/discord.py +112 -0
  16. package/backend/core/messaging/adapters/slack.py +123 -0
  17. package/backend/core/messaging/adapters/teams.py +102 -0
  18. package/backend/core/messaging/adapters/telegram.py +118 -0
  19. package/backend/core/messaging/adapters/whatsapp.py +216 -0
  20. package/backend/core/messaging/base.py +209 -0
  21. package/backend/core/messaging/manager.py +291 -0
  22. package/backend/core/messaging/markdown.py +171 -0
  23. package/backend/core/messaging/store.py +95 -0
  24. package/backend/core/models.py +154 -0
  25. package/backend/core/models_orchestration.py +123 -0
  26. package/backend/core/models_schedule.py +56 -0
  27. package/backend/core/native_builder/__init__.py +60 -0
  28. package/backend/core/native_builder/agents/agent_creator.json +20 -0
  29. package/backend/core/native_builder/agents/orchestrator_builder.json +15 -0
  30. package/backend/core/native_builder/agents/requirements_analyst.json +21 -0
  31. package/backend/core/native_builder/agents/saver_create.json +28 -0
  32. package/backend/core/native_builder/agents/saver_update.json +29 -0
  33. package/backend/core/native_builder/orchestration.json +515 -0
  34. package/backend/core/native_builder/seed.py +135 -0
  35. package/backend/core/orchestration/__init__.py +5 -0
  36. package/backend/core/orchestration/context.py +630 -0
  37. package/backend/core/orchestration/engine.py +489 -0
  38. package/backend/core/orchestration/logger.py +278 -0
  39. package/backend/core/orchestration/state.py +79 -0
  40. package/backend/core/orchestration/steps.py +1017 -0
  41. package/backend/core/orchestration/summarizer.py +106 -0
  42. package/backend/core/personal_details.py +60 -0
  43. package/backend/core/profiling.py +160 -0
  44. package/backend/core/react_engine.py +1017 -0
  45. package/backend/core/routes/__init__.py +4 -0
  46. package/backend/core/routes/agents.py +303 -0
  47. package/backend/core/routes/auth.py +38 -0
  48. package/backend/core/routes/builder.py +491 -0
  49. package/backend/core/routes/chat.py +151 -0
  50. package/backend/core/routes/data.py +800 -0
  51. package/backend/core/routes/db_configs.py +105 -0
  52. package/backend/core/routes/import_export.py +370 -0
  53. package/backend/core/routes/logs.py +93 -0
  54. package/backend/core/routes/messaging.py +204 -0
  55. package/backend/core/routes/n8n.py +95 -0
  56. package/backend/core/routes/orchestrations.py +364 -0
  57. package/backend/core/routes/profiling.py +83 -0
  58. package/backend/core/routes/repos.py +212 -0
  59. package/backend/core/routes/schedules.py +158 -0
  60. package/backend/core/routes/sessions.py +48 -0
  61. package/backend/core/routes/settings.py +362 -0
  62. package/backend/core/routes/tools.py +416 -0
  63. package/backend/core/routes/usage.py +63 -0
  64. package/backend/core/routes/vault.py +254 -0
  65. package/backend/core/schedule_logger.py +226 -0
  66. package/backend/core/scheduler.py +376 -0
  67. package/backend/core/server.py +658 -0
  68. package/backend/core/session.py +206 -0
  69. package/backend/core/tools.py +344 -0
  70. package/backend/core/usage_tracker.py +417 -0
  71. package/backend/core/vault.py +265 -0
  72. package/backend/main.py +26 -0
  73. package/backend/requirements.txt +24 -0
  74. package/backend/services/__init__.py +0 -0
  75. package/backend/services/code_indexer.py +488 -0
  76. package/backend/services/google.py +343 -0
  77. package/backend/services/synthetic_data.py +140 -0
  78. package/backend/tools/__init__.py +0 -0
  79. package/backend/tools/bash.py +244 -0
  80. package/backend/tools/code_indexer.py +110 -0
  81. package/backend/tools/code_search.py +537 -0
  82. package/backend/tools/collect_data.py +134 -0
  83. package/backend/tools/pdf_parser.py +103 -0
  84. package/backend/tools/personal_details.py +52 -0
  85. package/backend/tools/sandbox.Dockerfile +24 -0
  86. package/backend/tools/sandbox.py +586 -0
  87. package/backend/tools/sql_agent.py +221 -0
  88. package/backend/tools/time.py +283 -0
  89. package/backend/tools/web_scraper.py +765 -0
  90. package/backend/tools/xlsx_parser.py +79 -0
  91. package/bin/synapse +16 -0
  92. package/bin/synapse.bat +36 -0
  93. package/bin/synapse.js +247 -0
  94. package/frontend-build/.next/BUILD_ID +1 -0
  95. package/frontend-build/.next/app-path-routes-manifest.json +22 -0
  96. package/frontend-build/.next/build-manifest.json +21 -0
  97. package/frontend-build/.next/package.json +1 -0
  98. package/frontend-build/.next/prerender-manifest.json +114 -0
  99. package/frontend-build/.next/required-server-files.json +352 -0
  100. package/frontend-build/.next/routes-manifest.json +194 -0
  101. package/frontend-build/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  102. package/frontend-build/.next/server/app/_global-error/page/build-manifest.json +17 -0
  103. package/frontend-build/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  104. package/frontend-build/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  105. package/frontend-build/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  106. package/frontend-build/.next/server/app/_global-error/page.js +9 -0
  107. package/frontend-build/.next/server/app/_global-error/page.js.map +5 -0
  108. package/frontend-build/.next/server/app/_global-error/page.js.nft.json +1 -0
  109. package/frontend-build/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  110. package/frontend-build/.next/server/app/_global-error.html +1 -0
  111. package/frontend-build/.next/server/app/_global-error.meta +15 -0
  112. package/frontend-build/.next/server/app/_global-error.rsc +14 -0
  113. package/frontend-build/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  114. package/frontend-build/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  115. package/frontend-build/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  116. package/frontend-build/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  117. package/frontend-build/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  118. package/frontend-build/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  119. package/frontend-build/.next/server/app/_not-found/page/build-manifest.json +17 -0
  120. package/frontend-build/.next/server/app/_not-found/page/next-font-manifest.json +14 -0
  121. package/frontend-build/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  122. package/frontend-build/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  123. package/frontend-build/.next/server/app/_not-found/page.js +13 -0
  124. package/frontend-build/.next/server/app/_not-found/page.js.map +5 -0
  125. package/frontend-build/.next/server/app/_not-found/page.js.nft.json +1 -0
  126. package/frontend-build/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  127. package/frontend-build/.next/server/app/_not-found.html +1 -0
  128. package/frontend-build/.next/server/app/_not-found.meta +16 -0
  129. package/frontend-build/.next/server/app/_not-found.rsc +18 -0
  130. package/frontend-build/.next/server/app/_not-found.segments/_full.segment.rsc +18 -0
  131. package/frontend-build/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  132. package/frontend-build/.next/server/app/_not-found.segments/_index.segment.rsc +7 -0
  133. package/frontend-build/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  134. package/frontend-build/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  135. package/frontend-build/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  136. package/frontend-build/.next/server/app/api/agent-types/route/app-paths-manifest.json +3 -0
  137. package/frontend-build/.next/server/app/api/agent-types/route/build-manifest.json +9 -0
  138. package/frontend-build/.next/server/app/api/agent-types/route/server-reference-manifest.json +4 -0
  139. package/frontend-build/.next/server/app/api/agent-types/route.js +6 -0
  140. package/frontend-build/.next/server/app/api/agent-types/route.js.map +5 -0
  141. package/frontend-build/.next/server/app/api/agent-types/route.js.nft.json +1 -0
  142. package/frontend-build/.next/server/app/api/agent-types/route_client-reference-manifest.js +3 -0
  143. package/frontend-build/.next/server/app/api/agents/generate-prompt/route/app-paths-manifest.json +3 -0
  144. package/frontend-build/.next/server/app/api/agents/generate-prompt/route/build-manifest.json +9 -0
  145. package/frontend-build/.next/server/app/api/agents/generate-prompt/route/server-reference-manifest.json +4 -0
  146. package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js +6 -0
  147. package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js.map +5 -0
  148. package/frontend-build/.next/server/app/api/agents/generate-prompt/route.js.nft.json +1 -0
  149. package/frontend-build/.next/server/app/api/agents/generate-prompt/route_client-reference-manifest.js +3 -0
  150. package/frontend-build/.next/server/app/api/builder/chat/route/app-paths-manifest.json +3 -0
  151. package/frontend-build/.next/server/app/api/builder/chat/route/build-manifest.json +9 -0
  152. package/frontend-build/.next/server/app/api/builder/chat/route/server-reference-manifest.json +4 -0
  153. package/frontend-build/.next/server/app/api/builder/chat/route.js +6 -0
  154. package/frontend-build/.next/server/app/api/builder/chat/route.js.map +5 -0
  155. package/frontend-build/.next/server/app/api/builder/chat/route.js.nft.json +1 -0
  156. package/frontend-build/.next/server/app/api/builder/chat/route_client-reference-manifest.js +3 -0
  157. package/frontend-build/.next/server/app/api/builder/resume/route/app-paths-manifest.json +3 -0
  158. package/frontend-build/.next/server/app/api/builder/resume/route/build-manifest.json +9 -0
  159. package/frontend-build/.next/server/app/api/builder/resume/route/server-reference-manifest.json +4 -0
  160. package/frontend-build/.next/server/app/api/builder/resume/route.js +6 -0
  161. package/frontend-build/.next/server/app/api/builder/resume/route.js.map +5 -0
  162. package/frontend-build/.next/server/app/api/builder/resume/route.js.nft.json +1 -0
  163. package/frontend-build/.next/server/app/api/builder/resume/route_client-reference-manifest.js +3 -0
  164. package/frontend-build/.next/server/app/api/chat/route/app-paths-manifest.json +3 -0
  165. package/frontend-build/.next/server/app/api/chat/route/build-manifest.json +9 -0
  166. package/frontend-build/.next/server/app/api/chat/route/server-reference-manifest.json +4 -0
  167. package/frontend-build/.next/server/app/api/chat/route.js +6 -0
  168. package/frontend-build/.next/server/app/api/chat/route.js.map +5 -0
  169. package/frontend-build/.next/server/app/api/chat/route.js.nft.json +1 -0
  170. package/frontend-build/.next/server/app/api/chat/route_client-reference-manifest.js +3 -0
  171. package/frontend-build/.next/server/app/api/chat/stream/route/app-paths-manifest.json +3 -0
  172. package/frontend-build/.next/server/app/api/chat/stream/route/build-manifest.json +9 -0
  173. package/frontend-build/.next/server/app/api/chat/stream/route/server-reference-manifest.json +4 -0
  174. package/frontend-build/.next/server/app/api/chat/stream/route.js +6 -0
  175. package/frontend-build/.next/server/app/api/chat/stream/route.js.map +5 -0
  176. package/frontend-build/.next/server/app/api/chat/stream/route.js.nft.json +1 -0
  177. package/frontend-build/.next/server/app/api/chat/stream/route_client-reference-manifest.js +3 -0
  178. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/app-paths-manifest.json +3 -0
  179. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/build-manifest.json +9 -0
  180. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route/server-reference-manifest.json +4 -0
  181. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js +6 -0
  182. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js.map +5 -0
  183. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route.js.nft.json +1 -0
  184. package/frontend-build/.next/server/app/api/logs/[type]/[run_id]/route_client-reference-manifest.js +3 -0
  185. package/frontend-build/.next/server/app/api/logs/[type]/route/app-paths-manifest.json +3 -0
  186. package/frontend-build/.next/server/app/api/logs/[type]/route/build-manifest.json +9 -0
  187. package/frontend-build/.next/server/app/api/logs/[type]/route/server-reference-manifest.json +4 -0
  188. package/frontend-build/.next/server/app/api/logs/[type]/route.js +6 -0
  189. package/frontend-build/.next/server/app/api/logs/[type]/route.js.map +5 -0
  190. package/frontend-build/.next/server/app/api/logs/[type]/route.js.nft.json +1 -0
  191. package/frontend-build/.next/server/app/api/logs/[type]/route_client-reference-manifest.js +3 -0
  192. package/frontend-build/.next/server/app/api/models/route/app-paths-manifest.json +3 -0
  193. package/frontend-build/.next/server/app/api/models/route/build-manifest.json +9 -0
  194. package/frontend-build/.next/server/app/api/models/route/server-reference-manifest.json +4 -0
  195. package/frontend-build/.next/server/app/api/models/route.js +6 -0
  196. package/frontend-build/.next/server/app/api/models/route.js.map +5 -0
  197. package/frontend-build/.next/server/app/api/models/route.js.nft.json +1 -0
  198. package/frontend-build/.next/server/app/api/models/route_client-reference-manifest.js +3 -0
  199. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/app-paths-manifest.json +3 -0
  200. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/build-manifest.json +9 -0
  201. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route/server-reference-manifest.json +4 -0
  202. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js +6 -0
  203. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js.map +5 -0
  204. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route.js.nft.json +1 -0
  205. package/frontend-build/.next/server/app/api/orchestrations/[orch_id]/run/route_client-reference-manifest.js +3 -0
  206. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/app-paths-manifest.json +3 -0
  207. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/build-manifest.json +9 -0
  208. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route/server-reference-manifest.json +4 -0
  209. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js +6 -0
  210. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js.map +5 -0
  211. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route.js.nft.json +1 -0
  212. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/human-input/route_client-reference-manifest.js +3 -0
  213. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/app-paths-manifest.json +3 -0
  214. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/build-manifest.json +9 -0
  215. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route/server-reference-manifest.json +4 -0
  216. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js +6 -0
  217. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js.map +5 -0
  218. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route.js.nft.json +1 -0
  219. package/frontend-build/.next/server/app/api/orchestrations/runs/[run_id]/resume/route_client-reference-manifest.js +3 -0
  220. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/app-paths-manifest.json +3 -0
  221. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/build-manifest.json +9 -0
  222. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route/server-reference-manifest.json +4 -0
  223. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js +6 -0
  224. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js.map +5 -0
  225. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route.js.nft.json +1 -0
  226. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/route_client-reference-manifest.js +3 -0
  227. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/app-paths-manifest.json +3 -0
  228. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/build-manifest.json +9 -0
  229. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route/server-reference-manifest.json +4 -0
  230. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js +6 -0
  231. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js.map +5 -0
  232. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route.js.nft.json +1 -0
  233. package/frontend-build/.next/server/app/api/schedules/[schedule_id]/run/route_client-reference-manifest.js +3 -0
  234. package/frontend-build/.next/server/app/api/schedules/route/app-paths-manifest.json +3 -0
  235. package/frontend-build/.next/server/app/api/schedules/route/build-manifest.json +9 -0
  236. package/frontend-build/.next/server/app/api/schedules/route/server-reference-manifest.json +4 -0
  237. package/frontend-build/.next/server/app/api/schedules/route.js +6 -0
  238. package/frontend-build/.next/server/app/api/schedules/route.js.map +5 -0
  239. package/frontend-build/.next/server/app/api/schedules/route.js.nft.json +1 -0
  240. package/frontend-build/.next/server/app/api/schedules/route_client-reference-manifest.js +3 -0
  241. package/frontend-build/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  242. package/frontend-build/.next/server/app/icon.svg/route/build-manifest.json +9 -0
  243. package/frontend-build/.next/server/app/icon.svg/route.js +6 -0
  244. package/frontend-build/.next/server/app/icon.svg/route.js.map +5 -0
  245. package/frontend-build/.next/server/app/icon.svg/route.js.nft.json +1 -0
  246. package/frontend-build/.next/server/app/icon.svg.body +4 -0
  247. package/frontend-build/.next/server/app/icon.svg.meta +1 -0
  248. package/frontend-build/.next/server/app/index.html +1 -0
  249. package/frontend-build/.next/server/app/index.meta +14 -0
  250. package/frontend-build/.next/server/app/index.rsc +25 -0
  251. package/frontend-build/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  252. package/frontend-build/.next/server/app/index.segments/_full.segment.rsc +25 -0
  253. package/frontend-build/.next/server/app/index.segments/_head.segment.rsc +6 -0
  254. package/frontend-build/.next/server/app/index.segments/_index.segment.rsc +7 -0
  255. package/frontend-build/.next/server/app/index.segments/_tree.segment.rsc +8 -0
  256. package/frontend-build/.next/server/app/page/app-paths-manifest.json +3 -0
  257. package/frontend-build/.next/server/app/page/build-manifest.json +17 -0
  258. package/frontend-build/.next/server/app/page/next-font-manifest.json +14 -0
  259. package/frontend-build/.next/server/app/page/react-loadable-manifest.json +1 -0
  260. package/frontend-build/.next/server/app/page/server-reference-manifest.json +4 -0
  261. package/frontend-build/.next/server/app/page.js +14 -0
  262. package/frontend-build/.next/server/app/page.js.map +5 -0
  263. package/frontend-build/.next/server/app/page.js.nft.json +1 -0
  264. package/frontend-build/.next/server/app/page_client-reference-manifest.js +3 -0
  265. package/frontend-build/.next/server/app/settings/[tab]/page/app-paths-manifest.json +3 -0
  266. package/frontend-build/.next/server/app/settings/[tab]/page/build-manifest.json +17 -0
  267. package/frontend-build/.next/server/app/settings/[tab]/page/next-font-manifest.json +14 -0
  268. package/frontend-build/.next/server/app/settings/[tab]/page/react-loadable-manifest.json +1 -0
  269. package/frontend-build/.next/server/app/settings/[tab]/page/server-reference-manifest.json +4 -0
  270. package/frontend-build/.next/server/app/settings/[tab]/page.js +16 -0
  271. package/frontend-build/.next/server/app/settings/[tab]/page.js.map +5 -0
  272. package/frontend-build/.next/server/app/settings/[tab]/page.js.nft.json +1 -0
  273. package/frontend-build/.next/server/app/settings/[tab]/page_client-reference-manifest.js +3 -0
  274. package/frontend-build/.next/server/app-paths-manifest.json +22 -0
  275. package/frontend-build/.next/server/chunks/0zjb_server_app_api_orchestrations_runs_[run_id]_human-input_route_actions_0oj9y8~.js +3 -0
  276. package/frontend-build/.next/server/chunks/0zjb_server_app_api_orchestrations_runs_[run_id]_resume_route_actions_0cdumha.js +3 -0
  277. package/frontend-build/.next/server/chunks/[root-of-the-server]__00sljji._.js +3 -0
  278. package/frontend-build/.next/server/chunks/[root-of-the-server]__02je2si._.js +3 -0
  279. package/frontend-build/.next/server/chunks/[root-of-the-server]__03e7r3a._.js +3 -0
  280. package/frontend-build/.next/server/chunks/[root-of-the-server]__053~3b.._.js +3 -0
  281. package/frontend-build/.next/server/chunks/[root-of-the-server]__0afb7iz._.js +3 -0
  282. package/frontend-build/.next/server/chunks/[root-of-the-server]__0bc5iuk._.js +3 -0
  283. package/frontend-build/.next/server/chunks/[root-of-the-server]__0bygctj._.js +3 -0
  284. package/frontend-build/.next/server/chunks/[root-of-the-server]__0c7o1w_._.js +3 -0
  285. package/frontend-build/.next/server/chunks/[root-of-the-server]__0cy6bl4._.js +3 -0
  286. package/frontend-build/.next/server/chunks/[root-of-the-server]__0dmb8p1._.js +3 -0
  287. package/frontend-build/.next/server/chunks/[root-of-the-server]__0gx4j6x._.js +3 -0
  288. package/frontend-build/.next/server/chunks/[root-of-the-server]__0h2-vsq._.js +3 -0
  289. package/frontend-build/.next/server/chunks/[root-of-the-server]__0j8-xkl._.js +13 -0
  290. package/frontend-build/.next/server/chunks/[root-of-the-server]__0kkdqe3._.js +3 -0
  291. package/frontend-build/.next/server/chunks/[root-of-the-server]__0n1p1jk._.js +3 -0
  292. package/frontend-build/.next/server/chunks/[root-of-the-server]__0xccig4._.js +3 -0
  293. package/frontend-build/.next/server/chunks/[root-of-the-server]__13dxl3m._.js +3 -0
  294. package/frontend-build/.next/server/chunks/[turbopack]_runtime.js +903 -0
  295. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_agent-types_route_actions_11dsnho.js +3 -0
  296. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_agents_generate-prompt_route_actions_0sqc90~.js +3 -0
  297. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_builder_chat_route_actions_0mserwk.js +3 -0
  298. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_builder_resume_route_actions_10w~8ke.js +3 -0
  299. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_chat_route_actions_0tmcf6..js +3 -0
  300. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_chat_stream_route_actions_0ef7us3.js +3 -0
  301. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_logs_[type]_[run_id]_route_actions_061uvw9.js +3 -0
  302. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_logs_[type]_route_actions_0jpmtla.js +3 -0
  303. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_models_route_actions_0vfccm4.js +3 -0
  304. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_orchestrations_[orch_id]_run_route_actions_019s..3.js +3 -0
  305. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_[schedule_id]_route_actions_0vtfp83.js +3 -0
  306. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_[schedule_id]_run_route_actions_04d41xi.js +3 -0
  307. package/frontend-build/.next/server/chunks/_next-internal_server_app_api_schedules_route_actions_129kjsa.js +3 -0
  308. package/frontend-build/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_0-0ehc~.js +3 -0
  309. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__08gf6t7._.js +3 -0
  310. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__09z7o2x._.js +19 -0
  311. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0fql_-o._.js +33 -0
  312. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0hfoz0-._.js +3 -0
  313. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0p3x1m7._.js +3 -0
  314. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0rj.gz.._.js +3 -0
  315. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0ssmzpx._.js +3 -0
  316. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__0uo38ip._.js +3 -0
  317. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__10unlca._.js +3 -0
  318. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js +33 -0
  319. package/frontend-build/.next/server/chunks/ssr/[root-of-the-server]__12b-xga._.js +3 -0
  320. package/frontend-build/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
  321. package/frontend-build/.next/server/chunks/ssr/_0ayz11y._.js +4 -0
  322. package/frontend-build/.next/server/chunks/ssr/_0df15zg._.js +48 -0
  323. package/frontend-build/.next/server/chunks/ssr/_0yv_lu6._.js +3 -0
  324. package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0k77kol.js +3 -0
  325. package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0eq97pa.js +3 -0
  326. package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app_page_actions_09-gtaw.js +3 -0
  327. package/frontend-build/.next/server/chunks/ssr/_next-internal_server_app_settings_[tab]_page_actions_0ltd7re.js +3 -0
  328. package/frontend-build/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
  329. package/frontend-build/.next/server/chunks/ssr/node_modules_0_ce7g1._.js +3 -0
  330. package/frontend-build/.next/server/chunks/ssr/node_modules_0y8evf1._.js +3 -0
  331. package/frontend-build/.next/server/chunks/ssr/node_modules_0zhhlrq._.js +6 -0
  332. package/frontend-build/.next/server/chunks/ssr/node_modules_1041ur2._.js +6 -0
  333. package/frontend-build/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_0ag5..o._.js +3 -0
  334. package/frontend-build/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_loader-circle_0hcf_w-.js +3 -0
  335. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +6 -0
  336. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_0inhx6q._.js +3 -0
  337. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0ghu-f7.js +3 -0
  338. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
  339. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
  340. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08ib7il.js +4 -0
  341. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k.0n04.js +4 -0
  342. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js +4 -0
  343. package/frontend-build/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13pf1l2.js +4 -0
  344. package/frontend-build/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +3 -0
  345. package/frontend-build/.next/server/chunks/ssr/src_app_settings_layout_tsx_0j6i0d.._.js +3 -0
  346. package/frontend-build/.next/server/chunks/ssr/src_app_settings_loading_tsx_0.wko.c._.js +3 -0
  347. package/frontend-build/.next/server/functions-config-manifest.json +29 -0
  348. package/frontend-build/.next/server/middleware-build-manifest.js +21 -0
  349. package/frontend-build/.next/server/middleware-manifest.json +6 -0
  350. package/frontend-build/.next/server/next-font-manifest.js +1 -0
  351. package/frontend-build/.next/server/next-font-manifest.json +28 -0
  352. package/frontend-build/.next/server/pages/404.html +1 -0
  353. package/frontend-build/.next/server/pages/500.html +1 -0
  354. package/frontend-build/.next/server/pages-manifest.json +4 -0
  355. package/frontend-build/.next/server/prefetch-hints.json +1 -0
  356. package/frontend-build/.next/server/server-reference-manifest.js +1 -0
  357. package/frontend-build/.next/server/server-reference-manifest.json +5 -0
  358. package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_buildManifest.js +18 -0
  359. package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_clientMiddlewareManifest.js +1 -0
  360. package/frontend-build/.next/static/2m6rYBnEW4xy8D-1wzwqJ/_ssgManifest.js +1 -0
  361. package/frontend-build/.next/static/chunks/02i7dfk78~t~2.js +4 -0
  362. package/frontend-build/.next/static/chunks/03~yq9q893hmn.js +1 -0
  363. package/frontend-build/.next/static/chunks/04v~lhs2c9fvw.js +1 -0
  364. package/frontend-build/.next/static/chunks/05dz57h.5fg3-.js +2 -0
  365. package/frontend-build/.next/static/chunks/078eei4f0ilb1.js +1 -0
  366. package/frontend-build/.next/static/chunks/0h4a4y-~puu.x.js +1 -0
  367. package/frontend-build/.next/static/chunks/0ipoy_nm8gvxg.js +1 -0
  368. package/frontend-build/.next/static/chunks/0j29xn-eqm8iz.css +5 -0
  369. package/frontend-build/.next/static/chunks/0js-43escs3uy.js +1 -0
  370. package/frontend-build/.next/static/chunks/0jvmviuftg5e2.css +1 -0
  371. package/frontend-build/.next/static/chunks/0mim5z5~_34t1.js +31 -0
  372. package/frontend-build/.next/static/chunks/0n_h7vo0a.b~e.js +46 -0
  373. package/frontend-build/.next/static/chunks/0obt-c9w~4_5f.js +1 -0
  374. package/frontend-build/.next/static/chunks/0uuygh822k98..css +1 -0
  375. package/frontend-build/.next/static/chunks/0v9xc_wrxht3o.js +1 -0
  376. package/frontend-build/.next/static/chunks/0vn.s1wic2p_8.js +1 -0
  377. package/frontend-build/.next/static/chunks/0x6cedgvid-.9.js +2 -0
  378. package/frontend-build/.next/static/chunks/11evimknhsnll.js +1 -0
  379. package/frontend-build/.next/static/chunks/127bqzm7d2i2u.js +1 -0
  380. package/frontend-build/.next/static/chunks/turbopack-1606efl0p3-k2.js +1 -0
  381. package/frontend-build/.next/static/media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2 +0 -0
  382. package/frontend-build/.next/static/media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2 +0 -0
  383. package/frontend-build/.next/static/media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2 +0 -0
  384. package/frontend-build/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
  385. package/frontend-build/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
  386. package/frontend-build/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
  387. package/frontend-build/.next/static/media/3fe682a82f50d426-s.09q3q1i5159bl.woff2 +0 -0
  388. package/frontend-build/.next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
  389. package/frontend-build/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
  390. package/frontend-build/.next/static/media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2 +0 -0
  391. package/frontend-build/.next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2 +0 -0
  392. package/frontend-build/.next/static/media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2 +0 -0
  393. package/frontend-build/.next/static/media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2 +0 -0
  394. package/frontend-build/.next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
  395. package/frontend-build/.next/static/media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2 +0 -0
  396. package/frontend-build/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
  397. package/frontend-build/.next/static/media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2 +0 -0
  398. package/frontend-build/.next/static/media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2 +0 -0
  399. package/frontend-build/.next/static/media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2 +0 -0
  400. package/frontend-build/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
  401. package/frontend-build/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
  402. package/frontend-build/.next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
  403. package/frontend-build/.next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2 +0 -0
  404. package/frontend-build/.next/static/media/cc545e633e20c56d-s.0dza.stei.9v7.woff2 +0 -0
  405. package/frontend-build/.next/static/media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2 +0 -0
  406. package/frontend-build/.next/static/media/icon.08txep8y1sjlr.svg +4 -0
  407. package/frontend-build/node_modules/@img/colour/color.cjs +1594 -0
  408. package/frontend-build/node_modules/@img/colour/index.cjs +1 -0
  409. package/frontend-build/node_modules/@img/colour/package.json +45 -0
  410. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
  411. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  412. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
  413. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  414. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
  415. package/frontend-build/node_modules/@img/sharp-libvips-linux-x64/versions.json +30 -0
  416. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  417. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  418. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  419. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  420. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  421. package/frontend-build/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  422. package/frontend-build/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  423. package/frontend-build/node_modules/@img/sharp-linux-x64/package.json +46 -0
  424. package/frontend-build/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  425. package/frontend-build/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  426. package/frontend-build/node_modules/@next/env/dist/index.js +1 -0
  427. package/frontend-build/node_modules/@next/env/package.json +36 -0
  428. package/frontend-build/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  429. package/frontend-build/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  430. package/frontend-build/node_modules/@swc/helpers/package.json +471 -0
  431. package/frontend-build/node_modules/client-only/index.js +0 -0
  432. package/frontend-build/node_modules/client-only/package.json +19 -0
  433. package/frontend-build/node_modules/detect-libc/lib/detect-libc.js +313 -0
  434. package/frontend-build/node_modules/detect-libc/lib/elf.js +39 -0
  435. package/frontend-build/node_modules/detect-libc/lib/filesystem.js +51 -0
  436. package/frontend-build/node_modules/detect-libc/lib/process.js +24 -0
  437. package/frontend-build/node_modules/detect-libc/package.json +44 -0
  438. package/frontend-build/node_modules/next/dist/build/adapter/setup-node-env.external.js +15 -0
  439. package/frontend-build/node_modules/next/dist/build/define-env.js +255 -0
  440. package/frontend-build/node_modules/next/dist/build/duration-to-string.js +99 -0
  441. package/frontend-build/node_modules/next/dist/build/get-supported-browsers.js +38 -0
  442. package/frontend-build/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
  443. package/frontend-build/node_modules/next/dist/build/next-config-ts/transpile-config.js +251 -0
  444. package/frontend-build/node_modules/next/dist/build/output/format.js +84 -0
  445. package/frontend-build/node_modules/next/dist/build/output/log.js +135 -0
  446. package/frontend-build/node_modules/next/dist/build/segment-config/app/app-segment-config.js +162 -0
  447. package/frontend-build/node_modules/next/dist/build/segment-config/app/app-segments.js +137 -0
  448. package/frontend-build/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  449. package/frontend-build/node_modules/next/dist/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js +137 -0
  450. package/frontend-build/node_modules/next/dist/build/static-paths/app.js +735 -0
  451. package/frontend-build/node_modules/next/dist/build/static-paths/pages.js +169 -0
  452. package/frontend-build/node_modules/next/dist/build/static-paths/utils.js +119 -0
  453. package/frontend-build/node_modules/next/dist/build/swc/helpers.js +15 -0
  454. package/frontend-build/node_modules/next/dist/build/swc/index.js +1348 -0
  455. package/frontend-build/node_modules/next/dist/build/swc/install-bindings.js +30 -0
  456. package/frontend-build/node_modules/next/dist/build/swc/jest-transformer.js +76 -0
  457. package/frontend-build/node_modules/next/dist/build/swc/loaderWorkerPool.js +40 -0
  458. package/frontend-build/node_modules/next/dist/build/swc/options.js +403 -0
  459. package/frontend-build/node_modules/next/dist/build/swc/types.js +6 -0
  460. package/frontend-build/node_modules/next/dist/build/utils.js +1215 -0
  461. package/frontend-build/node_modules/next/dist/cli/next-test.js +170 -0
  462. package/frontend-build/node_modules/next/dist/client/add-base-path.js +24 -0
  463. package/frontend-build/node_modules/next/dist/client/app-call-server.js +34 -0
  464. package/frontend-build/node_modules/next/dist/client/app-find-source-map-url.js +39 -0
  465. package/frontend-build/node_modules/next/dist/client/assign-location.js +29 -0
  466. package/frontend-build/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
  467. package/frontend-build/node_modules/next/dist/client/components/app-router-headers.js +138 -0
  468. package/frontend-build/node_modules/next/dist/client/components/app-router-instance.js +397 -0
  469. package/frontend-build/node_modules/next/dist/client/components/app-router-utils.js +62 -0
  470. package/frontend-build/node_modules/next/dist/client/components/app-router.js +514 -0
  471. package/frontend-build/node_modules/next/dist/client/components/builtin/default.js +35 -0
  472. package/frontend-build/node_modules/next/dist/client/components/builtin/error-styles.js +165 -0
  473. package/frontend-build/node_modules/next/dist/client/components/builtin/global-error.js +100 -0
  474. package/frontend-build/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  475. package/frontend-build/node_modules/next/dist/client/components/error-boundary.js +144 -0
  476. package/frontend-build/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  477. package/frontend-build/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
  478. package/frontend-build/node_modules/next/dist/client/components/forbidden.js +48 -0
  479. package/frontend-build/node_modules/next/dist/client/components/handle-isr-error.js +30 -0
  480. package/frontend-build/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
  481. package/frontend-build/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  482. package/frontend-build/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  483. package/frontend-build/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
  484. package/frontend-build/node_modules/next/dist/client/components/links.js +299 -0
  485. package/frontend-build/node_modules/next/dist/client/components/match-segments.js +32 -0
  486. package/frontend-build/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
  487. package/frontend-build/node_modules/next/dist/client/components/navigation-devtools.js +126 -0
  488. package/frontend-build/node_modules/next/dist/client/components/navigation-untracked.js +67 -0
  489. package/frontend-build/node_modules/next/dist/client/components/navigation.js +225 -0
  490. package/frontend-build/node_modules/next/dist/client/components/navigation.react-server.js +75 -0
  491. package/frontend-build/node_modules/next/dist/client/components/not-found.js +42 -0
  492. package/frontend-build/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
  493. package/frontend-build/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
  494. package/frontend-build/node_modules/next/dist/client/components/redirect-error.js +43 -0
  495. package/frontend-build/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
  496. package/frontend-build/node_modules/next/dist/client/components/redirect.js +91 -0
  497. package/frontend-build/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +201 -0
  498. package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  499. package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +153 -0
  500. package/frontend-build/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  501. package/frontend-build/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +457 -0
  502. package/frontend-build/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +59 -0
  503. package/frontend-build/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +1341 -0
  504. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/committed-state.js +49 -0
  505. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +63 -0
  506. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  507. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +23 -0
  508. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +56 -0
  509. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +83 -0
  510. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +62 -0
  511. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +320 -0
  512. package/frontend-build/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +58 -0
  513. package/frontend-build/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +70 -0
  514. package/frontend-build/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
  515. package/frontend-build/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
  516. package/frontend-build/node_modules/next/dist/client/components/segment-cache/bfcache.js +128 -0
  517. package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
  518. package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache-map.js +305 -0
  519. package/frontend-build/node_modules/next/dist/client/components/segment-cache/cache.js +1933 -0
  520. package/frontend-build/node_modules/next/dist/client/components/segment-cache/lru.js +152 -0
  521. package/frontend-build/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +194 -0
  522. package/frontend-build/node_modules/next/dist/client/components/segment-cache/navigation.js +597 -0
  523. package/frontend-build/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +543 -0
  524. package/frontend-build/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
  525. package/frontend-build/node_modules/next/dist/client/components/segment-cache/scheduler.js +1249 -0
  526. package/frontend-build/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
  527. package/frontend-build/node_modules/next/dist/client/components/segment-cache/vary-path.js +278 -0
  528. package/frontend-build/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
  529. package/frontend-build/node_modules/next/dist/client/components/unauthorized.js +49 -0
  530. package/frontend-build/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
  531. package/frontend-build/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
  532. package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
  533. package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
  534. package/frontend-build/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
  535. package/frontend-build/node_modules/next/dist/client/components/use-action-queue.js +148 -0
  536. package/frontend-build/node_modules/next/dist/client/dev/debug-channel.js +72 -0
  537. package/frontend-build/node_modules/next/dist/client/flight-data-helpers.js +232 -0
  538. package/frontend-build/node_modules/next/dist/client/has-base-path.js +23 -0
  539. package/frontend-build/node_modules/next/dist/client/lib/console.js +177 -0
  540. package/frontend-build/node_modules/next/dist/client/lib/javascript-url.js +32 -0
  541. package/frontend-build/node_modules/next/dist/client/navigation-build-id.js +53 -0
  542. package/frontend-build/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
  543. package/frontend-build/node_modules/next/dist/client/remove-base-path.js +32 -0
  544. package/frontend-build/node_modules/next/dist/client/route-params.js +230 -0
  545. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  546. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  547. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  548. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  549. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  550. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  551. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  552. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  553. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  554. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  555. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  556. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  557. package/frontend-build/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  558. package/frontend-build/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
  559. package/frontend-build/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
  560. package/frontend-build/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  561. package/frontend-build/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  562. package/frontend-build/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  563. package/frontend-build/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  564. package/frontend-build/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  565. package/frontend-build/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  566. package/frontend-build/node_modules/next/dist/compiled/async-retry/index.js +1 -0
  567. package/frontend-build/node_modules/next/dist/compiled/async-retry/package.json +1 -0
  568. package/frontend-build/node_modules/next/dist/compiled/async-sema/index.js +1 -0
  569. package/frontend-build/node_modules/next/dist/compiled/async-sema/package.json +1 -0
  570. package/frontend-build/node_modules/next/dist/compiled/busboy/index.js +1 -0
  571. package/frontend-build/node_modules/next/dist/compiled/busboy/package.json +1 -0
  572. package/frontend-build/node_modules/next/dist/compiled/bytes/index.js +8 -0
  573. package/frontend-build/node_modules/next/dist/compiled/bytes/package.json +1 -0
  574. package/frontend-build/node_modules/next/dist/compiled/ci-info/index.js +1 -0
  575. package/frontend-build/node_modules/next/dist/compiled/ci-info/package.json +1 -0
  576. package/frontend-build/node_modules/next/dist/compiled/commander/index.js +1 -0
  577. package/frontend-build/node_modules/next/dist/compiled/commander/package.json +1 -0
  578. package/frontend-build/node_modules/next/dist/compiled/comment-json/index.js +7 -0
  579. package/frontend-build/node_modules/next/dist/compiled/comment-json/package.json +1 -0
  580. package/frontend-build/node_modules/next/dist/compiled/compression/index.js +58 -0
  581. package/frontend-build/node_modules/next/dist/compiled/compression/package.json +1 -0
  582. package/frontend-build/node_modules/next/dist/compiled/conf/index.js +15 -0
  583. package/frontend-build/node_modules/next/dist/compiled/conf/package.json +1 -0
  584. package/frontend-build/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
  585. package/frontend-build/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
  586. package/frontend-build/node_modules/next/dist/compiled/cookie/index.js +7 -0
  587. package/frontend-build/node_modules/next/dist/compiled/cookie/package.json +1 -0
  588. package/frontend-build/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
  589. package/frontend-build/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
  590. package/frontend-build/node_modules/next/dist/compiled/debug/index.js +1 -0
  591. package/frontend-build/node_modules/next/dist/compiled/debug/package.json +1 -0
  592. package/frontend-build/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
  593. package/frontend-build/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
  594. package/frontend-build/node_modules/next/dist/compiled/find-up/index.js +1 -0
  595. package/frontend-build/node_modules/next/dist/compiled/find-up/package.json +1 -0
  596. package/frontend-build/node_modules/next/dist/compiled/fresh/index.js +8 -0
  597. package/frontend-build/node_modules/next/dist/compiled/fresh/package.json +1 -0
  598. package/frontend-build/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
  599. package/frontend-build/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
  600. package/frontend-build/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
  601. package/frontend-build/node_modules/next/dist/compiled/image-size/index.js +1 -0
  602. package/frontend-build/node_modules/next/dist/compiled/image-size/package.json +1 -0
  603. package/frontend-build/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  604. package/frontend-build/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
  605. package/frontend-build/node_modules/next/dist/compiled/is-animated/index.js +1 -0
  606. package/frontend-build/node_modules/next/dist/compiled/is-animated/package.json +1 -0
  607. package/frontend-build/node_modules/next/dist/compiled/is-docker/index.js +1 -0
  608. package/frontend-build/node_modules/next/dist/compiled/is-docker/package.json +1 -0
  609. package/frontend-build/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
  610. package/frontend-build/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
  611. package/frontend-build/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
  612. package/frontend-build/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
  613. package/frontend-build/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
  614. package/frontend-build/node_modules/next/dist/compiled/nanoid/package.json +1 -0
  615. package/frontend-build/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +54 -0
  616. package/frontend-build/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +54 -0
  617. package/frontend-build/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  618. package/frontend-build/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  619. package/frontend-build/node_modules/next/dist/compiled/p-limit/index.js +1 -0
  620. package/frontend-build/node_modules/next/dist/compiled/p-limit/package.json +1 -0
  621. package/frontend-build/node_modules/next/dist/compiled/p-queue/index.js +1 -0
  622. package/frontend-build/node_modules/next/dist/compiled/p-queue/package.json +1 -0
  623. package/frontend-build/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
  624. package/frontend-build/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
  625. package/frontend-build/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
  626. package/frontend-build/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
  627. package/frontend-build/node_modules/next/dist/compiled/picomatch/index.js +1 -0
  628. package/frontend-build/node_modules/next/dist/compiled/picomatch/package.json +1 -0
  629. package/frontend-build/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  630. package/frontend-build/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  631. package/frontend-build/node_modules/next/dist/compiled/react-is/index.js +7 -0
  632. package/frontend-build/node_modules/next/dist/compiled/react-is/package.json +26 -0
  633. package/frontend-build/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
  634. package/frontend-build/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  635. package/frontend-build/node_modules/next/dist/compiled/semver/index.js +1 -0
  636. package/frontend-build/node_modules/next/dist/compiled/semver/package.json +1 -0
  637. package/frontend-build/node_modules/next/dist/compiled/send/index.js +70 -0
  638. package/frontend-build/node_modules/next/dist/compiled/send/package.json +1 -0
  639. package/frontend-build/node_modules/next/dist/compiled/source-map/package.json +1 -0
  640. package/frontend-build/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
  641. package/frontend-build/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
  642. package/frontend-build/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  643. package/frontend-build/node_modules/next/dist/compiled/string-hash/index.js +1 -0
  644. package/frontend-build/node_modules/next/dist/compiled/string-hash/package.json +1 -0
  645. package/frontend-build/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
  646. package/frontend-build/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
  647. package/frontend-build/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
  648. package/frontend-build/node_modules/next/dist/compiled/superstruct/package.json +1 -0
  649. package/frontend-build/node_modules/next/dist/compiled/tar/index.min.js +1 -0
  650. package/frontend-build/node_modules/next/dist/compiled/tar/package.json +1 -0
  651. package/frontend-build/node_modules/next/dist/compiled/text-table/index.js +1 -0
  652. package/frontend-build/node_modules/next/dist/compiled/text-table/package.json +1 -0
  653. package/frontend-build/node_modules/next/dist/compiled/watchpack/package.json +1 -0
  654. package/frontend-build/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
  655. package/frontend-build/node_modules/next/dist/compiled/ws/index.js +1 -0
  656. package/frontend-build/node_modules/next/dist/compiled/ws/package.json +1 -0
  657. package/frontend-build/node_modules/next/dist/compiled/zod/index.cjs +1 -0
  658. package/frontend-build/node_modules/next/dist/compiled/zod/package.json +1 -0
  659. package/frontend-build/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
  660. package/frontend-build/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
  661. package/frontend-build/node_modules/next/dist/experimental/testmode/context.js +57 -0
  662. package/frontend-build/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
  663. package/frontend-build/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
  664. package/frontend-build/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
  665. package/frontend-build/node_modules/next/dist/experimental/testmode/server.js +62 -0
  666. package/frontend-build/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
  667. package/frontend-build/node_modules/next/dist/lib/batcher.js +65 -0
  668. package/frontend-build/node_modules/next/dist/lib/build-custom-route.js +46 -0
  669. package/frontend-build/node_modules/next/dist/lib/bundler.js +97 -0
  670. package/frontend-build/node_modules/next/dist/lib/client-and-server-references.js +54 -0
  671. package/frontend-build/node_modules/next/dist/lib/coalesced-function.js +39 -0
  672. package/frontend-build/node_modules/next/dist/lib/compile-error.js +14 -0
  673. package/frontend-build/node_modules/next/dist/lib/constants.js +420 -0
  674. package/frontend-build/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
  675. package/frontend-build/node_modules/next/dist/lib/default-transpiled-packages.json +1 -0
  676. package/frontend-build/node_modules/next/dist/lib/detached-promise.js +32 -0
  677. package/frontend-build/node_modules/next/dist/lib/detect-typo.js +51 -0
  678. package/frontend-build/node_modules/next/dist/lib/download-swc.js +183 -0
  679. package/frontend-build/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
  680. package/frontend-build/node_modules/next/dist/lib/fallback.js +100 -0
  681. package/frontend-build/node_modules/next/dist/lib/fatal-error.js +14 -0
  682. package/frontend-build/node_modules/next/dist/lib/file-exists.js +53 -0
  683. package/frontend-build/node_modules/next/dist/lib/find-config.js +102 -0
  684. package/frontend-build/node_modules/next/dist/lib/find-pages-dir.js +65 -0
  685. package/frontend-build/node_modules/next/dist/lib/find-root.js +126 -0
  686. package/frontend-build/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
  687. package/frontend-build/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
  688. package/frontend-build/node_modules/next/dist/lib/format-server-error.js +75 -0
  689. package/frontend-build/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
  690. package/frontend-build/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
  691. package/frontend-build/node_modules/next/dist/lib/fs/rename.js +87 -0
  692. package/frontend-build/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
  693. package/frontend-build/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +52 -0
  694. package/frontend-build/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
  695. package/frontend-build/node_modules/next/dist/lib/get-network-host.js +44 -0
  696. package/frontend-build/node_modules/next/dist/lib/get-package-version.js +118 -0
  697. package/frontend-build/node_modules/next/dist/lib/get-project-dir.js +51 -0
  698. package/frontend-build/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
  699. package/frontend-build/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
  700. package/frontend-build/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
  701. package/frontend-build/node_modules/next/dist/lib/helpers/get-online.js +50 -0
  702. package/frontend-build/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
  703. package/frontend-build/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
  704. package/frontend-build/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
  705. package/frontend-build/node_modules/next/dist/lib/helpers/install.js +83 -0
  706. package/frontend-build/node_modules/next/dist/lib/import-next-warning.js +50 -0
  707. package/frontend-build/node_modules/next/dist/lib/inline-static-env.js +112 -0
  708. package/frontend-build/node_modules/next/dist/lib/install-dependencies.js +40 -0
  709. package/frontend-build/node_modules/next/dist/lib/interop-default.js +16 -0
  710. package/frontend-build/node_modules/next/dist/lib/is-api-route.js +15 -0
  711. package/frontend-build/node_modules/next/dist/lib/is-app-page-route.js +15 -0
  712. package/frontend-build/node_modules/next/dist/lib/is-app-route-route.js +15 -0
  713. package/frontend-build/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
  714. package/frontend-build/node_modules/next/dist/lib/is-error.js +78 -0
  715. package/frontend-build/node_modules/next/dist/lib/is-interception-route-rewrite.js +18 -0
  716. package/frontend-build/node_modules/next/dist/lib/is-internal-component.js +36 -0
  717. package/frontend-build/node_modules/next/dist/lib/is-serializable-props.js +106 -0
  718. package/frontend-build/node_modules/next/dist/lib/known-edge-safe-packages.json +1 -0
  719. package/frontend-build/node_modules/next/dist/lib/load-custom-routes.js +594 -0
  720. package/frontend-build/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
  721. package/frontend-build/node_modules/next/dist/lib/memory/shutdown.js +29 -0
  722. package/frontend-build/node_modules/next/dist/lib/memory/startup.js +47 -0
  723. package/frontend-build/node_modules/next/dist/lib/memory/trace.js +109 -0
  724. package/frontend-build/node_modules/next/dist/lib/metadata/constants.js +40 -0
  725. package/frontend-build/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
  726. package/frontend-build/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  727. package/frontend-build/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
  728. package/frontend-build/node_modules/next/dist/lib/metadata/get-metadata-route.js +123 -0
  729. package/frontend-build/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
  730. package/frontend-build/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
  731. package/frontend-build/node_modules/next/dist/lib/metadata/metadata.js +1686 -0
  732. package/frontend-build/node_modules/next/dist/lib/metadata/resolve-metadata.js +884 -0
  733. package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  734. package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  735. package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  736. package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  737. package/frontend-build/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  738. package/frontend-build/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  739. package/frontend-build/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
  740. package/frontend-build/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
  741. package/frontend-build/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
  742. package/frontend-build/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  743. package/frontend-build/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
  744. package/frontend-build/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  745. package/frontend-build/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
  746. package/frontend-build/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
  747. package/frontend-build/node_modules/next/dist/lib/mime-type.js +20 -0
  748. package/frontend-build/node_modules/next/dist/lib/mkcert.js +204 -0
  749. package/frontend-build/node_modules/next/dist/lib/multi-file-writer.js +75 -0
  750. package/frontend-build/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
  751. package/frontend-build/node_modules/next/dist/lib/non-nullable.js +15 -0
  752. package/frontend-build/node_modules/next/dist/lib/normalize-path.js +21 -0
  753. package/frontend-build/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
  754. package/frontend-build/node_modules/next/dist/lib/page-types.js +18 -0
  755. package/frontend-build/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  756. package/frontend-build/node_modules/next/dist/lib/pick.js +19 -0
  757. package/frontend-build/node_modules/next/dist/lib/picocolors.js +177 -0
  758. package/frontend-build/node_modules/next/dist/lib/pretty-bytes.js +74 -0
  759. package/frontend-build/node_modules/next/dist/lib/realpath.js +20 -0
  760. package/frontend-build/node_modules/next/dist/lib/recursive-copy.js +76 -0
  761. package/frontend-build/node_modules/next/dist/lib/recursive-delete.js +137 -0
  762. package/frontend-build/node_modules/next/dist/lib/recursive-readdir.js +124 -0
  763. package/frontend-build/node_modules/next/dist/lib/redirect-status.js +46 -0
  764. package/frontend-build/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
  765. package/frontend-build/node_modules/next/dist/lib/resolve-build-paths.js +154 -0
  766. package/frontend-build/node_modules/next/dist/lib/resolve-from.js +65 -0
  767. package/frontend-build/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
  768. package/frontend-build/node_modules/next/dist/lib/scheduler.js +64 -0
  769. package/frontend-build/node_modules/next/dist/lib/semver-noop.js +18 -0
  770. package/frontend-build/node_modules/next/dist/lib/server-external-packages.jsonc +103 -0
  771. package/frontend-build/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
  772. package/frontend-build/node_modules/next/dist/lib/static-env.js +92 -0
  773. package/frontend-build/node_modules/next/dist/lib/try-to-parse-path.js +67 -0
  774. package/frontend-build/node_modules/next/dist/lib/turbopack-warning.js +185 -0
  775. package/frontend-build/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +243 -0
  776. package/frontend-build/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +153 -0
  777. package/frontend-build/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  778. package/frontend-build/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
  779. package/frontend-build/node_modules/next/dist/lib/typescript/runTypeCheck.js +149 -0
  780. package/frontend-build/node_modules/next/dist/lib/typescript/type-paths.js +51 -0
  781. package/frontend-build/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +75 -0
  782. package/frontend-build/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +395 -0
  783. package/frontend-build/node_modules/next/dist/lib/url.js +75 -0
  784. package/frontend-build/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
  785. package/frontend-build/node_modules/next/dist/lib/verify-root-layout.js +165 -0
  786. package/frontend-build/node_modules/next/dist/lib/verify-typescript-setup.js +228 -0
  787. package/frontend-build/node_modules/next/dist/lib/wait.js +19 -0
  788. package/frontend-build/node_modules/next/dist/lib/with-promise-cache.js +24 -0
  789. package/frontend-build/node_modules/next/dist/lib/worker.js +234 -0
  790. package/frontend-build/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
  791. package/frontend-build/node_modules/next/dist/server/accept-header.js +132 -0
  792. package/frontend-build/node_modules/next/dist/server/after/after-context.js +140 -0
  793. package/frontend-build/node_modules/next/dist/server/after/after.js +26 -0
  794. package/frontend-build/node_modules/next/dist/server/after/awaiter.js +74 -0
  795. package/frontend-build/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
  796. package/frontend-build/node_modules/next/dist/server/after/index.js +21 -0
  797. package/frontend-build/node_modules/next/dist/server/after/run-with-after.js +35 -0
  798. package/frontend-build/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  799. package/frontend-build/node_modules/next/dist/server/api-utils/index.js +201 -0
  800. package/frontend-build/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
  801. package/frontend-build/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
  802. package/frontend-build/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
  803. package/frontend-build/node_modules/next/dist/server/api-utils/web.js +17 -0
  804. package/frontend-build/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  805. package/frontend-build/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
  806. package/frontend-build/node_modules/next/dist/server/app-render/action-handler.js +1020 -0
  807. package/frontend-build/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  808. package/frontend-build/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  809. package/frontend-build/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +167 -0
  810. package/frontend-build/node_modules/next/dist/server/app-render/app-render-render-utils.js +76 -0
  811. package/frontend-build/node_modules/next/dist/server/app-render/app-render-scheduling.js +188 -0
  812. package/frontend-build/node_modules/next/dist/server/app-render/app-render.js +4469 -0
  813. package/frontend-build/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
  814. package/frontend-build/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
  815. package/frontend-build/node_modules/next/dist/server/app-render/collect-segment-data.js +600 -0
  816. package/frontend-build/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  817. package/frontend-build/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
  818. package/frontend-build/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
  819. package/frontend-build/node_modules/next/dist/server/app-render/create-component-tree.js +840 -0
  820. package/frontend-build/node_modules/next/dist/server/app-render/create-error-handler.js +189 -0
  821. package/frontend-build/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +102 -0
  822. package/frontend-build/node_modules/next/dist/server/app-render/csrf-protection.js +86 -0
  823. package/frontend-build/node_modules/next/dist/server/app-render/debug-channel-server.js +30 -0
  824. package/frontend-build/node_modules/next/dist/server/app-render/debug-channel-server.web.js +71 -0
  825. package/frontend-build/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  826. package/frontend-build/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  827. package/frontend-build/node_modules/next/dist/server/app-render/dynamic-rendering.js +1144 -0
  828. package/frontend-build/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
  829. package/frontend-build/node_modules/next/dist/server/app-render/encryption-utils.js +93 -0
  830. package/frontend-build/node_modules/next/dist/server/app-render/encryption.js +259 -0
  831. package/frontend-build/node_modules/next/dist/server/app-render/entry-base.js +256 -0
  832. package/frontend-build/node_modules/next/dist/server/app-render/flight-render-result.js +28 -0
  833. package/frontend-build/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
  834. package/frontend-build/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +49 -0
  835. package/frontend-build/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
  836. package/frontend-build/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  837. package/frontend-build/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
  838. package/frontend-build/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  839. package/frontend-build/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  840. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js +13 -0
  841. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-impl.js +103 -0
  842. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js +18 -0
  843. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-config.js +181 -0
  844. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js +128 -0
  845. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js +432 -0
  846. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js +33 -0
  847. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/instant-validation.js +713 -0
  848. package/frontend-build/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js +96 -0
  849. package/frontend-build/node_modules/next/dist/server/app-render/interop-default.js +17 -0
  850. package/frontend-build/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
  851. package/frontend-build/node_modules/next/dist/server/app-render/manifests-singleton.js +264 -0
  852. package/frontend-build/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
  853. package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  854. package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  855. package/frontend-build/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
  856. package/frontend-build/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  857. package/frontend-build/node_modules/next/dist/server/app-render/postponed-state.js +157 -0
  858. package/frontend-build/node_modules/next/dist/server/app-render/prospective-render-utils.js +74 -0
  859. package/frontend-build/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
  860. package/frontend-build/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
  861. package/frontend-build/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
  862. package/frontend-build/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
  863. package/frontend-build/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
  864. package/frontend-build/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
  865. package/frontend-build/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
  866. package/frontend-build/node_modules/next/dist/server/app-render/segment-explorer-path.js +128 -0
  867. package/frontend-build/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
  868. package/frontend-build/node_modules/next/dist/server/app-render/staged-rendering.js +343 -0
  869. package/frontend-build/node_modules/next/dist/server/app-render/stale-time.js +111 -0
  870. package/frontend-build/node_modules/next/dist/server/app-render/stream-ops.js +106 -0
  871. package/frontend-build/node_modules/next/dist/server/app-render/stream-ops.web.js +163 -0
  872. package/frontend-build/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
  873. package/frontend-build/node_modules/next/dist/server/app-render/types.js +65 -0
  874. package/frontend-build/node_modules/next/dist/server/app-render/use-flight-response.js +214 -0
  875. package/frontend-build/node_modules/next/dist/server/app-render/vary-params.js +336 -0
  876. package/frontend-build/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +232 -0
  877. package/frontend-build/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  878. package/frontend-build/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
  879. package/frontend-build/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  880. package/frontend-build/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +280 -0
  881. package/frontend-build/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  882. package/frontend-build/node_modules/next/dist/server/async-storage/request-store.js +144 -0
  883. package/frontend-build/node_modules/next/dist/server/async-storage/with-store.js +6 -0
  884. package/frontend-build/node_modules/next/dist/server/async-storage/work-store.js +91 -0
  885. package/frontend-build/node_modules/next/dist/server/base-http/helpers.js +36 -0
  886. package/frontend-build/node_modules/next/dist/server/base-http/index.js +54 -0
  887. package/frontend-build/node_modules/next/dist/server/base-http/node.js +147 -0
  888. package/frontend-build/node_modules/next/dist/server/base-http/web.js +124 -0
  889. package/frontend-build/node_modules/next/dist/server/base-server.js +1874 -0
  890. package/frontend-build/node_modules/next/dist/server/body-streams.js +114 -0
  891. package/frontend-build/node_modules/next/dist/server/cache-dir.js +26 -0
  892. package/frontend-build/node_modules/next/dist/server/capsize-font-metrics.json +181516 -0
  893. package/frontend-build/node_modules/next/dist/server/ci-info.js +41 -0
  894. package/frontend-build/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
  895. package/frontend-build/node_modules/next/dist/server/config-schema.js +718 -0
  896. package/frontend-build/node_modules/next/dist/server/config-shared.js +369 -0
  897. package/frontend-build/node_modules/next/dist/server/config-utils.js +185 -0
  898. package/frontend-build/node_modules/next/dist/server/config.js +1545 -0
  899. package/frontend-build/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  900. package/frontend-build/node_modules/next/dist/server/crypto-utils.js +70 -0
  901. package/frontend-build/node_modules/next/dist/server/dev/browser-logs/file-logger.js +186 -0
  902. package/frontend-build/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +558 -0
  903. package/frontend-build/node_modules/next/dist/server/dev/browser-logs/source-map.js +222 -0
  904. package/frontend-build/node_modules/next/dist/server/dev/debug-channel.js +87 -0
  905. package/frontend-build/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  906. package/frontend-build/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
  907. package/frontend-build/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
  908. package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-rspack.js +171 -0
  909. package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  910. package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1480 -0
  911. package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-types.js +58 -0
  912. package/frontend-build/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1386 -0
  913. package/frontend-build/node_modules/next/dist/server/dev/log-requests.js +149 -0
  914. package/frontend-build/node_modules/next/dist/server/dev/messages.js +74 -0
  915. package/frontend-build/node_modules/next/dist/server/dev/middleware-turbopack.js +403 -0
  916. package/frontend-build/node_modules/next/dist/server/dev/middleware-webpack.js +483 -0
  917. package/frontend-build/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
  918. package/frontend-build/node_modules/next/dist/server/dev/on-demand-entry-handler.js +773 -0
  919. package/frontend-build/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
  920. package/frontend-build/node_modules/next/dist/server/dev/require-cache.js +79 -0
  921. package/frontend-build/node_modules/next/dist/server/dev/serialized-errors.js +67 -0
  922. package/frontend-build/node_modules/next/dist/server/dev/server-action-logger.js +37 -0
  923. package/frontend-build/node_modules/next/dist/server/dev/static-paths-worker.js +104 -0
  924. package/frontend-build/node_modules/next/dist/server/dev/turbopack-utils.js +687 -0
  925. package/frontend-build/node_modules/next/dist/server/dynamic-rendering-utils.js +108 -0
  926. package/frontend-build/node_modules/next/dist/server/font-utils.js +43 -0
  927. package/frontend-build/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  928. package/frontend-build/node_modules/next/dist/server/get-page-files.js +23 -0
  929. package/frontend-build/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
  930. package/frontend-build/node_modules/next/dist/server/htmlescape.js +37 -0
  931. package/frontend-build/node_modules/next/dist/server/image-optimizer.js +1220 -0
  932. package/frontend-build/node_modules/next/dist/server/instrumentation/types.js +6 -0
  933. package/frontend-build/node_modules/next/dist/server/instrumentation/utils.js +21 -0
  934. package/frontend-build/node_modules/next/dist/server/internal-utils.js +39 -0
  935. package/frontend-build/node_modules/next/dist/server/is-private-ip.js +36 -0
  936. package/frontend-build/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
  937. package/frontend-build/node_modules/next/dist/server/lib/app-info-log.js +132 -0
  938. package/frontend-build/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
  939. package/frontend-build/node_modules/next/dist/server/lib/cache-control.js +22 -0
  940. package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  941. package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
  942. package/frontend-build/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
  943. package/frontend-build/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  944. package/frontend-build/node_modules/next/dist/server/lib/clone-response.js +77 -0
  945. package/frontend-build/node_modules/next/dist/server/lib/cpu-profile.js +59 -0
  946. package/frontend-build/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  947. package/frontend-build/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
  948. package/frontend-build/node_modules/next/dist/server/lib/dev-bundler-service.js +95 -0
  949. package/frontend-build/node_modules/next/dist/server/lib/disk-lru-cache.external.js +57 -0
  950. package/frontend-build/node_modules/next/dist/server/lib/etag.js +56 -0
  951. package/frontend-build/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  952. package/frontend-build/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
  953. package/frontend-build/node_modules/next/dist/server/lib/find-page-file.js +147 -0
  954. package/frontend-build/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
  955. package/frontend-build/node_modules/next/dist/server/lib/format-hostname.js +16 -0
  956. package/frontend-build/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
  957. package/frontend-build/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
  958. package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +335 -0
  959. package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/index.js +501 -0
  960. package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +57 -0
  961. package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
  962. package/frontend-build/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  963. package/frontend-build/node_modules/next/dist/server/lib/install-code-frame.js +22 -0
  964. package/frontend-build/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
  965. package/frontend-build/node_modules/next/dist/server/lib/lazy-result.js +46 -0
  966. package/frontend-build/node_modules/next/dist/server/lib/lru-cache.js +191 -0
  967. package/frontend-build/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
  968. package/frontend-build/node_modules/next/dist/server/lib/mock-request.js +416 -0
  969. package/frontend-build/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
  970. package/frontend-build/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  971. package/frontend-build/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  972. package/frontend-build/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
  973. package/frontend-build/node_modules/next/dist/server/lib/parse-stack.js +46 -0
  974. package/frontend-build/node_modules/next/dist/server/lib/patch-fetch.js +978 -0
  975. package/frontend-build/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
  976. package/frontend-build/node_modules/next/dist/server/lib/postponed-request-body.js +64 -0
  977. package/frontend-build/node_modules/next/dist/server/lib/render-server.js +155 -0
  978. package/frontend-build/node_modules/next/dist/server/lib/router-server.js +696 -0
  979. package/frontend-build/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js +110 -0
  980. package/frontend-build/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  981. package/frontend-build/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +50 -0
  982. package/frontend-build/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
  983. package/frontend-build/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  984. package/frontend-build/node_modules/next/dist/server/lib/router-utils/filesystem.js +591 -0
  985. package/frontend-build/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  986. package/frontend-build/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
  987. package/frontend-build/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  988. package/frontend-build/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
  989. package/frontend-build/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +629 -0
  990. package/frontend-build/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
  991. package/frontend-build/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  992. package/frontend-build/node_modules/next/dist/server/lib/router-utils/typegen.js +858 -0
  993. package/frontend-build/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
  994. package/frontend-build/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
  995. package/frontend-build/node_modules/next/dist/server/lib/server-ipc/utils.js +81 -0
  996. package/frontend-build/node_modules/next/dist/server/lib/source-maps.js +196 -0
  997. package/frontend-build/node_modules/next/dist/server/lib/start-server.js +494 -0
  998. package/frontend-build/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
  999. package/frontend-build/node_modules/next/dist/server/lib/to-route.js +37 -0
  1000. package/frontend-build/node_modules/next/dist/server/lib/trace/constants.js +203 -0
  1001. package/frontend-build/node_modules/next/dist/server/lib/trace/tracer.js +280 -0
  1002. package/frontend-build/node_modules/next/dist/server/lib/trace/utils.js +16 -0
  1003. package/frontend-build/node_modules/next/dist/server/lib/types.js +6 -0
  1004. package/frontend-build/node_modules/next/dist/server/lib/utils.js +278 -0
  1005. package/frontend-build/node_modules/next/dist/server/lib/worker-utils.js +36 -0
  1006. package/frontend-build/node_modules/next/dist/server/load-components.js +179 -0
  1007. package/frontend-build/node_modules/next/dist/server/load-default-error-components.js +41 -0
  1008. package/frontend-build/node_modules/next/dist/server/load-manifest.external.js +117 -0
  1009. package/frontend-build/node_modules/next/dist/server/match-bundle.js +25 -0
  1010. package/frontend-build/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
  1011. package/frontend-build/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
  1012. package/frontend-build/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  1013. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-errors.js +114 -0
  1014. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-logs.js +67 -0
  1015. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +188 -0
  1016. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +59 -0
  1017. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-routes.js +136 -0
  1018. package/frontend-build/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +121 -0
  1019. package/frontend-build/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  1020. package/frontend-build/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  1021. package/frontend-build/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +137 -0
  1022. package/frontend-build/node_modules/next/dist/server/next-server.js +1429 -0
  1023. package/frontend-build/node_modules/next/dist/server/next-typescript.js +13 -0
  1024. package/frontend-build/node_modules/next/dist/server/next.js +455 -0
  1025. package/frontend-build/node_modules/next/dist/server/node-environment-baseline.js +25 -0
  1026. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +301 -0
  1027. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  1028. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
  1029. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
  1030. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  1031. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js +577 -0
  1032. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  1033. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/io-utils.js +195 -0
  1034. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  1035. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js +91 -0
  1036. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
  1037. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js +508 -0
  1038. package/frontend-build/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  1039. package/frontend-build/node_modules/next/dist/server/node-environment.js +19 -0
  1040. package/frontend-build/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
  1041. package/frontend-build/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  1042. package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  1043. package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  1044. package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  1045. package/frontend-build/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  1046. package/frontend-build/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
  1047. package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
  1048. package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  1049. package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  1050. package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  1051. package/frontend-build/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  1052. package/frontend-build/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  1053. package/frontend-build/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
  1054. package/frontend-build/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
  1055. package/frontend-build/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  1056. package/frontend-build/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
  1057. package/frontend-build/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
  1058. package/frontend-build/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  1059. package/frontend-build/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
  1060. package/frontend-build/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
  1061. package/frontend-build/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +33 -0
  1062. package/frontend-build/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
  1063. package/frontend-build/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  1064. package/frontend-build/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  1065. package/frontend-build/node_modules/next/dist/server/og/image-response.js +53 -0
  1066. package/frontend-build/node_modules/next/dist/server/patch-error-inspect.js +453 -0
  1067. package/frontend-build/node_modules/next/dist/server/pipe-readable.js +140 -0
  1068. package/frontend-build/node_modules/next/dist/server/post-process.js +39 -0
  1069. package/frontend-build/node_modules/next/dist/server/render-result.js +204 -0
  1070. package/frontend-build/node_modules/next/dist/server/render.js +1141 -0
  1071. package/frontend-build/node_modules/next/dist/server/request/connection.js +133 -0
  1072. package/frontend-build/node_modules/next/dist/server/request/cookies.js +235 -0
  1073. package/frontend-build/node_modules/next/dist/server/request/draft-mode.js +230 -0
  1074. package/frontend-build/node_modules/next/dist/server/request/fallback-params.js +69 -0
  1075. package/frontend-build/node_modules/next/dist/server/request/headers.js +229 -0
  1076. package/frontend-build/node_modules/next/dist/server/request/params.js +527 -0
  1077. package/frontend-build/node_modules/next/dist/server/request/pathname.js +119 -0
  1078. package/frontend-build/node_modules/next/dist/server/request/root-params.js +194 -0
  1079. package/frontend-build/node_modules/next/dist/server/request/search-params.js +526 -0
  1080. package/frontend-build/node_modules/next/dist/server/request/utils.js +51 -0
  1081. package/frontend-build/node_modules/next/dist/server/request-meta.js +55 -0
  1082. package/frontend-build/node_modules/next/dist/server/require-hook.js +82 -0
  1083. package/frontend-build/node_modules/next/dist/server/require.js +109 -0
  1084. package/frontend-build/node_modules/next/dist/server/response-cache/index.js +311 -0
  1085. package/frontend-build/node_modules/next/dist/server/response-cache/types.js +41 -0
  1086. package/frontend-build/node_modules/next/dist/server/response-cache/utils.js +104 -0
  1087. package/frontend-build/node_modules/next/dist/server/response-cache/web.js +101 -0
  1088. package/frontend-build/node_modules/next/dist/server/resume-data-cache/cache-store.js +96 -0
  1089. package/frontend-build/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +124 -0
  1090. package/frontend-build/node_modules/next/dist/server/revalidation-utils.js +157 -0
  1091. package/frontend-build/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  1092. package/frontend-build/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  1093. package/frontend-build/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  1094. package/frontend-build/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  1095. package/frontend-build/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  1096. package/frontend-build/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
  1097. package/frontend-build/node_modules/next/dist/server/route-kind.js +32 -0
  1098. package/frontend-build/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  1099. package/frontend-build/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  1100. package/frontend-build/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  1101. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  1102. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  1103. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +91 -0
  1104. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  1105. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  1106. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  1107. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  1108. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  1109. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  1110. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  1111. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  1112. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  1113. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  1114. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  1115. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  1116. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  1117. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  1118. package/frontend-build/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  1119. package/frontend-build/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  1120. package/frontend-build/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  1121. package/frontend-build/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  1122. package/frontend-build/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  1123. package/frontend-build/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  1124. package/frontend-build/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
  1125. package/frontend-build/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
  1126. package/frontend-build/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
  1127. package/frontend-build/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
  1128. package/frontend-build/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  1129. package/frontend-build/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
  1130. package/frontend-build/node_modules/next/dist/server/route-matches/route-match.js +6 -0
  1131. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +51 -0
  1132. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  1133. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.js +162 -0
  1134. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
  1135. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js +25 -0
  1136. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  1137. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  1138. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  1139. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  1140. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  1141. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  1142. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  1143. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  1144. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  1145. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  1146. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  1147. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  1148. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  1149. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  1150. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  1151. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  1152. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  1153. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  1154. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  1155. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  1156. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  1157. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  1158. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  1159. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  1160. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  1161. package/frontend-build/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  1162. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  1163. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  1164. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  1165. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  1166. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  1167. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  1168. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/module.js +914 -0
  1169. package/frontend-build/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  1170. package/frontend-build/node_modules/next/dist/server/route-modules/checks.js +45 -0
  1171. package/frontend-build/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  1172. package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  1173. package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
  1174. package/frontend-build/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
  1175. package/frontend-build/node_modules/next/dist/server/route-modules/pages/pages-handler.js +545 -0
  1176. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  1177. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  1178. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  1179. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  1180. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  1181. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  1182. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  1183. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  1184. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  1185. package/frontend-build/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  1186. package/frontend-build/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  1187. package/frontend-build/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
  1188. package/frontend-build/node_modules/next/dist/server/route-modules/route-module.js +650 -0
  1189. package/frontend-build/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
  1190. package/frontend-build/node_modules/next/dist/server/send-payload.js +88 -0
  1191. package/frontend-build/node_modules/next/dist/server/send-response.js +70 -0
  1192. package/frontend-build/node_modules/next/dist/server/serve-static.js +66 -0
  1193. package/frontend-build/node_modules/next/dist/server/server-route-utils.js +30 -0
  1194. package/frontend-build/node_modules/next/dist/server/server-utils.js +323 -0
  1195. package/frontend-build/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
  1196. package/frontend-build/node_modules/next/dist/server/stream-utils/encoded-tags.js +122 -0
  1197. package/frontend-build/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +918 -0
  1198. package/frontend-build/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +74 -0
  1199. package/frontend-build/node_modules/next/dist/server/typescript/constant.js +98 -0
  1200. package/frontend-build/node_modules/next/dist/server/typescript/index.js +199 -0
  1201. package/frontend-build/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
  1202. package/frontend-build/node_modules/next/dist/server/typescript/rules/config.js +512 -0
  1203. package/frontend-build/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
  1204. package/frontend-build/node_modules/next/dist/server/typescript/rules/error.js +38 -0
  1205. package/frontend-build/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
  1206. package/frontend-build/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
  1207. package/frontend-build/node_modules/next/dist/server/typescript/rules/server.js +79 -0
  1208. package/frontend-build/node_modules/next/dist/server/typescript/utils.js +212 -0
  1209. package/frontend-build/node_modules/next/dist/server/use-cache/cache-life.js +163 -0
  1210. package/frontend-build/node_modules/next/dist/server/use-cache/cache-tag.js +52 -0
  1211. package/frontend-build/node_modules/next/dist/server/use-cache/constants.js +28 -0
  1212. package/frontend-build/node_modules/next/dist/server/use-cache/handlers.js +121 -0
  1213. package/frontend-build/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
  1214. package/frontend-build/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1588 -0
  1215. package/frontend-build/node_modules/next/dist/server/utils.js +73 -0
  1216. package/frontend-build/node_modules/next/dist/server/web/adapter.js +392 -0
  1217. package/frontend-build/node_modules/next/dist/server/web/edge-route-module-wrapper.js +123 -0
  1218. package/frontend-build/node_modules/next/dist/server/web/error.js +54 -0
  1219. package/frontend-build/node_modules/next/dist/server/web/exports/index.js +56 -0
  1220. package/frontend-build/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
  1221. package/frontend-build/node_modules/next/dist/server/web/globals.js +128 -0
  1222. package/frontend-build/node_modules/next/dist/server/web/http.js +39 -0
  1223. package/frontend-build/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
  1224. package/frontend-build/node_modules/next/dist/server/web/next-url.js +199 -0
  1225. package/frontend-build/node_modules/next/dist/server/web/sandbox/context.js +462 -0
  1226. package/frontend-build/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  1227. package/frontend-build/node_modules/next/dist/server/web/sandbox/index.js +28 -0
  1228. package/frontend-build/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
  1229. package/frontend-build/node_modules/next/dist/server/web/sandbox/sandbox.js +137 -0
  1230. package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
  1231. package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  1232. package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  1233. package/frontend-build/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +211 -0
  1234. package/frontend-build/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
  1235. package/frontend-build/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  1236. package/frontend-build/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
  1237. package/frontend-build/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
  1238. package/frontend-build/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
  1239. package/frontend-build/node_modules/next/dist/server/web/spec-extension/revalidate.js +214 -0
  1240. package/frontend-build/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +289 -0
  1241. package/frontend-build/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +51 -0
  1242. package/frontend-build/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
  1243. package/frontend-build/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
  1244. package/frontend-build/node_modules/next/dist/server/web/types.js +6 -0
  1245. package/frontend-build/node_modules/next/dist/server/web/utils.js +151 -0
  1246. package/frontend-build/node_modules/next/dist/server/web/web-on-close.js +87 -0
  1247. package/frontend-build/node_modules/next/dist/shared/lib/action-revalidation-kind.js +31 -0
  1248. package/frontend-build/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  1249. package/frontend-build/node_modules/next/dist/shared/lib/app-router-types.js +46 -0
  1250. package/frontend-build/node_modules/next/dist/shared/lib/constants.js +448 -0
  1251. package/frontend-build/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
  1252. package/frontend-build/node_modules/next/dist/shared/lib/deployment-id.js +63 -0
  1253. package/frontend-build/node_modules/next/dist/shared/lib/dset.js +34 -0
  1254. package/frontend-build/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
  1255. package/frontend-build/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
  1256. package/frontend-build/node_modules/next/dist/shared/lib/error-source.js +36 -0
  1257. package/frontend-build/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
  1258. package/frontend-build/node_modules/next/dist/shared/lib/errors/code-frame.js +20 -0
  1259. package/frontend-build/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
  1260. package/frontend-build/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
  1261. package/frontend-build/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
  1262. package/frontend-build/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
  1263. package/frontend-build/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
  1264. package/frontend-build/node_modules/next/dist/shared/lib/hash.js +42 -0
  1265. package/frontend-build/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  1266. package/frontend-build/node_modules/next/dist/shared/lib/head.js +163 -0
  1267. package/frontend-build/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +60 -0
  1268. package/frontend-build/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  1269. package/frontend-build/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  1270. package/frontend-build/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  1271. package/frontend-build/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  1272. package/frontend-build/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
  1273. package/frontend-build/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  1274. package/frontend-build/node_modules/next/dist/shared/lib/image-config.js +77 -0
  1275. package/frontend-build/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
  1276. package/frontend-build/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
  1277. package/frontend-build/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
  1278. package/frontend-build/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
  1279. package/frontend-build/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1280. package/frontend-build/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1281. package/frontend-build/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1282. package/frontend-build/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
  1283. package/frontend-build/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1284. package/frontend-build/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1285. package/frontend-build/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1286. package/frontend-build/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1287. package/frontend-build/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1288. package/frontend-build/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1289. package/frontend-build/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1290. package/frontend-build/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1291. package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1292. package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1293. package/frontend-build/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1294. package/frontend-build/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1295. package/frontend-build/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1296. package/frontend-build/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
  1297. package/frontend-build/node_modules/next/dist/shared/lib/router/routes/app.js +122 -0
  1298. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1299. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1300. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1301. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/app-paths.js +62 -0
  1302. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1303. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
  1304. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1305. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1306. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1307. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +174 -0
  1308. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1309. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1310. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1311. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1312. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
  1313. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js +33 -0
  1314. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1315. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1316. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1317. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1318. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +30 -0
  1319. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1320. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +43 -0
  1321. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/parse-url.js +38 -0
  1322. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1323. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1324. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
  1325. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1326. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1327. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1328. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
  1329. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js +116 -0
  1330. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1331. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1332. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1333. package/frontend-build/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1334. package/frontend-build/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1335. package/frontend-build/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1336. package/frontend-build/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js +32 -0
  1337. package/frontend-build/node_modules/next/dist/shared/lib/segment.js +102 -0
  1338. package/frontend-build/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1339. package/frontend-build/node_modules/next/dist/shared/lib/server-reference-info.js +56 -0
  1340. package/frontend-build/node_modules/next/dist/shared/lib/side-effect.js +63 -0
  1341. package/frontend-build/node_modules/next/dist/shared/lib/size-limit.js +40 -0
  1342. package/frontend-build/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1343. package/frontend-build/node_modules/next/dist/shared/lib/utils/reflect-utils.js +69 -0
  1344. package/frontend-build/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
  1345. package/frontend-build/node_modules/next/dist/shared/lib/utils.js +207 -0
  1346. package/frontend-build/node_modules/next/dist/shared/lib/zod.js +101 -0
  1347. package/frontend-build/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
  1348. package/frontend-build/node_modules/next/dist/telemetry/detached-flush.js +56 -0
  1349. package/frontend-build/node_modules/next/dist/telemetry/events/build.js +174 -0
  1350. package/frontend-build/node_modules/next/dist/telemetry/events/index.js +41 -0
  1351. package/frontend-build/node_modules/next/dist/telemetry/events/plugins.js +51 -0
  1352. package/frontend-build/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1353. package/frontend-build/node_modules/next/dist/telemetry/events/version.js +66 -0
  1354. package/frontend-build/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
  1355. package/frontend-build/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1356. package/frontend-build/node_modules/next/dist/telemetry/project-id.js +48 -0
  1357. package/frontend-build/node_modules/next/dist/telemetry/storage.js +301 -0
  1358. package/frontend-build/node_modules/next/dist/trace/index.js +58 -0
  1359. package/frontend-build/node_modules/next/dist/trace/report/index.js +37 -0
  1360. package/frontend-build/node_modules/next/dist/trace/report/to-json-build.js +40 -0
  1361. package/frontend-build/node_modules/next/dist/trace/report/to-json.js +165 -0
  1362. package/frontend-build/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
  1363. package/frontend-build/node_modules/next/dist/trace/shared.js +39 -0
  1364. package/frontend-build/node_modules/next/dist/trace/trace.js +211 -0
  1365. package/frontend-build/node_modules/next/package.json +378 -0
  1366. package/frontend-build/node_modules/react/cjs/react-compiler-runtime.production.js +16 -0
  1367. package/frontend-build/node_modules/react/cjs/react-jsx-dev-runtime.production.js +14 -0
  1368. package/frontend-build/node_modules/react/cjs/react-jsx-runtime.production.js +34 -0
  1369. package/frontend-build/node_modules/react/cjs/react.development.js +1284 -0
  1370. package/frontend-build/node_modules/react/cjs/react.production.js +542 -0
  1371. package/frontend-build/node_modules/react/compiler-runtime.js +14 -0
  1372. package/frontend-build/node_modules/react/index.js +7 -0
  1373. package/frontend-build/node_modules/react/jsx-dev-runtime.js +7 -0
  1374. package/frontend-build/node_modules/react/jsx-runtime.js +7 -0
  1375. package/frontend-build/node_modules/react/package.json +51 -0
  1376. package/frontend-build/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +6603 -0
  1377. package/frontend-build/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +6692 -0
  1378. package/frontend-build/node_modules/react-dom/cjs/react-dom-server.browser.production.js +7410 -0
  1379. package/frontend-build/node_modules/react-dom/cjs/react-dom-server.edge.production.js +7512 -0
  1380. package/frontend-build/node_modules/react-dom/cjs/react-dom-server.node.production.js +7707 -0
  1381. package/frontend-build/node_modules/react-dom/cjs/react-dom.production.js +210 -0
  1382. package/frontend-build/node_modules/react-dom/index.js +38 -0
  1383. package/frontend-build/node_modules/react-dom/package.json +117 -0
  1384. package/frontend-build/node_modules/react-dom/server.browser.js +16 -0
  1385. package/frontend-build/node_modules/react-dom/server.edge.js +17 -0
  1386. package/frontend-build/node_modules/react-dom/server.node.js +18 -0
  1387. package/frontend-build/node_modules/react-dom/static.node.js +14 -0
  1388. package/frontend-build/node_modules/sharp/lib/channel.js +177 -0
  1389. package/frontend-build/node_modules/sharp/lib/colour.js +195 -0
  1390. package/frontend-build/node_modules/sharp/lib/composite.js +212 -0
  1391. package/frontend-build/node_modules/sharp/lib/constructor.js +499 -0
  1392. package/frontend-build/node_modules/sharp/lib/index.js +16 -0
  1393. package/frontend-build/node_modules/sharp/lib/input.js +809 -0
  1394. package/frontend-build/node_modules/sharp/lib/is.js +143 -0
  1395. package/frontend-build/node_modules/sharp/lib/libvips.js +207 -0
  1396. package/frontend-build/node_modules/sharp/lib/operation.js +1016 -0
  1397. package/frontend-build/node_modules/sharp/lib/output.js +1666 -0
  1398. package/frontend-build/node_modules/sharp/lib/resize.js +595 -0
  1399. package/frontend-build/node_modules/sharp/lib/sharp.js +121 -0
  1400. package/frontend-build/node_modules/sharp/lib/utility.js +291 -0
  1401. package/frontend-build/node_modules/sharp/node_modules/semver/classes/comparator.js +143 -0
  1402. package/frontend-build/node_modules/sharp/node_modules/semver/classes/range.js +557 -0
  1403. package/frontend-build/node_modules/sharp/node_modules/semver/classes/semver.js +333 -0
  1404. package/frontend-build/node_modules/sharp/node_modules/semver/functions/cmp.js +54 -0
  1405. package/frontend-build/node_modules/sharp/node_modules/semver/functions/coerce.js +62 -0
  1406. package/frontend-build/node_modules/sharp/node_modules/semver/functions/compare.js +7 -0
  1407. package/frontend-build/node_modules/sharp/node_modules/semver/functions/eq.js +5 -0
  1408. package/frontend-build/node_modules/sharp/node_modules/semver/functions/gt.js +5 -0
  1409. package/frontend-build/node_modules/sharp/node_modules/semver/functions/gte.js +5 -0
  1410. package/frontend-build/node_modules/sharp/node_modules/semver/functions/lt.js +5 -0
  1411. package/frontend-build/node_modules/sharp/node_modules/semver/functions/lte.js +5 -0
  1412. package/frontend-build/node_modules/sharp/node_modules/semver/functions/neq.js +5 -0
  1413. package/frontend-build/node_modules/sharp/node_modules/semver/functions/parse.js +18 -0
  1414. package/frontend-build/node_modules/sharp/node_modules/semver/functions/satisfies.js +12 -0
  1415. package/frontend-build/node_modules/sharp/node_modules/semver/internal/constants.js +37 -0
  1416. package/frontend-build/node_modules/sharp/node_modules/semver/internal/debug.js +11 -0
  1417. package/frontend-build/node_modules/sharp/node_modules/semver/internal/identifiers.js +29 -0
  1418. package/frontend-build/node_modules/sharp/node_modules/semver/internal/lrucache.js +42 -0
  1419. package/frontend-build/node_modules/sharp/node_modules/semver/internal/parse-options.js +17 -0
  1420. package/frontend-build/node_modules/sharp/node_modules/semver/internal/re.js +223 -0
  1421. package/frontend-build/node_modules/sharp/node_modules/semver/package.json +78 -0
  1422. package/frontend-build/node_modules/sharp/package.json +202 -0
  1423. package/frontend-build/node_modules/styled-jsx/dist/index/index.js +499 -0
  1424. package/frontend-build/node_modules/styled-jsx/index.js +1 -0
  1425. package/frontend-build/node_modules/styled-jsx/package.json +132 -0
  1426. package/frontend-build/node_modules/styled-jsx/style.js +1 -0
  1427. package/frontend-build/package.json +43 -0
  1428. package/frontend-build/public/aws-bedrock-icon.svg +1 -0
  1429. package/frontend-build/public/chatgpt-icon.svg +1 -0
  1430. package/frontend-build/public/claude-ai-icon.svg +1 -0
  1431. package/frontend-build/public/deepseek-logo-icon.svg +1 -0
  1432. package/frontend-build/public/discord-round-color-icon.svg +1 -0
  1433. package/frontend-build/public/file.svg +1 -0
  1434. package/frontend-build/public/globe.svg +1 -0
  1435. package/frontend-build/public/google-gemini-icon.svg +1 -0
  1436. package/frontend-build/public/grok-icon.svg +1 -0
  1437. package/frontend-build/public/next.svg +1 -0
  1438. package/frontend-build/public/ollama-icon.svg +1 -0
  1439. package/frontend-build/public/slack-icon.svg +6 -0
  1440. package/frontend-build/public/teams.svg +2 -0
  1441. package/frontend-build/public/telegram-icon.svg +1 -0
  1442. package/frontend-build/public/vercel.svg +1 -0
  1443. package/frontend-build/public/whatsapp-color-icon.svg +1 -0
  1444. package/frontend-build/public/window.svg +1 -0
  1445. package/frontend-build/server.js +38 -0
  1446. package/package.json +34 -0
@@ -0,0 +1,1482 @@
1
+ """
2
+ Builder tools for the Synapse AI Builder agent.
3
+
4
+ Provides CRUD operations on agents and orchestrations that the builder
5
+ meta-agent can call to design and create multi-agent workflows.
6
+ """
7
+ import json
8
+ import os
9
+ import random
10
+ import string
11
+ import time
12
+ import datetime
13
+ from typing import Any
14
+
15
+ from core.config import DATA_DIR
16
+ from core.json_store import JsonStore
17
+
18
+ _repos_store = JsonStore(os.path.join(DATA_DIR, "repos.json"), cache_ttl=5.0)
19
+ _db_store = JsonStore(os.path.join(DATA_DIR, "db_configs.json"), cache_ttl=5.0)
20
+ _mcp_store = JsonStore(os.path.join(DATA_DIR, "mcp_servers.json"), cache_ttl=5.0)
21
+
22
+
23
+ def _random_id(prefix: str, length: int = 7) -> str:
24
+ chars = string.ascii_lowercase + string.digits
25
+ return prefix + ''.join(random.choices(chars, k=length))
26
+
27
+
28
+ # ─── JSON-string boundary ────────────────────────────────────────────────────
29
+ # Gemini's function-calling layer hangs on deeply-nested object schemas (even
30
+ # typed ones). The saver's step objects have ~25 optional fields and appear as
31
+ # array items of `steps`/`patch` — this consistently stalls turn 1. The fix is
32
+ # to pass steps AND state_schema across the tool boundary as JSON-encoded
33
+ # STRINGS, not nested objects. Gemini generates strings natively and reliably;
34
+ # Python parses them server-side before persistence. All complexity lives in
35
+ # the system prompt's examples, not the schema itself.
36
+
37
+ STEPS_JSON_DESCRIPTION = (
38
+ "JSON-encoded array of step objects. Each step is an object with "
39
+ "{id, name, type, ...type-specific fields}. See the step-type palette "
40
+ "in your system prompt for the full field list per type. Keep each step "
41
+ "lean — include only fields that differ from zero-defaults.\n"
42
+ "Sub-structures MUST be JSON strings inside each step: route_map_json, "
43
+ "route_descriptions_json, parallel_branches_json, human_fields_json.\n"
44
+ "Minimal example (2 agent steps):\n"
45
+ "'[{\"id\":\"step_abc1234\",\"name\":\"Analyse\",\"type\":\"agent\","
46
+ "\"agent_id\":\"agent_123\",\"prompt_template\":\"Summarise {state.user_input}\","
47
+ "\"input_keys\":[\"user_input\"],\"output_key\":\"summary\","
48
+ "\"next_step_id\":\"step_def5678\"},"
49
+ "{\"id\":\"step_def5678\",\"name\":\"Done\",\"type\":\"end\"}]'"
50
+ )
51
+
52
+ PATCH_JSON_DESCRIPTION = (
53
+ "JSON-encoded object with the step fields you want to change. Omit any "
54
+ "field you don't want touched. Use *_json string keys for sub-structures "
55
+ "(route_map_json, parallel_branches_json, human_fields_json, "
56
+ "route_descriptions_json). "
57
+ "Example: '{\"prompt_template\":\"New prompt\",\"next_step_id\":\"step_xyz7890\"}'"
58
+ )
59
+
60
+ STATE_SCHEMA_JSON_DESCRIPTION = (
61
+ "JSON-encoded state-schema object mapping each state key to "
62
+ "{type, default, description}. Allowed types: str, int, float, bool, list, dict. "
63
+ "Example: '{\"user_input\":{\"type\":\"str\",\"default\":\"\",\"description\":\"Initial user message\"}}'. "
64
+ "Pass '{}' (empty object JSON) when the orchestration has no upfront state keys."
65
+ )
66
+
67
+
68
+ # ─── Tool Schemas ─────────────────────────────────────────────────────────────
69
+
70
+ BUILDER_TOOL_SCHEMAS = [
71
+ {
72
+ "type": "function",
73
+ "function": {
74
+ "name": "list_agents",
75
+ "description": "List all available agents with their id, name, type, and tool count. Use this to understand what agents exist before building an orchestration.",
76
+ "parameters": {"type": "object", "properties": {}, "required": []},
77
+ },
78
+ },
79
+ {
80
+ "type": "function",
81
+ "function": {
82
+ "name": "get_agent",
83
+ "description": "Get the full configuration of a specific agent by ID, including its system prompt, tools, and model.",
84
+ "parameters": {
85
+ "type": "object",
86
+ "properties": {
87
+ "agent_id": {"type": "string", "description": "The agent ID (e.g. agent_1774089682630)"}
88
+ },
89
+ "required": ["agent_id"],
90
+ },
91
+ },
92
+ },
93
+ {
94
+ "type": "function",
95
+ "function": {
96
+ "name": "create_agent",
97
+ "description": (
98
+ "Create a new agent and save it. Returns the created agent with its new ID. "
99
+ "Use type='conversational' for general-purpose agents, 'code' for agents that work with repos/files, "
100
+ "'orchestrator' for agents that run orchestrations. "
101
+ "Set tools=['all'] to give access to all tools, or list specific tool names."
102
+ ),
103
+ "parameters": {
104
+ "type": "object",
105
+ "properties": {
106
+ "name": {"type": "string", "description": "Display name for the agent"},
107
+ "description": {"type": "string", "description": "What this agent does"},
108
+ "type": {
109
+ "type": "string",
110
+ "enum": ["conversational", "code", "orchestrator"],
111
+ "description": "Agent type",
112
+ },
113
+ "tools": {
114
+ "type": "array",
115
+ "items": {"type": "string"},
116
+ "description": "List of tool names, or ['all'] for all tools",
117
+ },
118
+ "system_prompt": {
119
+ "type": "string",
120
+ "description": "Detailed system instructions for the agent. Be thorough.",
121
+ },
122
+ "model": {
123
+ "type": "string",
124
+ "description": "Optional LLM model override (e.g. claude-opus-4-6, gemini-2.5-pro). Leave null for system default.",
125
+ },
126
+ "repos": {
127
+ "type": "array",
128
+ "items": {"type": "string"},
129
+ "description": "List of repo IDs (for code agents). Use list_repos to find IDs.",
130
+ },
131
+ "db_configs": {
132
+ "type": "array",
133
+ "items": {"type": "string"},
134
+ "description": "List of DB config IDs (for agents needing database access).",
135
+ },
136
+ },
137
+ "required": ["name", "description", "type", "tools", "system_prompt"],
138
+ },
139
+ },
140
+ },
141
+ {
142
+ "type": "function",
143
+ "function": {
144
+ "name": "create_agents",
145
+ "description": (
146
+ "Create multiple agents at once and save them. Returns the created agents with their new IDs. "
147
+ "Prefer this over calling `create_agent` repeatedly when the plan needs more than one new agent — "
148
+ "one tool call instead of many avoids context bloat and timeout risk. "
149
+ "Each input item supports the same fields as `create_agent` plus a `role` string that is echoed "
150
+ "back in the response so callers can key results by role."
151
+ ),
152
+ "parameters": {
153
+ "type": "object",
154
+ "properties": {
155
+ "agents": {
156
+ "type": "array",
157
+ "description": "Array of agent specs to create. Each item must include name, description, type, tools, system_prompt. Optional: role, model, repos, db_configs.",
158
+ "items": {
159
+ "type": "object",
160
+ "properties": {
161
+ "role": {
162
+ "type": "string",
163
+ "description": "Role label from the plan (echoed back; not persisted on the agent).",
164
+ },
165
+ "name": {"type": "string"},
166
+ "description": {"type": "string"},
167
+ "type": {
168
+ "type": "string",
169
+ "enum": ["conversational", "code", "orchestrator"],
170
+ },
171
+ "tools": {
172
+ "type": "array",
173
+ "items": {"type": "string"},
174
+ },
175
+ "system_prompt": {"type": "string"},
176
+ "model": {"type": "string"},
177
+ "repos": {
178
+ "type": "array",
179
+ "items": {"type": "string"},
180
+ "description": "List of repo IDs (use list_repos to find IDs).",
181
+ },
182
+ "db_configs": {
183
+ "type": "array",
184
+ "items": {"type": "string"},
185
+ },
186
+ },
187
+ "required": ["name", "description", "type", "tools", "system_prompt"],
188
+ },
189
+ },
190
+ },
191
+ "required": ["agents"],
192
+ },
193
+ },
194
+ },
195
+ {
196
+ "type": "function",
197
+ "function": {
198
+ "name": "update_agent",
199
+ "description": "Update specific fields of an existing agent. Only the fields you provide will be changed.",
200
+ "parameters": {
201
+ "type": "object",
202
+ "properties": {
203
+ "agent_id": {"type": "string"},
204
+ "fields": {
205
+ "type": "object",
206
+ "description": "Fields to update (name, description, tools, system_prompt, model, etc.)",
207
+ },
208
+ },
209
+ "required": ["agent_id", "fields"],
210
+ },
211
+ },
212
+ },
213
+ {
214
+ "type": "function",
215
+ "function": {
216
+ "name": "list_all_tools",
217
+ "description": (
218
+ "List available tools across MCP servers and custom tools. "
219
+ "Pass server_name to scope the results to a single server (e.g. 'Google Workspace', 'ext_mcp_github') — "
220
+ "use list_tool_servers first to find exact server names. "
221
+ "Pass limit to cap the number of results (default 50). "
222
+ "Prefer scoped calls (server_name + small limit) over unscoped calls to avoid flooding context."
223
+ ),
224
+ "parameters": {
225
+ "type": "object",
226
+ "properties": {
227
+ "server_name": {
228
+ "type": "string",
229
+ "description": "Optional: return only tools from this server. Use names from list_tool_servers.",
230
+ },
231
+ "limit": {
232
+ "type": "integer",
233
+ "description": "Max tools to return (default 50). Use 20-30 for browsing a single server.",
234
+ },
235
+ },
236
+ "required": [],
237
+ },
238
+ },
239
+ },
240
+ {
241
+ "type": "function",
242
+ "function": {
243
+ "name": "get_tools_detail",
244
+ "description": (
245
+ "Get the full details (name, description, and input schema) for a list of tool names. "
246
+ "Use this after list_all_tools to inspect exact parameter schemas before assigning tools to agents or tool steps."
247
+ ),
248
+ "parameters": {
249
+ "type": "object",
250
+ "properties": {
251
+ "tool_names": {
252
+ "type": "array",
253
+ "items": {"type": "string"},
254
+ "description": "List of tool names to fetch full details for (e.g. [\"brave_search\", \"read_file\"])",
255
+ }
256
+ },
257
+ "required": ["tool_names"],
258
+ },
259
+ },
260
+ },
261
+ {
262
+ "type": "function",
263
+ "function": {
264
+ "name": "list_tool_servers",
265
+ "description": "List all MCP tool servers (native and externally configured) with their names, types, connection status, and tool count. Call this first to discover what integrations are available before using list_server_tools.",
266
+ "parameters": {"type": "object", "properties": {}, "required": []},
267
+ },
268
+ },
269
+ {
270
+ "type": "function",
271
+ "function": {
272
+ "name": "list_server_tools",
273
+ "description": (
274
+ "List all tools provided by a specific MCP server by name (use list_tool_servers first to find names). "
275
+ "Returns tool names and short descriptions. Use this for targeted tool discovery before calling "
276
+ "get_tools_detail for exact parameter schemas."
277
+ ),
278
+ "parameters": {
279
+ "type": "object",
280
+ "properties": {
281
+ "server_name": {
282
+ "type": "string",
283
+ "description": "Server name as returned by list_tool_servers (e.g. 'Google Workspace')",
284
+ }
285
+ },
286
+ "required": ["server_name"],
287
+ },
288
+ },
289
+ },
290
+ {
291
+ "type": "function",
292
+ "function": {
293
+ "name": "list_repos",
294
+ "description": "List all configured code repositories that can be assigned to code agents.",
295
+ "parameters": {"type": "object", "properties": {}, "required": []},
296
+ },
297
+ },
298
+ {
299
+ "type": "function",
300
+ "function": {
301
+ "name": "list_db_configs",
302
+ "description": "List all configured database connections that can be assigned to agents.",
303
+ "parameters": {"type": "object", "properties": {}, "required": []},
304
+ },
305
+ },
306
+ {
307
+ "type": "function",
308
+ "function": {
309
+ "name": "list_orchestrations",
310
+ "description": "List all existing orchestrations with their id, name, description, and step count.",
311
+ "parameters": {"type": "object", "properties": {}, "required": []},
312
+ },
313
+ },
314
+ {
315
+ "type": "function",
316
+ "function": {
317
+ "name": "get_orchestration",
318
+ "description": "Get the full configuration of an orchestration including all steps and their connections.",
319
+ "parameters": {
320
+ "type": "object",
321
+ "properties": {
322
+ "orch_id": {"type": "string", "description": "Orchestration ID"}
323
+ },
324
+ "required": ["orch_id"],
325
+ },
326
+ },
327
+ },
328
+ {
329
+ "type": "function",
330
+ "function": {
331
+ "name": "create_orchestration",
332
+ "description": (
333
+ "Create a complete orchestration workflow in ONE call. Returns the saved orchestration with its id. "
334
+ "Prefer create_orchestration_skeleton + add_steps for plans with more than 3 steps — "
335
+ "splitting the build avoids giant tool-call payloads. Use this single-shot form only for "
336
+ "trivial orchestrations (≤3 steps). Steps are passed as a JSON-encoded string."
337
+ ),
338
+ "parameters": {
339
+ "type": "object",
340
+ "properties": {
341
+ "name": {"type": "string"},
342
+ "description": {"type": "string"},
343
+ "steps_json": {
344
+ "type": "string",
345
+ "description": STEPS_JSON_DESCRIPTION,
346
+ },
347
+ "entry_step_id": {"type": "string", "description": "ID of the first step to execute"},
348
+ "state_schema_json": {
349
+ "type": "string",
350
+ "description": STATE_SCHEMA_JSON_DESCRIPTION,
351
+ },
352
+ "max_total_turns": {"type": "integer", "description": "Global turn limit (default 100)"},
353
+ "timeout_minutes": {"type": "integer", "description": "Overall timeout (default 30)"},
354
+ },
355
+ "required": ["name", "steps_json", "entry_step_id"],
356
+ },
357
+ },
358
+ },
359
+ {
360
+ "type": "function",
361
+ "function": {
362
+ "name": "update_orchestration",
363
+ "description": (
364
+ "Replace an existing orchestration's fields. Prefer set_orchestration_meta / "
365
+ "add_steps / update_step / remove_step for targeted diffs — this full-replace form is the "
366
+ "fallback for sweeping rewrites only. steps_json REPLACES the entire step list when supplied."
367
+ ),
368
+ "parameters": {
369
+ "type": "object",
370
+ "properties": {
371
+ "orch_id": {"type": "string"},
372
+ "name": {"type": "string"},
373
+ "description": {"type": "string"},
374
+ "entry_step_id": {"type": "string"},
375
+ "steps_json": {
376
+ "type": "string",
377
+ "description": "Optional. " + STEPS_JSON_DESCRIPTION,
378
+ },
379
+ "state_schema_json": {
380
+ "type": "string",
381
+ "description": STATE_SCHEMA_JSON_DESCRIPTION,
382
+ },
383
+ "max_total_turns": {"type": "integer"},
384
+ "timeout_minutes": {"type": "integer"},
385
+ },
386
+ "required": ["orch_id"],
387
+ },
388
+ },
389
+ },
390
+ {
391
+ "type": "function",
392
+ "function": {
393
+ "name": "create_orchestration_skeleton",
394
+ "description": (
395
+ "Create an empty orchestration (no steps yet) and return its orch_id. "
396
+ "Follow up with add_steps calls to populate steps incrementally — this is the preferred "
397
+ "pattern for any orchestration with more than ~3 steps because each tool call stays small "
398
+ "and well-typed."
399
+ ),
400
+ "parameters": {
401
+ "type": "object",
402
+ "properties": {
403
+ "name": {"type": "string"},
404
+ "description": {"type": "string"},
405
+ "entry_step_id": {
406
+ "type": "string",
407
+ "description": "Step id of the first step that will be added. May be set before the step itself exists.",
408
+ },
409
+ "state_schema_json": {
410
+ "type": "string",
411
+ "description": STATE_SCHEMA_JSON_DESCRIPTION,
412
+ },
413
+ "max_total_turns": {"type": "integer"},
414
+ "timeout_minutes": {"type": "integer"},
415
+ },
416
+ "required": ["name", "entry_step_id"],
417
+ },
418
+ },
419
+ },
420
+ {
421
+ "type": "function",
422
+ "function": {
423
+ "name": "add_steps",
424
+ "description": (
425
+ "Append a batch of steps to an existing orchestration. Keep batches small (≤5 steps) so "
426
+ "each tool-call payload stays lean. Existing step ids in the orchestration are preserved "
427
+ "— this is additive only. Duplicate step ids are rejected. Steps are passed as a "
428
+ "JSON-encoded string."
429
+ ),
430
+ "parameters": {
431
+ "type": "object",
432
+ "properties": {
433
+ "orch_id": {"type": "string"},
434
+ "steps_json": {
435
+ "type": "string",
436
+ "description": STEPS_JSON_DESCRIPTION,
437
+ },
438
+ },
439
+ "required": ["orch_id", "steps_json"],
440
+ },
441
+ },
442
+ },
443
+ {
444
+ "type": "function",
445
+ "function": {
446
+ "name": "set_orchestration_meta",
447
+ "description": (
448
+ "Patch top-level orchestration metadata only. Does NOT touch the steps list. Use this for "
449
+ "renames, description edits, entry_step_id changes, state_schema updates, or turn/timeout "
450
+ "budget changes. Pass only the fields you want to change."
451
+ ),
452
+ "parameters": {
453
+ "type": "object",
454
+ "properties": {
455
+ "orch_id": {"type": "string"},
456
+ "name": {"type": "string"},
457
+ "description": {"type": "string"},
458
+ "entry_step_id": {"type": "string"},
459
+ "state_schema_json": {
460
+ "type": "string",
461
+ "description": STATE_SCHEMA_JSON_DESCRIPTION,
462
+ },
463
+ "max_total_turns": {"type": "integer"},
464
+ "timeout_minutes": {"type": "integer"},
465
+ },
466
+ "required": ["orch_id"],
467
+ },
468
+ },
469
+ },
470
+ {
471
+ "type": "function",
472
+ "function": {
473
+ "name": "update_step",
474
+ "description": (
475
+ "Merge a partial step patch into an existing step. Only fields present in patch_json are "
476
+ "changed; all other step fields are preserved. Use this for small edits like changing a "
477
+ "prompt_template, adjusting an evaluator's route_map, or retargeting next_step_id."
478
+ ),
479
+ "parameters": {
480
+ "type": "object",
481
+ "properties": {
482
+ "orch_id": {"type": "string"},
483
+ "step_id": {"type": "string"},
484
+ "patch_json": {
485
+ "type": "string",
486
+ "description": PATCH_JSON_DESCRIPTION,
487
+ },
488
+ },
489
+ "required": ["orch_id", "step_id", "patch_json"],
490
+ },
491
+ },
492
+ },
493
+ {
494
+ "type": "function",
495
+ "function": {
496
+ "name": "remove_step",
497
+ "description": "Delete a single step from an orchestration by its step_id.",
498
+ "parameters": {
499
+ "type": "object",
500
+ "properties": {
501
+ "orch_id": {"type": "string"},
502
+ "step_id": {"type": "string"},
503
+ },
504
+ "required": ["orch_id", "step_id"],
505
+ },
506
+ },
507
+ },
508
+ {
509
+ "type": "function",
510
+ "function": {
511
+ "name": "validate_orchestration",
512
+ "description": (
513
+ "Run wiring checks on an orchestration and return {ok, issues}. Checks: entry_step_id "
514
+ "resolves, no duplicate ids, every route_map target + next_step_id + loop_step_ids + "
515
+ "parallel_branches element resolves to an existing step (empty string = end), every "
516
+ "reachable path terminates at an `end` step, and every step's input_keys are either "
517
+ "`user_input` / `user_query` or the `output_key` of some step in the orchestration. Call "
518
+ "this after adding/updating steps; fix any reported issues with update_step/add_steps/"
519
+ "remove_step, then re-validate."
520
+ ),
521
+ "parameters": {
522
+ "type": "object",
523
+ "properties": {
524
+ "orch_id": {"type": "string"},
525
+ },
526
+ "required": ["orch_id"],
527
+ },
528
+ },
529
+ },
530
+ {
531
+ "type": "function",
532
+ "function": {
533
+ "name": "add_single_step",
534
+ "description": (
535
+ "Add ONE step to an orchestration using flat parameters — no JSON encoding needed "
536
+ "for most fields. Only route_map_json, route_descriptions_json, parallel_branches_json, "
537
+ "and human_fields_json are JSON strings. Preferred over add_steps for reliability."
538
+ ),
539
+ "parameters": {
540
+ "type": "object",
541
+ "properties": {
542
+ "orch_id": {"type": "string", "description": "Orchestration ID from create_orchestration_skeleton"},
543
+ "step_id": {"type": "string", "description": "Unique step ID (step_ + 7 alphanumeric chars)"},
544
+ "name": {"type": "string", "description": "Human-readable step name"},
545
+ "type": {
546
+ "type": "string",
547
+ "enum": ["agent", "llm", "evaluator", "parallel", "merge", "human", "tool", "loop", "transform", "end"],
548
+ "description": "Step type",
549
+ },
550
+ "agent_id": {"type": "string", "description": "Agent ID (required for agent/tool steps)"},
551
+ "prompt_template": {"type": "string", "description": "Prompt with {state.key} placeholders (for agent/llm steps)"},
552
+ "input_keys": {
553
+ "type": "array", "items": {"type": "string"},
554
+ "description": "State keys this step reads",
555
+ },
556
+ "output_key": {"type": "string", "description": "State key this step writes to"},
557
+ "next_step_id": {"type": "string", "description": "Next step ID. NOT used for evaluator steps (routing via route_map)."},
558
+ "evaluator_prompt": {"type": "string", "description": "Routing instructions for evaluator steps"},
559
+ "route_map_json": {
560
+ "type": "string",
561
+ "description": "JSON string mapping route labels to step IDs. Example: '{\"approved\":\"step_abc\",\"rejected\":\"step_def\"}'",
562
+ },
563
+ "route_descriptions_json": {
564
+ "type": "string",
565
+ "description": "JSON string mapping route labels to descriptions. Example: '{\"approved\":\"Ready to go\",\"rejected\":\"Needs work\"}'",
566
+ },
567
+ "parallel_branches_json": {
568
+ "type": "string",
569
+ "description": "JSON string of branch arrays. Example: '[[\"step_a\"],[\"step_b\"]]'",
570
+ },
571
+ "human_prompt": {"type": "string", "description": "Prompt shown to user (human steps)"},
572
+ "human_fields_json": {
573
+ "type": "string",
574
+ "description": "JSON string of field definitions. Example: '[{\"name\":\"feedback\",\"type\":\"textarea\",\"label\":\"Your feedback\"}]'",
575
+ },
576
+ "forced_tool": {"type": "string", "description": "Tool name for tool steps"},
577
+ "merge_strategy": {
578
+ "type": "string", "enum": ["concat", "list", "dict"],
579
+ "description": "How to combine inputs (merge steps)",
580
+ },
581
+ "loop_step_ids": {
582
+ "type": "array", "items": {"type": "string"},
583
+ "description": "Step IDs in loop body (loop steps)",
584
+ },
585
+ "loop_count": {"type": "integer", "description": "Number of loop iterations"},
586
+ "transform_code": {"type": "string", "description": "Python code: reads `state`, assigns `result` (transform steps)"},
587
+ "max_turns": {"type": "integer", "description": "Max agent turns (default 15)"},
588
+ "timeout_seconds": {"type": "integer", "description": "Step timeout (default 300)"},
589
+ "model": {"type": "string", "description": "LLM model override for this step"},
590
+ },
591
+ "required": ["orch_id", "step_id", "name", "type"],
592
+ },
593
+ },
594
+ },
595
+ {
596
+ "type": "function",
597
+ "function": {
598
+ "name": "add_multiple_steps",
599
+ "description": (
600
+ "Add multiple steps to an orchestration in one call. Each step uses flat fields "
601
+ "(same as add_single_step). Batch up to 5 plain steps (agent, llm, end, merge) per "
602
+ "call. For evaluator/parallel/human steps, prefer add_single_step (one at a time)."
603
+ ),
604
+ "parameters": {
605
+ "type": "object",
606
+ "properties": {
607
+ "orch_id": {"type": "string", "description": "Orchestration ID"},
608
+ "steps": {
609
+ "type": "array",
610
+ "description": "Array of step objects. Each has the same fields as add_single_step.",
611
+ "items": {
612
+ "type": "object",
613
+ "properties": {
614
+ "step_id": {"type": "string", "description": "Unique step ID (step_ + 7 alphanumeric)"},
615
+ "name": {"type": "string", "description": "Step name"},
616
+ "type": {
617
+ "type": "string",
618
+ "enum": ["agent", "llm", "evaluator", "parallel", "merge", "human", "tool", "loop", "transform", "end"],
619
+ },
620
+ "agent_id": {"type": "string"},
621
+ "prompt_template": {"type": "string"},
622
+ "input_keys": {"type": "array", "items": {"type": "string"}},
623
+ "output_key": {"type": "string"},
624
+ "next_step_id": {"type": "string"},
625
+ "evaluator_prompt": {"type": "string"},
626
+ "route_map_json": {"type": "string", "description": "JSON string: '{\"label\":\"step_id\"}'"},
627
+ "route_descriptions_json": {"type": "string", "description": "JSON string: '{\"label\":\"desc\"}'"},
628
+ "parallel_branches_json": {"type": "string", "description": "JSON string: '[[\"step_a\"],[\"step_b\"]]'"},
629
+ "human_prompt": {"type": "string"},
630
+ "human_fields_json": {"type": "string"},
631
+ "forced_tool": {"type": "string"},
632
+ "merge_strategy": {"type": "string", "enum": ["concat", "list", "dict"]},
633
+ "loop_step_ids": {"type": "array", "items": {"type": "string"}},
634
+ "loop_count": {"type": "integer"},
635
+ "transform_code": {"type": "string"},
636
+ "max_turns": {"type": "integer"},
637
+ "timeout_seconds": {"type": "integer"},
638
+ "model": {"type": "string"},
639
+ },
640
+ "required": ["step_id", "name", "type"],
641
+ },
642
+ },
643
+ },
644
+ "required": ["orch_id", "steps"],
645
+ },
646
+ },
647
+ },
648
+ ]
649
+
650
+
651
+ # Set of all builder-tool names. Consumed by tool dispatch paths
652
+ # (react_engine, ToolStepExecutor) to route these to execute_builder_tool
653
+ # instead of MCP / custom-tool execution, and by aggregate_all_tools to
654
+ # expose them as first-class tools that any agent can declare.
655
+ BUILDER_TOOL_NAMES = {t["function"]["name"] for t in BUILDER_TOOL_SCHEMAS}
656
+
657
+
658
+ # ─── Tool Implementations ──────────────────────────────────────────────────────
659
+
660
+ async def execute_builder_tool(tool_name: str, args: dict, server_module: Any) -> str:
661
+ """Dispatch a builder tool call and return a JSON string result."""
662
+ try:
663
+ result = await _dispatch(tool_name, args, server_module)
664
+ return json.dumps(result, default=str)
665
+ except Exception as e:
666
+ return json.dumps({"error": str(e)})
667
+
668
+
669
+ async def _dispatch(tool_name: str, args: dict, server_module: Any) -> Any:
670
+ from core.routes.agents import load_user_agents, save_user_agents
671
+ from core.routes.orchestrations import load_orchestrations, save_orchestrations
672
+
673
+ if tool_name == "list_agents":
674
+ agents = load_user_agents()
675
+ return [
676
+ {
677
+ "id": a.get("id"),
678
+ "name": a.get("name"),
679
+ "type": a.get("type"),
680
+ "description": a.get("description", ""),
681
+ "tool_count": len(a.get("tools", [])),
682
+ "model": a.get("model"),
683
+ }
684
+ for a in agents
685
+ if a.get("type") != "builder" # hide the builder itself
686
+ ]
687
+
688
+ elif tool_name == "get_agent":
689
+ agents = load_user_agents()
690
+ agent = next((a for a in agents if a["id"] == args["agent_id"]), None)
691
+ if not agent:
692
+ return {"error": f"Agent '{args['agent_id']}' not found"}
693
+ return agent
694
+
695
+ elif tool_name == "create_agent":
696
+ agents = load_user_agents()
697
+ new_id = f"agent_{int(time.time() * 1000)}"
698
+ agent = {
699
+ "id": new_id,
700
+ "name": args["name"],
701
+ "description": args.get("description", ""),
702
+ "avatar": "default",
703
+ "type": args.get("type", "conversational"),
704
+ "tools": args.get("tools", ["all"]),
705
+ "repos": args.get("repos", []),
706
+ "db_configs": args.get("db_configs", []),
707
+ "system_prompt": args.get("system_prompt", ""),
708
+ "orchestration_id": None,
709
+ "model": args.get("model") or None,
710
+ "provider": None,
711
+ "max_turns": None,
712
+ }
713
+ agents.append(agent)
714
+ save_user_agents(agents)
715
+ return {"status": "created", "agent": agent}
716
+
717
+ elif tool_name == "create_agents":
718
+ specs = args.get("agents") or []
719
+ if not isinstance(specs, list) or not specs:
720
+ return {"error": "agents must be a non-empty array of agent specs"}
721
+ agents = load_user_agents()
722
+ existing_ids = {a.get("id") for a in agents}
723
+ created = []
724
+ errors = []
725
+ for i, spec in enumerate(specs):
726
+ if not isinstance(spec, dict):
727
+ errors.append({"index": i, "error": "spec is not an object"})
728
+ continue
729
+ for field in ("name", "description", "type", "tools", "system_prompt"):
730
+ if field not in spec:
731
+ errors.append({"index": i, "role": spec.get("role"), "error": f"missing required field '{field}'"})
732
+ break
733
+ else:
734
+ # Guarantee uniqueness even when called repeatedly in the same millisecond.
735
+ new_id = _random_id("agent_", length=10)
736
+ while new_id in existing_ids:
737
+ new_id = _random_id("agent_", length=10)
738
+ existing_ids.add(new_id)
739
+ agent = {
740
+ "id": new_id,
741
+ "name": spec["name"],
742
+ "description": spec.get("description", ""),
743
+ "avatar": "default",
744
+ "type": spec.get("type", "conversational"),
745
+ "tools": spec.get("tools", ["all"]),
746
+ "repos": spec.get("repos", []) or [],
747
+ "db_configs": spec.get("db_configs", []) or [],
748
+ "system_prompt": spec.get("system_prompt", ""),
749
+ "orchestration_id": None,
750
+ "model": spec.get("model") or None,
751
+ "provider": None,
752
+ "max_turns": None,
753
+ }
754
+ agents.append(agent)
755
+ created.append({
756
+ "role": spec.get("role"),
757
+ "id": new_id,
758
+ "name": agent["name"],
759
+ "type": agent["type"],
760
+ "repos": agent["repos"],
761
+ })
762
+ if created:
763
+ save_user_agents(agents)
764
+ return {"status": "created", "agents": created, "errors": errors}
765
+
766
+ elif tool_name == "update_agent":
767
+ agents = load_user_agents()
768
+ idx = next((i for i, a in enumerate(agents) if a["id"] == args["agent_id"]), None)
769
+ if idx is None:
770
+ return {"error": f"Agent '{args['agent_id']}' not found"}
771
+ agents[idx].update(args.get("fields", {}))
772
+ save_user_agents(agents)
773
+ return {"status": "updated", "agent": agents[idx]}
774
+
775
+ elif tool_name == "list_all_tools":
776
+ server_filter = (args.get("server_name") or "").strip()
777
+ limit = int(args.get("limit") or 50)
778
+ try:
779
+ if server_filter:
780
+ # Scoped: query the specific server's session directly
781
+ session = server_module.agent_sessions.get(server_filter) or \
782
+ server_module.agent_sessions.get(f"ext_mcp_{server_filter}")
783
+ if not session:
784
+ lowered = server_filter.lower().replace(" ", "_")
785
+ for key in server_module.agent_sessions:
786
+ if lowered in key.lower():
787
+ session = server_module.agent_sessions[key]
788
+ break
789
+ if not session:
790
+ return {"error": f"Server '{server_filter}' not found. Call list_tool_servers to see available names."}
791
+ tools_result = await session.list_tools()
792
+ return [
793
+ {"name": t.name, "description": (t.description or "")[:120]}
794
+ for t in tools_result.tools[:limit]
795
+ ]
796
+ else:
797
+ from core.tools import aggregate_all_tools
798
+ from core.routes.tools import load_custom_tools
799
+ from core.routes.agents import load_user_agents as _lau
800
+ _agents = _lau()
801
+ active_agent = next((a for a in _agents if a.get("type") != "builder"), _agents[0] if _agents else {})
802
+ custom_tools = load_custom_tools()
803
+ all_tools, _, _, _ = await aggregate_all_tools(
804
+ server_module.agent_sessions, active_agent, custom_tools
805
+ )
806
+ return [
807
+ {"name": t.name, "description": (t.description or "")[:120]}
808
+ for t in all_tools[:limit]
809
+ ]
810
+ except Exception as e:
811
+ return {"error": f"Could not list tools: {e}"}
812
+
813
+ elif tool_name == "get_tools_detail":
814
+ try:
815
+ from core.tools import aggregate_all_tools
816
+ from core.routes.tools import load_custom_tools
817
+ from core.routes.agents import load_user_agents as _lau
818
+ _agents = _lau()
819
+ active_agent = next((a for a in _agents if a.get("type") != "builder"), _agents[0] if _agents else {})
820
+ custom_tools = load_custom_tools()
821
+ all_tools, _, _, _ = await aggregate_all_tools(
822
+ server_module.agent_sessions, active_agent, custom_tools
823
+ )
824
+ requested = set(args.get("tool_names", []))
825
+ result = {}
826
+ for t in all_tools:
827
+ if t.name in requested:
828
+ result[t.name] = {
829
+ "name": t.name,
830
+ "description": t.description or "",
831
+ "inputSchema": t.inputSchema if hasattr(t, "inputSchema") else {},
832
+ }
833
+ missing = requested - result.keys()
834
+ if missing:
835
+ result["_not_found"] = sorted(missing)
836
+ return result
837
+ except Exception as e:
838
+ return {"error": f"Could not fetch tool details: {e}"}
839
+
840
+ elif tool_name == "list_tool_servers":
841
+ ext_servers = _mcp_store.load()
842
+ if not isinstance(ext_servers, list):
843
+ ext_servers = []
844
+ result = [
845
+ {
846
+ "name": s.get("name"),
847
+ "label": s.get("label", s.get("name")),
848
+ "type": s.get("server_type", "stdio"),
849
+ "status": s.get("status", "unknown"),
850
+ "tool_count": None,
851
+ }
852
+ for s in ext_servers
853
+ ]
854
+ # Also include MCP sessions started programmatically (not in mcp_store.json).
855
+ # Sessions keyed as "ext_mcp_<name>" are external — strip the prefix and
856
+ # mark them as external so callers know to use "name__tool_name" format.
857
+ # Sessions without that prefix are native (no tool-name prefix needed).
858
+ ext_keys = {f"ext_mcp_{s.get('name')}" for s in ext_servers}
859
+ for sess_name, session in server_module.agent_sessions.items():
860
+ if sess_name in ext_keys:
861
+ continue
862
+ try:
863
+ tools_result = await session.list_tools()
864
+ tool_count = len(tools_result.tools)
865
+ except Exception:
866
+ tool_count = 0
867
+ is_ext = sess_name.startswith("ext_mcp_")
868
+ display_name = sess_name[len("ext_mcp_"):] if is_ext else sess_name
869
+ result.append({
870
+ "name": display_name,
871
+ "label": display_name.replace("_", " ").title(),
872
+ "type": "external_mcp" if is_ext else "native_mcp",
873
+ "status": "running",
874
+ "tool_count": tool_count,
875
+ })
876
+ return result
877
+
878
+ elif tool_name == "list_server_tools":
879
+ server_name = args.get("server_name", "")
880
+ session = server_module.agent_sessions.get(server_name) or \
881
+ server_module.agent_sessions.get(f"ext_mcp_{server_name}")
882
+ if not session:
883
+ lowered = server_name.lower().replace(" ", "_")
884
+ for key in server_module.agent_sessions:
885
+ if lowered in key.lower():
886
+ session = server_module.agent_sessions[key]
887
+ break
888
+ if not session:
889
+ return {"error": f"Server '{server_name}' not found. Call list_tool_servers to see available names."}
890
+ try:
891
+ tools_result = await session.list_tools()
892
+ return [
893
+ {"name": t.name, "description": (t.description or "")[:150]}
894
+ for t in tools_result.tools
895
+ ]
896
+ except Exception as e:
897
+ return {"error": f"Could not list tools for server '{server_name}': {e}"}
898
+
899
+ elif tool_name == "list_repos":
900
+ repos = _repos_store.load()
901
+ if not isinstance(repos, list):
902
+ return []
903
+ return [
904
+ {"id": r.get("id"), "name": r.get("name", r.get("path", "")), "path": r.get("path", "")}
905
+ for r in repos
906
+ ]
907
+
908
+ elif tool_name == "list_db_configs":
909
+ dbs = _db_store.load()
910
+ if not isinstance(dbs, list):
911
+ return []
912
+ return [
913
+ {"id": d.get("id"), "name": d.get("name", ""), "type": d.get("type", "")}
914
+ for d in dbs
915
+ ]
916
+
917
+ elif tool_name == "list_orchestrations":
918
+ orchs = load_orchestrations()
919
+ return [
920
+ {
921
+ "id": o.get("id"),
922
+ "name": o.get("name"),
923
+ "description": o.get("description", ""),
924
+ "step_count": len(o.get("steps", [])),
925
+ }
926
+ for o in orchs
927
+ ]
928
+
929
+ elif tool_name == "get_orchestration":
930
+ orchs = load_orchestrations()
931
+ orch = next((o for o in orchs if o["id"] == args["orch_id"]), None)
932
+ if not orch:
933
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
934
+ return orch
935
+
936
+ elif tool_name == "create_orchestration":
937
+ orchs = load_orchestrations()
938
+ orch_id = _random_id("orch_")
939
+ now = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
940
+
941
+ _normalize_state_schema_arg(args)
942
+ _normalize_steps_arg(args)
943
+ steps = args.get("steps", [])
944
+ if not isinstance(steps, list) or not steps:
945
+ return {"error": "steps_json must decode to a non-empty JSON array of step objects"}
946
+ steps = _fill_step_defaults(steps)
947
+
948
+ orch = {
949
+ "id": orch_id,
950
+ "name": args["name"],
951
+ "description": args.get("description", ""),
952
+ "avatar": "default",
953
+ "steps": steps,
954
+ "entry_step_id": args["entry_step_id"],
955
+ "state_schema": args.get("state_schema", {}),
956
+ "max_total_turns": args.get("max_total_turns", 100),
957
+ "max_total_cost_usd": None,
958
+ "timeout_minutes": args.get("timeout_minutes", 30),
959
+ "trigger": "manual",
960
+ "created_at": now,
961
+ "updated_at": now,
962
+ }
963
+ orchs.append(orch)
964
+ save_orchestrations(orchs)
965
+ return {"status": "created", "orchestration": orch}
966
+
967
+ elif tool_name == "update_orchestration":
968
+ orchs = load_orchestrations()
969
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == args["orch_id"]), None)
970
+ if idx is None:
971
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
972
+ # update_orchestration now accepts flat top-level fields (like the other
973
+ # builder tools), falling back to legacy `fields` for back-compat.
974
+ legacy_fields = args.get("fields") or {}
975
+ fields = dict(legacy_fields)
976
+ for key in ("name", "description", "entry_step_id", "state_schema_json",
977
+ "steps_json", "max_total_turns", "timeout_minutes"):
978
+ if key in args and args[key] is not None:
979
+ fields[key] = args[key]
980
+ _normalize_state_schema_arg(fields)
981
+ _normalize_steps_arg(fields)
982
+ if "steps" in fields and isinstance(fields["steps"], list):
983
+ fields["steps"] = _fill_step_defaults(fields["steps"])
984
+ if not fields or set(fields.keys()) - {"orch_id"} == set():
985
+ return {"error": "no updatable fields supplied"}
986
+ # Drop orch_id if it snuck in
987
+ fields.pop("orch_id", None)
988
+ orchs[idx].update(fields)
989
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
990
+ save_orchestrations(orchs)
991
+ return {"status": "updated", "orchestration": orchs[idx]}
992
+
993
+ elif tool_name == "create_orchestration_skeleton":
994
+ orchs = load_orchestrations()
995
+ orch_id = _random_id("orch_")
996
+ now = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
997
+ _normalize_state_schema_arg(args)
998
+ orch = {
999
+ "id": orch_id,
1000
+ "name": args["name"],
1001
+ "description": args.get("description", ""),
1002
+ "avatar": "default",
1003
+ "steps": [],
1004
+ "entry_step_id": args["entry_step_id"],
1005
+ "state_schema": args.get("state_schema", {}),
1006
+ "max_total_turns": args.get("max_total_turns", 100),
1007
+ "max_total_cost_usd": None,
1008
+ "timeout_minutes": args.get("timeout_minutes", 30),
1009
+ "trigger": "manual",
1010
+ "created_at": now,
1011
+ "updated_at": now,
1012
+ }
1013
+ orchs.append(orch)
1014
+ save_orchestrations(orchs)
1015
+ return {"status": "created", "orchestration": orch}
1016
+
1017
+ elif tool_name == "add_steps":
1018
+ orchs = load_orchestrations()
1019
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == args["orch_id"]), None)
1020
+ if idx is None:
1021
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
1022
+ raw_steps = args.get("steps_json", args.get("steps", ""))
1023
+ _normalize_steps_arg(args)
1024
+ new_steps = args.get("steps", []) or []
1025
+ if not isinstance(new_steps, list) or not new_steps:
1026
+ # Give the LLM a preview of what it sent so it can self-correct
1027
+ preview = str(raw_steps)[:300] if raw_steps else "(empty)"
1028
+ return {
1029
+ "error": f"steps_json must decode to a non-empty JSON array of step objects. "
1030
+ f"Received: {preview}... "
1031
+ f"Hint: ensure all inner quotes are escaped as \\\" and inner *_json values use \\\\\\\" for their quotes."
1032
+ }
1033
+ existing = orchs[idx].get("steps", []) or []
1034
+ existing_ids = {s.get("id") for s in existing}
1035
+ incoming_ids = [s.get("id") for s in new_steps if s.get("id")]
1036
+ dup = existing_ids.intersection(incoming_ids)
1037
+ if dup:
1038
+ return {"error": f"Duplicate step ids: {sorted(dup)}"}
1039
+ # Offset canvas positions so newly-added steps continue the zig-zag
1040
+ # pattern past any existing steps.
1041
+ offset = len(existing)
1042
+ filled = _fill_step_defaults(new_steps)
1043
+ for i, s in enumerate(filled):
1044
+ s["position_x"] = _POS_X_START + (offset + i) * _POS_X_STEP
1045
+ s["position_y"] = _zigzag_y(offset + i)
1046
+ orchs[idx]["steps"] = existing + filled
1047
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1048
+ save_orchestrations(orchs)
1049
+ return {
1050
+ "status": "appended",
1051
+ "added_step_ids": [s["id"] for s in filled],
1052
+ "total_steps": len(orchs[idx]["steps"]),
1053
+ }
1054
+
1055
+ elif tool_name == "add_single_step":
1056
+ # Flat-parameter tool: assemble a step dict from individual args,
1057
+ # then reuse the same pipeline as add_steps.
1058
+ orchs = load_orchestrations()
1059
+ orch_id = args.get("orch_id")
1060
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == orch_id), None)
1061
+ if idx is None:
1062
+ return {"error": f"Orchestration '{orch_id}' not found"}
1063
+
1064
+ step_id = args.get("step_id")
1065
+ if not step_id:
1066
+ return {"error": "step_id is required"}
1067
+ step_name = args.get("name")
1068
+ step_type = args.get("type")
1069
+ if not step_name or not step_type:
1070
+ return {"error": "name and type are required"}
1071
+
1072
+ # Check duplicate
1073
+ existing = orchs[idx].get("steps", []) or []
1074
+ if any(s.get("id") == step_id for s in existing):
1075
+ return {"error": f"Duplicate step id: {step_id}"}
1076
+
1077
+ # Build step dict from flat args (skip orch_id)
1078
+ step = {}
1079
+ for k, v in args.items():
1080
+ if k == "orch_id" or v is None:
1081
+ continue
1082
+ step[k] = v
1083
+ # Rename flat keys to match internal format
1084
+ step["id"] = step.pop("step_id", step_id)
1085
+
1086
+ # Normalize *_json fields (route_map_json → route_map, etc.)
1087
+ step = _normalize_step_inputs(step)
1088
+ filled = _fill_step_defaults([step])
1089
+ # Position continues the zig-zag past any existing steps.
1090
+ offset = len(existing)
1091
+ filled[0]["position_x"] = _POS_X_START + offset * _POS_X_STEP
1092
+ filled[0]["position_y"] = _zigzag_y(offset)
1093
+ orchs[idx]["steps"] = existing + filled
1094
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1095
+ save_orchestrations(orchs)
1096
+ return {
1097
+ "status": "step_added",
1098
+ "step_id": filled[0]["id"],
1099
+ "total_steps": len(orchs[idx]["steps"]),
1100
+ }
1101
+
1102
+ elif tool_name == "add_multiple_steps":
1103
+ # Batch version of add_single_step — takes a native array of step objects.
1104
+ orchs = load_orchestrations()
1105
+ orch_id = args.get("orch_id")
1106
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == orch_id), None)
1107
+ if idx is None:
1108
+ return {"error": f"Orchestration '{orch_id}' not found"}
1109
+
1110
+ raw_steps = args.get("steps") or []
1111
+ if not isinstance(raw_steps, list) or not raw_steps:
1112
+ return {"error": "steps must be a non-empty array of step objects"}
1113
+
1114
+ existing = orchs[idx].get("steps", []) or []
1115
+ existing_ids = {s.get("id") for s in existing}
1116
+
1117
+ processed = []
1118
+ for raw in raw_steps:
1119
+ if not isinstance(raw, dict):
1120
+ return {"error": f"Each step must be an object, got {type(raw).__name__}"}
1121
+ sid = raw.get("step_id")
1122
+ if not sid or not raw.get("name") or not raw.get("type"):
1123
+ return {"error": f"Each step needs step_id, name, and type. Got: {raw}"}
1124
+ if sid in existing_ids:
1125
+ return {"error": f"Duplicate step id: {sid}"}
1126
+ existing_ids.add(sid)
1127
+ # Build step dict (rename step_id → id, drop None values)
1128
+ step = {k: v for k, v in raw.items() if v is not None}
1129
+ step["id"] = step.pop("step_id", sid)
1130
+ step = _normalize_step_inputs(step)
1131
+ processed.append(step)
1132
+
1133
+ filled = _fill_step_defaults(processed)
1134
+ offset = len(existing)
1135
+ for i, s in enumerate(filled):
1136
+ s["position_x"] = _POS_X_START + (offset + i) * _POS_X_STEP
1137
+ s["position_y"] = _zigzag_y(offset + i)
1138
+ orchs[idx]["steps"] = existing + filled
1139
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1140
+ save_orchestrations(orchs)
1141
+ return {
1142
+ "status": "steps_added",
1143
+ "added_step_ids": [s["id"] for s in filled],
1144
+ "total_steps": len(orchs[idx]["steps"]),
1145
+ }
1146
+
1147
+ elif tool_name == "set_orchestration_meta":
1148
+ orchs = load_orchestrations()
1149
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == args["orch_id"]), None)
1150
+ if idx is None:
1151
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
1152
+ # Accept flat top-level fields (preferred); legacy `fields` wrapper still
1153
+ # works for callers that haven't migrated yet.
1154
+ raw_fields = dict(args.get("fields") or {})
1155
+ for key in ("name", "description", "entry_step_id", "state_schema_json",
1156
+ "max_total_turns", "timeout_minutes"):
1157
+ if key in args and args[key] is not None:
1158
+ raw_fields[key] = args[key]
1159
+ _normalize_state_schema_arg(raw_fields)
1160
+ allowed = {"name", "description", "entry_step_id", "state_schema", "max_total_turns", "timeout_minutes"}
1161
+ fields = {k: v for k, v in raw_fields.items() if k in allowed}
1162
+ if not fields:
1163
+ return {"error": f"No allowed meta fields to set. Allowed: {sorted(allowed)}"}
1164
+ orchs[idx].update(fields)
1165
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1166
+ save_orchestrations(orchs)
1167
+ return {"status": "meta_updated", "fields": list(fields.keys())}
1168
+
1169
+ elif tool_name == "update_step":
1170
+ orchs = load_orchestrations()
1171
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == args["orch_id"]), None)
1172
+ if idx is None:
1173
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
1174
+ step_id = args["step_id"]
1175
+ patch = _normalize_patch_arg(args)
1176
+ if not isinstance(patch, dict) or not patch:
1177
+ return {"error": "patch_json must decode to a non-empty JSON object of step fields"}
1178
+ steps = orchs[idx].get("steps", []) or []
1179
+ sidx = next((i for i, s in enumerate(steps) if s.get("id") == step_id), None)
1180
+ if sidx is None:
1181
+ return {"error": f"Step '{step_id}' not found in orchestration '{args['orch_id']}'"}
1182
+ merged = {**steps[sidx], **patch}
1183
+ merged["id"] = step_id # id is immutable via patch
1184
+ steps[sidx] = _fill_step_defaults([merged])[0]
1185
+ orchs[idx]["steps"] = steps
1186
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1187
+ save_orchestrations(orchs)
1188
+ return {"status": "step_updated", "step": steps[sidx]}
1189
+
1190
+ elif tool_name == "remove_step":
1191
+ orchs = load_orchestrations()
1192
+ idx = next((i for i, o in enumerate(orchs) if o["id"] == args["orch_id"]), None)
1193
+ if idx is None:
1194
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
1195
+ step_id = args["step_id"]
1196
+ steps = orchs[idx].get("steps", []) or []
1197
+ before = len(steps)
1198
+ steps = [s for s in steps if s.get("id") != step_id]
1199
+ if len(steps) == before:
1200
+ return {"error": f"Step '{step_id}' not found in orchestration '{args['orch_id']}'"}
1201
+ orchs[idx]["steps"] = steps
1202
+ orchs[idx]["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
1203
+ save_orchestrations(orchs)
1204
+ return {"status": "step_removed", "step_id": step_id, "remaining_steps": len(steps)}
1205
+
1206
+ elif tool_name == "validate_orchestration":
1207
+ orchs = load_orchestrations()
1208
+ orch = next((o for o in orchs if o["id"] == args["orch_id"]), None)
1209
+ if not orch:
1210
+ return {"error": f"Orchestration '{args['orch_id']}' not found"}
1211
+ return _validate_orchestration(orch)
1212
+
1213
+ else:
1214
+ return {"error": f"Unknown tool: {tool_name}"}
1215
+
1216
+
1217
+ def _validate_orchestration(orch: dict) -> dict:
1218
+ """Return {"ok": bool, "issues": [str, ...]} describing wiring problems.
1219
+
1220
+ Checks (matches the engine's expectations in core.orchestration.engine):
1221
+ - entry_step_id resolves to a real step
1222
+ - no duplicate step ids
1223
+ - every next_step_id / route_map target / loop_step_ids entry /
1224
+ parallel_branches element resolves to a real step (empty string = end)
1225
+ - every reachable path terminates at an `end`-type step
1226
+ - every step's input_keys are either `user_input` / `user_query` or the
1227
+ `output_key` of some step in the orchestration (a key with no writer
1228
+ anywhere is meaningless — it can only ever be its schema default)
1229
+ """
1230
+ issues: list[str] = []
1231
+ steps = orch.get("steps", []) or []
1232
+ if not steps:
1233
+ return {"ok": False, "issues": ["Orchestration has no steps."]}
1234
+
1235
+ by_id: dict[str, dict] = {}
1236
+ for s in steps:
1237
+ sid = s.get("id") or ""
1238
+ if not sid:
1239
+ issues.append("Found a step with no id.")
1240
+ continue
1241
+ if sid in by_id:
1242
+ issues.append(f"Duplicate step id '{sid}'.")
1243
+ by_id[sid] = s
1244
+
1245
+ entry = orch.get("entry_step_id") or ""
1246
+ if not entry:
1247
+ issues.append("entry_step_id is empty.")
1248
+ elif entry not in by_id:
1249
+ issues.append(f"entry_step_id '{entry}' does not match any step.")
1250
+
1251
+ def _ref_ok(ref: str | None) -> bool:
1252
+ # Empty string / None means "end of orchestration" — acceptable.
1253
+ return not ref or ref in by_id
1254
+
1255
+ for s in steps:
1256
+ sid = s.get("id", "?")
1257
+ stype = s.get("type")
1258
+ nxt = s.get("next_step_id")
1259
+ if nxt and not _ref_ok(nxt):
1260
+ issues.append(f"Step '{sid}' next_step_id '{nxt}' points to unknown step.")
1261
+ for label, target in (s.get("route_map") or {}).items():
1262
+ if target and not _ref_ok(target):
1263
+ issues.append(
1264
+ f"Step '{sid}' route_map[{label!r}] → '{target}' points to unknown step."
1265
+ )
1266
+ for lsid in s.get("loop_step_ids") or []:
1267
+ if not _ref_ok(lsid):
1268
+ issues.append(f"Step '{sid}' loop body references unknown step '{lsid}'.")
1269
+ for branch in s.get("parallel_branches") or []:
1270
+ for bsid in branch:
1271
+ if not _ref_ok(bsid):
1272
+ issues.append(
1273
+ f"Step '{sid}' parallel branch references unknown step '{bsid}'."
1274
+ )
1275
+ if stype == "agent" and not s.get("agent_id"):
1276
+ issues.append(f"Agent step '{sid}' has no agent_id.")
1277
+ if stype == "evaluator" and not (s.get("route_map") or {}):
1278
+ issues.append(f"Evaluator step '{sid}' has an empty route_map.")
1279
+ if stype == "tool" and not s.get("forced_tool"):
1280
+ issues.append(f"Tool step '{sid}' has no forced_tool.")
1281
+ if stype == "human" and not s.get("human_prompt"):
1282
+ issues.append(f"Human step '{sid}' has no human_prompt.")
1283
+ if stype == "transform" and not s.get("transform_code"):
1284
+ issues.append(f"Transform step '{sid}' has no transform_code.")
1285
+
1286
+ # Writer-membership check: every input_key must be `user_input` /
1287
+ # `user_query` (engine-seeded) or the `output_key` of some step. Branch
1288
+ # conditioning is not the validator's concern — the engine falls back to
1289
+ # the schema default on unset reads, which is the intended pattern for
1290
+ # optional branch outputs and iterative refinement loops.
1291
+ FREE_KEYS = {"user_input", "user_query"}
1292
+ writable: set[str] = set(FREE_KEYS)
1293
+ for s in steps:
1294
+ ok = s.get("output_key")
1295
+ if ok:
1296
+ writable.add(ok)
1297
+ for s in steps:
1298
+ sid = s.get("id", "?")
1299
+ for k in s.get("input_keys") or []:
1300
+ if k not in writable:
1301
+ issues.append(
1302
+ f"Step '{sid}' reads input_key '{k}' but no step writes it — either use an existing output_key or delete the read."
1303
+ )
1304
+
1305
+ # Reachability walk: every reachable step must be able to hit an `end`.
1306
+ # Dead-end non-end steps (no next_step_id / routes / branches) are bugs.
1307
+ if entry in by_id:
1308
+ from collections import deque
1309
+ visited: set[str] = set()
1310
+ queue = deque([entry])
1311
+ while queue:
1312
+ cur = queue.popleft()
1313
+ if cur in visited:
1314
+ continue
1315
+ visited.add(cur)
1316
+ s = by_id.get(cur)
1317
+ if not s:
1318
+ continue
1319
+ if s.get("type") == "end":
1320
+ continue
1321
+ successors: list[str] = []
1322
+ nxt = s.get("next_step_id")
1323
+ if nxt and nxt in by_id:
1324
+ successors.append(nxt)
1325
+ for target in (s.get("route_map") or {}).values():
1326
+ if target and target in by_id:
1327
+ successors.append(target)
1328
+ for lsid in s.get("loop_step_ids") or []:
1329
+ if lsid in by_id:
1330
+ successors.append(lsid)
1331
+ for branch in s.get("parallel_branches") or []:
1332
+ for bsid in branch:
1333
+ if bsid in by_id:
1334
+ successors.append(bsid)
1335
+ if not successors:
1336
+ issues.append(
1337
+ f"Step '{cur}' (type={s.get('type')}) has no next_step_id / routes / branches — path dead-ends without reaching an `end` step."
1338
+ )
1339
+ continue
1340
+ for nxt_id in successors:
1341
+ if nxt_id not in visited:
1342
+ queue.append(nxt_id)
1343
+
1344
+ return {"ok": not issues, "issues": issues}
1345
+
1346
+
1347
+ def _parse_json_field(value: Any, fallback: Any) -> Any:
1348
+ """Parse a JSON-encoded string (as emitted by Gemini via *_json fields).
1349
+ Falls back to `fallback` on empty / malformed input so the saver
1350
+ doesn't stall on a stray trailing comma. Tries common LLM JSON repairs
1351
+ before giving up."""
1352
+ if value is None:
1353
+ return fallback
1354
+ if not isinstance(value, str):
1355
+ return value # already parsed (e.g. passed natively by tests)
1356
+ s = value.strip()
1357
+ if not s:
1358
+ return fallback
1359
+ try:
1360
+ return json.loads(s)
1361
+ except json.JSONDecodeError:
1362
+ pass
1363
+ # ── Common LLM JSON repairs ──────────────────────────────────────────
1364
+ repaired = s
1365
+ # 1. Trailing commas before } or ]
1366
+ import re
1367
+ repaired = re.sub(r',\s*([}\]])', r'\1', repaired)
1368
+ # 2. Single quotes → double quotes (only for simple cases)
1369
+ if '"' not in repaired and "'" in repaired:
1370
+ repaired = repaired.replace("'", '"')
1371
+ if repaired != s:
1372
+ try:
1373
+ result = json.loads(repaired)
1374
+ print(f"DEBUG _parse_json_field: 🔧 repaired JSON (trailing commas / quotes)", flush=True)
1375
+ return result
1376
+ except json.JSONDecodeError:
1377
+ pass
1378
+ print(f"DEBUG _parse_json_field: ❌ JSON parse failed, using fallback. Input preview: {s[:200]}", flush=True)
1379
+ return fallback
1380
+
1381
+
1382
+ def _normalize_step_inputs(step: dict) -> dict:
1383
+ """Convert `*_json` string fields emitted by the LLM into their native
1384
+ dict/list form, so downstream code (and `_fill_step_defaults`) sees a
1385
+ uniform shape. Idempotent — keys without a `*_json` sibling pass through."""
1386
+ s = dict(step)
1387
+ if "route_map_json" in s:
1388
+ s["route_map"] = _parse_json_field(s.pop("route_map_json"), {})
1389
+ if "route_descriptions_json" in s:
1390
+ s["route_descriptions"] = _parse_json_field(s.pop("route_descriptions_json"), {})
1391
+ if "parallel_branches_json" in s:
1392
+ s["parallel_branches"] = _parse_json_field(s.pop("parallel_branches_json"), [])
1393
+ if "human_fields_json" in s:
1394
+ s["human_fields"] = _parse_json_field(s.pop("human_fields_json"), [])
1395
+ return s
1396
+
1397
+
1398
+ def _normalize_state_schema_arg(args: dict) -> None:
1399
+ """In-place: if `state_schema_json` is present, parse it into `state_schema`."""
1400
+ if "state_schema_json" in args:
1401
+ args["state_schema"] = _parse_json_field(args.pop("state_schema_json"), {})
1402
+
1403
+
1404
+ def _normalize_steps_arg(args: dict) -> None:
1405
+ """In-place: if `steps_json` is present, parse it into `steps`. Accepts
1406
+ either a JSON-encoded string (preferred — keeps Gemini's tool boundary
1407
+ flat) or an already-decoded list (back-compat with tests)."""
1408
+ if "steps_json" in args:
1409
+ raw = args["steps_json"]
1410
+ parsed = _parse_json_field(args.pop("steps_json"), [])
1411
+ if isinstance(parsed, list):
1412
+ args["steps"] = parsed
1413
+ else:
1414
+ print(f"DEBUG _normalize_steps_arg: ❌ steps_json decoded to {type(parsed).__name__}, not list. Raw preview: {str(raw)[:300]}", flush=True)
1415
+ args["steps"] = []
1416
+
1417
+
1418
+ def _normalize_patch_arg(args: dict) -> dict:
1419
+ """Extract and parse a step patch. Prefers `patch_json` (JSON string),
1420
+ falls back to legacy `patch` (already-decoded dict). Returns the patch
1421
+ dict (possibly empty)."""
1422
+ if "patch_json" in args:
1423
+ parsed = _parse_json_field(args.pop("patch_json"), {})
1424
+ return parsed if isinstance(parsed, dict) else {}
1425
+ legacy = args.get("patch") or {}
1426
+ return legacy if isinstance(legacy, dict) else {}
1427
+
1428
+
1429
+ # Canvas layout constants. Zig-zag keeps long flows visible within typical
1430
+ # screen widths by using vertical space instead of a single long horizontal line.
1431
+ _POS_X_START = -600
1432
+ _POS_X_STEP = 260
1433
+ _POS_Y_AMPLITUDE = 180.0
1434
+
1435
+
1436
+ def _zigzag_y(index: int) -> float:
1437
+ """Triangle-wave y: center → up → center → down, repeating every 4 steps."""
1438
+ pattern = (0.0, -_POS_Y_AMPLITUDE, 0.0, _POS_Y_AMPLITUDE)
1439
+ return pattern[index % 4]
1440
+
1441
+
1442
+ def _fill_step_defaults(steps: list) -> list:
1443
+ """Ensure every step has the required default fields."""
1444
+ result = []
1445
+ for i, step in enumerate(steps):
1446
+ s = _normalize_step_inputs(step)
1447
+ # Generate ID if missing
1448
+ if not s.get("id"):
1449
+ s["id"] = _random_id("step_")
1450
+ # Canvas positions: zig-zag so more steps fit in screen width.
1451
+ if "position_x" not in s:
1452
+ s["position_x"] = _POS_X_START + i * _POS_X_STEP
1453
+ if "position_y" not in s:
1454
+ s["position_y"] = _zigzag_y(i)
1455
+ # Defaults
1456
+ s.setdefault("agent_id", None)
1457
+ s.setdefault("prompt_template", None)
1458
+ s.setdefault("route_map", {})
1459
+ s.setdefault("route_descriptions", {})
1460
+ s.setdefault("evaluator_prompt", None)
1461
+ s.setdefault("model", None)
1462
+ s.setdefault("parallel_branches", [])
1463
+ s.setdefault("merge_strategy", "list")
1464
+ s.setdefault("loop_count", 3)
1465
+ s.setdefault("loop_step_ids", [])
1466
+ s.setdefault("transform_code", None)
1467
+ s.setdefault("human_prompt", None)
1468
+ s.setdefault("human_fields", [])
1469
+ s.setdefault("human_channel_id", None)
1470
+ s.setdefault("human_timeout_seconds", 3600)
1471
+ s.setdefault("input_keys", [])
1472
+ s.setdefault("output_key", None)
1473
+ s.setdefault("forced_tool", None)
1474
+ s.setdefault("max_turns", 15)
1475
+ s.setdefault("timeout_seconds", 300)
1476
+ s.setdefault("allowed_tools", None)
1477
+ s.setdefault("next_step_id", None)
1478
+ s.setdefault("max_iterations", 3)
1479
+ result.append(s)
1480
+ return result
1481
+
1482
+