workos 0.7.3 → 0.8.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 (151) hide show
  1. package/README.md +353 -8
  2. package/dist/bin.js +938 -128
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/api-key-mgmt.d.ts +16 -0
  5. package/dist/commands/api-key-mgmt.js +96 -0
  6. package/dist/commands/api-key-mgmt.js.map +1 -0
  7. package/dist/commands/audit-log.d.ts +26 -0
  8. package/dist/commands/audit-log.js +155 -0
  9. package/dist/commands/audit-log.js.map +1 -0
  10. package/dist/commands/config.d.ts +3 -0
  11. package/dist/commands/config.js +54 -0
  12. package/dist/commands/config.js.map +1 -0
  13. package/dist/commands/connection.d.ts +13 -0
  14. package/dist/commands/connection.js +94 -0
  15. package/dist/commands/connection.js.map +1 -0
  16. package/dist/commands/debug-sso.d.ts +1 -0
  17. package/dist/commands/debug-sso.js +78 -0
  18. package/dist/commands/debug-sso.js.map +1 -0
  19. package/dist/commands/debug-sync.d.ts +1 -0
  20. package/dist/commands/debug-sync.js +102 -0
  21. package/dist/commands/debug-sync.js.map +1 -0
  22. package/dist/commands/directory.d.ts +27 -0
  23. package/dist/commands/directory.js +174 -0
  24. package/dist/commands/directory.js.map +1 -0
  25. package/dist/commands/env.js +41 -28
  26. package/dist/commands/env.js.map +1 -1
  27. package/dist/commands/event.d.ts +9 -0
  28. package/dist/commands/event.js +43 -0
  29. package/dist/commands/event.js.map +1 -0
  30. package/dist/commands/feature-flag.d.ts +12 -0
  31. package/dist/commands/feature-flag.js +96 -0
  32. package/dist/commands/feature-flag.js.map +1 -0
  33. package/dist/commands/install-skill.js +3 -5
  34. package/dist/commands/install-skill.js.map +1 -1
  35. package/dist/commands/install.js +13 -20
  36. package/dist/commands/install.js.map +1 -1
  37. package/dist/commands/invitation.d.ts +19 -0
  38. package/dist/commands/invitation.js +94 -0
  39. package/dist/commands/invitation.js.map +1 -0
  40. package/dist/commands/membership.d.ts +20 -0
  41. package/dist/commands/membership.js +129 -0
  42. package/dist/commands/membership.js.map +1 -0
  43. package/dist/commands/onboard-user.d.ts +7 -0
  44. package/dist/commands/onboard-user.js +61 -0
  45. package/dist/commands/onboard-user.js.map +1 -0
  46. package/dist/commands/org-domain.d.ts +4 -0
  47. package/dist/commands/org-domain.js +45 -0
  48. package/dist/commands/org-domain.js.map +1 -0
  49. package/dist/commands/organization.d.ts +1 -5
  50. package/dist/commands/organization.js +34 -73
  51. package/dist/commands/organization.js.map +1 -1
  52. package/dist/commands/permission.d.ts +20 -0
  53. package/dist/commands/permission.js +93 -0
  54. package/dist/commands/permission.js.map +1 -0
  55. package/dist/commands/portal.d.ts +7 -0
  56. package/dist/commands/portal.js +26 -0
  57. package/dist/commands/portal.js.map +1 -0
  58. package/dist/commands/role.d.ts +17 -0
  59. package/dist/commands/role.js +122 -0
  60. package/dist/commands/role.js.map +1 -0
  61. package/dist/commands/seed.d.ts +4 -0
  62. package/dist/commands/seed.js +238 -0
  63. package/dist/commands/seed.js.map +1 -0
  64. package/dist/commands/session.d.ts +8 -0
  65. package/dist/commands/session.js +63 -0
  66. package/dist/commands/session.js.map +1 -0
  67. package/dist/commands/setup-org.d.ts +6 -0
  68. package/dist/commands/setup-org.js +99 -0
  69. package/dist/commands/setup-org.js.map +1 -0
  70. package/dist/commands/user.js +35 -71
  71. package/dist/commands/user.js.map +1 -1
  72. package/dist/commands/vault.d.ts +24 -0
  73. package/dist/commands/vault.js +120 -0
  74. package/dist/commands/vault.js.map +1 -0
  75. package/dist/commands/webhook.d.ts +3 -0
  76. package/dist/commands/webhook.js +73 -0
  77. package/dist/commands/webhook.js.map +1 -0
  78. package/dist/dashboard/components/DiffPanel.js.map +1 -1
  79. package/dist/dashboard/lib/logo-frames.js +1 -1
  80. package/dist/dashboard/lib/logo-frames.js.map +1 -1
  81. package/dist/doctor/checks/dashboard.js.map +1 -1
  82. package/dist/doctor/checks/environment.js.map +1 -1
  83. package/dist/integrations/go/index.js +1 -3
  84. package/dist/integrations/go/index.js.map +1 -1
  85. package/dist/lib/adapters/headless-adapter.d.ts +67 -0
  86. package/dist/lib/adapters/headless-adapter.js +263 -0
  87. package/dist/lib/adapters/headless-adapter.js.map +1 -0
  88. package/dist/lib/adapters/index.d.ts +1 -0
  89. package/dist/lib/adapters/index.js +1 -0
  90. package/dist/lib/adapters/index.js.map +1 -1
  91. package/dist/lib/agent-interface.d.ts +3 -11
  92. package/dist/lib/agent-interface.js +3 -19
  93. package/dist/lib/agent-interface.js.map +1 -1
  94. package/dist/lib/api-error-handler.d.ts +6 -0
  95. package/dist/lib/api-error-handler.js +58 -0
  96. package/dist/lib/api-error-handler.js.map +1 -0
  97. package/dist/lib/api-key.js +5 -1
  98. package/dist/lib/api-key.js.map +1 -1
  99. package/dist/lib/config.js.map +1 -1
  100. package/dist/lib/credential-proxy.js +0 -6
  101. package/dist/lib/credential-proxy.js.map +1 -1
  102. package/dist/lib/device-auth.js +1 -1
  103. package/dist/lib/device-auth.js.map +1 -1
  104. package/dist/lib/ensure-auth.js +25 -4
  105. package/dist/lib/ensure-auth.js.map +1 -1
  106. package/dist/lib/installer-core.d.ts +12 -12
  107. package/dist/lib/run-with-core.js +25 -4
  108. package/dist/lib/run-with-core.js.map +1 -1
  109. package/dist/lib/validation/validator.js +0 -1
  110. package/dist/lib/validation/validator.js.map +1 -1
  111. package/dist/lib/workos-client.d.ts +58 -0
  112. package/dist/lib/workos-client.js +137 -0
  113. package/dist/lib/workos-client.js.map +1 -0
  114. package/dist/run.d.ts +7 -0
  115. package/dist/run.js +5 -2
  116. package/dist/run.js.map +1 -1
  117. package/dist/smoke-test.ts +881 -0
  118. package/dist/steps/run-prettier.js +1 -1
  119. package/dist/steps/run-prettier.js.map +1 -1
  120. package/dist/utils/analytics.d.ts +1 -1
  121. package/dist/utils/analytics.js.map +1 -1
  122. package/dist/utils/clack-utils.js +1 -1
  123. package/dist/utils/clack-utils.js.map +1 -1
  124. package/dist/utils/environment.js +8 -0
  125. package/dist/utils/environment.js.map +1 -1
  126. package/dist/utils/exit-codes.d.ts +22 -0
  127. package/dist/utils/exit-codes.js +30 -0
  128. package/dist/utils/exit-codes.js.map +1 -0
  129. package/dist/utils/help-json.d.ts +45 -0
  130. package/dist/utils/help-json.js +1161 -0
  131. package/dist/utils/help-json.js.map +1 -0
  132. package/dist/utils/ndjson.d.ts +16 -0
  133. package/dist/utils/ndjson.js +18 -0
  134. package/dist/utils/ndjson.js.map +1 -0
  135. package/dist/utils/output.d.ts +40 -0
  136. package/dist/utils/output.js +95 -0
  137. package/dist/utils/output.js.map +1 -0
  138. package/dist/utils/package-manager.js +2 -3
  139. package/dist/utils/package-manager.js.map +1 -1
  140. package/dist/utils/paths.d.ts +5 -0
  141. package/dist/utils/paths.js +18 -0
  142. package/dist/utils/paths.js.map +1 -0
  143. package/dist/utils/register-subcommand.d.ts +7 -0
  144. package/dist/utils/register-subcommand.js +36 -0
  145. package/dist/utils/register-subcommand.js.map +1 -0
  146. package/dist/utils/telemetry-types.d.ts +1 -1
  147. package/dist/utils/telemetry-types.js.map +1 -1
  148. package/dist/utils/types.d.ts +12 -0
  149. package/dist/utils/types.js.map +1 -1
  150. package/package.json +20 -16
  151. package/skills/workos-management/SKILL.md +250 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-json.js","sourceRoot":"","sources":["../../src/utils/help-json.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent-discoverable help: machine-readable command tree for --help --json.\n *\n * Static command registry mirroring bin.ts yargs definitions.\n * yargs v18 doesn't expose public APIs for command introspection,\n * so we maintain a parallel typed registry.\n */\n\nimport { getVersion } from '../lib/settings.js';\n\nexport interface OptionSchema {\n name: string;\n type: 'string' | 'boolean' | 'number' | 'array';\n description: string;\n required: boolean;\n default?: unknown;\n alias?: string;\n choices?: string[];\n hidden: boolean;\n}\n\nexport interface PositionalSchema {\n name: string;\n type: string;\n description: string;\n required: boolean;\n}\n\nexport interface CommandSchema {\n name: string;\n description: string;\n commands?: CommandSchema[];\n options?: OptionSchema[];\n positionals?: PositionalSchema[];\n examples?: string[];\n}\n\nexport interface HelpOutput {\n name: string;\n version: string;\n description: string;\n commands: CommandSchema[];\n options: OptionSchema[];\n}\n\n// ---------------------------------------------------------------------------\n// Shared option fragments (mirrors bin.ts shared option objects)\n// ---------------------------------------------------------------------------\n\nconst insecureStorageOpt: OptionSchema = {\n name: 'insecure-storage',\n type: 'boolean',\n description: 'Store credentials in plaintext file instead of system keyring',\n required: false,\n default: false,\n hidden: false,\n};\n\nconst apiKeyOpt: OptionSchema = {\n name: 'api-key',\n type: 'string',\n description: 'WorkOS API key (overrides environment config). Format: sk_live_* or sk_test_*',\n required: false,\n hidden: false,\n};\n\nconst paginationOpts: OptionSchema[] = [\n { name: 'limit', type: 'number', description: 'Maximum number of results to return', required: false, hidden: false },\n {\n name: 'before',\n type: 'string',\n description: 'Pagination cursor for results before a specific item',\n required: false,\n hidden: false,\n },\n {\n name: 'after',\n type: 'string',\n description: 'Pagination cursor for results after a specific item',\n required: false,\n hidden: false,\n },\n {\n name: 'order',\n type: 'string',\n description: 'Sort order (asc or desc)',\n required: false,\n choices: ['asc', 'desc'],\n hidden: false,\n },\n];\n\n// ---------------------------------------------------------------------------\n// Command registry\n// ---------------------------------------------------------------------------\n\nconst commands: CommandSchema[] = [\n {\n name: 'login',\n description: 'Authenticate with WorkOS via browser-based OAuth',\n options: [insecureStorageOpt],\n },\n {\n name: 'logout',\n description: 'Remove stored WorkOS credentials and tokens',\n options: [insecureStorageOpt],\n },\n {\n name: 'install-skill',\n description: 'Install bundled AuthKit skills to coding agents (Claude Code, Codex, Cursor, Goose)',\n options: [\n {\n name: 'list',\n type: 'boolean',\n description: 'List available skills without installing',\n required: false,\n alias: 'l',\n hidden: false,\n },\n {\n name: 'skill',\n type: 'array',\n description: 'Install specific skill(s) by name',\n required: false,\n alias: 's',\n hidden: false,\n },\n {\n name: 'agent',\n type: 'array',\n description: 'Target specific agent(s): claude-code, codex, cursor, goose',\n required: false,\n alias: 'a',\n hidden: false,\n },\n ],\n },\n {\n name: 'doctor',\n description: 'Diagnose WorkOS AuthKit integration issues in the current project',\n options: [\n {\n name: 'verbose',\n type: 'boolean',\n description: 'Include additional diagnostic information',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'skip-api',\n type: 'boolean',\n description: 'Skip API calls (offline mode)',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'skip-ai',\n type: 'boolean',\n description: 'Skip AI-powered analysis',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'install-dir',\n type: 'string',\n description: 'Project directory to analyze (defaults to cwd)',\n required: false,\n hidden: false,\n },\n {\n name: 'json',\n type: 'boolean',\n description: 'Output diagnostic report as JSON',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'copy',\n type: 'boolean',\n description: 'Copy diagnostic report to clipboard',\n required: false,\n default: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'env',\n description: 'Manage environment configurations (API keys, endpoints, active environment)',\n options: [insecureStorageOpt],\n commands: [\n {\n name: 'add',\n description: 'Add a new environment configuration with API key and optional settings',\n positionals: [\n {\n name: 'name',\n type: 'string',\n description: 'Environment name (lowercase, hyphens, underscores)',\n required: false,\n },\n { name: 'apiKey', type: 'string', description: 'WorkOS API key (sk_live_* or sk_test_*)', required: false },\n ],\n options: [\n {\n name: 'client-id',\n type: 'string',\n description: 'WorkOS client ID for this environment',\n required: false,\n hidden: false,\n },\n { name: 'endpoint', type: 'string', description: 'Custom API endpoint URL', required: false, hidden: false },\n ],\n },\n {\n name: 'remove',\n description: 'Remove an environment configuration',\n positionals: [{ name: 'name', type: 'string', description: 'Environment name to remove', required: true }],\n },\n {\n name: 'switch',\n description: 'Switch the active environment (determines which API key is used)',\n positionals: [{ name: 'name', type: 'string', description: 'Environment name to activate', required: false }],\n },\n {\n name: 'list',\n description: 'List all configured environments and show which is active',\n },\n ],\n },\n {\n name: 'organization',\n description: 'Manage WorkOS organizations (create, update, get, list, delete)',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'create',\n description: 'Create a new organization with optional verified domains',\n positionals: [\n { name: 'name', type: 'string', description: 'Organization name', required: true },\n {\n name: 'domains',\n type: 'string',\n description: 'Domains in format domain:state (state defaults to verified)',\n required: false,\n },\n ],\n },\n {\n name: 'update',\n description: 'Update an existing organization name or domain',\n positionals: [\n { name: 'orgId', type: 'string', description: 'Organization ID (org_*)', required: true },\n { name: 'name', type: 'string', description: 'New organization name', required: true },\n { name: 'domain', type: 'string', description: 'Domain to add or update', required: false },\n { name: 'state', type: 'string', description: 'Domain state (verified or pending)', required: false },\n ],\n },\n {\n name: 'get',\n description: 'Get an organization by its ID',\n positionals: [{ name: 'orgId', type: 'string', description: 'Organization ID (org_*)', required: true }],\n },\n {\n name: 'list',\n description: 'List organizations with optional filters and pagination',\n options: [\n {\n name: 'domain',\n type: 'string',\n description: 'Filter organizations by domain',\n required: false,\n hidden: false,\n },\n ...paginationOpts,\n ],\n },\n {\n name: 'delete',\n description: 'Delete an organization by its ID',\n positionals: [{ name: 'orgId', type: 'string', description: 'Organization ID (org_*)', required: true }],\n },\n ],\n },\n {\n name: 'user',\n description: 'Manage WorkOS user management users (get, list, update, delete)',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'get',\n description: 'Get a user by their ID',\n positionals: [{ name: 'userId', type: 'string', description: 'User ID (user_*)', required: true }],\n },\n {\n name: 'list',\n description: 'List users with optional filters and pagination',\n options: [\n {\n name: 'email',\n type: 'string',\n description: 'Filter users by email address',\n required: false,\n hidden: false,\n },\n {\n name: 'organization',\n type: 'string',\n description: 'Filter users by organization ID',\n required: false,\n hidden: false,\n },\n ...paginationOpts,\n ],\n },\n {\n name: 'update',\n description: 'Update user properties (name, email verification, password, external ID)',\n positionals: [{ name: 'userId', type: 'string', description: 'User ID (user_*)', required: true }],\n options: [\n { name: 'first-name', type: 'string', description: 'First name', required: false, hidden: false },\n { name: 'last-name', type: 'string', description: 'Last name', required: false, hidden: false },\n {\n name: 'email-verified',\n type: 'boolean',\n description: 'Email verification status',\n required: false,\n hidden: false,\n },\n { name: 'password', type: 'string', description: 'New password', required: false, hidden: false },\n {\n name: 'external-id',\n type: 'string',\n description: 'External ID for cross-system mapping',\n required: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'delete',\n description: 'Delete a user by their ID',\n positionals: [{ name: 'userId', type: 'string', description: 'User ID (user_*)', required: true }],\n },\n ],\n },\n // --- Resource Management Commands ---\n {\n name: 'role',\n description: 'Manage WorkOS roles (environment and organization-scoped)',\n options: [\n insecureStorageOpt,\n apiKeyOpt,\n {\n name: 'org',\n type: 'string',\n description: 'Organization ID (for org-scoped roles)',\n required: false,\n hidden: false,\n },\n ],\n commands: [\n { name: 'list', description: 'List roles', options: [] },\n {\n name: 'get',\n description: 'Get a role by slug',\n positionals: [{ name: 'slug', type: 'string', description: 'Role slug', required: true }],\n },\n {\n name: 'create',\n description: 'Create a role',\n options: [\n { name: 'slug', type: 'string', description: 'Role slug', required: true, hidden: false },\n { name: 'name', type: 'string', description: 'Role name', required: true, hidden: false },\n { name: 'description', type: 'string', description: 'Role description', required: false, hidden: false },\n ],\n },\n {\n name: 'update',\n description: 'Update a role',\n positionals: [{ name: 'slug', type: 'string', description: 'Role slug', required: true }],\n options: [\n { name: 'name', type: 'string', description: 'New name', required: false, hidden: false },\n { name: 'description', type: 'string', description: 'New description', required: false, hidden: false },\n ],\n },\n {\n name: 'delete',\n description: 'Delete an org-scoped role (requires --org)',\n positionals: [{ name: 'slug', type: 'string', description: 'Role slug', required: true }],\n },\n {\n name: 'set-permissions',\n description: 'Set all permissions on a role (replaces existing)',\n positionals: [{ name: 'slug', type: 'string', description: 'Role slug', required: true }],\n options: [\n {\n name: 'permissions',\n type: 'string',\n description: 'Comma-separated permission slugs',\n required: true,\n hidden: false,\n },\n ],\n },\n {\n name: 'add-permission',\n description: 'Add a permission to a role',\n positionals: [\n { name: 'slug', type: 'string', description: 'Role slug', required: true },\n { name: 'permissionSlug', type: 'string', description: 'Permission slug', required: true },\n ],\n },\n {\n name: 'remove-permission',\n description: 'Remove a permission from an org role (requires --org)',\n positionals: [\n { name: 'slug', type: 'string', description: 'Role slug', required: true },\n { name: 'permissionSlug', type: 'string', description: 'Permission slug', required: true },\n ],\n },\n ],\n },\n {\n name: 'permission',\n description: 'Manage WorkOS permissions',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n { name: 'list', description: 'List permissions', options: [...paginationOpts] },\n {\n name: 'get',\n description: 'Get a permission',\n positionals: [{ name: 'slug', type: 'string', description: 'Permission slug', required: true }],\n },\n {\n name: 'create',\n description: 'Create a permission',\n options: [\n { name: 'slug', type: 'string', description: 'Permission slug', required: true, hidden: false },\n { name: 'name', type: 'string', description: 'Permission name', required: true, hidden: false },\n {\n name: 'description',\n type: 'string',\n description: 'Permission description',\n required: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'update',\n description: 'Update a permission',\n positionals: [{ name: 'slug', type: 'string', description: 'Permission slug', required: true }],\n options: [\n { name: 'name', type: 'string', description: 'New name', required: false, hidden: false },\n { name: 'description', type: 'string', description: 'New description', required: false, hidden: false },\n ],\n },\n {\n name: 'delete',\n description: 'Delete a permission',\n positionals: [{ name: 'slug', type: 'string', description: 'Permission slug', required: true }],\n },\n ],\n },\n {\n name: 'membership',\n description: 'Manage organization memberships',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List memberships',\n options: [\n { name: 'org', type: 'string', description: 'Filter by organization ID', required: false, hidden: false },\n { name: 'user', type: 'string', description: 'Filter by user ID', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'get',\n description: 'Get a membership',\n positionals: [{ name: 'id', type: 'string', description: 'Membership ID', required: true }],\n },\n {\n name: 'create',\n description: 'Create a membership',\n options: [\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n { name: 'user', type: 'string', description: 'User ID', required: true, hidden: false },\n { name: 'role', type: 'string', description: 'Role slug', required: false, hidden: false },\n ],\n },\n {\n name: 'update',\n description: 'Update a membership',\n positionals: [{ name: 'id', type: 'string', description: 'Membership ID', required: true }],\n options: [{ name: 'role', type: 'string', description: 'New role slug', required: false, hidden: false }],\n },\n {\n name: 'delete',\n description: 'Delete a membership',\n positionals: [{ name: 'id', type: 'string', description: 'Membership ID', required: true }],\n },\n {\n name: 'deactivate',\n description: 'Deactivate a membership',\n positionals: [{ name: 'id', type: 'string', description: 'Membership ID', required: true }],\n },\n {\n name: 'reactivate',\n description: 'Reactivate a membership',\n positionals: [{ name: 'id', type: 'string', description: 'Membership ID', required: true }],\n },\n ],\n },\n {\n name: 'invitation',\n description: 'Manage user invitations',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List invitations',\n options: [\n { name: 'org', type: 'string', description: 'Filter by organization ID', required: false, hidden: false },\n { name: 'email', type: 'string', description: 'Filter by email', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'get',\n description: 'Get an invitation',\n positionals: [{ name: 'id', type: 'string', description: 'Invitation ID', required: true }],\n },\n {\n name: 'send',\n description: 'Send an invitation',\n options: [\n { name: 'email', type: 'string', description: 'Email address', required: true, hidden: false },\n { name: 'org', type: 'string', description: 'Organization ID', required: false, hidden: false },\n { name: 'role', type: 'string', description: 'Role slug', required: false, hidden: false },\n {\n name: 'expires-in-days',\n type: 'number',\n description: 'Expiration in days',\n required: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'revoke',\n description: 'Revoke an invitation',\n positionals: [{ name: 'id', type: 'string', description: 'Invitation ID', required: true }],\n },\n {\n name: 'resend',\n description: 'Resend an invitation',\n positionals: [{ name: 'id', type: 'string', description: 'Invitation ID', required: true }],\n },\n ],\n },\n {\n name: 'session',\n description: 'Manage user sessions',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List sessions for a user',\n positionals: [{ name: 'userId', type: 'string', description: 'User ID', required: true }],\n options: [...paginationOpts],\n },\n {\n name: 'revoke',\n description: 'Revoke a session',\n positionals: [{ name: 'sessionId', type: 'string', description: 'Session ID', required: true }],\n },\n ],\n },\n {\n name: 'connection',\n description: 'Manage SSO connections (read/delete)',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List connections',\n options: [\n { name: 'org', type: 'string', description: 'Filter by organization ID', required: false, hidden: false },\n { name: 'type', type: 'string', description: 'Filter by connection type', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'get',\n description: 'Get a connection',\n positionals: [{ name: 'id', type: 'string', description: 'Connection ID', required: true }],\n },\n {\n name: 'delete',\n description: 'Delete a connection',\n positionals: [{ name: 'id', type: 'string', description: 'Connection ID', required: true }],\n options: [\n {\n name: 'force',\n type: 'boolean',\n description: 'Skip confirmation prompt',\n required: false,\n default: false,\n hidden: false,\n },\n ],\n },\n ],\n },\n {\n name: 'directory',\n description: 'Manage directory sync (read/delete, list users/groups)',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List directories',\n options: [\n { name: 'org', type: 'string', description: 'Filter by organization ID', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'get',\n description: 'Get a directory',\n positionals: [{ name: 'id', type: 'string', description: 'Directory ID', required: true }],\n },\n {\n name: 'delete',\n description: 'Delete a directory',\n positionals: [{ name: 'id', type: 'string', description: 'Directory ID', required: true }],\n options: [\n {\n name: 'force',\n type: 'boolean',\n description: 'Skip confirmation prompt',\n required: false,\n default: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'list-users',\n description: 'List directory users',\n options: [\n { name: 'directory', type: 'string', description: 'Directory ID', required: false, hidden: false },\n { name: 'group', type: 'string', description: 'Group ID', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'list-groups',\n description: 'List directory groups',\n options: [\n { name: 'directory', type: 'string', description: 'Directory ID', required: true, hidden: false },\n ...paginationOpts,\n ],\n },\n ],\n },\n {\n name: 'event',\n description: 'Query WorkOS events',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List events',\n options: [\n {\n name: 'events',\n type: 'string',\n description: 'Comma-separated event types (required)',\n required: true,\n hidden: false,\n },\n { name: 'org', type: 'string', description: 'Filter by organization ID', required: false, hidden: false },\n {\n name: 'range-start',\n type: 'string',\n description: 'Range start (ISO date)',\n required: false,\n hidden: false,\n },\n { name: 'range-end', type: 'string', description: 'Range end (ISO date)', required: false, hidden: false },\n ...paginationOpts,\n ],\n },\n ],\n },\n {\n name: 'audit-log',\n description: 'Manage audit logs',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'create-event',\n description: 'Create an audit log event',\n positionals: [{ name: 'orgId', type: 'string', description: 'Organization ID', required: true }],\n options: [\n { name: 'action', type: 'string', description: 'Action name', required: false, hidden: false },\n { name: 'actor-type', type: 'string', description: 'Actor type', required: false, hidden: false },\n { name: 'actor-id', type: 'string', description: 'Actor ID', required: false, hidden: false },\n { name: 'file', type: 'string', description: 'Path to event JSON file', required: false, hidden: false },\n ],\n },\n {\n name: 'export',\n description: 'Export audit logs',\n options: [\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n { name: 'range-start', type: 'string', description: 'Range start (ISO date)', required: true, hidden: false },\n { name: 'range-end', type: 'string', description: 'Range end (ISO date)', required: true, hidden: false },\n ],\n },\n { name: 'list-actions', description: 'List available audit log actions' },\n {\n name: 'get-schema',\n description: 'Get schema for an audit log action',\n positionals: [{ name: 'action', type: 'string', description: 'Action name', required: true }],\n },\n {\n name: 'create-schema',\n description: 'Create an audit log schema',\n positionals: [{ name: 'action', type: 'string', description: 'Action name', required: true }],\n options: [\n { name: 'file', type: 'string', description: 'Path to schema JSON file', required: true, hidden: false },\n ],\n },\n {\n name: 'get-retention',\n description: 'Get audit log retention period',\n positionals: [{ name: 'orgId', type: 'string', description: 'Organization ID', required: true }],\n },\n ],\n },\n {\n name: 'feature-flag',\n description: 'Manage feature flags',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n { name: 'list', description: 'List feature flags', options: [...paginationOpts] },\n {\n name: 'get',\n description: 'Get a feature flag',\n positionals: [{ name: 'slug', type: 'string', description: 'Feature flag slug', required: true }],\n },\n {\n name: 'enable',\n description: 'Enable a feature flag',\n positionals: [{ name: 'slug', type: 'string', description: 'Feature flag slug', required: true }],\n },\n {\n name: 'disable',\n description: 'Disable a feature flag',\n positionals: [{ name: 'slug', type: 'string', description: 'Feature flag slug', required: true }],\n },\n {\n name: 'add-target',\n description: 'Add a target to a feature flag',\n positionals: [\n { name: 'slug', type: 'string', description: 'Feature flag slug', required: true },\n { name: 'targetId', type: 'string', description: 'Target ID', required: true },\n ],\n },\n {\n name: 'remove-target',\n description: 'Remove a target from a feature flag',\n positionals: [\n { name: 'slug', type: 'string', description: 'Feature flag slug', required: true },\n { name: 'targetId', type: 'string', description: 'Target ID', required: true },\n ],\n },\n ],\n },\n {\n name: 'webhook',\n description: 'Manage webhooks',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n { name: 'list', description: 'List webhooks' },\n {\n name: 'create',\n description: 'Create a webhook',\n options: [\n { name: 'url', type: 'string', description: 'Webhook endpoint URL', required: true, hidden: false },\n { name: 'events', type: 'string', description: 'Comma-separated event types', required: true, hidden: false },\n ],\n },\n {\n name: 'delete',\n description: 'Delete a webhook',\n positionals: [{ name: 'id', type: 'string', description: 'Webhook ID', required: true }],\n },\n ],\n },\n {\n name: 'config',\n description: 'Manage WorkOS configuration (redirect URIs, CORS, homepage)',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'redirect',\n description: 'Manage redirect URIs',\n commands: [\n {\n name: 'add',\n description: 'Add a redirect URI',\n positionals: [{ name: 'uri', type: 'string', description: 'Redirect URI', required: true }],\n },\n ],\n },\n {\n name: 'cors',\n description: 'Manage CORS origins',\n commands: [\n {\n name: 'add',\n description: 'Add a CORS origin',\n positionals: [{ name: 'origin', type: 'string', description: 'CORS origin', required: true }],\n },\n ],\n },\n {\n name: 'homepage-url',\n description: 'Manage homepage URL',\n commands: [\n {\n name: 'set',\n description: 'Set the homepage URL',\n positionals: [{ name: 'url', type: 'string', description: 'Homepage URL', required: true }],\n },\n ],\n },\n ],\n },\n {\n name: 'portal',\n description: 'Manage Admin Portal',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'generate-link',\n description: 'Generate an Admin Portal link',\n options: [\n {\n name: 'intent',\n type: 'string',\n description: 'Portal intent (sso, dsync, audit_logs, log_streams)',\n required: true,\n hidden: false,\n },\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n {\n name: 'return-url',\n type: 'string',\n description: 'Return URL after portal',\n required: false,\n hidden: false,\n },\n { name: 'success-url', type: 'string', description: 'Success URL', required: false, hidden: false },\n ],\n },\n ],\n },\n {\n name: 'vault',\n description: 'Manage WorkOS Vault secrets',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n { name: 'list', description: 'List vault objects', options: [...paginationOpts] },\n {\n name: 'get',\n description: 'Get a vault object',\n positionals: [{ name: 'id', type: 'string', description: 'Object ID', required: true }],\n },\n {\n name: 'get-by-name',\n description: 'Get a vault object by name',\n positionals: [{ name: 'name', type: 'string', description: 'Object name', required: true }],\n },\n {\n name: 'create',\n description: 'Create a vault object',\n options: [\n { name: 'name', type: 'string', description: 'Object name', required: true, hidden: false },\n { name: 'value', type: 'string', description: 'Secret value', required: true, hidden: false },\n { name: 'org', type: 'string', description: 'Organization ID', required: false, hidden: false },\n ],\n },\n {\n name: 'update',\n description: 'Update a vault object',\n positionals: [{ name: 'id', type: 'string', description: 'Object ID', required: true }],\n options: [\n { name: 'value', type: 'string', description: 'New value', required: true, hidden: false },\n { name: 'version-check', type: 'string', description: 'Version check ID', required: false, hidden: false },\n ],\n },\n {\n name: 'delete',\n description: 'Delete a vault object',\n positionals: [{ name: 'id', type: 'string', description: 'Object ID', required: true }],\n },\n {\n name: 'describe',\n description: 'Describe a vault object',\n positionals: [{ name: 'id', type: 'string', description: 'Object ID', required: true }],\n },\n {\n name: 'list-versions',\n description: 'List vault object versions',\n positionals: [{ name: 'id', type: 'string', description: 'Object ID', required: true }],\n },\n ],\n },\n {\n name: 'api-key',\n description: 'Manage API keys',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'list',\n description: 'List API keys',\n options: [\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n ...paginationOpts,\n ],\n },\n {\n name: 'create',\n description: 'Create an API key',\n options: [\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n { name: 'name', type: 'string', description: 'Key name', required: true, hidden: false },\n {\n name: 'permissions',\n type: 'string',\n description: 'Comma-separated permissions',\n required: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'validate',\n description: 'Validate an API key',\n positionals: [{ name: 'value', type: 'string', description: 'API key value', required: true }],\n },\n {\n name: 'delete',\n description: 'Delete an API key',\n positionals: [{ name: 'id', type: 'string', description: 'API key ID', required: true }],\n },\n ],\n },\n {\n name: 'org-domain',\n description: 'Manage organization domains',\n options: [insecureStorageOpt, apiKeyOpt],\n commands: [\n {\n name: 'get',\n description: 'Get a domain',\n positionals: [{ name: 'id', type: 'string', description: 'Domain ID', required: true }],\n },\n {\n name: 'create',\n description: 'Create a domain',\n positionals: [{ name: 'domain', type: 'string', description: 'Domain name', required: true }],\n options: [{ name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false }],\n },\n {\n name: 'verify',\n description: 'Verify a domain',\n positionals: [{ name: 'id', type: 'string', description: 'Domain ID', required: true }],\n },\n {\n name: 'delete',\n description: 'Delete a domain',\n positionals: [{ name: 'id', type: 'string', description: 'Domain ID', required: true }],\n },\n ],\n },\n // --- Workflow Commands ---\n {\n name: 'seed',\n description: 'Seed WorkOS environment from a YAML config file',\n options: [\n insecureStorageOpt,\n apiKeyOpt,\n { name: 'file', type: 'string', description: 'Path to seed YAML file', required: false, hidden: false },\n {\n name: 'clean',\n type: 'boolean',\n description: 'Tear down seeded resources',\n required: false,\n default: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'setup-org',\n description: 'One-shot organization onboarding',\n positionals: [{ name: 'name', type: 'string', description: 'Organization name', required: true }],\n options: [\n insecureStorageOpt,\n apiKeyOpt,\n { name: 'domain', type: 'string', description: 'Domain to add', required: false, hidden: false },\n { name: 'roles', type: 'string', description: 'Comma-separated role slugs', required: false, hidden: false },\n ],\n },\n {\n name: 'onboard-user',\n description: 'Onboard a user (send invitation, assign role)',\n positionals: [{ name: 'email', type: 'string', description: 'User email', required: true }],\n options: [\n insecureStorageOpt,\n apiKeyOpt,\n { name: 'org', type: 'string', description: 'Organization ID', required: true, hidden: false },\n { name: 'role', type: 'string', description: 'Role slug', required: false, hidden: false },\n {\n name: 'wait',\n type: 'boolean',\n description: 'Wait for invitation acceptance',\n required: false,\n default: false,\n hidden: false,\n },\n ],\n },\n {\n name: 'debug-sso',\n description: 'Diagnose SSO connection issues',\n positionals: [{ name: 'connectionId', type: 'string', description: 'Connection ID', required: true }],\n options: [insecureStorageOpt, apiKeyOpt],\n },\n {\n name: 'debug-sync',\n description: 'Diagnose directory sync issues',\n positionals: [{ name: 'directoryId', type: 'string', description: 'Directory ID', required: true }],\n options: [insecureStorageOpt, apiKeyOpt],\n },\n {\n name: 'install',\n description: 'Install WorkOS AuthKit into your project (interactive framework detection and setup)',\n options: [\n {\n name: 'direct',\n type: 'boolean',\n description: 'Use your own Anthropic API key (bypass llm-gateway)',\n required: false,\n default: false,\n alias: 'D',\n hidden: false,\n },\n {\n name: 'debug',\n type: 'boolean',\n description: 'Enable verbose logging',\n required: false,\n default: false,\n hidden: false,\n },\n insecureStorageOpt,\n {\n name: 'homepage-url',\n type: 'string',\n description: 'App homepage URL for WorkOS (defaults to http://localhost:{port})',\n required: false,\n hidden: false,\n },\n {\n name: 'redirect-uri',\n type: 'string',\n description: 'Redirect URI for WorkOS callback (defaults to framework convention)',\n required: false,\n hidden: false,\n },\n {\n name: 'validate',\n type: 'boolean',\n description: 'Run post-installation validation (use --no-validate to skip)',\n required: false,\n default: true,\n hidden: false,\n },\n {\n name: 'install-dir',\n type: 'string',\n description: 'Directory to install WorkOS AuthKit in (defaults to cwd)',\n required: false,\n hidden: false,\n },\n {\n name: 'integration',\n type: 'string',\n description: 'Framework integration to set up (auto-detected if omitted)',\n required: false,\n hidden: false,\n },\n {\n name: 'force-install',\n type: 'boolean',\n description: 'Force install packages even if peer dependency checks fail',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'dashboard',\n type: 'boolean',\n description: 'Run with visual dashboard mode',\n required: false,\n default: false,\n alias: 'd',\n hidden: false,\n },\n {\n name: 'branch',\n type: 'boolean',\n description: 'Create a new branch for changes (use --no-branch to skip)',\n required: false,\n default: true,\n hidden: false,\n },\n {\n name: 'commit',\n type: 'boolean',\n description: 'Auto-commit after installation (use --no-commit to skip)',\n required: false,\n default: true,\n hidden: false,\n },\n {\n name: 'create-pr',\n type: 'boolean',\n description: 'Auto-create pull request after installation',\n required: false,\n default: false,\n hidden: false,\n },\n {\n name: 'git-check',\n type: 'boolean',\n description: 'Check for dirty working tree (use --no-git-check to skip)',\n required: false,\n default: true,\n hidden: false,\n },\n ],\n },\n];\n\nconst globalOptions: OptionSchema[] = [\n {\n name: 'json',\n type: 'boolean',\n description: 'Output results as JSON (auto-enabled in non-TTY environments)',\n required: false,\n default: false,\n hidden: false,\n },\n { name: 'help', type: 'boolean', description: 'Show help', required: false, alias: 'h', hidden: false },\n { name: 'version', type: 'boolean', description: 'Show version number', required: false, alias: 'v', hidden: false },\n];\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build a machine-readable command tree for --help --json output.\n *\n * @param subcommand - Optional command name to return a subtree for (e.g. \"env\").\n * Returns full tree if omitted or if command not found.\n */\nexport function buildCommandTree(subcommand?: string): HelpOutput | CommandSchema {\n if (subcommand) {\n const match = commands.find((c) => c.name === subcommand);\n if (match) return match;\n }\n\n return {\n name: 'workos',\n version: getVersion(),\n description: 'WorkOS CLI for AuthKit integration and resource management',\n commands,\n options: globalOptions,\n };\n}\n"]}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * NDJSON (Newline-Delimited JSON) writer for headless mode.
3
+ *
4
+ * Each line is a self-contained JSON object with a `type` discriminator
5
+ * and an ISO-8601 `timestamp`. Consumers can parse line-by-line.
6
+ */
7
+ export interface NDJSONEvent {
8
+ type: string;
9
+ timestamp: string;
10
+ [key: string]: unknown;
11
+ }
12
+ /**
13
+ * Write a single NDJSON event to stdout.
14
+ * Automatically adds an ISO timestamp.
15
+ */
16
+ export declare function writeNDJSON(event: Omit<NDJSONEvent, 'timestamp'>): void;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * NDJSON (Newline-Delimited JSON) writer for headless mode.
3
+ *
4
+ * Each line is a self-contained JSON object with a `type` discriminator
5
+ * and an ISO-8601 `timestamp`. Consumers can parse line-by-line.
6
+ */
7
+ /**
8
+ * Write a single NDJSON event to stdout.
9
+ * Automatically adds an ISO timestamp.
10
+ */
11
+ export function writeNDJSON(event) {
12
+ const line = {
13
+ ...event,
14
+ timestamp: new Date().toISOString(),
15
+ };
16
+ process.stdout.write(JSON.stringify(line) + '\n');
17
+ }
18
+ //# sourceMappingURL=ndjson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ndjson.js","sourceRoot":"","sources":["../../src/utils/ndjson.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAqC;IAC/D,MAAM,IAAI,GAAG;QACX,GAAG,KAAK;QACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC","sourcesContent":["/**\n * NDJSON (Newline-Delimited JSON) writer for headless mode.\n *\n * Each line is a self-contained JSON object with a `type` discriminator\n * and an ISO-8601 `timestamp`. Consumers can parse line-by-line.\n */\n\nexport interface NDJSONEvent {\n type: string;\n timestamp: string;\n [key: string]: unknown;\n}\n\n/**\n * Write a single NDJSON event to stdout.\n * Automatically adds an ISO timestamp.\n */\nexport function writeNDJSON(event: Omit<NDJSONEvent, 'timestamp'>): void {\n const line = {\n ...event,\n timestamp: new Date().toISOString(),\n };\n process.stdout.write(JSON.stringify(line) + '\\n');\n}\n"]}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Output mode system for non-TTY / JSON support.
3
+ *
4
+ * Resolves once at startup, drives all output formatting.
5
+ * In JSON mode: structured JSON to stdout, structured errors to stderr.
6
+ * In human mode: chalk-formatted output (existing behavior).
7
+ */
8
+ import { type TableColumn } from './table.js';
9
+ export type OutputMode = 'human' | 'json';
10
+ /**
11
+ * Resolve the output mode based on flags and environment.
12
+ *
13
+ * Priority:
14
+ * 1. Explicit --json flag
15
+ * 2. WORKOS_FORCE_TTY env var → human
16
+ * 3. Non-TTY auto-detection → json
17
+ * 4. Default → human
18
+ */
19
+ export declare function resolveOutputMode(jsonFlag?: boolean): OutputMode;
20
+ export declare function setOutputMode(mode: OutputMode): void;
21
+ export declare function getOutputMode(): OutputMode;
22
+ export declare function isJsonMode(): boolean;
23
+ /** Write structured JSON to stdout (one line, no pretty-print). */
24
+ export declare function outputJson(data: unknown): void;
25
+ /** Write a success result — chalk in human mode, JSON in json mode. */
26
+ export declare function outputSuccess(message: string, data?: object): void;
27
+ /** Write a structured error to stderr. */
28
+ export declare function outputError(error: {
29
+ code: string;
30
+ message: string;
31
+ details?: unknown;
32
+ }): void;
33
+ /** Write tabular data — chalk table in human mode, JSON array in json mode. */
34
+ export declare function outputTable(columns: TableColumn[], rows: string[][], rawData?: unknown[]): void;
35
+ /** Exit with a structured error. Writes error then exits with code 1. */
36
+ export declare function exitWithError(error: {
37
+ code: string;
38
+ message: string;
39
+ details?: unknown;
40
+ }): never;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Output mode system for non-TTY / JSON support.
3
+ *
4
+ * Resolves once at startup, drives all output formatting.
5
+ * In JSON mode: structured JSON to stdout, structured errors to stderr.
6
+ * In human mode: chalk-formatted output (existing behavior).
7
+ */
8
+ import chalk from 'chalk';
9
+ import { formatTable } from './table.js';
10
+ let currentMode = 'human';
11
+ /**
12
+ * Resolve the output mode based on flags and environment.
13
+ *
14
+ * Priority:
15
+ * 1. Explicit --json flag
16
+ * 2. WORKOS_FORCE_TTY env var → human
17
+ * 3. Non-TTY auto-detection → json
18
+ * 4. Default → human
19
+ */
20
+ export function resolveOutputMode(jsonFlag) {
21
+ if (jsonFlag)
22
+ return 'json';
23
+ if (process.env.WORKOS_FORCE_TTY === '1' || process.env.WORKOS_FORCE_TTY === 'true')
24
+ return 'human';
25
+ if (process.env.WORKOS_NO_PROMPT === '1' || process.env.WORKOS_NO_PROMPT === 'true')
26
+ return 'json';
27
+ if (!process.stdout.isTTY)
28
+ return 'json';
29
+ return 'human';
30
+ }
31
+ export function setOutputMode(mode) {
32
+ currentMode = mode;
33
+ if (mode === 'json') {
34
+ chalk.level = 0;
35
+ }
36
+ }
37
+ export function getOutputMode() {
38
+ return currentMode;
39
+ }
40
+ export function isJsonMode() {
41
+ return currentMode === 'json';
42
+ }
43
+ /** Write structured JSON to stdout (one line, no pretty-print). */
44
+ export function outputJson(data) {
45
+ console.log(JSON.stringify(data));
46
+ }
47
+ /** Write a success result — chalk in human mode, JSON in json mode. */
48
+ export function outputSuccess(message, data) {
49
+ if (currentMode === 'json') {
50
+ console.log(JSON.stringify(data ? { status: 'ok', message, data } : { status: 'ok', message }));
51
+ }
52
+ else {
53
+ console.log(chalk.green(message));
54
+ if (data) {
55
+ console.log(JSON.stringify(data, null, 2));
56
+ }
57
+ }
58
+ }
59
+ /** Write a structured error to stderr. */
60
+ export function outputError(error) {
61
+ if (currentMode === 'json') {
62
+ console.error(JSON.stringify({ error }));
63
+ }
64
+ else {
65
+ console.error(chalk.red(error.message));
66
+ }
67
+ }
68
+ /** Write tabular data — chalk table in human mode, JSON array in json mode. */
69
+ export function outputTable(columns, rows, rawData) {
70
+ if (currentMode === 'json') {
71
+ if (rawData) {
72
+ console.log(JSON.stringify(rawData));
73
+ }
74
+ else {
75
+ const headers = columns.map((c) => c.header);
76
+ const jsonRows = rows.map((row) => {
77
+ const obj = {};
78
+ headers.forEach((h, i) => {
79
+ obj[h] = row[i] ?? '';
80
+ });
81
+ return obj;
82
+ });
83
+ console.log(JSON.stringify(jsonRows));
84
+ }
85
+ }
86
+ else {
87
+ console.log(formatTable(columns, rows));
88
+ }
89
+ }
90
+ /** Exit with a structured error. Writes error then exits with code 1. */
91
+ export function exitWithError(error) {
92
+ outputError(error);
93
+ process.exit(1);
94
+ }
95
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Output mode system for non-TTY / JSON support.\n *\n * Resolves once at startup, drives all output formatting.\n * In JSON mode: structured JSON to stdout, structured errors to stderr.\n * In human mode: chalk-formatted output (existing behavior).\n */\n\nimport chalk from 'chalk';\nimport { formatTable, type TableColumn } from './table.js';\n\nexport type OutputMode = 'human' | 'json';\n\nlet currentMode: OutputMode = 'human';\n\n/**\n * Resolve the output mode based on flags and environment.\n *\n * Priority:\n * 1. Explicit --json flag\n * 2. WORKOS_FORCE_TTY env var → human\n * 3. Non-TTY auto-detection → json\n * 4. Default → human\n */\nexport function resolveOutputMode(jsonFlag?: boolean): OutputMode {\n if (jsonFlag) return 'json';\n if (process.env.WORKOS_FORCE_TTY === '1' || process.env.WORKOS_FORCE_TTY === 'true') return 'human';\n if (process.env.WORKOS_NO_PROMPT === '1' || process.env.WORKOS_NO_PROMPT === 'true') return 'json';\n if (!process.stdout.isTTY) return 'json';\n return 'human';\n}\n\nexport function setOutputMode(mode: OutputMode): void {\n currentMode = mode;\n if (mode === 'json') {\n chalk.level = 0;\n }\n}\n\nexport function getOutputMode(): OutputMode {\n return currentMode;\n}\n\nexport function isJsonMode(): boolean {\n return currentMode === 'json';\n}\n\n/** Write structured JSON to stdout (one line, no pretty-print). */\nexport function outputJson(data: unknown): void {\n console.log(JSON.stringify(data));\n}\n\n/** Write a success result — chalk in human mode, JSON in json mode. */\nexport function outputSuccess(message: string, data?: object): void {\n if (currentMode === 'json') {\n console.log(JSON.stringify(data ? { status: 'ok', message, data } : { status: 'ok', message }));\n } else {\n console.log(chalk.green(message));\n if (data) {\n console.log(JSON.stringify(data, null, 2));\n }\n }\n}\n\n/** Write a structured error to stderr. */\nexport function outputError(error: { code: string; message: string; details?: unknown }): void {\n if (currentMode === 'json') {\n console.error(JSON.stringify({ error }));\n } else {\n console.error(chalk.red(error.message));\n }\n}\n\n/** Write tabular data — chalk table in human mode, JSON array in json mode. */\nexport function outputTable(columns: TableColumn[], rows: string[][], rawData?: unknown[]): void {\n if (currentMode === 'json') {\n if (rawData) {\n console.log(JSON.stringify(rawData));\n } else {\n const headers = columns.map((c) => c.header);\n const jsonRows = rows.map((row) => {\n const obj: Record<string, string> = {};\n headers.forEach((h, i) => {\n obj[h] = row[i] ?? '';\n });\n return obj;\n });\n console.log(JSON.stringify(jsonRows));\n }\n } else {\n console.log(formatTable(columns, rows));\n }\n}\n\n/** Exit with a structured error. Writes error then exits with code 1. */\nexport function exitWithError(error: { code: string; message: string; details?: unknown }): never {\n outputError(error);\n process.exit(1);\n}\n"]}
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/typedef */
2
1
  import * as fs from 'fs';
3
2
  import * as path from 'path';
4
3
  import { traceStep } from '../telemetry.js';
@@ -37,7 +36,7 @@ export const YARN_V1 = {
37
36
  try {
38
37
  return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('yarn lockfile v1');
39
38
  }
40
- catch (e) {
39
+ catch {
41
40
  return false;
42
41
  }
43
42
  },
@@ -66,7 +65,7 @@ export const YARN_V2 = {
66
65
  try {
67
66
  return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('__metadata');
68
67
  }
69
- catch (e) {
68
+ catch {
70
69
  return false;
71
70
  }
72
71
  },
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/typedef */\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { traceStep } from '../telemetry.js';\nimport { getPackageDotJson, updatePackageDotJson } from './clack-utils.js';\nimport { analytics } from './analytics.js';\nimport type { InstallerOptions } from './types.js';\n\nexport interface PackageManager {\n name: string;\n label: string;\n installCommand: string;\n buildCommand: string;\n /* The command that the package manager uses to run a script from package.json */\n runScriptCommand: string;\n flags: string;\n forceInstallFlag: string;\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => boolean;\n addOverride: (\n pkgName: string,\n pkgVersion: string,\n { installDir }: Pick<InstallerOptions, 'installDir'>,\n ) => Promise<void>;\n}\n\nexport const BUN: PackageManager = {\n name: 'bun',\n label: 'Bun',\n installCommand: 'bun add',\n buildCommand: 'bun run build',\n runScriptCommand: 'bun run',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n ['bun.lockb', 'bun.lock'].some((lockFile) => fs.existsSync(path.join(installDir, lockFile))),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir: installDir },\n );\n },\n};\nexport const YARN_V1: PackageManager = {\n name: 'yarn',\n label: 'Yarn V1',\n installCommand: 'yarn add',\n buildCommand: 'yarn build',\n runScriptCommand: 'yarn',\n flags: '--ignore-workspace-root-check',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => {\n try {\n return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('yarn lockfile v1');\n } catch (e) {\n return false;\n }\n },\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const resolutions = packageDotJson.resolutions || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n resolutions: {\n ...resolutions,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n/** YARN V2/3/4 */\nexport const YARN_V2: PackageManager = {\n name: 'yarn',\n label: 'Yarn V2/3/4',\n installCommand: 'yarn add',\n buildCommand: 'yarn build',\n runScriptCommand: 'yarn',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => {\n try {\n return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('__metadata');\n } catch (e) {\n return false;\n }\n },\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const resolutions = packageDotJson.resolutions || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n resolutions: {\n ...resolutions,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\nexport const PNPM: PackageManager = {\n name: 'pnpm',\n label: 'pnpm',\n installCommand: 'pnpm add',\n buildCommand: 'pnpm build',\n runScriptCommand: 'pnpm',\n flags: '--ignore-workspace-root-check',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n fs.existsSync(path.join(installDir, 'pnpm-lock.yaml')),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const pnpm = packageDotJson.pnpm || {};\n const overrides = pnpm.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n pnpm: {\n ...pnpm,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n },\n { installDir },\n );\n },\n};\nexport const NPM: PackageManager = {\n name: 'npm',\n label: 'npm',\n installCommand: 'npm add',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n fs.existsSync(path.join(installDir, 'package-lock.json')),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n\nexport const EXPO: PackageManager = {\n name: 'expo',\n label: 'Expo',\n installCommand: 'npx expo install',\n buildCommand: 'npx expo build',\n runScriptCommand: 'npx expo run',\n flags: '',\n forceInstallFlag: '--force',\n detect: () => false,\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n\nexport const packageManagers = [BUN, YARN_V1, YARN_V2, PNPM, NPM, EXPO];\n\nexport function detectAllPackageManagers({ installDir }: Pick<InstallerOptions, 'installDir'>): PackageManager[] {\n return traceStep('detect-package-manager', () => {\n const detectedManagers: PackageManager[] = [];\n for (const packageManager of packageManagers) {\n if (packageManager.detect({ installDir })) {\n detectedManagers.push(packageManager);\n }\n }\n\n if (detectedManagers.length === 0) {\n analytics.setTag('package-manager', 'not-detected');\n }\n return detectedManagers;\n });\n}\n"]}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { traceStep } from '../telemetry.js';\nimport { getPackageDotJson, updatePackageDotJson } from './clack-utils.js';\nimport { analytics } from './analytics.js';\nimport type { InstallerOptions } from './types.js';\n\nexport interface PackageManager {\n name: string;\n label: string;\n installCommand: string;\n buildCommand: string;\n /* The command that the package manager uses to run a script from package.json */\n runScriptCommand: string;\n flags: string;\n forceInstallFlag: string;\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => boolean;\n addOverride: (\n pkgName: string,\n pkgVersion: string,\n { installDir }: Pick<InstallerOptions, 'installDir'>,\n ) => Promise<void>;\n}\n\nexport const BUN: PackageManager = {\n name: 'bun',\n label: 'Bun',\n installCommand: 'bun add',\n buildCommand: 'bun run build',\n runScriptCommand: 'bun run',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n ['bun.lockb', 'bun.lock'].some((lockFile) => fs.existsSync(path.join(installDir, lockFile))),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir: installDir },\n );\n },\n};\nexport const YARN_V1: PackageManager = {\n name: 'yarn',\n label: 'Yarn V1',\n installCommand: 'yarn add',\n buildCommand: 'yarn build',\n runScriptCommand: 'yarn',\n flags: '--ignore-workspace-root-check',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => {\n try {\n return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('yarn lockfile v1');\n } catch {\n return false;\n }\n },\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const resolutions = packageDotJson.resolutions || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n resolutions: {\n ...resolutions,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n/** YARN V2/3/4 */\nexport const YARN_V2: PackageManager = {\n name: 'yarn',\n label: 'Yarn V2/3/4',\n installCommand: 'yarn add',\n buildCommand: 'yarn build',\n runScriptCommand: 'yarn',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) => {\n try {\n return fs.readFileSync(path.join(installDir, 'yarn.lock'), 'utf-8').slice(0, 500).includes('__metadata');\n } catch {\n return false;\n }\n },\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const resolutions = packageDotJson.resolutions || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n resolutions: {\n ...resolutions,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\nexport const PNPM: PackageManager = {\n name: 'pnpm',\n label: 'pnpm',\n installCommand: 'pnpm add',\n buildCommand: 'pnpm build',\n runScriptCommand: 'pnpm',\n flags: '--ignore-workspace-root-check',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n fs.existsSync(path.join(installDir, 'pnpm-lock.yaml')),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const pnpm = packageDotJson.pnpm || {};\n const overrides = pnpm.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n pnpm: {\n ...pnpm,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n },\n { installDir },\n );\n },\n};\nexport const NPM: PackageManager = {\n name: 'npm',\n label: 'npm',\n installCommand: 'npm add',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: ({ installDir }: Pick<InstallerOptions, 'installDir'>) =>\n fs.existsSync(path.join(installDir, 'package-lock.json')),\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n\nexport const EXPO: PackageManager = {\n name: 'expo',\n label: 'Expo',\n installCommand: 'npx expo install',\n buildCommand: 'npx expo build',\n runScriptCommand: 'npx expo run',\n flags: '',\n forceInstallFlag: '--force',\n detect: () => false,\n addOverride: async (pkgName, pkgVersion, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void> => {\n const packageDotJson = await getPackageDotJson({ installDir });\n const overrides = packageDotJson.overrides || {};\n\n await updatePackageDotJson(\n {\n ...packageDotJson,\n overrides: {\n ...overrides,\n [pkgName]: pkgVersion,\n },\n },\n { installDir },\n );\n },\n};\n\nexport const packageManagers = [BUN, YARN_V1, YARN_V2, PNPM, NPM, EXPO];\n\nexport function detectAllPackageManagers({ installDir }: Pick<InstallerOptions, 'installDir'>): PackageManager[] {\n return traceStep('detect-package-manager', () => {\n const detectedManagers: PackageManager[] = [];\n for (const packageManager of packageManagers) {\n if (packageManager.detect({ installDir })) {\n detectedManagers.push(packageManager);\n }\n }\n\n if (detectedManagers.length === 0) {\n analytics.setTag('package-manager', 'not-detected');\n }\n return detectedManagers;\n });\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Resolve the package root by walking up from a compiled file until we find package.json.
3
+ * Immune to changes in tsconfig outDir/rootDir structure.
4
+ */
5
+ export declare function getPackageRoot(metaUrl: string): string;
@@ -0,0 +1,18 @@
1
+ import { dirname, join } from 'path';
2
+ import { existsSync } from 'fs';
3
+ import { fileURLToPath } from 'url';
4
+ /**
5
+ * Resolve the package root by walking up from a compiled file until we find package.json.
6
+ * Immune to changes in tsconfig outDir/rootDir structure.
7
+ */
8
+ export function getPackageRoot(metaUrl) {
9
+ let dir = dirname(fileURLToPath(metaUrl));
10
+ while (dir !== dirname(dir)) {
11
+ if (existsSync(join(dir, 'package.json'))) {
12
+ return dir;
13
+ }
14
+ dir = dirname(dir);
15
+ }
16
+ throw new Error('Could not find package root (no package.json found in parent directories)');
17
+ }
18
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,OAAO,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;AAC/F,CAAC","sourcesContent":["import { dirname, join } from 'path';\nimport { existsSync } from 'fs';\nimport { fileURLToPath } from 'url';\n\n/**\n * Resolve the package root by walking up from a compiled file until we find package.json.\n * Immune to changes in tsconfig outDir/rootDir structure.\n */\nexport function getPackageRoot(metaUrl: string): string {\n let dir = dirname(fileURLToPath(metaUrl));\n while (dir !== dirname(dir)) {\n if (existsSync(join(dir, 'package.json'))) {\n return dir;\n }\n dir = dirname(dir);\n }\n throw new Error('Could not find package root (no package.json found in parent directories)');\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { Argv } from 'yargs';
2
+ /**
3
+ * Register a subcommand with auto-enriched usage string.
4
+ * Replays the builder on a probe yargs instance to discover demandOption fields,
5
+ * then appends them to the usage string so parent help shows required args.
6
+ */
7
+ export declare function registerSubcommand<T>(parentYargs: Argv<T>, usage: string, description: string, builder: (y: Argv) => Argv, handler: (argv: any) => Promise<void>): Argv<T>;
@@ -0,0 +1,36 @@
1
+ import yargs from 'yargs';
2
+ /**
3
+ * Register a subcommand with auto-enriched usage string.
4
+ * Replays the builder on a probe yargs instance to discover demandOption fields,
5
+ * then appends them to the usage string so parent help shows required args.
6
+ */
7
+ export function registerSubcommand(parentYargs, usage, description, builder, handler) {
8
+ let enrichedUsage = usage;
9
+ try {
10
+ const probe = yargs([]);
11
+ builder(probe);
12
+ // getOptions() exists at runtime but is not in yargs' public type definitions
13
+ const opts = probe.getOptions();
14
+ const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));
15
+ const requiredSuffix = demanded
16
+ .map((k) => {
17
+ const type = opts.string.includes(k)
18
+ ? 'string'
19
+ : opts.number.includes(k)
20
+ ? 'number'
21
+ : opts.boolean.includes(k)
22
+ ? 'boolean'
23
+ : 'value';
24
+ return `--${k} <${type}>`;
25
+ })
26
+ .join(' ');
27
+ if (requiredSuffix) {
28
+ enrichedUsage = `${usage} ${requiredSuffix}`;
29
+ }
30
+ }
31
+ catch {
32
+ // Builder threw during probe — fall back to unenriched usage
33
+ }
34
+ return parentYargs.command(enrichedUsage, description, builder, handler);
35
+ }
36
+ //# sourceMappingURL=register-subcommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-subcommand.js","sourceRoot":"","sources":["../../src/utils/register-subcommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAoB,EACpB,KAAa,EACb,WAAmB,EACnB,OAA0B,EAC1B,OAAqC;IAErC,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,8EAA8E;QAC9E,MAAM,IAAI,GAAI,KAAmD,CAAC,UAAU,EAAE,CAAC;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzG,MAAM,cAAc,GAAG,QAAQ;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACvB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,OAAO,CAAC;YAChB,OAAO,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;QAC5B,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,IAAI,cAAc,EAAE,CAAC;YACnB,aAAa,GAAG,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IAED,OAAO,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["import yargs from 'yargs';\nimport type { Argv } from 'yargs';\n\ninterface YargsOptions {\n demandedOptions: Record<string, unknown>;\n string: string[];\n number: string[];\n boolean: string[];\n}\n\n/**\n * Register a subcommand with auto-enriched usage string.\n * Replays the builder on a probe yargs instance to discover demandOption fields,\n * then appends them to the usage string so parent help shows required args.\n */\nexport function registerSubcommand<T>(\n parentYargs: Argv<T>,\n usage: string,\n description: string,\n builder: (y: Argv) => Argv,\n handler: (argv: any) => Promise<void>,\n): Argv<T> {\n let enrichedUsage = usage;\n\n try {\n const probe = yargs([]);\n builder(probe);\n // getOptions() exists at runtime but is not in yargs' public type definitions\n const opts = (probe as unknown as { getOptions(): YargsOptions }).getOptions();\n const demanded = Object.keys(opts.demandedOptions || {}).filter((k) => !['help', 'version'].includes(k));\n\n const requiredSuffix = demanded\n .map((k) => {\n const type = opts.string.includes(k)\n ? 'string'\n : opts.number.includes(k)\n ? 'number'\n : opts.boolean.includes(k)\n ? 'boolean'\n : 'value';\n return `--${k} <${type}>`;\n })\n .join(' ');\n\n if (requiredSuffix) {\n enrichedUsage = `${usage} ${requiredSuffix}`;\n }\n } catch {\n // Builder threw during probe — fall back to unenriched usage\n }\n\n return parentYargs.command(enrichedUsage, description, builder, handler);\n}\n"]}
@@ -12,7 +12,7 @@ export interface SessionStartEvent extends TelemetryEvent {
12
12
  type: 'session.start';
13
13
  attributes: {
14
14
  'installer.version': string;
15
- 'installer.mode': 'cli' | 'tui';
15
+ 'installer.mode': 'cli' | 'tui' | 'headless';
16
16
  'workos.user_id'?: string;
17
17
  'workos.org_id'?: string;
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-types.js","sourceRoot":"","sources":["../../src/utils/telemetry-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Telemetry event types for installer → gateway communication.\n * The gateway converts these to OTel format.\n */\n\nexport interface TelemetryEvent {\n type: 'session.start' | 'session.end' | 'step' | 'agent.tool' | 'agent.llm';\n sessionId: string;\n timestamp: string;\n attributes?: Record<string, string | number | boolean>;\n}\n\nexport interface SessionStartEvent extends TelemetryEvent {\n type: 'session.start';\n attributes: {\n 'installer.version': string;\n 'installer.mode': 'cli' | 'tui';\n 'workos.user_id'?: string;\n 'workos.org_id'?: string;\n };\n}\n\nexport interface SessionEndEvent extends TelemetryEvent {\n type: 'session.end';\n attributes: {\n 'installer.outcome': 'success' | 'error' | 'cancelled';\n 'installer.duration_ms': number;\n } & Record<string, string | number | boolean>;\n}\n\nexport interface StepEvent extends TelemetryEvent {\n type: 'step';\n name: string;\n durationMs: number;\n success: boolean;\n error?: {\n type: string;\n message: string;\n };\n}\n\nexport interface AgentToolEvent extends TelemetryEvent {\n type: 'agent.tool';\n toolName: string;\n durationMs: number;\n success: boolean;\n}\n\nexport interface AgentLLMEvent extends TelemetryEvent {\n type: 'agent.llm';\n model: string;\n inputTokens: number;\n outputTokens: number;\n}\n\nexport interface TelemetryRequest {\n events: TelemetryEvent[];\n}\n"]}
1
+ {"version":3,"file":"telemetry-types.js","sourceRoot":"","sources":["../../src/utils/telemetry-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Telemetry event types for installer → gateway communication.\n * The gateway converts these to OTel format.\n */\n\nexport interface TelemetryEvent {\n type: 'session.start' | 'session.end' | 'step' | 'agent.tool' | 'agent.llm';\n sessionId: string;\n timestamp: string;\n attributes?: Record<string, string | number | boolean>;\n}\n\nexport interface SessionStartEvent extends TelemetryEvent {\n type: 'session.start';\n attributes: {\n 'installer.version': string;\n 'installer.mode': 'cli' | 'tui' | 'headless';\n 'workos.user_id'?: string;\n 'workos.org_id'?: string;\n };\n}\n\nexport interface SessionEndEvent extends TelemetryEvent {\n type: 'session.end';\n attributes: {\n 'installer.outcome': 'success' | 'error' | 'cancelled';\n 'installer.duration_ms': number;\n } & Record<string, string | number | boolean>;\n}\n\nexport interface StepEvent extends TelemetryEvent {\n type: 'step';\n name: string;\n durationMs: number;\n success: boolean;\n error?: {\n type: string;\n message: string;\n };\n}\n\nexport interface AgentToolEvent extends TelemetryEvent {\n type: 'agent.tool';\n toolName: string;\n durationMs: number;\n success: boolean;\n}\n\nexport interface AgentLLMEvent extends TelemetryEvent {\n type: 'agent.llm';\n model: string;\n inputTokens: number;\n outputTokens: number;\n}\n\nexport interface TelemetryRequest {\n events: TelemetryEvent[];\n}\n"]}
@@ -70,6 +70,18 @@ export type InstallerOptions = {
70
70
  * Skip post-install commit and PR workflow
71
71
  */
72
72
  noCommit?: boolean;
73
+ /**
74
+ * Skip branch creation (continue on current branch)
75
+ */
76
+ noBranch?: boolean;
77
+ /**
78
+ * Auto-create pull request after installation
79
+ */
80
+ createPr?: boolean;
81
+ /**
82
+ * Skip git dirty working tree check
83
+ */
84
+ noGitCheck?: boolean;
73
85
  /**
74
86
  * Direct mode - bypass llm-gateway and use user's own Anthropic API key.
75
87
  * Requires ANTHROPIC_API_KEY environment variable.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"","sourcesContent":["export type InstallerOptions = {\n /**\n * Whether to enable debug mode.\n */\n debug: boolean;\n\n /**\n * Whether to force install the SDK package to continue with the installation in case\n * any package manager checks are failing (e.g. peer dependency versions).\n *\n * Use with caution and only if you know what you're doing.\n *\n * Does not apply to all wizard flows (currently NPM only)\n */\n forceInstall: boolean;\n\n /**\n * The directory to run the wizard in.\n */\n installDir: string;\n\n /**\n * Whether to use local services (LLM gateway on localhost:8000)\n */\n local: boolean;\n\n /**\n * CI mode - non-interactive execution\n */\n ci: boolean;\n\n /**\n * Skip authentication check (for local development only)\n */\n skipAuth: boolean;\n\n /**\n * WorkOS API key (sk_xxx)\n */\n apiKey?: string;\n\n /**\n * WorkOS Client ID (client_xxx)\n */\n clientId?: string;\n\n /**\n * App homepage URL for WorkOS dashboard config.\n * Defaults to http://localhost:{detected_port}\n */\n homepageUrl?: string;\n\n /**\n * Redirect URI for WorkOS callback.\n * Defaults to framework-specific convention (e.g., /api/auth/callback)\n */\n redirectUri?: string;\n\n /**\n * [Experimental] Enable visual dashboard mode\n */\n dashboard?: boolean;\n\n /**\n * Event emitter for dashboard mode\n */\n emitter?: import('../lib/events.js').InstallerEventEmitter;\n\n /**\n * Pre-selected framework integration (bypasses detection)\n */\n integration?: import('../lib/constants.js').Integration;\n\n /**\n * Enable XState inspector - opens browser to visualize state machine live\n */\n inspect?: boolean;\n\n /**\n * Skip post-installation validation (includes build check)\n */\n noValidate?: boolean;\n\n /**\n * Skip post-install commit and PR workflow\n */\n noCommit?: boolean;\n\n /**\n * Direct mode - bypass llm-gateway and use user's own Anthropic API key.\n * Requires ANTHROPIC_API_KEY environment variable.\n */\n direct?: boolean;\n\n /**\n * Max correction attempts after initial agent run.\n * The agent gets this many chances to fix validation failures (typecheck/build).\n * Default: 2. Set to 0 to disable retries entirely.\n */\n maxRetries?: number;\n};\n\nexport interface Feature {\n id: string;\n prompt: string;\n enabledHint?: string;\n disabledHint?: string;\n}\n\nexport type FileChange = {\n filePath: string;\n oldContent?: string;\n newContent: string;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"","sourcesContent":["export type InstallerOptions = {\n /**\n * Whether to enable debug mode.\n */\n debug: boolean;\n\n /**\n * Whether to force install the SDK package to continue with the installation in case\n * any package manager checks are failing (e.g. peer dependency versions).\n *\n * Use with caution and only if you know what you're doing.\n *\n * Does not apply to all wizard flows (currently NPM only)\n */\n forceInstall: boolean;\n\n /**\n * The directory to run the wizard in.\n */\n installDir: string;\n\n /**\n * Whether to use local services (LLM gateway on localhost:8000)\n */\n local: boolean;\n\n /**\n * CI mode - non-interactive execution\n */\n ci: boolean;\n\n /**\n * Skip authentication check (for local development only)\n */\n skipAuth: boolean;\n\n /**\n * WorkOS API key (sk_xxx)\n */\n apiKey?: string;\n\n /**\n * WorkOS Client ID (client_xxx)\n */\n clientId?: string;\n\n /**\n * App homepage URL for WorkOS dashboard config.\n * Defaults to http://localhost:{detected_port}\n */\n homepageUrl?: string;\n\n /**\n * Redirect URI for WorkOS callback.\n * Defaults to framework-specific convention (e.g., /api/auth/callback)\n */\n redirectUri?: string;\n\n /**\n * [Experimental] Enable visual dashboard mode\n */\n dashboard?: boolean;\n\n /**\n * Event emitter for dashboard mode\n */\n emitter?: import('../lib/events.js').InstallerEventEmitter;\n\n /**\n * Pre-selected framework integration (bypasses detection)\n */\n integration?: import('../lib/constants.js').Integration;\n\n /**\n * Enable XState inspector - opens browser to visualize state machine live\n */\n inspect?: boolean;\n\n /**\n * Skip post-installation validation (includes build check)\n */\n noValidate?: boolean;\n\n /**\n * Skip post-install commit and PR workflow\n */\n noCommit?: boolean;\n\n /**\n * Skip branch creation (continue on current branch)\n */\n noBranch?: boolean;\n\n /**\n * Auto-create pull request after installation\n */\n createPr?: boolean;\n\n /**\n * Skip git dirty working tree check\n */\n noGitCheck?: boolean;\n\n /**\n * Direct mode - bypass llm-gateway and use user's own Anthropic API key.\n * Requires ANTHROPIC_API_KEY environment variable.\n */\n direct?: boolean;\n\n /**\n * Max correction attempts after initial agent run.\n * The agent gets this many chances to fix validation failures (typecheck/build).\n * Default: 2. Set to 0 to disable retries entirely.\n */\n maxRetries?: number;\n};\n\nexport interface Feature {\n id: string;\n prompt: string;\n enabledHint?: string;\n disabledHint?: string;\n}\n\nexport type FileChange = {\n filePath: string;\n oldContent?: string;\n newContent: string;\n};\n"]}