sqlew 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/ARCHITECTURE.md +636 -0
  2. package/CHANGELOG.md +107 -0
  3. package/LICENSE +21 -0
  4. package/README.md +359 -0
  5. package/assets/schema.sql +320 -0
  6. package/assets/sqlew-logo.png +0 -0
  7. package/dist/constants.d.ts +146 -0
  8. package/dist/constants.d.ts.map +1 -0
  9. package/dist/constants.js +230 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/database.d.ts +94 -0
  12. package/dist/database.d.ts.map +1 -0
  13. package/dist/database.js +214 -0
  14. package/dist/database.js.map +1 -0
  15. package/dist/index.d.ts +7 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +771 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/schema.d.ts +50 -0
  20. package/dist/schema.d.ts.map +1 -0
  21. package/dist/schema.js +161 -0
  22. package/dist/schema.js.map +1 -0
  23. package/dist/tools/constraints.d.ts +29 -0
  24. package/dist/tools/constraints.d.ts.map +1 -0
  25. package/dist/tools/constraints.js +192 -0
  26. package/dist/tools/constraints.js.map +1 -0
  27. package/dist/tools/context.d.ts +56 -0
  28. package/dist/tools/context.d.ts.map +1 -0
  29. package/dist/tools/context.js +442 -0
  30. package/dist/tools/context.js.map +1 -0
  31. package/dist/tools/files.d.ts +30 -0
  32. package/dist/tools/files.d.ts.map +1 -0
  33. package/dist/tools/files.js +201 -0
  34. package/dist/tools/files.js.map +1 -0
  35. package/dist/tools/messaging.d.ts +50 -0
  36. package/dist/tools/messaging.d.ts.map +1 -0
  37. package/dist/tools/messaging.js +151 -0
  38. package/dist/tools/messaging.js.map +1 -0
  39. package/dist/tools/utils.d.ts +29 -0
  40. package/dist/tools/utils.d.ts.map +1 -0
  41. package/dist/tools/utils.js +131 -0
  42. package/dist/tools/utils.js.map +1 -0
  43. package/dist/types.d.ts +388 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +50 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Database connection and initialization module
3
+ * Handles SQLite database setup with configurable path
4
+ */
5
+ import type { Database as DatabaseType } from './types.js';
6
+ /**
7
+ * Initialize database connection
8
+ * Creates database file and folder if they don't exist
9
+ * Initializes schema on first run
10
+ *
11
+ * @param dbPath - Optional database path (defaults to .sqlew/sqlew.db)
12
+ * @returns SQLite database instance
13
+ */
14
+ export declare function initializeDatabase(dbPath?: string): DatabaseType;
15
+ /**
16
+ * Close database connection
17
+ */
18
+ export declare function closeDatabase(): void;
19
+ /**
20
+ * Get current database instance
21
+ * Throws error if not initialized
22
+ *
23
+ * @returns Current database instance
24
+ */
25
+ export declare function getDatabase(): DatabaseType;
26
+ /**
27
+ * Get or create agent by name
28
+ * Uses INSERT OR IGNORE for idempotent operation
29
+ *
30
+ * @param db - Database instance
31
+ * @param name - Agent name
32
+ * @returns Agent ID
33
+ */
34
+ export declare function getOrCreateAgent(db: DatabaseType, name: string): number;
35
+ /**
36
+ * Get or create context key by name
37
+ *
38
+ * @param db - Database instance
39
+ * @param key - Context key name
40
+ * @returns Context key ID
41
+ */
42
+ export declare function getOrCreateContextKey(db: DatabaseType, key: string): number;
43
+ /**
44
+ * Get or create file by path
45
+ *
46
+ * @param db - Database instance
47
+ * @param path - File path
48
+ * @returns File ID
49
+ */
50
+ export declare function getOrCreateFile(db: DatabaseType, path: string): number;
51
+ /**
52
+ * Get or create tag by name
53
+ *
54
+ * @param db - Database instance
55
+ * @param name - Tag name
56
+ * @returns Tag ID
57
+ */
58
+ export declare function getOrCreateTag(db: DatabaseType, name: string): number;
59
+ /**
60
+ * Get or create scope by name
61
+ *
62
+ * @param db - Database instance
63
+ * @param name - Scope name
64
+ * @returns Scope ID
65
+ */
66
+ export declare function getOrCreateScope(db: DatabaseType, name: string): number;
67
+ /**
68
+ * Get layer ID by name
69
+ * Does not auto-create (layers are predefined)
70
+ *
71
+ * @param db - Database instance
72
+ * @param name - Layer name
73
+ * @returns Layer ID or null if not found
74
+ */
75
+ export declare function getLayerId(db: DatabaseType, name: string): number | null;
76
+ /**
77
+ * Get constraint category ID by name
78
+ * Does not auto-create (categories are predefined)
79
+ *
80
+ * @param db - Database instance
81
+ * @param name - Category name
82
+ * @returns Category ID or null if not found
83
+ */
84
+ export declare function getCategoryId(db: DatabaseType, name: string): number | null;
85
+ /**
86
+ * Execute a function within a transaction
87
+ * Automatically handles commit/rollback
88
+ *
89
+ * @param db - Database instance
90
+ * @param fn - Function to execute in transaction
91
+ * @returns Result from function
92
+ */
93
+ export declare function transaction<T>(db: DatabaseType, fn: () => T): T;
94
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAI3D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAmDhE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAK1C;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAYvE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAW/D"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Database connection and initialization module
3
+ * Handles SQLite database setup with configurable path
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import { mkdirSync, existsSync } from 'fs';
7
+ import { dirname, resolve, isAbsolute } from 'path';
8
+ import { initializeSchema, isSchemaInitialized } from './schema.js';
9
+ import { DEFAULT_DB_PATH, DB_BUSY_TIMEOUT } from './constants.js';
10
+ let dbInstance = null;
11
+ /**
12
+ * Initialize database connection
13
+ * Creates database file and folder if they don't exist
14
+ * Initializes schema on first run
15
+ *
16
+ * @param dbPath - Optional database path (defaults to .sqlew/sqlew.db)
17
+ * @returns SQLite database instance
18
+ */
19
+ export function initializeDatabase(dbPath) {
20
+ // If already initialized, return existing instance
21
+ if (dbInstance) {
22
+ return dbInstance;
23
+ }
24
+ try {
25
+ // Use provided path or default
26
+ const finalPath = dbPath || DEFAULT_DB_PATH;
27
+ // Convert to absolute path if relative
28
+ const absolutePath = isAbsolute(finalPath)
29
+ ? finalPath
30
+ : resolve(process.cwd(), finalPath);
31
+ // Create directory if it doesn't exist
32
+ const dbDir = dirname(absolutePath);
33
+ if (!existsSync(dbDir)) {
34
+ mkdirSync(dbDir, { recursive: true });
35
+ console.log(`✓ Created database directory: ${dbDir}`);
36
+ }
37
+ // Open database connection
38
+ const db = new Database(absolutePath, {
39
+ verbose: process.env.DEBUG_SQL ? console.log : undefined,
40
+ });
41
+ // Configure database
42
+ db.pragma('journal_mode = WAL'); // Write-Ahead Logging for better concurrency
43
+ db.pragma('foreign_keys = ON'); // Enforce foreign key constraints
44
+ db.pragma('synchronous = NORMAL'); // Balance between safety and performance
45
+ db.pragma(`busy_timeout = ${DB_BUSY_TIMEOUT}`); // Set busy timeout
46
+ console.log(`✓ Connected to database: ${absolutePath}`);
47
+ // Initialize schema if needed
48
+ if (!isSchemaInitialized(db)) {
49
+ console.log('→ Initializing database schema...');
50
+ initializeSchema(db);
51
+ }
52
+ else {
53
+ console.log('✓ Database schema already initialized');
54
+ }
55
+ // Store instance
56
+ dbInstance = db;
57
+ return db;
58
+ }
59
+ catch (error) {
60
+ const message = error instanceof Error ? error.message : String(error);
61
+ throw new Error(`Failed to initialize database: ${message}`);
62
+ }
63
+ }
64
+ /**
65
+ * Close database connection
66
+ */
67
+ export function closeDatabase() {
68
+ if (dbInstance) {
69
+ dbInstance.close();
70
+ dbInstance = null;
71
+ console.log('✓ Database connection closed');
72
+ }
73
+ }
74
+ /**
75
+ * Get current database instance
76
+ * Throws error if not initialized
77
+ *
78
+ * @returns Current database instance
79
+ */
80
+ export function getDatabase() {
81
+ if (!dbInstance) {
82
+ throw new Error('Database not initialized. Call initializeDatabase() first.');
83
+ }
84
+ return dbInstance;
85
+ }
86
+ // ============================================================================
87
+ // Helper Functions for Master Table Management
88
+ // ============================================================================
89
+ /**
90
+ * Get or create agent by name
91
+ * Uses INSERT OR IGNORE for idempotent operation
92
+ *
93
+ * @param db - Database instance
94
+ * @param name - Agent name
95
+ * @returns Agent ID
96
+ */
97
+ export function getOrCreateAgent(db, name) {
98
+ // Try to insert
99
+ db.prepare('INSERT OR IGNORE INTO agents (name) VALUES (?)').run(name);
100
+ // Get the ID
101
+ const result = db.prepare('SELECT id FROM agents WHERE name = ?').get(name);
102
+ if (!result) {
103
+ throw new Error(`Failed to get or create agent: ${name}`);
104
+ }
105
+ return result.id;
106
+ }
107
+ /**
108
+ * Get or create context key by name
109
+ *
110
+ * @param db - Database instance
111
+ * @param key - Context key name
112
+ * @returns Context key ID
113
+ */
114
+ export function getOrCreateContextKey(db, key) {
115
+ db.prepare('INSERT OR IGNORE INTO context_keys (key) VALUES (?)').run(key);
116
+ const result = db.prepare('SELECT id FROM context_keys WHERE key = ?').get(key);
117
+ if (!result) {
118
+ throw new Error(`Failed to get or create context key: ${key}`);
119
+ }
120
+ return result.id;
121
+ }
122
+ /**
123
+ * Get or create file by path
124
+ *
125
+ * @param db - Database instance
126
+ * @param path - File path
127
+ * @returns File ID
128
+ */
129
+ export function getOrCreateFile(db, path) {
130
+ db.prepare('INSERT OR IGNORE INTO files (path) VALUES (?)').run(path);
131
+ const result = db.prepare('SELECT id FROM files WHERE path = ?').get(path);
132
+ if (!result) {
133
+ throw new Error(`Failed to get or create file: ${path}`);
134
+ }
135
+ return result.id;
136
+ }
137
+ /**
138
+ * Get or create tag by name
139
+ *
140
+ * @param db - Database instance
141
+ * @param name - Tag name
142
+ * @returns Tag ID
143
+ */
144
+ export function getOrCreateTag(db, name) {
145
+ db.prepare('INSERT OR IGNORE INTO tags (name) VALUES (?)').run(name);
146
+ const result = db.prepare('SELECT id FROM tags WHERE name = ?').get(name);
147
+ if (!result) {
148
+ throw new Error(`Failed to get or create tag: ${name}`);
149
+ }
150
+ return result.id;
151
+ }
152
+ /**
153
+ * Get or create scope by name
154
+ *
155
+ * @param db - Database instance
156
+ * @param name - Scope name
157
+ * @returns Scope ID
158
+ */
159
+ export function getOrCreateScope(db, name) {
160
+ db.prepare('INSERT OR IGNORE INTO scopes (name) VALUES (?)').run(name);
161
+ const result = db.prepare('SELECT id FROM scopes WHERE name = ?').get(name);
162
+ if (!result) {
163
+ throw new Error(`Failed to get or create scope: ${name}`);
164
+ }
165
+ return result.id;
166
+ }
167
+ /**
168
+ * Get layer ID by name
169
+ * Does not auto-create (layers are predefined)
170
+ *
171
+ * @param db - Database instance
172
+ * @param name - Layer name
173
+ * @returns Layer ID or null if not found
174
+ */
175
+ export function getLayerId(db, name) {
176
+ const result = db.prepare('SELECT id FROM layers WHERE name = ?').get(name);
177
+ return result ? result.id : null;
178
+ }
179
+ /**
180
+ * Get constraint category ID by name
181
+ * Does not auto-create (categories are predefined)
182
+ *
183
+ * @param db - Database instance
184
+ * @param name - Category name
185
+ * @returns Category ID or null if not found
186
+ */
187
+ export function getCategoryId(db, name) {
188
+ const result = db.prepare('SELECT id FROM constraint_categories WHERE name = ?').get(name);
189
+ return result ? result.id : null;
190
+ }
191
+ // ============================================================================
192
+ // Transaction Helpers
193
+ // ============================================================================
194
+ /**
195
+ * Execute a function within a transaction
196
+ * Automatically handles commit/rollback
197
+ *
198
+ * @param db - Database instance
199
+ * @param fn - Function to execute in transaction
200
+ * @returns Result from function
201
+ */
202
+ export function transaction(db, fn) {
203
+ db.exec('BEGIN TRANSACTION');
204
+ try {
205
+ const result = fn();
206
+ db.exec('COMMIT');
207
+ return result;
208
+ }
209
+ catch (error) {
210
+ db.exec('ROLLBACK');
211
+ throw error;
212
+ }
213
+ }
214
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGlE,IAAI,UAAU,GAAwB,IAAI,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,mDAAmD;IACnD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,+BAA+B;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,eAAe,CAAC;QAE5C,uCAAuC;QACvC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC;YACxC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QAEtC,uCAAuC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,2BAA2B;QAC3B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,EAAE;YACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;SACzD,CAAC,CAAC;QAEH,qBAAqB;QACrB,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAE,6CAA6C;QAC/E,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAG,kCAAkC;QACpE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,yCAAyC;QAC5E,EAAE,CAAC,MAAM,CAAC,kBAAkB,eAAe,EAAE,CAAC,CAAC,CAAE,mBAAmB;QAEpE,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAExD,8BAA8B;QAC9B,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,iBAAiB;QACjB,UAAU,GAAG,EAAE,CAAC;QAEhB,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAgB,EAAE,IAAY;IAC7D,gBAAgB;IAChB,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEvE,aAAa;IACb,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IAE1G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAgB,EAAE,GAAW;IACjE,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,GAAG,CAA+B,CAAC;IAE9G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAAgB,EAAE,IAAY;IAC5D,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IAEzG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAAgB,EAAE,IAAY;IAC3D,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IAExG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAgB,EAAE,IAAY;IAC7D,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IAE1G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EAAgB,EAAE,IAAY;IACvD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IAC1G,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,EAAgB,EAAE,IAAY;IAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,IAAI,CAA+B,CAAC;IACzH,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAI,EAAgB,EAAE,EAAW;IAC1D,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MCP Shared Context Server - Entry Point
4
+ * Provides context management tools via Model Context Protocol
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG"}