@gracefultools/astrid-sdk 0.7.14 → 0.7.16

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 (33) hide show
  1. package/dist/bin/cli.js +102 -21
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/executors/shared/index.d.ts +9 -0
  4. package/dist/executors/shared/index.d.ts.map +1 -0
  5. package/dist/executors/shared/index.js +21 -0
  6. package/dist/executors/shared/index.js.map +1 -0
  7. package/dist/executors/shared/tool-executor.d.ts +52 -0
  8. package/dist/executors/shared/tool-executor.d.ts.map +1 -0
  9. package/dist/executors/shared/tool-executor.js +262 -0
  10. package/dist/executors/shared/tool-executor.js.map +1 -0
  11. package/dist/executors/shared/tool-schemas.d.ts +61 -0
  12. package/dist/executors/shared/tool-schemas.d.ts.map +1 -0
  13. package/dist/executors/shared/tool-schemas.js +135 -0
  14. package/dist/executors/shared/tool-schemas.js.map +1 -0
  15. package/dist/executors/terminal-base.d.ts +100 -4
  16. package/dist/executors/terminal-base.d.ts.map +1 -1
  17. package/dist/executors/terminal-base.js +406 -0
  18. package/dist/executors/terminal-base.js.map +1 -1
  19. package/dist/executors/terminal-claude.d.ts +23 -4
  20. package/dist/executors/terminal-claude.d.ts.map +1 -1
  21. package/dist/executors/terminal-claude.js +190 -62
  22. package/dist/executors/terminal-claude.js.map +1 -1
  23. package/dist/executors/terminal-executors.test.js +190 -0
  24. package/dist/executors/terminal-executors.test.js.map +1 -1
  25. package/dist/executors/terminal-gemini.d.ts +4 -3
  26. package/dist/executors/terminal-gemini.d.ts.map +1 -1
  27. package/dist/executors/terminal-gemini.js +87 -191
  28. package/dist/executors/terminal-gemini.js.map +1 -1
  29. package/dist/executors/terminal-openai.d.ts +4 -3
  30. package/dist/executors/terminal-openai.d.ts.map +1 -1
  31. package/dist/executors/terminal-openai.js +87 -212
  32. package/dist/executors/terminal-openai.js.map +1 -1
  33. package/package.json +1 -1
@@ -11,6 +11,13 @@ exports.formatCommentHistory = formatCommentHistory;
11
11
  exports.captureGitBaseline = captureGitBaseline;
12
12
  exports.captureGitChanges = captureGitChanges;
13
13
  exports.buildDefaultPrompt = buildDefaultPrompt;
14
+ exports.createParserState = createParserState;
15
+ exports.parseOutputChunk = parseOutputChunk;
16
+ exports.formatContentAsComment = formatContentAsComment;
17
+ exports.getWorktreeConfig = getWorktreeConfig;
18
+ exports.createWorktree = createWorktree;
19
+ exports.shouldUseWorktree = shouldUseWorktree;
20
+ exports.pushWorktreeChanges = pushWorktreeChanges;
14
21
  // ============================================================================
15
22
  // HELPER FUNCTIONS
16
23
  // ============================================================================
@@ -143,4 +150,403 @@ Your response MUST include:
143
150
 
144
151
  Begin by analyzing the task.`;
145
152
  }
153
+ /**
154
+ * Create a new parser state
155
+ */
156
+ function createParserState() {
157
+ return {
158
+ buffer: '',
159
+ lastPlanPosted: 0,
160
+ lastProgressPosted: 0,
161
+ lastQuestionPosted: 0,
162
+ postedPlans: new Set(),
163
+ postedQuestions: new Set(),
164
+ };
165
+ }
166
+ /**
167
+ * Patterns for detecting different types of content
168
+ */
169
+ const PLAN_PATTERNS = [
170
+ // Plan mode headers
171
+ /^#+\s*(?:Implementation\s+)?Plan\b/mi,
172
+ /^#+\s*Approach\b/mi,
173
+ /^\*\*(?:Implementation\s+)?Plan\*\*/mi,
174
+ // Numbered plan steps
175
+ /^(?:##\s+)?(?:Step\s+)?\d+\.\s+(?:First|Create|Modify|Update|Add|Remove|Fix|Implement)/mi,
176
+ // Plan summary patterns
177
+ /(?:Here(?:'s| is) (?:my|the) (?:implementation )?plan|I(?:'ll| will) (?:start|begin) by|Let me (?:outline|plan|describe) (?:my|the) approach)/i,
178
+ ];
179
+ const QUESTION_PATTERNS = [
180
+ // Direct questions to user
181
+ /(?:Do you want|Would you like|Should I|Can I|May I)\s+.+\?/i,
182
+ /(?:Please (?:confirm|clarify|specify|let me know))/i,
183
+ /(?:Before I (?:proceed|continue|start)|I need (?:to know|clarification|more information))/i,
184
+ // Options presented
185
+ /(?:Option\s+[1-3A-C]:|Which (?:approach|option|method) (?:do you prefer|should I use)\?)/i,
186
+ ];
187
+ const PROGRESS_PATTERNS = [
188
+ // File operations
189
+ /(?:Creating|Modifying|Updating|Deleting|Reading|Writing)\s+(?:file\s+)?[`']?[\w\/.]+[`']?/i,
190
+ // Git operations
191
+ /(?:Committing|Pushing|Creating branch|Creating PR|Merging)/i,
192
+ // Test/build operations
193
+ /(?:Running|Executing)\s+(?:tests|build|lint|predeploy)/i,
194
+ ];
195
+ const PR_CREATED_PATTERN = /(?:PR|Pull Request)\s+(?:created|opened).*?(https:\/\/github\.com\/[^\s]+\/pull\/\d+)/i;
196
+ /**
197
+ * Parse a chunk of output and detect any plans, questions, or progress updates.
198
+ * Uses the state to track what's been posted to avoid duplicates.
199
+ *
200
+ * @param chunk - New output chunk to parse
201
+ * @param state - Parser state for tracking
202
+ * @returns Array of detected content items
203
+ */
204
+ function parseOutputChunk(chunk, state) {
205
+ const results = [];
206
+ // Add chunk to buffer
207
+ state.buffer += chunk;
208
+ // Process complete paragraphs/sections (split by double newline)
209
+ const sections = state.buffer.split(/\n\n+/);
210
+ // Keep the last incomplete section in buffer
211
+ if (!state.buffer.endsWith('\n\n')) {
212
+ state.buffer = sections.pop() || '';
213
+ }
214
+ else {
215
+ state.buffer = '';
216
+ }
217
+ const now = Date.now();
218
+ for (const section of sections) {
219
+ const trimmed = section.trim();
220
+ if (!trimmed || trimmed.length < 20)
221
+ continue;
222
+ // Create a hash for deduplication
223
+ const hash = trimmed.slice(0, 100);
224
+ // Check for PR created
225
+ const prMatch = trimmed.match(PR_CREATED_PATTERN);
226
+ if (prMatch) {
227
+ results.push({
228
+ type: 'pr_created',
229
+ content: prMatch[1],
230
+ raw: trimmed,
231
+ });
232
+ continue;
233
+ }
234
+ // Check for plans (rate limit: once per 30s)
235
+ if (now - state.lastPlanPosted > 30000) {
236
+ for (const pattern of PLAN_PATTERNS) {
237
+ if (pattern.test(trimmed) && !state.postedPlans.has(hash)) {
238
+ state.postedPlans.add(hash);
239
+ state.lastPlanPosted = now;
240
+ results.push({
241
+ type: 'plan',
242
+ content: extractPlanContent(trimmed),
243
+ raw: trimmed,
244
+ });
245
+ break;
246
+ }
247
+ }
248
+ }
249
+ // Check for questions (rate limit: once per 60s)
250
+ if (now - state.lastQuestionPosted > 60000) {
251
+ for (const pattern of QUESTION_PATTERNS) {
252
+ if (pattern.test(trimmed) && !state.postedQuestions.has(hash)) {
253
+ state.postedQuestions.add(hash);
254
+ state.lastQuestionPosted = now;
255
+ results.push({
256
+ type: 'question',
257
+ content: trimmed,
258
+ raw: trimmed,
259
+ });
260
+ break;
261
+ }
262
+ }
263
+ }
264
+ // Check for progress (rate limit: once per 15s)
265
+ if (now - state.lastProgressPosted > 15000) {
266
+ for (const pattern of PROGRESS_PATTERNS) {
267
+ if (pattern.test(trimmed)) {
268
+ state.lastProgressPosted = now;
269
+ results.push({
270
+ type: 'progress',
271
+ content: extractProgressSummary(trimmed),
272
+ raw: trimmed,
273
+ });
274
+ break;
275
+ }
276
+ }
277
+ }
278
+ }
279
+ return results;
280
+ }
281
+ /**
282
+ * Extract the key content from a plan section
283
+ */
284
+ function extractPlanContent(text) {
285
+ // Limit to first 1000 chars and clean up
286
+ const limited = text.slice(0, 1000);
287
+ // If it's very long, add truncation indicator
288
+ if (text.length > 1000) {
289
+ return limited + '\n\n*[Plan truncated...]*';
290
+ }
291
+ return limited;
292
+ }
293
+ /**
294
+ * Extract a short progress summary
295
+ */
296
+ function extractProgressSummary(text) {
297
+ // Get first line or first 200 chars
298
+ const firstLine = text.split('\n')[0];
299
+ if (firstLine.length <= 200) {
300
+ return firstLine;
301
+ }
302
+ return firstLine.slice(0, 200) + '...';
303
+ }
304
+ /**
305
+ * Format detected content as a comment for posting
306
+ */
307
+ function formatContentAsComment(content, agentName = 'Claude') {
308
+ switch (content.type) {
309
+ case 'plan':
310
+ return `📋 **${agentName}'s Plan**\n\n${content.content}\n\n---\n*Planning in progress...*`;
311
+ case 'question':
312
+ return `❓ **${agentName} has a question**\n\n${content.content}\n\n---\n*Please reply to this comment to provide clarification.*`;
313
+ case 'progress':
314
+ return `⏳ **Progress Update**\n\n${content.content}`;
315
+ case 'pr_created':
316
+ return `🔗 **Pull Request Created**\n\n[${content.content}](${content.content})`;
317
+ case 'error':
318
+ return `⚠️ **Issue Detected**\n\n${content.content}`;
319
+ default:
320
+ return content.content;
321
+ }
322
+ }
323
+ /**
324
+ * Get worktree configuration from environment variables
325
+ */
326
+ function getWorktreeConfig() {
327
+ return {
328
+ enabled: process.env.ASTRID_AGENT_WORKTREE !== 'false',
329
+ baseDir: process.env.ASTRID_AGENT_WORKTREE_DIR || '/tmp/astrid-worktrees',
330
+ autoCleanup: process.env.ASTRID_AGENT_WORKTREE_CLEANUP !== 'false',
331
+ };
332
+ }
333
+ /**
334
+ * Create an isolated git worktree for a task.
335
+ * This allows the agent to work on changes without affecting the main working directory.
336
+ *
337
+ * @param projectPath - Path to the main git repository
338
+ * @param taskId - Task ID for naming the worktree and branch
339
+ * @param branchPrefix - Prefix for the branch name (default: 'task/')
340
+ * @returns WorktreeResult with path and cleanup function
341
+ */
342
+ async function createWorktree(projectPath, taskId, branchPrefix = 'task/') {
343
+ const { execSync } = await import('child_process');
344
+ const fs = await import('fs/promises');
345
+ const path = await import('path');
346
+ const config = getWorktreeConfig();
347
+ const shortId = taskId.slice(0, 8);
348
+ const branchName = `${branchPrefix}${shortId}`;
349
+ const worktreePath = path.join(config.baseDir, `task-${shortId}-${Date.now()}`);
350
+ console.log(`🌳 Creating git worktree for task ${shortId}...`);
351
+ console.log(` Branch: ${branchName}`);
352
+ console.log(` Path: ${worktreePath}`);
353
+ try {
354
+ // Ensure base directory exists
355
+ await fs.mkdir(config.baseDir, { recursive: true });
356
+ // Fetch latest from origin to ensure we have up-to-date refs
357
+ try {
358
+ execSync('git fetch origin', {
359
+ cwd: projectPath,
360
+ stdio: 'pipe',
361
+ timeout: 30000,
362
+ });
363
+ }
364
+ catch {
365
+ console.log(' ⚠️ Could not fetch from origin (continuing anyway)');
366
+ }
367
+ // Check if branch already exists (local or remote)
368
+ let branchExists = false;
369
+ try {
370
+ execSync(`git rev-parse --verify ${branchName}`, {
371
+ cwd: projectPath,
372
+ stdio: 'pipe',
373
+ });
374
+ branchExists = true;
375
+ }
376
+ catch {
377
+ // Branch doesn't exist locally, check remote
378
+ try {
379
+ execSync(`git rev-parse --verify origin/${branchName}`, {
380
+ cwd: projectPath,
381
+ stdio: 'pipe',
382
+ });
383
+ branchExists = true;
384
+ }
385
+ catch {
386
+ // Branch doesn't exist at all
387
+ }
388
+ }
389
+ if (branchExists) {
390
+ // Use existing branch
391
+ console.log(` 📌 Using existing branch: ${branchName}`);
392
+ execSync(`git worktree add "${worktreePath}" ${branchName}`, {
393
+ cwd: projectPath,
394
+ stdio: 'pipe',
395
+ timeout: 60000,
396
+ });
397
+ }
398
+ else {
399
+ // Create new branch from main/master
400
+ const defaultBranch = getDefaultBranch(projectPath);
401
+ console.log(` 🌱 Creating new branch from ${defaultBranch}`);
402
+ execSync(`git worktree add -b ${branchName} "${worktreePath}" ${defaultBranch}`, {
403
+ cwd: projectPath,
404
+ stdio: 'pipe',
405
+ timeout: 60000,
406
+ });
407
+ }
408
+ console.log(` ✅ Worktree created successfully`);
409
+ // Create cleanup function
410
+ const cleanup = async () => {
411
+ if (!config.autoCleanup) {
412
+ console.log(` ⏭️ Skipping worktree cleanup (auto-cleanup disabled)`);
413
+ return;
414
+ }
415
+ console.log(` 🧹 Cleaning up worktree: ${worktreePath}`);
416
+ try {
417
+ // Remove the worktree
418
+ execSync(`git worktree remove "${worktreePath}" --force`, {
419
+ cwd: projectPath,
420
+ stdio: 'pipe',
421
+ timeout: 30000,
422
+ });
423
+ console.log(` ✅ Worktree removed`);
424
+ }
425
+ catch (error) {
426
+ console.error(` ⚠️ Failed to remove worktree:`, error);
427
+ // Try to force remove the directory
428
+ try {
429
+ await fs.rm(worktreePath, { recursive: true, force: true });
430
+ // Prune the worktree reference
431
+ execSync('git worktree prune', {
432
+ cwd: projectPath,
433
+ stdio: 'pipe',
434
+ });
435
+ }
436
+ catch {
437
+ console.error(` ⚠️ Could not clean up worktree directory`);
438
+ }
439
+ }
440
+ };
441
+ return {
442
+ worktreePath,
443
+ branchName,
444
+ cleanup,
445
+ };
446
+ }
447
+ catch (error) {
448
+ console.error(`❌ Failed to create worktree:`, error);
449
+ throw new Error(`Failed to create worktree: ${error instanceof Error ? error.message : String(error)}`);
450
+ }
451
+ }
452
+ /**
453
+ * Get the default branch name (main or master)
454
+ */
455
+ function getDefaultBranch(projectPath) {
456
+ const { execSync } = require('child_process');
457
+ try {
458
+ // Try to get the default branch from remote
459
+ const result = execSync('git symbolic-ref refs/remotes/origin/HEAD', {
460
+ cwd: projectPath,
461
+ encoding: 'utf-8',
462
+ stdio: ['pipe', 'pipe', 'pipe'],
463
+ });
464
+ return result.trim().replace('refs/remotes/origin/', '');
465
+ }
466
+ catch {
467
+ // Fall back to checking if main or master exists
468
+ try {
469
+ execSync('git rev-parse --verify main', {
470
+ cwd: projectPath,
471
+ stdio: 'pipe',
472
+ });
473
+ return 'main';
474
+ }
475
+ catch {
476
+ return 'master';
477
+ }
478
+ }
479
+ }
480
+ /**
481
+ * Check if worktree isolation should be used
482
+ */
483
+ function shouldUseWorktree() {
484
+ return getWorktreeConfig().enabled;
485
+ }
486
+ /**
487
+ * Push changes from worktree and create PR
488
+ * Returns the PR URL if successful
489
+ */
490
+ async function pushWorktreeChanges(worktreePath, branchName, taskTitle) {
491
+ const { execSync } = await import('child_process');
492
+ try {
493
+ // Check if there are any commits to push
494
+ const status = execSync('git status --porcelain', {
495
+ cwd: worktreePath,
496
+ encoding: 'utf-8',
497
+ });
498
+ if (status.trim()) {
499
+ console.log(` 📝 Uncommitted changes detected, committing...`);
500
+ // Stage and commit any remaining changes
501
+ execSync('git add -A', { cwd: worktreePath, stdio: 'pipe' });
502
+ const commitPrefix = taskTitle.toLowerCase().includes('fix') ? 'fix' : 'feat';
503
+ const shortTitle = taskTitle.slice(0, 50).replace(/"/g, "'");
504
+ try {
505
+ execSync(`git commit -m "${commitPrefix}: ${shortTitle}"`, {
506
+ cwd: worktreePath,
507
+ stdio: 'pipe',
508
+ });
509
+ }
510
+ catch {
511
+ // No changes to commit
512
+ }
513
+ }
514
+ // Push the branch
515
+ console.log(` 🚀 Pushing branch: ${branchName}`);
516
+ execSync(`git push -u origin ${branchName}`, {
517
+ cwd: worktreePath,
518
+ stdio: 'pipe',
519
+ timeout: 60000,
520
+ });
521
+ // Check if PR already exists
522
+ try {
523
+ const existingPr = execSync(`gh pr view ${branchName} --json url -q .url`, {
524
+ cwd: worktreePath,
525
+ encoding: 'utf-8',
526
+ stdio: ['pipe', 'pipe', 'pipe'],
527
+ });
528
+ if (existingPr.trim()) {
529
+ console.log(` 📋 PR already exists: ${existingPr.trim()}`);
530
+ return existingPr.trim();
531
+ }
532
+ }
533
+ catch {
534
+ // No existing PR
535
+ }
536
+ // Create PR
537
+ console.log(` 📋 Creating pull request...`);
538
+ const prUrl = execSync(`gh pr create --title "${taskTitle.slice(0, 100)}" --body "Task implementation\n\nCreated by Astrid AI Agent" --head ${branchName}`, {
539
+ cwd: worktreePath,
540
+ encoding: 'utf-8',
541
+ timeout: 30000,
542
+ });
543
+ const url = prUrl.trim();
544
+ console.log(` ✅ PR created: ${url}`);
545
+ return url;
546
+ }
547
+ catch (error) {
548
+ console.error(` ⚠️ Failed to push/create PR:`, error);
549
+ return undefined;
550
+ }
551
+ }
146
552
  //# sourceMappingURL=terminal-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-base.js","sourceRoot":"","sources":["../../src/executors/terminal-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-base.js","sourceRoot":"","sources":["../../src/executors/terminal-base.ts"],"names":[],"mappings":"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"}
@@ -11,16 +11,24 @@
11
11
  * - Extracts PR URLs and git changes from output
12
12
  */
13
13
  import type { Session } from '../server/session-manager.js';
14
- import type { TerminalExecutor, TerminalTaskContext, ParsedOutput, TerminalExecutionResult } from './terminal-base.js';
14
+ import type { TerminalExecutor, TerminalTaskContext, TerminalExecutorCallbacks, ParsedOutput, TerminalExecutionResult } from './terminal-base.js';
15
15
  export type { TerminalExecutionResult, TerminalTaskContext } from './terminal-base.js';
16
16
  export interface TerminalClaudeOptions {
17
17
  model?: string;
18
18
  maxTurns?: number;
19
19
  timeout?: number;
20
20
  }
21
+ /**
22
+ * Session data stored for each task
23
+ */
24
+ interface StoredSession {
25
+ claudeSessionId?: string;
26
+ worktreePath?: string;
27
+ branchName?: string;
28
+ }
21
29
  /**
22
30
  * Simple file-based session store for terminal mode.
23
- * Stores Claude session IDs for resumption support.
31
+ * Stores Claude session IDs and worktree paths for resumption support.
24
32
  */
25
33
  declare class TerminalSessionStore {
26
34
  private storagePath;
@@ -29,8 +37,14 @@ declare class TerminalSessionStore {
29
37
  constructor();
30
38
  load(): Promise<void>;
31
39
  save(): Promise<void>;
40
+ getSession(taskId: string): Promise<StoredSession | undefined>;
32
41
  getClaudeSessionId(taskId: string): Promise<string | undefined>;
33
42
  setClaudeSessionId(taskId: string, claudeSessionId: string): Promise<void>;
43
+ setWorktree(taskId: string, worktreePath: string, branchName: string): Promise<void>;
44
+ getWorktree(taskId: string): Promise<{
45
+ path: string;
46
+ branch: string;
47
+ } | undefined>;
34
48
  deleteSession(taskId: string): Promise<void>;
35
49
  }
36
50
  export declare const terminalSessionStore: TerminalSessionStore;
@@ -71,17 +85,22 @@ export declare class TerminalClaudeExecutor implements TerminalExecutor {
71
85
  buildPrompt(session: Session, userMessage?: string, context?: TerminalTaskContext): Promise<string>;
72
86
  /**
73
87
  * Start a new Claude Code session with retry logic
88
+ * Uses git worktree isolation when enabled (default) to protect the main working directory
74
89
  */
75
- startSession(session: Session, prompt?: string, context?: TerminalTaskContext, onProgress?: (message: string) => void): Promise<TerminalExecutionResult>;
90
+ startSession(session: Session, prompt?: string, context?: TerminalTaskContext, callbacks?: TerminalExecutorCallbacks): Promise<TerminalExecutionResult>;
76
91
  /**
77
92
  * Resume an existing Claude Code session with retry logic
93
+ * Uses stored worktree path if available
78
94
  */
79
- resumeSession(session: Session, input: string, context?: TerminalTaskContext, onProgress?: (message: string) => void): Promise<TerminalExecutionResult>;
95
+ resumeSession(session: Session, input: string, context?: TerminalTaskContext, callbacks?: TerminalExecutorCallbacks): Promise<TerminalExecutionResult>;
80
96
  /**
81
97
  * Execute Claude Code CLI
82
98
  *
83
99
  * Uses stdin for prompt input instead of command-line args to avoid
84
100
  * issues with long prompts, special characters, and newlines.
101
+ *
102
+ * Parses output in real-time to detect plans, questions, and progress,
103
+ * posting them as comments to the task via the onComment callback.
85
104
  */
86
105
  private runClaude;
87
106
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-claude.d.ts","sourceRoot":"","sources":["../../src/executors/terminal-claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEnB,YAAY,EACZ,uBAAuB,EACxB,MAAM,oBAAoB,CAAA;AAO3B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAMtF,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD;;;GAGG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,MAAM,CAAQ;;IAShB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK/D,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOnD;AAGD,eAAO,MAAM,oBAAoB,sBAA6B,CAAA;AAM9D,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,GAAE,qBAA0B;IAO/C;;;OAGG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAkD7C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBhD;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB9D;;OAEG;IACH,oBAAoB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,MAAM;IAWxE;;;;;;;;OAQG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,uBAAuB,CAAC;IA4EnC;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,EAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,uBAAuB,CAAC;IA6EnC;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA4KjB;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAsCzC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAezC;AAGD,eAAO,MAAM,sBAAsB,wBAA+B,CAAA"}
1
+ {"version":3,"file":"terminal-claude.d.ts","sourceRoot":"","sources":["../../src/executors/terminal-claude.ts"],"names":[],"mappings":"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"}