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 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/database/skills.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,QAAQ,CAsB7D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAI7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIjE;AAED,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAIzC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAIhE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAoCrF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAK/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAKtD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSkill = createSkill;
|
|
4
|
+
exports.getSkillById = getSkillById;
|
|
5
|
+
exports.getSkillByName = getSkillByName;
|
|
6
|
+
exports.getAllSkills = getAllSkills;
|
|
7
|
+
exports.getSkillsByCategory = getSkillsByCategory;
|
|
8
|
+
exports.updateSkill = updateSkill;
|
|
9
|
+
exports.deleteSkill = deleteSkill;
|
|
10
|
+
exports.searchSkills = searchSkills;
|
|
11
|
+
const uuid_1 = require("uuid");
|
|
12
|
+
const index_1 = require("./index");
|
|
13
|
+
function createSkill(input) {
|
|
14
|
+
const db = (0, index_1.getDatabase)();
|
|
15
|
+
const id = (0, uuid_1.v4)();
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
const stmt = db.prepare(`
|
|
18
|
+
INSERT INTO skills (id, name, description, content, category, tags, created_at, updated_at)
|
|
19
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
20
|
+
`);
|
|
21
|
+
stmt.run(id, input.name, input.description || null, input.content, input.category || 'general', JSON.stringify(input.tags || []), now, now);
|
|
22
|
+
return getSkillById(id);
|
|
23
|
+
}
|
|
24
|
+
function getSkillById(id) {
|
|
25
|
+
const db = (0, index_1.getDatabase)();
|
|
26
|
+
const stmt = db.prepare('SELECT * FROM skills WHERE id = ?');
|
|
27
|
+
return stmt.get(id);
|
|
28
|
+
}
|
|
29
|
+
function getSkillByName(name) {
|
|
30
|
+
const db = (0, index_1.getDatabase)();
|
|
31
|
+
const stmt = db.prepare('SELECT * FROM skills WHERE name = ?');
|
|
32
|
+
return stmt.get(name);
|
|
33
|
+
}
|
|
34
|
+
function getAllSkills() {
|
|
35
|
+
const db = (0, index_1.getDatabase)();
|
|
36
|
+
const stmt = db.prepare('SELECT * FROM skills ORDER BY updated_at DESC');
|
|
37
|
+
return stmt.all();
|
|
38
|
+
}
|
|
39
|
+
function getSkillsByCategory(category) {
|
|
40
|
+
const db = (0, index_1.getDatabase)();
|
|
41
|
+
const stmt = db.prepare('SELECT * FROM skills WHERE category = ? ORDER BY updated_at DESC');
|
|
42
|
+
return stmt.all(category);
|
|
43
|
+
}
|
|
44
|
+
function updateSkill(id, input) {
|
|
45
|
+
const db = (0, index_1.getDatabase)();
|
|
46
|
+
const existing = getSkillById(id);
|
|
47
|
+
if (!existing)
|
|
48
|
+
return undefined;
|
|
49
|
+
const now = new Date().toISOString();
|
|
50
|
+
const updates = ['updated_at = ?'];
|
|
51
|
+
const params = [now];
|
|
52
|
+
if (input.name !== undefined) {
|
|
53
|
+
updates.push('name = ?');
|
|
54
|
+
params.push(input.name);
|
|
55
|
+
}
|
|
56
|
+
if (input.description !== undefined) {
|
|
57
|
+
updates.push('description = ?');
|
|
58
|
+
params.push(input.description);
|
|
59
|
+
}
|
|
60
|
+
if (input.content !== undefined) {
|
|
61
|
+
updates.push('content = ?');
|
|
62
|
+
params.push(input.content);
|
|
63
|
+
}
|
|
64
|
+
if (input.category !== undefined) {
|
|
65
|
+
updates.push('category = ?');
|
|
66
|
+
params.push(input.category);
|
|
67
|
+
}
|
|
68
|
+
if (input.tags !== undefined) {
|
|
69
|
+
updates.push('tags = ?');
|
|
70
|
+
params.push(JSON.stringify(input.tags));
|
|
71
|
+
}
|
|
72
|
+
params.push(id);
|
|
73
|
+
const stmt = db.prepare(`UPDATE skills SET ${updates.join(', ')} WHERE id = ?`);
|
|
74
|
+
stmt.run(...params);
|
|
75
|
+
return getSkillById(id);
|
|
76
|
+
}
|
|
77
|
+
function deleteSkill(id) {
|
|
78
|
+
const db = (0, index_1.getDatabase)();
|
|
79
|
+
const stmt = db.prepare('DELETE FROM skills WHERE id = ?');
|
|
80
|
+
const result = stmt.run(id);
|
|
81
|
+
return result.changes > 0;
|
|
82
|
+
}
|
|
83
|
+
function searchSkills(query) {
|
|
84
|
+
const db = (0, index_1.getDatabase)();
|
|
85
|
+
const stmt = db.prepare('SELECT * FROM skills WHERE name LIKE ? OR description LIKE ? OR content LIKE ? ORDER BY updated_at DESC');
|
|
86
|
+
const searchTerm = `%${query}%`;
|
|
87
|
+
return stmt.all(searchTerm, searchTerm, searchTerm);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/database/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface SyncEventRow {
|
|
2
|
+
id: string;
|
|
3
|
+
timestamp: string;
|
|
4
|
+
action: string;
|
|
5
|
+
entity_type: string;
|
|
6
|
+
entity_id: string;
|
|
7
|
+
entity_name: string;
|
|
8
|
+
tool_name: string | null;
|
|
9
|
+
status: string;
|
|
10
|
+
error: string | null;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateSyncEventInput {
|
|
13
|
+
action: 'created' | 'updated' | 'deleted' | 'synced';
|
|
14
|
+
entityType: 'context_file' | 'tool_config' | 'skill';
|
|
15
|
+
entityId: string;
|
|
16
|
+
entityName: string;
|
|
17
|
+
toolName?: string;
|
|
18
|
+
status: 'success' | 'pending' | 'failed';
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function createSyncEvent(input: CreateSyncEventInput): SyncEventRow;
|
|
22
|
+
export declare function getSyncEventById(id: string): SyncEventRow | undefined;
|
|
23
|
+
export declare function getAllSyncEvents(limit?: number): SyncEventRow[];
|
|
24
|
+
export declare function getSyncEventsByEntity(entityType: string, entityId: string): SyncEventRow[];
|
|
25
|
+
export declare function getRecentSyncEvents(limit?: number): SyncEventRow[];
|
|
26
|
+
export declare function getFailedSyncEvents(): SyncEventRow[];
|
|
27
|
+
export declare function clearOldSyncEvents(daysToKeep?: number): number;
|
|
28
|
+
//# sourceMappingURL=syncEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncEvents.d.ts","sourceRoot":"","sources":["../../src/database/syncEvents.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,UAAU,EAAE,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAuBzE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAIrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAM,GAAG,YAAY,EAAE,CAI5D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAI1F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE,CAI9D;AAED,wBAAgB,mBAAmB,IAAI,YAAY,EAAE,CAIpD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,SAAK,GAAG,MAAM,CAQ1D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSyncEvent = createSyncEvent;
|
|
4
|
+
exports.getSyncEventById = getSyncEventById;
|
|
5
|
+
exports.getAllSyncEvents = getAllSyncEvents;
|
|
6
|
+
exports.getSyncEventsByEntity = getSyncEventsByEntity;
|
|
7
|
+
exports.getRecentSyncEvents = getRecentSyncEvents;
|
|
8
|
+
exports.getFailedSyncEvents = getFailedSyncEvents;
|
|
9
|
+
exports.clearOldSyncEvents = clearOldSyncEvents;
|
|
10
|
+
const uuid_1 = require("uuid");
|
|
11
|
+
const index_1 = require("./index");
|
|
12
|
+
function createSyncEvent(input) {
|
|
13
|
+
const db = (0, index_1.getDatabase)();
|
|
14
|
+
const id = (0, uuid_1.v4)();
|
|
15
|
+
const now = new Date().toISOString();
|
|
16
|
+
const stmt = db.prepare(`
|
|
17
|
+
INSERT INTO sync_events (id, timestamp, action, entity_type, entity_id, entity_name, tool_name, status, error)
|
|
18
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
19
|
+
`);
|
|
20
|
+
stmt.run(id, now, input.action, input.entityType, input.entityId, input.entityName, input.toolName || null, input.status, input.error || null);
|
|
21
|
+
return getSyncEventById(id);
|
|
22
|
+
}
|
|
23
|
+
function getSyncEventById(id) {
|
|
24
|
+
const db = (0, index_1.getDatabase)();
|
|
25
|
+
const stmt = db.prepare('SELECT * FROM sync_events WHERE id = ?');
|
|
26
|
+
return stmt.get(id);
|
|
27
|
+
}
|
|
28
|
+
function getAllSyncEvents(limit = 100) {
|
|
29
|
+
const db = (0, index_1.getDatabase)();
|
|
30
|
+
const stmt = db.prepare('SELECT * FROM sync_events ORDER BY timestamp DESC LIMIT ?');
|
|
31
|
+
return stmt.all(limit);
|
|
32
|
+
}
|
|
33
|
+
function getSyncEventsByEntity(entityType, entityId) {
|
|
34
|
+
const db = (0, index_1.getDatabase)();
|
|
35
|
+
const stmt = db.prepare('SELECT * FROM sync_events WHERE entity_type = ? AND entity_id = ? ORDER BY timestamp DESC');
|
|
36
|
+
return stmt.all(entityType, entityId);
|
|
37
|
+
}
|
|
38
|
+
function getRecentSyncEvents(limit = 10) {
|
|
39
|
+
const db = (0, index_1.getDatabase)();
|
|
40
|
+
const stmt = db.prepare('SELECT * FROM sync_events ORDER BY timestamp DESC LIMIT ?');
|
|
41
|
+
return stmt.all(limit);
|
|
42
|
+
}
|
|
43
|
+
function getFailedSyncEvents() {
|
|
44
|
+
const db = (0, index_1.getDatabase)();
|
|
45
|
+
const stmt = db.prepare('SELECT * FROM sync_events WHERE status = ? ORDER BY timestamp DESC');
|
|
46
|
+
return stmt.all('failed');
|
|
47
|
+
}
|
|
48
|
+
function clearOldSyncEvents(daysToKeep = 30) {
|
|
49
|
+
const db = (0, index_1.getDatabase)();
|
|
50
|
+
const cutoff = new Date();
|
|
51
|
+
cutoff.setDate(cutoff.getDate() - daysToKeep);
|
|
52
|
+
const stmt = db.prepare('DELETE FROM sync_events WHERE timestamp < ?');
|
|
53
|
+
const result = stmt.run(cutoff.toISOString());
|
|
54
|
+
return result.changes;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=syncEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncEvents.js","sourceRoot":"","sources":["../../src/database/syncEvents.ts"],"names":[],"mappings":";;AAyBA,0CAuBC;AAED,4CAIC;AAED,4CAIC;AAED,sDAIC;AAED,kDAIC;AAED,kDAIC;AAED,gDAQC;AAxFD,+BAAoC;AACpC,mCAAsC;AAwBtC,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,EAAE,GAAG,IAAA,SAAM,GAAE,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CACN,EAAE,EACF,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,IAAI,IAAI,CACpB,CAAC;IAEF,OAAO,gBAAgB,CAAC,EAAE,CAAE,CAAC;AAC/B,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAAU;IACzC,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAA6B,CAAC;AAClD,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAK,GAAG,GAAG;IAC1C,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAmB,CAAC;AAC3C,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB,EAAE,QAAgB;IACxE,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2FAA2F,CAAC,CAAC;IACrH,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAmB,CAAC;AAC1D,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAK,GAAG,EAAE;IAC5C,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAmB,CAAC;AAC3C,CAAC;AAED,SAAgB,mBAAmB;IACjC,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC;IAC9F,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAmB,CAAC;AAC9C,CAAC;AAED,SAAgB,kBAAkB,CAAC,UAAU,GAAG,EAAE;IAChD,MAAM,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface ToolConfigRow {
|
|
2
|
+
id: string;
|
|
3
|
+
tool_name: string;
|
|
4
|
+
tool_type: string;
|
|
5
|
+
connection_status: string;
|
|
6
|
+
last_used: string | null;
|
|
7
|
+
config: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CreateToolConfigInput {
|
|
10
|
+
toolName: string;
|
|
11
|
+
toolType: 'mcp' | 'web' | 'cli' | 'api';
|
|
12
|
+
config?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface UpdateToolConfigInput {
|
|
15
|
+
connectionStatus?: 'connected' | 'disconnected' | 'pending';
|
|
16
|
+
config?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export declare function createToolConfig(input: CreateToolConfigInput): ToolConfigRow;
|
|
19
|
+
export declare function getToolConfigById(id: string): ToolConfigRow | undefined;
|
|
20
|
+
export declare function getToolConfigByName(name: string): ToolConfigRow | undefined;
|
|
21
|
+
export declare function getAllToolConfigs(): ToolConfigRow[];
|
|
22
|
+
export declare function getConnectedTools(): ToolConfigRow[];
|
|
23
|
+
export declare function updateToolConfig(id: string, input: UpdateToolConfigInput): ToolConfigRow | undefined;
|
|
24
|
+
export declare function deleteToolConfig(id: string): boolean;
|
|
25
|
+
export declare function updateLastUsed(id: string): void;
|
|
26
|
+
//# sourceMappingURL=toolConfigs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolConfigs.d.ts","sourceRoot":"","sources":["../../src/database/toolConfigs.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,aAAa,CAa5E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAIvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAI3E;AAED,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAInD;AAED,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAInD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,aAAa,GAAG,SAAS,CAyBpG;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKpD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAI/C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createToolConfig = createToolConfig;
|
|
4
|
+
exports.getToolConfigById = getToolConfigById;
|
|
5
|
+
exports.getToolConfigByName = getToolConfigByName;
|
|
6
|
+
exports.getAllToolConfigs = getAllToolConfigs;
|
|
7
|
+
exports.getConnectedTools = getConnectedTools;
|
|
8
|
+
exports.updateToolConfig = updateToolConfig;
|
|
9
|
+
exports.deleteToolConfig = deleteToolConfig;
|
|
10
|
+
exports.updateLastUsed = updateLastUsed;
|
|
11
|
+
const uuid_1 = require("uuid");
|
|
12
|
+
const index_1 = require("./index");
|
|
13
|
+
function createToolConfig(input) {
|
|
14
|
+
const db = (0, index_1.getDatabase)();
|
|
15
|
+
const id = (0, uuid_1.v4)();
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
const stmt = db.prepare(`
|
|
18
|
+
INSERT INTO tool_configs (id, tool_name, tool_type, connection_status, last_used, config)
|
|
19
|
+
VALUES (?, ?, ?, 'pending', ?, ?)
|
|
20
|
+
`);
|
|
21
|
+
stmt.run(id, input.toolName, input.toolType, now, JSON.stringify(input.config || {}));
|
|
22
|
+
return getToolConfigByName(input.toolName);
|
|
23
|
+
}
|
|
24
|
+
function getToolConfigById(id) {
|
|
25
|
+
const db = (0, index_1.getDatabase)();
|
|
26
|
+
const stmt = db.prepare('SELECT * FROM tool_configs WHERE id = ?');
|
|
27
|
+
return stmt.get(id);
|
|
28
|
+
}
|
|
29
|
+
function getToolConfigByName(name) {
|
|
30
|
+
const db = (0, index_1.getDatabase)();
|
|
31
|
+
const stmt = db.prepare('SELECT * FROM tool_configs WHERE tool_name = ?');
|
|
32
|
+
return stmt.get(name);
|
|
33
|
+
}
|
|
34
|
+
function getAllToolConfigs() {
|
|
35
|
+
const db = (0, index_1.getDatabase)();
|
|
36
|
+
const stmt = db.prepare('SELECT * FROM tool_configs ORDER BY last_used DESC');
|
|
37
|
+
return stmt.all();
|
|
38
|
+
}
|
|
39
|
+
function getConnectedTools() {
|
|
40
|
+
const db = (0, index_1.getDatabase)();
|
|
41
|
+
const stmt = db.prepare('SELECT * FROM tool_configs WHERE connection_status = ? ORDER BY last_used DESC');
|
|
42
|
+
return stmt.all('connected');
|
|
43
|
+
}
|
|
44
|
+
function updateToolConfig(id, input) {
|
|
45
|
+
const db = (0, index_1.getDatabase)();
|
|
46
|
+
const existing = getToolConfigById(id);
|
|
47
|
+
if (!existing)
|
|
48
|
+
return undefined;
|
|
49
|
+
const updates = [];
|
|
50
|
+
const params = [];
|
|
51
|
+
if (input.connectionStatus !== undefined) {
|
|
52
|
+
updates.push('connection_status = ?');
|
|
53
|
+
params.push(input.connectionStatus);
|
|
54
|
+
}
|
|
55
|
+
if (input.config !== undefined) {
|
|
56
|
+
updates.push('config = ?');
|
|
57
|
+
params.push(JSON.stringify(input.config));
|
|
58
|
+
}
|
|
59
|
+
if (updates.length === 0)
|
|
60
|
+
return existing;
|
|
61
|
+
params.push(id);
|
|
62
|
+
const stmt = db.prepare(`UPDATE tool_configs SET ${updates.join(', ')} WHERE id = ?`);
|
|
63
|
+
stmt.run(...params);
|
|
64
|
+
return getToolConfigById(id);
|
|
65
|
+
}
|
|
66
|
+
function deleteToolConfig(id) {
|
|
67
|
+
const db = (0, index_1.getDatabase)();
|
|
68
|
+
const stmt = db.prepare('DELETE FROM tool_configs WHERE id = ?');
|
|
69
|
+
const result = stmt.run(id);
|
|
70
|
+
return result.changes > 0;
|
|
71
|
+
}
|
|
72
|
+
function updateLastUsed(id) {
|
|
73
|
+
const db = (0, index_1.getDatabase)();
|
|
74
|
+
const stmt = db.prepare('UPDATE tool_configs SET last_used = ? WHERE id = ?');
|
|
75
|
+
stmt.run(new Date().toISOString(), id);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=toolConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolConfigs.js","sourceRoot":"","sources":["../../src/database/toolConfigs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface WebhookRow {
|
|
2
|
+
id: string;
|
|
3
|
+
url: string;
|
|
4
|
+
name: string;
|
|
5
|
+
events: string;
|
|
6
|
+
active: number;
|
|
7
|
+
last_triggered: string | null;
|
|
8
|
+
created_at: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CreateWebhookInput {
|
|
11
|
+
url: string;
|
|
12
|
+
name: string;
|
|
13
|
+
events: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface UpdateWebhookInput {
|
|
16
|
+
url?: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
events?: string[];
|
|
19
|
+
active?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function createWebhook(input: CreateWebhookInput): WebhookRow;
|
|
22
|
+
export declare function getWebhookById(id: string): WebhookRow | undefined;
|
|
23
|
+
export declare function getAllWebhooks(): WebhookRow[];
|
|
24
|
+
export declare function getActiveWebhooks(): WebhookRow[];
|
|
25
|
+
export declare function getWebhooksByEvent(event: string): WebhookRow[];
|
|
26
|
+
export declare function updateWebhook(id: string, input: UpdateWebhookInput): WebhookRow | undefined;
|
|
27
|
+
export declare function deleteWebhook(id: string): boolean;
|
|
28
|
+
export declare function markWebhookTriggered(id: string): void;
|
|
29
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/database/webhooks.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAanE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIjE;AAED,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAI7C;AAED,wBAAgB,iBAAiB,IAAI,UAAU,EAAE,CAIhD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAS9D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAiC3F;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAKjD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrD"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWebhook = createWebhook;
|
|
4
|
+
exports.getWebhookById = getWebhookById;
|
|
5
|
+
exports.getAllWebhooks = getAllWebhooks;
|
|
6
|
+
exports.getActiveWebhooks = getActiveWebhooks;
|
|
7
|
+
exports.getWebhooksByEvent = getWebhooksByEvent;
|
|
8
|
+
exports.updateWebhook = updateWebhook;
|
|
9
|
+
exports.deleteWebhook = deleteWebhook;
|
|
10
|
+
exports.markWebhookTriggered = markWebhookTriggered;
|
|
11
|
+
const uuid_1 = require("uuid");
|
|
12
|
+
const index_1 = require("./index");
|
|
13
|
+
function createWebhook(input) {
|
|
14
|
+
const db = (0, index_1.getDatabase)();
|
|
15
|
+
const id = (0, uuid_1.v4)();
|
|
16
|
+
const now = new Date().toISOString();
|
|
17
|
+
const stmt = db.prepare(`
|
|
18
|
+
INSERT INTO webhooks (id, url, name, events, active, created_at)
|
|
19
|
+
VALUES (?, ?, ?, ?, 1, ?)
|
|
20
|
+
`);
|
|
21
|
+
stmt.run(id, input.url, input.name, JSON.stringify(input.events), now);
|
|
22
|
+
return getWebhookById(id);
|
|
23
|
+
}
|
|
24
|
+
function getWebhookById(id) {
|
|
25
|
+
const db = (0, index_1.getDatabase)();
|
|
26
|
+
const stmt = db.prepare('SELECT * FROM webhooks WHERE id = ?');
|
|
27
|
+
return stmt.get(id);
|
|
28
|
+
}
|
|
29
|
+
function getAllWebhooks() {
|
|
30
|
+
const db = (0, index_1.getDatabase)();
|
|
31
|
+
const stmt = db.prepare('SELECT * FROM webhooks ORDER BY created_at DESC');
|
|
32
|
+
return stmt.all();
|
|
33
|
+
}
|
|
34
|
+
function getActiveWebhooks() {
|
|
35
|
+
const db = (0, index_1.getDatabase)();
|
|
36
|
+
const stmt = db.prepare('SELECT * FROM webhooks WHERE active = 1 ORDER BY created_at DESC');
|
|
37
|
+
return stmt.all();
|
|
38
|
+
}
|
|
39
|
+
function getWebhooksByEvent(event) {
|
|
40
|
+
const db = (0, index_1.getDatabase)();
|
|
41
|
+
const stmt = db.prepare('SELECT * FROM webhooks WHERE active = 1');
|
|
42
|
+
const all = stmt.all();
|
|
43
|
+
return all.filter(webhook => {
|
|
44
|
+
const events = JSON.parse(webhook.events);
|
|
45
|
+
return events.includes(event);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function updateWebhook(id, input) {
|
|
49
|
+
const db = (0, index_1.getDatabase)();
|
|
50
|
+
const existing = getWebhookById(id);
|
|
51
|
+
if (!existing)
|
|
52
|
+
return undefined;
|
|
53
|
+
const updates = [];
|
|
54
|
+
const params = [];
|
|
55
|
+
if (input.url !== undefined) {
|
|
56
|
+
updates.push('url = ?');
|
|
57
|
+
params.push(input.url);
|
|
58
|
+
}
|
|
59
|
+
if (input.name !== undefined) {
|
|
60
|
+
updates.push('name = ?');
|
|
61
|
+
params.push(input.name);
|
|
62
|
+
}
|
|
63
|
+
if (input.events !== undefined) {
|
|
64
|
+
updates.push('events = ?');
|
|
65
|
+
params.push(JSON.stringify(input.events));
|
|
66
|
+
}
|
|
67
|
+
if (input.active !== undefined) {
|
|
68
|
+
updates.push('active = ?');
|
|
69
|
+
params.push(input.active ? 1 : 0);
|
|
70
|
+
}
|
|
71
|
+
if (updates.length === 0)
|
|
72
|
+
return existing;
|
|
73
|
+
params.push(id);
|
|
74
|
+
const stmt = db.prepare(`UPDATE webhooks SET ${updates.join(', ')} WHERE id = ?`);
|
|
75
|
+
stmt.run(...params);
|
|
76
|
+
return getWebhookById(id);
|
|
77
|
+
}
|
|
78
|
+
function deleteWebhook(id) {
|
|
79
|
+
const db = (0, index_1.getDatabase)();
|
|
80
|
+
const stmt = db.prepare('DELETE FROM webhooks WHERE id = ?');
|
|
81
|
+
const result = stmt.run(id);
|
|
82
|
+
return result.changes > 0;
|
|
83
|
+
}
|
|
84
|
+
function markWebhookTriggered(id) {
|
|
85
|
+
const db = (0, index_1.getDatabase)();
|
|
86
|
+
const stmt = db.prepare('UPDATE webhooks SET last_triggered = ? WHERE id = ?');
|
|
87
|
+
stmt.run(new Date().toISOString(), id);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/database/webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { getDatabase, initializeDatabase, closeDatabase } from './index';
|
|
2
|
+
export * from './contextFiles';
|
|
3
|
+
export * from './toolConfigs';
|
|
4
|
+
export * from './skills';
|
|
5
|
+
export * from './syncEvents';
|
|
6
|
+
export * from './webhooks';
|
|
7
|
+
export * from './config';
|
|
8
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/dist/database.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.closeDatabase = exports.initializeDatabase = exports.getDatabase = void 0;
|
|
18
|
+
var index_1 = require("./index");
|
|
19
|
+
Object.defineProperty(exports, "getDatabase", { enumerable: true, get: function () { return index_1.getDatabase; } });
|
|
20
|
+
Object.defineProperty(exports, "initializeDatabase", { enumerable: true, get: function () { return index_1.initializeDatabase; } });
|
|
21
|
+
Object.defineProperty(exports, "closeDatabase", { enumerable: true, get: function () { return index_1.closeDatabase; } });
|
|
22
|
+
__exportStar(require("./contextFiles"), exports);
|
|
23
|
+
__exportStar(require("./toolConfigs"), exports);
|
|
24
|
+
__exportStar(require("./skills"), exports);
|
|
25
|
+
__exportStar(require("./syncEvents"), exports);
|
|
26
|
+
__exportStar(require("./webhooks"), exports);
|
|
27
|
+
__exportStar(require("./config"), exports);
|
|
28
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAyE;AAAhE,oGAAA,WAAW,OAAA;AAAE,2GAAA,kBAAkB,OAAA;AAAE,sGAAA,aAAa,OAAA;AACvD,iDAA+B;AAC/B,gDAA8B;AAC9B,2CAAyB;AACzB,+CAA6B;AAC7B,6CAA2B;AAC3B,2CAAyB"}
|