@agentuity/cli 1.0.59 → 2.0.0-beta.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 (189) hide show
  1. package/bin/cli.ts +2 -3
  2. package/dist/cmd/build/app-config-extractor.d.ts +27 -0
  3. package/dist/cmd/build/app-config-extractor.d.ts.map +1 -0
  4. package/dist/cmd/build/app-config-extractor.js +152 -0
  5. package/dist/cmd/build/app-config-extractor.js.map +1 -0
  6. package/dist/cmd/build/app-router-detector.d.ts +2 -5
  7. package/dist/cmd/build/app-router-detector.d.ts.map +1 -1
  8. package/dist/cmd/build/app-router-detector.js +130 -154
  9. package/dist/cmd/build/app-router-detector.js.map +1 -1
  10. package/dist/cmd/build/ci.d.ts.map +1 -1
  11. package/dist/cmd/build/ci.js +5 -21
  12. package/dist/cmd/build/ci.js.map +1 -1
  13. package/dist/cmd/build/ids.d.ts +11 -0
  14. package/dist/cmd/build/ids.d.ts.map +1 -0
  15. package/dist/cmd/build/ids.js +18 -0
  16. package/dist/cmd/build/ids.js.map +1 -0
  17. package/dist/cmd/build/index.d.ts.map +1 -1
  18. package/dist/cmd/build/index.js +8 -0
  19. package/dist/cmd/build/index.js.map +1 -1
  20. package/dist/cmd/build/vite/agent-discovery.d.ts +8 -4
  21. package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
  22. package/dist/cmd/build/vite/agent-discovery.js +166 -487
  23. package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
  24. package/dist/cmd/build/vite/bun-dev-server.d.ts +43 -14
  25. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
  26. package/dist/cmd/build/vite/bun-dev-server.js +290 -129
  27. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  28. package/dist/cmd/build/vite/config-loader.d.ts +15 -20
  29. package/dist/cmd/build/vite/config-loader.d.ts.map +1 -1
  30. package/dist/cmd/build/vite/config-loader.js +41 -74
  31. package/dist/cmd/build/vite/config-loader.js.map +1 -1
  32. package/dist/cmd/build/vite/docs-generator.d.ts.map +1 -1
  33. package/dist/cmd/build/vite/docs-generator.js +0 -2
  34. package/dist/cmd/build/vite/docs-generator.js.map +1 -1
  35. package/dist/cmd/build/vite/index.d.ts.map +1 -1
  36. package/dist/cmd/build/vite/index.js +0 -36
  37. package/dist/cmd/build/vite/index.js.map +1 -1
  38. package/dist/cmd/build/vite/lifecycle-generator.d.ts +10 -2
  39. package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +1 -1
  40. package/dist/cmd/build/vite/lifecycle-generator.js +302 -23
  41. package/dist/cmd/build/vite/lifecycle-generator.js.map +1 -1
  42. package/dist/cmd/build/vite/route-discovery.d.ts +11 -38
  43. package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
  44. package/dist/cmd/build/vite/route-discovery.js +97 -177
  45. package/dist/cmd/build/vite/route-discovery.js.map +1 -1
  46. package/dist/cmd/build/vite/server-bundler.js +1 -1
  47. package/dist/cmd/build/vite/server-bundler.js.map +1 -1
  48. package/dist/cmd/build/vite/static-renderer.d.ts +0 -2
  49. package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
  50. package/dist/cmd/build/vite/static-renderer.js +19 -13
  51. package/dist/cmd/build/vite/static-renderer.js.map +1 -1
  52. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +6 -3
  53. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
  54. package/dist/cmd/build/vite/vite-asset-server-config.js +175 -69
  55. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  56. package/dist/cmd/build/vite/vite-asset-server.d.ts +8 -3
  57. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
  58. package/dist/cmd/build/vite/vite-asset-server.js +14 -13
  59. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
  60. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
  61. package/dist/cmd/build/vite/vite-builder.js +42 -190
  62. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  63. package/dist/cmd/build/vite/ws-proxy.d.ts +53 -0
  64. package/dist/cmd/build/vite/ws-proxy.d.ts.map +1 -0
  65. package/dist/cmd/build/vite/ws-proxy.js +95 -0
  66. package/dist/cmd/build/vite/ws-proxy.js.map +1 -0
  67. package/dist/cmd/build/vite-bundler.d.ts.map +1 -1
  68. package/dist/cmd/build/vite-bundler.js +0 -3
  69. package/dist/cmd/build/vite-bundler.js.map +1 -1
  70. package/dist/cmd/cloud/deploy-fork.d.ts.map +1 -1
  71. package/dist/cmd/cloud/deploy-fork.js +15 -36
  72. package/dist/cmd/cloud/deploy-fork.js.map +1 -1
  73. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
  74. package/dist/cmd/cloud/sandbox/exec.js +28 -86
  75. package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
  76. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  77. package/dist/cmd/cloud/sandbox/run.js +2 -9
  78. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  79. package/dist/cmd/cloud/sandbox/snapshot/build.js +2 -2
  80. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
  81. package/dist/cmd/coder/hub-url.d.ts.map +1 -1
  82. package/dist/cmd/coder/hub-url.js +1 -3
  83. package/dist/cmd/coder/hub-url.js.map +1 -1
  84. package/dist/cmd/coder/start.js +6 -6
  85. package/dist/cmd/coder/start.js.map +1 -1
  86. package/dist/cmd/coder/tui-init.d.ts +2 -2
  87. package/dist/cmd/coder/tui-init.js +2 -2
  88. package/dist/cmd/coder/tui-init.js.map +1 -1
  89. package/dist/cmd/dev/file-watcher.d.ts.map +1 -1
  90. package/dist/cmd/dev/file-watcher.js +2 -8
  91. package/dist/cmd/dev/file-watcher.js.map +1 -1
  92. package/dist/cmd/dev/index.d.ts.map +1 -1
  93. package/dist/cmd/dev/index.js +432 -752
  94. package/dist/cmd/dev/index.js.map +1 -1
  95. package/dist/cmd/dev/process-manager.d.ts +104 -0
  96. package/dist/cmd/dev/process-manager.d.ts.map +1 -0
  97. package/dist/cmd/dev/process-manager.js +204 -0
  98. package/dist/cmd/dev/process-manager.js.map +1 -0
  99. package/dist/errors.d.ts +10 -24
  100. package/dist/errors.d.ts.map +1 -1
  101. package/dist/errors.js +12 -42
  102. package/dist/errors.js.map +1 -1
  103. package/dist/schema-generator.d.ts.map +1 -1
  104. package/dist/schema-generator.js +12 -2
  105. package/dist/schema-generator.js.map +1 -1
  106. package/dist/tui.d.ts.map +1 -1
  107. package/dist/tui.js +5 -19
  108. package/dist/tui.js.map +1 -1
  109. package/dist/utils/version-mismatch.d.ts +39 -0
  110. package/dist/utils/version-mismatch.d.ts.map +1 -0
  111. package/dist/utils/version-mismatch.js +161 -0
  112. package/dist/utils/version-mismatch.js.map +1 -0
  113. package/package.json +6 -6
  114. package/src/cmd/ai/prompt/agent.md +0 -1
  115. package/src/cmd/ai/prompt/api.md +0 -7
  116. package/src/cmd/ai/prompt/web.md +51 -213
  117. package/src/cmd/build/app-config-extractor.ts +186 -0
  118. package/src/cmd/build/app-router-detector.ts +152 -182
  119. package/src/cmd/build/ci.ts +5 -21
  120. package/src/cmd/build/ids.ts +19 -0
  121. package/src/cmd/build/index.ts +10 -0
  122. package/src/cmd/build/vite/agent-discovery.ts +208 -679
  123. package/src/cmd/build/vite/bun-dev-server.ts +383 -146
  124. package/src/cmd/build/vite/config-loader.ts +45 -77
  125. package/src/cmd/build/vite/docs-generator.ts +0 -2
  126. package/src/cmd/build/vite/index.ts +1 -42
  127. package/src/cmd/build/vite/lifecycle-generator.ts +345 -21
  128. package/src/cmd/build/vite/route-discovery.ts +116 -274
  129. package/src/cmd/build/vite/server-bundler.ts +1 -1
  130. package/src/cmd/build/vite/static-renderer.ts +23 -15
  131. package/src/cmd/build/vite/vite-asset-server-config.ts +200 -70
  132. package/src/cmd/build/vite/vite-asset-server.ts +25 -15
  133. package/src/cmd/build/vite/vite-builder.ts +49 -220
  134. package/src/cmd/build/vite/ws-proxy.ts +126 -0
  135. package/src/cmd/build/vite-bundler.ts +0 -4
  136. package/src/cmd/cloud/deploy-fork.ts +16 -39
  137. package/src/cmd/cloud/sandbox/exec.ts +23 -130
  138. package/src/cmd/cloud/sandbox/run.ts +2 -9
  139. package/src/cmd/cloud/sandbox/snapshot/build.ts +2 -2
  140. package/src/cmd/coder/hub-url.ts +1 -3
  141. package/src/cmd/coder/start.ts +6 -6
  142. package/src/cmd/coder/tui-init.ts +4 -4
  143. package/src/cmd/dev/file-watcher.ts +2 -9
  144. package/src/cmd/dev/index.ts +476 -859
  145. package/src/cmd/dev/process-manager.ts +261 -0
  146. package/src/errors.ts +12 -44
  147. package/src/schema-generator.ts +12 -2
  148. package/src/tui.ts +5 -18
  149. package/src/utils/version-mismatch.ts +204 -0
  150. package/dist/cmd/build/ast.d.ts +0 -78
  151. package/dist/cmd/build/ast.d.ts.map +0 -1
  152. package/dist/cmd/build/ast.js +0 -2703
  153. package/dist/cmd/build/ast.js.map +0 -1
  154. package/dist/cmd/build/entry-generator.d.ts +0 -25
  155. package/dist/cmd/build/entry-generator.d.ts.map +0 -1
  156. package/dist/cmd/build/entry-generator.js +0 -695
  157. package/dist/cmd/build/entry-generator.js.map +0 -1
  158. package/dist/cmd/build/vite/api-mount-path.d.ts +0 -61
  159. package/dist/cmd/build/vite/api-mount-path.d.ts.map +0 -1
  160. package/dist/cmd/build/vite/api-mount-path.js +0 -83
  161. package/dist/cmd/build/vite/api-mount-path.js.map +0 -1
  162. package/dist/cmd/build/vite/registry-generator.d.ts +0 -19
  163. package/dist/cmd/build/vite/registry-generator.d.ts.map +0 -1
  164. package/dist/cmd/build/vite/registry-generator.js +0 -1108
  165. package/dist/cmd/build/vite/registry-generator.js.map +0 -1
  166. package/dist/cmd/build/webanalytics-generator.d.ts +0 -16
  167. package/dist/cmd/build/webanalytics-generator.d.ts.map +0 -1
  168. package/dist/cmd/build/webanalytics-generator.js +0 -178
  169. package/dist/cmd/build/webanalytics-generator.js.map +0 -1
  170. package/dist/cmd/build/workbench.d.ts +0 -7
  171. package/dist/cmd/build/workbench.d.ts.map +0 -1
  172. package/dist/cmd/build/workbench.js +0 -55
  173. package/dist/cmd/build/workbench.js.map +0 -1
  174. package/dist/utils/route-migration.d.ts +0 -62
  175. package/dist/utils/route-migration.d.ts.map +0 -1
  176. package/dist/utils/route-migration.js +0 -630
  177. package/dist/utils/route-migration.js.map +0 -1
  178. package/dist/utils/stream-capture.d.ts +0 -9
  179. package/dist/utils/stream-capture.d.ts.map +0 -1
  180. package/dist/utils/stream-capture.js +0 -34
  181. package/dist/utils/stream-capture.js.map +0 -1
  182. package/src/cmd/build/ast.ts +0 -3529
  183. package/src/cmd/build/entry-generator.ts +0 -760
  184. package/src/cmd/build/vite/api-mount-path.ts +0 -87
  185. package/src/cmd/build/vite/registry-generator.ts +0 -1267
  186. package/src/cmd/build/webanalytics-generator.ts +0 -197
  187. package/src/cmd/build/workbench.ts +0 -58
  188. package/src/utils/route-migration.ts +0 -757
  189. package/src/utils/stream-capture.ts +0 -39
@@ -1,197 +0,0 @@
1
- /**
2
- * Web analytics beacon code generator
3
- * Generates src/generated/webanalytics.ts with the analytics beacon script
4
- */
5
-
6
- import { join } from 'node:path';
7
- import type { Logger, AnalyticsConfig } from '../../types';
8
-
9
- interface GenerateWebAnalyticsOptions {
10
- rootDir: string;
11
- logger: Logger;
12
- analytics?: boolean | AnalyticsConfig;
13
- }
14
-
15
- /**
16
- * Generate the web analytics files (webanalytics.ts and analytics-config.ts)
17
- */
18
- export async function generateWebAnalyticsFile(
19
- options: GenerateWebAnalyticsOptions
20
- ): Promise<void> {
21
- const { rootDir, logger, analytics } = options;
22
-
23
- const srcDir = join(rootDir, 'src');
24
- const generatedDir = join(srcDir, 'generated');
25
- const analyticsPath = join(generatedDir, 'webanalytics.ts');
26
- const configPath = join(generatedDir, 'analytics-config.ts');
27
-
28
- logger.trace(`Generating web analytics files...`);
29
-
30
- const analyticsEnabled = analytics !== false;
31
- const analyticsConfig: AnalyticsConfig = typeof analytics === 'object' ? analytics : {};
32
-
33
- // Generate the analytics config file with resolved values
34
- const configCode = generateAnalyticsConfigCode(analyticsEnabled, analyticsConfig);
35
- await Bun.write(configPath, configCode);
36
-
37
- // Generate the webanalytics file
38
- const code = analyticsEnabled ? getEnabledAnalyticsCode() : getDisabledAnalyticsCode();
39
- await Bun.write(analyticsPath, code);
40
-
41
- logger.trace(`Generated web analytics files at %s`, generatedDir);
42
- }
43
-
44
- function generateAnalyticsConfigCode(enabled: boolean, config: AnalyticsConfig): string {
45
- return `// @generated
46
- // Auto-generated by Agentuity
47
- // DO NOT EDIT - This file is regenerated on every build
48
-
49
- export interface AnalyticsConfig {
50
- enabled: boolean;
51
- requireConsent: boolean;
52
- trackClicks: boolean;
53
- trackScroll: boolean;
54
- trackOutboundLinks: boolean;
55
- trackForms: boolean;
56
- trackWebVitals: boolean;
57
- trackErrors: boolean;
58
- trackSPANavigation: boolean;
59
- sampleRate: number;
60
- excludePatterns: string[];
61
- globalProperties: Record<string, unknown>;
62
- }
63
-
64
- export const analyticsConfig: AnalyticsConfig = {
65
- enabled: ${enabled && config.enabled !== false},
66
- requireConsent: ${config.requireConsent ?? false},
67
- trackClicks: ${config.trackClicks ?? true},
68
- trackScroll: ${config.trackScroll ?? true},
69
- trackOutboundLinks: ${config.trackOutboundLinks ?? true},
70
- trackForms: ${config.trackForms ?? false},
71
- trackWebVitals: ${config.trackWebVitals ?? true},
72
- trackErrors: ${config.trackErrors ?? true},
73
- trackSPANavigation: ${config.trackSPANavigation ?? true},
74
- sampleRate: ${config.sampleRate ?? 1},
75
- excludePatterns: ${JSON.stringify(config.excludePatterns ?? [])},
76
- globalProperties: ${JSON.stringify(config.globalProperties ?? {})},
77
- };
78
- `;
79
- }
80
-
81
- function getDisabledAnalyticsCode(): string {
82
- return `// @generated
83
- // Auto-generated by Agentuity
84
- // DO NOT EDIT - This file is regenerated on every build
85
-
86
- import { createRouter } from '@agentuity/runtime';
87
- import type { AnalyticsConfig } from './analytics-config';
88
-
89
- // Analytics disabled
90
- export function injectAnalytics(html: string, _config: AnalyticsConfig): string {
91
- return html;
92
- }
93
-
94
- export function registerAnalyticsRoutes(_app: ReturnType<typeof createRouter>): void {}
95
- `;
96
- }
97
-
98
- function getEnabledAnalyticsCode(): string {
99
- return `// @generated
100
- // Auto-generated by Agentuity
101
- // DO NOT EDIT - This file is regenerated on every build
102
-
103
- import type { Context } from 'hono';
104
- import {
105
- BEACON_SCRIPT,
106
- createRouter,
107
- createWebSessionMiddleware,
108
- getOrganizationId,
109
- getProjectId,
110
- isDevMode as runtimeIsDevMode,
111
- } from '@agentuity/runtime';
112
- import type { AnalyticsConfig } from './analytics-config';
113
-
114
- // Inject analytics config and script into HTML
115
- // Note: Only static config is injected (org, project, devmode, tracking options)
116
- // Session and thread IDs are read from cookies by the beacon script
117
- //
118
- // In production: beacon is served from CDN as a hashed asset (injected by Vite build)
119
- // In development: beacon is served from /_agentuity/webanalytics/analytics.js route
120
- export function injectAnalytics(html: string, analyticsConfig: AnalyticsConfig): string {
121
- if (!analyticsConfig.enabled) return html;
122
-
123
- const orgId = getOrganizationId() || '';
124
- const projectId = getProjectId() || '';
125
- const isDevmode = runtimeIsDevMode();
126
-
127
- // Only include static config - session/thread come from cookies
128
- const pageConfig = {
129
- ...analyticsConfig,
130
- orgId,
131
- projectId,
132
- isDevmode,
133
- };
134
-
135
- const configScript = \`<script>window.__AGENTUITY_ANALYTICS__=\${JSON.stringify(pageConfig)};</script>\`;
136
- // Session script sets cookies and window.__AGENTUITY_SESSION__ (dynamic, not cached)
137
- const sessionScript = '<script src="/_agentuity/webanalytics/session.js" async></script>';
138
-
139
- // In production, the beacon is already in HTML as a CDN asset (data-agentuity-beacon marker)
140
- // Inject config/session BEFORE the beacon marker so config exists when beacon runs
141
- const beaconMarker = '<script data-agentuity-beacon';
142
- if (html.includes(beaconMarker)) {
143
- // Production: inject config/session right before the beacon script
144
- const injection = configScript + sessionScript;
145
- return html.replace(beaconMarker, injection + beaconMarker);
146
- }
147
-
148
- // Development: beacon served from local route, inject all three scripts
149
- const beaconScript = '<script src="/_agentuity/webanalytics/analytics.js"></script>';
150
- const injection = configScript + sessionScript + beaconScript;
151
-
152
- // Inject before </head> or at start of <body>
153
- if (html.includes('</head>')) {
154
- return html.replace('</head>', injection + '</head>');
155
- }
156
- if (html.includes('<body')) {
157
- return html.replace(/<body([^>]*)>/, \`<body$1>\${injection}\`);
158
- }
159
- return injection + html;
160
- }
161
-
162
- // Serve analytics routes
163
- export function registerAnalyticsRoutes(app: ReturnType<typeof createRouter>): void {
164
- // Dynamic thread config script - sets cookie and returns thread ID
165
- // Web analytics only tracks thread ID, not session ID (to avoid polluting sessions table)
166
- // This endpoint is NOT cached - it generates unique data per request
167
- app.get('/_agentuity/webanalytics/session.js', createWebSessionMiddleware(), async (c: Context) => {
168
- // Read from context (cookies aren't readable until the next request)
169
- const threadId = c.get('_webThreadId') || '';
170
-
171
- // Use JSON.stringify to safely escape threadId and prevent XSS/injection
172
- const sessionData = JSON.stringify({ threadId });
173
- const sessionScript = \`window.__AGENTUITY_SESSION__=\${sessionData};\`;
174
-
175
- return new Response(sessionScript, {
176
- headers: {
177
- 'Content-Type': 'application/javascript; charset=utf-8',
178
- 'Cache-Control': 'no-store, no-cache, must-revalidate',
179
- },
180
- });
181
- });
182
-
183
- // Dev mode only: serve beacon script from local route
184
- // In production, the beacon is served from CDN as a hashed asset
185
- if (runtimeIsDevMode()) {
186
- app.get('/_agentuity/webanalytics/analytics.js', async (c: Context) => {
187
- return new Response(BEACON_SCRIPT, {
188
- headers: {
189
- 'Content-Type': 'application/javascript; charset=utf-8',
190
- 'Cache-Control': 'no-store, no-cache, must-revalidate',
191
- },
192
- });
193
- });
194
- }
195
- }
196
- `;
197
- }
@@ -1,58 +0,0 @@
1
- import { join } from 'node:path';
2
- import { encodeWorkbenchConfig, type WorkbenchConfig } from '@agentuity/core';
3
- import { analyzeWorkbench, WorkbenchAnalysis } from './ast';
4
-
5
- export function generateWorkbenchMainTsx(config: WorkbenchConfig): string {
6
- const encodedConfig = encodeWorkbenchConfig(config);
7
- return `// Generated workbench entry point
8
- import React from 'react';
9
- import { createRoot } from 'react-dom/client';
10
- import { App } from '@agentuity/workbench';
11
-
12
- // Root element
13
- const rootElement = document.getElementById('root');
14
- if (!rootElement) {
15
- throw new Error('Root element not found');
16
- }
17
-
18
- // Render the app (App has its own provider and config)
19
- const root = createRoot(rootElement);
20
- console.log('encodedConfig', '${encodedConfig}');
21
- root.render(<App configBase64="${encodedConfig}" />);
22
- `;
23
- }
24
-
25
- export function generateWorkbenchStylesCss(): string {
26
- // This file will be replaced with the actual dist/styles.css content during build
27
- // We use @import here as a placeholder, but the bundler should resolve it to the built file
28
- return `/* Generated workbench styles - will be replaced with dist/styles.css */
29
- @import '@agentuity/workbench/styles-standalone';
30
- `;
31
- }
32
-
33
- export function generateWorkbenchIndexHtml(): string {
34
- return `<!DOCTYPE html>
35
- <html lang="en">
36
- <head>
37
- <meta charset="UTF-8">
38
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
39
- <title>Agentuity Workbench</title>
40
- <link rel="stylesheet" href="./styles.css">
41
- </head>
42
- <body>
43
- <div id="root"></div>
44
- <script type="module" src="./main.tsx"></script>
45
- </body>
46
- </html>`;
47
- }
48
-
49
- export async function getWorkbench(dir: string): Promise<WorkbenchAnalysis> {
50
- const appFile = Bun.file(join(dir, 'app.ts'));
51
- if (await appFile.exists()) {
52
- return analyzeWorkbench(await appFile.text());
53
- }
54
- return {
55
- hasWorkbench: false,
56
- config: null,
57
- };
58
- }