@indemn/cli 1.0.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/.claude-plugin/plugin.json +13 -0
- package/.mcp.json +9 -0
- package/README.md +225 -0
- package/dist/cli/agents.d.ts +3 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +187 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/auth.d.ts +3 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +161 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/chat.d.ts +3 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +142 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/config.d.ts +3 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +119 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/eval.d.ts +3 -0
- package/dist/cli/eval.d.ts.map +1 -0
- package/dist/cli/eval.js +717 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/functions.d.ts +3 -0
- package/dist/cli/functions.d.ts.map +1 -0
- package/dist/cli/functions.js +346 -0
- package/dist/cli/functions.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +64 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/kb.d.ts +3 -0
- package/dist/cli/kb.d.ts.map +1 -0
- package/dist/cli/kb.js +377 -0
- package/dist/cli/kb.js.map +1 -0
- package/dist/cli/utils/output.d.ts +6 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +36 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +15 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +4 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +814 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/sdk/agents.d.ts +13 -0
- package/dist/sdk/agents.d.ts.map +1 -0
- package/dist/sdk/agents.js +27 -0
- package/dist/sdk/agents.js.map +1 -0
- package/dist/sdk/auth.d.ts +18 -0
- package/dist/sdk/auth.d.ts.map +1 -0
- package/dist/sdk/auth.js +98 -0
- package/dist/sdk/auth.js.map +1 -0
- package/dist/sdk/chat.d.ts +17 -0
- package/dist/sdk/chat.d.ts.map +1 -0
- package/dist/sdk/chat.js +113 -0
- package/dist/sdk/chat.js.map +1 -0
- package/dist/sdk/client.d.ts +36 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +219 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/config.d.ts +11 -0
- package/dist/sdk/config.d.ts.map +1 -0
- package/dist/sdk/config.js +20 -0
- package/dist/sdk/config.js.map +1 -0
- package/dist/sdk/eval.d.ts +13 -0
- package/dist/sdk/eval.d.ts.map +1 -0
- package/dist/sdk/eval.js +36 -0
- package/dist/sdk/eval.js.map +1 -0
- package/dist/sdk/functions.d.ts +30 -0
- package/dist/sdk/functions.d.ts.map +1 -0
- package/dist/sdk/functions.js +59 -0
- package/dist/sdk/functions.js.map +1 -0
- package/dist/sdk/index.d.ts +12 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +12 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/kb.d.ts +30 -0
- package/dist/sdk/kb.d.ts.map +1 -0
- package/dist/sdk/kb.js +102 -0
- package/dist/sdk/kb.js.map +1 -0
- package/dist/sdk/rubrics.d.ts +14 -0
- package/dist/sdk/rubrics.d.ts.map +1 -0
- package/dist/sdk/rubrics.js +29 -0
- package/dist/sdk/rubrics.js.map +1 -0
- package/dist/sdk/test-sets.d.ts +14 -0
- package/dist/sdk/test-sets.d.ts.map +1 -0
- package/dist/sdk/test-sets.js +29 -0
- package/dist/sdk/test-sets.js.map +1 -0
- package/dist/sdk/types.d.ts +305 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +3 -0
- package/dist/sdk/types.js.map +1 -0
- package/package.json +40 -0
- package/skills/agent-setup/SKILL.md +131 -0
- package/skills/eval-orchestration/SKILL.md +257 -0
- package/skills/rubric-creation/SKILL.md +163 -0
- package/skills/test-set-creation/SKILL.md +250 -0
- package/src/cli/agents.ts +206 -0
- package/src/cli/auth.ts +170 -0
- package/src/cli/chat.ts +161 -0
- package/src/cli/config.ts +131 -0
- package/src/cli/eval.ts +750 -0
- package/src/cli/functions.ts +330 -0
- package/src/cli/index.ts +68 -0
- package/src/cli/kb.ts +412 -0
- package/src/cli/utils/output.ts +42 -0
- package/src/mcp/server.ts +17 -0
- package/src/mcp/tools.ts +971 -0
- package/src/sdk/agents.ts +47 -0
- package/src/sdk/auth.ts +132 -0
- package/src/sdk/chat.ts +133 -0
- package/src/sdk/client.ts +238 -0
- package/src/sdk/config.ts +28 -0
- package/src/sdk/eval.ts +57 -0
- package/src/sdk/functions.ts +103 -0
- package/src/sdk/index.ts +11 -0
- package/src/sdk/kb.ts +183 -0
- package/src/sdk/rubrics.ts +35 -0
- package/src/sdk/test-sets.ts +35 -0
- package/src/sdk/types.ts +347 -0
- package/test/fixtures/test-rubric.json +66 -0
- package/test/fixtures/test-testset.json +55 -0
- package/tsconfig.json +19 -0
package/dist/cli/kb.js
ADDED
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import { IndemnClient } from '../sdk/client.js';
|
|
3
|
+
import { KBSDK } from '../sdk/kb.js';
|
|
4
|
+
import { formatTable, printJson, printError, printSuccess, confirm } from './utils/output.js';
|
|
5
|
+
export function registerKBCommands(program) {
|
|
6
|
+
const kb = program.command('kb').description('Manage knowledge bases');
|
|
7
|
+
kb.command('list')
|
|
8
|
+
.description('List all knowledge bases')
|
|
9
|
+
.option('--json', 'Output as JSON')
|
|
10
|
+
.option('--limit <n>', 'Limit number of results')
|
|
11
|
+
.option('--page <n>', 'Page number (use with --limit)')
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
try {
|
|
14
|
+
const client = new IndemnClient();
|
|
15
|
+
const sdk = new KBSDK(client);
|
|
16
|
+
const spinner = ora('Fetching knowledge bases...').start();
|
|
17
|
+
let kbs = await sdk.listKBs();
|
|
18
|
+
spinner.stop();
|
|
19
|
+
if (options.page && options.limit) {
|
|
20
|
+
const page = parseInt(options.page, 10);
|
|
21
|
+
const limit = parseInt(options.limit, 10);
|
|
22
|
+
kbs = kbs.slice((page - 1) * limit, page * limit);
|
|
23
|
+
}
|
|
24
|
+
else if (options.limit) {
|
|
25
|
+
kbs = kbs.slice(0, parseInt(options.limit, 10));
|
|
26
|
+
}
|
|
27
|
+
if (options.json) {
|
|
28
|
+
printJson(kbs);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (kbs.length === 0) {
|
|
32
|
+
console.log('No knowledge bases found.');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const rows = kbs.map((k) => [
|
|
36
|
+
k._id,
|
|
37
|
+
k.name || '',
|
|
38
|
+
k.type || '',
|
|
39
|
+
]);
|
|
40
|
+
console.log(formatTable(['ID', 'Name', 'Type'], rows));
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
printError(err);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
kb.command('get')
|
|
48
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
49
|
+
.description('Get knowledge base details')
|
|
50
|
+
.option('--json', 'Output as JSON')
|
|
51
|
+
.action(async (kbId, options) => {
|
|
52
|
+
try {
|
|
53
|
+
const client = new IndemnClient();
|
|
54
|
+
const sdk = new KBSDK(client);
|
|
55
|
+
const spinner = ora('Fetching knowledge base...').start();
|
|
56
|
+
const knowledgeBase = await sdk.getKB(kbId);
|
|
57
|
+
spinner.stop();
|
|
58
|
+
if (options.json) {
|
|
59
|
+
printJson(knowledgeBase);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
console.log(`ID: ${knowledgeBase._id}`);
|
|
63
|
+
console.log(`Name: ${knowledgeBase.name}`);
|
|
64
|
+
console.log(`Type: ${knowledgeBase.type || '(none)'}`);
|
|
65
|
+
console.log(`Description: ${knowledgeBase.description || '(none)'}`);
|
|
66
|
+
console.log(`Project: ${knowledgeBase.id_project || '(none)'}`);
|
|
67
|
+
console.log(`Created: ${knowledgeBase.createdAt || ''}`);
|
|
68
|
+
console.log(`Updated: ${knowledgeBase.updatedAt || ''}`);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
printError(err);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
kb.command('create')
|
|
76
|
+
.description('Create a new knowledge base')
|
|
77
|
+
.requiredOption('--name <name>', 'Knowledge base name')
|
|
78
|
+
.option('--type <type>', 'Knowledge base type (QNA, URL, FILE)', 'QNA')
|
|
79
|
+
.action(async (options) => {
|
|
80
|
+
try {
|
|
81
|
+
const client = new IndemnClient();
|
|
82
|
+
const sdk = new KBSDK(client);
|
|
83
|
+
const spinner = ora('Creating knowledge base...').start();
|
|
84
|
+
const knowledgeBase = await sdk.createKB({
|
|
85
|
+
name: options.name,
|
|
86
|
+
type: options.type.toUpperCase(),
|
|
87
|
+
});
|
|
88
|
+
spinner.stop();
|
|
89
|
+
printSuccess(`Knowledge base created: ${knowledgeBase._id}`);
|
|
90
|
+
console.log(` Name: ${knowledgeBase.name}`);
|
|
91
|
+
console.log(` Type: ${knowledgeBase.type || options.type}`);
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
printError(err);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
kb.command('update')
|
|
99
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
100
|
+
.description('Update a knowledge base')
|
|
101
|
+
.option('--name <name>', 'New name')
|
|
102
|
+
.action(async (kbId, options) => {
|
|
103
|
+
try {
|
|
104
|
+
const input = {};
|
|
105
|
+
if (options.name)
|
|
106
|
+
input.name = options.name;
|
|
107
|
+
if (Object.keys(input).length === 0) {
|
|
108
|
+
printError('No update options provided. Use --name.');
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
const client = new IndemnClient();
|
|
112
|
+
const sdk = new KBSDK(client);
|
|
113
|
+
const spinner = ora('Updating knowledge base...').start();
|
|
114
|
+
await sdk.updateKB(kbId, input);
|
|
115
|
+
spinner.stop();
|
|
116
|
+
printSuccess(`Knowledge base ${kbId} updated.`);
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
printError(err);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
kb.command('delete')
|
|
124
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
125
|
+
.description('Delete a knowledge base')
|
|
126
|
+
.action(async (kbId) => {
|
|
127
|
+
try {
|
|
128
|
+
const confirmed = await confirm(`Delete knowledge base ${kbId}? This cannot be undone.`);
|
|
129
|
+
if (!confirmed) {
|
|
130
|
+
console.log('Cancelled.');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const client = new IndemnClient();
|
|
134
|
+
const sdk = new KBSDK(client);
|
|
135
|
+
const spinner = ora('Deleting knowledge base...').start();
|
|
136
|
+
await sdk.deleteKB(kbId);
|
|
137
|
+
spinner.stop();
|
|
138
|
+
printSuccess(`Knowledge base ${kbId} deleted.`);
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
printError(err);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
// Data source subcommands
|
|
146
|
+
const data = kb.command('data').description('Manage KB data sources');
|
|
147
|
+
data.command('list')
|
|
148
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
149
|
+
.description('List data sources')
|
|
150
|
+
.option('--json', 'Output as JSON')
|
|
151
|
+
.option('--limit <n>', 'Limit number of results')
|
|
152
|
+
.option('--page <n>', 'Page number')
|
|
153
|
+
.action(async (kbId, options) => {
|
|
154
|
+
try {
|
|
155
|
+
const client = new IndemnClient();
|
|
156
|
+
const sdk = new KBSDK(client);
|
|
157
|
+
const spinner = ora('Fetching data sources...').start();
|
|
158
|
+
const query = {};
|
|
159
|
+
if (options.limit)
|
|
160
|
+
query.limit = options.limit;
|
|
161
|
+
if (options.page)
|
|
162
|
+
query.page = options.page;
|
|
163
|
+
const result = await sdk.listDataSources(kbId, query);
|
|
164
|
+
spinner.stop();
|
|
165
|
+
const sources = result.dataSources || [];
|
|
166
|
+
if (options.json) {
|
|
167
|
+
printJson(result);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (sources.length === 0) {
|
|
171
|
+
console.log('No data sources found.');
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
console.log(`Total: ${result.total} | Page ${result.page} of ${result.pages}`);
|
|
175
|
+
const rows = sources.map((s) => [
|
|
176
|
+
s._id,
|
|
177
|
+
s.name || s.question || '',
|
|
178
|
+
s.type || '',
|
|
179
|
+
s.status || '',
|
|
180
|
+
]);
|
|
181
|
+
console.log(formatTable(['ID', 'Name/Question', 'Type', 'Status'], rows));
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
printError(err);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
data.command('add')
|
|
189
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
190
|
+
.description('Add a data source')
|
|
191
|
+
.option('--question <question>', 'Question text (for QnA)')
|
|
192
|
+
.option('--answer <answer>', 'Answer text (for QnA)')
|
|
193
|
+
.option('--source-url <url>', 'Source URL')
|
|
194
|
+
.option('--content <content>', 'Content text')
|
|
195
|
+
.option('--file <path>', 'File to upload (for file-type KBs)')
|
|
196
|
+
.action(async (kbId, options) => {
|
|
197
|
+
try {
|
|
198
|
+
const client = new IndemnClient();
|
|
199
|
+
const sdk = new KBSDK(client);
|
|
200
|
+
const spinner = ora('Adding data source...').start();
|
|
201
|
+
if (options.sourceUrl) {
|
|
202
|
+
const result = await sdk.scrapeUrl(kbId, options.sourceUrl);
|
|
203
|
+
spinner.stop();
|
|
204
|
+
printSuccess(`URL scraping initiated for: ${options.sourceUrl}`);
|
|
205
|
+
printJson(result);
|
|
206
|
+
}
|
|
207
|
+
else if (options.file) {
|
|
208
|
+
const result = await sdk.uploadFile(kbId, options.file);
|
|
209
|
+
spinner.stop();
|
|
210
|
+
printSuccess(`File uploaded: ${options.file}`);
|
|
211
|
+
printJson(result);
|
|
212
|
+
}
|
|
213
|
+
else if (options.question && options.answer) {
|
|
214
|
+
const source = await sdk.addDataSource(kbId, { question: options.question, answer: options.answer });
|
|
215
|
+
spinner.stop();
|
|
216
|
+
printSuccess(`Data source added: ${source._id}`);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
spinner.stop();
|
|
220
|
+
printError('Provide --question/--answer, --source-url, or --file.');
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (err) {
|
|
225
|
+
printError(err);
|
|
226
|
+
process.exit(1);
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
data.command('update')
|
|
230
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
231
|
+
.argument('<source-id>', 'Data source ID')
|
|
232
|
+
.description('Update a data source')
|
|
233
|
+
.option('--question <question>', 'Question text')
|
|
234
|
+
.option('--answer <answer>', 'Answer text')
|
|
235
|
+
.option('--source-url <url>', 'Source URL')
|
|
236
|
+
.option('--content <content>', 'Content text')
|
|
237
|
+
.action(async (kbId, sourceId, options) => {
|
|
238
|
+
try {
|
|
239
|
+
const input = {};
|
|
240
|
+
if (options.question)
|
|
241
|
+
input.question = options.question;
|
|
242
|
+
if (options.answer)
|
|
243
|
+
input.answer = options.answer;
|
|
244
|
+
if (options.sourceUrl)
|
|
245
|
+
input.source_url = options.sourceUrl;
|
|
246
|
+
if (options.content)
|
|
247
|
+
input.content = options.content;
|
|
248
|
+
if (Object.keys(input).length === 0) {
|
|
249
|
+
printError('No update options provided.');
|
|
250
|
+
process.exit(1);
|
|
251
|
+
}
|
|
252
|
+
const client = new IndemnClient();
|
|
253
|
+
const sdk = new KBSDK(client);
|
|
254
|
+
const spinner = ora('Updating data source...').start();
|
|
255
|
+
await sdk.updateDataSource(kbId, sourceId, input);
|
|
256
|
+
spinner.stop();
|
|
257
|
+
printSuccess(`Data source ${sourceId} updated.`);
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
printError(err);
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
data.command('delete')
|
|
265
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
266
|
+
.argument('<source-id>', 'Data source ID')
|
|
267
|
+
.description('Delete a data source')
|
|
268
|
+
.action(async (kbId, sourceId) => {
|
|
269
|
+
try {
|
|
270
|
+
const confirmed = await confirm(`Delete data source ${sourceId}? This cannot be undone.`);
|
|
271
|
+
if (!confirmed) {
|
|
272
|
+
console.log('Cancelled.');
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const client = new IndemnClient();
|
|
276
|
+
const sdk = new KBSDK(client);
|
|
277
|
+
const spinner = ora('Deleting data source...').start();
|
|
278
|
+
await sdk.deleteDataSource(kbId, sourceId);
|
|
279
|
+
spinner.stop();
|
|
280
|
+
printSuccess(`Data source ${sourceId} deleted.`);
|
|
281
|
+
}
|
|
282
|
+
catch (err) {
|
|
283
|
+
printError(err);
|
|
284
|
+
process.exit(1);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
// Link/unlink commands
|
|
288
|
+
kb.command('link')
|
|
289
|
+
.argument('<agent-id>', 'Agent ID')
|
|
290
|
+
.argument('<kb-id...>', 'Knowledge base IDs')
|
|
291
|
+
.description('Link knowledge bases to an agent')
|
|
292
|
+
.action(async (agentId, kbIds) => {
|
|
293
|
+
try {
|
|
294
|
+
const client = new IndemnClient();
|
|
295
|
+
const sdk = new KBSDK(client);
|
|
296
|
+
const spinner = ora('Linking knowledge bases...').start();
|
|
297
|
+
await sdk.linkKB(agentId, kbIds);
|
|
298
|
+
spinner.stop();
|
|
299
|
+
printSuccess(`Linked ${kbIds.length} knowledge base(s) to agent ${agentId}.`);
|
|
300
|
+
}
|
|
301
|
+
catch (err) {
|
|
302
|
+
printError(err);
|
|
303
|
+
process.exit(1);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
kb.command('unlink')
|
|
307
|
+
.argument('<agent-id>', 'Agent ID')
|
|
308
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
309
|
+
.description('Unlink a knowledge base from an agent')
|
|
310
|
+
.action(async (agentId, kbId) => {
|
|
311
|
+
try {
|
|
312
|
+
const client = new IndemnClient();
|
|
313
|
+
const sdk = new KBSDK(client);
|
|
314
|
+
const spinner = ora('Unlinking knowledge base...').start();
|
|
315
|
+
await sdk.unlinkKB(agentId, kbId);
|
|
316
|
+
spinner.stop();
|
|
317
|
+
printSuccess(`Unlinked knowledge base ${kbId} from agent ${agentId}.`);
|
|
318
|
+
}
|
|
319
|
+
catch (err) {
|
|
320
|
+
printError(err);
|
|
321
|
+
process.exit(1);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
kb.command('export')
|
|
325
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
326
|
+
.description('Export knowledge base data')
|
|
327
|
+
.option('--format <format>', 'Export format (csv or xlsx)', 'csv')
|
|
328
|
+
.action(async (kbId, options) => {
|
|
329
|
+
try {
|
|
330
|
+
const client = new IndemnClient();
|
|
331
|
+
const sdk = new KBSDK(client);
|
|
332
|
+
const spinner = ora('Exporting knowledge base...').start();
|
|
333
|
+
const result = await sdk.exportKB(kbId, options.format);
|
|
334
|
+
spinner.stop();
|
|
335
|
+
printJson(result);
|
|
336
|
+
}
|
|
337
|
+
catch (err) {
|
|
338
|
+
printError(err);
|
|
339
|
+
process.exit(1);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
kb.command('import')
|
|
343
|
+
.argument('<kb-id>', 'Knowledge base ID')
|
|
344
|
+
.description('Import data into knowledge base')
|
|
345
|
+
.requiredOption('--file <path>', 'Path to import file')
|
|
346
|
+
.action(async (kbId, options) => {
|
|
347
|
+
try {
|
|
348
|
+
const fs = await import('fs');
|
|
349
|
+
const filePath = options.file;
|
|
350
|
+
if (!fs.existsSync(filePath)) {
|
|
351
|
+
printError(`File not found: ${filePath}`);
|
|
352
|
+
process.exit(1);
|
|
353
|
+
}
|
|
354
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
355
|
+
let data;
|
|
356
|
+
try {
|
|
357
|
+
data = JSON.parse(content);
|
|
358
|
+
}
|
|
359
|
+
catch {
|
|
360
|
+
printError('Import file must be valid JSON.');
|
|
361
|
+
process.exit(1);
|
|
362
|
+
}
|
|
363
|
+
const client = new IndemnClient();
|
|
364
|
+
const sdk = new KBSDK(client);
|
|
365
|
+
const spinner = ora('Importing data...').start();
|
|
366
|
+
const result = await sdk.importKB(kbId, data);
|
|
367
|
+
spinner.stop();
|
|
368
|
+
printSuccess('Knowledge base data imported successfully.');
|
|
369
|
+
printJson(result);
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
printError(err);
|
|
373
|
+
process.exit(1);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
//# sourceMappingURL=kb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb.js","sourceRoot":"","sources":["../../src/cli/kb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function formatTable(headers: string[], rows: string[][]): string;
|
|
2
|
+
export declare function printJson(data: unknown): void;
|
|
3
|
+
export declare function printError(error: unknown): void;
|
|
4
|
+
export declare function printSuccess(message: string): void;
|
|
5
|
+
export declare function confirm(message: string): Promise<boolean>;
|
|
6
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CASvE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAI/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY/D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import Table from 'cli-table3';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import * as readline from 'readline';
|
|
4
|
+
export function formatTable(headers, rows) {
|
|
5
|
+
const table = new Table({
|
|
6
|
+
head: headers.map((h) => chalk.cyan(h)),
|
|
7
|
+
style: { head: [], border: [] },
|
|
8
|
+
});
|
|
9
|
+
for (const row of rows) {
|
|
10
|
+
table.push(row);
|
|
11
|
+
}
|
|
12
|
+
return table.toString();
|
|
13
|
+
}
|
|
14
|
+
export function printJson(data) {
|
|
15
|
+
console.log(JSON.stringify(data, null, 2));
|
|
16
|
+
}
|
|
17
|
+
export function printError(error) {
|
|
18
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
19
|
+
console.error(chalk.red(`Error: ${message}`));
|
|
20
|
+
}
|
|
21
|
+
export function printSuccess(message) {
|
|
22
|
+
console.log(chalk.green(message));
|
|
23
|
+
}
|
|
24
|
+
export async function confirm(message) {
|
|
25
|
+
const rl = readline.createInterface({
|
|
26
|
+
input: process.stdin,
|
|
27
|
+
output: process.stdout,
|
|
28
|
+
});
|
|
29
|
+
return new Promise((resolve) => {
|
|
30
|
+
rl.question(`${message} (y/N) `, (answer) => {
|
|
31
|
+
rl.close();
|
|
32
|
+
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/cli/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,IAAgB;IAC7D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;KAChC,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAWjD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { IndemnClient } from '../sdk/client.js';
|
|
4
|
+
import { registerTools } from './tools.js';
|
|
5
|
+
export async function startServer() {
|
|
6
|
+
const client = new IndemnClient();
|
|
7
|
+
const server = new McpServer({
|
|
8
|
+
name: 'indemn',
|
|
9
|
+
version: '1.0.0',
|
|
10
|
+
});
|
|
11
|
+
registerTools(server, client);
|
|
12
|
+
const transport = new StdioServerTransport();
|
|
13
|
+
await server.connect(transport);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqBrD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAm7B3E"}
|