@stardust-bytes/agent-hub 0.1.0 → 0.3.0
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
|
@@ -117,14 +117,14 @@ npm install && npm run dev
|
|
|
117
117
|
|
|
118
118
|
**Quick start (no install needed):**
|
|
119
119
|
```bash
|
|
120
|
-
npx agent-hub
|
|
120
|
+
npx @stardust-bytes/agent-hub
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
This runs `agent-hub studio` — starts the server, runs first-time setup, and opens your browser.
|
|
124
124
|
|
|
125
125
|
**Global install (use `agent-hub` directly):**
|
|
126
126
|
```bash
|
|
127
|
-
npm install -g agent-hub
|
|
127
|
+
npm install -g @stardust-bytes/agent-hub
|
|
128
128
|
agent-hub studio
|
|
129
129
|
```
|
|
130
130
|
|
|
@@ -26,28 +26,25 @@ let McpService = McpService_1 = class McpService {
|
|
|
26
26
|
this.servers = new Map();
|
|
27
27
|
}
|
|
28
28
|
async onModuleInit() {
|
|
29
|
-
|
|
29
|
+
this.startPlaywrightServer().catch(() => { });
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
this.logger.warn('Could not install Playwright browsers:', e.message);
|
|
42
|
-
}
|
|
31
|
+
ensurePlaywrightBrowsers() {
|
|
32
|
+
(0, child_process_1.exec)('npx playwright install chromium 2>&1', { timeout: 120_000 }, (err) => {
|
|
33
|
+
if (err) {
|
|
34
|
+
this.logger.warn('Could not install Playwright browsers:', err.message);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.logger.log('Playwright Chromium installed/verified');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
43
40
|
}
|
|
44
41
|
getCustomChromeUserDataDir() {
|
|
45
42
|
const dir = this.config.get('CHROME_USER_DATA_DIR');
|
|
46
43
|
return dir ? path.resolve(dir) : null;
|
|
47
44
|
}
|
|
48
45
|
async startPlaywrightServer() {
|
|
46
|
+
this.ensurePlaywrightBrowsers();
|
|
49
47
|
try {
|
|
50
|
-
await this.ensurePlaywrightBrowsers();
|
|
51
48
|
const root = this.workspace.getWorkspaceRoot();
|
|
52
49
|
const snapshotDir = path.resolve(root, 'mcp_data');
|
|
53
50
|
fs.mkdirSync(snapshotDir, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/agent/mcp/mcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,2CAA+C;AAC/C,6DAAwD;AACxD,yEAAqE;AACrE,6BAA6B;AAC7B,yBAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"mcp.service.js","sourceRoot":"","sources":["../../../src/agent/mcp/mcp.service.ts"],"names":[],"mappings":"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"}
|
package/bin/workspace-cli.js
CHANGED
|
@@ -68,10 +68,7 @@ function runMigrations() {
|
|
|
68
68
|
cwd: backendDir, stdio: 'inherit', env,
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
execSync(`npx prisma generate --schema="${schemaPath}"`, {
|
|
73
|
-
cwd: backendDir, stdio: 'inherit', env,
|
|
74
|
-
});
|
|
71
|
+
generatePrismaClient();
|
|
75
72
|
|
|
76
73
|
log('init', 'Seeding database...');
|
|
77
74
|
execSync('npx prisma db seed', {
|
|
@@ -79,6 +76,21 @@ function runMigrations() {
|
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
78
|
|
|
79
|
+
function generatePrismaClient() {
|
|
80
|
+
const schemaPath = path.join(ROOT, 'backend', 'prisma', 'schema.prisma');
|
|
81
|
+
const backendDir = path.join(ROOT, 'backend');
|
|
82
|
+
const env = { ...process.env, DATABASE_URL: `file:${DB_PATH}` };
|
|
83
|
+
|
|
84
|
+
log('init', 'Generating Prisma client...');
|
|
85
|
+
try {
|
|
86
|
+
execSync(`npx prisma generate --schema="${schemaPath}"`, {
|
|
87
|
+
cwd: backendDir, stdio: 'pipe', env,
|
|
88
|
+
});
|
|
89
|
+
} catch (e) {
|
|
90
|
+
log('init', 'Warning: prisma generate failed:', e.message);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
82
94
|
function getPort() {
|
|
83
95
|
return process.env.PORT ?? '17135';
|
|
84
96
|
}
|
|
@@ -101,7 +113,7 @@ function resolveEnv() {
|
|
|
101
113
|
}
|
|
102
114
|
}
|
|
103
115
|
|
|
104
|
-
function waitForServer(port, maxRetries =
|
|
116
|
+
function waitForServer(port, maxRetries = 120) {
|
|
105
117
|
return new Promise((resolve, reject) => {
|
|
106
118
|
let retries = 0;
|
|
107
119
|
const check = () => {
|
|
@@ -161,6 +173,7 @@ async function cmdStudio() {
|
|
|
161
173
|
if (needsMigration()) {
|
|
162
174
|
runMigrations();
|
|
163
175
|
}
|
|
176
|
+
generatePrismaClient();
|
|
164
177
|
resolveEnv();
|
|
165
178
|
|
|
166
179
|
const server = spawn('node', [BACKEND_ENTRY], {
|