@shipit-ai/cli 1.166.2 → 1.167.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 (504) hide show
  1. package/README.md +26 -5
  2. package/apis/json-schema/AgentConfig.yaml +3 -0
  3. package/apis/json-schema/AgentPermissionSettings.yaml +23 -0
  4. package/apis/json-schema/AgentType.yaml +0 -1
  5. package/apis/json-schema/ClaudeCodePermissionMode.yaml +9 -0
  6. package/apis/json-schema/CodexPermissionMode.yaml +8 -0
  7. package/apis/json-schema/CopilotPermissionMode.yaml +8 -0
  8. package/apis/json-schema/CursorPermissionMode.yaml +7 -0
  9. package/apis/json-schema/Feature.yaml +3 -0
  10. package/apis/json-schema/GeminiPermissionMode.yaml +8 -0
  11. package/apis/json-schema/RovoDevPermissionMode.yaml +8 -0
  12. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +8 -0
  13. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +1 -0
  15. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +3 -0
  17. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -1
  18. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  19. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  20. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.d.ts +13 -0
  21. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/ports/output/services/settings-reader.interface.js +1 -0
  23. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/agents/configure-agent.use-case.js +4 -6
  25. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
  26. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +1 -0
  27. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  28. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +2 -0
  29. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
  30. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  31. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  32. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +1 -0
  33. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  34. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +1 -0
  35. package/dist/packages/core/src/application/use-cases/settings/complete-onboarding.use-case.d.ts +2 -0
  36. package/dist/packages/core/src/application/use-cases/settings/complete-onboarding.use-case.d.ts.map +1 -1
  37. package/dist/packages/core/src/application/use-cases/settings/complete-onboarding.use-case.js +23 -0
  38. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  39. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +9 -1
  40. package/dist/packages/core/src/domain/generated/output.d.ts +68 -2
  41. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  42. package/dist/packages/core/src/domain/generated/output.js +36 -1
  43. package/dist/packages/core/src/infrastructure/di/modules/agents.module.d.ts.map +1 -1
  44. package/dist/packages/core/src/infrastructure/di/modules/agents.module.js +4 -2
  45. package/dist/packages/core/src/infrastructure/di/modules/services.module.d.ts.map +1 -1
  46. package/dist/packages/core/src/infrastructure/di/modules/services.module.js +2 -0
  47. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  48. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  49. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +6 -0
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +31 -0
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-agent-permission-modes.d.ts +21 -0
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-agent-permission-modes.d.ts.map +1 -0
  55. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-add-agent-permission-modes.js +35 -0
  56. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-feature-permission-mode.d.ts +14 -0
  57. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-feature-permission-mode.d.ts.map +1 -0
  58. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-feature-permission-mode.js +19 -0
  59. package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts +3 -1
  60. package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts.map +1 -1
  61. package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.js +18 -7
  62. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts +1 -1
  63. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  64. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +1 -6
  65. package/dist/packages/core/src/infrastructure/services/agents/common/agent-permissions.d.ts +21 -0
  66. package/dist/packages/core/src/infrastructure/services/agents/common/agent-permissions.d.ts.map +1 -0
  67. package/dist/packages/core/src/infrastructure/services/agents/common/agent-permissions.js +49 -0
  68. package/dist/packages/core/src/infrastructure/services/agents/common/agent-runner.service.d.ts +3 -1
  69. package/dist/packages/core/src/infrastructure/services/agents/common/agent-runner.service.d.ts.map +1 -1
  70. package/dist/packages/core/src/infrastructure/services/agents/common/agent-runner.service.js +4 -3
  71. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
  72. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +0 -3
  73. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  74. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +11 -0
  75. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  76. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +1 -1
  77. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/services/agents/common/executors/codex-cli-executor.service.js +4 -1
  79. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts.map +1 -1
  80. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.js +11 -4
  81. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
  82. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +11 -1
  83. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.d.ts.map +1 -1
  84. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +2 -1
  85. package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.d.ts.map +1 -1
  86. package/dist/packages/core/src/infrastructure/services/agents/common/executors/rovo-dev-executor.service.js +11 -4
  87. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts +3 -1
  88. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts.map +1 -1
  89. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.js +13 -6
  90. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +3 -1
  91. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +1 -1
  92. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +12 -3
  93. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +5 -0
  94. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  95. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +18 -1
  96. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  97. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +1 -0
  98. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  99. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -0
  100. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +1 -0
  101. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +8 -0
  103. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.d.ts +3 -1
  104. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.d.ts.map +1 -1
  105. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.js +3 -2
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.d.ts +3 -0
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.d.ts.map +1 -1
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.js +1 -1
  109. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts +3 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  111. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +2 -1
  112. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +11 -3
  113. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  114. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +20 -5
  115. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.d.ts.map +1 -1
  116. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.js +6 -0
  117. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +1 -0
  118. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  119. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +4 -0
  120. package/dist/packages/core/src/infrastructure/services/settings-reader.service.d.ts +7 -0
  121. package/dist/packages/core/src/infrastructure/services/settings-reader.service.d.ts.map +1 -0
  122. package/dist/packages/core/src/infrastructure/services/settings-reader.service.js +25 -0
  123. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  124. package/dist/src/presentation/cli/commands/feat/new.command.js +18 -0
  125. package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
  126. package/dist/src/presentation/cli/commands/feat/show.command.js +2 -1
  127. package/dist/src/presentation/cli/commands/settings/agent.command.js +2 -2
  128. package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
  129. package/dist/src/presentation/cli/commands/settings/index.js +3 -1
  130. package/dist/src/presentation/cli/commands/settings/permission-modes.d.ts +19 -0
  131. package/dist/src/presentation/cli/commands/settings/permission-modes.d.ts.map +1 -0
  132. package/dist/src/presentation/cli/commands/settings/permission-modes.js +38 -0
  133. package/dist/src/presentation/cli/commands/settings/permissions.command.d.ts +16 -0
  134. package/dist/src/presentation/cli/commands/settings/permissions.command.d.ts.map +1 -0
  135. package/dist/src/presentation/cli/commands/settings/permissions.command.js +147 -0
  136. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +4 -10
  137. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  138. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +8 -13
  139. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts +5 -3
  140. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts.map +1 -1
  141. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.js +10 -5
  142. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.d.ts +17 -0
  143. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.d.ts.map +1 -0
  144. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.js +48 -0
  145. package/dist/src/presentation/tui/wizards/onboarding/types.d.ts +2 -0
  146. package/dist/src/presentation/tui/wizards/onboarding/types.d.ts.map +1 -1
  147. package/dist/src/presentation/web/app/actions/agent-permissions.d.ts +14 -0
  148. package/dist/src/presentation/web/app/actions/agent-permissions.d.ts.map +1 -0
  149. package/dist/src/presentation/web/app/actions/agent-permissions.js +181 -0
  150. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  151. package/dist/src/presentation/web/app/actions/check-agent-auth.js +2 -5
  152. package/dist/src/presentation/web/app/actions/check-agent-tool.js +1 -1
  153. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  154. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +2 -17
  155. package/dist/src/presentation/web/app/actions/get-merge-review-data.d.ts.map +1 -1
  156. package/dist/src/presentation/web/app/actions/get-merge-review-data.js +1 -0
  157. package/dist/src/presentation/web/app/actions/open-shell.d.ts.map +1 -1
  158. package/dist/src/presentation/web/app/actions/open-shell.js +1 -0
  159. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  160. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
  161. package/dist/src/presentation/web/components/common/feature-create-drawer/types.d.ts +2 -0
  162. package/dist/src/presentation/web/components/common/feature-create-drawer/types.d.ts.map +1 -1
  163. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.d.ts +2 -0
  164. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.d.ts.map +1 -1
  165. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.js +6 -0
  166. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.d.ts +7 -1
  167. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.js +24 -3
  169. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.d.ts.map +1 -1
  170. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.js +3 -0
  171. package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.js +2 -2
  172. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +2 -2
  173. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  174. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +4 -11
  175. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts +1 -1
  176. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  177. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +5 -6
  178. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
  179. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  180. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -2
  182. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +10 -10
  183. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +1 -1
  184. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +2 -2
  185. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -1
  186. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
  187. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +3 -3
  188. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.d.ts +8 -0
  189. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.d.ts.map +1 -0
  190. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.js +33 -0
  191. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.d.ts +15 -0
  192. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.d.ts.map +1 -0
  193. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.js +75 -0
  194. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  195. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +32 -4
  196. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -1
  197. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  198. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +2 -2
  199. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +2 -2
  200. package/dist/src/presentation/web/lib/path-sanitizers.d.ts.map +1 -1
  201. package/dist/src/presentation/web/lib/path-sanitizers.js +1 -0
  202. package/dist/translations/ar/cli.json +16 -0
  203. package/dist/translations/ar/tui.json +12 -10
  204. package/dist/translations/ar/web.json +15 -0
  205. package/dist/translations/de/cli.json +16 -0
  206. package/dist/translations/de/tui.json +13 -5
  207. package/dist/translations/de/web.json +15 -0
  208. package/dist/translations/en/cli.json +16 -0
  209. package/dist/translations/en/tui.json +12 -10
  210. package/dist/translations/en/web.json +15 -0
  211. package/dist/translations/es/cli.json +16 -0
  212. package/dist/translations/es/tui.json +12 -10
  213. package/dist/translations/es/web.json +15 -0
  214. package/dist/translations/fr/cli.json +16 -0
  215. package/dist/translations/fr/tui.json +12 -10
  216. package/dist/translations/fr/web.json +15 -0
  217. package/dist/translations/he/cli.json +16 -0
  218. package/dist/translations/he/tui.json +12 -10
  219. package/dist/translations/he/web.json +15 -0
  220. package/dist/translations/pt/cli.json +16 -0
  221. package/dist/translations/pt/tui.json +12 -10
  222. package/dist/translations/pt/web.json +15 -0
  223. package/dist/translations/ru/cli.json +16 -0
  224. package/dist/translations/ru/tui.json +12 -10
  225. package/dist/translations/ru/web.json +15 -0
  226. package/dist/tsconfig.build.tsbuildinfo +1 -1
  227. package/package.json +1 -1
  228. package/web/.next/BUILD_ID +1 -1
  229. package/web/.next/build-manifest.json +3 -3
  230. package/web/.next/fallback-build-manifest.json +3 -3
  231. package/web/.next/prerender-manifest.json +3 -3
  232. package/web/.next/required-server-files.js +2 -2
  233. package/web/.next/required-server-files.json +2 -2
  234. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  235. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -3
  236. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  238. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  239. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +2 -3
  240. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +72 -60
  243. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
  244. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  245. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  246. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  247. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -4
  248. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  249. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  251. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -4
  252. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  255. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +2 -3
  256. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  257. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  258. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  259. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -3
  260. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  261. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  262. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  263. package/web/.next/server/app/(dashboard)/chat/page.js +2 -3
  264. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  265. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  266. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +72 -60
  267. package/web/.next/server/app/(dashboard)/create/page.js +3 -3
  268. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  269. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  270. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  271. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -4
  272. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  273. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  274. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  275. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -4
  276. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  277. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  278. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  279. package/web/.next/server/app/(dashboard)/page.js +2 -3
  280. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  281. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  282. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  283. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +2 -3
  284. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  285. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  286. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  287. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -3
  288. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  289. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  290. package/web/.next/server/app/_global-error.html +1 -1
  291. package/web/.next/server/app/_global-error.rsc +1 -1
  292. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  293. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  294. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  295. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  296. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  297. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  298. package/web/.next/server/app/_not-found/page.js +2 -3
  299. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  300. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  302. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  303. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  304. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  305. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  306. package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
  307. package/web/.next/server/app/settings/page.js +3 -4
  308. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  309. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  310. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  311. package/web/.next/server/app/skills/page.js +3 -3
  312. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  313. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  314. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  315. package/web/.next/server/app/tools/page.js +3 -3
  316. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  317. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  318. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  319. package/web/.next/server/app/version/page.js +2 -3
  320. package/web/.next/server/app/version/page.js.nft.json +1 -1
  321. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  322. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js +1 -1
  323. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  324. package/web/.next/server/chunks/[root-of-the-server]__0_-chcy._.js.map +1 -1
  325. package/web/.next/server/chunks/[root-of-the-server]__0e9p7em._.js.map +1 -1
  326. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  327. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  328. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  329. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  330. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  331. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  332. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  333. package/web/.next/server/chunks/ssr/{_01mq~sm._.js → 11es_next_0q-kz~8._.js} +2 -2
  334. package/web/.next/server/chunks/ssr/11es_next_0q-kz~8._.js.map +1 -0
  335. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  336. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__02.89uf._.js +4 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__02.89uf._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__04rq9lr._.js +4 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__04rq9lr._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +4 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js +3 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js.map +1 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r5zhk.._.js +4 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r5zhk.._.js.map +1 -0
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js +4 -0
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +4 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uy_5rw._.js +4 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uy_5rw._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +4 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/_00k65h-._.js.map +1 -1
  357. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  358. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/_069y.js._.js +6 -0
  360. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -0
  361. package/web/.next/server/chunks/ssr/_0__4si~._.js +4 -0
  362. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/_0_m17kl._.js +4 -0
  364. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/_0d4miu.._.js +4 -0
  366. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/_0e8ern9._.js +4 -0
  368. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/{_04rrcmm._.js → _0l10ccg._.js} +2 -2
  370. package/web/.next/server/chunks/ssr/_0l10ccg._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/_0mo6j.n._.js +3 -0
  372. package/web/.next/server/chunks/ssr/_0mo6j.n._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/{_0c497sr._.js → _0mvhe_2._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{_0c497sr._.js.map → _0mvhe_2._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/{_109n-y4._.js → _0n.magx._.js} +2 -2
  376. package/web/.next/server/chunks/ssr/_0n.magx._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +6 -0
  378. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +4 -0
  380. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/_0t59q8r._.js +4 -0
  382. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/_0tcccbb._.js +3 -0
  384. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  386. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  388. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +4 -0
  390. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  392. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  393. package/web/.next/server/chunks/ssr/_1161g9x._.js +4 -0
  394. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +3 -0
  396. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +3 -0
  398. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -0
  399. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  400. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  402. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  404. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  405. package/web/.next/server/middleware-build-manifest.js +3 -3
  406. package/web/.next/server/pages/500.html +1 -1
  407. package/web/.next/server/server-reference-manifest.js +1 -1
  408. package/web/.next/server/server-reference-manifest.json +127 -109
  409. package/web/.next/static/chunks/{0ex35-_jtxyjc.js → 0.8ue6wwr7ni~.js} +1 -1
  410. package/web/.next/static/chunks/{0t_6hx6ul7umb.js → 028x3z97mchhz.js} +1 -1
  411. package/web/.next/static/chunks/044f5piy5pt5t.js +1 -0
  412. package/web/.next/static/chunks/04~sw.nhpwy6s.css +1 -0
  413. package/web/.next/static/chunks/05enics63g._-.js +7 -0
  414. package/web/.next/static/chunks/0_.x~txb5da7d.js +1 -0
  415. package/web/.next/static/chunks/0_9k2ybutuphq.js +1 -0
  416. package/web/.next/static/chunks/{07gx-h_y91lay.js → 0hti2r43x0~b7.js} +2 -2
  417. package/web/.next/static/chunks/0jo5-_q.1n69j.js +1 -0
  418. package/web/.next/static/chunks/{0oq-cvtg8rjjp.js → 0n3u~4ytndfyd.js} +1 -1
  419. package/web/.next/static/chunks/{0whez3wju~9ok.js → 0pyz97q7eg0jz.js} +1 -1
  420. package/web/.next/static/chunks/0qqe9hx_txhso.js +1 -0
  421. package/web/.next/static/chunks/{04xk1iouwcfcq.js → 0vx7ldqj8436q.js} +3 -3
  422. package/web/.next/static/chunks/11~m1ei9bh269.js +3 -0
  423. package/web/.next/static/chunks/{0c_bi0dck80dt.js → 13w6ziae82sjy.js} +1 -1
  424. package/web/.next/static/chunks/16.83v.xq8bn9.js +1 -0
  425. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts +0 -12
  426. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts.map +0 -1
  427. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.js +0 -233
  428. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts +0 -8
  429. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts.map +0 -1
  430. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.js +0 -94
  431. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts +0 -8
  432. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts.map +0 -1
  433. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.js +0 -140
  434. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts +0 -8
  435. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts.map +0 -1
  436. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.js +0 -81
  437. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts +0 -8
  438. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts.map +0 -1
  439. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.js +0 -131
  440. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts +0 -6
  441. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts.map +0 -1
  442. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.js +0 -146
  443. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +0 -3
  444. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +0 -3
  446. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +0 -1
  447. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +0 -3
  448. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +0 -1
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__04nnbmc._.js +0 -3
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__04nnbmc._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__07740t6._.js +0 -3
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__07740t6._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l~puw4._.js +0 -3
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l~puw4._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js +0 -3
  456. package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/[root-of-the-server]__0vwjc_m._.js +0 -3
  458. package/web/.next/server/chunks/ssr/[root-of-the-server]__0vwjc_m._.js.map +0 -1
  459. package/web/.next/server/chunks/ssr/[root-of-the-server]__0w4__yd._.js +0 -4
  460. package/web/.next/server/chunks/ssr/[root-of-the-server]__0w4__yd._.js.map +0 -1
  461. package/web/.next/server/chunks/ssr/_0.rsra~._.js +0 -3
  462. package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +0 -1
  463. package/web/.next/server/chunks/ssr/_01mq~sm._.js.map +0 -1
  464. package/web/.next/server/chunks/ssr/_04rrcmm._.js.map +0 -1
  465. package/web/.next/server/chunks/ssr/_0c741v_._.js +0 -3
  466. package/web/.next/server/chunks/ssr/_0c741v_._.js.map +0 -1
  467. package/web/.next/server/chunks/ssr/_0jpbsh_._.js +0 -4
  468. package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +0 -1
  469. package/web/.next/server/chunks/ssr/_109n-y4._.js.map +0 -1
  470. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +0 -3
  471. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +0 -1
  472. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +0 -3
  473. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +0 -1
  474. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +0 -5
  475. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +0 -1
  476. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +0 -3
  477. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +0 -1
  478. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +0 -3
  479. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +0 -1
  480. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +0 -5
  481. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +0 -1
  482. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +0 -3
  483. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +0 -1
  484. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +0 -3
  485. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +0 -1
  486. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +0 -3
  487. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +0 -1
  488. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +0 -3
  489. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +0 -1
  490. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +0 -3
  491. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +0 -1
  492. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +0 -3
  493. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map +0 -1
  494. package/web/.next/static/chunks/0-fy~80ui.5os.js +0 -7
  495. package/web/.next/static/chunks/039ic1ygq-to3.js +0 -1
  496. package/web/.next/static/chunks/07a4jt64wdipb.js +0 -1
  497. package/web/.next/static/chunks/0_imq4rg3q.fe.js +0 -3
  498. package/web/.next/static/chunks/0i084mozx131g.js +0 -1
  499. package/web/.next/static/chunks/0j_0i2qsrwh-c.js +0 -1
  500. package/web/.next/static/chunks/0k~55i.ofbdeb.js +0 -1
  501. package/web/.next/static/chunks/0r5dju6f1-i38.css +0 -1
  502. /package/web/.next/static/{ynyh_sSxbFA995FRvBUxs → ksBer6au8b_fS1_7dCF2D}/_buildManifest.js +0 -0
  503. /package/web/.next/static/{ynyh_sSxbFA995FRvBUxs → ksBer6au8b_fS1_7dCF2D}/_clientMiddlewareManifest.js +0 -0
  504. /package/web/.next/static/{ynyh_sSxbFA995FRvBUxs → ksBer6au8b_fS1_7dCF2D}/_ssgManifest.js +0 -0
@@ -0,0 +1,181 @@
1
+ 'use server';
2
+ import { resolve } from '../../lib/server-container.js';
3
+ import { updateSettings as updateSettingsSingleton } from '../../../../../packages/core/src/infrastructure/services/settings.service.js';
4
+ import { revalidatePath } from 'next/cache';
5
+ import { AgentType, ClaudeCodePermissionMode, CursorPermissionMode, GeminiPermissionMode, CodexPermissionMode, CopilotPermissionMode, RovoDevPermissionMode, } from '../../../../../packages/core/src/domain/generated/output.js';
6
+ const VALID_MODES = {
7
+ [AgentType.ClaudeCode]: [
8
+ {
9
+ value: ClaudeCodePermissionMode.BypassPermissions,
10
+ label: 'Bypass permissions',
11
+ description: 'Skip all permission checks. Fastest for batch runs.',
12
+ batchSafe: true,
13
+ },
14
+ {
15
+ value: ClaudeCodePermissionMode.AcceptEdits,
16
+ label: 'Accept edits',
17
+ description: 'Auto-approve file edits; prompt for shell/network.',
18
+ batchSafe: false,
19
+ },
20
+ {
21
+ value: ClaudeCodePermissionMode.Plan,
22
+ label: 'Plan',
23
+ description: 'Read-only; proposes changes without acting.',
24
+ batchSafe: false,
25
+ },
26
+ {
27
+ value: ClaudeCodePermissionMode.Default,
28
+ label: 'Default',
29
+ description: 'Prompt for everything except reads.',
30
+ batchSafe: false,
31
+ },
32
+ ],
33
+ [AgentType.Cursor]: [
34
+ {
35
+ value: CursorPermissionMode.Yolo,
36
+ label: 'Yolo',
37
+ description: 'Write files and execute commands autonomously.',
38
+ batchSafe: true,
39
+ },
40
+ {
41
+ value: CursorPermissionMode.Propose,
42
+ label: 'Propose',
43
+ description: 'Read and analyze; output a diff without writing.',
44
+ batchSafe: true,
45
+ },
46
+ ],
47
+ [AgentType.GeminiCli]: [
48
+ {
49
+ value: GeminiPermissionMode.Yolo,
50
+ label: 'Yolo',
51
+ description: 'Auto-approve all tool calls.',
52
+ batchSafe: true,
53
+ },
54
+ {
55
+ value: GeminiPermissionMode.AutoEdit,
56
+ label: 'Auto-edit',
57
+ description: 'Auto-approve edits; prompt for shell.',
58
+ batchSafe: false,
59
+ },
60
+ {
61
+ value: GeminiPermissionMode.Default,
62
+ label: 'Default',
63
+ description: 'Prompt for every tool call.',
64
+ batchSafe: false,
65
+ },
66
+ ],
67
+ [AgentType.CodexCli]: [
68
+ {
69
+ value: CodexPermissionMode.DangerFullAccess,
70
+ label: 'Full access',
71
+ description: 'No sandbox. Unrestricted access.',
72
+ batchSafe: true,
73
+ },
74
+ {
75
+ value: CodexPermissionMode.WorkspaceWrite,
76
+ label: 'Workspace write',
77
+ description: 'Writes inside worktree, no network.',
78
+ batchSafe: true,
79
+ },
80
+ {
81
+ value: CodexPermissionMode.ReadOnly,
82
+ label: 'Read only',
83
+ description: 'Cannot modify anything.',
84
+ batchSafe: true,
85
+ },
86
+ ],
87
+ [AgentType.CopilotCli]: [
88
+ {
89
+ value: CopilotPermissionMode.Yolo,
90
+ label: 'Yolo',
91
+ description: 'Disable all permission prompts.',
92
+ batchSafe: true,
93
+ },
94
+ {
95
+ value: CopilotPermissionMode.AllowPaths,
96
+ label: 'Allow paths',
97
+ description: 'Filesystem access auto-approved; shell prompts.',
98
+ batchSafe: false,
99
+ },
100
+ {
101
+ value: CopilotPermissionMode.Prompt,
102
+ label: 'Prompt',
103
+ description: 'Built-in tool category defaults.',
104
+ batchSafe: false,
105
+ },
106
+ ],
107
+ [AgentType.RovoDev]: [
108
+ {
109
+ value: RovoDevPermissionMode.Yolo,
110
+ label: 'Yolo',
111
+ description: 'Bypass all prompts.',
112
+ batchSafe: true,
113
+ },
114
+ {
115
+ value: RovoDevPermissionMode.Shadow,
116
+ label: 'Shadow',
117
+ description: 'Temporary workspace clone. Experimental.',
118
+ batchSafe: false,
119
+ },
120
+ {
121
+ value: RovoDevPermissionMode.Config,
122
+ label: 'Config',
123
+ description: 'Respect ~/.rovodev/config.yml settings.',
124
+ batchSafe: false,
125
+ },
126
+ ],
127
+ };
128
+ /** Agent type to AgentPermissionSettings key mapping */
129
+ const AGENT_TYPE_TO_PERMISSION_KEY = {
130
+ [AgentType.ClaudeCode]: 'claudeCode',
131
+ [AgentType.Cursor]: 'cursor',
132
+ [AgentType.GeminiCli]: 'geminiCli',
133
+ [AgentType.CodexCli]: 'codexCli',
134
+ [AgentType.CopilotCli]: 'copilotCli',
135
+ [AgentType.RovoDev]: 'rovoDev',
136
+ };
137
+ export async function getAgentPermissionOptions(agentType) {
138
+ return VALID_MODES[agentType] ?? [];
139
+ }
140
+ export async function getCurrentAgentPermissionMode(agentType) {
141
+ const loadUseCase = resolve('LoadSettingsUseCase');
142
+ const settings = await loadUseCase.execute();
143
+ const key = AGENT_TYPE_TO_PERMISSION_KEY[agentType];
144
+ if (!key)
145
+ return undefined;
146
+ return settings.agent?.permissions?.[key];
147
+ }
148
+ export async function setAgentPermissionMode(agentType, mode) {
149
+ try {
150
+ const key = AGENT_TYPE_TO_PERMISSION_KEY[agentType];
151
+ if (!key) {
152
+ return { success: false, error: `Unsupported agent type: ${agentType}` };
153
+ }
154
+ const modes = VALID_MODES[agentType];
155
+ if (!modes?.some((m) => m.value === mode)) {
156
+ return { success: false, error: `Invalid permission mode: ${mode}` };
157
+ }
158
+ const loadUseCase = resolve('LoadSettingsUseCase');
159
+ const current = await loadUseCase.execute();
160
+ const updatedSettings = {
161
+ ...current,
162
+ agent: {
163
+ ...current.agent,
164
+ permissions: {
165
+ ...current.agent?.permissions,
166
+ [key]: mode,
167
+ },
168
+ },
169
+ updatedAt: new Date(),
170
+ };
171
+ const updateUseCase = resolve('UpdateSettingsUseCase');
172
+ await updateUseCase.execute(updatedSettings);
173
+ updateSettingsSingleton(updatedSettings);
174
+ revalidatePath('/', 'layout');
175
+ return { success: true };
176
+ }
177
+ catch (error) {
178
+ const message = error instanceof Error ? error.message : 'Failed to update permission mode';
179
+ return { success: false, error: message };
180
+ }
181
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"check-agent-auth.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/check-agent-auth.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IACvB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA+ID;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CA4H/D"}
1
+ {"version":3,"file":"check-agent-auth.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/check-agent-auth.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,aAAa,EAAE,OAAO,CAAC;IACvB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wDAAwD;IACxD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA4ID;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CA4H/D"}
@@ -12,9 +12,6 @@ const AGENT_LABELS = {
12
12
  cursor: 'Cursor CLI',
13
13
  'gemini-cli': 'Gemini CLI',
14
14
  'rovo-dev': 'Rovo Dev CLI',
15
- aider: 'Aider',
16
- continue: 'Continue',
17
- dev: 'Demo',
18
15
  };
19
16
  const AGENT_TOOL_MAP = {
20
17
  'claude-code': 'claude-code',
@@ -92,7 +89,7 @@ function tier1AuthCheck(agentType) {
92
89
  return existsSync(acliDir) ? 'file' : false;
93
90
  }
94
91
  default:
95
- // dev, aider, continue — assume no auth needed
92
+ // Unknown agents — assume no auth needed
96
93
  return 'env-var';
97
94
  }
98
95
  }
@@ -169,7 +166,7 @@ export async function checkAgentAuth() {
169
166
  const label = AGENT_LABELS[agentType] ?? agentType;
170
167
  const toolId = AGENT_TOOL_MAP[agentType] ?? null;
171
168
  const binaryName = AGENT_BINARY_MAP[agentType] ?? null;
172
- // Dev/demo agents — always good
169
+ // Agents without a tool mapping — always good
173
170
  if (!toolId) {
174
171
  return {
175
172
  agentType,
@@ -22,7 +22,7 @@ const AGENT_BINARY_MAP = {
22
22
  export async function checkAgentTool(agentType) {
23
23
  const toolId = AGENT_TOOL_MAP[agentType] ?? null;
24
24
  const binaryName = AGENT_BINARY_MAP[agentType] ?? null;
25
- // Dev agent and unknown agents don't need a tool
25
+ // Agents without a tool mapping don't need a tool check
26
26
  if (!toolId) {
27
27
  return { agentType, toolId: null, tool: null, installed: true, binaryName: null };
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-all-agent-models.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-all-agent-models.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAoCD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAmDpE"}
1
+ {"version":3,"file":"get-all-agent-models.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-all-agent-models.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAkCD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAsCpE"}
@@ -8,9 +8,8 @@ const AGENT_LABELS = {
8
8
  cursor: 'Cursor CLI',
9
9
  'gemini-cli': 'Gemini CLI',
10
10
  'rovo-dev': 'Rovo Dev CLI',
11
- dev: 'Demo',
12
11
  };
13
- /** Sort weight — higher = further down. Demo always last. */
12
+ /** Sort weight — lower = further up in the list. */
14
13
  const AGENT_ORDER = {
15
14
  'claude-code': 0,
16
15
  'codex-cli': 1,
@@ -18,7 +17,6 @@ const AGENT_ORDER = {
18
17
  cursor: 3,
19
18
  'gemini-cli': 4,
20
19
  'rovo-dev': 5,
21
- dev: 99,
22
20
  };
23
21
  /**
24
22
  * Maps agent types to their corresponding tool IDs for availability checks.
@@ -45,25 +43,12 @@ export async function getAllAgentModels() {
45
43
  ...getModelMeta(id),
46
44
  })),
47
45
  }))
48
- .map((g) => {
49
- // Dev agent gets fun demo models
50
- if (g.agentType === 'dev' && g.models.length === 0) {
51
- return {
52
- ...g,
53
- models: [
54
- { id: 'gpt-8', ...getModelMeta('gpt-8') },
55
- { id: 'opus-7', ...getModelMeta('opus-7') },
56
- ],
57
- };
58
- }
59
- return g;
60
- })
61
46
  .filter((g) => g.models.length > 0);
62
47
  // Check which agents are actually installed
63
48
  const toolService = resolve('IToolInstallerService');
64
49
  const groupsWithStatus = await Promise.all(groups.map(async (group) => {
65
50
  const toolId = AGENT_TOOL_IDS[group.agentType];
66
- if (!toolId || group.agentType === 'dev') {
51
+ if (!toolId) {
67
52
  return { ...group, installed: true };
68
53
  }
69
54
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"get-merge-review-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-merge-review-data.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,sDAAsD,CAAC;AAI9D,KAAK,wBAAwB,GAAG,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAwDpE,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAuI7F"}
1
+ {"version":3,"file":"get-merge-review-data.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/get-merge-review-data.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,sDAAsD,CAAC;AAI9D,KAAK,wBAAwB,GAAG,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAwDpE,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAwI7F"}
@@ -130,6 +130,7 @@ export async function getMergeReviewData(featureId) {
130
130
  isWithinRoot(resolvedEvidenceDir, resolvedHome)) {
131
131
  const resolvedManifest = realpathOrNull(join(resolvedEvidenceDir, 'manifest.json'));
132
132
  if (resolvedManifest && isWithinRoot(resolvedManifest, resolvedEvidenceDir)) {
133
+ // codeql[js/path-injection] -- resolvedManifest validated by realpathOrNull + isWithinRoot(resolvedManifest, resolvedEvidenceDir) on line 159; featureId flows through SHA-256 hash in computeEvidenceDir
133
134
  const raw = JSON.parse(readFileSync(resolvedManifest, 'utf-8'));
134
135
  // Pass the UNRESOLVED evidenceDir so returned paths share the
135
136
  // same root form the evidence route's prefix check expects.
@@ -1 +1 @@
1
- {"version":3,"file":"open-shell.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/open-shell.ts"],"names":[],"mappings":"AAmDA,UAAU,cAAc;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2F9E"}
1
+ {"version":3,"file":"open-shell.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/app/actions/open-shell.ts"],"names":[],"mappings":"AAmDA,UAAU,cAAc;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA4F9E"}
@@ -77,6 +77,7 @@ export async function openShell(input) {
77
77
  // shell treats as a single literal argument to `cd`.
78
78
  const escapedPath = shellEscapePosixPath(targetPath);
79
79
  const command = config.openDirectory.replaceAll('{dir}', escapedPath);
80
+ // codeql[js/command-line-injection] -- targetPath from realpathSync (must exist on disk); shell-escaped via single-quote wrapping in shellEscapePosixPath; localhost-only server action
80
81
  const child = spawn(command, [], {
81
82
  detached: true,
82
83
  stdio: 'ignore',
@@ -1 +1 @@
1
- {"version":3,"file":"feature-create-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAM5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE3F,YAAY,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,YAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,EAAE,wBAAwB,2CA6L1B"}
1
+ {"version":3,"file":"feature-create-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAM5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE3F,YAAY,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,YAAoB,EACpB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,EAAE,wBAAwB,2CAgM1B"}
@@ -46,5 +46,5 @@ export function FeatureCreateDrawer({ open, onClose, onSubmit, repositoryPath, i
46
46
  form.validRepoPath.split('/').pop() })] })) : null, _jsx(PromptSection, { description: form.description, onDescriptionChange: form.setDescription, attachments: form.attachments, onRemoveFile: form.handleRemoveFile, onNotesChange: form.handleNotesChange, onPaste: form.handlePaste, onDragEnter: form.handleDragEnter, onDragLeave: form.handleDragLeave, onDragOver: form.handleDragOver, onDrop: form.handleDrop, onAddFiles: form.handleAddFiles, isDragOver: form.isDragOver, uploadError: form.uploadError, isPromptFocused: form.isPromptFocused, onPromptFocus: () => form.setIsPromptFocused(true), onPromptBlur: () => form.setIsPromptFocused(false), fast: form.fast, onFastChange: form.setFast, pending: form.pending, onPendingChange: form.setPending, overrideAgent: form.overrideAgent, overrideModel: form.overrideModel, currentAgentType: currentAgentType, currentModel: currentModel, onAgentModelChange: (agent, model) => {
47
47
  form.setOverrideAgent(agent);
48
48
  form.setOverrideModel(model);
49
- }, isSubmitting: isSubmitting }), hasFeatures && initialParentId !== undefined ? (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "parent-feature", className: "text-muted-foreground text-xs font-semibold tracking-wider", children: t('createDrawer.parentFeature') }), _jsx(ParentFeatureCombobox, { features: features, value: form.parentId, onChange: form.setParentId, disabled: isSubmitting })] })) : null, _jsx(WorkflowOptionsSection, { approvalGates: form.approvalGates, onApprovalGatesChange: form.setApprovalGates, enableEvidence: form.enableEvidence, onEnableEvidenceChange: form.setEnableEvidence, commitEvidence: form.commitEvidence, onCommitEvidenceChange: form.setCommitEvidence, push: form.push, onPushChange: form.setPush, openPr: form.openPr, onOpenPrChange: form.setOpenPr, ciWatchEnabled: form.ciWatchEnabled, onCiWatchChange: form.setCiWatchEnabled, rebaseBeforeBranch: form.rebaseBeforeBranch, onRebaseBeforeBranchChange: form.setRebaseBeforeBranch, commitSpecs: form.commitSpecs, onCommitSpecsChange: form.setCommitSpecs, forkAndPr: form.forkAndPr, onForkAndPrChange: form.setForkAndPr, canPush: form.canPush, fast: form.fast, computedPush: form.computedPush, computedOpenPr: form.computedOpenPr, isSubmitting: isSubmitting })] }) }) }) }));
49
+ }, isSubmitting: isSubmitting }), hasFeatures && initialParentId !== undefined ? (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "parent-feature", className: "text-muted-foreground text-xs font-semibold tracking-wider", children: t('createDrawer.parentFeature') }), _jsx(ParentFeatureCombobox, { features: features, value: form.parentId, onChange: form.setParentId, disabled: isSubmitting })] })) : null, _jsx(WorkflowOptionsSection, { approvalGates: form.approvalGates, onApprovalGatesChange: form.setApprovalGates, enableEvidence: form.enableEvidence, onEnableEvidenceChange: form.setEnableEvidence, commitEvidence: form.commitEvidence, onCommitEvidenceChange: form.setCommitEvidence, push: form.push, onPushChange: form.setPush, openPr: form.openPr, onOpenPrChange: form.setOpenPr, ciWatchEnabled: form.ciWatchEnabled, onCiWatchChange: form.setCiWatchEnabled, rebaseBeforeBranch: form.rebaseBeforeBranch, onRebaseBeforeBranchChange: form.setRebaseBeforeBranch, commitSpecs: form.commitSpecs, onCommitSpecsChange: form.setCommitSpecs, forkAndPr: form.forkAndPr, onForkAndPrChange: form.setForkAndPr, canPush: form.canPush, fast: form.fast, computedPush: form.computedPush, computedOpenPr: form.computedOpenPr, isSubmitting: isSubmitting, agentType: form.overrideAgent ?? currentAgentType, permissionMode: form.permissionMode, onPermissionModeChange: form.setPermissionMode })] }) }) }) }));
50
50
  }
@@ -50,6 +50,8 @@ export interface FeatureCreatePayload {
50
50
  agentType?: string;
51
51
  /** Optional model override for this feature run */
52
52
  model?: string;
53
+ /** Optional per-feature permission mode override (overrides agent default from settings) */
54
+ permissionMode?: string;
53
55
  sessionId?: string;
54
56
  }
55
57
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAElG,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAElG,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -50,6 +50,8 @@ export declare function useFeatureCreateForm({ open, onClose, onSubmit, reposito
50
50
  setOverrideAgent: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
51
51
  overrideModel: string | undefined;
52
52
  setOverrideModel: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
53
+ permissionMode: string | undefined;
54
+ setPermissionMode: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
53
55
  selectedRepoPath: string | undefined;
54
56
  setSelectedRepoPath: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
55
57
  localRepos: RepositoryOption[];
@@ -1 +1 @@
1
- {"version":3,"file":"use-feature-create-form.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAyEtF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAwJuB,IAAI,EAAE;yBA8Df,KAAK,CAAC,SAAS;yBASf,KAAK,CAAC,SAAS;wBAShB,KAAK,CAAC,SAAS;oBAMhD,KAAK,CAAC,SAAS;qBAef,KAAK,CAAC,cAAc;sBAqBpB,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;;2BA6GI,MAAM;4BAIL,MAAM,SAAS,MAAM;;EA2EjE"}
1
+ {"version":3,"file":"use-feature-create-form.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAyEtF,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,GAChB,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA0JuB,IAAI,EAAE;yBA8Df,KAAK,CAAC,SAAS;yBASf,KAAK,CAAC,SAAS;wBAShB,KAAK,CAAC,SAAS;oBAMhD,KAAK,CAAC,SAAS;qBAef,KAAK,CAAC,cAAc;sBAqBpB,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;;2BA+GI,MAAM;4BAIL,MAAM,SAAS,MAAM;;EA6EjE"}
@@ -111,6 +111,7 @@ export function useFeatureCreateForm({ open, onClose, onSubmit, repositoryPath,
111
111
  const [rebaseBeforeBranch, setRebaseBeforeBranch] = useState(true);
112
112
  const [overrideAgent, setOverrideAgent] = useState(undefined);
113
113
  const [overrideModel, setOverrideModel] = useState(undefined);
114
+ const [permissionMode, setPermissionMode] = useState(undefined);
114
115
  const [selectedRepoPath, setSelectedRepoPath] = useState(validRepoPath || undefined);
115
116
  const [localRepos, setLocalRepos] = useState(repositories ?? []);
116
117
  const [isDragOver, setIsDragOver] = useState(false);
@@ -185,6 +186,7 @@ export function useFeatureCreateForm({ open, onClose, onSubmit, repositoryPath,
185
186
  setRebaseBeforeBranch(true);
186
187
  setOverrideAgent(undefined);
187
188
  setOverrideModel(undefined);
189
+ setPermissionMode(undefined);
188
190
  setUploadError(null);
189
191
  dragCounterRef.current = 0;
190
192
  setIsDragOver(false);
@@ -334,6 +336,7 @@ export function useFeatureCreateForm({ open, onClose, onSubmit, repositoryPath,
334
336
  ...(pending ? { pending } : {}),
335
337
  ...(overrideAgent ? { agentType: overrideAgent } : {}),
336
338
  ...(overrideModel ? { model: overrideModel } : {}),
339
+ ...(permissionMode ? { permissionMode } : {}),
337
340
  ...(parentId ? { parentId } : {}),
338
341
  sessionId: sessionIdRef.current,
339
342
  });
@@ -357,6 +360,7 @@ export function useFeatureCreateForm({ open, onClose, onSubmit, repositoryPath,
357
360
  pending,
358
361
  overrideAgent,
359
362
  overrideModel,
363
+ permissionMode,
360
364
  parentId,
361
365
  createSound,
362
366
  resetForm,
@@ -456,6 +460,8 @@ export function useFeatureCreateForm({ open, onClose, onSubmit, repositoryPath,
456
460
  setOverrideAgent,
457
461
  overrideModel,
458
462
  setOverrideModel,
463
+ permissionMode,
464
+ setPermissionMode,
459
465
  selectedRepoPath,
460
466
  setSelectedRepoPath,
461
467
  localRepos,
@@ -22,6 +22,12 @@ export interface WorkflowOptionsSectionProps {
22
22
  computedPush: boolean;
23
23
  computedOpenPr: boolean;
24
24
  isSubmitting: boolean;
25
+ /** Currently selected agent type (for permission mode options) */
26
+ agentType?: string;
27
+ /** Selected per-feature permission mode override */
28
+ permissionMode?: string;
29
+ /** Callback when permission mode changes */
30
+ onPermissionModeChange?: (mode: string | undefined) => void;
25
31
  }
26
- export declare function WorkflowOptionsSection({ approvalGates, onApprovalGatesChange, enableEvidence, onEnableEvidenceChange, commitEvidence, onCommitEvidenceChange, push: _push, onPushChange, openPr, onOpenPrChange, ciWatchEnabled, onCiWatchChange, rebaseBeforeBranch, onRebaseBeforeBranchChange, commitSpecs, onCommitSpecsChange, forkAndPr, onForkAndPrChange, canPush, fast, computedPush, computedOpenPr, isSubmitting, }: WorkflowOptionsSectionProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function WorkflowOptionsSection({ approvalGates, onApprovalGatesChange, enableEvidence, onEnableEvidenceChange, commitEvidence, onCommitEvidenceChange, push: _push, onPushChange, openPr, onOpenPrChange, ciWatchEnabled, onCiWatchChange, rebaseBeforeBranch, onRebaseBeforeBranchChange, commitSpecs, onCommitSpecsChange, forkAndPr, onForkAndPrChange, canPush, fast, computedPush, computedOpenPr, isSubmitting, agentType, permissionMode, onPermissionModeChange, }: WorkflowOptionsSectionProps): import("react/jsx-runtime").JSX.Element;
27
33
  //# sourceMappingURL=workflow-options-section.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-options-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/workflow-options-section.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,IAAI,EAAE,KAAK,EACX,YAAY,EACZ,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,YAAY,GACb,EAAE,2BAA2B,2CA4S7B"}
1
+ {"version":3,"file":"workflow-options-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/workflow-options-section.tsx"],"names":[],"mappings":"AAoBA,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,0BAA0B,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,IAAI,EAAE,KAAK,EACX,YAAY,EACZ,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,SAAS,EACT,cAAc,EACd,sBAAsB,GACvB,EAAE,2BAA2B,2CAsT7B"}
@@ -1,13 +1,16 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
3
4
  import { useTranslation } from 'react-i18next';
4
- import { GitFork, FileText, RefreshCw } from 'lucide-react';
5
+ import { GitFork, FileText, RefreshCw, Shield } from 'lucide-react';
5
6
  import { cn } from '../../../lib/utils.js';
6
7
  import { Label } from '../../ui/label.js';
7
8
  import { Switch } from '../../ui/switch.js';
9
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../../ui/select.js';
8
10
  import { Tooltip, TooltipContent, TooltipTrigger } from '../../ui/tooltip.js';
11
+ import { getAgentPermissionOptions } from '../../../app/actions/agent-permissions.js';
9
12
  const AUTO_APPROVE_OPTION_IDS = ['allowPrd', 'allowPlan', 'allowMerge'];
10
- export function WorkflowOptionsSection({ approvalGates, onApprovalGatesChange, enableEvidence, onEnableEvidenceChange, commitEvidence, onCommitEvidenceChange, push: _push, onPushChange, openPr, onOpenPrChange, ciWatchEnabled, onCiWatchChange, rebaseBeforeBranch, onRebaseBeforeBranchChange, commitSpecs, onCommitSpecsChange, forkAndPr, onForkAndPrChange, canPush, fast, computedPush, computedOpenPr, isSubmitting, }) {
13
+ export function WorkflowOptionsSection({ approvalGates, onApprovalGatesChange, enableEvidence, onEnableEvidenceChange, commitEvidence, onCommitEvidenceChange, push: _push, onPushChange, openPr, onOpenPrChange, ciWatchEnabled, onCiWatchChange, rebaseBeforeBranch, onRebaseBeforeBranchChange, commitSpecs, onCommitSpecsChange, forkAndPr, onForkAndPrChange, canPush, fast, computedPush, computedOpenPr, isSubmitting, agentType, permissionMode, onPermissionModeChange, }) {
11
14
  const { t } = useTranslation('web');
12
15
  const AUTO_APPROVE_OPTIONS = [
13
16
  { id: 'allowPrd', label: t('createDrawer.prd'), description: t('createDrawer.prdDescription') },
@@ -51,5 +54,23 @@ export function WorkflowOptionsSection({ approvalGates, onApprovalGatesChange, e
51
54
  // Auto-flip commitSpecs to false when enabling contribute mode
52
55
  if (v)
53
56
  onCommitSpecsChange(false);
54
- }, disabled: isSubmitting }), _jsxs(Label, { htmlFor: "fork-and-pr", className: "flex cursor-pointer items-center gap-1 text-xs font-medium", children: [_jsx(GitFork, { className: "h-3 w-3" }), t('createDrawer.forkAndPr')] })] }) }), _jsx(TooltipContent, { side: "bottom", children: t('createDrawer.forkAndPrDescription') })] }))] })] })] }));
57
+ }, disabled: isSubmitting }), _jsxs(Label, { htmlFor: "fork-and-pr", className: "flex cursor-pointer items-center gap-1 text-xs font-medium", children: [_jsx(GitFork, { className: "h-3 w-3" }), t('createDrawer.forkAndPr')] })] }) }), _jsx(TooltipContent, { side: "bottom", children: t('createDrawer.forkAndPrDescription') })] }))] })] }), agentType && onPermissionModeChange ? (_jsx(PermissionModeRow, { agentType: agentType, permissionMode: permissionMode, onPermissionModeChange: onPermissionModeChange, isSubmitting: isSubmitting })) : null] }));
58
+ }
59
+ /** Internal sub-component for the permission mode select in the workflow options row. */
60
+ function PermissionModeRow({ agentType, permissionMode, onPermissionModeChange, isSubmitting, }) {
61
+ const { t } = useTranslation('web');
62
+ const [options, setOptions] = useState([]);
63
+ useEffect(() => {
64
+ let cancelled = false;
65
+ getAgentPermissionOptions(agentType).then((opts) => {
66
+ if (!cancelled)
67
+ setOptions(opts);
68
+ });
69
+ return () => {
70
+ cancelled = true;
71
+ };
72
+ }, [agentType]);
73
+ if (options.length === 0)
74
+ return null;
75
+ return (_jsxs("div", { className: "border-input flex items-center gap-4 rounded-md border px-3 py-2.5", children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("span", { className: "text-muted-foreground flex w-16 shrink-0 cursor-default items-center gap-1 text-xs font-semibold tracking-wider", children: [_jsx(Shield, { className: "h-3 w-3" }), t('feature.create.permissionMode')] }) }), _jsx(TooltipContent, { side: "bottom", children: t('settings.agent.permissions.description', { agent: agentType }) })] }), _jsx("div", { className: "flex-1", children: _jsxs(Select, { value: permissionMode ?? '__default__', onValueChange: (v) => onPermissionModeChange(v === '__default__' ? undefined : v), disabled: isSubmitting, children: [_jsx(SelectTrigger, { id: "permission-mode", "data-testid": "permission-mode-select", className: "h-7 text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "__default__", children: t('feature.create.permissionModeDefault') }), options.map((opt) => (_jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value)))] })] }) })] }));
55
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-options-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,sBAAsB,CAyC7C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErD,kEAAkE;AAClE,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAE,KAI9B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,eAAe,EAAE,KAM7B,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,KAI7B,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAC"}
1
+ {"version":3,"file":"workflow-options-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,sBAAsB,CA4C7C,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErD,kEAAkE;AAClE,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,EAAE,KAI9B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,eAAe,EAAE,KAM7B,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,oBAAoB;AACpB,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,SAAS,EAAE,KAOvB,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,eAAe,EAAE,KAI7B,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAC"}
@@ -36,6 +36,9 @@ const meta = {
36
36
  computedPush: false,
37
37
  computedOpenPr: false,
38
38
  isSubmitting: false,
39
+ agentType: 'claude-code',
40
+ permissionMode: undefined,
41
+ onPermissionModeChange: fn(),
39
42
  },
40
43
  };
41
44
  export default meta;
@@ -67,8 +67,8 @@ export const WithClickHandler = {
67
67
  args: {
68
68
  name: 'API Gateway',
69
69
  status: 'action-needed',
70
- agentType: 'dev',
71
- modelId: 'gpt-8',
70
+ agentType: 'gemini-cli',
71
+ modelId: 'gemini-2.5-pro',
72
72
  onClick: () => alert('Clicked!'),
73
73
  },
74
74
  };
@@ -1,6 +1,6 @@
1
1
  import type { ComponentType, SVGProps } from 'react';
2
- /** Agent type values mirroring the TypeSpec AgentType enum. */
3
- export type AgentTypeValue = 'claude-code' | 'codex-cli' | 'cursor' | 'gemini-cli' | 'aider' | 'continue' | 'dev';
2
+ /** Agent type values mirroring the TypeSpec AgentType enum (UI-visible subset). */
3
+ export type AgentTypeValue = 'claude-code' | 'codex-cli' | 'copilot-cli' | 'cursor' | 'gemini-cli' | 'rovo-dev';
4
4
  type IconProps = SVGProps<SVGSVGElement> & {
5
5
  className?: string;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"agent-type-icons.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrD,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,OAAO,GACP,UAAU,GACV,KAAK,CAAC;AAEV,KAAK,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBlE,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,2CAOhD;AA4DD,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQ1D,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAK7E"}
1
+ {"version":3,"file":"agent-type-icons.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrD,mFAAmF;AACnF,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,UAAU,CAAC;AAEf,KAAK,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBlE,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,2CAOhD;AAWD,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAO1D,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAK7E"}
@@ -13,29 +13,22 @@ function createBrandIcon(src, alt) {
13
13
  export function DefaultAgentIcon(props) {
14
14
  return (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [_jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "2" }), _jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor" })] }));
15
15
  }
16
- /** Colorful flask icon for the Demo Executor agent. */
17
- function DevAgentIcon({ className, ...props }) {
18
- return (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: cn('h-6 w-6', className), ...props, children: [_jsx("defs", { children: _jsxs("linearGradient", { id: "dev-flask-grad", x1: "6", y1: "22", x2: "18", y2: "8", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { offset: "0%", stopColor: "#8B5CF6" }), _jsx("stop", { offset: "50%", stopColor: "#EC4899" }), _jsx("stop", { offset: "100%", stopColor: "#F59E0B" })] }) }), _jsx("path", { d: "M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z", fill: "url(#dev-flask-grad)", opacity: "0.9" }), _jsx("path", { d: "M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z", stroke: "url(#dev-flask-grad)", strokeWidth: "1.5", fill: "none" }), _jsx("circle", { cx: "10", cy: "14", r: "1.2", fill: "white", opacity: "0.7" }), _jsx("circle", { cx: "13.5", cy: "16", r: "0.8", fill: "white", opacity: "0.5" }), _jsx("circle", { cx: "11.5", cy: "17.5", r: "0.6", fill: "white", opacity: "0.4" }), _jsx("path", { d: "M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z", fill: "#F59E0B" })] }));
19
- }
20
- DevAgentIcon.displayName = 'DevAgentIcon';
21
16
  const agentTypeIconMap = {
22
17
  'claude-code': createBrandIcon('/icons/agents/claude-ai-icon.svg', 'Claude Code'),
23
18
  'codex-cli': createBrandIcon('/icons/agents/openai.svg', 'Codex CLI'),
19
+ 'copilot-cli': DefaultAgentIcon,
24
20
  cursor: createBrandIcon('/icons/agents/cursor.jpeg', 'Cursor'),
25
21
  'gemini-cli': createBrandIcon('/icons/agents/gemini-cli.jpeg', 'Gemini CLI'),
26
- aider: createBrandIcon('/icons/agents/aider.png', 'Aider'),
27
- continue: createBrandIcon('/icons/agents/continue.jpeg', 'Continue'),
28
- dev: DevAgentIcon,
22
+ 'rovo-dev': DefaultAgentIcon,
29
23
  };
30
24
  /** Human-readable labels for agent types. */
31
25
  export const agentTypeLabels = {
32
26
  'claude-code': 'Claude Code',
33
27
  'codex-cli': 'Codex CLI',
28
+ 'copilot-cli': 'GitHub Copilot CLI',
34
29
  cursor: 'Cursor',
35
30
  'gemini-cli': 'Gemini CLI',
36
- aider: 'Aider',
37
- continue: 'Continue',
38
- dev: 'Demo',
31
+ 'rovo-dev': 'Rovo Dev CLI',
39
32
  };
40
33
  /** Resolve an agent type string to its corresponding icon component. */
41
34
  export function getAgentTypeIcon(agentType) {
@@ -5,5 +5,5 @@ type Story = StoryObj;
5
5
  export declare const AllIcons: Story;
6
6
  export declare const SmallIcons: Story;
7
7
  export declare const LargeIcons: Story;
8
- export declare const DevAgentIcon: Story;
8
+ export declare const FallbackIcon: Story;
9
9
  //# sourceMappingURL=agent-type-icons.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-type-icons.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA0C5D,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAa1B,CAAC"}
1
+ {"version":3,"file":"agent-type-icons.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAyC5D,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAa1B,CAAC"}
@@ -3,11 +3,10 @@ import { getAgentTypeIcon, DefaultAgentIcon } from './agent-type-icons.js';
3
3
  const allAgentTypes = [
4
4
  { type: 'claude-code', label: 'Claude Code' },
5
5
  { type: 'codex-cli', label: 'Codex CLI' },
6
+ { type: 'copilot-cli', label: 'GitHub Copilot CLI' },
6
7
  { type: 'cursor', label: 'Cursor' },
7
8
  { type: 'gemini-cli', label: 'Gemini CLI' },
8
- { type: 'aider', label: 'Aider' },
9
- { type: 'continue', label: 'Continue' },
10
- { type: 'dev', label: 'Dev (Mock)' },
9
+ { type: 'rovo-dev', label: 'Rovo Dev CLI' },
11
10
  ];
12
11
  function AgentIconGallery({ size }) {
13
12
  return (_jsxs("div", { className: "flex flex-wrap gap-6", children: [allAgentTypes.map(({ type, label }) => {
@@ -30,9 +29,9 @@ export const SmallIcons = {
30
29
  export const LargeIcons = {
31
30
  render: () => _jsx(AgentIconGallery, { size: 16 }),
32
31
  };
33
- export const DevAgentIcon = {
32
+ export const FallbackIcon = {
34
33
  render: () => {
35
- const Icon = getAgentTypeIcon('dev');
36
- return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsx("div", { className: "border-border bg-muted/30 rounded-md border p-3", children: _jsx(Icon, { style: { width: 40, height: 40 } }) }), _jsx("span", { className: "text-sm font-medium", children: "Dev (Mock)" }), _jsx("code", { className: "text-muted-foreground text-xs", children: "dev" })] }));
34
+ const Icon = getAgentTypeIcon('unknown-agent');
35
+ return (_jsxs("div", { className: "flex flex-col items-center gap-2", children: [_jsx("div", { className: "border-border bg-muted/30 rounded-md border p-3", children: _jsx(Icon, { style: { width: 40, height: 40 } }) }), _jsx("span", { className: "text-sm font-medium", children: "Unknown Agent (Fallback)" }), _jsx("code", { className: "text-muted-foreground text-xs", children: "unknown-agent" })] }));
37
36
  },
38
37
  };