@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,7 +1,7 @@
1
1
  /**
2
2
  * Config Routes
3
3
  */
4
- import { loadToolsConfig, saveToolsConfig } from "../../../config/tools.js";
4
+ import { loadCodingAgentsConfig, saveCodingAgentsConfig, } from "../../../config/tools.js";
5
5
  import { loadEnvHistory, recordEnvHistory, } from "../../../config/env-history.js";
6
6
  import { getImportedEnvKeys } from "../env/importer.js";
7
7
  function normalizeEnv(env, importedKeys, history) {
@@ -36,44 +36,44 @@ function envArrayToRecord(env) {
36
36
  }
37
37
  return record;
38
38
  }
39
- function toApiTool(tool, history, importedKeys) {
39
+ function toApiCodingAgent(agent, history, importedKeys) {
40
40
  return {
41
- id: tool.id,
42
- displayName: tool.displayName,
43
- icon: tool.icon ?? null,
44
- command: tool.command,
45
- executionType: tool.type,
46
- defaultArgs: tool.defaultArgs ?? null,
47
- modeArgs: tool.modeArgs,
48
- permissionSkipArgs: tool.permissionSkipArgs ?? null,
49
- env: normalizeEnv(tool.env, importedKeys, history),
41
+ id: agent.id,
42
+ displayName: agent.displayName,
43
+ icon: agent.icon ?? null,
44
+ command: agent.command,
45
+ executionType: agent.type,
46
+ defaultArgs: agent.defaultArgs ?? null,
47
+ modeArgs: agent.modeArgs,
48
+ permissionSkipArgs: agent.permissionSkipArgs ?? null,
49
+ env: normalizeEnv(agent.env, importedKeys, history),
50
50
  description: null,
51
51
  createdAt: null,
52
52
  updatedAt: null,
53
53
  };
54
54
  }
55
- function toFileTool(tool) {
56
- const envRecord = envArrayToRecord(tool.env);
57
- const fileTool = {
58
- id: tool.id,
59
- displayName: tool.displayName,
60
- type: tool.executionType,
61
- command: tool.command,
62
- modeArgs: tool.modeArgs,
55
+ function toFileCodingAgent(agent) {
56
+ const envRecord = envArrayToRecord(agent.env);
57
+ const fileAgent = {
58
+ id: agent.id,
59
+ displayName: agent.displayName,
60
+ type: agent.executionType,
61
+ command: agent.command,
62
+ modeArgs: agent.modeArgs,
63
63
  };
64
- if (tool.icon) {
65
- fileTool.icon = tool.icon;
64
+ if (agent.icon) {
65
+ fileAgent.icon = agent.icon;
66
66
  }
67
- if (tool.defaultArgs && tool.defaultArgs.length > 0) {
68
- fileTool.defaultArgs = tool.defaultArgs;
67
+ if (agent.defaultArgs && agent.defaultArgs.length > 0) {
68
+ fileAgent.defaultArgs = agent.defaultArgs;
69
69
  }
70
- if (tool.permissionSkipArgs && tool.permissionSkipArgs.length > 0) {
71
- fileTool.permissionSkipArgs = tool.permissionSkipArgs;
70
+ if (agent.permissionSkipArgs && agent.permissionSkipArgs.length > 0) {
71
+ fileAgent.permissionSkipArgs = agent.permissionSkipArgs;
72
72
  }
73
73
  if (Object.keys(envRecord).length > 0) {
74
- fileTool.env = envRecord;
74
+ fileAgent.env = envRecord;
75
75
  }
76
- return fileTool;
76
+ return fileAgent;
77
77
  }
78
78
  function diffEnvHistory(previous, next, source) {
79
79
  const entries = [];
@@ -96,7 +96,7 @@ function diffEnvHistory(previous, next, source) {
96
96
  export async function registerConfigRoutes(fastify) {
97
97
  fastify.get("/api/config", async (request, reply) => {
98
98
  try {
99
- const config = await loadToolsConfig();
99
+ const config = await loadCodingAgentsConfig();
100
100
  const history = await loadEnvHistory();
101
101
  const importedSet = new Set(getImportedEnvKeys());
102
102
  return {
@@ -106,12 +106,12 @@ export async function registerConfigRoutes(fastify) {
106
106
  updatedAt: config.updatedAt ?? null,
107
107
  env: normalizeEnv(config.env, importedSet, history),
108
108
  history,
109
- tools: config.customTools.map((tool) => toApiTool(tool, history, importedSet)),
109
+ codingAgents: config.customCodingAgents.map((agent) => toApiCodingAgent(agent, history, importedSet)),
110
110
  },
111
111
  };
112
112
  }
113
113
  catch (error) {
114
- request.log.error({ err: error }, "Failed to load custom tool config");
114
+ request.log.error({ err: error }, "Failed to load coding agents config");
115
115
  reply.code(500);
116
116
  return {
117
117
  success: false,
@@ -123,13 +123,13 @@ export async function registerConfigRoutes(fastify) {
123
123
  fastify.put("/api/config", async (request, reply) => {
124
124
  try {
125
125
  const payload = request.body;
126
- const existing = await loadToolsConfig();
126
+ const existing = await loadCodingAgentsConfig();
127
127
  const nextEnvRecord = envArrayToRecord(payload.env);
128
128
  const envHistory = diffEnvHistory(existing.env ?? {}, nextEnvRecord, "ui");
129
- await saveToolsConfig({
129
+ await saveCodingAgentsConfig({
130
130
  version: payload.version || existing.version,
131
131
  env: nextEnvRecord,
132
- customTools: payload.tools.map(toFileTool),
132
+ customCodingAgents: payload.codingAgents.map(toFileCodingAgent),
133
133
  });
134
134
  if (envHistory.length) {
135
135
  await recordEnvHistory(envHistory);
@@ -143,7 +143,7 @@ export async function registerConfigRoutes(fastify) {
143
143
  updatedAt: new Date().toISOString(),
144
144
  env: normalizeEnv(nextEnvRecord, importedSet, history),
145
145
  history,
146
- tools: payload.tools,
146
+ codingAgents: payload.codingAgents,
147
147
  },
148
148
  };
149
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/web/server/routes/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/web/server/routes/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Session Routes
3
3
  *
4
- * AI Toolセッション関連のREST APIエンドポイント。
4
+ * コーディングエージェントセッション関連のREST APIエンドポイント。
5
5
  */
6
6
  import type { PTYManager } from "../pty/manager.js";
7
7
  import type { WebFastifyInstance } from "../types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../../src/web/server/routes/sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAkNf"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../../src/web/server/routes/sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAqNf"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Session Routes
3
3
  *
4
- * AI Toolセッション関連のREST APIエンドポイント。
4
+ * コーディングエージェントセッション関連のREST APIエンドポイント。
5
5
  */
6
- import { AIToolResolutionError } from "../../../services/aiToolResolver.js";
6
+ import { CodingAgentResolutionError } from "../../../services/codingAgentResolver.js";
7
7
  import { saveSession } from "../../../config/index.js";
8
8
  import { execa } from "execa";
9
9
  import { createLogger } from "../../../logging/logger.js";
@@ -32,11 +32,11 @@ export async function registerSessionRoutes(fastify, ptyManager) {
32
32
  // POST /api/sessions - 新しいセッションを開始
33
33
  fastify.post("/api/sessions", async (request, reply) => {
34
34
  try {
35
- const { toolType, toolName, mode, worktreePath, skipPermissions, bypassApprovals, extraArgs, customToolId, } = request.body;
36
- logger.debug({ toolType, mode, worktreePath }, "Session start requested");
35
+ const { agentType, agentName, mode, worktreePath, skipPermissions, bypassApprovals, extraArgs, customAgentId, } = request.body;
36
+ logger.debug({ agentType, mode, worktreePath }, "Session start requested");
37
37
  const spawnOptions = {};
38
- if (typeof toolName !== "undefined") {
39
- spawnOptions.toolName = toolName;
38
+ if (typeof agentName !== "undefined") {
39
+ spawnOptions.toolName = agentName;
40
40
  }
41
41
  if (typeof skipPermissions !== "undefined") {
42
42
  spawnOptions.skipPermissions = skipPermissions;
@@ -47,18 +47,18 @@ export async function registerSessionRoutes(fastify, ptyManager) {
47
47
  if (Array.isArray(extraArgs) && extraArgs.length > 0) {
48
48
  spawnOptions.extraArgs = extraArgs;
49
49
  }
50
- if (typeof customToolId !== "undefined") {
51
- spawnOptions.customToolId = customToolId;
50
+ if (typeof customAgentId !== "undefined") {
51
+ spawnOptions.customToolId = customAgentId;
52
52
  }
53
- if (toolType === "custom" && !toolName && !customToolId) {
53
+ if (agentType === "custom" && !agentName && !customAgentId) {
54
54
  reply.code(400);
55
55
  return {
56
56
  success: false,
57
- error: "Custom tool requires toolName or customToolId",
57
+ error: "Custom coding agent requires agentName or customAgentId",
58
58
  details: null,
59
59
  };
60
60
  }
61
- const { session } = await ptyManager.spawn(toolType, worktreePath, mode, spawnOptions);
61
+ const { session } = await ptyManager.spawn(agentType, worktreePath, mode, spawnOptions);
62
62
  // 履歴を永続化(best-effort)
63
63
  try {
64
64
  const { stdout: repoRoot } = await execa("git", ["rev-parse", "--show-toplevel"], {
@@ -75,10 +75,10 @@ export async function registerSessionRoutes(fastify, ptyManager) {
75
75
  await saveSession({
76
76
  lastWorktreePath: worktreePath,
77
77
  lastBranch: branchName,
78
- lastUsedTool: toolType === "custom" ? (toolName ?? "custom") : toolType,
79
- toolLabel: toolType === "custom"
80
- ? (toolName ?? "Custom")
81
- : toolLabelFromType(toolType),
78
+ lastUsedTool: agentType === "custom" ? (agentName ?? "custom") : agentType,
79
+ toolLabel: agentType === "custom"
80
+ ? (agentName ?? "Custom")
81
+ : agentLabelFromType(agentType),
82
82
  mode,
83
83
  timestamp: Date.now(),
84
84
  repositoryRoot: repoRoot.trim(),
@@ -87,12 +87,12 @@ export async function registerSessionRoutes(fastify, ptyManager) {
87
87
  catch {
88
88
  // ignore persistence errors
89
89
  }
90
- logger.info({ sessionId: session.sessionId, toolType }, "Session created");
90
+ logger.info({ sessionId: session.sessionId, agentType }, "Session created");
91
91
  reply.code(201);
92
92
  return { success: true, data: session };
93
93
  }
94
94
  catch (error) {
95
- if (error instanceof AIToolResolutionError) {
95
+ if (error instanceof CodingAgentResolutionError) {
96
96
  reply.code(400);
97
97
  return {
98
98
  success: false,
@@ -162,10 +162,10 @@ export async function registerSessionRoutes(fastify, ptyManager) {
162
162
  }
163
163
  });
164
164
  }
165
- function toolLabelFromType(toolType) {
166
- if (toolType === "claude-code")
165
+ function agentLabelFromType(agentType) {
166
+ if (agentType === "claude-code")
167
167
  return "Claude";
168
- if (toolType === "codex-cli")
168
+ if (agentType === "codex-cli")
169
169
  return "Codex";
170
170
  return "Custom";
171
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../../src/web/server/routes/sessions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA2B,EAC3B,UAAsB;IAEtB,qCAAqC;IACrC,OAAO,CAAC,GAAG,CACT,eAAe,EACf,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B;gBACjC,OAAO,EAAE,QAAQ;aAClB,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mCAAmC;IACnC,OAAO,CAAC,IAAI,CAGT,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAY,GACb,GAAG,OAAO,CAAC,IAAI,CAAC;YAEjB,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,yBAAyB,CAAC,CAAC;YAE1E,MAAM,YAAY,GAMd,EAAE,CAAC;YAEP,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACpC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACnC,CAAC;YACD,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;gBAC3C,YAAY,CAAC,eAAe,GAAG,eAAe,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;gBAC3C,YAAY,CAAC,eAAe,GAAG,eAAe,CAAC;YACjD,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrD,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;gBACxC,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;YAC3C,CAAC;YAED,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,+CAA+C;oBACtD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CACxC,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,YAAY,CACb,CAAC;YAEF,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CACtC,KAAK,EACL,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAChC;oBACE,GAAG,EAAE,YAAY;iBAClB,CACF,CAAC;gBACF,IAAI,UAAU,GAAkB,IAAI,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAC1C,KAAK,EACL,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EACrC,EAAE,GAAG,EAAE,YAAY,EAAE,CACtB,CAAC;oBACF,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAED,MAAM,WAAW,CAAC;oBAChB,gBAAgB,EAAE,YAAY;oBAC9B,UAAU,EAAE,UAAU;oBACtB,YAAY,EACV,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ;oBAC3D,SAAS,EACP,QAAQ,KAAK,QAAQ;wBACnB,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;wBACxB,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;oBACjC,IAAI;oBACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YAED,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,EAC1C,iBAAiB,CAClB,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;iBACzC,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,QAAQ;aAClB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,OAAO,CAAC,GAAG,CAGR,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAErC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,WAAW,SAAS,iBAAiB;iBAC/C,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,QAAQ;aAClB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAKX,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAErC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,EAClC,uBAAuB,CACxB,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,WAAW,SAAS,iBAAiB;iBAC/C,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,yBAAyB,CAAC,CAAC;YACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B;gBACjC,OAAO,EAAE,QAAQ;aAClB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgD;IACzE,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAC7C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../../src/web/server/routes/sessions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "4.8.0",
4
- "description": "Interactive Git worktree manager for Claude Code with graphical branch selection",
3
+ "version": "4.9.1",
4
+ "description": "Interactive Git worktree manager with Coding Agent selection (Claude Code / Codex CLI / Gemini CLI)",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "gwt": "bin/gwt.js"
@@ -4,12 +4,12 @@
4
4
  import { describe, it, expect, beforeEach, vi } from "vitest";
5
5
  import { render, waitFor } from "@testing-library/react";
6
6
  import React from "react";
7
- import { AIToolSelectorScreen } from "../../../components/screens/AIToolSelectorScreen.js";
7
+ import { CodingAgentSelectorScreen } from "../../../components/screens/CodingAgentSelectorScreen.js";
8
8
  import { Window } from "happy-dom";
9
9
 
10
- // Mock getAllTools
10
+ // Mock getAllCodingAgents
11
11
  vi.mock("../../../config/tools.js", () => ({
12
- getAllTools: vi.fn().mockResolvedValue([
12
+ getAllCodingAgents: vi.fn().mockResolvedValue([
13
13
  {
14
14
  id: "claude-code",
15
15
  displayName: "Claude Code",
@@ -23,7 +23,7 @@ vi.mock("../../../config/tools.js", () => ({
23
23
  ]),
24
24
  }));
25
25
 
26
- describe("AIToolSelectorScreen", () => {
26
+ describe("CodingAgentSelectorScreen", () => {
27
27
  beforeEach(() => {
28
28
  // Setup happy-dom
29
29
  const window = new Window();
@@ -36,20 +36,20 @@ describe("AIToolSelectorScreen", () => {
36
36
  const onBack = vi.fn();
37
37
  const onSelect = vi.fn();
38
38
  const { getByText } = render(
39
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
39
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
40
40
  );
41
41
 
42
- expect(getByText(/AI Tool Selection/i)).toBeDefined();
42
+ expect(getByText(/Coding Agent Selection/i)).toBeDefined();
43
43
  });
44
44
 
45
- it("should render AI tool options", async () => {
45
+ it("should render Coding Agent options", async () => {
46
46
  const onBack = vi.fn();
47
47
  const onSelect = vi.fn();
48
48
  const { getByText } = render(
49
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
49
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
50
50
  );
51
51
 
52
- // Wait for tools to load
52
+ // Wait for agents to load
53
53
  await waitFor(() => {
54
54
  expect(getByText(/Claude Code/i)).toBeDefined();
55
55
  expect(getByText(/Codex/i)).toBeDefined();
@@ -60,7 +60,7 @@ describe("AIToolSelectorScreen", () => {
60
60
  const onBack = vi.fn();
61
61
  const onSelect = vi.fn();
62
62
  const { getAllByText } = render(
63
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
63
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
64
64
  );
65
65
 
66
66
  expect(getAllByText(/enter/i).length).toBeGreaterThan(0);
@@ -74,7 +74,7 @@ describe("AIToolSelectorScreen", () => {
74
74
  const onBack = vi.fn();
75
75
  const onSelect = vi.fn();
76
76
  const { container } = render(
77
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
77
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
78
78
  );
79
79
 
80
80
  expect(container).toBeDefined();
@@ -86,32 +86,32 @@ describe("AIToolSelectorScreen", () => {
86
86
  const onBack = vi.fn();
87
87
  const onSelect = vi.fn();
88
88
  const { container } = render(
89
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
89
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
90
90
  );
91
91
 
92
92
  // Test will verify onBack is called when ESC is pressed
93
93
  expect(container).toBeDefined();
94
94
  });
95
95
 
96
- it("should handle tool selection", () => {
96
+ it("should handle coding agent selection", () => {
97
97
  const onBack = vi.fn();
98
98
  const onSelect = vi.fn();
99
99
  const { container } = render(
100
- <AIToolSelectorScreen onBack={onBack} onSelect={onSelect} />,
100
+ <CodingAgentSelectorScreen onBack={onBack} onSelect={onSelect} />,
101
101
  );
102
102
 
103
- // Test will verify onSelect is called with correct tool
103
+ // Test will verify onSelect is called with correct agent
104
104
  expect(container).toBeDefined();
105
105
  });
106
106
 
107
- it("should preselect the last used tool when provided", async () => {
107
+ it("should preselect the last used coding agent when provided", async () => {
108
108
  const onBack = vi.fn();
109
109
  const onSelect = vi.fn();
110
110
  const { container } = render(
111
- <AIToolSelectorScreen
111
+ <CodingAgentSelectorScreen
112
112
  onBack={onBack}
113
113
  onSelect={onSelect}
114
- initialToolId="codex-cli"
114
+ initialAgentId="codex-cli"
115
115
  />,
116
116
  );
117
117
 
@@ -125,49 +125,49 @@ describe("AIToolSelectorScreen", () => {
125
125
  });
126
126
 
127
127
  /**
128
- * T210: カスタムツール表示のテスト
128
+ * T210: カスタムコーディングエージェント表示のテスト
129
129
  */
130
- describe("Custom tool display", () => {
131
- it("should load tools from getAllTools() dynamically", async () => {
130
+ describe("Custom coding agent display", () => {
131
+ it("should load coding agents from getAllCodingAgents() dynamically", async () => {
132
132
  // TODO: 実装後にテストを記述
133
- // getAllTools()がモックされ、呼び出されることを確認
134
- // モックの戻り値がツールアイテムとして表示されることを確認
133
+ // getAllCodingAgents()がモックされ、呼び出されることを確認
134
+ // モックの戻り値がエージェントアイテムとして表示されることを確認
135
135
  expect(true).toBe(true);
136
136
  });
137
137
 
138
- it("should display both builtin and custom tools", async () => {
138
+ it("should display both builtin and custom coding agents", async () => {
139
139
  // TODO: 実装後にテストを記述
140
- // getAllTools()がビルトインツール(claude-code, codex-cli)と
141
- // カスタムツール(例: aider)を返す場合、
142
- // すべてのツールが表示されることを確認
140
+ // getAllCodingAgents()がビルトインエージェント(claude-code, codex-cli)と
141
+ // カスタムエージェント(例: aider)を返す場合、
142
+ // すべてのエージェントが表示されることを確認
143
143
  expect(true).toBe(true);
144
144
  });
145
145
 
146
- it("should display custom tool with icon if defined", async () => {
146
+ it("should display custom coding agent with icon if defined", async () => {
147
147
  // TODO: 実装後にテストを記述
148
- // カスタムツールにiconフィールドがある場合、
148
+ // カスタムエージェントにiconフィールドがある場合、
149
149
  // それが表示されることを確認
150
150
  expect(true).toBe(true);
151
151
  });
152
152
 
153
- it("should display custom tool without icon if not defined", async () => {
153
+ it("should display custom coding agent without icon if not defined", async () => {
154
154
  // TODO: 実装後にテストを記述
155
- // カスタムツールにiconフィールドがない場合、
156
- // ツール名のみが表示されることを確認
155
+ // カスタムエージェントにiconフィールドがない場合、
156
+ // エージェント名のみが表示されることを確認
157
157
  expect(true).toBe(true);
158
158
  });
159
159
 
160
- it("should handle custom tool selection", async () => {
160
+ it("should handle custom coding agent selection", async () => {
161
161
  // TODO: 実装後にテストを記述
162
- // カスタムツールを選択した場合、
163
- // onSelect()がカスタムツールのIDで呼び出されることを確認
162
+ // カスタムエージェントを選択した場合、
163
+ // onSelect()がカスタムエージェントのIDで呼び出されることを確認
164
164
  expect(true).toBe(true);
165
165
  });
166
166
 
167
- it("should display only builtin tools if no custom tools exist", async () => {
167
+ it("should display only builtin coding agents if no custom agents exist", async () => {
168
168
  // TODO: 実装後にテストを記述
169
- // getAllTools()がビルトインツールのみを返す場合、
170
- // ビルトインツールのみが表示されることを確認
169
+ // getAllCodingAgents()がビルトインエージェントのみを返す場合、
170
+ // ビルトインエージェントのみが表示されることを確認
171
171
  expect(true).toBe(true);
172
172
  });
173
173
  });
@@ -16,7 +16,7 @@ import { LogDetailScreen } from "./screens/LogDetailScreen.js";
16
16
  import { LogDatePickerScreen } from "./screens/LogDatePickerScreen.js";
17
17
  import { BranchCreatorScreen } from "./screens/BranchCreatorScreen.js";
18
18
  import { BranchActionSelectorScreen } from "../screens/BranchActionSelectorScreen.js";
19
- import { AIToolSelectorScreen } from "./screens/AIToolSelectorScreen.js";
19
+ import { CodingAgentSelectorScreen } from "./screens/CodingAgentSelectorScreen.js";
20
20
  import { ExecutionModeSelectorScreen } from "./screens/ExecutionModeSelectorScreen.js";
21
21
  import type { ExecutionMode } from "./screens/ExecutionModeSelectorScreen.js";
22
22
  import { BranchQuickStartScreen } from "./screens/BranchQuickStartScreen.js";
@@ -46,7 +46,7 @@ import {
46
46
  type LogFileInfo,
47
47
  } from "../../../logging/reader.js";
48
48
  import type {
49
- AITool,
49
+ CodingAgentId,
50
50
  BranchInfo,
51
51
  BranchItem,
52
52
  CleanupTarget,
@@ -93,7 +93,7 @@ export interface SelectionResult {
93
93
  displayName: string; // Name that was selected in the UI (may include remote prefix)
94
94
  branchType: "local" | "remote";
95
95
  remoteBranch?: string; // Full remote ref when branchType === 'remote'
96
- tool: AITool;
96
+ tool: CodingAgentId;
97
97
  mode: ExecutionMode;
98
98
  skipPermissions: boolean;
99
99
  model?: string | null;
@@ -136,7 +136,7 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
136
136
  );
137
137
  const [branchQuickStart, setBranchQuickStart] = useState<
138
138
  {
139
- toolId: AITool;
139
+ toolId: CodingAgentId;
140
140
  toolLabel: string;
141
141
  model?: string | null;
142
142
  sessionId?: string | null;
@@ -172,13 +172,15 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
172
172
  useState<SelectedBranchState | null>(null);
173
173
  const [creationSourceBranch, setCreationSourceBranch] =
174
174
  useState<SelectedBranchState | null>(null);
175
- const [selectedTool, setSelectedTool] = useState<AITool | null>(null);
175
+ const [selectedTool, setSelectedTool] = useState<CodingAgentId | null>(null);
176
176
  const [selectedModel, setSelectedModel] =
177
177
  useState<ModelSelectionResult | null>(null);
178
178
  const [lastModelByTool, setLastModelByTool] = useState<
179
- Record<AITool, ModelSelectionResult | undefined>
179
+ Record<CodingAgentId, ModelSelectionResult | undefined>
180
180
  >({});
181
- const [preferredToolId, setPreferredToolId] = useState<AITool | null>(null);
181
+ const [preferredToolId, setPreferredToolId] = useState<CodingAgentId | null>(
182
+ null,
183
+ );
182
184
 
183
185
  // PR cleanup feedback
184
186
  const [cleanupIndicators, setCleanupIndicators] = useState<
@@ -413,12 +415,12 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
413
415
  }
414
416
 
415
417
  const normalizedModel = normalizeModelId(
416
- entry.toolId as AITool,
418
+ entry.toolId as CodingAgentId,
417
419
  entry.model ?? null,
418
420
  );
419
421
 
420
422
  return {
421
- toolId: entry.toolId as AITool,
423
+ toolId: entry.toolId as CodingAgentId,
422
424
  toolLabel: entry.toolLabel,
423
425
  model: normalizedModel ?? null,
424
426
  inferenceLevel: (entry.reasoningLevel ??
@@ -772,7 +774,7 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
772
774
  const nextScreen =
773
775
  branchQuickStart.length || branchQuickStartLoading
774
776
  ? "branch-quick-start"
775
- : "ai-tool-selector";
777
+ : "coding-agent-selector";
776
778
  navigateTo(nextScreen);
777
779
  } catch (error) {
778
780
  const message = error instanceof Error ? error.message : String(error);
@@ -799,7 +801,7 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
799
801
  if (branchQuickStart.length) {
800
802
  navigateTo("branch-quick-start");
801
803
  } else {
802
- navigateTo("ai-tool-selector");
804
+ navigateTo("coding-agent-selector");
803
805
  }
804
806
  }, [
805
807
  handleProtectedBranchSwitch,
@@ -893,7 +895,7 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
893
895
  setPreferredToolId(null);
894
896
  setCleanupFooterMessage(null);
895
897
 
896
- navigateTo("ai-tool-selector");
898
+ navigateTo("coding-agent-selector");
897
899
  } catch (error) {
898
900
  // On error, go back to branch list
899
901
  console.error("Failed to create branch:", error);
@@ -1144,7 +1146,7 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1144
1146
 
1145
1147
  // Handle AI tool selection
1146
1148
  const handleToolSelect = useCallback(
1147
- (tool: AITool) => {
1149
+ (tool: CodingAgentId) => {
1148
1150
  setSelectedTool(tool);
1149
1151
  setSelectedModel(lastModelByTool[tool] ?? null);
1150
1152
  navigateTo("model-selector");
@@ -1211,9 +1213,9 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1211
1213
  );
1212
1214
 
1213
1215
  const handleQuickStartSelect = useCallback(
1214
- (action: QuickStartAction, toolId?: AITool | null) => {
1216
+ (action: QuickStartAction, toolId?: CodingAgentId | null) => {
1215
1217
  if (action === "manual" || !branchQuickStart.length) {
1216
- navigateTo("ai-tool-selector");
1218
+ navigateTo("coding-agent-selector");
1217
1219
  return;
1218
1220
  }
1219
1221
 
@@ -1221,14 +1223,14 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1221
1223
  branchQuickStart.find((opt) => opt.toolId === toolId) ??
1222
1224
  branchQuickStart[0];
1223
1225
  if (!selected) {
1224
- navigateTo("ai-tool-selector");
1226
+ navigateTo("coding-agent-selector");
1225
1227
  return;
1226
1228
  }
1227
1229
 
1228
1230
  setSelectedTool(selected.toolId);
1229
1231
  setPreferredToolId(selected.toolId);
1230
1232
  const normalizedQuickStartModel = normalizeModelId(
1231
- selected.toolId as AITool,
1233
+ selected.toolId as CodingAgentId,
1232
1234
  selected.model ?? null,
1233
1235
  );
1234
1236
  setSelectedModel(
@@ -1399,13 +1401,13 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1399
1401
  />
1400
1402
  );
1401
1403
 
1402
- case "ai-tool-selector":
1404
+ case "coding-agent-selector":
1403
1405
  return (
1404
- <AIToolSelectorScreen
1406
+ <CodingAgentSelectorScreen
1405
1407
  onBack={goBack}
1406
1408
  onSelect={handleToolSelect}
1407
1409
  version={version}
1408
- initialToolId={selectedTool ?? preferredToolId ?? null}
1410
+ initialAgentId={selectedTool ?? preferredToolId ?? null}
1409
1411
  />
1410
1412
  );
1411
1413