workos 0.19.0 → 0.20.2

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 (681) hide show
  1. package/README.md +4 -646
  2. package/bin/workos.js +44 -0
  3. package/package.json +18 -99
  4. package/LICENSE +0 -47
  5. package/dist/bin.d.ts +0 -2
  6. package/dist/bin.js +0 -1790
  7. package/dist/bin.js.map +0 -1
  8. package/dist/cli.config.d.ts +0 -88
  9. package/dist/cli.config.js +0 -110
  10. package/dist/cli.config.js.map +0 -1
  11. package/dist/commands/api/catalog.d.ts +0 -23
  12. package/dist/commands/api/catalog.js +0 -97
  13. package/dist/commands/api/catalog.js.map +0 -1
  14. package/dist/commands/api/format.d.ts +0 -5
  15. package/dist/commands/api/format.js +0 -46
  16. package/dist/commands/api/format.js.map +0 -1
  17. package/dist/commands/api/index.d.ts +0 -15
  18. package/dist/commands/api/index.js +0 -213
  19. package/dist/commands/api/index.js.map +0 -1
  20. package/dist/commands/api/interactive.d.ts +0 -3
  21. package/dist/commands/api/interactive.js +0 -133
  22. package/dist/commands/api/interactive.js.map +0 -1
  23. package/dist/commands/api/request.d.ts +0 -14
  24. package/dist/commands/api/request.js +0 -38
  25. package/dist/commands/api/request.js.map +0 -1
  26. package/dist/commands/api-key-mgmt.d.ts +0 -16
  27. package/dist/commands/api-key-mgmt.js +0 -96
  28. package/dist/commands/api-key-mgmt.js.map +0 -1
  29. package/dist/commands/audit-log.d.ts +0 -26
  30. package/dist/commands/audit-log.js +0 -155
  31. package/dist/commands/audit-log.js.map +0 -1
  32. package/dist/commands/auth-status.d.ts +0 -1
  33. package/dist/commands/auth-status.js +0 -57
  34. package/dist/commands/auth-status.js.map +0 -1
  35. package/dist/commands/claim.d.ts +0 -11
  36. package/dist/commands/claim.js +0 -143
  37. package/dist/commands/claim.js.map +0 -1
  38. package/dist/commands/config.d.ts +0 -3
  39. package/dist/commands/config.js +0 -54
  40. package/dist/commands/config.js.map +0 -1
  41. package/dist/commands/connection.d.ts +0 -13
  42. package/dist/commands/connection.js +0 -96
  43. package/dist/commands/connection.js.map +0 -1
  44. package/dist/commands/debug-sso.d.ts +0 -1
  45. package/dist/commands/debug-sso.js +0 -78
  46. package/dist/commands/debug-sso.js.map +0 -1
  47. package/dist/commands/debug-sync.d.ts +0 -1
  48. package/dist/commands/debug-sync.js +0 -102
  49. package/dist/commands/debug-sync.js.map +0 -1
  50. package/dist/commands/debug.d.ts +0 -28
  51. package/dist/commands/debug.js +0 -406
  52. package/dist/commands/debug.js.map +0 -1
  53. package/dist/commands/dev.d.ts +0 -22
  54. package/dist/commands/dev.js +0 -145
  55. package/dist/commands/dev.js.map +0 -1
  56. package/dist/commands/directory.d.ts +0 -27
  57. package/dist/commands/directory.js +0 -176
  58. package/dist/commands/directory.js.map +0 -1
  59. package/dist/commands/doctor.d.ts +0 -12
  60. package/dist/commands/doctor.js +0 -41
  61. package/dist/commands/doctor.js.map +0 -1
  62. package/dist/commands/emulate.d.ts +0 -7
  63. package/dist/commands/emulate.js +0 -69
  64. package/dist/commands/emulate.js.map +0 -1
  65. package/dist/commands/env.d.ts +0 -19
  66. package/dist/commands/env.js +0 -303
  67. package/dist/commands/env.js.map +0 -1
  68. package/dist/commands/event.d.ts +0 -9
  69. package/dist/commands/event.js +0 -43
  70. package/dist/commands/event.js.map +0 -1
  71. package/dist/commands/feature-flag.d.ts +0 -12
  72. package/dist/commands/feature-flag.js +0 -96
  73. package/dist/commands/feature-flag.js.map +0 -1
  74. package/dist/commands/install-skill.d.ts +0 -85
  75. package/dist/commands/install-skill.js +0 -332
  76. package/dist/commands/install-skill.js.map +0 -1
  77. package/dist/commands/install.d.ts +0 -6
  78. package/dist/commands/install.js +0 -51
  79. package/dist/commands/install.js.map +0 -1
  80. package/dist/commands/invitation.d.ts +0 -19
  81. package/dist/commands/invitation.js +0 -94
  82. package/dist/commands/invitation.js.map +0 -1
  83. package/dist/commands/list-skills.d.ts +0 -4
  84. package/dist/commands/list-skills.js +0 -52
  85. package/dist/commands/list-skills.js.map +0 -1
  86. package/dist/commands/login.d.ts +0 -32
  87. package/dist/commands/login.js +0 -239
  88. package/dist/commands/login.js.map +0 -1
  89. package/dist/commands/logout.d.ts +0 -1
  90. package/dist/commands/logout.js +0 -17
  91. package/dist/commands/logout.js.map +0 -1
  92. package/dist/commands/mcp.d.ts +0 -14
  93. package/dist/commands/mcp.js +0 -99
  94. package/dist/commands/mcp.js.map +0 -1
  95. package/dist/commands/membership.d.ts +0 -20
  96. package/dist/commands/membership.js +0 -129
  97. package/dist/commands/membership.js.map +0 -1
  98. package/dist/commands/migrations.d.ts +0 -2
  99. package/dist/commands/migrations.js +0 -50
  100. package/dist/commands/migrations.js.map +0 -1
  101. package/dist/commands/onboard-user.d.ts +0 -7
  102. package/dist/commands/onboard-user.js +0 -61
  103. package/dist/commands/onboard-user.js.map +0 -1
  104. package/dist/commands/org-domain.d.ts +0 -4
  105. package/dist/commands/org-domain.js +0 -45
  106. package/dist/commands/org-domain.js.map +0 -1
  107. package/dist/commands/organization.d.ts +0 -14
  108. package/dist/commands/organization.js +0 -103
  109. package/dist/commands/organization.js.map +0 -1
  110. package/dist/commands/permission.d.ts +0 -20
  111. package/dist/commands/permission.js +0 -93
  112. package/dist/commands/permission.js.map +0 -1
  113. package/dist/commands/portal.d.ts +0 -7
  114. package/dist/commands/portal.js +0 -26
  115. package/dist/commands/portal.js.map +0 -1
  116. package/dist/commands/role.d.ts +0 -17
  117. package/dist/commands/role.js +0 -122
  118. package/dist/commands/role.js.map +0 -1
  119. package/dist/commands/seed.d.ts +0 -6
  120. package/dist/commands/seed.js +0 -298
  121. package/dist/commands/seed.js.map +0 -1
  122. package/dist/commands/session.d.ts +0 -8
  123. package/dist/commands/session.js +0 -63
  124. package/dist/commands/session.js.map +0 -1
  125. package/dist/commands/setup-org.d.ts +0 -6
  126. package/dist/commands/setup-org.js +0 -99
  127. package/dist/commands/setup-org.js.map +0 -1
  128. package/dist/commands/setup.d.ts +0 -50
  129. package/dist/commands/setup.js +0 -237
  130. package/dist/commands/setup.js.map +0 -1
  131. package/dist/commands/telemetry.d.ts +0 -3
  132. package/dist/commands/telemetry.js +0 -88
  133. package/dist/commands/telemetry.js.map +0 -1
  134. package/dist/commands/uninstall-skill.d.ts +0 -11
  135. package/dist/commands/uninstall-skill.js +0 -117
  136. package/dist/commands/uninstall-skill.js.map +0 -1
  137. package/dist/commands/user.d.ts +0 -19
  138. package/dist/commands/user.js +0 -92
  139. package/dist/commands/user.js.map +0 -1
  140. package/dist/commands/vault-run.d.ts +0 -13
  141. package/dist/commands/vault-run.js +0 -195
  142. package/dist/commands/vault-run.js.map +0 -1
  143. package/dist/commands/vault.d.ts +0 -25
  144. package/dist/commands/vault.js +0 -153
  145. package/dist/commands/vault.js.map +0 -1
  146. package/dist/commands/verify-login.d.ts +0 -25
  147. package/dist/commands/verify-login.js +0 -158
  148. package/dist/commands/verify-login.js.map +0 -1
  149. package/dist/commands/webhook.d.ts +0 -3
  150. package/dist/commands/webhook.js +0 -92
  151. package/dist/commands/webhook.js.map +0 -1
  152. package/dist/craft-pre-release.sh +0 -10
  153. package/dist/dashboard/components/AnimatedLogo.d.ts +0 -8
  154. package/dist/dashboard/components/AnimatedLogo.js +0 -16
  155. package/dist/dashboard/components/AnimatedLogo.js.map +0 -1
  156. package/dist/dashboard/components/CompletionView.d.ts +0 -13
  157. package/dist/dashboard/components/CompletionView.js +0 -25
  158. package/dist/dashboard/components/CompletionView.js.map +0 -1
  159. package/dist/dashboard/components/ConfirmPrompt.d.ts +0 -9
  160. package/dist/dashboard/components/ConfirmPrompt.js +0 -25
  161. package/dist/dashboard/components/ConfirmPrompt.js.map +0 -1
  162. package/dist/dashboard/components/CredentialsForm.d.ts +0 -10
  163. package/dist/dashboard/components/CredentialsForm.js +0 -47
  164. package/dist/dashboard/components/CredentialsForm.js.map +0 -1
  165. package/dist/dashboard/components/Dashboard.d.ts +0 -3
  166. package/dist/dashboard/components/Dashboard.js +0 -100
  167. package/dist/dashboard/components/Dashboard.js.map +0 -1
  168. package/dist/dashboard/components/DashboardLayout.d.ts +0 -24
  169. package/dist/dashboard/components/DashboardLayout.js +0 -25
  170. package/dist/dashboard/components/DashboardLayout.js.map +0 -1
  171. package/dist/dashboard/components/DiffPanel.d.ts +0 -9
  172. package/dist/dashboard/components/DiffPanel.js +0 -136
  173. package/dist/dashboard/components/DiffPanel.js.map +0 -1
  174. package/dist/dashboard/components/InlinePrompt.d.ts +0 -8
  175. package/dist/dashboard/components/InlinePrompt.js +0 -19
  176. package/dist/dashboard/components/InlinePrompt.js.map +0 -1
  177. package/dist/dashboard/components/OutputPanel.d.ts +0 -10
  178. package/dist/dashboard/components/OutputPanel.js +0 -100
  179. package/dist/dashboard/components/OutputPanel.js.map +0 -1
  180. package/dist/dashboard/components/Panel.d.ts +0 -12
  181. package/dist/dashboard/components/Panel.js +0 -6
  182. package/dist/dashboard/components/Panel.js.map +0 -1
  183. package/dist/dashboard/components/TextInput.d.ts +0 -13
  184. package/dist/dashboard/components/TextInput.js +0 -57
  185. package/dist/dashboard/components/TextInput.js.map +0 -1
  186. package/dist/dashboard/components/WelcomeArt.d.ts +0 -2
  187. package/dist/dashboard/components/WelcomeArt.js +0 -9
  188. package/dist/dashboard/components/WelcomeArt.js.map +0 -1
  189. package/dist/dashboard/hooks/useAnimation.d.ts +0 -7
  190. package/dist/dashboard/hooks/useAnimation.js +0 -24
  191. package/dist/dashboard/hooks/useAnimation.js.map +0 -1
  192. package/dist/dashboard/hooks/useKeyboard.d.ts +0 -8
  193. package/dist/dashboard/hooks/useKeyboard.js +0 -18
  194. package/dist/dashboard/hooks/useKeyboard.js.map +0 -1
  195. package/dist/dashboard/hooks/useTerminalSize.d.ts +0 -8
  196. package/dist/dashboard/hooks/useTerminalSize.js +0 -23
  197. package/dist/dashboard/hooks/useTerminalSize.js.map +0 -1
  198. package/dist/dashboard/index.d.ts +0 -6
  199. package/dist/dashboard/index.js +0 -36
  200. package/dist/dashboard/index.js.map +0 -1
  201. package/dist/dashboard/lib/diff-utils.d.ts +0 -21
  202. package/dist/dashboard/lib/diff-utils.js +0 -271
  203. package/dist/dashboard/lib/diff-utils.js.map +0 -1
  204. package/dist/dashboard/lib/logo-frames.d.ts +0 -20
  205. package/dist/dashboard/lib/logo-frames.js +0 -109
  206. package/dist/dashboard/lib/logo-frames.js.map +0 -1
  207. package/dist/dashboard/lib/welcome-art.d.ts +0 -1
  208. package/dist/dashboard/lib/welcome-art.js +0 -5
  209. package/dist/dashboard/lib/welcome-art.js.map +0 -1
  210. package/dist/dashboard/types.d.ts +0 -5
  211. package/dist/dashboard/types.js +0 -2
  212. package/dist/dashboard/types.js.map +0 -1
  213. package/dist/doctor/agent-prompt.d.ts +0 -10
  214. package/dist/doctor/agent-prompt.js +0 -190
  215. package/dist/doctor/agent-prompt.js.map +0 -1
  216. package/dist/doctor/checks/ai-analysis.d.ts +0 -9
  217. package/dist/doctor/checks/ai-analysis.js +0 -124
  218. package/dist/doctor/checks/ai-analysis.js.map +0 -1
  219. package/dist/doctor/checks/auth-patterns.d.ts +0 -2
  220. package/dist/doctor/checks/auth-patterns.js +0 -569
  221. package/dist/doctor/checks/auth-patterns.js.map +0 -1
  222. package/dist/doctor/checks/connectivity.d.ts +0 -2
  223. package/dist/doctor/checks/connectivity.js +0 -35
  224. package/dist/doctor/checks/connectivity.js.map +0 -1
  225. package/dist/doctor/checks/dashboard.d.ts +0 -3
  226. package/dist/doctor/checks/dashboard.js +0 -123
  227. package/dist/doctor/checks/dashboard.js.map +0 -1
  228. package/dist/doctor/checks/environment.d.ts +0 -2
  229. package/dist/doctor/checks/environment.js +0 -86
  230. package/dist/doctor/checks/environment.js.map +0 -1
  231. package/dist/doctor/checks/framework.d.ts +0 -2
  232. package/dist/doctor/checks/framework.js +0 -94
  233. package/dist/doctor/checks/framework.js.map +0 -1
  234. package/dist/doctor/checks/host-execution.d.ts +0 -2
  235. package/dist/doctor/checks/host-execution.js +0 -21
  236. package/dist/doctor/checks/host-execution.js.map +0 -1
  237. package/dist/doctor/checks/language.d.ts +0 -6
  238. package/dist/doctor/checks/language.js +0 -104
  239. package/dist/doctor/checks/language.js.map +0 -1
  240. package/dist/doctor/checks/mcp.d.ts +0 -15
  241. package/dist/doctor/checks/mcp.js +0 -34
  242. package/dist/doctor/checks/mcp.js.map +0 -1
  243. package/dist/doctor/checks/runtime.d.ts +0 -2
  244. package/dist/doctor/checks/runtime.js +0 -20
  245. package/dist/doctor/checks/runtime.js.map +0 -1
  246. package/dist/doctor/checks/sdk.d.ts +0 -2
  247. package/dist/doctor/checks/sdk.js +0 -192
  248. package/dist/doctor/checks/sdk.js.map +0 -1
  249. package/dist/doctor/checks/skills.d.ts +0 -9
  250. package/dist/doctor/checks/skills.js +0 -84
  251. package/dist/doctor/checks/skills.js.map +0 -1
  252. package/dist/doctor/clipboard.d.ts +0 -1
  253. package/dist/doctor/clipboard.js +0 -43
  254. package/dist/doctor/clipboard.js.map +0 -1
  255. package/dist/doctor/index.d.ts +0 -26
  256. package/dist/doctor/index.js +0 -182
  257. package/dist/doctor/index.js.map +0 -1
  258. package/dist/doctor/issues.d.ts +0 -63
  259. package/dist/doctor/issues.js +0 -199
  260. package/dist/doctor/issues.js.map +0 -1
  261. package/dist/doctor/json-output.d.ts +0 -2
  262. package/dist/doctor/json-output.js +0 -4
  263. package/dist/doctor/json-output.js.map +0 -1
  264. package/dist/doctor/output.d.ts +0 -7
  265. package/dist/doctor/output.js +0 -289
  266. package/dist/doctor/output.js.map +0 -1
  267. package/dist/doctor/types.d.ts +0 -203
  268. package/dist/doctor/types.js +0 -2
  269. package/dist/doctor/types.js.map +0 -1
  270. package/dist/integrations/dotnet/index.d.ts +0 -8
  271. package/dist/integrations/dotnet/index.js +0 -170
  272. package/dist/integrations/dotnet/index.js.map +0 -1
  273. package/dist/integrations/elixir/index.d.ts +0 -8
  274. package/dist/integrations/elixir/index.js +0 -146
  275. package/dist/integrations/elixir/index.js.map +0 -1
  276. package/dist/integrations/go/index.d.ts +0 -11
  277. package/dist/integrations/go/index.js +0 -212
  278. package/dist/integrations/go/index.js.map +0 -1
  279. package/dist/integrations/kotlin/index.d.ts +0 -4
  280. package/dist/integrations/kotlin/index.js +0 -78
  281. package/dist/integrations/kotlin/index.js.map +0 -1
  282. package/dist/integrations/nextjs/index.d.ts +0 -4
  283. package/dist/integrations/nextjs/index.js +0 -93
  284. package/dist/integrations/nextjs/index.js.map +0 -1
  285. package/dist/integrations/nextjs/utils.d.ts +0 -8
  286. package/dist/integrations/nextjs/utils.js +0 -68
  287. package/dist/integrations/nextjs/utils.js.map +0 -1
  288. package/dist/integrations/node/index.d.ts +0 -4
  289. package/dist/integrations/node/index.js +0 -52
  290. package/dist/integrations/node/index.js.map +0 -1
  291. package/dist/integrations/php/index.d.ts +0 -4
  292. package/dist/integrations/php/index.js +0 -51
  293. package/dist/integrations/php/index.js.map +0 -1
  294. package/dist/integrations/php-laravel/index.d.ts +0 -4
  295. package/dist/integrations/php-laravel/index.js +0 -51
  296. package/dist/integrations/php-laravel/index.js.map +0 -1
  297. package/dist/integrations/python/index.d.ts +0 -9
  298. package/dist/integrations/python/index.js +0 -249
  299. package/dist/integrations/python/index.js.map +0 -1
  300. package/dist/integrations/react/index.d.ts +0 -4
  301. package/dist/integrations/react/index.js +0 -49
  302. package/dist/integrations/react/index.js.map +0 -1
  303. package/dist/integrations/react-router/index.d.ts +0 -4
  304. package/dist/integrations/react-router/index.js +0 -94
  305. package/dist/integrations/react-router/index.js.map +0 -1
  306. package/dist/integrations/react-router/utils.d.ts +0 -10
  307. package/dist/integrations/react-router/utils.js +0 -162
  308. package/dist/integrations/react-router/utils.js.map +0 -1
  309. package/dist/integrations/ruby/index.d.ts +0 -8
  310. package/dist/integrations/ruby/index.js +0 -137
  311. package/dist/integrations/ruby/index.js.map +0 -1
  312. package/dist/integrations/sveltekit/index.d.ts +0 -4
  313. package/dist/integrations/sveltekit/index.js +0 -50
  314. package/dist/integrations/sveltekit/index.js.map +0 -1
  315. package/dist/integrations/tanstack-start/index.d.ts +0 -4
  316. package/dist/integrations/tanstack-start/index.js +0 -51
  317. package/dist/integrations/tanstack-start/index.js.map +0 -1
  318. package/dist/integrations/vanilla-js/index.d.ts +0 -4
  319. package/dist/integrations/vanilla-js/index.js +0 -49
  320. package/dist/integrations/vanilla-js/index.js.map +0 -1
  321. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.d.ts +0 -7
  322. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js +0 -12
  323. package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js.map +0 -1
  324. package/dist/lib/adapters/cli-adapter.d.ts +0 -113
  325. package/dist/lib/adapters/cli-adapter.js +0 -641
  326. package/dist/lib/adapters/cli-adapter.js.map +0 -1
  327. package/dist/lib/adapters/dashboard-adapter.d.ts +0 -34
  328. package/dist/lib/adapters/dashboard-adapter.js +0 -121
  329. package/dist/lib/adapters/dashboard-adapter.js.map +0 -1
  330. package/dist/lib/adapters/headless-adapter.d.ts +0 -80
  331. package/dist/lib/adapters/headless-adapter.js +0 -347
  332. package/dist/lib/adapters/headless-adapter.js.map +0 -1
  333. package/dist/lib/adapters/index.d.ts +0 -4
  334. package/dist/lib/adapters/index.js +0 -4
  335. package/dist/lib/adapters/index.js.map +0 -1
  336. package/dist/lib/adapters/types.d.ts +0 -41
  337. package/dist/lib/adapters/types.js +0 -2
  338. package/dist/lib/adapters/types.js.map +0 -1
  339. package/dist/lib/agent-interface.d.ts +0 -84
  340. package/dist/lib/agent-interface.js +0 -840
  341. package/dist/lib/agent-interface.js.map +0 -1
  342. package/dist/lib/agent-runner.d.ts +0 -9
  343. package/dist/lib/agent-runner.js +0 -261
  344. package/dist/lib/agent-runner.js.map +0 -1
  345. package/dist/lib/ai-content.d.ts +0 -14
  346. package/dist/lib/ai-content.js +0 -131
  347. package/dist/lib/ai-content.js.map +0 -1
  348. package/dist/lib/api-error-handler.d.ts +0 -18
  349. package/dist/lib/api-error-handler.js +0 -76
  350. package/dist/lib/api-error-handler.js.map +0 -1
  351. package/dist/lib/api-key.d.ts +0 -14
  352. package/dist/lib/api-key.js +0 -37
  353. package/dist/lib/api-key.js.map +0 -1
  354. package/dist/lib/api.d.ts +0 -25
  355. package/dist/lib/api.js +0 -120
  356. package/dist/lib/api.js.map +0 -1
  357. package/dist/lib/background-refresh.d.ts +0 -29
  358. package/dist/lib/background-refresh.js +0 -95
  359. package/dist/lib/background-refresh.js.map +0 -1
  360. package/dist/lib/command-aliases.d.ts +0 -8
  361. package/dist/lib/command-aliases.js +0 -12
  362. package/dist/lib/command-aliases.js.map +0 -1
  363. package/dist/lib/completion-data.d.ts +0 -33
  364. package/dist/lib/completion-data.js +0 -33
  365. package/dist/lib/completion-data.js.map +0 -1
  366. package/dist/lib/config-store.d.ts +0 -63
  367. package/dist/lib/config-store.js +0 -293
  368. package/dist/lib/config-store.js.map +0 -1
  369. package/dist/lib/config.d.ts +0 -34
  370. package/dist/lib/config.js +0 -37
  371. package/dist/lib/config.js.map +0 -1
  372. package/dist/lib/constants.d.ts +0 -51
  373. package/dist/lib/constants.js +0 -50
  374. package/dist/lib/constants.js.map +0 -1
  375. package/dist/lib/credential-discovery.d.ts +0 -42
  376. package/dist/lib/credential-discovery.js +0 -100
  377. package/dist/lib/credential-discovery.js.map +0 -1
  378. package/dist/lib/credential-proxy.d.ts +0 -45
  379. package/dist/lib/credential-proxy.js +0 -364
  380. package/dist/lib/credential-proxy.js.map +0 -1
  381. package/dist/lib/credential-store.d.ts +0 -32
  382. package/dist/lib/credential-store.js +0 -236
  383. package/dist/lib/credential-store.js.map +0 -1
  384. package/dist/lib/credentials.d.ts +0 -13
  385. package/dist/lib/credentials.js +0 -34
  386. package/dist/lib/credentials.js.map +0 -1
  387. package/dist/lib/dev-command.d.ts +0 -26
  388. package/dist/lib/dev-command.js +0 -129
  389. package/dist/lib/dev-command.js.map +0 -1
  390. package/dist/lib/device-auth.d.ts +0 -48
  391. package/dist/lib/device-auth.js +0 -176
  392. package/dist/lib/device-auth.js.map +0 -1
  393. package/dist/lib/device-id.d.ts +0 -25
  394. package/dist/lib/device-id.js +0 -102
  395. package/dist/lib/device-id.js.map +0 -1
  396. package/dist/lib/ensure-auth.d.ts +0 -12
  397. package/dist/lib/ensure-auth.js +0 -111
  398. package/dist/lib/ensure-auth.js.map +0 -1
  399. package/dist/lib/env-writer.d.ts +0 -25
  400. package/dist/lib/env-writer.js +0 -90
  401. package/dist/lib/env-writer.js.map +0 -1
  402. package/dist/lib/events.d.ts +0 -248
  403. package/dist/lib/events.js +0 -19
  404. package/dist/lib/events.js.map +0 -1
  405. package/dist/lib/framework-config.d.ts +0 -133
  406. package/dist/lib/framework-config.js +0 -11
  407. package/dist/lib/framework-config.js.map +0 -1
  408. package/dist/lib/helper-functions.d.ts +0 -1
  409. package/dist/lib/helper-functions.js +0 -2
  410. package/dist/lib/helper-functions.js.map +0 -1
  411. package/dist/lib/host-probe.d.ts +0 -28
  412. package/dist/lib/host-probe.js +0 -154
  413. package/dist/lib/host-probe.js.map +0 -1
  414. package/dist/lib/installer-core.d.ts +0 -569
  415. package/dist/lib/installer-core.js +0 -1134
  416. package/dist/lib/installer-core.js.map +0 -1
  417. package/dist/lib/installer-core.types.d.ts +0 -162
  418. package/dist/lib/installer-core.types.js +0 -2
  419. package/dist/lib/installer-core.types.js.map +0 -1
  420. package/dist/lib/mcp-clients.d.ts +0 -45
  421. package/dist/lib/mcp-clients.js +0 -297
  422. package/dist/lib/mcp-clients.js.map +0 -1
  423. package/dist/lib/port-detection.d.ts +0 -7
  424. package/dist/lib/port-detection.js +0 -244
  425. package/dist/lib/port-detection.js.map +0 -1
  426. package/dist/lib/post-install.d.ts +0 -8
  427. package/dist/lib/post-install.js +0 -51
  428. package/dist/lib/post-install.js.map +0 -1
  429. package/dist/lib/preferences.d.ts +0 -143
  430. package/dist/lib/preferences.js +0 -227
  431. package/dist/lib/preferences.js.map +0 -1
  432. package/dist/lib/progress-tracker.d.ts +0 -22
  433. package/dist/lib/progress-tracker.js +0 -47
  434. package/dist/lib/progress-tracker.js.map +0 -1
  435. package/dist/lib/registry.d.ts +0 -42
  436. package/dist/lib/registry.js +0 -96
  437. package/dist/lib/registry.js.map +0 -1
  438. package/dist/lib/resolve-install-credentials.d.ts +0 -11
  439. package/dist/lib/resolve-install-credentials.js +0 -53
  440. package/dist/lib/resolve-install-credentials.js.map +0 -1
  441. package/dist/lib/run-with-core.d.ts +0 -7
  442. package/dist/lib/run-with-core.js +0 -559
  443. package/dist/lib/run-with-core.js.map +0 -1
  444. package/dist/lib/safe-tools.d.ts +0 -2
  445. package/dist/lib/safe-tools.js +0 -212
  446. package/dist/lib/safe-tools.js.map +0 -1
  447. package/dist/lib/scaffold/index.d.ts +0 -1
  448. package/dist/lib/scaffold/index.js +0 -2
  449. package/dist/lib/scaffold/index.js.map +0 -1
  450. package/dist/lib/scaffold/scaffold.d.ts +0 -66
  451. package/dist/lib/scaffold/scaffold.js +0 -156
  452. package/dist/lib/scaffold/scaffold.js.map +0 -1
  453. package/dist/lib/settings.d.ts +0 -60
  454. package/dist/lib/settings.js +0 -31
  455. package/dist/lib/settings.js.map +0 -1
  456. package/dist/lib/staging-api.d.ts +0 -22
  457. package/dist/lib/staging-api.js +0 -74
  458. package/dist/lib/staging-api.js.map +0 -1
  459. package/dist/lib/startup-notice-gate.d.ts +0 -21
  460. package/dist/lib/startup-notice-gate.js +0 -29
  461. package/dist/lib/startup-notice-gate.js.map +0 -1
  462. package/dist/lib/telemetry-notice.d.ts +0 -25
  463. package/dist/lib/telemetry-notice.js +0 -58
  464. package/dist/lib/telemetry-notice.js.map +0 -1
  465. package/dist/lib/token-refresh-client.d.ts +0 -23
  466. package/dist/lib/token-refresh-client.js +0 -89
  467. package/dist/lib/token-refresh-client.js.map +0 -1
  468. package/dist/lib/token-refresh.d.ts +0 -12
  469. package/dist/lib/token-refresh.js +0 -27
  470. package/dist/lib/token-refresh.js.map +0 -1
  471. package/dist/lib/unclaimed-env-api.d.ts +0 -42
  472. package/dist/lib/unclaimed-env-api.js +0 -139
  473. package/dist/lib/unclaimed-env-api.js.map +0 -1
  474. package/dist/lib/unclaimed-env-provision.d.ts +0 -24
  475. package/dist/lib/unclaimed-env-provision.js +0 -80
  476. package/dist/lib/unclaimed-env-provision.js.map +0 -1
  477. package/dist/lib/unclaimed-warning.d.ts +0 -15
  478. package/dist/lib/unclaimed-warning.js +0 -78
  479. package/dist/lib/unclaimed-warning.js.map +0 -1
  480. package/dist/lib/validation/build-validator.d.ts +0 -21
  481. package/dist/lib/validation/build-validator.js +0 -153
  482. package/dist/lib/validation/build-validator.js.map +0 -1
  483. package/dist/lib/validation/index.d.ts +0 -4
  484. package/dist/lib/validation/index.js +0 -4
  485. package/dist/lib/validation/index.js.map +0 -1
  486. package/dist/lib/validation/quick-checks.d.ts +0 -19
  487. package/dist/lib/validation/quick-checks.js +0 -192
  488. package/dist/lib/validation/quick-checks.js.map +0 -1
  489. package/dist/lib/validation/security-checks.d.ts +0 -35
  490. package/dist/lib/validation/security-checks.js +0 -106
  491. package/dist/lib/validation/security-checks.js.map +0 -1
  492. package/dist/lib/validation/types.d.ts +0 -56
  493. package/dist/lib/validation/types.js +0 -2
  494. package/dist/lib/validation/types.js.map +0 -1
  495. package/dist/lib/validation/validator.d.ts +0 -13
  496. package/dist/lib/validation/validator.js +0 -711
  497. package/dist/lib/validation/validator.js.map +0 -1
  498. package/dist/lib/version-check.d.ts +0 -6
  499. package/dist/lib/version-check.js +0 -46
  500. package/dist/lib/version-check.js.map +0 -1
  501. package/dist/lib/workos-api.d.ts +0 -30
  502. package/dist/lib/workos-api.js +0 -69
  503. package/dist/lib/workos-api.js.map +0 -1
  504. package/dist/lib/workos-client.d.ts +0 -58
  505. package/dist/lib/workos-client.js +0 -140
  506. package/dist/lib/workos-client.js.map +0 -1
  507. package/dist/lib/workos-management.d.ts +0 -32
  508. package/dist/lib/workos-management.js +0 -149
  509. package/dist/lib/workos-management.js.map +0 -1
  510. package/dist/nextjs/nextjs-installer-agent.d.ts +0 -5
  511. package/dist/nextjs/nextjs-installer-agent.js +0 -6
  512. package/dist/nextjs/nextjs-installer-agent.js.map +0 -1
  513. package/dist/nextjs/utils.d.ts +0 -4
  514. package/dist/nextjs/utils.js +0 -5
  515. package/dist/nextjs/utils.js.map +0 -1
  516. package/dist/react/react-installer-agent.d.ts +0 -4
  517. package/dist/react/react-installer-agent.js +0 -5
  518. package/dist/react/react-installer-agent.js.map +0 -1
  519. package/dist/react-router/react-router-installer-agent.d.ts +0 -4
  520. package/dist/react-router/react-router-installer-agent.js +0 -5
  521. package/dist/react-router/react-router-installer-agent.js.map +0 -1
  522. package/dist/react-router/utils.d.ts +0 -4
  523. package/dist/react-router/utils.js +0 -5
  524. package/dist/react-router/utils.js.map +0 -1
  525. package/dist/run.d.ts +0 -33
  526. package/dist/run.js +0 -58
  527. package/dist/run.js.map +0 -1
  528. package/dist/smoke-test.ts +0 -881
  529. package/dist/steps/add-or-update-environment-variables.d.ts +0 -10
  530. package/dist/steps/add-or-update-environment-variables.js +0 -155
  531. package/dist/steps/add-or-update-environment-variables.js.map +0 -1
  532. package/dist/steps/index.d.ts +0 -3
  533. package/dist/steps/index.js +0 -4
  534. package/dist/steps/index.js.map +0 -1
  535. package/dist/steps/run-prettier.d.ts +0 -5
  536. package/dist/steps/run-prettier.js +0 -50
  537. package/dist/steps/run-prettier.js.map +0 -1
  538. package/dist/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -8
  539. package/dist/steps/upload-environment-variables/EnvironmentProvider.js +0 -7
  540. package/dist/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
  541. package/dist/steps/upload-environment-variables/index.d.ts +0 -6
  542. package/dist/steps/upload-environment-variables/index.js +0 -69
  543. package/dist/steps/upload-environment-variables/index.js.map +0 -1
  544. package/dist/steps/upload-environment-variables/providers/vercel.d.ts +0 -14
  545. package/dist/steps/upload-environment-variables/providers/vercel.js +0 -107
  546. package/dist/steps/upload-environment-variables/providers/vercel.js.map +0 -1
  547. package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +0 -4
  548. package/dist/tanstack-start/tanstack-start-installer-agent.js +0 -5
  549. package/dist/tanstack-start/tanstack-start-installer-agent.js.map +0 -1
  550. package/dist/telemetry.d.ts +0 -2
  551. package/dist/telemetry.js +0 -29
  552. package/dist/telemetry.js.map +0 -1
  553. package/dist/test/force-insecure-storage.d.ts +0 -1
  554. package/dist/test/force-insecure-storage.js +0 -9
  555. package/dist/test/force-insecure-storage.js.map +0 -1
  556. package/dist/test/setup.d.ts +0 -1
  557. package/dist/test/setup.js +0 -38
  558. package/dist/test/setup.js.map +0 -1
  559. package/dist/utils/analytics.d.ts +0 -66
  560. package/dist/utils/analytics.js +0 -330
  561. package/dist/utils/analytics.js.map +0 -1
  562. package/dist/utils/bash.d.ts +0 -2
  563. package/dist/utils/bash.js +0 -17
  564. package/dist/utils/bash.js.map +0 -1
  565. package/dist/utils/box.d.ts +0 -9
  566. package/dist/utils/box.js +0 -15
  567. package/dist/utils/box.js.map +0 -1
  568. package/dist/utils/cli-exit.d.ts +0 -15
  569. package/dist/utils/cli-exit.js +0 -11
  570. package/dist/utils/cli-exit.js.map +0 -1
  571. package/dist/utils/cli-symbols.d.ts +0 -44
  572. package/dist/utils/cli-symbols.js +0 -58
  573. package/dist/utils/cli-symbols.js.map +0 -1
  574. package/dist/utils/command-invocation.d.ts +0 -10
  575. package/dist/utils/command-invocation.js +0 -26
  576. package/dist/utils/command-invocation.js.map +0 -1
  577. package/dist/utils/command-telemetry.d.ts +0 -17
  578. package/dist/utils/command-telemetry.js +0 -67
  579. package/dist/utils/command-telemetry.js.map +0 -1
  580. package/dist/utils/crash-reporter.d.ts +0 -13
  581. package/dist/utils/crash-reporter.js +0 -91
  582. package/dist/utils/crash-reporter.js.map +0 -1
  583. package/dist/utils/debug.d.ts +0 -9
  584. package/dist/utils/debug.js +0 -105
  585. package/dist/utils/debug.js.map +0 -1
  586. package/dist/utils/env-parser.d.ts +0 -5
  587. package/dist/utils/env-parser.js +0 -18
  588. package/dist/utils/env-parser.js.map +0 -1
  589. package/dist/utils/environment.d.ts +0 -10
  590. package/dist/utils/environment.js +0 -69
  591. package/dist/utils/environment.js.map +0 -1
  592. package/dist/utils/errors.d.ts +0 -3
  593. package/dist/utils/errors.js +0 -7
  594. package/dist/utils/errors.js.map +0 -1
  595. package/dist/utils/exec-file.d.ts +0 -15
  596. package/dist/utils/exec-file.js +0 -39
  597. package/dist/utils/exec-file.js.map +0 -1
  598. package/dist/utils/exit-codes.d.ts +0 -31
  599. package/dist/utils/exit-codes.js +0 -69
  600. package/dist/utils/exit-codes.js.map +0 -1
  601. package/dist/utils/git-utils.d.ts +0 -23
  602. package/dist/utils/git-utils.js +0 -86
  603. package/dist/utils/git-utils.js.map +0 -1
  604. package/dist/utils/help-json.d.ts +0 -58
  605. package/dist/utils/help-json.js +0 -1577
  606. package/dist/utils/help-json.js.map +0 -1
  607. package/dist/utils/interaction-mode.d.ts +0 -25
  608. package/dist/utils/interaction-mode.js +0 -99
  609. package/dist/utils/interaction-mode.js.map +0 -1
  610. package/dist/utils/lock-art.d.ts +0 -4
  611. package/dist/utils/lock-art.js +0 -73
  612. package/dist/utils/lock-art.js.map +0 -1
  613. package/dist/utils/logging.d.ts +0 -9
  614. package/dist/utils/logging.js +0 -36
  615. package/dist/utils/logging.js.map +0 -1
  616. package/dist/utils/ndjson.d.ts +0 -16
  617. package/dist/utils/ndjson.js +0 -18
  618. package/dist/utils/ndjson.js.map +0 -1
  619. package/dist/utils/output.d.ts +0 -60
  620. package/dist/utils/output.js +0 -124
  621. package/dist/utils/output.js.map +0 -1
  622. package/dist/utils/package-json.d.ts +0 -26
  623. package/dist/utils/package-json.js +0 -32
  624. package/dist/utils/package-json.js.map +0 -1
  625. package/dist/utils/package-manager.d.ts +0 -21
  626. package/dist/utils/package-manager.js +0 -166
  627. package/dist/utils/package-manager.js.map +0 -1
  628. package/dist/utils/paths.d.ts +0 -5
  629. package/dist/utils/paths.js +0 -18
  630. package/dist/utils/paths.js.map +0 -1
  631. package/dist/utils/platform.d.ts +0 -8
  632. package/dist/utils/platform.js +0 -7
  633. package/dist/utils/platform.js.map +0 -1
  634. package/dist/utils/recovery-hints.d.ts +0 -42
  635. package/dist/utils/recovery-hints.js +0 -92
  636. package/dist/utils/recovery-hints.js.map +0 -1
  637. package/dist/utils/redact.d.ts +0 -5
  638. package/dist/utils/redact.js +0 -29
  639. package/dist/utils/redact.js.map +0 -1
  640. package/dist/utils/register-subcommand.d.ts +0 -10
  641. package/dist/utils/register-subcommand.js +0 -33
  642. package/dist/utils/register-subcommand.js.map +0 -1
  643. package/dist/utils/semver.d.ts +0 -10
  644. package/dist/utils/semver.js +0 -43
  645. package/dist/utils/semver.js.map +0 -1
  646. package/dist/utils/string.d.ts +0 -1
  647. package/dist/utils/string.js +0 -6
  648. package/dist/utils/string.js.map +0 -1
  649. package/dist/utils/summary-box.d.ts +0 -25
  650. package/dist/utils/summary-box.js +0 -211
  651. package/dist/utils/summary-box.js.map +0 -1
  652. package/dist/utils/table.d.ts +0 -5
  653. package/dist/utils/table.js +0 -18
  654. package/dist/utils/table.js.map +0 -1
  655. package/dist/utils/telemetry-client.d.ts +0 -43
  656. package/dist/utils/telemetry-client.js +0 -171
  657. package/dist/utils/telemetry-client.js.map +0 -1
  658. package/dist/utils/telemetry-store-forward.d.ts +0 -11
  659. package/dist/utils/telemetry-store-forward.js +0 -94
  660. package/dist/utils/telemetry-store-forward.js.map +0 -1
  661. package/dist/utils/telemetry-types.d.ts +0 -100
  662. package/dist/utils/telemetry-types.js +0 -6
  663. package/dist/utils/telemetry-types.js.map +0 -1
  664. package/dist/utils/types.d.ts +0 -123
  665. package/dist/utils/types.js +0 -2
  666. package/dist/utils/types.js.map +0 -1
  667. package/dist/utils/ui-utils.d.ts +0 -97
  668. package/dist/utils/ui-utils.js +0 -449
  669. package/dist/utils/ui-utils.js.map +0 -1
  670. package/dist/utils/ui.d.ts +0 -148
  671. package/dist/utils/ui.js +0 -368
  672. package/dist/utils/ui.js.map +0 -1
  673. package/dist/utils/urls.d.ts +0 -13
  674. package/dist/utils/urls.js +0 -14
  675. package/dist/utils/urls.js.map +0 -1
  676. package/dist/utils/vendor/is-unicorn-supported.d.ts +0 -1
  677. package/dist/utils/vendor/is-unicorn-supported.js +0 -21
  678. package/dist/utils/vendor/is-unicorn-supported.js.map +0 -1
  679. package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +0 -4
  680. package/dist/vanilla-js/vanilla-js-installer-agent.js +0 -5
  681. package/dist/vanilla-js/vanilla-js-installer-agent.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/doctor/output.ts"],"names":[],"mappings":"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","sourcesContent":["import Chalk from 'chalk';\nimport { homedir } from 'os';\nimport { createAgents } from '../commands/install-skill.js';\nimport type { InteractionModeSource } from '../utils/interaction-mode.js';\nimport type { DoctorReport, Issue } from './types.js';\nimport { renderSummaryBox, type SummaryBoxItem } from '../utils/summary-box.js';\nimport type { LockExpression } from '../utils/lock-art.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\n\nexport interface FormatOptions {\n verbose?: boolean;\n}\n\nexport function formatReport(report: DoctorReport, options?: FormatOptions): void {\n console.log('');\n console.log(Chalk.cyan('WorkOS Doctor'));\n console.log(Chalk.dim('━'.repeat(70)));\n\n // SDK & Project\n console.log('');\n console.log('SDK & Project Information');\n if (report.sdk.name) {\n console.log(` SDK: ${report.sdk.name}${report.sdk.version ? ` v${report.sdk.version}` : ''}`);\n } else {\n console.log(` SDK: ${Chalk.red('Not found')}`);\n }\n if (report.language.name !== 'Unknown') {\n console.log(` Language: ${report.language.name}`);\n }\n if (report.language.name === 'JavaScript/TypeScript' || report.language.name === 'Unknown') {\n console.log(` Runtime: Node.js ${report.runtime.nodeVersion}`);\n }\n if (report.framework.name) {\n const variant = report.framework.variant ? ` (${report.framework.variant})` : '';\n console.log(` Framework: ${report.framework.name} ${report.framework.version ?? ''}${variant}`);\n }\n if (report.language.packageManager) {\n console.log(` Package Manager: ${report.language.packageManager}`);\n } else if (report.runtime.packageManager) {\n console.log(` Package Manager: ${report.runtime.packageManager} ${report.runtime.packageManagerVersion ?? ''}`);\n }\n\n // Environment\n console.log('');\n console.log('Environment Configuration');\n const envType = report.environment.apiKeyType\n ? report.environment.apiKeyType.charAt(0).toUpperCase() + report.environment.apiKeyType.slice(1)\n : 'Unable to determine';\n console.log(` Environment: ${envType}`);\n console.log(` Client ID: ${report.environment.clientId ?? Chalk.red('Not set')}`);\n console.log(\n ` API Key: ${report.environment.apiKeyConfigured ? Chalk.green('configured') : Chalk.red('not set')}`,\n );\n console.log(` Base URL: ${report.environment.baseUrl} ${Chalk.green('✓')}`);\n\n // Interaction Mode\n console.log('');\n console.log('Interaction Mode');\n console.log(\n ` Mode: ${report.interactionMode.mode} (${formatInteractionModeSource(report.interactionMode.source)})`,\n );\n\n // Host Execution\n console.log('');\n console.log('Host Execution');\n if (report.hostExecution.mode === 'interactive') {\n console.log(` Shell: ${Chalk.green('✓')} Interactive host shell`);\n } else if (report.hostExecution.ok) {\n console.log(` Shell: ${Chalk.green('✓')} Agent/CI context, host state reachable`);\n } else {\n console.log(` Shell: ${Chalk.yellow('!')} Agent/CI context, host state may be unavailable`);\n for (const failure of report.hostExecution.failures) {\n const label = failure.label ?? failure.capability;\n const target = failure.target ? ` (${failure.target})` : '';\n console.log(` ${Chalk.yellow('!')} ${label}${target}`);\n if (options?.verbose) {\n console.log(` ${Chalk.dim(failure.detail)}`);\n }\n }\n }\n\n // Connectivity & Credential Validation\n console.log('');\n console.log('Connectivity');\n if (report.connectivity.apiReachable) {\n console.log(` API: ${Chalk.green('✓')} Reachable (${report.connectivity.latencyMs}ms)`);\n } else if (report.connectivity.error?.includes('Skipped')) {\n console.log(` API: ${Chalk.dim('Skipped (--skip-api)')}`);\n } else {\n console.log(` API: ${Chalk.red('✗')} ${report.connectivity.error}`);\n }\n\n // Credential validation\n if (report.credentialValidation) {\n if (report.credentialValidation.valid && report.credentialValidation.clientIdMatch) {\n console.log(` Credentials: ${Chalk.green('✓')} Valid and matching`);\n } else if (!report.credentialValidation.valid) {\n console.log(` Credentials: ${Chalk.red('✗')} ${report.credentialValidation.error ?? 'Invalid'}`);\n } else if (!report.credentialValidation.clientIdMatch) {\n console.log(` Credentials: ${Chalk.red('✗')} Client ID mismatch`);\n }\n }\n\n // Dashboard Settings (if available)\n if (report.dashboardSettings) {\n console.log('');\n console.log('Dashboard Settings (Staging)');\n console.log(\n ` Auth Methods: ${report.dashboardSettings.authMethods.length > 0 ? report.dashboardSettings.authMethods.join(', ') : 'None configured'}`,\n );\n console.log(` Session Timeout: ${report.dashboardSettings.sessionTimeout ?? 'Default'}`);\n console.log(` MFA: ${formatMfa(report.dashboardSettings.mfa)}`);\n console.log(` Organizations: ${report.dashboardSettings.organizationCount} configured`);\n } else if (report.dashboardError) {\n console.log('');\n console.log('Dashboard Settings');\n console.log(` Status: ${Chalk.dim(report.dashboardError)}`);\n }\n\n // Redirect URI (can't verify against dashboard - no list API)\n if (report.redirectUris?.codeUri) {\n console.log('');\n const source = report.redirectUris.source === 'inferred' ? 'Inferred' : 'Configured';\n console.log(`Redirect URI (${source})`);\n console.log(` ${report.redirectUris.codeUri}`);\n }\n\n // Auth Patterns\n if (report.authPatterns) {\n console.log('');\n console.log('Auth Patterns');\n if (report.authPatterns.findings.length === 0) {\n console.log(` ${Chalk.green('✓')} ${report.authPatterns.checksRun} checks passed`);\n } else {\n console.log(\n ` ${report.authPatterns.checksRun} checked, ${Chalk.yellow(`${report.authPatterns.findings.length} finding(s)`)}`,\n );\n for (const finding of report.authPatterns.findings) {\n const icon = finding.severity === 'error' ? Chalk.red('✗') : Chalk.yellow('!');\n console.log(` ${icon} ${finding.message}`);\n if (finding.filePath) {\n console.log(` ${Chalk.dim('File:')} ${finding.filePath}`);\n }\n }\n }\n }\n\n // AI Analysis\n if (report.aiAnalysis) {\n console.log('');\n if (report.aiAnalysis.skipped) {\n console.log('AI Analysis');\n console.log(` ${Chalk.dim(report.aiAnalysis.skipReason ?? 'Skipped')}`);\n } else {\n const duration = (report.aiAnalysis.durationMs / 1000).toFixed(1);\n console.log(`AI Analysis ${Chalk.dim(`(${duration}s)`)}`);\n if (report.aiAnalysis.summary) {\n console.log(` ${report.aiAnalysis.summary}`);\n }\n console.log('');\n for (const finding of report.aiAnalysis.findings) {\n const icon =\n finding.severity === 'error'\n ? Chalk.red('✗')\n : finding.severity === 'warning'\n ? Chalk.yellow('!')\n : Chalk.dim('ℹ');\n const color =\n finding.severity === 'error' ? Chalk.red : finding.severity === 'warning' ? Chalk.yellow : Chalk.dim;\n console.log(` ${icon} ${color(finding.title)}`);\n console.log(` ${finding.detail}`);\n if (finding.remediation) {\n console.log(` ${Chalk.dim('→')} ${finding.remediation}`);\n }\n if (finding.filePath) {\n console.log(` ${Chalk.dim('File:')} ${finding.filePath}`);\n }\n console.log('');\n }\n }\n }\n\n // Skills refresh (--fix path)\n if (report.skillsRefresh) {\n const agents = createAgents(homedir());\n const displayName = (slug: string): string => agents[slug]?.displayName ?? slug;\n const formatVersion = (v: string | null): string => v ?? '(none)';\n\n console.log('');\n console.log('Skills');\n const slugs = Object.keys(report.skillsRefresh.before);\n for (const slug of slugs) {\n const before = formatVersion(report.skillsRefresh.before[slug] ?? null);\n const after = formatVersion(report.skillsRefresh.after[slug] ?? null);\n console.log(` ${Chalk.green('✓')} Updated WorkOS skills for ${displayName(slug)}: ${before} → ${after}`);\n }\n }\n\n // MCP Server (per detected coding agent)\n if (report.mcp) {\n console.log('');\n console.log('MCP Server');\n for (const agent of report.mcp.agents) {\n if (agent.misconfigured) {\n console.log(` ${Chalk.yellow('!')} ${agent.agent}: configured with an unexpected URL`);\n } else if (agent.installed) {\n console.log(` ${Chalk.green('✓')} ${agent.agent}: installed`);\n } else {\n console.log(` ${agent.agent}: ${Chalk.dim('not installed')}`);\n }\n }\n }\n\n // Verbose mode additions\n if (options?.verbose) {\n console.log('');\n console.log(Chalk.dim('Verbose Details'));\n console.log(` ${Chalk.dim('Project path:')} ${report.project.path}`);\n console.log(` ${Chalk.dim('Timestamp:')} ${report.timestamp}`);\n console.log(` ${Chalk.dim('Doctor version:')} ${report.version}`);\n }\n\n console.log('');\n console.log(Chalk.dim('━'.repeat(70)));\n\n // Issues\n if (report.issues.length > 0) {\n const errors = report.issues.filter((i) => i.severity === 'error');\n const warnings = report.issues.filter((i) => i.severity === 'warning');\n\n console.log('');\n if (errors.length > 0) {\n console.log(Chalk.red(`Critical Issues Found (${errors.length} errors)`));\n console.log('');\n for (const issue of errors) {\n formatIssue(issue);\n }\n }\n\n if (warnings.length > 0) {\n console.log(Chalk.yellow(`Warnings (${warnings.length})`));\n console.log('');\n for (const issue of warnings) {\n formatIssue(issue);\n }\n }\n }\n\n console.log('');\n\n // Summary box with lock character\n const expression: LockExpression = report.summary.healthy\n ? 'success'\n : report.summary.errors > 0\n ? 'error'\n : 'warning';\n\n const title = report.summary.healthy\n ? 'WorkOS Integration Healthy'\n : report.summary.errors > 0\n ? `${report.summary.errors} Issue(s) Found`\n : `${report.summary.warnings} Warning(s) to Review`;\n\n const items: SummaryBoxItem[] = report.issues.map((issue) => ({\n type: issue.severity === 'error' ? ('error' as const) : ('pending' as const),\n text: `${issue.code}: ${issue.message}`,\n }));\n\n console.log(\n renderSummaryBox({\n expression,\n title,\n items,\n footer: `${formatWorkOSCommand('doctor --copy')} | https://workos.com/docs`,\n }),\n );\n console.log('');\n}\n\nexport function formatInteractionModeSource(source: InteractionModeSource): string {\n switch (source) {\n case 'flag':\n return '--mode';\n case 'env':\n return 'WORKOS_MODE';\n case 'ci_env':\n return 'CI environment';\n case 'agent_env':\n return 'agent environment';\n case 'non_tty':\n return 'non-TTY';\n case 'default':\n return 'default';\n }\n}\n\nfunction formatIssue(issue: Issue): void {\n const icon = issue.severity === 'error' ? Chalk.red('✗') : Chalk.yellow('!');\n const color = issue.severity === 'error' ? Chalk.red : Chalk.yellow;\n\n console.log(`${icon} ${color(issue.code)}: ${issue.message}`);\n if (issue.remediation) {\n console.log(` ${Chalk.dim('→')} ${issue.remediation}`);\n }\n if (issue.docsUrl) {\n console.log(` ${Chalk.dim('Docs:')} ${issue.docsUrl}`);\n }\n console.log('');\n}\n\nfunction formatMfa(mfa: string | null): string {\n switch (mfa) {\n case 'required':\n return 'Required';\n case 'optional':\n return 'Optional';\n case 'disabled':\n return 'Disabled';\n default:\n return 'Not configured';\n }\n}\n"]}
@@ -1,203 +0,0 @@
1
- import type { InteractionModeInfo } from '../utils/interaction-mode.js';
2
- export type IssueSeverity = 'error' | 'warning';
3
- export interface Issue {
4
- code: string;
5
- severity: IssueSeverity;
6
- message: string;
7
- details?: Record<string, unknown>;
8
- remediation?: string;
9
- docsUrl?: string;
10
- }
11
- export interface SdkInfo {
12
- name: string | null;
13
- version: string | null;
14
- latest: string | null;
15
- outdated: boolean;
16
- isAuthKit: boolean;
17
- language: string;
18
- }
19
- export interface LanguageInfo {
20
- name: string;
21
- manifestFile?: string;
22
- runtimeVersion?: string;
23
- packageManager?: string;
24
- }
25
- export interface FrameworkInfo {
26
- name: string | null;
27
- version: string | null;
28
- variant?: string;
29
- expectedCallbackPath?: string;
30
- detectedPort?: number;
31
- }
32
- export interface RuntimeInfo {
33
- nodeVersion: string;
34
- packageManager: string | null;
35
- packageManagerVersion: string | null;
36
- }
37
- export interface EnvironmentInfo {
38
- apiKeyConfigured: boolean;
39
- apiKeyType: 'staging' | 'production' | null;
40
- clientId: string | null;
41
- redirectUri: string | null;
42
- cookieDomain: string | null;
43
- baseUrl: string | null;
44
- }
45
- /** Internal environment data - not included in report output */
46
- export interface EnvironmentRaw {
47
- apiKey: string | null;
48
- clientId: string | null;
49
- baseUrl: string | null;
50
- }
51
- export interface EnvironmentCheckResult {
52
- info: EnvironmentInfo;
53
- raw: EnvironmentRaw;
54
- }
55
- export interface ConnectivityInfo {
56
- apiReachable: boolean;
57
- latencyMs: number | null;
58
- tlsValid: boolean;
59
- error?: string;
60
- }
61
- export interface HostExecutionFailure {
62
- capability: string;
63
- detail: string;
64
- operation?: string;
65
- target?: string;
66
- label?: string;
67
- }
68
- export interface HostExecutionInfo {
69
- mode: 'interactive' | 'non-interactive';
70
- ok: boolean;
71
- failures: HostExecutionFailure[];
72
- warning?: string;
73
- }
74
- export interface DashboardSettings {
75
- redirectUris: string[];
76
- authMethods: string[];
77
- sessionTimeout: string | null;
78
- mfa: 'optional' | 'required' | 'disabled' | null;
79
- organizationCount: number;
80
- }
81
- export interface RedirectUriComparison {
82
- codeUri: string | null;
83
- dashboardUris: string[];
84
- match: boolean;
85
- source?: 'env' | 'inferred';
86
- }
87
- export interface CredentialValidation {
88
- valid: boolean;
89
- clientIdMatch: boolean;
90
- error?: string;
91
- }
92
- export interface DashboardFetchResult {
93
- settings: DashboardSettings | null;
94
- credentialValidation?: CredentialValidation;
95
- error?: string;
96
- }
97
- export interface AuthPatternFinding {
98
- code: string;
99
- severity: IssueSeverity;
100
- message: string;
101
- filePath?: string;
102
- remediation?: string;
103
- docsUrl?: string;
104
- }
105
- export interface AuthPatternInfo {
106
- checksRun: number;
107
- findings: AuthPatternFinding[];
108
- }
109
- export interface SkillAgentStatus {
110
- agent: string;
111
- installedVersion: string | null;
112
- stale: boolean;
113
- }
114
- export interface SkillsInfo {
115
- bundledVersion: string | null;
116
- agents: SkillAgentStatus[];
117
- }
118
- /**
119
- * Result of `workos doctor --fix` refreshing WorkOS skills. Captured per agent
120
- * so the human-mode renderer can show a before/after line and the JSON consumer
121
- * can reason about which agents changed.
122
- */
123
- export interface SkillsRefreshResult {
124
- /** Marker version per agent.name BEFORE refresh (null = no marker). */
125
- before: Record<string, string | null>;
126
- /** Marker version per agent.name AFTER refresh. */
127
- after: Record<string, string | null>;
128
- /** Skills the refresh was scoped to (the FIXABLE_SKILLS allowlist). */
129
- skillsInstalled: string[];
130
- }
131
- export interface McpAgentMcpStatus {
132
- /** Display name of the agent (e.g. "Cursor"), mirroring SkillAgentStatus. */
133
- agent: string;
134
- /** Agent is usable on this machine. */
135
- available: boolean;
136
- /** The WorkOS MCP server is present in this agent's config. */
137
- installed: boolean;
138
- /** Cursor only: the entry exists but points at an unexpected URL. */
139
- misconfigured?: boolean;
140
- }
141
- export interface McpInfo {
142
- /** The URL the WorkOS MCP server should be configured with. */
143
- serverUrl: string;
144
- agents: McpAgentMcpStatus[];
145
- }
146
- export interface DoctorReport {
147
- version: string;
148
- timestamp: string;
149
- interactionMode: InteractionModeInfo;
150
- project: {
151
- path: string;
152
- packageManager: string | null;
153
- };
154
- sdk: SdkInfo;
155
- language: LanguageInfo;
156
- runtime: RuntimeInfo;
157
- framework: FrameworkInfo;
158
- environment: EnvironmentInfo;
159
- hostExecution: HostExecutionInfo;
160
- connectivity: ConnectivityInfo;
161
- dashboardSettings?: DashboardSettings;
162
- dashboardError?: string;
163
- redirectUris?: RedirectUriComparison;
164
- credentialValidation?: CredentialValidation;
165
- authPatterns?: AuthPatternInfo;
166
- aiAnalysis?: AiAnalysis;
167
- skills?: SkillsInfo;
168
- /** Present only when `--fix` actually performed a refresh. */
169
- skillsRefresh?: SkillsRefreshResult;
170
- /** MCP server status per detected coding agent. Null (absent) when none detected. */
171
- mcp?: McpInfo;
172
- issues: Issue[];
173
- summary: {
174
- errors: number;
175
- warnings: number;
176
- healthy: boolean;
177
- };
178
- }
179
- export interface AiFinding {
180
- severity: 'error' | 'warning' | 'info';
181
- title: string;
182
- detail: string;
183
- remediation: string;
184
- filePath?: string;
185
- }
186
- export interface AiAnalysis {
187
- findings: AiFinding[];
188
- summary: string;
189
- model: string;
190
- durationMs: number;
191
- skipped?: boolean;
192
- skipReason?: string;
193
- }
194
- export interface DoctorOptions {
195
- installDir: string;
196
- verbose?: boolean;
197
- skipApi?: boolean;
198
- skipAi?: boolean;
199
- json?: boolean;
200
- copy?: boolean;
201
- /** When true, refresh stale WorkOS skills (constrained to workos/ + workos-widgets/). */
202
- fix?: boolean;
203
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/doctor/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InteractionModeInfo } from '../utils/interaction-mode.js';\n\nexport type IssueSeverity = 'error' | 'warning';\n\nexport interface Issue {\n code: string;\n severity: IssueSeverity;\n message: string;\n details?: Record<string, unknown>;\n remediation?: string;\n docsUrl?: string;\n}\n\nexport interface SdkInfo {\n name: string | null;\n version: string | null;\n latest: string | null;\n outdated: boolean;\n isAuthKit: boolean;\n language: string; // 'javascript' | 'python' | 'ruby' | 'go' | 'java' | 'php' | 'dotnet'\n}\n\nexport interface LanguageInfo {\n name: string; // e.g., 'JavaScript/TypeScript', 'Python', 'Ruby', 'Go', etc.\n manifestFile?: string; // e.g., 'package.json', 'requirements.txt'\n runtimeVersion?: string; // e.g., 'Python 3.12'\n packageManager?: string; // e.g., 'pip', 'poetry', 'bundler'\n}\n\nexport interface FrameworkInfo {\n name: string | null;\n version: string | null;\n variant?: string; // e.g., 'app-router' | 'pages-router'\n expectedCallbackPath?: string; // e.g., '/auth/callback' for Next.js\n detectedPort?: number;\n}\n\nexport interface RuntimeInfo {\n nodeVersion: string;\n packageManager: string | null;\n packageManagerVersion: string | null;\n}\n\nexport interface EnvironmentInfo {\n apiKeyConfigured: boolean;\n apiKeyType: 'staging' | 'production' | null;\n clientId: string | null; // truncated for display\n redirectUri: string | null;\n cookieDomain: string | null;\n baseUrl: string | null;\n}\n\n/** Internal environment data - not included in report output */\nexport interface EnvironmentRaw {\n apiKey: string | null;\n clientId: string | null;\n baseUrl: string | null;\n}\n\nexport interface EnvironmentCheckResult {\n info: EnvironmentInfo;\n raw: EnvironmentRaw;\n}\n\nexport interface ConnectivityInfo {\n apiReachable: boolean;\n latencyMs: number | null;\n tlsValid: boolean;\n error?: string;\n}\n\nexport interface HostExecutionFailure {\n capability: string;\n detail: string;\n operation?: string;\n target?: string;\n label?: string;\n}\n\nexport interface HostExecutionInfo {\n mode: 'interactive' | 'non-interactive';\n ok: boolean;\n failures: HostExecutionFailure[];\n warning?: string;\n}\n\nexport interface DashboardSettings {\n redirectUris: string[];\n authMethods: string[];\n sessionTimeout: string | null;\n mfa: 'optional' | 'required' | 'disabled' | null;\n organizationCount: number;\n}\n\nexport interface RedirectUriComparison {\n codeUri: string | null;\n dashboardUris: string[];\n match: boolean;\n source?: 'env' | 'inferred'; // Where the codeUri came from\n}\n\nexport interface CredentialValidation {\n valid: boolean;\n clientIdMatch: boolean;\n error?: string;\n}\n\nexport interface DashboardFetchResult {\n settings: DashboardSettings | null;\n credentialValidation?: CredentialValidation;\n error?: string;\n}\n\nexport interface AuthPatternFinding {\n code: string;\n severity: IssueSeverity;\n message: string;\n filePath?: string;\n remediation?: string;\n docsUrl?: string;\n}\n\nexport interface AuthPatternInfo {\n checksRun: number;\n findings: AuthPatternFinding[];\n}\n\nexport interface SkillAgentStatus {\n agent: string;\n installedVersion: string | null;\n stale: boolean;\n}\n\nexport interface SkillsInfo {\n bundledVersion: string | null;\n agents: SkillAgentStatus[];\n}\n\n/**\n * Result of `workos doctor --fix` refreshing WorkOS skills. Captured per agent\n * so the human-mode renderer can show a before/after line and the JSON consumer\n * can reason about which agents changed.\n */\nexport interface SkillsRefreshResult {\n /** Marker version per agent.name BEFORE refresh (null = no marker). */\n before: Record<string, string | null>;\n /** Marker version per agent.name AFTER refresh. */\n after: Record<string, string | null>;\n /** Skills the refresh was scoped to (the FIXABLE_SKILLS allowlist). */\n skillsInstalled: string[];\n}\n\nexport interface McpAgentMcpStatus {\n /** Display name of the agent (e.g. \"Cursor\"), mirroring SkillAgentStatus. */\n agent: string;\n /** Agent is usable on this machine. */\n available: boolean;\n /** The WorkOS MCP server is present in this agent's config. */\n installed: boolean;\n /** Cursor only: the entry exists but points at an unexpected URL. */\n misconfigured?: boolean;\n}\n\nexport interface McpInfo {\n /** The URL the WorkOS MCP server should be configured with. */\n serverUrl: string;\n agents: McpAgentMcpStatus[];\n}\n\nexport interface DoctorReport {\n version: string;\n timestamp: string;\n interactionMode: InteractionModeInfo;\n project: {\n path: string;\n packageManager: string | null;\n };\n sdk: SdkInfo;\n language: LanguageInfo;\n runtime: RuntimeInfo;\n framework: FrameworkInfo;\n environment: EnvironmentInfo;\n hostExecution: HostExecutionInfo;\n connectivity: ConnectivityInfo;\n dashboardSettings?: DashboardSettings;\n dashboardError?: string;\n redirectUris?: RedirectUriComparison;\n credentialValidation?: CredentialValidation;\n authPatterns?: AuthPatternInfo;\n aiAnalysis?: AiAnalysis;\n skills?: SkillsInfo;\n /** Present only when `--fix` actually performed a refresh. */\n skillsRefresh?: SkillsRefreshResult;\n /** MCP server status per detected coding agent. Null (absent) when none detected. */\n mcp?: McpInfo;\n issues: Issue[];\n summary: {\n errors: number;\n warnings: number;\n healthy: boolean;\n };\n}\n\nexport interface AiFinding {\n severity: 'error' | 'warning' | 'info';\n title: string;\n detail: string;\n remediation: string;\n filePath?: string;\n}\n\nexport interface AiAnalysis {\n findings: AiFinding[];\n summary: string;\n model: string;\n durationMs: number;\n skipped?: boolean;\n skipReason?: string;\n}\n\nexport interface DoctorOptions {\n installDir: string;\n verbose?: boolean;\n skipApi?: boolean;\n skipAi?: boolean;\n json?: boolean;\n copy?: boolean;\n /** When true, refresh stale WorkOS skills (constrained to workos/ + workos-widgets/). */\n fix?: boolean;\n}\n"]}
@@ -1,8 +0,0 @@
1
- import type { FrameworkConfig } from '../../lib/framework-config.js';
2
- import type { InstallerOptions } from '../../utils/types.js';
3
- export declare const config: FrameworkConfig;
4
- /**
5
- * Custom run function for .NET — bypasses runAgentInstaller's JS-centric assumptions
6
- * (no package.json, no .env.local, no TypeScript detection, no JS port detection).
7
- */
8
- export declare function run(options: InstallerOptions): Promise<string>;
@@ -1,170 +0,0 @@
1
- /* .NET (ASP.NET Core) integration — auto-discovered by registry */
2
- import { readdirSync } from 'node:fs';
3
- import { enableDebugLogs } from '../../utils/debug.js';
4
- function hasCsproj(installDir) {
5
- try {
6
- return readdirSync(installDir).some((f) => f.endsWith('.csproj'));
7
- }
8
- catch {
9
- return false;
10
- }
11
- }
12
- import { SPINNER_MESSAGE } from '../../lib/framework-config.js';
13
- import { getOrAskForWorkOSCredentials } from '../../utils/ui-utils.js';
14
- import { analytics } from '../../utils/analytics.js';
15
- import { INSTALLER_INTERACTION_EVENT_NAME } from '../../lib/constants.js';
16
- import { initializeAgent, runAgent } from '../../lib/agent-interface.js';
17
- import { autoConfigureWorkOSEnvironment } from '../../lib/workos-management.js';
18
- import { validateInstallation } from '../../lib/validation/index.js';
19
- import { getReference } from '@workos/skills';
20
- export const config = {
21
- metadata: {
22
- name: '.NET (ASP.NET Core)',
23
- integration: 'dotnet',
24
- docsUrl: 'https://github.com/workos/workos-dotnet',
25
- skillName: 'workos-dotnet',
26
- language: 'dotnet',
27
- stability: 'experimental',
28
- priority: 35,
29
- packageManager: 'dotnet',
30
- manifestFile: '*.csproj',
31
- // existsSync cannot glob, so match any *.csproj in the install dir.
32
- detect: (options) => hasCsproj(options.installDir),
33
- },
34
- detection: {
35
- // Detection handled by language-detection.ts globExists('*.csproj').
36
- // These fields satisfy the FrameworkDetection interface but aren't used for non-JS SDKs.
37
- packageName: 'WorkOS.net',
38
- packageDisplayName: '.NET (ASP.NET Core)',
39
- getVersion: () => undefined,
40
- },
41
- environment: {
42
- uploadToHosting: false,
43
- requiresApiKey: true,
44
- getEnvVars: (apiKey, clientId) => ({
45
- WORKOS_API_KEY: apiKey,
46
- WORKOS_CLIENT_ID: clientId,
47
- }),
48
- },
49
- analytics: {
50
- getTags: () => ({}),
51
- },
52
- prompts: {},
53
- ui: {
54
- successMessage: 'WorkOS AuthKit integration complete',
55
- getOutroChanges: () => [
56
- 'Analyzed your ASP.NET Core project structure',
57
- 'Installed WorkOS.net NuGet package',
58
- 'Created authentication endpoints (login, callback, logout)',
59
- 'Configured WorkOS in appsettings',
60
- ],
61
- getOutroNextSteps: () => [
62
- 'Run `dotnet run` to start your development server',
63
- 'Visit the WorkOS Dashboard to manage users and settings',
64
- ],
65
- },
66
- };
67
- /**
68
- * Custom run function for .NET — bypasses runAgentInstaller's JS-centric assumptions
69
- * (no package.json, no .env.local, no TypeScript detection, no JS port detection).
70
- */
71
- export async function run(options) {
72
- if (options.debug) {
73
- enableDebugLogs();
74
- }
75
- options.emitter?.emit('status', {
76
- message: `Setting up WorkOS AuthKit for ${config.metadata.name}`,
77
- });
78
- analytics.capture(INSTALLER_INTERACTION_EVENT_NAME, {
79
- action: 'started agent integration',
80
- integration: config.metadata.integration,
81
- });
82
- const { apiKey, clientId } = await getOrAskForWorkOSCredentials(options, config.environment.requiresApiKey);
83
- // Auto-configure WorkOS environment (redirect URI, CORS, homepage)
84
- const callerHandledConfig = Boolean(options.apiKey || options.clientId);
85
- if (!callerHandledConfig && apiKey) {
86
- const port = 5000; // ASP.NET Core default HTTP port
87
- await autoConfigureWorkOSEnvironment(apiKey, config.metadata.integration, port, {
88
- homepageUrl: options.homepageUrl,
89
- redirectUri: options.redirectUri,
90
- });
91
- }
92
- // Build prompt — credentials are passed via prompt context since .NET doesn't use .env.local
93
- const skillName = config.metadata.skillName;
94
- const redirectUri = options.redirectUri || 'http://localhost:5000/auth/callback';
95
- const refContent = await getReference(skillName);
96
- const prompt = `You are integrating WorkOS AuthKit into this ASP.NET Core application.
97
-
98
- ## Project Context
99
-
100
- - Framework: ASP.NET Core
101
- - Language: C#
102
- - Package manager: dotnet (NuGet)
103
-
104
- ## Environment
105
-
106
- The following WorkOS credentials should be configured in appsettings.Development.json:
107
- - WORKOS_API_KEY: (configured)
108
- - WORKOS_CLIENT_ID: (configured)
109
- - WORKOS_REDIRECT_URI: ${redirectUri}
110
-
111
- ## Integration Instructions
112
-
113
- ${refContent}
114
-
115
- Report your progress using [STATUS] prefixes.
116
-
117
- Begin integration now.`;
118
- const agent = await initializeAgent({
119
- workingDirectory: options.installDir,
120
- workOSApiKey: apiKey,
121
- workOSApiHost: 'https://api.workos.com',
122
- }, options);
123
- const agentResult = await runAgent(agent, prompt, options, {
124
- spinnerMessage: SPINNER_MESSAGE,
125
- successMessage: config.ui.successMessage,
126
- errorMessage: 'Integration failed',
127
- }, options.emitter);
128
- if (agentResult.error) {
129
- await analytics.shutdown('error');
130
- const message = agentResult.errorMessage || agentResult.error;
131
- throw new Error(message);
132
- }
133
- // Post-installation validation
134
- if (!options.noValidate) {
135
- options.emitter?.emit('validation:start', { framework: config.metadata.integration });
136
- const validationResult = await validateInstallation(config.metadata.integration, options.installDir, {
137
- runBuild: true,
138
- });
139
- if (validationResult.issues.length > 0) {
140
- options.emitter?.emit('validation:issues', { issues: validationResult.issues });
141
- }
142
- options.emitter?.emit('validation:complete', {
143
- passed: validationResult.passed,
144
- issueCount: validationResult.issues.length,
145
- durationMs: validationResult.durationMs,
146
- });
147
- }
148
- const envVars = config.environment.getEnvVars(apiKey, clientId);
149
- const changes = [
150
- ...config.ui.getOutroChanges({}),
151
- Object.keys(envVars).length > 0 ? 'Configured WorkOS credentials in appsettings' : '',
152
- ].filter(Boolean);
153
- const nextSteps = config.ui.getOutroNextSteps({});
154
- const lines = [
155
- 'Successfully installed WorkOS AuthKit!',
156
- '',
157
- 'What the agent did:',
158
- ...changes.map((c) => `• ${c}`),
159
- '',
160
- 'Next steps:',
161
- ...nextSteps.map((s) => `• ${s}`),
162
- '',
163
- `Learn more: ${config.metadata.docsUrl}`,
164
- '',
165
- 'Note: This installer uses an LLM agent to analyze and modify your project. Please review the changes made.',
166
- ];
167
- await analytics.shutdown('success');
168
- return lines.join('\n');
169
- }
170
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/dotnet/index.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,SAAS,SAAS,CAAC,UAAkB;IACnC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AACD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,MAAM,GAAoB;IACrC,QAAQ,EAAE;QACR,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,yCAAyC;QAClD,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,cAAc;QACzB,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,UAAU;QACxB,oEAAoE;QACpE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC;KACnD;IAED,SAAS,EAAE;QACT,qEAAqE;QACrE,yFAAyF;QACzF,WAAW,EAAE,YAAY;QACzB,kBAAkB,EAAE,qBAAqB;QACzC,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;KAC5B;IAED,WAAW,EAAE;QACX,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC;YACjD,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,QAAQ;SAC3B,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACpB;IAED,OAAO,EAAE,EAAE;IAEX,EAAE,EAAE;QACF,cAAc,EAAE,qCAAqC;QACrD,eAAe,EAAE,GAAG,EAAE,CAAC;YACrB,8CAA8C;YAC9C,oCAAoC;YACpC,4DAA4D;YAC5D,kCAAkC;SACnC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,mDAAmD;YACnD,yDAAyD;SAC1D;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAyB;IACjD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,iCAAiC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;KACjE,CAAC,CAAC;IAEH,SAAS,CAAC,OAAO,CAAC,gCAAgC,EAAE;QAClD,MAAM,EAAE,2BAA2B;QACnC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;KACzC,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAE5G,mEAAmE;IACnE,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,mBAAmB,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,iCAAiC;QACpD,MAAM,8BAA8B,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE;YAC9E,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAU,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,qCAAqC,CAAC;IACjF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG;;;;;;;;;;;;;yBAaQ,WAAW;;;;EAIlC,UAAU;;;;uBAIW,CAAC;IAEtB,MAAM,KAAK,GAAG,MAAM,eAAe,CACjC;QACE,gBAAgB,EAAE,OAAO,CAAC,UAAU;QACpC,YAAY,EAAE,MAAM;QACpB,aAAa,EAAE,wBAAwB;KACxC,EACD,OAAO,CACR,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAChC,KAAK,EACL,MAAM,EACN,OAAO,EACP;QACE,cAAc,EAAE,eAAe;QAC/B,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc;QACxC,YAAY,EAAE,oBAAoB;KACnC,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtF,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE;YACnG,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAC3C,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM;YAC1C,UAAU,EAAE,gBAAgB,CAAC,UAAU;SACxC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE;KACtF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAElD,MAAM,KAAK,GAAa;QACtB,wCAAwC;QACxC,EAAE;QACF,qBAAqB;QACrB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,EAAE;QACF,aAAa;QACb,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,EAAE;QACF,eAAe,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxC,EAAE;QACF,4GAA4G;KAC7G,CAAC;IAEF,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["/* .NET (ASP.NET Core) integration — auto-discovered by registry */\nimport { readdirSync } from 'node:fs';\nimport type { FrameworkConfig } from '../../lib/framework-config.js';\nimport type { InstallerOptions } from '../../utils/types.js';\nimport { enableDebugLogs } from '../../utils/debug.js';\n\nfunction hasCsproj(installDir: string): boolean {\n try {\n return readdirSync(installDir).some((f) => f.endsWith('.csproj'));\n } catch {\n return false;\n }\n}\nimport { SPINNER_MESSAGE } from '../../lib/framework-config.js';\nimport { getOrAskForWorkOSCredentials } from '../../utils/ui-utils.js';\nimport { analytics } from '../../utils/analytics.js';\nimport { INSTALLER_INTERACTION_EVENT_NAME } from '../../lib/constants.js';\nimport { initializeAgent, runAgent } from '../../lib/agent-interface.js';\nimport { autoConfigureWorkOSEnvironment } from '../../lib/workos-management.js';\nimport { validateInstallation } from '../../lib/validation/index.js';\nimport { getReference } from '@workos/skills';\n\nexport const config: FrameworkConfig = {\n metadata: {\n name: '.NET (ASP.NET Core)',\n integration: 'dotnet',\n docsUrl: 'https://github.com/workos/workos-dotnet',\n skillName: 'workos-dotnet',\n language: 'dotnet',\n stability: 'experimental',\n priority: 35,\n packageManager: 'dotnet',\n manifestFile: '*.csproj',\n // existsSync cannot glob, so match any *.csproj in the install dir.\n detect: (options) => hasCsproj(options.installDir),\n },\n\n detection: {\n // Detection handled by language-detection.ts globExists('*.csproj').\n // These fields satisfy the FrameworkDetection interface but aren't used for non-JS SDKs.\n packageName: 'WorkOS.net',\n packageDisplayName: '.NET (ASP.NET Core)',\n getVersion: () => undefined,\n },\n\n environment: {\n uploadToHosting: false,\n requiresApiKey: true,\n getEnvVars: (apiKey: string, clientId: string) => ({\n WORKOS_API_KEY: apiKey,\n WORKOS_CLIENT_ID: clientId,\n }),\n },\n\n analytics: {\n getTags: () => ({}),\n },\n\n prompts: {},\n\n ui: {\n successMessage: 'WorkOS AuthKit integration complete',\n getOutroChanges: () => [\n 'Analyzed your ASP.NET Core project structure',\n 'Installed WorkOS.net NuGet package',\n 'Created authentication endpoints (login, callback, logout)',\n 'Configured WorkOS in appsettings',\n ],\n getOutroNextSteps: () => [\n 'Run `dotnet run` to start your development server',\n 'Visit the WorkOS Dashboard to manage users and settings',\n ],\n },\n};\n\n/**\n * Custom run function for .NET — bypasses runAgentInstaller's JS-centric assumptions\n * (no package.json, no .env.local, no TypeScript detection, no JS port detection).\n */\nexport async function run(options: InstallerOptions): Promise<string> {\n if (options.debug) {\n enableDebugLogs();\n }\n\n options.emitter?.emit('status', {\n message: `Setting up WorkOS AuthKit for ${config.metadata.name}`,\n });\n\n analytics.capture(INSTALLER_INTERACTION_EVENT_NAME, {\n action: 'started agent integration',\n integration: config.metadata.integration,\n });\n\n const { apiKey, clientId } = await getOrAskForWorkOSCredentials(options, config.environment.requiresApiKey);\n\n // Auto-configure WorkOS environment (redirect URI, CORS, homepage)\n const callerHandledConfig = Boolean(options.apiKey || options.clientId);\n if (!callerHandledConfig && apiKey) {\n const port = 5000; // ASP.NET Core default HTTP port\n await autoConfigureWorkOSEnvironment(apiKey, config.metadata.integration, port, {\n homepageUrl: options.homepageUrl,\n redirectUri: options.redirectUri,\n });\n }\n\n // Build prompt — credentials are passed via prompt context since .NET doesn't use .env.local\n const skillName = config.metadata.skillName!;\n const redirectUri = options.redirectUri || 'http://localhost:5000/auth/callback';\n const refContent = await getReference(skillName);\n\n const prompt = `You are integrating WorkOS AuthKit into this ASP.NET Core application.\n\n## Project Context\n\n- Framework: ASP.NET Core\n- Language: C#\n- Package manager: dotnet (NuGet)\n\n## Environment\n\nThe following WorkOS credentials should be configured in appsettings.Development.json:\n- WORKOS_API_KEY: (configured)\n- WORKOS_CLIENT_ID: (configured)\n- WORKOS_REDIRECT_URI: ${redirectUri}\n\n## Integration Instructions\n\n${refContent}\n\nReport your progress using [STATUS] prefixes.\n\nBegin integration now.`;\n\n const agent = await initializeAgent(\n {\n workingDirectory: options.installDir,\n workOSApiKey: apiKey,\n workOSApiHost: 'https://api.workos.com',\n },\n options,\n );\n\n const agentResult = await runAgent(\n agent,\n prompt,\n options,\n {\n spinnerMessage: SPINNER_MESSAGE,\n successMessage: config.ui.successMessage,\n errorMessage: 'Integration failed',\n },\n options.emitter,\n );\n\n if (agentResult.error) {\n await analytics.shutdown('error');\n const message = agentResult.errorMessage || agentResult.error;\n throw new Error(message);\n }\n\n // Post-installation validation\n if (!options.noValidate) {\n options.emitter?.emit('validation:start', { framework: config.metadata.integration });\n\n const validationResult = await validateInstallation(config.metadata.integration, options.installDir, {\n runBuild: true,\n });\n\n if (validationResult.issues.length > 0) {\n options.emitter?.emit('validation:issues', { issues: validationResult.issues });\n }\n\n options.emitter?.emit('validation:complete', {\n passed: validationResult.passed,\n issueCount: validationResult.issues.length,\n durationMs: validationResult.durationMs,\n });\n }\n\n const envVars = config.environment.getEnvVars(apiKey, clientId);\n\n const changes = [\n ...config.ui.getOutroChanges({}),\n Object.keys(envVars).length > 0 ? 'Configured WorkOS credentials in appsettings' : '',\n ].filter(Boolean);\n\n const nextSteps = config.ui.getOutroNextSteps({});\n\n const lines: string[] = [\n 'Successfully installed WorkOS AuthKit!',\n '',\n 'What the agent did:',\n ...changes.map((c) => `• ${c}`),\n '',\n 'Next steps:',\n ...nextSteps.map((s) => `• ${s}`),\n '',\n `Learn more: ${config.metadata.docsUrl}`,\n '',\n 'Note: This installer uses an LLM agent to analyze and modify your project. Please review the changes made.',\n ];\n\n await analytics.shutdown('success');\n\n return lines.join('\\n');\n}\n"]}
@@ -1,8 +0,0 @@
1
- import type { FrameworkConfig } from '../../lib/framework-config.js';
2
- import type { InstallerOptions } from '../../utils/types.js';
3
- export declare const config: FrameworkConfig;
4
- /**
5
- * Custom run function for Elixir — bypasses runAgentInstaller() which assumes
6
- * package.json exists. Directly calls initializeAgent/runAgent instead.
7
- */
8
- export declare function run(options: InstallerOptions): Promise<string>;
@@ -1,146 +0,0 @@
1
- import { enableDebugLogs } from '../../utils/debug.js';
2
- import { SPINNER_MESSAGE } from '../../lib/framework-config.js';
3
- import { analytics } from '../../utils/analytics.js';
4
- import { INSTALLER_INTERACTION_EVENT_NAME } from '../../lib/constants.js';
5
- import { getOrAskForWorkOSCredentials } from '../../utils/ui-utils.js';
6
- import { initializeAgent, runAgent } from '../../lib/agent-interface.js';
7
- import { writeEnvLocal } from '../../lib/env-writer.js';
8
- import { getReference } from '@workos/skills';
9
- export const config = {
10
- metadata: {
11
- name: 'Elixir (Phoenix)',
12
- integration: 'elixir',
13
- docsUrl: 'https://github.com/workos/workos-elixir',
14
- skillName: 'workos-elixir',
15
- language: 'elixir',
16
- stability: 'experimental',
17
- priority: 30,
18
- packageManager: 'mix',
19
- manifestFile: 'mix.exs',
20
- },
21
- detection: {
22
- // Required by FrameworkDetection interface — stubs for non-JS integration.
23
- // Actual detection uses language-detection.ts (mix.exs) + registry manifestFile check.
24
- packageName: 'workos',
25
- packageDisplayName: 'WorkOS Elixir',
26
- getVersion: () => undefined,
27
- },
28
- environment: {
29
- uploadToHosting: false,
30
- requiresApiKey: true,
31
- getEnvVars: (apiKey, clientId) => ({
32
- WORKOS_API_KEY: apiKey,
33
- WORKOS_CLIENT_ID: clientId,
34
- }),
35
- },
36
- analytics: {
37
- getTags: () => ({}),
38
- },
39
- prompts: {},
40
- ui: {
41
- successMessage: 'WorkOS AuthKit integration complete',
42
- getOutroChanges: () => [
43
- 'Analyzed your Phoenix project structure',
44
- 'Installed workos Hex package',
45
- 'Configured WorkOS in config/runtime.exs',
46
- 'Created auth controller and routes',
47
- ],
48
- getOutroNextSteps: () => [
49
- 'Run `mix phx.server` to test authentication',
50
- 'Visit the WorkOS Dashboard to manage users and settings',
51
- ],
52
- },
53
- };
54
- /**
55
- * Custom run function for Elixir — bypasses runAgentInstaller() which assumes
56
- * package.json exists. Directly calls initializeAgent/runAgent instead.
57
- */
58
- export async function run(options) {
59
- if (options.debug) {
60
- enableDebugLogs();
61
- }
62
- options.emitter?.emit('status', {
63
- message: `Setting up WorkOS AuthKit for ${config.metadata.name}`,
64
- });
65
- analytics.capture(INSTALLER_INTERACTION_EVENT_NAME, {
66
- action: 'started agent integration',
67
- integration: config.metadata.integration,
68
- });
69
- // Get WorkOS credentials
70
- const { apiKey, clientId } = await getOrAskForWorkOSCredentials(options, config.environment.requiresApiKey);
71
- // Write env vars to .env.local for the agent to reference
72
- const callerHandledConfig = Boolean(options.apiKey || options.clientId);
73
- if (!callerHandledConfig) {
74
- const port = 4000; // Phoenix default
75
- const callbackPath = '/auth/callback';
76
- const redirectUri = options.redirectUri || `http://localhost:${port}${callbackPath}`;
77
- writeEnvLocal(options.installDir, {
78
- ...(apiKey ? { WORKOS_API_KEY: apiKey } : {}),
79
- WORKOS_CLIENT_ID: clientId,
80
- WORKOS_REDIRECT_URI: redirectUri,
81
- });
82
- }
83
- // Build Elixir-specific prompt
84
- const integrationPrompt = await buildElixirPrompt();
85
- // Initialize and run agent
86
- const agent = await initializeAgent({
87
- workingDirectory: options.installDir,
88
- workOSApiKey: apiKey,
89
- workOSApiHost: 'https://api.workos.com',
90
- }, options);
91
- const agentResult = await runAgent(agent, integrationPrompt, options, {
92
- spinnerMessage: SPINNER_MESSAGE,
93
- successMessage: config.ui.successMessage,
94
- errorMessage: 'Integration failed',
95
- }, options.emitter);
96
- if (agentResult.error) {
97
- await analytics.shutdown('error');
98
- const message = agentResult.errorMessage || agentResult.error;
99
- throw new Error(message);
100
- }
101
- // Build summary
102
- const changes = config.ui.getOutroChanges({});
103
- const nextSteps = config.ui.getOutroNextSteps({});
104
- const lines = [
105
- 'Successfully installed WorkOS AuthKit!',
106
- '',
107
- 'What the agent did:',
108
- ...changes.map((c) => `• ${c}`),
109
- '',
110
- 'Next steps:',
111
- ...nextSteps.map((s) => `• ${s}`),
112
- '',
113
- `Learn more: ${config.metadata.docsUrl}`,
114
- '',
115
- 'Note: This installer uses an LLM agent to analyze and modify your project. Please review the changes made.',
116
- ];
117
- await analytics.shutdown('success');
118
- return lines.join('\n');
119
- }
120
- async function buildElixirPrompt() {
121
- const refContent = await getReference('workos-elixir');
122
- return `You are integrating WorkOS AuthKit into this Elixir/Phoenix application.
123
-
124
- ## Project Context
125
-
126
- - Framework: Phoenix (Elixir)
127
- - Package manager: mix (Hex)
128
-
129
- ## Environment
130
-
131
- The following environment variables have been configured in .env.local:
132
- - WORKOS_API_KEY
133
- - WORKOS_CLIENT_ID
134
- - WORKOS_REDIRECT_URI
135
-
136
- Note: For Elixir/Phoenix, these should be read via System.get_env() in config/runtime.exs rather than from .env.local directly.
137
-
138
- ## Integration Instructions
139
-
140
- ${refContent}
141
-
142
- Report your progress using [STATUS] prefixes.
143
-
144
- Begin integration now.`;
145
- }
146
- //# sourceMappingURL=index.js.map