@akiojin/gwt 4.8.0 → 4.9.1

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 (172) hide show
  1. package/README.ja.md +58 -34
  2. package/README.md +19 -35
  3. package/dist/cli/ui/components/App.d.ts +2 -2
  4. package/dist/cli/ui/components/App.d.ts.map +1 -1
  5. package/dist/cli/ui/components/App.js +8 -8
  6. package/dist/cli/ui/components/App.js.map +1 -1
  7. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -1
  8. package/dist/cli/ui/components/screens/BranchListScreen.js +3 -1
  9. package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -1
  10. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.d.ts +27 -0
  11. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.d.ts.map +1 -0
  12. package/dist/cli/ui/components/screens/{AIToolSelectorScreen.js → CodingAgentSelectorScreen.js} +35 -35
  13. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.js.map +1 -0
  14. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts +2 -2
  15. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts.map +1 -1
  16. package/dist/cli/ui/components/screens/ModelSelectorScreen.js.map +1 -1
  17. package/dist/cli/ui/types.d.ts +2 -2
  18. package/dist/cli/ui/types.d.ts.map +1 -1
  19. package/dist/cli/ui/utils/modelOptions.d.ts +4 -4
  20. package/dist/cli/ui/utils/modelOptions.d.ts.map +1 -1
  21. package/dist/cli/ui/utils/modelOptions.js.map +1 -1
  22. package/dist/client/assets/{index-PqK9jkug.js → index-LNPtOrn3.js} +17 -17
  23. package/dist/client/index.html +1 -1
  24. package/dist/config/builtin-coding-agents.d.ts +23 -0
  25. package/dist/config/builtin-coding-agents.d.ts.map +1 -0
  26. package/dist/config/{builtin-tools.js → builtin-coding-agents.js} +6 -6
  27. package/dist/config/builtin-coding-agents.js.map +1 -0
  28. package/dist/config/index.d.ts.map +1 -1
  29. package/dist/config/index.js +3 -7
  30. package/dist/config/index.js.map +1 -1
  31. package/dist/config/profiles.d.ts +2 -2
  32. package/dist/config/profiles.d.ts.map +1 -1
  33. package/dist/config/profiles.js +4 -7
  34. package/dist/config/profiles.js.map +1 -1
  35. package/dist/config/tools.d.ts +17 -17
  36. package/dist/config/tools.d.ts.map +1 -1
  37. package/dist/config/tools.js +84 -121
  38. package/dist/config/tools.js.map +1 -1
  39. package/dist/index.js +19 -19
  40. package/dist/index.js.map +1 -1
  41. package/dist/launcher.d.ts +8 -8
  42. package/dist/launcher.d.ts.map +1 -1
  43. package/dist/launcher.js +32 -28
  44. package/dist/launcher.js.map +1 -1
  45. package/dist/services/codingAgentCommandResolver.d.ts +10 -0
  46. package/dist/services/codingAgentCommandResolver.d.ts.map +1 -0
  47. package/dist/services/{customToolResolver.js → codingAgentCommandResolver.js} +25 -20
  48. package/dist/services/codingAgentCommandResolver.js.map +1 -0
  49. package/dist/services/{aiToolResolver.d.ts → codingAgentResolver.d.ts} +6 -6
  50. package/dist/services/codingAgentResolver.d.ts.map +1 -0
  51. package/dist/services/{aiToolResolver.js → codingAgentResolver.js} +23 -23
  52. package/dist/services/codingAgentResolver.js.map +1 -0
  53. package/dist/shared/{aiToolConstants.d.ts → codingAgentConstants.d.ts} +2 -2
  54. package/dist/shared/codingAgentConstants.d.ts.map +1 -0
  55. package/dist/shared/{aiToolConstants.js → codingAgentConstants.js} +2 -2
  56. package/dist/shared/codingAgentConstants.js.map +1 -0
  57. package/dist/types/api.d.ts +12 -12
  58. package/dist/types/api.d.ts.map +1 -1
  59. package/dist/types/tools.d.ts +30 -30
  60. package/dist/types/tools.d.ts.map +1 -1
  61. package/dist/types/tools.js +1 -1
  62. package/dist/utils/command.d.ts +11 -0
  63. package/dist/utils/command.d.ts.map +1 -1
  64. package/dist/utils/command.js +33 -0
  65. package/dist/utils/command.js.map +1 -1
  66. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts +9 -0
  67. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts.map +1 -0
  68. package/dist/web/client/src/components/{AIToolLaunchModal.js → CodingAgentLaunchModal.js} +58 -58
  69. package/dist/web/client/src/components/CodingAgentLaunchModal.js.map +1 -0
  70. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts +23 -0
  71. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts.map +1 -0
  72. package/dist/web/client/src/components/{CustomToolForm.js → CustomCodingAgentForm.js} +5 -5
  73. package/dist/web/client/src/components/CustomCodingAgentForm.js.map +1 -0
  74. package/dist/web/client/src/components/CustomCodingAgentList.d.ts +10 -0
  75. package/dist/web/client/src/components/CustomCodingAgentList.d.ts.map +1 -0
  76. package/dist/web/client/src/components/{CustomToolList.js → CustomCodingAgentList.js} +17 -17
  77. package/dist/web/client/src/components/CustomCodingAgentList.js.map +1 -0
  78. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +2 -2
  79. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +1 -1
  80. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +6 -6
  81. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +1 -1
  82. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +2 -2
  83. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +1 -1
  84. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +5 -5
  85. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +1 -1
  86. package/dist/web/client/src/hooks/useSessions.d.ts +4 -4
  87. package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -1
  88. package/dist/web/client/src/hooks/useSessions.js.map +1 -1
  89. package/dist/web/client/src/lib/api.d.ts +5 -5
  90. package/dist/web/client/src/lib/api.d.ts.map +1 -1
  91. package/dist/web/client/src/lib/api.js +1 -1
  92. package/dist/web/client/src/lib/api.js.map +1 -1
  93. package/dist/web/client/src/pages/BranchDetailPage.js +24 -24
  94. package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -1
  95. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -1
  96. package/dist/web/client/src/pages/ConfigManagementPage.js +15 -15
  97. package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -1
  98. package/dist/web/client/src/pages/ConfigPage.d.ts.map +1 -1
  99. package/dist/web/client/src/pages/ConfigPage.js +44 -40
  100. package/dist/web/client/src/pages/ConfigPage.js.map +1 -1
  101. package/dist/web/server/env/importer.d.ts.map +1 -1
  102. package/dist/web/server/env/importer.js +3 -3
  103. package/dist/web/server/env/importer.js.map +1 -1
  104. package/dist/web/server/pty/manager.d.ts +6 -6
  105. package/dist/web/server/pty/manager.d.ts.map +1 -1
  106. package/dist/web/server/pty/manager.js +11 -11
  107. package/dist/web/server/pty/manager.js.map +1 -1
  108. package/dist/web/server/routes/config.d.ts.map +1 -1
  109. package/dist/web/server/routes/config.js +34 -34
  110. package/dist/web/server/routes/config.js.map +1 -1
  111. package/dist/web/server/routes/sessions.d.ts +1 -1
  112. package/dist/web/server/routes/sessions.d.ts.map +1 -1
  113. package/dist/web/server/routes/sessions.js +20 -20
  114. package/dist/web/server/routes/sessions.js.map +1 -1
  115. package/package.json +2 -2
  116. package/src/cli/ui/__tests__/components/screens/{AIToolSelectorScreen.test.tsx → CodingAgentSelectorScreen.test.tsx} +38 -38
  117. package/src/cli/ui/components/App.tsx +22 -20
  118. package/src/cli/ui/components/screens/BranchListScreen.tsx +4 -2
  119. package/src/cli/ui/components/screens/CodingAgentSelectorScreen.tsx +159 -0
  120. package/src/cli/ui/components/screens/ModelSelectorScreen.tsx +6 -2
  121. package/src/cli/ui/types.ts +2 -2
  122. package/src/cli/ui/utils/modelOptions.ts +6 -4
  123. package/src/config/{builtin-tools.ts → builtin-coding-agents.ts} +9 -9
  124. package/src/config/index.ts +3 -7
  125. package/src/config/profiles.ts +4 -7
  126. package/src/config/tools.ts +107 -148
  127. package/src/index.ts +19 -19
  128. package/src/launcher.ts +38 -31
  129. package/src/services/{customToolResolver.ts → codingAgentCommandResolver.ts} +33 -28
  130. package/src/services/{aiToolResolver.ts → codingAgentResolver.ts} +28 -28
  131. package/src/shared/{aiToolConstants.ts → codingAgentConstants.ts} +1 -1
  132. package/src/types/api.ts +12 -12
  133. package/src/types/tools.ts +30 -30
  134. package/src/utils/command.ts +37 -0
  135. package/src/web/client/src/components/{AIToolLaunchModal.tsx → CodingAgentLaunchModal.tsx} +74 -70
  136. package/src/web/client/src/components/{CustomToolForm.tsx → CustomCodingAgentForm.tsx} +14 -14
  137. package/src/web/client/src/components/{CustomToolList.tsx → CustomCodingAgentList.tsx} +26 -26
  138. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +7 -7
  139. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +9 -9
  140. package/src/web/client/src/hooks/useSessions.ts +5 -5
  141. package/src/web/client/src/lib/api.ts +8 -8
  142. package/src/web/client/src/pages/BranchDetailPage.tsx +26 -26
  143. package/src/web/client/src/pages/ConfigManagementPage.tsx +32 -24
  144. package/src/web/client/src/pages/ConfigPage.tsx +57 -51
  145. package/src/web/server/env/importer.ts +6 -3
  146. package/src/web/server/pty/manager.ts +20 -20
  147. package/src/web/server/routes/config.ts +45 -39
  148. package/src/web/server/routes/sessions.ts +29 -26
  149. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts +0 -27
  150. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts.map +0 -1
  151. package/dist/cli/ui/components/screens/AIToolSelectorScreen.js.map +0 -1
  152. package/dist/config/builtin-tools.d.ts +0 -23
  153. package/dist/config/builtin-tools.d.ts.map +0 -1
  154. package/dist/config/builtin-tools.js.map +0 -1
  155. package/dist/services/aiToolResolver.d.ts.map +0 -1
  156. package/dist/services/aiToolResolver.js.map +0 -1
  157. package/dist/services/customToolResolver.d.ts +0 -10
  158. package/dist/services/customToolResolver.d.ts.map +0 -1
  159. package/dist/services/customToolResolver.js.map +0 -1
  160. package/dist/shared/aiToolConstants.d.ts.map +0 -1
  161. package/dist/shared/aiToolConstants.js.map +0 -1
  162. package/dist/web/client/src/components/AIToolLaunchModal.d.ts +0 -9
  163. package/dist/web/client/src/components/AIToolLaunchModal.d.ts.map +0 -1
  164. package/dist/web/client/src/components/AIToolLaunchModal.js.map +0 -1
  165. package/dist/web/client/src/components/CustomToolForm.d.ts +0 -23
  166. package/dist/web/client/src/components/CustomToolForm.d.ts.map +0 -1
  167. package/dist/web/client/src/components/CustomToolForm.js.map +0 -1
  168. package/dist/web/client/src/components/CustomToolList.d.ts +0 -10
  169. package/dist/web/client/src/components/CustomToolList.d.ts.map +0 -1
  170. package/dist/web/client/src/components/CustomToolList.js.map +0 -1
  171. package/src/cli/ui/components/screens/AIToolSelectorScreen.tsx +0 -153
  172. package/src/index.ts.backup +0 -1543
@@ -1,5 +1,5 @@
1
1
  /**
2
- * カスタムAIツール対応機能の型定義
2
+ * コーディングエージェント対応機能の型定義
3
3
  *
4
4
  * この型定義ファイルは、設定ファイル(tools.json)のスキーマと
5
5
  * 内部で使用するデータ構造を定義します。
@@ -33,28 +33,28 @@ export interface ModeArgs {
33
33
  resume?: string[];
34
34
  }
35
35
  /**
36
- * カスタムAIツール定義
36
+ * コーディングエージェント定義
37
37
  *
38
- * tools.jsonファイルで定義される個別のツール設定。
38
+ * tools.jsonファイルで定義される個別のエージェント設定。
39
39
  */
40
- export interface CustomAITool {
40
+ export interface CodingAgent {
41
41
  /**
42
- * ツールの一意識別子
42
+ * エージェントの一意識別子
43
43
  *
44
44
  * 小文字英数字とハイフンのみ使用可能(パターン: ^[a-z0-9-]+$)
45
- * ビルトインツール(claude-code, codex-cli)との重複は不可。
45
+ * ビルトインエージェント(claude-code, codex-cli)との重複は不可。
46
46
  */
47
47
  id: string;
48
48
  /**
49
49
  * UI表示名
50
50
  *
51
- * ツール選択画面で表示される名前。日本語も使用可能。
51
+ * エージェント選択画面で表示される名前。日本語も使用可能。
52
52
  */
53
53
  displayName: string;
54
54
  /**
55
55
  * アイコン文字(オプション)
56
56
  *
57
- * ツール選択画面で表示されるUnicode文字。
57
+ * エージェント選択画面で表示されるUnicode文字。
58
58
  */
59
59
  icon?: string;
60
60
  /**
@@ -81,7 +81,7 @@ export interface CustomAITool {
81
81
  /**
82
82
  * デフォルト引数(オプション)
83
83
  *
84
- * ツール実行時に常に付与される引数。
84
+ * エージェント実行時に常に付与される引数。
85
85
  * 最終的な引数は: defaultArgs + modeArgs[mode] + permissionSkipArgs + extraArgs
86
86
  */
87
87
  defaultArgs?: string[];
@@ -101,7 +101,7 @@ export interface CustomAITool {
101
101
  /**
102
102
  * 環境変数(オプション)
103
103
  *
104
- * ツール起動時に設定される環境変数。
104
+ * エージェント起動時に設定される環境変数。
105
105
  * APIキーや設定ファイルパスなどを指定。
106
106
  */
107
107
  env?: Record<string, string>;
@@ -115,11 +115,11 @@ export interface CustomAITool {
115
115
  updatedAt?: string;
116
116
  }
117
117
  /**
118
- * ツール設定ファイル全体
118
+ * コーディングエージェント設定ファイル全体
119
119
  *
120
120
  * ~/.gwt/tools.json のスキーマ。
121
121
  */
122
- export interface ToolsConfig {
122
+ export interface CodingAgentsConfig {
123
123
  /**
124
124
  * 設定フォーマットのバージョン
125
125
  *
@@ -131,28 +131,28 @@ export interface ToolsConfig {
131
131
  */
132
132
  updatedAt?: string;
133
133
  /**
134
- * すべてのツールで共有する環境変数
134
+ * すべてのエージェントで共有する環境変数
135
135
  */
136
136
  env?: Record<string, string>;
137
137
  /**
138
- * カスタムツール定義の配列
138
+ * カスタムコーディングエージェント定義の配列
139
139
  *
140
- * 空配列も許可(ビルトインツールのみ使用)。
140
+ * 空配列も許可(ビルトインエージェントのみ使用)。
141
141
  */
142
- customTools: CustomAITool[];
142
+ customCodingAgents: CodingAgent[];
143
143
  }
144
144
  /**
145
- * 統合ツール設定
145
+ * 統合コーディングエージェント設定
146
146
  *
147
- * ビルトインツールとカスタムツールを統合して扱うための内部型。
148
- * getAllTools() 関数がこの型の配列を返します。
147
+ * ビルトインエージェントとカスタムエージェントを統合して扱うための内部型。
148
+ * getAllCodingAgents() 関数がこの型の配列を返します。
149
149
  */
150
- export interface AIToolConfig {
150
+ export interface CodingAgentConfig {
151
151
  /**
152
- * ツールID
152
+ * エージェントID
153
153
  *
154
154
  * ビルトイン: "claude-code" | "codex-cli"
155
- * カスタム: CustomAITool.id
155
+ * カスタム: CodingAgent.id
156
156
  */
157
157
  id: string;
158
158
  /**
@@ -164,25 +164,25 @@ export interface AIToolConfig {
164
164
  */
165
165
  icon?: string;
166
166
  /**
167
- * ビルトインツールかどうか
167
+ * ビルトインエージェントかどうか
168
168
  *
169
169
  * true: Claude Code または Codex CLI
170
- * false: カスタムツール
170
+ * false: カスタムエージェント
171
171
  */
172
172
  isBuiltin: boolean;
173
173
  /**
174
- * カスタムツールの場合、元の設定
174
+ * カスタムエージェントの場合、元の設定
175
175
  *
176
176
  * isBuiltin=false の場合のみ存在。
177
177
  */
178
- customConfig?: CustomAITool;
178
+ customConfig?: CodingAgent;
179
179
  }
180
180
  /**
181
- * ツール起動オプション
181
+ * コーディングエージェント起動オプション
182
182
  *
183
- * launchCustomAITool() 関数の引数として使用。
183
+ * launchCodingAgent() 関数の引数として使用。
184
184
  */
185
- export interface LaunchOptions {
185
+ export interface CodingAgentLaunchOptions {
186
186
  /**
187
187
  * 実行モード
188
188
  */
@@ -202,7 +202,7 @@ export interface LaunchOptions {
202
202
  /**
203
203
  * 作業ディレクトリ(ワークツリーパス)
204
204
  *
205
- * ツール起動時のcwdとして使用されます。
205
+ * エージェント起動時のcwdとして使用されます。
206
206
  */
207
207
  cwd?: string;
208
208
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,WAAW,EAAE,YAAY,EAAE,CAAC;CAC7B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAExC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,EAAE,WAAW,EAAE,CAAC;CACnC;AAMD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAExC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * カスタムAIツール対応機能の型定義
2
+ * コーディングエージェント対応機能の型定義
3
3
  *
4
4
  * この型定義ファイルは、設定ファイル(tools.json)のスキーマと
5
5
  * 内部で使用するデータ構造を定義します。
@@ -5,6 +5,7 @@ export interface CommandLookupResult {
5
5
  available: boolean;
6
6
  path: string | null;
7
7
  source: "installed" | "bunx";
8
+ version?: string | null;
8
9
  }
9
10
  /**
10
11
  * Tool status information for display.
@@ -14,12 +15,22 @@ export interface ToolStatus {
14
15
  name: string;
15
16
  status: "installed" | "bunx";
16
17
  path: string | null;
18
+ version?: string | null;
17
19
  }
18
20
  /**
19
21
  * Clears the command lookup cache.
20
22
  * Primarily for testing purposes.
21
23
  */
22
24
  export declare function clearCommandLookupCache(): void;
25
+ /**
26
+ * Gets the version of a command by running it with --version.
27
+ * FR-022: Returns version in "v{version}" format, null on failure.
28
+ * FR-023: Times out after 3 seconds to minimize startup delay.
29
+ *
30
+ * @param commandPath - Full path to the command
31
+ * @returns Version string (e.g., "v1.0.3") or null on failure
32
+ */
33
+ export declare function getCommandVersion(commandPath: string): Promise<string | null>;
23
34
  /**
24
35
  * Finds a command by checking PATH first, then fallback paths.
25
36
  * Results are cached for the lifetime of the process (FR-020).
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/utils/command.ts"],"names":[],"mappings":"AAsDA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAmD9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAanE"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/utils/command.ts"],"names":[],"mappings":"AAsDA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CA0D9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAcnE"}
@@ -55,6 +55,31 @@ const commandLookupCache = new Map();
55
55
  export function clearCommandLookupCache() {
56
56
  commandLookupCache.clear();
57
57
  }
58
+ /**
59
+ * Gets the version of a command by running it with --version.
60
+ * FR-022: Returns version in "v{version}" format, null on failure.
61
+ * FR-023: Times out after 3 seconds to minimize startup delay.
62
+ *
63
+ * @param commandPath - Full path to the command
64
+ * @returns Version string (e.g., "v1.0.3") or null on failure
65
+ */
66
+ export async function getCommandVersion(commandPath) {
67
+ try {
68
+ const result = await execa(commandPath, ["--version"], {
69
+ timeout: 3000,
70
+ stdin: "ignore",
71
+ stdout: "pipe",
72
+ stderr: "ignore",
73
+ });
74
+ // Extract version number from output
75
+ // Examples: "claude 1.0.3", "codex 0.77.0", "gemini 0.1.0"
76
+ const match = result.stdout.match(/(\d+\.\d+(?:\.\d+)?(?:-[\w.]+)?)/);
77
+ return match ? `v${match[1]}` : null;
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
58
83
  /**
59
84
  * Finds a command by checking PATH first, then fallback paths.
60
85
  * Results are cached for the lifetime of the process (FR-020).
@@ -103,6 +128,13 @@ export async function findCommand(commandName) {
103
128
  if (!lookupResult) {
104
129
  lookupResult = { available: true, path: null, source: "bunx" };
105
130
  }
131
+ // Step 4: Get version for installed commands (FR-022)
132
+ if (lookupResult.source === "installed" && lookupResult.path) {
133
+ lookupResult.version = await getCommandVersion(lookupResult.path);
134
+ }
135
+ else {
136
+ lookupResult.version = null;
137
+ }
106
138
  // Cache the result (FR-020)
107
139
  commandLookupCache.set(commandName, lookupResult);
108
140
  return lookupResult;
@@ -137,6 +169,7 @@ export async function detectAllToolStatuses() {
137
169
  name: tool.displayName,
138
170
  status: result.source,
139
171
  path: result.path,
172
+ version: result.version ?? null,
140
173
  };
141
174
  }));
142
175
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/utils/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;GAGG;AACH,MAAM,mBAAmB,GACvB;IACE,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YAC1C,uBAAuB;SACxB;QACD,KAAK,EAAE;YACL,IAAI,CACF,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAC9B,UAAU,EACV,QAAQ,EACR,YAAY,CACb;YACD,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC;SAC7C;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;YACzC,sBAAsB;SACvB;QACD,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;KACrD;IACD,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YAC1C,uBAAuB;SACxB;QACD,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;KACtD;CACF,CAAC;AAEJ;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;IACnE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IAC/D,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;CAC1D,CAAC;AAqBX;;;GAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB;IAEnB,uCAAuC;IACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,YAAY,GAA+B,IAAI,CAAC;IAEpD,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3D,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;IAC3C,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;YAEpE,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,YAAY,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;oBACjE,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjE,CAAC;IAED,4BAA4B;IAC5B,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAElD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB;IAEnB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/utils/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { Branch } from "../../../../types/api.js";
3
+ interface CodingAgentLaunchModalProps {
4
+ branch: Branch;
5
+ onClose: () => void;
6
+ }
7
+ export declare function CodingAgentLaunchModal({ branch, onClose, }: CodingAgentLaunchModalProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=CodingAgentLaunchModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodingAgentLaunchModal.d.ts","sourceRoot":"","sources":["../../../../../src/web/client/src/components/CodingAgentLaunchModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAa5D,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,0BAA0B,CAAC;AA4CvE,UAAU,2BAA2B;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AASD,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,OAAO,GACR,EAAE,2BAA2B,qBAke7B"}
@@ -5,13 +5,13 @@ import { Button } from "@/components/ui/button";
5
5
  import { Input } from "@/components/ui/input";
6
6
  import { Alert, AlertDescription } from "@/components/ui/alert";
7
7
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select";
8
- import { CLAUDE_PERMISSION_SKIP_ARGS, CODEX_DEFAULT_ARGS, } from "../../../../shared/aiToolConstants.js";
8
+ import { CLAUDE_PERMISSION_SKIP_ARGS, CODEX_DEFAULT_ARGS, } from "../../../../shared/codingAgentConstants.js";
9
9
  import { useConfig } from "../hooks/useConfig";
10
10
  import { useStartSession } from "../hooks/useSessions";
11
11
  import { useCreateWorktree } from "../hooks/useWorktrees";
12
12
  import { useSyncBranch } from "../hooks/useBranches";
13
13
  import { ApiError } from "../lib/api";
14
- const BUILTIN_TOOL_SUMMARIES = {
14
+ const BUILTIN_AGENT_SUMMARIES = {
15
15
  "claude-code": {
16
16
  command: "claude",
17
17
  defaultArgs: [],
@@ -32,78 +32,78 @@ const BUILTIN_TOOL_SUMMARIES = {
32
32
  },
33
33
  },
34
34
  };
35
- export function AIToolLaunchModal({ branch, onClose }) {
35
+ export function CodingAgentLaunchModal({ branch, onClose, }) {
36
36
  const { data: config, isLoading: isConfigLoading, error: configError, } = useConfig();
37
37
  const startSession = useStartSession();
38
38
  const createWorktree = useCreateWorktree();
39
39
  const syncBranch = useSyncBranch(branch.name);
40
40
  const navigate = useNavigate();
41
- const [selectedToolId, setSelectedToolId] = useState("claude-code");
41
+ const [selectedAgentId, setSelectedAgentId] = useState("claude-code");
42
42
  const [selectedMode, setSelectedMode] = useState("normal");
43
43
  const [skipPermissions, setSkipPermissions] = useState(false);
44
44
  const [extraArgsText, setExtraArgsText] = useState("");
45
45
  const [banner, setBanner] = useState(null);
46
46
  const [isStartingSession, setIsStartingSession] = useState(false);
47
47
  const [isCreatingWorktree, setIsCreatingWorktree] = useState(false);
48
- const customTools = config?.tools ?? [];
49
- const availableTools = useMemo(() => [
48
+ const customAgents = config?.codingAgents ?? [];
49
+ const availableAgents = useMemo(() => [
50
50
  { id: "claude-code", label: "Claude Code", target: "claude" },
51
51
  { id: "codex-cli", label: "Codex CLI", target: "codex" },
52
- ...customTools.map((tool) => ({
53
- id: tool.id,
54
- label: tool.displayName,
52
+ ...customAgents.map((agent) => ({
53
+ id: agent.id,
54
+ label: agent.displayName,
55
55
  target: "custom",
56
- definition: tool,
56
+ definition: agent,
57
57
  })),
58
- ], [customTools]);
58
+ ], [customAgents]);
59
59
  useEffect(() => {
60
- if (!availableTools.length) {
61
- setSelectedToolId("claude-code");
60
+ if (!availableAgents.length) {
61
+ setSelectedAgentId("claude-code");
62
62
  return;
63
63
  }
64
- if (!availableTools.find((tool) => tool.id === selectedToolId)) {
65
- const first = availableTools[0];
64
+ if (!availableAgents.find((agent) => agent.id === selectedAgentId)) {
65
+ const first = availableAgents[0];
66
66
  if (first) {
67
- setSelectedToolId(first.id);
67
+ setSelectedAgentId(first.id);
68
68
  }
69
69
  }
70
- }, [availableTools, selectedToolId]);
71
- const selectedTool = availableTools.find((tool) => tool.id === selectedToolId);
72
- const selectedToolSummary = useMemo(() => {
73
- if (!selectedTool) {
70
+ }, [availableAgents, selectedAgentId]);
71
+ const selectedAgent = availableAgents.find((agent) => agent.id === selectedAgentId);
72
+ const selectedAgentSummary = useMemo(() => {
73
+ if (!selectedAgent) {
74
74
  return null;
75
75
  }
76
- if (selectedTool.target === "custom") {
76
+ if (selectedAgent.target === "custom") {
77
77
  return {
78
- command: selectedTool.definition.command,
79
- defaultArgs: selectedTool.definition.defaultArgs ?? null,
80
- modeArgs: selectedTool.definition.modeArgs,
81
- permissionSkipArgs: selectedTool.definition.permissionSkipArgs ?? null,
78
+ command: selectedAgent.definition.command,
79
+ defaultArgs: selectedAgent.definition.defaultArgs ?? null,
80
+ modeArgs: selectedAgent.definition.modeArgs,
81
+ permissionSkipArgs: selectedAgent.definition.permissionSkipArgs ?? null,
82
82
  };
83
83
  }
84
- return BUILTIN_TOOL_SUMMARIES[selectedTool.id] ?? null;
85
- }, [selectedTool]);
84
+ return BUILTIN_AGENT_SUMMARIES[selectedAgent.id] ?? null;
85
+ }, [selectedAgent]);
86
86
  const argsPreview = useMemo(() => {
87
- if (!selectedToolSummary) {
87
+ if (!selectedAgentSummary) {
88
88
  return null;
89
89
  }
90
90
  const args = [];
91
- if (selectedToolSummary.defaultArgs?.length) {
92
- args.push(...selectedToolSummary.defaultArgs);
91
+ if (selectedAgentSummary.defaultArgs?.length) {
92
+ args.push(...selectedAgentSummary.defaultArgs);
93
93
  }
94
- const mode = selectedToolSummary.modeArgs?.[selectedMode];
94
+ const mode = selectedAgentSummary.modeArgs?.[selectedMode];
95
95
  if (mode?.length) {
96
96
  args.push(...mode);
97
97
  }
98
- if (skipPermissions && selectedToolSummary.permissionSkipArgs?.length) {
99
- args.push(...selectedToolSummary.permissionSkipArgs);
98
+ if (skipPermissions && selectedAgentSummary.permissionSkipArgs?.length) {
99
+ args.push(...selectedAgentSummary.permissionSkipArgs);
100
100
  }
101
101
  const extraArgs = parseExtraArgs(extraArgsText);
102
102
  if (extraArgs.length) {
103
103
  args.push(...extraArgs);
104
104
  }
105
- return { command: selectedToolSummary.command, args };
106
- }, [selectedToolSummary, selectedMode, skipPermissions, extraArgsText]);
105
+ return { command: selectedAgentSummary.command, args };
106
+ }, [selectedAgentSummary, selectedMode, skipPermissions, extraArgsText]);
107
107
  const PROTECTED_BRANCHES = ["main", "master", "develop"];
108
108
  const isProtectedBranch = PROTECTED_BRANCHES.includes(branch.name.replace(/^origin\//, ""));
109
109
  const divergenceInfo = branch.divergence ?? null;
@@ -194,8 +194,8 @@ export function AIToolLaunchModal({ branch, onClose }) {
194
194
  });
195
195
  return;
196
196
  }
197
- if (!selectedTool) {
198
- setBanner({ type: "error", message: "Select an AI tool to launch." });
197
+ if (!selectedAgent) {
198
+ setBanner({ type: "error", message: "Select a coding agent to launch." });
199
199
  return;
200
200
  }
201
201
  if (needsRemoteSync) {
@@ -218,22 +218,22 @@ export function AIToolLaunchModal({ branch, onClose }) {
218
218
  }
219
219
  setIsStartingSession(true);
220
220
  try {
221
- const toolType = selectedTool.target === "codex"
221
+ const agentType = selectedAgent.target === "codex"
222
222
  ? "codex-cli"
223
- : selectedTool.target === "custom"
223
+ : selectedAgent.target === "custom"
224
224
  ? "custom"
225
225
  : "claude-code";
226
226
  const extraArgs = parseExtraArgs(extraArgsText);
227
227
  const sessionRequest = {
228
- toolType,
229
- toolName: selectedTool.target === "custom" ? selectedTool.id : null,
230
- ...(selectedTool.target === "custom"
231
- ? { customToolId: selectedTool.id }
228
+ agentType,
229
+ agentName: selectedAgent.target === "custom" ? selectedAgent.id : null,
230
+ ...(selectedAgent.target === "custom"
231
+ ? { customAgentId: selectedAgent.id }
232
232
  : {}),
233
233
  mode: selectedMode,
234
234
  worktreePath: branch.worktreePath,
235
235
  skipPermissions,
236
- ...(selectedTool.target === "codex"
236
+ ...(selectedAgent.target === "codex"
237
237
  ? { bypassApprovals: skipPermissions }
238
238
  : {}),
239
239
  ...(extraArgs.length ? { extraArgs } : {}),
@@ -259,7 +259,7 @@ export function AIToolLaunchModal({ branch, onClose }) {
259
259
  React.createElement(CardHeader, { className: "pb-4" },
260
260
  React.createElement("div", { className: "flex items-start justify-between gap-4" },
261
261
  React.createElement("div", null,
262
- React.createElement("p", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground" }, "Launch AI Tool"),
262
+ React.createElement("p", { className: "text-xs font-medium uppercase tracking-wider text-muted-foreground" }, "Launch Coding Agent"),
263
263
  React.createElement("h2", { className: "mt-1 text-lg font-semibold" }, branch.name)),
264
264
  React.createElement(Button, { variant: "ghost", size: "sm", onClick: handleClose }, "\u00D7"))),
265
265
  React.createElement(CardContent, { className: "space-y-4" },
@@ -276,7 +276,7 @@ export function AIToolLaunchModal({ branch, onClose }) {
276
276
  configError instanceof Error ? configError.message : "unknown"))),
277
277
  !branch.worktreePath && (React.createElement(Alert, { variant: isProtectedBranch ? "destructive" : "warning" },
278
278
  React.createElement(AlertDescription, { className: "space-y-2" }, isProtectedBranch ? (React.createElement("p", null, "Cannot create worktree for protected branches (main, develop, master). Protected branches must remain in the main repository.")) : (React.createElement(React.Fragment, null,
279
- React.createElement("p", null, "Worktree is missing. Create it before launching AI tools."),
279
+ React.createElement("p", null, "Worktree is missing. Create it before launching coding agents."),
280
280
  React.createElement(Button, { variant: "secondary", size: "sm", onClick: handleCreateWorktree, disabled: isCreatingWorktree }, isCreatingWorktree ? "Creating..." : "Create worktree")))))),
281
281
  needsRemoteSync && (React.createElement(Alert, { variant: "info" },
282
282
  React.createElement(AlertDescription, null,
@@ -287,11 +287,11 @@ export function AIToolLaunchModal({ branch, onClose }) {
287
287
  React.createElement(AlertDescription, null, "Both remote and local have unresolved differences. Rebase/merge before launching."))),
288
288
  React.createElement("div", { className: "grid gap-4 sm:grid-cols-3" },
289
289
  React.createElement("div", { className: "space-y-2" },
290
- React.createElement("label", { className: "text-sm font-medium" }, "AI tool"),
291
- React.createElement(Select, { value: selectedToolId, onValueChange: setSelectedToolId, disabled: isConfigLoading ?? false },
290
+ React.createElement("label", { className: "text-sm font-medium" }, "Coding agent"),
291
+ React.createElement(Select, { value: selectedAgentId, onValueChange: setSelectedAgentId, disabled: isConfigLoading ?? false },
292
292
  React.createElement(SelectTrigger, null,
293
293
  React.createElement(SelectValue, null)),
294
- React.createElement(SelectContent, null, availableTools.map((tool) => (React.createElement(SelectItem, { key: tool.id, value: tool.id }, tool.label)))))),
294
+ React.createElement(SelectContent, null, availableAgents.map((agent) => (React.createElement(SelectItem, { key: agent.id, value: agent.id }, agent.label)))))),
295
295
  React.createElement("div", { className: "space-y-2" },
296
296
  React.createElement("label", { className: "text-sm font-medium" }, "Launch mode"),
297
297
  React.createElement(Select, { value: selectedMode, onValueChange: (value) => setSelectedMode(value) },
@@ -309,29 +309,29 @@ export function AIToolLaunchModal({ branch, onClose }) {
309
309
  React.createElement("span", null, "Skip permission checks (at your own risk)")),
310
310
  React.createElement("div", { className: "flex flex-wrap gap-2" },
311
311
  React.createElement(Button, { onClick: handleStartSession, disabled: isStartingSession ||
312
- !selectedTool ||
312
+ !selectedAgent ||
313
313
  hasBlockingDivergence ||
314
- needsRemoteSync }, isStartingSession ? "Launching..." : "Launch AI tool"),
314
+ needsRemoteSync }, isStartingSession ? "Launching..." : "Launch coding agent"),
315
315
  React.createElement(Button, { variant: "secondary", onClick: handleSyncBranch, disabled: !branch.worktreePath || syncBranch.isPending }, syncBranch.isPending ? "Syncing..." : "Sync latest"),
316
316
  React.createElement(Button, { variant: "ghost", onClick: handleClose }, "Cancel")),
317
- selectedToolSummary && (React.createElement("div", { className: "space-y-2 rounded-lg border bg-muted/30 p-4 text-sm" },
317
+ selectedAgentSummary && (React.createElement("div", { className: "space-y-2 rounded-lg border bg-muted/30 p-4 text-sm" },
318
318
  React.createElement("div", { className: "grid gap-2 sm:grid-cols-3" },
319
319
  React.createElement("div", null,
320
320
  React.createElement("span", { className: "text-muted-foreground" }, "Command:"),
321
321
  " ",
322
- React.createElement("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono" }, selectedToolSummary.command)),
322
+ React.createElement("code", { className: "rounded bg-muted px-1.5 py-0.5 font-mono" }, selectedAgentSummary.command)),
323
323
  React.createElement("div", null,
324
324
  React.createElement("span", { className: "text-muted-foreground" }, "defaultArgs:"),
325
325
  " ",
326
- React.createElement("span", { className: !selectedToolSummary.defaultArgs?.length
326
+ React.createElement("span", { className: !selectedAgentSummary.defaultArgs?.length
327
327
  ? "text-muted-foreground/50"
328
- : "" }, renderArgs(selectedToolSummary.defaultArgs))),
328
+ : "" }, renderArgs(selectedAgentSummary.defaultArgs))),
329
329
  React.createElement("div", null,
330
330
  React.createElement("span", { className: "text-muted-foreground" }, "permissionSkipArgs:"),
331
331
  " ",
332
- React.createElement("span", { className: !selectedToolSummary.permissionSkipArgs?.length
332
+ React.createElement("span", { className: !selectedAgentSummary.permissionSkipArgs?.length
333
333
  ? "text-muted-foreground/50"
334
- : "" }, renderArgs(selectedToolSummary.permissionSkipArgs)))),
334
+ : "" }, renderArgs(selectedAgentSummary.permissionSkipArgs)))),
335
335
  argsPreview && (React.createElement("div", { className: "border-t pt-2" },
336
336
  React.createElement("span", { className: "text-xs text-muted-foreground" }, "Command to run:"),
337
337
  React.createElement("pre", { className: "mt-1 overflow-x-auto rounded bg-background p-2 font-mono text-sm" },
@@ -360,4 +360,4 @@ function formatError(error, fallback) {
360
360
  }
361
361
  return fallback;
362
362
  }
363
- //# sourceMappingURL=AIToolLaunchModal.js.map
363
+ //# sourceMappingURL=CodingAgentLaunchModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodingAgentLaunchModal.js","sourceRoot":"","sources":["../../../../../src/web/client/src/components/CodingAgentLaunchModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import type { ApiCodingAgent, EnvironmentVariable } from "../../../../types/api.js";
3
+ export interface CustomCodingAgentFormValue {
4
+ id: string;
5
+ displayName: string;
6
+ icon?: string | null;
7
+ description?: string | null;
8
+ executionType: ApiCodingAgent["executionType"];
9
+ command: string;
10
+ defaultArgs?: string[] | null;
11
+ modeArgs: ApiCodingAgent["modeArgs"];
12
+ permissionSkipArgs?: string[] | null;
13
+ env?: EnvironmentVariable[] | null;
14
+ }
15
+ interface CustomCodingAgentFormProps {
16
+ initialValue?: ApiCodingAgent;
17
+ onSubmit: (value: CustomCodingAgentFormValue) => void;
18
+ onCancel: () => void;
19
+ isSaving?: boolean;
20
+ }
21
+ export declare function CustomCodingAgentForm({ initialValue, onSubmit, onCancel, isSaving, }: CustomCodingAgentFormProps): React.JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=CustomCodingAgentForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomCodingAgentForm.d.ts","sourceRoot":"","sources":["../../../../../src/web/client/src/components/CustomCodingAgentForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAUxC,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;CACpC;AAED,UAAU,0BAA0B;IAClC,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AASD,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,0BAA0B,qBA+O5B"}