workos 0.18.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (835) hide show
  1. package/README.md +4 -783
  2. package/bin/workos.js +44 -0
  3. package/package.json +18 -107
  4. package/LICENSE +0 -47
  5. package/dist/bin.d.ts +0 -2
  6. package/dist/bin.js +0 -1711
  7. package/dist/bin.js.map +0 -1
  8. package/dist/check-coverage.ts +0 -237
  9. package/dist/cli.config.d.ts +0 -88
  10. package/dist/cli.config.js +0 -110
  11. package/dist/cli.config.js.map +0 -1
  12. package/dist/commands/api/catalog.d.ts +0 -23
  13. package/dist/commands/api/catalog.js +0 -97
  14. package/dist/commands/api/catalog.js.map +0 -1
  15. package/dist/commands/api/format.d.ts +0 -5
  16. package/dist/commands/api/format.js +0 -46
  17. package/dist/commands/api/format.js.map +0 -1
  18. package/dist/commands/api/index.d.ts +0 -15
  19. package/dist/commands/api/index.js +0 -205
  20. package/dist/commands/api/index.js.map +0 -1
  21. package/dist/commands/api/interactive.d.ts +0 -3
  22. package/dist/commands/api/interactive.js +0 -133
  23. package/dist/commands/api/interactive.js.map +0 -1
  24. package/dist/commands/api/request.d.ts +0 -14
  25. package/dist/commands/api/request.js +0 -38
  26. package/dist/commands/api/request.js.map +0 -1
  27. package/dist/commands/api-key-mgmt.d.ts +0 -16
  28. package/dist/commands/api-key-mgmt.js +0 -96
  29. package/dist/commands/api-key-mgmt.js.map +0 -1
  30. package/dist/commands/audit-log.d.ts +0 -26
  31. package/dist/commands/audit-log.js +0 -155
  32. package/dist/commands/audit-log.js.map +0 -1
  33. package/dist/commands/auth-status.d.ts +0 -1
  34. package/dist/commands/auth-status.js +0 -57
  35. package/dist/commands/auth-status.js.map +0 -1
  36. package/dist/commands/claim.d.ts +0 -11
  37. package/dist/commands/claim.js +0 -131
  38. package/dist/commands/claim.js.map +0 -1
  39. package/dist/commands/config.d.ts +0 -3
  40. package/dist/commands/config.js +0 -54
  41. package/dist/commands/config.js.map +0 -1
  42. package/dist/commands/connection.d.ts +0 -13
  43. package/dist/commands/connection.js +0 -96
  44. package/dist/commands/connection.js.map +0 -1
  45. package/dist/commands/debug-sso.d.ts +0 -1
  46. package/dist/commands/debug-sso.js +0 -78
  47. package/dist/commands/debug-sso.js.map +0 -1
  48. package/dist/commands/debug-sync.d.ts +0 -1
  49. package/dist/commands/debug-sync.js +0 -102
  50. package/dist/commands/debug-sync.js.map +0 -1
  51. package/dist/commands/debug.d.ts +0 -28
  52. package/dist/commands/debug.js +0 -406
  53. package/dist/commands/debug.js.map +0 -1
  54. package/dist/commands/dev.d.ts +0 -23
  55. package/dist/commands/dev.js +0 -145
  56. package/dist/commands/dev.js.map +0 -1
  57. package/dist/commands/directory.d.ts +0 -27
  58. package/dist/commands/directory.js +0 -176
  59. package/dist/commands/directory.js.map +0 -1
  60. package/dist/commands/doctor.d.ts +0 -12
  61. package/dist/commands/doctor.js +0 -41
  62. package/dist/commands/doctor.js.map +0 -1
  63. package/dist/commands/emulate.d.ts +0 -6
  64. package/dist/commands/emulate.js +0 -68
  65. package/dist/commands/emulate.js.map +0 -1
  66. package/dist/commands/env.d.ts +0 -9
  67. package/dist/commands/env.js +0 -227
  68. package/dist/commands/env.js.map +0 -1
  69. package/dist/commands/event.d.ts +0 -9
  70. package/dist/commands/event.js +0 -43
  71. package/dist/commands/event.js.map +0 -1
  72. package/dist/commands/feature-flag.d.ts +0 -12
  73. package/dist/commands/feature-flag.js +0 -96
  74. package/dist/commands/feature-flag.js.map +0 -1
  75. package/dist/commands/install-skill.d.ts +0 -85
  76. package/dist/commands/install-skill.js +0 -332
  77. package/dist/commands/install-skill.js.map +0 -1
  78. package/dist/commands/install.d.ts +0 -6
  79. package/dist/commands/install.js +0 -56
  80. package/dist/commands/install.js.map +0 -1
  81. package/dist/commands/invitation.d.ts +0 -19
  82. package/dist/commands/invitation.js +0 -94
  83. package/dist/commands/invitation.js.map +0 -1
  84. package/dist/commands/list-skills.d.ts +0 -4
  85. package/dist/commands/list-skills.js +0 -52
  86. package/dist/commands/list-skills.js.map +0 -1
  87. package/dist/commands/login.d.ts +0 -22
  88. package/dist/commands/login.js +0 -184
  89. package/dist/commands/login.js.map +0 -1
  90. package/dist/commands/logout.d.ts +0 -1
  91. package/dist/commands/logout.js +0 -17
  92. package/dist/commands/logout.js.map +0 -1
  93. package/dist/commands/mcp.d.ts +0 -14
  94. package/dist/commands/mcp.js +0 -108
  95. package/dist/commands/mcp.js.map +0 -1
  96. package/dist/commands/membership.d.ts +0 -20
  97. package/dist/commands/membership.js +0 -129
  98. package/dist/commands/membership.js.map +0 -1
  99. package/dist/commands/migrations.d.ts +0 -2
  100. package/dist/commands/migrations.js +0 -49
  101. package/dist/commands/migrations.js.map +0 -1
  102. package/dist/commands/onboard-user.d.ts +0 -7
  103. package/dist/commands/onboard-user.js +0 -61
  104. package/dist/commands/onboard-user.js.map +0 -1
  105. package/dist/commands/org-domain.d.ts +0 -4
  106. package/dist/commands/org-domain.js +0 -45
  107. package/dist/commands/org-domain.js.map +0 -1
  108. package/dist/commands/organization.d.ts +0 -14
  109. package/dist/commands/organization.js +0 -103
  110. package/dist/commands/organization.js.map +0 -1
  111. package/dist/commands/permission.d.ts +0 -20
  112. package/dist/commands/permission.js +0 -93
  113. package/dist/commands/permission.js.map +0 -1
  114. package/dist/commands/portal.d.ts +0 -7
  115. package/dist/commands/portal.js +0 -26
  116. package/dist/commands/portal.js.map +0 -1
  117. package/dist/commands/role.d.ts +0 -17
  118. package/dist/commands/role.js +0 -122
  119. package/dist/commands/role.js.map +0 -1
  120. package/dist/commands/seed.d.ts +0 -6
  121. package/dist/commands/seed.js +0 -297
  122. package/dist/commands/seed.js.map +0 -1
  123. package/dist/commands/session.d.ts +0 -8
  124. package/dist/commands/session.js +0 -63
  125. package/dist/commands/session.js.map +0 -1
  126. package/dist/commands/setup-org.d.ts +0 -6
  127. package/dist/commands/setup-org.js +0 -99
  128. package/dist/commands/setup-org.js.map +0 -1
  129. package/dist/commands/telemetry.d.ts +0 -3
  130. package/dist/commands/telemetry.js +0 -88
  131. package/dist/commands/telemetry.js.map +0 -1
  132. package/dist/commands/uninstall-skill.d.ts +0 -11
  133. package/dist/commands/uninstall-skill.js +0 -117
  134. package/dist/commands/uninstall-skill.js.map +0 -1
  135. package/dist/commands/user.d.ts +0 -19
  136. package/dist/commands/user.js +0 -92
  137. package/dist/commands/user.js.map +0 -1
  138. package/dist/commands/vault-run.d.ts +0 -13
  139. package/dist/commands/vault-run.js +0 -194
  140. package/dist/commands/vault-run.js.map +0 -1
  141. package/dist/commands/vault.d.ts +0 -25
  142. package/dist/commands/vault.js +0 -153
  143. package/dist/commands/vault.js.map +0 -1
  144. package/dist/commands/webhook.d.ts +0 -3
  145. package/dist/commands/webhook.js +0 -92
  146. package/dist/commands/webhook.js.map +0 -1
  147. package/dist/craft-pre-release.sh +0 -10
  148. package/dist/dashboard/components/AnimatedLogo.d.ts +0 -8
  149. package/dist/dashboard/components/AnimatedLogo.js +0 -16
  150. package/dist/dashboard/components/AnimatedLogo.js.map +0 -1
  151. package/dist/dashboard/components/CompletionView.d.ts +0 -13
  152. package/dist/dashboard/components/CompletionView.js +0 -25
  153. package/dist/dashboard/components/CompletionView.js.map +0 -1
  154. package/dist/dashboard/components/ConfirmPrompt.d.ts +0 -9
  155. package/dist/dashboard/components/ConfirmPrompt.js +0 -25
  156. package/dist/dashboard/components/ConfirmPrompt.js.map +0 -1
  157. package/dist/dashboard/components/CredentialsForm.d.ts +0 -10
  158. package/dist/dashboard/components/CredentialsForm.js +0 -47
  159. package/dist/dashboard/components/CredentialsForm.js.map +0 -1
  160. package/dist/dashboard/components/Dashboard.d.ts +0 -3
  161. package/dist/dashboard/components/Dashboard.js +0 -100
  162. package/dist/dashboard/components/Dashboard.js.map +0 -1
  163. package/dist/dashboard/components/DashboardLayout.d.ts +0 -24
  164. package/dist/dashboard/components/DashboardLayout.js +0 -25
  165. package/dist/dashboard/components/DashboardLayout.js.map +0 -1
  166. package/dist/dashboard/components/DiffPanel.d.ts +0 -9
  167. package/dist/dashboard/components/DiffPanel.js +0 -136
  168. package/dist/dashboard/components/DiffPanel.js.map +0 -1
  169. package/dist/dashboard/components/InlinePrompt.d.ts +0 -8
  170. package/dist/dashboard/components/InlinePrompt.js +0 -19
  171. package/dist/dashboard/components/InlinePrompt.js.map +0 -1
  172. package/dist/dashboard/components/OutputPanel.d.ts +0 -10
  173. package/dist/dashboard/components/OutputPanel.js +0 -100
  174. package/dist/dashboard/components/OutputPanel.js.map +0 -1
  175. package/dist/dashboard/components/Panel.d.ts +0 -12
  176. package/dist/dashboard/components/Panel.js +0 -6
  177. package/dist/dashboard/components/Panel.js.map +0 -1
  178. package/dist/dashboard/components/TextInput.d.ts +0 -13
  179. package/dist/dashboard/components/TextInput.js +0 -57
  180. package/dist/dashboard/components/TextInput.js.map +0 -1
  181. package/dist/dashboard/components/WelcomeArt.d.ts +0 -2
  182. package/dist/dashboard/components/WelcomeArt.js +0 -9
  183. package/dist/dashboard/components/WelcomeArt.js.map +0 -1
  184. package/dist/dashboard/hooks/useAnimation.d.ts +0 -7
  185. package/dist/dashboard/hooks/useAnimation.js +0 -24
  186. package/dist/dashboard/hooks/useAnimation.js.map +0 -1
  187. package/dist/dashboard/hooks/useKeyboard.d.ts +0 -8
  188. package/dist/dashboard/hooks/useKeyboard.js +0 -18
  189. package/dist/dashboard/hooks/useKeyboard.js.map +0 -1
  190. package/dist/dashboard/hooks/useTerminalSize.d.ts +0 -8
  191. package/dist/dashboard/hooks/useTerminalSize.js +0 -23
  192. package/dist/dashboard/hooks/useTerminalSize.js.map +0 -1
  193. package/dist/dashboard/index.d.ts +0 -6
  194. package/dist/dashboard/index.js +0 -36
  195. package/dist/dashboard/index.js.map +0 -1
  196. package/dist/dashboard/lib/diff-utils.d.ts +0 -21
  197. package/dist/dashboard/lib/diff-utils.js +0 -271
  198. package/dist/dashboard/lib/diff-utils.js.map +0 -1
  199. package/dist/dashboard/lib/logo-frames.d.ts +0 -20
  200. package/dist/dashboard/lib/logo-frames.js +0 -109
  201. package/dist/dashboard/lib/logo-frames.js.map +0 -1
  202. package/dist/dashboard/lib/welcome-art.d.ts +0 -1
  203. package/dist/dashboard/lib/welcome-art.js +0 -5
  204. package/dist/dashboard/lib/welcome-art.js.map +0 -1
  205. package/dist/dashboard/types.d.ts +0 -5
  206. package/dist/dashboard/types.js +0 -2
  207. package/dist/dashboard/types.js.map +0 -1
  208. package/dist/doctor/agent-prompt.d.ts +0 -10
  209. package/dist/doctor/agent-prompt.js +0 -190
  210. package/dist/doctor/agent-prompt.js.map +0 -1
  211. package/dist/doctor/checks/ai-analysis.d.ts +0 -9
  212. package/dist/doctor/checks/ai-analysis.js +0 -124
  213. package/dist/doctor/checks/ai-analysis.js.map +0 -1
  214. package/dist/doctor/checks/auth-patterns.d.ts +0 -2
  215. package/dist/doctor/checks/auth-patterns.js +0 -569
  216. package/dist/doctor/checks/auth-patterns.js.map +0 -1
  217. package/dist/doctor/checks/connectivity.d.ts +0 -2
  218. package/dist/doctor/checks/connectivity.js +0 -35
  219. package/dist/doctor/checks/connectivity.js.map +0 -1
  220. package/dist/doctor/checks/dashboard.d.ts +0 -3
  221. package/dist/doctor/checks/dashboard.js +0 -123
  222. package/dist/doctor/checks/dashboard.js.map +0 -1
  223. package/dist/doctor/checks/environment.d.ts +0 -2
  224. package/dist/doctor/checks/environment.js +0 -86
  225. package/dist/doctor/checks/environment.js.map +0 -1
  226. package/dist/doctor/checks/framework.d.ts +0 -2
  227. package/dist/doctor/checks/framework.js +0 -94
  228. package/dist/doctor/checks/framework.js.map +0 -1
  229. package/dist/doctor/checks/host-execution.d.ts +0 -2
  230. package/dist/doctor/checks/host-execution.js +0 -21
  231. package/dist/doctor/checks/host-execution.js.map +0 -1
  232. package/dist/doctor/checks/language.d.ts +0 -6
  233. package/dist/doctor/checks/language.js +0 -104
  234. package/dist/doctor/checks/language.js.map +0 -1
  235. package/dist/doctor/checks/mcp.d.ts +0 -15
  236. package/dist/doctor/checks/mcp.js +0 -34
  237. package/dist/doctor/checks/mcp.js.map +0 -1
  238. package/dist/doctor/checks/runtime.d.ts +0 -2
  239. package/dist/doctor/checks/runtime.js +0 -20
  240. package/dist/doctor/checks/runtime.js.map +0 -1
  241. package/dist/doctor/checks/sdk.d.ts +0 -2
  242. package/dist/doctor/checks/sdk.js +0 -192
  243. package/dist/doctor/checks/sdk.js.map +0 -1
  244. package/dist/doctor/checks/skills.d.ts +0 -9
  245. package/dist/doctor/checks/skills.js +0 -84
  246. package/dist/doctor/checks/skills.js.map +0 -1
  247. package/dist/doctor/clipboard.d.ts +0 -1
  248. package/dist/doctor/clipboard.js +0 -43
  249. package/dist/doctor/clipboard.js.map +0 -1
  250. package/dist/doctor/index.d.ts +0 -26
  251. package/dist/doctor/index.js +0 -182
  252. package/dist/doctor/index.js.map +0 -1
  253. package/dist/doctor/issues.d.ts +0 -63
  254. package/dist/doctor/issues.js +0 -198
  255. package/dist/doctor/issues.js.map +0 -1
  256. package/dist/doctor/json-output.d.ts +0 -2
  257. package/dist/doctor/json-output.js +0 -4
  258. package/dist/doctor/json-output.js.map +0 -1
  259. package/dist/doctor/output.d.ts +0 -7
  260. package/dist/doctor/output.js +0 -288
  261. package/dist/doctor/output.js.map +0 -1
  262. package/dist/doctor/types.d.ts +0 -203
  263. package/dist/doctor/types.js +0 -2
  264. package/dist/doctor/types.js.map +0 -1
  265. package/dist/emulate/core/id.d.ts +0 -48
  266. package/dist/emulate/core/id.js +0 -73
  267. package/dist/emulate/core/id.js.map +0 -1
  268. package/dist/emulate/core/index.d.ts +0 -8
  269. package/dist/emulate/core/index.js +0 -8
  270. package/dist/emulate/core/index.js.map +0 -1
  271. package/dist/emulate/core/jwt.d.ts +0 -28
  272. package/dist/emulate/core/jwt.js +0 -78
  273. package/dist/emulate/core/jwt.js.map +0 -1
  274. package/dist/emulate/core/middleware/auth.d.ts +0 -15
  275. package/dist/emulate/core/middleware/auth.js +0 -17
  276. package/dist/emulate/core/middleware/auth.js.map +0 -1
  277. package/dist/emulate/core/middleware/error-handler.d.ts +0 -22
  278. package/dist/emulate/core/middleware/error-handler.js +0 -72
  279. package/dist/emulate/core/middleware/error-handler.js.map +0 -1
  280. package/dist/emulate/core/pagination.d.ts +0 -27
  281. package/dist/emulate/core/pagination.js +0 -43
  282. package/dist/emulate/core/pagination.js.map +0 -1
  283. package/dist/emulate/core/plugin.d.ts +0 -15
  284. package/dist/emulate/core/plugin.js +0 -2
  285. package/dist/emulate/core/plugin.js.map +0 -1
  286. package/dist/emulate/core/server.d.ts +0 -17
  287. package/dist/emulate/core/server.js +0 -90
  288. package/dist/emulate/core/server.js.map +0 -1
  289. package/dist/emulate/core/store.d.ts +0 -44
  290. package/dist/emulate/core/store.js +0 -169
  291. package/dist/emulate/core/store.js.map +0 -1
  292. package/dist/emulate/index.d.ts +0 -25
  293. package/dist/emulate/index.js +0 -47
  294. package/dist/emulate/index.js.map +0 -1
  295. package/dist/emulate/workos/constants.d.ts +0 -56
  296. package/dist/emulate/workos/constants.js +0 -56
  297. package/dist/emulate/workos/constants.js.map +0 -1
  298. package/dist/emulate/workos/entities.d.ts +0 -360
  299. package/dist/emulate/workos/entities.js +0 -2
  300. package/dist/emulate/workos/entities.js.map +0 -1
  301. package/dist/emulate/workos/event-bus.d.ts +0 -17
  302. package/dist/emulate/workos/event-bus.js +0 -70
  303. package/dist/emulate/workos/event-bus.js.map +0 -1
  304. package/dist/emulate/workos/helpers.d.ts +0 -72
  305. package/dist/emulate/workos/helpers.js +0 -211
  306. package/dist/emulate/workos/helpers.js.map +0 -1
  307. package/dist/emulate/workos/index.d.ts +0 -93
  308. package/dist/emulate/workos/index.js +0 -326
  309. package/dist/emulate/workos/index.js.map +0 -1
  310. package/dist/emulate/workos/role-helpers.d.ts +0 -21
  311. package/dist/emulate/workos/role-helpers.js +0 -130
  312. package/dist/emulate/workos/role-helpers.js.map +0 -1
  313. package/dist/emulate/workos/routes/api-keys.d.ts +0 -2
  314. package/dist/emulate/workos/routes/api-keys.js +0 -32
  315. package/dist/emulate/workos/routes/api-keys.js.map +0 -1
  316. package/dist/emulate/workos/routes/audit-logs.d.ts +0 -2
  317. package/dist/emulate/workos/routes/audit-logs.js +0 -104
  318. package/dist/emulate/workos/routes/audit-logs.js.map +0 -1
  319. package/dist/emulate/workos/routes/auth-challenges.d.ts +0 -2
  320. package/dist/emulate/workos/routes/auth-challenges.js +0 -51
  321. package/dist/emulate/workos/routes/auth-challenges.js.map +0 -1
  322. package/dist/emulate/workos/routes/auth-factors.d.ts +0 -2
  323. package/dist/emulate/workos/routes/auth-factors.js +0 -51
  324. package/dist/emulate/workos/routes/auth-factors.js.map +0 -1
  325. package/dist/emulate/workos/routes/auth.d.ts +0 -2
  326. package/dist/emulate/workos/routes/auth.js +0 -350
  327. package/dist/emulate/workos/routes/auth.js.map +0 -1
  328. package/dist/emulate/workos/routes/authorization-checks.d.ts +0 -10
  329. package/dist/emulate/workos/routes/authorization-checks.js +0 -123
  330. package/dist/emulate/workos/routes/authorization-checks.js.map +0 -1
  331. package/dist/emulate/workos/routes/authorization-org-roles.d.ts +0 -2
  332. package/dist/emulate/workos/routes/authorization-org-roles.js +0 -64
  333. package/dist/emulate/workos/routes/authorization-org-roles.js.map +0 -1
  334. package/dist/emulate/workos/routes/authorization-permissions.d.ts +0 -2
  335. package/dist/emulate/workos/routes/authorization-permissions.js +0 -67
  336. package/dist/emulate/workos/routes/authorization-permissions.js.map +0 -1
  337. package/dist/emulate/workos/routes/authorization-resources.d.ts +0 -2
  338. package/dist/emulate/workos/routes/authorization-resources.js +0 -117
  339. package/dist/emulate/workos/routes/authorization-resources.js.map +0 -1
  340. package/dist/emulate/workos/routes/authorization-roles.d.ts +0 -2
  341. package/dist/emulate/workos/routes/authorization-roles.js +0 -13
  342. package/dist/emulate/workos/routes/authorization-roles.js.map +0 -1
  343. package/dist/emulate/workos/routes/config.d.ts +0 -2
  344. package/dist/emulate/workos/routes/config.js +0 -57
  345. package/dist/emulate/workos/routes/config.js.map +0 -1
  346. package/dist/emulate/workos/routes/connect.d.ts +0 -2
  347. package/dist/emulate/workos/routes/connect.js +0 -65
  348. package/dist/emulate/workos/routes/connect.js.map +0 -1
  349. package/dist/emulate/workos/routes/connections.d.ts +0 -2
  350. package/dist/emulate/workos/routes/connections.js +0 -73
  351. package/dist/emulate/workos/routes/connections.js.map +0 -1
  352. package/dist/emulate/workos/routes/data-integrations.d.ts +0 -2
  353. package/dist/emulate/workos/routes/data-integrations.js +0 -55
  354. package/dist/emulate/workos/routes/data-integrations.js.map +0 -1
  355. package/dist/emulate/workos/routes/directories.d.ts +0 -2
  356. package/dist/emulate/workos/routes/directories.js +0 -90
  357. package/dist/emulate/workos/routes/directories.js.map +0 -1
  358. package/dist/emulate/workos/routes/email-verification.d.ts +0 -2
  359. package/dist/emulate/workos/routes/email-verification.js +0 -49
  360. package/dist/emulate/workos/routes/email-verification.js.map +0 -1
  361. package/dist/emulate/workos/routes/events.d.ts +0 -2
  362. package/dist/emulate/workos/routes/events.js +0 -18
  363. package/dist/emulate/workos/routes/events.js.map +0 -1
  364. package/dist/emulate/workos/routes/feature-flags.d.ts +0 -2
  365. package/dist/emulate/workos/routes/feature-flags.js +0 -103
  366. package/dist/emulate/workos/routes/feature-flags.js.map +0 -1
  367. package/dist/emulate/workos/routes/invitations.d.ts +0 -2
  368. package/dist/emulate/workos/routes/invitations.js +0 -122
  369. package/dist/emulate/workos/routes/invitations.js.map +0 -1
  370. package/dist/emulate/workos/routes/legacy-mfa.d.ts +0 -2
  371. package/dist/emulate/workos/routes/legacy-mfa.js +0 -75
  372. package/dist/emulate/workos/routes/legacy-mfa.js.map +0 -1
  373. package/dist/emulate/workos/routes/magic-auth.d.ts +0 -2
  374. package/dist/emulate/workos/routes/magic-auth.js +0 -32
  375. package/dist/emulate/workos/routes/magic-auth.js.map +0 -1
  376. package/dist/emulate/workos/routes/memberships.d.ts +0 -2
  377. package/dist/emulate/workos/routes/memberships.js +0 -114
  378. package/dist/emulate/workos/routes/memberships.js.map +0 -1
  379. package/dist/emulate/workos/routes/organization-domains.d.ts +0 -2
  380. package/dist/emulate/workos/routes/organization-domains.js +0 -58
  381. package/dist/emulate/workos/routes/organization-domains.js.map +0 -1
  382. package/dist/emulate/workos/routes/organizations.d.ts +0 -2
  383. package/dist/emulate/workos/routes/organizations.js +0 -131
  384. package/dist/emulate/workos/routes/organizations.js.map +0 -1
  385. package/dist/emulate/workos/routes/password-reset.d.ts +0 -2
  386. package/dist/emulate/workos/routes/password-reset.js +0 -61
  387. package/dist/emulate/workos/routes/password-reset.js.map +0 -1
  388. package/dist/emulate/workos/routes/pipes.d.ts +0 -2
  389. package/dist/emulate/workos/routes/pipes.js +0 -82
  390. package/dist/emulate/workos/routes/pipes.js.map +0 -1
  391. package/dist/emulate/workos/routes/portal.d.ts +0 -2
  392. package/dist/emulate/workos/routes/portal.js +0 -18
  393. package/dist/emulate/workos/routes/portal.js.map +0 -1
  394. package/dist/emulate/workos/routes/radar.d.ts +0 -2
  395. package/dist/emulate/workos/routes/radar.js +0 -41
  396. package/dist/emulate/workos/routes/radar.js.map +0 -1
  397. package/dist/emulate/workos/routes/sessions.d.ts +0 -2
  398. package/dist/emulate/workos/routes/sessions.js +0 -51
  399. package/dist/emulate/workos/routes/sessions.js.map +0 -1
  400. package/dist/emulate/workos/routes/sso.d.ts +0 -2
  401. package/dist/emulate/workos/routes/sso.js +0 -161
  402. package/dist/emulate/workos/routes/sso.js.map +0 -1
  403. package/dist/emulate/workos/routes/user-features.d.ts +0 -2
  404. package/dist/emulate/workos/routes/user-features.js +0 -50
  405. package/dist/emulate/workos/routes/user-features.js.map +0 -1
  406. package/dist/emulate/workos/routes/users.d.ts +0 -2
  407. package/dist/emulate/workos/routes/users.js +0 -129
  408. package/dist/emulate/workos/routes/users.js.map +0 -1
  409. package/dist/emulate/workos/routes/webhook-endpoints.d.ts +0 -2
  410. package/dist/emulate/workos/routes/webhook-endpoints.js +0 -67
  411. package/dist/emulate/workos/routes/webhook-endpoints.js.map +0 -1
  412. package/dist/emulate/workos/routes/widgets.d.ts +0 -2
  413. package/dist/emulate/workos/routes/widgets.js +0 -27
  414. package/dist/emulate/workos/routes/widgets.js.map +0 -1
  415. package/dist/emulate/workos/store.d.ts +0 -48
  416. package/dist/emulate/workos/store.js +0 -102
  417. package/dist/emulate/workos/store.js.map +0 -1
  418. package/dist/emulate/workos/webhook-signer.d.ts +0 -1
  419. package/dist/emulate/workos/webhook-signer.js +0 -8
  420. package/dist/emulate/workos/webhook-signer.js.map +0 -1
  421. package/dist/gen-routes-lib.spec.ts +0 -659
  422. package/dist/gen-routes-lib.ts +0 -647
  423. package/dist/gen-routes.ts +0 -96
  424. package/dist/integrations/dotnet/index.d.ts +0 -8
  425. package/dist/integrations/dotnet/index.js +0 -170
  426. package/dist/integrations/dotnet/index.js.map +0 -1
  427. package/dist/integrations/elixir/index.d.ts +0 -8
  428. package/dist/integrations/elixir/index.js +0 -146
  429. package/dist/integrations/elixir/index.js.map +0 -1
  430. package/dist/integrations/go/index.d.ts +0 -11
  431. package/dist/integrations/go/index.js +0 -212
  432. package/dist/integrations/go/index.js.map +0 -1
  433. package/dist/integrations/kotlin/index.d.ts +0 -4
  434. package/dist/integrations/kotlin/index.js +0 -78
  435. package/dist/integrations/kotlin/index.js.map +0 -1
  436. package/dist/integrations/nextjs/index.d.ts +0 -4
  437. package/dist/integrations/nextjs/index.js +0 -90
  438. package/dist/integrations/nextjs/index.js.map +0 -1
  439. package/dist/integrations/nextjs/utils.d.ts +0 -8
  440. package/dist/integrations/nextjs/utils.js +0 -53
  441. package/dist/integrations/nextjs/utils.js.map +0 -1
  442. package/dist/integrations/node/index.d.ts +0 -4
  443. package/dist/integrations/node/index.js +0 -52
  444. package/dist/integrations/node/index.js.map +0 -1
  445. package/dist/integrations/php/index.d.ts +0 -4
  446. package/dist/integrations/php/index.js +0 -51
  447. package/dist/integrations/php/index.js.map +0 -1
  448. package/dist/integrations/php-laravel/index.d.ts +0 -4
  449. package/dist/integrations/php-laravel/index.js +0 -51
  450. package/dist/integrations/php-laravel/index.js.map +0 -1
  451. package/dist/integrations/python/index.d.ts +0 -9
  452. package/dist/integrations/python/index.js +0 -249
  453. package/dist/integrations/python/index.js.map +0 -1
  454. package/dist/integrations/react/index.d.ts +0 -4
  455. package/dist/integrations/react/index.js +0 -49
  456. package/dist/integrations/react/index.js.map +0 -1
  457. package/dist/integrations/react-router/index.d.ts +0 -4
  458. package/dist/integrations/react-router/index.js +0 -94
  459. package/dist/integrations/react-router/index.js.map +0 -1
  460. package/dist/integrations/react-router/utils.d.ts +0 -10
  461. package/dist/integrations/react-router/utils.js +0 -146
  462. package/dist/integrations/react-router/utils.js.map +0 -1
  463. package/dist/integrations/ruby/index.d.ts +0 -8
  464. package/dist/integrations/ruby/index.js +0 -137
  465. package/dist/integrations/ruby/index.js.map +0 -1
  466. package/dist/integrations/sveltekit/index.d.ts +0 -4
  467. package/dist/integrations/sveltekit/index.js +0 -50
  468. package/dist/integrations/sveltekit/index.js.map +0 -1
  469. package/dist/integrations/tanstack-start/index.d.ts +0 -4
  470. package/dist/integrations/tanstack-start/index.js +0 -51
  471. package/dist/integrations/tanstack-start/index.js.map +0 -1
  472. package/dist/integrations/vanilla-js/index.d.ts +0 -4
  473. package/dist/integrations/vanilla-js/index.js +0 -49
  474. package/dist/integrations/vanilla-js/index.js.map +0 -1
  475. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.d.ts +0 -7
  476. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js +0 -12
  477. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js.map +0 -1
  478. package/dist/lib/adapters/cli-adapter.d.ts +0 -84
  479. package/dist/lib/adapters/cli-adapter.js +0 -525
  480. package/dist/lib/adapters/cli-adapter.js.map +0 -1
  481. package/dist/lib/adapters/dashboard-adapter.d.ts +0 -34
  482. package/dist/lib/adapters/dashboard-adapter.js +0 -121
  483. package/dist/lib/adapters/dashboard-adapter.js.map +0 -1
  484. package/dist/lib/adapters/headless-adapter.d.ts +0 -73
  485. package/dist/lib/adapters/headless-adapter.js +0 -310
  486. package/dist/lib/adapters/headless-adapter.js.map +0 -1
  487. package/dist/lib/adapters/index.d.ts +0 -4
  488. package/dist/lib/adapters/index.js +0 -4
  489. package/dist/lib/adapters/index.js.map +0 -1
  490. package/dist/lib/adapters/types.d.ts +0 -41
  491. package/dist/lib/adapters/types.js +0 -2
  492. package/dist/lib/adapters/types.js.map +0 -1
  493. package/dist/lib/agent-interface.d.ts +0 -84
  494. package/dist/lib/agent-interface.js +0 -826
  495. package/dist/lib/agent-interface.js.map +0 -1
  496. package/dist/lib/agent-runner.d.ts +0 -9
  497. package/dist/lib/agent-runner.js +0 -261
  498. package/dist/lib/agent-runner.js.map +0 -1
  499. package/dist/lib/ai-content.d.ts +0 -14
  500. package/dist/lib/ai-content.js +0 -131
  501. package/dist/lib/ai-content.js.map +0 -1
  502. package/dist/lib/api-error-handler.d.ts +0 -18
  503. package/dist/lib/api-error-handler.js +0 -76
  504. package/dist/lib/api-error-handler.js.map +0 -1
  505. package/dist/lib/api-key.d.ts +0 -14
  506. package/dist/lib/api-key.js +0 -36
  507. package/dist/lib/api-key.js.map +0 -1
  508. package/dist/lib/api.d.ts +0 -25
  509. package/dist/lib/api.js +0 -120
  510. package/dist/lib/api.js.map +0 -1
  511. package/dist/lib/background-refresh.d.ts +0 -29
  512. package/dist/lib/background-refresh.js +0 -95
  513. package/dist/lib/background-refresh.js.map +0 -1
  514. package/dist/lib/command-aliases.d.ts +0 -8
  515. package/dist/lib/command-aliases.js +0 -12
  516. package/dist/lib/command-aliases.js.map +0 -1
  517. package/dist/lib/config-store.d.ts +0 -50
  518. package/dist/lib/config-store.js +0 -269
  519. package/dist/lib/config-store.js.map +0 -1
  520. package/dist/lib/config.d.ts +0 -34
  521. package/dist/lib/config.js +0 -37
  522. package/dist/lib/config.js.map +0 -1
  523. package/dist/lib/constants.d.ts +0 -43
  524. package/dist/lib/constants.js +0 -42
  525. package/dist/lib/constants.js.map +0 -1
  526. package/dist/lib/credential-discovery.d.ts +0 -42
  527. package/dist/lib/credential-discovery.js +0 -100
  528. package/dist/lib/credential-discovery.js.map +0 -1
  529. package/dist/lib/credential-proxy.d.ts +0 -45
  530. package/dist/lib/credential-proxy.js +0 -364
  531. package/dist/lib/credential-proxy.js.map +0 -1
  532. package/dist/lib/credential-store.d.ts +0 -32
  533. package/dist/lib/credential-store.js +0 -236
  534. package/dist/lib/credential-store.js.map +0 -1
  535. package/dist/lib/credentials.d.ts +0 -13
  536. package/dist/lib/credentials.js +0 -34
  537. package/dist/lib/credentials.js.map +0 -1
  538. package/dist/lib/dev-command.d.ts +0 -26
  539. package/dist/lib/dev-command.js +0 -129
  540. package/dist/lib/dev-command.js.map +0 -1
  541. package/dist/lib/device-auth.d.ts +0 -48
  542. package/dist/lib/device-auth.js +0 -176
  543. package/dist/lib/device-auth.js.map +0 -1
  544. package/dist/lib/device-id.d.ts +0 -25
  545. package/dist/lib/device-id.js +0 -102
  546. package/dist/lib/device-id.js.map +0 -1
  547. package/dist/lib/ensure-auth.d.ts +0 -12
  548. package/dist/lib/ensure-auth.js +0 -111
  549. package/dist/lib/ensure-auth.js.map +0 -1
  550. package/dist/lib/env-writer.d.ts +0 -25
  551. package/dist/lib/env-writer.js +0 -90
  552. package/dist/lib/env-writer.js.map +0 -1
  553. package/dist/lib/events.d.ts +0 -215
  554. package/dist/lib/events.js +0 -19
  555. package/dist/lib/events.js.map +0 -1
  556. package/dist/lib/framework-config.d.ts +0 -127
  557. package/dist/lib/framework-config.js +0 -11
  558. package/dist/lib/framework-config.js.map +0 -1
  559. package/dist/lib/helper-functions.d.ts +0 -1
  560. package/dist/lib/helper-functions.js +0 -2
  561. package/dist/lib/helper-functions.js.map +0 -1
  562. package/dist/lib/host-probe.d.ts +0 -28
  563. package/dist/lib/host-probe.js +0 -154
  564. package/dist/lib/host-probe.js.map +0 -1
  565. package/dist/lib/installer-core.d.ts +0 -556
  566. package/dist/lib/installer-core.js +0 -1115
  567. package/dist/lib/installer-core.js.map +0 -1
  568. package/dist/lib/installer-core.types.d.ts +0 -160
  569. package/dist/lib/installer-core.types.js +0 -2
  570. package/dist/lib/installer-core.types.js.map +0 -1
  571. package/dist/lib/mcp-clients.d.ts +0 -39
  572. package/dist/lib/mcp-clients.js +0 -284
  573. package/dist/lib/mcp-clients.js.map +0 -1
  574. package/dist/lib/mcp-notice.d.ts +0 -72
  575. package/dist/lib/mcp-notice.js +0 -275
  576. package/dist/lib/mcp-notice.js.map +0 -1
  577. package/dist/lib/port-detection.d.ts +0 -7
  578. package/dist/lib/port-detection.js +0 -238
  579. package/dist/lib/port-detection.js.map +0 -1
  580. package/dist/lib/post-install.d.ts +0 -8
  581. package/dist/lib/post-install.js +0 -51
  582. package/dist/lib/post-install.js.map +0 -1
  583. package/dist/lib/preferences.d.ts +0 -115
  584. package/dist/lib/preferences.js +0 -201
  585. package/dist/lib/preferences.js.map +0 -1
  586. package/dist/lib/progress-tracker.d.ts +0 -22
  587. package/dist/lib/progress-tracker.js +0 -47
  588. package/dist/lib/progress-tracker.js.map +0 -1
  589. package/dist/lib/registry.d.ts +0 -42
  590. package/dist/lib/registry.js +0 -96
  591. package/dist/lib/registry.js.map +0 -1
  592. package/dist/lib/resolve-install-credentials.d.ts +0 -11
  593. package/dist/lib/resolve-install-credentials.js +0 -53
  594. package/dist/lib/resolve-install-credentials.js.map +0 -1
  595. package/dist/lib/run-with-core.d.ts +0 -7
  596. package/dist/lib/run-with-core.js +0 -522
  597. package/dist/lib/run-with-core.js.map +0 -1
  598. package/dist/lib/safe-tools.d.ts +0 -2
  599. package/dist/lib/safe-tools.js +0 -212
  600. package/dist/lib/safe-tools.js.map +0 -1
  601. package/dist/lib/scaffold/index.d.ts +0 -1
  602. package/dist/lib/scaffold/index.js +0 -2
  603. package/dist/lib/scaffold/index.js.map +0 -1
  604. package/dist/lib/scaffold/scaffold.d.ts +0 -66
  605. package/dist/lib/scaffold/scaffold.js +0 -156
  606. package/dist/lib/scaffold/scaffold.js.map +0 -1
  607. package/dist/lib/settings.d.ts +0 -60
  608. package/dist/lib/settings.js +0 -31
  609. package/dist/lib/settings.js.map +0 -1
  610. package/dist/lib/staging-api.d.ts +0 -22
  611. package/dist/lib/staging-api.js +0 -74
  612. package/dist/lib/staging-api.js.map +0 -1
  613. package/dist/lib/startup-notice-gate.d.ts +0 -21
  614. package/dist/lib/startup-notice-gate.js +0 -29
  615. package/dist/lib/startup-notice-gate.js.map +0 -1
  616. package/dist/lib/telemetry-notice.d.ts +0 -25
  617. package/dist/lib/telemetry-notice.js +0 -59
  618. package/dist/lib/telemetry-notice.js.map +0 -1
  619. package/dist/lib/token-refresh-client.d.ts +0 -23
  620. package/dist/lib/token-refresh-client.js +0 -89
  621. package/dist/lib/token-refresh-client.js.map +0 -1
  622. package/dist/lib/token-refresh.d.ts +0 -12
  623. package/dist/lib/token-refresh.js +0 -27
  624. package/dist/lib/token-refresh.js.map +0 -1
  625. package/dist/lib/unclaimed-env-api.d.ts +0 -42
  626. package/dist/lib/unclaimed-env-api.js +0 -139
  627. package/dist/lib/unclaimed-env-api.js.map +0 -1
  628. package/dist/lib/unclaimed-env-provision.d.ts +0 -24
  629. package/dist/lib/unclaimed-env-provision.js +0 -77
  630. package/dist/lib/unclaimed-env-provision.js.map +0 -1
  631. package/dist/lib/unclaimed-warning.d.ts +0 -15
  632. package/dist/lib/unclaimed-warning.js +0 -77
  633. package/dist/lib/unclaimed-warning.js.map +0 -1
  634. package/dist/lib/validation/build-validator.d.ts +0 -21
  635. package/dist/lib/validation/build-validator.js +0 -153
  636. package/dist/lib/validation/build-validator.js.map +0 -1
  637. package/dist/lib/validation/index.d.ts +0 -4
  638. package/dist/lib/validation/index.js +0 -4
  639. package/dist/lib/validation/index.js.map +0 -1
  640. package/dist/lib/validation/quick-checks.d.ts +0 -19
  641. package/dist/lib/validation/quick-checks.js +0 -192
  642. package/dist/lib/validation/quick-checks.js.map +0 -1
  643. package/dist/lib/validation/security-checks.d.ts +0 -35
  644. package/dist/lib/validation/security-checks.js +0 -105
  645. package/dist/lib/validation/security-checks.js.map +0 -1
  646. package/dist/lib/validation/types.d.ts +0 -56
  647. package/dist/lib/validation/types.js +0 -2
  648. package/dist/lib/validation/types.js.map +0 -1
  649. package/dist/lib/validation/validator.d.ts +0 -13
  650. package/dist/lib/validation/validator.js +0 -684
  651. package/dist/lib/validation/validator.js.map +0 -1
  652. package/dist/lib/version-check.d.ts +0 -6
  653. package/dist/lib/version-check.js +0 -46
  654. package/dist/lib/version-check.js.map +0 -1
  655. package/dist/lib/workos-api.d.ts +0 -30
  656. package/dist/lib/workos-api.js +0 -69
  657. package/dist/lib/workos-api.js.map +0 -1
  658. package/dist/lib/workos-client.d.ts +0 -58
  659. package/dist/lib/workos-client.js +0 -140
  660. package/dist/lib/workos-client.js.map +0 -1
  661. package/dist/lib/workos-management.d.ts +0 -32
  662. package/dist/lib/workos-management.js +0 -142
  663. package/dist/lib/workos-management.js.map +0 -1
  664. package/dist/nextjs/nextjs-installer-agent.d.ts +0 -5
  665. package/dist/nextjs/nextjs-installer-agent.js +0 -6
  666. package/dist/nextjs/nextjs-installer-agent.js.map +0 -1
  667. package/dist/nextjs/utils.d.ts +0 -4
  668. package/dist/nextjs/utils.js +0 -5
  669. package/dist/nextjs/utils.js.map +0 -1
  670. package/dist/react/react-installer-agent.d.ts +0 -4
  671. package/dist/react/react-installer-agent.js +0 -5
  672. package/dist/react/react-installer-agent.js.map +0 -1
  673. package/dist/react-router/react-router-installer-agent.d.ts +0 -4
  674. package/dist/react-router/react-router-installer-agent.js +0 -5
  675. package/dist/react-router/react-router-installer-agent.js.map +0 -1
  676. package/dist/react-router/utils.d.ts +0 -4
  677. package/dist/react-router/utils.js +0 -5
  678. package/dist/react-router/utils.js.map +0 -1
  679. package/dist/run.d.ts +0 -32
  680. package/dist/run.js +0 -54
  681. package/dist/run.js.map +0 -1
  682. package/dist/smoke-test.ts +0 -881
  683. package/dist/steps/add-or-update-environment-variables.d.ts +0 -10
  684. package/dist/steps/add-or-update-environment-variables.js +0 -155
  685. package/dist/steps/add-or-update-environment-variables.js.map +0 -1
  686. package/dist/steps/index.d.ts +0 -3
  687. package/dist/steps/index.js +0 -4
  688. package/dist/steps/index.js.map +0 -1
  689. package/dist/steps/run-prettier.d.ts +0 -5
  690. package/dist/steps/run-prettier.js +0 -50
  691. package/dist/steps/run-prettier.js.map +0 -1
  692. package/dist/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -8
  693. package/dist/steps/upload-environment-variables/EnvironmentProvider.js +0 -7
  694. package/dist/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
  695. package/dist/steps/upload-environment-variables/index.d.ts +0 -6
  696. package/dist/steps/upload-environment-variables/index.js +0 -57
  697. package/dist/steps/upload-environment-variables/index.js.map +0 -1
  698. package/dist/steps/upload-environment-variables/providers/vercel.d.ts +0 -14
  699. package/dist/steps/upload-environment-variables/providers/vercel.js +0 -107
  700. package/dist/steps/upload-environment-variables/providers/vercel.js.map +0 -1
  701. package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +0 -4
  702. package/dist/tanstack-start/tanstack-start-installer-agent.js +0 -5
  703. package/dist/tanstack-start/tanstack-start-installer-agent.js.map +0 -1
  704. package/dist/telemetry.d.ts +0 -2
  705. package/dist/telemetry.js +0 -29
  706. package/dist/telemetry.js.map +0 -1
  707. package/dist/test/force-insecure-storage.d.ts +0 -1
  708. package/dist/test/force-insecure-storage.js +0 -9
  709. package/dist/test/force-insecure-storage.js.map +0 -1
  710. package/dist/test/setup.d.ts +0 -1
  711. package/dist/test/setup.js +0 -38
  712. package/dist/test/setup.js.map +0 -1
  713. package/dist/utils/analytics.d.ts +0 -66
  714. package/dist/utils/analytics.js +0 -330
  715. package/dist/utils/analytics.js.map +0 -1
  716. package/dist/utils/bash.d.ts +0 -2
  717. package/dist/utils/bash.js +0 -17
  718. package/dist/utils/bash.js.map +0 -1
  719. package/dist/utils/box.d.ts +0 -33
  720. package/dist/utils/box.js +0 -102
  721. package/dist/utils/box.js.map +0 -1
  722. package/dist/utils/clack-utils.d.ts +0 -97
  723. package/dist/utils/clack-utils.js +0 -422
  724. package/dist/utils/clack-utils.js.map +0 -1
  725. package/dist/utils/clack.d.ts +0 -5
  726. package/dist/utils/clack.js +0 -34
  727. package/dist/utils/clack.js.map +0 -1
  728. package/dist/utils/cli-exit.d.ts +0 -15
  729. package/dist/utils/cli-exit.js +0 -11
  730. package/dist/utils/cli-exit.js.map +0 -1
  731. package/dist/utils/cli-symbols.d.ts +0 -32
  732. package/dist/utils/cli-symbols.js +0 -46
  733. package/dist/utils/cli-symbols.js.map +0 -1
  734. package/dist/utils/command-invocation.d.ts +0 -10
  735. package/dist/utils/command-invocation.js +0 -26
  736. package/dist/utils/command-invocation.js.map +0 -1
  737. package/dist/utils/command-telemetry.d.ts +0 -17
  738. package/dist/utils/command-telemetry.js +0 -67
  739. package/dist/utils/command-telemetry.js.map +0 -1
  740. package/dist/utils/crash-reporter.d.ts +0 -13
  741. package/dist/utils/crash-reporter.js +0 -91
  742. package/dist/utils/crash-reporter.js.map +0 -1
  743. package/dist/utils/debug.d.ts +0 -9
  744. package/dist/utils/debug.js +0 -105
  745. package/dist/utils/debug.js.map +0 -1
  746. package/dist/utils/env-parser.d.ts +0 -5
  747. package/dist/utils/env-parser.js +0 -18
  748. package/dist/utils/env-parser.js.map +0 -1
  749. package/dist/utils/environment.d.ts +0 -10
  750. package/dist/utils/environment.js +0 -69
  751. package/dist/utils/environment.js.map +0 -1
  752. package/dist/utils/errors.d.ts +0 -3
  753. package/dist/utils/errors.js +0 -7
  754. package/dist/utils/errors.js.map +0 -1
  755. package/dist/utils/exec-file.d.ts +0 -15
  756. package/dist/utils/exec-file.js +0 -39
  757. package/dist/utils/exec-file.js.map +0 -1
  758. package/dist/utils/exit-codes.d.ts +0 -31
  759. package/dist/utils/exit-codes.js +0 -69
  760. package/dist/utils/exit-codes.js.map +0 -1
  761. package/dist/utils/git-utils.d.ts +0 -23
  762. package/dist/utils/git-utils.js +0 -86
  763. package/dist/utils/git-utils.js.map +0 -1
  764. package/dist/utils/help-json.d.ts +0 -58
  765. package/dist/utils/help-json.js +0 -1466
  766. package/dist/utils/help-json.js.map +0 -1
  767. package/dist/utils/interaction-mode.d.ts +0 -25
  768. package/dist/utils/interaction-mode.js +0 -99
  769. package/dist/utils/interaction-mode.js.map +0 -1
  770. package/dist/utils/lock-art.d.ts +0 -4
  771. package/dist/utils/lock-art.js +0 -73
  772. package/dist/utils/lock-art.js.map +0 -1
  773. package/dist/utils/logging.d.ts +0 -9
  774. package/dist/utils/logging.js +0 -36
  775. package/dist/utils/logging.js.map +0 -1
  776. package/dist/utils/ndjson.d.ts +0 -16
  777. package/dist/utils/ndjson.js +0 -18
  778. package/dist/utils/ndjson.js.map +0 -1
  779. package/dist/utils/output.d.ts +0 -60
  780. package/dist/utils/output.js +0 -124
  781. package/dist/utils/output.js.map +0 -1
  782. package/dist/utils/package-json.d.ts +0 -26
  783. package/dist/utils/package-json.js +0 -32
  784. package/dist/utils/package-json.js.map +0 -1
  785. package/dist/utils/package-manager.d.ts +0 -21
  786. package/dist/utils/package-manager.js +0 -166
  787. package/dist/utils/package-manager.js.map +0 -1
  788. package/dist/utils/paths.d.ts +0 -5
  789. package/dist/utils/paths.js +0 -18
  790. package/dist/utils/paths.js.map +0 -1
  791. package/dist/utils/platform.d.ts +0 -8
  792. package/dist/utils/platform.js +0 -7
  793. package/dist/utils/platform.js.map +0 -1
  794. package/dist/utils/recovery-hints.d.ts +0 -37
  795. package/dist/utils/recovery-hints.js +0 -80
  796. package/dist/utils/recovery-hints.js.map +0 -1
  797. package/dist/utils/redact.d.ts +0 -5
  798. package/dist/utils/redact.js +0 -29
  799. package/dist/utils/redact.js.map +0 -1
  800. package/dist/utils/register-subcommand.d.ts +0 -10
  801. package/dist/utils/register-subcommand.js +0 -33
  802. package/dist/utils/register-subcommand.js.map +0 -1
  803. package/dist/utils/semver.d.ts +0 -10
  804. package/dist/utils/semver.js +0 -43
  805. package/dist/utils/semver.js.map +0 -1
  806. package/dist/utils/string.d.ts +0 -1
  807. package/dist/utils/string.js +0 -6
  808. package/dist/utils/string.js.map +0 -1
  809. package/dist/utils/summary-box.d.ts +0 -18
  810. package/dist/utils/summary-box.js +0 -148
  811. package/dist/utils/summary-box.js.map +0 -1
  812. package/dist/utils/table.d.ts +0 -5
  813. package/dist/utils/table.js +0 -18
  814. package/dist/utils/table.js.map +0 -1
  815. package/dist/utils/telemetry-client.d.ts +0 -43
  816. package/dist/utils/telemetry-client.js +0 -171
  817. package/dist/utils/telemetry-client.js.map +0 -1
  818. package/dist/utils/telemetry-store-forward.d.ts +0 -11
  819. package/dist/utils/telemetry-store-forward.js +0 -94
  820. package/dist/utils/telemetry-store-forward.js.map +0 -1
  821. package/dist/utils/telemetry-types.d.ts +0 -100
  822. package/dist/utils/telemetry-types.js +0 -6
  823. package/dist/utils/telemetry-types.js.map +0 -1
  824. package/dist/utils/types.d.ts +0 -113
  825. package/dist/utils/types.js +0 -2
  826. package/dist/utils/types.js.map +0 -1
  827. package/dist/utils/urls.d.ts +0 -13
  828. package/dist/utils/urls.js +0 -14
  829. package/dist/utils/urls.js.map +0 -1
  830. package/dist/utils/vendor/is-unicorn-supported.d.ts +0 -1
  831. package/dist/utils/vendor/is-unicorn-supported.js +0 -21
  832. package/dist/utils/vendor/is-unicorn-supported.js.map +0 -1
  833. package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +0 -4
  834. package/dist/vanilla-js/vanilla-js-installer-agent.js +0 -5
  835. package/dist/vanilla-js/vanilla-js-installer-agent.js.map +0 -1
@@ -1,121 +0,0 @@
1
- import { renderCompletionSummary } from '../../utils/summary-box.js';
2
- /**
3
- * Dashboard adapter that renders wizard events via Ink/React TUI.
4
- *
5
- * Wraps the existing Dashboard component and passes the emitter to it.
6
- * The Dashboard component already handles most event rendering internally.
7
- */
8
- export class DashboardAdapter {
9
- emitter;
10
- sendEvent;
11
- cleanup = null;
12
- isStarted = false;
13
- completionData = null;
14
- constructor(config) {
15
- this.emitter = config.emitter;
16
- this.sendEvent = config.sendEvent;
17
- }
18
- async start() {
19
- if (this.isStarted)
20
- return;
21
- this.isStarted = true;
22
- // Dynamic imports to avoid loading Ink when not needed
23
- const { render } = await import('ink');
24
- const { createElement } = await import('react');
25
- const { Dashboard } = await import('../../dashboard/components/Dashboard.js');
26
- // Enter fullscreen (alternate screen buffer)
27
- process.stdout.write('\x1b[?1049h'); // Enter alternate screen
28
- process.stdout.write('\x1b[2J'); // Clear entire screen
29
- process.stdout.write('\x1b[H'); // Move cursor to home
30
- process.stdout.write('\x1b[?25l'); // Hide cursor
31
- // Render the Dashboard component with emitter
32
- const instance = render(createElement(Dashboard, { emitter: this.emitter }));
33
- // Setup cleanup function
34
- this.cleanup = () => {
35
- instance.unmount();
36
- process.stdout.write('\x1b[?25h'); // Show cursor
37
- process.stdout.write('\x1b[?1049l'); // Exit alternate screen
38
- };
39
- // Wire up Dashboard responses back to the machine
40
- // The Dashboard component emits these when user interacts
41
- this.emitter.on('confirm:response', this.handleConfirmResponse);
42
- this.emitter.on('credentials:response', this.handleCredentialsResponse);
43
- // Scaffold (empty-dir): the TUI has no dedicated scaffold prompt yet, so
44
- // auto-proceed (the user ran the installer in an empty dir) and surface
45
- // progress through the `status` event the Dashboard already renders.
46
- this.emitter.on('scaffold:prompt', this.handleScaffoldPrompt);
47
- this.emitter.on('scaffold:start', this.handleScaffoldStart);
48
- this.emitter.on('scaffold:complete', this.handleScaffoldComplete);
49
- this.emitter.on('scaffold:failed', this.handleScaffoldFailed);
50
- // Track completion for post-exit summary
51
- this.emitter.on('complete', this.handleComplete);
52
- }
53
- /**
54
- * Capture completion data for display after exit.
55
- */
56
- handleComplete = ({ success, summary }) => {
57
- this.completionData = { success, summary };
58
- };
59
- async stop() {
60
- if (!this.isStarted)
61
- return;
62
- // Unsubscribe from events
63
- this.emitter.off('confirm:response', this.handleConfirmResponse);
64
- this.emitter.off('credentials:response', this.handleCredentialsResponse);
65
- this.emitter.off('scaffold:prompt', this.handleScaffoldPrompt);
66
- this.emitter.off('scaffold:start', this.handleScaffoldStart);
67
- this.emitter.off('scaffold:complete', this.handleScaffoldComplete);
68
- this.emitter.off('scaffold:failed', this.handleScaffoldFailed);
69
- this.emitter.off('complete', this.handleComplete);
70
- // Run cleanup (unmount Ink, exit fullscreen)
71
- this.cleanup?.();
72
- this.cleanup = null;
73
- if (this.completionData) {
74
- console.log();
75
- console.log(renderCompletionSummary(this.completionData.success, this.completionData.summary));
76
- console.log();
77
- }
78
- this.isStarted = false;
79
- }
80
- /**
81
- * Handle confirm dialog responses from Dashboard.
82
- */
83
- handleConfirmResponse = ({ id, confirmed }) => {
84
- if (id === 'git-status') {
85
- this.sendEvent({ type: confirmed ? 'GIT_CONFIRMED' : 'GIT_CANCELLED' });
86
- }
87
- else if (id === 'env-scan') {
88
- this.sendEvent({ type: confirmed ? 'ENV_SCAN_APPROVED' : 'ENV_SCAN_DECLINED' });
89
- }
90
- else if (id === 'branch-check') {
91
- // For dashboard, confirmed=true means create branch, false means continue on current
92
- this.sendEvent({ type: confirmed ? 'BRANCH_CREATE' : 'BRANCH_CONTINUE' });
93
- }
94
- else if (id === 'commit') {
95
- this.sendEvent({ type: confirmed ? 'COMMIT_APPROVED' : 'COMMIT_DECLINED' });
96
- }
97
- else if (id === 'pr') {
98
- this.sendEvent({ type: confirmed ? 'PR_APPROVED' : 'PR_DECLINED' });
99
- }
100
- };
101
- /**
102
- * Handle credentials form submission from Dashboard.
103
- */
104
- handleCredentialsResponse = ({ apiKey, clientId }) => {
105
- this.sendEvent({ type: 'CREDENTIALS_SUBMITTED', apiKey, clientId });
106
- };
107
- // ===== Scaffold (empty-dir) handlers =====
108
- handleScaffoldPrompt = () => {
109
- this.sendEvent({ type: 'SCAFFOLD_CONFIRMED' });
110
- };
111
- handleScaffoldStart = ({ packageManager }) => {
112
- this.emitter.emit('status', { message: `Scaffolding a new Next.js app with ${packageManager}...` });
113
- };
114
- handleScaffoldComplete = () => {
115
- this.emitter.emit('status', { message: 'Next.js app created' });
116
- };
117
- handleScaffoldFailed = ({ error }) => {
118
- this.emitter.emit('status', { message: `Scaffold failed: ${error}` });
119
- };
120
- }
121
- //# sourceMappingURL=dashboard-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-adapter.js","sourceRoot":"","sources":["../../../src/lib/adapters/dashboard-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InstallerAdapter, AdapterConfig } from './types.js';\nimport type { InstallerEventEmitter, InstallerEvents } from '../events.js';\nimport { renderCompletionSummary } from '../../utils/summary-box.js';\n\n/**\n * Dashboard adapter that renders wizard events via Ink/React TUI.\n *\n * Wraps the existing Dashboard component and passes the emitter to it.\n * The Dashboard component already handles most event rendering internally.\n */\nexport class DashboardAdapter implements InstallerAdapter {\n readonly emitter: InstallerEventEmitter;\n private sendEvent: AdapterConfig['sendEvent'];\n private cleanup: (() => void) | null = null;\n private isStarted = false;\n private completionData: { success: boolean; summary?: string } | null = null;\n\n constructor(config: AdapterConfig) {\n this.emitter = config.emitter;\n this.sendEvent = config.sendEvent;\n }\n\n async start(): Promise<void> {\n if (this.isStarted) return;\n this.isStarted = true;\n\n // Dynamic imports to avoid loading Ink when not needed\n const { render } = await import('ink');\n const { createElement } = await import('react');\n const { Dashboard } = await import('../../dashboard/components/Dashboard.js');\n\n // Enter fullscreen (alternate screen buffer)\n process.stdout.write('\\x1b[?1049h'); // Enter alternate screen\n process.stdout.write('\\x1b[2J'); // Clear entire screen\n process.stdout.write('\\x1b[H'); // Move cursor to home\n process.stdout.write('\\x1b[?25l'); // Hide cursor\n\n // Render the Dashboard component with emitter\n const instance = render(createElement(Dashboard, { emitter: this.emitter }));\n\n // Setup cleanup function\n this.cleanup = () => {\n instance.unmount();\n process.stdout.write('\\x1b[?25h'); // Show cursor\n process.stdout.write('\\x1b[?1049l'); // Exit alternate screen\n };\n\n // Wire up Dashboard responses back to the machine\n // The Dashboard component emits these when user interacts\n this.emitter.on('confirm:response', this.handleConfirmResponse);\n this.emitter.on('credentials:response', this.handleCredentialsResponse);\n\n // Scaffold (empty-dir): the TUI has no dedicated scaffold prompt yet, so\n // auto-proceed (the user ran the installer in an empty dir) and surface\n // progress through the `status` event the Dashboard already renders.\n this.emitter.on('scaffold:prompt', this.handleScaffoldPrompt);\n this.emitter.on('scaffold:start', this.handleScaffoldStart);\n this.emitter.on('scaffold:complete', this.handleScaffoldComplete);\n this.emitter.on('scaffold:failed', this.handleScaffoldFailed);\n\n // Track completion for post-exit summary\n this.emitter.on('complete', this.handleComplete);\n }\n\n /**\n * Capture completion data for display after exit.\n */\n private handleComplete = ({ success, summary }: InstallerEvents['complete']): void => {\n this.completionData = { success, summary };\n };\n\n async stop(): Promise<void> {\n if (!this.isStarted) return;\n\n // Unsubscribe from events\n this.emitter.off('confirm:response', this.handleConfirmResponse);\n this.emitter.off('credentials:response', this.handleCredentialsResponse);\n this.emitter.off('scaffold:prompt', this.handleScaffoldPrompt);\n this.emitter.off('scaffold:start', this.handleScaffoldStart);\n this.emitter.off('scaffold:complete', this.handleScaffoldComplete);\n this.emitter.off('scaffold:failed', this.handleScaffoldFailed);\n this.emitter.off('complete', this.handleComplete);\n\n // Run cleanup (unmount Ink, exit fullscreen)\n this.cleanup?.();\n this.cleanup = null;\n\n if (this.completionData) {\n console.log();\n console.log(renderCompletionSummary(this.completionData.success, this.completionData.summary));\n console.log();\n }\n\n this.isStarted = false;\n }\n\n /**\n * Handle confirm dialog responses from Dashboard.\n */\n private handleConfirmResponse = ({ id, confirmed }: { id: string; confirmed: boolean }): void => {\n if (id === 'git-status') {\n this.sendEvent({ type: confirmed ? 'GIT_CONFIRMED' : 'GIT_CANCELLED' });\n } else if (id === 'env-scan') {\n this.sendEvent({ type: confirmed ? 'ENV_SCAN_APPROVED' : 'ENV_SCAN_DECLINED' });\n } else if (id === 'branch-check') {\n // For dashboard, confirmed=true means create branch, false means continue on current\n this.sendEvent({ type: confirmed ? 'BRANCH_CREATE' : 'BRANCH_CONTINUE' });\n } else if (id === 'commit') {\n this.sendEvent({ type: confirmed ? 'COMMIT_APPROVED' : 'COMMIT_DECLINED' });\n } else if (id === 'pr') {\n this.sendEvent({ type: confirmed ? 'PR_APPROVED' : 'PR_DECLINED' });\n }\n };\n\n /**\n * Handle credentials form submission from Dashboard.\n */\n private handleCredentialsResponse = ({ apiKey, clientId }: { apiKey: string; clientId: string }): void => {\n this.sendEvent({ type: 'CREDENTIALS_SUBMITTED', apiKey, clientId });\n };\n\n // ===== Scaffold (empty-dir) handlers =====\n\n private handleScaffoldPrompt = (): void => {\n this.sendEvent({ type: 'SCAFFOLD_CONFIRMED' });\n };\n\n private handleScaffoldStart = ({ packageManager }: InstallerEvents['scaffold:start']): void => {\n this.emitter.emit('status', { message: `Scaffolding a new Next.js app with ${packageManager}...` });\n };\n\n private handleScaffoldComplete = (): void => {\n this.emitter.emit('status', { message: 'Next.js app created' });\n };\n\n private handleScaffoldFailed = ({ error }: InstallerEvents['scaffold:failed']): void => {\n this.emitter.emit('status', { message: `Scaffold failed: ${error}` });\n };\n}\n"]}
@@ -1,73 +0,0 @@
1
- import type { InstallerAdapter, AdapterConfig } from './types.js';
2
- import type { InstallerEventEmitter } from '../events.js';
3
- /**
4
- * Options controlling headless adapter behavior.
5
- * Corresponds to CLI flags passed in non-interactive mode.
6
- */
7
- export interface HeadlessOptions {
8
- apiKey?: string;
9
- clientId?: string;
10
- noBranch?: boolean;
11
- noCommit?: boolean;
12
- createPr?: boolean;
13
- noGitCheck?: boolean;
14
- }
15
- /**
16
- * Non-interactive adapter for CI/CD and agent consumption.
17
- *
18
- * Subscribes to the same installer events as CLIAdapter but never prompts.
19
- * All decisions are auto-resolved with sensible defaults (overridable via flags).
20
- * Progress is streamed as NDJSON to stdout.
21
- */
22
- export declare class HeadlessAdapter implements InstallerAdapter {
23
- readonly emitter: InstallerEventEmitter;
24
- private sendEvent;
25
- private debug;
26
- private options;
27
- private isStarted;
28
- private scaffolded;
29
- private handlers;
30
- constructor(config: AdapterConfig & {
31
- options: HeadlessOptions;
32
- });
33
- start(): Promise<void>;
34
- stop(): Promise<void>;
35
- private subscribe;
36
- private debugLog;
37
- private handleAuthSuccess;
38
- private handleAuthFailure;
39
- private handleScaffoldChecking;
40
- private handleScaffoldStart;
41
- private handleScaffoldProgress;
42
- private handleScaffoldComplete;
43
- private handleScaffoldFailed;
44
- private handleDetectionComplete;
45
- private handleDetectionNone;
46
- private handleGitDirty;
47
- private handleCredentialsFound;
48
- private handleCredentialsRequest;
49
- private handleEnvScanPrompt;
50
- private handleEnvCredentialsFound;
51
- private handleDeviceStarted;
52
- private handleStagingFetching;
53
- private handleStagingSuccess;
54
- private handleConfigComplete;
55
- private handleAgentStart;
56
- private handleAgentProgress;
57
- private handleValidationStart;
58
- private handleValidationIssues;
59
- private handleValidationComplete;
60
- private handleBranchPrompt;
61
- private handleBranchCreated;
62
- private handlePostInstallChanges;
63
- private handleCommitPrompt;
64
- private handleCommitSuccess;
65
- private handleCommitFailed;
66
- private handlePrPrompt;
67
- private handlePrSuccess;
68
- private handlePrFailed;
69
- private handlePushFailed;
70
- private handleManualInstructions;
71
- private handleComplete;
72
- private handleError;
73
- }
@@ -1,310 +0,0 @@
1
- import { writeNDJSON } from '../../utils/ndjson.js';
2
- import { ExitCode } from '../../utils/exit-codes.js';
3
- /**
4
- * Non-interactive adapter for CI/CD and agent consumption.
5
- *
6
- * Subscribes to the same installer events as CLIAdapter but never prompts.
7
- * All decisions are auto-resolved with sensible defaults (overridable via flags).
8
- * Progress is streamed as NDJSON to stdout.
9
- */
10
- export class HeadlessAdapter {
11
- emitter;
12
- sendEvent;
13
- debug;
14
- options;
15
- isStarted = false;
16
- scaffolded = false;
17
- handlers = new Map();
18
- constructor(config) {
19
- this.emitter = config.emitter;
20
- this.sendEvent = config.sendEvent;
21
- this.debug = config.debug ?? false;
22
- this.options = config.options;
23
- }
24
- async start() {
25
- if (this.isStarted)
26
- return;
27
- this.isStarted = true;
28
- // Auth events
29
- this.subscribe('auth:success', this.handleAuthSuccess);
30
- this.subscribe('auth:failure', this.handleAuthFailure);
31
- // Scaffold events (empty-directory app scaffolding) — auto-routed, no prompt
32
- this.subscribe('scaffold:checking', this.handleScaffoldChecking);
33
- this.subscribe('scaffold:start', this.handleScaffoldStart);
34
- this.subscribe('scaffold:progress', this.handleScaffoldProgress);
35
- this.subscribe('scaffold:complete', this.handleScaffoldComplete);
36
- this.subscribe('scaffold:failed', this.handleScaffoldFailed);
37
- // Detection events
38
- this.subscribe('detection:complete', this.handleDetectionComplete);
39
- this.subscribe('detection:none', this.handleDetectionNone);
40
- // Git events — auto-resolve
41
- this.subscribe('git:dirty', this.handleGitDirty);
42
- // Credential events — auto-resolve
43
- this.subscribe('credentials:found', this.handleCredentialsFound);
44
- this.subscribe('credentials:request', this.handleCredentialsRequest);
45
- this.subscribe('credentials:env:prompt', this.handleEnvScanPrompt);
46
- this.subscribe('credentials:env:found', this.handleEnvCredentialsFound);
47
- // Device auth (should not happen in headless, but log if it does)
48
- this.subscribe('device:started', this.handleDeviceStarted);
49
- // Staging
50
- this.subscribe('staging:fetching', this.handleStagingFetching);
51
- this.subscribe('staging:success', this.handleStagingSuccess);
52
- // Config
53
- this.subscribe('config:complete', this.handleConfigComplete);
54
- // Agent progress
55
- this.subscribe('agent:start', this.handleAgentStart);
56
- this.subscribe('agent:progress', this.handleAgentProgress);
57
- // Validation
58
- this.subscribe('validation:start', this.handleValidationStart);
59
- this.subscribe('validation:issues', this.handleValidationIssues);
60
- this.subscribe('validation:complete', this.handleValidationComplete);
61
- // Branch — auto-resolve
62
- this.subscribe('branch:prompt', this.handleBranchPrompt);
63
- this.subscribe('branch:created', this.handleBranchCreated);
64
- // Post-install — auto-resolve
65
- this.subscribe('postinstall:changes', this.handlePostInstallChanges);
66
- this.subscribe('postinstall:commit:prompt', this.handleCommitPrompt);
67
- this.subscribe('postinstall:commit:success', this.handleCommitSuccess);
68
- this.subscribe('postinstall:commit:failed', this.handleCommitFailed);
69
- this.subscribe('postinstall:pr:prompt', this.handlePrPrompt);
70
- this.subscribe('postinstall:pr:success', this.handlePrSuccess);
71
- this.subscribe('postinstall:pr:failed', this.handlePrFailed);
72
- this.subscribe('postinstall:push:failed', this.handlePushFailed);
73
- this.subscribe('postinstall:manual', this.handleManualInstructions);
74
- // Terminal events
75
- this.subscribe('complete', this.handleComplete);
76
- this.subscribe('error', this.handleError);
77
- }
78
- async stop() {
79
- if (!this.isStarted)
80
- return;
81
- for (const [event, handler] of this.handlers) {
82
- this.emitter.off(event, handler);
83
- }
84
- this.handlers.clear();
85
- this.isStarted = false;
86
- }
87
- subscribe(event, handler) {
88
- const boundHandler = handler.bind(this);
89
- this.handlers.set(event, boundHandler);
90
- this.emitter.on(event, boundHandler);
91
- }
92
- debugLog(message) {
93
- if (this.debug) {
94
- writeNDJSON({ type: 'debug', message });
95
- }
96
- }
97
- // ===== Auth Handlers =====
98
- handleAuthSuccess = () => {
99
- writeNDJSON({ type: 'auth:success' });
100
- };
101
- handleAuthFailure = ({ message }) => {
102
- writeNDJSON({ type: 'auth:required', message });
103
- process.exit(ExitCode.AUTH_REQUIRED);
104
- };
105
- // ===== Scaffold Handlers (auto-routed) =====
106
- handleScaffoldChecking = () => {
107
- writeNDJSON({ type: 'scaffold:checking' });
108
- };
109
- handleScaffoldStart = ({ packageManager }) => {
110
- writeNDJSON({ type: 'scaffold:start', packageManager });
111
- };
112
- // create-next-app output is verbose; surface it only under --debug.
113
- handleScaffoldProgress = ({ text }) => {
114
- this.debugLog(text);
115
- };
116
- handleScaffoldComplete = () => {
117
- this.scaffolded = true;
118
- writeNDJSON({ type: 'scaffold:complete' });
119
- };
120
- handleScaffoldFailed = ({ error }) => {
121
- writeNDJSON({ type: 'scaffold:failed', error });
122
- };
123
- // ===== Detection Handlers =====
124
- handleDetectionComplete = ({ integration }) => {
125
- writeNDJSON({ type: 'detection:complete', integration });
126
- };
127
- handleDetectionNone = () => {
128
- writeNDJSON({ type: 'detection:none' });
129
- };
130
- // ===== Git Handlers (auto-resolve) =====
131
- handleGitDirty = ({ files }) => {
132
- writeNDJSON({ type: 'git:status', dirty: true, files });
133
- if (this.options.noGitCheck) {
134
- writeNDJSON({ type: 'git:decision', action: 'continue' });
135
- this.sendEvent({ type: 'GIT_CONFIRMED' });
136
- return;
137
- }
138
- writeNDJSON({
139
- type: 'error',
140
- code: 'git_dirty',
141
- message: 'Git working tree is dirty in non-interactive mode. ' +
142
- 'Commit or stash your changes, or rerun with --no-git-check to proceed.',
143
- });
144
- writeNDJSON({ type: 'git:decision', action: 'cancel' });
145
- this.sendEvent({ type: 'GIT_CANCELLED' });
146
- process.exit(ExitCode.GENERAL_ERROR);
147
- };
148
- // ===== Credential Handlers (auto-resolve) =====
149
- handleCredentialsFound = () => {
150
- writeNDJSON({ type: 'credentials:found', source: 'env' });
151
- };
152
- handleCredentialsRequest = ({ requiresApiKey }) => {
153
- if (!this.options.clientId) {
154
- writeNDJSON({
155
- type: 'error',
156
- code: 'missing_credentials',
157
- message: 'Client ID required in non-interactive mode. Pass --client-id flag.',
158
- });
159
- process.exit(ExitCode.GENERAL_ERROR);
160
- }
161
- if (requiresApiKey && !this.options.apiKey) {
162
- writeNDJSON({
163
- type: 'error',
164
- code: 'missing_credentials',
165
- message: 'API key required for this framework. Pass --api-key flag.',
166
- });
167
- process.exit(ExitCode.GENERAL_ERROR);
168
- }
169
- writeNDJSON({ type: 'credentials:provided', source: 'flag' });
170
- this.sendEvent({
171
- type: 'CREDENTIALS_SUBMITTED',
172
- apiKey: this.options.apiKey ?? '',
173
- clientId: this.options.clientId,
174
- });
175
- };
176
- handleEnvScanPrompt = () => {
177
- writeNDJSON({ type: 'credentials:env:scanning' });
178
- this.sendEvent({ type: 'ENV_SCAN_APPROVED' });
179
- };
180
- handleEnvCredentialsFound = ({ sourcePath }) => {
181
- writeNDJSON({ type: 'credentials:found', source: 'env', sourcePath });
182
- };
183
- // ===== Device Auth (should not occur in headless) =====
184
- handleDeviceStarted = ({ verificationUri, userCode }) => {
185
- writeNDJSON({
186
- type: 'auth:device_required',
187
- verificationUri,
188
- userCode,
189
- message: 'Device auth cannot proceed in non-interactive mode',
190
- });
191
- };
192
- // ===== Staging =====
193
- handleStagingFetching = () => {
194
- writeNDJSON({ type: 'staging:fetching' });
195
- };
196
- handleStagingSuccess = () => {
197
- writeNDJSON({ type: 'staging:success' });
198
- };
199
- // ===== Config =====
200
- handleConfigComplete = () => {
201
- writeNDJSON({ type: 'config:complete' });
202
- };
203
- // ===== Agent Progress =====
204
- handleAgentStart = () => {
205
- writeNDJSON({ type: 'agent:start' });
206
- };
207
- handleAgentProgress = ({ step, detail }) => {
208
- const message = detail ? `${step}: ${detail}` : step;
209
- writeNDJSON({ type: 'agent:progress', message });
210
- };
211
- // ===== Validation =====
212
- handleValidationStart = ({ framework }) => {
213
- writeNDJSON({ type: 'validation:start', framework });
214
- };
215
- handleValidationIssues = ({ issues }) => {
216
- for (const issue of issues) {
217
- writeNDJSON({ type: 'validation:issue', severity: issue.severity, message: issue.message });
218
- }
219
- };
220
- handleValidationComplete = ({ passed, issueCount }) => {
221
- writeNDJSON({ type: 'validation:complete', passed, issues: issueCount });
222
- };
223
- // ===== Branch (auto-resolve) =====
224
- handleBranchPrompt = () => {
225
- if (this.options.noBranch) {
226
- writeNDJSON({ type: 'branch:skipped', reason: '--no-branch flag' });
227
- this.sendEvent({ type: 'BRANCH_CONTINUE' });
228
- }
229
- else {
230
- writeNDJSON({ type: 'branch:creating' });
231
- this.sendEvent({ type: 'BRANCH_CREATE' });
232
- }
233
- };
234
- handleBranchCreated = ({ branch }) => {
235
- writeNDJSON({ type: 'branch:created', name: branch });
236
- };
237
- // ===== Post-install (auto-resolve) =====
238
- handlePostInstallChanges = ({ files }) => {
239
- writeNDJSON({ type: 'postinstall:changes', files, count: files.length });
240
- };
241
- handleCommitPrompt = () => {
242
- if (this.options.noCommit) {
243
- writeNDJSON({ type: 'commit:skipped', reason: '--no-commit flag' });
244
- this.sendEvent({ type: 'COMMIT_DECLINED' });
245
- }
246
- else {
247
- writeNDJSON({ type: 'commit:auto' });
248
- this.sendEvent({ type: 'COMMIT_APPROVED' });
249
- }
250
- };
251
- handleCommitSuccess = ({ message }) => {
252
- writeNDJSON({ type: 'commit:created', message });
253
- };
254
- handleCommitFailed = ({ error }) => {
255
- writeNDJSON({ type: 'commit:failed', error });
256
- };
257
- handlePrPrompt = () => {
258
- if (this.options.createPr) {
259
- writeNDJSON({ type: 'pr:creating' });
260
- this.sendEvent({ type: 'PR_APPROVED' });
261
- }
262
- else {
263
- writeNDJSON({ type: 'pr:skipped', reason: '--create-pr not set' });
264
- this.sendEvent({ type: 'PR_DECLINED' });
265
- }
266
- };
267
- handlePrSuccess = ({ url }) => {
268
- writeNDJSON({ type: 'pr:created', url });
269
- };
270
- handlePrFailed = ({ error }) => {
271
- writeNDJSON({ type: 'pr:failed', error });
272
- };
273
- handlePushFailed = ({ error }) => {
274
- writeNDJSON({ type: 'push:failed', error });
275
- };
276
- handleManualInstructions = ({ instructions }) => {
277
- writeNDJSON({ type: 'postinstall:manual', instructions });
278
- };
279
- // ===== Terminal Events =====
280
- handleComplete = ({ success, summary }) => {
281
- writeNDJSON({ type: 'complete', success, summary, scaffolded: this.scaffolded });
282
- };
283
- handleError = ({ message, stack }) => {
284
- const isServiceError = /\b50[0-9]\b/.test(message) || /server_error|internal_error|overloaded|service.*unavailable/i.test(message);
285
- const isRateLimit = /\b429\b/.test(message) || /rate.limit/i.test(message);
286
- const isNetworkError = /ECONNREFUSED|ETIMEDOUT|ENOTFOUND|fetch failed/i.test(message);
287
- const isProcessExit = /process exited with code/i.test(message);
288
- let code = 'installer_error';
289
- let displayMessage = message;
290
- if (isServiceError) {
291
- code = 'service_unavailable';
292
- displayMessage = 'The AI service is temporarily unavailable. Please try again in a few minutes.';
293
- }
294
- else if (isRateLimit) {
295
- code = 'rate_limited';
296
- displayMessage = 'The AI service is currently rate-limited. Please wait a minute and try again.';
297
- }
298
- else if (isNetworkError) {
299
- code = 'network_error';
300
- displayMessage = 'Could not connect to the AI service. Check your internet connection and try again.';
301
- }
302
- else if (isProcessExit) {
303
- code = 'process_error';
304
- displayMessage = 'The AI agent process exited unexpectedly. Try running again with --debug for details.';
305
- }
306
- writeNDJSON({ type: 'error', code, message: displayMessage });
307
- this.debugLog(stack ?? '');
308
- };
309
- }
310
- //# sourceMappingURL=headless-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headless-adapter.js","sourceRoot":"","sources":["../../../src/lib/adapters/headless-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { InstallerAdapter, AdapterConfig } from './types.js';\nimport type { InstallerEventEmitter, InstallerEvents } from '../events.js';\nimport { writeNDJSON } from '../../utils/ndjson.js';\nimport { ExitCode } from '../../utils/exit-codes.js';\n\n/**\n * Options controlling headless adapter behavior.\n * Corresponds to CLI flags passed in non-interactive mode.\n */\nexport interface HeadlessOptions {\n apiKey?: string;\n clientId?: string;\n noBranch?: boolean;\n noCommit?: boolean;\n createPr?: boolean;\n noGitCheck?: boolean;\n}\n\n/**\n * Non-interactive adapter for CI/CD and agent consumption.\n *\n * Subscribes to the same installer events as CLIAdapter but never prompts.\n * All decisions are auto-resolved with sensible defaults (overridable via flags).\n * Progress is streamed as NDJSON to stdout.\n */\nexport class HeadlessAdapter implements InstallerAdapter {\n readonly emitter: InstallerEventEmitter;\n private sendEvent: AdapterConfig['sendEvent'];\n private debug: boolean;\n private options: HeadlessOptions;\n private isStarted = false;\n private scaffolded = false;\n private handlers = new Map<string, (...args: unknown[]) => void>();\n\n constructor(config: AdapterConfig & { options: HeadlessOptions }) {\n this.emitter = config.emitter;\n this.sendEvent = config.sendEvent;\n this.debug = config.debug ?? false;\n this.options = config.options;\n }\n\n async start(): Promise<void> {\n if (this.isStarted) return;\n this.isStarted = true;\n\n // Auth events\n this.subscribe('auth:success', this.handleAuthSuccess);\n this.subscribe('auth:failure', this.handleAuthFailure);\n\n // Scaffold events (empty-directory app scaffolding) — auto-routed, no prompt\n this.subscribe('scaffold:checking', this.handleScaffoldChecking);\n this.subscribe('scaffold:start', this.handleScaffoldStart);\n this.subscribe('scaffold:progress', this.handleScaffoldProgress);\n this.subscribe('scaffold:complete', this.handleScaffoldComplete);\n this.subscribe('scaffold:failed', this.handleScaffoldFailed);\n\n // Detection events\n this.subscribe('detection:complete', this.handleDetectionComplete);\n this.subscribe('detection:none', this.handleDetectionNone);\n\n // Git events — auto-resolve\n this.subscribe('git:dirty', this.handleGitDirty);\n\n // Credential events — auto-resolve\n this.subscribe('credentials:found', this.handleCredentialsFound);\n this.subscribe('credentials:request', this.handleCredentialsRequest);\n this.subscribe('credentials:env:prompt', this.handleEnvScanPrompt);\n this.subscribe('credentials:env:found', this.handleEnvCredentialsFound);\n\n // Device auth (should not happen in headless, but log if it does)\n this.subscribe('device:started', this.handleDeviceStarted);\n\n // Staging\n this.subscribe('staging:fetching', this.handleStagingFetching);\n this.subscribe('staging:success', this.handleStagingSuccess);\n\n // Config\n this.subscribe('config:complete', this.handleConfigComplete);\n\n // Agent progress\n this.subscribe('agent:start', this.handleAgentStart);\n this.subscribe('agent:progress', this.handleAgentProgress);\n\n // Validation\n this.subscribe('validation:start', this.handleValidationStart);\n this.subscribe('validation:issues', this.handleValidationIssues);\n this.subscribe('validation:complete', this.handleValidationComplete);\n\n // Branch — auto-resolve\n this.subscribe('branch:prompt', this.handleBranchPrompt);\n this.subscribe('branch:created', this.handleBranchCreated);\n\n // Post-install — auto-resolve\n this.subscribe('postinstall:changes', this.handlePostInstallChanges);\n this.subscribe('postinstall:commit:prompt', this.handleCommitPrompt);\n this.subscribe('postinstall:commit:success', this.handleCommitSuccess);\n this.subscribe('postinstall:commit:failed', this.handleCommitFailed);\n this.subscribe('postinstall:pr:prompt', this.handlePrPrompt);\n this.subscribe('postinstall:pr:success', this.handlePrSuccess);\n this.subscribe('postinstall:pr:failed', this.handlePrFailed);\n this.subscribe('postinstall:push:failed', this.handlePushFailed);\n this.subscribe('postinstall:manual', this.handleManualInstructions);\n\n // Terminal events\n this.subscribe('complete', this.handleComplete);\n this.subscribe('error', this.handleError);\n }\n\n async stop(): Promise<void> {\n if (!this.isStarted) return;\n\n for (const [event, handler] of this.handlers) {\n this.emitter.off(event as keyof InstallerEvents, handler as never);\n }\n this.handlers.clear();\n this.isStarted = false;\n }\n\n private subscribe<K extends keyof InstallerEvents>(\n event: K,\n handler: (payload: InstallerEvents[K]) => void | Promise<void>,\n ): void {\n const boundHandler = handler.bind(this);\n this.handlers.set(event, boundHandler as (...args: unknown[]) => void);\n this.emitter.on(event, boundHandler);\n }\n\n private debugLog(message: string): void {\n if (this.debug) {\n writeNDJSON({ type: 'debug', message });\n }\n }\n\n // ===== Auth Handlers =====\n\n private handleAuthSuccess = (): void => {\n writeNDJSON({ type: 'auth:success' });\n };\n\n private handleAuthFailure = ({ message }: InstallerEvents['auth:failure']): void => {\n writeNDJSON({ type: 'auth:required', message });\n process.exit(ExitCode.AUTH_REQUIRED);\n };\n\n // ===== Scaffold Handlers (auto-routed) =====\n\n private handleScaffoldChecking = (): void => {\n writeNDJSON({ type: 'scaffold:checking' });\n };\n\n private handleScaffoldStart = ({ packageManager }: InstallerEvents['scaffold:start']): void => {\n writeNDJSON({ type: 'scaffold:start', packageManager });\n };\n\n // create-next-app output is verbose; surface it only under --debug.\n private handleScaffoldProgress = ({ text }: InstallerEvents['scaffold:progress']): void => {\n this.debugLog(text);\n };\n\n private handleScaffoldComplete = (): void => {\n this.scaffolded = true;\n writeNDJSON({ type: 'scaffold:complete' });\n };\n\n private handleScaffoldFailed = ({ error }: InstallerEvents['scaffold:failed']): void => {\n writeNDJSON({ type: 'scaffold:failed', error });\n };\n\n // ===== Detection Handlers =====\n\n private handleDetectionComplete = ({ integration }: InstallerEvents['detection:complete']): void => {\n writeNDJSON({ type: 'detection:complete', integration });\n };\n\n private handleDetectionNone = (): void => {\n writeNDJSON({ type: 'detection:none' });\n };\n\n // ===== Git Handlers (auto-resolve) =====\n\n private handleGitDirty = ({ files }: InstallerEvents['git:dirty']): void => {\n writeNDJSON({ type: 'git:status', dirty: true, files });\n\n if (this.options.noGitCheck) {\n writeNDJSON({ type: 'git:decision', action: 'continue' });\n this.sendEvent({ type: 'GIT_CONFIRMED' });\n return;\n }\n\n writeNDJSON({\n type: 'error',\n code: 'git_dirty',\n message:\n 'Git working tree is dirty in non-interactive mode. ' +\n 'Commit or stash your changes, or rerun with --no-git-check to proceed.',\n });\n writeNDJSON({ type: 'git:decision', action: 'cancel' });\n this.sendEvent({ type: 'GIT_CANCELLED' });\n process.exit(ExitCode.GENERAL_ERROR);\n };\n\n // ===== Credential Handlers (auto-resolve) =====\n\n private handleCredentialsFound = (): void => {\n writeNDJSON({ type: 'credentials:found', source: 'env' });\n };\n\n private handleCredentialsRequest = ({ requiresApiKey }: InstallerEvents['credentials:request']): void => {\n if (!this.options.clientId) {\n writeNDJSON({\n type: 'error',\n code: 'missing_credentials',\n message: 'Client ID required in non-interactive mode. Pass --client-id flag.',\n });\n process.exit(ExitCode.GENERAL_ERROR);\n }\n\n if (requiresApiKey && !this.options.apiKey) {\n writeNDJSON({\n type: 'error',\n code: 'missing_credentials',\n message: 'API key required for this framework. Pass --api-key flag.',\n });\n process.exit(ExitCode.GENERAL_ERROR);\n }\n\n writeNDJSON({ type: 'credentials:provided', source: 'flag' });\n this.sendEvent({\n type: 'CREDENTIALS_SUBMITTED',\n apiKey: this.options.apiKey ?? '',\n clientId: this.options.clientId,\n });\n };\n\n private handleEnvScanPrompt = (): void => {\n writeNDJSON({ type: 'credentials:env:scanning' });\n this.sendEvent({ type: 'ENV_SCAN_APPROVED' });\n };\n\n private handleEnvCredentialsFound = ({ sourcePath }: InstallerEvents['credentials:env:found']): void => {\n writeNDJSON({ type: 'credentials:found', source: 'env', sourcePath });\n };\n\n // ===== Device Auth (should not occur in headless) =====\n\n private handleDeviceStarted = ({ verificationUri, userCode }: InstallerEvents['device:started']): void => {\n writeNDJSON({\n type: 'auth:device_required',\n verificationUri,\n userCode,\n message: 'Device auth cannot proceed in non-interactive mode',\n });\n };\n\n // ===== Staging =====\n\n private handleStagingFetching = (): void => {\n writeNDJSON({ type: 'staging:fetching' });\n };\n\n private handleStagingSuccess = (): void => {\n writeNDJSON({ type: 'staging:success' });\n };\n\n // ===== Config =====\n\n private handleConfigComplete = (): void => {\n writeNDJSON({ type: 'config:complete' });\n };\n\n // ===== Agent Progress =====\n\n private handleAgentStart = (): void => {\n writeNDJSON({ type: 'agent:start' });\n };\n\n private handleAgentProgress = ({ step, detail }: InstallerEvents['agent:progress']): void => {\n const message = detail ? `${step}: ${detail}` : step;\n writeNDJSON({ type: 'agent:progress', message });\n };\n\n // ===== Validation =====\n\n private handleValidationStart = ({ framework }: InstallerEvents['validation:start']): void => {\n writeNDJSON({ type: 'validation:start', framework });\n };\n\n private handleValidationIssues = ({ issues }: InstallerEvents['validation:issues']): void => {\n for (const issue of issues) {\n writeNDJSON({ type: 'validation:issue', severity: issue.severity, message: issue.message });\n }\n };\n\n private handleValidationComplete = ({ passed, issueCount }: InstallerEvents['validation:complete']): void => {\n writeNDJSON({ type: 'validation:complete', passed, issues: issueCount });\n };\n\n // ===== Branch (auto-resolve) =====\n\n private handleBranchPrompt = (): void => {\n if (this.options.noBranch) {\n writeNDJSON({ type: 'branch:skipped', reason: '--no-branch flag' });\n this.sendEvent({ type: 'BRANCH_CONTINUE' });\n } else {\n writeNDJSON({ type: 'branch:creating' });\n this.sendEvent({ type: 'BRANCH_CREATE' });\n }\n };\n\n private handleBranchCreated = ({ branch }: InstallerEvents['branch:created']): void => {\n writeNDJSON({ type: 'branch:created', name: branch });\n };\n\n // ===== Post-install (auto-resolve) =====\n\n private handlePostInstallChanges = ({ files }: InstallerEvents['postinstall:changes']): void => {\n writeNDJSON({ type: 'postinstall:changes', files, count: files.length });\n };\n\n private handleCommitPrompt = (): void => {\n if (this.options.noCommit) {\n writeNDJSON({ type: 'commit:skipped', reason: '--no-commit flag' });\n this.sendEvent({ type: 'COMMIT_DECLINED' });\n } else {\n writeNDJSON({ type: 'commit:auto' });\n this.sendEvent({ type: 'COMMIT_APPROVED' });\n }\n };\n\n private handleCommitSuccess = ({ message }: InstallerEvents['postinstall:commit:success']): void => {\n writeNDJSON({ type: 'commit:created', message });\n };\n\n private handleCommitFailed = ({ error }: InstallerEvents['postinstall:commit:failed']): void => {\n writeNDJSON({ type: 'commit:failed', error });\n };\n\n private handlePrPrompt = (): void => {\n if (this.options.createPr) {\n writeNDJSON({ type: 'pr:creating' });\n this.sendEvent({ type: 'PR_APPROVED' });\n } else {\n writeNDJSON({ type: 'pr:skipped', reason: '--create-pr not set' });\n this.sendEvent({ type: 'PR_DECLINED' });\n }\n };\n\n private handlePrSuccess = ({ url }: InstallerEvents['postinstall:pr:success']): void => {\n writeNDJSON({ type: 'pr:created', url });\n };\n\n private handlePrFailed = ({ error }: InstallerEvents['postinstall:pr:failed']): void => {\n writeNDJSON({ type: 'pr:failed', error });\n };\n\n private handlePushFailed = ({ error }: InstallerEvents['postinstall:push:failed']): void => {\n writeNDJSON({ type: 'push:failed', error });\n };\n\n private handleManualInstructions = ({ instructions }: InstallerEvents['postinstall:manual']): void => {\n writeNDJSON({ type: 'postinstall:manual', instructions });\n };\n\n // ===== Terminal Events =====\n\n private handleComplete = ({ success, summary }: InstallerEvents['complete']): void => {\n writeNDJSON({ type: 'complete', success, summary, scaffolded: this.scaffolded });\n };\n\n private handleError = ({ message, stack }: InstallerEvents['error']): void => {\n const isServiceError =\n /\\b50[0-9]\\b/.test(message) || /server_error|internal_error|overloaded|service.*unavailable/i.test(message);\n const isRateLimit = /\\b429\\b/.test(message) || /rate.limit/i.test(message);\n const isNetworkError = /ECONNREFUSED|ETIMEDOUT|ENOTFOUND|fetch failed/i.test(message);\n const isProcessExit = /process exited with code/i.test(message);\n\n let code = 'installer_error';\n let displayMessage = message;\n\n if (isServiceError) {\n code = 'service_unavailable';\n displayMessage = 'The AI service is temporarily unavailable. Please try again in a few minutes.';\n } else if (isRateLimit) {\n code = 'rate_limited';\n displayMessage = 'The AI service is currently rate-limited. Please wait a minute and try again.';\n } else if (isNetworkError) {\n code = 'network_error';\n displayMessage = 'Could not connect to the AI service. Check your internet connection and try again.';\n } else if (isProcessExit) {\n code = 'process_error';\n displayMessage = 'The AI agent process exited unexpectedly. Try running again with --debug for details.';\n }\n\n writeNDJSON({ type: 'error', code, message: displayMessage });\n this.debugLog(stack ?? '');\n };\n}\n"]}
@@ -1,4 +0,0 @@
1
- export { CLIAdapter } from './cli-adapter.js';
2
- export { DashboardAdapter } from './dashboard-adapter.js';
3
- export { HeadlessAdapter } from './headless-adapter.js';
4
- export type { InstallerAdapter, AdapterConfig } from './types.js';
@@ -1,4 +0,0 @@
1
- export { CLIAdapter } from './cli-adapter.js';
2
- export { DashboardAdapter } from './dashboard-adapter.js';
3
- export { HeadlessAdapter } from './headless-adapter.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["export { CLIAdapter } from './cli-adapter.js';\nexport { DashboardAdapter } from './dashboard-adapter.js';\nexport { HeadlessAdapter } from './headless-adapter.js';\nexport type { InstallerAdapter, AdapterConfig } from './types.js';\n"]}
@@ -1,41 +0,0 @@
1
- import type { InstallerEventEmitter } from '../events.js';
2
- /**
3
- * Configuration passed to adapter constructors.
4
- */
5
- export interface AdapterConfig {
6
- /** Event emitter to subscribe to */
7
- emitter: InstallerEventEmitter;
8
- /**
9
- * Callback to send events back to the machine.
10
- * Used for user responses (confirmations, credentials, etc.)
11
- */
12
- sendEvent: (event: {
13
- type: string;
14
- [key: string]: unknown;
15
- }) => void;
16
- /** Enable verbose debug output (stack traces, etc.) */
17
- debug?: boolean;
18
- }
19
- /**
20
- * Interface all UI adapters must implement.
21
- *
22
- * Adapters are event subscribers that translate machine events
23
- * into framework-specific UI rendering. They don't control flow—
24
- * they react to it.
25
- */
26
- export interface InstallerAdapter {
27
- /**
28
- * Start the adapter.
29
- * - Subscribe to emitter events
30
- * - Initialize UI framework (show intro, enter fullscreen, etc.)
31
- */
32
- start(): Promise<void>;
33
- /**
34
- * Stop the adapter.
35
- * - Unsubscribe from all events
36
- * - Clean up UI (exit fullscreen, restore terminal, etc.)
37
- */
38
- stop(): Promise<void>;
39
- /** The emitter this adapter subscribes to */
40
- readonly emitter: InstallerEventEmitter;
41
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/adapters/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InstallerEventEmitter } from '../events.js';\n\n/**\n * Configuration passed to adapter constructors.\n */\nexport interface AdapterConfig {\n /** Event emitter to subscribe to */\n emitter: InstallerEventEmitter;\n\n /**\n * Callback to send events back to the machine.\n * Used for user responses (confirmations, credentials, etc.)\n */\n sendEvent: (event: { type: string; [key: string]: unknown }) => void;\n\n /** Enable verbose debug output (stack traces, etc.) */\n debug?: boolean;\n}\n\n/**\n * Interface all UI adapters must implement.\n *\n * Adapters are event subscribers that translate machine events\n * into framework-specific UI rendering. They don't control flow—\n * they react to it.\n */\nexport interface InstallerAdapter {\n /**\n * Start the adapter.\n * - Subscribe to emitter events\n * - Initialize UI framework (show intro, enter fullscreen, etc.)\n */\n start(): Promise<void>;\n\n /**\n * Stop the adapter.\n * - Unsubscribe from all events\n * - Clean up UI (exit fullscreen, restore terminal, etc.)\n */\n stop(): Promise<void>;\n\n /** The emitter this adapter subscribes to */\n readonly emitter: InstallerEventEmitter;\n}\n"]}