@agentuity/cli 3.0.0-alpha.6 → 3.0.0-alpha.7

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 (164) hide show
  1. package/dist/build-report.d.ts +1 -1
  2. package/dist/build-report.d.ts.map +1 -1
  3. package/dist/build-report.js +0 -1
  4. package/dist/build-report.js.map +1 -1
  5. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  6. package/dist/cmd/cloud/deploy.js +101 -46
  7. package/dist/cmd/cloud/deploy.js.map +1 -1
  8. package/dist/cmd/cloud/index.d.ts.map +1 -1
  9. package/dist/cmd/cloud/index.js +0 -4
  10. package/dist/cmd/cloud/index.js.map +1 -1
  11. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
  12. package/dist/cmd/cloud/sandbox/exec.js +41 -24
  13. package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
  14. package/dist/cmd/cloud/sandbox/job/logs.d.ts.map +1 -1
  15. package/dist/cmd/cloud/sandbox/job/logs.js +1 -0
  16. package/dist/cmd/cloud/sandbox/job/logs.js.map +1 -1
  17. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  18. package/dist/cmd/cloud/sandbox/run.js +34 -5
  19. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  20. package/dist/cmd/cloud/sandbox/util.d.ts +9 -0
  21. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
  22. package/dist/cmd/cloud/sandbox/util.js +20 -1
  23. package/dist/cmd/cloud/sandbox/util.js.map +1 -1
  24. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  25. package/dist/cmd/cloud/session/get.js +1 -41
  26. package/dist/cmd/cloud/session/get.js.map +1 -1
  27. package/dist/cmd/coder/start.d.ts.map +1 -1
  28. package/dist/cmd/coder/start.js +2 -0
  29. package/dist/cmd/coder/start.js.map +1 -1
  30. package/dist/cmd/coder/tui-init.js +1 -1
  31. package/dist/cmd/coder/tui-init.js.map +1 -1
  32. package/dist/cmd/project/create.d.ts.map +1 -1
  33. package/dist/cmd/project/create.js +0 -2
  34. package/dist/cmd/project/create.js.map +1 -1
  35. package/dist/cmd/project/frameworks.d.ts.map +1 -1
  36. package/dist/cmd/project/frameworks.js +1 -0
  37. package/dist/cmd/project/frameworks.js.map +1 -1
  38. package/dist/cmd/project/index.d.ts.map +1 -1
  39. package/dist/cmd/project/index.js +0 -3
  40. package/dist/cmd/project/index.js.map +1 -1
  41. package/dist/cmd/project/template-flow.d.ts +0 -1
  42. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  43. package/dist/cmd/project/template-flow.js +1 -104
  44. package/dist/cmd/project/template-flow.js.map +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/onboarding/agentPrompt.d.ts.map +1 -1
  49. package/dist/onboarding/agentPrompt.js +5 -8
  50. package/dist/onboarding/agentPrompt.js.map +1 -1
  51. package/dist/types.d.ts +0 -167
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/package.json +6 -20
  55. package/src/build-report.ts +0 -1
  56. package/src/cmd/ai/prompt/web.md +43 -17
  57. package/src/cmd/cloud/deploy.ts +120 -56
  58. package/src/cmd/cloud/index.ts +0 -4
  59. package/src/cmd/cloud/sandbox/exec.ts +49 -23
  60. package/src/cmd/cloud/sandbox/job/logs.ts +1 -0
  61. package/src/cmd/cloud/sandbox/run.ts +47 -9
  62. package/src/cmd/cloud/sandbox/util.ts +20 -1
  63. package/src/cmd/cloud/session/get.ts +1 -51
  64. package/src/cmd/coder/start.ts +2 -0
  65. package/src/cmd/coder/tui-init.ts +1 -1
  66. package/src/cmd/project/create.ts +0 -2
  67. package/src/cmd/project/frameworks.ts +1 -0
  68. package/src/cmd/project/index.ts +0 -3
  69. package/src/cmd/project/template-flow.ts +0 -127
  70. package/src/cmd/project/templates/vite-react/vite.config.ts +8 -0
  71. package/src/index.ts +0 -4
  72. package/src/onboarding/agentPrompt.ts +5 -8
  73. package/src/runtime-bootstrap.md +2 -3
  74. package/src/types.ts +0 -186
  75. package/dist/cmd/build/app-config-extractor.d.ts +0 -27
  76. package/dist/cmd/build/app-config-extractor.d.ts.map +0 -1
  77. package/dist/cmd/build/app-config-extractor.js +0 -152
  78. package/dist/cmd/build/app-config-extractor.js.map +0 -1
  79. package/dist/cmd/cloud/eval/get.d.ts +0 -2
  80. package/dist/cmd/cloud/eval/get.d.ts.map +0 -1
  81. package/dist/cmd/cloud/eval/get.js +0 -80
  82. package/dist/cmd/cloud/eval/get.js.map +0 -1
  83. package/dist/cmd/cloud/eval/index.d.ts +0 -2
  84. package/dist/cmd/cloud/eval/index.d.ts.map +0 -1
  85. package/dist/cmd/cloud/eval/index.js +0 -16
  86. package/dist/cmd/cloud/eval/index.js.map +0 -1
  87. package/dist/cmd/cloud/eval/list.d.ts +0 -2
  88. package/dist/cmd/cloud/eval/list.d.ts.map +0 -1
  89. package/dist/cmd/cloud/eval/list.js +0 -124
  90. package/dist/cmd/cloud/eval/list.js.map +0 -1
  91. package/dist/cmd/cloud/eval-run/get.d.ts +0 -2
  92. package/dist/cmd/cloud/eval-run/get.d.ts.map +0 -1
  93. package/dist/cmd/cloud/eval-run/get.js +0 -107
  94. package/dist/cmd/cloud/eval-run/get.js.map +0 -1
  95. package/dist/cmd/cloud/eval-run/index.d.ts +0 -2
  96. package/dist/cmd/cloud/eval-run/index.d.ts.map +0 -1
  97. package/dist/cmd/cloud/eval-run/index.js +0 -16
  98. package/dist/cmd/cloud/eval-run/index.js.map +0 -1
  99. package/dist/cmd/cloud/eval-run/list.d.ts +0 -2
  100. package/dist/cmd/cloud/eval-run/list.d.ts.map +0 -1
  101. package/dist/cmd/cloud/eval-run/list.js +0 -149
  102. package/dist/cmd/cloud/eval-run/list.js.map +0 -1
  103. package/dist/cmd/project/auth/generate.d.ts +0 -5
  104. package/dist/cmd/project/auth/generate.d.ts.map +0 -1
  105. package/dist/cmd/project/auth/generate.js +0 -102
  106. package/dist/cmd/project/auth/generate.js.map +0 -1
  107. package/dist/cmd/project/auth/index.d.ts +0 -2
  108. package/dist/cmd/project/auth/index.d.ts.map +0 -1
  109. package/dist/cmd/project/auth/index.js +0 -21
  110. package/dist/cmd/project/auth/index.js.map +0 -1
  111. package/dist/cmd/project/auth/init.d.ts +0 -2
  112. package/dist/cmd/project/auth/init.d.ts.map +0 -1
  113. package/dist/cmd/project/auth/init.js +0 -213
  114. package/dist/cmd/project/auth/init.js.map +0 -1
  115. package/dist/cmd/project/auth/shared.d.ts +0 -93
  116. package/dist/cmd/project/auth/shared.d.ts.map +0 -1
  117. package/dist/cmd/project/auth/shared.js +0 -451
  118. package/dist/cmd/project/auth/shared.js.map +0 -1
  119. package/dist/utils/bun-version-checker.d.ts +0 -11
  120. package/dist/utils/bun-version-checker.d.ts.map +0 -1
  121. package/dist/utils/bun-version-checker.js +0 -56
  122. package/dist/utils/bun-version-checker.js.map +0 -1
  123. package/dist/utils/dependency-checker.d.ts +0 -20
  124. package/dist/utils/dependency-checker.d.ts.map +0 -1
  125. package/dist/utils/dependency-checker.js +0 -160
  126. package/dist/utils/dependency-checker.js.map +0 -1
  127. package/dist/utils/detectSubagent.d.ts +0 -15
  128. package/dist/utils/detectSubagent.d.ts.map +0 -1
  129. package/dist/utils/detectSubagent.js +0 -28
  130. package/dist/utils/detectSubagent.js.map +0 -1
  131. package/dist/utils/stream-capture.d.ts +0 -9
  132. package/dist/utils/stream-capture.d.ts.map +0 -1
  133. package/dist/utils/stream-capture.js +0 -34
  134. package/dist/utils/stream-capture.js.map +0 -1
  135. package/dist/utils/string.d.ts +0 -6
  136. package/dist/utils/string.d.ts.map +0 -1
  137. package/dist/utils/string.js +0 -6
  138. package/dist/utils/string.js.map +0 -1
  139. package/dist/utils/version-mismatch.d.ts +0 -39
  140. package/dist/utils/version-mismatch.d.ts.map +0 -1
  141. package/dist/utils/version-mismatch.js +0 -161
  142. package/dist/utils/version-mismatch.js.map +0 -1
  143. package/dist/utils/workbench-notify.d.ts +0 -29
  144. package/dist/utils/workbench-notify.d.ts.map +0 -1
  145. package/dist/utils/workbench-notify.js +0 -56
  146. package/dist/utils/workbench-notify.js.map +0 -1
  147. package/src/cmd/build/app-config-extractor.ts +0 -186
  148. package/src/cmd/cloud/eval/get.ts +0 -86
  149. package/src/cmd/cloud/eval/index.ts +0 -16
  150. package/src/cmd/cloud/eval/list.ts +0 -135
  151. package/src/cmd/cloud/eval-run/get.ts +0 -114
  152. package/src/cmd/cloud/eval-run/index.ts +0 -16
  153. package/src/cmd/cloud/eval-run/list.ts +0 -160
  154. package/src/cmd/project/auth/generate.ts +0 -116
  155. package/src/cmd/project/auth/index.ts +0 -21
  156. package/src/cmd/project/auth/init.ts +0 -256
  157. package/src/cmd/project/auth/shared.ts +0 -566
  158. package/src/utils/bun-version-checker.ts +0 -70
  159. package/src/utils/dependency-checker.ts +0 -205
  160. package/src/utils/detectSubagent.ts +0 -36
  161. package/src/utils/stream-capture.ts +0 -39
  162. package/src/utils/string.ts +0 -6
  163. package/src/utils/version-mismatch.ts +0 -204
  164. package/src/utils/workbench-notify.ts +0 -67
@@ -1,451 +0,0 @@
1
- /**
2
- * Shared helpers for Agentuity Auth setup
3
- */
4
- import * as path from 'node:path';
5
- import { createResources, dbQuery, listOrgResources } from '@agentuity/server';
6
- import enquirer from 'enquirer';
7
- import { getCatalystAPIClient, getGlobalCatalystAPIClient, loadProjectConfig, ProjectConfigNotFoundException, } from '../../../config';
8
- import * as tui from '../../../tui';
9
- /**
10
- * Select an existing database or create a new one.
11
- * When creating a new database, uses the project's region from agentuity.json if available.
12
- */
13
- export async function selectOrCreateDatabase(options) {
14
- const { logger, auth, orgId, config, existingUrl, projectDir } = options;
15
- const profileName = config?.name;
16
- const globalClient = await getGlobalCatalystAPIClient(logger, auth, profileName, undefined, config);
17
- const resources = await tui.spinner({
18
- message: `Fetching databases for ${orgId}`,
19
- clearOnSuccess: true,
20
- callback: async () => listOrgResources(globalClient, { type: 'db', orgId }),
21
- });
22
- const databases = resources.db;
23
- // Extract existing database name from URL if provided
24
- let existingDbName;
25
- if (existingUrl) {
26
- const urlMatch = existingUrl.match(/\/([^/?]+)(\?|$)/);
27
- if (urlMatch) {
28
- existingDbName = urlMatch[1];
29
- }
30
- }
31
- const choices = [];
32
- // Add "use existing" option first if we have an existing URL
33
- if (existingUrl && existingDbName) {
34
- choices.push({
35
- name: '__existing__',
36
- message: `${tui.tuiColors.success('✓')} Use existing (found in .env): ${existingDbName}`,
37
- });
38
- }
39
- // Add create new option
40
- choices.push({ name: '__create__', message: tui.bold('+ Create new database') });
41
- // Add other databases
42
- choices.push(...databases
43
- .filter((db) => db.name !== existingDbName) // Don't duplicate existing
44
- .map((db) => ({
45
- name: db.name,
46
- message: db.name,
47
- })));
48
- const response = await enquirer.prompt({
49
- type: 'select',
50
- name: 'database',
51
- message: 'Select a database for auth:',
52
- choices,
53
- });
54
- // Handle "use existing" selection
55
- if (response.database === '__existing__' && existingUrl && existingDbName) {
56
- // Find the database to get its region
57
- const existingDb = databases.find((d) => d.name === existingDbName);
58
- const region = existingDb?.cloud_region ?? 'usc';
59
- return { name: existingDbName, url: existingUrl, region };
60
- }
61
- if (response.database === '__create__') {
62
- // For creating a new database, determine the region:
63
- // 1. Try to get from project's agentuity.json
64
- // 2. Fall back to first existing database's region
65
- // 3. Fall back to 'usc' as default
66
- let region;
67
- if (projectDir) {
68
- try {
69
- const projectConfig = await loadProjectConfig(projectDir, config);
70
- region = projectConfig.region;
71
- logger.trace(`[auth init] Using region from project config: ${region}`);
72
- }
73
- catch (err) {
74
- if (!(err instanceof ProjectConfigNotFoundException)) {
75
- logger.trace(`[auth init] Error loading project config: ${err}`);
76
- }
77
- }
78
- }
79
- if (!region) {
80
- const firstDb = databases[0];
81
- region = firstDb ? firstDb.cloud_region : 'usc';
82
- logger.trace(`[auth init] Using fallback region: ${region}`);
83
- }
84
- const regionalClient = getCatalystAPIClient(logger, auth, region, undefined, config);
85
- const created = await tui.spinner({
86
- message: `Creating database in ${region}`,
87
- clearOnSuccess: true,
88
- callback: async () => createResources(regionalClient, orgId, region, [{ type: 'db' }]),
89
- });
90
- const newDb = created[0];
91
- if (!newDb) {
92
- tui.fatal('Failed to create database');
93
- }
94
- tui.success(`Created database: ${tui.bold(newDb.name)}`);
95
- // Fetch updated list to get the URL
96
- const updatedResources = await listOrgResources(globalClient, { type: 'db', orgId });
97
- const dbInfo = updatedResources.db.find((d) => d.name === newDb.name);
98
- if (!dbInfo?.url) {
99
- tui.fatal('Failed to retrieve database connection URL');
100
- // TypeScript doesn't know fatal never returns, so we need this
101
- throw new Error('Unreachable');
102
- }
103
- return { name: newDb.name, url: dbInfo.url, region };
104
- }
105
- const selectedDb = databases.find((d) => d.name === response.database);
106
- if (!selectedDb?.url) {
107
- tui.fatal('Failed to retrieve database connection URL');
108
- // TypeScript doesn't know fatal never returns, so we need this
109
- throw new Error('Unreachable');
110
- }
111
- return { name: selectedDb.name, url: selectedDb.url, region: selectedDb.cloud_region };
112
- }
113
- /**
114
- * Required auth dependencies
115
- */
116
- export const AUTH_DEPENDENCIES = {
117
- '@agentuity/auth': 'latest',
118
- 'better-auth': '^1.4.9',
119
- 'drizzle-orm': '^0.45.0',
120
- 'drizzle-kit': '^0.31.0',
121
- };
122
- /**
123
- * Check and install auth dependencies
124
- */
125
- export async function ensureAuthDependencies(options) {
126
- const { projectDir } = options;
127
- const fs = await import('fs');
128
- const path = await import('path');
129
- const packageJsonPath = path.join(projectDir, 'package.json');
130
- if (!fs.existsSync(packageJsonPath)) {
131
- tui.fatal('No package.json found in project directory');
132
- }
133
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
134
- const deps = packageJson.dependencies || {};
135
- const missingDeps = [];
136
- for (const [dep, version] of Object.entries(AUTH_DEPENDENCIES)) {
137
- if (!deps[dep]) {
138
- missingDeps.push(`${dep}@${version}`);
139
- }
140
- }
141
- if (missingDeps.length === 0) {
142
- return false;
143
- }
144
- tui.info(`Installing auth dependencies: ${missingDeps.join(', ')}`);
145
- const proc = Bun.spawn(['bun', 'install', ...missingDeps], {
146
- cwd: projectDir,
147
- stdout: 'inherit',
148
- stderr: 'inherit',
149
- });
150
- const exitCode = await proc.exited;
151
- if (exitCode !== 0) {
152
- throw new Error(`bun install failed with code ${exitCode}`);
153
- }
154
- tui.success('Dependencies installed');
155
- return true;
156
- }
157
- /**
158
- * Get the directory for generated SQL files.
159
- * Uses src/generated/ if it exists, otherwise falls back to project root.
160
- */
161
- export async function getGeneratedSqlDir(projectDir) {
162
- const generatedDir = path.join(projectDir, 'src', 'generated');
163
- if (await Bun.file(path.join(generatedDir, 'registry.ts')).exists()) {
164
- return generatedDir;
165
- }
166
- return projectDir;
167
- }
168
- /**
169
- * Detect existing ORM setup in project.
170
- * TODO: This is probably not 100% accurate. Drizzle config could be in all sorts of places in a repo.
171
- */
172
- export async function detectOrmSetup(projectDir) {
173
- const drizzleConfigTs = path.join(projectDir, 'drizzle.config.ts');
174
- const drizzleConfigJs = path.join(projectDir, 'drizzle.config.js');
175
- const prismaSchema = path.join(projectDir, 'prisma', 'schema.prisma');
176
- if ((await Bun.file(drizzleConfigTs).exists()) || (await Bun.file(drizzleConfigJs).exists())) {
177
- return 'drizzle';
178
- }
179
- if (await Bun.file(prismaSchema).exists()) {
180
- return 'prisma';
181
- }
182
- return 'none';
183
- }
184
- /**
185
- * Generate auth schema SQL using drizzle-kit export.
186
- *
187
- * This generates SQL DDL statements from the @agentuity/auth Drizzle schema
188
- * without needing a database connection.
189
- *
190
- * @param logger - Logger instance
191
- * @param projectDir - Project directory (must have @agentuity/auth installed)
192
- * @returns SQL DDL statements for auth tables
193
- */
194
- export async function generateAuthSchemaSql(logger, projectDir) {
195
- const schemaPath = path.join(projectDir, 'node_modules/@agentuity/auth/dist/schema.js');
196
- if (!(await Bun.file(schemaPath).exists())) {
197
- throw new Error(`@agentuity/auth schema not found at ${schemaPath}. Ensure @agentuity/auth is installed.`);
198
- }
199
- const proc = Bun.spawn(['bunx', '--bun', 'drizzle-kit', 'export', '--dialect=postgresql', `--schema=${schemaPath}`], {
200
- cwd: projectDir,
201
- stdout: 'pipe',
202
- stderr: 'pipe',
203
- });
204
- const [stdout, stderr, exitCode] = await Promise.all([
205
- new Response(proc.stdout).text(),
206
- new Response(proc.stderr).text(),
207
- proc.exited,
208
- ]);
209
- if (stderr !== '') {
210
- logger.error('drizzle-kit export failed', { stderr });
211
- }
212
- if (stdout !== '') {
213
- logger.trace('drizzle-kit export stdout', { stdout });
214
- }
215
- if (exitCode !== 0 || stderr !== '') {
216
- const errorMsg = stderr
217
- .split('\n')
218
- .filter((line) => !line.includes('Please install'))
219
- .join('\n')
220
- .trim();
221
- throw new Error(`drizzle-kit export failed with code ${exitCode}: ${errorMsg}`);
222
- }
223
- return makeIdempotent(stdout);
224
- }
225
- /**
226
- * Transform drizzle-kit SQL output to be idempotent.
227
- *
228
- * - Converts CREATE TABLE to CREATE TABLE IF NOT EXISTS
229
- * - Converts CREATE INDEX to CREATE INDEX IF NOT EXISTS
230
- * - Wraps ALTER TABLE ADD CONSTRAINT in DO blocks to handle existing constraints
231
- */
232
- function makeIdempotent(sql) {
233
- const lines = sql.split('\n');
234
- const result = [];
235
- for (const line of lines) {
236
- const trimmed = line.trim();
237
- if (trimmed.startsWith('CREATE TABLE ') && !trimmed.includes('IF NOT EXISTS')) {
238
- result.push(line.replace('CREATE TABLE ', 'CREATE TABLE IF NOT EXISTS '));
239
- }
240
- else if (trimmed.startsWith('CREATE INDEX ') && !trimmed.includes('IF NOT EXISTS')) {
241
- result.push(line.replace('CREATE INDEX ', 'CREATE INDEX IF NOT EXISTS '));
242
- }
243
- else if (trimmed.startsWith('ALTER TABLE ') && trimmed.includes('ADD CONSTRAINT')) {
244
- const constraintMatch = trimmed.match(/ADD CONSTRAINT "([^"]+)"/);
245
- if (constraintMatch) {
246
- result.push(`DO $$ BEGIN ${trimmed} EXCEPTION WHEN duplicate_object THEN NULL; END $$;`);
247
- }
248
- else {
249
- result.push(line);
250
- }
251
- }
252
- else {
253
- result.push(line);
254
- }
255
- }
256
- return result.join('\n');
257
- }
258
- /**
259
- * Split SQL into individual statements for sequential execution
260
- * The dbQuery API only supports single statements
261
- */
262
- export function splitSqlStatements(sql) {
263
- // Split on semicolons, but be careful about edge cases
264
- const statements = [];
265
- let current = '';
266
- for (const line of sql.split('\n')) {
267
- const trimmed = line.trim();
268
- // Skip empty lines and comments
269
- if (!trimmed || trimmed.startsWith('--')) {
270
- continue;
271
- }
272
- current += line + '\n';
273
- // If line ends with semicolon, it's end of statement
274
- if (trimmed.endsWith(';')) {
275
- const stmt = current.trim();
276
- if (stmt && stmt !== ';') {
277
- statements.push(stmt);
278
- }
279
- current = '';
280
- }
281
- }
282
- // Handle any remaining content
283
- if (current.trim()) {
284
- statements.push(current.trim());
285
- }
286
- return statements;
287
- }
288
- /**
289
- * Run auth migrations against a database.
290
- *
291
- * @param options.sql - SQL to execute (from generateAuthSchemaSql or custom)
292
- */
293
- export async function runAuthMigrations(options) {
294
- const { logger, auth, orgId, region, databaseName, sql, config } = options;
295
- const catalystClient = getCatalystAPIClient(logger, auth, region, undefined, config);
296
- const statements = splitSqlStatements(sql);
297
- await tui.spinner({
298
- message: `Creating auth tables in database "${databaseName}" (${statements.length} SQL statements)`,
299
- clearOnSuccess: true,
300
- callback: async () => {
301
- for (const statement of statements) {
302
- await dbQuery(catalystClient, {
303
- database: databaseName,
304
- query: statement,
305
- orgId,
306
- region,
307
- });
308
- }
309
- },
310
- });
311
- tui.success(`Auth tables created in ${tui.bold(databaseName)}`);
312
- }
313
- /**
314
- * Generate the auth.ts file content
315
- */
316
- export function generateAuthFileContent() {
317
- return `/**
318
- * Agentuity Auth configuration.
319
- *
320
- * This is the single source of truth for authentication in this project.
321
- * All auth tables are stored in your Postgres database.
322
- */
323
-
324
- import {
325
- createAuth,
326
- createSessionMiddleware,
327
- createApiKeyMiddleware,
328
- } from '@agentuity/auth';
329
-
330
- /**
331
- * Database URL for authentication.
332
- *
333
- * Set via DATABASE_URL environment variable.
334
- * Get yours from: \`agentuity cloud database list --region use --json\`
335
- */
336
- const DATABASE_URL = process.env.DATABASE_URL;
337
-
338
- if (!DATABASE_URL) {
339
- throw new Error('DATABASE_URL environment variable is required for authentication');
340
- }
341
-
342
- /**
343
- * Agentuity Auth instance with sensible defaults.
344
- *
345
- * Defaults:
346
- * - basePath: '/api/auth'
347
- * - emailAndPassword: { enabled: true }
348
- * - Uses AGENTUITY_AUTH_SECRET env var for signing
349
- *
350
- * Default plugins included:
351
- * - organization (multi-tenancy)
352
- * - jwt (token signing)
353
- * - bearer (API auth)
354
- * - apiKey (programmatic access)
355
- */
356
- export const auth = createAuth({
357
- // Simplest setup: just provide the connection string
358
- // We create pg pool + Drizzle internally with joins enabled
359
- connectionString: DATABASE_URL,
360
- // All options below have sensible defaults and can be omitted:
361
- // secret: process.env.AGENTUITY_AUTH_SECRET, // auto-resolved from env
362
- // basePath: '/api/auth', // default
363
- // emailAndPassword: { enabled: true }, // default
364
- });
365
-
366
- /**
367
- * Session middleware - validates cookies/bearer tokens.
368
- * Use for routes that require authentication.
369
- */
370
- export const authMiddleware = createSessionMiddleware(auth);
371
-
372
- /**
373
- * Optional auth middleware - allows anonymous access.
374
- * Sets ctx.auth = null for unauthenticated requests.
375
- */
376
- export const optionalAuthMiddleware = createSessionMiddleware(auth, { optional: true });
377
-
378
- /**
379
- * API key middleware for programmatic access.
380
- * Use for webhook endpoints or external integrations.
381
- */
382
- export const apiKeyMiddleware = createApiKeyMiddleware(auth);
383
-
384
- /**
385
- * Optional API key middleware - continues without auth if no API key present.
386
- */
387
- export const optionalApiKeyMiddleware = createApiKeyMiddleware(auth, { optional: true });
388
-
389
- /**
390
- * Type export for end-to-end type safety.
391
- */
392
- export type Auth = typeof auth;
393
- `;
394
- }
395
- /**
396
- * Print integration examples to the console
397
- */
398
- export function printIntegrationExamples() {
399
- tui.newline();
400
- tui.info(tui.bold('Next Steps - Add these to your project:'));
401
- tui.newline();
402
- console.log(tui.muted('━'.repeat(60)));
403
- console.log(tui.bold(' 1. Set up your API routes:'));
404
- console.log(tui.muted('━'.repeat(60)));
405
- console.log(`
406
- import { Hono } from 'hono';
407
- import { mountAuthRoutes } from '@agentuity/auth';
408
- import { auth, authMiddleware } from './auth';
409
-
410
- const app = new Hono();
411
-
412
- // Mount auth routes (sign-in, sign-up, sign-out, session, etc.)
413
- app.on(['GET', 'POST'], '/api/auth/*', mountAuthRoutes(auth));
414
-
415
- // Protect your API routes with auth middleware
416
- app.use('/api/*', authMiddleware);
417
-
418
- app.get('/api/me', async (c) => {
419
- const user = await c.var.auth.getUser();
420
- return c.json({ id: user.id, email: user.email });
421
- });
422
-
423
- export default app;
424
- `);
425
- console.log(tui.muted('━'.repeat(60)));
426
- console.log(tui.bold(' 2. Use the auth client in your frontend:'));
427
- console.log(tui.muted('━'.repeat(60)));
428
- console.log(`
429
- import { createAuthClient } from '@agentuity/auth/client';
430
-
431
- const authClient = createAuthClient();
432
-
433
- // Sign in
434
- await authClient.signIn.email({ email, password });
435
-
436
- // Get session
437
- const session = await authClient.getSession();
438
- `);
439
- tui.newline();
440
- console.log(tui.muted('━'.repeat(60)));
441
- tui.info('Checklist:');
442
- console.log(` ${tui.tuiColors.success('✓')} DATABASE_URL configured`);
443
- console.log(` ${tui.tuiColors.success('✓')} AGENTUITY_AUTH_SECRET configured`);
444
- console.log(` ${tui.tuiColors.success('✓')} Auth tables migrated`);
445
- console.log(` ${tui.tuiColors.success('✓')} Dependencies installed`);
446
- console.log(` ${tui.muted('○')} Wire Hono middleware`);
447
- console.log(` ${tui.muted('○')} Add auth routes (mountAuthRoutes at /api/auth/*)`);
448
- console.log(` ${tui.muted('○')} Wrap app with AuthProvider`);
449
- tui.newline();
450
- }
451
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cmd/project/auth/shared.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Check if Bun version meets minimum requirements and optionally upgrade
3
- * @returns Array of output messages (empty if version OK, success message if upgraded)
4
- * @throws InvalidBunVersion if version check fails
5
- */
6
- export declare function checkBunVersion(): Promise<string[]>;
7
- /**
8
- * Get minimum required Bun version
9
- */
10
- export declare function getMinBunVersion(): string;
11
- //# sourceMappingURL=bun-version-checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bun-version-checker.d.ts","sourceRoot":"","sources":["../../src/utils/bun-version-checker.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA4CzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -1,56 +0,0 @@
1
- import { $, semver } from 'bun';
2
- import { StructuredError } from '@agentuity/core';
3
- import * as tui from '../tui';
4
- import { pauseStepUI } from '../steps';
5
- const InvalidBunVersion = StructuredError('InvalidBunVersion')();
6
- const MIN_BUN_VERSION = '>=1.3.3';
7
- /**
8
- * Check if Bun version meets minimum requirements and optionally upgrade
9
- * @returns Array of output messages (empty if version OK, success message if upgraded)
10
- * @throws InvalidBunVersion if version check fails
11
- */
12
- export async function checkBunVersion() {
13
- if (semver.satisfies(Bun.version, MIN_BUN_VERSION)) {
14
- return []; // Version is OK, no output needed
15
- }
16
- const message = `Bun is using version ${Bun.version}. This project requires Bun version ${MIN_BUN_VERSION} to build.`;
17
- if (process.stdin.isTTY && process.stdout.isTTY) {
18
- // Pause the step UI for interactive prompt
19
- const resume = pauseStepUI();
20
- tui.warning(message);
21
- const ok = await tui.confirm('Would you like to upgrade now?');
22
- // Small delay to ensure console.log('') in confirm completes
23
- await new Promise((resolve) => setTimeout(resolve, 10));
24
- resume(); // Resume step UI
25
- if (ok) {
26
- await $ `bun upgrade`.quiet();
27
- const upgradedVersion = (await $ `bun -v`.quiet().text()).trim();
28
- // Verify the upgraded version meets minimum requirements
29
- if (semver.satisfies(upgradedVersion, MIN_BUN_VERSION)) {
30
- // Return success message to show in output box
31
- return [tui.colorSuccess(`Upgraded Bun to ${upgradedVersion}`)];
32
- }
33
- else {
34
- // Upgrade completed but still doesn't meet minimum version
35
- throw new InvalidBunVersion({
36
- current: upgradedVersion,
37
- required: MIN_BUN_VERSION,
38
- message: `Bun upgraded to ${upgradedVersion}, but still does not meet minimum requirement ${MIN_BUN_VERSION}`,
39
- });
40
- }
41
- }
42
- }
43
- // Failed to upgrade or user declined
44
- throw new InvalidBunVersion({
45
- current: Bun.version,
46
- required: MIN_BUN_VERSION,
47
- message,
48
- });
49
- }
50
- /**
51
- * Get minimum required Bun version
52
- */
53
- export function getMinBunVersion() {
54
- return MIN_BUN_VERSION;
55
- }
56
- //# sourceMappingURL=bun-version-checker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bun-version-checker.js","sourceRoot":"","sources":["../../src/utils/bun-version-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,iBAAiB,GAAG,eAAe,CAAC,mBAAmB,CAAC,EAI1D,CAAC;AAEL,MAAM,eAAe,GAAG,SAAS,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC,CAAC,kCAAkC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,GAAG,CAAC,OAAO,uCAAuC,eAAe,YAAY,CAAC;IAEtH,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAE7B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAE/D,6DAA6D;QAC7D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAExD,MAAM,EAAE,CAAC,CAAC,iBAAiB;QAE3B,IAAI,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,CAAA,aAAa,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,CAAA,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhE,yDAAyD;YACzD,IAAI,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;gBACxD,+CAA+C;gBAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACP,2DAA2D;gBAC3D,MAAM,IAAI,iBAAiB,CAAC;oBAC3B,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,mBAAmB,eAAe,iDAAiD,eAAe,EAAE;iBAC7G,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,MAAM,IAAI,iBAAiB,CAAC;QAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,eAAe;QACzB,OAAO;KACP,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,OAAO,eAAe,CAAC;AACxB,CAAC"}
@@ -1,20 +0,0 @@
1
- import type { Logger } from '../types';
2
- export interface UpgradeResult {
3
- upgraded: string[];
4
- skipped: string[];
5
- failed: string[];
6
- }
7
- /**
8
- * Checks if a version specifier should be upgraded
9
- * @param specifier - The version specifier from package.json (e.g., "latest", "^1.0.0", "1.2.3")
10
- * @returns true if the package should be upgraded
11
- */
12
- export declare function shouldUpgradeVersion(specifier: string): boolean;
13
- /**
14
- * Check and upgrade @agentuity/* dependencies to match CLI version
15
- * @param projectDir - Root directory of the user's project
16
- * @param logger - Logger instance
17
- * @returns Result of the upgrade operation
18
- */
19
- export declare function checkAndUpgradeDependencies(projectDir: string, logger: Logger): Promise<UpgradeResult>;
20
- //# sourceMappingURL=dependency-checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-checker.d.ts","sourceRoot":"","sources":["../../src/utils/dependency-checker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAmB/D;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAChD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAwJxB"}