opalserve 3.0.0 → 3.1.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/LICENSE +21 -21
- package/README.md +576 -124
- package/assets/logo.svg +51 -51
- package/dist/cli/commands/admin.js +6 -6
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +54 -75
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/ui/banner.d.ts.map +1 -1
- package/dist/cli/ui/banner.js +15 -14
- package/dist/cli/ui/banner.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/context/index.js +1 -1
- package/dist/core/server-manager.d.ts.map +1 -1
- package/dist/core/server-manager.js +2 -1
- package/dist/core/server-manager.js.map +1 -1
- package/dist/dashboard/assets/charts-CKTlvUso.js +68 -0
- package/dist/dashboard/assets/icons-DciuKSzL.js +131 -0
- package/dist/dashboard/assets/index-BrOv-3xx.css +1 -0
- package/dist/dashboard/assets/index-DnqqzxX6.js +33 -0
- package/dist/dashboard/assets/react-BJczIp53.js +28 -0
- package/dist/dashboard/index.html +17 -14
- package/dist/integrations/github.js +3 -3
- package/dist/integrations/slack.js +1 -1
- package/dist/monitoring/tracker.js +13 -13
- package/dist/server/mcp-gateway.d.ts.map +1 -1
- package/dist/server/mcp-gateway.js +2 -1
- package/dist/server/mcp-gateway.js.map +1 -1
- package/dist/server/routes/context.js +1 -1
- package/dist/server/routes/health.d.ts.map +1 -1
- package/dist/server/routes/health.js +2 -1
- package/dist/server/routes/health.js.map +1 -1
- package/dist/server/routes/stats.js +6 -6
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +146 -130
- package/dist/storage/database.js.map +1 -1
- package/package.json +91 -91
- package/dist/dashboard/assets/index-BNOtcUPs.js +0 -257
- package/dist/dashboard/assets/index-Duwp34GW.css +0 -1
package/assets/logo.svg
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="hub-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
-
<stop offset="0%" stop-color="#F59E0B"/>
|
|
5
|
-
<stop offset="50%" stop-color="#F97316"/>
|
|
6
|
-
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
7
|
-
</linearGradient>
|
|
8
|
-
<linearGradient id="line-gradient-top" x1="256" y1="256" x2="256" y2="80" gradientUnits="userSpaceOnUse">
|
|
9
|
-
<stop offset="0%" stop-color="#F97316"/>
|
|
10
|
-
<stop offset="100%" stop-color="#F59E0B"/>
|
|
11
|
-
</linearGradient>
|
|
12
|
-
<linearGradient id="line-gradient-right" x1="256" y1="256" x2="432" y2="316" gradientUnits="userSpaceOnUse">
|
|
13
|
-
<stop offset="0%" stop-color="#F97316"/>
|
|
14
|
-
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
15
|
-
</linearGradient>
|
|
16
|
-
<linearGradient id="line-gradient-bottom" x1="256" y1="256" x2="256" y2="432" gradientUnits="userSpaceOnUse">
|
|
17
|
-
<stop offset="0%" stop-color="#F97316"/>
|
|
18
|
-
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
19
|
-
</linearGradient>
|
|
20
|
-
<linearGradient id="line-gradient-left" x1="256" y1="256" x2="80" y2="196" gradientUnits="userSpaceOnUse">
|
|
21
|
-
<stop offset="0%" stop-color="#F97316"/>
|
|
22
|
-
<stop offset="100%" stop-color="#F59E0B"/>
|
|
23
|
-
</linearGradient>
|
|
24
|
-
</defs>
|
|
25
|
-
|
|
26
|
-
<!-- Connection lines from hub to satellites -->
|
|
27
|
-
<line x1="256" y1="256" x2="256" y2="88" stroke="url(#line-gradient-top)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
28
|
-
<line x1="256" y1="256" x2="424" y2="316" stroke="url(#line-gradient-right)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
29
|
-
<line x1="256" y1="256" x2="256" y2="424" stroke="url(#line-gradient-bottom)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
30
|
-
<line x1="256" y1="256" x2="88" y2="196" stroke="url(#line-gradient-left)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
31
|
-
|
|
32
|
-
<!-- Satellite nodes -->
|
|
33
|
-
<circle cx="256" cy="88" r="28" fill="#F59E0B" opacity="0.5"/>
|
|
34
|
-
<circle cx="256" cy="88" r="18" fill="#F59E0B" opacity="0.85"/>
|
|
35
|
-
|
|
36
|
-
<circle cx="424" cy="316" r="28" fill="#8B5CF6" opacity="0.5"/>
|
|
37
|
-
<circle cx="424" cy="316" r="18" fill="#8B5CF6" opacity="0.85"/>
|
|
38
|
-
|
|
39
|
-
<circle cx="256" cy="424" r="28" fill="#8B5CF6" opacity="0.5"/>
|
|
40
|
-
<circle cx="256" cy="424" r="18" fill="#A855F7" opacity="0.85"/>
|
|
41
|
-
|
|
42
|
-
<circle cx="88" cy="196" r="28" fill="#F97316" opacity="0.5"/>
|
|
43
|
-
<circle cx="88" cy="196" r="18" fill="#F97316" opacity="0.85"/>
|
|
44
|
-
|
|
45
|
-
<!-- Central hub node -->
|
|
46
|
-
<circle cx="256" cy="256" r="64" fill="url(#hub-gradient)" opacity="0.2"/>
|
|
47
|
-
<circle cx="256" cy="256" r="48" fill="url(#hub-gradient)"/>
|
|
48
|
-
|
|
49
|
-
<!-- Hub inner highlight -->
|
|
50
|
-
<circle cx="246" cy="246" r="20" fill="#FFFFFF" opacity="0.15"/>
|
|
51
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="hub-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#F59E0B"/>
|
|
5
|
+
<stop offset="50%" stop-color="#F97316"/>
|
|
6
|
+
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<linearGradient id="line-gradient-top" x1="256" y1="256" x2="256" y2="80" gradientUnits="userSpaceOnUse">
|
|
9
|
+
<stop offset="0%" stop-color="#F97316"/>
|
|
10
|
+
<stop offset="100%" stop-color="#F59E0B"/>
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<linearGradient id="line-gradient-right" x1="256" y1="256" x2="432" y2="316" gradientUnits="userSpaceOnUse">
|
|
13
|
+
<stop offset="0%" stop-color="#F97316"/>
|
|
14
|
+
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
15
|
+
</linearGradient>
|
|
16
|
+
<linearGradient id="line-gradient-bottom" x1="256" y1="256" x2="256" y2="432" gradientUnits="userSpaceOnUse">
|
|
17
|
+
<stop offset="0%" stop-color="#F97316"/>
|
|
18
|
+
<stop offset="100%" stop-color="#8B5CF6"/>
|
|
19
|
+
</linearGradient>
|
|
20
|
+
<linearGradient id="line-gradient-left" x1="256" y1="256" x2="80" y2="196" gradientUnits="userSpaceOnUse">
|
|
21
|
+
<stop offset="0%" stop-color="#F97316"/>
|
|
22
|
+
<stop offset="100%" stop-color="#F59E0B"/>
|
|
23
|
+
</linearGradient>
|
|
24
|
+
</defs>
|
|
25
|
+
|
|
26
|
+
<!-- Connection lines from hub to satellites -->
|
|
27
|
+
<line x1="256" y1="256" x2="256" y2="88" stroke="url(#line-gradient-top)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
28
|
+
<line x1="256" y1="256" x2="424" y2="316" stroke="url(#line-gradient-right)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
29
|
+
<line x1="256" y1="256" x2="256" y2="424" stroke="url(#line-gradient-bottom)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
30
|
+
<line x1="256" y1="256" x2="88" y2="196" stroke="url(#line-gradient-left)" stroke-width="6" stroke-linecap="round" opacity="0.6"/>
|
|
31
|
+
|
|
32
|
+
<!-- Satellite nodes -->
|
|
33
|
+
<circle cx="256" cy="88" r="28" fill="#F59E0B" opacity="0.5"/>
|
|
34
|
+
<circle cx="256" cy="88" r="18" fill="#F59E0B" opacity="0.85"/>
|
|
35
|
+
|
|
36
|
+
<circle cx="424" cy="316" r="28" fill="#8B5CF6" opacity="0.5"/>
|
|
37
|
+
<circle cx="424" cy="316" r="18" fill="#8B5CF6" opacity="0.85"/>
|
|
38
|
+
|
|
39
|
+
<circle cx="256" cy="424" r="28" fill="#8B5CF6" opacity="0.5"/>
|
|
40
|
+
<circle cx="256" cy="424" r="18" fill="#A855F7" opacity="0.85"/>
|
|
41
|
+
|
|
42
|
+
<circle cx="88" cy="196" r="28" fill="#F97316" opacity="0.5"/>
|
|
43
|
+
<circle cx="88" cy="196" r="18" fill="#F97316" opacity="0.85"/>
|
|
44
|
+
|
|
45
|
+
<!-- Central hub node -->
|
|
46
|
+
<circle cx="256" cy="256" r="64" fill="url(#hub-gradient)" opacity="0.2"/>
|
|
47
|
+
<circle cx="256" cy="256" r="48" fill="url(#hub-gradient)"/>
|
|
48
|
+
|
|
49
|
+
<!-- Hub inner highlight -->
|
|
50
|
+
<circle cx="246" cy="246" r="20" fill="#FFFFFF" opacity="0.15"/>
|
|
51
|
+
</svg>
|
|
@@ -81,12 +81,12 @@ export async function adminUsersCommand() {
|
|
|
81
81
|
try {
|
|
82
82
|
const registry = await OpalServeRegistry.create();
|
|
83
83
|
const db = registry.getDatabase();
|
|
84
|
-
const users = db.all(`
|
|
85
|
-
SELECT u.id, u.email, u.display_name, tm.role, t.name as team_name, u.created_at
|
|
86
|
-
FROM users u
|
|
87
|
-
LEFT JOIN team_members tm ON tm.user_id = u.id
|
|
88
|
-
LEFT JOIN teams t ON t.id = tm.team_id
|
|
89
|
-
ORDER BY u.created_at
|
|
84
|
+
const users = db.all(`
|
|
85
|
+
SELECT u.id, u.email, u.display_name, tm.role, t.name as team_name, u.created_at
|
|
86
|
+
FROM users u
|
|
87
|
+
LEFT JOIN team_members tm ON tm.user_id = u.id
|
|
88
|
+
LEFT JOIN teams t ON t.id = tm.team_id
|
|
89
|
+
ORDER BY u.created_at
|
|
90
90
|
`);
|
|
91
91
|
if (users.length === 0) {
|
|
92
92
|
showInfo('No users found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"AAyBA,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEpE;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BxD;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BvE;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { readFileSync, readdirSync, statSync } from 'node:fs';
|
|
3
|
-
import { basename, extname, resolve } from 'node:path';
|
|
3
|
+
import { basename, extname, resolve, normalize } from 'node:path';
|
|
4
4
|
import { confirm } from '@inquirer/prompts';
|
|
5
|
+
import { OpalServeRegistry } from '../../core/registry.js';
|
|
6
|
+
import { KnowledgeBase } from '../../context/index.js';
|
|
5
7
|
import { showMiniBanner, showSuccess, showError, showInfo } from '../ui/banner.js';
|
|
6
|
-
import { loadCredentials } from '../../config/credentials.js';
|
|
7
8
|
function getContentType(filePath) {
|
|
8
9
|
const ext = extname(filePath).toLowerCase();
|
|
9
10
|
const types = {
|
|
@@ -20,45 +21,34 @@ function getContentType(filePath) {
|
|
|
20
21
|
};
|
|
21
22
|
return types[ext] ?? 'text/plain';
|
|
22
23
|
}
|
|
23
|
-
async function apiRequest(path, options) {
|
|
24
|
-
const creds = loadCredentials();
|
|
25
|
-
if (!creds) {
|
|
26
|
-
throw new Error('Not logged in. Run `opalserve login` first.');
|
|
27
|
-
}
|
|
28
|
-
const response = await fetch(`${creds.serverUrl}${path}`, {
|
|
29
|
-
...options,
|
|
30
|
-
headers: {
|
|
31
|
-
'Content-Type': 'application/json',
|
|
32
|
-
Authorization: `Bearer ${creds.apiKey}`,
|
|
33
|
-
...options?.headers,
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
return response.json();
|
|
37
|
-
}
|
|
38
24
|
export async function contextAddCommand(files) {
|
|
39
25
|
showMiniBanner();
|
|
40
26
|
try {
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
const registry = await OpalServeRegistry.create();
|
|
28
|
+
const kb = new KnowledgeBase(registry.getDatabase());
|
|
29
|
+
// Resolve file paths
|
|
43
30
|
const candidates = files.split(',').map(f => f.trim()).filter(Boolean);
|
|
44
|
-
filePaths = [];
|
|
31
|
+
const filePaths = [];
|
|
32
|
+
const cwd = process.cwd();
|
|
45
33
|
for (const candidate of candidates) {
|
|
46
|
-
|
|
34
|
+
if (candidate.includes('\0'))
|
|
35
|
+
continue;
|
|
36
|
+
const resolved = normalize(resolve(candidate));
|
|
37
|
+
if (!resolved.startsWith(cwd)) {
|
|
38
|
+
showError(`Path "${candidate}" resolves outside the working directory — skipping`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
47
41
|
try {
|
|
48
42
|
const stat = statSync(resolved);
|
|
49
43
|
if (stat.isDirectory()) {
|
|
50
|
-
// If directory, read all files in it
|
|
51
44
|
const entries = readdirSync(resolved);
|
|
52
45
|
for (const entry of entries) {
|
|
53
46
|
const entryPath = resolve(resolved, entry);
|
|
54
47
|
try {
|
|
55
|
-
if (statSync(entryPath).isFile())
|
|
48
|
+
if (statSync(entryPath).isFile())
|
|
56
49
|
filePaths.push(entryPath);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// Skip unreadable entries
|
|
61
50
|
}
|
|
51
|
+
catch { /* skip */ }
|
|
62
52
|
}
|
|
63
53
|
}
|
|
64
54
|
else {
|
|
@@ -66,13 +56,13 @@ export async function contextAddCommand(files) {
|
|
|
66
56
|
}
|
|
67
57
|
}
|
|
68
58
|
catch {
|
|
69
|
-
// Try as-is in case it's handled elsewhere
|
|
70
59
|
filePaths.push(resolved);
|
|
71
60
|
}
|
|
72
61
|
}
|
|
73
62
|
if (filePaths.length === 0) {
|
|
74
63
|
showError(`No files found matching "${files}"`);
|
|
75
|
-
|
|
64
|
+
registry.getDatabase().close();
|
|
65
|
+
return;
|
|
76
66
|
}
|
|
77
67
|
showInfo(`Uploading ${chalk.bold(String(filePaths.length))} file(s)...`);
|
|
78
68
|
console.log('');
|
|
@@ -83,18 +73,9 @@ export async function contextAddCommand(files) {
|
|
|
83
73
|
const contentType = getContentType(filePath);
|
|
84
74
|
try {
|
|
85
75
|
const content = readFileSync(filePath, 'utf-8');
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
});
|
|
90
|
-
if (result.ok) {
|
|
91
|
-
showSuccess(`${chalk.white(title)} ${chalk.dim(`(${content.length} chars)`)}`);
|
|
92
|
-
uploaded++;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
showError(`${title}: ${result.error}`);
|
|
96
|
-
failed++;
|
|
97
|
-
}
|
|
76
|
+
kb.addDocument({ title, content, contentType, source: filePath });
|
|
77
|
+
showSuccess(`${chalk.white(title)} ${chalk.dim(`(${content.length} chars)`)}`);
|
|
78
|
+
uploaded++;
|
|
98
79
|
}
|
|
99
80
|
catch (error) {
|
|
100
81
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -104,62 +85,59 @@ export async function contextAddCommand(files) {
|
|
|
104
85
|
}
|
|
105
86
|
console.log('');
|
|
106
87
|
showSuccess(`Uploaded: ${chalk.bold(String(uploaded))}, Failed: ${chalk.bold(String(failed))}`);
|
|
88
|
+
registry.getDatabase().close();
|
|
107
89
|
}
|
|
108
90
|
catch (error) {
|
|
109
91
|
showError(error instanceof Error ? error.message : String(error));
|
|
110
|
-
process.exit(1);
|
|
111
92
|
}
|
|
112
93
|
}
|
|
113
94
|
export async function contextListCommand() {
|
|
114
95
|
showMiniBanner();
|
|
115
96
|
try {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
showInfo('No context documents found');
|
|
97
|
+
const registry = await OpalServeRegistry.create();
|
|
98
|
+
const kb = new KnowledgeBase(registry.getDatabase());
|
|
99
|
+
const docs = kb.listDocuments();
|
|
100
|
+
if (docs.length === 0) {
|
|
101
|
+
showInfo('No context documents found. Add some with `opalserve context add <file>`');
|
|
102
|
+
registry.getDatabase().close();
|
|
123
103
|
return;
|
|
124
104
|
}
|
|
125
|
-
console.log(` ${chalk.bold('Context Documents')} (${
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
console.log(` ${chalk.dim(id.padEnd(38))} ${chalk.white(title.padEnd(30))} ${chalk.cyan(doc.contentType.padEnd(18))} ${chalk.dim(doc.createdAt)}`);
|
|
105
|
+
console.log(` ${chalk.bold('Context Documents')} ${chalk.dim(`(${docs.length})`)}\n`);
|
|
106
|
+
for (const doc of docs) {
|
|
107
|
+
const id = doc.id.length > 12 ? doc.id.slice(0, 12) + '...' : doc.id;
|
|
108
|
+
const title = doc.title.length > 35 ? doc.title.slice(0, 32) + '...' : doc.title;
|
|
109
|
+
const size = doc.content.length;
|
|
110
|
+
console.log(` ${chalk.dim(id.padEnd(16))} ${chalk.white(title.padEnd(36))} ${chalk.cyan(doc.contentType.padEnd(18))} ${chalk.dim(`${size} chars`)}`);
|
|
132
111
|
}
|
|
133
112
|
console.log('');
|
|
113
|
+
registry.getDatabase().close();
|
|
134
114
|
}
|
|
135
115
|
catch (error) {
|
|
136
116
|
showError(error instanceof Error ? error.message : String(error));
|
|
137
|
-
process.exit(1);
|
|
138
117
|
}
|
|
139
118
|
}
|
|
140
119
|
export async function contextSearchCommand(query) {
|
|
141
120
|
showMiniBanner();
|
|
142
121
|
try {
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
if (result.data.length === 0) {
|
|
122
|
+
const registry = await OpalServeRegistry.create();
|
|
123
|
+
const kb = new KnowledgeBase(registry.getDatabase());
|
|
124
|
+
const results = kb.searchDocuments(query);
|
|
125
|
+
if (results.length === 0) {
|
|
149
126
|
showInfo(`No documents matching "${query}"`);
|
|
127
|
+
registry.getDatabase().close();
|
|
150
128
|
return;
|
|
151
129
|
}
|
|
152
|
-
console.log(` ${chalk.bold('Search Results')} for "${query}" (${
|
|
153
|
-
for (const { doc, score } of
|
|
154
|
-
console.log(` ${chalk.yellow(`[${score}]`)} ${chalk.bold(doc.title)} ${chalk.dim(`(${doc.id.slice(0,
|
|
130
|
+
console.log(` ${chalk.bold('Search Results')} for "${chalk.cyan(query)}" ${chalk.dim(`(${results.length})`)}\n`);
|
|
131
|
+
for (const { doc, score } of results) {
|
|
132
|
+
console.log(` ${chalk.yellow(`[${score.toFixed(1)}]`)} ${chalk.bold(doc.title)} ${chalk.dim(`(${doc.id.slice(0, 12)}...)`)}`);
|
|
155
133
|
const preview = doc.content.slice(0, 120).replace(/\n/g, ' ');
|
|
156
134
|
console.log(` ${chalk.dim(preview)}${doc.content.length > 120 ? '...' : ''}`);
|
|
157
135
|
console.log('');
|
|
158
136
|
}
|
|
137
|
+
registry.getDatabase().close();
|
|
159
138
|
}
|
|
160
139
|
catch (error) {
|
|
161
140
|
showError(error instanceof Error ? error.message : String(error));
|
|
162
|
-
process.exit(1);
|
|
163
141
|
}
|
|
164
142
|
}
|
|
165
143
|
export async function contextRemoveCommand(id) {
|
|
@@ -173,18 +151,19 @@ export async function contextRemoveCommand(id) {
|
|
|
173
151
|
showInfo('Cancelled');
|
|
174
152
|
return;
|
|
175
153
|
}
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (
|
|
180
|
-
|
|
181
|
-
|
|
154
|
+
const registry = await OpalServeRegistry.create();
|
|
155
|
+
const kb = new KnowledgeBase(registry.getDatabase());
|
|
156
|
+
const removed = kb.removeDocument(id);
|
|
157
|
+
if (removed) {
|
|
158
|
+
showSuccess('Document deleted');
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
showError(`Document "${id}" not found`);
|
|
182
162
|
}
|
|
183
|
-
|
|
163
|
+
registry.getDatabase().close();
|
|
184
164
|
}
|
|
185
165
|
catch (error) {
|
|
186
166
|
showError(error instanceof Error ? error.message : String(error));
|
|
187
|
-
process.exit(1);
|
|
188
167
|
}
|
|
189
168
|
}
|
|
190
169
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/commands/context.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -11,10 +11,11 @@ import { loginCommand, logoutCommand, whoamiCommand } from './commands/auth.js';
|
|
|
11
11
|
import { syncCommand } from './commands/sync.js';
|
|
12
12
|
import { contextAddCommand, contextListCommand, contextSearchCommand, contextRemoveCommand } from './commands/context.js';
|
|
13
13
|
import { adminInitCommand, adminStatsCommand, adminUsersCommand, adminInviteCommand, adminLimitsCommand, adminPermissionsCommand } from './commands/admin.js';
|
|
14
|
+
import { VERSION } from '../constants.js';
|
|
14
15
|
const program = new Command()
|
|
15
16
|
.name('opalserve')
|
|
16
17
|
.description('Local MCP tool registry and discovery hub')
|
|
17
|
-
.version(
|
|
18
|
+
.version(VERSION)
|
|
18
19
|
.hook('preAction', (thisCommand) => {
|
|
19
20
|
// Show banner only for root-level commands, not subcommands help
|
|
20
21
|
if (thisCommand.args.length === 0 || !['--help', '-h'].includes(thisCommand.args[0])) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC1H,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAqBA,wBAAgB,UAAU,IAAI,IAAI,CASjC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAIrC;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAS7D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C"}
|
package/dist/cli/ui/banner.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import gradient from 'gradient-string';
|
|
3
3
|
import boxen from 'boxen';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
██║
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
import { VERSION } from '../../constants.js';
|
|
5
|
+
const ASCII_LOGO = `
|
|
6
|
+
██████╗ ██████╗ █████╗ ██╗
|
|
7
|
+
██╔═══██╗██╔══██╗██╔══██╗██║
|
|
8
|
+
██║ ██║██████╔╝███████║██║
|
|
9
|
+
██║ ██║██╔═══╝ ██╔══██║██║
|
|
10
|
+
╚██████╔╝██║ ██║ ██║███████╗
|
|
11
|
+
╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝
|
|
12
|
+
███████╗███████╗██████╗ ██╗ ██╗███████╗
|
|
13
|
+
██╔════╝██╔════╝██╔══██╗██║ ██║██╔════╝
|
|
14
|
+
███████╗█████╗ ██████╔╝██║ ██║█████╗
|
|
15
|
+
╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██╔══╝
|
|
16
|
+
███████║███████╗██║ ██║ ╚████╔╝ ███████╗
|
|
16
17
|
╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚══════╝`;
|
|
17
18
|
const opalGradient = gradient(['#F59E0B', '#F97316', '#EF4444', '#8B5CF6']);
|
|
18
19
|
export function showBanner() {
|
|
19
20
|
const banner = opalGradient.multiline(ASCII_LOGO);
|
|
20
|
-
const version = chalk.dim(
|
|
21
|
+
const version = chalk.dim(`v${VERSION}`);
|
|
21
22
|
const tagline = chalk.gray('Local MCP Tool Registry & Discovery Hub');
|
|
22
23
|
console.log('');
|
|
23
24
|
console.log(banner);
|
|
@@ -26,7 +27,7 @@ export function showBanner() {
|
|
|
26
27
|
}
|
|
27
28
|
export function showMiniBanner() {
|
|
28
29
|
const title = opalGradient('OpalServe');
|
|
29
|
-
const version = chalk.dim(
|
|
30
|
+
const version = chalk.dim(`v${VERSION}`);
|
|
30
31
|
console.log(`\n ${title} ${version}\n`);
|
|
31
32
|
}
|
|
32
33
|
export function showBox(content, title) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,UAAU,GAAG;;;;;;;;;;;;6CAY0B,CAAC;AAE9C,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,KAAc;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QAChD,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,SAAS;QACtB,KAAK;QACL,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/constants.d.ts
CHANGED
package/dist/constants.js
CHANGED
package/dist/context/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export class KnowledgeBase {
|
|
|
7
7
|
addDocument(doc) {
|
|
8
8
|
const id = randomUUID();
|
|
9
9
|
const now = new Date().toISOString();
|
|
10
|
-
this.db.run(`INSERT INTO context_documents (id, team_id, title, content, content_type, source, tags, uploaded_by, created_at, updated_at)
|
|
10
|
+
this.db.run(`INSERT INTO context_documents (id, team_id, title, content, content_type, source, tags, uploaded_by, created_at, updated_at)
|
|
11
11
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
12
12
|
id,
|
|
13
13
|
doc.teamId ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUzD,qBAAa,aAAc,SAAQ,YAAY;IAGjC,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,OAAO,CAAkC;gBAE7B,EAAE,EAAE,QAAQ;IAI1B,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDrD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAUjH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,mBAAmB,IAAI,MAAM,EAAE;IAI/B,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -4,6 +4,7 @@ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'
|
|
|
4
4
|
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
5
5
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
6
6
|
import { createLogger } from '../utils/logger.js';
|
|
7
|
+
import { VERSION } from '../constants.js';
|
|
7
8
|
const log = createLogger('server-manager');
|
|
8
9
|
export class ServerManager extends EventEmitter {
|
|
9
10
|
db;
|
|
@@ -21,7 +22,7 @@ export class ServerManager extends EventEmitter {
|
|
|
21
22
|
this.emit('server:connecting', config.name);
|
|
22
23
|
try {
|
|
23
24
|
const transport = this.createTransport(config);
|
|
24
|
-
const client = new Client({ name: 'opalserve', version:
|
|
25
|
+
const client = new Client({ name: 'opalserve', version: VERSION }, { capabilities: {} });
|
|
25
26
|
await client.connect(transport);
|
|
26
27
|
// Discover tools
|
|
27
28
|
const toolsResult = await client.listTools();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAInG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../../src/core/server-manager.ts"],"names":[],"mappings":"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"}
|