@iloom/cli 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +8 -6
  2. package/dist/{BranchNamingService-OMWKUYMM.js → BranchNamingService-A77VI6AI.js} +2 -2
  3. package/dist/ClaudeContextManager-BN7RE5ZQ.js +15 -0
  4. package/dist/ClaudeService-DLYLJUPA.js +14 -0
  5. package/dist/{GitHubService-EBOETDIW.js → GitHubService-FZHHBOFG.js} +3 -3
  6. package/dist/{LoomLauncher-JF7JZMTZ.js → LoomLauncher-ZV3ZZIBA.js} +40 -26
  7. package/dist/LoomLauncher-ZV3ZZIBA.js.map +1 -0
  8. package/dist/{PromptTemplateManager-A52RUAMS.js → PromptTemplateManager-6HH3PVXV.js} +2 -2
  9. package/dist/README.md +8 -6
  10. package/dist/{SettingsManager-ZCWJ56WP.js → SettingsManager-I2LRCW2A.js} +2 -2
  11. package/dist/{SettingsMigrationManager-AGIIIPDQ.js → SettingsMigrationManager-TJ7UWZG5.js} +3 -3
  12. package/dist/agents/iloom-issue-complexity-evaluator.md +18 -3
  13. package/dist/agents/iloom-issue-enhancer.md +1 -1
  14. package/dist/{chunk-TSKY3JI7.js → chunk-2CXREBLZ.js} +2 -2
  15. package/dist/{chunk-HBYZH6GD.js → chunk-2IJEMXOB.js} +431 -128
  16. package/dist/chunk-2IJEMXOB.js.map +1 -0
  17. package/dist/{chunk-IXKLYTWO.js → chunk-2MAIX45J.js} +8 -8
  18. package/dist/{chunk-4BGK7T6X.js → chunk-5Q3NDNNV.js} +48 -8
  19. package/dist/chunk-5Q3NDNNV.js.map +1 -0
  20. package/dist/{chunk-JQFO7QQN.js → chunk-5VK4NRSF.js} +3 -3
  21. package/dist/{chunk-JQFO7QQN.js.map → chunk-5VK4NRSF.js.map} +1 -1
  22. package/dist/{chunk-XPKDPZ5D.js → chunk-AKUJXDNW.js} +2 -2
  23. package/dist/{chunk-O5OH5MRX.js → chunk-CDZERT7Z.js} +23 -11
  24. package/dist/chunk-CDZERT7Z.js.map +1 -0
  25. package/dist/{chunk-JKXJ7BGL.js → chunk-CE26YH2U.js} +42 -3
  26. package/dist/chunk-CE26YH2U.js.map +1 -0
  27. package/dist/{chunk-ZZZWQGTS.js → chunk-CFFQ2Z7A.js} +74 -75
  28. package/dist/chunk-CFFQ2Z7A.js.map +1 -0
  29. package/dist/{chunk-RO26VS3W.js → chunk-DLHA5VQ3.js} +174 -5
  30. package/dist/chunk-DLHA5VQ3.js.map +1 -0
  31. package/dist/{chunk-ZBQVSHVT.js → chunk-IFB4Z76W.js} +35 -10
  32. package/dist/chunk-IFB4Z76W.js.map +1 -0
  33. package/dist/{chunk-G2IEYOLQ.js → chunk-M7JJCX53.js} +17 -2
  34. package/dist/chunk-M7JJCX53.js.map +1 -0
  35. package/dist/{chunk-KLBYVHPK.js → chunk-OSCLCMDG.js} +2 -2
  36. package/dist/chunk-OXAM2WVC.js +68 -0
  37. package/dist/chunk-OXAM2WVC.js.map +1 -0
  38. package/dist/{chunk-ZWFBBPJI.js → chunk-OYF4VIFI.js} +5 -3
  39. package/dist/chunk-OYF4VIFI.js.map +1 -0
  40. package/dist/{chunk-U5QDY7ZD.js → chunk-PGPI5LR4.js} +8 -8
  41. package/dist/{chunk-WEN5C5DM.js → chunk-RIEO2WML.js} +4 -1
  42. package/dist/chunk-RIEO2WML.js.map +1 -0
  43. package/dist/{chunk-ZE74H5BR.js → chunk-RW54ZMBM.js} +26 -20
  44. package/dist/chunk-RW54ZMBM.js.map +1 -0
  45. package/dist/{chunk-INW24J2W.js → chunk-SUOXY5WJ.js} +2 -2
  46. package/dist/{init-L55Q73H4.js → chunk-UAN4A3YU.js} +345 -45
  47. package/dist/chunk-UAN4A3YU.js.map +1 -0
  48. package/dist/{chunk-IP7SMKIF.js → chunk-UJL4HI2R.js} +59 -60
  49. package/dist/chunk-UJL4HI2R.js.map +1 -0
  50. package/dist/{claude-LUZ35IMK.js → claude-W52VKI6L.js} +4 -2
  51. package/dist/{cleanup-3MONU4PU.js → cleanup-H4VXU3C3.js} +19 -17
  52. package/dist/{cleanup-3MONU4PU.js.map → cleanup-H4VXU3C3.js.map} +1 -1
  53. package/dist/cli.js +347 -114
  54. package/dist/cli.js.map +1 -1
  55. package/dist/{color-ZVALX37U.js → color-F7RU6B6Z.js} +10 -4
  56. package/dist/{contribute-UWJAGIG7.js → contribute-Y7IQV5QY.js} +4 -3
  57. package/dist/{contribute-UWJAGIG7.js.map → contribute-Y7IQV5QY.js.map} +1 -1
  58. package/dist/{feedback-W3BXTGIM.js → feedback-XTUCKJNT.js} +16 -12
  59. package/dist/{feedback-W3BXTGIM.js.map → feedback-XTUCKJNT.js.map} +1 -1
  60. package/dist/{git-34Z6QVDS.js → git-IYA53VIC.js} +9 -2
  61. package/dist/{ignite-KVJEFXNO.js → ignite-T74RYXCA.js} +25 -75
  62. package/dist/ignite-T74RYXCA.js.map +1 -0
  63. package/dist/index.d.ts +71 -14
  64. package/dist/index.js +407 -377
  65. package/dist/index.js.map +1 -1
  66. package/dist/init-4FHTAM3F.js +19 -0
  67. package/dist/mcp/issue-management-server.js +8 -1
  68. package/dist/mcp/issue-management-server.js.map +1 -1
  69. package/dist/{neon-helpers-WPUACUVC.js → neon-helpers-77PBPGJ5.js} +3 -3
  70. package/dist/{open-LNRZL3UU.js → open-UMXANW5S.js} +27 -14
  71. package/dist/open-UMXANW5S.js.map +1 -0
  72. package/dist/{prompt-7INJ7YRU.js → prompt-QALMYTVC.js} +4 -2
  73. package/dist/prompts/init-prompt.txt +89 -9
  74. package/dist/prompts/issue-prompt.txt +18 -11
  75. package/dist/{rebase-C4WNCVGM.js → rebase-VJ2VKR6R.js} +15 -13
  76. package/dist/rebase-VJ2VKR6R.js.map +1 -0
  77. package/dist/{run-IOGNIOYN.js → run-MJYY4PUT.js} +27 -14
  78. package/dist/run-MJYY4PUT.js.map +1 -0
  79. package/dist/schema/settings.schema.json +22 -4
  80. package/dist/{test-git-J7I5MFYH.js → test-git-IT5EWQ5C.js} +5 -5
  81. package/dist/{test-prefix-ZCONBCBX.js → test-prefix-NPWDPUUH.js} +5 -5
  82. package/dist/{test-tabs-RXDBZ6J7.js → test-tabs-PRMRSHKI.js} +3 -2
  83. package/dist/{test-tabs-RXDBZ6J7.js.map → test-tabs-PRMRSHKI.js.map} +1 -1
  84. package/package.json +2 -1
  85. package/dist/ClaudeContextManager-3VXA6UPR.js +0 -13
  86. package/dist/ClaudeService-6CPK43N4.js +0 -12
  87. package/dist/LoomLauncher-JF7JZMTZ.js.map +0 -1
  88. package/dist/chunk-4BGK7T6X.js.map +0 -1
  89. package/dist/chunk-4E4LD3QR.js +0 -302
  90. package/dist/chunk-4E4LD3QR.js.map +0 -1
  91. package/dist/chunk-G2IEYOLQ.js.map +0 -1
  92. package/dist/chunk-HBYZH6GD.js.map +0 -1
  93. package/dist/chunk-IP7SMKIF.js.map +0 -1
  94. package/dist/chunk-JKXJ7BGL.js.map +0 -1
  95. package/dist/chunk-O5OH5MRX.js.map +0 -1
  96. package/dist/chunk-RO26VS3W.js.map +0 -1
  97. package/dist/chunk-WEN5C5DM.js.map +0 -1
  98. package/dist/chunk-ZBQVSHVT.js.map +0 -1
  99. package/dist/chunk-ZE74H5BR.js.map +0 -1
  100. package/dist/chunk-ZWFBBPJI.js.map +0 -1
  101. package/dist/chunk-ZZZWQGTS.js.map +0 -1
  102. package/dist/ignite-KVJEFXNO.js.map +0 -1
  103. package/dist/init-L55Q73H4.js.map +0 -1
  104. package/dist/open-LNRZL3UU.js.map +0 -1
  105. package/dist/rebase-C4WNCVGM.js.map +0 -1
  106. package/dist/run-IOGNIOYN.js.map +0 -1
  107. package/dist/terminal-BIRBZ4AZ.js +0 -16
  108. /package/dist/{BranchNamingService-OMWKUYMM.js.map → BranchNamingService-A77VI6AI.js.map} +0 -0
  109. /package/dist/{ClaudeContextManager-3VXA6UPR.js.map → ClaudeContextManager-BN7RE5ZQ.js.map} +0 -0
  110. /package/dist/{ClaudeService-6CPK43N4.js.map → ClaudeService-DLYLJUPA.js.map} +0 -0
  111. /package/dist/{GitHubService-EBOETDIW.js.map → GitHubService-FZHHBOFG.js.map} +0 -0
  112. /package/dist/{PromptTemplateManager-A52RUAMS.js.map → PromptTemplateManager-6HH3PVXV.js.map} +0 -0
  113. /package/dist/{SettingsManager-ZCWJ56WP.js.map → SettingsManager-I2LRCW2A.js.map} +0 -0
  114. /package/dist/{SettingsMigrationManager-AGIIIPDQ.js.map → SettingsMigrationManager-TJ7UWZG5.js.map} +0 -0
  115. /package/dist/{chunk-TSKY3JI7.js.map → chunk-2CXREBLZ.js.map} +0 -0
  116. /package/dist/{chunk-IXKLYTWO.js.map → chunk-2MAIX45J.js.map} +0 -0
  117. /package/dist/{chunk-XPKDPZ5D.js.map → chunk-AKUJXDNW.js.map} +0 -0
  118. /package/dist/{chunk-KLBYVHPK.js.map → chunk-OSCLCMDG.js.map} +0 -0
  119. /package/dist/{chunk-U5QDY7ZD.js.map → chunk-PGPI5LR4.js.map} +0 -0
  120. /package/dist/{chunk-INW24J2W.js.map → chunk-SUOXY5WJ.js.map} +0 -0
  121. /package/dist/{claude-LUZ35IMK.js.map → claude-W52VKI6L.js.map} +0 -0
  122. /package/dist/{color-ZVALX37U.js.map → color-F7RU6B6Z.js.map} +0 -0
  123. /package/dist/{git-34Z6QVDS.js.map → git-IYA53VIC.js.map} +0 -0
  124. /package/dist/{neon-helpers-WPUACUVC.js.map → init-4FHTAM3F.js.map} +0 -0
  125. /package/dist/{prompt-7INJ7YRU.js.map → neon-helpers-77PBPGJ5.js.map} +0 -0
  126. /package/dist/{terminal-BIRBZ4AZ.js.map → prompt-QALMYTVC.js.map} +0 -0
  127. /package/dist/{test-git-J7I5MFYH.js.map → test-git-IT5EWQ5C.js.map} +0 -0
  128. /package/dist/{test-prefix-ZCONBCBX.js.map → test-prefix-NPWDPUUH.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -362,11 +362,21 @@ declare const IloomSettingsSchema: z.ZodObject<{
362
362
  mode?: "local" | "github-pr" | undefined;
363
363
  }>>;
364
364
  ide: z.ZodOptional<z.ZodObject<{
365
- type: z.ZodDefault<z.ZodEnum<["vscode", "cursor", "webstorm", "sublime", "intellij", "windsurf"]>>;
365
+ type: z.ZodDefault<z.ZodEnum<["vscode", "cursor", "webstorm", "sublime", "intellij", "windsurf", "antigravity"]>>;
366
366
  }, "strip", z.ZodTypeAny, {
367
- type: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf";
367
+ type: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity";
368
368
  }, {
369
- type?: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | undefined;
369
+ type?: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity" | undefined;
370
+ }>>;
371
+ colors: z.ZodOptional<z.ZodObject<{
372
+ terminal: z.ZodDefault<z.ZodBoolean>;
373
+ vscode: z.ZodDefault<z.ZodBoolean>;
374
+ }, "strip", z.ZodTypeAny, {
375
+ vscode: boolean;
376
+ terminal: boolean;
377
+ }, {
378
+ vscode?: boolean | undefined;
379
+ terminal?: boolean | undefined;
370
380
  }>>;
371
381
  }, "strip", z.ZodTypeAny, {
372
382
  sourceEnvOnStart: boolean;
@@ -432,7 +442,11 @@ declare const IloomSettingsSchema: z.ZodObject<{
432
442
  remote?: string | undefined;
433
443
  } | undefined;
434
444
  ide?: {
435
- type: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf";
445
+ type: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity";
446
+ } | undefined;
447
+ colors?: {
448
+ vscode: boolean;
449
+ terminal: boolean;
436
450
  } | undefined;
437
451
  }, {
438
452
  mainBranch?: string | undefined;
@@ -498,7 +512,11 @@ declare const IloomSettingsSchema: z.ZodObject<{
498
512
  mode?: "local" | "github-pr" | undefined;
499
513
  } | undefined;
500
514
  ide?: {
501
- type?: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | undefined;
515
+ type?: "vscode" | "cursor" | "webstorm" | "sublime" | "intellij" | "windsurf" | "antigravity" | undefined;
516
+ } | undefined;
517
+ colors?: {
518
+ vscode?: boolean | undefined;
519
+ terminal?: boolean | undefined;
502
520
  } | undefined;
503
521
  }>;
504
522
  /**
@@ -774,6 +792,7 @@ interface Loom {
774
792
  identifier: string | number;
775
793
  port: number;
776
794
  databaseBranch?: string;
795
+ description?: string;
777
796
  createdAt: Date;
778
797
  lastAccessed: Date;
779
798
  issueData?: {
@@ -800,7 +819,8 @@ interface CreateLoomInput {
800
819
  };
801
820
  options?: {
802
821
  skipDatabase?: boolean;
803
- skipColorSync?: boolean;
822
+ colorTerminal?: boolean;
823
+ colorVscode?: boolean;
804
824
  enableClaude?: boolean;
805
825
  enableCode?: boolean;
806
826
  enableDevServer?: boolean;
@@ -1058,6 +1078,7 @@ interface StartOptions {
1058
1078
  body?: string;
1059
1079
  }
1060
1080
  interface AddIssueOptions {
1081
+ body?: string;
1061
1082
  }
1062
1083
  interface FeedbackOptions {
1063
1084
  body?: string;
@@ -1134,6 +1155,13 @@ interface CommitOptions {
1134
1155
  noReview?: boolean;
1135
1156
  skipVerify?: boolean;
1136
1157
  }
1158
+ /**
1159
+ * Error thrown when user aborts a commit operation
1160
+ * Used by CommitManager when user selects 'abort' at the commit prompt
1161
+ */
1162
+ declare class UserAbortedCommitError extends Error {
1163
+ constructor(message?: string);
1164
+ }
1137
1165
  interface MergeOptions {
1138
1166
  dryRun?: boolean;
1139
1167
  force?: boolean;
@@ -1193,6 +1221,11 @@ declare class GitHubService implements IssueTracker {
1193
1221
  constructor(options?: {
1194
1222
  prompter?: (message: string) => Promise<boolean>;
1195
1223
  });
1224
+ /**
1225
+ * Check if GitHub CLI (gh) is available on the system
1226
+ * @returns true if gh CLI is installed and accessible, false otherwise
1227
+ */
1228
+ static isCliAvailable(): boolean;
1196
1229
  detectInputType(input: string, repo?: string): Promise<IssueTrackerInputDetection>;
1197
1230
  fetchIssue(issueNumber: number, repo?: string): Promise<Issue>;
1198
1231
  isValidIssue(issueNumber: number, repo?: string): Promise<Issue | false>;
@@ -1312,19 +1345,19 @@ declare class DatabaseManager {
1312
1345
  * Check if database branching should be used
1313
1346
  * Requires BOTH conditions:
1314
1347
  * 1. Database provider is properly configured (checked via provider.isConfigured())
1315
- * 2. .env file contains the configured database URL variable
1348
+ * 2. Any dotenv-flow file contains the configured database URL variable
1316
1349
  */
1317
- shouldUseDatabaseBranching(envFilePath: string): Promise<boolean>;
1350
+ shouldUseDatabaseBranching(workspacePath: string): Promise<boolean>;
1318
1351
  /**
1319
1352
  * Create database branch only if configured
1320
1353
  * Returns connection string if branch was created, null if skipped
1321
1354
  *
1322
1355
  * @param branchName - Name of the branch to create
1323
- * @param envFilePath - Path to .env file for configuration checks
1356
+ * @param workspacePath - Path to workspace for configuration checks (checks all dotenv-flow files)
1324
1357
  * @param cwd - Optional working directory to run commands from
1325
1358
  * @param fromBranch - Optional parent branch to create from (for child looms)
1326
1359
  */
1327
- createBranchIfConfigured(branchName: string, envFilePath: string, cwd?: string, fromBranch?: string): Promise<string | null>;
1360
+ createBranchIfConfigured(branchName: string, workspacePath: string, cwd?: string, fromBranch?: string): Promise<string | null>;
1328
1361
  /**
1329
1362
  * Delete database branch only if configured
1330
1363
  * Returns result object indicating what happened
@@ -1344,9 +1377,9 @@ declare class DatabaseManager {
1344
1377
  */
1345
1378
  getBranchNameFromConnectionString(connectionString: string, cwd?: string): Promise<string | null>;
1346
1379
  /**
1347
- * Check if .env has the configured database URL variable
1380
+ * Check if any dotenv-flow file has the configured database URL variable
1348
1381
  * CRITICAL: If user explicitly configured a custom variable name (not default),
1349
- * throw an error if it's missing from .env
1382
+ * throw an error if it's missing from all env files
1350
1383
  */
1351
1384
  private hasDatabaseUrlInEnv;
1352
1385
  }
@@ -1375,6 +1408,7 @@ interface TemplateVariables {
1375
1408
  README_CONTENT?: string;
1376
1409
  SETTINGS_SCHEMA_CONTENT?: string;
1377
1410
  FIRST_TIME_USER?: boolean;
1411
+ VSCODE_SETTINGS_GITIGNORED?: string;
1378
1412
  }
1379
1413
  declare class PromptTemplateManager {
1380
1414
  private templateDir;
@@ -1516,7 +1550,13 @@ declare function getCurrentBranch(path?: string): Promise<string | null>;
1516
1550
  */
1517
1551
  declare function branchExists(branchName: string, path?: string, includeRemote?: boolean): Promise<boolean>;
1518
1552
  /**
1519
- * Get repository root directory
1553
+ * Get the root directory of the current worktree
1554
+ * Returns the worktree root when in a linked worktree, or main repo root when in main worktree
1555
+ */
1556
+ declare function getWorktreeRoot(path?: string): Promise<string | null>;
1557
+ /**
1558
+ * Get the main repository root directory
1559
+ * Returns the main repo root even when called from a linked worktree
1520
1560
  */
1521
1561
  declare function getRepoRoot(path?: string): Promise<string | null>;
1522
1562
  /**
@@ -1585,6 +1625,23 @@ declare function ensureRepositoryHasCommits(path?: string): Promise<void>;
1585
1625
  declare function pushBranchToRemote(branchName: string, worktreePath: string, options?: {
1586
1626
  dryRun?: boolean;
1587
1627
  }): Promise<void>;
1628
+ /**
1629
+ * Check if a file is tracked by git
1630
+ * Uses git ls-files to check if file is in the index
1631
+ * @param filePath - Absolute or relative path to the file
1632
+ * @param cwd - Working directory (defaults to process.cwd())
1633
+ * @returns true if file is tracked, false otherwise
1634
+ */
1635
+ declare function isFileTrackedByGit(filePath: string, cwd?: string): Promise<boolean>;
1636
+ /**
1637
+ * Check if a file is gitignored
1638
+ * Uses `git check-ignore` which handles nested gitignore files and global patterns
1639
+ *
1640
+ * @param filePath - Path to file to check (relative to repo root)
1641
+ * @param cwd - Working directory (defaults to process.cwd())
1642
+ * @returns true if file IS ignored, false if NOT ignored or on error
1643
+ */
1644
+ declare function isFileGitignored(filePath: string, cwd?: string): Promise<boolean>;
1588
1645
 
1589
1646
  interface LoggerOptions {
1590
1647
  prefix?: string;
@@ -1754,4 +1811,4 @@ declare class TableFormatter {
1754
1811
  static previewFormatting(headers: string[], options?: TableFormatterOptions): string;
1755
1812
  }
1756
1813
 
1757
- export { type AddIssueOptions, type BatchCleanupResult, type BranchCleanupTarget, type BranchDeleteOptions, type BranchGenerationOptions, type BranchNameStrategy, type Capability, type ClaudeContext, ClaudeContextManager, type CleanupOptions, type CleanupResult, type ColorData, type CommitOptions, type Config, type CreateLoomInput, type DatabaseDeletionResult, DatabaseManager, type DatabaseProvider, type EnhanceOptions, type EnvFileOptions, type EnvOperationResult, type EnvVariable, EnvironmentManager, type FeedbackOptions, type FinishOptions, GitHubService, type GitStatus, type GitWorktree, GitWorktreeManager, type InstallationMethod, type Issue, type IssueTracker, IssueTrackerFactory, type IssueTrackerInputDetection, type IssueTrackerProviderType, type LaunchMode, LinearMarkupConverter, type ListOptions, type Logger, type LoggerOptions, type Loom, type LoomSummary, type MergeOptions, type MergeResult, type MockOptions, type OneShotMode, type OperationResult, type PRWorktreePattern, type Platform, type PortAssignmentOptions, type ProcessInfo, type ProjectCapability, type PullRequest, type ResourceCleanupOptions, type RgbColor, type SafetyCheck, type StartOptions, TableFormatter, type TableFormatterOptions, type TableGenerationOptions, type UpdateCheckCache, type UpdateCheckResult, type ValidationOptions, type ValidationResult, type ValidationStepResult, type Workspace, type WorkspaceInput, WorkspaceManager, type WorkspaceSummary, type Worktree, type WorktreeCleanupOptions, type WorktreeCreateOptions, type WorktreeListOptions, type WorktreeOperationResult, type WorktreeStatus, type WorktreeValidation, branchExists, createLogger, ensureRepositoryHasCommits, executeGitCommand, extractIssueNumber, extractPRNumber, findAllBranchesForIssue, findMainWorktreePath, findMainWorktreePathWithSettings, generateWorktreePath, getCurrentBranch, getDefaultBranch, getRepoRoot, hasUncommittedChanges, isEmptyRepository, isPRBranch, isValidGitRepo, isWorktreePath, logger, parseWorktreeList, pushBranchToRemote };
1814
+ export { type AddIssueOptions, type BatchCleanupResult, type BranchCleanupTarget, type BranchDeleteOptions, type BranchGenerationOptions, type BranchNameStrategy, type Capability, type ClaudeContext, ClaudeContextManager, type CleanupOptions, type CleanupResult, type ColorData, type CommitOptions, type Config, type CreateLoomInput, type DatabaseDeletionResult, DatabaseManager, type DatabaseProvider, type EnhanceOptions, type EnvFileOptions, type EnvOperationResult, type EnvVariable, EnvironmentManager, type FeedbackOptions, type FinishOptions, GitHubService, type GitStatus, type GitWorktree, GitWorktreeManager, type InstallationMethod, type Issue, type IssueTracker, IssueTrackerFactory, type IssueTrackerInputDetection, type IssueTrackerProviderType, type LaunchMode, LinearMarkupConverter, type ListOptions, type Logger, type LoggerOptions, type Loom, type LoomSummary, type MergeOptions, type MergeResult, type MockOptions, type OneShotMode, type OperationResult, type PRWorktreePattern, type Platform, type PortAssignmentOptions, type ProcessInfo, type ProjectCapability, type PullRequest, type ResourceCleanupOptions, type RgbColor, type SafetyCheck, type StartOptions, TableFormatter, type TableFormatterOptions, type TableGenerationOptions, type UpdateCheckCache, type UpdateCheckResult, UserAbortedCommitError, type ValidationOptions, type ValidationResult, type ValidationStepResult, type Workspace, type WorkspaceInput, WorkspaceManager, type WorkspaceSummary, type Worktree, type WorktreeCleanupOptions, type WorktreeCreateOptions, type WorktreeListOptions, type WorktreeOperationResult, type WorktreeStatus, type WorktreeValidation, branchExists, createLogger, ensureRepositoryHasCommits, executeGitCommand, extractIssueNumber, extractPRNumber, findAllBranchesForIssue, findMainWorktreePath, findMainWorktreePathWithSettings, generateWorktreePath, getCurrentBranch, getDefaultBranch, getRepoRoot, getWorktreeRoot, hasUncommittedChanges, isEmptyRepository, isFileGitignored, isFileTrackedByGit, isPRBranch, isValidGitRepo, isWorktreePath, logger, parseWorktreeList, pushBranchToRemote };