@hexidecibel/companion 0.0.1 → 0.1.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 (110) hide show
  1. package/dist/__tests__/task-parser.test.js +29 -29
  2. package/dist/__tests__/task-parser.test.js.map +1 -1
  3. package/dist/anthropic-usage.d.ts.map +1 -1
  4. package/dist/anthropic-usage.js +1 -1
  5. package/dist/anthropic-usage.js.map +1 -1
  6. package/dist/cert-generator.d.ts.map +1 -1
  7. package/dist/cert-generator.js +4 -21
  8. package/dist/cert-generator.js.map +1 -1
  9. package/dist/cli.d.ts +9 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +413 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +1 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/escalation.d.ts +51 -0
  17. package/dist/escalation.d.ts.map +1 -0
  18. package/dist/escalation.js +198 -0
  19. package/dist/escalation.js.map +1 -0
  20. package/dist/index.js +67 -30
  21. package/dist/index.js.map +1 -1
  22. package/dist/input-injector.d.ts.map +1 -1
  23. package/dist/input-injector.js +9 -5
  24. package/dist/input-injector.js.map +1 -1
  25. package/dist/notification-store.d.ts +35 -0
  26. package/dist/notification-store.d.ts.map +1 -0
  27. package/dist/notification-store.js +272 -0
  28. package/dist/notification-store.js.map +1 -0
  29. package/dist/parser.d.ts +15 -1
  30. package/dist/parser.d.ts.map +1 -1
  31. package/dist/parser.js +106 -61
  32. package/dist/parser.js.map +1 -1
  33. package/dist/push.d.ts +18 -26
  34. package/dist/push.d.ts.map +1 -1
  35. package/dist/push.js +90 -184
  36. package/dist/push.js.map +1 -1
  37. package/dist/qr-server.d.ts.map +1 -1
  38. package/dist/qr-server.js +159 -139
  39. package/dist/qr-server.js.map +1 -1
  40. package/dist/rules-engine.d.ts +20 -0
  41. package/dist/rules-engine.d.ts.map +1 -0
  42. package/dist/rules-engine.js +71 -0
  43. package/dist/rules-engine.js.map +1 -0
  44. package/dist/scaffold/claude-commands.d.ts +18 -0
  45. package/dist/scaffold/claude-commands.d.ts.map +1 -0
  46. package/dist/scaffold/claude-commands.js +352 -0
  47. package/dist/scaffold/claude-commands.js.map +1 -0
  48. package/dist/scaffold/generator.d.ts.map +1 -1
  49. package/dist/scaffold/generator.js +26 -1
  50. package/dist/scaffold/generator.js.map +1 -1
  51. package/dist/scaffold/scorer.d.ts +19 -0
  52. package/dist/scaffold/scorer.d.ts.map +1 -0
  53. package/dist/scaffold/scorer.js +92 -0
  54. package/dist/scaffold/scorer.js.map +1 -0
  55. package/dist/scaffold/templates/go-cli.d.ts +3 -0
  56. package/dist/scaffold/templates/go-cli.d.ts.map +1 -0
  57. package/dist/scaffold/templates/go-cli.js +249 -0
  58. package/dist/scaffold/templates/go-cli.js.map +1 -0
  59. package/dist/scaffold/templates/index.d.ts.map +1 -1
  60. package/dist/scaffold/templates/index.js +8 -2
  61. package/dist/scaffold/templates/index.js.map +1 -1
  62. package/dist/scaffold/templates/nextjs.d.ts +3 -0
  63. package/dist/scaffold/templates/nextjs.d.ts.map +1 -0
  64. package/dist/scaffold/templates/nextjs.js +336 -0
  65. package/dist/scaffold/templates/nextjs.js.map +1 -0
  66. package/dist/scaffold/templates/node-express.d.ts.map +1 -1
  67. package/dist/scaffold/templates/node-express.js +170 -157
  68. package/dist/scaffold/templates/node-express.js.map +1 -1
  69. package/dist/scaffold/templates/python-fastapi.d.ts.map +1 -1
  70. package/dist/scaffold/templates/python-fastapi.js +234 -221
  71. package/dist/scaffold/templates/python-fastapi.js.map +1 -1
  72. package/dist/scaffold/templates/react-mui-website.d.ts.map +1 -1
  73. package/dist/scaffold/templates/react-mui-website.js +337 -324
  74. package/dist/scaffold/templates/react-mui-website.js.map +1 -1
  75. package/dist/scaffold/templates/react-typescript.d.ts.map +1 -1
  76. package/dist/scaffold/templates/react-typescript.js +219 -206
  77. package/dist/scaffold/templates/react-typescript.js.map +1 -1
  78. package/dist/scaffold/templates/typescript-library.d.ts +3 -0
  79. package/dist/scaffold/templates/typescript-library.d.ts.map +1 -0
  80. package/dist/scaffold/templates/typescript-library.js +241 -0
  81. package/dist/scaffold/templates/typescript-library.js.map +1 -0
  82. package/dist/scaffold/types.d.ts +7 -0
  83. package/dist/scaffold/types.d.ts.map +1 -1
  84. package/dist/subagent-watcher.d.ts.map +1 -1
  85. package/dist/subagent-watcher.js +3 -3
  86. package/dist/subagent-watcher.js.map +1 -1
  87. package/dist/tmux-manager.d.ts +37 -0
  88. package/dist/tmux-manager.d.ts.map +1 -1
  89. package/dist/tmux-manager.js +165 -5
  90. package/dist/tmux-manager.js.map +1 -1
  91. package/dist/tool-config.d.ts.map +1 -1
  92. package/dist/tool-config.js +2 -2
  93. package/dist/tool-config.js.map +1 -1
  94. package/dist/types.d.ts +85 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js +18 -0
  97. package/dist/types.js.map +1 -1
  98. package/dist/watcher.d.ts +7 -0
  99. package/dist/watcher.d.ts.map +1 -1
  100. package/dist/watcher.js +118 -9
  101. package/dist/watcher.js.map +1 -1
  102. package/dist/websocket.d.ts +16 -2
  103. package/dist/websocket.d.ts.map +1 -1
  104. package/dist/websocket.js +758 -117
  105. package/dist/websocket.js.map +1 -1
  106. package/dist/work-group-manager.d.ts +69 -0
  107. package/dist/work-group-manager.d.ts.map +1 -0
  108. package/dist/work-group-manager.js +610 -0
  109. package/dist/work-group-manager.js.map +1 -0
  110. package/package.json +1 -1
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typescriptLibraryTemplate = void 0;
4
+ exports.typescriptLibraryTemplate = {
5
+ id: 'typescript-library',
6
+ name: 'TypeScript Library',
7
+ description: 'Publishable npm package with tsup bundler and vitest',
8
+ type: 'library',
9
+ icon: '📦',
10
+ tags: ['typescript', 'npm', 'library', 'package', 'tsup'],
11
+ scoring: {
12
+ primaryKeywords: ['npm', 'package', 'library', 'module', 'tsup'],
13
+ secondaryKeywords: ['publish', 'bundle', 'sdk', 'utility', 'reusable', 'export'],
14
+ useCases: [
15
+ 'npm package',
16
+ 'typescript library',
17
+ 'utility package',
18
+ 'npm utility',
19
+ 'shared library',
20
+ 'sdk package',
21
+ ],
22
+ typeSignals: { library: 3, package: 3, npm: 3, sdk: 2, module: 2, utility: 1 },
23
+ },
24
+ files: [
25
+ {
26
+ path: 'package.json',
27
+ template: `{
28
+ "name": "{{projectName}}",
29
+ "version": "0.1.0",
30
+ "description": "{{projectDescription}}",
31
+ "main": "./dist/index.js",
32
+ "module": "./dist/index.mjs",
33
+ "types": "./dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "import": "./dist/index.mjs",
37
+ "require": "./dist/index.js",
38
+ "types": "./dist/index.d.ts"
39
+ }
40
+ },
41
+ "files": ["dist"],
42
+ "scripts": {
43
+ "build": "tsup",
44
+ "dev": "tsup --watch",
45
+ "test": "vitest",
46
+ "test:run": "vitest run",
47
+ "lint": "eslint src/",
48
+ "typecheck": "tsc --noEmit",
49
+ "prepublishOnly": "npm run build"
50
+ },
51
+ "devDependencies": {
52
+ "eslint": "^9.13.0",
53
+ "tsup": "^8.3.0",
54
+ "typescript": "^5.6.3",
55
+ "vitest": "^2.1.4"
56
+ },
57
+ "keywords": [],
58
+ "license": "MIT"
59
+ }`,
60
+ },
61
+ {
62
+ path: 'tsconfig.json',
63
+ template: `{
64
+ "compilerOptions": {
65
+ "target": "ES2020",
66
+ "module": "ESNext",
67
+ "moduleResolution": "bundler",
68
+ "declaration": true,
69
+ "declarationMap": true,
70
+ "sourceMap": true,
71
+ "outDir": "./dist",
72
+ "rootDir": "./src",
73
+ "strict": true,
74
+ "esModuleInterop": true,
75
+ "skipLibCheck": true,
76
+ "forceConsistentCasingInFileNames": true,
77
+ "resolveJsonModule": true,
78
+ "isolatedModules": true
79
+ },
80
+ "include": ["src"],
81
+ "exclude": ["node_modules", "dist", "**/*.test.ts"]
82
+ }`,
83
+ },
84
+ {
85
+ path: 'tsup.config.ts',
86
+ template: `import { defineConfig } from 'tsup';
87
+
88
+ export default defineConfig({
89
+ entry: ['src/index.ts'],
90
+ format: ['cjs', 'esm'],
91
+ dts: true,
92
+ clean: true,
93
+ sourcemap: true,
94
+ });`,
95
+ },
96
+ {
97
+ path: 'src/index.ts',
98
+ template: `/**
99
+ * {{projectName}}
100
+ * {{projectDescription}}
101
+ */
102
+
103
+ export { greet } from './greet';
104
+ export type { GreetOptions } from './greet';`,
105
+ },
106
+ {
107
+ path: 'src/greet.ts',
108
+ template: `export interface GreetOptions {
109
+ name: string;
110
+ greeting?: string;
111
+ }
112
+
113
+ /**
114
+ * Generate a greeting message.
115
+ */
116
+ export function greet(options: GreetOptions): string {
117
+ const { name, greeting = 'Hello' } = options;
118
+ return \`\${greeting}, \${name}!\`;
119
+ }`,
120
+ },
121
+ {
122
+ path: 'src/__tests__/greet.test.ts',
123
+ template: `import { describe, it, expect } from 'vitest';
124
+ import { greet } from '../greet';
125
+
126
+ describe('greet', () => {
127
+ it('returns default greeting', () => {
128
+ expect(greet({ name: 'World' })).toBe('Hello, World!');
129
+ });
130
+
131
+ it('uses custom greeting', () => {
132
+ expect(greet({ name: 'World', greeting: 'Hi' })).toBe('Hi, World!');
133
+ });
134
+ });`,
135
+ },
136
+ {
137
+ path: '.gitignore',
138
+ template: `# Dependencies
139
+ node_modules
140
+
141
+ # Build
142
+ dist
143
+
144
+ # Coverage
145
+ coverage
146
+
147
+ # Editor
148
+ .vscode/*
149
+ !.vscode/extensions.json
150
+ .idea
151
+
152
+ # Logs
153
+ *.log
154
+ npm-debug.log*
155
+
156
+ # OS
157
+ .DS_Store`,
158
+ },
159
+ {
160
+ path: 'CLAUDE.md',
161
+ template: `# {{projectName}}
162
+
163
+ {{projectDescription}}
164
+
165
+ ## Tech Stack
166
+ - TypeScript with strict mode
167
+ - tsup for bundling (CJS + ESM)
168
+ - vitest for testing
169
+
170
+ ## Project Structure
171
+ \`\`\`
172
+ src/
173
+ ├── index.ts # Public API exports
174
+ ├── greet.ts # Example module
175
+ └── __tests__/
176
+ └── greet.test.ts # Tests
177
+ \`\`\`
178
+
179
+ ## Commands
180
+ - \`npm run build\` - Build with tsup (CJS + ESM + types)
181
+ - \`npm run dev\` - Watch mode
182
+ - \`npm test\` - Run tests in watch mode
183
+ - \`npm run test:run\` - Run tests once
184
+ - \`npm run typecheck\` - Type check
185
+ - \`npm run lint\` - Lint
186
+
187
+ ## Development Notes
188
+ - Export all public API from \`src/index.ts\`
189
+ - Add new modules in \`src/\`
190
+ - Add tests in \`src/__tests__/\`
191
+ - Package supports both CJS and ESM consumers
192
+ - Run \`npm publish\` to publish (builds automatically via prepublishOnly)`,
193
+ },
194
+ {
195
+ path: 'README.md',
196
+ template: `# {{projectName}}
197
+
198
+ {{projectDescription}}
199
+
200
+ ## Install
201
+
202
+ \`\`\`bash
203
+ npm install {{projectName}}
204
+ \`\`\`
205
+
206
+ ## Usage
207
+
208
+ \`\`\`typescript
209
+ import { greet } from '{{projectName}}';
210
+
211
+ console.log(greet({ name: 'World' }));
212
+ // => "Hello, World!"
213
+ \`\`\`
214
+
215
+ ## API
216
+
217
+ ### \`greet(options)\`
218
+
219
+ Generate a greeting message.
220
+
221
+ - \`options.name\` - Name to greet (required)
222
+ - \`options.greeting\` - Custom greeting prefix (default: "Hello")
223
+
224
+ ## Development
225
+
226
+ \`\`\`bash
227
+ npm install
228
+ npm test
229
+ npm run build
230
+ \`\`\``,
231
+ },
232
+ ],
233
+ postCreate: [
234
+ {
235
+ command: 'npm install',
236
+ description: 'Installing dependencies',
237
+ },
238
+ ],
239
+ recommendedSkills: ['test', 'build'],
240
+ };
241
+ //# sourceMappingURL=typescript-library.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-library.js","sourceRoot":"","sources":["../../../src/scaffold/templates/typescript-library.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAkB;IACtD,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,sDAAsD;IACnE,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IACzD,OAAO,EAAE;QACP,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;QAChE,iBAAiB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;QAChF,QAAQ,EAAE;YACR,aAAa;YACb,oBAAoB;YACpB,iBAAiB;YACjB,aAAa;YACb,gBAAgB;YAChB,aAAa;SACd;QACD,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;KAC/E;IACD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCd;SACG;QACD;YACE,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;EAmBd;SACG;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE;;;;;;;;IAQZ;SACC;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;6CAM6B;SACxC;QACD;YACE,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;;;;;;;;;;;EAWd;SACG;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE;;;;;;;;;;;IAWZ;SACC;QACD;YACE,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;UAmBN;SACL;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EA+B2D;SACtE;QACD;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCT;SACF;KACF;IACD,UAAU,EAAE;QACV;YACE,OAAO,EAAE,aAAa;YACtB,WAAW,EAAE,yBAAyB;SACvC;KACF;IACD,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;CACrC,CAAC"}
@@ -8,6 +8,12 @@ export interface ScaffoldFile {
8
8
  path: string;
9
9
  content: string;
10
10
  }
11
+ export interface TemplateScoring {
12
+ primaryKeywords: string[];
13
+ secondaryKeywords: string[];
14
+ useCases: string[];
15
+ typeSignals: Record<string, number>;
16
+ }
11
17
  export interface StackTemplate {
12
18
  id: string;
13
19
  name: string;
@@ -15,6 +21,7 @@ export interface StackTemplate {
15
21
  type: 'frontend' | 'backend' | 'fullstack' | 'library' | 'cli';
16
22
  icon: string;
17
23
  tags: string[];
24
+ scoring?: TemplateScoring;
18
25
  files: {
19
26
  path: string;
20
27
  template: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scaffold/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAEJ,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IAEJ,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scaffold/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IAC/D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAEJ,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IAEJ,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,WAAW,EAAE,OAAO,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-watcher.d.ts","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA+BrE,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,eAAe,CAA+B;gBAE1C,QAAQ,EAAE,MAAM;IAM5B,OAAO,CAAC,OAAO;IAcf,KAAK,IAAI,IAAI;IA8Bb,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,iBAAiB;IA6FzB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAuD3C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIlD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;QAC/B,KAAK,EAAE,QAAQ,CAAC;QAChB,UAAU,EAAE,qBAAqB,EAAE,CAAC;KACrC,GAAG,IAAI;CAyCT"}
1
+ {"version":3,"file":"subagent-watcher.d.ts","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA+BrE,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,eAAe,CAA+B;gBAE1C,QAAQ,EAAE,MAAM;IAM5B,OAAO,CAAC,OAAO;IAcf,KAAK,IAAI,IAAI;IA8Bb,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,iBAAiB;IA8FzB,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;IAwD3C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIlD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;QAC/B,KAAK,EAAE,QAAQ,CAAC;QAChB,UAAU,EAAE,qBAAqB,EAAE,CAAC;KACrC,GAAG,IAAI;CAyCT"}
@@ -126,7 +126,7 @@ class SubAgentWatcher extends events_1.EventEmitter {
126
126
  if (!fs.existsSync(filePath))
127
127
  return null;
128
128
  const content = fs.readFileSync(filePath, 'utf-8');
129
- const lines = content.split('\n').filter(line => line.trim());
129
+ const lines = content.split('\n').filter((line) => line.trim());
130
130
  if (lines.length === 0)
131
131
  return null;
132
132
  let agentId = '';
@@ -135,7 +135,7 @@ class SubAgentWatcher extends events_1.EventEmitter {
135
135
  let startedAt = 0;
136
136
  let completedAt;
137
137
  let description = '';
138
- let subagentType = '';
138
+ const subagentType = '';
139
139
  let messageCount = 0;
140
140
  let lastActivity = 0;
141
141
  let lastContent = '';
@@ -157,7 +157,7 @@ class SubAgentWatcher extends events_1.EventEmitter {
157
157
  messageCount++;
158
158
  const content = typeof entry.message.content === 'string'
159
159
  ? entry.message.content
160
- : entry.message.content.map(c => c.text || '').join('');
160
+ : entry.message.content.map((c) => c.text || '').join('');
161
161
  if (!description && content) {
162
162
  // Use first 100 chars of first user message as description
163
163
  description = content.substring(0, 100);
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-watcher.js","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-watcher.js","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,17 @@ export interface TmuxSessionInfo {
5
5
  windows: number;
6
6
  workingDir?: string;
7
7
  }
8
+ export interface WorktreeInfo {
9
+ path: string;
10
+ branch: string;
11
+ isMain: boolean;
12
+ }
13
+ export interface WorktreeResult {
14
+ success: boolean;
15
+ worktreePath?: string;
16
+ branch?: string;
17
+ error?: string;
18
+ }
8
19
  export declare class TmuxManager {
9
20
  private sessionPrefix;
10
21
  constructor(sessionPrefix?: string);
@@ -42,6 +53,12 @@ export declare class TmuxManager {
42
53
  * Send input to a specific session
43
54
  */
44
55
  sendKeys(sessionName: string, keys: string): Promise<boolean>;
56
+ /**
57
+ * Send raw (non-literal) keys to a tmux session.
58
+ * Unlike sendKeys() which uses -l for literal text, this sends key names
59
+ * directly so tmux interprets them (e.g. "Up", "Down", "C-c", "Enter").
60
+ */
61
+ sendRawKeys(sessionName: string, keys: string[]): Promise<boolean>;
45
62
  /**
46
63
  * Send Enter key to a session
47
64
  */
@@ -67,5 +84,25 @@ export declare class TmuxManager {
67
84
  * Generate a unique session name based on directory
68
85
  */
69
86
  generateSessionName(workingDir: string): string;
87
+ /**
88
+ * Check if a directory is a git repository
89
+ */
90
+ isGitRepo(dir: string): Promise<boolean>;
91
+ /**
92
+ * Create a git worktree from a repository directory.
93
+ * Returns the path to the new worktree and the branch name.
94
+ */
95
+ createWorktree(repoDir: string, branchName?: string): Promise<WorktreeResult>;
96
+ /**
97
+ * Remove a git worktree and its directory.
98
+ */
99
+ removeWorktree(repoDir: string, worktreePath: string): Promise<{
100
+ success: boolean;
101
+ error?: string;
102
+ }>;
103
+ /**
104
+ * List all worktrees for a git repository.
105
+ */
106
+ listWorktrees(dir: string): Promise<WorktreeInfo[]>;
70
107
  }
71
108
  //# sourceMappingURL=tmux-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,GAAE,MAAoB;IAI/C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAwChD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASnD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9C;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0ChD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC9E;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBnE;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUtD;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1D;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW1D;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAW5E;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAMhD"}
1
+ {"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,GAAE,MAAoB;IAI/C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAwChD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASnD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhD;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW9C;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoChD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC9E;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBnE;;;;OAIG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUtD;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1D;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAc1D;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAW5E;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAS/C;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9C;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BnF;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAUhD;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CA8C1D"}
@@ -1,8 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.TmuxManager = void 0;
4
37
  const child_process_1 = require("child_process");
5
38
  const util_1 = require("util");
39
+ const path = __importStar(require("path"));
6
40
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
7
41
  class TmuxManager {
8
42
  sessionPrefix;
@@ -101,7 +135,7 @@ class TmuxManager {
101
135
  // Start CLI in the session if requested
102
136
  if (startCli) {
103
137
  // Small delay to let the session initialize
104
- await new Promise(resolve => setTimeout(resolve, 200));
138
+ await new Promise((resolve) => setTimeout(resolve, 200));
105
139
  // Send the CLI command
106
140
  await execAsync(`tmux send-keys -t "${safeName}" "claude" Enter`);
107
141
  console.log(`TmuxManager: Started CLI in session "${safeName}"`);
@@ -123,15 +157,15 @@ class TmuxManager {
123
157
  try {
124
158
  // Send Ctrl+C to interrupt any running operation
125
159
  await execAsync(`tmux send-keys -t "${name}" C-c`);
126
- await new Promise(resolve => setTimeout(resolve, 300));
160
+ await new Promise((resolve) => setTimeout(resolve, 300));
127
161
  // Send Ctrl+D to exit gracefully (preferred over "exit")
128
162
  await execAsync(`tmux send-keys -t "${name}" C-d`);
129
- await new Promise(resolve => setTimeout(resolve, 1000));
163
+ await new Promise((resolve) => setTimeout(resolve, 1000));
130
164
  // If still alive, try "exit" command
131
165
  const stillAlive = await this.sessionExists(name);
132
166
  if (stillAlive) {
133
167
  await execAsync(`tmux send-keys -t "${name}" "exit" Enter`);
134
- await new Promise(resolve => setTimeout(resolve, 500));
168
+ await new Promise((resolve) => setTimeout(resolve, 500));
135
169
  }
136
170
  }
137
171
  catch {
@@ -172,6 +206,28 @@ class TmuxManager {
172
206
  return false;
173
207
  }
174
208
  }
209
+ /**
210
+ * Send raw (non-literal) keys to a tmux session.
211
+ * Unlike sendKeys() which uses -l for literal text, this sends key names
212
+ * directly so tmux interprets them (e.g. "Up", "Down", "C-c", "Enter").
213
+ */
214
+ async sendRawKeys(sessionName, keys) {
215
+ try {
216
+ for (const key of keys) {
217
+ // Validate key contains only safe characters (alphanumeric, dash, plus for combos like C-c)
218
+ if (!/^[a-zA-Z0-9\-+]+$/.test(key)) {
219
+ console.error(`TmuxManager: Rejecting unsafe raw key: "${key}"`);
220
+ continue;
221
+ }
222
+ await execAsync(`tmux send-keys -t "${sessionName}" ${key}`);
223
+ }
224
+ return true;
225
+ }
226
+ catch (err) {
227
+ console.error(`TmuxManager: Failed to send raw keys to "${sessionName}":`, err);
228
+ return false;
229
+ }
230
+ }
175
231
  /**
176
232
  * Send Enter key to a session
177
233
  */
@@ -204,7 +260,10 @@ class TmuxManager {
204
260
  async listDirectories(basePath) {
205
261
  try {
206
262
  const { stdout } = await execAsync(`find "${basePath}" -maxdepth 1 -type d 2>/dev/null | head -50`);
207
- return stdout.trim().split('\n').filter(d => d && d !== basePath);
263
+ return stdout
264
+ .trim()
265
+ .split('\n')
266
+ .filter((d) => d && d !== basePath);
208
267
  }
209
268
  catch {
210
269
  return [];
@@ -238,6 +297,107 @@ class TmuxManager {
238
297
  const timestamp = Date.now().toString(36);
239
298
  return `${this.sessionPrefix}-${safeName}-${timestamp}`;
240
299
  }
300
+ // --- Git Worktree Support ---
301
+ /**
302
+ * Check if a directory is a git repository
303
+ */
304
+ async isGitRepo(dir) {
305
+ try {
306
+ await execAsync('git rev-parse --is-inside-work-tree', { cwd: dir });
307
+ return true;
308
+ }
309
+ catch {
310
+ return false;
311
+ }
312
+ }
313
+ /**
314
+ * Create a git worktree from a repository directory.
315
+ * Returns the path to the new worktree and the branch name.
316
+ */
317
+ async createWorktree(repoDir, branchName) {
318
+ // Verify it's a git repo
319
+ if (!(await this.isGitRepo(repoDir))) {
320
+ return { success: false, error: 'not a git repository' };
321
+ }
322
+ // Get the git root (in case repoDir is a subdirectory)
323
+ const { stdout: gitRoot } = await execAsync('git rev-parse --show-toplevel', { cwd: repoDir });
324
+ const rootDir = gitRoot.trim();
325
+ // Generate branch name if not provided
326
+ const branch = branchName || `wt-${Date.now().toString(36)}`;
327
+ const safeBranch = branch.replace(/[^a-zA-Z0-9_-]/g, '-');
328
+ // Worktree path: sibling directory named <repo>-wt-<branch>
329
+ const repoName = path.basename(rootDir);
330
+ const worktreePath = path.join(path.dirname(rootDir), `${repoName}-wt-${safeBranch}`);
331
+ try {
332
+ await execAsync(`git worktree add "${worktreePath}" -b "${safeBranch}"`, { cwd: rootDir });
333
+ return { success: true, worktreePath, branch: safeBranch };
334
+ }
335
+ catch (err) {
336
+ const message = err instanceof Error ? err.message : String(err);
337
+ return { success: false, error: message };
338
+ }
339
+ }
340
+ /**
341
+ * Remove a git worktree and its directory.
342
+ */
343
+ async removeWorktree(repoDir, worktreePath) {
344
+ try {
345
+ await execAsync(`git worktree remove "${worktreePath}" --force`, { cwd: repoDir });
346
+ return { success: true };
347
+ }
348
+ catch (err) {
349
+ const message = err instanceof Error ? err.message : String(err);
350
+ return { success: false, error: message };
351
+ }
352
+ }
353
+ /**
354
+ * List all worktrees for a git repository.
355
+ */
356
+ async listWorktrees(dir) {
357
+ if (!(await this.isGitRepo(dir))) {
358
+ return [];
359
+ }
360
+ try {
361
+ const { stdout } = await execAsync('git worktree list --porcelain', { cwd: dir });
362
+ const worktrees = [];
363
+ let current = {};
364
+ for (const line of stdout.split('\n')) {
365
+ if (line.startsWith('worktree ')) {
366
+ if (current.path) {
367
+ worktrees.push(current);
368
+ }
369
+ current = { path: line.replace('worktree ', ''), isMain: false };
370
+ }
371
+ else if (line.startsWith('branch ')) {
372
+ // branch refs/heads/main → main
373
+ const ref = line.replace('branch ', '');
374
+ current.branch = ref.replace('refs/heads/', '');
375
+ }
376
+ else if (line === 'bare') {
377
+ current.isMain = true;
378
+ }
379
+ else if (line === '') {
380
+ // Empty line ends a worktree entry
381
+ if (current.path) {
382
+ worktrees.push({
383
+ path: current.path,
384
+ branch: current.branch || 'HEAD',
385
+ isMain: current.isMain || false,
386
+ });
387
+ current = {};
388
+ }
389
+ }
390
+ }
391
+ // Mark the first worktree as main (it's the original repo)
392
+ if (worktrees.length > 0) {
393
+ worktrees[0].isMain = true;
394
+ }
395
+ return worktrees;
396
+ }
397
+ catch {
398
+ return [];
399
+ }
400
+ }
241
401
  }
242
402
  exports.TmuxManager = TmuxManager;
243
403
  //# sourceMappingURL=tmux-manager.js.map