@shepai/cli 1.177.0 → 1.178.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 (334) hide show
  1. package/apis/json-schema/Language.yaml +1 -0
  2. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.d.ts +23 -0
  3. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.d.ts.map +1 -0
  4. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.js +13 -0
  5. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.d.ts +18 -0
  6. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.d.ts.map +1 -0
  7. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.js +7 -0
  8. package/dist/packages/core/src/application/ports/output/services/index.d.ts +3 -0
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.d.ts +33 -0
  11. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.d.ts.map +1 -0
  12. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.js +9 -0
  13. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts +42 -0
  14. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts.map +1 -0
  15. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.js +134 -0
  16. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.d.ts +43 -0
  17. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.d.ts.map +1 -0
  18. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.js +84 -0
  19. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts +13 -2
  20. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
  21. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +14 -3
  22. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/di/container.js +16 -0
  24. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.d.ts +35 -0
  25. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.d.ts.map +1 -0
  26. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.js +165 -0
  27. package/dist/packages/core/src/infrastructure/services/file-system.service.d.ts +10 -0
  28. package/dist/packages/core/src/infrastructure/services/file-system.service.d.ts.map +1 -0
  29. package/dist/packages/core/src/infrastructure/services/file-system.service.js +22 -0
  30. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.d.ts +22 -0
  31. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.d.ts.map +1 -0
  32. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.js +74 -0
  33. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts +10 -2
  34. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  35. package/dist/src/presentation/web/app/actions/check-agent-auth.js +7 -199
  36. package/dist/src/presentation/web/app/actions/create-project-folder.d.ts +16 -0
  37. package/dist/src/presentation/web/app/actions/create-project-folder.d.ts.map +1 -0
  38. package/dist/src/presentation/web/app/actions/create-project-folder.js +18 -0
  39. package/dist/src/presentation/web/app/actions/delete-repository.d.ts +4 -1
  40. package/dist/src/presentation/web/app/actions/delete-repository.d.ts.map +1 -1
  41. package/dist/src/presentation/web/app/actions/delete-repository.js +2 -2
  42. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  43. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -2
  44. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts +3 -1
  45. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +13 -4
  48. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +5 -3
  50. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +134 -124
  52. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.d.ts +8 -0
  53. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.d.ts.map +1 -0
  54. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.js +43 -0
  55. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.d.ts +27 -0
  56. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.d.ts.map +1 -0
  57. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.js +84 -0
  58. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +3 -1
  59. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +4 -2
  61. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +21 -0
  62. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -0
  63. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +70 -0
  64. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.d.ts +27 -0
  65. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.d.ts.map +1 -0
  66. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.js +48 -0
  67. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +8 -1
  69. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts +3 -1
  70. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +3 -3
  72. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
  74. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.d.ts +15 -0
  75. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.d.ts.map +1 -0
  76. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.js +74 -0
  77. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.d.ts +11 -0
  78. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.d.ts.map +1 -0
  79. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.js +22 -0
  80. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.d.ts +13 -0
  81. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.d.ts.map +1 -0
  82. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.js +21 -0
  83. package/dist/src/presentation/web/hooks/use-workspaces.d.ts +37 -0
  84. package/dist/src/presentation/web/hooks/use-workspaces.d.ts.map +1 -0
  85. package/dist/src/presentation/web/hooks/use-workspaces.js +219 -0
  86. package/dist/src/presentation/web/lib/derive-graph.d.ts +3 -1
  87. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  88. package/dist/translations/ar/web.json +4 -1
  89. package/dist/translations/de/web.json +4 -1
  90. package/dist/translations/en/web.json +4 -1
  91. package/dist/translations/es/web.json +4 -1
  92. package/dist/translations/fr/web.json +4 -1
  93. package/dist/translations/he/web.json +4 -1
  94. package/dist/translations/pt/web.json +4 -1
  95. package/dist/translations/ru/web.json +4 -1
  96. package/dist/translations/uk/web.json +3 -0
  97. package/dist/tsconfig.build.tsbuildinfo +1 -1
  98. package/package.json +1 -1
  99. package/web/.next/BUILD_ID +1 -1
  100. package/web/.next/build-manifest.json +2 -2
  101. package/web/.next/fallback-build-manifest.json +2 -2
  102. package/web/.next/prerender-manifest.json +3 -3
  103. package/web/.next/required-server-files.js +2 -2
  104. package/web/.next/required-server-files.json +2 -2
  105. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +73 -58
  106. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -2
  107. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  108. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +69 -54
  110. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -2
  111. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  112. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +75 -60
  114. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -2
  115. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  116. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +91 -76
  118. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -2
  119. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  120. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +91 -76
  122. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -2
  123. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  124. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  125. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +71 -56
  126. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -2
  127. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  128. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  129. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
  130. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -2
  131. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  132. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  133. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +69 -54
  134. package/web/.next/server/app/(dashboard)/chat/page.js +1 -2
  135. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  136. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +75 -60
  138. package/web/.next/server/app/(dashboard)/create/page.js +1 -2
  139. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +91 -76
  142. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -2
  143. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  144. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +91 -76
  146. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -2
  147. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  148. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  149. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +69 -54
  150. package/web/.next/server/app/(dashboard)/page.js +1 -2
  151. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  152. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  153. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +71 -56
  154. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -2
  155. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  156. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
  158. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -2
  159. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  160. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  161. package/web/.next/server/app/_global-error.html +2 -2
  162. package/web/.next/server/app/_global-error.rsc +1 -1
  163. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  164. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  165. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  166. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  167. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  168. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  169. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  170. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  171. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  172. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  173. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  174. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  175. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  176. package/web/.next/server/app/features/page.js.nft.json +1 -1
  177. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  178. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  179. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  180. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  181. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  182. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  183. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  184. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  185. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  186. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  187. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  188. package/web/.next/server/app/version/page.js.nft.json +1 -1
  189. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  190. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  191. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  192. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  194. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
  196. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  198. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  201. package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js +3 -0
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js.map +1 -0
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
  204. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js +3 -0
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js.map +1 -0
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js +3 -0
  210. package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js.map +1 -0
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  212. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js +3 -0
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js.map +1 -0
  215. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  216. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  218. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/_35b56ded._.js +3 -0
  220. package/web/.next/server/chunks/ssr/_35b56ded._.js.map +1 -0
  221. package/web/.next/server/chunks/ssr/{_4cbb7f95._.js → _496c9117._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{_4cbb7f95._.js.map → _496c9117._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/{_3fc2374c._.js → _49b9ba41._.js} +2 -2
  224. package/web/.next/server/chunks/ssr/_49b9ba41._.js.map +1 -0
  225. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  226. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/_64efdf53._.js +3 -0
  228. package/web/.next/server/chunks/ssr/_64efdf53._.js.map +1 -0
  229. package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
  230. package/web/.next/server/chunks/ssr/{_19a779c6._.js → _83e1c526._.js} +2 -2
  231. package/web/.next/server/chunks/ssr/{_19a779c6._.js.map → _83e1c526._.js.map} +1 -1
  232. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  233. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  234. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  235. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  236. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  237. package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js +5 -0
  238. package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js.map +1 -0
  239. package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js +3 -0
  240. package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js.map +1 -0
  241. package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js +3 -0
  242. package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js.map +1 -0
  243. package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js +3 -0
  244. package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js.map +1 -0
  245. package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js +3 -0
  246. package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js.map +1 -0
  247. package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js +3 -0
  248. package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js.map +1 -0
  249. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +1 -1
  250. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +1 -1
  252. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -1
  253. package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js +3 -0
  254. package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js.map +1 -0
  255. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +2 -2
  256. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +1 -1
  257. package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js +3 -0
  258. package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js.map +1 -0
  259. package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js +3 -0
  260. package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  262. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  263. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  265. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  266. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js +5 -0
  268. package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js.map +1 -0
  269. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  270. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  271. package/web/.next/server/pages/500.html +2 -2
  272. package/web/.next/server/server-reference-manifest.js +1 -1
  273. package/web/.next/server/server-reference-manifest.json +590 -484
  274. package/web/.next/static/chunks/{18f429029d702545.js → 0b7251e5d717dd17.js} +1 -1
  275. package/web/.next/static/chunks/0fd39d549d277843.js +1 -0
  276. package/web/.next/static/chunks/124b79a5d2a760fb.css +1 -0
  277. package/web/.next/static/chunks/{b5a916fec4cdc897.js → 25a0d3f50b0a26c1.js} +1 -1
  278. package/web/.next/static/chunks/{829d2f8ef2715f2f.js → 2cc487403c107f3f.js} +3 -3
  279. package/web/.next/static/chunks/{0d0e2661bd167e0f.js → 35bf9838f21d1818.js} +1 -1
  280. package/web/.next/static/chunks/{b5d355eb59916926.js → 36e3d626ed8defca.js} +2 -2
  281. package/web/.next/static/chunks/4052a4971fbbac9c.js +1 -0
  282. package/web/.next/static/chunks/{c0e4cd44851a9293.js → 5df9da8b40e298ee.js} +1 -1
  283. package/web/.next/static/chunks/{efd57b6ffc7cbd54.js → 5f57f0d80d3db147.js} +1 -1
  284. package/web/.next/static/chunks/{bb479c31b5b53bac.js → 74c37f189bc83156.js} +2 -2
  285. package/web/.next/static/chunks/8057357cf1f9b4ef.js +1 -0
  286. package/web/.next/static/chunks/{eaa1b979d63d322b.js → 8286914ac835a1cc.js} +1 -1
  287. package/web/.next/static/chunks/{0a706f8508eae0a8.js → 8777b2a0a2e85fd1.js} +2 -2
  288. package/web/.next/static/chunks/{77d6506c7d1f711f.js → 9e9cddf8e38342e8.js} +1 -1
  289. package/web/.next/static/chunks/ac586c86d71187fc.js +1 -0
  290. package/web/.next/static/chunks/{ef897f150084ef85.js → c6fdd161a9e5b554.js} +1 -1
  291. package/web/.next/static/chunks/{4c20d4cd4786a0c8.js → e167803ac69c66c7.js} +1 -1
  292. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +0 -3
  293. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +0 -1
  294. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +0 -3
  295. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +0 -1
  296. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +0 -3
  297. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +0 -1
  298. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +0 -3
  299. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +0 -1
  300. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +0 -3
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +0 -1
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +0 -3
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +0 -1
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +0 -3
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +0 -1
  306. package/web/.next/server/chunks/ssr/_073183f4._.js +0 -3
  307. package/web/.next/server/chunks/ssr/_073183f4._.js.map +0 -1
  308. package/web/.next/server/chunks/ssr/_3fc2374c._.js.map +0 -1
  309. package/web/.next/server/chunks/ssr/_57b1af27._.js +0 -3
  310. package/web/.next/server/chunks/ssr/_57b1af27._.js.map +0 -1
  311. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +0 -3
  312. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +0 -1
  313. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +0 -5
  314. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +0 -1
  315. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +0 -5
  316. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +0 -1
  317. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +0 -3
  318. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +0 -1
  319. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +0 -3
  320. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +0 -1
  321. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -3
  322. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
  323. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +0 -3
  324. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +0 -1
  325. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +0 -3
  326. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +0 -1
  327. package/web/.next/static/chunks/3fc5b2287f192799.js +0 -1
  328. package/web/.next/static/chunks/a20f2d6f76f469b7.css +0 -1
  329. package/web/.next/static/chunks/ddd34e939acc204f.js +0 -1
  330. package/web/.next/static/chunks/f9d948464ed409cb.js +0 -1
  331. package/web/.next/static/chunks/fc0232384ec2b48d.js +0 -1
  332. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → sfBZvlx-erv7S1C49vRSU}/_buildManifest.js +0 -0
  333. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → sfBZvlx-erv7S1C49vRSU}/_clientMiddlewareManifest.json +0 -0
  334. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → sfBZvlx-erv7S1C49vRSU}/_ssgManifest.js +0 -0
@@ -0,0 +1,37 @@
1
+ export declare const DEFAULT_WORKSPACE_ID = "default";
2
+ export declare const DEFAULT_WORKSPACE_NAME = "Default";
3
+ export interface Workspace {
4
+ id: string;
5
+ name: string;
6
+ /** Repository node IDs (React Flow node ids, e.g. "repo-..."). */
7
+ repoIds: string[];
8
+ /** Feature node IDs (React Flow node ids, e.g. "feat-..."). */
9
+ featureIds: string[];
10
+ }
11
+ export interface UseWorkspacesResult {
12
+ workspaces: Workspace[];
13
+ activeWorkspace: Workspace;
14
+ activeWorkspaceId: string;
15
+ isDefaultActive: boolean;
16
+ setActiveWorkspace: (id: string) => void;
17
+ createWorkspace: (name: string) => Workspace;
18
+ renameWorkspace: (id: string, name: string) => void;
19
+ deleteWorkspace: (id: string) => void;
20
+ setWorkspaceMembers: (id: string, members: {
21
+ repoIds: string[];
22
+ featureIds: string[];
23
+ }) => void;
24
+ toggleRepoInActive: (repoId: string) => void;
25
+ toggleFeatureInActive: (featureId: string) => void;
26
+ /**
27
+ * Append node IDs to the active workspace's allowlists. No-op when the
28
+ * default workspace is active (it shows everything anyway). Idempotent —
29
+ * IDs already present are skipped.
30
+ */
31
+ addToActiveWorkspace: (members: {
32
+ repoIds?: string[];
33
+ featureIds?: string[];
34
+ }) => void;
35
+ }
36
+ export declare function useWorkspaces(): UseWorkspacesResult;
37
+ //# sourceMappingURL=use-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-workspaces.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-workspaces.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAqDD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,eAAe,EAAE,SAAS,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC;IAC7C,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAChG,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD;;;;OAIG;IACH,oBAAoB,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;CACxF;AAED,wBAAgB,aAAa,IAAI,mBAAmB,CAkJnD"}
@@ -0,0 +1,219 @@
1
+ 'use client';
2
+ /**
3
+ * Playground prototype: client-side workspaces.
4
+ *
5
+ * ⚠️ PROTOTYPE BOUNDARY — DO NOT IMPORT FROM OUTSIDE THIS PROTOTYPE ⚠️
6
+ *
7
+ * A workspace is a named, explicit allowlist of repositories and features
8
+ * that should appear on the canvas. The "default" workspace is special: it
9
+ * always shows everything (its allowlists are ignored).
10
+ *
11
+ * Persistence: localStorage only. There is no backend, no domain model, no
12
+ * use cases, and no infrastructure adapter. Mutation rules ("default is
13
+ * read-only", "default always exists", rename validation) are enforced
14
+ * inline rather than as domain invariants.
15
+ *
16
+ * This file deliberately violates Clean Architecture by holding domain
17
+ * shape (`Workspace`), application logic (mutations + invariants), and
18
+ * infrastructure concerns (localStorage persistence) inside a React hook.
19
+ * It exists ONLY to validate the workspace UX on the playground branch.
20
+ *
21
+ * Before promoting workspaces to a real feature, replace this file with:
22
+ * - tsp/Workspace.tsp — domain entity
23
+ * - application/ports/output/repositories/
24
+ * workspace.repository.interface.ts — output port
25
+ * - application/use-cases/workspaces/
26
+ * create-workspace.use-case.ts
27
+ * rename-workspace.use-case.ts
28
+ * delete-workspace.use-case.ts
29
+ * set-workspace-members.use-case.ts
30
+ * list-workspaces.use-case.ts
31
+ * set-active-workspace.use-case.ts
32
+ * - infrastructure/repositories/sqlite-workspace.repository.ts
33
+ *
34
+ * Then this hook becomes a thin client wrapper that calls server actions
35
+ * backed by those use cases. Until that refactor lands, the `Workspace`
36
+ * type defined here MUST NOT be imported from any non-prototype code.
37
+ */
38
+ import { useCallback, useEffect, useState } from 'react';
39
+ const STORAGE_KEY = 'shep:workspaces:v1';
40
+ export const DEFAULT_WORKSPACE_ID = 'default';
41
+ export const DEFAULT_WORKSPACE_NAME = 'Default';
42
+ const INITIAL_STATE = {
43
+ workspaces: [
44
+ {
45
+ id: DEFAULT_WORKSPACE_ID,
46
+ name: DEFAULT_WORKSPACE_NAME,
47
+ repoIds: [],
48
+ featureIds: [],
49
+ },
50
+ ],
51
+ activeWorkspaceId: DEFAULT_WORKSPACE_ID,
52
+ };
53
+ function loadState() {
54
+ if (typeof window === 'undefined')
55
+ return INITIAL_STATE;
56
+ try {
57
+ const raw = window.localStorage.getItem(STORAGE_KEY);
58
+ if (!raw)
59
+ return INITIAL_STATE;
60
+ const parsed = JSON.parse(raw);
61
+ if (!parsed.workspaces || !Array.isArray(parsed.workspaces))
62
+ return INITIAL_STATE;
63
+ // Make sure default workspace always exists
64
+ const hasDefault = parsed.workspaces.some((w) => w.id === DEFAULT_WORKSPACE_ID);
65
+ const workspaces = hasDefault
66
+ ? parsed.workspaces
67
+ : [INITIAL_STATE.workspaces[0], ...parsed.workspaces];
68
+ return {
69
+ workspaces,
70
+ activeWorkspaceId: parsed.activeWorkspaceId ?? DEFAULT_WORKSPACE_ID,
71
+ };
72
+ }
73
+ catch {
74
+ return INITIAL_STATE;
75
+ }
76
+ }
77
+ function saveState(state) {
78
+ if (typeof window === 'undefined')
79
+ return;
80
+ try {
81
+ window.localStorage.setItem(STORAGE_KEY, JSON.stringify(state));
82
+ }
83
+ catch {
84
+ // localStorage may be unavailable (private mode); ignore.
85
+ }
86
+ }
87
+ function generateId() {
88
+ return `ws-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
89
+ }
90
+ export function useWorkspaces() {
91
+ const [state, setState] = useState(INITIAL_STATE);
92
+ // Hydrate from localStorage on mount (client-only).
93
+ useEffect(() => {
94
+ setState(loadState());
95
+ }, []);
96
+ // Persist whenever state changes (after hydration).
97
+ useEffect(() => {
98
+ saveState(state);
99
+ }, [state]);
100
+ const setActiveWorkspace = useCallback((id) => {
101
+ setState((prev) => {
102
+ if (!prev.workspaces.some((w) => w.id === id))
103
+ return prev;
104
+ return { ...prev, activeWorkspaceId: id };
105
+ });
106
+ }, []);
107
+ const createWorkspace = useCallback((name) => {
108
+ const trimmed = name.trim() || 'Untitled workspace';
109
+ const next = {
110
+ id: generateId(),
111
+ name: trimmed,
112
+ repoIds: [],
113
+ featureIds: [],
114
+ };
115
+ setState((prev) => ({
116
+ workspaces: [...prev.workspaces, next],
117
+ activeWorkspaceId: next.id,
118
+ }));
119
+ return next;
120
+ }, []);
121
+ const renameWorkspace = useCallback((id, name) => {
122
+ if (id === DEFAULT_WORKSPACE_ID)
123
+ return;
124
+ const trimmed = name.trim();
125
+ if (!trimmed)
126
+ return;
127
+ setState((prev) => ({
128
+ ...prev,
129
+ workspaces: prev.workspaces.map((w) => (w.id === id ? { ...w, name: trimmed } : w)),
130
+ }));
131
+ }, []);
132
+ const deleteWorkspace = useCallback((id) => {
133
+ if (id === DEFAULT_WORKSPACE_ID)
134
+ return;
135
+ setState((prev) => {
136
+ const workspaces = prev.workspaces.filter((w) => w.id !== id);
137
+ const activeWorkspaceId = prev.activeWorkspaceId === id ? DEFAULT_WORKSPACE_ID : prev.activeWorkspaceId;
138
+ return { workspaces, activeWorkspaceId };
139
+ });
140
+ }, []);
141
+ const setWorkspaceMembers = useCallback((id, members) => {
142
+ if (id === DEFAULT_WORKSPACE_ID)
143
+ return;
144
+ setState((prev) => ({
145
+ ...prev,
146
+ workspaces: prev.workspaces.map((w) => w.id === id
147
+ ? { ...w, repoIds: [...members.repoIds], featureIds: [...members.featureIds] }
148
+ : w),
149
+ }));
150
+ }, []);
151
+ const toggleMember = useCallback((kind, nodeId) => {
152
+ setState((prev) => {
153
+ if (prev.activeWorkspaceId === DEFAULT_WORKSPACE_ID)
154
+ return prev;
155
+ return {
156
+ ...prev,
157
+ workspaces: prev.workspaces.map((w) => {
158
+ if (w.id !== prev.activeWorkspaceId)
159
+ return w;
160
+ const list = kind === 'repo' ? w.repoIds : w.featureIds;
161
+ const nextList = list.includes(nodeId)
162
+ ? list.filter((x) => x !== nodeId)
163
+ : [...list, nodeId];
164
+ return kind === 'repo' ? { ...w, repoIds: nextList } : { ...w, featureIds: nextList };
165
+ }),
166
+ };
167
+ });
168
+ }, []);
169
+ const toggleRepoInActive = useCallback((repoId) => toggleMember('repo', repoId), [toggleMember]);
170
+ const toggleFeatureInActive = useCallback((featureId) => toggleMember('feature', featureId), [toggleMember]);
171
+ const addToActiveWorkspace = useCallback((members) => {
172
+ const incomingRepos = members.repoIds ?? [];
173
+ const incomingFeatures = members.featureIds ?? [];
174
+ if (incomingRepos.length === 0 && incomingFeatures.length === 0)
175
+ return;
176
+ setState((prev) => {
177
+ if (prev.activeWorkspaceId === DEFAULT_WORKSPACE_ID)
178
+ return prev;
179
+ return {
180
+ ...prev,
181
+ workspaces: prev.workspaces.map((w) => {
182
+ if (w.id !== prev.activeWorkspaceId)
183
+ return w;
184
+ const repoSet = new Set(w.repoIds);
185
+ for (const id of incomingRepos)
186
+ repoSet.add(id);
187
+ const featureSet = new Set(w.featureIds);
188
+ for (const id of incomingFeatures)
189
+ featureSet.add(id);
190
+ // Bail out if nothing actually changed — keeps referential equality
191
+ // so downstream effects don't re-fire.
192
+ if (repoSet.size === w.repoIds.length && featureSet.size === w.featureIds.length) {
193
+ return w;
194
+ }
195
+ return {
196
+ ...w,
197
+ repoIds: Array.from(repoSet),
198
+ featureIds: Array.from(featureSet),
199
+ };
200
+ }),
201
+ };
202
+ });
203
+ }, []);
204
+ const activeWorkspace = state.workspaces.find((w) => w.id === state.activeWorkspaceId) ?? state.workspaces[0];
205
+ return {
206
+ workspaces: state.workspaces,
207
+ activeWorkspace,
208
+ activeWorkspaceId: state.activeWorkspaceId,
209
+ isDefaultActive: state.activeWorkspaceId === DEFAULT_WORKSPACE_ID,
210
+ setActiveWorkspace,
211
+ createWorkspace,
212
+ renameWorkspace,
213
+ deleteWorkspace,
214
+ setWorkspaceMembers,
215
+ toggleRepoInActive,
216
+ toggleFeatureInActive,
217
+ addToActiveWorkspace,
218
+ };
219
+ }
@@ -34,7 +34,9 @@ export interface GraphCallbacks {
34
34
  /** Called when the user clicks a repo node to navigate to its detail page. */
35
35
  onRepositoryClick?: (repoNodeId: string) => void;
36
36
  /** Called when the user deletes a repository. */
37
- onRepositoryDelete?: (repositoryId: string) => void;
37
+ onRepositoryDelete?: (repositoryId: string, options?: {
38
+ deleteFromDisk?: boolean;
39
+ }) => void;
38
40
  /** Called when the user retries a failed feature. */
39
41
  onRetryFeature?: (featureId: string) => void;
40
42
  /** Called when the user starts a pending feature. */
@@ -1 +1 @@
1
- {"version":3,"file":"derive-graph.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/derive-graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qEAAqE;IACrE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,OAAO,KACd,IAAI,CAAC;IACV,6EAA6E;IAC7E,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,SAAS,CAAC,EAAE,cAAc,GACzB;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAiL5C"}
1
+ {"version":3,"file":"derive-graph.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/derive-graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,4FAA4F;IAC5F,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qEAAqE;IACrE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8CAA8C;IAC9C,eAAe,CAAC,EAAE,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,OAAO,KACd,IAAI,CAAC;IACV,6EAA6E;IAC7E,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5F,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,SAAS,CAAC,EAAE,cAAc,GACzB;IAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAiL5C"}
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "إزالة المستودع",
384
384
  "removeConfirmTitle": "إزالة المستودع؟",
385
- "removeConfirmDescription": "سيؤدي هذا إلى إزالة <strong>{{name}}</strong> وجميع ميزاته من مساحة العمل. لن تتأثر الملفات على القرص.",
385
+ "removeConfirmDescription": "سيؤدي هذا إلى إزالة <strong>{{name}}</strong> وجميع ميزاته من مساحة العمل.",
386
+ "removeConfirmDescriptionKeepFiles": "لن تتأثر ملفات المستودع على القرص.",
387
+ "removeConfirmDescriptionDeleteFiles": "سيتم حذف مجلد المستودع من القرص نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
388
+ "deleteFromDiskLabel": "حذف مجلد المستودع من القرص أيضًا",
386
389
  "cancel": "إلغاء",
387
390
  "remove": "إزالة",
388
391
  "openInIde": "فتح في IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Repository entfernen",
384
384
  "removeConfirmTitle": "Repository entfernen?",
385
- "removeConfirmDescription": "Dadurch wird <strong>{{name}}</strong> und alle zugehörigen Features aus dem Arbeitsbereich entfernt. Die Dateien auf der Festplatte werden nicht betroffen.",
385
+ "removeConfirmDescription": "Dadurch wird <strong>{{name}}</strong> und alle zugehörigen Features aus dem Arbeitsbereich entfernt.",
386
+ "removeConfirmDescriptionKeepFiles": "Die Repository-Dateien auf der Festplatte werden nicht beeinträchtigt.",
387
+ "removeConfirmDescriptionDeleteFiles": "Der Repository-Ordner auf der Festplatte wird dauerhaft gelöscht. Dies kann nicht rückgängig gemacht werden.",
388
+ "deleteFromDiskLabel": "Repository-Ordner zusätzlich von der Festplatte löschen",
386
389
  "cancel": "Abbrechen",
387
390
  "remove": "Entfernen",
388
391
  "openInIde": "In IDE öffnen",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Remove repository",
384
384
  "removeConfirmTitle": "Remove repository?",
385
- "removeConfirmDescription": "This will remove <strong>{{name}}</strong> and all its features from your workspace. The repository files on disk won't be affected.",
385
+ "removeConfirmDescription": "This will remove <strong>{{name}}</strong> and all its features from your workspace.",
386
+ "removeConfirmDescriptionKeepFiles": "The repository files on disk won't be affected.",
387
+ "removeConfirmDescriptionDeleteFiles": "The repository folder on disk will be permanently deleted. This cannot be undone.",
388
+ "deleteFromDiskLabel": "Also delete the repository folder from disk",
386
389
  "cancel": "Cancel",
387
390
  "remove": "Remove",
388
391
  "openInIde": "Open in IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Eliminar repositorio",
384
384
  "removeConfirmTitle": "¿Eliminar repositorio?",
385
- "removeConfirmDescription": "Esto eliminará <strong>{{name}}</strong> y todas sus funciones del espacio de trabajo. Los archivos en disco no se verán afectados.",
385
+ "removeConfirmDescription": "Esto eliminará <strong>{{name}}</strong> y todas sus funciones del espacio de trabajo.",
386
+ "removeConfirmDescriptionKeepFiles": "Los archivos del repositorio en disco no se verán afectados.",
387
+ "removeConfirmDescriptionDeleteFiles": "La carpeta del repositorio en disco se eliminará permanentemente. Esta acción no se puede deshacer.",
388
+ "deleteFromDiskLabel": "Eliminar también la carpeta del repositorio del disco",
386
389
  "cancel": "Cancelar",
387
390
  "remove": "Eliminar",
388
391
  "openInIde": "Abrir en IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Supprimer le dépôt",
384
384
  "removeConfirmTitle": "Supprimer le dépôt ?",
385
- "removeConfirmDescription": "Cela supprimera <strong>{{name}}</strong> et toutes ses fonctionnalités de l'espace de travail. Les fichiers sur le disque ne seront pas affectés.",
385
+ "removeConfirmDescription": "Cela supprimera <strong>{{name}}</strong> et toutes ses fonctionnalités de l'espace de travail.",
386
+ "removeConfirmDescriptionKeepFiles": "Les fichiers du dépôt sur le disque ne seront pas affectés.",
387
+ "removeConfirmDescriptionDeleteFiles": "Le dossier du dépôt sur le disque sera supprimé définitivement. Cette action est irréversible.",
388
+ "deleteFromDiskLabel": "Supprimer également le dossier du dépôt du disque",
386
389
  "cancel": "Annuler",
387
390
  "remove": "Supprimer",
388
391
  "openInIde": "Ouvrir dans l'IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "הסרת מאגר",
384
384
  "removeConfirmTitle": "להסיר מאגר?",
385
- "removeConfirmDescription": "פעולה זו תסיר את <strong>{{name}}</strong> ואת כל הפיצ'רים שלו מסביבת העבודה. הקבצים על הדיסק לא ייפגעו.",
385
+ "removeConfirmDescription": "פעולה זו תסיר את <strong>{{name}}</strong> ואת כל הפיצ'רים שלו מסביבת העבודה.",
386
+ "removeConfirmDescriptionKeepFiles": "קבצי המאגר על הדיסק לא ייפגעו.",
387
+ "removeConfirmDescriptionDeleteFiles": "תיקיית המאגר על הדיסק תימחק לצמיתות. לא ניתן לבטל פעולה זו.",
388
+ "deleteFromDiskLabel": "מחק גם את תיקיית המאגר מהדיסק",
386
389
  "cancel": "ביטול",
387
390
  "remove": "הסרה",
388
391
  "openInIde": "פתיחה ב-IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Remover repositório",
384
384
  "removeConfirmTitle": "Remover repositório?",
385
- "removeConfirmDescription": "Isso removerá <strong>{{name}}</strong> e todas as suas funcionalidades do workspace. Os arquivos no disco não serão afetados.",
385
+ "removeConfirmDescription": "Isso removerá <strong>{{name}}</strong> e todas as suas funcionalidades do workspace.",
386
+ "removeConfirmDescriptionKeepFiles": "Os arquivos do repositório no disco não serão afetados.",
387
+ "removeConfirmDescriptionDeleteFiles": "A pasta do repositório no disco será excluída permanentemente. Esta ação não pode ser desfeita.",
388
+ "deleteFromDiskLabel": "Excluir também a pasta do repositório do disco",
386
389
  "cancel": "Cancelar",
387
390
  "remove": "Remover",
388
391
  "openInIde": "Abrir no IDE",
@@ -382,7 +382,10 @@
382
382
  "repositoryNode": {
383
383
  "removeRepository": "Удалить репозиторий",
384
384
  "removeConfirmTitle": "Удалить репозиторий?",
385
- "removeConfirmDescription": "Это удалит <strong>{{name}}</strong> и все его функции из рабочего пространства. Файлы на диске не будут затронуты.",
385
+ "removeConfirmDescription": "Это удалит <strong>{{name}}</strong> и все его функции из рабочего пространства.",
386
+ "removeConfirmDescriptionKeepFiles": "Файлы репозитория на диске не будут затронуты.",
387
+ "removeConfirmDescriptionDeleteFiles": "Папка репозитория на диске будет удалена безвозвратно. Это действие нельзя отменить.",
388
+ "deleteFromDiskLabel": "Также удалить папку репозитория с диска",
386
389
  "cancel": "Отмена",
387
390
  "remove": "Удалить",
388
391
  "openInIde": "Открыть в IDE",
@@ -383,6 +383,9 @@
383
383
  "removeRepository": "Видалити репозиторій",
384
384
  "removeConfirmTitle": "Видалити репозиторій?",
385
385
  "removeConfirmDescription": "Це видалить <strong>{{name}}</strong> та всі його функції з робочого простору. Файли на диску не будуть зачеплені.",
386
+ "removeConfirmDescriptionKeepFiles": "Файли репозиторію на диску не будуть зачеплені.",
387
+ "removeConfirmDescriptionDeleteFiles": "Папка репозиторію на диску буде назавжди видалена. Цю дію не можна скасувати.",
388
+ "deleteFromDiskLabel": "Також видалити папку репозиторію з диска",
386
389
  "cancel": "Скасувати",
387
390
  "remove": "Видалити",
388
391
  "openInIde": "Відкрити в IDE",