@proletariat/cli 0.3.96 → 0.3.98

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 (206) hide show
  1. package/dist/commands/gc.d.ts +1 -0
  2. package/dist/commands/gc.js +31 -1
  3. package/dist/commands/gc.js.map +1 -1
  4. package/dist/commands/linear/connect.d.ts +5 -0
  5. package/dist/commands/linear/connect.js +84 -0
  6. package/dist/commands/linear/connect.js.map +1 -1
  7. package/dist/commands/orchestrate/index.js +18 -10
  8. package/dist/commands/orchestrate/index.js.map +1 -1
  9. package/dist/commands/qa/index.js +1 -1
  10. package/dist/commands/session/watch.d.ts +1 -0
  11. package/dist/commands/session/watch.js +46 -2
  12. package/dist/commands/session/watch.js.map +1 -1
  13. package/dist/commands/watch/index.d.ts +28 -0
  14. package/dist/commands/watch/index.js +172 -0
  15. package/dist/commands/watch/index.js.map +1 -0
  16. package/dist/commands/work/complete.d.ts +1 -0
  17. package/dist/commands/work/complete.js +38 -31
  18. package/dist/commands/work/complete.js.map +1 -1
  19. package/dist/commands/{ticket/index.d.ts → work/drop.d.ts} +5 -4
  20. package/dist/commands/work/drop.js +215 -0
  21. package/dist/commands/work/drop.js.map +1 -0
  22. package/dist/commands/work/linear.js +1 -1
  23. package/dist/commands/work/linear.js.map +1 -1
  24. package/dist/commands/work/ready.d.ts +1 -0
  25. package/dist/commands/work/ready.js +46 -30
  26. package/dist/commands/work/ready.js.map +1 -1
  27. package/dist/commands/work/ship.d.ts +1 -0
  28. package/dist/commands/work/ship.js +56 -40
  29. package/dist/commands/work/ship.js.map +1 -1
  30. package/dist/commands/work/start.d.ts +2 -0
  31. package/dist/commands/work/start.js +238 -83
  32. package/dist/commands/work/start.js.map +1 -1
  33. package/dist/commands/work/stop.d.ts +1 -0
  34. package/dist/commands/work/stop.js +40 -0
  35. package/dist/commands/work/stop.js.map +1 -1
  36. package/dist/lib/agents/commands.js +7 -5
  37. package/dist/lib/agents/commands.js.map +1 -1
  38. package/dist/lib/asana/client.d.ts +4 -1
  39. package/dist/lib/asana/client.js +15 -0
  40. package/dist/lib/asana/client.js.map +1 -1
  41. package/dist/lib/asana/index.d.ts +1 -1
  42. package/dist/lib/asana/types.d.ts +4 -0
  43. package/dist/lib/database/credential-store.js +1 -0
  44. package/dist/lib/database/credential-store.js.map +1 -1
  45. package/dist/lib/database/drizzle-schema.d.ts +17 -0
  46. package/dist/lib/database/drizzle-schema.js +1 -0
  47. package/dist/lib/database/drizzle-schema.js.map +1 -1
  48. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.d.ts +9 -0
  49. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js +23 -0
  50. package/dist/lib/database/migrations/0019_gc_artifact_cleanup.js.map +1 -0
  51. package/dist/lib/database/migrations/0020_transition_map.d.ts +2 -0
  52. package/dist/lib/database/migrations/0020_transition_map.js +27 -0
  53. package/dist/lib/database/migrations/0020_transition_map.js.map +1 -0
  54. package/dist/lib/database/migrations/index.js +4 -0
  55. package/dist/lib/database/migrations/index.js.map +1 -1
  56. package/dist/lib/execution/config.d.ts +10 -0
  57. package/dist/lib/execution/config.js +24 -0
  58. package/dist/lib/execution/config.js.map +1 -1
  59. package/dist/lib/execution/preflight.d.ts +51 -0
  60. package/dist/lib/execution/preflight.js +278 -0
  61. package/dist/lib/execution/preflight.js.map +1 -0
  62. package/dist/lib/execution/runners/prompt-builder.d.ts +6 -0
  63. package/dist/lib/execution/runners/prompt-builder.js +38 -7
  64. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  65. package/dist/lib/execution/session-utils.d.ts +23 -0
  66. package/dist/lib/execution/session-utils.js +69 -0
  67. package/dist/lib/execution/session-utils.js.map +1 -1
  68. package/dist/lib/execution/spawner.d.ts +11 -1
  69. package/dist/lib/execution/spawner.js +44 -16
  70. package/dist/lib/execution/spawner.js.map +1 -1
  71. package/dist/lib/execution/storage.d.ts +6 -0
  72. package/dist/lib/execution/storage.js +18 -0
  73. package/dist/lib/execution/storage.js.map +1 -1
  74. package/dist/lib/execution/ticket-refs.d.ts +71 -0
  75. package/dist/lib/execution/ticket-refs.js +125 -0
  76. package/dist/lib/execution/ticket-refs.js.map +1 -0
  77. package/dist/lib/execution/types.d.ts +7 -2
  78. package/dist/lib/execution/types.js +5 -3
  79. package/dist/lib/execution/types.js.map +1 -1
  80. package/dist/lib/external-issues/index.d.ts +1 -0
  81. package/dist/lib/external-issues/index.js +2 -0
  82. package/dist/lib/external-issues/index.js.map +1 -1
  83. package/dist/lib/external-issues/linear.js +1 -1
  84. package/dist/lib/external-issues/linear.js.map +1 -1
  85. package/dist/lib/external-issues/ticket-builder.d.ts +21 -0
  86. package/dist/lib/external-issues/ticket-builder.js +43 -0
  87. package/dist/lib/external-issues/ticket-builder.js.map +1 -0
  88. package/dist/lib/external-issues/work-start.js +1 -1
  89. package/dist/lib/external-issues/work-start.js.map +1 -1
  90. package/dist/lib/gc/index.d.ts +67 -6
  91. package/dist/lib/gc/index.js +293 -15
  92. package/dist/lib/gc/index.js.map +1 -1
  93. package/dist/lib/github/client.d.ts +84 -0
  94. package/dist/lib/github/client.js +123 -0
  95. package/dist/lib/github/client.js.map +1 -0
  96. package/dist/lib/github/config.d.ts +42 -0
  97. package/dist/lib/github/config.js +115 -0
  98. package/dist/lib/github/config.js.map +1 -0
  99. package/dist/lib/github/types.d.ts +71 -0
  100. package/dist/lib/github/types.js +50 -0
  101. package/dist/lib/github/types.js.map +1 -0
  102. package/dist/lib/jira/client.d.ts +113 -0
  103. package/dist/lib/jira/client.js +208 -0
  104. package/dist/lib/jira/client.js.map +1 -0
  105. package/dist/lib/jira/config.d.ts +9 -0
  106. package/dist/lib/jira/config.js +30 -0
  107. package/dist/lib/jira/config.js.map +1 -1
  108. package/dist/lib/jira/index.d.ts +6 -2
  109. package/dist/lib/jira/index.js +4 -2
  110. package/dist/lib/jira/index.js.map +1 -1
  111. package/dist/lib/jira/types.d.ts +118 -0
  112. package/dist/lib/jira/types.js +45 -0
  113. package/dist/lib/jira/types.js.map +1 -0
  114. package/dist/lib/linear/config.d.ts +10 -0
  115. package/dist/lib/linear/config.js +33 -0
  116. package/dist/lib/linear/config.js.map +1 -1
  117. package/dist/lib/mcp/tools/index.d.ts +0 -2
  118. package/dist/lib/mcp/tools/index.js +0 -2
  119. package/dist/lib/mcp/tools/index.js.map +1 -1
  120. package/dist/lib/orchestrate/index.d.ts +2 -0
  121. package/dist/lib/orchestrate/index.js +1 -0
  122. package/dist/lib/orchestrate/index.js.map +1 -1
  123. package/dist/lib/orchestrate/simple-poller.d.ts +57 -0
  124. package/dist/lib/orchestrate/simple-poller.js +324 -0
  125. package/dist/lib/orchestrate/simple-poller.js.map +1 -0
  126. package/dist/lib/pmo/storage/index.js +16 -5
  127. package/dist/lib/pmo/storage/index.js.map +1 -1
  128. package/dist/lib/prompt-json.d.ts +31 -0
  129. package/dist/lib/prompt-json.js.map +1 -1
  130. package/dist/lib/providers/asana-provider.d.ts +27 -0
  131. package/dist/lib/providers/asana-provider.js +426 -0
  132. package/dist/lib/providers/asana-provider.js.map +1 -0
  133. package/dist/lib/providers/auto-mapper.d.ts +45 -0
  134. package/dist/lib/providers/auto-mapper.js +138 -0
  135. package/dist/lib/providers/auto-mapper.js.map +1 -0
  136. package/dist/lib/providers/github-provider.d.ts +34 -0
  137. package/dist/lib/providers/github-provider.js +418 -0
  138. package/dist/lib/providers/github-provider.js.map +1 -0
  139. package/dist/lib/providers/index.d.ts +3 -0
  140. package/dist/lib/providers/index.js +3 -0
  141. package/dist/lib/providers/index.js.map +1 -1
  142. package/dist/lib/providers/jira-provider.d.ts +31 -0
  143. package/dist/lib/providers/jira-provider.js +383 -0
  144. package/dist/lib/providers/jira-provider.js.map +1 -0
  145. package/dist/lib/providers/linear-provider.js +6 -7
  146. package/dist/lib/providers/linear-provider.js.map +1 -1
  147. package/dist/lib/providers/resolver.js +54 -0
  148. package/dist/lib/providers/resolver.js.map +1 -1
  149. package/dist/lib/providers/state-intents.d.ts +20 -0
  150. package/dist/lib/providers/state-intents.js +61 -7
  151. package/dist/lib/providers/state-intents.js.map +1 -1
  152. package/dist/lib/providers/state-resolution.d.ts +15 -11
  153. package/dist/lib/providers/state-resolution.js +54 -48
  154. package/dist/lib/providers/state-resolution.js.map +1 -1
  155. package/dist/lib/providers/transition-map.d.ts +59 -0
  156. package/dist/lib/providers/transition-map.js +113 -0
  157. package/dist/lib/providers/transition-map.js.map +1 -0
  158. package/dist/lib/providers/types.d.ts +1 -1
  159. package/dist/lib/session/index.d.ts +3 -1
  160. package/dist/lib/session/index.js +3 -1
  161. package/dist/lib/session/index.js.map +1 -1
  162. package/dist/lib/session/tmux-watchdog.d.ts +157 -0
  163. package/dist/lib/session/tmux-watchdog.js +424 -0
  164. package/dist/lib/session/tmux-watchdog.js.map +1 -0
  165. package/dist/lib/session/watcher.d.ts +22 -4
  166. package/dist/lib/session/watcher.js +66 -8
  167. package/dist/lib/session/watcher.js.map +1 -1
  168. package/dist/lib/work-lifecycle/post-execution.js +26 -1
  169. package/dist/lib/work-lifecycle/post-execution.js.map +1 -1
  170. package/dist/lib/work-lifecycle/transition.d.ts +73 -0
  171. package/dist/lib/work-lifecycle/transition.js +138 -0
  172. package/dist/lib/work-lifecycle/transition.js.map +1 -0
  173. package/dist/lib/work-source/config.d.ts +1 -1
  174. package/dist/lib/work-source/config.js +11 -1
  175. package/dist/lib/work-source/config.js.map +1 -1
  176. package/oclif.manifest.json +936 -1628
  177. package/package.json +1 -1
  178. package/dist/commands/ticket/create.d.ts +0 -44
  179. package/dist/commands/ticket/create.js +0 -760
  180. package/dist/commands/ticket/create.js.map +0 -1
  181. package/dist/commands/ticket/delete.d.ts +0 -17
  182. package/dist/commands/ticket/delete.js +0 -204
  183. package/dist/commands/ticket/delete.js.map +0 -1
  184. package/dist/commands/ticket/edit.d.ts +0 -28
  185. package/dist/commands/ticket/edit.js +0 -402
  186. package/dist/commands/ticket/edit.js.map +0 -1
  187. package/dist/commands/ticket/index.js +0 -74
  188. package/dist/commands/ticket/index.js.map +0 -1
  189. package/dist/commands/ticket/list.d.ts +0 -33
  190. package/dist/commands/ticket/list.js +0 -519
  191. package/dist/commands/ticket/list.js.map +0 -1
  192. package/dist/commands/ticket/move.d.ts +0 -27
  193. package/dist/commands/ticket/move.js +0 -413
  194. package/dist/commands/ticket/move.js.map +0 -1
  195. package/dist/commands/ticket/show.d.ts +0 -14
  196. package/dist/commands/ticket/show.js +0 -110
  197. package/dist/commands/ticket/show.js.map +0 -1
  198. package/dist/commands/ticket/update.d.ts +0 -28
  199. package/dist/commands/ticket/update.js +0 -458
  200. package/dist/commands/ticket/update.js.map +0 -1
  201. package/dist/lib/mcp/tools/action.d.ts +0 -6
  202. package/dist/lib/mcp/tools/action.js +0 -123
  203. package/dist/lib/mcp/tools/action.js.map +0 -1
  204. package/dist/lib/mcp/tools/ticket.d.ts +0 -6
  205. package/dist/lib/mcp/tools/ticket.js +0 -464
  206. package/dist/lib/mcp/tools/ticket.js.map +0 -1
@@ -2,7 +2,9 @@
2
2
  * Garbage Collection Module
3
3
  *
4
4
  * Core logic for cleaning up agent artifacts after PR merge/close.
5
- * Handles: worktree removal, container removal, branch pruning, stale PR closure.
5
+ * Handles: worktree removal, container removal, branch pruning (local + remote),
6
+ * tmux session cleanup, Claude session cleanup, DB record marking, agent name recycling,
7
+ * and stale PR closure.
6
8
  *
7
9
  * Used by both the `prlt gc` command and the daemon's post-merge phase.
8
10
  */
@@ -86,6 +88,30 @@ export function classifyArtifact(pr, staleDays) {
86
88
  return 'stale';
87
89
  return 'active';
88
90
  }
91
+ /**
92
+ * Check if an agent is still alive — either its container is running
93
+ * or its DB status is 'active'/'running'.
94
+ *
95
+ * This prevents GC from killing agents that just spawned but haven't
96
+ * pushed a branch or created a PR yet.
97
+ */
98
+ export function isAgentAlive(agentName, hqPath, container) {
99
+ // Check 1: container is running
100
+ if (container?.running)
101
+ return true;
102
+ // Check 2: agent status in DB is active or running
103
+ try {
104
+ const { getAgent } = require('../database/agents.js');
105
+ const agent = getAgent(hqPath, agentName);
106
+ if (agent && (agent.status === 'active' || agent.status === 'running')) {
107
+ return true;
108
+ }
109
+ }
110
+ catch {
111
+ // DB access may fail — non-fatal, fall through
112
+ }
113
+ return false;
114
+ }
89
115
  /**
90
116
  * Collect all GC candidates by scanning worktrees and checking PR status.
91
117
  *
@@ -138,7 +164,16 @@ export function collectGCCandidates(options) {
138
164
  pr = getPRForBranch(wt.branch, repoPath);
139
165
  seenBranches.set(wt.branch, pr);
140
166
  }
141
- const status = classifyArtifact(pr, staleDays);
167
+ let status = classifyArtifact(pr, staleDays);
168
+ const container = agentName ? containerByAgent.get(agentName) ?? null : null;
169
+ // Guard: never GC an agent that is still alive.
170
+ // Agents that just spawned may not have pushed a branch or created a PR yet,
171
+ // so classifyArtifact would return 'closed'. Check the actual agent state
172
+ // (running container or active/running DB status) and override to 'active'.
173
+ if (status !== 'active' && agentName && isAgentAlive(agentName, hqPath, container)) {
174
+ log?.(`Agent "${agentName}" is still alive — skipping (was: ${status})`);
175
+ status = 'active';
176
+ }
142
177
  candidates.push({
143
178
  worktreePath: wt.worktreePath,
144
179
  branch: wt.branch,
@@ -147,7 +182,7 @@ export function collectGCCandidates(options) {
147
182
  sourceRepoPath: repoPath,
148
183
  pr,
149
184
  status,
150
- container: agentName ? containerByAgent.get(agentName) ?? null : null,
185
+ container,
151
186
  });
152
187
  }
153
188
  }
@@ -224,22 +259,186 @@ function removeAgentDir(agentDir) {
224
259
  return false;
225
260
  }
226
261
  }
262
+ /**
263
+ * Delete a remote git branch. Non-fatal if branch doesn't exist on remote.
264
+ */
265
+ export function deleteRemoteBranch(branch, cwd) {
266
+ try {
267
+ execSync(`git push origin --delete "${branch}"`, {
268
+ cwd,
269
+ encoding: 'utf-8',
270
+ stdio: ['pipe', 'pipe', 'pipe'],
271
+ timeout: 30000,
272
+ });
273
+ return true;
274
+ }
275
+ catch (error) {
276
+ // If the remote branch is already gone, that's fine
277
+ const msg = error instanceof Error ? error.message : String(error);
278
+ if (msg.includes('remote ref does not exist') || msg.includes('unable to delete')) {
279
+ return false;
280
+ }
281
+ return false;
282
+ }
283
+ }
284
+ /**
285
+ * Kill tmux sessions inside a Docker container.
286
+ * Non-fatal if tmux is not running or container is not accessible.
287
+ */
288
+ export function killTmuxInContainer(containerId) {
289
+ try {
290
+ execSync(`docker exec ${containerId} tmux kill-server`, {
291
+ stdio: ['pipe', 'pipe', 'pipe'],
292
+ timeout: 10000,
293
+ });
294
+ return true;
295
+ }
296
+ catch {
297
+ // Non-fatal — tmux may not be running in the container
298
+ return false;
299
+ }
300
+ }
301
+ /**
302
+ * Clean up Claude session data from a Docker container's claude-credentials volume.
303
+ * Only removes session-specific files, preserving auth credentials.
304
+ *
305
+ * Session files to clean: projects/, .claude-*, statsig/
306
+ * Files to preserve: .credentials.json, credentials.json, .oauthtoken, settings.json
307
+ */
308
+ export function cleanClaudeSessionData(containerId) {
309
+ try {
310
+ // Remove session-specific directories and files, preserve auth
311
+ // The cleanup script removes session state but keeps credentials
312
+ const script = 'rm -rf /home/node/.claude/projects 2>/dev/null; ' +
313
+ 'rm -rf /home/node/.claude/statsig 2>/dev/null; ' +
314
+ 'rm -f /home/node/.claude/.claude-session 2>/dev/null; ' +
315
+ 'rm -f /home/node/.claude/.claude-conversation 2>/dev/null; ' +
316
+ 'rm -f /home/node/.claude/.claude-history 2>/dev/null; ' +
317
+ 'rm -rf /home/node/.claude/memory 2>/dev/null; ' +
318
+ 'true';
319
+ execSync(`docker exec ${containerId} sh -c '${script}'`, {
320
+ stdio: ['pipe', 'pipe', 'pipe'],
321
+ timeout: 10000,
322
+ });
323
+ return true;
324
+ }
325
+ catch {
326
+ // Non-fatal — container may not be accessible
327
+ return false;
328
+ }
329
+ }
330
+ /**
331
+ * Mark execution records as GC-cleaned for the given agent names.
332
+ * Sets gc_cleaned_at timestamp on agent_work rows that are completed/failed.
333
+ */
334
+ export function markExecutionRecordsCleaned(hqPath, agentNames) {
335
+ if (agentNames.length === 0)
336
+ return 0;
337
+ try {
338
+ const { openWorkspaceDatabase } = require('../database/workspace.js');
339
+ const db = openWorkspaceDatabase(hqPath);
340
+ try {
341
+ // Check if agent_work table exists
342
+ const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agent_work'").get();
343
+ if (!tableExists)
344
+ return 0;
345
+ // Check if gc_cleaned_at column exists
346
+ const cols = db.prepare("PRAGMA table_info(agent_work)").all();
347
+ if (!cols.some(c => c.name === 'gc_cleaned_at'))
348
+ return 0;
349
+ const placeholders = agentNames.map(() => '?').join(',');
350
+ const now = new Date().toISOString();
351
+ const stmt = db.prepare(`UPDATE agent_work SET gc_cleaned_at = ? WHERE agent_name IN (${placeholders}) AND gc_cleaned_at IS NULL`);
352
+ const result = stmt.run(now, ...agentNames);
353
+ return result.changes;
354
+ }
355
+ finally {
356
+ db.close();
357
+ }
358
+ }
359
+ catch {
360
+ return 0;
361
+ }
362
+ }
363
+ /**
364
+ * Purge (DELETE) execution records for the given agent names.
365
+ * Only deletes records that have already been marked as gc_cleaned.
366
+ */
367
+ export function purgeExecutionRecords(hqPath, agentNames) {
368
+ if (agentNames.length === 0)
369
+ return 0;
370
+ try {
371
+ const { openWorkspaceDatabase } = require('../database/workspace.js');
372
+ const db = openWorkspaceDatabase(hqPath);
373
+ try {
374
+ const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agent_work'").get();
375
+ if (!tableExists)
376
+ return 0;
377
+ const placeholders = agentNames.map(() => '?').join(',');
378
+ const stmt = db.prepare(`DELETE FROM agent_work WHERE agent_name IN (${placeholders}) AND gc_cleaned_at IS NOT NULL`);
379
+ const result = stmt.run(...agentNames);
380
+ return result.changes;
381
+ }
382
+ finally {
383
+ db.close();
384
+ }
385
+ }
386
+ catch {
387
+ return 0;
388
+ }
389
+ }
390
+ /**
391
+ * Mark agent names as recyclable (status='cleaned') in the database.
392
+ * Preserves the record for history but allows name reuse.
393
+ */
394
+ export function recycleAgentNames(hqPath, agentNames) {
395
+ if (agentNames.length === 0)
396
+ return [];
397
+ const recycled = [];
398
+ try {
399
+ const { markAgentCleaned } = require('../database/agents.js');
400
+ for (const name of agentNames) {
401
+ try {
402
+ markAgentCleaned(hqPath, name);
403
+ recycled.push(name);
404
+ }
405
+ catch {
406
+ // Agent may not exist in DB — non-fatal
407
+ }
408
+ }
409
+ }
410
+ catch {
411
+ // DB access may fail — non-fatal
412
+ }
413
+ return recycled;
414
+ }
227
415
  /**
228
416
  * Execute garbage collection on the provided candidates.
229
417
  *
230
418
  * Processes candidates in order:
231
419
  * 1. Close stale PRs
232
- * 2. Remove worktrees
233
- * 3. Remove containers
234
- * 4. Prune local branches
235
- * 5. Clean up empty agent directories
420
+ * 2. Kill tmux sessions in containers
421
+ * 3. Clean Claude session data in containers
422
+ * 4. Remove worktrees
423
+ * 5. Remove containers
424
+ * 6. Prune local branches
425
+ * 7. Delete remote branches
426
+ * 8. Clean up empty agent directories
427
+ * 9. Mark/purge DB execution records
428
+ * 10. Recycle agent names
236
429
  */
237
430
  export function executeGC(candidates, options) {
238
- const { execute = false, log } = options;
431
+ const { execute = false, purgeDb = false, log, hqPath } = options;
239
432
  const result = {
240
433
  worktreesRemoved: [],
241
434
  containersRemoved: [],
242
435
  branchesPruned: [],
436
+ remoteBranchesDeleted: [],
437
+ tmuxSessionsCleaned: [],
438
+ claudeSessionsCleaned: [],
439
+ dbRecordsMarked: 0,
440
+ dbRecordsPurged: 0,
441
+ agentNamesRecycled: [],
243
442
  stalePRsClosed: [],
244
443
  errors: [],
245
444
  skipped: [],
@@ -255,6 +454,8 @@ export function executeGC(candidates, options) {
255
454
  const reposToProcess = new Set();
256
455
  const agentDirs = new Set();
257
456
  const processedContainers = new Set();
457
+ const processedAgentNames = new Set();
458
+ const processedBranches = new Set();
258
459
  for (const candidate of actionable) {
259
460
  // 1. Close stale PRs
260
461
  if (candidate.status === 'stale' && candidate.pr) {
@@ -276,7 +477,30 @@ export function executeGC(candidates, options) {
276
477
  result.stalePRsClosed.push(candidate.pr.number);
277
478
  }
278
479
  }
279
- // 2. Remove worktree
480
+ // 2. Kill tmux sessions + 3. Clean Claude session data (before container removal)
481
+ if (candidate.container && !processedContainers.has(candidate.container.containerId)) {
482
+ if (execute) {
483
+ // Kill tmux sessions inside the container
484
+ log?.(`Killing tmux sessions in container: ${candidate.container.containerName}`);
485
+ if (killTmuxInContainer(candidate.container.containerId)) {
486
+ result.tmuxSessionsCleaned.push(candidate.container.containerName);
487
+ }
488
+ // tmux cleanup failure is non-fatal
489
+ // Clean Claude session data
490
+ log?.(`Cleaning Claude session data in container: ${candidate.container.containerName}`);
491
+ if (cleanClaudeSessionData(candidate.container.containerId)) {
492
+ result.claudeSessionsCleaned.push(candidate.container.containerName);
493
+ }
494
+ // Claude session cleanup failure is non-fatal
495
+ }
496
+ else {
497
+ log?.(`[dry-run] Would kill tmux sessions in container: ${candidate.container.containerName}`);
498
+ result.tmuxSessionsCleaned.push(candidate.container.containerName);
499
+ log?.(`[dry-run] Would clean Claude session data in container: ${candidate.container.containerName}`);
500
+ result.claudeSessionsCleaned.push(candidate.container.containerName);
501
+ }
502
+ }
503
+ // 4. Remove worktree
280
504
  if (execute) {
281
505
  log?.(`Removing worktree: ${candidate.worktreePath}`);
282
506
  if (removeWorktree(candidate.worktreePath, candidate.sourceRepoPath)) {
@@ -290,7 +514,7 @@ export function executeGC(candidates, options) {
290
514
  log?.(`[dry-run] Would remove worktree: ${candidate.worktreePath}`);
291
515
  result.worktreesRemoved.push(candidate.worktreePath);
292
516
  }
293
- // 3. Remove container (deduplicate by agent)
517
+ // 5. Remove container (deduplicate by agent)
294
518
  if (candidate.container && !processedContainers.has(candidate.container.containerId)) {
295
519
  processedContainers.add(candidate.container.containerId);
296
520
  if (execute) {
@@ -308,28 +532,44 @@ export function executeGC(candidates, options) {
308
532
  result.containersRemoved.push(candidate.container.containerName);
309
533
  }
310
534
  }
311
- // 4. Prune local branch
535
+ // 6. Prune local branch
312
536
  if (candidate.branch) {
313
537
  if (execute) {
314
538
  if (deleteLocalBranch(candidate.branch, candidate.sourceRepoPath)) {
315
539
  result.branchesPruned.push(candidate.branch);
316
- log?.(`Pruned branch: ${candidate.branch}`);
540
+ log?.(`Pruned local branch: ${candidate.branch}`);
317
541
  }
318
542
  // Branch deletion failure is non-fatal (may already be deleted)
319
543
  }
320
544
  else {
321
- log?.(`[dry-run] Would prune branch: ${candidate.branch}`);
545
+ log?.(`[dry-run] Would prune local branch: ${candidate.branch}`);
322
546
  result.branchesPruned.push(candidate.branch);
323
547
  }
548
+ // 7. Delete remote branch (deduplicate across repos for same branch)
549
+ if (!processedBranches.has(candidate.branch)) {
550
+ processedBranches.add(candidate.branch);
551
+ if (execute) {
552
+ log?.(`Deleting remote branch: ${candidate.branch}`);
553
+ if (deleteRemoteBranch(candidate.branch, candidate.sourceRepoPath)) {
554
+ result.remoteBranchesDeleted.push(candidate.branch);
555
+ }
556
+ // Remote branch deletion failure is non-fatal (may already be deleted)
557
+ }
558
+ else {
559
+ log?.(`[dry-run] Would delete remote branch: ${candidate.branch}`);
560
+ result.remoteBranchesDeleted.push(candidate.branch);
561
+ }
562
+ }
324
563
  }
325
564
  reposToProcess.add(candidate.sourceRepoPath);
326
- // Track agent directory for cleanup
565
+ // Track agent directory and name for cleanup
327
566
  if (candidate.agentName) {
328
567
  const agentDir = path.dirname(candidate.worktreePath);
329
568
  agentDirs.add(agentDir);
569
+ processedAgentNames.add(candidate.agentName);
330
570
  }
331
571
  }
332
- // 5. Prune worktree refs and clean up empty agent directories
572
+ // 8. Prune worktree refs and clean up empty agent directories
333
573
  if (execute) {
334
574
  for (const repoPath of reposToProcess) {
335
575
  pruneWorktreeRefs(repoPath);
@@ -350,6 +590,44 @@ export function executeGC(candidates, options) {
350
590
  }
351
591
  }
352
592
  }
593
+ // 9. Mark/purge DB execution records
594
+ const agentNameList = [...processedAgentNames];
595
+ if (agentNameList.length > 0) {
596
+ if (execute) {
597
+ // Always mark records as gc_cleaned
598
+ const marked = markExecutionRecordsCleaned(hqPath, agentNameList);
599
+ result.dbRecordsMarked = marked;
600
+ if (marked > 0) {
601
+ log?.(`Marked ${marked} execution record(s) as gc_cleaned`);
602
+ }
603
+ // Optionally purge (DELETE) if --purge-db was passed
604
+ if (purgeDb) {
605
+ const purged = purgeExecutionRecords(hqPath, agentNameList);
606
+ result.dbRecordsPurged = purged;
607
+ if (purged > 0) {
608
+ log?.(`Purged ${purged} execution record(s)`);
609
+ }
610
+ }
611
+ }
612
+ else {
613
+ log?.(`[dry-run] Would mark execution records as gc_cleaned for ${agentNameList.length} agent(s)`);
614
+ if (purgeDb) {
615
+ log?.(`[dry-run] Would purge execution records for ${agentNameList.length} agent(s)`);
616
+ }
617
+ }
618
+ }
619
+ // 10. Recycle agent names
620
+ if (agentNameList.length > 0) {
621
+ if (execute) {
622
+ log?.(`Recycling ${agentNameList.length} agent name(s)`);
623
+ const recycled = recycleAgentNames(hqPath, agentNameList);
624
+ result.agentNamesRecycled = recycled;
625
+ }
626
+ else {
627
+ log?.(`[dry-run] Would recycle ${agentNameList.length} agent name(s)`);
628
+ result.agentNamesRecycled = agentNameList;
629
+ }
630
+ }
353
631
  return result;
354
632
  }
355
633
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/gc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/gc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,cAAc,EACd,OAAO,GAER,MAAM,gBAAgB,CAAA;AAmFvB;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,OAAO,GAAoB,EAAE,CAAA;IAEnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QAE5D,IAAI,CAAC,YAAY;YAAE,SAAQ;QAE3B,OAAO,CAAC,IAAI,CAAC;YACX,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACnD,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACtE,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,+BAA+B,EAAE;YACvD,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QACF,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,MAAc;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtC,+CAA+C;IAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAiB,EAAE,SAAiB;IACnE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,+EAA+E;QAC/E,sCAAsC;QACtC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC1C,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE1C,8BAA8B;IAC9B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IAClF,IAAI,eAAe,IAAI,SAAS;QAAE,OAAO,OAAO,CAAA;IAEhD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,MAAc,EACd,SAA+B;IAE/B,gCAAgC;IAChC,IAAI,SAAS,EAAE,OAAO;QAAE,OAAO,IAAI,CAAA;IAEnC,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACzC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAkB;IACpD,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAkB,EAAE,CAAA;IAEpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,UAAU,CAAA;IAEhD,uBAAuB;IACvB,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACnD,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAA;IACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAA;IACzD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,kEAAkE;IAClE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAA;IAErD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEzC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,gEAAgE;YAChE,IAAI,EAAE,CAAC,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU;gBAAE,SAAQ;YAE3D,mDAAmD;YACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YAC3D,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,SAAQ;YAEjE,kDAAkD;YAClD,IAAI,CAAC,EAAE,CAAC,MAAM;gBAAE,SAAQ;YAExB,oCAAoC;YACpC,IAAI,EAAiB,CAAA;YACrB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAE,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACN,GAAG,EAAE,CAAC,kCAAkC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;gBACpD,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACxC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACjC,CAAC;YAED,IAAI,MAAM,GAAG,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;YAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAE5E,gDAAgD;YAChD,6EAA6E;YAC7E,0EAA0E;YAC1E,4EAA4E;YAC5E,IAAI,MAAM,KAAK,QAAQ,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBACnF,GAAG,EAAE,CAAC,UAAU,SAAS,qCAAqC,MAAM,GAAG,CAAC,CAAA;gBACxE,MAAM,GAAG,QAAQ,CAAA;YACnB,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,SAAS;gBACT,QAAQ;gBACR,cAAc,EAAE,QAAQ;gBACxB,EAAE;gBACF,MAAM;gBACN,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,GAAW;IACpD,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,MAAM,EAAE,EAAE;YAClC,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,YAAoB,EAAE,cAAsB;IAClE,IAAI,CAAC;QACH,QAAQ,CAAC,wBAAwB,YAAY,WAAW,EAAE;YACxD,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,QAAQ,CAAC,oBAAoB,EAAE;YAC7B,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,QAAQ,CAAC,6BAA6B,MAAM,GAAG,EAAE;YAC/C,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oDAAoD;QACpD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClF,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,WAAW,mBAAmB,EAAE;YACtD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,IAAI,CAAC;QACH,+DAA+D;QAC/D,iEAAiE;QACjE,MAAM,MAAM,GACV,kDAAkD;YAClD,iDAAiD;YACjD,wDAAwD;YACxD,6DAA6D;YAC7D,wDAAwD;YACxD,gDAAgD;YAChD,MAAM,CAAA;QAER,QAAQ,CAAC,eAAe,WAAW,WAAW,MAAM,GAAG,EAAE;YACvD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;QAC9C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAc,EACd,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAErC,IAAI,CAAC;QACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;QACrE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,yEAAyE,CAC1E,CAAC,GAAG,EAAE,CAAA;YACP,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,CAAA;YAE1B,uCAAuC;YACvC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,GAAG,EAAwB,CAAA;YACpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC;gBAAE,OAAO,CAAC,CAAA;YAEzD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAEpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,gEAAgE,YAAY,6BAA6B,CAC1G,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAA;YAC3C,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAErC,IAAI,CAAC;QACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;QACrE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,yEAAyE,CAC1E,CAAC,GAAG,EAAE,CAAA;YACP,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,CAAA;YAE1B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,+CAA+C,YAAY,iCAAiC,CAC7F,CAAA;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAA;YACtC,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAA;IACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAC7D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,SAAS,CACvB,UAAyB,EACzB,OAAkB;IAElB,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAEjE,MAAM,MAAM,GAAa;QACvB,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,EAAE;QACrB,cAAc,EAAE,EAAE;QAClB,qBAAqB,EAAE,EAAE;QACzB,mBAAmB,EAAE,EAAE;QACvB,qBAAqB,EAAE,EAAE;QACzB,eAAe,EAAE,CAAC;QAClB,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,EAAE;QACtB,cAAc,EAAE,EAAE;QAClB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAA;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAExE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAClD,CAAC;IAED,iEAAiE;IACjE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IACnC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;IAE3C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,qBAAqB;QACrB,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,EAAE,CAAC,qBAAqB,SAAS,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;gBACxE,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;oBAC/C,OAAO,EAAE,sEAAsE;oBAC/E,GAAG,EAAE,SAAS,CAAC,cAAc;iBAC9B,CAAC,CAAA;gBACF,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;gBACjD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;gBACxF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,EAAE,CAAC,mCAAmC,SAAS,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;gBACtF,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACrF,IAAI,OAAO,EAAE,CAAC;gBACZ,0CAA0C;gBAC1C,GAAG,EAAE,CAAC,uCAAuC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBACjF,IAAI,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzD,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBACpE,CAAC;gBACD,oCAAoC;gBAEpC,4BAA4B;gBAC5B,GAAG,EAAE,CAAC,8CAA8C,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBACxF,IAAI,sBAAsB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBACtE,CAAC;gBACD,8CAA8C;YAChD,CAAC;iBAAM,CAAC;gBACN,GAAG,EAAE,CAAC,oDAAoD,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBAC9F,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBAClE,GAAG,EAAE,CAAC,2DAA2D,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBACrG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC,sBAAsB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;YACrD,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;YAC5E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,EAAE,CAAC,oCAAoC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAA;YACnE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACtD,CAAC;QAED,6CAA6C;QAC7C,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACrF,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACxD,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,EAAE,CAAC,uBAAuB,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;gBACjE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBAClE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,SAAS,CAAC,SAAS,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC1G,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,EAAE,CAAC,qCAAqC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;gBAC/E,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBAC5C,GAAG,EAAE,CAAC,wBAAwB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;gBACnD,CAAC;gBACD,gEAAgE;YAClE,CAAC;iBAAM,CAAC;gBACN,GAAG,EAAE,CAAC,uCAAuC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;gBAChE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC9C,CAAC;YAED,qEAAqE;YACrE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBACvC,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,EAAE,CAAC,2BAA2B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;oBACpD,IAAI,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;wBACnE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACrD,CAAC;oBACD,uEAAuE;gBACzE,CAAC;qBAAM,CAAC;oBACN,GAAG,EAAE,CAAC,yCAAyC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;oBAClE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAE5C,6CAA6C;QAC7C,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YACrD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvB,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,yDAAyD;YACzD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;oBACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,cAAc,CAAC,QAAQ,CAAC,CAAA;wBACxB,GAAG,EAAE,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;oBACrD,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,aAAa,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAA;IAC9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,oCAAoC;YACpC,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACjE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAA;YAC/B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBACf,GAAG,EAAE,CAAC,UAAU,MAAM,oCAAoC,CAAC,CAAA;YAC7D,CAAC;YAED,qDAAqD;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBAC3D,MAAM,CAAC,eAAe,GAAG,MAAM,CAAA;gBAC/B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,GAAG,EAAE,CAAC,UAAU,MAAM,sBAAsB,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,EAAE,CAAC,4DAA4D,aAAa,CAAC,MAAM,WAAW,CAAC,CAAA;YAClG,IAAI,OAAO,EAAE,CAAC;gBACZ,GAAG,EAAE,CAAC,+CAA+C,aAAa,CAAC,MAAM,WAAW,CAAC,CAAA;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,EAAE,CAAC,aAAa,aAAa,CAAC,MAAM,gBAAgB,CAAC,CAAA;YACxD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACzD,MAAM,CAAC,kBAAkB,GAAG,QAAQ,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,GAAG,EAAE,CAAC,2BAA2B,aAAa,CAAC,MAAM,gBAAgB,CAAC,CAAA;YACtE,MAAM,CAAC,kBAAkB,GAAG,aAAa,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAYD;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC7C,aAAa,CAAQ;IAE7B,YAAY,gBAAwB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY;QAC7D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAM;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;YACvB,MAAM;YACN,WAAW,EAAE,GAAG;YAChB,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa;SACrC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * GitHub Issues API Client
3
+ *
4
+ * REST wrapper for GitHub Issues API access.
5
+ * Uses the GitHub REST API v3 (application/vnd.github+json).
6
+ * Auth via GITHUB_TOKEN or stored token.
7
+ */
8
+ import type { GitHubIssue, GitHubLabel, GitHubRepo } from './types.js';
9
+ export declare class GitHubClient {
10
+ private token;
11
+ constructor(token: string);
12
+ private request;
13
+ /**
14
+ * Verify the token is valid and return the authenticated user info.
15
+ */
16
+ verify(): Promise<{
17
+ login: string;
18
+ name: string | null;
19
+ }>;
20
+ /**
21
+ * Get a repository by owner and name.
22
+ */
23
+ getRepo(owner: string, repo: string): Promise<GitHubRepo>;
24
+ /**
25
+ * Get a single issue by number.
26
+ */
27
+ getIssue(owner: string, repo: string, issueNumber: number): Promise<GitHubIssue>;
28
+ /**
29
+ * List issues for a repository.
30
+ */
31
+ listIssues(owner: string, repo: string, options?: {
32
+ state?: 'open' | 'closed' | 'all';
33
+ labels?: string;
34
+ assignee?: string;
35
+ milestone?: string;
36
+ per_page?: number;
37
+ page?: number;
38
+ }): Promise<GitHubIssue[]>;
39
+ /**
40
+ * Create a new issue.
41
+ */
42
+ createIssue(owner: string, repo: string, input: {
43
+ title: string;
44
+ body?: string;
45
+ labels?: string[];
46
+ assignees?: string[];
47
+ milestone?: number;
48
+ }): Promise<GitHubIssue>;
49
+ /**
50
+ * Update an existing issue.
51
+ */
52
+ updateIssue(owner: string, repo: string, issueNumber: number, input: {
53
+ title?: string;
54
+ body?: string;
55
+ state?: 'open' | 'closed';
56
+ labels?: string[];
57
+ assignees?: string[];
58
+ milestone?: number | null;
59
+ }): Promise<GitHubIssue>;
60
+ /**
61
+ * Add labels to an issue.
62
+ */
63
+ addLabels(owner: string, repo: string, issueNumber: number, labels: string[]): Promise<GitHubLabel[]>;
64
+ /**
65
+ * Remove a label from an issue.
66
+ */
67
+ removeLabel(owner: string, repo: string, issueNumber: number, label: string): Promise<void>;
68
+ /**
69
+ * List all labels for a repository.
70
+ */
71
+ listRepoLabels(owner: string, repo: string): Promise<GitHubLabel[]>;
72
+ /**
73
+ * Create a label in a repository.
74
+ */
75
+ createLabel(owner: string, repo: string, input: {
76
+ name: string;
77
+ color?: string;
78
+ description?: string;
79
+ }): Promise<GitHubLabel>;
80
+ /**
81
+ * Add a comment to an issue.
82
+ */
83
+ addComment(owner: string, repo: string, issueNumber: number, body: string): Promise<void>;
84
+ }
@@ -0,0 +1,123 @@
1
+ /**
2
+ * GitHub Issues API Client
3
+ *
4
+ * REST wrapper for GitHub Issues API access.
5
+ * Uses the GitHub REST API v3 (application/vnd.github+json).
6
+ * Auth via GITHUB_TOKEN or stored token.
7
+ */
8
+ const GITHUB_API_URL = 'https://api.github.com';
9
+ export class GitHubClient {
10
+ token;
11
+ constructor(token) {
12
+ this.token = token;
13
+ }
14
+ async request(method, path, body) {
15
+ const url = `${GITHUB_API_URL}${path}`;
16
+ const options = {
17
+ method,
18
+ headers: {
19
+ 'Accept': 'application/vnd.github+json',
20
+ 'Authorization': `Bearer ${this.token}`,
21
+ 'X-GitHub-Api-Version': '2022-11-28',
22
+ 'Content-Type': 'application/json',
23
+ },
24
+ };
25
+ if (body !== undefined) {
26
+ options.body = JSON.stringify(body);
27
+ }
28
+ const response = await fetch(url, options);
29
+ if (!response.ok) {
30
+ const text = await response.text().catch(() => '');
31
+ throw new Error(`GitHub API ${method} ${path} failed with status ${response.status}: ${text}`);
32
+ }
33
+ // DELETE returns 204 No Content
34
+ if (response.status === 204) {
35
+ return undefined;
36
+ }
37
+ return (await response.json());
38
+ }
39
+ /**
40
+ * Verify the token is valid and return the authenticated user info.
41
+ */
42
+ async verify() {
43
+ const data = await this.request('GET', '/user');
44
+ return { login: data.login, name: data.name };
45
+ }
46
+ /**
47
+ * Get a repository by owner and name.
48
+ */
49
+ async getRepo(owner, repo) {
50
+ return this.request('GET', `/repos/${owner}/${repo}`);
51
+ }
52
+ /**
53
+ * Get a single issue by number.
54
+ */
55
+ async getIssue(owner, repo, issueNumber) {
56
+ return this.request('GET', `/repos/${owner}/${repo}/issues/${issueNumber}`);
57
+ }
58
+ /**
59
+ * List issues for a repository.
60
+ */
61
+ async listIssues(owner, repo, options) {
62
+ const params = new URLSearchParams();
63
+ if (options?.state)
64
+ params.set('state', options.state);
65
+ if (options?.labels)
66
+ params.set('labels', options.labels);
67
+ if (options?.assignee)
68
+ params.set('assignee', options.assignee);
69
+ if (options?.milestone)
70
+ params.set('milestone', options.milestone);
71
+ params.set('per_page', String(options?.per_page ?? 100));
72
+ if (options?.page)
73
+ params.set('page', String(options.page));
74
+ const qs = params.toString();
75
+ const path = `/repos/${owner}/${repo}/issues${qs ? `?${qs}` : ''}`;
76
+ const results = await this.request('GET', path);
77
+ // Filter out pull requests (GitHub API returns PRs in issues endpoint)
78
+ return results.filter(issue => !('pull_request' in issue));
79
+ }
80
+ /**
81
+ * Create a new issue.
82
+ */
83
+ async createIssue(owner, repo, input) {
84
+ return this.request('POST', `/repos/${owner}/${repo}/issues`, input);
85
+ }
86
+ /**
87
+ * Update an existing issue.
88
+ */
89
+ async updateIssue(owner, repo, issueNumber, input) {
90
+ return this.request('PATCH', `/repos/${owner}/${repo}/issues/${issueNumber}`, input);
91
+ }
92
+ /**
93
+ * Add labels to an issue.
94
+ */
95
+ async addLabels(owner, repo, issueNumber, labels) {
96
+ return this.request('POST', `/repos/${owner}/${repo}/issues/${issueNumber}/labels`, { labels });
97
+ }
98
+ /**
99
+ * Remove a label from an issue.
100
+ */
101
+ async removeLabel(owner, repo, issueNumber, label) {
102
+ await this.request('DELETE', `/repos/${owner}/${repo}/issues/${issueNumber}/labels/${encodeURIComponent(label)}`);
103
+ }
104
+ /**
105
+ * List all labels for a repository.
106
+ */
107
+ async listRepoLabels(owner, repo) {
108
+ return this.request('GET', `/repos/${owner}/${repo}/labels?per_page=100`);
109
+ }
110
+ /**
111
+ * Create a label in a repository.
112
+ */
113
+ async createLabel(owner, repo, input) {
114
+ return this.request('POST', `/repos/${owner}/${repo}/labels`, input);
115
+ }
116
+ /**
117
+ * Add a comment to an issue.
118
+ */
119
+ async addComment(owner, repo, issueNumber, body) {
120
+ await this.request('POST', `/repos/${owner}/${repo}/issues/${issueNumber}/comments`, { body });
121
+ }
122
+ }
123
+ //# sourceMappingURL=client.js.map