runwork 0.15.1 → 0.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 (404) hide show
  1. package/bundled-types/task-delegation/task-delegation/types.d.ts +6 -0
  2. package/dist/index.js +20237 -116
  3. package/package.json +4 -4
  4. package/dist/__tests__/curl-parser.test.d.ts +0 -1
  5. package/dist/__tests__/curl-parser.test.js +0 -250
  6. package/dist/__tests__/install-scripts.test.d.ts +0 -1
  7. package/dist/__tests__/install-scripts.test.js +0 -280
  8. package/dist/__tests__/types-manager.test.d.ts +0 -1
  9. package/dist/__tests__/types-manager.test.js +0 -89
  10. package/dist/agents/__tests__/chatgpt-registry.test.d.ts +0 -1
  11. package/dist/agents/__tests__/chatgpt-registry.test.js +0 -61
  12. package/dist/agents/__tests__/claude-code-managed-block.test.d.ts +0 -1
  13. package/dist/agents/__tests__/claude-code-managed-block.test.js +0 -105
  14. package/dist/agents/__tests__/claude-code-plugin.test.d.ts +0 -1
  15. package/dist/agents/__tests__/claude-code-plugin.test.js +0 -47
  16. package/dist/agents/__tests__/claude-code-stats.test.d.ts +0 -1
  17. package/dist/agents/__tests__/claude-code-stats.test.js +0 -390
  18. package/dist/agents/__tests__/claude-desktop-memory.test.d.ts +0 -1
  19. package/dist/agents/__tests__/claude-desktop-memory.test.js +0 -154
  20. package/dist/agents/__tests__/claude-desktop-plugin-tree.test.d.ts +0 -1
  21. package/dist/agents/__tests__/claude-desktop-plugin-tree.test.js +0 -161
  22. package/dist/agents/__tests__/claude-desktop-plugin.test.d.ts +0 -1
  23. package/dist/agents/__tests__/claude-desktop-plugin.test.js +0 -117
  24. package/dist/agents/__tests__/claude-desktop-rpm.test.d.ts +0 -1
  25. package/dist/agents/__tests__/claude-desktop-rpm.test.js +0 -126
  26. package/dist/agents/__tests__/claude-desktop-stats.test.d.ts +0 -1
  27. package/dist/agents/__tests__/claude-desktop-stats.test.js +0 -280
  28. package/dist/agents/__tests__/codex-instructions.test.d.ts +0 -1
  29. package/dist/agents/__tests__/codex-instructions.test.js +0 -57
  30. package/dist/agents/__tests__/codex-minimum-permissions.test.d.ts +0 -1
  31. package/dist/agents/__tests__/codex-minimum-permissions.test.js +0 -82
  32. package/dist/agents/__tests__/codex-stats.test.d.ts +0 -1
  33. package/dist/agents/__tests__/codex-stats.test.js +0 -370
  34. package/dist/agents/__tests__/cursor-merge.test.d.ts +0 -1
  35. package/dist/agents/__tests__/cursor-merge.test.js +0 -66
  36. package/dist/agents/__tests__/cursor-stats.test.d.ts +0 -1
  37. package/dist/agents/__tests__/cursor-stats.test.js +0 -183
  38. package/dist/agents/__tests__/defaults-merge.test.d.ts +0 -1
  39. package/dist/agents/__tests__/defaults-merge.test.js +0 -268
  40. package/dist/agents/__tests__/detection.test.d.ts +0 -1
  41. package/dist/agents/__tests__/detection.test.js +0 -89
  42. package/dist/agents/__tests__/graceful-degradation.test.d.ts +0 -1
  43. package/dist/agents/__tests__/graceful-degradation.test.js +0 -129
  44. package/dist/agents/__tests__/instruction-hint.test.d.ts +0 -1
  45. package/dist/agents/__tests__/instruction-hint.test.js +0 -69
  46. package/dist/agents/__tests__/intro-skill.test.d.ts +0 -1
  47. package/dist/agents/__tests__/intro-skill.test.js +0 -193
  48. package/dist/agents/__tests__/schema-validation.test.d.ts +0 -1
  49. package/dist/agents/__tests__/schema-validation.test.js +0 -212
  50. package/dist/agents/__tests__/skill-slug.test.d.ts +0 -1
  51. package/dist/agents/__tests__/skill-slug.test.js +0 -77
  52. package/dist/agents/claude-code.d.ts +0 -59
  53. package/dist/agents/claude-code.js +0 -753
  54. package/dist/agents/claude-desktop-plugin-tree.d.ts +0 -59
  55. package/dist/agents/claude-desktop-plugin-tree.js +0 -143
  56. package/dist/agents/claude-desktop.d.ts +0 -47
  57. package/dist/agents/claude-desktop.js +0 -684
  58. package/dist/agents/cline.d.ts +0 -15
  59. package/dist/agents/cline.js +0 -130
  60. package/dist/agents/codex.d.ts +0 -44
  61. package/dist/agents/codex.js +0 -453
  62. package/dist/agents/conversation-skills.d.ts +0 -18
  63. package/dist/agents/conversation-skills.js +0 -229
  64. package/dist/agents/cursor.d.ts +0 -35
  65. package/dist/agents/cursor.js +0 -294
  66. package/dist/agents/default-config.d.ts +0 -30
  67. package/dist/agents/default-config.js +0 -67
  68. package/dist/agents/defaults-merge.d.ts +0 -87
  69. package/dist/agents/defaults-merge.js +0 -150
  70. package/dist/agents/detect.d.ts +0 -4
  71. package/dist/agents/detect.js +0 -67
  72. package/dist/agents/detection.d.ts +0 -18
  73. package/dist/agents/detection.js +0 -94
  74. package/dist/agents/gemini.d.ts +0 -15
  75. package/dist/agents/gemini.js +0 -122
  76. package/dist/agents/generic-adapter.d.ts +0 -25
  77. package/dist/agents/generic-adapter.js +0 -151
  78. package/dist/agents/intro-skill.d.ts +0 -45
  79. package/dist/agents/intro-skill.js +0 -447
  80. package/dist/agents/registry-data.d.ts +0 -192
  81. package/dist/agents/registry-data.js +0 -669
  82. package/dist/agents/registry.d.ts +0 -13
  83. package/dist/agents/registry.js +0 -36
  84. package/dist/agents/runtime-detection.d.ts +0 -82
  85. package/dist/agents/runtime-detection.js +0 -271
  86. package/dist/agents/session-start-hook.d.ts +0 -37
  87. package/dist/agents/session-start-hook.js +0 -159
  88. package/dist/agents/types.d.ts +0 -171
  89. package/dist/agents/types.js +0 -75
  90. package/dist/agents/utils/instruction-hint.d.ts +0 -21
  91. package/dist/agents/utils/instruction-hint.js +0 -108
  92. package/dist/agents/utils/json-config.d.ts +0 -19
  93. package/dist/agents/utils/json-config.js +0 -69
  94. package/dist/agents/utils/toml-config.d.ts +0 -8
  95. package/dist/agents/utils/toml-config.js +0 -27
  96. package/dist/agents/windsurf.d.ts +0 -14
  97. package/dist/agents/windsurf.js +0 -102
  98. package/dist/api/__tests__/client.test.d.ts +0 -1
  99. package/dist/api/__tests__/client.test.js +0 -272
  100. package/dist/api/client.d.ts +0 -326
  101. package/dist/api/client.js +0 -427
  102. package/dist/auth/__tests__/login-flow.test.d.ts +0 -1
  103. package/dist/auth/__tests__/login-flow.test.js +0 -101
  104. package/dist/auth/__tests__/store.test.d.ts +0 -1
  105. package/dist/auth/__tests__/store.test.js +0 -132
  106. package/dist/auth/login-flow.d.ts +0 -26
  107. package/dist/auth/login-flow.js +0 -137
  108. package/dist/auth/store.d.ts +0 -5
  109. package/dist/auth/store.js +0 -62
  110. package/dist/commands/__tests__/clone-args.test.d.ts +0 -1
  111. package/dist/commands/__tests__/clone-args.test.js +0 -51
  112. package/dist/commands/__tests__/clone-source-result.test.d.ts +0 -1
  113. package/dist/commands/__tests__/clone-source-result.test.js +0 -45
  114. package/dist/commands/__tests__/info-merge.test.d.ts +0 -1
  115. package/dist/commands/__tests__/info-merge.test.js +0 -55
  116. package/dist/commands/__tests__/mcp-entries.test.d.ts +0 -1
  117. package/dist/commands/__tests__/mcp-entries.test.js +0 -48
  118. package/dist/commands/__tests__/setup-persona.test.d.ts +0 -1
  119. package/dist/commands/__tests__/setup-persona.test.js +0 -31
  120. package/dist/commands/__tests__/setup.test.d.ts +0 -1
  121. package/dist/commands/__tests__/setup.test.js +0 -81
  122. package/dist/commands/__tests__/sync-redetect.test.d.ts +0 -1
  123. package/dist/commands/__tests__/sync-redetect.test.js +0 -96
  124. package/dist/commands/__tests__/sync-telemetry.test.d.ts +0 -1
  125. package/dist/commands/__tests__/sync-telemetry.test.js +0 -281
  126. package/dist/commands/__tests__/upgrade.test.d.ts +0 -1
  127. package/dist/commands/__tests__/upgrade.test.js +0 -157
  128. package/dist/commands/agents.d.ts +0 -2
  129. package/dist/commands/agents.js +0 -160
  130. package/dist/commands/api-keys.d.ts +0 -2
  131. package/dist/commands/api-keys.js +0 -95
  132. package/dist/commands/apps.d.ts +0 -2
  133. package/dist/commands/apps.js +0 -82
  134. package/dist/commands/build-plugin.d.ts +0 -2
  135. package/dist/commands/build-plugin.js +0 -135
  136. package/dist/commands/clone.d.ts +0 -60
  137. package/dist/commands/clone.js +0 -271
  138. package/dist/commands/components.d.ts +0 -2
  139. package/dist/commands/components.js +0 -43
  140. package/dist/commands/deploy.d.ts +0 -2
  141. package/dist/commands/deploy.js +0 -279
  142. package/dist/commands/dev.d.ts +0 -11
  143. package/dist/commands/dev.js +0 -1011
  144. package/dist/commands/doctor.d.ts +0 -2
  145. package/dist/commands/doctor.js +0 -230
  146. package/dist/commands/endpoints.d.ts +0 -2
  147. package/dist/commands/endpoints.js +0 -189
  148. package/dist/commands/entities.d.ts +0 -2
  149. package/dist/commands/entities.js +0 -198
  150. package/dist/commands/files.d.ts +0 -2
  151. package/dist/commands/files.js +0 -193
  152. package/dist/commands/inbox.d.ts +0 -11
  153. package/dist/commands/inbox.js +0 -60
  154. package/dist/commands/info.d.ts +0 -178
  155. package/dist/commands/info.js +0 -455
  156. package/dist/commands/init.d.ts +0 -21
  157. package/dist/commands/init.js +0 -185
  158. package/dist/commands/integrations.d.ts +0 -2
  159. package/dist/commands/integrations.js +0 -233
  160. package/dist/commands/login.d.ts +0 -2
  161. package/dist/commands/login.js +0 -44
  162. package/dist/commands/logout.d.ts +0 -2
  163. package/dist/commands/logout.js +0 -13
  164. package/dist/commands/logs.d.ts +0 -2
  165. package/dist/commands/logs.js +0 -232
  166. package/dist/commands/mcp-entries.d.ts +0 -13
  167. package/dist/commands/mcp-entries.js +0 -26
  168. package/dist/commands/mcp.d.ts +0 -2
  169. package/dist/commands/mcp.js +0 -245
  170. package/dist/commands/open.d.ts +0 -2
  171. package/dist/commands/open.js +0 -53
  172. package/dist/commands/resume.d.ts +0 -2
  173. package/dist/commands/resume.js +0 -289
  174. package/dist/commands/save-convo.d.ts +0 -8
  175. package/dist/commands/save-convo.js +0 -20
  176. package/dist/commands/schedules.d.ts +0 -2
  177. package/dist/commands/schedules.js +0 -221
  178. package/dist/commands/setup.d.ts +0 -27
  179. package/dist/commands/setup.js +0 -177
  180. package/dist/commands/share-convo.d.ts +0 -24
  181. package/dist/commands/share-convo.js +0 -167
  182. package/dist/commands/skills.d.ts +0 -2
  183. package/dist/commands/skills.js +0 -352
  184. package/dist/commands/sync-telemetry.d.ts +0 -33
  185. package/dist/commands/sync-telemetry.js +0 -186
  186. package/dist/commands/sync.d.ts +0 -37
  187. package/dist/commands/sync.js +0 -702
  188. package/dist/commands/uninstall.d.ts +0 -2
  189. package/dist/commands/uninstall.js +0 -145
  190. package/dist/commands/upgrade.d.ts +0 -14
  191. package/dist/commands/upgrade.js +0 -217
  192. package/dist/commands/validate.d.ts +0 -2
  193. package/dist/commands/validate.js +0 -89
  194. package/dist/commands/welcome.d.ts +0 -1
  195. package/dist/commands/welcome.js +0 -86
  196. package/dist/commands/workflows.d.ts +0 -2
  197. package/dist/commands/workflows.js +0 -187
  198. package/dist/deploy/__tests__/deploy-state.test.d.ts +0 -1
  199. package/dist/deploy/__tests__/deploy-state.test.js +0 -80
  200. package/dist/deploy/__tests__/deploy-status.test.d.ts +0 -1
  201. package/dist/deploy/__tests__/deploy-status.test.js +0 -41
  202. package/dist/deploy/__tests__/detach-args.test.d.ts +0 -1
  203. package/dist/deploy/__tests__/detach-args.test.js +0 -30
  204. package/dist/deploy/deploy-state.d.ts +0 -36
  205. package/dist/deploy/deploy-state.js +0 -63
  206. package/dist/deploy/deploy-status.d.ts +0 -21
  207. package/dist/deploy/deploy-status.js +0 -36
  208. package/dist/deploy/detach.d.ts +0 -32
  209. package/dist/deploy/detach.js +0 -71
  210. package/dist/dev/__tests__/attach.test.d.ts +0 -1
  211. package/dist/dev/__tests__/attach.test.js +0 -296
  212. package/dist/dev/__tests__/detach.test.d.ts +0 -1
  213. package/dist/dev/__tests__/detach.test.js +0 -404
  214. package/dist/dev/__tests__/preview-url-poller.test.d.ts +0 -1
  215. package/dist/dev/__tests__/preview-url-poller.test.js +0 -149
  216. package/dist/dev/__tests__/session.test.d.ts +0 -1
  217. package/dist/dev/__tests__/session.test.js +0 -446
  218. package/dist/dev/__tests__/startup-sync.test.d.ts +0 -1
  219. package/dist/dev/__tests__/startup-sync.test.js +0 -32
  220. package/dist/dev/__tests__/stop.test.d.ts +0 -1
  221. package/dist/dev/__tests__/stop.test.js +0 -172
  222. package/dist/dev/attach.d.ts +0 -120
  223. package/dist/dev/attach.js +0 -269
  224. package/dist/dev/detach.d.ts +0 -187
  225. package/dist/dev/detach.js +0 -292
  226. package/dist/dev/preview-url-poller.d.ts +0 -35
  227. package/dist/dev/preview-url-poller.js +0 -50
  228. package/dist/dev/session.d.ts +0 -175
  229. package/dist/dev/session.js +0 -258
  230. package/dist/dev/startup-sync.d.ts +0 -23
  231. package/dist/dev/startup-sync.js +0 -14
  232. package/dist/dev/stop.d.ts +0 -52
  233. package/dist/dev/stop.js +0 -101
  234. package/dist/devtools/registry-data.d.ts +0 -46
  235. package/dist/devtools/registry-data.js +0 -40
  236. package/dist/generated/bundled-types.d.ts +0 -1
  237. package/dist/generated/bundled-types.js +0 -46
  238. package/dist/generated/version.d.ts +0 -1
  239. package/dist/generated/version.js +0 -2
  240. package/dist/git/__tests__/auto-commit.test.d.ts +0 -1
  241. package/dist/git/__tests__/auto-commit.test.js +0 -431
  242. package/dist/git/__tests__/classify-sync-error.test.d.ts +0 -1
  243. package/dist/git/__tests__/classify-sync-error.test.js +0 -57
  244. package/dist/git/__tests__/credential-helper-e2e.test.d.ts +0 -21
  245. package/dist/git/__tests__/credential-helper-e2e.test.js +0 -195
  246. package/dist/git/__tests__/credentials.test.d.ts +0 -1
  247. package/dist/git/__tests__/credentials.test.js +0 -141
  248. package/dist/git/__tests__/deploy-guard.test.d.ts +0 -1
  249. package/dist/git/__tests__/deploy-guard.test.js +0 -61
  250. package/dist/git/__tests__/ensure-git-credential-helper.test.d.ts +0 -1
  251. package/dist/git/__tests__/ensure-git-credential-helper.test.js +0 -133
  252. package/dist/git/__tests__/ensure-runwork-remote.test.d.ts +0 -1
  253. package/dist/git/__tests__/ensure-runwork-remote.test.js +0 -109
  254. package/dist/git/__tests__/identity.test.d.ts +0 -1
  255. package/dist/git/__tests__/identity.test.js +0 -146
  256. package/dist/git/__tests__/manifest.test.d.ts +0 -1
  257. package/dist/git/__tests__/manifest.test.js +0 -446
  258. package/dist/git/__tests__/preflight-resolution.test.d.ts +0 -1
  259. package/dist/git/__tests__/preflight-resolution.test.js +0 -366
  260. package/dist/git/__tests__/preflight.test.d.ts +0 -1
  261. package/dist/git/__tests__/preflight.test.js +0 -36
  262. package/dist/git/__tests__/repo-config.test.d.ts +0 -1
  263. package/dist/git/__tests__/repo-config.test.js +0 -26
  264. package/dist/git/__tests__/sync.test.d.ts +0 -1
  265. package/dist/git/__tests__/sync.test.js +0 -405
  266. package/dist/git/auto-commit.d.ts +0 -35
  267. package/dist/git/auto-commit.js +0 -293
  268. package/dist/git/classify-sync-error.d.ts +0 -21
  269. package/dist/git/classify-sync-error.js +0 -111
  270. package/dist/git/credentials.d.ts +0 -75
  271. package/dist/git/credentials.js +0 -164
  272. package/dist/git/critical-files.d.ts +0 -20
  273. package/dist/git/critical-files.js +0 -68
  274. package/dist/git/deploy-guard.d.ts +0 -53
  275. package/dist/git/deploy-guard.js +0 -78
  276. package/dist/git/identity.d.ts +0 -44
  277. package/dist/git/identity.js +0 -133
  278. package/dist/git/preflight.d.ts +0 -57
  279. package/dist/git/preflight.js +0 -276
  280. package/dist/git/remote.d.ts +0 -37
  281. package/dist/git/remote.js +0 -75
  282. package/dist/git/repo-config.d.ts +0 -8
  283. package/dist/git/repo-config.js +0 -29
  284. package/dist/git/sync.d.ts +0 -15
  285. package/dist/git/sync.js +0 -159
  286. package/dist/health/__tests__/checks.test.d.ts +0 -1
  287. package/dist/health/__tests__/checks.test.js +0 -357
  288. package/dist/health/__tests__/cli-distribution-checks.test.d.ts +0 -1
  289. package/dist/health/__tests__/cli-distribution-checks.test.js +0 -196
  290. package/dist/health/__tests__/fix.test.d.ts +0 -1
  291. package/dist/health/__tests__/fix.test.js +0 -72
  292. package/dist/health/__tests__/runner-filter.test.d.ts +0 -1
  293. package/dist/health/__tests__/runner-filter.test.js +0 -61
  294. package/dist/health/checks.d.ts +0 -42
  295. package/dist/health/checks.js +0 -636
  296. package/dist/health/fix.d.ts +0 -22
  297. package/dist/health/fix.js +0 -62
  298. package/dist/health/runner.d.ts +0 -8
  299. package/dist/health/runner.js +0 -47
  300. package/dist/health/types.d.ts +0 -12
  301. package/dist/health/types.js +0 -1
  302. package/dist/index.d.ts +0 -1
  303. package/dist/logs/__tests__/tailer-format.test.d.ts +0 -1
  304. package/dist/logs/__tests__/tailer-format.test.js +0 -43
  305. package/dist/logs/tailer.d.ts +0 -17
  306. package/dist/logs/tailer.js +0 -217
  307. package/dist/sync/__tests__/change-detect.test.d.ts +0 -1
  308. package/dist/sync/__tests__/change-detect.test.js +0 -123
  309. package/dist/sync/__tests__/hash.test.d.ts +0 -1
  310. package/dist/sync/__tests__/hash.test.js +0 -18
  311. package/dist/sync/change-detect.d.ts +0 -19
  312. package/dist/sync/change-detect.js +0 -136
  313. package/dist/sync/conflict-ui.d.ts +0 -5
  314. package/dist/sync/conflict-ui.js +0 -78
  315. package/dist/sync/executor.d.ts +0 -23
  316. package/dist/sync/executor.js +0 -102
  317. package/dist/sync/hash.d.ts +0 -1
  318. package/dist/sync/hash.js +0 -4
  319. package/dist/sync/types.d.ts +0 -24
  320. package/dist/sync/types.js +0 -1
  321. package/dist/template/manifest.d.ts +0 -17
  322. package/dist/template/manifest.js +0 -145
  323. package/dist/tools/types.d.ts +0 -52
  324. package/dist/tools/types.js +0 -8
  325. package/dist/types-manager.d.ts +0 -1
  326. package/dist/types-manager.js +0 -35
  327. package/dist/types.d.ts +0 -349
  328. package/dist/types.js +0 -1
  329. package/dist/ui/__tests__/banner.test.d.ts +0 -1
  330. package/dist/ui/__tests__/banner.test.js +0 -98
  331. package/dist/ui/__tests__/colors.test.d.ts +0 -1
  332. package/dist/ui/__tests__/colors.test.js +0 -22
  333. package/dist/ui/__tests__/keyboard.test.d.ts +0 -1
  334. package/dist/ui/__tests__/keyboard.test.js +0 -34
  335. package/dist/ui/__tests__/status-line.test.d.ts +0 -1
  336. package/dist/ui/__tests__/status-line.test.js +0 -54
  337. package/dist/ui/banner.d.ts +0 -29
  338. package/dist/ui/banner.js +0 -153
  339. package/dist/ui/colors.d.ts +0 -4
  340. package/dist/ui/colors.js +0 -7
  341. package/dist/ui/keyboard.d.ts +0 -12
  342. package/dist/ui/keyboard.js +0 -61
  343. package/dist/ui/status-line.d.ts +0 -6
  344. package/dist/ui/status-line.js +0 -53
  345. package/dist/utils/__tests__/format-error.test.d.ts +0 -1
  346. package/dist/utils/__tests__/format-error.test.js +0 -43
  347. package/dist/utils/__tests__/help-json.test.d.ts +0 -1
  348. package/dist/utils/__tests__/help-json.test.js +0 -39
  349. package/dist/utils/__tests__/http.test.d.ts +0 -1
  350. package/dist/utils/__tests__/http.test.js +0 -381
  351. package/dist/utils/__tests__/ignore-matcher.test.d.ts +0 -1
  352. package/dist/utils/__tests__/ignore-matcher.test.js +0 -205
  353. package/dist/utils/__tests__/output.test.d.ts +0 -1
  354. package/dist/utils/__tests__/output.test.js +0 -38
  355. package/dist/utils/__tests__/prompt.test.d.ts +0 -1
  356. package/dist/utils/__tests__/prompt.test.js +0 -27
  357. package/dist/utils/__tests__/resolve.test.d.ts +0 -1
  358. package/dist/utils/__tests__/resolve.test.js +0 -95
  359. package/dist/utils/__tests__/sqlite.test.d.ts +0 -1
  360. package/dist/utils/__tests__/sqlite.test.js +0 -89
  361. package/dist/utils/agent-guidance.d.ts +0 -47
  362. package/dist/utils/agent-guidance.js +0 -128
  363. package/dist/utils/app-info.d.ts +0 -70
  364. package/dist/utils/app-info.js +0 -167
  365. package/dist/utils/curl-parser.d.ts +0 -12
  366. package/dist/utils/curl-parser.js +0 -162
  367. package/dist/utils/data-input.d.ts +0 -1
  368. package/dist/utils/data-input.js +0 -38
  369. package/dist/utils/format-error.d.ts +0 -10
  370. package/dist/utils/format-error.js +0 -38
  371. package/dist/utils/fs.d.ts +0 -5
  372. package/dist/utils/fs.js +0 -23
  373. package/dist/utils/help-json.d.ts +0 -70
  374. package/dist/utils/help-json.js +0 -88
  375. package/dist/utils/http.d.ts +0 -46
  376. package/dist/utils/http.js +0 -421
  377. package/dist/utils/ignore-matcher.d.ts +0 -47
  378. package/dist/utils/ignore-matcher.js +0 -132
  379. package/dist/utils/output.d.ts +0 -17
  380. package/dist/utils/output.js +0 -27
  381. package/dist/utils/prompt.d.ts +0 -5
  382. package/dist/utils/prompt.js +0 -42
  383. package/dist/utils/resolve.d.ts +0 -12
  384. package/dist/utils/resolve.js +0 -52
  385. package/dist/utils/setup-state.d.ts +0 -3
  386. package/dist/utils/setup-state.js +0 -19
  387. package/dist/utils/sqlite-adapter.d.ts +0 -48
  388. package/dist/utils/sqlite-adapter.js +0 -147
  389. package/dist/utils/sqlite.d.ts +0 -14
  390. package/dist/utils/sqlite.js +0 -14
  391. package/dist/utils/subprocess.d.ts +0 -19
  392. package/dist/utils/subprocess.js +0 -27
  393. package/dist/utils/which.d.ts +0 -14
  394. package/dist/utils/which.js +0 -47
  395. package/dist/utils/zip.d.ts +0 -7
  396. package/dist/utils/zip.js +0 -42
  397. package/dist/validate/__tests__/validate.test.d.ts +0 -1
  398. package/dist/validate/__tests__/validate.test.js +0 -42
  399. package/dist/validate/freshness.d.ts +0 -28
  400. package/dist/validate/freshness.js +0 -48
  401. package/dist/validate/preview.d.ts +0 -21
  402. package/dist/validate/preview.js +0 -39
  403. package/dist/workspace/resolve.d.ts +0 -19
  404. package/dist/workspace/resolve.js +0 -100
package/dist/ui/banner.js DELETED
@@ -1,153 +0,0 @@
1
- import { homedir } from 'os';
2
- import { bold, cyan, dim, green } from './colors.js';
3
- /** Format an absolute path for display, collapsing $HOME to ~. */
4
- function prettyPath(dir) {
5
- const home = homedir();
6
- if (dir === home)
7
- return '~';
8
- if (dir.startsWith(home + '/'))
9
- return '~' + dir.slice(home.length);
10
- return dir;
11
- }
12
- export const SUPPORTED_AGENTS = [
13
- { id: 'codex', name: 'OpenAI Codex', command: 'cd {dir} && codex' },
14
- { id: 'claude-code', name: 'Claude Code', command: 'cd {dir} && claude' },
15
- { id: 'cursor', name: 'Cursor', command: 'cursor {dir}' },
16
- { id: 'claude-desktop', name: 'Claude Desktop', command: 'Open Claude Desktop and add {dir} as a project folder' },
17
- { id: 'antigravity', name: 'Antigravity', command: 'cd {dir} && antigravity' },
18
- ];
19
- export function getAgentCommand(agentId, directory) {
20
- const agent = SUPPORTED_AGENTS.find(a => a.id === agentId);
21
- if (!agent)
22
- return null;
23
- return agent.command.replace(/{dir}/g, directory);
24
- }
25
- export function getAgentGuidance(directory) {
26
- const lines = [
27
- '',
28
- bold('Open in your AI agent:'),
29
- '',
30
- ];
31
- for (const agent of SUPPORTED_AGENTS) {
32
- const cmd = agent.command.replace(/{dir}/g, directory);
33
- lines.push(` ${agent.name.padEnd(18)} ${cyan(cmd)}`);
34
- }
35
- return lines.join('\n');
36
- }
37
- export function getDevBanner(options) {
38
- const lines = [
39
- '',
40
- bold('Runwork Dev'),
41
- '',
42
- ];
43
- if (options.workspaceName) {
44
- lines.push(` Workspace: ${dim(options.workspaceName)}`);
45
- }
46
- lines.push(` App: ${cyan(options.appName)}`, ` Preview: ${green(options.previewUrl)}`, '', dim(' Changes sync automatically. Logs appear below.'), '');
47
- return lines.join('\n');
48
- }
49
- export function getKeyboardHints() {
50
- return dim(' Press: ') +
51
- dim('[') + 'o' + dim(']pen preview ') +
52
- dim('[') + 'a' + dim(']ll logs ') +
53
- dim('[') + 'e' + dim(']vents ') +
54
- dim('[') + 'r' + dim(']untime ') +
55
- dim('[') + 'q' + dim(']uit');
56
- }
57
- /**
58
- * Interactive wizard that asks which AI agent the user wants to use,
59
- * then shows specific instructions for opening this app in that agent.
60
- */
61
- export async function runAgentWizard(directory, configuredAgents) {
62
- // Skip interactive wizard in non-TTY environments (CI, agents)
63
- if (!process.stdout.isTTY) {
64
- console.log(getAgentGuidance(directory));
65
- return;
66
- }
67
- const displayDir = prettyPath(directory);
68
- // If we already know which agents are configured, skip the prompt
69
- if (configuredAgents && configuredAgents.length > 0) {
70
- const knownAgent = SUPPORTED_AGENTS.find(a => configuredAgents.includes(a.id));
71
- if (knownAgent) {
72
- const agentCmd = knownAgent.command.replace(/{dir}/g, displayDir);
73
- console.log('');
74
- console.log(bold('Get started:'));
75
- console.log('');
76
- console.log(` ${dim('1.')} cd ${displayDir} && runwork dev`);
77
- if (knownAgent.id === 'claude-desktop') {
78
- console.log(` ${dim('2.')} ${agentCmd}`);
79
- }
80
- else {
81
- console.log(` ${dim('2.')} ${cyan(agentCmd)} ${dim('(in a second terminal)')}`);
82
- }
83
- console.log('');
84
- return;
85
- }
86
- }
87
- const { select, isCancel } = await import('@clack/prompts');
88
- console.log('');
89
- const result = await select({
90
- message: 'Which AI agent do you use?',
91
- options: SUPPORTED_AGENTS.map(a => ({
92
- value: a.id,
93
- label: a.name,
94
- })),
95
- });
96
- if (isCancel(result)) {
97
- return;
98
- }
99
- const agent = SUPPORTED_AGENTS.find(a => a.id === result);
100
- if (!agent)
101
- return;
102
- const agentCmd = agent.command.replace(/{dir}/g, displayDir);
103
- console.log('');
104
- console.log(bold('Get started:'));
105
- console.log('');
106
- console.log(` ${dim('1.')} cd ${displayDir} && runwork dev`);
107
- if (agent.id === 'claude-desktop') {
108
- console.log(` ${dim('2.')} ${agentCmd}`);
109
- console.log('');
110
- console.log(dim(' Claude Desktop works with project folders. Add your app directory'));
111
- console.log(dim(' as a project and Claude will have full context of your Runwork app.'));
112
- }
113
- else {
114
- console.log(` ${dim('2.')} ${cyan(agentCmd)} ${dim('(in a second terminal)')}`);
115
- }
116
- console.log('');
117
- }
118
- /**
119
- * Returns full info panel (for 'i' key in dev mode) showing
120
- * workspace, app, preview URL, and agent guidance.
121
- */
122
- export function getInfoPanel(options) {
123
- const lines = [
124
- '',
125
- bold('App Info'),
126
- '',
127
- ];
128
- if (options.workspaceName) {
129
- lines.push(` Workspace: ${dim(options.workspaceName)}`);
130
- }
131
- lines.push(` App: ${cyan(options.appName)}`, ` Preview: ${green(options.previewUrl)}`, ` Directory: ${dim(options.directory)}`);
132
- lines.push('', bold('Open in your AI agent:'), '');
133
- for (const agent of SUPPORTED_AGENTS) {
134
- const cmd = agent.command.replace(/{dir}/g, options.directory);
135
- lines.push(` ${agent.name.padEnd(18)} ${cyan(cmd)}`);
136
- }
137
- lines.push('');
138
- return lines.join('\n');
139
- }
140
- export function getWelcomeBanner() {
141
- return [
142
- '',
143
- bold('Welcome to Runwork!'),
144
- '',
145
- ' Runwork lets you build full-stack apps with AI agents like',
146
- ' Claude Code, Cursor, Codex, and more -- running on your machine,',
147
- ' deployed to the edge.',
148
- '',
149
- ' To get started, you need a Runwork account.',
150
- ' We will open your browser to sign up or log in.',
151
- '',
152
- ].join('\n');
153
- }
@@ -1,4 +0,0 @@
1
- import pc from 'picocolors';
2
- export declare const bold: import("picocolors/types").Formatter, dim: import("picocolors/types").Formatter, red: import("picocolors/types").Formatter, green: import("picocolors/types").Formatter, yellow: import("picocolors/types").Formatter, cyan: import("picocolors/types").Formatter, gray: import("picocolors/types").Formatter, italic: import("picocolors/types").Formatter, underline: import("picocolors/types").Formatter, inverse: import("picocolors/types").Formatter;
3
- export { pc };
4
- export declare function stripAnsi(text: string): string;
package/dist/ui/colors.js DELETED
@@ -1,7 +0,0 @@
1
- import pc from 'picocolors';
2
- export const { bold, dim, red, green, yellow, cyan, gray, italic, underline, inverse } = pc;
3
- export { pc };
4
- // eslint-disable-next-line no-control-regex
5
- export function stripAnsi(text) {
6
- return text.replace(/\x1b\[[0-9;]*m/g, '');
7
- }
@@ -1,12 +0,0 @@
1
- export type KeyAction = 'o' | 'p' | 'a' | 'e' | 'r' | 'i' | 's' | 'quit' | null;
2
- /** Parse a raw stdin buffer into a named action. */
3
- export declare function parseKeypress(data: Buffer): KeyAction;
4
- export interface KeyboardListener {
5
- start(handler: (action: KeyAction) => void): void;
6
- stop(): void;
7
- }
8
- /**
9
- * Listens for raw keypresses on stdin.
10
- * Only works when stdin is a TTY. Returns a no-op listener otherwise.
11
- */
12
- export declare function createKeyboardListener(): KeyboardListener;
@@ -1,61 +0,0 @@
1
- /** Parse a raw stdin buffer into a named action. */
2
- export function parseKeypress(data) {
3
- if (data.length === 1) {
4
- const byte = data[0];
5
- if (byte === 0x03)
6
- return 'quit'; // Ctrl+C
7
- const char = String.fromCharCode(byte).toLowerCase();
8
- switch (char) {
9
- case 'o': return 'o';
10
- case 'p': return 'p';
11
- case 'a': return 'a';
12
- case 'e': return 'e';
13
- case 'r': return 'r';
14
- case 'i': return 'i';
15
- // 's' is consumed by `runwork dev attach` to stop the attached
16
- // session. Other commands ignore it. We parse it centrally so the
17
- // raw keypress doesn't leak through as a `null` action.
18
- case 's': return 's';
19
- case 'q': return 'quit';
20
- default: return null;
21
- }
22
- }
23
- return null;
24
- }
25
- /**
26
- * Listens for raw keypresses on stdin.
27
- * Only works when stdin is a TTY. Returns a no-op listener otherwise.
28
- */
29
- export function createKeyboardListener() {
30
- if (!process.stdin.isTTY) {
31
- return { start() { }, stop() { } };
32
- }
33
- let dataHandler = null;
34
- return {
35
- start(handler) {
36
- process.stdin.setRawMode(true);
37
- process.stdin.resume();
38
- dataHandler = (data) => {
39
- const action = parseKeypress(data);
40
- if (action)
41
- handler(action);
42
- };
43
- process.stdin.on('data', dataHandler);
44
- },
45
- stop() {
46
- if (dataHandler) {
47
- process.stdin.removeListener('data', dataHandler);
48
- dataHandler = null;
49
- }
50
- try {
51
- if (process.stdin.isTTY) {
52
- process.stdin.setRawMode(false);
53
- process.stdin.pause();
54
- }
55
- }
56
- catch {
57
- // stdin may already be closed during shutdown
58
- }
59
- },
60
- };
61
- }
@@ -1,6 +0,0 @@
1
- export interface StatusLine {
2
- /** Update with pre-styled text. ANSI colors are preserved in the bar. */
3
- update(text: string): void;
4
- destroy(): void;
5
- }
6
- export declare function createStatusLine(stream: NodeJS.WriteStream): StatusLine;
@@ -1,53 +0,0 @@
1
- import { stripAnsi } from './colors.js';
2
- // ANSI escape helpers for direct use in the bar (not through picocolors,
3
- // since we need to layer colors on top of the background)
4
- const BG_DARK = '\x1b[48;5;236m'; // dark gray background
5
- const RESET = '\x1b[0m';
6
- export function createStatusLine(stream) {
7
- if (!stream.isTTY) {
8
- return { update() { }, destroy() { } };
9
- }
10
- let lastStyled = '';
11
- let lastPlainLen = 0;
12
- let rows = stream.rows || 24;
13
- let cols = stream.columns || 80;
14
- const originalWrite = stream.write.bind(stream);
15
- function setupScrollRegion() {
16
- originalWrite(`\x1b[1;${rows - 1}r`);
17
- originalWrite(`\x1b[${rows - 1};1H`);
18
- }
19
- function renderBar() {
20
- if (!lastStyled)
21
- return;
22
- // Pad with spaces to fill the bar width (using plain length for calculation)
23
- const padding = lastPlainLen < cols
24
- ? ' '.repeat(cols - lastPlainLen)
25
- : '';
26
- // Render: dark background + styled content + padding + reset
27
- originalWrite(`\x1b7\x1b[${rows};1H\x1b[2K${BG_DARK}${lastStyled}${padding}${RESET}\x1b8`);
28
- }
29
- // Handle terminal resize
30
- function onResize() {
31
- rows = stream.rows || 24;
32
- cols = stream.columns || 80;
33
- setupScrollRegion();
34
- renderBar();
35
- }
36
- // Activate
37
- setupScrollRegion();
38
- stream.on('resize', onResize);
39
- return {
40
- update(text) {
41
- lastStyled = ` ${text} `;
42
- lastPlainLen = stripAnsi(lastStyled).length;
43
- renderBar();
44
- },
45
- destroy() {
46
- stream.removeListener('resize', onResize);
47
- // Clear status bar and reset scroll region to full terminal
48
- originalWrite(`\x1b7\x1b[${rows};1H\x1b[2K\x1b8`);
49
- originalWrite(`\x1b[1;${rows}r`);
50
- lastStyled = '';
51
- },
52
- };
53
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,43 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { formatError } from '../format-error.js';
3
- describe('formatError', () => {
4
- it('handles plain Error objects', () => {
5
- expect(formatError(new Error('boom'))).toBe('boom');
6
- });
7
- it('returns "unknown error" for null/undefined', () => {
8
- expect(formatError(null)).toBe('unknown error');
9
- expect(formatError(undefined)).toBe('unknown error');
10
- });
11
- it('extracts stderr buffer from execFileSync-style errors', () => {
12
- const err = Object.assign(new Error('Command failed: git fetch'), {
13
- stderr: Buffer.from('fatal: could not read Username\n'),
14
- });
15
- expect(formatError(err)).toContain('fatal: could not read Username');
16
- });
17
- it('extracts stderr string when not a buffer', () => {
18
- const err = Object.assign(new Error('Command failed'), {
19
- stderr: ' fatal: bad ref ',
20
- });
21
- expect(formatError(err)).toContain('fatal: bad ref');
22
- });
23
- it('falls back to stdout when stderr is empty', () => {
24
- const err = Object.assign(new Error('Command failed'), {
25
- stderr: '',
26
- stdout: Buffer.from('CONFLICT (content): merge conflict in foo'),
27
- });
28
- expect(formatError(err)).toContain('CONFLICT');
29
- });
30
- it('prefixes with errno code when available', () => {
31
- const err = Object.assign(new Error('spawn git ENOENT'), {
32
- code: 'ENOENT',
33
- stderr: 'spawn git ENOENT',
34
- });
35
- const out = formatError(err);
36
- expect(out).toMatch(/^ENOENT:/);
37
- expect(out).toContain('spawn git ENOENT');
38
- });
39
- it('coerces non-Error values to strings', () => {
40
- expect(formatError('a plain string')).toBe('a plain string');
41
- expect(formatError(42)).toBe('42');
42
- });
43
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,39 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { Command } from 'commander';
3
- import { buildCommandHelpJson } from '../help-json.js';
4
- function optByFlags(cmd, flags) {
5
- const json = buildCommandHelpJson(cmd, '1.0.0');
6
- const opt = json.options.find(o => o.flags === flags);
7
- if (!opt)
8
- throw new Error(`option ${flags} not found`);
9
- return opt;
10
- }
11
- describe('help-json option required semantics', () => {
12
- const cmd = new Command('demo')
13
- .option('--workspace <id>', 'workspace id (optional; defaults from credentials)')
14
- .option('--flag', 'a boolean flag')
15
- .option('--maybe [value]', 'an optional value')
16
- .requiredOption('--token <t>', 'a genuinely required option');
17
- it('marks a value-taking-but-optional option as NOT required (the --workspace bug)', () => {
18
- const o = optByFlags(cmd, '--workspace <id>');
19
- expect(o.required).toBe(false); // the option itself is not mandatory
20
- expect(o.valueRequired).toBe(true); // but its value is required when present
21
- expect(o.optional).toBe(false);
22
- });
23
- it('marks a boolean flag as neither required nor value-required', () => {
24
- const o = optByFlags(cmd, '--flag');
25
- expect(o.required).toBe(false);
26
- expect(o.valueRequired).toBe(false);
27
- });
28
- it('marks an optional-value option correctly', () => {
29
- const o = optByFlags(cmd, '--maybe [value]');
30
- expect(o.required).toBe(false);
31
- expect(o.valueRequired).toBe(false);
32
- expect(o.optional).toBe(true);
33
- });
34
- it('marks a genuinely mandatory option as required AND value-required', () => {
35
- const o = optByFlags(cmd, '--token <t>');
36
- expect(o.required).toBe(true);
37
- expect(o.valueRequired).toBe(true);
38
- });
39
- });
@@ -1 +0,0 @@
1
- export {};