@shepai/cli 1.15.0 → 1.16.0

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 (225) hide show
  1. package/README.md +168 -22
  2. package/dist/src/application/ports/output/{agent-executor-factory.interface.d.ts → agents/agent-executor-factory.interface.d.ts} +1 -1
  3. package/dist/src/application/ports/output/agents/agent-executor-factory.interface.d.ts.map +1 -0
  4. package/dist/src/application/ports/output/{agent-executor.interface.d.ts → agents/agent-executor.interface.d.ts} +3 -1
  5. package/dist/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -0
  6. package/dist/src/application/ports/output/{agent-registry.interface.d.ts → agents/agent-registry.interface.d.ts} +1 -1
  7. package/dist/src/application/ports/output/agents/agent-registry.interface.d.ts.map +1 -0
  8. package/dist/src/application/ports/output/{agent-run-repository.interface.d.ts → agents/agent-run-repository.interface.d.ts} +1 -1
  9. package/dist/src/application/ports/output/agents/agent-run-repository.interface.d.ts.map +1 -0
  10. package/dist/src/application/ports/output/{agent-runner.interface.d.ts → agents/agent-runner.interface.d.ts} +1 -1
  11. package/dist/src/application/ports/output/agents/agent-runner.interface.d.ts.map +1 -0
  12. package/dist/src/application/ports/output/{agent-validator.interface.d.ts → agents/agent-validator.interface.d.ts} +1 -1
  13. package/dist/src/application/ports/output/agents/agent-validator.interface.d.ts.map +1 -0
  14. package/dist/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -0
  15. package/dist/src/application/ports/output/agents/index.d.ts +13 -0
  16. package/dist/src/application/ports/output/agents/index.d.ts.map +1 -0
  17. package/dist/src/application/ports/output/agents/index.js +6 -0
  18. package/dist/src/application/ports/output/index.d.ts +8 -14
  19. package/dist/src/application/ports/output/index.d.ts.map +1 -1
  20. package/dist/src/application/ports/output/index.js +5 -3
  21. package/dist/src/application/ports/output/{feature-repository.interface.d.ts → repositories/feature-repository.interface.d.ts} +1 -1
  22. package/dist/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -0
  23. package/dist/src/application/ports/output/repositories/index.d.ts +8 -0
  24. package/dist/src/application/ports/output/repositories/index.d.ts.map +1 -0
  25. package/dist/src/application/ports/output/repositories/index.js +6 -0
  26. package/dist/src/application/ports/output/{settings.repository.interface.d.ts → repositories/settings.repository.interface.d.ts} +1 -1
  27. package/dist/src/application/ports/output/repositories/settings.repository.interface.d.ts.map +1 -0
  28. package/dist/src/application/ports/output/services/external-issue-fetcher.interface.d.ts.map +1 -0
  29. package/dist/src/application/ports/output/services/index.d.ts +13 -0
  30. package/dist/src/application/ports/output/services/index.d.ts.map +1 -0
  31. package/dist/src/application/ports/output/services/index.js +7 -0
  32. package/dist/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -0
  33. package/dist/src/application/ports/output/{version-service.interface.d.ts → services/version-service.interface.d.ts} +1 -1
  34. package/dist/src/application/ports/output/services/version-service.interface.d.ts.map +1 -0
  35. package/dist/src/application/ports/output/services/web-server-service.interface.d.ts.map +1 -0
  36. package/dist/src/application/ports/output/services/worktree-service.interface.d.ts.map +1 -0
  37. package/dist/src/application/use-cases/agents/approve-agent-run.use-case.d.ts +4 -4
  38. package/dist/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  39. package/dist/src/application/use-cases/agents/configure-agent.use-case.d.ts +2 -2
  40. package/dist/src/application/use-cases/agents/configure-agent.use-case.d.ts.map +1 -1
  41. package/dist/src/application/use-cases/agents/delete-agent-run.use-case.d.ts +1 -1
  42. package/dist/src/application/use-cases/agents/delete-agent-run.use-case.d.ts.map +1 -1
  43. package/dist/src/application/use-cases/agents/get-agent-run.use-case.d.ts +1 -1
  44. package/dist/src/application/use-cases/agents/get-agent-run.use-case.d.ts.map +1 -1
  45. package/dist/src/application/use-cases/agents/list-agent-runs.use-case.d.ts +1 -1
  46. package/dist/src/application/use-cases/agents/list-agent-runs.use-case.d.ts.map +1 -1
  47. package/dist/src/application/use-cases/agents/reject-agent-run.use-case.d.ts +1 -1
  48. package/dist/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  49. package/dist/src/application/use-cases/agents/run-agent.use-case.d.ts +2 -2
  50. package/dist/src/application/use-cases/agents/run-agent.use-case.d.ts.map +1 -1
  51. package/dist/src/application/use-cases/agents/show-agent-run.use-case.d.ts +2 -2
  52. package/dist/src/application/use-cases/agents/show-agent-run.use-case.d.ts.map +1 -1
  53. package/dist/src/application/use-cases/agents/stop-agent-run.use-case.d.ts +1 -1
  54. package/dist/src/application/use-cases/agents/stop-agent-run.use-case.d.ts.map +1 -1
  55. package/dist/src/application/use-cases/agents/validate-agent-auth.use-case.d.ts +1 -1
  56. package/dist/src/application/use-cases/agents/validate-agent-auth.use-case.d.ts.map +1 -1
  57. package/dist/src/application/use-cases/features/create-feature.use-case.d.ts +6 -6
  58. package/dist/src/application/use-cases/features/create-feature.use-case.d.ts.map +1 -1
  59. package/dist/src/application/use-cases/features/create-feature.use-case.js +1 -0
  60. package/dist/src/application/use-cases/features/delete-feature.use-case.d.ts +4 -4
  61. package/dist/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  62. package/dist/src/application/use-cases/features/list-features.use-case.d.ts +1 -1
  63. package/dist/src/application/use-cases/features/list-features.use-case.d.ts.map +1 -1
  64. package/dist/src/application/use-cases/features/resume-feature.use-case.d.ts +4 -4
  65. package/dist/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  66. package/dist/src/application/use-cases/features/show-feature.use-case.d.ts +1 -1
  67. package/dist/src/application/use-cases/features/show-feature.use-case.d.ts.map +1 -1
  68. package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts +1 -1
  69. package/dist/src/application/use-cases/settings/initialize-settings.use-case.d.ts.map +1 -1
  70. package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts +1 -1
  71. package/dist/src/application/use-cases/settings/load-settings.use-case.d.ts.map +1 -1
  72. package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts +1 -1
  73. package/dist/src/application/use-cases/settings/update-settings.use-case.d.ts.map +1 -1
  74. package/dist/src/infrastructure/repositories/agent-run.repository.d.ts +1 -1
  75. package/dist/src/infrastructure/repositories/agent-run.repository.d.ts.map +1 -1
  76. package/dist/src/infrastructure/repositories/sqlite-feature.repository.d.ts +1 -1
  77. package/dist/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  78. package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts +1 -1
  79. package/dist/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  80. package/dist/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts +1 -1
  81. package/dist/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts.map +1 -1
  82. package/dist/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts +2 -2
  83. package/dist/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  84. package/dist/src/infrastructure/services/agents/common/agent-registry.service.d.ts +1 -1
  85. package/dist/src/infrastructure/services/agents/common/agent-registry.service.d.ts.map +1 -1
  86. package/dist/src/infrastructure/services/agents/common/agent-runner.service.d.ts +4 -4
  87. package/dist/src/infrastructure/services/agents/common/agent-runner.service.d.ts.map +1 -1
  88. package/dist/src/infrastructure/services/agents/common/agent-validator.service.d.ts +1 -1
  89. package/dist/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
  90. package/dist/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts +3 -1
  91. package/dist/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  92. package/dist/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +5 -0
  93. package/dist/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts +2 -2
  94. package/dist/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts.map +1 -1
  95. package/dist/src/infrastructure/services/agents/common/executors/mock-executor.service.d.ts +1 -1
  96. package/dist/src/infrastructure/services/agents/common/executors/mock-executor.service.d.ts.map +1 -1
  97. package/dist/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +1 -1
  98. package/dist/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  99. package/dist/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  100. package/dist/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  101. package/dist/src/infrastructure/services/agents/feature-agent/heartbeat.d.ts +1 -1
  102. package/dist/src/infrastructure/services/agents/feature-agent/heartbeat.d.ts.map +1 -1
  103. package/dist/src/infrastructure/services/agents/feature-agent/nodes/analyze.node.d.ts +1 -1
  104. package/dist/src/infrastructure/services/agents/feature-agent/nodes/analyze.node.d.ts.map +1 -1
  105. package/dist/src/infrastructure/services/agents/feature-agent/nodes/implement.node.d.ts +8 -7
  106. package/dist/src/infrastructure/services/agents/feature-agent/nodes/implement.node.d.ts.map +1 -1
  107. package/dist/src/infrastructure/services/agents/feature-agent/nodes/implement.node.js +140 -16
  108. package/dist/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -1
  109. package/dist/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  110. package/dist/src/infrastructure/services/agents/feature-agent/nodes/plan.node.d.ts +1 -1
  111. package/dist/src/infrastructure/services/agents/feature-agent/nodes/plan.node.d.ts.map +1 -1
  112. package/dist/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts +44 -4
  113. package/dist/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts.map +1 -1
  114. package/dist/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +86 -14
  115. package/dist/src/infrastructure/services/agents/feature-agent/nodes/requirements.node.d.ts +1 -1
  116. package/dist/src/infrastructure/services/agents/feature-agent/nodes/requirements.node.d.ts.map +1 -1
  117. package/dist/src/infrastructure/services/agents/feature-agent/nodes/research.node.d.ts +1 -1
  118. package/dist/src/infrastructure/services/agents/feature-agent/nodes/research.node.d.ts.map +1 -1
  119. package/dist/src/infrastructure/services/agents/streaming/streaming-executor-proxy.d.ts +1 -1
  120. package/dist/src/infrastructure/services/agents/streaming/streaming-executor-proxy.d.ts.map +1 -1
  121. package/dist/src/infrastructure/services/external/github-issue.service.d.ts +1 -1
  122. package/dist/src/infrastructure/services/external/github-issue.service.d.ts.map +1 -1
  123. package/dist/src/infrastructure/services/external/github-issue.service.js +1 -1
  124. package/dist/src/infrastructure/services/external/jira-ticket.service.d.ts +1 -1
  125. package/dist/src/infrastructure/services/external/jira-ticket.service.d.ts.map +1 -1
  126. package/dist/src/infrastructure/services/external/jira-ticket.service.js +1 -1
  127. package/dist/src/infrastructure/services/git/worktree.service.d.ts +1 -1
  128. package/dist/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  129. package/dist/src/infrastructure/services/git/worktree.service.js +1 -1
  130. package/dist/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  131. package/dist/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  132. package/dist/src/infrastructure/services/web-server.service.d.ts +1 -1
  133. package/dist/src/infrastructure/services/web-server.service.d.ts.map +1 -1
  134. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  135. package/dist/src/presentation/cli/commands/feat/new.command.js +3 -3
  136. package/dist/src/presentation/cli/ui/index.d.ts +1 -0
  137. package/dist/src/presentation/cli/ui/index.d.ts.map +1 -1
  138. package/dist/src/presentation/cli/ui/index.js +1 -0
  139. package/dist/src/presentation/cli/ui/spinner.d.ts +21 -0
  140. package/dist/src/presentation/cli/ui/spinner.d.ts.map +1 -0
  141. package/dist/src/presentation/cli/ui/spinner.js +45 -0
  142. package/dist/tsconfig.build.tsbuildinfo +1 -1
  143. package/package.json +1 -1
  144. package/web/.next/BUILD_ID +1 -1
  145. package/web/.next/build-manifest.json +2 -2
  146. package/web/.next/cache/.previewinfo +1 -1
  147. package/web/.next/cache/.rscinfo +1 -1
  148. package/web/.next/cache/config.json +3 -3
  149. package/web/.next/fallback-build-manifest.json +2 -2
  150. package/web/.next/prerender-manifest.json +3 -3
  151. package/web/.next/required-server-files.js +1 -1
  152. package/web/.next/required-server-files.json +1 -1
  153. package/web/.next/server/app/_global-error.html +2 -2
  154. package/web/.next/server/app/_global-error.rsc +1 -1
  155. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  156. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  157. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  158. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  159. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  160. package/web/.next/server/app/_not-found.html +2 -2
  161. package/web/.next/server/app/_not-found.rsc +1 -1
  162. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  163. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  164. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  165. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  166. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  167. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  168. package/web/.next/server/app/index.html +2 -2
  169. package/web/.next/server/app/index.rsc +1 -1
  170. package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  171. package/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
  172. package/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  173. package/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
  174. package/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  175. package/web/.next/server/app/version.html +2 -2
  176. package/web/.next/server/app/version.rsc +1 -1
  177. package/web/.next/server/app/version.segments/_full.segment.rsc +1 -1
  178. package/web/.next/server/app/version.segments/_head.segment.rsc +1 -1
  179. package/web/.next/server/app/version.segments/_index.segment.rsc +1 -1
  180. package/web/.next/server/app/version.segments/_tree.segment.rsc +1 -1
  181. package/web/.next/server/app/version.segments/version/__PAGE__.segment.rsc +1 -1
  182. package/web/.next/server/app/version.segments/version.segment.rsc +1 -1
  183. package/web/.next/server/chunks/ssr/_19be0743._.js +1 -1
  184. package/web/.next/server/pages/404.html +2 -2
  185. package/web/.next/server/pages/500.html +2 -2
  186. package/web/.next/server/server-reference-manifest.js +1 -1
  187. package/web/.next/server/server-reference-manifest.json +1 -1
  188. package/web/.next/trace +1 -1
  189. package/web/.next/trace-build +1 -1
  190. package/dist/src/application/ports/output/agent-executor-factory.interface.d.ts.map +0 -1
  191. package/dist/src/application/ports/output/agent-executor.interface.d.ts.map +0 -1
  192. package/dist/src/application/ports/output/agent-registry.interface.d.ts.map +0 -1
  193. package/dist/src/application/ports/output/agent-run-repository.interface.d.ts.map +0 -1
  194. package/dist/src/application/ports/output/agent-runner.interface.d.ts.map +0 -1
  195. package/dist/src/application/ports/output/agent-validator.interface.d.ts.map +0 -1
  196. package/dist/src/application/ports/output/external-issue-fetcher.interface.d.ts.map +0 -1
  197. package/dist/src/application/ports/output/feature-agent-process.interface.d.ts.map +0 -1
  198. package/dist/src/application/ports/output/feature-repository.interface.d.ts.map +0 -1
  199. package/dist/src/application/ports/output/settings.repository.interface.d.ts.map +0 -1
  200. package/dist/src/application/ports/output/spec-initializer.interface.d.ts.map +0 -1
  201. package/dist/src/application/ports/output/version-service.interface.d.ts.map +0 -1
  202. package/dist/src/application/ports/output/web-server-service.interface.d.ts.map +0 -1
  203. package/dist/src/application/ports/output/worktree-service.interface.d.ts.map +0 -1
  204. /package/dist/src/application/ports/output/{agent-executor-factory.interface.js → agents/agent-executor-factory.interface.js} +0 -0
  205. /package/dist/src/application/ports/output/{agent-executor.interface.js → agents/agent-executor.interface.js} +0 -0
  206. /package/dist/src/application/ports/output/{agent-registry.interface.js → agents/agent-registry.interface.js} +0 -0
  207. /package/dist/src/application/ports/output/{agent-run-repository.interface.js → agents/agent-run-repository.interface.js} +0 -0
  208. /package/dist/src/application/ports/output/{agent-runner.interface.js → agents/agent-runner.interface.js} +0 -0
  209. /package/dist/src/application/ports/output/{agent-validator.interface.js → agents/agent-validator.interface.js} +0 -0
  210. /package/dist/src/application/ports/output/{feature-agent-process.interface.d.ts → agents/feature-agent-process.interface.d.ts} +0 -0
  211. /package/dist/src/application/ports/output/{feature-agent-process.interface.js → agents/feature-agent-process.interface.js} +0 -0
  212. /package/dist/src/application/ports/output/{feature-repository.interface.js → repositories/feature-repository.interface.js} +0 -0
  213. /package/dist/src/application/ports/output/{settings.repository.interface.js → repositories/settings.repository.interface.js} +0 -0
  214. /package/dist/src/application/ports/output/{external-issue-fetcher.interface.d.ts → services/external-issue-fetcher.interface.d.ts} +0 -0
  215. /package/dist/src/application/ports/output/{external-issue-fetcher.interface.js → services/external-issue-fetcher.interface.js} +0 -0
  216. /package/dist/src/application/ports/output/{spec-initializer.interface.d.ts → services/spec-initializer.interface.d.ts} +0 -0
  217. /package/dist/src/application/ports/output/{spec-initializer.interface.js → services/spec-initializer.interface.js} +0 -0
  218. /package/dist/src/application/ports/output/{version-service.interface.js → services/version-service.interface.js} +0 -0
  219. /package/dist/src/application/ports/output/{web-server-service.interface.d.ts → services/web-server-service.interface.d.ts} +0 -0
  220. /package/dist/src/application/ports/output/{web-server-service.interface.js → services/web-server-service.interface.js} +0 -0
  221. /package/dist/src/application/ports/output/{worktree-service.interface.d.ts → services/worktree-service.interface.d.ts} +0 -0
  222. /package/dist/src/application/ports/output/{worktree-service.interface.js → services/worktree-service.interface.js} +0 -0
  223. /package/web/.next/static/{XV-wYY85Xk9ANCuQDQ6_H → KqMr5DLdrvbaA-agLuHP1}/_buildManifest.js +0 -0
  224. /package/web/.next/static/{XV-wYY85Xk9ANCuQDQ6_H → KqMr5DLdrvbaA-agLuHP1}/_clientMiddlewareManifest.json +0 -0
  225. /package/web/.next/static/{XV-wYY85Xk9ANCuQDQ6_H → KqMr5DLdrvbaA-agLuHP1}/_ssgManifest.js +0 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CLI Design System - Spinner
3
+ *
4
+ * Lightweight terminal spinner for async operations.
5
+ * Uses the braille spinner frames from the symbols module.
6
+ *
7
+ * @example
8
+ * import { spinner } from './spinner';
9
+ * const result = await spinner('Thinking', async () => {
10
+ * return await someAsyncWork();
11
+ * });
12
+ */
13
+ /**
14
+ * Show a spinner while an async operation runs, then clear it.
15
+ *
16
+ * @param label - Text shown next to the spinner (e.g. "Thinking")
17
+ * @param fn - Async function to execute
18
+ * @returns The result of the async function
19
+ */
20
+ export declare function spinner<T>(label: string, fn: () => Promise<T>): Promise<T>;
21
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/cli/ui/spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyBhF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * CLI Design System - Spinner
3
+ *
4
+ * Lightweight terminal spinner for async operations.
5
+ * Uses the braille spinner frames from the symbols module.
6
+ *
7
+ * @example
8
+ * import { spinner } from './spinner';
9
+ * const result = await spinner('Thinking', async () => {
10
+ * return await someAsyncWork();
11
+ * });
12
+ */
13
+ import { symbols } from './symbols.js';
14
+ import { colors } from './colors.js';
15
+ /**
16
+ * Show a spinner while an async operation runs, then clear it.
17
+ *
18
+ * @param label - Text shown next to the spinner (e.g. "Thinking")
19
+ * @param fn - Async function to execute
20
+ * @returns The result of the async function
21
+ */
22
+ export async function spinner(label, fn) {
23
+ const frames = symbols.spinner;
24
+ let i = 0;
25
+ // Write initial frame
26
+ const write = () => {
27
+ const frame = frames[i % frames.length];
28
+ process.stderr.write(`\r${colors.muted(`${frame} ${label}...`)}`);
29
+ i++;
30
+ };
31
+ write();
32
+ const interval = setInterval(write, 80);
33
+ try {
34
+ const result = await fn();
35
+ clearInterval(interval);
36
+ // Clear the spinner line
37
+ process.stderr.write(`\r${' '.repeat(label.length + 6)}\r`);
38
+ return result;
39
+ }
40
+ catch (error) {
41
+ clearInterval(interval);
42
+ process.stderr.write(`\r${' '.repeat(label.length + 6)}\r`);
43
+ throw error;
44
+ }
45
+ }