@shipit-ai/cli 1.166.1 → 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 (577) 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 +21 -2
  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/external/github-repository.service.d.ts.map +1 -1
  121. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +14 -3
  122. package/dist/packages/core/src/infrastructure/services/settings-reader.service.d.ts +7 -0
  123. package/dist/packages/core/src/infrastructure/services/settings-reader.service.d.ts.map +1 -0
  124. package/dist/packages/core/src/infrastructure/services/settings-reader.service.js +25 -0
  125. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  126. package/dist/src/presentation/cli/commands/feat/new.command.js +18 -0
  127. package/dist/src/presentation/cli/commands/feat/show.command.d.ts.map +1 -1
  128. package/dist/src/presentation/cli/commands/feat/show.command.js +2 -1
  129. package/dist/src/presentation/cli/commands/settings/agent.command.js +2 -2
  130. package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
  131. package/dist/src/presentation/cli/commands/settings/index.js +3 -1
  132. package/dist/src/presentation/cli/commands/settings/permission-modes.d.ts +19 -0
  133. package/dist/src/presentation/cli/commands/settings/permission-modes.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/settings/permission-modes.js +38 -0
  135. package/dist/src/presentation/cli/commands/settings/permissions.command.d.ts +16 -0
  136. package/dist/src/presentation/cli/commands/settings/permissions.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/settings/permissions.command.js +147 -0
  138. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts +4 -10
  139. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  140. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +8 -13
  141. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts +5 -3
  142. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.d.ts.map +1 -1
  143. package/dist/src/presentation/tui/wizards/onboarding/onboarding.wizard.js +10 -5
  144. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.d.ts +17 -0
  145. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.d.ts.map +1 -0
  146. package/dist/src/presentation/tui/wizards/onboarding/steps/agent-permissions.step.js +48 -0
  147. package/dist/src/presentation/tui/wizards/onboarding/types.d.ts +2 -0
  148. package/dist/src/presentation/tui/wizards/onboarding/types.d.ts.map +1 -1
  149. package/dist/src/presentation/web/app/actions/agent-permissions.d.ts +14 -0
  150. package/dist/src/presentation/web/app/actions/agent-permissions.d.ts.map +1 -0
  151. package/dist/src/presentation/web/app/actions/agent-permissions.js +181 -0
  152. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  153. package/dist/src/presentation/web/app/actions/check-agent-auth.js +2 -5
  154. package/dist/src/presentation/web/app/actions/check-agent-tool.js +1 -1
  155. package/dist/src/presentation/web/app/actions/deploy-repository.d.ts.map +1 -1
  156. package/dist/src/presentation/web/app/actions/deploy-repository.js +14 -7
  157. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  158. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +2 -17
  159. package/dist/src/presentation/web/app/actions/get-merge-review-data.d.ts.map +1 -1
  160. package/dist/src/presentation/web/app/actions/get-merge-review-data.js +67 -23
  161. package/dist/src/presentation/web/app/actions/open-folder.d.ts.map +1 -1
  162. package/dist/src/presentation/web/app/actions/open-folder.js +12 -4
  163. package/dist/src/presentation/web/app/actions/open-shell.d.ts.map +1 -1
  164. package/dist/src/presentation/web/app/actions/open-shell.js +47 -7
  165. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  166. package/dist/src/presentation/web/app/api/agent-events/route.js +2 -6
  167. package/dist/src/presentation/web/app/api/attachments/upload-from-path/route.d.ts.map +1 -1
  168. package/dist/src/presentation/web/app/api/attachments/upload-from-path/route.js +21 -17
  169. package/dist/src/presentation/web/app/api/deployment-logs/route.d.ts.map +1 -1
  170. package/dist/src/presentation/web/app/api/deployment-logs/route.js +2 -6
  171. package/dist/src/presentation/web/app/api/directory/list/route.d.ts.map +1 -1
  172. package/dist/src/presentation/web/app/api/directory/list/route.js +39 -24
  173. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
  174. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +2 -6
  175. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.d.ts.map +1 -1
  176. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.js +2 -6
  177. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  178. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
  179. package/dist/src/presentation/web/components/common/feature-create-drawer/types.d.ts +2 -0
  180. package/dist/src/presentation/web/components/common/feature-create-drawer/types.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.d.ts +2 -0
  182. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/common/feature-create-drawer/use-feature-create-form.js +6 -0
  184. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.d.ts +7 -1
  185. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.js +24 -3
  187. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.d.ts.map +1 -1
  188. package/dist/src/presentation/web/components/common/feature-create-drawer/workflow-options-section.stories.js +3 -0
  189. package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.js +2 -2
  190. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +2 -2
  191. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  192. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +4 -11
  193. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts +1 -1
  194. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  195. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +5 -6
  196. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +2 -0
  197. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  198. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  199. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -2
  200. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +10 -10
  201. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +1 -1
  202. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +2 -2
  203. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -1
  204. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
  205. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +3 -3
  206. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.d.ts +8 -0
  207. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.js +33 -0
  209. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.d.ts +15 -0
  210. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/settings/agent-permission-picker.stories.js +75 -0
  212. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  213. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +32 -4
  214. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -1
  215. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  216. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +2 -2
  217. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +2 -2
  218. package/dist/src/presentation/web/lib/path-sanitizers.d.ts +50 -0
  219. package/dist/src/presentation/web/lib/path-sanitizers.d.ts.map +1 -0
  220. package/dist/src/presentation/web/lib/path-sanitizers.js +137 -0
  221. package/dist/translations/ar/cli.json +16 -0
  222. package/dist/translations/ar/tui.json +12 -10
  223. package/dist/translations/ar/web.json +15 -0
  224. package/dist/translations/de/cli.json +16 -0
  225. package/dist/translations/de/tui.json +13 -5
  226. package/dist/translations/de/web.json +15 -0
  227. package/dist/translations/en/cli.json +16 -0
  228. package/dist/translations/en/tui.json +12 -10
  229. package/dist/translations/en/web.json +15 -0
  230. package/dist/translations/es/cli.json +16 -0
  231. package/dist/translations/es/tui.json +12 -10
  232. package/dist/translations/es/web.json +15 -0
  233. package/dist/translations/fr/cli.json +16 -0
  234. package/dist/translations/fr/tui.json +12 -10
  235. package/dist/translations/fr/web.json +15 -0
  236. package/dist/translations/he/cli.json +16 -0
  237. package/dist/translations/he/tui.json +12 -10
  238. package/dist/translations/he/web.json +15 -0
  239. package/dist/translations/pt/cli.json +16 -0
  240. package/dist/translations/pt/tui.json +12 -10
  241. package/dist/translations/pt/web.json +15 -0
  242. package/dist/translations/ru/cli.json +16 -0
  243. package/dist/translations/ru/tui.json +12 -10
  244. package/dist/translations/ru/web.json +15 -0
  245. package/dist/tsconfig.build.tsbuildinfo +1 -1
  246. package/package.json +6 -6
  247. package/web/.next/BUILD_ID +1 -1
  248. package/web/.next/build-manifest.json +3 -3
  249. package/web/.next/fallback-build-manifest.json +3 -3
  250. package/web/.next/prerender-manifest.json +3 -3
  251. package/web/.next/required-server-files.js +2 -2
  252. package/web/.next/required-server-files.json +2 -2
  253. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  254. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -4
  255. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  257. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  258. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +3 -4
  259. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  261. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +72 -60
  262. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +4 -4
  263. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  265. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  266. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +4 -4
  267. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  268. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  269. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  270. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +4 -4
  271. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  274. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +3 -4
  275. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  276. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  277. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  278. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -4
  279. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  280. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  281. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  282. package/web/.next/server/app/(dashboard)/chat/page.js +3 -4
  283. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  284. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +72 -60
  286. package/web/.next/server/app/(dashboard)/create/page.js +4 -4
  287. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  288. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  289. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  290. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +4 -4
  291. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  292. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  293. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  294. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +4 -4
  295. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  296. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  297. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  298. package/web/.next/server/app/(dashboard)/page.js +3 -4
  299. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  300. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  302. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +3 -4
  303. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  304. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  305. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  306. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -4
  307. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  308. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  309. package/web/.next/server/app/_global-error.html +1 -1
  310. package/web/.next/server/app/_global-error.rsc +1 -1
  311. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  312. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  313. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  314. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  315. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  316. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  317. package/web/.next/server/app/_not-found/page.js +2 -3
  318. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  319. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  320. package/web/.next/server/app/api/agent-events/route.js +2 -1
  321. package/web/.next/server/app/api/agent-events/route.js.nft.json +1 -1
  322. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  323. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  324. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  325. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  326. package/web/.next/server/app/api/deployment-logs/route.js +2 -1
  327. package/web/.next/server/app/api/deployment-logs/route.js.nft.json +1 -1
  328. package/web/.next/server/app/api/dialog/pick-files/route.js +1 -1
  329. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  330. package/web/.next/server/app/api/directory/list/route.js +1 -1
  331. package/web/.next/server/app/api/directory/list/route.js.nft.json +1 -1
  332. package/web/.next/server/app/api/evidence/route.js +1 -1
  333. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  334. package/web/.next/server/app/api/graph-data/route.js +1 -1
  335. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  336. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +1 -1
  337. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  338. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js +2 -1
  339. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js.nft.json +1 -1
  340. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js +2 -1
  341. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js.nft.json +1 -1
  342. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  343. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  344. package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
  345. package/web/.next/server/app/settings/page.js +3 -4
  346. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  347. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  349. package/web/.next/server/app/skills/page.js +3 -3
  350. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  351. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  352. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  353. package/web/.next/server/app/tools/page.js +3 -3
  354. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  355. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  356. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  357. package/web/.next/server/app/version/page.js +2 -3
  358. package/web/.next/server/app/version/page.js.nft.json +1 -1
  359. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  360. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js +1 -1
  361. package/web/.next/server/chunks/11es_next_dist_esm_build_templates_app-route_067cwst.js.map +1 -1
  362. package/web/.next/server/chunks/{[root-of-the-server]__02xmnal._.js → [root-of-the-server]__08cpfre._.js} +2 -2
  363. package/web/.next/server/chunks/[root-of-the-server]__0_-chcy._.js +3 -0
  364. package/web/.next/server/chunks/[root-of-the-server]__0_-chcy._.js.map +1 -0
  365. package/web/.next/server/chunks/[root-of-the-server]__0aft8l4._.js +9 -0
  366. package/web/.next/server/chunks/{[root-of-the-server]__0_6fhza._.js.map → [root-of-the-server]__0aft8l4._.js.map} +1 -1
  367. package/web/.next/server/chunks/[root-of-the-server]__0e9p7em._.js +3 -0
  368. package/web/.next/server/chunks/[root-of-the-server]__0e9p7em._.js.map +1 -0
  369. package/web/.next/server/chunks/{[root-of-the-server]__0.2exzi._.js → [root-of-the-server]__0gfvkg8._.js} +2 -2
  370. package/web/.next/server/chunks/{[root-of-the-server]__0ip_e1x._.js → [root-of-the-server]__0hcp97v._.js} +2 -2
  371. package/web/.next/server/chunks/{[root-of-the-server]__09118p2._.js → [root-of-the-server]__0iel39d._.js} +2 -2
  372. package/web/.next/server/chunks/[root-of-the-server]__0kc8ify._.js +12 -0
  373. package/web/.next/server/chunks/[root-of-the-server]__0kc8ify._.js.map +1 -0
  374. package/web/.next/server/chunks/[root-of-the-server]__0r5uk_8._.js +9 -0
  375. package/web/.next/server/chunks/[root-of-the-server]__0r5uk_8._.js.map +1 -0
  376. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  377. package/web/.next/server/chunks/{[root-of-the-server]__04jjtl_._.js → [root-of-the-server]__0u1jyv9._.js} +2 -2
  378. package/web/.next/server/chunks/{[root-of-the-server]__07suer1._.js → [root-of-the-server]__0zu_byw._.js} +2 -2
  379. package/web/.next/server/chunks/[root-of-the-server]__13e2_kk._.js +18 -0
  380. package/web/.next/server/chunks/[root-of-the-server]__13e2_kk._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  382. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  383. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  384. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  385. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  386. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/{_01mq~sm._.js → 11es_next_0q-kz~8._.js} +2 -2
  388. package/web/.next/server/chunks/ssr/11es_next_0q-kz~8._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  390. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__02.89uf._.js +4 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__02.89uf._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__04rq9lr._.js +4 -0
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__04rq9lr._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +4 -0
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js +3 -0
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c0xoi_._.js.map +1 -0
  399. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0qh.wn.._.js → [root-of-the-server]__0q3-gz.._.js} +2 -2
  400. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r5zhk.._.js +4 -0
  401. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r5zhk.._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  403. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js +4 -0
  404. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +4 -0
  406. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uy_5rw._.js +4 -0
  408. package/web/.next/server/chunks/ssr/[root-of-the-server]__0uy_5rw._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +4 -0
  410. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -0
  411. package/web/.next/server/chunks/ssr/_00k65h-._.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  413. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/_069y.js._.js +6 -0
  415. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -0
  416. package/web/.next/server/chunks/ssr/_0__4si~._.js +4 -0
  417. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/_0_m17kl._.js +4 -0
  419. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/_0d4miu.._.js +4 -0
  421. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/_0e8ern9._.js +4 -0
  423. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/{_0e4npv~._.js → _0l10ccg._.js} +2 -2
  425. package/web/.next/server/chunks/ssr/_0l10ccg._.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/_0mo6j.n._.js +3 -0
  427. package/web/.next/server/chunks/ssr/_0mo6j.n._.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/{_0nvrqsj._.js → _0mvhe_2._.js} +2 -2
  429. package/web/.next/server/chunks/ssr/{_0nvrqsj._.js.map → _0mvhe_2._.js.map} +1 -1
  430. package/web/.next/server/chunks/ssr/{_109n-y4._.js → _0n.magx._.js} +2 -2
  431. package/web/.next/server/chunks/ssr/_0n.magx._.js.map +1 -0
  432. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +6 -0
  433. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +4 -0
  435. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/_0t59q8r._.js +4 -0
  437. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -0
  438. package/web/.next/server/chunks/ssr/_0tcccbb._.js +3 -0
  439. package/web/.next/server/chunks/ssr/_0tcccbb._.js.map +1 -0
  440. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  441. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  443. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  444. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +4 -0
  445. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  447. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  448. package/web/.next/server/chunks/ssr/_1161g9x._.js +4 -0
  449. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +3 -0
  451. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -0
  452. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +3 -0
  453. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -0
  454. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +3 -0
  455. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js.map +1 -0
  456. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  457. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js.map +1 -1
  458. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  459. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  460. package/web/.next/server/middleware-build-manifest.js +3 -3
  461. package/web/.next/server/pages/500.html +1 -1
  462. package/web/.next/server/server-reference-manifest.js +1 -1
  463. package/web/.next/server/server-reference-manifest.json +127 -109
  464. package/web/.next/static/chunks/{0awttldb-.7m..js → 0.8ue6wwr7ni~.js} +1 -1
  465. package/web/.next/static/chunks/{0d-2jp.f._l2e.js → 028x3z97mchhz.js} +1 -1
  466. package/web/.next/static/chunks/044f5piy5pt5t.js +1 -0
  467. package/web/.next/static/chunks/04~sw.nhpwy6s.css +1 -0
  468. package/web/.next/static/chunks/05enics63g._-.js +7 -0
  469. package/web/.next/static/chunks/0_.x~txb5da7d.js +1 -0
  470. package/web/.next/static/chunks/0_9k2ybutuphq.js +1 -0
  471. package/web/.next/static/chunks/{14g1l3~6i5251.js → 0hti2r43x0~b7.js} +2 -2
  472. package/web/.next/static/chunks/0jo5-_q.1n69j.js +1 -0
  473. package/web/.next/static/chunks/{0t8zwgaz.d1s5.js → 0n3u~4ytndfyd.js} +1 -1
  474. package/web/.next/static/chunks/{0nk2r-18.7g6r.js → 0pyz97q7eg0jz.js} +1 -1
  475. package/web/.next/static/chunks/0qqe9hx_txhso.js +1 -0
  476. package/web/.next/static/chunks/{0ntgq3d_.m5el.js → 0vx7ldqj8436q.js} +2 -2
  477. package/web/.next/static/chunks/11~m1ei9bh269.js +3 -0
  478. package/web/.next/static/chunks/{09dqgshddfxff.js → 13w6ziae82sjy.js} +1 -1
  479. package/web/.next/static/chunks/16.83v.xq8bn9.js +1 -0
  480. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts +0 -12
  481. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.d.ts.map +0 -1
  482. package/dist/packages/core/src/infrastructure/services/agents/common/executors/dev-executor.service.js +0 -233
  483. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts +0 -8
  484. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.d.ts.map +0 -1
  485. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/plan.fixture.js +0 -94
  486. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts +0 -8
  487. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.d.ts.map +0 -1
  488. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/research.fixture.js +0 -140
  489. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts +0 -8
  490. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.d.ts.map +0 -1
  491. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-analyze.fixture.js +0 -81
  492. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts +0 -8
  493. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.d.ts.map +0 -1
  494. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/spec-requirements.fixture.js +0 -131
  495. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts +0 -6
  496. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.d.ts.map +0 -1
  497. package/dist/packages/core/src/infrastructure/services/agents/common/executors/fixtures/tasks.fixture.js +0 -146
  498. package/web/.next/server/chunks/[root-of-the-server]__0-3b27b._.js +0 -9
  499. package/web/.next/server/chunks/[root-of-the-server]__0-3b27b._.js.map +0 -1
  500. package/web/.next/server/chunks/[root-of-the-server]__0_6fhza._.js +0 -9
  501. package/web/.next/server/chunks/[root-of-the-server]__0esdmru._.js +0 -12
  502. package/web/.next/server/chunks/[root-of-the-server]__0esdmru._.js.map +0 -1
  503. package/web/.next/server/chunks/[root-of-the-server]__0l1p8bx._.js +0 -3
  504. package/web/.next/server/chunks/[root-of-the-server]__0l1p8bx._.js.map +0 -1
  505. package/web/.next/server/chunks/[root-of-the-server]__0p~owgt._.js +0 -18
  506. package/web/.next/server/chunks/[root-of-the-server]__0p~owgt._.js.map +0 -1
  507. package/web/.next/server/chunks/[root-of-the-server]__0rru~m.._.js +0 -3
  508. package/web/.next/server/chunks/[root-of-the-server]__0rru~m.._.js.map +0 -1
  509. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js +0 -3
  510. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_00~eq5i.js.map +0 -1
  511. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js +0 -3
  512. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_0979_c..js.map +0 -1
  513. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js +0 -3
  514. package/web/.next/server/chunks/ssr/0j.8_web__next-internal_server_app_(dashboard)_chat_page_actions_0dqll_1.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/[root-of-the-server]__045sv4b._.js +0 -3
  516. package/web/.next/server/chunks/ssr/[root-of-the-server]__045sv4b._.js.map +0 -1
  517. package/web/.next/server/chunks/ssr/[root-of-the-server]__0d_0_fp._.js +0 -3
  518. package/web/.next/server/chunks/ssr/[root-of-the-server]__0d_0_fp._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l4d7e.._.js +0 -3
  520. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l4d7e.._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js +0 -3
  522. package/web/.next/server/chunks/ssr/[root-of-the-server]__0o3qggc._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r32z03._.js +0 -3
  524. package/web/.next/server/chunks/ssr/[root-of-the-server]__0r32z03._.js.map +0 -1
  525. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js +0 -4
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__12g8h3_._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/_0.rsra~._.js +0 -3
  528. package/web/.next/server/chunks/ssr/_0.rsra~._.js.map +0 -1
  529. package/web/.next/server/chunks/ssr/_01mq~sm._.js.map +0 -1
  530. package/web/.next/server/chunks/ssr/_0a-ddx-._.js +0 -3
  531. package/web/.next/server/chunks/ssr/_0a-ddx-._.js.map +0 -1
  532. package/web/.next/server/chunks/ssr/_0e4npv~._.js.map +0 -1
  533. package/web/.next/server/chunks/ssr/_0jpbsh_._.js +0 -4
  534. package/web/.next/server/chunks/ssr/_0jpbsh_._.js.map +0 -1
  535. package/web/.next/server/chunks/ssr/_109n-y4._.js.map +0 -1
  536. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js +0 -3
  537. package/web/.next/server/chunks/ssr/src_presentation_web_0.e4~xc._.js.map +0 -1
  538. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js +0 -3
  539. package/web/.next/server/chunks/ssr/src_presentation_web_00dvh.m._.js.map +0 -1
  540. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js +0 -5
  541. package/web/.next/server/chunks/ssr/src_presentation_web_06b6~lt._.js.map +0 -1
  542. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js +0 -3
  543. package/web/.next/server/chunks/ssr/src_presentation_web_08fy2mf._.js.map +0 -1
  544. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js +0 -3
  545. package/web/.next/server/chunks/ssr/src_presentation_web_0f~udu1._.js.map +0 -1
  546. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js +0 -5
  547. package/web/.next/server/chunks/ssr/src_presentation_web_0qys821._.js.map +0 -1
  548. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js +0 -3
  549. package/web/.next/server/chunks/ssr/src_presentation_web_0q~dt0o._.js.map +0 -1
  550. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js +0 -3
  551. package/web/.next/server/chunks/ssr/src_presentation_web_11jrkxt._.js.map +0 -1
  552. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js +0 -3
  553. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_1199d3x.js.map +0 -1
  554. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js +0 -3
  555. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app__not-found_page_actions_0m2jqxx.js.map +0 -1
  556. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js +0 -3
  557. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_version_page_actions_0krkh_0.js.map +0 -1
  558. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js +0 -3
  559. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_load-settings_ts_0b8f3pf._.js.map +0 -1
  560. package/web/.next/static/chunks/00dg6gti40.3i.js +0 -1
  561. package/web/.next/static/chunks/0_--5mgqukm__.js +0 -1
  562. package/web/.next/static/chunks/0_c5~n__lz4ks.js +0 -1
  563. package/web/.next/static/chunks/0ist7260j__0m.js +0 -3
  564. package/web/.next/static/chunks/0j_0i2qsrwh-c.js +0 -1
  565. package/web/.next/static/chunks/0njrgvmyafrod.js +0 -1
  566. package/web/.next/static/chunks/0r5dju6f1-i38.css +0 -1
  567. package/web/.next/static/chunks/0t.pzrmeoq6th.js +0 -7
  568. /package/web/.next/server/chunks/{[root-of-the-server]__02xmnal._.js.map → [root-of-the-server]__08cpfre._.js.map} +0 -0
  569. /package/web/.next/server/chunks/{[root-of-the-server]__0.2exzi._.js.map → [root-of-the-server]__0gfvkg8._.js.map} +0 -0
  570. /package/web/.next/server/chunks/{[root-of-the-server]__0ip_e1x._.js.map → [root-of-the-server]__0hcp97v._.js.map} +0 -0
  571. /package/web/.next/server/chunks/{[root-of-the-server]__09118p2._.js.map → [root-of-the-server]__0iel39d._.js.map} +0 -0
  572. /package/web/.next/server/chunks/{[root-of-the-server]__04jjtl_._.js.map → [root-of-the-server]__0u1jyv9._.js.map} +0 -0
  573. /package/web/.next/server/chunks/{[root-of-the-server]__07suer1._.js.map → [root-of-the-server]__0zu_byw._.js.map} +0 -0
  574. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__0qh.wn.._.js.map → [root-of-the-server]__0q3-gz.._.js.map} +0 -0
  575. /package/web/.next/static/{ZpPnD_b687G9xVr2nzrds → ksBer6au8b_fS1_7dCF2D}/_buildManifest.js +0 -0
  576. /package/web/.next/static/{ZpPnD_b687G9xVr2nzrds → ksBer6au8b_fS1_7dCF2D}/_clientMiddlewareManifest.js +0 -0
  577. /package/web/.next/static/{ZpPnD_b687G9xVr2nzrds → ksBer6au8b_fS1_7dCF2D}/_ssgManifest.js +0 -0
@@ -32,6 +32,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
32
32
  error: string | null;
33
33
  approvalGates: import("../../../../domain/index.js").ApprovalGates | undefined;
34
34
  model: string | undefined;
35
+ permissionMode: string | undefined;
35
36
  messages: string[];
36
37
  validationRetries: number;
37
38
  lastValidationTarget: string;
@@ -65,6 +66,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
65
66
  error?: string | import("@langchain/langgraph").OverwriteValue<string | null> | null | undefined;
66
67
  approvalGates?: import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined;
67
68
  model?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
69
+ permissionMode?: string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined;
68
70
  messages?: string[] | import("@langchain/langgraph").OverwriteValue<string[]> | undefined;
69
71
  validationRetries?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
70
72
  lastValidationTarget?: string | import("@langchain/langgraph").OverwriteValue<string> | undefined;
@@ -89,7 +91,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
89
91
  ciFixAttempts?: number | import("@langchain/langgraph").OverwriteValue<number> | undefined;
90
92
  ciFixHistory?: import("../../../../domain/index.js").CiFixRecord[] | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").CiFixRecord[]> | undefined;
91
93
  ciFixStatus?: "success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted" | import("@langchain/langgraph").OverwriteValue<"success" | "timeout" | "idle" | "watching" | "fixing" | "exhausted"> | undefined;
92
- }, "plan" | "implement" | "__start__" | "analyze" | "requirements" | "research" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
94
+ }, "plan" | "__start__" | "analyze" | "requirements" | "research" | "implement" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
93
95
  featureId: {
94
96
  (annotation: import("@langchain/langgraph").SingleReducer<string, string>): import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
95
97
  (): import("@langchain/langgraph").LastValue<string>;
@@ -118,6 +120,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
118
120
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
119
121
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
120
122
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
123
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
121
124
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
122
125
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
123
126
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -171,6 +174,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
171
174
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
172
175
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
173
176
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
177
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
174
178
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
175
179
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
176
180
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -225,6 +229,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
225
229
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
226
230
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
227
231
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
232
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
228
233
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
229
234
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
230
235
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -279,6 +284,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
279
284
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
280
285
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
281
286
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
287
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
282
288
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
283
289
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
284
290
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -333,6 +339,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
333
339
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
334
340
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
335
341
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
342
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
336
343
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
337
344
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
338
345
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -387,6 +394,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
387
394
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
388
395
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
389
396
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
397
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
390
398
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
391
399
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
392
400
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -441,6 +449,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
441
449
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
442
450
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
443
451
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
452
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
444
453
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
445
454
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
446
455
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -495,6 +504,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
495
504
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
496
505
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
497
506
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
507
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
498
508
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
499
509
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
500
510
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -549,6 +559,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
549
559
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
550
560
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
551
561
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
562
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
552
563
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
553
564
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
554
565
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -603,6 +614,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
603
614
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
604
615
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
605
616
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
617
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
606
618
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
607
619
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
608
620
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -657,6 +669,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
657
669
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
658
670
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
659
671
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
672
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
660
673
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
661
674
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
662
675
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -711,6 +724,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
711
724
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
712
725
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
713
726
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
727
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
714
728
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
715
729
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
716
730
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -765,6 +779,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
765
779
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
766
780
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
767
781
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
782
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
768
783
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
769
784
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
770
785
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -819,6 +834,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
819
834
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
820
835
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
821
836
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
837
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
822
838
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
823
839
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
824
840
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -873,6 +889,7 @@ export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGrap
873
889
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
874
890
  approvalGates: import("@langchain/langgraph").BaseChannel<import("../../../../domain/index.js").ApprovalGates | undefined, import("../../../../domain/index.js").ApprovalGates | import("@langchain/langgraph").OverwriteValue<import("../../../../domain/index.js").ApprovalGates | undefined> | undefined, unknown>;
875
891
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
892
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
876
893
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
877
894
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
878
895
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAgFnC"}
1
+ {"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAclF,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;CACjD;AAwID;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAgFnC"}
@@ -28,6 +28,7 @@ export declare class FeatureAgentProcessService implements IFeatureAgentProcessS
28
28
  fast?: boolean;
29
29
  model?: string;
30
30
  resumeReason?: string;
31
+ permissionMode?: string;
31
32
  }): number;
32
33
  isAlive(pid: number): boolean;
33
34
  checkAndMarkCrashed(runId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAalG,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,MAAM;IAsFT,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
1
+ {"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAalG,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,MAAM;IAyFT,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
@@ -90,6 +90,9 @@ export class FeatureAgentProcessService {
90
90
  if (options?.resumeReason) {
91
91
  args.push('--resume-reason', options.resumeReason);
92
92
  }
93
+ if (options?.permissionMode) {
94
+ args.push('--permission-mode', options.permissionMode);
95
+ }
93
96
  // Create log file for worker output (for debugging)
94
97
  const logsDir = join(homedir(), '.shipit-ai', 'logs');
95
98
  mkdirSync(logsDir, { recursive: true });
@@ -33,6 +33,7 @@ export interface WorkerArgs {
33
33
  fast?: boolean;
34
34
  model?: string;
35
35
  resumeReason?: string;
36
+ permissionMode?: string;
36
37
  }
37
38
  /**
38
39
  * Parse CLI arguments into a WorkerArgs object.
@@ -1 +1 @@
1
- {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAgB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAkF1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuS/D"}
1
+ {"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAgB1B,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAW7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAyF1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA0S/D"}
@@ -76,6 +76,10 @@ export function parseWorkerArgs(args) {
76
76
  const resumeReason = resumeReasonIdx !== -1 && resumeReasonIdx + 1 < args.length
77
77
  ? args[resumeReasonIdx + 1]
78
78
  : undefined;
79
+ const permissionModeIdx = args.indexOf('--permission-mode');
80
+ const permissionMode = permissionModeIdx !== -1 && permissionModeIdx + 1 < args.length
81
+ ? args[permissionModeIdx + 1]
82
+ : undefined;
79
83
  return {
80
84
  featureId: getArg('feature-id'),
81
85
  runId: getArg('run-id'),
@@ -98,6 +102,7 @@ export function parseWorkerArgs(args) {
98
102
  fast,
99
103
  model,
100
104
  resumeReason,
105
+ permissionMode,
101
106
  };
102
107
  }
103
108
  /** Simple worker logger — writes to stdout which is redirected to log file by the parent. */
@@ -159,6 +164,7 @@ export async function runWorker(args) {
159
164
  ...(args.agentType ? ['--agent-type', args.agentType] : []),
160
165
  ...(args.fast ? ['--fast'] : []),
161
166
  ...(args.model ? ['--model', args.model] : []),
167
+ ...(args.permissionMode ? ['--permission-mode', args.permissionMode] : []),
162
168
  ];
163
169
  log(`Starting worker — full command:`);
164
170
  log(` ${cmdParts.join(' ')}`);
@@ -284,6 +290,7 @@ export async function runWorker(args) {
284
290
  error: undefined, // Clear previous error state
285
291
  ...(args.approvalGates ? { approvalGates: args.approvalGates } : {}),
286
292
  ...(args.model ? { model: args.model } : {}),
293
+ ...(args.permissionMode ? { permissionMode: args.permissionMode } : {}),
287
294
  ...(args.resumeReason ? { resumeReason: args.resumeReason } : {}),
288
295
  push: args.push ?? false,
289
296
  openPr: args.openPr ?? false,
@@ -303,6 +310,7 @@ export async function runWorker(args) {
303
310
  specDir: args.specDir,
304
311
  ...(args.approvalGates ? { approvalGates: args.approvalGates } : {}),
305
312
  ...(args.model ? { model: args.model } : {}),
313
+ ...(args.permissionMode ? { permissionMode: args.permissionMode } : {}),
306
314
  push: args.push ?? false,
307
315
  openPr: args.openPr ?? false,
308
316
  forkAndPr: args.forkAndPr ?? false,
@@ -22,11 +22,13 @@
22
22
  */
23
23
  import type { IAgentExecutor } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
24
24
  import type { FeatureAgentState } from '../state.js';
25
+ import type { Settings } from '../../../../../domain/generated/output.js';
25
26
  /**
26
27
  * Factory that creates the evidence collection node function.
27
28
  *
28
29
  * @param executor - Agent executor for running the evidence capture prompt
30
+ * @param injectedSettings - Optional settings injection; falls back to global singleton when omitted
29
31
  * @returns A LangGraph node function
30
32
  */
31
- export declare function createEvidenceNode(executor: IAgentExecutor): (state: FeatureAgentState) => Promise<Partial<FeatureAgentState>>;
33
+ export declare function createEvidenceNode(executor: IAgentExecutor, injectedSettings?: Settings): (state: FeatureAgentState) => Promise<Partial<FeatureAgentState>>;
32
34
  //# sourceMappingURL=evidence.node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAEpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqDrD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,IAG3C,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CA2J7E"}
1
+ {"version":3,"file":"evidence.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/evidence.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAEpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAqBrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAiC7D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,QAAQ,IAGxE,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CA2J7E"}
@@ -62,9 +62,10 @@ function parseTasks(specDir) {
62
62
  * Factory that creates the evidence collection node function.
63
63
  *
64
64
  * @param executor - Agent executor for running the evidence capture prompt
65
+ * @param injectedSettings - Optional settings injection; falls back to global singleton when omitted
65
66
  * @returns A LangGraph node function
66
67
  */
67
- export function createEvidenceNode(executor) {
68
+ export function createEvidenceNode(executor, injectedSettings) {
68
69
  const log = createNodeLogger('evidence');
69
70
  return async (state) => {
70
71
  log.activate();
@@ -84,7 +85,7 @@ export function createEvidenceNode(executor) {
84
85
  // --- Configuration ---
85
86
  // Use feature-level state for commitEvidence; fall back to global for retries config
86
87
  const commitEvidence = state.commitEvidence;
87
- const settings = hasSettings() ? getSettings() : undefined;
88
+ const settings = injectedSettings ?? (hasSettings() ? getSettings() : undefined);
88
89
  const maxRetries = settings?.workflow.evidenceRetries ?? DEFAULT_MAX_RETRIES;
89
90
  const options = buildExecutorOptions(state);
90
91
  const tasks = parseTasks(state.specDir);
@@ -13,10 +13,13 @@ import type { IGitPrService } from '../../../../../../application/ports/output/s
13
13
  import { CiStatus, type CiFixRecord } from '../../../../../../domain/generated/output.js';
14
14
  import type { NodeLogger } from '../node-helpers.js';
15
15
  import type { AgentExecutionOptions } from '../../../../../../application/ports/output/agents/agent-executor.interface.js';
16
+ import type { Settings } from '../../../../../../domain/generated/output.js';
16
17
  export interface CiWatchFixDeps {
17
18
  executor: IAgentExecutor;
18
19
  gitPrService: IGitPrService;
19
20
  featureRepository: Pick<IFeatureRepository, 'findById' | 'update'>;
21
+ /** Optional settings injection; falls back to global singleton when omitted */
22
+ settings?: Settings;
20
23
  }
21
24
  export interface CiWatchFixParams {
22
25
  cwd: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ci-watch-fix-loop.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iEAAiE,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AAO3G,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAyED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CA4K3B"}
1
+ {"version":3,"file":"ci-watch-fix-loop.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/ci-watch-fix-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iEAAiE,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+DAA+D,CAAC;AAI3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAI7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAyED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CA4K3B"}
@@ -71,7 +71,7 @@ async function watchCiViaAgent(executor, branch, options, timeoutMs, log) {
71
71
  export async function runCiWatchFixLoop(deps, params) {
72
72
  const { executor, gitPrService } = deps;
73
73
  const { cwd, branch, options, feature, prUrl, prNumber, messages, log } = params;
74
- const settings = getSettings();
74
+ const settings = deps.settings ?? getSettings();
75
75
  const maxAttempts = settings.workflow?.ciMaxFixAttempts ?? 3;
76
76
  const timeoutMs = settings.workflow?.ciWatchTimeoutMs ?? 600_000;
77
77
  const logMaxChars = settings.workflow?.ciLogMaxChars ?? 50_000;
@@ -16,10 +16,13 @@ import type { IAgentExecutor } from '../../../../../../application/ports/output/
16
16
  import type { FeatureAgentState } from '../../state.js';
17
17
  import type { IFeatureRepository } from '../../../../../../application/ports/output/repositories/feature-repository.interface.js';
18
18
  import type { DiffSummary, IGitPrService } from '../../../../../../application/ports/output/services/git-pr-service.interface.js';
19
+ import type { Settings } from '../../../../../../domain/generated/output.js';
19
20
  import type { CleanupFeatureWorktreeUseCase } from '../../../../../../application/use-cases/features/cleanup-feature-worktree.use-case.js';
20
21
  import type { IGitForkService } from '../../../../../../application/ports/output/services/git-fork-service.interface.js';
21
22
  export interface MergeNodeDeps {
22
23
  executor: IAgentExecutor;
24
+ /** Optional settings injection; falls back to global singleton when omitted */
25
+ settings?: Settings;
23
26
  getDiffSummary: (cwd: string, baseBranch: string) => Promise<DiffSummary>;
24
27
  hasRemote: (cwd: string) => Promise<boolean>;
25
28
  getDefaultBranch: (cwd: string) => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAoBzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AAC3H,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mEAAmE,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;OAEG;IACH,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAgY7E"}
1
+ {"version":3,"file":"merge.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yEAAyE,CAAC;AAClH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACd,MAAM,iEAAiE,CAAC;AAmBzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uEAAuE,CAAC;AAC3H,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mEAAmE,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IACnE;;OAEG;IACH,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,CACX,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;CAC/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAGnC,OAAO,iBAAiB,KAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAiY7E"}
@@ -138,7 +138,8 @@ export function createMergeNode(deps) {
138
138
  }
139
139
  }
140
140
  // --- CI watch/fix loop (when push or openPr is enabled and CI watch is not disabled) ---
141
- const ciWatchEnabled = getSettings().workflow?.ciWatchEnabled !== false;
141
+ const resolvedSettings = deps.settings ?? getSettings();
142
+ const ciWatchEnabled = resolvedSettings.workflow?.ciWatchEnabled !== false;
142
143
  if (ciWatchEnabled && (effectiveState.push || effectiveState.openPr)) {
143
144
  const ciResult = await runCiWatchFixLoop({
144
145
  executor,
@@ -5,7 +5,7 @@
5
5
  * and error handling so every node follows the same patterns.
6
6
  */
7
7
  import type { IAgentExecutor, AgentExecutionOptions, AgentExecutionResult } from '../../../../../application/ports/output/agents/agent-executor.interface.js';
8
- import type { ApprovalGates, Evidence } from '../../../../../domain/generated/output.js';
8
+ import type { ApprovalGates, Evidence, Settings } from '../../../../../domain/generated/output.js';
9
9
  import type { FeatureAgentState } from '../state.js';
10
10
  /**
11
11
  * Create a scoped logger that prefixes messages with the node name.
@@ -27,16 +27,24 @@ export declare function readSpecFile(specDir: string, filename: string): string;
27
27
  * Resolve the timeout for a specific stage.
28
28
  * Reads per-stage timeout from settings (workflow.stageTimeouts.<stage>Ms),
29
29
  * falling back to DEFAULT_STAGE_TIMEOUT_MS when not configured.
30
+ *
31
+ * @param nodeName - The graph node name to look up
32
+ * @param settings - Optional settings injection; falls back to global singleton when omitted
30
33
  */
31
- export declare function getStageTimeoutMs(nodeName: string): number;
34
+ export declare function getStageTimeoutMs(nodeName: string, settings?: Settings): number;
32
35
  /**
33
36
  * Build executor options with cwd. Each node gets a clean agent context.
34
37
  * The timeout is resolved per-stage from settings (workflow.stageTimeouts)
35
38
  * with a fallback to DEFAULT_STAGE_TIMEOUT_MS (10 min).
36
39
  *
37
40
  * When no `nodeName` is provided, the current node from state is used.
41
+ *
42
+ * @param state - Current feature agent graph state
43
+ * @param overrides - Optional timeout overrides
44
+ * @param nodeName - Override the node name for timeout lookup
45
+ * @param settings - Optional settings injection; falls back to global singleton when omitted
38
46
  */
39
- export declare function buildExecutorOptions(state: FeatureAgentState, overrides?: Partial<Pick<AgentExecutionOptions, 'timeout'>>, nodeName?: string): AgentExecutionOptions;
47
+ export declare function buildExecutorOptions(state: FeatureAgentState, overrides?: Partial<Pick<AgentExecutionOptions, 'timeout' | 'permissionMode'>>, nodeName?: string, settings?: Settings): AgentExecutionOptions;
40
48
  /**
41
49
  * Parse YAML with automatic sanitization of common AI-generated issues.
42
50
  * First attempts normal parsing; on failure, sanitizes unquoted braces
@@ -1 +1 @@
1
- {"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { mkdirSync, readFileSync, writeFileSync, renameSync, unlinkSync } from '
9
9
  import { execSync } from 'node:child_process';
10
10
  import { join, dirname, relative } from 'node:path';
11
11
  import { interrupt, isGraphBubbleUp } from '@langchain/langgraph';
12
+ import { resolveAgentPermissionMode } from '../../common/agent-permissions.js';
12
13
  import { hasSettings, getSettings } from '../../../../services/settings.service.js';
13
14
  import { reportNodeStart } from '../heartbeat.js';
14
15
  import { recordPhaseStart, recordPhaseEnd, recordApprovalWaitStart, } from '../phase-timing-context.js';
@@ -66,11 +67,15 @@ const STAGE_TIMEOUT_KEY = {
66
67
  * Resolve the timeout for a specific stage.
67
68
  * Reads per-stage timeout from settings (workflow.stageTimeouts.<stage>Ms),
68
69
  * falling back to DEFAULT_STAGE_TIMEOUT_MS when not configured.
70
+ *
71
+ * @param nodeName - The graph node name to look up
72
+ * @param settings - Optional settings injection; falls back to global singleton when omitted
69
73
  */
70
- export function getStageTimeoutMs(nodeName) {
71
- if (!hasSettings())
74
+ export function getStageTimeoutMs(nodeName, settings) {
75
+ const s = settings ?? (hasSettings() ? getSettings() : undefined);
76
+ if (!s)
72
77
  return DEFAULT_STAGE_TIMEOUT_MS;
73
- const timeouts = getSettings().workflow?.stageTimeouts;
78
+ const timeouts = s.workflow?.stageTimeouts;
74
79
  if (!timeouts)
75
80
  return DEFAULT_STAGE_TIMEOUT_MS;
76
81
  const key = STAGE_TIMEOUT_KEY[nodeName];
@@ -84,14 +89,24 @@ export function getStageTimeoutMs(nodeName) {
84
89
  * with a fallback to DEFAULT_STAGE_TIMEOUT_MS (10 min).
85
90
  *
86
91
  * When no `nodeName` is provided, the current node from state is used.
92
+ *
93
+ * @param state - Current feature agent graph state
94
+ * @param overrides - Optional timeout overrides
95
+ * @param nodeName - Override the node name for timeout lookup
96
+ * @param settings - Optional settings injection; falls back to global singleton when omitted
87
97
  */
88
- export function buildExecutorOptions(state, overrides, nodeName) {
98
+ export function buildExecutorOptions(state, overrides, nodeName, settings) {
89
99
  const stage = nodeName ?? state.currentNode ?? '';
90
- const stageTimeout = getStageTimeoutMs(stage);
100
+ const stageTimeout = getStageTimeoutMs(stage, settings);
101
+ const s = settings ?? (hasSettings() ? getSettings() : undefined);
102
+ const permissionMode = overrides?.permissionMode ??
103
+ state.permissionMode ??
104
+ resolveAgentPermissionMode(s);
91
105
  return {
92
106
  cwd: state.worktreePath || state.repositoryPath,
93
107
  maxTurns: 5000,
94
108
  timeout: stageTimeout,
109
+ ...(permissionMode ? { permissionMode } : {}),
95
110
  ...(state.model ? { model: state.model } : {}),
96
111
  ...overrides,
97
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"repair.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAGpG;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAkDR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,QAAQ,EAAE,cAAc,GACvB,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAwCnE"}
1
+ {"version":3,"file":"repair.node.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/nodes/repair.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,+DAA+D,CAAC;AAKvE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAkDR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,QAAQ,EAAE,cAAc,GACvB,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CA6CnE"}
@@ -7,6 +7,8 @@
7
7
  */
8
8
  import { join } from 'node:path';
9
9
  import { readSpecFile, createNodeLogger } from './node-helpers.js';
10
+ import { hasSettings, getSettings } from '../../../../services/settings.service.js';
11
+ import { resolveAgentPermissionMode } from '../../common/agent-permissions.js';
10
12
  /**
11
13
  * Build a repair prompt containing the broken YAML, validation errors,
12
14
  * and file paths for the executor to write fixed files.
@@ -78,11 +80,15 @@ export function createRepairNode(filename, executor) {
78
80
  const contents = filenames.map((f) => readSpecFile(state.specDir, f));
79
81
  const combinedContent = filenames.map((f, i) => `--- ${f} ---\n${contents[i]}`).join('\n\n');
80
82
  const prompt = buildRepairPrompt(filename, combinedContent, state.lastValidationErrors, state.specDir);
83
+ const s = hasSettings() ? getSettings() : undefined;
84
+ const permissionMode = state.permissionMode ??
85
+ resolveAgentPermissionMode(s);
81
86
  const options = {
82
87
  cwd: state.worktreePath || state.repositoryPath,
83
88
  maxTurns: 5,
84
89
  disableMcp: true,
85
90
  allowedTools: ['write'],
91
+ ...(permissionMode ? { permissionMode } : {}),
86
92
  };
87
93
  try {
88
94
  const result = await executor.execute(prompt, options);
@@ -35,6 +35,7 @@ export declare const FeatureAgentAnnotation: import("@langchain/langgraph").Anno
35
35
  error: import("@langchain/langgraph").BaseChannel<string | null, string | import("@langchain/langgraph").OverwriteValue<string | null> | null, unknown>;
36
36
  approvalGates: import("@langchain/langgraph").BaseChannel<ApprovalGates | undefined, ApprovalGates | import("@langchain/langgraph").OverwriteValue<ApprovalGates | undefined> | undefined, unknown>;
37
37
  model: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
38
+ permissionMode: import("@langchain/langgraph").BaseChannel<string | undefined, string | import("@langchain/langgraph").OverwriteValue<string | undefined> | undefined, unknown>;
38
39
  messages: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
39
40
  validationRetries: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
40
41
  lastValidationTarget: import("@langchain/langgraph").BaseChannel<string, string | import("@langchain/langgraph").OverwriteValue<string>, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwHjC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,sBAAsB,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4HjC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,sBAAsB,CAAC,KAAK,CAAC"}
@@ -24,6 +24,10 @@ export const FeatureAgentAnnotation = Annotation.Root({
24
24
  reducer: (_prev, next) => next ?? _prev,
25
25
  default: () => undefined,
26
26
  }),
27
+ permissionMode: Annotation({
28
+ reducer: (_prev, next) => next ?? _prev,
29
+ default: () => undefined,
30
+ }),
27
31
  messages: Annotation({
28
32
  reducer: (prev, next) => [...prev, ...next],
29
33
  default: () => [],
@@ -1 +1 @@
1
- {"version":3,"file":"github-repository.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/external/github-repository.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,YAAY,EACZ,eAAe,EAChB,MAAM,mFAAmF,CAAC;AAyB3F,qBACa,uBAAwB,YAAW,wBAAwB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB1B,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAuClF,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA2BlD,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAgDhB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe;IA2CtC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAyB9C,mBAAmB;CAOlC"}
1
+ {"version":3,"file":"github-repository.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/external/github-repository.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EACV,wBAAwB,EACxB,UAAU,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,YAAY,EACZ,eAAe,EAChB,MAAM,mFAAmF,CAAC;AAyB3F,qBACa,uBAAwB,YAAW,wBAAwB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB1B,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkDlF,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA2BlD,eAAe,CACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC;IAgDhB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe;IA2CtC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAyB9C,mBAAmB;CAOlC"}
@@ -66,9 +66,20 @@ let GitHubRepositoryService = class GitHubRepositoryService {
66
66
  String(limit),
67
67
  ];
68
68
  if (options?.search) {
69
- // gh repo list does not have a --match flag; use jq to filter by name
70
- const escaped = options.search.replace(/"/g, '\\"');
71
- args.push('-q', `[.[] | select(.name | test("${escaped}"; "i"))]`);
69
+ // gh repo list does not have a --match flag; use jq to filter by name.
70
+ //
71
+ // Use a literal case-insensitive substring match via ascii_downcase +
72
+ // contains() instead of test() (which would treat the input as a
73
+ // regex). This eliminates both regex-injection and ReDoS risk from
74
+ // user-supplied metacharacters.
75
+ //
76
+ // The search string is JSON-encoded before embedding so that quotes,
77
+ // backslashes, newlines, and any other special character are fully
78
+ // escaped by the language runtime (not a hand-rolled single-char
79
+ // replace). JSON.stringify produces a string literal that is
80
+ // simultaneously valid JSON and a valid jq string literal.
81
+ const jqLiteral = JSON.stringify(options.search.toLowerCase());
82
+ args.push('-q', `[.[] | select((.name | ascii_downcase) | contains(${jqLiteral}))]`);
72
83
  }
73
84
  try {
74
85
  const { stdout } = await this.execFile('gh', args);