@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 +122 -122
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/studio.d.ts.map +1 -1
- package/dist/studio.js +112 -108
- package/dist/studio.js.map +1 -1
- package/dist/ui/assets/index-Beegyg-P.js +567 -0
- package/dist/ui/assets/index-Beegyg-P.js.map +1 -0
- package/dist/ui/assets/index-Drah5JMl.css +1 -0
- package/dist/ui/index.html +18 -18
- package/package.json +10 -7
- package/dist/ui/assets/index-CwOg4Wcc.js +0 -522
- package/dist/ui/assets/index-CwOg4Wcc.js.map +0 -1
- package/dist/ui/assets/index-D2kzut78.css +0 -1
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(
|
|
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":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/studio.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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('
|
|
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 */
|
package/dist/studio.js.map
CHANGED
|
@@ -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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"}
|