@akiojin/gwt 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cli/ui/components/App.d.ts.map +1 -1
  2. package/dist/cli/ui/components/App.js +19 -4
  3. package/dist/cli/ui/components/App.js.map +1 -1
  4. package/dist/cli/ui/components/parts/Header.d.ts +8 -0
  5. package/dist/cli/ui/components/parts/Header.d.ts.map +1 -1
  6. package/dist/cli/ui/components/parts/Header.js +7 -2
  7. package/dist/cli/ui/components/parts/Header.js.map +1 -1
  8. package/dist/cli/ui/components/screens/BranchListScreen.d.ts +3 -1
  9. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -1
  10. package/dist/cli/ui/components/screens/BranchListScreen.js +7 -3
  11. package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -1
  12. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.d.ts +16 -0
  13. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.d.ts.map +1 -0
  14. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.js +576 -0
  15. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.js.map +1 -0
  16. package/dist/cli/ui/hooks/useProfiles.d.ts +41 -0
  17. package/dist/cli/ui/hooks/useProfiles.d.ts.map +1 -0
  18. package/dist/cli/ui/hooks/useProfiles.js +136 -0
  19. package/dist/cli/ui/hooks/useProfiles.js.map +1 -0
  20. package/dist/cli/ui/types.d.ts +1 -1
  21. package/dist/cli/ui/types.d.ts.map +1 -1
  22. package/dist/config/profiles.d.ts +94 -0
  23. package/dist/config/profiles.d.ts.map +1 -0
  24. package/dist/config/profiles.js +287 -0
  25. package/dist/config/profiles.js.map +1 -0
  26. package/dist/config/tools.d.ts +10 -0
  27. package/dist/config/tools.d.ts.map +1 -1
  28. package/dist/config/tools.js +19 -2
  29. package/dist/config/tools.js.map +1 -1
  30. package/dist/types/profiles.d.ts +54 -0
  31. package/dist/types/profiles.d.ts.map +1 -0
  32. package/dist/types/profiles.js +33 -0
  33. package/dist/types/profiles.js.map +1 -0
  34. package/dist/web/client/src/components/ui/alert.d.ts +1 -1
  35. package/dist/web/client/src/components/ui/badge.d.ts +1 -1
  36. package/package.json +4 -3
  37. package/src/cli/ui/components/App.tsx +49 -36
  38. package/src/cli/ui/components/parts/Header.tsx +16 -1
  39. package/src/cli/ui/components/screens/BranchListScreen.tsx +9 -1
  40. package/src/cli/ui/components/screens/EnvironmentProfileScreen.tsx +924 -0
  41. package/src/cli/ui/hooks/useProfiles.ts +211 -0
  42. package/src/cli/ui/types.ts +2 -1
  43. package/src/config/profiles.ts +362 -0
  44. package/src/config/tools.ts +20 -2
  45. package/src/types/profiles.ts +64 -0
@@ -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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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 環境変数プロファイル型定義
3
+ *
4
+ * プロファイル機能で使用する型を定義します。
5
+ * @see specs/SPEC-dafff079/spec.md
6
+ */
7
+ /**
8
+ * 環境変数プロファイル
9
+ *
10
+ * 環境変数のセットを表します。
11
+ */
12
+ export interface EnvironmentProfile {
13
+ /** プロファイルの表示名 */
14
+ displayName: string;
15
+ /** プロファイルの説明(オプション) */
16
+ description?: string;
17
+ /** 環境変数のキーバリューペア */
18
+ env: Record<string, string>;
19
+ }
20
+ /**
21
+ * プロファイル設定
22
+ *
23
+ * 全プロファイルを管理する設定です。
24
+ * ~/.gwt/profiles.yaml に保存されます。
25
+ */
26
+ export interface ProfilesConfig {
27
+ /** 設定ファイルのバージョン */
28
+ version: string;
29
+ /** 現在アクティブなプロファイル名(nullの場合はプロファイルなし) */
30
+ activeProfile: string | null;
31
+ /** プロファイルの辞書(キー: プロファイル名、値: プロファイル設定) */
32
+ profiles: Record<string, EnvironmentProfile>;
33
+ }
34
+ /**
35
+ * デフォルトのプロファイル設定
36
+ *
37
+ * profiles.yamlが存在しない場合に使用されます。
38
+ * 不変オブジェクトとして扱われるため、変更は禁止されています。
39
+ */
40
+ export declare const DEFAULT_PROFILES_CONFIG: Readonly<ProfilesConfig>;
41
+ /**
42
+ * プロファイル名のバリデーションパターン
43
+ *
44
+ * 小文字英数字とハイフンのみを許可し、先頭と末尾は英数字でなければなりません。
45
+ */
46
+ export declare const PROFILE_NAME_PATTERN: RegExp;
47
+ /**
48
+ * プロファイル名をバリデート
49
+ *
50
+ * @param name - 検証するプロファイル名
51
+ * @returns バリデーション結果
52
+ */
53
+ export declare function isValidProfileName(name: string): boolean;
54
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/types/profiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC9C;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,cAAc,CAI3D,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAsC,CAAC;AAExE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 環境変数プロファイル型定義
3
+ *
4
+ * プロファイル機能で使用する型を定義します。
5
+ * @see specs/SPEC-dafff079/spec.md
6
+ */
7
+ /**
8
+ * デフォルトのプロファイル設定
9
+ *
10
+ * profiles.yamlが存在しない場合に使用されます。
11
+ * 不変オブジェクトとして扱われるため、変更は禁止されています。
12
+ */
13
+ export const DEFAULT_PROFILES_CONFIG = Object.freeze({
14
+ version: "1.0",
15
+ activeProfile: null,
16
+ profiles: Object.freeze({}),
17
+ });
18
+ /**
19
+ * プロファイル名のバリデーションパターン
20
+ *
21
+ * 小文字英数字とハイフンのみを許可し、先頭と末尾は英数字でなければなりません。
22
+ */
23
+ export const PROFILE_NAME_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
24
+ /**
25
+ * プロファイル名をバリデート
26
+ *
27
+ * @param name - 検証するプロファイル名
28
+ * @returns バリデーション結果
29
+ */
30
+ export function isValidProfileName(name) {
31
+ return name.length > 0 && PROFILE_NAME_PATTERN.test(name);
32
+ }
33
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/types/profiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA6B,MAAM,CAAC,MAAM,CAAC;IAC7E,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
4
- variant?: "default" | "success" | "warning" | "info" | "destructive" | null | undefined;
4
+ variant?: "default" | "warning" | "success" | "info" | "destructive" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
6
6
  declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
7
7
  declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "local" | "remote" | "success" | "warning" | "secondary" | "destructive" | "outline" | null | undefined;
4
+ variant?: "default" | "warning" | "local" | "remote" | "success" | "secondary" | "destructive" | "outline" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Interactive Git worktree manager for Claude Code with graphical branch selection",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -70,7 +70,7 @@
70
70
  "ink": "^6.3.1",
71
71
  "ink-select-input": "^6.2.0",
72
72
  "ink-text-input": "^6.0.0",
73
- "node-pty": "1.1.0-beta39",
73
+ "node-pty": "1.1.0-beta42",
74
74
  "pino": "^10.1.0",
75
75
  "react": "^19.2.0",
76
76
  "react-dom": "^19.2.0",
@@ -82,6 +82,7 @@
82
82
  "ws": "^8.18.0",
83
83
  "xterm": "^5.4.0-beta.37",
84
84
  "xterm-addon-fit": "^0.9.0-beta.37",
85
+ "yaml": "^2.8.2",
85
86
  "zustand": "^5.0.2"
86
87
  },
87
88
  "devDependencies": {
@@ -90,7 +91,7 @@
90
91
  "@playwright/test": "^1.51.0",
91
92
  "@testing-library/jest-dom": "^6.9.1",
92
93
  "@testing-library/react": "^16.3.0",
93
- "@types/node": "^24.10.1",
94
+ "@types/node": "^25.0.2",
94
95
  "@types/react": "^19.2.2",
95
96
  "@types/react-dom": "^19.0.3",
96
97
  "@types/ws": "^8.5.13",
@@ -7,7 +7,10 @@ import React, {
7
7
  } from "react";
8
8
  import { useApp } from "ink";
9
9
  import { ErrorBoundary } from "./common/ErrorBoundary.js";
10
- import { BranchListScreen } from "./screens/BranchListScreen.js";
10
+ import {
11
+ BranchListScreen,
12
+ type BranchListScreenProps,
13
+ } from "./screens/BranchListScreen.js";
11
14
  import { BranchCreatorScreen } from "./screens/BranchCreatorScreen.js";
12
15
  import { BranchActionSelectorScreen } from "../screens/BranchActionSelectorScreen.js";
13
16
  import { AIToolSelectorScreen } from "./screens/AIToolSelectorScreen.js";
@@ -19,7 +22,9 @@ import {
19
22
  ModelSelectorScreen,
20
23
  type ModelSelectionResult,
21
24
  } from "./screens/ModelSelectorScreen.js";
25
+ import { EnvironmentProfileScreen } from "./screens/EnvironmentProfileScreen.js";
22
26
  import { useGitData } from "../hooks/useGitData.js";
27
+ import { useProfiles } from "../hooks/useProfiles.js";
23
28
  import { useScreenState } from "../hooks/useScreenState.js";
24
29
  import { formatBranchItems } from "../utils/branchFormatter.js";
25
30
  import { calculateStatistics } from "../utils/statisticsCalculator.js";
@@ -108,6 +113,9 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
108
113
  });
109
114
  const { currentScreen, navigateTo, goBack } = useScreenState();
110
115
 
116
+ // Profile state
117
+ const { activeProfileName, refresh: refreshProfiles } = useProfiles();
118
+
111
119
  // Version state
112
120
  const [version, setVersion] = useState<string | null>(null);
113
121
  const [repoRoot, setRepoRoot] = useState<string | null>(null);
@@ -1153,31 +1161,39 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1153
1161
 
1154
1162
  // Render screen based on currentScreen
1155
1163
  const renderScreen = () => {
1164
+ const renderBranchListScreen = (
1165
+ additionalProps?: Partial<BranchListScreenProps>,
1166
+ ) => (
1167
+ <BranchListScreen
1168
+ branches={branchItems}
1169
+ stats={stats}
1170
+ onSelect={handleSelect}
1171
+ onQuit={handleQuit}
1172
+ onRefresh={refresh}
1173
+ loading={loading}
1174
+ error={error}
1175
+ lastUpdated={lastUpdated}
1176
+ loadingIndicatorDelay={loadingIndicatorDelay}
1177
+ version={version}
1178
+ workingDirectory={workingDirectory}
1179
+ activeProfile={activeProfileName}
1180
+ onOpenProfiles={() => navigateTo("environment-profile")}
1181
+ {...additionalProps}
1182
+ />
1183
+ );
1184
+
1156
1185
  switch (currentScreen) {
1157
1186
  case "branch-list":
1158
- return (
1159
- <BranchListScreen
1160
- branches={branchItems}
1161
- stats={stats}
1162
- onSelect={handleSelect}
1163
- onQuit={handleQuit}
1164
- onCleanupCommand={handleCleanupCommand}
1165
- onRefresh={refresh}
1166
- loading={loading}
1167
- error={error}
1168
- lastUpdated={lastUpdated}
1169
- loadingIndicatorDelay={loadingIndicatorDelay}
1170
- cleanupUI={{
1171
- indicators: cleanupIndicators,
1172
- footerMessage: cleanupFooterMessage,
1173
- inputLocked: cleanupInputLocked,
1174
- }}
1175
- version={version}
1176
- workingDirectory={workingDirectory}
1177
- selectedBranches={selectedBranches}
1178
- onToggleSelect={toggleBranchSelection}
1179
- />
1180
- );
1187
+ return renderBranchListScreen({
1188
+ onCleanupCommand: handleCleanupCommand,
1189
+ cleanupUI: {
1190
+ indicators: cleanupIndicators,
1191
+ footerMessage: cleanupFooterMessage,
1192
+ inputLocked: cleanupInputLocked,
1193
+ },
1194
+ selectedBranches,
1195
+ onToggleSelect: toggleBranchSelection,
1196
+ });
1181
1197
 
1182
1198
  case "branch-creator":
1183
1199
  return (
@@ -1268,22 +1284,19 @@ export function App({ onExit, loadingIndicatorDelay = 300 }: AppProps) {
1268
1284
  />
1269
1285
  );
1270
1286
 
1271
- default:
1287
+ case "environment-profile":
1272
1288
  return (
1273
- <BranchListScreen
1274
- branches={branchItems}
1275
- stats={stats}
1276
- onSelect={handleSelect}
1277
- onQuit={handleQuit}
1278
- onRefresh={refresh}
1279
- loading={loading}
1280
- error={error}
1281
- lastUpdated={lastUpdated}
1282
- loadingIndicatorDelay={loadingIndicatorDelay}
1289
+ <EnvironmentProfileScreen
1290
+ onBack={() => {
1291
+ void refreshProfiles();
1292
+ goBack();
1293
+ }}
1283
1294
  version={version}
1284
- workingDirectory={workingDirectory}
1285
1295
  />
1286
1296
  );
1297
+
1298
+ default:
1299
+ return renderBranchListScreen();
1287
1300
  }
1288
1301
  };
1289
1302
 
@@ -22,6 +22,14 @@ export interface HeaderProps {
22
22
  * @default undefined
23
23
  */
24
24
  workingDirectory?: string;
25
+ /**
26
+ * 現在アクティブなプロファイル名
27
+ * - string: プロファイル名が利用可能(例: "development")
28
+ * - null: プロファイルが選択されていない
29
+ * - undefined: プロファイル情報未提供
30
+ * @default undefined
31
+ */
32
+ activeProfile?: string | null | undefined;
25
33
  }
26
34
 
27
35
  /**
@@ -36,9 +44,16 @@ export const Header = React.memo(function Header({
36
44
  width = 80,
37
45
  version,
38
46
  workingDirectory,
47
+ activeProfile,
39
48
  }: HeaderProps) {
40
49
  const divider = dividerChar.repeat(width);
41
- const displayTitle = version ? `${title} v${version}` : title;
50
+
51
+ // タイトル構築: "gwt v2.14 | Profile: development" または "gwt v2.14 | Profile: (none)"
52
+ let displayTitle = version ? `${title} v${version}` : title;
53
+ if (activeProfile !== undefined) {
54
+ const profileLabel = activeProfile ?? "(none)";
55
+ displayTitle = `${displayTitle} | Profile: ${profileLabel}`;
56
+ }
42
57
 
43
58
  return (
44
59
  <Box flexDirection="column">
@@ -84,6 +84,7 @@ export interface BranchListScreenProps {
84
84
  onQuit?: () => void;
85
85
  onCleanupCommand?: () => void;
86
86
  onRefresh?: () => void;
87
+ onOpenProfiles?: () => void;
87
88
  loading?: boolean;
88
89
  error?: Error | null;
89
90
  lastUpdated?: Date | null;
@@ -91,6 +92,7 @@ export interface BranchListScreenProps {
91
92
  cleanupUI?: CleanupUIState;
92
93
  version?: string | null;
93
94
  workingDirectory?: string;
95
+ activeProfile?: string | null;
94
96
  // Test support: allow external control of filter mode and query
95
97
  testFilterMode?: boolean;
96
98
  testOnFilterModeChange?: (mode: boolean) => void;
@@ -110,6 +112,7 @@ export function BranchListScreen({
110
112
  onSelect,
111
113
  onCleanupCommand,
112
114
  onRefresh,
115
+ onOpenProfiles,
113
116
  loading = false,
114
117
  error = null,
115
118
  lastUpdated = null,
@@ -117,6 +120,7 @@ export function BranchListScreen({
117
120
  cleanupUI,
118
121
  version,
119
122
  workingDirectory,
123
+ activeProfile,
120
124
  testFilterMode,
121
125
  testOnFilterModeChange,
122
126
  testFilterQuery,
@@ -206,6 +210,8 @@ export function BranchListScreen({
206
210
  onCleanupCommand?.();
207
211
  } else if (input === "r" && onRefresh) {
208
212
  onRefresh();
213
+ } else if (input === "p" && onOpenProfiles) {
214
+ onOpenProfiles();
209
215
  }
210
216
  });
211
217
 
@@ -262,7 +268,8 @@ export function BranchListScreen({
262
268
  { key: "enter", description: "Select" },
263
269
  { key: "f", description: "Filter" },
264
270
  { key: "r", description: "Refresh" },
265
- { key: "c", description: "Cleanup branches" },
271
+ { key: "c", description: "Cleanup" },
272
+ { key: "p", description: "Profiles" },
266
273
  ];
267
274
 
268
275
  const formatLatestCommit = useCallback((timestamp?: number) => {
@@ -514,6 +521,7 @@ export function BranchListScreen({
514
521
  titleColor="cyan"
515
522
  version={version}
516
523
  {...(workingDirectory !== undefined && { workingDirectory })}
524
+ activeProfile={activeProfile}
517
525
  />
518
526
 
519
527
  {/* Filter Input - Always visible */}