@iloom/cli 0.8.3 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +50 -4
  3. package/dist/{BranchNamingService-AO7BPIUJ.js → BranchNamingService-K6XNWQ6C.js} +2 -2
  4. package/dist/ClaudeContextManager-X2Y72GRL.js +14 -0
  5. package/dist/ClaudeService-7P32TTES.js +13 -0
  6. package/dist/{GitHubService-ACZVNTJE.js → GitHubService-O7T6CFAJ.js} +3 -3
  7. package/dist/{LoomLauncher-NHZMEVTQ.js → LoomLauncher-3I47SUPV.js} +6 -6
  8. package/dist/{ProjectCapabilityDetector-IA56AUE6.js → ProjectCapabilityDetector-N5L7T4IY.js} +3 -3
  9. package/dist/PromptTemplateManager-36YLQRHP.js +11 -0
  10. package/dist/README.md +50 -4
  11. package/dist/{SettingsManager-VCVLL32H.js → SettingsManager-QR7V2IW2.js} +2 -2
  12. package/dist/agents/iloom-artifact-reviewer.md +280 -0
  13. package/dist/agents/iloom-code-reviewer.md +9 -7
  14. package/dist/agents/iloom-issue-analyze-and-plan.md +21 -6
  15. package/dist/agents/iloom-issue-analyzer.md +21 -6
  16. package/dist/agents/iloom-issue-complexity-evaluator.md +21 -6
  17. package/dist/agents/iloom-issue-enhancer.md +21 -6
  18. package/dist/agents/iloom-issue-implementer.md +21 -6
  19. package/dist/agents/iloom-issue-planner.md +21 -6
  20. package/dist/{build-Z3WCIKPD.js → build-IC4CJRMP.js} +8 -8
  21. package/dist/{chunk-TVH67KEO.js → chunk-2HZX6AMR.js} +2 -2
  22. package/dist/{chunk-VZYSM7N7.js → chunk-2JPXGGP4.js} +20 -15
  23. package/dist/chunk-2JPXGGP4.js.map +1 -0
  24. package/dist/{chunk-SC6X5EBG.js → chunk-3P6J4IZZ.js} +3 -3
  25. package/dist/{chunk-HSGZW3ID.js → chunk-4GAJJUYS.js} +3 -3
  26. package/dist/chunk-4GAJJUYS.js.map +1 -0
  27. package/dist/{chunk-RD7I2Q2F.js → chunk-4LKGCFGG.js} +2 -2
  28. package/dist/{chunk-GWONJE3X.js → chunk-4ZIHFUPN.js} +226 -62
  29. package/dist/chunk-4ZIHFUPN.js.map +1 -0
  30. package/dist/{chunk-SSASIBDJ.js → chunk-5LVVQGB3.js} +5 -5
  31. package/dist/{chunk-4BSXZ5YZ.js → chunk-B7U6OKUR.js} +5 -24
  32. package/dist/chunk-B7U6OKUR.js.map +1 -0
  33. package/dist/{chunk-RNBIISBZ.js → chunk-ENGCJIYQ.js} +48 -3
  34. package/dist/chunk-ENGCJIYQ.js.map +1 -0
  35. package/dist/{chunk-IGKPPACU.js → chunk-FO5GGFOV.js} +17 -8
  36. package/dist/chunk-FO5GGFOV.js.map +1 -0
  37. package/dist/{chunk-GDS2HXSW.js → chunk-H6ST2TGP.js} +20 -3
  38. package/dist/chunk-H6ST2TGP.js.map +1 -0
  39. package/dist/{chunk-A7XHHUEV.js → chunk-HZXBHMVM.js} +47 -22
  40. package/dist/chunk-HZXBHMVM.js.map +1 -0
  41. package/dist/{chunk-44Y5IF7P.js → chunk-I3HMNWQQ.js} +9 -8
  42. package/dist/chunk-I3HMNWQQ.js.map +1 -0
  43. package/dist/{chunk-XJHQVOT6.js → chunk-J7FJ6PUT.js} +2 -2
  44. package/dist/chunk-JT5LZRMI.js +302 -0
  45. package/dist/chunk-JT5LZRMI.js.map +1 -0
  46. package/dist/{chunk-Q457PKGH.js → chunk-KAYXR544.js} +2 -2
  47. package/dist/{chunk-XU5A6BWA.js → chunk-MZPRBNYC.js} +4 -4
  48. package/dist/{chunk-XHNACIHO.js → chunk-NTTSUAVM.js} +2 -2
  49. package/dist/{chunk-PLI3JQWT.js → chunk-OAVJR4PM.js} +2 -2
  50. package/dist/{chunk-UDZCTLD6.js → chunk-OK7LUTRW.js} +3 -3
  51. package/dist/{chunk-PBSHQVCT.js → chunk-POU2UMWN.js} +5 -5
  52. package/dist/chunk-QN47QVBX.js +131 -0
  53. package/dist/chunk-QN47QVBX.js.map +1 -0
  54. package/dist/{chunk-3FC3VNEX.js → chunk-RD7OPXZK.js} +34 -8
  55. package/dist/chunk-RD7OPXZK.js.map +1 -0
  56. package/dist/{chunk-O6LECMT6.js → chunk-TGRK3CHF.js} +8 -8
  57. package/dist/{chunk-7GLZVDPQ.js → chunk-TL72BGP6.js} +2 -2
  58. package/dist/{chunk-THS5L54H.js → chunk-TRUMP4DA.js} +26 -2
  59. package/dist/{chunk-THS5L54H.js.map → chunk-TRUMP4DA.js.map} +1 -1
  60. package/dist/{chunk-52MVUK5V.js → chunk-USSL2X4A.js} +2 -2
  61. package/dist/chunk-USSL2X4A.js.map +1 -0
  62. package/dist/{chunk-XPKN3QWY.js → chunk-VOGGLPG5.js} +1 -2
  63. package/dist/{chunk-IWIIOFEB.js → chunk-XFEK2X2D.js} +16 -6
  64. package/dist/chunk-XFEK2X2D.js.map +1 -0
  65. package/dist/{chunk-PVW6JE7E.js → chunk-Y5HSSIK2.js} +2 -2
  66. package/dist/{chunk-4KGRPHM6.js → chunk-Y5O2ALDZ.js} +3 -3
  67. package/dist/{claude-V4HRPR4Z.js → claude-TP2QO3BU.js} +2 -2
  68. package/dist/{cleanup-NWNKWPUY.js → cleanup-D3CSRBBZ.js} +23 -18
  69. package/dist/{cleanup-NWNKWPUY.js.map → cleanup-D3CSRBBZ.js.map} +1 -1
  70. package/dist/cli.js +143 -93
  71. package/dist/cli.js.map +1 -1
  72. package/dist/{commit-534QIRHY.js → commit-IWGT42XN.js} +13 -13
  73. package/dist/{compile-UANHMNTS.js → compile-EOWJORKO.js} +8 -8
  74. package/dist/{contribute-7USRBWRM.js → contribute-WSJTV2RX.js} +4 -4
  75. package/dist/{dev-server-TO7RLYJI.js → dev-server-Q6M62ATG.js} +13 -13
  76. package/dist/{feedback-7ZZI6RC5.js → feedback-QPNDZQRV.js} +14 -14
  77. package/dist/{git-GUNOPP4Q.js → git-W3XUIFTR.js} +5 -3
  78. package/dist/hooks/iloom-hook.js +5 -3
  79. package/dist/{ignite-JBX3BUDE.js → ignite-OPO6EDYT.js} +95 -52
  80. package/dist/ignite-OPO6EDYT.js.map +1 -0
  81. package/dist/index.d.ts +40 -2
  82. package/dist/index.js +52 -15
  83. package/dist/index.js.map +1 -1
  84. package/dist/{chunk-FPNSFP6K.js → init-ALYWKNWG.js} +42 -329
  85. package/dist/init-ALYWKNWG.js.map +1 -0
  86. package/dist/issues-L7TBUPXT.js +116 -0
  87. package/dist/issues-L7TBUPXT.js.map +1 -0
  88. package/dist/{lint-XPODLDVA.js → lint-IHUH45OC.js} +8 -8
  89. package/dist/mcp/issue-management-server.js +3 -2
  90. package/dist/mcp/issue-management-server.js.map +1 -1
  91. package/dist/{open-M2SUR74Y.js → open-KWOV2OFO.js} +15 -15
  92. package/dist/{plan-FB4AOJ2Q.js → plan-BRJBFJHF.js} +60 -28
  93. package/dist/plan-BRJBFJHF.js.map +1 -0
  94. package/dist/{projects-325GEEGJ.js → projects-LH362JZQ.js} +3 -3
  95. package/dist/prompts/init-prompt.txt +9 -1
  96. package/dist/prompts/issue-prompt.txt +310 -0
  97. package/dist/prompts/plan-prompt.txt +4 -6
  98. package/dist/prompts/pr-prompt.txt +79 -0
  99. package/dist/prompts/regular-prompt.txt +205 -0
  100. package/dist/{rebase-4FNRBW3H.js → rebase-AJOJOZUG.js} +9 -9
  101. package/dist/{recap-GSXFEOD6.js → recap-GKJXMDXW.js} +5 -5
  102. package/dist/{run-GZNHRJB2.js → run-QEUVZF7J.js} +15 -15
  103. package/dist/schema/settings.schema.json +9 -1
  104. package/dist/{shell-2SPM3Z5O.js → shell-DAAVG4YN.js} +5 -5
  105. package/dist/{summary-Z4F7YFXE.js → summary-ZKOA35PT.js} +13 -13
  106. package/dist/{test-LBSPYIJW.js → test-5GPWWO3P.js} +8 -8
  107. package/dist/{test-git-ZPSPA2TP.js → test-git-EJUKDB7F.js} +3 -3
  108. package/dist/{test-prefix-6DLB2BHE.js → test-prefix-23TOBUXY.js} +3 -3
  109. package/dist/{test-webserver-XLJ2TZFP.js → test-webserver-CKROHFBQ.js} +5 -5
  110. package/dist/{vscode-LH3VSQ2W.js → vscode-6TOLFCI2.js} +5 -5
  111. package/package.json +2 -2
  112. package/dist/ClaudeContextManager-RDP6CLK6.js +0 -14
  113. package/dist/ClaudeService-FKPOQRA4.js +0 -13
  114. package/dist/PRManager-A63LT3NF.js +0 -16
  115. package/dist/PromptTemplateManager-OUYDHOPI.js +0 -9
  116. package/dist/chunk-3FC3VNEX.js.map +0 -1
  117. package/dist/chunk-44Y5IF7P.js.map +0 -1
  118. package/dist/chunk-4BSXZ5YZ.js.map +0 -1
  119. package/dist/chunk-52MVUK5V.js.map +0 -1
  120. package/dist/chunk-66QOCD5N.js +0 -79
  121. package/dist/chunk-66QOCD5N.js.map +0 -1
  122. package/dist/chunk-A7XHHUEV.js.map +0 -1
  123. package/dist/chunk-FPNSFP6K.js.map +0 -1
  124. package/dist/chunk-GDS2HXSW.js.map +0 -1
  125. package/dist/chunk-GWONJE3X.js.map +0 -1
  126. package/dist/chunk-HSGZW3ID.js.map +0 -1
  127. package/dist/chunk-IGKPPACU.js.map +0 -1
  128. package/dist/chunk-IWIIOFEB.js.map +0 -1
  129. package/dist/chunk-RNBIISBZ.js.map +0 -1
  130. package/dist/chunk-VZYSM7N7.js.map +0 -1
  131. package/dist/git-GUNOPP4Q.js.map +0 -1
  132. package/dist/ignite-JBX3BUDE.js.map +0 -1
  133. package/dist/init-XXDIB2UJ.js +0 -21
  134. package/dist/init-XXDIB2UJ.js.map +0 -1
  135. package/dist/plan-FB4AOJ2Q.js.map +0 -1
  136. /package/dist/{BranchNamingService-AO7BPIUJ.js.map → BranchNamingService-K6XNWQ6C.js.map} +0 -0
  137. /package/dist/{ClaudeContextManager-RDP6CLK6.js.map → ClaudeContextManager-X2Y72GRL.js.map} +0 -0
  138. /package/dist/{ClaudeService-FKPOQRA4.js.map → ClaudeService-7P32TTES.js.map} +0 -0
  139. /package/dist/{GitHubService-ACZVNTJE.js.map → GitHubService-O7T6CFAJ.js.map} +0 -0
  140. /package/dist/{LoomLauncher-NHZMEVTQ.js.map → LoomLauncher-3I47SUPV.js.map} +0 -0
  141. /package/dist/{PRManager-A63LT3NF.js.map → ProjectCapabilityDetector-N5L7T4IY.js.map} +0 -0
  142. /package/dist/{ProjectCapabilityDetector-IA56AUE6.js.map → PromptTemplateManager-36YLQRHP.js.map} +0 -0
  143. /package/dist/{PromptTemplateManager-OUYDHOPI.js.map → SettingsManager-QR7V2IW2.js.map} +0 -0
  144. /package/dist/{build-Z3WCIKPD.js.map → build-IC4CJRMP.js.map} +0 -0
  145. /package/dist/{chunk-TVH67KEO.js.map → chunk-2HZX6AMR.js.map} +0 -0
  146. /package/dist/{chunk-SC6X5EBG.js.map → chunk-3P6J4IZZ.js.map} +0 -0
  147. /package/dist/{chunk-RD7I2Q2F.js.map → chunk-4LKGCFGG.js.map} +0 -0
  148. /package/dist/{chunk-SSASIBDJ.js.map → chunk-5LVVQGB3.js.map} +0 -0
  149. /package/dist/{chunk-XJHQVOT6.js.map → chunk-J7FJ6PUT.js.map} +0 -0
  150. /package/dist/{chunk-Q457PKGH.js.map → chunk-KAYXR544.js.map} +0 -0
  151. /package/dist/{chunk-XU5A6BWA.js.map → chunk-MZPRBNYC.js.map} +0 -0
  152. /package/dist/{chunk-XHNACIHO.js.map → chunk-NTTSUAVM.js.map} +0 -0
  153. /package/dist/{chunk-PLI3JQWT.js.map → chunk-OAVJR4PM.js.map} +0 -0
  154. /package/dist/{chunk-UDZCTLD6.js.map → chunk-OK7LUTRW.js.map} +0 -0
  155. /package/dist/{chunk-PBSHQVCT.js.map → chunk-POU2UMWN.js.map} +0 -0
  156. /package/dist/{chunk-O6LECMT6.js.map → chunk-TGRK3CHF.js.map} +0 -0
  157. /package/dist/{chunk-7GLZVDPQ.js.map → chunk-TL72BGP6.js.map} +0 -0
  158. /package/dist/{chunk-XPKN3QWY.js.map → chunk-VOGGLPG5.js.map} +0 -0
  159. /package/dist/{chunk-PVW6JE7E.js.map → chunk-Y5HSSIK2.js.map} +0 -0
  160. /package/dist/{chunk-4KGRPHM6.js.map → chunk-Y5O2ALDZ.js.map} +0 -0
  161. /package/dist/{SettingsManager-VCVLL32H.js.map → claude-TP2QO3BU.js.map} +0 -0
  162. /package/dist/{commit-534QIRHY.js.map → commit-IWGT42XN.js.map} +0 -0
  163. /package/dist/{compile-UANHMNTS.js.map → compile-EOWJORKO.js.map} +0 -0
  164. /package/dist/{contribute-7USRBWRM.js.map → contribute-WSJTV2RX.js.map} +0 -0
  165. /package/dist/{dev-server-TO7RLYJI.js.map → dev-server-Q6M62ATG.js.map} +0 -0
  166. /package/dist/{feedback-7ZZI6RC5.js.map → feedback-QPNDZQRV.js.map} +0 -0
  167. /package/dist/{claude-V4HRPR4Z.js.map → git-W3XUIFTR.js.map} +0 -0
  168. /package/dist/{lint-XPODLDVA.js.map → lint-IHUH45OC.js.map} +0 -0
  169. /package/dist/{open-M2SUR74Y.js.map → open-KWOV2OFO.js.map} +0 -0
  170. /package/dist/{projects-325GEEGJ.js.map → projects-LH362JZQ.js.map} +0 -0
  171. /package/dist/{rebase-4FNRBW3H.js.map → rebase-AJOJOZUG.js.map} +0 -0
  172. /package/dist/{recap-GSXFEOD6.js.map → recap-GKJXMDXW.js.map} +0 -0
  173. /package/dist/{run-GZNHRJB2.js.map → run-QEUVZF7J.js.map} +0 -0
  174. /package/dist/{shell-2SPM3Z5O.js.map → shell-DAAVG4YN.js.map} +0 -0
  175. /package/dist/{summary-Z4F7YFXE.js.map → summary-ZKOA35PT.js.map} +0 -0
  176. /package/dist/{test-LBSPYIJW.js.map → test-5GPWWO3P.js.map} +0 -0
  177. /package/dist/{test-git-ZPSPA2TP.js.map → test-git-EJUKDB7F.js.map} +0 -0
  178. /package/dist/{test-prefix-6DLB2BHE.js.map → test-prefix-23TOBUXY.js.map} +0 -0
  179. /package/dist/{test-webserver-XLJ2TZFP.js.map → test-webserver-CKROHFBQ.js.map} +0 -0
  180. /package/dist/{vscode-LH3VSQ2W.js.map → vscode-6TOLFCI2.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/issues.ts"],"sourcesContent":["import os from 'os'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport crypto from 'crypto'\nimport { SettingsManager } from '../lib/SettingsManager.js'\nimport { IssueTrackerFactory } from '../lib/IssueTrackerFactory.js'\nimport { findMainWorktreePathWithSettings } from '../utils/git.js'\nimport { fetchGitHubIssueList } from '../utils/github.js'\nimport { fetchLinearIssueList } from '../utils/linear.js'\nimport { getLogger } from '../utils/logger-context.js'\n\n/**\n * Unified output interface for issues from any provider\n */\nexport interface IssueListItem {\n id: string\n title: string\n updatedAt: string\n url: string\n state: string\n}\n\n/**\n * File-based cache structure (follows UpdateNotifier pattern)\n */\ninterface IssuesCacheFile {\n timestamp: number // Date.now() when cached\n projectPath: string // for verification\n provider: string // 'github' | 'linear'\n data: IssueListItem[]\n}\n\n// Cache configuration\nconst CACHE_TTL_MS = 2 * 60 * 1000 // 2 minutes\nconst CACHE_DIR = path.join(os.homedir(), '.config', 'iloom-ai', 'cache')\n\n/**\n * Generate a deterministic cache file path from project path + provider\n */\nfunction getCacheFilePath(projectPath: string, provider: string, limit: number): string {\n const hash = crypto.createHash('md5').update(`${projectPath}:${provider}:${limit}`).digest('hex').slice(0, 12)\n return path.join(CACHE_DIR, `issues-${hash}.json`)\n}\n\n/**\n * Read cache file, return null if missing/expired/corrupted\n * Follows UpdateNotifier.getCachedCheck pattern\n */\nasync function readCacheFile(cacheFilePath: string): Promise<IssueListItem[] | null> {\n try {\n if (!fs.existsSync(cacheFilePath)) return null\n const content = await fs.readFile(cacheFilePath, 'utf8')\n const cache = JSON.parse(content) as IssuesCacheFile\n if (Date.now() - cache.timestamp < CACHE_TTL_MS) return cache.data\n return null // expired\n } catch {\n return null // corrupted or unreadable, treat as cache miss\n }\n}\n\n/**\n * Write cache file following UpdateNotifier.saveCacheFile pattern\n */\nasync function writeCacheFile(\n cacheFilePath: string,\n data: IssueListItem[],\n projectPath: string,\n provider: string,\n): Promise<void> {\n try {\n await fs.ensureDir(CACHE_DIR)\n const cache: IssuesCacheFile = { timestamp: Date.now(), projectPath, provider, data }\n await fs.writeFile(cacheFilePath, JSON.stringify(cache, null, 2), 'utf8')\n } catch {\n // Cache write failure is non-fatal, just log debug\n getLogger().debug(`Failed to write issues cache to ${cacheFilePath}`)\n }\n}\n\nexport interface IssuesCommandOptions {\n projectPath?: string | undefined\n limit?: number | undefined\n}\n\n/**\n * IssuesCommand: List open issues from the configured issue tracker\n *\n * Returns JSON array of issues. Uses file-based caching with ~2 minute TTL.\n * Follows the ProjectsCommand pattern for structure.\n */\nexport class IssuesCommand {\n private readonly settingsManager: SettingsManager\n\n constructor(settingsManager?: SettingsManager) {\n this.settingsManager = settingsManager ?? new SettingsManager()\n }\n\n /**\n * Execute the issues command\n * @param options - Command options\n * @returns Array of issue list items\n */\n async execute(options?: IssuesCommandOptions): Promise<IssueListItem[]> {\n const logger = getLogger()\n const limit = options?.limit ?? 100\n\n // 1. Resolve project root\n let resolvedProjectPath: string\n if (options?.projectPath) {\n resolvedProjectPath = options.projectPath\n } else {\n try {\n resolvedProjectPath = await findMainWorktreePathWithSettings()\n } catch {\n logger.debug('Failed to resolve worktree path, falling back to cwd')\n resolvedProjectPath = process.cwd()\n }\n }\n\n // 2. Load settings from resolved root\n const settings = await this.settingsManager.loadSettings(resolvedProjectPath)\n\n // 3. Determine provider\n const provider = IssueTrackerFactory.getProviderName(settings)\n\n // 4. Check file-based cache\n const cacheFilePath = getCacheFilePath(resolvedProjectPath, provider, limit)\n const cached = await readCacheFile(cacheFilePath)\n if (cached !== null) {\n logger.debug(`Returning cached issues (${cached.length} items)`)\n return cached\n }\n\n // 5. Fetch issues based on provider\n let results: IssueListItem[]\n\n if (provider === 'github') {\n results = await fetchGitHubIssueList({\n limit,\n cwd: resolvedProjectPath,\n })\n } else if (provider === 'linear') {\n const teamId = settings.issueManagement?.linear?.teamId\n if (!teamId) {\n throw new Error(\n 'Linear team ID not configured. Set issueManagement.linear.teamId in your settings.json.',\n )\n }\n const apiToken = settings.issueManagement?.linear?.apiToken ?? process.env.LINEAR_API_TOKEN\n results = await fetchLinearIssueList(teamId, {\n limit,\n ...(apiToken ? { apiToken } : {}),\n })\n } else {\n throw new Error(`Unsupported issue tracker provider: ${provider}`)\n }\n\n // 6. Write results to cache file\n await writeCacheFile(cacheFilePath, results, resolvedProjectPath, provider)\n\n return results\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,OAAO,YAAY;AA8BnB,IAAM,eAAe,IAAI,KAAK;AAC9B,IAAM,YAAY,KAAK,KAAK,GAAG,QAAQ,GAAG,WAAW,YAAY,OAAO;AAKxE,SAAS,iBAAiB,aAAqB,UAAkB,OAAuB;AACtF,QAAM,OAAO,OAAO,WAAW,KAAK,EAAE,OAAO,GAAG,WAAW,IAAI,QAAQ,IAAI,KAAK,EAAE,EAAE,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE;AAC7G,SAAO,KAAK,KAAK,WAAW,UAAU,IAAI,OAAO;AACnD;AAMA,eAAe,cAAc,eAAwD;AACnF,MAAI;AACF,QAAI,CAAC,GAAG,WAAW,aAAa,EAAG,QAAO;AAC1C,UAAM,UAAU,MAAM,GAAG,SAAS,eAAe,MAAM;AACvD,UAAM,QAAQ,KAAK,MAAM,OAAO;AAChC,QAAI,KAAK,IAAI,IAAI,MAAM,YAAY,aAAc,QAAO,MAAM;AAC9D,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKA,eAAe,eACb,eACA,MACA,aACA,UACe;AACf,MAAI;AACF,UAAM,GAAG,UAAU,SAAS;AAC5B,UAAM,QAAyB,EAAE,WAAW,KAAK,IAAI,GAAG,aAAa,UAAU,KAAK;AACpF,UAAM,GAAG,UAAU,eAAe,KAAK,UAAU,OAAO,MAAM,CAAC,GAAG,MAAM;AAAA,EAC1E,QAAQ;AAEN,cAAU,EAAE,MAAM,mCAAmC,aAAa,EAAE;AAAA,EACtE;AACF;AAaO,IAAM,gBAAN,MAAoB;AAAA,EAGzB,YAAY,iBAAmC;AAC7C,SAAK,kBAAkB,mBAAmB,IAAI,gBAAgB;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAQ,SAA0D;AAtG1E;AAuGI,UAAM,SAAS,UAAU;AACzB,UAAM,SAAQ,mCAAS,UAAS;AAGhC,QAAI;AACJ,QAAI,mCAAS,aAAa;AACxB,4BAAsB,QAAQ;AAAA,IAChC,OAAO;AACL,UAAI;AACF,8BAAsB,MAAM,iCAAiC;AAAA,MAC/D,QAAQ;AACN,eAAO,MAAM,sDAAsD;AACnE,8BAAsB,QAAQ,IAAI;AAAA,MACpC;AAAA,IACF;AAGA,UAAM,WAAW,MAAM,KAAK,gBAAgB,aAAa,mBAAmB;AAG5E,UAAM,WAAW,oBAAoB,gBAAgB,QAAQ;AAG7D,UAAM,gBAAgB,iBAAiB,qBAAqB,UAAU,KAAK;AAC3E,UAAM,SAAS,MAAM,cAAc,aAAa;AAChD,QAAI,WAAW,MAAM;AACnB,aAAO,MAAM,4BAA4B,OAAO,MAAM,SAAS;AAC/D,aAAO;AAAA,IACT;AAGA,QAAI;AAEJ,QAAI,aAAa,UAAU;AACzB,gBAAU,MAAM,qBAAqB;AAAA,QACnC;AAAA,QACA,KAAK;AAAA,MACP,CAAC;AAAA,IACH,WAAW,aAAa,UAAU;AAChC,YAAM,UAAS,oBAAS,oBAAT,mBAA0B,WAA1B,mBAAkC;AACjD,UAAI,CAAC,QAAQ;AACX,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,YAAM,aAAW,oBAAS,oBAAT,mBAA0B,WAA1B,mBAAkC,aAAY,QAAQ,IAAI;AAC3E,gBAAU,MAAM,qBAAqB,QAAQ;AAAA,QAC3C;AAAA,QACA,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,MACjC,CAAC;AAAA,IACH,OAAO;AACL,YAAM,IAAI,MAAM,uCAAuC,QAAQ,EAAE;AAAA,IACnE;AAGA,UAAM,eAAe,eAAe,SAAS,qBAAqB,QAAQ;AAE1E,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ScriptCommandBase
4
- } from "./chunk-O6LECMT6.js";
5
- import "./chunk-RD7I2Q2F.js";
6
- import "./chunk-TVH67KEO.js";
7
- import "./chunk-HSGZW3ID.js";
8
- import "./chunk-XPKN3QWY.js";
9
- import "./chunk-GDS2HXSW.js";
10
- import "./chunk-IWIIOFEB.js";
4
+ } from "./chunk-TGRK3CHF.js";
5
+ import "./chunk-2HZX6AMR.js";
6
+ import "./chunk-4LKGCFGG.js";
7
+ import "./chunk-4GAJJUYS.js";
8
+ import "./chunk-VOGGLPG5.js";
9
+ import "./chunk-H6ST2TGP.js";
10
+ import "./chunk-XFEK2X2D.js";
11
11
  import "./chunk-KBEIQP4G.js";
12
12
  import "./chunk-6MLEBAYZ.js";
13
13
  import "./chunk-VT4PDUYT.js";
@@ -24,4 +24,4 @@ var LintCommand = class extends ScriptCommandBase {
24
24
  export {
25
25
  LintCommand
26
26
  };
27
- //# sourceMappingURL=lint-XPODLDVA.js.map
27
+ //# sourceMappingURL=lint-IHUH45OC.js.map
@@ -988,8 +988,9 @@ function getLinearApiToken() {
988
988
  }
989
989
  return token;
990
990
  }
991
- function createLinearClient() {
992
- return new LinearClient({ apiKey: getLinearApiToken() });
991
+ function createLinearClient(apiToken) {
992
+ const token = apiToken ?? getLinearApiToken();
993
+ return new LinearClient({ apiKey: token });
993
994
  }
994
995
  function handleLinearError(error, context) {
995
996
  logger.debug(`${context}: Handling error`, { error });