@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,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Vocabulary Sync Command
|
|
4
|
+
* Sync missing edge types from graph to vocabulary (ADR-077)
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.createSyncCommand = createSyncCommand;
|
|
41
|
+
const commander_1 = require("commander");
|
|
42
|
+
const client_1 = require("../../api/client");
|
|
43
|
+
const colors = __importStar(require("../colors"));
|
|
44
|
+
const colors_1 = require("../colors");
|
|
45
|
+
function createSyncCommand() {
|
|
46
|
+
return new commander_1.Command('sync')
|
|
47
|
+
.description('Sync missing edge types from graph to vocabulary (ADR-077). Discovers edge types used in the graph but not registered in vocabulary table/VocabType nodes. Use --dry-run first to preview, then --execute to sync.')
|
|
48
|
+
.option('--dry-run', 'Preview missing types without syncing (default)', true)
|
|
49
|
+
.option('--execute', 'Actually sync missing types to vocabulary', false)
|
|
50
|
+
.option('--json', 'Output as JSON for scripting')
|
|
51
|
+
.action(async (options) => {
|
|
52
|
+
try {
|
|
53
|
+
const client = (0, client_1.createClientFromEnv)();
|
|
54
|
+
const dryRun = !options.execute;
|
|
55
|
+
const result = await client.syncVocabulary(dryRun);
|
|
56
|
+
if (options.json) {
|
|
57
|
+
console.log(JSON.stringify(result, null, 2));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
61
|
+
console.log(colors.ui.title('🔄 Vocabulary Sync'));
|
|
62
|
+
console.log((0, colors_1.separator)());
|
|
63
|
+
// Stats
|
|
64
|
+
console.log(`\n${colors.stats.section('Graph Analysis')}`);
|
|
65
|
+
console.log(` ${colors.stats.label('Edge types in graph:')} ${(0, colors_1.coloredCount)(result.total_graph_types)}`);
|
|
66
|
+
console.log(` ${colors.stats.label('Types in vocabulary:')} ${(0, colors_1.coloredCount)(result.total_vocab_types)}`);
|
|
67
|
+
console.log(` ${colors.stats.label('Missing types:')} ${(0, colors_1.coloredCount)(result.missing.length)}`);
|
|
68
|
+
if (result.system_types.length > 0) {
|
|
69
|
+
console.log(` ${colors.stats.label('System types (skipped):')} ${colors.status.dim(result.system_types.join(', '))}`);
|
|
70
|
+
}
|
|
71
|
+
// Missing types
|
|
72
|
+
if (result.missing.length > 0) {
|
|
73
|
+
console.log(`\n${colors.stats.section('Missing Types')}`);
|
|
74
|
+
for (const type of result.missing) {
|
|
75
|
+
console.log(` ${colors.status.warning('→')} ${colors.concept.label(type)}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Synced types (if executed)
|
|
79
|
+
if (result.synced.length > 0) {
|
|
80
|
+
console.log(`\n${colors.stats.section('Synced Types')}`);
|
|
81
|
+
for (const type of result.synced) {
|
|
82
|
+
console.log(` ${colors.status.success('✓')} ${colors.concept.label(type)}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Failed types
|
|
86
|
+
if (result.failed.length > 0) {
|
|
87
|
+
console.log(`\n${colors.stats.section('Failed Types')}`);
|
|
88
|
+
for (const fail of result.failed) {
|
|
89
|
+
console.log(` ${colors.status.error('✗')} ${colors.concept.label(fail.type)}: ${fail.error}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.log('\n' + (0, colors_1.separator)());
|
|
93
|
+
if (dryRun) {
|
|
94
|
+
console.log(colors.status.dim(' Dry run mode - no changes made'));
|
|
95
|
+
if (result.missing.length > 0) {
|
|
96
|
+
console.log(colors.status.dim(' Run with --execute to sync missing types'));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
console.log(colors.status.success('✓ ' + result.message));
|
|
101
|
+
}
|
|
102
|
+
console.log((0, colors_1.separator)());
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.error(colors.status.error('✗ Failed to sync vocabulary'));
|
|
106
|
+
console.error(colors.status.error(error.response?.data?.detail || error.message));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/vocabulary/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Knowledge Graph CLI - Entry Point
|
|
5
|
+
*
|
|
6
|
+
* Main CLI tool for interacting with the knowledge graph API.
|
|
7
|
+
* For MCP server mode, use the separate kg-mcp-server executable.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const commander_1 = require("commander");
|
|
11
|
+
const commands_js_1 = require("./cli/commands.js");
|
|
12
|
+
// Run CLI
|
|
13
|
+
(0, commands_js_1.registerCommands)(commander_1.program).then(() => {
|
|
14
|
+
commander_1.program.parse();
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;AAEH,yCAAoC;AACpC,mDAAqD;AAErD,UAAU;AACV,IAAA,8BAAgB,EAAC,mBAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IAClC,mBAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for authentication endpoints.
|
|
5
|
+
* Wraps REST API calls to /auth/* endpoints.
|
|
6
|
+
*/
|
|
7
|
+
import { OAuthTokenResponse } from './oauth-types.js';
|
|
8
|
+
export interface LoginRequest {
|
|
9
|
+
username: string;
|
|
10
|
+
password: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LoginResponse {
|
|
13
|
+
access_token: string;
|
|
14
|
+
token_type: string;
|
|
15
|
+
expires_in: number;
|
|
16
|
+
user: {
|
|
17
|
+
id: number;
|
|
18
|
+
username: string;
|
|
19
|
+
role: string;
|
|
20
|
+
created_at: string;
|
|
21
|
+
last_login: string | null;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface UserCreateRequest {
|
|
26
|
+
username: string;
|
|
27
|
+
password: string;
|
|
28
|
+
role: 'read_only' | 'contributor' | 'curator' | 'admin';
|
|
29
|
+
}
|
|
30
|
+
export interface UserUpdateRequest {
|
|
31
|
+
role?: 'read_only' | 'contributor' | 'curator' | 'admin';
|
|
32
|
+
password?: string;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface UserResponse {
|
|
36
|
+
id: number;
|
|
37
|
+
username: string;
|
|
38
|
+
role: string;
|
|
39
|
+
created_at: string;
|
|
40
|
+
last_login: string | null;
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface UserListResponse {
|
|
44
|
+
users: UserResponse[];
|
|
45
|
+
total: number;
|
|
46
|
+
skip: number;
|
|
47
|
+
limit: number;
|
|
48
|
+
}
|
|
49
|
+
export interface APIKeyCreateRequest {
|
|
50
|
+
name: string;
|
|
51
|
+
scopes?: string[];
|
|
52
|
+
expires_at?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface APIKeyResponse {
|
|
55
|
+
id: number;
|
|
56
|
+
name: string;
|
|
57
|
+
key_prefix: string;
|
|
58
|
+
scopes: string[];
|
|
59
|
+
created_at: string;
|
|
60
|
+
last_used: string | null;
|
|
61
|
+
expires_at: string | null;
|
|
62
|
+
key?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface APIKeyListResponse {
|
|
65
|
+
api_keys: APIKeyResponse[];
|
|
66
|
+
count: number;
|
|
67
|
+
}
|
|
68
|
+
export interface OAuthClientCreateRequest {
|
|
69
|
+
username: string;
|
|
70
|
+
password: string;
|
|
71
|
+
client_name?: string;
|
|
72
|
+
scope?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface OAuthClientResponse {
|
|
75
|
+
client_id: string;
|
|
76
|
+
client_secret: string;
|
|
77
|
+
client_name: string;
|
|
78
|
+
client_type: string;
|
|
79
|
+
grant_types: string[];
|
|
80
|
+
scopes: string[];
|
|
81
|
+
created_at: string;
|
|
82
|
+
created_by: number;
|
|
83
|
+
}
|
|
84
|
+
export interface OAuthTokenRequest {
|
|
85
|
+
grant_type: 'client_credentials';
|
|
86
|
+
client_id: string;
|
|
87
|
+
client_secret: string;
|
|
88
|
+
scope?: string;
|
|
89
|
+
}
|
|
90
|
+
export declare class AuthClient {
|
|
91
|
+
private client;
|
|
92
|
+
constructor(baseUrl: string);
|
|
93
|
+
/**
|
|
94
|
+
* Login with username/password (OAuth2 password flow)
|
|
95
|
+
*
|
|
96
|
+
* @deprecated Use createPersonalOAuthClient() instead (ADR-054 unified OAuth)
|
|
97
|
+
* @param request Username and password
|
|
98
|
+
* @returns JWT token and user details
|
|
99
|
+
* @throws 401 if credentials invalid, 400 if validation fails
|
|
100
|
+
*/
|
|
101
|
+
login(request: LoginRequest): Promise<LoginResponse>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a personal OAuth client (ADR-054 - GitHub CLI-style authentication)
|
|
104
|
+
*
|
|
105
|
+
* This is the preferred authentication method for CLI tools.
|
|
106
|
+
* Flow:
|
|
107
|
+
* 1. User provides username + password
|
|
108
|
+
* 2. Server creates long-lived OAuth client credentials
|
|
109
|
+
* 3. Client stores client_id + client_secret
|
|
110
|
+
* 4. Future requests use client credentials grant
|
|
111
|
+
*
|
|
112
|
+
* @param request Username, password, and optional client name/scope
|
|
113
|
+
* @returns OAuth client credentials (client_secret shown only once!)
|
|
114
|
+
* @throws 401 if credentials invalid, 400 if validation fails
|
|
115
|
+
*/
|
|
116
|
+
createPersonalOAuthClient(request: OAuthClientCreateRequest): Promise<OAuthClientResponse>;
|
|
117
|
+
/**
|
|
118
|
+
* Get OAuth access token using client credentials grant (ADR-054)
|
|
119
|
+
*
|
|
120
|
+
* Use this after creating a personal OAuth client to get access tokens.
|
|
121
|
+
* Access tokens are short-lived and should be refreshed as needed.
|
|
122
|
+
*
|
|
123
|
+
* @param request Client credentials (client_id, client_secret)
|
|
124
|
+
* @returns OAuth access token
|
|
125
|
+
* @throws 401 if client credentials invalid
|
|
126
|
+
*/
|
|
127
|
+
getOAuthToken(request: OAuthTokenRequest): Promise<OAuthTokenResponse>;
|
|
128
|
+
/**
|
|
129
|
+
* Delete a personal OAuth client (ADR-054)
|
|
130
|
+
*
|
|
131
|
+
* Called by `kg logout` to revoke OAuth credentials.
|
|
132
|
+
* Requires authentication with a valid access token.
|
|
133
|
+
*
|
|
134
|
+
* @param token Access token for authentication
|
|
135
|
+
* @param clientId Client ID to delete
|
|
136
|
+
* @throws 401 if token invalid, 403 if not owner, 404 if client not found
|
|
137
|
+
*/
|
|
138
|
+
deletePersonalOAuthClient(token: string, clientId: string): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Register new user
|
|
141
|
+
*
|
|
142
|
+
* Note: In production, this endpoint may be restricted to admins.
|
|
143
|
+
* For now, it's public to allow initial user creation.
|
|
144
|
+
*
|
|
145
|
+
* @param request User creation details
|
|
146
|
+
* @returns Created user details
|
|
147
|
+
* @throws 400 if validation fails, 409 if username taken
|
|
148
|
+
*/
|
|
149
|
+
register(request: UserCreateRequest): Promise<UserResponse>;
|
|
150
|
+
/**
|
|
151
|
+
* Validate current token and get user profile
|
|
152
|
+
*
|
|
153
|
+
* @param token JWT access token
|
|
154
|
+
* @returns Current user details
|
|
155
|
+
* @throws 401 if token invalid/expired
|
|
156
|
+
*/
|
|
157
|
+
validateToken(token: string): Promise<UserResponse>;
|
|
158
|
+
/**
|
|
159
|
+
* Update current user profile
|
|
160
|
+
*
|
|
161
|
+
* @param token JWT access token
|
|
162
|
+
* @param updates Fields to update (username, password)
|
|
163
|
+
* @returns Updated user details
|
|
164
|
+
* @throws 401 if token invalid/expired, 400 if validation fails
|
|
165
|
+
*/
|
|
166
|
+
updateCurrentUser(token: string, updates: {
|
|
167
|
+
username?: string;
|
|
168
|
+
password?: string;
|
|
169
|
+
}): Promise<UserResponse>;
|
|
170
|
+
/**
|
|
171
|
+
* Create API key for current user
|
|
172
|
+
*
|
|
173
|
+
* @param token JWT access token
|
|
174
|
+
* @param request API key details
|
|
175
|
+
* @returns API key response (includes plaintext key, shown only once!)
|
|
176
|
+
* @throws 401 if token invalid/expired
|
|
177
|
+
*/
|
|
178
|
+
createAPIKey(token: string, request: APIKeyCreateRequest): Promise<APIKeyResponse>;
|
|
179
|
+
/**
|
|
180
|
+
* List API keys for current user
|
|
181
|
+
*
|
|
182
|
+
* @param token JWT access token
|
|
183
|
+
* @returns List of API keys
|
|
184
|
+
* @throws 401 if token invalid/expired
|
|
185
|
+
*/
|
|
186
|
+
listAPIKeys(token: string): Promise<APIKeyListResponse>;
|
|
187
|
+
/**
|
|
188
|
+
* Revoke API key
|
|
189
|
+
*
|
|
190
|
+
* @param token JWT access token
|
|
191
|
+
* @param keyId API key ID to revoke
|
|
192
|
+
* @throws 401 if token invalid/expired, 404 if key not found
|
|
193
|
+
*/
|
|
194
|
+
revokeAPIKey(token: string, keyId: number): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* List all users (admin only)
|
|
197
|
+
*
|
|
198
|
+
* @param token JWT access token (must be admin role)
|
|
199
|
+
* @param skip Number of users to skip (pagination)
|
|
200
|
+
* @param limit Maximum number of users to return
|
|
201
|
+
* @param role Filter by role
|
|
202
|
+
* @returns Paginated list of users
|
|
203
|
+
* @throws 401 if token invalid/expired, 403 if not admin
|
|
204
|
+
*/
|
|
205
|
+
listUsers(token: string, skip?: number, limit?: number, role?: string): Promise<UserListResponse>;
|
|
206
|
+
/**
|
|
207
|
+
* Get user by ID (admin only)
|
|
208
|
+
*
|
|
209
|
+
* @param token JWT access token (must be admin role)
|
|
210
|
+
* @param userId User ID
|
|
211
|
+
* @returns User details
|
|
212
|
+
* @throws 401 if token invalid/expired, 403 if not admin, 404 if user not found
|
|
213
|
+
*/
|
|
214
|
+
getUser(token: string, userId: number): Promise<UserResponse>;
|
|
215
|
+
/**
|
|
216
|
+
* Create user (admin only)
|
|
217
|
+
*
|
|
218
|
+
* Note: Uses /auth/register endpoint since there's no dedicated admin create endpoint.
|
|
219
|
+
* Admins can create users with any role.
|
|
220
|
+
*
|
|
221
|
+
* @param token JWT access token (must be admin role)
|
|
222
|
+
* @param request User creation details
|
|
223
|
+
* @returns Created user details
|
|
224
|
+
* @throws 401 if token invalid/expired, 403 if not admin, 400 if validation fails
|
|
225
|
+
*/
|
|
226
|
+
createUser(token: string, request: UserCreateRequest): Promise<UserResponse>;
|
|
227
|
+
/**
|
|
228
|
+
* Update user (admin only)
|
|
229
|
+
*
|
|
230
|
+
* @param token JWT access token (must be admin role)
|
|
231
|
+
* @param userId User ID to update
|
|
232
|
+
* @param request Fields to update
|
|
233
|
+
* @returns Updated user details
|
|
234
|
+
* @throws 401 if token invalid/expired, 403 if not admin, 404 if user not found
|
|
235
|
+
*/
|
|
236
|
+
updateUser(token: string, userId: number, request: UserUpdateRequest): Promise<UserResponse>;
|
|
237
|
+
/**
|
|
238
|
+
* Delete user (admin only, cannot delete self)
|
|
239
|
+
*
|
|
240
|
+
* @param token JWT access token (must be admin role)
|
|
241
|
+
* @param userId User ID to delete
|
|
242
|
+
* @throws 401 if token invalid/expired, 403 if not admin, 404 if user not found
|
|
243
|
+
* @throws 400 if trying to delete self
|
|
244
|
+
*/
|
|
245
|
+
deleteUser(token: string, userId: number): Promise<void>;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=auth-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/auth-client.ts"],"names":[],"mappings":"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"}
|