@akiojin/gwt 4.9.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 (153) hide show
  1. package/README.ja.md +58 -34
  2. package/README.md +18 -34
  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/CodingAgentSelectorScreen.d.ts +27 -0
  8. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.d.ts.map +1 -0
  9. package/dist/cli/ui/components/screens/{AIToolSelectorScreen.js → CodingAgentSelectorScreen.js} +35 -35
  10. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.js.map +1 -0
  11. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts +2 -2
  12. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts.map +1 -1
  13. package/dist/cli/ui/components/screens/ModelSelectorScreen.js.map +1 -1
  14. package/dist/cli/ui/types.d.ts +2 -2
  15. package/dist/cli/ui/types.d.ts.map +1 -1
  16. package/dist/cli/ui/utils/modelOptions.d.ts +4 -4
  17. package/dist/cli/ui/utils/modelOptions.d.ts.map +1 -1
  18. package/dist/cli/ui/utils/modelOptions.js.map +1 -1
  19. package/dist/client/assets/{index-PqK9jkug.js → index-LNPtOrn3.js} +17 -17
  20. package/dist/client/index.html +1 -1
  21. package/dist/config/builtin-coding-agents.d.ts +23 -0
  22. package/dist/config/builtin-coding-agents.d.ts.map +1 -0
  23. package/dist/config/{builtin-tools.js → builtin-coding-agents.js} +6 -6
  24. package/dist/config/builtin-coding-agents.js.map +1 -0
  25. package/dist/config/tools.d.ts +16 -16
  26. package/dist/config/tools.d.ts.map +1 -1
  27. package/dist/config/tools.js +81 -78
  28. package/dist/config/tools.js.map +1 -1
  29. package/dist/index.js +19 -19
  30. package/dist/index.js.map +1 -1
  31. package/dist/launcher.d.ts +8 -8
  32. package/dist/launcher.d.ts.map +1 -1
  33. package/dist/launcher.js +32 -28
  34. package/dist/launcher.js.map +1 -1
  35. package/dist/services/codingAgentCommandResolver.d.ts +10 -0
  36. package/dist/services/codingAgentCommandResolver.d.ts.map +1 -0
  37. package/dist/services/{customToolResolver.js → codingAgentCommandResolver.js} +25 -20
  38. package/dist/services/codingAgentCommandResolver.js.map +1 -0
  39. package/dist/services/{aiToolResolver.d.ts → codingAgentResolver.d.ts} +6 -6
  40. package/dist/services/codingAgentResolver.d.ts.map +1 -0
  41. package/dist/services/{aiToolResolver.js → codingAgentResolver.js} +23 -23
  42. package/dist/services/codingAgentResolver.js.map +1 -0
  43. package/dist/shared/{aiToolConstants.d.ts → codingAgentConstants.d.ts} +2 -2
  44. package/dist/shared/codingAgentConstants.d.ts.map +1 -0
  45. package/dist/shared/{aiToolConstants.js → codingAgentConstants.js} +2 -2
  46. package/dist/shared/codingAgentConstants.js.map +1 -0
  47. package/dist/types/api.d.ts +12 -12
  48. package/dist/types/api.d.ts.map +1 -1
  49. package/dist/types/tools.d.ts +30 -30
  50. package/dist/types/tools.d.ts.map +1 -1
  51. package/dist/types/tools.js +1 -1
  52. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts +9 -0
  53. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts.map +1 -0
  54. package/dist/web/client/src/components/{AIToolLaunchModal.js → CodingAgentLaunchModal.js} +58 -58
  55. package/dist/web/client/src/components/CodingAgentLaunchModal.js.map +1 -0
  56. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts +23 -0
  57. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts.map +1 -0
  58. package/dist/web/client/src/components/{CustomToolForm.js → CustomCodingAgentForm.js} +5 -5
  59. package/dist/web/client/src/components/CustomCodingAgentForm.js.map +1 -0
  60. package/dist/web/client/src/components/CustomCodingAgentList.d.ts +10 -0
  61. package/dist/web/client/src/components/CustomCodingAgentList.d.ts.map +1 -0
  62. package/dist/web/client/src/components/{CustomToolList.js → CustomCodingAgentList.js} +17 -17
  63. package/dist/web/client/src/components/CustomCodingAgentList.js.map +1 -0
  64. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +2 -2
  65. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +1 -1
  66. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +6 -6
  67. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +1 -1
  68. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +2 -2
  69. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +1 -1
  70. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +5 -5
  71. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +1 -1
  72. package/dist/web/client/src/hooks/useSessions.d.ts +4 -4
  73. package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -1
  74. package/dist/web/client/src/hooks/useSessions.js.map +1 -1
  75. package/dist/web/client/src/lib/api.d.ts +5 -5
  76. package/dist/web/client/src/lib/api.d.ts.map +1 -1
  77. package/dist/web/client/src/lib/api.js +1 -1
  78. package/dist/web/client/src/lib/api.js.map +1 -1
  79. package/dist/web/client/src/pages/BranchDetailPage.js +24 -24
  80. package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -1
  81. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -1
  82. package/dist/web/client/src/pages/ConfigManagementPage.js +15 -15
  83. package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -1
  84. package/dist/web/client/src/pages/ConfigPage.d.ts.map +1 -1
  85. package/dist/web/client/src/pages/ConfigPage.js +43 -39
  86. package/dist/web/client/src/pages/ConfigPage.js.map +1 -1
  87. package/dist/web/server/env/importer.d.ts.map +1 -1
  88. package/dist/web/server/env/importer.js +3 -3
  89. package/dist/web/server/env/importer.js.map +1 -1
  90. package/dist/web/server/pty/manager.d.ts +6 -6
  91. package/dist/web/server/pty/manager.d.ts.map +1 -1
  92. package/dist/web/server/pty/manager.js +11 -11
  93. package/dist/web/server/pty/manager.js.map +1 -1
  94. package/dist/web/server/routes/config.d.ts.map +1 -1
  95. package/dist/web/server/routes/config.js +34 -34
  96. package/dist/web/server/routes/config.js.map +1 -1
  97. package/dist/web/server/routes/sessions.d.ts +1 -1
  98. package/dist/web/server/routes/sessions.d.ts.map +1 -1
  99. package/dist/web/server/routes/sessions.js +20 -20
  100. package/dist/web/server/routes/sessions.js.map +1 -1
  101. package/package.json +2 -2
  102. package/src/cli/ui/__tests__/components/screens/{AIToolSelectorScreen.test.tsx → CodingAgentSelectorScreen.test.tsx} +38 -38
  103. package/src/cli/ui/components/App.tsx +22 -20
  104. package/src/cli/ui/components/screens/CodingAgentSelectorScreen.tsx +159 -0
  105. package/src/cli/ui/components/screens/ModelSelectorScreen.tsx +6 -2
  106. package/src/cli/ui/types.ts +2 -2
  107. package/src/cli/ui/utils/modelOptions.ts +6 -4
  108. package/src/config/{builtin-tools.ts → builtin-coding-agents.ts} +9 -9
  109. package/src/config/tools.ts +104 -92
  110. package/src/index.ts +19 -19
  111. package/src/launcher.ts +38 -31
  112. package/src/services/{customToolResolver.ts → codingAgentCommandResolver.ts} +33 -28
  113. package/src/services/{aiToolResolver.ts → codingAgentResolver.ts} +28 -28
  114. package/src/shared/{aiToolConstants.ts → codingAgentConstants.ts} +1 -1
  115. package/src/types/api.ts +12 -12
  116. package/src/types/tools.ts +30 -30
  117. package/src/web/client/src/components/{AIToolLaunchModal.tsx → CodingAgentLaunchModal.tsx} +74 -70
  118. package/src/web/client/src/components/{CustomToolForm.tsx → CustomCodingAgentForm.tsx} +14 -14
  119. package/src/web/client/src/components/{CustomToolList.tsx → CustomCodingAgentList.tsx} +26 -26
  120. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +7 -7
  121. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +9 -9
  122. package/src/web/client/src/hooks/useSessions.ts +5 -5
  123. package/src/web/client/src/lib/api.ts +8 -8
  124. package/src/web/client/src/pages/BranchDetailPage.tsx +26 -26
  125. package/src/web/client/src/pages/ConfigManagementPage.tsx +32 -24
  126. package/src/web/client/src/pages/ConfigPage.tsx +55 -49
  127. package/src/web/server/env/importer.ts +6 -3
  128. package/src/web/server/pty/manager.ts +20 -20
  129. package/src/web/server/routes/config.ts +45 -39
  130. package/src/web/server/routes/sessions.ts +29 -26
  131. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts +0 -27
  132. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts.map +0 -1
  133. package/dist/cli/ui/components/screens/AIToolSelectorScreen.js.map +0 -1
  134. package/dist/config/builtin-tools.d.ts +0 -23
  135. package/dist/config/builtin-tools.d.ts.map +0 -1
  136. package/dist/config/builtin-tools.js.map +0 -1
  137. package/dist/services/aiToolResolver.d.ts.map +0 -1
  138. package/dist/services/aiToolResolver.js.map +0 -1
  139. package/dist/services/customToolResolver.d.ts +0 -10
  140. package/dist/services/customToolResolver.d.ts.map +0 -1
  141. package/dist/services/customToolResolver.js.map +0 -1
  142. package/dist/shared/aiToolConstants.d.ts.map +0 -1
  143. package/dist/shared/aiToolConstants.js.map +0 -1
  144. package/dist/web/client/src/components/AIToolLaunchModal.d.ts +0 -9
  145. package/dist/web/client/src/components/AIToolLaunchModal.d.ts.map +0 -1
  146. package/dist/web/client/src/components/AIToolLaunchModal.js.map +0 -1
  147. package/dist/web/client/src/components/CustomToolForm.d.ts +0 -23
  148. package/dist/web/client/src/components/CustomToolForm.d.ts.map +0 -1
  149. package/dist/web/client/src/components/CustomToolForm.js.map +0 -1
  150. package/dist/web/client/src/components/CustomToolList.d.ts +0 -10
  151. package/dist/web/client/src/components/CustomToolList.d.ts.map +0 -1
  152. package/dist/web/client/src/components/CustomToolList.js.map +0 -1
  153. package/src/cli/ui/components/screens/AIToolSelectorScreen.tsx +0 -153
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>gwt - Web UI</title>
7
- <script type="module" crossorigin src="/assets/index-PqK9jkug.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-LNPtOrn3.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-ChHC-Puh.css">
9
9
  </head>
10
10
  <body>
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ビルトインコーディングエージェント定義
3
+ *
4
+ * Claude Code、Codex、Gemini の CodingAgent 形式定義
5
+ */
6
+ import type { CodingAgent } from "../types/tools.js";
7
+ /**
8
+ * Claude Code のビルトイン定義
9
+ */
10
+ export declare const CLAUDE_CODE_TOOL: CodingAgent;
11
+ /**
12
+ * Codex のビルトイン定義
13
+ */
14
+ export declare const CODEX_CLI_TOOL: CodingAgent;
15
+ /**
16
+ * Gemini のビルトイン定義
17
+ */
18
+ export declare const GEMINI_CLI_TOOL: CodingAgent;
19
+ /**
20
+ * すべてのビルトインコーディングエージェント
21
+ */
22
+ export declare const BUILTIN_CODING_AGENTS: CodingAgent[];
23
+ //# sourceMappingURL=builtin-coding-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-coding-agents.d.ts","sourceRoot":"","sources":["../../src/config/builtin-coding-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAc9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,WAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAI9C,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * ビルトインAIツール定義
2
+ * ビルトインコーディングエージェント定義
3
3
  *
4
- * Claude Code、Codex、Gemini の CustomAITool 形式定義
4
+ * Claude Code、Codex、Gemini の CodingAgent 形式定義
5
5
  */
6
- import { CLAUDE_PERMISSION_SKIP_ARGS, CODEX_DEFAULT_ARGS, } from "../shared/aiToolConstants.js";
6
+ import { CLAUDE_PERMISSION_SKIP_ARGS, CODEX_DEFAULT_ARGS, } from "../shared/codingAgentConstants.js";
7
7
  /**
8
8
  * Claude Code のビルトイン定義
9
9
  */
@@ -53,11 +53,11 @@ export const GEMINI_CLI_TOOL = {
53
53
  permissionSkipArgs: ["-y"],
54
54
  };
55
55
  /**
56
- * すべてのビルトインツール
56
+ * すべてのビルトインコーディングエージェント
57
57
  */
58
- export const BUILTIN_TOOLS = [
58
+ export const BUILTIN_CODING_AGENTS = [
59
59
  CLAUDE_CODE_TOOL,
60
60
  CODEX_CLI_TOOL,
61
61
  GEMINI_CLI_TOOL,
62
62
  ];
63
- //# sourceMappingURL=builtin-tools.js.map
63
+ //# sourceMappingURL=builtin-coding-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-coding-agents.js","sourceRoot":"","sources":["../../src/config/builtin-coding-agents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,kCAAkC;IAC3C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,CAAC,IAAI,CAAC;KACf;IACD,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;IAC3D,GAAG,EAAE;QACH,eAAe,EAAE,MAAM;KACxB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;KACzB;IACD,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD,gBAAgB;IAChB,cAAc;IACd,eAAe;CAChB,CAAC"}
@@ -1,32 +1,32 @@
1
1
  /**
2
- * カスタムツール設定管理
2
+ * コーディングエージェント設定管理
3
3
  *
4
4
  * ~/.gwt/tools.jsonから設定を読み込み、
5
- * ビルトインツールと統合して管理します。
5
+ * ビルトインエージェントと統合して管理します。
6
6
  */
7
- import type { ToolsConfig, CustomAITool, AIToolConfig } from "../types/tools.js";
7
+ import type { CodingAgentsConfig, CodingAgent, CodingAgentConfig } from "../types/tools.js";
8
8
  /**
9
- * ツール設定ファイルのパス
9
+ * コーディングエージェント設定ファイルのパス
10
10
  * 環境変数 GWT_HOME が設定されている場合はそれを使用、それ以外はホームディレクトリ
11
11
  */
12
12
  export declare const WORKTREE_HOME: string;
13
13
  export declare const CONFIG_DIR: string;
14
14
  export declare const TOOLS_CONFIG_PATH: string;
15
15
  /**
16
- * ツール設定を読み込む
16
+ * コーディングエージェント設定を読み込む
17
17
  *
18
18
  * ~/.gwt/tools.jsonから設定を読み込みます。
19
19
  * ファイルが存在しない場合は空配列を返します。
20
20
  *
21
- * @returns ToolsConfig
21
+ * @returns CodingAgentsConfig
22
22
  * @throws JSON構文エラー時
23
23
  */
24
- export declare function loadToolsConfig(): Promise<ToolsConfig>;
25
- export declare function saveToolsConfig(config: ToolsConfig): Promise<void>;
24
+ export declare function loadCodingAgentsConfig(): Promise<CodingAgentsConfig>;
25
+ export declare function saveCodingAgentsConfig(config: CodingAgentsConfig): Promise<void>;
26
26
  /**
27
27
  * 共有環境変数を取得
28
28
  *
29
- * AIツール起動時に適用される環境変数を返します。
29
+ * コーディングエージェント起動時に適用される環境変数を返します。
30
30
  * マージ優先順位(後勝ち):
31
31
  * 1. tools.json の env フィールド
32
32
  * 2. profiles.yaml のアクティブプロファイル
@@ -35,16 +35,16 @@ export declare function saveToolsConfig(config: ToolsConfig): Promise<void>;
35
35
  */
36
36
  export declare function getSharedEnvironment(): Promise<Record<string, string>>;
37
37
  /**
38
- * IDでツールを検索
38
+ * IDでコーディングエージェントを検索
39
39
  *
40
- * @param id - ツールID
41
- * @returns ツール設定(見つからない場合はundefined)
40
+ * @param id - エージェントID
41
+ * @returns エージェント設定(見つからない場合はundefined)
42
42
  */
43
- export declare function getToolById(id: string): Promise<CustomAITool | undefined>;
43
+ export declare function getCodingAgentById(id: string): Promise<CodingAgent | undefined>;
44
44
  /**
45
- * すべてのツール(ビルトイン+カスタム)を取得
45
+ * すべてのコーディングエージェント(ビルトイン+カスタム)を取得
46
46
  *
47
- * @returns AIToolConfigの配列
47
+ * @returns CodingAgentConfigの配列
48
48
  */
49
- export declare function getAllTools(): Promise<AIToolConfig[]>;
49
+ export declare function getAllCodingAgents(): Promise<CodingAgentConfig[]>;
50
50
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAO3B;;;GAGG;AACH,eAAO,MAAM,aAAa,QAGX,CAAC;AAEhB,eAAO,MAAM,UAAU,QAAmC,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAsC,CAAC;AASrE;;;;;;;;GAQG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA0C5D;AA2DD,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU5E;AAsDD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAanC;AAED;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAsB3D"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAO3B;;;GAGG;AACH,eAAO,MAAM,aAAa,QAGX,CAAC;AAEhB,eAAO,MAAM,UAAU,QAAmC,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAsC,CAAC;AASrE;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA6C1E;AA2DD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU5E;AAsDD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAgBlC;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0BvE"}
@@ -1,18 +1,18 @@
1
1
  /**
2
- * カスタムツール設定管理
2
+ * コーディングエージェント設定管理
3
3
  *
4
4
  * ~/.gwt/tools.jsonから設定を読み込み、
5
- * ビルトインツールと統合して管理します。
5
+ * ビルトインエージェントと統合して管理します。
6
6
  */
7
7
  import { homedir } from "node:os";
8
8
  import path from "node:path";
9
9
  import { readFile, writeFile, mkdir, rename } from "node:fs/promises";
10
- import { BUILTIN_TOOLS } from "./builtin-tools.js";
10
+ import { BUILTIN_CODING_AGENTS } from "./builtin-coding-agents.js";
11
11
  import { createLogger } from "../logging/logger.js";
12
12
  import { resolveProfileEnv } from "./profiles.js";
13
13
  const logger = createLogger({ category: "config" });
14
14
  /**
15
- * ツール設定ファイルのパス
15
+ * コーディングエージェント設定ファイルのパス
16
16
  * 環境変数 GWT_HOME が設定されている場合はそれを使用、それ以外はホームディレクトリ
17
17
  */
18
18
  export const WORKTREE_HOME = process.env.GWT_HOME && process.env.GWT_HOME.trim().length > 0
@@ -24,24 +24,27 @@ const TEMP_CONFIG_PATH = `${TOOLS_CONFIG_PATH}.tmp`;
24
24
  const DEFAULT_CONFIG = {
25
25
  version: "1.0.0",
26
26
  env: {},
27
- customTools: [],
27
+ customCodingAgents: [],
28
28
  };
29
29
  /**
30
- * ツール設定を読み込む
30
+ * コーディングエージェント設定を読み込む
31
31
  *
32
32
  * ~/.gwt/tools.jsonから設定を読み込みます。
33
33
  * ファイルが存在しない場合は空配列を返します。
34
34
  *
35
- * @returns ToolsConfig
35
+ * @returns CodingAgentsConfig
36
36
  * @throws JSON構文エラー時
37
37
  */
38
- export async function loadToolsConfig() {
38
+ export async function loadCodingAgentsConfig() {
39
39
  try {
40
40
  const content = await readFile(TOOLS_CONFIG_PATH, "utf-8");
41
41
  const config = JSON.parse(content);
42
42
  // 検証
43
- validateToolsConfig(config);
44
- logger.debug({ path: TOOLS_CONFIG_PATH, toolCount: config.customTools.length }, "Tools config loaded");
43
+ validateCodingAgentsConfig(config);
44
+ logger.debug({
45
+ path: TOOLS_CONFIG_PATH,
46
+ agentCount: config.customCodingAgents.length,
47
+ }, "Coding agents config loaded");
45
48
  return {
46
49
  ...config,
47
50
  env: config.env ?? {},
@@ -50,12 +53,12 @@ export async function loadToolsConfig() {
50
53
  catch (error) {
51
54
  // ファイルが存在しない場合は空配列を返す
52
55
  if (error instanceof Error && "code" in error && error.code === "ENOENT") {
53
- logger.debug({ path: TOOLS_CONFIG_PATH }, "Tools config not found, using defaults");
56
+ logger.debug({ path: TOOLS_CONFIG_PATH }, "Coding agents config not found, using defaults");
54
57
  return { ...DEFAULT_CONFIG };
55
58
  }
56
59
  // JSON構文エラーの場合
57
60
  if (error instanceof SyntaxError) {
58
- logger.error({ path: TOOLS_CONFIG_PATH, error: error.message }, "Tools config parse error");
61
+ logger.error({ path: TOOLS_CONFIG_PATH, error: error.message }, "Coding agents config parse error");
59
62
  throw new Error(`Failed to parse tools.json: ${error.message}\n` +
60
63
  `Please check the JSON syntax in ${TOOLS_CONFIG_PATH}`);
61
64
  }
@@ -64,19 +67,19 @@ export async function loadToolsConfig() {
64
67
  }
65
68
  }
66
69
  /**
67
- * ToolsConfig全体を検証
70
+ * CodingAgentsConfig全体を検証
68
71
  *
69
72
  * @param config - 検証対象の設定
70
73
  * @throws 検証エラー時
71
74
  */
72
- function validateToolsConfig(config) {
75
+ function validateCodingAgentsConfig(config) {
73
76
  // versionフィールドの検証
74
77
  if (!config.version || typeof config.version !== "string") {
75
78
  throw new Error("version field is required and must be a string");
76
79
  }
77
- // customToolsフィールドの検証
78
- if (!Array.isArray(config.customTools)) {
79
- throw new Error("customTools field must be an array");
80
+ // customCodingAgentsフィールドの検証
81
+ if (!Array.isArray(config.customCodingAgents)) {
82
+ throw new Error("customCodingAgents field must be an array");
80
83
  }
81
84
  if (config.env && typeof config.env !== "object") {
82
85
  throw new Error("env field must be an object map of key/value pairs");
@@ -91,32 +94,32 @@ function validateToolsConfig(config) {
91
94
  }
92
95
  }
93
96
  }
94
- // 各ツールの検証
97
+ // 各エージェントの検証
95
98
  const seenIds = new Set();
96
- for (const tool of config.customTools) {
97
- validateCustomAITool(tool);
99
+ for (const agent of config.customCodingAgents) {
100
+ validateCodingAgent(agent);
98
101
  // ID重複チェック
99
- if (seenIds.has(tool.id)) {
100
- throw new Error(`Duplicate tool ID found: "${tool.id}"\n` +
101
- `Each tool must have a unique ID in ${TOOLS_CONFIG_PATH}`);
102
+ if (seenIds.has(agent.id)) {
103
+ throw new Error(`Duplicate agent ID found: "${agent.id}"\n` +
104
+ `Each agent must have a unique ID in ${TOOLS_CONFIG_PATH}`);
102
105
  }
103
- seenIds.add(tool.id);
104
- // ビルトインツールとのID重複チェック
105
- const builtinIds = BUILTIN_TOOLS.map((t) => t.id);
106
- if (builtinIds.includes(tool.id)) {
107
- throw new Error(`Tool ID "${tool.id}" conflicts with builtin tool\n` +
108
- `Builtin tool IDs: ${builtinIds.join(", ")}`);
106
+ seenIds.add(agent.id);
107
+ // ビルトインエージェントとのID重複チェック
108
+ const builtinIds = BUILTIN_CODING_AGENTS.map((t) => t.id);
109
+ if (builtinIds.includes(agent.id)) {
110
+ throw new Error(`Agent ID "${agent.id}" conflicts with builtin agent\n` +
111
+ `Builtin agent IDs: ${builtinIds.join(", ")}`);
109
112
  }
110
113
  }
111
114
  }
112
- export async function saveToolsConfig(config) {
115
+ export async function saveCodingAgentsConfig(config) {
113
116
  const normalized = {
114
117
  version: config.version,
115
118
  updatedAt: config.updatedAt ?? new Date().toISOString(),
116
119
  env: config.env ?? {},
117
- customTools: config.customTools,
120
+ customCodingAgents: config.customCodingAgents,
118
121
  };
119
- validateToolsConfig(normalized);
122
+ validateCodingAgentsConfig(normalized);
120
123
  await mkdir(CONFIG_DIR, { recursive: true });
121
124
  const payload = JSON.stringify(normalized, null, 2);
122
125
  await writeFile(TEMP_CONFIG_PATH, payload, { mode: 0o600 });
@@ -125,7 +128,7 @@ export async function saveToolsConfig(config) {
125
128
  /**
126
129
  * 共有環境変数を取得
127
130
  *
128
- * AIツール起動時に適用される環境変数を返します。
131
+ * コーディングエージェント起動時に適用される環境変数を返します。
129
132
  * マージ優先順位(後勝ち):
130
133
  * 1. tools.json の env フィールド
131
134
  * 2. profiles.yaml のアクティブプロファイル
@@ -134,7 +137,7 @@ export async function saveToolsConfig(config) {
134
137
  */
135
138
  export async function getSharedEnvironment() {
136
139
  const [config, profileEnv] = await Promise.all([
137
- loadToolsConfig(),
140
+ loadCodingAgentsConfig(),
138
141
  resolveProfileEnv(),
139
142
  ]);
140
143
  return {
@@ -143,81 +146,81 @@ export async function getSharedEnvironment() {
143
146
  };
144
147
  }
145
148
  /**
146
- * CustomAITool単体を検証
149
+ * CodingAgent単体を検証
147
150
  *
148
- * @param tool - 検証対象のツール
151
+ * @param agent - 検証対象のエージェント
149
152
  * @throws 検証エラー時
150
153
  */
151
- function validateCustomAITool(tool) {
154
+ function validateCodingAgent(agent) {
152
155
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
- const t = tool;
156
+ const a = agent;
154
157
  // 必須フィールドの存在チェック
155
158
  const requiredFields = ["id", "displayName", "type", "command", "modeArgs"];
156
159
  for (const field of requiredFields) {
157
- if (!t[field]) {
158
- throw new Error(`Required field "${field}" is missing in tool configuration`);
160
+ if (!a[field]) {
161
+ throw new Error(`Required field "${field}" is missing in agent configuration`);
159
162
  }
160
163
  }
161
164
  // id形式の検証(小文字英数字とハイフンのみ)
162
- if (!/^[a-z0-9-]+$/.test(t.id)) {
163
- throw new Error(`Invalid tool ID format: "${t.id}"\n` +
164
- `Tool ID must contain only lowercase letters, numbers, and hyphens (pattern: ^[a-z0-9-]+$)`);
165
+ if (!/^[a-z0-9-]+$/.test(a.id)) {
166
+ throw new Error(`Invalid agent ID format: "${a.id}"\n` +
167
+ `Agent ID must contain only lowercase letters, numbers, and hyphens (pattern: ^[a-z0-9-]+$)`);
165
168
  }
166
169
  // typeフィールドの値検証
167
170
  const validTypes = ["path", "bunx", "command"];
168
- if (!validTypes.includes(t.type)) {
169
- throw new Error(`Invalid type: "${t.type}"\n` +
171
+ if (!validTypes.includes(a.type)) {
172
+ throw new Error(`Invalid type: "${a.type}"\n` +
170
173
  `Type must be one of: ${validTypes.join(", ")}`);
171
174
  }
172
175
  // type='path'の場合、commandが絶対パスであることを確認
173
- if (t.type === "path" && !path.isAbsolute(t.command)) {
174
- throw new Error(`For type="path", command must be an absolute path: "${t.command}"`);
176
+ if (a.type === "path" && !path.isAbsolute(a.command)) {
177
+ throw new Error(`For type="path", command must be an absolute path: "${a.command}"`);
175
178
  }
176
179
  // modeArgsの検証(少なくとも1つのモードが定義されている)
177
- if (!t.modeArgs.normal && !t.modeArgs.continue && !t.modeArgs.resume) {
178
- throw new Error(`modeArgs must define at least one mode (normal, continue, or resume) for tool "${t.id}"`);
180
+ if (!a.modeArgs.normal && !a.modeArgs.continue && !a.modeArgs.resume) {
181
+ throw new Error(`modeArgs must define at least one mode (normal, continue, or resume) for agent "${a.id}"`);
179
182
  }
180
183
  }
181
184
  /**
182
- * IDでツールを検索
185
+ * IDでコーディングエージェントを検索
183
186
  *
184
- * @param id - ツールID
185
- * @returns ツール設定(見つからない場合はundefined)
187
+ * @param id - エージェントID
188
+ * @returns エージェント設定(見つからない場合はundefined)
186
189
  */
187
- export async function getToolById(id) {
188
- // ビルトインツールから検索
189
- const builtinTool = BUILTIN_TOOLS.find((t) => t.id === id);
190
- if (builtinTool) {
191
- logger.debug({ id, found: true, isBuiltin: true }, "Tool lookup");
192
- return builtinTool;
190
+ export async function getCodingAgentById(id) {
191
+ // ビルトインエージェントから検索
192
+ const builtinAgent = BUILTIN_CODING_AGENTS.find((a) => a.id === id);
193
+ if (builtinAgent) {
194
+ logger.debug({ id, found: true, isBuiltin: true }, "Coding agent lookup");
195
+ return builtinAgent;
193
196
  }
194
- // カスタムツールから検索
195
- const config = await loadToolsConfig();
196
- const customTool = config.customTools.find((t) => t.id === id);
197
- logger.debug({ id, found: !!customTool, isBuiltin: false }, "Tool lookup");
198
- return customTool;
197
+ // カスタムエージェントから検索
198
+ const config = await loadCodingAgentsConfig();
199
+ const customAgent = config.customCodingAgents.find((a) => a.id === id);
200
+ logger.debug({ id, found: !!customAgent, isBuiltin: false }, "Coding agent lookup");
201
+ return customAgent;
199
202
  }
200
203
  /**
201
- * すべてのツール(ビルトイン+カスタム)を取得
204
+ * すべてのコーディングエージェント(ビルトイン+カスタム)を取得
202
205
  *
203
- * @returns AIToolConfigの配列
206
+ * @returns CodingAgentConfigの配列
204
207
  */
205
- export async function getAllTools() {
206
- const config = await loadToolsConfig();
207
- // ビルトインツールをAIToolConfig形式に変換
208
- const builtinConfigs = BUILTIN_TOOLS.map((tool) => ({
209
- id: tool.id,
210
- displayName: tool.displayName,
211
- ...(tool.icon ? { icon: tool.icon } : {}),
208
+ export async function getAllCodingAgents() {
209
+ const config = await loadCodingAgentsConfig();
210
+ // ビルトインエージェントをCodingAgentConfig形式に変換
211
+ const builtinConfigs = BUILTIN_CODING_AGENTS.map((agent) => ({
212
+ id: agent.id,
213
+ displayName: agent.displayName,
214
+ ...(agent.icon ? { icon: agent.icon } : {}),
212
215
  isBuiltin: true,
213
216
  }));
214
- // カスタムツールをAIToolConfig形式に変換
215
- const customConfigs = config.customTools.map((tool) => ({
216
- id: tool.id,
217
- displayName: tool.displayName,
218
- ...(tool.icon ? { icon: tool.icon } : {}),
217
+ // カスタムエージェントをCodingAgentConfig形式に変換
218
+ const customConfigs = config.customCodingAgents.map((agent) => ({
219
+ id: agent.id,
220
+ displayName: agent.displayName,
221
+ ...(agent.icon ? { icon: agent.icon } : {}),
219
222
  isBuiltin: false,
220
- customConfig: tool,
223
+ customConfig: agent,
221
224
  }));
222
225
  // ビルトイン + カスタム の順で統合
223
226
  return [...builtinConfigs, ...customConfigs];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,8 +10,8 @@ import chalk from "chalk";
10
10
  import { isProtectedBranchName, switchToProtectedBranch, WorktreeError, resolveWorktreePathForBranch, } from "./worktree.js";
11
11
  import { getTerminalStreams, waitForUserAcknowledgement, } from "./utils/terminal.js";
12
12
  import { createLogger } from "./logging/logger.js";
13
- import { getToolById, getSharedEnvironment } from "./config/tools.js";
14
- import { launchCustomAITool } from "./launcher.js";
13
+ import { getCodingAgentById, getSharedEnvironment } from "./config/tools.js";
14
+ import { launchCodingAgent } from "./launcher.js";
15
15
  import { saveSession, loadSession } from "./config/index.js";
16
16
  import { findLatestCodexSession, findLatestClaudeSession, findLatestGeminiSession, } from "./utils/session.js";
17
17
  import { getPackageVersion } from "./utils.js";
@@ -373,22 +373,22 @@ export async function handleAIToolWorkflow(selectionResult) {
373
373
  else if (fastForwardError) {
374
374
  printWarning(`Fast-forward pull could not complete (${fastForwardError.message}). Continuing without blocking.`);
375
375
  }
376
- // Get tool definition and shared environment overrides
377
- const [toolConfig, sharedEnv] = await Promise.all([
378
- getToolById(tool),
376
+ // Get coding agent definition and shared environment overrides
377
+ const [agentConfig, sharedEnv] = await Promise.all([
378
+ getCodingAgentById(tool),
379
379
  getSharedEnvironment(),
380
380
  ]);
381
- if (!toolConfig) {
382
- throw new Error(`Tool not found: ${tool}`);
381
+ if (!agentConfig) {
382
+ throw new Error(`Coding agent not found: ${tool}`);
383
383
  }
384
- // Save selection immediately (including history) so "last tool" is reflected
385
- // even if the tool is interrupted or killed mid-run (e.g., Ctrl+C).
386
- // FR-042: Record timestamp to session history immediately on tool start.
384
+ // Save selection immediately (including history) so "last agent" is reflected
385
+ // even if the agent is interrupted or killed mid-run (e.g., Ctrl+C).
386
+ // FR-042: Record timestamp to session history immediately on agent start.
387
387
  await saveSession({
388
388
  lastWorktreePath: worktreePath,
389
389
  lastBranch: branch,
390
390
  lastUsedTool: tool,
391
- toolLabel: toolConfig.displayName ?? tool,
391
+ toolLabel: agentConfig.displayName ?? tool,
392
392
  mode,
393
393
  model: normalizedModel ?? null,
394
394
  reasoningLevel: inferenceLevel ?? null,
@@ -426,7 +426,7 @@ export async function handleAIToolWorkflow(selectionResult) {
426
426
  lastWorktreePath: worktreePath,
427
427
  lastBranch: branch,
428
428
  lastUsedTool: tool,
429
- toolLabel: toolConfig.displayName ?? tool,
429
+ toolLabel: agentConfig.displayName ?? tool,
430
430
  mode,
431
431
  model: normalizedModel ?? null,
432
432
  reasoningLevel: inferenceLevel ?? null,
@@ -439,9 +439,9 @@ export async function handleAIToolWorkflow(selectionResult) {
439
439
  // Ignore errors during periodic update
440
440
  }
441
441
  }, SESSION_UPDATE_INTERVAL_MS);
442
- // Launch selected AI tool
443
- // Builtin tools use their dedicated launch functions
444
- // Custom tools use the generic launchCustomAITool function
442
+ // Launch selected coding agent
443
+ // Builtin agents use their dedicated launch functions
444
+ // Custom agents use the generic launchCodingAgent function
445
445
  let launchResult;
446
446
  try {
447
447
  if (tool === "claude-code") {
@@ -498,9 +498,9 @@ export async function handleAIToolWorkflow(selectionResult) {
498
498
  launchResult = await launchGeminiCLI(worktreePath, launchOptions);
499
499
  }
500
500
  else {
501
- // Custom tool
502
- printInfo(`Launching custom tool: ${toolConfig.displayName}`);
503
- launchResult = await launchCustomAITool(toolConfig, {
501
+ // Custom coding agent
502
+ printInfo(`Launching custom agent: ${agentConfig.displayName}`);
503
+ launchResult = await launchCodingAgent(agentConfig, {
504
504
  mode: mode === "resume"
505
505
  ? "resume"
506
506
  : mode === "continue"
@@ -584,7 +584,7 @@ export async function handleAIToolWorkflow(selectionResult) {
584
584
  lastWorktreePath: worktreePath,
585
585
  lastBranch: branch,
586
586
  lastUsedTool: tool,
587
- toolLabel: toolConfig.displayName ?? tool,
587
+ toolLabel: agentConfig.displayName ?? tool,
588
588
  mode,
589
589
  model: normalizedModel ?? null,
590
590
  reasoningLevel: inferenceLevel ?? null,