draken 0.1.2 → 0.1.3

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.
@@ -1,4 +1,10 @@
1
1
  import Database from 'better-sqlite3';
2
+ /**
3
+ * Get the draken data directory
4
+ * Uses DRAKEN_DATA_DIR env var if set, otherwise ~/.draken
5
+ * Works cross-platform (Windows, macOS, Linux)
6
+ */
7
+ export declare function getDataDir(): string;
2
8
  export declare function getDb(): Database.Database;
3
9
  export declare function closeDb(): void;
4
10
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAczC;AA2CD,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAOD,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAczC;AA2CD,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
package/dist/db/schema.js CHANGED
@@ -3,23 +3,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDataDir = getDataDir;
6
7
  exports.getDb = getDb;
7
8
  exports.closeDb = closeDb;
8
9
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
9
10
  const path_1 = __importDefault(require("path"));
10
- const DB_PATH = path_1.default.join(__dirname, '../../data/draken.db');
11
+ const os_1 = __importDefault(require("os"));
12
+ const fs_1 = __importDefault(require("fs"));
13
+ /**
14
+ * Get the draken data directory
15
+ * Uses DRAKEN_DATA_DIR env var if set, otherwise ~/.draken
16
+ * Works cross-platform (Windows, macOS, Linux)
17
+ */
18
+ function getDataDir() {
19
+ if (process.env.DRAKEN_DATA_DIR) {
20
+ return process.env.DRAKEN_DATA_DIR;
21
+ }
22
+ return path_1.default.join(os_1.default.homedir(), '.draken');
23
+ }
24
+ const DATA_DIR = getDataDir();
25
+ const DB_PATH = path_1.default.join(DATA_DIR, 'draken.db');
11
26
  let db = null;
12
27
  function getDb() {
13
28
  if (!db) {
14
29
  // Ensure data directory exists
15
- const fs = require('fs');
16
- const dataDir = path_1.default.dirname(DB_PATH);
17
- if (!fs.existsSync(dataDir)) {
18
- fs.mkdirSync(dataDir, { recursive: true });
30
+ if (!fs_1.default.existsSync(DATA_DIR)) {
31
+ fs_1.default.mkdirSync(DATA_DIR, { recursive: true });
19
32
  }
20
33
  db = new better_sqlite3_1.default(DB_PATH);
21
34
  db.pragma('journal_mode = WAL');
22
35
  initSchema(db);
36
+ console.log(`Database: ${DB_PATH}`);
23
37
  }
24
38
  return db;
25
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;;;AAOA,sBAcC;AA2CD,0BAKC;AArED,oEAAsC;AACtC,gDAAwB;AAExB,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAE7D,IAAI,EAAE,GAA6B,IAAI,CAAC;AAExC,SAAgB,KAAK;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,+BAA+B;QAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,EAAE,GAAG,IAAI,wBAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,EAAqB;IACvC,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBP,CAAC,CAAC;IAEH,uDAAuD;IACvD,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,2DAA2D;IAC3D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IACzG,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,qEAAqE;IACrE,EAAE,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;AAClF,CAAC;AAED,SAAgB,OAAO;IACrB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":";;;;;AAUA,gCAKC;AAOD,sBAcC;AA2CD,0BAKC;AApFD,oEAAsC;AACtC,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AAEpB;;;;GAIG;AACH,SAAgB,UAAU;IACxB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACrC,CAAC;IACD,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;AAC9B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEjD,IAAI,EAAE,GAA6B,IAAI,CAAC;AAExC,SAAgB,KAAK;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,+BAA+B;QAC/B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,EAAE,GAAG,IAAI,wBAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,EAAqB;IACvC,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBP,CAAC,CAAC;IAEH,uDAAuD;IACvD,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,2DAA2D;IAC3D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IACzG,CAAC;IAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAEvC,qEAAqE;IACrE,EAAE,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;AAClF,CAAC;AAED,SAAgB,OAAO;IACrB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1,5 +1,50 @@
1
+ export interface MountConfig {
2
+ alias: string;
3
+ path: string;
4
+ }
1
5
  export declare function getDockerfilePath(projectPath: string): string;
2
6
  export declare function dockerfileExists(projectPath: string): boolean;
3
- export declare function generateDockerfile(projectPath: string): void;
7
+ /**
8
+ * Parse DRAKEN_MOUNT comments from dockerfile content
9
+ * Format: # DRAKEN_MOUNT alias=/path/to/directory
10
+ */
11
+ export declare function parseMountsFromDockerfile(content: string): MountConfig[];
12
+ /**
13
+ * Generate mount comments for dockerfile
14
+ */
15
+ export declare function generateMountComments(mounts: MountConfig[]): string;
16
+ /**
17
+ * Update mounts in dockerfile content
18
+ * Replaces existing DRAKEN_MOUNT comments with new ones
19
+ */
20
+ export declare function updateMountsInDockerfile(content: string, mounts: MountConfig[]): string;
21
+ /**
22
+ * Generate a new dockerfile with mount configuration
23
+ */
24
+ export declare function generateDockerfile(projectPath: string, mounts?: MountConfig[]): void;
25
+ /**
26
+ * Generate dockerfile with a single mount (backward compatible)
27
+ */
28
+ export declare function generateDockerfileWithMount(projectPath: string, alias: string, mountPath: string): void;
4
29
  export declare function getDockerfileContent(projectPath: string): string | null;
30
+ /**
31
+ * Get mounts configured in a project's dockerfile
32
+ */
33
+ export declare function getProjectMounts(projectPath: string): MountConfig[];
34
+ /**
35
+ * Add a mount to an existing dockerfile
36
+ */
37
+ export declare function addMountToDockerfile(projectPath: string, alias: string, mountPath: string): void;
38
+ /**
39
+ * Remove a mount from dockerfile
40
+ */
41
+ export declare function removeMountFromDockerfile(projectPath: string, alias: string): void;
42
+ /**
43
+ * Update a mount path in dockerfile
44
+ */
45
+ export declare function updateMountInDockerfile(projectPath: string, alias: string, newPath: string): void;
46
+ /**
47
+ * Derive alias from path (last directory name)
48
+ */
49
+ export declare function deriveAliasFromPath(mountPath: string): string;
5
50
  //# sourceMappingURL=dockerfile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/docker/dockerfile.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI5D;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE"}
1
+ {"version":3,"file":"dockerfile.d.ts","sourceRoot":"","sources":["../../src/docker/dockerfile.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAcxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAKnE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAWvF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAUpF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAEvG;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAInE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiBhG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAelF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAgBjG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI7D"}
@@ -5,8 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getDockerfilePath = getDockerfilePath;
7
7
  exports.dockerfileExists = dockerfileExists;
8
+ exports.parseMountsFromDockerfile = parseMountsFromDockerfile;
9
+ exports.generateMountComments = generateMountComments;
10
+ exports.updateMountsInDockerfile = updateMountsInDockerfile;
8
11
  exports.generateDockerfile = generateDockerfile;
12
+ exports.generateDockerfileWithMount = generateDockerfileWithMount;
9
13
  exports.getDockerfileContent = getDockerfileContent;
14
+ exports.getProjectMounts = getProjectMounts;
15
+ exports.addMountToDockerfile = addMountToDockerfile;
16
+ exports.removeMountFromDockerfile = removeMountFromDockerfile;
17
+ exports.updateMountInDockerfile = updateMountInDockerfile;
18
+ exports.deriveAliasFromPath = deriveAliasFromPath;
10
19
  const fs_1 = __importDefault(require("fs"));
11
20
  const path_1 = __importDefault(require("path"));
12
21
  const TEMPLATE_PATH = path_1.default.join(__dirname, '../../draken.dockerfile.template');
@@ -17,10 +26,62 @@ function getDockerfilePath(projectPath) {
17
26
  function dockerfileExists(projectPath) {
18
27
  return fs_1.default.existsSync(getDockerfilePath(projectPath));
19
28
  }
20
- function generateDockerfile(projectPath) {
29
+ /**
30
+ * Parse DRAKEN_MOUNT comments from dockerfile content
31
+ * Format: # DRAKEN_MOUNT alias=/path/to/directory
32
+ */
33
+ function parseMountsFromDockerfile(content) {
34
+ const mounts = [];
35
+ const mountRegex = /^#\s*DRAKEN_MOUNT\s+(\w+)=(.+)$/gm;
36
+ let match;
37
+ while ((match = mountRegex.exec(content)) !== null) {
38
+ const alias = match[1].trim();
39
+ const mountPath = match[2].trim();
40
+ if (alias && mountPath) {
41
+ mounts.push({ alias, path: mountPath });
42
+ }
43
+ }
44
+ return mounts;
45
+ }
46
+ /**
47
+ * Generate mount comments for dockerfile
48
+ */
49
+ function generateMountComments(mounts) {
50
+ if (mounts.length === 0)
51
+ return '';
52
+ const lines = mounts.map(m => `# DRAKEN_MOUNT ${m.alias}=${m.path}`);
53
+ return lines.join('\n') + '\n\n';
54
+ }
55
+ /**
56
+ * Update mounts in dockerfile content
57
+ * Replaces existing DRAKEN_MOUNT comments with new ones
58
+ */
59
+ function updateMountsInDockerfile(content, mounts) {
60
+ // Remove existing mount comments
61
+ const withoutMounts = content.replace(/^#\s*DRAKEN_MOUNT\s+\w+=.+\n?/gm, '');
62
+ // Add new mount comments at the top
63
+ const mountComments = generateMountComments(mounts);
64
+ // Clean up any leading whitespace from removal
65
+ const cleaned = withoutMounts.replace(/^\n+/, '');
66
+ return mountComments + cleaned;
67
+ }
68
+ /**
69
+ * Generate a new dockerfile with mount configuration
70
+ */
71
+ function generateDockerfile(projectPath, mounts) {
21
72
  const templateContent = fs_1.default.readFileSync(TEMPLATE_PATH, 'utf-8');
22
73
  const dockerfilePath = getDockerfilePath(projectPath);
23
- fs_1.default.writeFileSync(dockerfilePath, templateContent);
74
+ let content = templateContent;
75
+ if (mounts && mounts.length > 0) {
76
+ content = generateMountComments(mounts) + templateContent;
77
+ }
78
+ fs_1.default.writeFileSync(dockerfilePath, content);
79
+ }
80
+ /**
81
+ * Generate dockerfile with a single mount (backward compatible)
82
+ */
83
+ function generateDockerfileWithMount(projectPath, alias, mountPath) {
84
+ generateDockerfile(projectPath, [{ alias, path: mountPath }]);
24
85
  }
25
86
  function getDockerfileContent(projectPath) {
26
87
  const dockerfilePath = getDockerfilePath(projectPath);
@@ -29,4 +90,71 @@ function getDockerfileContent(projectPath) {
29
90
  }
30
91
  return null;
31
92
  }
93
+ /**
94
+ * Get mounts configured in a project's dockerfile
95
+ */
96
+ function getProjectMounts(projectPath) {
97
+ const content = getDockerfileContent(projectPath);
98
+ if (!content)
99
+ return [];
100
+ return parseMountsFromDockerfile(content);
101
+ }
102
+ /**
103
+ * Add a mount to an existing dockerfile
104
+ */
105
+ function addMountToDockerfile(projectPath, alias, mountPath) {
106
+ const content = getDockerfileContent(projectPath);
107
+ if (!content) {
108
+ throw new Error('Dockerfile does not exist');
109
+ }
110
+ const existingMounts = parseMountsFromDockerfile(content);
111
+ // Check for duplicate alias
112
+ if (existingMounts.some(m => m.alias === alias)) {
113
+ throw new Error(`Mount with alias "${alias}" already exists`);
114
+ }
115
+ existingMounts.push({ alias, path: mountPath });
116
+ const updatedContent = updateMountsInDockerfile(content, existingMounts);
117
+ fs_1.default.writeFileSync(getDockerfilePath(projectPath), updatedContent);
118
+ }
119
+ /**
120
+ * Remove a mount from dockerfile
121
+ */
122
+ function removeMountFromDockerfile(projectPath, alias) {
123
+ const content = getDockerfileContent(projectPath);
124
+ if (!content) {
125
+ throw new Error('Dockerfile does not exist');
126
+ }
127
+ const existingMounts = parseMountsFromDockerfile(content);
128
+ const filteredMounts = existingMounts.filter(m => m.alias !== alias);
129
+ if (filteredMounts.length === existingMounts.length) {
130
+ throw new Error(`Mount with alias "${alias}" not found`);
131
+ }
132
+ const updatedContent = updateMountsInDockerfile(content, filteredMounts);
133
+ fs_1.default.writeFileSync(getDockerfilePath(projectPath), updatedContent);
134
+ }
135
+ /**
136
+ * Update a mount path in dockerfile
137
+ */
138
+ function updateMountInDockerfile(projectPath, alias, newPath) {
139
+ const content = getDockerfileContent(projectPath);
140
+ if (!content) {
141
+ throw new Error('Dockerfile does not exist');
142
+ }
143
+ const existingMounts = parseMountsFromDockerfile(content);
144
+ const mount = existingMounts.find(m => m.alias === alias);
145
+ if (!mount) {
146
+ throw new Error(`Mount with alias "${alias}" not found`);
147
+ }
148
+ mount.path = newPath;
149
+ const updatedContent = updateMountsInDockerfile(content, existingMounts);
150
+ fs_1.default.writeFileSync(getDockerfilePath(projectPath), updatedContent);
151
+ }
152
+ /**
153
+ * Derive alias from path (last directory name)
154
+ */
155
+ function deriveAliasFromPath(mountPath) {
156
+ const basename = path_1.default.basename(mountPath);
157
+ // Sanitize: only allow alphanumeric, dash, underscore
158
+ return basename.replace(/[^a-zA-Z0-9_-]/g, '_').toLowerCase();
159
+ }
32
160
  //# sourceMappingURL=dockerfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/docker/dockerfile.ts"],"names":[],"mappings":";;;;;AAMA,8CAEC;AAED,4CAEC;AAED,gDAIC;AAED,oDAMC;AA1BD,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;AAC/E,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAE5C,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,OAAO,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAAmB;IAClD,OAAO,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,kBAAkB,CAAC,WAAmB;IACpD,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACtD,YAAE,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,oBAAoB,CAAC,WAAmB;IACtD,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,OAAO,YAAE,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"dockerfile.js","sourceRoot":"","sources":["../../src/docker/dockerfile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/docker/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAiEtC,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAoB7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAoBzC;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB/F;AAED,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAsMnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtE;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7E;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrE"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/docker/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAiEtC,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAoB7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAoBzC;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB/F;AAED,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAoOnE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtE;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7E;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrE"}
@@ -165,11 +165,12 @@ async function runTask(projectPath, projectId, prompt, taskId, resumeSessionId /
165
165
  if (!fs_1.default.existsSync(sessionsDir)) {
166
166
  fs_1.default.mkdirSync(sessionsDir, { recursive: true });
167
167
  }
168
+ // Get mount configuration from dockerfile
169
+ const mounts = (0, dockerfile_1.getProjectMounts)(projectPath);
168
170
  // Build docker run arguments
169
171
  const dockerArgs = [
170
172
  'run',
171
173
  '--rm',
172
- '-v', `${projectPath}:/workspace`,
173
174
  '--log-driver', 'json-file',
174
175
  // Force color output in terminal commands
175
176
  '-e', 'TERM=xterm-256color',
@@ -177,6 +178,36 @@ async function runTask(projectPath, projectId, prompt, taskId, resumeSessionId /
177
178
  '-e', 'CLICOLOR=1',
178
179
  '-e', 'CLICOLOR_FORCE=1',
179
180
  ];
181
+ // Mount project directories
182
+ if (mounts.length > 0) {
183
+ console.log(`[runTask] Mounting ${mounts.length} directories:`);
184
+ // Multi-repo mode: mount each configured path with its alias
185
+ for (const mount of mounts) {
186
+ dockerArgs.push('-v', `${mount.path}:/workspace/${mount.alias}`);
187
+ // Hide .git for each mount (only if it's a git repo)
188
+ const gitDir = path_1.default.join(mount.path, '.git');
189
+ if (fs_1.default.existsSync(gitDir)) {
190
+ dockerArgs.push('--mount', `type=tmpfs,destination=/workspace/${mount.alias}/.git,tmpfs-size=1m`);
191
+ console.log(` - ${mount.alias}: ${mount.path} (git repo, .git hidden)`);
192
+ }
193
+ else {
194
+ console.log(` - ${mount.alias}: ${mount.path} (not a git repo)`);
195
+ }
196
+ }
197
+ }
198
+ else {
199
+ // Backward compatibility: single project mode
200
+ dockerArgs.push('-v', `${projectPath}:/workspace`);
201
+ // Hide .git only if it exists
202
+ const gitDir = path_1.default.join(projectPath, '.git');
203
+ if (fs_1.default.existsSync(gitDir)) {
204
+ dockerArgs.push('--mount', 'type=tmpfs,destination=/workspace/.git,tmpfs-size=1m');
205
+ console.log(`[runTask] Mounting: ${projectPath} (git repo, .git hidden)`);
206
+ }
207
+ else {
208
+ console.log(`[runTask] Mounting: ${projectPath} (not a git repo)`);
209
+ }
210
+ }
180
211
  // Add authentication based on type
181
212
  if (auth.type === 'oauth') {
182
213
  // Mount the Claude config directory for OAuth
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/docker/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/docker/manager.ts"],"names":[],"mappings":";;;;;AA6EA,gDAEC;AAKD,kDAIC;AAYD,kDAoBC;AAMD,gDAoBC;AAED,8CAkBC;AAED,0BA0OC;AAED,0CAOC;AAED,sCAEC;AAED,sCAiBC;AAED,gDAaC;AAED,kCAQC;AA3cD,0DAA+B;AAC/B,mCAAsC;AACtC,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AACpB,iDAA8D;AAC9D,6CAAgF;AAEhF,4BAA4B;AAC5B,SAAS,eAAe;IACtB,+CAA+C;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG;QAClB,sBAAsB;QACtB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,8BAA8B;QACjD,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;AACrC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,mBAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAM,EAAE,CAAC;AACtE,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,uCAAuC;AACvC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,SAAS;IACT,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,gBAAgB;IAChB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,UAAU;CACvB,CAAC;AAEF,0BAA0B;AAC1B,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAG,KAAe;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5C,CAAC;AAED,oDAAoD;AACpD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAC;AASxD;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAClE,OAAO,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC;AAYD,SAAgB,mBAAmB;IACjC,iDAAiD;IACjD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,kBAAkB,EAAE;SAChC,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM;SACP,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB;IAChC,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IAEnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2CAA2C;YAC3C,8DAA8D;YAC9D,uBAAuB;YACvB,uCAAuC,SAAS,MAAM;YACtD,4BAA4B;YAC5B,yCAAyC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,SAAiB;IAC5E,MAAM,SAAS,GAAG,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;IAChD,MAAM,cAAc,GAAG,IAAA,8BAAiB,EAAC,WAAW,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,cAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAErD,kEAAkE;IAClE,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,mBAAmB,SAAS,QAAQ,cAAc,KAAK,EAAE;YAChE,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAA0B,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,MAAc,EACd,eAAwB,CAAE,+CAA+C;;IAEzE,MAAM,SAAS,GAAG,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;IAEhD,iFAAiF;IACjF,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,wBAAwB,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,qBAAY,EAAyB,CAAC;IAE7D,0DAA0D;IAC1D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,YAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,WAAW,CAAC,CAAC;IAE7C,6BAA6B;IAC7B,MAAM,UAAU,GAAG;QACjB,KAAK;QACL,MAAM;QACN,cAAc,EAAE,WAAW;QAC3B,0CAA0C;QAC1C,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,kBAAkB;KACzB,CAAC;IAEF,4BAA4B;IAC5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,MAAM,eAAe,CAAC,CAAC;QAChE,6DAA6D;QAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,qDAAqD;YACrD,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,IAAI,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,qCAAqC,KAAK,CAAC,KAAK,qBAAqB,CAAC,CAAC;gBAClG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,0BAA0B,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,aAAa,CAAC,CAAC;QACnD,8BAA8B;QAC9B,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,sDAAsD,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,0BAA0B,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,mBAAmB,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,8CAA8C;QAC9C,uFAAuF;QACvF,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,8BAA8B,CAAC,CAAC;QACvE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;QAEvE,mEAAmE;QACnE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,gCAAgC,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,eAAe;QACf,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,uBAAuB,CAAC,CAAC;IAC/D,CAAC;IAED,yCAAyC;IACzC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAE,wDAAwD;IAC5G,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAClD,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,gCAAgC,CAAC,CAAC;IAEpE,4CAA4C;IAC5C,IAAI,eAAe,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,MAAM,aAAa,GAAG,IAAA,qBAAK,EAAC,QAAQ,EAAE,UAAU,EAAE;QAChD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAEzE,+DAA+D;IAC/D,kEAAkE;IAClE,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAE1B,oCAAoC;IACpC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE3C,kDAAkD;IAClD,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,CAAC;IAE/C,mCAAmC;IACnC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B;QACzF,MAAM,IAAI,QAAQ,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,iCAAiC;QAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE/B,6DAA6D;gBAC7D,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEtG,gDAAgD;gBAChD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBAED,iEAAiE;gBACjE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBACzD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAC9D,kCAAkC;4BAClC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACrC,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BACrC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4BAChD,6BAA6B;4BAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,KAAK,CAAC,IAAI,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;4BACnF,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;4BAE1C,sCAAsC;4BACtC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;oCAC9C,CAAC,CAAC,KAAK,CAAC,KAAK;oCACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gCACzC,+CAA+C;gCAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oCACjD,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gCACnF,CAAC;qCAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oCAC1D,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gCAC1F,CAAC;qCAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oCAC3D,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gCAC3F,CAAC;qCAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oCAC1D,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gCAC5F,CAAC;qCAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oCACjC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gCAC9D,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;oBAC3D,gDAAgD;oBAChD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gCAC/C,CAAC,CAAC,KAAK,CAAC,OAAO;gCACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAClC,sEAAsE;4BACtE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;4BACvC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,yBAAyB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;wBAChF,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,wBAAwB;oBACxB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1E,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;wBAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACvD,uBAAuB;oBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9G,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,CAAC;gBAC1C,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,4BAA4B;oBAC5B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAClB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpF,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;gBAC7B,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;QAChD,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QACvC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrC,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,MAAc;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,6DAA6D;QAC7D,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAA6C,CAAC;QAC5D,wDAAwD;QACxD,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,IAAI,CAAC;QACH,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,oCAAoC;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,+CAA+C,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzG,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,MAAM,SAAS,GAAG,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,wBAAwB,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -16,7 +16,47 @@ export interface GitDiff {
16
16
  staged: string;
17
17
  unstaged: string;
18
18
  }
19
+ export interface GitBranch {
20
+ name: string;
21
+ current: boolean;
22
+ }
23
+ export interface CommitResult {
24
+ hash: string;
25
+ message: string;
26
+ }
19
27
  export declare function isGitRepo(projectPath: string): boolean;
28
+ /**
29
+ * List all local branches
30
+ */
31
+ export declare function listBranches(projectPath: string): Promise<GitBranch[]>;
32
+ /**
33
+ * Create a new branch
34
+ */
35
+ export declare function createBranch(projectPath: string, branchName: string, checkout?: boolean): Promise<void>;
36
+ /**
37
+ * Checkout an existing branch
38
+ */
39
+ export declare function checkoutBranch(projectPath: string, branchName: string): Promise<void>;
40
+ /**
41
+ * Stage files for commit
42
+ */
43
+ export declare function stageFiles(projectPath: string, files: string[]): Promise<void>;
44
+ /**
45
+ * Stage all changes
46
+ */
47
+ export declare function stageAll(projectPath: string): Promise<void>;
48
+ /**
49
+ * Unstage files
50
+ */
51
+ export declare function unstageFiles(projectPath: string, files: string[]): Promise<void>;
52
+ /**
53
+ * Unstage all files
54
+ */
55
+ export declare function unstageAll(projectPath: string): Promise<void>;
56
+ /**
57
+ * Commit staged changes
58
+ */
59
+ export declare function commit(projectPath: string, message: string): Promise<CommitResult>;
20
60
  export declare function getGitStatus(projectPath: string): Promise<GitStatus>;
21
61
  export declare function getGitDiff(projectPath: string, staged?: boolean): Promise<string>;
22
62
  export declare function getGitDiffs(projectPath: string): Promise<GitDiff>;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/git/status.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAGtD;AAMD,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuG1E;AAED,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAa9F;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAaD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,eAAe,CAAC,CA0D1B"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/git/status.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACnE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAYtD;AAMD;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAiB5E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnH;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBxF;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuG1E;AAED,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAY9F;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAaD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,eAAe,CAAC,CA0D1B"}
@@ -4,6 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isGitRepo = isGitRepo;
7
+ exports.listBranches = listBranches;
8
+ exports.createBranch = createBranch;
9
+ exports.checkoutBranch = checkoutBranch;
10
+ exports.stageFiles = stageFiles;
11
+ exports.stageAll = stageAll;
12
+ exports.unstageFiles = unstageFiles;
13
+ exports.unstageAll = unstageAll;
14
+ exports.commit = commit;
7
15
  exports.getGitStatus = getGitStatus;
8
16
  exports.getGitDiff = getGitDiff;
9
17
  exports.getGitDiffs = getGitDiffs;
@@ -12,12 +20,124 @@ const simple_git_1 = __importDefault(require("simple-git"));
12
20
  const path_1 = __importDefault(require("path"));
13
21
  const fs_1 = __importDefault(require("fs"));
14
22
  function isGitRepo(projectPath) {
15
- const gitDir = path_1.default.join(projectPath, '.git');
16
- return fs_1.default.existsSync(gitDir);
23
+ try {
24
+ const gitDir = path_1.default.join(projectPath, '.git');
25
+ if (!fs_1.default.existsSync(gitDir)) {
26
+ return false;
27
+ }
28
+ // Check if it's a directory (normal repo) or file (worktree/submodule)
29
+ const stat = fs_1.default.statSync(gitDir);
30
+ return stat.isDirectory() || stat.isFile();
31
+ }
32
+ catch {
33
+ return false;
34
+ }
17
35
  }
18
36
  function createGit(projectPath) {
19
37
  return (0, simple_git_1.default)(projectPath, { binary: 'git', maxConcurrentProcesses: 6 });
20
38
  }
39
+ /**
40
+ * List all local branches
41
+ */
42
+ async function listBranches(projectPath) {
43
+ if (!isGitRepo(projectPath)) {
44
+ return [];
45
+ }
46
+ try {
47
+ const git = createGit(projectPath);
48
+ const branchSummary = await git.branchLocal();
49
+ return branchSummary.all.map(name => ({
50
+ name,
51
+ current: name === branchSummary.current,
52
+ }));
53
+ }
54
+ catch {
55
+ // Not a valid git repo - return empty
56
+ return [];
57
+ }
58
+ }
59
+ /**
60
+ * Create a new branch
61
+ */
62
+ async function createBranch(projectPath, branchName, checkout = true) {
63
+ if (!isGitRepo(projectPath)) {
64
+ throw new Error('Not a git repository');
65
+ }
66
+ const git = createGit(projectPath);
67
+ if (checkout) {
68
+ await git.checkoutLocalBranch(branchName);
69
+ }
70
+ else {
71
+ await git.branch([branchName]);
72
+ }
73
+ }
74
+ /**
75
+ * Checkout an existing branch
76
+ */
77
+ async function checkoutBranch(projectPath, branchName) {
78
+ if (!isGitRepo(projectPath)) {
79
+ throw new Error('Not a git repository');
80
+ }
81
+ const git = createGit(projectPath);
82
+ await git.checkout(branchName);
83
+ }
84
+ /**
85
+ * Stage files for commit
86
+ */
87
+ async function stageFiles(projectPath, files) {
88
+ if (!isGitRepo(projectPath)) {
89
+ throw new Error('Not a git repository');
90
+ }
91
+ const git = createGit(projectPath);
92
+ await git.add(files);
93
+ }
94
+ /**
95
+ * Stage all changes
96
+ */
97
+ async function stageAll(projectPath) {
98
+ if (!isGitRepo(projectPath)) {
99
+ throw new Error('Not a git repository');
100
+ }
101
+ const git = createGit(projectPath);
102
+ await git.add('-A');
103
+ }
104
+ /**
105
+ * Unstage files
106
+ */
107
+ async function unstageFiles(projectPath, files) {
108
+ if (!isGitRepo(projectPath)) {
109
+ throw new Error('Not a git repository');
110
+ }
111
+ const git = createGit(projectPath);
112
+ await git.reset(['HEAD', '--', ...files]);
113
+ }
114
+ /**
115
+ * Unstage all files
116
+ */
117
+ async function unstageAll(projectPath) {
118
+ if (!isGitRepo(projectPath)) {
119
+ throw new Error('Not a git repository');
120
+ }
121
+ const git = createGit(projectPath);
122
+ await git.reset(['HEAD']);
123
+ }
124
+ /**
125
+ * Commit staged changes
126
+ */
127
+ async function commit(projectPath, message) {
128
+ if (!isGitRepo(projectPath)) {
129
+ throw new Error('Not a git repository');
130
+ }
131
+ if (!message.trim()) {
132
+ throw new Error('Commit message cannot be empty');
133
+ }
134
+ const git = createGit(projectPath);
135
+ const result = await git.commit(message);
136
+ return {
137
+ hash: result.commit,
138
+ message: message,
139
+ };
140
+ }
21
141
  async function getGitStatus(projectPath) {
22
142
  if (!isGitRepo(projectPath)) {
23
143
  return {
@@ -100,8 +220,8 @@ async function getGitStatus(projectPath) {
100
220
  hasUntrackedFiles,
101
221
  };
102
222
  }
103
- catch (err) {
104
- console.error('Error getting git status:', err);
223
+ catch {
224
+ // Not a valid git repo or git error - return as non-repo
105
225
  return {
106
226
  isRepo: false,
107
227
  branch: null,
@@ -122,8 +242,7 @@ async function getGitDiff(projectPath, staged = false) {
122
242
  const options = staged ? ['--cached'] : [];
123
243
  return await git.diff(options);
124
244
  }
125
- catch (err) {
126
- console.error('Error getting git diff:', err);
245
+ catch {
127
246
  return '';
128
247
  }
129
248
  }
@@ -200,8 +319,8 @@ async function getFileDiffContent(projectPath, filePath, staged) {
200
319
  }
201
320
  }
202
321
  }
203
- catch (err) {
204
- console.error('Error getting file diff content:', err);
322
+ catch {
323
+ // Git error - return empty content
205
324
  }
206
325
  return {
207
326
  oldContent,