@aaronsb/kg-cli 0.6.1
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 +112 -0
- package/dist/api/client.d.ts +867 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +1362 -0
- package/dist/api/client.js.map +1 -0
- package/dist/cli/admin/backup.d.ts +9 -0
- package/dist/cli/admin/backup.d.ts.map +1 -0
- package/dist/cli/admin/backup.js +363 -0
- package/dist/cli/admin/backup.js.map +1 -0
- package/dist/cli/admin/index.d.ts +7 -0
- package/dist/cli/admin/index.d.ts.map +1 -0
- package/dist/cli/admin/index.js +52 -0
- package/dist/cli/admin/index.js.map +1 -0
- package/dist/cli/admin/scheduler.d.ts +7 -0
- package/dist/cli/admin/scheduler.d.ts.map +1 -0
- package/dist/cli/admin/scheduler.js +125 -0
- package/dist/cli/admin/scheduler.js.map +1 -0
- package/dist/cli/admin/status.d.ts +7 -0
- package/dist/cli/admin/status.d.ts.map +1 -0
- package/dist/cli/admin/status.js +134 -0
- package/dist/cli/admin/status.js.map +1 -0
- package/dist/cli/admin/utils.d.ts +34 -0
- package/dist/cli/admin/utils.d.ts.map +1 -0
- package/dist/cli/admin/utils.js +441 -0
- package/dist/cli/admin/utils.js.map +1 -0
- package/dist/cli/ai-config/embedding.d.ts +11 -0
- package/dist/cli/ai-config/embedding.d.ts.map +1 -0
- package/dist/cli/ai-config/embedding.js +598 -0
- package/dist/cli/ai-config/embedding.js.map +1 -0
- package/dist/cli/ai-config/extraction.d.ts +11 -0
- package/dist/cli/ai-config/extraction.d.ts.map +1 -0
- package/dist/cli/ai-config/extraction.js +206 -0
- package/dist/cli/ai-config/extraction.js.map +1 -0
- package/dist/cli/ai-config/index.d.ts +21 -0
- package/dist/cli/ai-config/index.d.ts.map +1 -0
- package/dist/cli/ai-config/index.js +27 -0
- package/dist/cli/ai-config/index.js.map +1 -0
- package/dist/cli/ai-config/keys.d.ts +11 -0
- package/dist/cli/ai-config/keys.d.ts.map +1 -0
- package/dist/cli/ai-config/keys.js +182 -0
- package/dist/cli/ai-config/keys.js.map +1 -0
- package/dist/cli/ai-config/utils.d.ts +13 -0
- package/dist/cli/ai-config/utils.d.ts.map +1 -0
- package/dist/cli/ai-config/utils.js +84 -0
- package/dist/cli/ai-config/utils.js.map +1 -0
- package/dist/cli/artifact.d.ts +8 -0
- package/dist/cli/artifact.d.ts.map +1 -0
- package/dist/cli/artifact.js +296 -0
- package/dist/cli/artifact.js.map +1 -0
- package/dist/cli/auth-admin.d.ts +11 -0
- package/dist/cli/auth-admin.d.ts.map +1 -0
- package/dist/cli/auth-admin.js +415 -0
- package/dist/cli/auth-admin.js.map +1 -0
- package/dist/cli/colors.d.ts +105 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +164 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/commands.d.ts +6 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +164 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/config.d.ts +6 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +694 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/curve-viz.d.ts +89 -0
- package/dist/cli/curve-viz.d.ts.map +1 -0
- package/dist/cli/curve-viz.js +228 -0
- package/dist/cli/curve-viz.js.map +1 -0
- package/dist/cli/database.d.ts +6 -0
- package/dist/cli/database.d.ts.map +1 -0
- package/dist/cli/database.js +324 -0
- package/dist/cli/database.js.map +1 -0
- package/dist/cli/document.d.ts +6 -0
- package/dist/cli/document.d.ts.map +1 -0
- package/dist/cli/document.js +458 -0
- package/dist/cli/document.js.map +1 -0
- package/dist/cli/group.d.ts +8 -0
- package/dist/cli/group.d.ts.map +1 -0
- package/dist/cli/group.js +174 -0
- package/dist/cli/group.js.map +1 -0
- package/dist/cli/health.d.ts +6 -0
- package/dist/cli/health.d.ts.map +1 -0
- package/dist/cli/health.js +34 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/help-formatter.d.ts +16 -0
- package/dist/cli/help-formatter.d.ts.map +1 -0
- package/dist/cli/help-formatter.js +248 -0
- package/dist/cli/help-formatter.js.map +1 -0
- package/dist/cli/help.d.ts +9 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +227 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/ingest.d.ts +6 -0
- package/dist/cli/ingest.d.ts.map +1 -0
- package/dist/cli/ingest.js +722 -0
- package/dist/cli/ingest.js.map +1 -0
- package/dist/cli/jobs.d.ts +6 -0
- package/dist/cli/jobs.d.ts.map +1 -0
- package/dist/cli/jobs.js +663 -0
- package/dist/cli/jobs.js.map +1 -0
- package/dist/cli/login.d.ts +21 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +221 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/logout.d.ts +16 -0
- package/dist/cli/logout.d.ts.map +1 -0
- package/dist/cli/logout.js +141 -0
- package/dist/cli/logout.js.map +1 -0
- package/dist/cli/mcp-config.d.ts +10 -0
- package/dist/cli/mcp-config.d.ts.map +1 -0
- package/dist/cli/mcp-config.js +358 -0
- package/dist/cli/mcp-config.js.map +1 -0
- package/dist/cli/oauth.d.ts +15 -0
- package/dist/cli/oauth.d.ts.map +1 -0
- package/dist/cli/oauth.js +296 -0
- package/dist/cli/oauth.js.map +1 -0
- package/dist/cli/ontology.d.ts +6 -0
- package/dist/cli/ontology.d.ts.map +1 -0
- package/dist/cli/ontology.js +231 -0
- package/dist/cli/ontology.js.map +1 -0
- package/dist/cli/polarity.d.ts +6 -0
- package/dist/cli/polarity.d.ts.map +1 -0
- package/dist/cli/polarity.js +295 -0
- package/dist/cli/polarity.js.map +1 -0
- package/dist/cli/projection.d.ts +8 -0
- package/dist/cli/projection.d.ts.map +1 -0
- package/dist/cli/projection.js +297 -0
- package/dist/cli/projection.js.map +1 -0
- package/dist/cli/query-def.d.ts +8 -0
- package/dist/cli/query-def.d.ts.map +1 -0
- package/dist/cli/query-def.js +163 -0
- package/dist/cli/query-def.js.map +1 -0
- package/dist/cli/rbac.d.ts +12 -0
- package/dist/cli/rbac.d.ts.map +1 -0
- package/dist/cli/rbac.js +615 -0
- package/dist/cli/rbac.js.map +1 -0
- package/dist/cli/search.d.ts +6 -0
- package/dist/cli/search.d.ts.map +1 -0
- package/dist/cli/search.js +829 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/cli/source.d.ts +6 -0
- package/dist/cli/source.d.ts.map +1 -0
- package/dist/cli/source.js +202 -0
- package/dist/cli/source.js.map +1 -0
- package/dist/cli/verb-router.d.ts +25 -0
- package/dist/cli/verb-router.d.ts.map +1 -0
- package/dist/cli/verb-router.js +415 -0
- package/dist/cli/verb-router.js.map +1 -0
- package/dist/cli/vocabulary/config.d.ts +7 -0
- package/dist/cli/vocabulary/config.d.ts.map +1 -0
- package/dist/cli/vocabulary/config.js +201 -0
- package/dist/cli/vocabulary/config.js.map +1 -0
- package/dist/cli/vocabulary/consolidate.d.ts +8 -0
- package/dist/cli/vocabulary/consolidate.d.ts.map +1 -0
- package/dist/cli/vocabulary/consolidate.js +192 -0
- package/dist/cli/vocabulary/consolidate.js.map +1 -0
- package/dist/cli/vocabulary/embeddings.d.ts +9 -0
- package/dist/cli/vocabulary/embeddings.d.ts.map +1 -0
- package/dist/cli/vocabulary/embeddings.js +205 -0
- package/dist/cli/vocabulary/embeddings.js.map +1 -0
- package/dist/cli/vocabulary/epistemic.d.ts +7 -0
- package/dist/cli/vocabulary/epistemic.d.ts.map +1 -0
- package/dist/cli/vocabulary/epistemic.js +315 -0
- package/dist/cli/vocabulary/epistemic.js.map +1 -0
- package/dist/cli/vocabulary/index.d.ts +7 -0
- package/dist/cli/vocabulary/index.d.ts.map +1 -0
- package/dist/cli/vocabulary/index.js +45 -0
- package/dist/cli/vocabulary/index.js.map +1 -0
- package/dist/cli/vocabulary/profiles.d.ts +7 -0
- package/dist/cli/vocabulary/profiles.d.ts.map +1 -0
- package/dist/cli/vocabulary/profiles.js +171 -0
- package/dist/cli/vocabulary/profiles.js.map +1 -0
- package/dist/cli/vocabulary/similarity.d.ts +9 -0
- package/dist/cli/vocabulary/similarity.d.ts.map +1 -0
- package/dist/cli/vocabulary/similarity.js +199 -0
- package/dist/cli/vocabulary/similarity.js.map +1 -0
- package/dist/cli/vocabulary/status.d.ts +8 -0
- package/dist/cli/vocabulary/status.d.ts.map +1 -0
- package/dist/cli/vocabulary/status.js +280 -0
- package/dist/cli/vocabulary/status.js.map +1 -0
- package/dist/cli/vocabulary/sync.d.ts +7 -0
- package/dist/cli/vocabulary/sync.d.ts.map +1 -0
- package/dist/cli/vocabulary/sync.js +111 -0
- package/dist/cli/vocabulary/sync.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth/auth-client.d.ts +247 -0
- package/dist/lib/auth/auth-client.d.ts.map +1 -0
- package/dist/lib/auth/auth-client.js +305 -0
- package/dist/lib/auth/auth-client.js.map +1 -0
- package/dist/lib/auth/challenge.d.ts +39 -0
- package/dist/lib/auth/challenge.d.ts.map +1 -0
- package/dist/lib/auth/challenge.js +125 -0
- package/dist/lib/auth/challenge.js.map +1 -0
- package/dist/lib/auth/client-credentials-flow.d.ts +58 -0
- package/dist/lib/auth/client-credentials-flow.d.ts.map +1 -0
- package/dist/lib/auth/client-credentials-flow.js +118 -0
- package/dist/lib/auth/client-credentials-flow.js.map +1 -0
- package/dist/lib/auth/device-flow.d.ts +75 -0
- package/dist/lib/auth/device-flow.d.ts.map +1 -0
- package/dist/lib/auth/device-flow.js +177 -0
- package/dist/lib/auth/device-flow.js.map +1 -0
- package/dist/lib/auth/index.d.ts +14 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +34 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/auth/oauth-types.d.ts +69 -0
- package/dist/lib/auth/oauth-types.d.ts.map +1 -0
- package/dist/lib/auth/oauth-types.js +10 -0
- package/dist/lib/auth/oauth-types.js.map +1 -0
- package/dist/lib/auth/oauth-utils.d.ts +51 -0
- package/dist/lib/auth/oauth-utils.d.ts.map +1 -0
- package/dist/lib/auth/oauth-utils.js +110 -0
- package/dist/lib/auth/oauth-utils.js.map +1 -0
- package/dist/lib/auth/token-manager.d.ts +87 -0
- package/dist/lib/auth/token-manager.d.ts.map +1 -0
- package/dist/lib/auth/token-manager.js +139 -0
- package/dist/lib/auth/token-manager.js.map +1 -0
- package/dist/lib/auth/token-refresh.d.ts +63 -0
- package/dist/lib/auth/token-refresh.d.ts.map +1 -0
- package/dist/lib/auth/token-refresh.js +141 -0
- package/dist/lib/auth/token-refresh.js.map +1 -0
- package/dist/lib/config.d.ts +286 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +537 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/job-stream.d.ts +53 -0
- package/dist/lib/job-stream.d.ts.map +1 -0
- package/dist/lib/job-stream.js +153 -0
- package/dist/lib/job-stream.js.map +1 -0
- package/dist/lib/mcp-allowlist.d.ts +101 -0
- package/dist/lib/mcp-allowlist.d.ts.map +1 -0
- package/dist/lib/mcp-allowlist.js +340 -0
- package/dist/lib/mcp-allowlist.js.map +1 -0
- package/dist/lib/table-example.d.ts +7 -0
- package/dist/lib/table-example.d.ts.map +1 -0
- package/dist/lib/table-example.js +105 -0
- package/dist/lib/table-example.js.map +1 -0
- package/dist/lib/table.d.ts +95 -0
- package/dist/lib/table.d.ts.map +1 -0
- package/dist/lib/table.js +263 -0
- package/dist/lib/table.js.map +1 -0
- package/dist/lib/terminal-images.d.ts +66 -0
- package/dist/lib/terminal-images.d.ts.map +1 -0
- package/dist/lib/terminal-images.js +268 -0
- package/dist/lib/terminal-images.js.map +1 -0
- package/dist/mcp/formatters.d.ts +100 -0
- package/dist/mcp/formatters.d.ts.map +1 -0
- package/dist/mcp/formatters.js +1411 -0
- package/dist/mcp/formatters.js.map +1 -0
- package/dist/mcp-server.d.ts +9 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +1810 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/types/index.d.ts +742 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +13 -0
- package/dist/version.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* kg oauth - OAuth client management commands (ADR-054)
|
|
4
|
+
*
|
|
5
|
+
* Manage personal OAuth clients for CLI, MCP, scripts, etc.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.oauthCommand = void 0;
|
|
12
|
+
exports.registerOAuthCommand = registerOAuthCommand;
|
|
13
|
+
const commander_1 = require("commander");
|
|
14
|
+
const config_js_1 = require("../lib/config.js");
|
|
15
|
+
const auth_client_js_1 = require("../lib/auth/auth-client.js");
|
|
16
|
+
const table_js_1 = require("../lib/table.js");
|
|
17
|
+
const axios_1 = __importDefault(require("axios"));
|
|
18
|
+
const help_formatter_js_1 = require("./help-formatter.js");
|
|
19
|
+
/**
|
|
20
|
+
* Require authentication and return OAuth access token
|
|
21
|
+
*/
|
|
22
|
+
async function requireAuth() {
|
|
23
|
+
const config = (0, config_js_1.getConfig)();
|
|
24
|
+
if (!config.isAuthenticated()) {
|
|
25
|
+
console.error('\x1b[31mā Authentication required\x1b[0m');
|
|
26
|
+
console.error(' Please login first: kg login');
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
const apiUrl = config.getApiUrl();
|
|
30
|
+
const authClient = new auth_client_js_1.AuthClient(apiUrl);
|
|
31
|
+
// Get OAuth client credentials (ADR-054)
|
|
32
|
+
const oauthCreds = config.getOAuthCredentials();
|
|
33
|
+
if (!oauthCreds) {
|
|
34
|
+
console.error('\x1b[31mā No OAuth credentials found. Please login: kg login\x1b[0m\n');
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
// Get fresh access token using client credentials grant
|
|
38
|
+
const tokenResponse = await authClient.getOAuthToken({
|
|
39
|
+
grant_type: 'client_credentials',
|
|
40
|
+
client_id: oauthCreds.client_id,
|
|
41
|
+
client_secret: oauthCreds.client_secret,
|
|
42
|
+
scope: oauthCreds.scopes.join(' ')
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
token: tokenResponse.access_token,
|
|
46
|
+
authClient,
|
|
47
|
+
username: oauthCreds.username || 'unknown'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* List personal OAuth clients
|
|
52
|
+
*/
|
|
53
|
+
async function listClientsCommand() {
|
|
54
|
+
try {
|
|
55
|
+
const { token } = await requireAuth();
|
|
56
|
+
const config = (0, config_js_1.getConfig)();
|
|
57
|
+
const apiUrl = config.getApiUrl();
|
|
58
|
+
// Call API to list personal OAuth clients
|
|
59
|
+
const response = await axios_1.default.get(`${apiUrl}/auth/oauth/clients/personal`, {
|
|
60
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
61
|
+
});
|
|
62
|
+
const { clients, total } = response.data;
|
|
63
|
+
if (total === 0) {
|
|
64
|
+
console.log('\n\x1b[33mā ļø No OAuth clients found\x1b[0m');
|
|
65
|
+
console.log(' Create one with: kg login\n');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
// Display as table
|
|
69
|
+
const table = new table_js_1.Table({
|
|
70
|
+
columns: [
|
|
71
|
+
{ header: 'Client ID', field: 'client_id', type: 'value', width: 'auto' },
|
|
72
|
+
{ header: 'Name', field: 'client_name', type: 'value', width: 'auto' },
|
|
73
|
+
{ header: 'Scopes', field: 'scopes', type: 'value', width: 'auto' },
|
|
74
|
+
{ header: 'Created', field: 'created_at', type: 'timestamp', width: 'auto' },
|
|
75
|
+
{ header: 'Status', field: 'is_active', type: 'text', width: 'auto',
|
|
76
|
+
customFormat: (val) => val ? '\x1b[32mā Active\x1b[0m' : '\x1b[31mā Inactive\x1b[0m'
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
});
|
|
80
|
+
const tableData = clients.map((client) => ({
|
|
81
|
+
...client,
|
|
82
|
+
scopes: client.scopes.join(', ')
|
|
83
|
+
}));
|
|
84
|
+
console.log('');
|
|
85
|
+
table.print(tableData);
|
|
86
|
+
console.log('');
|
|
87
|
+
console.log(`\x1b[2mShowing ${total} client(s)\x1b[0m`);
|
|
88
|
+
console.log('');
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error(`\n\x1b[31mā Error: ${error.message}\x1b[0m\n`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Write FUSE config file to XDG path
|
|
97
|
+
*/
|
|
98
|
+
function writeFuseConfig(clientId, clientSecret, apiUrl) {
|
|
99
|
+
const fs = require('fs');
|
|
100
|
+
const path = require('path');
|
|
101
|
+
const os = require('os');
|
|
102
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config');
|
|
103
|
+
const fuseConfigDir = path.join(xdgConfig, 'kg-fuse');
|
|
104
|
+
const fuseConfigPath = path.join(fuseConfigDir, 'config.toml');
|
|
105
|
+
// Create directory if needed
|
|
106
|
+
if (!fs.existsSync(fuseConfigDir)) {
|
|
107
|
+
fs.mkdirSync(fuseConfigDir, { recursive: true });
|
|
108
|
+
}
|
|
109
|
+
// Write TOML config
|
|
110
|
+
const content = `# kg-fuse configuration
|
|
111
|
+
# Generated by: kg oauth create --for fuse
|
|
112
|
+
|
|
113
|
+
[auth]
|
|
114
|
+
client_id = "${clientId}"
|
|
115
|
+
client_secret = "${clientSecret}"
|
|
116
|
+
|
|
117
|
+
[api]
|
|
118
|
+
url = "${apiUrl}"
|
|
119
|
+
`;
|
|
120
|
+
fs.writeFileSync(fuseConfigPath, content, 'utf-8');
|
|
121
|
+
return fuseConfigPath;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create OAuth client (generic - for MCP, FUSE, scripts, etc.)
|
|
125
|
+
*/
|
|
126
|
+
async function createClientCommand(options) {
|
|
127
|
+
try {
|
|
128
|
+
const { token, username } = await requireAuth();
|
|
129
|
+
const config = (0, config_js_1.getConfig)();
|
|
130
|
+
const apiUrl = config.getApiUrl();
|
|
131
|
+
// Determine client name and target
|
|
132
|
+
const target = options.for || 'generic';
|
|
133
|
+
let clientName;
|
|
134
|
+
switch (target) {
|
|
135
|
+
case 'mcp':
|
|
136
|
+
clientName = options.name || `kg MCP Server (${username})`;
|
|
137
|
+
break;
|
|
138
|
+
case 'fuse':
|
|
139
|
+
clientName = options.name || `kg-fuse (${username})`;
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
clientName = options.name || `kg client (${username})`;
|
|
143
|
+
}
|
|
144
|
+
console.log(`\nš Creating OAuth client${target !== 'generic' ? ` for ${target}` : ''}...\n`);
|
|
145
|
+
// Create OAuth client
|
|
146
|
+
const formData = new URLSearchParams();
|
|
147
|
+
formData.append('client_name', clientName);
|
|
148
|
+
formData.append('scope', 'read:* write:*');
|
|
149
|
+
const response = await axios_1.default.post(`${apiUrl}/auth/oauth/clients/personal/new`, formData, {
|
|
150
|
+
headers: {
|
|
151
|
+
'Authorization': `Bearer ${token}`,
|
|
152
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
const client = response.data;
|
|
156
|
+
console.log('\x1b[32mā
OAuth client created successfully!\x1b[0m\n');
|
|
157
|
+
// Always show plain credentials first
|
|
158
|
+
console.log('ā'.repeat(60));
|
|
159
|
+
console.log('\x1b[1mCREDENTIALS\x1b[0m');
|
|
160
|
+
console.log('ā'.repeat(60));
|
|
161
|
+
console.log(` Client ID: ${client.client_id}`);
|
|
162
|
+
console.log(` Client Secret: ${client.client_secret}`);
|
|
163
|
+
console.log(` API URL: ${apiUrl}`);
|
|
164
|
+
console.log('ā'.repeat(60));
|
|
165
|
+
console.log('');
|
|
166
|
+
// Target-specific helpers
|
|
167
|
+
if (target === 'mcp') {
|
|
168
|
+
console.log('\x1b[1mCLAUDE DESKTOP CONFIG\x1b[0m');
|
|
169
|
+
console.log('ā'.repeat(60));
|
|
170
|
+
console.log('');
|
|
171
|
+
console.log('Add this to your Claude Desktop config:');
|
|
172
|
+
console.log('');
|
|
173
|
+
const mcpServerPath = process.env.HOME ? `${process.env.HOME}/.local/bin/kg-mcp-server` : '/home/user/.local/bin/kg-mcp-server';
|
|
174
|
+
console.log(' "knowledge-graph": {');
|
|
175
|
+
console.log(` "command": "${mcpServerPath}",`);
|
|
176
|
+
console.log(' "env": {');
|
|
177
|
+
console.log(` "KG_OAUTH_CLIENT_ID": "${client.client_id}",`);
|
|
178
|
+
console.log(` "KG_OAUTH_CLIENT_SECRET": "${client.client_secret}",`);
|
|
179
|
+
console.log(` "KG_API_URL": "${apiUrl}"`);
|
|
180
|
+
console.log(' }');
|
|
181
|
+
console.log(' }');
|
|
182
|
+
console.log('');
|
|
183
|
+
console.log('\x1b[2mOr add using claude CLI:\x1b[0m');
|
|
184
|
+
console.log('');
|
|
185
|
+
console.log(` claude mcp add knowledge-graph ${mcpServerPath} \\`);
|
|
186
|
+
console.log(` --env KG_OAUTH_CLIENT_ID=${client.client_id} \\`);
|
|
187
|
+
console.log(` --env KG_OAUTH_CLIENT_SECRET=${client.client_secret} \\`);
|
|
188
|
+
console.log(` --env KG_API_URL=${apiUrl} \\`);
|
|
189
|
+
console.log(` -s local`);
|
|
190
|
+
console.log('');
|
|
191
|
+
}
|
|
192
|
+
else if (target === 'fuse') {
|
|
193
|
+
// Write FUSE config automatically
|
|
194
|
+
const configPath = writeFuseConfig(client.client_id, client.client_secret, apiUrl);
|
|
195
|
+
console.log('\x1b[1mFUSE CONFIG\x1b[0m');
|
|
196
|
+
console.log('ā'.repeat(60));
|
|
197
|
+
console.log(` Config written to: ${configPath}`);
|
|
198
|
+
console.log('');
|
|
199
|
+
console.log(' Mount with:');
|
|
200
|
+
console.log(' kg-fuse /mnt/knowledge');
|
|
201
|
+
console.log('');
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// Generic usage
|
|
205
|
+
console.log('\x1b[1mUSAGE\x1b[0m');
|
|
206
|
+
console.log('ā'.repeat(60));
|
|
207
|
+
console.log(' Environment variables:');
|
|
208
|
+
console.log(` export KG_OAUTH_CLIENT_ID="${client.client_id}"`);
|
|
209
|
+
console.log(` export KG_OAUTH_CLIENT_SECRET="${client.client_secret}"`);
|
|
210
|
+
console.log(` export KG_API_URL="${apiUrl}"`);
|
|
211
|
+
console.log('');
|
|
212
|
+
}
|
|
213
|
+
console.log('\x1b[33mā ļø IMPORTANT:\x1b[0m');
|
|
214
|
+
console.log(' ⢠Keep these credentials secure!');
|
|
215
|
+
console.log(' ⢠Client secret is shown only once');
|
|
216
|
+
console.log(' ⢠To revoke: \x1b[36mkg oauth revoke ' + client.client_id + '\x1b[0m');
|
|
217
|
+
console.log('');
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
console.error(`\n\x1b[31mā Error: ${error.response?.data?.detail || error.message}\x1b[0m\n`);
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Revoke OAuth client
|
|
226
|
+
*/
|
|
227
|
+
async function revokeClientCommand(clientId, options) {
|
|
228
|
+
try {
|
|
229
|
+
const { token, authClient } = await requireAuth();
|
|
230
|
+
const config = (0, config_js_1.getConfig)();
|
|
231
|
+
const currentClient = config.getOAuthCredentials();
|
|
232
|
+
// Check if user is trying to revoke their current CLI client
|
|
233
|
+
if (currentClient && currentClient.client_id === clientId) {
|
|
234
|
+
if (!options.force) {
|
|
235
|
+
console.log('\n\x1b[33mā ļø Warning: This is your current CLI OAuth client\x1b[0m');
|
|
236
|
+
console.log(` Client ID: ${clientId}`);
|
|
237
|
+
console.log(' Revoking this will log you out.');
|
|
238
|
+
console.log('');
|
|
239
|
+
console.log(' To proceed, use: \x1b[36mkg oauth revoke ' + clientId + ' --force\x1b[0m');
|
|
240
|
+
console.log(' Or use: \x1b[36mkg logout\x1b[0m\n');
|
|
241
|
+
process.exit(0);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
console.log(`\nšļø Revoking OAuth client ${clientId}...\n`);
|
|
245
|
+
// Delete the OAuth client
|
|
246
|
+
await authClient.deletePersonalOAuthClient(token, clientId);
|
|
247
|
+
console.log('\x1b[32mā
OAuth client revoked successfully!\x1b[0m\n');
|
|
248
|
+
// If they revoked their current client, clear config
|
|
249
|
+
if (currentClient && currentClient.client_id === clientId) {
|
|
250
|
+
config.delete('auth.oauth_client_id');
|
|
251
|
+
config.delete('auth.oauth_client_secret');
|
|
252
|
+
config.delete('auth.oauth_client_name');
|
|
253
|
+
config.delete('auth.oauth_scopes');
|
|
254
|
+
config.delete('auth.oauth_created_at');
|
|
255
|
+
console.log('\x1b[33mā ļø You have been logged out\x1b[0m');
|
|
256
|
+
console.log(' To login again: \x1b[36mkg login\x1b[0m\n');
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
console.error(`\n\x1b[31mā Error: ${error.response?.data?.detail || error.message}\x1b[0m\n`);
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* OAuth command group object (for documentation generation)
|
|
266
|
+
*/
|
|
267
|
+
exports.oauthCommand = (0, help_formatter_js_1.setCommandHelp)(new commander_1.Command('oauth'), 'Manage OAuth clients', 'Manage OAuth clients (list, create for MCP, revoke)');
|
|
268
|
+
exports.oauthCommand
|
|
269
|
+
.command('clients')
|
|
270
|
+
.alias('list')
|
|
271
|
+
.description('List your personal OAuth clients')
|
|
272
|
+
.action(listClientsCommand);
|
|
273
|
+
exports.oauthCommand
|
|
274
|
+
.command('create')
|
|
275
|
+
.description('Create OAuth client for external tools (MCP, FUSE, scripts)')
|
|
276
|
+
.option('--name <name>', 'Custom client name')
|
|
277
|
+
.option('--for <target>', 'Target: mcp, fuse, or generic (shows appropriate setup instructions)')
|
|
278
|
+
.action(createClientCommand);
|
|
279
|
+
// Keep create-mcp as alias for backwards compatibility
|
|
280
|
+
exports.oauthCommand
|
|
281
|
+
.command('create-mcp')
|
|
282
|
+
.description('Create OAuth client for MCP server (alias for: create --for mcp)')
|
|
283
|
+
.option('--name <name>', 'Custom client name')
|
|
284
|
+
.action((options) => createClientCommand({ ...options, for: 'mcp' }));
|
|
285
|
+
exports.oauthCommand
|
|
286
|
+
.command('revoke <client-id>')
|
|
287
|
+
.description('Revoke an OAuth client')
|
|
288
|
+
.option('--force', 'Force revocation even if it\'s your current CLI client')
|
|
289
|
+
.action(revokeClientCommand);
|
|
290
|
+
/**
|
|
291
|
+
* Register oauth command group
|
|
292
|
+
*/
|
|
293
|
+
function registerOAuthCommand(program) {
|
|
294
|
+
program.addCommand(exports.oauthCommand);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/cli/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology.d.ts","sourceRoot":"","sources":["../../src/cli/ontology.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,eAAe,SA+MzB,CAAC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ontology Management Commands
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ontologyCommand = void 0;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const client_1 = require("../api/client");
|
|
42
|
+
const colors = __importStar(require("./colors"));
|
|
43
|
+
const colors_1 = require("./colors");
|
|
44
|
+
const table_1 = require("../lib/table");
|
|
45
|
+
const help_formatter_1 = require("./help-formatter");
|
|
46
|
+
exports.ontologyCommand = (0, help_formatter_1.setCommandHelp)(new commander_1.Command('ontology'), 'Manage ontologies (knowledge domains)', 'Manage ontologies (knowledge domains). Ontologies are named collections that organize concepts into knowledge domains. Each ontology groups related documents and concepts together, making it easier to organize and query knowledge by topic or project.')
|
|
47
|
+
.alias('onto') // Short alias
|
|
48
|
+
.showHelpAfterError('(add --help for additional information)')
|
|
49
|
+
.showSuggestionAfterError()
|
|
50
|
+
.addCommand(new commander_1.Command('list')
|
|
51
|
+
.description('List all ontologies in the knowledge graph. Shows a table with ontology name, file count, chunk count, and concept count. Use this to get a bird\'s-eye view of all knowledge domains, verify ingestion results, and understand how knowledge is distributed.')
|
|
52
|
+
.action(async () => {
|
|
53
|
+
try {
|
|
54
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
55
|
+
const result = await client.listOntologies();
|
|
56
|
+
if (result.count === 0) {
|
|
57
|
+
console.log(colors.status.warning('\nā No ontologies found'));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
console.log('\n' + colors.ui.title('š Ontologies in Knowledge Graph'));
|
|
61
|
+
// Use Table system for consistent formatting
|
|
62
|
+
const table = new table_1.Table({
|
|
63
|
+
columns: [
|
|
64
|
+
{
|
|
65
|
+
header: 'Ontology',
|
|
66
|
+
field: 'ontology',
|
|
67
|
+
type: 'heading',
|
|
68
|
+
width: 'flex',
|
|
69
|
+
priority: 3
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
header: 'Files',
|
|
73
|
+
field: 'file_count',
|
|
74
|
+
type: 'count',
|
|
75
|
+
width: 10,
|
|
76
|
+
align: 'right'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
header: 'Chunks',
|
|
80
|
+
field: 'source_count',
|
|
81
|
+
type: 'count',
|
|
82
|
+
width: 10,
|
|
83
|
+
align: 'right'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
header: 'Concepts',
|
|
87
|
+
field: 'concept_count',
|
|
88
|
+
type: 'count',
|
|
89
|
+
width: 12,
|
|
90
|
+
align: 'right'
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
});
|
|
94
|
+
table.print(result.ontologies);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error(colors.status.error('ā Failed to list ontologies'));
|
|
98
|
+
console.error(colors.status.error(error.response?.data?.detail || error.message));
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
}))
|
|
102
|
+
.addCommand(new commander_1.Command('info')
|
|
103
|
+
.description('Get detailed information about a specific ontology. Shows statistics (files, chunks, concepts, evidence, relationships) and lists all source files. Use this to understand ontology composition, verify expected files are present, and troubleshoot ingestion issues.')
|
|
104
|
+
.showHelpAfterError()
|
|
105
|
+
.argument('<name>', 'Ontology name')
|
|
106
|
+
.action(async (name) => {
|
|
107
|
+
try {
|
|
108
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
109
|
+
const info = await client.getOntologyInfo(name);
|
|
110
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
111
|
+
console.log(colors.ui.title(`š Ontology: ${name}`));
|
|
112
|
+
console.log((0, colors_1.separator)());
|
|
113
|
+
console.log('\n' + colors.stats.section('Statistics'));
|
|
114
|
+
console.log(` ${colors.stats.label('Files:')} ${(0, colors_1.coloredCount)(info.statistics.file_count)}`);
|
|
115
|
+
console.log(` ${colors.stats.label('Chunks:')} ${(0, colors_1.coloredCount)(info.statistics.source_count)}`);
|
|
116
|
+
console.log(` ${colors.stats.label('Concepts:')} ${(0, colors_1.coloredCount)(info.statistics.concept_count)}`);
|
|
117
|
+
console.log(` ${colors.stats.label('Evidence:')} ${(0, colors_1.coloredCount)(info.statistics.instance_count)}`);
|
|
118
|
+
console.log(` ${colors.stats.label('Relationships:')} ${(0, colors_1.coloredCount)(info.statistics.relationship_count)}`);
|
|
119
|
+
if (info.files.length > 0) {
|
|
120
|
+
console.log('\n' + colors.ui.header('Files'));
|
|
121
|
+
console.log((0, colors_1.separator)(80, 'ā'));
|
|
122
|
+
info.files.forEach(file => {
|
|
123
|
+
console.log(` ${colors.ui.bullet('ā')} ${colors.evidence.document(file)}`);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error(colors.status.error('ā Failed to get ontology info'));
|
|
130
|
+
console.error(colors.status.error(error.response?.data?.detail || error.message));
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
}))
|
|
134
|
+
.addCommand(new commander_1.Command('files')
|
|
135
|
+
.description('List files in a specific ontology with per-file statistics (chunks and concepts). Shows which files contributed most concepts and helps identify files that may need re-ingestion. Original file paths are preserved, though temporary paths may appear for text-based ingestion.')
|
|
136
|
+
.showHelpAfterError()
|
|
137
|
+
.argument('<name>', 'Ontology name')
|
|
138
|
+
.action(async (name) => {
|
|
139
|
+
try {
|
|
140
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
141
|
+
const result = await client.getOntologyFiles(name);
|
|
142
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
143
|
+
console.log(colors.ui.title(`š Files in: ${name}`));
|
|
144
|
+
console.log((0, colors_1.separator)());
|
|
145
|
+
console.log(colors.status.success(`\nā Found ${result.count} files:\n`));
|
|
146
|
+
result.files.forEach(file => {
|
|
147
|
+
console.log(colors.evidence.document(file.file_path));
|
|
148
|
+
console.log(` ${colors.ui.key('Chunks:')} ${(0, colors_1.coloredCount)(file.chunk_count)}`);
|
|
149
|
+
console.log(` ${colors.ui.key('Concepts:')} ${(0, colors_1.coloredCount)(file.concept_count)}`);
|
|
150
|
+
console.log();
|
|
151
|
+
});
|
|
152
|
+
console.log((0, colors_1.separator)());
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
console.error(colors.status.error('ā Failed to get ontology files'));
|
|
156
|
+
console.error(colors.status.error(error.response?.data?.detail || error.message));
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
}))
|
|
160
|
+
.addCommand(new commander_1.Command('rename')
|
|
161
|
+
.description('Rename an ontology while preserving all its data (concepts, sources, relationships). This is a non-destructive operation useful for reorganization, archiving old ontologies, fixing typos, or improving clarity. Atomic transaction ensures all-or-nothing updates. Requires confirmation unless -y flag is used.')
|
|
162
|
+
.showHelpAfterError()
|
|
163
|
+
.argument('<old-name>', 'Current ontology name')
|
|
164
|
+
.argument('<new-name>', 'New ontology name')
|
|
165
|
+
.option('-y, --yes', 'Skip confirmation prompt')
|
|
166
|
+
.action(async (oldName, newName, options) => {
|
|
167
|
+
try {
|
|
168
|
+
if (!options.yes) {
|
|
169
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
170
|
+
console.log(colors.status.warning('ā ļø Rename Ontology'));
|
|
171
|
+
console.log((0, colors_1.separator)());
|
|
172
|
+
console.log(`\nRename: ${colors.concept.label(oldName)} ā ${colors.concept.label(newName)}`);
|
|
173
|
+
console.log(`This will update all Source nodes in the ontology.`);
|
|
174
|
+
console.log('\nUse ' + colors.ui.key('-y') + ' or ' + colors.ui.key('--yes') + ' flag to proceed\n');
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
178
|
+
const result = await client.renameOntology(oldName, newName);
|
|
179
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
180
|
+
console.log(colors.status.success(`ā Renamed ontology "${result.old_name}" ā "${result.new_name}"`));
|
|
181
|
+
console.log((0, colors_1.separator)());
|
|
182
|
+
console.log(` ${colors.ui.key('Sources updated:')} ${(0, colors_1.coloredCount)(result.sources_updated)}`);
|
|
183
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
console.error(colors.status.error('ā Failed to rename ontology'));
|
|
187
|
+
const detail = error.response?.data?.detail || error.message;
|
|
188
|
+
console.error(colors.status.error(detail));
|
|
189
|
+
// Provide helpful hints based on error
|
|
190
|
+
if (detail.includes('does not exist')) {
|
|
191
|
+
console.error(colors.status.dim('\n Hint: Use "kg ontology list" to see available ontologies'));
|
|
192
|
+
}
|
|
193
|
+
else if (detail.includes('already exists')) {
|
|
194
|
+
console.error(colors.status.dim('\n Hint: Choose a different name or delete the existing ontology first'));
|
|
195
|
+
}
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
}))
|
|
199
|
+
.addCommand(new commander_1.Command('delete')
|
|
200
|
+
.description('Delete an ontology and ALL its data (concepts, sources, evidence instances, relationships). This is a DESTRUCTIVE operation that CANNOT BE UNDONE. Use this to remove test data, delete old projects, or free up space. Requires --force flag for confirmation. Consider alternatives: rename to add "Archive" suffix, or export data first (future feature).')
|
|
201
|
+
.showHelpAfterError()
|
|
202
|
+
.argument('<name>', 'Ontology name')
|
|
203
|
+
.option('-f, --force', 'Skip confirmation and force deletion')
|
|
204
|
+
.action(async (name, options) => {
|
|
205
|
+
try {
|
|
206
|
+
if (!options.force) {
|
|
207
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
208
|
+
console.log(colors.status.warning('ā ļø WARNING: This action cannot be undone!'));
|
|
209
|
+
console.log((0, colors_1.separator)());
|
|
210
|
+
console.log(`\nThis will delete all data for ontology ${colors.concept.label(name)}`);
|
|
211
|
+
console.log('\nUse ' + colors.ui.key('--force') + ' flag to confirm deletion\n');
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
215
|
+
const result = await client.deleteOntology(name, true);
|
|
216
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
217
|
+
console.log(colors.status.success(`ā Deleted ontology "${result.ontology}"`));
|
|
218
|
+
console.log((0, colors_1.separator)());
|
|
219
|
+
console.log(` ${colors.ui.key('Sources deleted:')} ${(0, colors_1.coloredCount)(result.sources_deleted)}`);
|
|
220
|
+
if (result.orphaned_concepts_deleted > 0) {
|
|
221
|
+
console.log(` ${colors.ui.key('Orphaned concepts cleaned:')} ${(0, colors_1.coloredCount)(result.orphaned_concepts_deleted)}`);
|
|
222
|
+
}
|
|
223
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
console.error(colors.status.error('ā Failed to delete ontology'));
|
|
227
|
+
console.error(colors.status.error(error.response?.data?.detail || error.message));
|
|
228
|
+
process.exit(1);
|
|
229
|
+
}
|
|
230
|
+
}));
|
|
231
|
+
//# sourceMappingURL=ontology.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology.js","sourceRoot":"","sources":["../../src/cli/ontology.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polarity.d.ts","sourceRoot":"","sources":["../../src/cli/polarity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkRpC,eAAO,MAAM,eAAe,SAMC,CAAC"}
|