@shepai/cli 1.175.1-pr537.fc6a92c → 1.176.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 (764) hide show
  1. package/apis/json-schema/AgentConfig.yaml +0 -3
  2. package/apis/json-schema/AgentType.yaml +0 -1
  3. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +1 -3
  4. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/agents/agent-run-repository.interface.d.ts +0 -7
  6. package/dist/packages/core/src/application/ports/output/agents/agent-run-repository.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts +0 -7
  8. package/dist/packages/core/src/application/ports/output/agents/phase-timing-repository.interface.d.ts.map +1 -1
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts +0 -3
  10. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.d.ts +1 -3
  12. package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/use-cases/agents/get-agent-session.use-case.js +4 -6
  14. package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.d.ts +1 -3
  15. package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/use-cases/agents/list-agent-sessions.use-case.js +4 -6
  17. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +1 -1
  18. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +1 -3
  19. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  20. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +7 -9
  21. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +2 -2
  22. package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.d.ts +2 -5
  23. package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/settings/check-onboarding-status.use-case.js +6 -28
  25. package/dist/packages/core/src/domain/generated/output.d.ts +35 -42
  26. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  27. package/dist/packages/core/src/domain/generated/output.js +1 -7
  28. package/dist/packages/core/src/infrastructure/di/container.d.ts +0 -3
  29. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/di/container.js +501 -27
  31. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/agent-run.mapper.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/agent-run.mapper.js +2 -2
  33. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +0 -1
  34. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  35. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +2 -6
  36. package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.d.ts +0 -1
  37. package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.d.ts.map +1 -1
  38. package/dist/packages/core/src/infrastructure/repositories/agent-run.repository.js +0 -8
  39. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts +0 -1
  40. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.d.ts.map +1 -1
  41. package/dist/packages/core/src/infrastructure/repositories/sqlite-phase-timing.repository.js +3 -11
  42. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  43. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +2 -3
  44. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  45. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +0 -10
  46. package/dist/packages/core/src/infrastructure/services/agents/common/agent-runner.service.d.ts.map +1 -1
  47. package/dist/packages/core/src/infrastructure/services/agents/common/agent-runner.service.js +4 -4
  48. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts +7 -3
  49. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +35 -19
  51. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts +7 -3
  52. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +1 -1
  53. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +30 -17
  54. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts +7 -3
  55. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.js +34 -23
  57. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts +7 -3
  58. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
  59. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +16 -21
  60. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts +7 -3
  61. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
  62. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +33 -21
  63. package/dist/packages/core/src/infrastructure/services/agents/common/types.d.ts +0 -5
  64. package/dist/packages/core/src/infrastructure/services/agents/common/types.d.ts.map +1 -1
  65. package/dist/packages/core/src/infrastructure/services/agents/common/types.js +1 -5
  66. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +1 -1
  67. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +1 -1
  68. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  69. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +7 -16
  70. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +47 -44
  71. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  72. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +853 -121
  73. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +70 -19
  74. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  75. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +991 -44
  76. package/dist/packages/core/src/infrastructure/services/notifications/notification-watcher.service.js +3 -3
  77. package/dist/packages/core/src/infrastructure/services/pr-sync/pr-sync-watcher.service.js +1 -1
  78. package/dist/src/presentation/cli/commands/agent/show.command.js +2 -3
  79. package/dist/src/presentation/cli/commands/feat/new.command.js +1 -1
  80. package/dist/src/presentation/cli/commands/feat/show.command.js +1 -1
  81. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  82. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +0 -5
  83. package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts.map +1 -1
  84. package/dist/src/presentation/web/app/actions/agent-setup-flag.js +2 -3
  85. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  86. package/dist/src/presentation/web/app/actions/check-agent-auth.js +2 -18
  87. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  88. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +0 -2
  89. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.d.ts.map +1 -1
  90. package/dist/src/presentation/web/app/actions/get-feature-phase-timings.js +3 -4
  91. package/dist/src/presentation/web/app/actions/get-supported-models.js +3 -2
  92. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  93. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +2 -3
  94. package/dist/src/presentation/web/app/actions/open-ide.js +3 -2
  95. package/dist/src/presentation/web/app/actions/open-shell.d.ts.map +1 -1
  96. package/dist/src/presentation/web/app/actions/open-shell.js +0 -15
  97. package/dist/src/presentation/web/app/actions/update-model.d.ts.map +1 -1
  98. package/dist/src/presentation/web/app/actions/update-model.js +2 -3
  99. package/dist/src/presentation/web/app/api/agent-events/health/route.d.ts.map +1 -1
  100. package/dist/src/presentation/web/app/api/agent-events/health/route.js +12 -9
  101. package/dist/src/presentation/web/app/api/agent-events/route.d.ts +14 -7
  102. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  103. package/dist/src/presentation/web/app/api/agent-events/route.js +301 -20
  104. package/dist/src/presentation/web/app/api/attachments/preview/route.d.ts.map +1 -1
  105. package/dist/src/presentation/web/app/api/attachments/preview/route.js +1 -5
  106. package/dist/src/presentation/web/app/api/attachments/upload/route.d.ts.map +1 -1
  107. package/dist/src/presentation/web/app/api/attachments/upload/route.js +2 -2
  108. package/dist/src/presentation/web/app/api/attachments/upload-from-path/route.d.ts.map +1 -1
  109. package/dist/src/presentation/web/app/api/attachments/upload-from-path/route.js +2 -2
  110. package/dist/src/presentation/web/app/api/cli-upgrade/route.d.ts.map +1 -1
  111. package/dist/src/presentation/web/app/api/cli-upgrade/route.js +1 -3
  112. package/dist/src/presentation/web/app/api/deployment-logs/route.d.ts.map +1 -1
  113. package/dist/src/presentation/web/app/api/deployment-logs/route.js +6 -2
  114. package/dist/src/presentation/web/app/api/dialog/pick-files/route.d.ts.map +1 -1
  115. package/dist/src/presentation/web/app/api/dialog/pick-files/route.js +2 -3
  116. package/dist/src/presentation/web/app/api/directory/list/route.d.ts.map +1 -1
  117. package/dist/src/presentation/web/app/api/directory/list/route.js +5 -8
  118. package/dist/src/presentation/web/app/api/feature-logs/route.d.ts.map +1 -1
  119. package/dist/src/presentation/web/app/api/feature-logs/route.js +6 -2
  120. package/dist/src/presentation/web/app/api/graph-data/route.d.ts +4 -1
  121. package/dist/src/presentation/web/app/api/graph-data/route.d.ts.map +1 -1
  122. package/dist/src/presentation/web/app/api/graph-data/route.js +2 -8
  123. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/mark-read/route.d.ts.map +1 -1
  124. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/mark-read/route.js +3 -2
  125. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.d.ts.map +1 -1
  126. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.js +10 -5
  127. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts.map +1 -1
  128. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.js +5 -5
  129. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stop/route.d.ts.map +1 -1
  130. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stop/route.js +3 -2
  131. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
  132. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +6 -2
  133. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts.map +1 -1
  134. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.js +3 -2
  135. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/messages/route.d.ts.map +1 -1
  136. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/messages/route.js +10 -5
  137. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/route.d.ts.map +1 -1
  138. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/route.js +6 -3
  139. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.d.ts.map +1 -1
  140. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.js +6 -2
  141. package/dist/src/presentation/web/app/api/interactive/sessions/route.d.ts.map +1 -1
  142. package/dist/src/presentation/web/app/api/interactive/sessions/route.js +3 -2
  143. package/dist/src/presentation/web/app/api/npm-version/route.d.ts.map +1 -1
  144. package/dist/src/presentation/web/app/api/npm-version/route.js +2 -2
  145. package/dist/src/presentation/web/app/api/sessions/route.d.ts +15 -1
  146. package/dist/src/presentation/web/app/api/sessions/route.d.ts.map +1 -1
  147. package/dist/src/presentation/web/app/api/sessions/route.js +3 -2
  148. package/dist/src/presentation/web/app/api/sessions-batch/route.d.ts +8 -1
  149. package/dist/src/presentation/web/app/api/sessions-batch/route.d.ts.map +1 -1
  150. package/dist/src/presentation/web/app/api/sessions-batch/route.js +3 -2
  151. package/dist/src/presentation/web/app/api/tools/[id]/install/route.d.ts.map +1 -1
  152. package/dist/src/presentation/web/app/api/tools/[id]/install/route.js +2 -2
  153. package/dist/src/presentation/web/app/api/tools/[id]/install/stream/route.d.ts.map +1 -1
  154. package/dist/src/presentation/web/app/api/tools/[id]/install/stream/route.js +1 -3
  155. package/dist/src/presentation/web/app/api/tools/[id]/launch/route.d.ts.map +1 -1
  156. package/dist/src/presentation/web/app/api/tools/[id]/launch/route.js +2 -2
  157. package/dist/src/presentation/web/app/api/tools/route.d.ts.map +1 -1
  158. package/dist/src/presentation/web/app/api/tools/route.js +2 -2
  159. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  160. package/dist/src/presentation/web/app/layout.js +1 -2
  161. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  162. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +0 -12
  163. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.d.ts.map +1 -1
  164. package/dist/src/presentation/web/components/common/control-center-drawer/adopt-branch-drawer.js +2 -2
  165. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts.map +1 -1
  166. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +1 -1
  167. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
  169. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +1 -1
  170. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  171. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +0 -2
  172. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  173. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +0 -1
  174. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  175. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +1 -1
  176. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.d.ts.map +1 -1
  177. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/index.js +3 -7
  178. package/dist/src/presentation/web/components/features/settings/ModelPicker/index.d.ts.map +1 -1
  179. package/dist/src/presentation/web/components/features/settings/ModelPicker/index.js +2 -2
  180. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +0 -1
  182. package/dist/src/presentation/web/hooks/use-agent-events.js +1 -5
  183. package/dist/src/presentation/web/lib/is-same-shep-instance.d.ts.map +1 -1
  184. package/dist/src/presentation/web/lib/is-same-shep-instance.js +5 -2
  185. package/dist/translations/ar/common.json +1 -0
  186. package/dist/translations/ar/tui.json +0 -4
  187. package/dist/translations/ar/web.json +0 -1
  188. package/dist/translations/de/common.json +1 -0
  189. package/dist/translations/de/tui.json +0 -1
  190. package/dist/translations/de/web.json +0 -1
  191. package/dist/translations/en/common.json +1 -0
  192. package/dist/translations/en/tui.json +0 -4
  193. package/dist/translations/en/web.json +0 -1
  194. package/dist/translations/es/common.json +1 -0
  195. package/dist/translations/es/tui.json +0 -4
  196. package/dist/translations/es/web.json +0 -1
  197. package/dist/translations/fr/common.json +1 -0
  198. package/dist/translations/fr/tui.json +0 -4
  199. package/dist/translations/fr/web.json +0 -1
  200. package/dist/translations/he/common.json +1 -0
  201. package/dist/translations/he/tui.json +0 -4
  202. package/dist/translations/he/web.json +0 -1
  203. package/dist/translations/pt/common.json +1 -0
  204. package/dist/translations/pt/tui.json +0 -4
  205. package/dist/translations/pt/web.json +0 -1
  206. package/dist/translations/ru/common.json +1 -0
  207. package/dist/translations/ru/tui.json +0 -4
  208. package/dist/translations/ru/web.json +0 -1
  209. package/dist/translations/uk/cli.json +631 -0
  210. package/dist/translations/uk/common.json +56 -0
  211. package/dist/translations/uk/tui.json +134 -0
  212. package/dist/translations/uk/web.json +615 -0
  213. package/dist/tsconfig.build.tsbuildinfo +1 -1
  214. package/package.json +3 -7
  215. package/web/.next/BUILD_ID +1 -1
  216. package/web/.next/build-manifest.json +2 -2
  217. package/web/.next/fallback-build-manifest.json +2 -2
  218. package/web/.next/prerender-manifest.json +3 -3
  219. package/web/.next/required-server-files.js +2 -2
  220. package/web/.next/required-server-files.json +2 -2
  221. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +58 -73
  222. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +5 -5
  223. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  224. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +54 -69
  226. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +5 -5
  227. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  228. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  229. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +60 -75
  230. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +5 -5
  231. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  232. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  233. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -91
  234. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +5 -5
  235. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  236. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +76 -91
  238. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +5 -5
  239. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  240. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +56 -71
  242. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +5 -5
  243. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  244. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  245. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +56 -71
  246. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +5 -5
  247. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  248. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  249. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +54 -69
  250. package/web/.next/server/app/(dashboard)/chat/page.js +5 -5
  251. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  252. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  253. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +60 -75
  254. package/web/.next/server/app/(dashboard)/create/page.js +5 -5
  255. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  256. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  257. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +76 -91
  258. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +5 -5
  259. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  260. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  261. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +76 -91
  262. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +5 -5
  263. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  264. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  265. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +54 -69
  266. package/web/.next/server/app/(dashboard)/page.js +5 -5
  267. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  268. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  269. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +56 -71
  270. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +5 -5
  271. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +56 -71
  274. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +5 -5
  275. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  276. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  277. package/web/.next/server/app/_global-error/page.js +1 -1
  278. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  279. package/web/.next/server/app/_global-error.html +2 -2
  280. package/web/.next/server/app/_global-error.rsc +1 -1
  281. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  282. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  283. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  284. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  285. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  286. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +12 -27
  287. package/web/.next/server/app/_not-found/page.js +3 -3
  288. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  289. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  290. package/web/.next/server/app/api/agent-events/route.js +2 -2
  291. package/web/.next/server/app/api/agent-events/route.js.nft.json +1 -1
  292. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  293. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  294. package/web/.next/server/app/api/attachments/upload/route.js +1 -1
  295. package/web/.next/server/app/api/attachments/upload/route.js.nft.json +1 -1
  296. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  297. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  298. package/web/.next/server/app/api/deployment-logs/route.js +1 -2
  299. package/web/.next/server/app/api/deployment-logs/route.js.nft.json +1 -1
  300. package/web/.next/server/app/api/directory/list/route.js +1 -1
  301. package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -1
  302. package/web/.next/server/app/api/evidence/route.js +1 -1
  303. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  304. package/web/.next/server/app/api/feature-logs/route.js +1 -2
  305. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  306. package/web/.next/server/app/api/graph-data/route.js +1 -1
  307. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  308. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route.js +1 -1
  309. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route.js.nft.json +1 -1
  310. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  311. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  312. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js +1 -1
  313. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.nft.json +1 -1
  314. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route.js +1 -1
  315. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route.js.nft.json +1 -1
  316. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js +1 -2
  317. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js.nft.json +1 -1
  318. package/web/.next/server/app/api/interactive/chat/turn-statuses/route.js +1 -1
  319. package/web/.next/server/app/api/interactive/chat/turn-statuses/route.js.nft.json +1 -1
  320. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route.js +1 -1
  321. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route.js.nft.json +1 -1
  322. package/web/.next/server/app/api/interactive/sessions/[id]/route.js +1 -1
  323. package/web/.next/server/app/api/interactive/sessions/[id]/route.js.nft.json +1 -1
  324. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js +1 -2
  325. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js.nft.json +1 -1
  326. package/web/.next/server/app/api/interactive/sessions/route.js +1 -1
  327. package/web/.next/server/app/api/interactive/sessions/route.js.nft.json +1 -1
  328. package/web/.next/server/app/api/npm-version/route.js +1 -1
  329. package/web/.next/server/app/api/npm-version/route.js.nft.json +1 -1
  330. package/web/.next/server/app/api/sessions/route.js +1 -1
  331. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  332. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  333. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  334. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  335. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  336. package/web/.next/server/app/api/tools/[id]/launch/route.js +1 -1
  337. package/web/.next/server/app/api/tools/[id]/launch/route.js.nft.json +1 -1
  338. package/web/.next/server/app/api/tools/route.js +1 -1
  339. package/web/.next/server/app/api/tools/route.js.nft.json +1 -1
  340. package/web/.next/server/app/features/page/server-reference-manifest.json +12 -27
  341. package/web/.next/server/app/features/page.js +3 -3
  342. package/web/.next/server/app/features/page.js.nft.json +1 -1
  343. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  344. package/web/.next/server/app/settings/page/server-reference-manifest.json +18 -33
  345. package/web/.next/server/app/settings/page.js +3 -4
  346. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  347. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/skills/page/server-reference-manifest.json +26 -41
  349. package/web/.next/server/app/skills/page.js +4 -4
  350. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  351. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  352. package/web/.next/server/app/tools/page/server-reference-manifest.json +22 -37
  353. package/web/.next/server/app/tools/page.js +4 -4
  354. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  355. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  356. package/web/.next/server/app/version/page/server-reference-manifest.json +12 -27
  357. package/web/.next/server/app/version/page.js +4 -4
  358. package/web/.next/server/app/version/page.js.nft.json +1 -1
  359. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  360. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  361. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  362. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +12 -0
  363. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -0
  364. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js +3 -0
  365. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js.map +1 -0
  366. package/web/.next/server/chunks/[root-of-the-server]__10852c5c._.js +3 -0
  367. package/web/.next/server/chunks/[root-of-the-server]__10852c5c._.js.map +1 -0
  368. package/web/.next/server/chunks/[root-of-the-server]__2b1074db._.js +12 -0
  369. package/web/.next/server/chunks/[root-of-the-server]__2b1074db._.js.map +1 -0
  370. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js +3 -0
  371. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js.map +1 -0
  372. package/web/.next/server/chunks/[root-of-the-server]__2bb675ff._.js +3 -0
  373. package/web/.next/server/chunks/[root-of-the-server]__2bb675ff._.js.map +1 -0
  374. package/web/.next/server/chunks/[root-of-the-server]__2f61738a._.js +3 -0
  375. package/web/.next/server/chunks/[root-of-the-server]__2f61738a._.js.map +1 -0
  376. package/web/.next/server/chunks/[root-of-the-server]__31598852._.js +3 -0
  377. package/web/.next/server/chunks/[root-of-the-server]__31598852._.js.map +1 -0
  378. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js +3 -0
  379. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js.map +1 -0
  380. package/web/.next/server/chunks/[root-of-the-server]__32b04219._.js +3 -0
  381. package/web/.next/server/chunks/[root-of-the-server]__32b04219._.js.map +1 -0
  382. package/web/.next/server/chunks/[root-of-the-server]__332c8d91._.js +1 -1
  383. package/web/.next/server/chunks/[root-of-the-server]__332c8d91._.js.map +1 -1
  384. package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js +3 -0
  385. package/web/.next/server/chunks/[root-of-the-server]__3b72e8b0._.js.map +1 -0
  386. package/web/.next/server/chunks/[root-of-the-server]__4408a5ba._.js +12 -0
  387. package/web/.next/server/chunks/[root-of-the-server]__4408a5ba._.js.map +1 -0
  388. package/web/.next/server/chunks/[root-of-the-server]__6565a045._.js +3 -0
  389. package/web/.next/server/chunks/[root-of-the-server]__6565a045._.js.map +1 -0
  390. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +24 -0
  391. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -0
  392. package/web/.next/server/chunks/[root-of-the-server]__8f8d6afe._.js +3 -0
  393. package/web/.next/server/chunks/[root-of-the-server]__8f8d6afe._.js.map +1 -0
  394. package/web/.next/server/chunks/[root-of-the-server]__9191749c._.js +3 -0
  395. package/web/.next/server/chunks/[root-of-the-server]__9191749c._.js.map +1 -0
  396. package/web/.next/server/chunks/[root-of-the-server]__9a136c79._.js +9 -0
  397. package/web/.next/server/chunks/[root-of-the-server]__9a136c79._.js.map +1 -0
  398. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  399. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js +3 -0
  400. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js.map +1 -0
  401. package/web/.next/server/chunks/[root-of-the-server]__acea6565._.js +3 -0
  402. package/web/.next/server/chunks/[root-of-the-server]__acea6565._.js.map +1 -0
  403. package/web/.next/server/chunks/[root-of-the-server]__b2f9a412._.js +3 -0
  404. package/web/.next/server/chunks/{[root-of-the-server]__f1aeae12._.js.map → [root-of-the-server]__b2f9a412._.js.map} +1 -1
  405. package/web/.next/server/chunks/[root-of-the-server]__b4102cc7._.js +3 -0
  406. package/web/.next/server/chunks/[root-of-the-server]__b4102cc7._.js.map +1 -0
  407. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +3 -0
  408. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -0
  409. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +3 -0
  410. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -0
  411. package/web/.next/server/chunks/[root-of-the-server]__d2c18946._.js +3 -3
  412. package/web/.next/server/chunks/[root-of-the-server]__d2c18946._.js.map +1 -1
  413. package/web/.next/server/chunks/[root-of-the-server]__d9d410a8._.js +1 -1
  414. package/web/.next/server/chunks/[root-of-the-server]__d9d410a8._.js.map +1 -1
  415. package/web/.next/server/chunks/[root-of-the-server]__e247a485._.js +3 -3
  416. package/web/.next/server/chunks/[root-of-the-server]__e247a485._.js.map +1 -1
  417. package/web/.next/server/chunks/{[root-of-the-server]__937ba94e._.js → [root-of-the-server]__e3692208._.js} +2 -2
  418. package/web/.next/server/chunks/[root-of-the-server]__ea653642._.js +3 -0
  419. package/web/.next/server/chunks/[root-of-the-server]__ea653642._.js.map +1 -0
  420. package/web/.next/server/chunks/[root-of-the-server]__fc6fd958._.js +3 -0
  421. package/web/.next/server/chunks/[root-of-the-server]__fc6fd958._.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +3 -0
  423. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +3 -0
  425. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +3 -0
  427. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  429. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  430. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  431. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +4 -0
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +4 -0
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/{[root-of-the-server]__08e7a080._.js → [root-of-the-server]__22d17c66._.js} +2 -2
  437. package/web/.next/server/chunks/ssr/{[root-of-the-server]__08e7a080._.js.map → [root-of-the-server]__22d17c66._.js.map} +1 -1
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +3 -0
  440. package/web/.next/server/chunks/ssr/{[root-of-the-server]__ff332bfb._.js.map → [root-of-the-server]__357d99f9._.js.map} +1 -1
  441. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +3 -0
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +1 -0
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +4 -0
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js.map +1 -0
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +3 -0
  446. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +1 -0
  447. package/web/.next/server/chunks/ssr/{[root-of-the-server]__16c1388b._.js → [root-of-the-server]__69dd3217._.js} +2 -2
  448. package/web/.next/server/chunks/ssr/{[root-of-the-server]__16c1388b._.js.map → [root-of-the-server]__69dd3217._.js.map} +1 -1
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +4 -0
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -0
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +3 -0
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +1 -0
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +3 -0
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +1 -0
  456. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +4 -0
  457. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -0
  458. package/web/.next/server/chunks/ssr/[root-of-the-server]__d1040bd1._.js +3 -0
  459. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f5614810._.js.map → [root-of-the-server]__d1040bd1._.js.map} +1 -1
  460. package/web/.next/server/chunks/ssr/[root-of-the-server]__efeeaed4._.js +3 -0
  461. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d5e22d1a._.js.map → [root-of-the-server]__efeeaed4._.js.map} +1 -1
  462. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  463. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  464. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  465. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  466. package/web/.next/server/chunks/ssr/{_5747febb._.js → _1e08a336._.js} +2 -2
  467. package/web/.next/server/chunks/ssr/_1e08a336._.js.map +1 -0
  468. package/web/.next/server/chunks/ssr/{_ed2f2799._.js → _295fffde._.js} +2 -2
  469. package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -0
  470. package/web/.next/server/chunks/ssr/{_4db4ac1e._.js → _388d1127._.js} +2 -2
  471. package/web/.next/server/chunks/ssr/{_4db4ac1e._.js.map → _388d1127._.js.map} +1 -1
  472. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  473. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  474. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  475. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  476. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  477. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  478. package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
  479. package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +1 -1
  480. package/web/.next/server/chunks/ssr/{_080b0309._.js → _8f0d3f07._.js} +2 -2
  481. package/web/.next/server/chunks/ssr/{_080b0309._.js.map → _8f0d3f07._.js.map} +1 -1
  482. package/web/.next/server/chunks/ssr/{_31b68712._.js → _98d94927._.js} +2 -2
  483. package/web/.next/server/chunks/ssr/{_31b68712._.js.map → _98d94927._.js.map} +1 -1
  484. package/web/.next/server/chunks/ssr/{_819f193a._.js → _d9c0a97a._.js} +2 -2
  485. package/web/.next/server/chunks/ssr/_d9c0a97a._.js.map +1 -0
  486. package/web/.next/server/chunks/ssr/_e680c57c._.js.map +1 -1
  487. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  488. package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -1
  489. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  490. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  491. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  492. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  493. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +3 -0
  494. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +5 -0
  496. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +5 -0
  498. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +3 -0
  500. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +3 -0
  502. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +1 -0
  503. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +3 -0
  504. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -0
  505. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +3 -0
  506. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -0
  507. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  508. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
  509. package/web/.next/server/chunks/ssr/{src_presentation_web_components_349d9f24._.js → src_presentation_web_components_895e5bfa._.js} +2 -2
  510. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -0
  511. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  512. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  513. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  514. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  515. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +3 -0
  516. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +1 -0
  517. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +3 -0
  518. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +1 -0
  519. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  520. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  521. package/web/.next/server/pages/500.html +2 -2
  522. package/web/.next/server/server-reference-manifest.js +1 -1
  523. package/web/.next/server/server-reference-manifest.json +535 -683
  524. package/web/.next/static/chunks/{10383f321355e09b.js → 0ffb3738269e15c3.js} +1 -1
  525. package/web/.next/static/chunks/236744ff71b1aadf.js +1 -0
  526. package/web/.next/static/chunks/{05c0a8ed7621ea2a.js → 2cfc6022d74e2716.js} +3 -3
  527. package/web/.next/static/chunks/302f474e4978cc80.js +3 -0
  528. package/web/.next/static/chunks/{316b0e4597f2083d.js → 46e2693dbc9262fd.js} +2 -2
  529. package/web/.next/static/chunks/{6853929058e53d1a.js → 476873a9bac35ec8.js} +1 -1
  530. package/web/.next/static/chunks/{81347e69998eef38.js → 4ff21d16947ec853.js} +1 -1
  531. package/web/.next/static/chunks/626277ca9a4cc477.js +1 -0
  532. package/web/.next/static/chunks/{a1ad19e21b6ad1ad.js → 6304540c7cf2b46a.js} +2 -2
  533. package/web/.next/static/chunks/{fd319c0e5f3cc20a.js → 71a07df9dcb42227.js} +1 -1
  534. package/web/.next/static/chunks/{71ad5a4155ddd207.js → 885bb8fc631bf477.js} +1 -1
  535. package/web/.next/static/chunks/a20f2d6f76f469b7.css +1 -0
  536. package/web/.next/static/chunks/{8bf91dcd1b3077d7.js → afa7e5d2a48cabc7.js} +1 -1
  537. package/web/.next/static/chunks/c10c0d6d458453bc.js +1 -0
  538. package/web/.next/static/chunks/{8a68402c32c6a206.js → e8444bf5f6c35f8b.js} +1 -1
  539. package/web/.next/static/chunks/eab3d361f7a24510.js +1 -0
  540. package/web/.next/static/chunks/{6bfcb5d1b3eafd81.js → eda9ee3c22b71a69.js} +1 -1
  541. package/web/.next/static/chunks/{e610f5d703696b34.js → f17d2d0279b8db35.js} +1 -1
  542. package/web/.next/static/chunks/f9d948464ed409cb.js +1 -0
  543. package/apis/json-schema/PermissionMode.yaml +0 -8
  544. package/dist/packages/core/src/application/ports/output/services/file-system.interface.d.ts +0 -68
  545. package/dist/packages/core/src/application/ports/output/services/file-system.interface.d.ts.map +0 -1
  546. package/dist/packages/core/src/application/ports/output/services/file-system.interface.js +0 -12
  547. package/dist/packages/core/src/application/ports/output/services/process-monitor.interface.d.ts +0 -29
  548. package/dist/packages/core/src/application/ports/output/services/process-monitor.interface.d.ts.map +0 -1
  549. package/dist/packages/core/src/application/ports/output/services/process-monitor.interface.js +0 -12
  550. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.d.ts +0 -35
  551. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.d.ts.map +0 -1
  552. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.js +0 -12
  553. package/dist/packages/core/src/application/use-cases/notifications/poll-agent-events.use-case.d.ts +0 -61
  554. package/dist/packages/core/src/application/use-cases/notifications/poll-agent-events.use-case.d.ts.map +0 -1
  555. package/dist/packages/core/src/application/use-cases/notifications/poll-agent-events.use-case.js +0 -381
  556. package/dist/packages/core/src/infrastructure/di/modules/agent-infrastructure.module.d.ts +0 -7
  557. package/dist/packages/core/src/infrastructure/di/modules/agent-infrastructure.module.d.ts.map +0 -1
  558. package/dist/packages/core/src/infrastructure/di/modules/agent-infrastructure.module.js +0 -83
  559. package/dist/packages/core/src/infrastructure/di/modules/database.module.d.ts +0 -12
  560. package/dist/packages/core/src/infrastructure/di/modules/database.module.d.ts.map +0 -1
  561. package/dist/packages/core/src/infrastructure/di/modules/database.module.js +0 -16
  562. package/dist/packages/core/src/infrastructure/di/modules/interactive.module.d.ts +0 -10
  563. package/dist/packages/core/src/infrastructure/di/modules/interactive.module.d.ts.map +0 -1
  564. package/dist/packages/core/src/infrastructure/di/modules/interactive.module.js +0 -43
  565. package/dist/packages/core/src/infrastructure/di/modules/notifications.module.d.ts +0 -6
  566. package/dist/packages/core/src/infrastructure/di/modules/notifications.module.d.ts.map +0 -1
  567. package/dist/packages/core/src/infrastructure/di/modules/notifications.module.js +0 -20
  568. package/dist/packages/core/src/infrastructure/di/modules/repositories.module.d.ts +0 -6
  569. package/dist/packages/core/src/infrastructure/di/modules/repositories.module.d.ts.map +0 -1
  570. package/dist/packages/core/src/infrastructure/di/modules/repositories.module.js +0 -26
  571. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts +0 -8
  572. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +0 -1
  573. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +0 -93
  574. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts +0 -6
  575. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.d.ts.map +0 -1
  576. package/dist/packages/core/src/infrastructure/di/modules/use-cases.module.js +0 -164
  577. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts +0 -10
  578. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +0 -1
  579. package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +0 -200
  580. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-agent-permission-mode.d.ts +0 -14
  581. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-agent-permission-mode.d.ts.map +0 -1
  582. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-agent-permission-mode.js +0 -19
  583. package/dist/packages/core/src/infrastructure/services/agents/common/executors/abstract-agent-executor.d.ts +0 -37
  584. package/dist/packages/core/src/infrastructure/services/agents/common/executors/abstract-agent-executor.d.ts.map +0 -1
  585. package/dist/packages/core/src/infrastructure/services/agents/common/executors/abstract-agent-executor.js +0 -59
  586. package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.d.ts +0 -52
  587. package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.d.ts.map +0 -1
  588. package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.js +0 -350
  589. package/dist/packages/core/src/infrastructure/services/filesystem/file-system.service.d.ts +0 -26
  590. package/dist/packages/core/src/infrastructure/services/filesystem/file-system.service.d.ts.map +0 -1
  591. package/dist/packages/core/src/infrastructure/services/filesystem/file-system.service.js +0 -47
  592. package/dist/packages/core/src/infrastructure/services/filesystem/path-sanitizers.d.ts +0 -19
  593. package/dist/packages/core/src/infrastructure/services/filesystem/path-sanitizers.d.ts.map +0 -1
  594. package/dist/packages/core/src/infrastructure/services/filesystem/path-sanitizers.js +0 -38
  595. package/dist/packages/core/src/infrastructure/services/git/branch-discovery.service.d.ts +0 -23
  596. package/dist/packages/core/src/infrastructure/services/git/branch-discovery.service.d.ts.map +0 -1
  597. package/dist/packages/core/src/infrastructure/services/git/branch-discovery.service.js +0 -185
  598. package/dist/packages/core/src/infrastructure/services/git/ci-status.service.d.ts +0 -24
  599. package/dist/packages/core/src/infrastructure/services/git/ci-status.service.d.ts.map +0 -1
  600. package/dist/packages/core/src/infrastructure/services/git/ci-status.service.js +0 -202
  601. package/dist/packages/core/src/infrastructure/services/git/diff-analyzer.service.d.ts +0 -19
  602. package/dist/packages/core/src/infrastructure/services/git/diff-analyzer.service.d.ts.map +0 -1
  603. package/dist/packages/core/src/infrastructure/services/git/diff-analyzer.service.js +0 -173
  604. package/dist/packages/core/src/infrastructure/services/git/merge-strategy.service.d.ts +0 -30
  605. package/dist/packages/core/src/infrastructure/services/git/merge-strategy.service.d.ts.map +0 -1
  606. package/dist/packages/core/src/infrastructure/services/git/merge-strategy.service.js +0 -341
  607. package/dist/packages/core/src/infrastructure/services/git/pr-creation.service.d.ts +0 -34
  608. package/dist/packages/core/src/infrastructure/services/git/pr-creation.service.d.ts.map +0 -1
  609. package/dist/packages/core/src/infrastructure/services/git/pr-creation.service.js +0 -180
  610. package/dist/packages/core/src/infrastructure/services/interactive/chat-state-builder.d.ts +0 -21
  611. package/dist/packages/core/src/infrastructure/services/interactive/chat-state-builder.d.ts.map +0 -1
  612. package/dist/packages/core/src/infrastructure/services/interactive/chat-state-builder.js +0 -112
  613. package/dist/packages/core/src/infrastructure/services/interactive/session-boot-sequence.d.ts +0 -47
  614. package/dist/packages/core/src/infrastructure/services/interactive/session-boot-sequence.d.ts.map +0 -1
  615. package/dist/packages/core/src/infrastructure/services/interactive/session-boot-sequence.js +0 -381
  616. package/dist/packages/core/src/infrastructure/services/interactive/session-state-manager.d.ts +0 -28
  617. package/dist/packages/core/src/infrastructure/services/interactive/session-state-manager.d.ts.map +0 -1
  618. package/dist/packages/core/src/infrastructure/services/interactive/session-state-manager.js +0 -105
  619. package/dist/packages/core/src/infrastructure/services/interactive/session-state.d.ts +0 -46
  620. package/dist/packages/core/src/infrastructure/services/interactive/session-state.d.ts.map +0 -1
  621. package/dist/packages/core/src/infrastructure/services/interactive/session-state.js +0 -10
  622. package/dist/packages/core/src/infrastructure/services/interactive/subscriber-notifier.d.ts +0 -36
  623. package/dist/packages/core/src/infrastructure/services/interactive/subscriber-notifier.d.ts.map +0 -1
  624. package/dist/packages/core/src/infrastructure/services/interactive/subscriber-notifier.js +0 -60
  625. package/dist/packages/core/src/infrastructure/services/interactive/turn-executor.d.ts +0 -57
  626. package/dist/packages/core/src/infrastructure/services/interactive/turn-executor.d.ts.map +0 -1
  627. package/dist/packages/core/src/infrastructure/services/interactive/turn-executor.js +0 -503
  628. package/dist/packages/core/src/infrastructure/services/process/process-monitor.service.d.ts +0 -25
  629. package/dist/packages/core/src/infrastructure/services/process/process-monitor.service.d.ts.map +0 -1
  630. package/dist/packages/core/src/infrastructure/services/process/process-monitor.service.js +0 -45
  631. package/dist/packages/core/src/infrastructure/services/settings-reader.adapter.d.ts +0 -15
  632. package/dist/packages/core/src/infrastructure/services/settings-reader.adapter.d.ts.map +0 -1
  633. package/dist/packages/core/src/infrastructure/services/settings-reader.adapter.js +0 -28
  634. package/dist/src/presentation/web/app/actions/check-agent-auth-for-type.d.ts +0 -11
  635. package/dist/src/presentation/web/app/actions/check-agent-auth-for-type.d.ts.map +0 -1
  636. package/dist/src/presentation/web/app/actions/check-agent-auth-for-type.js +0 -147
  637. package/dist/src/presentation/web/components/common/route-announcer.d.ts +0 -2
  638. package/dist/src/presentation/web/components/common/route-announcer.d.ts.map +0 -1
  639. package/dist/src/presentation/web/components/common/route-announcer.js +0 -7
  640. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.d.ts +0 -7
  641. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.d.ts.map +0 -1
  642. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.js +0 -26
  643. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.stories.d.ts +0 -11
  644. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.stories.d.ts.map +0 -1
  645. package/dist/src/presentation/web/components/features/settings/AgentAvailabilityBadge.stories.js +0 -24
  646. package/dist/src/presentation/web/hooks/use-agent-availability.d.ts +0 -13
  647. package/dist/src/presentation/web/hooks/use-agent-availability.d.ts.map +0 -1
  648. package/dist/src/presentation/web/hooks/use-agent-availability.js +0 -75
  649. package/dist/src/presentation/web/hooks/use-route-announcer.d.ts +0 -2
  650. package/dist/src/presentation/web/hooks/use-route-announcer.d.ts.map +0 -1
  651. package/dist/src/presentation/web/hooks/use-route-announcer.js +0 -16
  652. package/dist/src/presentation/web/lib/api-error.d.ts +0 -7
  653. package/dist/src/presentation/web/lib/api-error.d.ts.map +0 -1
  654. package/dist/src/presentation/web/lib/api-error.js +0 -11
  655. package/web/.next/server/chunks/[root-of-the-server]__0b88f5f0._.js +0 -3
  656. package/web/.next/server/chunks/[root-of-the-server]__0b88f5f0._.js.map +0 -1
  657. package/web/.next/server/chunks/[root-of-the-server]__0d0a9973._.js +0 -3
  658. package/web/.next/server/chunks/[root-of-the-server]__0d0a9973._.js.map +0 -1
  659. package/web/.next/server/chunks/[root-of-the-server]__1f18a881._.js +0 -3
  660. package/web/.next/server/chunks/[root-of-the-server]__1f18a881._.js.map +0 -1
  661. package/web/.next/server/chunks/[root-of-the-server]__3d08be55._.js +0 -9
  662. package/web/.next/server/chunks/[root-of-the-server]__3d08be55._.js.map +0 -1
  663. package/web/.next/server/chunks/[root-of-the-server]__419be0d1._.js +0 -3
  664. package/web/.next/server/chunks/[root-of-the-server]__419be0d1._.js.map +0 -1
  665. package/web/.next/server/chunks/[root-of-the-server]__4747e669._.js +0 -3
  666. package/web/.next/server/chunks/[root-of-the-server]__4747e669._.js.map +0 -1
  667. package/web/.next/server/chunks/[root-of-the-server]__475afd97._.js +0 -3
  668. package/web/.next/server/chunks/[root-of-the-server]__475afd97._.js.map +0 -1
  669. package/web/.next/server/chunks/[root-of-the-server]__483ccc90._.js +0 -9
  670. package/web/.next/server/chunks/[root-of-the-server]__483ccc90._.js.map +0 -1
  671. package/web/.next/server/chunks/[root-of-the-server]__5e90f1e9._.js +0 -3
  672. package/web/.next/server/chunks/[root-of-the-server]__5e90f1e9._.js.map +0 -1
  673. package/web/.next/server/chunks/[root-of-the-server]__62634db9._.js +0 -12
  674. package/web/.next/server/chunks/[root-of-the-server]__62634db9._.js.map +0 -1
  675. package/web/.next/server/chunks/[root-of-the-server]__645a6d08._.js +0 -12
  676. package/web/.next/server/chunks/[root-of-the-server]__645a6d08._.js.map +0 -1
  677. package/web/.next/server/chunks/[root-of-the-server]__74f3dc5c._.js +0 -3
  678. package/web/.next/server/chunks/[root-of-the-server]__74f3dc5c._.js.map +0 -1
  679. package/web/.next/server/chunks/[root-of-the-server]__810add7c._.js +0 -3
  680. package/web/.next/server/chunks/[root-of-the-server]__810add7c._.js.map +0 -1
  681. package/web/.next/server/chunks/[root-of-the-server]__8cfd9f70._.js +0 -24
  682. package/web/.next/server/chunks/[root-of-the-server]__8cfd9f70._.js.map +0 -1
  683. package/web/.next/server/chunks/[root-of-the-server]__8ec23770._.js +0 -3
  684. package/web/.next/server/chunks/[root-of-the-server]__8ec23770._.js.map +0 -1
  685. package/web/.next/server/chunks/[root-of-the-server]__93c391fe._.js +0 -3
  686. package/web/.next/server/chunks/[root-of-the-server]__93c391fe._.js.map +0 -1
  687. package/web/.next/server/chunks/[root-of-the-server]__9e8fc40c._.js +0 -3
  688. package/web/.next/server/chunks/[root-of-the-server]__9e8fc40c._.js.map +0 -1
  689. package/web/.next/server/chunks/[root-of-the-server]__a2426aa4._.js +0 -3
  690. package/web/.next/server/chunks/[root-of-the-server]__a2426aa4._.js.map +0 -1
  691. package/web/.next/server/chunks/[root-of-the-server]__a96ee39d._.js +0 -3
  692. package/web/.next/server/chunks/[root-of-the-server]__a96ee39d._.js.map +0 -1
  693. package/web/.next/server/chunks/[root-of-the-server]__e10befc1._.js +0 -3
  694. package/web/.next/server/chunks/[root-of-the-server]__e10befc1._.js.map +0 -1
  695. package/web/.next/server/chunks/[root-of-the-server]__e94a4a75._.js +0 -3
  696. package/web/.next/server/chunks/[root-of-the-server]__e94a4a75._.js.map +0 -1
  697. package/web/.next/server/chunks/[root-of-the-server]__ea7e9dc2._.js +0 -3
  698. package/web/.next/server/chunks/[root-of-the-server]__ea7e9dc2._.js.map +0 -1
  699. package/web/.next/server/chunks/[root-of-the-server]__f1aeae12._.js +0 -3
  700. package/web/.next/server/chunks/[root-of-the-server]__f7b38c05._.js +0 -3
  701. package/web/.next/server/chunks/[root-of-the-server]__f7b38c05._.js.map +0 -1
  702. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_f57e8323.js +0 -3
  703. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_f57e8323.js.map +0 -1
  704. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_c2027d57.js +0 -3
  705. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_c2027d57.js.map +0 -1
  706. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_f70a6774.js +0 -3
  707. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_f70a6774.js.map +0 -1
  708. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e34e896._.js +0 -4
  709. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e34e896._.js.map +0 -1
  710. package/web/.next/server/chunks/ssr/[root-of-the-server]__1eb031d8._.js +0 -3
  711. package/web/.next/server/chunks/ssr/[root-of-the-server]__1eb031d8._.js.map +0 -1
  712. package/web/.next/server/chunks/ssr/[root-of-the-server]__35e7da6b._.js +0 -4
  713. package/web/.next/server/chunks/ssr/[root-of-the-server]__35e7da6b._.js.map +0 -1
  714. package/web/.next/server/chunks/ssr/[root-of-the-server]__36eb7673._.js +0 -3
  715. package/web/.next/server/chunks/ssr/[root-of-the-server]__36eb7673._.js.map +0 -1
  716. package/web/.next/server/chunks/ssr/[root-of-the-server]__4576a805._.js +0 -4
  717. package/web/.next/server/chunks/ssr/[root-of-the-server]__4576a805._.js.map +0 -1
  718. package/web/.next/server/chunks/ssr/[root-of-the-server]__b51b0071._.js +0 -4
  719. package/web/.next/server/chunks/ssr/[root-of-the-server]__b51b0071._.js.map +0 -1
  720. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd113e97._.js +0 -4
  721. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd113e97._.js.map +0 -1
  722. package/web/.next/server/chunks/ssr/[root-of-the-server]__c6f02c81._.js +0 -3
  723. package/web/.next/server/chunks/ssr/[root-of-the-server]__c6f02c81._.js.map +0 -1
  724. package/web/.next/server/chunks/ssr/[root-of-the-server]__d5e22d1a._.js +0 -3
  725. package/web/.next/server/chunks/ssr/[root-of-the-server]__f13f6a81._.js +0 -3
  726. package/web/.next/server/chunks/ssr/[root-of-the-server]__f13f6a81._.js.map +0 -1
  727. package/web/.next/server/chunks/ssr/[root-of-the-server]__f5614810._.js +0 -3
  728. package/web/.next/server/chunks/ssr/[root-of-the-server]__ff332bfb._.js +0 -3
  729. package/web/.next/server/chunks/ssr/_5747febb._.js.map +0 -1
  730. package/web/.next/server/chunks/ssr/_819f193a._.js.map +0 -1
  731. package/web/.next/server/chunks/ssr/_ed2f2799._.js.map +0 -1
  732. package/web/.next/server/chunks/ssr/src_presentation_web_064c7e73._.js +0 -3
  733. package/web/.next/server/chunks/ssr/src_presentation_web_064c7e73._.js.map +0 -1
  734. package/web/.next/server/chunks/ssr/src_presentation_web_1726dc84._.js +0 -5
  735. package/web/.next/server/chunks/ssr/src_presentation_web_1726dc84._.js.map +0 -1
  736. package/web/.next/server/chunks/ssr/src_presentation_web_28c682ee._.js +0 -3
  737. package/web/.next/server/chunks/ssr/src_presentation_web_28c682ee._.js.map +0 -1
  738. package/web/.next/server/chunks/ssr/src_presentation_web_2d7b0e7b._.js +0 -5
  739. package/web/.next/server/chunks/ssr/src_presentation_web_2d7b0e7b._.js.map +0 -1
  740. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_bcef11e0.js +0 -3
  741. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_bcef11e0.js.map +0 -1
  742. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_02d5029f.js +0 -3
  743. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_02d5029f.js.map +0 -1
  744. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_67ca1f81.js +0 -3
  745. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_67ca1f81.js.map +0 -1
  746. package/web/.next/server/chunks/ssr/src_presentation_web_b1110b54._.js +0 -3
  747. package/web/.next/server/chunks/ssr/src_presentation_web_b1110b54._.js.map +0 -1
  748. package/web/.next/server/chunks/ssr/src_presentation_web_components_349d9f24._.js.map +0 -1
  749. package/web/.next/server/chunks/ssr/src_presentation_web_d388fcb0._.js +0 -3
  750. package/web/.next/server/chunks/ssr/src_presentation_web_d388fcb0._.js.map +0 -1
  751. package/web/.next/server/chunks/ssr/src_presentation_web_da61a4f3._.js +0 -3
  752. package/web/.next/server/chunks/ssr/src_presentation_web_da61a4f3._.js.map +0 -1
  753. package/web/.next/static/chunks/1f232a3618b82ac1.css +0 -1
  754. package/web/.next/static/chunks/2621b35c0c9da177.js +0 -1
  755. package/web/.next/static/chunks/2a3edcf98f609bb7.js +0 -1
  756. package/web/.next/static/chunks/3370f8dc24c64ce4.js +0 -1
  757. package/web/.next/static/chunks/47ed89fae0f1542e.js +0 -1
  758. package/web/.next/static/chunks/6c1664f584f34e6f.js +0 -1
  759. package/web/.next/static/chunks/f952f152ac0a4abe.js +0 -3
  760. package/web/public/icons/agents/rovo-dev.svg +0 -6
  761. /package/web/.next/server/chunks/{[root-of-the-server]__937ba94e._.js.map → [root-of-the-server]__e3692208._.js.map} +0 -0
  762. /package/web/.next/static/{8CNKMABoDvNDVQD3DEuB4 → 36ONyC02R4wfFe7iWMQLU}/_buildManifest.js +0 -0
  763. /package/web/.next/static/{8CNKMABoDvNDVQD3DEuB4 → 36ONyC02R4wfFe7iWMQLU}/_clientMiddlewareManifest.json +0 -0
  764. /package/web/.next/static/{8CNKMABoDvNDVQD3DEuB4 → 36ONyC02R4wfFe7iWMQLU}/_ssgManifest.js +0 -0
@@ -1,147 +0,0 @@
1
- 'use server';
2
- import { existsSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { homedir } from 'node:os';
5
- import { execFile } from 'node:child_process';
6
- import { IS_WINDOWS } from '../../../../../packages/core/src/infrastructure/platform.js';
7
- import { resolve } from '../../lib/server-container.js';
8
- const AGENT_TOOL_MAP = {
9
- 'claude-code': 'claude-code',
10
- cursor: 'cursor-cli',
11
- 'gemini-cli': 'gemini-cli',
12
- copilot: 'copilot-cli',
13
- 'rovo-dev': 'rovo-dev-cli',
14
- };
15
- const AGENT_BINARY_MAP = {
16
- 'claude-code': 'claude',
17
- cursor: 'cursor-agent',
18
- 'gemini-cli': 'gemini',
19
- copilot: 'copilot',
20
- 'rovo-dev': 'rovo',
21
- };
22
- function tier1AuthCheck(agentType) {
23
- const home = homedir();
24
- switch (agentType) {
25
- case 'claude-code': {
26
- if (process.env['ANTHROPIC_API_KEY'])
27
- return true;
28
- if (process.env['CLAUDE_CODE_USE_BEDROCK'])
29
- return true;
30
- if (process.env['CLAUDE_CODE_USE_VERTEX'])
31
- return true;
32
- if (process.env['CLAUDE_CODE_OAUTH_TOKEN'])
33
- return true;
34
- const credPath = join(home, '.claude', '.credentials.json');
35
- return existsSync(credPath);
36
- }
37
- case 'cursor': {
38
- if (process.env['CURSOR_API_KEY'])
39
- return true;
40
- const cursorDir = join(home, '.cursor');
41
- return existsSync(cursorDir);
42
- }
43
- case 'gemini-cli': {
44
- if (process.env['GEMINI_API_KEY'])
45
- return true;
46
- if (process.env['GOOGLE_API_KEY'])
47
- return true;
48
- if (process.env['GOOGLE_APPLICATION_CREDENTIALS'])
49
- return true;
50
- const accountsPath = join(home, '.gemini', 'google_accounts.json');
51
- return existsSync(accountsPath);
52
- }
53
- case 'copilot-cli': {
54
- if (process.env['GITHUB_TOKEN'])
55
- return true;
56
- if (process.env['GH_TOKEN'])
57
- return true;
58
- if (process.env['GITHUB_AUTH_TOKEN'])
59
- return true;
60
- const ghDir = IS_WINDOWS ? join(home, '.copilot') : join(home, '.config', 'gh');
61
- return existsSync(ghDir);
62
- }
63
- case 'rovo-dev': {
64
- if (process.env['ATLASSIAN_TOKEN'])
65
- return true;
66
- if (process.env['ROVO_TOKEN'])
67
- return true;
68
- const rovoDir = join(home, '.rovo');
69
- return existsSync(rovoDir);
70
- }
71
- default:
72
- return true;
73
- }
74
- }
75
- function tier2AuthVerify(agentType, binaryName) {
76
- return new Promise((res) => {
77
- let cmd;
78
- let args;
79
- switch (agentType) {
80
- case 'claude-code':
81
- cmd = binaryName;
82
- args = ['auth', 'status'];
83
- break;
84
- case 'cursor':
85
- cmd = binaryName;
86
- args = ['status'];
87
- break;
88
- case 'copilot-cli':
89
- cmd = 'gh';
90
- args = ['auth', 'status'];
91
- break;
92
- case 'rovo-dev':
93
- cmd = binaryName;
94
- args = ['auth', 'status'];
95
- break;
96
- default:
97
- res(true);
98
- return;
99
- }
100
- try {
101
- const opts = IS_WINDOWS ? { timeout: 5000, windowsHide: true } : { timeout: 5000 };
102
- execFile(cmd, args, opts, (error) => {
103
- res(!error);
104
- });
105
- }
106
- catch {
107
- res(false);
108
- }
109
- });
110
- }
111
- /**
112
- * Check installation + auth status for a specific agent type.
113
- * Designed to be called per-agent from the picker UI.
114
- */
115
- export async function checkAgentAuthForType(agentType) {
116
- const toolId = AGENT_TOOL_MAP[agentType] ?? null;
117
- const binaryName = AGENT_BINARY_MAP[agentType] ?? null;
118
- // Dev/demo agents and agents without a tool mapping are always available
119
- if (!toolId) {
120
- return { agentType, installed: true, authenticated: true };
121
- }
122
- // Check installation via tool registry
123
- let installed = false;
124
- try {
125
- const useCase = resolve('ListToolsUseCase');
126
- const tools = await useCase.execute();
127
- const tool = tools.find((t) => t.id === toolId);
128
- installed = tool?.status.status === 'available';
129
- }
130
- catch {
131
- installed = false;
132
- }
133
- if (!installed) {
134
- return { agentType, installed: false, authenticated: false };
135
- }
136
- // Tier 1: instant file/env check
137
- const tier1 = tier1AuthCheck(agentType);
138
- if (!tier1) {
139
- return { agentType, installed: true, authenticated: false };
140
- }
141
- // Tier 2: subprocess verify
142
- let authenticated = true;
143
- if (binaryName) {
144
- authenticated = await tier2AuthVerify(agentType, binaryName);
145
- }
146
- return { agentType, installed: true, authenticated };
147
- }
@@ -1,2 +0,0 @@
1
- export declare function RouteAnnouncer(): import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=route-announcer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-announcer.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/common/route-announcer.tsx"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,4CAQ7B"}
@@ -1,7 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useRouteAnnouncer } from '../../hooks/use-route-announcer.js';
4
- export function RouteAnnouncer() {
5
- const announcement = useRouteAnnouncer();
6
- return (_jsx("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", className: "sr-only", children: announcement }));
7
- }
@@ -1,7 +0,0 @@
1
- import type { AgentAvailabilityStatus } from '../../../hooks/use-agent-availability.js';
2
- export interface AgentAvailabilityBadgeProps {
3
- status: AgentAvailabilityStatus;
4
- className?: string;
5
- }
6
- export declare function AgentAvailabilityBadge({ status, className }: AgentAvailabilityBadgeProps): import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=AgentAvailabilityBadge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentAvailabilityBadge.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/AgentAvailabilityBadge.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,wBAAgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,2BAA2B,2CAgBxF"}
@@ -1,26 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Loader2 } from 'lucide-react';
4
- import { cn } from '../../../lib/utils.js';
5
- const STATUS_CONFIG = {
6
- available: {
7
- dotClass: 'bg-emerald-500',
8
- label: 'Ready',
9
- },
10
- 'needs-auth': {
11
- dotClass: 'bg-amber-500',
12
- label: 'Needs auth',
13
- },
14
- 'not-installed': {
15
- dotClass: 'bg-muted-foreground/40',
16
- label: 'Not installed',
17
- },
18
- checking: {
19
- dotClass: '',
20
- label: 'Checking',
21
- },
22
- };
23
- export function AgentAvailabilityBadge({ status, className }) {
24
- const config = STATUS_CONFIG[status];
25
- return (_jsxs("span", { className: cn('inline-flex items-center gap-1.5', className), title: config.label, children: [status === 'checking' ? (_jsx(Loader2, { className: "text-muted-foreground h-2.5 w-2.5 animate-spin" })) : (_jsx("span", { className: cn('inline-block h-2 w-2 shrink-0 rounded-full', config.dotClass), "aria-hidden": "true" })), _jsx("span", { className: "text-muted-foreground text-[10px] leading-none", children: config.label })] }));
26
- }
@@ -1,11 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { AgentAvailabilityBadge } from './AgentAvailabilityBadge.js';
3
- declare const meta: Meta<typeof AgentAvailabilityBadge>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const Available: Story;
7
- export declare const NeedsAuth: Story;
8
- export declare const NotInstalled: Story;
9
- export declare const Checking: Story;
10
- export declare const AllStatuses: Story;
11
- //# sourceMappingURL=AgentAvailabilityBadge.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentAvailabilityBadge.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/AgentAvailabilityBadge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,sBAAsB,CAK7C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAqBzB,CAAC"}
@@ -1,24 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { AgentAvailabilityBadge } from './AgentAvailabilityBadge.js';
3
- const meta = {
4
- title: 'Features/Settings/AgentAvailabilityBadge',
5
- component: AgentAvailabilityBadge,
6
- parameters: { layout: 'centered' },
7
- tags: ['autodocs'],
8
- };
9
- export default meta;
10
- export const Available = {
11
- args: { status: 'available' },
12
- };
13
- export const NeedsAuth = {
14
- args: { status: 'needs-auth' },
15
- };
16
- export const NotInstalled = {
17
- args: { status: 'not-installed' },
18
- };
19
- export const Checking = {
20
- args: { status: 'checking' },
21
- };
22
- export const AllStatuses = {
23
- render: () => (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "w-24 text-sm", children: "Available:" }), _jsx(AgentAvailabilityBadge, { status: "available" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "w-24 text-sm", children: "Needs auth:" }), _jsx(AgentAvailabilityBadge, { status: "needs-auth" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "w-24 text-sm", children: "Not installed:" }), _jsx(AgentAvailabilityBadge, { status: "not-installed" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "w-24 text-sm", children: "Checking:" }), _jsx(AgentAvailabilityBadge, { status: "checking" })] })] })),
24
- };
@@ -1,13 +0,0 @@
1
- export type AgentAvailabilityStatus = 'available' | 'needs-auth' | 'not-installed' | 'checking';
2
- export interface AgentAvailability {
3
- status: AgentAvailabilityStatus;
4
- loading: boolean;
5
- }
6
- /**
7
- * Checks agent availability for a list of agent types.
8
- * Returns a map from agentType to { status, loading }.
9
- *
10
- * Results are cached and refreshed on the given interval.
11
- */
12
- export declare function useAgentAvailability(agentTypes: string[]): Record<string, AgentAvailability>;
13
- //# sourceMappingURL=use-agent-availability.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-agent-availability.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-agent-availability.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,CAAC;AAEhG,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CA6D5F"}
@@ -1,75 +0,0 @@
1
- 'use client';
2
- import { useState, useEffect, useCallback, useRef } from 'react';
3
- import { checkAgentAuthForType } from '../app/actions/check-agent-auth-for-type.js';
4
- function deriveStatus(result) {
5
- if (result.installed && result.authenticated)
6
- return 'available';
7
- if (result.installed && !result.authenticated)
8
- return 'needs-auth';
9
- return 'not-installed';
10
- }
11
- /** How often to re-check availability (ms). */
12
- const REFRESH_INTERVAL_MS = 60_000;
13
- /**
14
- * Checks agent availability for a list of agent types.
15
- * Returns a map from agentType to { status, loading }.
16
- *
17
- * Results are cached and refreshed on the given interval.
18
- */
19
- export function useAgentAvailability(agentTypes) {
20
- const [results, setResults] = useState(() => {
21
- const initial = {};
22
- for (const at of agentTypes) {
23
- initial[at] = { status: 'checking', loading: true };
24
- }
25
- return initial;
26
- });
27
- // Keep a stable ref of the agent types to avoid re-triggering effects on every render
28
- const agentTypesKey = agentTypes.join(',');
29
- const mountedRef = useRef(true);
30
- const fetchAll = useCallback(async () => {
31
- const types = agentTypesKey.split(',').filter(Boolean);
32
- if (types.length === 0)
33
- return;
34
- const promises = types.map(async (agentType) => {
35
- try {
36
- const result = await checkAgentAuthForType(agentType);
37
- return { agentType, status: deriveStatus(result), loading: false };
38
- }
39
- catch {
40
- return { agentType, status: 'not-installed', loading: false };
41
- }
42
- });
43
- const settled = await Promise.all(promises);
44
- if (!mountedRef.current)
45
- return;
46
- setResults((prev) => {
47
- const next = { ...prev };
48
- for (const entry of settled) {
49
- next[entry.agentType] = { status: entry.status, loading: entry.loading };
50
- }
51
- return next;
52
- });
53
- }, [agentTypesKey]);
54
- // Reset to checking when agent types change
55
- useEffect(() => {
56
- const types = agentTypesKey.split(',').filter(Boolean);
57
- setResults((prev) => {
58
- const next = {};
59
- for (const at of types) {
60
- next[at] = prev[at] ?? { status: 'checking', loading: true };
61
- }
62
- return next;
63
- });
64
- }, [agentTypesKey]);
65
- useEffect(() => {
66
- mountedRef.current = true;
67
- fetchAll();
68
- const interval = setInterval(fetchAll, REFRESH_INTERVAL_MS);
69
- return () => {
70
- mountedRef.current = false;
71
- clearInterval(interval);
72
- };
73
- }, [fetchAll]);
74
- return results;
75
- }
@@ -1,2 +0,0 @@
1
- export declare function useRouteAnnouncer(): string;
2
- //# sourceMappingURL=use-route-announcer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-route-announcer.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-route-announcer.ts"],"names":[],"mappings":"AAKA,wBAAgB,iBAAiB,WAchC"}
@@ -1,16 +0,0 @@
1
- 'use client';
2
- import { usePathname } from 'next/navigation';
3
- import { useEffect, useState } from 'react';
4
- export function useRouteAnnouncer() {
5
- const pathname = usePathname();
6
- const [announcement, setAnnouncement] = useState('');
7
- useEffect(() => {
8
- // Small delay to let the page title update after navigation
9
- const timer = setTimeout(() => {
10
- const title = document.title || 'Page loaded';
11
- setAnnouncement(`Navigated to ${title}`);
12
- }, 100);
13
- return () => clearTimeout(timer);
14
- }, [pathname]);
15
- return announcement;
16
- }
@@ -1,7 +0,0 @@
1
- import { NextResponse } from 'next/server';
2
- /**
3
- * Create a sanitized error response. Logs full error server-side,
4
- * returns only a safe message to the client.
5
- */
6
- export declare function apiError(error: unknown, status?: number, publicMessage?: string): NextResponse;
7
- //# sourceMappingURL=api-error.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/api-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,YAAY,CAQ3F"}
@@ -1,11 +0,0 @@
1
- import { NextResponse } from 'next/server';
2
- /**
3
- * Create a sanitized error response. Logs full error server-side,
4
- * returns only a safe message to the client.
5
- */
6
- export function apiError(error, status = 500, publicMessage) {
7
- // eslint-disable-next-line no-console
8
- console.error('[API Error]', error);
9
- const message = publicMessage ?? (error instanceof Error ? error.message : 'Internal server error');
10
- return NextResponse.json({ error: message }, { status });
11
- }
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},51374,e=>{"use strict";var t=e.i(27980);function r(e,a=500,n){console.error("[API Error]",e);let s=n??(e instanceof Error?e.message:"Internal server error");return t.NextResponse.json({error:s},{status:a})}e.s(["apiError",()=>r])},70390,e=>{"use strict";var t=e.i(2157),r=e.i(50227);function a(e){let a=(0,r.resolve)(e);try{return(0,t.realpathSync)(a)}catch{return(0,r.normalize)(a)}}function n(e,t){let n=a(e),s=a(t);if(n!==s&&!n.startsWith(s+r.sep))throw Error(`Path traversal detected: ${e} is outside ${t}`);return n}e.s(["ensureContainedPath",()=>n])},31869,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),s=e.i(16340),i=e.i(40522),o=e.i(21994),l=e.i(5802),d=e.i(17171),u=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),f=e.i(80556),m=e.i(93695);e.i(97230);var R=e.i(35162),v=e.i(27980),y=e.i(51374),E=e.i(12714),g=e.i(60526),w=e.i(50227),C=e.i(70390);async function A(e){let t=new URL(e.url),r=t.searchParams.get("path")??(0,g.homedir)(),a="true"===t.searchParams.get("showHidden");if(!w.default.isAbsolute(r))return v.NextResponse.json({error:"Path must be absolute"},{status:400});let n=w.default.resolve(r);try{if(!(await (0,E.stat)(n)).isDirectory())return v.NextResponse.json({error:"Path is not a directory"},{status:400})}catch(e){var s;if((s=e)instanceof Error&&"code"in s&&"ENOENT"===e.code)return v.NextResponse.json({error:"Directory not found"},{status:404});return(0,y.apiError)(e,500,"Failed to access path")}try{let e=await (0,E.readdir)(n,{withFileTypes:!0}),t=[],r=e.map(async e=>{if(!a&&e.name.startsWith("."))return null;let t=w.default.join(n,e.name);try{if((0,C.ensureContainedPath)(t,n),e.isDirectory()){let r=await (0,E.stat)(t);return{name:e.name,path:t,isDirectory:!0,updatedAt:r.mtime.toISOString()}}if(e.isSymbolicLink()){let r=await (0,E.stat)(t);if(r.isDirectory())return{name:e.name,path:t,isDirectory:!0,updatedAt:r.mtime.toISOString()}}}catch{}return null});for(let e of(await Promise.all(r)))null!==e&&t.push(e);return v.NextResponse.json({entries:t,currentPath:n})}catch(e){return(0,y.apiError)(e,500,"Failed to read directory")}}e.s(["GET",()=>A],47661);var P=e.i(47661);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/directory/list/route",pathname:"/api/directory/list",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/directory/list/route.ts",nextConfigOutput:"",userland:P}),{workAsyncStorage:N,workUnitAsyncStorage:T,serverHooks:S}=b;function q(){return(0,a.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:T})}async function O(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/directory/list/route";v=v.replace(/\/index$/,"")||"/";let y=await b.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:g,nextConfig:w,parsedUrl:C,isDraftMode:A,prerenderManifest:P,routerServerContext:N,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:j}=y,k=(0,o.normalizeAppPath)(v),_=!!(P.dynamicRoutes[k]||P.routes[q]),D=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,C,!1):t.end("This page could not be found"),null);if(_&&!A){let e=!!P.routes[q],t=P.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await D();throw new m.NoFallbackError}}let I=null;!_||b.isDev||A||(I="/index"===(I=q)?"/":I);let H=!0===b.isDev||!_,U=_&&!H;j&&O&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:O,serverActionsManifest:j});let M=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:g,prerenderManifest:P,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.onRequestError(e,t,a,n,N)},sharedContext:{buildId:E}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let i=async e=>b.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${v}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&T&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!_)return await (0,c.sendResponse)(L,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,N),t}},u=await b.handleResponse({req:e,nextConfig:w,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!_)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&_||m.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(L,B,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,N),_)throw t;return await (0,c.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>O,"patchFetch",()=>q,"routeModule",()=>b,"serverHooks",()=>S,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>T],31869)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0b88f5f0._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../src/presentation/web/lib/api-error.ts","../../../../../../packages/core/src/infrastructure/services/filesystem/path-sanitizers.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js","../../../../../../src/presentation/web/app/api/directory/list/route.ts"],"sourcesContent":["import { NextResponse } from 'next/server';\n\n/**\n * Create a sanitized error response. Logs full error server-side,\n * returns only a safe message to the client.\n */\nexport function apiError(error: unknown, status = 500, publicMessage?: string): NextResponse {\n // eslint-disable-next-line no-console\n console.error('[API Error]', error);\n\n const message =\n publicMessage ?? (error instanceof Error ? error.message : 'Internal server error');\n\n return NextResponse.json({ error: message }, { status });\n}\n","import { realpathSync } from 'node:fs';\nimport { resolve, sep, normalize } from 'node:path';\n\n/**\n * Resolve a path to its canonical form (symlinks resolved, normalized).\n * Falls back to normalize(resolve()) if realpath fails (path doesn't exist yet).\n */\nexport function normalizePath(filePath: string): string {\n const resolved = resolve(filePath);\n try {\n return realpathSync(resolved);\n } catch {\n return normalize(resolved);\n }\n}\n\n/**\n * Verify that targetPath is contained within containerPath.\n * Returns the normalized target path if contained.\n * Throws if the target escapes the container (path traversal).\n * Uses realpath to defeat symlink attacks and trailing-separator\n * comparison to prevent prefix attacks (/foo vs /foobar).\n */\nexport function ensureContainedPath(targetPath: string, containerPath: string): string {\n const normalizedTarget = normalizePath(targetPath);\n const normalizedContainer = normalizePath(containerPath);\n\n if (\n normalizedTarget !== normalizedContainer &&\n !normalizedTarget.startsWith(normalizedContainer + sep)\n ) {\n throw new Error(`Path traversal detected: ${targetPath} is outside ${containerPath}`);\n }\n\n return normalizedTarget;\n}\n\n/**\n * Compare two paths for equality after normalization.\n * Handles symlinks, trailing slashes, and platform separator differences.\n */\nexport function isSamePath(a: string, b: string): boolean {\n return normalizePath(a) === normalizePath(b);\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/directory/list/route\",\n pathname: \"/api/directory/list\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/directory/list/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/directory/list/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","import { NextResponse } from 'next/server';\nimport { apiError } from '@/lib/api-error';\nimport { readdir, stat } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport path from 'node:path';\nimport { ensureContainedPath } from '@shepai/core/infrastructure/services/filesystem/path-sanitizers';\n\ninterface DirectoryEntry {\n name: string;\n path: string;\n isDirectory: true;\n updatedAt: string;\n}\n\nexport async function GET(request: Request): Promise<NextResponse> {\n const url = new URL(request.url);\n const rawPath = url.searchParams.get('path') ?? homedir();\n const showHidden = url.searchParams.get('showHidden') === 'true';\n\n if (!path.isAbsolute(rawPath)) {\n return NextResponse.json({ error: 'Path must be absolute' }, { status: 400 });\n }\n\n const resolvedPath = path.resolve(rawPath);\n\n try {\n const dirStat = await stat(resolvedPath);\n if (!dirStat.isDirectory()) {\n return NextResponse.json({ error: 'Path is not a directory' }, { status: 400 });\n }\n } catch (error: unknown) {\n if (isErrnoException(error) && error.code === 'ENOENT') {\n return NextResponse.json({ error: 'Directory not found' }, { status: 404 });\n }\n return apiError(error, 500, 'Failed to access path');\n }\n\n try {\n const dirents = await readdir(resolvedPath, { withFileTypes: true });\n\n const entries: DirectoryEntry[] = [];\n\n const entryPromises = dirents.map(async (dirent) => {\n if (!showHidden && dirent.name.startsWith('.')) {\n return null;\n }\n\n const entryPath = path.join(resolvedPath, dirent.name);\n\n try {\n // Validate that the resolved entry stays within the listed directory\n // (defeats symlink-based path traversal)\n ensureContainedPath(entryPath, resolvedPath);\n\n if (dirent.isDirectory()) {\n const entryStat = await stat(entryPath);\n return {\n name: dirent.name,\n path: entryPath,\n isDirectory: true as const,\n updatedAt: entryStat.mtime.toISOString(),\n };\n }\n\n if (dirent.isSymbolicLink()) {\n const entryStat = await stat(entryPath);\n if (entryStat.isDirectory()) {\n return {\n name: dirent.name,\n path: entryPath,\n isDirectory: true as const,\n updatedAt: entryStat.mtime.toISOString(),\n };\n }\n }\n } catch {\n // Skip inaccessible entries (permission denied, broken symlinks, traversal)\n }\n\n return null;\n });\n\n const results = await Promise.all(entryPromises);\n for (const result of results) {\n if (result !== null) {\n entries.push(result);\n }\n }\n\n return NextResponse.json({ entries, currentPath: resolvedPath });\n } catch (error: unknown) {\n return apiError(error, 500, 'Failed to read directory');\n }\n}\n\nfunction isErrnoException(error: unknown): error is NodeJS.ErrnoException {\n return error instanceof Error && 'code' in error;\n}\n"],"names":[],"mappings":"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","ignoreList":[2]}
@@ -1,3 +0,0 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},51374,e=>{"use strict";var t=e.i(27980);function r(e,a=500,n){console.error("[API Error]",e);let s=n??(e instanceof Error?e.message:"Internal server error");return t.NextResponse.json({error:s},{status:a})}e.s(["apiError",()=>r])},24868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},81568,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),s=e.i(16340),o=e.i(40522),i=e.i(21994),l=e.i(5802),p=e.i(17171),d=e.i(177),u=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),m=e.i(80556),g=e.i(93695);e.i(97230);var f=e.i(35162),v=e.i(27980),R=e.i(51374),w=e.i(24868),y=e.i(14747),E=e.i(40060);let b=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),C={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".svg":"image/svg+xml",".bmp":"image/bmp",".ico":"image/x-icon",".pdf":"application/pdf",".txt":"text/plain",".md":"text/markdown",".json":"application/json",".yaml":"text/yaml",".yml":"text/yaml"};async function j(e){try{let t,{path:r,sessionId:a}=await e.json();if(!r||!a)return v.NextResponse.json({error:"Missing required fields: path, sessionId"},{status:400});let n=(0,y.extname)(r).toLowerCase();if(n&&!b.has(n))return v.NextResponse.json({error:`File type "${n}" is not allowed`},{status:400});try{t=await (0,w.readFile)((0,y.resolve)(r))}catch{return v.NextResponse.json({error:"File not found or unreadable"},{status:404})}if(t.length>0xa00000)return v.NextResponse.json({error:`File exceeds 10 MB limit (${(t.length/1024/1024).toFixed(1)} MB)`},{status:413});let s=(0,y.basename)(r),o=C[n]??"application/octet-stream",i=(0,E.resolve)("AttachmentStorageService").store(t,s,o,a);return v.NextResponse.json({id:i.id,name:i.name,size:Number(i.size),mimeType:i.mimeType,path:i.path,createdAt:i.createdAt})}catch(e){return(0,R.apiError)(e,500,"Upload failed")}}e.s(["POST",()=>j],28686);var A=e.i(28686);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/attachments/upload-from-path/route",pathname:"/api/attachments/upload-from-path",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/attachments/upload-from-path/route.ts",nextConfigOutput:"",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:P,serverHooks:k}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:P})}async function S(e,t,a){N.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/attachments/upload-from-path/route";v=v.replace(/\/index$/,"")||"/";let R=await N.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:E,parsedUrl:b,isDraftMode:C,prerenderManifest:j,routerServerContext:A,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:k,clientReferenceManifest:q,serverActionsManifest:S}=R,O=(0,i.normalizeAppPath)(v),_=!!(j.dynamicRoutes[O]||j.routes[k]),I=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,b,!1):t.end("This page could not be found"),null);if(_&&!C){let e=!!j.routes[k],t=j.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let H=null;!_||N.isDev||C||(H="/index"===(H=k)?"/":H);let U=!0===N.isDev||!_,M=_&&!U;S&&q&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:q,serverActionsManifest:S});let D=e.method||"GET",F=(0,s.getTracer)(),$=F.getActiveScopeSpan(),K={params:y,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>N.onRequestError(e,t,a,n,A)},sharedContext:{buildId:w}},z=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),L=p.NextRequestAdapter.fromNodeNextRequest(z,(0,p.signalFromNodeResponse)(t));try{let o=async e=>N.handle(L,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${v}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let p=async({previousCacheEntry:r})=>{try{if(!i&&T&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let p=K.renderOpts.collectedTags;if(!_)return await (0,c.sendResponse)(z,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);p&&(t[m.NEXT_CACHE_TAGS_HEADER]=p),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:T})},!1,A),t}},d=await N.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:p,waitUntil:a.waitUntil,isMinimalMode:i});if(!_)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",T?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&_||g.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(z,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:T})},!1,A),_)throw t;return await (0,c.sendResponse)(z,B,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>k,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>P],81568)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0d0a9973._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../src/presentation/web/lib/server-container.ts","../../../../../../src/presentation/web/lib/api-error.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js","../../../../../../src/presentation/web/app/api/attachments/upload-from-path/route.ts"],"sourcesContent":["/**\n * Server Container Accessor\n *\n * Provides a `resolve()` helper for server components and API routes to\n * obtain DI-managed instances. The tsyringe container is placed on globalThis\n * by the CLI bootstrap (`shep ui`) or the dev-server (`pnpm dev:web`).\n */\n\nimport type { DependencyContainer, InjectionToken } from 'tsyringe';\n\nconst CONTAINER_KEY = '__shepContainer';\n\n/**\n * Resolve a dependency from the DI container.\n *\n * Usage in server components / API routes:\n * ```ts\n * import { resolve } from '@/lib/server-container';\n * import { ListFeaturesUseCase } from '@shepai/core/application/use-cases/features/list-features.use-case';\n *\n * const features = await resolve(ListFeaturesUseCase).execute();\n * ```\n */\nexport function resolve<T>(token: InjectionToken<T>): T {\n const container = (globalThis as Record<string, unknown>)[CONTAINER_KEY] as\n | DependencyContainer\n | undefined;\n\n if (!container) {\n throw new Error(\n 'DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.'\n );\n }\n\n return container.resolve(token);\n}\n","import { NextResponse } from 'next/server';\n\n/**\n * Create a sanitized error response. Logs full error server-side,\n * returns only a safe message to the client.\n */\nexport function apiError(error: unknown, status = 500, publicMessage?: string): NextResponse {\n // eslint-disable-next-line no-console\n console.error('[API Error]', error);\n\n const message =\n publicMessage ?? (error instanceof Error ? error.message : 'Internal server error');\n\n return NextResponse.json({ error: message }, { status });\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/attachments/upload-from-path/route\",\n pathname: \"/api/attachments/upload-from-path\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/attachments/upload-from-path/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/attachments/upload-from-path/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","import { NextResponse } from 'next/server';\nimport { apiError } from '@/lib/api-error';\nimport { readFile } from 'fs/promises';\nimport { extname, basename } from 'path';\nimport { resolve as resolvePath } from 'path';\nimport { resolve } from '@/lib/server-container';\nimport type { AttachmentStorageService } from '@shepai/core/infrastructure/services/attachment-storage.service';\n\nconst MAX_FILE_SIZE = 10 * 1024 * 1024; // 10 MB\n\nconst ALLOWED_EXTENSIONS = new Set([\n '.png',\n '.jpg',\n '.jpeg',\n '.gif',\n '.webp',\n '.svg',\n '.bmp',\n '.ico',\n '.pdf',\n '.doc',\n '.docx',\n '.xls',\n '.xlsx',\n '.ppt',\n '.pptx',\n '.txt',\n '.md',\n '.csv',\n '.json',\n '.yaml',\n '.yml',\n '.xml',\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.py',\n '.rb',\n '.go',\n '.rs',\n '.java',\n '.c',\n '.cpp',\n '.h',\n '.hpp',\n '.cs',\n '.swift',\n '.kt',\n '.html',\n '.css',\n '.scss',\n '.less',\n '.sh',\n '.bash',\n '.zsh',\n '.fish',\n '.toml',\n '.ini',\n '.cfg',\n '.conf',\n '.env',\n '.zip',\n '.tar',\n '.gz',\n '.log',\n]);\n\nconst MIME_MAP: Record<string, string> = {\n '.png': 'image/png',\n '.jpg': 'image/jpeg',\n '.jpeg': 'image/jpeg',\n '.gif': 'image/gif',\n '.webp': 'image/webp',\n '.svg': 'image/svg+xml',\n '.bmp': 'image/bmp',\n '.ico': 'image/x-icon',\n '.pdf': 'application/pdf',\n '.txt': 'text/plain',\n '.md': 'text/markdown',\n '.json': 'application/json',\n '.yaml': 'text/yaml',\n '.yml': 'text/yaml',\n};\n\nexport async function POST(request: Request): Promise<NextResponse> {\n try {\n const body = await request.json();\n const { path, sessionId } = body as { path?: string; sessionId?: string };\n\n if (!path || !sessionId) {\n return NextResponse.json(\n { error: 'Missing required fields: path, sessionId' },\n { status: 400 }\n );\n }\n\n const ext = extname(path).toLowerCase();\n if (ext && !ALLOWED_EXTENSIONS.has(ext)) {\n return NextResponse.json({ error: `File type \"${ext}\" is not allowed` }, { status: 400 });\n }\n\n let buffer: Buffer;\n try {\n buffer = await readFile(resolvePath(path));\n } catch {\n return NextResponse.json({ error: 'File not found or unreadable' }, { status: 404 });\n }\n\n if (buffer.length > MAX_FILE_SIZE) {\n return NextResponse.json(\n {\n error: `File exceeds 10 MB limit (${(buffer.length / 1024 / 1024).toFixed(1)} MB)`,\n },\n { status: 413 }\n );\n }\n\n const filename = basename(path);\n const mimeType = MIME_MAP[ext] ?? 'application/octet-stream';\n\n const service = resolve<AttachmentStorageService>('AttachmentStorageService');\n const attachment = service.store(buffer, filename, mimeType, sessionId);\n\n return NextResponse.json({\n id: attachment.id,\n name: attachment.name,\n size: Number(attachment.size),\n mimeType: attachment.mimeType,\n path: attachment.path,\n createdAt: attachment.createdAt,\n });\n } catch (error: unknown) {\n return apiError(error, 500, 'Upload failed');\n }\n}\n"],"names":[],"mappings":"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","ignoreList":[2]}