@expressots/studio 4.0.0-preview.1 → 4.0.0-preview.3

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.
package/README.md CHANGED
@@ -1,122 +1,122 @@
1
- # @expressots/studio
2
-
3
- ExpressoTS Studio - Developer Experience Platform. The main package that orchestrates the Studio Agent and Web UI.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install -D @expressots/studio
9
- ```
10
-
11
- ## Quick Start
12
-
13
- ### CLI Usage
14
-
15
- ```bash
16
- # Start Studio
17
- npx expressots-studio start
18
-
19
- # With options
20
- npx expressots-studio start --port 3333 --agent-port 3334
21
-
22
- # Show project info
23
- npx expressots-studio info
24
-
25
- # Clean Studio data
26
- npx expressots-studio clean
27
- ```
28
-
29
- ### Programmatic Usage
30
-
31
- ```typescript
32
- import { Studio } from '@expressots/studio';
33
-
34
- const studio = new Studio({
35
- uiPort: 3333,
36
- agentPort: 3334,
37
- dbPath: '.studio/studio.db',
38
- srcPath: './src',
39
- });
40
-
41
- await studio.start();
42
-
43
- // Studio is now running
44
- // UI: http://localhost:3333
45
- // Agent: ws://localhost:3334
46
-
47
- // To stop
48
- await studio.stop();
49
- ```
50
-
51
- ### Integration with ExpressoTS CLI
52
-
53
- ```bash
54
- # Via ExpressoTS CLI (when integrated)
55
- expressots studio
56
- ```
57
-
58
- ## CLI Commands
59
-
60
- ### `start` (default)
61
-
62
- Start ExpressoTS Studio.
63
-
64
- Options:
65
- - `-p, --port <port>` - UI port (default: 3333)
66
- - `-a, --agent-port <port>` - Agent WebSocket port (default: 3334)
67
- - `-d, --db-path <path>` - Database path (default: .studio/studio.db)
68
- - `--src <path>` - Source directory to scan (default: ./src)
69
- - `--no-browser` - Don't open browser automatically
70
-
71
- ### `info`
72
-
73
- Show information about the current project including discovered routes.
74
-
75
- Options:
76
- - `--src <path>` - Source directory to scan (default: ./src)
77
-
78
- ### `clean`
79
-
80
- Remove all Studio data (database, cache).
81
-
82
- Options:
83
- - `-d, --db-path <path>` - Database path (default: .studio/studio.db)
84
-
85
- ## Configuration
86
-
87
- You can also configure Studio via `expressots.config.ts`:
88
-
89
- ```typescript
90
- // expressots.config.ts
91
- export default {
92
- studio: {
93
- uiPort: 3333,
94
- agentPort: 3334,
95
- dbPath: '.studio/studio.db',
96
- },
97
- };
98
- ```
99
-
100
- ## Architecture
101
-
102
- ```
103
- ┌─────────────────────────────────────────────────────────┐
104
- │ ExpressoTS Studio │
105
- │ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │
106
- │ │ Web UI │ │ Studio Agent │ │ MCP Server │ │
107
- │ │ :3333 │←→│ :3334 │←→│ (AI tools) │ │
108
- │ └─────────────┘ └──────────────┘ └────────────┘ │
109
- │ ↓ ↓ │
110
- │ Your ExpressoTS App (instrumented) │
111
- └─────────────────────────────────────────────────────────┘
112
- ```
113
-
114
- ## What's Included
115
-
116
- - **Studio Agent**: Instrumentation, route discovery, request recording
117
- - **Web UI**: Dashboard with trace visualization, architecture map, metrics
118
- - **MCP Server**: AI-powered code generation tools (optional)
119
-
120
- ## License
121
-
122
- MIT © ExpressoTS
1
+ # @expressots/studio
2
+
3
+ ExpressoTS Studio - Developer Experience Platform. The main package that orchestrates the Studio Agent and Web UI.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -D @expressots/studio
9
+ ```
10
+
11
+ ## Quick Start
12
+
13
+ ### CLI Usage
14
+
15
+ ```bash
16
+ # Start Studio
17
+ npx expressots-studio start
18
+
19
+ # With options
20
+ npx expressots-studio start --port 3333 --agent-port 3334
21
+
22
+ # Show project info
23
+ npx expressots-studio info
24
+
25
+ # Clean Studio data
26
+ npx expressots-studio clean
27
+ ```
28
+
29
+ ### Programmatic Usage
30
+
31
+ ```typescript
32
+ import { Studio } from '@expressots/studio';
33
+
34
+ const studio = new Studio({
35
+ uiPort: 3333,
36
+ agentPort: 3334,
37
+ dbPath: '.studio/studio.db',
38
+ srcPath: './src',
39
+ });
40
+
41
+ await studio.start();
42
+
43
+ // Studio is now running
44
+ // UI: http://localhost:3333
45
+ // Agent: ws://localhost:3334
46
+
47
+ // To stop
48
+ await studio.stop();
49
+ ```
50
+
51
+ ### Integration with ExpressoTS CLI
52
+
53
+ ```bash
54
+ # Via ExpressoTS CLI (when integrated)
55
+ expressots studio
56
+ ```
57
+
58
+ ## CLI Commands
59
+
60
+ ### `start` (default)
61
+
62
+ Start ExpressoTS Studio.
63
+
64
+ Options:
65
+ - `-p, --port <port>` - UI port (default: 3333)
66
+ - `-a, --agent-port <port>` - Agent WebSocket port (default: 3334)
67
+ - `-d, --db-path <path>` - Database path (default: .studio/studio.db)
68
+ - `--src <path>` - Source directory to scan (default: ./src)
69
+ - `--no-browser` - Don't open browser automatically
70
+
71
+ ### `info`
72
+
73
+ Show information about the current project including discovered routes.
74
+
75
+ Options:
76
+ - `--src <path>` - Source directory to scan (default: ./src)
77
+
78
+ ### `clean`
79
+
80
+ Remove all Studio data (database, cache).
81
+
82
+ Options:
83
+ - `-d, --db-path <path>` - Database path (default: .studio/studio.db)
84
+
85
+ ## Configuration
86
+
87
+ You can also configure Studio via `expressots.config.ts`:
88
+
89
+ ```typescript
90
+ // expressots.config.ts
91
+ export default {
92
+ studio: {
93
+ uiPort: 3333,
94
+ agentPort: 3334,
95
+ dbPath: '.studio/studio.db',
96
+ },
97
+ };
98
+ ```
99
+
100
+ ## Architecture
101
+
102
+ ```
103
+ ┌─────────────────────────────────────────────────────────┐
104
+ │ ExpressoTS Studio │
105
+ │ ┌─────────────┐ ┌──────────────┐ ┌────────────┐ │
106
+ │ │ Web UI │ │ Studio Agent │ │ MCP Server │ │
107
+ │ │ :3333 │←→│ :3334 │←→│ (AI tools) │ │
108
+ │ └─────────────┘ └──────────────┘ └────────────┘ │
109
+ │ ↓ ↓ │
110
+ │ Your ExpressoTS App (instrumented) │
111
+ └─────────────────────────────────────────────────────────┘
112
+ ```
113
+
114
+ ## What's Included
115
+
116
+ - **Studio Agent**: Instrumentation, route discovery, request recording
117
+ - **Web UI**: Dashboard with trace visualization, architecture map, metrics
118
+ - **MCP Server**: AI-powered code generation tools (optional)
119
+
120
+ ## License
121
+
122
+ MIT © ExpressoTS
package/dist/cli.js CHANGED
@@ -3,16 +3,24 @@
3
3
  * ExpressoTS Studio CLI
4
4
  * Main entry point for launching the Studio
5
5
  */
6
+ import { readFileSync } from 'node:fs';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { dirname, resolve } from 'node:path';
6
9
  import { Command } from 'commander';
7
10
  import chalk from 'chalk';
8
11
  import ora from 'ora';
9
12
  import open from 'open';
10
13
  import { Studio } from './studio.js';
14
+ // Read this package's own version from package.json so `--version` always
15
+ // matches the published artifact. Compiled output lives at dist/cli.js, so
16
+ // package.json is one directory up.
17
+ const __dirname = dirname(fileURLToPath(import.meta.url));
18
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf8'));
11
19
  const program = new Command();
12
20
  program
13
21
  .name('expressots-studio')
14
22
  .description('ExpressoTS Studio - Developer Experience Platform')
15
- .version('0.1.0');
23
+ .version(pkg.version);
16
24
  program
17
25
  .command('start')
18
26
  .alias('s')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../src/studio.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAW9C,uBAAuB;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,sBAAsB;IAChB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,6DAA6D;YAC/C,cAAc;IAsC5B,oDAAoD;YACtC,UAAU;IAYxB,0BAA0B;YACZ,aAAa;IAkC3B,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA0BtB,gCAAgC;IAChC,OAAO,CAAC,cAAc;IA0HtB,kCAAkC;IAClC,gBAAgB,IAAI,OAAO;IAI3B,2DAA2D;IAC3D,QAAQ,IAAI,WAAW,GAAG,IAAI;IAI9B,wBAAwB;IACxB,SAAS,IAAI,YAAY;CAG1B"}
1
+ {"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../src/studio.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAW9C,uBAAuB;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,sBAAsB;IAChB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,6DAA6D;YAC/C,cAAc;IAsC5B,oDAAoD;YACtC,UAAU;IAYxB,0BAA0B;YACZ,aAAa;IAsC3B,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IA0BtB,gCAAgC;IAChC,OAAO,CAAC,cAAc;IA0HtB,kCAAkC;IAClC,gBAAgB,IAAI,OAAO;IAI3B,2DAA2D;IAC3D,QAAQ,IAAI,WAAW,GAAG,IAAI;IAI9B,wBAAwB;IACxB,SAAS,IAAI,YAAY;CAG1B"}
package/dist/studio.js CHANGED
@@ -113,14 +113,18 @@ export class Studio {
113
113
  if (uiDistPath && fs.existsSync(uiDistPath)) {
114
114
  // Serve static files from the UI build
115
115
  this.uiApp.use(express.static(uiDistPath));
116
- // SPA fallback
117
- this.uiApp.get('*', (_req, res) => {
116
+ // SPA fallback. Express 5 / path-to-regexp v8 dropped the implicit
117
+ // `*` wildcard — bare `'*'` now throws `Missing parameter name at
118
+ // index 1`. Use the v8-compliant named-splat form `/*splat` (the
119
+ // `splat` identifier is conventional; the captured value is unused
120
+ // because we always serve the same `index.html`).
121
+ this.uiApp.get('/*splat', (_req, res) => {
118
122
  res.sendFile(path.join(uiDistPath, 'index.html'));
119
123
  });
120
124
  }
121
125
  else {
122
- // Development mode - show placeholder
123
- this.uiApp.get('*', (_req, res) => {
126
+ // Development mode - show placeholder. Same v8 wildcard rules apply.
127
+ this.uiApp.get('/*splat', (_req, res) => {
124
128
  res.send(this.getDevModeHTML());
125
129
  });
126
130
  }
@@ -186,110 +190,110 @@ export class Studio {
186
190
  ? '#22c55e'
187
191
  : '#6b7280';
188
192
  const iconDataUri = this.getIconDataUri();
189
- return `
190
- <!DOCTYPE html>
191
- <html lang="en">
192
- <head>
193
- <meta charset="UTF-8">
194
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
195
- <link rel="icon" type="image/svg+xml" href="${iconDataUri}">
196
- <title>ExpressoTS Studio</title>
197
- <style>
198
- * { margin: 0; padding: 0; box-sizing: border-box; }
199
- body {
200
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
201
- background: #171717;
202
- color: #fff;
203
- min-height: 100vh;
204
- display: flex;
205
- align-items: center;
206
- justify-content: center;
207
- }
208
- .container { text-align: center; padding: 40px; max-width: 600px; }
209
- .logo {
210
- width: 96px;
211
- height: 96px;
212
- margin: 0 auto 20px;
213
- display: block;
214
- border-radius: 50%;
215
- box-shadow: 0 8px 32px rgba(61, 230, 120, 0.2);
216
- }
217
- h1 {
218
- font-size: 2.5rem;
219
- margin-bottom: 10px;
220
- background: linear-gradient(90deg, #3de678, #19ce59);
221
- -webkit-background-clip: text;
222
- -webkit-text-fill-color: transparent;
223
- background-clip: text;
224
- }
225
- .subtitle { color: #9ca3af; font-size: 1.1rem; margin-bottom: 30px; }
226
- .status {
227
- background: rgba(61, 230, 120, 0.08);
228
- border: 1px solid ${modeColor}40;
229
- border-radius: 12px;
230
- padding: 20px 30px;
231
- margin-bottom: 30px;
232
- }
233
- .status h2 { color: ${modeColor}; font-size: 1.2rem; margin-bottom: 10px; }
234
- .status p { color: #9ca3af; }
235
- .agent-info {
236
- background: rgba(34, 197, 94, 0.1);
237
- border: 1px solid rgba(34, 197, 94, 0.3);
238
- border-radius: 8px;
239
- padding: 15px;
240
- margin-top: 20px;
241
- }
242
- .agent-info code { color: #22c55e; font-family: 'JetBrains Mono', monospace; }
243
- .instructions { color: #6b7280; font-size: 0.9rem; margin-top: 30px; line-height: 1.8; }
244
- .instructions code {
245
- background: rgba(255,255,255,0.1);
246
- padding: 2px 8px;
247
- border-radius: 4px;
248
- font-family: 'JetBrains Mono', monospace;
249
- }
250
- .help-box {
251
- background: rgba(99, 102, 241, 0.1);
252
- border: 1px solid rgba(99, 102, 241, 0.3);
253
- border-radius: 8px;
254
- padding: 20px;
255
- margin-top: 30px;
256
- text-align: left;
257
- }
258
- .help-box h3 { color: #818cf8; margin-bottom: 10px; }
259
- .help-box ol { padding-left: 20px; color: #9ca3af; }
260
- .help-box li { margin-bottom: 8px; }
261
- </style>
262
- </head>
263
- <body>
264
- <div class="container">
265
- <img class="logo" src="${iconDataUri}" alt="ExpressoTS" />
266
- <h1>ExpressoTS Studio</h1>
267
- <p class="subtitle">Developer Experience Platform</p>
268
-
269
- <div class="status">
270
- <h2>${modeText}</h2>
271
- <div class="agent-info">
272
- <code>ws://localhost:${this.config.agentPort}</code>
273
- </div>
274
- </div>
275
-
276
- ${!this.agentConnected && !this.config.standalone ? `
277
- <div class="help-box">
278
- <h3>📋 How to capture requests:</h3>
279
- <ol>
280
- <li>Install the agent in your app: <code>npm install @expressots/studio-agent</code></li>
281
- <li>Restart your ExpressoTS app</li>
282
- <li>Refresh this page</li>
283
- </ol>
284
- </div>
285
- ` : ''}
286
-
287
- <p class="instructions">
288
- The Studio UI failed to load. Try reinstalling @expressots/studio.
289
- </p>
290
- </div>
291
- </body>
292
- </html>
193
+ return `
194
+ <!DOCTYPE html>
195
+ <html lang="en">
196
+ <head>
197
+ <meta charset="UTF-8">
198
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
199
+ <link rel="icon" type="image/svg+xml" href="${iconDataUri}">
200
+ <title>ExpressoTS Studio</title>
201
+ <style>
202
+ * { margin: 0; padding: 0; box-sizing: border-box; }
203
+ body {
204
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
205
+ background: #171717;
206
+ color: #fff;
207
+ min-height: 100vh;
208
+ display: flex;
209
+ align-items: center;
210
+ justify-content: center;
211
+ }
212
+ .container { text-align: center; padding: 40px; max-width: 600px; }
213
+ .logo {
214
+ width: 96px;
215
+ height: 96px;
216
+ margin: 0 auto 20px;
217
+ display: block;
218
+ border-radius: 50%;
219
+ box-shadow: 0 8px 32px rgba(61, 230, 120, 0.2);
220
+ }
221
+ h1 {
222
+ font-size: 2.5rem;
223
+ margin-bottom: 10px;
224
+ background: linear-gradient(90deg, #3de678, #19ce59);
225
+ -webkit-background-clip: text;
226
+ -webkit-text-fill-color: transparent;
227
+ background-clip: text;
228
+ }
229
+ .subtitle { color: #9ca3af; font-size: 1.1rem; margin-bottom: 30px; }
230
+ .status {
231
+ background: rgba(61, 230, 120, 0.08);
232
+ border: 1px solid ${modeColor}40;
233
+ border-radius: 12px;
234
+ padding: 20px 30px;
235
+ margin-bottom: 30px;
236
+ }
237
+ .status h2 { color: ${modeColor}; font-size: 1.2rem; margin-bottom: 10px; }
238
+ .status p { color: #9ca3af; }
239
+ .agent-info {
240
+ background: rgba(34, 197, 94, 0.1);
241
+ border: 1px solid rgba(34, 197, 94, 0.3);
242
+ border-radius: 8px;
243
+ padding: 15px;
244
+ margin-top: 20px;
245
+ }
246
+ .agent-info code { color: #22c55e; font-family: 'JetBrains Mono', monospace; }
247
+ .instructions { color: #6b7280; font-size: 0.9rem; margin-top: 30px; line-height: 1.8; }
248
+ .instructions code {
249
+ background: rgba(255,255,255,0.1);
250
+ padding: 2px 8px;
251
+ border-radius: 4px;
252
+ font-family: 'JetBrains Mono', monospace;
253
+ }
254
+ .help-box {
255
+ background: rgba(99, 102, 241, 0.1);
256
+ border: 1px solid rgba(99, 102, 241, 0.3);
257
+ border-radius: 8px;
258
+ padding: 20px;
259
+ margin-top: 30px;
260
+ text-align: left;
261
+ }
262
+ .help-box h3 { color: #818cf8; margin-bottom: 10px; }
263
+ .help-box ol { padding-left: 20px; color: #9ca3af; }
264
+ .help-box li { margin-bottom: 8px; }
265
+ </style>
266
+ </head>
267
+ <body>
268
+ <div class="container">
269
+ <img class="logo" src="${iconDataUri}" alt="ExpressoTS" />
270
+ <h1>ExpressoTS Studio</h1>
271
+ <p class="subtitle">Developer Experience Platform</p>
272
+
273
+ <div class="status">
274
+ <h2>${modeText}</h2>
275
+ <div class="agent-info">
276
+ <code>ws://localhost:${this.config.agentPort}</code>
277
+ </div>
278
+ </div>
279
+
280
+ ${!this.agentConnected && !this.config.standalone ? `
281
+ <div class="help-box">
282
+ <h3>📋 How to capture requests:</h3>
283
+ <ol>
284
+ <li>Install the agent in your app: <code>npm install @expressots/studio-agent</code></li>
285
+ <li>Restart your ExpressoTS app</li>
286
+ <li>Refresh this page</li>
287
+ </ol>
288
+ </div>
289
+ ` : ''}
290
+
291
+ <p class="instructions">
292
+ The Studio UI failed to load. Try reinstalling @expressots/studio.
293
+ </p>
294
+ </div>
295
+ </body>
296
+ </html>
293
297
  `;
294
298
  }
295
299
  /** Check if agent is connected */
@@ -1 +1 @@
1
- {"version":3,"file":"studio.js","sourceRoot":"","sources":["../src/studio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"studio.js","sourceRoot":"","sources":["../src/studio.ts"],"names":[],"mappings":"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"}