task-o-matic-core 0.1.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 (447) hide show
  1. package/README.md +646 -0
  2. package/dist/index.d.ts +27 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +46 -0
  5. package/dist/lib/ai-service/ai-operations.d.ts +45 -0
  6. package/dist/lib/ai-service/ai-operations.d.ts.map +1 -0
  7. package/dist/lib/ai-service/ai-operations.js +60 -0
  8. package/dist/lib/ai-service/base-operations.d.ts +43 -0
  9. package/dist/lib/ai-service/base-operations.d.ts.map +1 -0
  10. package/dist/lib/ai-service/base-operations.js +119 -0
  11. package/dist/lib/ai-service/documentation-operations.d.ts +18 -0
  12. package/dist/lib/ai-service/documentation-operations.d.ts.map +1 -0
  13. package/dist/lib/ai-service/documentation-operations.js +308 -0
  14. package/dist/lib/ai-service/filesystem-tools.d.ts +69 -0
  15. package/dist/lib/ai-service/filesystem-tools.d.ts.map +1 -0
  16. package/dist/lib/ai-service/filesystem-tools.js +70 -0
  17. package/dist/lib/ai-service/json-parser.d.ts +34 -0
  18. package/dist/lib/ai-service/json-parser.d.ts.map +1 -0
  19. package/dist/lib/ai-service/json-parser.js +177 -0
  20. package/dist/lib/ai-service/mcp-client.d.ts +9 -0
  21. package/dist/lib/ai-service/mcp-client.d.ts.map +1 -0
  22. package/dist/lib/ai-service/mcp-client.js +48 -0
  23. package/dist/lib/ai-service/model-provider.d.ts +12 -0
  24. package/dist/lib/ai-service/model-provider.d.ts.map +1 -0
  25. package/dist/lib/ai-service/model-provider.js +146 -0
  26. package/dist/lib/ai-service/prd-operations.d.ts +25 -0
  27. package/dist/lib/ai-service/prd-operations.d.ts.map +1 -0
  28. package/dist/lib/ai-service/prd-operations.js +592 -0
  29. package/dist/lib/ai-service/research-tools.d.ts +4 -0
  30. package/dist/lib/ai-service/research-tools.d.ts.map +1 -0
  31. package/dist/lib/ai-service/research-tools.js +8 -0
  32. package/dist/lib/ai-service/retry-handler.d.ts +8 -0
  33. package/dist/lib/ai-service/retry-handler.d.ts.map +1 -0
  34. package/dist/lib/ai-service/retry-handler.js +63 -0
  35. package/dist/lib/ai-service/task-operations.d.ts +13 -0
  36. package/dist/lib/ai-service/task-operations.d.ts.map +1 -0
  37. package/dist/lib/ai-service/task-operations.js +220 -0
  38. package/dist/lib/benchmark/registry.d.ts +11 -0
  39. package/dist/lib/benchmark/registry.d.ts.map +1 -0
  40. package/dist/lib/benchmark/registry.js +212 -0
  41. package/dist/lib/benchmark/runner.d.ts +6 -0
  42. package/dist/lib/benchmark/runner.d.ts.map +1 -0
  43. package/dist/lib/benchmark/runner.js +150 -0
  44. package/dist/lib/benchmark/storage.d.ts +13 -0
  45. package/dist/lib/benchmark/storage.d.ts.map +1 -0
  46. package/dist/lib/benchmark/storage.js +100 -0
  47. package/dist/lib/benchmark/types.d.ts +104 -0
  48. package/dist/lib/benchmark/types.d.ts.map +1 -0
  49. package/dist/lib/benchmark/types.js +2 -0
  50. package/dist/lib/better-t-stack-cli.d.ts +50 -0
  51. package/dist/lib/better-t-stack-cli.d.ts.map +1 -0
  52. package/dist/lib/better-t-stack-cli.js +428 -0
  53. package/dist/lib/bootstrap/cli-bootstrap.d.ts +14 -0
  54. package/dist/lib/bootstrap/cli-bootstrap.d.ts.map +1 -0
  55. package/dist/lib/bootstrap/cli-bootstrap.js +322 -0
  56. package/dist/lib/bootstrap/index.d.ts +3 -0
  57. package/dist/lib/bootstrap/index.d.ts.map +1 -0
  58. package/dist/lib/bootstrap/index.js +18 -0
  59. package/dist/lib/bootstrap/medusa-bootstrap.d.ts +14 -0
  60. package/dist/lib/bootstrap/medusa-bootstrap.d.ts.map +1 -0
  61. package/dist/lib/bootstrap/medusa-bootstrap.js +215 -0
  62. package/dist/lib/config-validation.d.ts +215 -0
  63. package/dist/lib/config-validation.d.ts.map +1 -0
  64. package/dist/lib/config-validation.js +254 -0
  65. package/dist/lib/config.d.ts +55 -0
  66. package/dist/lib/config.d.ts.map +1 -0
  67. package/dist/lib/config.js +351 -0
  68. package/dist/lib/context-builder.d.ts +66 -0
  69. package/dist/lib/context-builder.d.ts.map +1 -0
  70. package/dist/lib/context-builder.js +322 -0
  71. package/dist/lib/executors/claude-code-executor.d.ts +9 -0
  72. package/dist/lib/executors/claude-code-executor.d.ts.map +1 -0
  73. package/dist/lib/executors/claude-code-executor.js +69 -0
  74. package/dist/lib/executors/codex-executor.d.ts +9 -0
  75. package/dist/lib/executors/codex-executor.d.ts.map +1 -0
  76. package/dist/lib/executors/codex-executor.js +73 -0
  77. package/dist/lib/executors/executor-factory.d.ts +5 -0
  78. package/dist/lib/executors/executor-factory.d.ts.map +1 -0
  79. package/dist/lib/executors/executor-factory.js +27 -0
  80. package/dist/lib/executors/gemini-executor.d.ts +9 -0
  81. package/dist/lib/executors/gemini-executor.d.ts.map +1 -0
  82. package/dist/lib/executors/gemini-executor.js +67 -0
  83. package/dist/lib/executors/kilo-executor.d.ts +9 -0
  84. package/dist/lib/executors/kilo-executor.d.ts.map +1 -0
  85. package/dist/lib/executors/kilo-executor.js +69 -0
  86. package/dist/lib/executors/opencode-executor.d.ts +9 -0
  87. package/dist/lib/executors/opencode-executor.d.ts.map +1 -0
  88. package/dist/lib/executors/opencode-executor.js +67 -0
  89. package/dist/lib/git-utils.d.ts +88 -0
  90. package/dist/lib/git-utils.d.ts.map +1 -0
  91. package/dist/lib/git-utils.js +242 -0
  92. package/dist/lib/hooks.d.ts +73 -0
  93. package/dist/lib/hooks.d.ts.map +1 -0
  94. package/dist/lib/hooks.js +62 -0
  95. package/dist/lib/index.d.ts +100 -0
  96. package/dist/lib/index.d.ts.map +1 -0
  97. package/dist/lib/index.js +143 -0
  98. package/dist/lib/logger.d.ts +20 -0
  99. package/dist/lib/logger.d.ts.map +1 -0
  100. package/dist/lib/logger.js +32 -0
  101. package/dist/lib/notifications.d.ts +7 -0
  102. package/dist/lib/notifications.d.ts.map +1 -0
  103. package/dist/lib/notifications.js +81 -0
  104. package/dist/lib/prompt-builder.d.ts +70 -0
  105. package/dist/lib/prompt-builder.d.ts.map +1 -0
  106. package/dist/lib/prompt-builder.js +344 -0
  107. package/dist/lib/prompt-registry.d.ts +22 -0
  108. package/dist/lib/prompt-registry.d.ts.map +1 -0
  109. package/dist/lib/prompt-registry.js +409 -0
  110. package/dist/lib/provider-defaults.json +32 -0
  111. package/dist/lib/storage/file-system.d.ts +57 -0
  112. package/dist/lib/storage/file-system.d.ts.map +1 -0
  113. package/dist/lib/storage/file-system.js +638 -0
  114. package/dist/lib/storage/storage-callbacks.d.ts +17 -0
  115. package/dist/lib/storage/storage-callbacks.d.ts.map +1 -0
  116. package/dist/lib/storage/storage-callbacks.js +94 -0
  117. package/dist/lib/storage/types.d.ts +43 -0
  118. package/dist/lib/storage/types.d.ts.map +1 -0
  119. package/dist/lib/storage/types.js +2 -0
  120. package/dist/lib/task-execution-core.d.ts +7 -0
  121. package/dist/lib/task-execution-core.d.ts.map +1 -0
  122. package/dist/lib/task-execution-core.js +381 -0
  123. package/dist/lib/task-execution.d.ts +7 -0
  124. package/dist/lib/task-execution.d.ts.map +1 -0
  125. package/dist/lib/task-execution.js +40 -0
  126. package/dist/lib/task-loop-execution.d.ts +7 -0
  127. package/dist/lib/task-loop-execution.d.ts.map +1 -0
  128. package/dist/lib/task-loop-execution.js +156 -0
  129. package/dist/lib/task-planning.d.ts +29 -0
  130. package/dist/lib/task-planning.d.ts.map +1 -0
  131. package/dist/lib/task-planning.js +103 -0
  132. package/dist/lib/task-review.d.ts +27 -0
  133. package/dist/lib/task-review.d.ts.map +1 -0
  134. package/dist/lib/task-review.js +103 -0
  135. package/dist/lib/validation.d.ts +26 -0
  136. package/dist/lib/validation.d.ts.map +1 -0
  137. package/dist/lib/validation.js +98 -0
  138. package/dist/prompts/documentation-detection.d.ts +2 -0
  139. package/dist/prompts/documentation-detection.d.ts.map +1 -0
  140. package/dist/prompts/documentation-detection.js +24 -0
  141. package/dist/prompts/documentation-recap.d.ts +3 -0
  142. package/dist/prompts/documentation-recap.d.ts.map +1 -0
  143. package/dist/prompts/documentation-recap.js +13 -0
  144. package/dist/prompts/index.d.ts +15 -0
  145. package/dist/prompts/index.d.ts.map +1 -0
  146. package/dist/prompts/index.js +30 -0
  147. package/dist/prompts/prd-combination.d.ts +2 -0
  148. package/dist/prompts/prd-combination.d.ts.map +1 -0
  149. package/dist/prompts/prd-combination.js +35 -0
  150. package/dist/prompts/prd-generation.d.ts +2 -0
  151. package/dist/prompts/prd-generation.d.ts.map +1 -0
  152. package/dist/prompts/prd-generation.js +49 -0
  153. package/dist/prompts/prd-parsing.d.ts +3 -0
  154. package/dist/prompts/prd-parsing.d.ts.map +1 -0
  155. package/dist/prompts/prd-parsing.js +172 -0
  156. package/dist/prompts/prd-question-answer.d.ts +3 -0
  157. package/dist/prompts/prd-question-answer.d.ts.map +1 -0
  158. package/dist/prompts/prd-question-answer.js +27 -0
  159. package/dist/prompts/prd-question.d.ts +3 -0
  160. package/dist/prompts/prd-question.d.ts.map +1 -0
  161. package/dist/prompts/prd-question.js +40 -0
  162. package/dist/prompts/prd-rework.d.ts +3 -0
  163. package/dist/prompts/prd-rework.d.ts.map +1 -0
  164. package/dist/prompts/prd-rework.js +81 -0
  165. package/dist/prompts/prd-suggest-stack.d.ts +3 -0
  166. package/dist/prompts/prd-suggest-stack.d.ts.map +1 -0
  167. package/dist/prompts/prd-suggest-stack.js +99 -0
  168. package/dist/prompts/task-breakdown.d.ts +3 -0
  169. package/dist/prompts/task-breakdown.d.ts.map +1 -0
  170. package/dist/prompts/task-breakdown.js +151 -0
  171. package/dist/prompts/task-enhancement.d.ts +3 -0
  172. package/dist/prompts/task-enhancement.d.ts.map +1 -0
  173. package/dist/prompts/task-enhancement.js +140 -0
  174. package/dist/prompts/task-execution.d.ts +3 -0
  175. package/dist/prompts/task-execution.d.ts.map +1 -0
  176. package/dist/prompts/task-execution.js +24 -0
  177. package/dist/prompts/task-planning.d.ts +3 -0
  178. package/dist/prompts/task-planning.d.ts.map +1 -0
  179. package/dist/prompts/task-planning.js +66 -0
  180. package/dist/prompts/workflow-assistance.d.ts +32 -0
  181. package/dist/prompts/workflow-assistance.d.ts.map +1 -0
  182. package/dist/prompts/workflow-assistance.js +130 -0
  183. package/dist/prompts/workflow-prompts.d.ts +9 -0
  184. package/dist/prompts/workflow-prompts.d.ts.map +1 -0
  185. package/dist/prompts/workflow-prompts.js +93 -0
  186. package/dist/services/benchmark.d.ts +26 -0
  187. package/dist/services/benchmark.d.ts.map +1 -0
  188. package/dist/services/benchmark.js +343 -0
  189. package/dist/services/prd.d.ts +136 -0
  190. package/dist/services/prd.d.ts.map +1 -0
  191. package/dist/services/prd.js +550 -0
  192. package/dist/services/tasks.d.ts +388 -0
  193. package/dist/services/tasks.d.ts.map +1 -0
  194. package/dist/services/tasks.js +1150 -0
  195. package/dist/services/workflow-ai-assistant.d.ts +74 -0
  196. package/dist/services/workflow-ai-assistant.d.ts.map +1 -0
  197. package/dist/services/workflow-ai-assistant.js +175 -0
  198. package/dist/services/workflow-benchmark.d.ts +34 -0
  199. package/dist/services/workflow-benchmark.d.ts.map +1 -0
  200. package/dist/services/workflow-benchmark.js +318 -0
  201. package/dist/services/workflow.d.ts +107 -0
  202. package/dist/services/workflow.d.ts.map +1 -0
  203. package/dist/services/workflow.js +580 -0
  204. package/dist/test/hooks.test.d.ts +2 -0
  205. package/dist/test/hooks.test.d.ts.map +1 -0
  206. package/dist/test/hooks.test.js +67 -0
  207. package/dist/test/integration/callbacks.test.d.ts +2 -0
  208. package/dist/test/integration/callbacks.test.d.ts.map +1 -0
  209. package/dist/test/integration/callbacks.test.js +64 -0
  210. package/dist/test/lib/ai-service/task-operations.test.d.ts +2 -0
  211. package/dist/test/lib/ai-service/task-operations.test.d.ts.map +1 -0
  212. package/dist/test/lib/ai-service/task-operations.test.js +362 -0
  213. package/dist/test/lib/config.test.d.ts +2 -0
  214. package/dist/test/lib/config.test.d.ts.map +1 -0
  215. package/dist/test/lib/config.test.js +128 -0
  216. package/dist/test/lib/git-utils.test.d.ts +2 -0
  217. package/dist/test/lib/git-utils.test.d.ts.map +1 -0
  218. package/dist/test/lib/git-utils.test.js +168 -0
  219. package/dist/test/mocks/mock-ai-operations.d.ts +15 -0
  220. package/dist/test/mocks/mock-ai-operations.d.ts.map +1 -0
  221. package/dist/test/mocks/mock-ai-operations.js +107 -0
  222. package/dist/test/mocks/mock-context-builder.d.ts +10 -0
  223. package/dist/test/mocks/mock-context-builder.d.ts.map +1 -0
  224. package/dist/test/mocks/mock-context-builder.js +81 -0
  225. package/dist/test/mocks/mock-model-provider.d.ts +7 -0
  226. package/dist/test/mocks/mock-model-provider.d.ts.map +1 -0
  227. package/dist/test/mocks/mock-model-provider.js +21 -0
  228. package/dist/test/mocks/mock-service-factory.d.ts +11 -0
  229. package/dist/test/mocks/mock-service-factory.d.ts.map +1 -0
  230. package/dist/test/mocks/mock-service-factory.js +61 -0
  231. package/dist/test/mocks/mock-storage.d.ts +50 -0
  232. package/dist/test/mocks/mock-storage.d.ts.map +1 -0
  233. package/dist/test/mocks/mock-storage.js +145 -0
  234. package/dist/test/model-parsing.test.d.ts +2 -0
  235. package/dist/test/model-parsing.test.d.ts.map +1 -0
  236. package/dist/test/model-parsing.test.js +73 -0
  237. package/dist/test/services/task-service.test.d.ts +2 -0
  238. package/dist/test/services/task-service.test.d.ts.map +1 -0
  239. package/dist/test/services/task-service.test.js +459 -0
  240. package/dist/test/storage.test.d.ts +2 -0
  241. package/dist/test/storage.test.d.ts.map +1 -0
  242. package/dist/test/storage.test.js +207 -0
  243. package/dist/test/task-loop-git.test.d.ts +2 -0
  244. package/dist/test/task-loop-git.test.d.ts.map +1 -0
  245. package/dist/test/task-loop-git.test.js +95 -0
  246. package/dist/test/test-mock-setup.d.ts +26 -0
  247. package/dist/test/test-mock-setup.d.ts.map +1 -0
  248. package/dist/test/test-mock-setup.js +41 -0
  249. package/dist/test/test-setup.d.ts +9 -0
  250. package/dist/test/test-setup.d.ts.map +1 -0
  251. package/dist/test/test-setup.js +44 -0
  252. package/dist/test/test-utils.d.ts +22 -0
  253. package/dist/test/test-utils.d.ts.map +1 -0
  254. package/dist/test/test-utils.js +37 -0
  255. package/dist/test/utils/ai-operation-utility.test.d.ts +2 -0
  256. package/dist/test/utils/ai-operation-utility.test.d.ts.map +1 -0
  257. package/dist/test/utils/ai-operation-utility.test.js +290 -0
  258. package/dist/test/utils/error-handling.test.d.ts +2 -0
  259. package/dist/test/utils/error-handling.test.d.ts.map +1 -0
  260. package/dist/test/utils/error-handling.test.js +231 -0
  261. package/dist/test/utils/file-utils.test.d.ts +2 -0
  262. package/dist/test/utils/file-utils.test.d.ts.map +1 -0
  263. package/dist/test/utils/file-utils.test.js +76 -0
  264. package/dist/test/utils/id-generator.test.d.ts +2 -0
  265. package/dist/test/utils/id-generator.test.d.ts.map +1 -0
  266. package/dist/test/utils/id-generator.test.js +41 -0
  267. package/dist/test/utils/model-parser.test.d.ts +2 -0
  268. package/dist/test/utils/model-parser.test.d.ts.map +1 -0
  269. package/dist/test/utils/model-parser.test.js +65 -0
  270. package/dist/test/validation.test.d.ts +2 -0
  271. package/dist/test/validation.test.d.ts.map +1 -0
  272. package/dist/test/validation.test.js +22 -0
  273. package/dist/types/callbacks.d.ts +30 -0
  274. package/dist/types/callbacks.d.ts.map +1 -0
  275. package/dist/types/callbacks.js +2 -0
  276. package/dist/types/index.d.ts +435 -0
  277. package/dist/types/index.d.ts.map +1 -0
  278. package/dist/types/index.js +30 -0
  279. package/dist/types/mcp.d.ts +3 -0
  280. package/dist/types/mcp.d.ts.map +1 -0
  281. package/dist/types/mcp.js +3 -0
  282. package/dist/types/options.d.ts +112 -0
  283. package/dist/types/options.d.ts.map +1 -0
  284. package/dist/types/options.js +2 -0
  285. package/dist/types/results.d.ts +200 -0
  286. package/dist/types/results.d.ts.map +1 -0
  287. package/dist/types/results.js +2 -0
  288. package/dist/types/workflow-options.d.ts +82 -0
  289. package/dist/types/workflow-options.d.ts.map +1 -0
  290. package/dist/types/workflow-options.js +2 -0
  291. package/dist/types/workflow-results.d.ts +82 -0
  292. package/dist/types/workflow-results.d.ts.map +1 -0
  293. package/dist/types/workflow-results.js +2 -0
  294. package/dist/utils/ai-config-builder.d.ts +14 -0
  295. package/dist/utils/ai-config-builder.d.ts.map +1 -0
  296. package/dist/utils/ai-config-builder.js +22 -0
  297. package/dist/utils/ai-operation-utility.d.ts +142 -0
  298. package/dist/utils/ai-operation-utility.d.ts.map +1 -0
  299. package/dist/utils/ai-operation-utility.js +303 -0
  300. package/dist/utils/ai-service-factory.d.ts +34 -0
  301. package/dist/utils/ai-service-factory.d.ts.map +1 -0
  302. package/dist/utils/ai-service-factory.js +99 -0
  303. package/dist/utils/error-utils.d.ts +70 -0
  304. package/dist/utils/error-utils.d.ts.map +1 -0
  305. package/dist/utils/error-utils.js +104 -0
  306. package/dist/utils/file-utils.d.ts +107 -0
  307. package/dist/utils/file-utils.d.ts.map +1 -0
  308. package/dist/utils/file-utils.js +171 -0
  309. package/dist/utils/id-generator.d.ts +92 -0
  310. package/dist/utils/id-generator.d.ts.map +1 -0
  311. package/dist/utils/id-generator.js +146 -0
  312. package/dist/utils/metadata-utils.d.ts +40 -0
  313. package/dist/utils/metadata-utils.d.ts.map +1 -0
  314. package/dist/utils/metadata-utils.js +43 -0
  315. package/dist/utils/model-executor-parser.d.ts +38 -0
  316. package/dist/utils/model-executor-parser.d.ts.map +1 -0
  317. package/dist/utils/model-executor-parser.js +69 -0
  318. package/dist/utils/model-parser.d.ts +6 -0
  319. package/dist/utils/model-parser.d.ts.map +1 -0
  320. package/dist/utils/model-parser.js +49 -0
  321. package/dist/utils/stack-formatter.d.ts +12 -0
  322. package/dist/utils/stack-formatter.d.ts.map +1 -0
  323. package/dist/utils/stack-formatter.js +36 -0
  324. package/dist/utils/storage-utils.d.ts +49 -0
  325. package/dist/utils/storage-utils.d.ts.map +1 -0
  326. package/dist/utils/storage-utils.js +80 -0
  327. package/dist/utils/streaming-utils.d.ts +38 -0
  328. package/dist/utils/streaming-utils.d.ts.map +1 -0
  329. package/dist/utils/streaming-utils.js +64 -0
  330. package/dist/utils/task-o-matic-error.d.ts +206 -0
  331. package/dist/utils/task-o-matic-error.d.ts.map +1 -0
  332. package/dist/utils/task-o-matic-error.js +304 -0
  333. package/package.json +40 -0
  334. package/src/index.ts +36 -0
  335. package/src/lib/ai-service/ai-operations.ts +310 -0
  336. package/src/lib/ai-service/base-operations.ts +139 -0
  337. package/src/lib/ai-service/documentation-operations.ts +438 -0
  338. package/src/lib/ai-service/filesystem-tools.ts +73 -0
  339. package/src/lib/ai-service/gemini-proxy.ts.bak +52 -0
  340. package/src/lib/ai-service/json-parser.ts +203 -0
  341. package/src/lib/ai-service/mcp-client.ts +54 -0
  342. package/src/lib/ai-service/model-provider.ts +192 -0
  343. package/src/lib/ai-service/prd-operations.ts +854 -0
  344. package/src/lib/ai-service/research-tools.ts +207 -0
  345. package/src/lib/ai-service/retry-handler.ts +89 -0
  346. package/src/lib/ai-service/task-operations.ts +342 -0
  347. package/src/lib/benchmark/registry.ts +307 -0
  348. package/src/lib/benchmark/runner.ts +190 -0
  349. package/src/lib/benchmark/storage.ts +140 -0
  350. package/src/lib/benchmark/types.ts +121 -0
  351. package/src/lib/better-t-stack-cli.ts +524 -0
  352. package/src/lib/bootstrap/cli-bootstrap.ts +397 -0
  353. package/src/lib/bootstrap/index.ts +2 -0
  354. package/src/lib/bootstrap/medusa-bootstrap.ts +261 -0
  355. package/src/lib/config-validation.ts +278 -0
  356. package/src/lib/config.ts +435 -0
  357. package/src/lib/context-builder.ts +383 -0
  358. package/src/lib/executors/claude-code-executor.ts +83 -0
  359. package/src/lib/executors/codex-executor.ts +85 -0
  360. package/src/lib/executors/executor-factory.ts +28 -0
  361. package/src/lib/executors/gemini-executor.ts +80 -0
  362. package/src/lib/executors/kilo-executor.ts +83 -0
  363. package/src/lib/executors/opencode-executor.ts +81 -0
  364. package/src/lib/git-utils.ts +334 -0
  365. package/src/lib/hooks.ts +121 -0
  366. package/src/lib/index.ts +166 -0
  367. package/src/lib/logger.ts +43 -0
  368. package/src/lib/notifications.ts +103 -0
  369. package/src/lib/prompt-builder.ts +471 -0
  370. package/src/lib/prompt-registry.ts +491 -0
  371. package/src/lib/provider-defaults.json +32 -0
  372. package/src/lib/storage/file-system.ts +864 -0
  373. package/src/lib/storage/storage-callbacks.ts +120 -0
  374. package/src/lib/storage/types.ts +58 -0
  375. package/src/lib/task-execution-core.ts +591 -0
  376. package/src/lib/task-execution.ts +59 -0
  377. package/src/lib/task-loop-execution.ts +214 -0
  378. package/src/lib/task-planning.ts +157 -0
  379. package/src/lib/task-review.ts +138 -0
  380. package/src/lib/validation.ts +140 -0
  381. package/src/prompts/documentation-detection.ts +21 -0
  382. package/src/prompts/documentation-recap.ts +11 -0
  383. package/src/prompts/index.ts +14 -0
  384. package/src/prompts/prd-combination.ts +32 -0
  385. package/src/prompts/prd-generation.ts +46 -0
  386. package/src/prompts/prd-parsing.ts +170 -0
  387. package/src/prompts/prd-question-answer.ts +25 -0
  388. package/src/prompts/prd-question.ts +38 -0
  389. package/src/prompts/prd-rework.ts +79 -0
  390. package/src/prompts/prd-suggest-stack.ts +97 -0
  391. package/src/prompts/task-breakdown.ts +149 -0
  392. package/src/prompts/task-enhancement.ts +138 -0
  393. package/src/prompts/task-execution.ts +22 -0
  394. package/src/prompts/task-planning.ts +64 -0
  395. package/src/prompts/workflow-assistance.ts +151 -0
  396. package/src/prompts/workflow-prompts.ts +97 -0
  397. package/src/services/benchmark.ts +433 -0
  398. package/src/services/prd.ts +845 -0
  399. package/src/services/tasks.ts +1515 -0
  400. package/src/services/workflow-ai-assistant.ts +298 -0
  401. package/src/services/workflow-benchmark.ts +339 -0
  402. package/src/services/workflow.ts +779 -0
  403. package/src/test/hooks.test.ts +77 -0
  404. package/src/test/integration/callbacks.test.ts +39 -0
  405. package/src/test/lib/ai-service/task-operations.test.ts +430 -0
  406. package/src/test/lib/config.test.ts +150 -0
  407. package/src/test/lib/git-utils.test.ts +198 -0
  408. package/src/test/mocks/mock-ai-operations.ts +205 -0
  409. package/src/test/mocks/mock-context-builder.ts +84 -0
  410. package/src/test/mocks/mock-model-provider.ts +21 -0
  411. package/src/test/mocks/mock-service-factory.ts +64 -0
  412. package/src/test/mocks/mock-storage.ts +204 -0
  413. package/src/test/model-parsing.test.ts +78 -0
  414. package/src/test/services/task-service.test.ts +551 -0
  415. package/src/test/storage.test.ts +206 -0
  416. package/src/test/task-loop-git.test.ts +142 -0
  417. package/src/test/test-mock-setup.ts +46 -0
  418. package/src/test/test-setup.ts +48 -0
  419. package/src/test/test-utils.ts +45 -0
  420. package/src/test/utils/ai-operation-utility.test.ts +306 -0
  421. package/src/test/utils/error-handling.test.ts +241 -0
  422. package/src/test/utils/file-utils.test.ts +80 -0
  423. package/src/test/utils/id-generator.test.ts +44 -0
  424. package/src/test/utils/model-parser.test.ts +67 -0
  425. package/src/test/validation.test.ts +19 -0
  426. package/src/types/callbacks.ts +14 -0
  427. package/src/types/index.ts +628 -0
  428. package/src/types/mcp.ts +5 -0
  429. package/src/types/options.ts +165 -0
  430. package/src/types/results.ts +216 -0
  431. package/src/types/workflow-options.ts +113 -0
  432. package/src/types/workflow-results.ts +87 -0
  433. package/src/utils/ai-config-builder.ts +33 -0
  434. package/src/utils/ai-operation-utility.ts +380 -0
  435. package/src/utils/ai-service-factory.ts +125 -0
  436. package/src/utils/error-utils.ts +124 -0
  437. package/src/utils/file-utils.ts +197 -0
  438. package/src/utils/id-generator.ts +168 -0
  439. package/src/utils/metadata-utils.ts +48 -0
  440. package/src/utils/model-executor-parser.ts +80 -0
  441. package/src/utils/model-parser.ts +58 -0
  442. package/src/utils/stack-formatter.ts +53 -0
  443. package/src/utils/storage-utils.ts +94 -0
  444. package/src/utils/streaming-utils.ts +91 -0
  445. package/src/utils/task-o-matic-error.ts +393 -0
  446. package/tsconfig.json +20 -0
  447. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,428 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.BetterTStackIntegration = exports.BetterTStackService = void 0;
37
+ exports.runBetterTStackCLI = runBetterTStackCLI;
38
+ const config_1 = require("./config");
39
+ const fs_1 = require("fs");
40
+ // import { glob } from "glob";
41
+ const path_1 = require("path");
42
+ const logger_1 = require("./logger");
43
+ class BetterTStackService {
44
+ async createProject(name, config, workingDirectory) {
45
+ try {
46
+ logger_1.logger.info(`🚀 Bootstrapping Better-T-Stack project: ${name}`);
47
+ // Change to working directory if provided
48
+ const originalCwd = process.cwd();
49
+ if (workingDirectory) {
50
+ process.chdir(workingDirectory);
51
+ logger_1.logger.info(`🔥 Changed working directory to: ${workingDirectory}`);
52
+ }
53
+ // Convert our config to Better-T-Stack API format
54
+ const apiConfig = this.convertToAPIConfig(config);
55
+ logger_1.logger.info(`🔥 Calling Better-T-Stack programmatic API...`);
56
+ // Use dynamic import with eval to bypass TypeScript module resolution
57
+ // The module exports `init` as a named export, but depending on how it's bundled,
58
+ // it might be directly on the module or wrapped in a default export
59
+ const btsModule = await eval(`import("create-better-t-stack")`);
60
+ // Handle different module structures and API versions
61
+ // The package renamed 'init' to 'create' in a recent update
62
+ const initFn = btsModule.create ||
63
+ btsModule.init ||
64
+ btsModule.default?.create ||
65
+ btsModule.default?.init ||
66
+ btsModule.default;
67
+ if (typeof initFn !== "function") {
68
+ throw new Error(`Could not find 'create' or 'init' function in create-better-t-stack module. ` +
69
+ `Available exports: ${Object.keys(btsModule).join(", ")}`);
70
+ }
71
+ const result = await initFn(name, apiConfig);
72
+ // Restore original directory
73
+ if (workingDirectory) {
74
+ process.chdir(originalCwd);
75
+ }
76
+ if (result.success) {
77
+ // Save configuration
78
+ await this.saveBTSConfig(name, config, result.projectDirectory);
79
+ // Post-bootstrap enhancements
80
+ try {
81
+ const projectDir = result.projectDirectory;
82
+ // 1. Add check-types script to packages
83
+ await this.addCheckTypesScript(projectDir);
84
+ // 2. Copy documentation if requested
85
+ if (config.includeDocs) {
86
+ await this.copyDocumentation(projectDir);
87
+ }
88
+ }
89
+ catch (error) {
90
+ logger_1.logger.error(`⚠ Post-bootstrap enhancements failed: ${error}`);
91
+ // Don't fail the whole process, just log warning
92
+ }
93
+ return {
94
+ success: true,
95
+ projectPath: result.relativePath,
96
+ message: `Better-T-Stack project ${name} created successfully at ${result.projectDirectory}`,
97
+ };
98
+ }
99
+ else {
100
+ return {
101
+ success: false,
102
+ projectPath: "",
103
+ message: `Better-T-Stack bootstrap failed: ${result.error}`,
104
+ };
105
+ }
106
+ }
107
+ catch (error) {
108
+ return {
109
+ success: false,
110
+ projectPath: "",
111
+ message: `Better-T-Stack initialization failed: ${error instanceof Error ? error.message : "Unknown error"}`,
112
+ };
113
+ }
114
+ }
115
+ convertToAPIConfig(config) {
116
+ // Ensure frontend is always an array for Better-T-Stack API
117
+ const frontend = Array.isArray(config.frontend)
118
+ ? config.frontend
119
+ : [config.frontend];
120
+ return {
121
+ // Don't use 'yes' flag when providing explicit configuration
122
+ frontend,
123
+ backend: config.backend,
124
+ runtime: config.runtime,
125
+ api: config.api,
126
+ auth: config.auth,
127
+ database: config.database,
128
+ orm: config.orm,
129
+ dbSetup: config.dbSetup,
130
+ packageManager: config.packageManager,
131
+ webDeploy: config.webDeploy,
132
+ serverDeploy: config.serverDeploy,
133
+ git: config.git,
134
+ install: config.install,
135
+ addons: config.addons,
136
+ examples: config.examples &&
137
+ config.examples.length > 0 &&
138
+ config.examples[0] !== "none"
139
+ ? config.examples
140
+ : ["none"],
141
+ disableAnalytics: true,
142
+ payments: config.payments,
143
+ template: config.template, // v3.13.0: mern, pern, t3, uniwind
144
+ // Non-interactive options (yes: true conflicts with explicit config)
145
+ manualDb: true, // Skip DB setup prompts
146
+ renderTitle: false, // Cleaner output
147
+ };
148
+ }
149
+ async saveBTSConfig(name, config, projectPath) {
150
+ const taskOMaticDir = projectPath
151
+ ? (0, path_1.join)(projectPath, ".task-o-matic")
152
+ : config_1.configManager.getTaskOMaticDir();
153
+ // Ensure directory exists if we're using a specific project path
154
+ if (projectPath && !require("fs").existsSync(taskOMaticDir)) {
155
+ require("fs").mkdirSync(taskOMaticDir, { recursive: true });
156
+ }
157
+ const configData = JSON.stringify({
158
+ ...config,
159
+ projectName: config.projectName || name,
160
+ createdAt: new Date().toISOString(),
161
+ }, null, 2);
162
+ // Save with project-specific name for tracking multiple projects
163
+ const namedConfigPath = (0, path_1.join)(taskOMaticDir, `${name}-bts-config.json`);
164
+ (0, fs_1.writeFileSync)(namedConfigPath, configData);
165
+ // Also save as canonical stack.json for easy discovery by context-builder
166
+ const stackConfigPath = (0, path_1.join)(taskOMaticDir, "stack.json");
167
+ (0, fs_1.writeFileSync)(stackConfigPath, configData);
168
+ }
169
+ async addCheckTypesScript(projectDir) {
170
+ const { glob } = await Promise.resolve().then(() => __importStar(require("glob")));
171
+ // const { readFileSync, writeFileSync } = await import("fs");
172
+ logger_1.logger.info("🔍 Adding check-types scripts to packages...");
173
+ // Find all package.json files in apps and backend directories
174
+ const packageFiles = await glob(["apps/*/package.json", "backend/*/package.json"], { cwd: projectDir, absolute: true });
175
+ for (const file of packageFiles) {
176
+ try {
177
+ const content = JSON.parse((0, fs_1.readFileSync)(file, "utf-8"));
178
+ if (!content.scripts) {
179
+ content.scripts = {};
180
+ }
181
+ // Add check-types script if not present
182
+ if (!content.scripts["check-types"]) {
183
+ content.scripts["check-types"] = "tsc --noEmit";
184
+ (0, fs_1.writeFileSync)(file, JSON.stringify(content, null, 2) + "\n");
185
+ logger_1.logger.success(` ✓ Added check-types to ${file.split("/").slice(-3).join("/")}`);
186
+ }
187
+ }
188
+ catch (err) {
189
+ logger_1.logger.warn(` ⚠ Failed to update ${file}: ${err}`);
190
+ }
191
+ }
192
+ }
193
+ async copyDocumentation(projectDir) {
194
+ const { copyFileSync, mkdirSync, existsSync } = await Promise.resolve().then(() => __importStar(require("fs")));
195
+ const { resolve, dirname } = await Promise.resolve().then(() => __importStar(require("path")));
196
+ logger_1.logger.info("📚 Copying documentation...");
197
+ try {
198
+ // Source: docs/agents/cli.md in the current package
199
+ // We need to find where the package is installed or running from
200
+ // Assuming we are running from dist/lib/better-t-stack-cli.js or similar
201
+ // The docs should be in ../../docs/agents/cli.md relative to this file's location in source
202
+ // Or in the package root if installed
203
+ let sourcePath = resolve(__dirname, "../../../docs/agents/cli.md");
204
+ // Check if we're in dist
205
+ if (!existsSync(sourcePath)) {
206
+ // Try to find it relative to package root (cwd when running dev)
207
+ sourcePath = resolve(process.cwd(), "docs/agents/cli.md");
208
+ }
209
+ if (!existsSync(sourcePath)) {
210
+ // Try to find it in node_modules if installed as dependency
211
+ try {
212
+ sourcePath = require.resolve("task-o-matic/docs/agents/cli.md");
213
+ }
214
+ catch (e) {
215
+ // Ignore
216
+ }
217
+ }
218
+ if (existsSync(sourcePath)) {
219
+ const destPath = (0, path_1.join)(projectDir, "docs/task-o-matic.md");
220
+ const destDir = dirname(destPath);
221
+ if (!existsSync(destDir)) {
222
+ mkdirSync(destDir, { recursive: true });
223
+ }
224
+ copyFileSync(sourcePath, destPath);
225
+ logger_1.logger.success(` ✓ Copied documentation to docs/task-o-matic.md`);
226
+ }
227
+ else {
228
+ logger_1.logger.warn(" ⚠ Could not locate source documentation file");
229
+ }
230
+ }
231
+ catch (err) {
232
+ logger_1.logger.warn(` ⚠ Failed to copy documentation: ${err}`);
233
+ }
234
+ }
235
+ }
236
+ exports.BetterTStackService = BetterTStackService;
237
+ // Helper methods for multi-frontend support
238
+ class BetterTStackIntegration {
239
+ btsService;
240
+ constructor() {
241
+ this.btsService = new BetterTStackService();
242
+ }
243
+ /**
244
+ * Parse frontend option into array of frontends
245
+ */
246
+ parseFrontends(frontendOption) {
247
+ if (!frontendOption)
248
+ return [];
249
+ // If already array, return it
250
+ if (Array.isArray(frontendOption))
251
+ return frontendOption;
252
+ // If string, split by comma or space
253
+ if (typeof frontendOption === "string") {
254
+ return frontendOption
255
+ .split(/[\s,]+/)
256
+ .map((f) => f.trim())
257
+ .filter(Boolean);
258
+ }
259
+ // Single value
260
+ return [frontendOption];
261
+ }
262
+ /**
263
+ * Split frontends into Better-T-Stack frontends vs custom frontends
264
+ */
265
+ splitFrontends(frontends) {
266
+ const customTypes = new Set(["cli", "medusa"]);
267
+ return {
268
+ btsFrontends: frontends.filter((f) => !customTypes.has(f)),
269
+ customFrontends: frontends.filter((f) => customTypes.has(f)),
270
+ };
271
+ }
272
+ /**
273
+ * Create project with support for multiple frontends
274
+ */
275
+ async createProject(name, options, workingDirectory) {
276
+ const workingDir = workingDirectory || config_1.configManager.getWorkingDirectory();
277
+ const frontends = this.parseFrontends(options.frontend);
278
+ const { btsFrontends, customFrontends } = this.splitFrontends(frontends);
279
+ const isMonorepo = frontends.length > 1;
280
+ let projectPath = (0, path_1.join)(workingDir, name);
281
+ const results = [];
282
+ try {
283
+ // Step 1: Bootstrap Better-T-Stack project FIRST (if any BTS frontends)
284
+ // This creates the monorepo structure that CLI/TUI will be added to
285
+ if (btsFrontends.length > 0) {
286
+ const result = await this.bootstrapBetterTStackProject(name, btsFrontends, options, workingDir);
287
+ if (!result.success)
288
+ throw new Error(result.message);
289
+ // Get the actual project path from Better-T-Stack result
290
+ // This is the full path where the project was created
291
+ projectPath = (0, path_1.join)(workingDir, name);
292
+ results.push(result.message);
293
+ }
294
+ else if (isMonorepo) {
295
+ // Create monorepo structure manually if no BTS frontends
296
+ // (e.g., just cli + tui with no web/native)
297
+ (0, fs_1.mkdirSync)(projectPath, { recursive: true });
298
+ (0, fs_1.mkdirSync)((0, path_1.join)(projectPath, "apps"), { recursive: true });
299
+ logger_1.logger.info(`📁 Created monorepo structure at ${projectPath}`);
300
+ }
301
+ // Step 2: AFTER Better-T-Stack creates the structure, add custom frontends
302
+ // These get added into the apps/ directory that Better-T-Stack created
303
+ for (const frontend of customFrontends) {
304
+ if (frontend === "cli") {
305
+ const result = await this.addCliToProject(name, projectPath, isMonorepo, options);
306
+ results.push(result.message);
307
+ }
308
+ if (frontend === "medusa") {
309
+ const result = await this.addMedusaToProject(name, projectPath, isMonorepo, options);
310
+ results.push(result.message);
311
+ }
312
+ }
313
+ return {
314
+ success: true,
315
+ message: results.join("\n"),
316
+ projectPath,
317
+ };
318
+ }
319
+ catch (error) {
320
+ const message = error instanceof Error ? error.message : String(error);
321
+ return {
322
+ success: false,
323
+ message: `Project creation failed: ${message}`,
324
+ };
325
+ }
326
+ }
327
+ /**
328
+ * Bootstrap Better-T-Stack project with one or more frontends
329
+ */
330
+ async bootstrapBetterTStackProject(name, frontends, options, workingDir) {
331
+ const backend = options.backend || "hono";
332
+ const isConvex = backend === "convex";
333
+ const btsConfig = {
334
+ projectName: options.name || options.projectName || name,
335
+ frontend: frontends.length === 1 ? frontends[0] : frontends, // Pass array if multiple
336
+ backend: backend || "hono",
337
+ database: isConvex
338
+ ? "none"
339
+ : options.database || "sqlite",
340
+ auth: options.noAuth
341
+ ? "none"
342
+ : options.auth || "better-auth",
343
+ addons: options.addons || ["turborepo"],
344
+ runtime: (isConvex || backend === "self"
345
+ ? "none"
346
+ : options.runtime || "node"),
347
+ api: options.api || "none",
348
+ payments: options.payment || "none",
349
+ orm: (isConvex ? "none" : options.orm || "drizzle"),
350
+ dbSetup: (isConvex
351
+ ? "none"
352
+ : options.dbSetup || "none"),
353
+ packageManager: options.packageManager || "npm",
354
+ git: !options.noGit,
355
+ webDeploy: options.webDeploy || "none",
356
+ serverDeploy: options.serverDeploy || "none",
357
+ install: !options.noInstall,
358
+ examples: options.examples || ["none"],
359
+ template: options.template, // Optional shortcut, don't default
360
+ // Non-interactive options (yes: true conflicts with explicit config)
361
+ manualDb: true,
362
+ renderTitle: false,
363
+ includeDocs: options.includeDocs,
364
+ };
365
+ const result = await this.btsService.createProject(name, btsConfig, workingDir);
366
+ return {
367
+ success: result.success,
368
+ message: result.message,
369
+ projectPath: result.projectPath,
370
+ };
371
+ }
372
+ /**
373
+ * Add CLI app to project (standalone or monorepo)
374
+ */
375
+ async addCliToProject(projectName, projectPath, isMonorepo, options) {
376
+ const { bootstrapCliProject } = await Promise.resolve().then(() => __importStar(require("./bootstrap/cli-bootstrap.js")));
377
+ const cliPath = isMonorepo ? (0, path_1.join)(projectPath, "apps", "cli") : projectPath;
378
+ const cliName = isMonorepo ? `${projectName}-cli` : projectName;
379
+ const result = await bootstrapCliProject({
380
+ projectName: cliName,
381
+ projectPath: cliPath,
382
+ dependencyLevel: options.cliDeps || "standard",
383
+ packageManager: options.packageManager || "npm",
384
+ runtime: options.runtime || "node",
385
+ typescript: true,
386
+ });
387
+ if (!result.success)
388
+ throw new Error(result.message);
389
+ return {
390
+ success: true,
391
+ message: isMonorepo
392
+ ? `✅ CLI app added to apps/cli/`
393
+ : `✅ CLI project "${projectName}" created successfully!`,
394
+ };
395
+ }
396
+ /**
397
+ * Add MedusaJS app to project (standalone or monorepo)
398
+ */
399
+ async addMedusaToProject(projectName, projectPath, isMonorepo, options) {
400
+ const { bootstrapMedusaProject } = await Promise.resolve().then(() => __importStar(require("./bootstrap/medusa-bootstrap.js")));
401
+ const medusaPath = isMonorepo
402
+ ? (0, path_1.join)(projectPath, "apps", "medusa")
403
+ : projectPath;
404
+ const medusaName = isMonorepo ? `${projectName}-medusa` : projectName;
405
+ const result = await bootstrapMedusaProject({
406
+ projectName: medusaName,
407
+ projectPath: medusaPath,
408
+ packageManager: options.packageManager || "npm",
409
+ database: options.database || "sqlite",
410
+ skipDb: options.noInstall, // Skip DB setup if not installing deps
411
+ skipInstall: options.noInstall,
412
+ });
413
+ if (!result.success)
414
+ throw new Error(result.message);
415
+ return {
416
+ success: true,
417
+ message: isMonorepo
418
+ ? `✅ MedusaJS app added to apps/medusa/`
419
+ : `✅ MedusaJS project "${projectName}" created successfully!`,
420
+ };
421
+ }
422
+ }
423
+ exports.BetterTStackIntegration = BetterTStackIntegration;
424
+ // Export backward-compatible function
425
+ async function runBetterTStackCLI(options, workingDirectory) {
426
+ const integration = new BetterTStackIntegration();
427
+ return integration.createProject(options.projectName || options.name || "default-project", options, workingDirectory);
428
+ }
@@ -0,0 +1,14 @@
1
+ import type { CliDependencyLevel } from "../../types";
2
+ export interface CliBootstrapOptions {
3
+ projectName: string;
4
+ projectPath: string;
5
+ dependencyLevel: CliDependencyLevel;
6
+ packageManager: "npm" | "pnpm" | "bun";
7
+ runtime: "node" | "bun";
8
+ typescript: boolean;
9
+ }
10
+ export declare function bootstrapCliProject(options: CliBootstrapOptions): Promise<{
11
+ success: boolean;
12
+ message: string;
13
+ }>;
14
+ //# sourceMappingURL=cli-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-bootstrap.d.ts","sourceRoot":"","sources":["../../../src/lib/bootstrap/cli-bootstrap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,kBAAkB,CAAC;IACpC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4GhD"}