@take-out/cli 0.0.39

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 (331) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +274 -0
  3. package/cli.mjs +3 -0
  4. package/dist/cjs/cli.cjs +71 -0
  5. package/dist/cjs/cli.js +70 -0
  6. package/dist/cjs/cli.js.map +6 -0
  7. package/dist/cjs/cli.native.js +79 -0
  8. package/dist/cjs/cli.native.js.map +6 -0
  9. package/dist/cjs/commands/changed.cjs +212 -0
  10. package/dist/cjs/commands/changed.js +214 -0
  11. package/dist/cjs/commands/changed.js.map +6 -0
  12. package/dist/cjs/commands/changed.native.js +289 -0
  13. package/dist/cjs/commands/changed.native.js.map +6 -0
  14. package/dist/cjs/commands/docs.cjs +388 -0
  15. package/dist/cjs/commands/docs.js +313 -0
  16. package/dist/cjs/commands/docs.js.map +6 -0
  17. package/dist/cjs/commands/docs.native.js +476 -0
  18. package/dist/cjs/commands/docs.native.js.map +6 -0
  19. package/dist/cjs/commands/env-setup.cjs +90 -0
  20. package/dist/cjs/commands/env-setup.js +78 -0
  21. package/dist/cjs/commands/env-setup.js.map +6 -0
  22. package/dist/cjs/commands/env-setup.native.js +85 -0
  23. package/dist/cjs/commands/env-setup.native.js.map +6 -0
  24. package/dist/cjs/commands/onboard.cjs +479 -0
  25. package/dist/cjs/commands/onboard.js +631 -0
  26. package/dist/cjs/commands/onboard.js.map +6 -0
  27. package/dist/cjs/commands/onboard.native.js +608 -0
  28. package/dist/cjs/commands/onboard.native.js.map +6 -0
  29. package/dist/cjs/commands/run.cjs +148 -0
  30. package/dist/cjs/commands/run.js +116 -0
  31. package/dist/cjs/commands/run.js.map +6 -0
  32. package/dist/cjs/commands/run.native.js +140 -0
  33. package/dist/cjs/commands/run.native.js.map +6 -0
  34. package/dist/cjs/commands/script.cjs +379 -0
  35. package/dist/cjs/commands/script.js +339 -0
  36. package/dist/cjs/commands/script.js.map +6 -0
  37. package/dist/cjs/commands/script.native.js +449 -0
  38. package/dist/cjs/commands/script.native.js.map +6 -0
  39. package/dist/cjs/commands/sync.cjs +190 -0
  40. package/dist/cjs/commands/sync.js +168 -0
  41. package/dist/cjs/commands/sync.js.map +6 -0
  42. package/dist/cjs/commands/sync.native.js +211 -0
  43. package/dist/cjs/commands/sync.native.js.map +6 -0
  44. package/dist/cjs/constants/ascii.cjs +36 -0
  45. package/dist/cjs/constants/ascii.js +30 -0
  46. package/dist/cjs/constants/ascii.js.map +6 -0
  47. package/dist/cjs/constants/ascii.native.js +36 -0
  48. package/dist/cjs/constants/ascii.native.js.map +6 -0
  49. package/dist/cjs/index.cjs +64 -0
  50. package/dist/cjs/index.js +55 -0
  51. package/dist/cjs/index.js.map +6 -0
  52. package/dist/cjs/index.native.js +94 -0
  53. package/dist/cjs/index.native.js.map +6 -0
  54. package/dist/cjs/types.cjs +16 -0
  55. package/dist/cjs/types.js +14 -0
  56. package/dist/cjs/types.js.map +6 -0
  57. package/dist/cjs/types.native.js +15 -0
  58. package/dist/cjs/types.native.js.map +6 -0
  59. package/dist/cjs/utils/env-categories.cjs +272 -0
  60. package/dist/cjs/utils/env-categories.js +296 -0
  61. package/dist/cjs/utils/env-categories.js.map +6 -0
  62. package/dist/cjs/utils/env-categories.native.js +317 -0
  63. package/dist/cjs/utils/env-categories.native.js.map +6 -0
  64. package/dist/cjs/utils/env-setup.cjs +181 -0
  65. package/dist/cjs/utils/env-setup.js +190 -0
  66. package/dist/cjs/utils/env-setup.js.map +6 -0
  67. package/dist/cjs/utils/env-setup.native.js +264 -0
  68. package/dist/cjs/utils/env-setup.native.js.map +6 -0
  69. package/dist/cjs/utils/env.cjs +118 -0
  70. package/dist/cjs/utils/env.js +97 -0
  71. package/dist/cjs/utils/env.js.map +6 -0
  72. package/dist/cjs/utils/env.native.js +128 -0
  73. package/dist/cjs/utils/env.native.js.map +6 -0
  74. package/dist/cjs/utils/files.cjs +215 -0
  75. package/dist/cjs/utils/files.js +164 -0
  76. package/dist/cjs/utils/files.js.map +6 -0
  77. package/dist/cjs/utils/files.native.js +266 -0
  78. package/dist/cjs/utils/files.native.js.map +6 -0
  79. package/dist/cjs/utils/parallel-runner.cjs +99 -0
  80. package/dist/cjs/utils/parallel-runner.js +84 -0
  81. package/dist/cjs/utils/parallel-runner.js.map +6 -0
  82. package/dist/cjs/utils/parallel-runner.native.js +123 -0
  83. package/dist/cjs/utils/parallel-runner.native.js.map +6 -0
  84. package/dist/cjs/utils/ports.cjs +101 -0
  85. package/dist/cjs/utils/ports.js +81 -0
  86. package/dist/cjs/utils/ports.js.map +6 -0
  87. package/dist/cjs/utils/ports.native.js +130 -0
  88. package/dist/cjs/utils/ports.native.js.map +6 -0
  89. package/dist/cjs/utils/prerequisites.cjs +119 -0
  90. package/dist/cjs/utils/prerequisites.js +107 -0
  91. package/dist/cjs/utils/prerequisites.js.map +6 -0
  92. package/dist/cjs/utils/prerequisites.native.js +127 -0
  93. package/dist/cjs/utils/prerequisites.native.js.map +6 -0
  94. package/dist/cjs/utils/prompts.cjs +161 -0
  95. package/dist/cjs/utils/prompts.js +162 -0
  96. package/dist/cjs/utils/prompts.js.map +6 -0
  97. package/dist/cjs/utils/prompts.native.js +179 -0
  98. package/dist/cjs/utils/prompts.native.js.map +6 -0
  99. package/dist/cjs/utils/script-listing.cjs +113 -0
  100. package/dist/cjs/utils/script-listing.js +108 -0
  101. package/dist/cjs/utils/script-listing.js.map +6 -0
  102. package/dist/cjs/utils/script-listing.native.js +174 -0
  103. package/dist/cjs/utils/script-listing.native.js.map +6 -0
  104. package/dist/cjs/utils/sync.cjs +85 -0
  105. package/dist/cjs/utils/sync.js +70 -0
  106. package/dist/cjs/utils/sync.js.map +6 -0
  107. package/dist/cjs/utils/sync.native.js +84 -0
  108. package/dist/cjs/utils/sync.native.js.map +6 -0
  109. package/dist/cjs/utils/welcome.cjs +50 -0
  110. package/dist/cjs/utils/welcome.js +42 -0
  111. package/dist/cjs/utils/welcome.js.map +6 -0
  112. package/dist/cjs/utils/welcome.native.js +47 -0
  113. package/dist/cjs/utils/welcome.native.js.map +6 -0
  114. package/dist/esm/cli.js +79 -0
  115. package/dist/esm/cli.js.map +6 -0
  116. package/dist/esm/cli.mjs +71 -0
  117. package/dist/esm/cli.mjs.map +1 -0
  118. package/dist/esm/cli.native.js +69 -0
  119. package/dist/esm/cli.native.js.map +1 -0
  120. package/dist/esm/commands/changed.js +194 -0
  121. package/dist/esm/commands/changed.js.map +6 -0
  122. package/dist/esm/commands/changed.mjs +178 -0
  123. package/dist/esm/commands/changed.mjs.map +1 -0
  124. package/dist/esm/commands/changed.native.js +273 -0
  125. package/dist/esm/commands/changed.native.js.map +1 -0
  126. package/dist/esm/commands/docs.js +306 -0
  127. package/dist/esm/commands/docs.js.map +6 -0
  128. package/dist/esm/commands/docs.mjs +353 -0
  129. package/dist/esm/commands/docs.mjs.map +1 -0
  130. package/dist/esm/commands/docs.native.js +516 -0
  131. package/dist/esm/commands/docs.native.js.map +1 -0
  132. package/dist/esm/commands/env-setup.js +56 -0
  133. package/dist/esm/commands/env-setup.js.map +6 -0
  134. package/dist/esm/commands/env-setup.mjs +56 -0
  135. package/dist/esm/commands/env-setup.mjs.map +1 -0
  136. package/dist/esm/commands/env-setup.native.js +59 -0
  137. package/dist/esm/commands/env-setup.native.js.map +1 -0
  138. package/dist/esm/commands/onboard.js +645 -0
  139. package/dist/esm/commands/onboard.js.map +6 -0
  140. package/dist/esm/commands/onboard.mjs +445 -0
  141. package/dist/esm/commands/onboard.mjs.map +1 -0
  142. package/dist/esm/commands/onboard.native.js +584 -0
  143. package/dist/esm/commands/onboard.native.js.map +1 -0
  144. package/dist/esm/commands/run.js +95 -0
  145. package/dist/esm/commands/run.js.map +6 -0
  146. package/dist/esm/commands/run.mjs +114 -0
  147. package/dist/esm/commands/run.mjs.map +1 -0
  148. package/dist/esm/commands/run.native.js +133 -0
  149. package/dist/esm/commands/run.native.js.map +1 -0
  150. package/dist/esm/commands/script.js +338 -0
  151. package/dist/esm/commands/script.js.map +6 -0
  152. package/dist/esm/commands/script.mjs +336 -0
  153. package/dist/esm/commands/script.mjs.map +1 -0
  154. package/dist/esm/commands/script.native.js +445 -0
  155. package/dist/esm/commands/script.native.js.map +1 -0
  156. package/dist/esm/commands/sync.js +158 -0
  157. package/dist/esm/commands/sync.js.map +6 -0
  158. package/dist/esm/commands/sync.mjs +155 -0
  159. package/dist/esm/commands/sync.mjs.map +1 -0
  160. package/dist/esm/commands/sync.native.js +173 -0
  161. package/dist/esm/commands/sync.native.js.map +1 -0
  162. package/dist/esm/constants/ascii.js +14 -0
  163. package/dist/esm/constants/ascii.js.map +6 -0
  164. package/dist/esm/constants/ascii.mjs +12 -0
  165. package/dist/esm/constants/ascii.mjs.map +1 -0
  166. package/dist/esm/constants/ascii.native.js +12 -0
  167. package/dist/esm/constants/ascii.native.js.map +1 -0
  168. package/dist/esm/index.js +83 -0
  169. package/dist/esm/index.js.map +6 -0
  170. package/dist/esm/index.mjs +7 -0
  171. package/dist/esm/index.mjs.map +1 -0
  172. package/dist/esm/index.native.js +7 -0
  173. package/dist/esm/index.native.js.map +1 -0
  174. package/dist/esm/types.js +1 -0
  175. package/dist/esm/types.js.map +6 -0
  176. package/dist/esm/types.mjs +2 -0
  177. package/dist/esm/types.mjs.map +1 -0
  178. package/dist/esm/types.native.js +2 -0
  179. package/dist/esm/types.native.js.map +1 -0
  180. package/dist/esm/utils/env-categories.js +272 -0
  181. package/dist/esm/utils/env-categories.js.map +6 -0
  182. package/dist/esm/utils/env-categories.mjs +233 -0
  183. package/dist/esm/utils/env-categories.mjs.map +1 -0
  184. package/dist/esm/utils/env-categories.native.js +246 -0
  185. package/dist/esm/utils/env-categories.native.js.map +1 -0
  186. package/dist/esm/utils/env-setup.js +173 -0
  187. package/dist/esm/utils/env-setup.js.map +6 -0
  188. package/dist/esm/utils/env-setup.mjs +146 -0
  189. package/dist/esm/utils/env-setup.mjs.map +1 -0
  190. package/dist/esm/utils/env-setup.native.js +243 -0
  191. package/dist/esm/utils/env-setup.native.js.map +1 -0
  192. package/dist/esm/utils/env.js +83 -0
  193. package/dist/esm/utils/env.js.map +6 -0
  194. package/dist/esm/utils/env.mjs +90 -0
  195. package/dist/esm/utils/env.mjs.map +1 -0
  196. package/dist/esm/utils/env.native.js +99 -0
  197. package/dist/esm/utils/env.native.js.map +1 -0
  198. package/dist/esm/utils/files.js +150 -0
  199. package/dist/esm/utils/files.js.map +6 -0
  200. package/dist/esm/utils/files.mjs +187 -0
  201. package/dist/esm/utils/files.mjs.map +1 -0
  202. package/dist/esm/utils/files.native.js +247 -0
  203. package/dist/esm/utils/files.native.js.map +1 -0
  204. package/dist/esm/utils/parallel-runner.js +69 -0
  205. package/dist/esm/utils/parallel-runner.js.map +6 -0
  206. package/dist/esm/utils/parallel-runner.mjs +76 -0
  207. package/dist/esm/utils/parallel-runner.mjs.map +1 -0
  208. package/dist/esm/utils/parallel-runner.native.js +109 -0
  209. package/dist/esm/utils/parallel-runner.native.js.map +1 -0
  210. package/dist/esm/utils/ports.js +65 -0
  211. package/dist/esm/utils/ports.js.map +6 -0
  212. package/dist/esm/utils/ports.mjs +74 -0
  213. package/dist/esm/utils/ports.mjs.map +1 -0
  214. package/dist/esm/utils/ports.native.js +93 -0
  215. package/dist/esm/utils/ports.native.js.map +1 -0
  216. package/dist/esm/utils/prerequisites.js +91 -0
  217. package/dist/esm/utils/prerequisites.js.map +6 -0
  218. package/dist/esm/utils/prerequisites.mjs +91 -0
  219. package/dist/esm/utils/prerequisites.mjs.map +1 -0
  220. package/dist/esm/utils/prerequisites.native.js +97 -0
  221. package/dist/esm/utils/prerequisites.native.js.map +1 -0
  222. package/dist/esm/utils/prompts.js +139 -0
  223. package/dist/esm/utils/prompts.js.map +6 -0
  224. package/dist/esm/utils/prompts.mjs +112 -0
  225. package/dist/esm/utils/prompts.mjs.map +1 -0
  226. package/dist/esm/utils/prompts.native.js +115 -0
  227. package/dist/esm/utils/prompts.native.js.map +1 -0
  228. package/dist/esm/utils/script-listing.js +91 -0
  229. package/dist/esm/utils/script-listing.js.map +6 -0
  230. package/dist/esm/utils/script-listing.mjs +76 -0
  231. package/dist/esm/utils/script-listing.mjs.map +1 -0
  232. package/dist/esm/utils/script-listing.native.js +151 -0
  233. package/dist/esm/utils/script-listing.native.js.map +1 -0
  234. package/dist/esm/utils/sync.js +50 -0
  235. package/dist/esm/utils/sync.js.map +6 -0
  236. package/dist/esm/utils/sync.mjs +48 -0
  237. package/dist/esm/utils/sync.mjs.map +1 -0
  238. package/dist/esm/utils/sync.native.js +53 -0
  239. package/dist/esm/utils/sync.native.js.map +1 -0
  240. package/dist/esm/utils/welcome.js +21 -0
  241. package/dist/esm/utils/welcome.js.map +6 -0
  242. package/dist/esm/utils/welcome.mjs +15 -0
  243. package/dist/esm/utils/welcome.mjs.map +1 -0
  244. package/dist/esm/utils/welcome.native.js +18 -0
  245. package/dist/esm/utils/welcome.native.js.map +1 -0
  246. package/docs/aggregates.md +579 -0
  247. package/docs/cloudflare-dev-tunnel.md +41 -0
  248. package/docs/database.md +203 -0
  249. package/docs/docs.md +8 -0
  250. package/docs/emitters.md +562 -0
  251. package/docs/hot-updater.md +223 -0
  252. package/docs/native-hot-update.md +252 -0
  253. package/docs/one-components.md +234 -0
  254. package/docs/one-hooks.md +570 -0
  255. package/docs/one-routes.md +660 -0
  256. package/docs/package-json.md +115 -0
  257. package/docs/react-native-navigation-flow.md +184 -0
  258. package/docs/scripts.md +147 -0
  259. package/docs/sync-prompt.md +208 -0
  260. package/docs/tamagui.md +478 -0
  261. package/docs/testing-integration.md +564 -0
  262. package/docs/triggers.md +450 -0
  263. package/docs/zero.md +719 -0
  264. package/package.json +76 -0
  265. package/scripts/seed.ts +209 -0
  266. package/src/cli.ts +147 -0
  267. package/src/commands/changed.ts +313 -0
  268. package/src/commands/docs.ts +582 -0
  269. package/src/commands/env-setup.ts +69 -0
  270. package/src/commands/onboard.ts +1391 -0
  271. package/src/commands/run.ts +173 -0
  272. package/src/commands/script.ts +587 -0
  273. package/src/commands/sync.ts +305 -0
  274. package/src/constants/ascii.ts +17 -0
  275. package/src/index.ts +63 -0
  276. package/src/types.ts +59 -0
  277. package/src/utils/env-categories.ts +245 -0
  278. package/src/utils/env-setup.ts +338 -0
  279. package/src/utils/env.ts +127 -0
  280. package/src/utils/files.ts +302 -0
  281. package/src/utils/parallel-runner.ts +129 -0
  282. package/src/utils/ports.ts +77 -0
  283. package/src/utils/prerequisites.ts +137 -0
  284. package/src/utils/prompts.ts +197 -0
  285. package/src/utils/script-listing.ts +214 -0
  286. package/src/utils/sync.ts +101 -0
  287. package/src/withOpSqliteStatic.cjs +51 -0
  288. package/types/cli.d.ts +7 -0
  289. package/types/cli.d.ts.map +1 -0
  290. package/types/commands/changed.d.ts +14 -0
  291. package/types/commands/changed.d.ts.map +1 -0
  292. package/types/commands/docs.d.ts +5 -0
  293. package/types/commands/docs.d.ts.map +1 -0
  294. package/types/commands/env-setup.d.ts +25 -0
  295. package/types/commands/env-setup.d.ts.map +1 -0
  296. package/types/commands/onboard.d.ts +16 -0
  297. package/types/commands/onboard.d.ts.map +1 -0
  298. package/types/commands/run.d.ts +8 -0
  299. package/types/commands/run.d.ts.map +1 -0
  300. package/types/commands/script.d.ts +28 -0
  301. package/types/commands/script.d.ts.map +1 -0
  302. package/types/commands/sync.d.ts +5 -0
  303. package/types/commands/sync.d.ts.map +1 -0
  304. package/types/constants/ascii.d.ts +6 -0
  305. package/types/constants/ascii.d.ts.map +1 -0
  306. package/types/index.d.ts +12 -0
  307. package/types/index.d.ts.map +1 -0
  308. package/types/types.d.ts +54 -0
  309. package/types/types.d.ts.map +1 -0
  310. package/types/utils/env-categories.d.ts +8 -0
  311. package/types/utils/env-categories.d.ts.map +1 -0
  312. package/types/utils/env-setup.d.ts +10 -0
  313. package/types/utils/env-setup.d.ts.map +1 -0
  314. package/types/utils/env.d.ts +19 -0
  315. package/types/utils/env.d.ts.map +1 -0
  316. package/types/utils/files.d.ts +47 -0
  317. package/types/utils/files.d.ts.map +1 -0
  318. package/types/utils/parallel-runner.d.ts +15 -0
  319. package/types/utils/parallel-runner.d.ts.map +1 -0
  320. package/types/utils/ports.d.ts +16 -0
  321. package/types/utils/ports.d.ts.map +1 -0
  322. package/types/utils/prerequisites.d.ts +11 -0
  323. package/types/utils/prerequisites.d.ts.map +1 -0
  324. package/types/utils/prompts.d.ts +30 -0
  325. package/types/utils/prompts.d.ts.map +1 -0
  326. package/types/utils/script-listing.d.ts +7 -0
  327. package/types/utils/script-listing.d.ts.map +1 -0
  328. package/types/utils/sync.d.ts +16 -0
  329. package/types/utils/sync.d.ts.map +1 -0
  330. package/types/utils/welcome.d.ts +6 -0
  331. package/types/utils/welcome.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["existsSync","readdirSync","statSync","readFileSync","writeFileSync","mkdirSync","homedir","join","relative","dirname","basename","fileURLToPath","defineCommand","pc","listAllScripts","listCategoryScripts","compareFiles","getFileSize","syncFileWithConfirmation","formatScriptList","listAllScripts2","listCategoryScripts2","CACHE_DIR","CACHE_FILE","findScriptsPackageRoot","resolved","import","meta","resolve","packageJsonPath","URL","packageRoot","srcPath","getLocalScriptsDir","process","cwd","extractMetadata","filePath","lines","split","slice","metadata","line","descMatch","match","description","trim","argsMatch","args","map","a","stat","mtime","mtimeMs","loadCache","JSON","parse","saveCache","cache","recursive","stringify","getScriptMetadata","discoverScripts","dir","baseDir","depth","maxDepth","scripts","Map","entries","entry","fullPath","isDirectory","subScripts","name","path","set","endsWith","scriptName","replace","findScript","normalizedName","localDir","ext","localPath","builtInDir","builtInPath","runScript","scriptPath","console","info","dim","$","err","error","red","exit","newCommand","type","required","run","template","green","getAllScriptFiles","files","push","ejectCommand","yes","default","targetScriptsDir","sourceScriptsDir","bold","cyan","yellow","sourceFiles","length","filesToSync","stats","new","modified","identical","file","sourcePath","targetPath","status","sourceSize","targetSize","sortOrder","sort","b","syncedCount","targetDir","content","runSubCommand","rawArgs","scriptArgs","indexOf","scriptCommand","subCommands","eject","createShorthandCommand","_","cmd"],"sources":["../../../src/commands/script.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,445 @@
1
+ import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, mkdirSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join, relative, dirname, basename } from "path";
4
+ import { fileURLToPath } from "url";
5
+ import { defineCommand } from "citty";
6
+ import pc from "picocolors";
7
+ import { listAllScripts, listCategoryScripts } from "../utils/script-listing.native.js";
8
+ import { compareFiles, getFileSize, syncFileWithConfirmation } from "../utils/sync.native.js";
9
+ import { formatScriptList, listAllScripts as listAllScripts2, listCategoryScripts as listCategoryScripts2 } from "../utils/script-listing.native.js";
10
+ var CACHE_DIR = join(homedir(), ".takeout"),
11
+ CACHE_FILE = join(CACHE_DIR, "script-cache.json");
12
+ function findScriptsPackageRoot() {
13
+ try {
14
+ var resolved = import.meta.resolve("@take-out/scripts/package.json"),
15
+ packageJsonPath = fileURLToPath(new URL(resolved)),
16
+ packageRoot = join(packageJsonPath, ".."),
17
+ srcPath = join(packageRoot, "src");
18
+ if (existsSync(srcPath)) return srcPath;
19
+ } catch {}
20
+ return null;
21
+ }
22
+ function getLocalScriptsDir() {
23
+ return join(process.cwd(), "scripts");
24
+ }
25
+ function extractMetadata(filePath) {
26
+ try {
27
+ var content = readFileSync(filePath, "utf-8"),
28
+ lines = content.split(`
29
+ `).slice(0, 20),
30
+ metadata = {},
31
+ _iteratorNormalCompletion = !0,
32
+ _didIteratorError = !1,
33
+ _iteratorError = void 0;
34
+ try {
35
+ for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
36
+ var line = _step.value,
37
+ descMatch = line.match(/@description\s+(.+)/);
38
+ descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
39
+ var argsMatch = line.match(/@args\s+(.+)/);
40
+ argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map(function (a) {
41
+ return a.trim();
42
+ }));
43
+ }
44
+ } catch (err) {
45
+ _didIteratorError = !0, _iteratorError = err;
46
+ } finally {
47
+ try {
48
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
49
+ } finally {
50
+ if (_didIteratorError) throw _iteratorError;
51
+ }
52
+ }
53
+ var stat = statSync(filePath);
54
+ return metadata.mtime = stat.mtimeMs, metadata;
55
+ } catch {
56
+ return {};
57
+ }
58
+ }
59
+ function loadCache() {
60
+ try {
61
+ if (existsSync(CACHE_FILE)) return JSON.parse(readFileSync(CACHE_FILE, "utf-8"));
62
+ } catch {}
63
+ return {};
64
+ }
65
+ function saveCache(cache) {
66
+ try {
67
+ existsSync(CACHE_DIR) || mkdirSync(CACHE_DIR, {
68
+ recursive: !0
69
+ }), writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
70
+ } catch {}
71
+ }
72
+ function getScriptMetadata(filePath) {
73
+ var cache = loadCache(),
74
+ stat = statSync(filePath);
75
+ if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs) return cache[filePath];
76
+ var metadata = extractMetadata(filePath);
77
+ return cache[filePath] = metadata, saveCache(cache), metadata;
78
+ }
79
+ function discoverScripts(dir) {
80
+ var baseDir = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : dir,
81
+ depth = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0,
82
+ maxDepth = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 1,
83
+ scripts = /* @__PURE__ */new Map();
84
+ if (!existsSync(dir)) return scripts;
85
+ try {
86
+ var entries = readdirSync(dir),
87
+ _iteratorNormalCompletion = !0,
88
+ _didIteratorError = !1,
89
+ _iteratorError = void 0;
90
+ try {
91
+ for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
92
+ var entry = _step.value,
93
+ fullPath = join(dir, entry),
94
+ stat = statSync(fullPath);
95
+ if (stat.isDirectory()) {
96
+ if (entry === "helpers" || depth >= maxDepth) continue;
97
+ var subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth),
98
+ _iteratorNormalCompletion1 = !0,
99
+ _didIteratorError1 = !1,
100
+ _iteratorError1 = void 0;
101
+ try {
102
+ for (var _iterator1 = subScripts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
103
+ var [name, path] = _step1.value;
104
+ scripts.set(name, path);
105
+ }
106
+ } catch (err) {
107
+ _didIteratorError1 = !0, _iteratorError1 = err;
108
+ } finally {
109
+ try {
110
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
111
+ } finally {
112
+ if (_didIteratorError1) throw _iteratorError1;
113
+ }
114
+ }
115
+ } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
116
+ var relativePath = relative(baseDir, fullPath).split("\\").join("/"),
117
+ scriptName = relativePath.replace(/\.(ts|js)$/, "");
118
+ scripts.set(scriptName, fullPath);
119
+ }
120
+ }
121
+ } catch (err) {
122
+ _didIteratorError = !0, _iteratorError = err;
123
+ } finally {
124
+ try {
125
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
126
+ } finally {
127
+ if (_didIteratorError) throw _iteratorError;
128
+ }
129
+ }
130
+ } catch {}
131
+ return scripts;
132
+ }
133
+ function findScript(name) {
134
+ for (var normalizedName = name.replace(/:/g, "/"), localDir = getLocalScriptsDir(), _i = 0, _iter = [".ts", ".js", ""]; _i < _iter.length; _i++) {
135
+ var ext = _iter[_i],
136
+ localPath = join(localDir, `${normalizedName}${ext}`);
137
+ if (existsSync(localPath)) return localPath;
138
+ }
139
+ var builtInDir = findScriptsPackageRoot();
140
+ if (builtInDir) for (var _i1 = 0, _iter1 = [".ts", ".js", ""]; _i1 < _iter1.length; _i1++) {
141
+ var ext1 = _iter1[_i1],
142
+ builtInPath = join(builtInDir, `${normalizedName}${ext1}`);
143
+ if (existsSync(builtInPath)) return builtInPath;
144
+ }
145
+ return null;
146
+ }
147
+ async function runScript(scriptPath, args) {
148
+ console.info(pc.dim(`Running: ${relative(process.cwd(), scriptPath)}`)), console.info();
149
+ try {
150
+ var {
151
+ $
152
+ } = await import("bun");
153
+ await $`bun ${scriptPath} ${args}`;
154
+ } catch (err) {
155
+ console.error(pc.red(`\u2717 Error running script: ${err}`)), process.exit(1);
156
+ }
157
+ }
158
+ var newCommand = defineCommand({
159
+ meta: {
160
+ name: "new",
161
+ description: "Create a new script from template"
162
+ },
163
+ args: {
164
+ path: {
165
+ type: "positional",
166
+ description: "Path for the new script (e.g., ci/test)",
167
+ required: !0
168
+ }
169
+ },
170
+ async run(param) {
171
+ var {
172
+ args
173
+ } = param,
174
+ scriptPath = args.path,
175
+ localDir = getLocalScriptsDir(),
176
+ fullPath = join(localDir, `${scriptPath}.ts`),
177
+ dir = dirname(fullPath);
178
+ existsSync(dir) || mkdirSync(dir, {
179
+ recursive: !0
180
+ }), existsSync(fullPath) && (console.error(pc.red(`\u2717 Script already exists: ${relative(process.cwd(), fullPath)}`)), process.exit(1));
181
+ var template = `#!/usr/bin/env bun
182
+
183
+ /**
184
+ * @description TODO: Add description
185
+ * @args --verbose, --dry-run
186
+ */
187
+
188
+ import { parseArgs } from 'node:util'
189
+
190
+ const { values } = parseArgs({
191
+ args: process.argv.slice(2),
192
+ options: {
193
+ verbose: {
194
+ type: 'boolean',
195
+ short: 'v',
196
+ },
197
+ 'dry-run': {
198
+ type: 'boolean',
199
+ },
200
+ },
201
+ })
202
+
203
+ async function main() {
204
+ console.info('Running ${basename(scriptPath)}...')
205
+
206
+ if (values.verbose) {
207
+ console.info('Verbose mode enabled')
208
+ }
209
+
210
+ if (values['dry-run']) {
211
+ console.info('Dry run mode - no changes will be made')
212
+ }
213
+
214
+ // TODO: Implement your script logic here
215
+ }
216
+
217
+ main().catch(console.error)
218
+ `;
219
+ writeFileSync(fullPath, template), console.info(pc.green(`\u2713 Created new script: ${relative(process.cwd(), fullPath)}`)), console.info(), console.info(pc.dim("Edit the script and update the TODO sections"));
220
+ }
221
+ });
222
+ function getAllScriptFiles(dir) {
223
+ var baseDir = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : dir,
224
+ files = [];
225
+ if (!existsSync(dir)) return files;
226
+ try {
227
+ var entries = readdirSync(dir),
228
+ _iteratorNormalCompletion = !0,
229
+ _didIteratorError = !1,
230
+ _iteratorError = void 0;
231
+ try {
232
+ for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
233
+ var entry = _step.value,
234
+ fullPath = join(dir, entry),
235
+ stat = statSync(fullPath);
236
+ stat.isDirectory() ? files.push(...getAllScriptFiles(fullPath, baseDir)) : (entry.endsWith(".ts") || entry.endsWith(".js") || entry.endsWith(".cjs")) && files.push(relative(baseDir, fullPath).split("\\").join("/"));
237
+ }
238
+ } catch (err) {
239
+ _didIteratorError = !0, _iteratorError = err;
240
+ } finally {
241
+ try {
242
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
243
+ } finally {
244
+ if (_didIteratorError) throw _iteratorError;
245
+ }
246
+ }
247
+ } catch {}
248
+ return files;
249
+ }
250
+ var ejectCommand = defineCommand({
251
+ meta: {
252
+ name: "eject",
253
+ description: "Eject built-in scripts into your project"
254
+ },
255
+ args: {
256
+ yes: {
257
+ type: "boolean",
258
+ description: "Skip confirmations and eject all files",
259
+ default: !1
260
+ }
261
+ },
262
+ async run(param) {
263
+ var {
264
+ args
265
+ } = param,
266
+ cwd = process.cwd(),
267
+ targetScriptsDir = join(cwd, "scripts"),
268
+ sourceScriptsDir = findScriptsPackageRoot();
269
+ console.info(), console.info(pc.bold(pc.cyan("\u2699\uFE0F Eject Scripts"))), console.info(), sourceScriptsDir || (console.error(pc.red("\u2717 Built-in scripts package (@take-out/scripts) not found or not installed")), console.info(), console.info(pc.dim("Install with: bun add -d @take-out/scripts")), process.exit(1)), console.info(pc.dim(`Source: ${sourceScriptsDir}`)), console.info(pc.dim(`Target: ${targetScriptsDir}`)), console.info(), existsSync(targetScriptsDir) || (console.info(pc.yellow("\u26A0 Target scripts directory does not exist, will create it")), mkdirSync(targetScriptsDir, {
270
+ recursive: !0
271
+ }));
272
+ var sourceFiles = getAllScriptFiles(sourceScriptsDir);
273
+ if (sourceFiles.length === 0) {
274
+ console.info(pc.yellow("No script files found in built-in scripts package"));
275
+ return;
276
+ }
277
+ var filesToSync = [],
278
+ stats = {
279
+ new: 0,
280
+ modified: 0,
281
+ identical: 0
282
+ },
283
+ _iteratorNormalCompletion = !0,
284
+ _didIteratorError = !1,
285
+ _iteratorError = void 0;
286
+ try {
287
+ for (var _iterator = sourceFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
288
+ var file = _step.value,
289
+ sourcePath = join(sourceScriptsDir, file),
290
+ targetPath = join(targetScriptsDir, file),
291
+ status = compareFiles(sourcePath, targetPath);
292
+ stats[status]++, filesToSync.push({
293
+ name: file,
294
+ sourcePath,
295
+ targetPath,
296
+ status,
297
+ sourceSize: getFileSize(sourcePath),
298
+ targetSize: getFileSize(targetPath)
299
+ });
300
+ }
301
+ } catch (err) {
302
+ _didIteratorError = !0, _iteratorError = err;
303
+ } finally {
304
+ try {
305
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
306
+ } finally {
307
+ if (_didIteratorError) throw _iteratorError;
308
+ }
309
+ }
310
+ if (console.info(pc.bold("Summary:")), console.info(` ${pc.green(`${stats.new} new`)}`), console.info(` ${pc.yellow(`${stats.modified} modified`)}`), console.info(` ${pc.dim(`${stats.identical} identical`)}`), console.info(), stats.new === 0 && stats.modified === 0) {
311
+ console.info(pc.green("\u2713 All scripts are already up to date!"));
312
+ return;
313
+ }
314
+ var sortOrder = {
315
+ new: 0,
316
+ modified: 1,
317
+ identical: 2
318
+ };
319
+ filesToSync.sort(function (a, b) {
320
+ return sortOrder[a.status] - sortOrder[b.status];
321
+ });
322
+ var syncedCount = 0,
323
+ _iteratorNormalCompletion1 = !0,
324
+ _didIteratorError1 = !1,
325
+ _iteratorError1 = void 0;
326
+ try {
327
+ for (var _iterator1 = filesToSync[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
328
+ var file1 = _step1.value;
329
+ if (args.yes && file1.status !== "identical") {
330
+ var targetDir = dirname(file1.targetPath);
331
+ existsSync(targetDir) || mkdirSync(targetDir, {
332
+ recursive: !0
333
+ });
334
+ var content = readFileSync(file1.sourcePath);
335
+ writeFileSync(file1.targetPath, content), console.info(pc.green(` \u2713 ${file1.name}`)), syncedCount++;
336
+ } else {
337
+ var wasSynced = await syncFileWithConfirmation(file1);
338
+ wasSynced && syncedCount++;
339
+ }
340
+ }
341
+ } catch (err) {
342
+ _didIteratorError1 = !0, _iteratorError1 = err;
343
+ } finally {
344
+ try {
345
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
346
+ } finally {
347
+ if (_didIteratorError1) throw _iteratorError1;
348
+ }
349
+ }
350
+ console.info(), console.info(pc.bold(pc.green(`\u2713 Complete: ${syncedCount} file(s) ejected`))), console.info();
351
+ }
352
+ }),
353
+ runSubCommand = defineCommand({
354
+ meta: {
355
+ name: "run",
356
+ description: "Run a script (for backwards compatibility)"
357
+ },
358
+ args: {
359
+ name: {
360
+ type: "positional",
361
+ description: "Script name",
362
+ required: !0
363
+ }
364
+ },
365
+ async run(param) {
366
+ var {
367
+ args,
368
+ rawArgs
369
+ } = param,
370
+ scriptPath = findScript(args.name);
371
+ scriptPath || (console.error(pc.red(`\u2717 Script not found: ${args.name}`)), console.info(), console.info(pc.dim("Run 'tko script' to see available scripts")), process.exit(1));
372
+ var scriptArgs = rawArgs.slice(rawArgs.indexOf(args.name) + 1);
373
+ await runScript(scriptPath, scriptArgs);
374
+ }
375
+ }),
376
+ scriptCommand = defineCommand({
377
+ meta: {
378
+ name: "script",
379
+ description: "Hybrid script runner with filesystem discovery"
380
+ },
381
+ args: {
382
+ name: {
383
+ type: "positional",
384
+ description: "Script name or category to run/list",
385
+ required: !1
386
+ }
387
+ },
388
+ subCommands: {
389
+ new: newCommand,
390
+ run: runSubCommand,
391
+ eject: ejectCommand
392
+ },
393
+ async run(param) {
394
+ var {
395
+ args,
396
+ rawArgs
397
+ } = param,
398
+ scriptName = args.name || rawArgs[1];
399
+ if (!scriptName) {
400
+ listAllScripts(!1);
401
+ return;
402
+ }
403
+ if (!listCategoryScripts(scriptName)) {
404
+ var scriptPath = findScript(scriptName);
405
+ scriptPath || (console.error(pc.red(`\u2717 Script not found: ${scriptName}`)), console.info(), console.info(pc.dim("Run 'tko script' to see available scripts")), process.exit(1));
406
+ var scriptArgs = rawArgs.slice(rawArgs.indexOf(scriptName) + 1);
407
+ await runScript(scriptPath, scriptArgs);
408
+ }
409
+ }
410
+ });
411
+ function createShorthandCommand(name) {
412
+ return defineCommand({
413
+ meta: {
414
+ name,
415
+ description: "Run script directly"
416
+ },
417
+ args: {
418
+ args: {
419
+ type: "positional",
420
+ description: "Script and arguments",
421
+ required: !1
422
+ }
423
+ },
424
+ async run(param) {
425
+ var {
426
+ rawArgs
427
+ } = param,
428
+ scriptName = rawArgs.length > 0 ? `${name}/${rawArgs[0]}` : name,
429
+ scriptArgs = rawArgs.length > 0 ? ["script", scriptName, ...rawArgs.slice(1)] : ["script", name],
430
+ {
431
+ run
432
+ } = scriptCommand;
433
+ run && (await run({
434
+ args: {
435
+ name: scriptName,
436
+ _: rawArgs.slice(1)
437
+ },
438
+ rawArgs: scriptArgs,
439
+ cmd: scriptCommand
440
+ }));
441
+ }
442
+ });
443
+ }
444
+ export { createShorthandCommand, discoverScripts, findScript, formatScriptList, getLocalScriptsDir, getScriptMetadata, listAllScripts2 as listAllScripts, listCategoryScripts2 as listCategoryScripts, scriptCommand };
445
+ //# sourceMappingURL=script.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["existsSync","readdirSync","statSync","readFileSync","writeFileSync","mkdirSync","homedir","join","relative","dirname","basename","fileURLToPath","defineCommand","pc","listAllScripts","listCategoryScripts","compareFiles","getFileSize","syncFileWithConfirmation","formatScriptList","listAllScripts2","listCategoryScripts2","CACHE_DIR","CACHE_FILE","findScriptsPackageRoot","resolved","import","meta","resolve","packageJsonPath","URL","packageRoot","srcPath","getLocalScriptsDir","process","cwd","extractMetadata","filePath","content","lines","split","slice","metadata","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","line","value","descMatch","match","description","trim","argsMatch","args","map","a","err","return","stat","mtime","mtimeMs","loadCache","JSON","parse","saveCache","cache","recursive","stringify","getScriptMetadata","discoverScripts","dir","baseDir","arguments","length","depth","maxDepth","scripts","Map","entries","entry","fullPath","isDirectory","subScripts","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","name","path","set","endsWith","relativePath","scriptName","replace","findScript","normalizedName","localDir","_i","_iter","ext","localPath","builtInDir","_i1","_iter1","ext1","builtInPath","runScript","scriptPath","console","info","dim","$","error","red","exit","newCommand","type","required","run","param","template","green","getAllScriptFiles","files","push","ejectCommand","yes","default","targetScriptsDir","sourceScriptsDir","bold","cyan","yellow","sourceFiles","filesToSync","stats","new","modified","identical","file","sourcePath","targetPath","status","sourceSize","targetSize","sortOrder","sort","b","syncedCount","file1","targetDir","wasSynced","runSubCommand"],"sources":["../../../src/commands/script.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ import { execSync, spawn, spawnSync } from "node:child_process";
2
+ import { existsSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { dirname, join, parse } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { defineCommand } from "citty";
7
+ import pc from "picocolors";
8
+ import {
9
+ confirmContinue,
10
+ promptSelect,
11
+ showError,
12
+ showInfo,
13
+ showStep,
14
+ showSuccess
15
+ } from "../utils/prompts";
16
+ const UPSTREAM_REPO = "tamagui/takeout3", UPSTREAM_REMOTE = "takeout-upstream", TAKEOUT_FILE = ".takeout";
17
+ function getSyncPrompt() {
18
+ try {
19
+ let packageRoot = dirname(fileURLToPath(import.meta.url));
20
+ for (; packageRoot !== parse(packageRoot).root; ) {
21
+ const pkgPath = join(packageRoot, "package.json");
22
+ if (existsSync(pkgPath) && JSON.parse(readFileSync(pkgPath, "utf-8")).name === "@take-out/cli")
23
+ break;
24
+ packageRoot = dirname(packageRoot);
25
+ }
26
+ const promptPath = join(packageRoot, "docs", "sync-prompt.md");
27
+ return readFileSync(promptPath, "utf-8");
28
+ } catch (error) {
29
+ throw new Error(
30
+ `Could not load sync prompt: ${error instanceof Error ? error.message : "Unknown error"}`
31
+ );
32
+ }
33
+ }
34
+ function checkToolAvailable(command) {
35
+ try {
36
+ const checkCmd = process.platform === "win32" ? "where" : "which";
37
+ return spawnSync(checkCmd, [command]).status === 0;
38
+ } catch {
39
+ return !1;
40
+ }
41
+ }
42
+ function ensureUpstreamRemote() {
43
+ try {
44
+ return execSync("git remote", { encoding: "utf-8" }).includes(UPSTREAM_REMOTE) || execSync(`git remote add ${UPSTREAM_REMOTE} git@github.com:${UPSTREAM_REPO}.git`, {
45
+ stdio: "pipe"
46
+ }), execSync(`git fetch ${UPSTREAM_REMOTE} --quiet`, { stdio: "pipe" }), !0;
47
+ } catch {
48
+ return !1;
49
+ }
50
+ }
51
+ function getUpstreamHeadSha() {
52
+ try {
53
+ return execSync(`git rev-parse ${UPSTREAM_REMOTE}/main`, { encoding: "utf-8" }).trim();
54
+ } catch {
55
+ return null;
56
+ }
57
+ }
58
+ function writeTakeoutConfig(sha) {
59
+ const configPath = join(process.cwd(), TAKEOUT_FILE), date = (/* @__PURE__ */ new Date()).toISOString().split("T")[0], content = `# takeout sync tracking file
60
+ # this file tracks the last synced commit from upstream takeout
61
+ sha=${sha}
62
+ date=${date}
63
+ `;
64
+ writeFileSync(configPath, content);
65
+ }
66
+ const syncCommand = defineCommand({
67
+ meta: {
68
+ name: "sync",
69
+ description: "Sync your fork with the latest Takeout repository"
70
+ },
71
+ async run() {
72
+ showStep("Takeout Repository Sync"), console.info(), showInfo("Takeout sync uses AI to intelligently merge upstream changes"), console.info(), console.info(pc.gray("How it works:")), console.info(pc.gray(" \u2022 Analyzes commits from upstream Takeout repository")), console.info(pc.gray(" \u2022 Determines which changes are relevant to your fork")), console.info(pc.gray(" \u2022 Applies changes while preserving your customizations")), console.info(pc.gray(" \u2022 Handles package ejection automatically")), console.info(pc.gray(" \u2022 Asks for your input when decisions are needed")), console.info();
73
+ const hasClaudeCode = checkToolAvailable("claude"), hasCursor = checkToolAvailable("cursor-agent"), hasAider = checkToolAvailable("aider"), options = [];
74
+ hasClaudeCode && options.push({
75
+ value: "claude-code",
76
+ label: "Claude Code (recommended)",
77
+ hint: "Run sync automatically with Claude Code CLI"
78
+ }), hasCursor && options.push({
79
+ value: "cursor",
80
+ label: "Cursor Agent",
81
+ hint: "Run sync automatically with Cursor CLI"
82
+ }), hasAider && options.push({
83
+ value: "aider",
84
+ label: "Aider",
85
+ hint: "Run sync automatically with Aider CLI"
86
+ }), options.push({
87
+ value: "show-prompt",
88
+ label: "Show prompt (copy & paste manually)",
89
+ hint: "Display the full prompt to use with any LLM"
90
+ });
91
+ const choice = await promptSelect("How would you like to sync?", options);
92
+ if (choice === "cancel") {
93
+ console.info(), showInfo("Sync cancelled");
94
+ return;
95
+ }
96
+ if (console.info(), console.info(pc.dim("Fetching upstream repository...")), !ensureUpstreamRemote()) {
97
+ showError("Failed to fetch upstream repository");
98
+ return;
99
+ }
100
+ const upstreamSha = getUpstreamHeadSha();
101
+ if (!upstreamSha) {
102
+ showError("Failed to get upstream HEAD SHA");
103
+ return;
104
+ }
105
+ console.info(pc.dim(`Target SHA: ${upstreamSha.slice(0, 7)}`)), console.info();
106
+ try {
107
+ const prompt = getSyncPrompt();
108
+ if (choice === "show-prompt")
109
+ console.info(pc.dim("=".repeat(80))), console.info(prompt), console.info(pc.dim("=".repeat(80))), console.info(), showInfo("Copy the prompt above and paste it into your preferred LLM"), console.info(), console.info(pc.gray("Recommended LLMs:")), console.info(pc.gray(" \u2022 Claude Code (best for complex instructions)")), console.info(pc.gray(" \u2022 ChatGPT")), console.info(pc.gray(" \u2022 Cursor")), console.info(pc.gray(" \u2022 Aider")), console.info();
110
+ else if (choice === "claude-code") {
111
+ if (showInfo("Starting Claude Code with sync prompt..."), console.info(), console.info(
112
+ pc.dim(
113
+ "Note: Claude Code will run in headless mode and make changes automatically."
114
+ )
115
+ ), console.info(pc.dim("You will be asked to confirm important decisions.")), console.info(), !await confirmContinue("Continue with Claude Code?", !0)) {
116
+ showInfo("Sync cancelled");
117
+ return;
118
+ }
119
+ const tempDir = mkdtempSync(join(tmpdir(), "takeout-sync-")), promptFile = join(tempDir, "prompt.md");
120
+ writeFileSync(promptFile, prompt);
121
+ const claude = spawn("claude", ["-p", "-"], {
122
+ stdio: ["pipe", "inherit", "inherit"]
123
+ });
124
+ claude.stdin?.write(prompt), claude.stdin?.end(), claude.on("close", (code) => {
125
+ console.info(), code === 0 ? (writeTakeoutConfig(upstreamSha), showSuccess("Sync completed successfully!"), console.info(pc.dim(`Updated .takeout to ${upstreamSha.slice(0, 7)}`))) : showError(`Claude Code exited with code ${code}`);
126
+ });
127
+ } else if (choice === "cursor") {
128
+ if (showInfo("Starting Cursor Agent with sync prompt..."), console.info(), !await confirmContinue("Continue with Cursor?", !0)) {
129
+ showInfo("Sync cancelled");
130
+ return;
131
+ }
132
+ const cursor = spawn("cursor-agent", ["-p", "-"], {
133
+ stdio: ["pipe", "inherit", "inherit"]
134
+ });
135
+ cursor.stdin?.write(prompt), cursor.stdin?.end(), cursor.on("close", (code) => {
136
+ console.info(), code === 0 ? (writeTakeoutConfig(upstreamSha), showSuccess("Sync completed successfully!"), console.info(pc.dim(`Updated .takeout to ${upstreamSha.slice(0, 7)}`))) : showError(`Cursor Agent exited with code ${code}`);
137
+ });
138
+ } else if (choice === "aider") {
139
+ if (showInfo("Starting Aider with sync prompt..."), console.info(), !await confirmContinue("Continue with Aider?", !0)) {
140
+ showInfo("Sync cancelled");
141
+ return;
142
+ }
143
+ const tempDir = mkdtempSync(join(tmpdir(), "takeout-sync-")), promptFile = join(tempDir, "prompt.md");
144
+ writeFileSync(promptFile, prompt), spawn("aider", ["--message-file", promptFile, "--no-stream"], {
145
+ stdio: "inherit"
146
+ }).on("close", (code) => {
147
+ console.info(), code === 0 ? (writeTakeoutConfig(upstreamSha), showSuccess("Sync completed successfully!"), console.info(pc.dim(`Updated .takeout to ${upstreamSha.slice(0, 7)}`))) : showError(`Aider exited with code ${code}`);
148
+ });
149
+ }
150
+ } catch (error) {
151
+ showError(error instanceof Error ? error.message : "Unknown error");
152
+ }
153
+ }
154
+ });
155
+ export {
156
+ syncCommand
157
+ };
158
+ //# sourceMappingURL=sync.js.map