@agentuity/cli 2.0.11 → 2.0.12

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 (220) hide show
  1. package/dist/cache/resource-region.d.ts.map +1 -1
  2. package/dist/cache/resource-region.js +48 -25
  3. package/dist/cache/resource-region.js.map +1 -1
  4. package/dist/cmd/build/vite/bun-dev-server.d.ts +20 -0
  5. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
  6. package/dist/cmd/build/vite/bun-dev-server.js +62 -4
  7. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  8. package/dist/cmd/build/vite/index.d.ts +0 -1
  9. package/dist/cmd/build/vite/index.d.ts.map +1 -1
  10. package/dist/cmd/build/vite/index.js +0 -1
  11. package/dist/cmd/build/vite/index.js.map +1 -1
  12. package/dist/cmd/build/vite/static-renderer.d.ts +17 -0
  13. package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
  14. package/dist/cmd/build/vite/static-renderer.js +18 -6
  15. package/dist/cmd/build/vite/static-renderer.js.map +1 -1
  16. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
  17. package/dist/cmd/build/vite/vite-asset-server-config.js +34 -27
  18. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  19. package/dist/cmd/build/vite/vite-asset-server.d.ts +9 -0
  20. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
  21. package/dist/cmd/build/vite/vite-asset-server.js +5 -1
  22. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
  23. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
  24. package/dist/cmd/build/vite/vite-builder.js +12 -1
  25. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  26. package/dist/cmd/build/vite/ws-proxy.d.ts +15 -1
  27. package/dist/cmd/build/vite/ws-proxy.d.ts.map +1 -1
  28. package/dist/cmd/build/vite/ws-proxy.js +33 -0
  29. package/dist/cmd/build/vite/ws-proxy.js.map +1 -1
  30. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  31. package/dist/cmd/cloud/deploy.js +98 -39
  32. package/dist/cmd/cloud/deploy.js.map +1 -1
  33. package/dist/cmd/cloud/sandbox/checkpoint/create.d.ts.map +1 -1
  34. package/dist/cmd/cloud/sandbox/checkpoint/create.js +3 -4
  35. package/dist/cmd/cloud/sandbox/checkpoint/create.js.map +1 -1
  36. package/dist/cmd/cloud/sandbox/checkpoint/delete.d.ts.map +1 -1
  37. package/dist/cmd/cloud/sandbox/checkpoint/delete.js +3 -4
  38. package/dist/cmd/cloud/sandbox/checkpoint/delete.js.map +1 -1
  39. package/dist/cmd/cloud/sandbox/checkpoint/list.d.ts.map +1 -1
  40. package/dist/cmd/cloud/sandbox/checkpoint/list.js +3 -4
  41. package/dist/cmd/cloud/sandbox/checkpoint/list.js.map +1 -1
  42. package/dist/cmd/cloud/sandbox/checkpoint/restore.d.ts.map +1 -1
  43. package/dist/cmd/cloud/sandbox/checkpoint/restore.js +3 -4
  44. package/dist/cmd/cloud/sandbox/checkpoint/restore.js.map +1 -1
  45. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
  46. package/dist/cmd/cloud/sandbox/create.js +13 -4
  47. package/dist/cmd/cloud/sandbox/create.js.map +1 -1
  48. package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
  49. package/dist/cmd/cloud/sandbox/delete.js +3 -4
  50. package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
  51. package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -1
  52. package/dist/cmd/cloud/sandbox/env.js +3 -5
  53. package/dist/cmd/cloud/sandbox/env.js.map +1 -1
  54. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
  55. package/dist/cmd/cloud/sandbox/exec.js +114 -41
  56. package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
  57. package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -1
  58. package/dist/cmd/cloud/sandbox/execution/list.js +3 -5
  59. package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
  60. package/dist/cmd/cloud/sandbox/fs/cp.d.ts.map +1 -1
  61. package/dist/cmd/cloud/sandbox/fs/cp.js +61 -113
  62. package/dist/cmd/cloud/sandbox/fs/cp.js.map +1 -1
  63. package/dist/cmd/cloud/sandbox/fs/download.d.ts.map +1 -1
  64. package/dist/cmd/cloud/sandbox/fs/download.js +11 -22
  65. package/dist/cmd/cloud/sandbox/fs/download.js.map +1 -1
  66. package/dist/cmd/cloud/sandbox/fs/ls.d.ts.map +1 -1
  67. package/dist/cmd/cloud/sandbox/fs/ls.js +3 -5
  68. package/dist/cmd/cloud/sandbox/fs/ls.js.map +1 -1
  69. package/dist/cmd/cloud/sandbox/fs/mkdir.d.ts.map +1 -1
  70. package/dist/cmd/cloud/sandbox/fs/mkdir.js +3 -5
  71. package/dist/cmd/cloud/sandbox/fs/mkdir.js.map +1 -1
  72. package/dist/cmd/cloud/sandbox/fs/rm.d.ts.map +1 -1
  73. package/dist/cmd/cloud/sandbox/fs/rm.js +3 -5
  74. package/dist/cmd/cloud/sandbox/fs/rm.js.map +1 -1
  75. package/dist/cmd/cloud/sandbox/fs/rmdir.d.ts.map +1 -1
  76. package/dist/cmd/cloud/sandbox/fs/rmdir.js +3 -5
  77. package/dist/cmd/cloud/sandbox/fs/rmdir.js.map +1 -1
  78. package/dist/cmd/cloud/sandbox/fs/upload.d.ts.map +1 -1
  79. package/dist/cmd/cloud/sandbox/fs/upload.js +7 -8
  80. package/dist/cmd/cloud/sandbox/fs/upload.js.map +1 -1
  81. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
  82. package/dist/cmd/cloud/sandbox/get.js +21 -7
  83. package/dist/cmd/cloud/sandbox/get.js.map +1 -1
  84. package/dist/cmd/cloud/sandbox/job/create.d.ts.map +1 -1
  85. package/dist/cmd/cloud/sandbox/job/create.js +3 -4
  86. package/dist/cmd/cloud/sandbox/job/create.js.map +1 -1
  87. package/dist/cmd/cloud/sandbox/job/destroy.d.ts.map +1 -1
  88. package/dist/cmd/cloud/sandbox/job/destroy.js +3 -4
  89. package/dist/cmd/cloud/sandbox/job/destroy.js.map +1 -1
  90. package/dist/cmd/cloud/sandbox/job/get.d.ts.map +1 -1
  91. package/dist/cmd/cloud/sandbox/job/get.js +3 -4
  92. package/dist/cmd/cloud/sandbox/job/get.js.map +1 -1
  93. package/dist/cmd/cloud/sandbox/job/list.d.ts.map +1 -1
  94. package/dist/cmd/cloud/sandbox/job/list.js +3 -4
  95. package/dist/cmd/cloud/sandbox/job/list.js.map +1 -1
  96. package/dist/cmd/cloud/sandbox/job/logs.d.ts.map +1 -1
  97. package/dist/cmd/cloud/sandbox/job/logs.js +4 -4
  98. package/dist/cmd/cloud/sandbox/job/logs.js.map +1 -1
  99. package/dist/cmd/cloud/sandbox/pause.d.ts.map +1 -1
  100. package/dist/cmd/cloud/sandbox/pause.js +21 -5
  101. package/dist/cmd/cloud/sandbox/pause.js.map +1 -1
  102. package/dist/cmd/cloud/sandbox/resume.d.ts.map +1 -1
  103. package/dist/cmd/cloud/sandbox/resume.js +3 -4
  104. package/dist/cmd/cloud/sandbox/resume.js.map +1 -1
  105. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  106. package/dist/cmd/cloud/sandbox/run.js +36 -7
  107. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  108. package/dist/cmd/cloud/sandbox/util.d.ts +19 -0
  109. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
  110. package/dist/cmd/cloud/sandbox/util.js +40 -2
  111. package/dist/cmd/cloud/sandbox/util.js.map +1 -1
  112. package/dist/cmd/coder/create.js +7 -7
  113. package/dist/cmd/coder/create.js.map +1 -1
  114. package/dist/cmd/coder/start.d.ts.map +1 -1
  115. package/dist/cmd/coder/start.js +3 -0
  116. package/dist/cmd/coder/start.js.map +1 -1
  117. package/dist/cmd/coder/tui-init.js +1 -1
  118. package/dist/cmd/coder/tui-init.js.map +1 -1
  119. package/dist/cmd/coder/update.js +8 -8
  120. package/dist/cmd/coder/update.js.map +1 -1
  121. package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
  122. package/dist/cmd/coder/workspace/create.js +49 -21
  123. package/dist/cmd/coder/workspace/create.js.map +1 -1
  124. package/dist/cmd/coder/workspace/index.d.ts.map +1 -1
  125. package/dist/cmd/coder/workspace/index.js +1 -1
  126. package/dist/cmd/coder/workspace/index.js.map +1 -1
  127. package/dist/cmd/dev/dev-lock.d.ts.map +1 -1
  128. package/dist/cmd/dev/dev-lock.js +43 -17
  129. package/dist/cmd/dev/dev-lock.js.map +1 -1
  130. package/dist/cmd/dev/index.d.ts.map +1 -1
  131. package/dist/cmd/dev/index.js +211 -125
  132. package/dist/cmd/dev/index.js.map +1 -1
  133. package/dist/cmd/dev/process-manager.d.ts +41 -1
  134. package/dist/cmd/dev/process-manager.d.ts.map +1 -1
  135. package/dist/cmd/dev/process-manager.js +160 -31
  136. package/dist/cmd/dev/process-manager.js.map +1 -1
  137. package/dist/cmd/project/create.d.ts.map +1 -1
  138. package/dist/cmd/project/create.js +0 -2
  139. package/dist/cmd/project/create.js.map +1 -1
  140. package/dist/cmd/project/index.d.ts.map +1 -1
  141. package/dist/cmd/project/index.js +0 -3
  142. package/dist/cmd/project/index.js.map +1 -1
  143. package/dist/cmd/project/template-flow.d.ts +0 -1
  144. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  145. package/dist/cmd/project/template-flow.js +1 -124
  146. package/dist/cmd/project/template-flow.js.map +1 -1
  147. package/package.json +7 -7
  148. package/src/cache/resource-region.ts +68 -44
  149. package/src/cmd/ai/prompt/web.md +43 -17
  150. package/src/cmd/build/vite/bun-dev-server.ts +92 -6
  151. package/src/cmd/build/vite/index.ts +0 -1
  152. package/src/cmd/build/vite/static-renderer.ts +18 -7
  153. package/src/cmd/build/vite/vite-asset-server-config.ts +37 -27
  154. package/src/cmd/build/vite/vite-asset-server.ts +5 -1
  155. package/src/cmd/build/vite/vite-builder.ts +12 -1
  156. package/src/cmd/build/vite/ws-proxy.ts +52 -3
  157. package/src/cmd/cloud/deploy.ts +117 -49
  158. package/src/cmd/cloud/sandbox/checkpoint/create.ts +10 -4
  159. package/src/cmd/cloud/sandbox/checkpoint/delete.ts +10 -4
  160. package/src/cmd/cloud/sandbox/checkpoint/list.ts +10 -4
  161. package/src/cmd/cloud/sandbox/checkpoint/restore.ts +10 -4
  162. package/src/cmd/cloud/sandbox/create.ts +14 -4
  163. package/src/cmd/cloud/sandbox/delete.ts +10 -4
  164. package/src/cmd/cloud/sandbox/env.ts +10 -5
  165. package/src/cmd/cloud/sandbox/exec.ts +157 -42
  166. package/src/cmd/cloud/sandbox/execution/list.ts +10 -5
  167. package/src/cmd/cloud/sandbox/fs/cp.ts +94 -126
  168. package/src/cmd/cloud/sandbox/fs/download.ts +18 -25
  169. package/src/cmd/cloud/sandbox/fs/ls.ts +10 -5
  170. package/src/cmd/cloud/sandbox/fs/mkdir.ts +10 -5
  171. package/src/cmd/cloud/sandbox/fs/rm.ts +10 -5
  172. package/src/cmd/cloud/sandbox/fs/rmdir.ts +10 -5
  173. package/src/cmd/cloud/sandbox/fs/upload.ts +14 -8
  174. package/src/cmd/cloud/sandbox/get.ts +28 -7
  175. package/src/cmd/cloud/sandbox/job/create.ts +10 -4
  176. package/src/cmd/cloud/sandbox/job/destroy.ts +10 -4
  177. package/src/cmd/cloud/sandbox/job/get.ts +10 -4
  178. package/src/cmd/cloud/sandbox/job/list.ts +10 -4
  179. package/src/cmd/cloud/sandbox/job/logs.ts +11 -4
  180. package/src/cmd/cloud/sandbox/pause.ts +31 -5
  181. package/src/cmd/cloud/sandbox/resume.ts +10 -4
  182. package/src/cmd/cloud/sandbox/run.ts +49 -11
  183. package/src/cmd/cloud/sandbox/util.ts +63 -2
  184. package/src/cmd/coder/create.ts +8 -8
  185. package/src/cmd/coder/start.ts +3 -0
  186. package/src/cmd/coder/tui-init.ts +1 -1
  187. package/src/cmd/coder/update.ts +7 -7
  188. package/src/cmd/coder/workspace/create.ts +77 -26
  189. package/src/cmd/coder/workspace/index.ts +3 -1
  190. package/src/cmd/dev/dev-lock.ts +50 -16
  191. package/src/cmd/dev/index.ts +249 -134
  192. package/src/cmd/dev/process-manager.ts +173 -33
  193. package/src/cmd/project/create.ts +0 -2
  194. package/src/cmd/project/index.ts +0 -3
  195. package/src/cmd/project/template-flow.ts +0 -147
  196. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
  197. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
  198. package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
  199. package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
  200. package/dist/cmd/project/auth/generate.d.ts +0 -5
  201. package/dist/cmd/project/auth/generate.d.ts.map +0 -1
  202. package/dist/cmd/project/auth/generate.js +0 -102
  203. package/dist/cmd/project/auth/generate.js.map +0 -1
  204. package/dist/cmd/project/auth/index.d.ts +0 -2
  205. package/dist/cmd/project/auth/index.d.ts.map +0 -1
  206. package/dist/cmd/project/auth/index.js +0 -21
  207. package/dist/cmd/project/auth/index.js.map +0 -1
  208. package/dist/cmd/project/auth/init.d.ts +0 -2
  209. package/dist/cmd/project/auth/init.d.ts.map +0 -1
  210. package/dist/cmd/project/auth/init.js +0 -213
  211. package/dist/cmd/project/auth/init.js.map +0 -1
  212. package/dist/cmd/project/auth/shared.d.ts +0 -93
  213. package/dist/cmd/project/auth/shared.d.ts.map +0 -1
  214. package/dist/cmd/project/auth/shared.js +0 -475
  215. package/dist/cmd/project/auth/shared.js.map +0 -1
  216. package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
  217. package/src/cmd/project/auth/generate.ts +0 -116
  218. package/src/cmd/project/auth/index.ts +0 -21
  219. package/src/cmd/project/auth/init.ts +0 -256
  220. package/src/cmd/project/auth/shared.ts +0 -591
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cmd/project/auth/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgIxB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAC;AAEX;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,OAAO,CAAC,CAyCnB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5E;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAc1E;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyC/F;AAqCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA+BxD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA8EhD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAgF/C"}
@@ -1,475 +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 (e.g., src/api/index.ts):'));
404
- console.log(tui.muted('━'.repeat(60)));
405
- console.log(`
406
- import { createRouter } from '@agentuity/runtime';
407
- import { mountAuthRoutes } from '@agentuity/auth';
408
- import { auth, authMiddleware } from '../auth';
409
-
410
- const api = createRouter();
411
-
412
- // Mount auth routes (sign-in, sign-up, sign-out, session, etc.)
413
- // Must match the basePath configured in createAuth (default: /api/auth)
414
- api.on(['GET', 'POST'], '/api/auth/*', mountAuthRoutes(auth));
415
-
416
- // Protect your API routes with auth middleware
417
- api.use('/api/*', authMiddleware);
418
-
419
- api.get('/api/me', async (c) => {
420
- const user = await c.var.auth.getUser();
421
- return c.json({ id: user.id, email: user.email });
422
- });
423
-
424
- export default api;
425
- `);
426
- console.log(tui.muted('━'.repeat(60)));
427
- console.log(tui.bold(' 2. Wrap your React app with AuthProvider:'));
428
- console.log(tui.muted('━'.repeat(60)));
429
- console.log(`
430
- import { AgentuityProvider } from '@agentuity/react';
431
- import { createAuthClient, AuthProvider } from '@agentuity/auth/react';
432
-
433
- const authClient = createAuthClient();
434
-
435
- function App() {
436
- return (
437
- <AgentuityProvider>
438
- <AuthProvider authClient={authClient}>
439
- {/* your app */}
440
- </AuthProvider>
441
- </AgentuityProvider>
442
- );
443
- }
444
- `);
445
- console.log(tui.muted('━'.repeat(60)));
446
- console.log(tui.bold(' 3. Access auth in agents via ctx.auth:'));
447
- console.log(tui.muted('━'.repeat(60)));
448
- console.log(`
449
- import { createAgent } from '@agentuity/runtime';
450
-
451
- export default createAgent('my-agent', {
452
- schema: { input: s.object({ name: s.string() }), output: s.string() },
453
- handler: async (ctx, input) => {
454
- // ctx.auth is available when using auth middleware
455
- if (ctx.auth) {
456
- const user = await ctx.auth.getUser();
457
- return \`Hello, \${user.email}!\`;
458
- }
459
- return 'Hello, anonymous!';
460
- },
461
- });
462
- `);
463
- tui.newline();
464
- console.log(tui.muted('━'.repeat(60)));
465
- tui.info('Checklist:');
466
- console.log(` ${tui.tuiColors.success('✓')} DATABASE_URL configured`);
467
- console.log(` ${tui.tuiColors.success('✓')} AGENTUITY_AUTH_SECRET configured`);
468
- console.log(` ${tui.tuiColors.success('✓')} Auth tables migrated`);
469
- console.log(` ${tui.tuiColors.success('✓')} Dependencies installed`);
470
- console.log(` ${tui.muted('○')} Wire Hono middleware`);
471
- console.log(` ${tui.muted('○')} Add auth routes (mountAuthRoutes at /api/auth/*)`);
472
- console.log(` ${tui.muted('○')} Wrap app with AuthProvider`);
473
- tui.newline();
474
- }
475
- //# 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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"}