kontext-ai 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmrccls +0 -0
- package/README.md +292 -0
- package/backend_dev_plan.md +446 -0
- package/context/base/instructions.yaml +3 -0
- package/context/base/preferences.yaml +5 -0
- package/context/skills/coding.yaml +5 -0
- package/dist/bin/start.d.ts +2 -0
- package/dist/bin/start.d.ts.map +1 -0
- package/dist/bin/start.js +34 -0
- package/dist/bin/start.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 +258 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/database/config.d.ts +9 -0
- package/dist/database/config.d.ts.map +1 -0
- package/dist/database/config.js +35 -0
- package/dist/database/config.js.map +1 -0
- package/dist/database/contextFiles.d.ts +35 -0
- package/dist/database/contextFiles.d.ts.map +1 -0
- package/dist/database/contextFiles.js +95 -0
- package/dist/database/contextFiles.js.map +1 -0
- package/dist/database/index.d.ts +5 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +146 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/skills.d.ts +33 -0
- package/dist/database/skills.d.ts.map +1 -0
- package/dist/database/skills.js +89 -0
- package/dist/database/skills.js.map +1 -0
- package/dist/database/syncEvents.d.ts +28 -0
- package/dist/database/syncEvents.d.ts.map +1 -0
- package/dist/database/syncEvents.js +56 -0
- package/dist/database/syncEvents.js.map +1 -0
- package/dist/database/toolConfigs.d.ts +26 -0
- package/dist/database/toolConfigs.d.ts.map +1 -0
- package/dist/database/toolConfigs.js +77 -0
- package/dist/database/toolConfigs.js.map +1 -0
- package/dist/database/webhooks.d.ts +29 -0
- package/dist/database/webhooks.d.ts.map +1 -0
- package/dist/database/webhooks.js +89 -0
- package/dist/database/webhooks.js.map +1 -0
- package/dist/database.d.ts +8 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +28 -0
- package/dist/database.js.map +1 -0
- package/dist/graphql/resolvers.d.ts +236 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +280 -0
- package/dist/graphql/resolvers.js.map +1 -0
- package/dist/graphql/schema.d.ts +2 -0
- package/dist/graphql/schema.d.ts.map +1 -0
- package/dist/graphql/schema.js +215 -0
- package/dist/graphql/schema.js.map +1 -0
- package/dist/graphql/server.d.ts +2 -0
- package/dist/graphql/server.d.ts.map +1 -0
- package/dist/graphql/server.js +26 -0
- package/dist/graphql/server.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.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 +300 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/sync/engine.d.ts +25 -0
- package/dist/sync/engine.d.ts.map +1 -0
- package/dist/sync/engine.js +217 -0
- package/dist/sync/engine.js.map +1 -0
- package/dist/types/index.d.ts +57 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/webhooks/server.d.ts +4 -0
- package/dist/webhooks/server.d.ts.map +1 -0
- package/dist/webhooks/server.js +157 -0
- package/dist/webhooks/server.js.map +1 -0
- package/frontend_plan.md +576 -0
- package/kontEXT.db +0 -0
- package/kontEXT.db-shm +0 -0
- package/kontEXT.db-wal +0 -0
- package/kontext.exe +0 -0
- package/package.json +60 -0
- package/src/bin/start.ts +41 -0
- package/src/cli/index.ts +310 -0
- package/src/database/config.ts +38 -0
- package/src/database/contextFiles.ts +127 -0
- package/src/database/index.ts +114 -0
- package/src/database/skills.ts +129 -0
- package/src/database/syncEvents.ts +89 -0
- package/src/database/toolConfigs.ts +101 -0
- package/src/database/webhooks.ts +117 -0
- package/src/graphql/resolvers.ts +357 -0
- package/src/graphql/schema.ts +211 -0
- package/src/graphql/server.ts +28 -0
- package/src/index.ts +8 -0
- package/src/mcp/server.ts +398 -0
- package/src/sync/engine.ts +231 -0
- package/src/types/index.ts +61 -0
- package/src/webhooks/server.ts +189 -0
- package/tsconfig.json +21 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const index_1 = require("../database/index");
|
|
5
|
+
const contextFiles_1 = require("../database/contextFiles");
|
|
6
|
+
const skills_1 = require("../database/skills");
|
|
7
|
+
const toolConfigs_1 = require("../database/toolConfigs");
|
|
8
|
+
const syncEvents_1 = require("../database/syncEvents");
|
|
9
|
+
(0, index_1.initializeDatabase)();
|
|
10
|
+
const command = process.argv[2];
|
|
11
|
+
const subcommand = process.argv[3];
|
|
12
|
+
async function main() {
|
|
13
|
+
switch (command) {
|
|
14
|
+
case 'context':
|
|
15
|
+
case 'c':
|
|
16
|
+
await handleContextCommand();
|
|
17
|
+
break;
|
|
18
|
+
case 'skill':
|
|
19
|
+
case 's':
|
|
20
|
+
await handleSkillCommand();
|
|
21
|
+
break;
|
|
22
|
+
case 'tool':
|
|
23
|
+
case 't':
|
|
24
|
+
await handleToolCommand();
|
|
25
|
+
break;
|
|
26
|
+
case 'log':
|
|
27
|
+
case 'l':
|
|
28
|
+
await handleLogCommand();
|
|
29
|
+
break;
|
|
30
|
+
case 'help':
|
|
31
|
+
case 'h':
|
|
32
|
+
showHelp();
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.log('KONTEXT CLI');
|
|
36
|
+
console.log('');
|
|
37
|
+
showHelp();
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function handleContextCommand() {
|
|
42
|
+
switch (subcommand) {
|
|
43
|
+
case 'list':
|
|
44
|
+
case 'ls':
|
|
45
|
+
const typeFilter = process.argv[4];
|
|
46
|
+
const files = typeFilter ? (0, contextFiles_1.getContextFilesByType)(typeFilter) : (0, contextFiles_1.getAllContextFiles)();
|
|
47
|
+
console.log(JSON.stringify(files, null, 2));
|
|
48
|
+
break;
|
|
49
|
+
case 'get':
|
|
50
|
+
const id = process.argv[4];
|
|
51
|
+
if (!id) {
|
|
52
|
+
console.error('Error: Context file ID required');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const file = (0, contextFiles_1.getContextFileById)(id);
|
|
56
|
+
if (!file) {
|
|
57
|
+
console.error('Error: Context file not found');
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
console.log(JSON.stringify(file, null, 2));
|
|
61
|
+
break;
|
|
62
|
+
case 'create':
|
|
63
|
+
case 'add':
|
|
64
|
+
await createNewContextFile();
|
|
65
|
+
break;
|
|
66
|
+
case 'update':
|
|
67
|
+
case 'edit':
|
|
68
|
+
await updateExistingContextFile();
|
|
69
|
+
break;
|
|
70
|
+
case 'delete':
|
|
71
|
+
case 'rm':
|
|
72
|
+
const deleteId = process.argv[4];
|
|
73
|
+
if (!deleteId) {
|
|
74
|
+
console.error('Error: Context file ID required');
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const result = (0, contextFiles_1.deleteContextFile)(deleteId);
|
|
78
|
+
console.log(JSON.stringify({ success: result }));
|
|
79
|
+
break;
|
|
80
|
+
default:
|
|
81
|
+
console.log('Context commands: list, get, create, update, delete');
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function createNewContextFile() {
|
|
86
|
+
const name = process.argv[4];
|
|
87
|
+
const type = process.argv[5];
|
|
88
|
+
const content = process.argv[6] || '';
|
|
89
|
+
const format = process.argv[7] || 'yaml';
|
|
90
|
+
if (!name || !type) {
|
|
91
|
+
console.error('Error: Name and type required');
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
const validTypes = ['base', 'skill', 'preference', 'tool_override'];
|
|
95
|
+
if (!validTypes.includes(type)) {
|
|
96
|
+
console.error(`Error: Type must be one of: ${validTypes.join(', ')}`);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
}
|
|
99
|
+
const file = (0, contextFiles_1.createContextFile)({
|
|
100
|
+
name,
|
|
101
|
+
type,
|
|
102
|
+
content,
|
|
103
|
+
format,
|
|
104
|
+
});
|
|
105
|
+
console.log(JSON.stringify(file, null, 2));
|
|
106
|
+
}
|
|
107
|
+
async function updateExistingContextFile() {
|
|
108
|
+
const id = process.argv[4];
|
|
109
|
+
const newContent = process.argv[5];
|
|
110
|
+
if (!id) {
|
|
111
|
+
console.error('Error: Context file ID required');
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
const file = (0, contextFiles_1.updateContextFile)(id, { content: newContent });
|
|
115
|
+
if (!file) {
|
|
116
|
+
console.error('Error: Context file not found');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
console.log(JSON.stringify(file, null, 2));
|
|
120
|
+
}
|
|
121
|
+
async function handleSkillCommand() {
|
|
122
|
+
switch (subcommand) {
|
|
123
|
+
case 'list':
|
|
124
|
+
case 'ls':
|
|
125
|
+
const skills = (0, skills_1.getAllSkills)();
|
|
126
|
+
console.log(JSON.stringify(skills, null, 2));
|
|
127
|
+
break;
|
|
128
|
+
case 'get':
|
|
129
|
+
const id = process.argv[4];
|
|
130
|
+
if (!id) {
|
|
131
|
+
console.error('Error: Skill ID required');
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
const skill = (0, skills_1.getSkillById)(id);
|
|
135
|
+
if (!skill) {
|
|
136
|
+
console.error('Error: Skill not found');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
console.log(JSON.stringify(skill, null, 2));
|
|
140
|
+
break;
|
|
141
|
+
case 'create':
|
|
142
|
+
case 'add':
|
|
143
|
+
await createNewSkill();
|
|
144
|
+
break;
|
|
145
|
+
case 'update':
|
|
146
|
+
case 'edit':
|
|
147
|
+
await updateExistingSkill();
|
|
148
|
+
break;
|
|
149
|
+
case 'delete':
|
|
150
|
+
case 'rm':
|
|
151
|
+
const deleteId = process.argv[4];
|
|
152
|
+
if (!deleteId) {
|
|
153
|
+
console.error('Error: Skill ID required');
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
const result = (0, skills_1.deleteSkill)(deleteId);
|
|
157
|
+
console.log(JSON.stringify({ success: result }));
|
|
158
|
+
break;
|
|
159
|
+
default:
|
|
160
|
+
console.log('Skill commands: list, get, create, update, delete');
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async function createNewSkill() {
|
|
165
|
+
const name = process.argv[4];
|
|
166
|
+
const content = process.argv[5] || '';
|
|
167
|
+
const description = process.argv[6];
|
|
168
|
+
const category = process.argv[7] || 'general';
|
|
169
|
+
if (!name) {
|
|
170
|
+
console.error('Error: Name required');
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
const skill = (0, skills_1.createSkill)({
|
|
174
|
+
name,
|
|
175
|
+
content,
|
|
176
|
+
description,
|
|
177
|
+
category,
|
|
178
|
+
});
|
|
179
|
+
console.log(JSON.stringify(skill, null, 2));
|
|
180
|
+
}
|
|
181
|
+
async function updateExistingSkill() {
|
|
182
|
+
const id = process.argv[4];
|
|
183
|
+
const newContent = process.argv[5];
|
|
184
|
+
if (!id) {
|
|
185
|
+
console.error('Error: Skill ID required');
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
const skill = (0, skills_1.updateSkill)(id, { content: newContent });
|
|
189
|
+
if (!skill) {
|
|
190
|
+
console.error('Error: Skill not found');
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
console.log(JSON.stringify(skill, null, 2));
|
|
194
|
+
}
|
|
195
|
+
async function handleToolCommand() {
|
|
196
|
+
switch (subcommand) {
|
|
197
|
+
case 'list':
|
|
198
|
+
case 'ls':
|
|
199
|
+
const tools = (0, toolConfigs_1.getAllToolConfigs)();
|
|
200
|
+
console.log(JSON.stringify(tools, null, 2));
|
|
201
|
+
break;
|
|
202
|
+
case 'connected':
|
|
203
|
+
case 'active':
|
|
204
|
+
const connected = (0, toolConfigs_1.getConnectedTools)();
|
|
205
|
+
console.log(JSON.stringify(connected, null, 2));
|
|
206
|
+
break;
|
|
207
|
+
default:
|
|
208
|
+
console.log('Tool commands: list, connected');
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
async function handleLogCommand() {
|
|
213
|
+
const limit = parseInt(process.argv[4] || '10', 10);
|
|
214
|
+
const logs = (0, syncEvents_1.getRecentSyncEvents)(limit);
|
|
215
|
+
console.log(JSON.stringify(logs, null, 2));
|
|
216
|
+
}
|
|
217
|
+
function showHelp() {
|
|
218
|
+
console.log(`
|
|
219
|
+
KONTEXT CLI - Context synchronization for AI tools
|
|
220
|
+
|
|
221
|
+
Usage:
|
|
222
|
+
kontext <command> [subcommand] [options]
|
|
223
|
+
|
|
224
|
+
Commands:
|
|
225
|
+
context (c) Manage context files
|
|
226
|
+
list [type] List all context files or filter by type
|
|
227
|
+
get <id> Get a specific context file
|
|
228
|
+
create <name> <type> <content> [format] Create a new context file
|
|
229
|
+
update <id> <content> Update a context file
|
|
230
|
+
delete <id> Delete a context file
|
|
231
|
+
|
|
232
|
+
skill (s) Manage skills
|
|
233
|
+
list List all skills
|
|
234
|
+
get <id> Get a specific skill
|
|
235
|
+
create <name> <content> [desc] [cat] Create a new skill
|
|
236
|
+
update <id> <content> Update a skill
|
|
237
|
+
delete <id> Delete a skill
|
|
238
|
+
|
|
239
|
+
tool (t) Manage connected tools
|
|
240
|
+
list List all tool configurations
|
|
241
|
+
connected List connected tools
|
|
242
|
+
|
|
243
|
+
log (l) View activity log
|
|
244
|
+
[limit] View recent events (default: 10)
|
|
245
|
+
|
|
246
|
+
help (h) Show this help message
|
|
247
|
+
|
|
248
|
+
Examples:
|
|
249
|
+
kontext c ls
|
|
250
|
+
kontext c create my-instructions base "# My Instructions" yaml
|
|
251
|
+
kontext c get abc123
|
|
252
|
+
kontext s ls
|
|
253
|
+
kontext t list
|
|
254
|
+
kontext l 20
|
|
255
|
+
`);
|
|
256
|
+
}
|
|
257
|
+
main().catch(console.error);
|
|
258
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ConfigRow {
|
|
2
|
+
key: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function getConfig(key: string): string | undefined;
|
|
6
|
+
export declare function setConfig(key: string, value: unknown): void;
|
|
7
|
+
export declare function getAllConfig(): Record<string, unknown>;
|
|
8
|
+
export declare function deleteConfig(key: string): boolean;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/database/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAI3D;AAED,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUtD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKjD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfig = getConfig;
|
|
4
|
+
exports.setConfig = setConfig;
|
|
5
|
+
exports.getAllConfig = getAllConfig;
|
|
6
|
+
exports.deleteConfig = deleteConfig;
|
|
7
|
+
const index_1 = require("./index");
|
|
8
|
+
function getConfig(key) {
|
|
9
|
+
const db = (0, index_1.getDatabase)();
|
|
10
|
+
const stmt = db.prepare('SELECT value FROM app_config WHERE key = ?');
|
|
11
|
+
const row = stmt.get(key);
|
|
12
|
+
return row ? JSON.parse(row.value) : undefined;
|
|
13
|
+
}
|
|
14
|
+
function setConfig(key, value) {
|
|
15
|
+
const db = (0, index_1.getDatabase)();
|
|
16
|
+
const stmt = db.prepare('INSERT OR REPLACE INTO app_config (key, value) VALUES (?, ?)');
|
|
17
|
+
stmt.run(key, JSON.stringify(value));
|
|
18
|
+
}
|
|
19
|
+
function getAllConfig() {
|
|
20
|
+
const db = (0, index_1.getDatabase)();
|
|
21
|
+
const stmt = db.prepare('SELECT key, value FROM app_config');
|
|
22
|
+
const rows = stmt.all();
|
|
23
|
+
const config = {};
|
|
24
|
+
for (const row of rows) {
|
|
25
|
+
config[row.key] = JSON.parse(row.value);
|
|
26
|
+
}
|
|
27
|
+
return config;
|
|
28
|
+
}
|
|
29
|
+
function deleteConfig(key) {
|
|
30
|
+
const db = (0, index_1.getDatabase)();
|
|
31
|
+
const stmt = db.prepare('DELETE FROM app_config WHERE key = ?');
|
|
32
|
+
const result = stmt.run(key);
|
|
33
|
+
return result.changes > 0;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/database/config.ts"],"names":[],"mappings":";;AAOA,8BAKC;AAED,8BAIC;AAED,oCAUC;AAED,oCAKC;AArCD,mCAAsC;AAOtC,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAA0B,CAAC;IACnD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW,EAAE,KAAc;IACnD,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;IACxF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAiB,CAAC;IAEvC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ContextFileRow {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
type: string;
|
|
5
|
+
tool: string | null;
|
|
6
|
+
content: string;
|
|
7
|
+
format: string;
|
|
8
|
+
version: number;
|
|
9
|
+
created_at: string;
|
|
10
|
+
updated_at: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateContextFileInput {
|
|
13
|
+
name: string;
|
|
14
|
+
type: 'base' | 'skill' | 'preference' | 'tool_override';
|
|
15
|
+
tool?: string;
|
|
16
|
+
content: string;
|
|
17
|
+
format: 'yaml' | 'json' | 'markdown';
|
|
18
|
+
}
|
|
19
|
+
export interface UpdateContextFileInput {
|
|
20
|
+
name?: string;
|
|
21
|
+
type?: 'base' | 'skill' | 'preference' | 'tool_override';
|
|
22
|
+
tool?: string;
|
|
23
|
+
content?: string;
|
|
24
|
+
format?: 'yaml' | 'json' | 'markdown';
|
|
25
|
+
}
|
|
26
|
+
export declare function createContextFile(input: CreateContextFileInput): ContextFileRow;
|
|
27
|
+
export declare function getContextFileById(id: string): ContextFileRow | undefined;
|
|
28
|
+
export declare function getContextFileByName(name: string): ContextFileRow | undefined;
|
|
29
|
+
export declare function getAllContextFiles(): ContextFileRow[];
|
|
30
|
+
export declare function getContextFilesByType(type: string): ContextFileRow[];
|
|
31
|
+
export declare function getContextFilesByTool(tool: string): ContextFileRow[];
|
|
32
|
+
export declare function updateContextFile(id: string, input: UpdateContextFileInput): ContextFileRow | undefined;
|
|
33
|
+
export declare function deleteContextFile(id: string): boolean;
|
|
34
|
+
export declare function searchContextFiles(query: string): ContextFileRow[];
|
|
35
|
+
//# sourceMappingURL=contextFiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextFiles.d.ts","sourceRoot":"","sources":["../../src/database/contextFiles.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACvC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,cAAc,CAa/E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAIzE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAI7E;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAIrD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAIpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAIpE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,cAAc,GAAG,SAAS,CAoCvG;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAKlE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createContextFile = createContextFile;
|
|
4
|
+
exports.getContextFileById = getContextFileById;
|
|
5
|
+
exports.getContextFileByName = getContextFileByName;
|
|
6
|
+
exports.getAllContextFiles = getAllContextFiles;
|
|
7
|
+
exports.getContextFilesByType = getContextFilesByType;
|
|
8
|
+
exports.getContextFilesByTool = getContextFilesByTool;
|
|
9
|
+
exports.updateContextFile = updateContextFile;
|
|
10
|
+
exports.deleteContextFile = deleteContextFile;
|
|
11
|
+
exports.searchContextFiles = searchContextFiles;
|
|
12
|
+
const uuid_1 = require("uuid");
|
|
13
|
+
const index_1 = require("./index");
|
|
14
|
+
function createContextFile(input) {
|
|
15
|
+
const db = (0, index_1.getDatabase)();
|
|
16
|
+
const id = (0, uuid_1.v4)();
|
|
17
|
+
const now = new Date().toISOString();
|
|
18
|
+
const stmt = db.prepare(`
|
|
19
|
+
INSERT INTO context_files (id, name, type, tool, content, format, version, created_at, updated_at)
|
|
20
|
+
VALUES (?, ?, ?, ?, ?, ?, 1, ?, ?)
|
|
21
|
+
`);
|
|
22
|
+
stmt.run(id, input.name, input.type, input.tool || null, input.content, input.format, now, now);
|
|
23
|
+
return getContextFileById(id);
|
|
24
|
+
}
|
|
25
|
+
function getContextFileById(id) {
|
|
26
|
+
const db = (0, index_1.getDatabase)();
|
|
27
|
+
const stmt = db.prepare('SELECT * FROM context_files WHERE id = ?');
|
|
28
|
+
return stmt.get(id);
|
|
29
|
+
}
|
|
30
|
+
function getContextFileByName(name) {
|
|
31
|
+
const db = (0, index_1.getDatabase)();
|
|
32
|
+
const stmt = db.prepare('SELECT * FROM context_files WHERE name = ?');
|
|
33
|
+
return stmt.get(name);
|
|
34
|
+
}
|
|
35
|
+
function getAllContextFiles() {
|
|
36
|
+
const db = (0, index_1.getDatabase)();
|
|
37
|
+
const stmt = db.prepare('SELECT * FROM context_files ORDER BY updated_at DESC');
|
|
38
|
+
return stmt.all();
|
|
39
|
+
}
|
|
40
|
+
function getContextFilesByType(type) {
|
|
41
|
+
const db = (0, index_1.getDatabase)();
|
|
42
|
+
const stmt = db.prepare('SELECT * FROM context_files WHERE type = ? ORDER BY updated_at DESC');
|
|
43
|
+
return stmt.all(type);
|
|
44
|
+
}
|
|
45
|
+
function getContextFilesByTool(tool) {
|
|
46
|
+
const db = (0, index_1.getDatabase)();
|
|
47
|
+
const stmt = db.prepare('SELECT * FROM context_files WHERE tool = ? OR tool IS NULL ORDER BY updated_at DESC');
|
|
48
|
+
return stmt.all(tool);
|
|
49
|
+
}
|
|
50
|
+
function updateContextFile(id, input) {
|
|
51
|
+
const db = (0, index_1.getDatabase)();
|
|
52
|
+
const existing = getContextFileById(id);
|
|
53
|
+
if (!existing)
|
|
54
|
+
return undefined;
|
|
55
|
+
const now = new Date().toISOString();
|
|
56
|
+
const updates = ['version = version + 1', 'updated_at = ?'];
|
|
57
|
+
const params = [now];
|
|
58
|
+
if (input.name !== undefined) {
|
|
59
|
+
updates.push('name = ?');
|
|
60
|
+
params.push(input.name);
|
|
61
|
+
}
|
|
62
|
+
if (input.type !== undefined) {
|
|
63
|
+
updates.push('type = ?');
|
|
64
|
+
params.push(input.type);
|
|
65
|
+
}
|
|
66
|
+
if (input.tool !== undefined) {
|
|
67
|
+
updates.push('tool = ?');
|
|
68
|
+
params.push(input.tool);
|
|
69
|
+
}
|
|
70
|
+
if (input.content !== undefined) {
|
|
71
|
+
updates.push('content = ?');
|
|
72
|
+
params.push(input.content);
|
|
73
|
+
}
|
|
74
|
+
if (input.format !== undefined) {
|
|
75
|
+
updates.push('format = ?');
|
|
76
|
+
params.push(input.format);
|
|
77
|
+
}
|
|
78
|
+
params.push(id);
|
|
79
|
+
const stmt = db.prepare(`UPDATE context_files SET ${updates.join(', ')} WHERE id = ?`);
|
|
80
|
+
stmt.run(...params);
|
|
81
|
+
return getContextFileById(id);
|
|
82
|
+
}
|
|
83
|
+
function deleteContextFile(id) {
|
|
84
|
+
const db = (0, index_1.getDatabase)();
|
|
85
|
+
const stmt = db.prepare('DELETE FROM context_files WHERE id = ?');
|
|
86
|
+
const result = stmt.run(id);
|
|
87
|
+
return result.changes > 0;
|
|
88
|
+
}
|
|
89
|
+
function searchContextFiles(query) {
|
|
90
|
+
const db = (0, index_1.getDatabase)();
|
|
91
|
+
const stmt = db.prepare('SELECT * FROM context_files WHERE name LIKE ? OR content LIKE ? ORDER BY updated_at DESC');
|
|
92
|
+
const searchTerm = `%${query}%`;
|
|
93
|
+
return stmt.all(searchTerm, searchTerm);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=contextFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextFiles.js","sourceRoot":"","sources":["../../src/database/contextFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAMtC,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAgB/C;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAkFzC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getDatabase = getDatabase;
|
|
40
|
+
exports.initializeDatabase = initializeDatabase;
|
|
41
|
+
exports.closeDatabase = closeDatabase;
|
|
42
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
let db = null;
|
|
46
|
+
function getDatabase() {
|
|
47
|
+
if (db)
|
|
48
|
+
return db;
|
|
49
|
+
const scriptDir = path.dirname(__filename);
|
|
50
|
+
const projectRoot = path.resolve(scriptDir, '../..');
|
|
51
|
+
const dbPath = path.join(projectRoot, 'kontEXT.db');
|
|
52
|
+
const dbDir = path.dirname(dbPath);
|
|
53
|
+
if (!fs.existsSync(dbDir)) {
|
|
54
|
+
fs.mkdirSync(dbDir, { recursive: true });
|
|
55
|
+
}
|
|
56
|
+
db = new better_sqlite3_1.default(dbPath);
|
|
57
|
+
db.pragma('journal_mode = WAL');
|
|
58
|
+
return db;
|
|
59
|
+
}
|
|
60
|
+
function initializeDatabase() {
|
|
61
|
+
const database = getDatabase();
|
|
62
|
+
database.exec(`
|
|
63
|
+
CREATE TABLE IF NOT EXISTS context_files (
|
|
64
|
+
id TEXT PRIMARY KEY,
|
|
65
|
+
name TEXT NOT NULL,
|
|
66
|
+
type TEXT NOT NULL CHECK(type IN ('base', 'skill', 'preference', 'tool_override')),
|
|
67
|
+
tool TEXT,
|
|
68
|
+
content TEXT NOT NULL,
|
|
69
|
+
format TEXT NOT NULL CHECK(format IN ('yaml', 'json', 'markdown')),
|
|
70
|
+
version INTEGER DEFAULT 1,
|
|
71
|
+
created_at TEXT NOT NULL,
|
|
72
|
+
updated_at TEXT NOT NULL
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
CREATE TABLE IF NOT EXISTS tool_configs (
|
|
76
|
+
id TEXT PRIMARY KEY,
|
|
77
|
+
tool_name TEXT NOT NULL UNIQUE,
|
|
78
|
+
tool_type TEXT NOT NULL CHECK(tool_type IN ('mcp', 'web', 'cli', 'api')),
|
|
79
|
+
connection_status TEXT NOT NULL CHECK(connection_status IN ('connected', 'disconnected', 'pending')),
|
|
80
|
+
last_used TEXT,
|
|
81
|
+
config TEXT NOT NULL DEFAULT '{}'
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS sync_events (
|
|
85
|
+
id TEXT PRIMARY KEY,
|
|
86
|
+
timestamp TEXT NOT NULL,
|
|
87
|
+
action TEXT NOT NULL CHECK(action IN ('created', 'updated', 'deleted', 'synced')),
|
|
88
|
+
entity_type TEXT NOT NULL CHECK(entity_type IN ('context_file', 'tool_config', 'skill')),
|
|
89
|
+
entity_id TEXT NOT NULL,
|
|
90
|
+
entity_name TEXT NOT NULL,
|
|
91
|
+
tool_name TEXT,
|
|
92
|
+
status TEXT NOT NULL CHECK(status IN ('success', 'pending', 'failed')),
|
|
93
|
+
error TEXT
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
CREATE TABLE IF NOT EXISTS skills (
|
|
97
|
+
id TEXT PRIMARY KEY,
|
|
98
|
+
name TEXT NOT NULL UNIQUE,
|
|
99
|
+
description TEXT,
|
|
100
|
+
content TEXT NOT NULL,
|
|
101
|
+
category TEXT NOT NULL DEFAULT 'general',
|
|
102
|
+
tags TEXT NOT NULL DEFAULT '[]',
|
|
103
|
+
created_at TEXT NOT NULL,
|
|
104
|
+
updated_at TEXT NOT NULL
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
CREATE TABLE IF NOT EXISTS webhooks (
|
|
108
|
+
id TEXT PRIMARY KEY,
|
|
109
|
+
url TEXT NOT NULL,
|
|
110
|
+
name TEXT NOT NULL,
|
|
111
|
+
events TEXT NOT NULL DEFAULT '[]',
|
|
112
|
+
active INTEGER NOT NULL DEFAULT 1,
|
|
113
|
+
last_triggered TEXT,
|
|
114
|
+
created_at TEXT NOT NULL
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
CREATE TABLE IF NOT EXISTS app_config (
|
|
118
|
+
key TEXT PRIMARY KEY,
|
|
119
|
+
value TEXT NOT NULL
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_context_files_type ON context_files(type);
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_context_files_tool ON context_files(tool);
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_sync_events_timestamp ON sync_events(timestamp);
|
|
125
|
+
CREATE INDEX IF NOT EXISTS idx_sync_events_entity ON sync_events(entity_type, entity_id);
|
|
126
|
+
CREATE INDEX IF NOT EXISTS idx_skills_category ON skills(category);
|
|
127
|
+
`);
|
|
128
|
+
const defaultConfig = {
|
|
129
|
+
contextDirectory: './context',
|
|
130
|
+
syncInterval: 1000,
|
|
131
|
+
autoSync: true,
|
|
132
|
+
darkMode: false,
|
|
133
|
+
port: 4000
|
|
134
|
+
};
|
|
135
|
+
const insertConfig = database.prepare('INSERT OR IGNORE INTO app_config (key, value) VALUES (?, ?)');
|
|
136
|
+
for (const [key, value] of Object.entries(defaultConfig)) {
|
|
137
|
+
insertConfig.run(key, JSON.stringify(value));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function closeDatabase() {
|
|
141
|
+
if (db) {
|
|
142
|
+
db.close();
|
|
143
|
+
db = null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,kCAgBC;AAED,gDAkFC;AAED,sCAKC;AAjHD,oEAAsC;AACtC,2CAA6B;AAC7B,uCAAyB;AAEzB,IAAI,EAAE,GAA6B,IAAI,CAAC;AAExC,SAAgB,WAAW;IACzB,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAElB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,EAAE,GAAG,IAAI,wBAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,kBAAkB;IAChC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG;QACpB,gBAAgB,EAAE,WAAW;QAC7B,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,IAAI;KACX,CAAC;IAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;IACrG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface SkillRow {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string | null;
|
|
5
|
+
content: string;
|
|
6
|
+
category: string;
|
|
7
|
+
tags: string;
|
|
8
|
+
created_at: string;
|
|
9
|
+
updated_at: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateSkillInput {
|
|
12
|
+
name: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
content: string;
|
|
15
|
+
category?: string;
|
|
16
|
+
tags?: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface UpdateSkillInput {
|
|
19
|
+
name?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
content?: string;
|
|
22
|
+
category?: string;
|
|
23
|
+
tags?: string[];
|
|
24
|
+
}
|
|
25
|
+
export declare function createSkill(input: CreateSkillInput): SkillRow;
|
|
26
|
+
export declare function getSkillById(id: string): SkillRow | undefined;
|
|
27
|
+
export declare function getSkillByName(name: string): SkillRow | undefined;
|
|
28
|
+
export declare function getAllSkills(): SkillRow[];
|
|
29
|
+
export declare function getSkillsByCategory(category: string): SkillRow[];
|
|
30
|
+
export declare function updateSkill(id: string, input: UpdateSkillInput): SkillRow | undefined;
|
|
31
|
+
export declare function deleteSkill(id: string): boolean;
|
|
32
|
+
export declare function searchSkills(query: string): SkillRow[];
|
|
33
|
+
//# sourceMappingURL=skills.d.ts.map
|