@qwickapps/qwickbrain-proxy 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 (90) hide show
  1. package/.github/workflows/publish.yml +92 -0
  2. package/CHANGELOG.md +47 -0
  3. package/LICENSE +45 -0
  4. package/README.md +165 -0
  5. package/dist/bin/cli.d.ts +3 -0
  6. package/dist/bin/cli.d.ts.map +1 -0
  7. package/dist/bin/cli.js +142 -0
  8. package/dist/bin/cli.js.map +1 -0
  9. package/dist/db/client.d.ts +10 -0
  10. package/dist/db/client.d.ts.map +1 -0
  11. package/dist/db/client.js +23 -0
  12. package/dist/db/client.js.map +1 -0
  13. package/dist/db/schema.d.ts +551 -0
  14. package/dist/db/schema.d.ts.map +1 -0
  15. package/dist/db/schema.js +65 -0
  16. package/dist/db/schema.js.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +5 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/lib/__tests__/cache-manager.test.d.ts +2 -0
  22. package/dist/lib/__tests__/cache-manager.test.d.ts.map +1 -0
  23. package/dist/lib/__tests__/cache-manager.test.js +202 -0
  24. package/dist/lib/__tests__/cache-manager.test.js.map +1 -0
  25. package/dist/lib/__tests__/connection-manager.test.d.ts +2 -0
  26. package/dist/lib/__tests__/connection-manager.test.d.ts.map +1 -0
  27. package/dist/lib/__tests__/connection-manager.test.js +188 -0
  28. package/dist/lib/__tests__/connection-manager.test.js.map +1 -0
  29. package/dist/lib/__tests__/proxy-server.test.d.ts +2 -0
  30. package/dist/lib/__tests__/proxy-server.test.d.ts.map +1 -0
  31. package/dist/lib/__tests__/proxy-server.test.js +205 -0
  32. package/dist/lib/__tests__/proxy-server.test.js.map +1 -0
  33. package/dist/lib/__tests__/qwickbrain-client.test.d.ts +2 -0
  34. package/dist/lib/__tests__/qwickbrain-client.test.d.ts.map +1 -0
  35. package/dist/lib/__tests__/qwickbrain-client.test.js +233 -0
  36. package/dist/lib/__tests__/qwickbrain-client.test.js.map +1 -0
  37. package/dist/lib/cache-manager.d.ts +25 -0
  38. package/dist/lib/cache-manager.d.ts.map +1 -0
  39. package/dist/lib/cache-manager.js +149 -0
  40. package/dist/lib/cache-manager.js.map +1 -0
  41. package/dist/lib/connection-manager.d.ts +26 -0
  42. package/dist/lib/connection-manager.d.ts.map +1 -0
  43. package/dist/lib/connection-manager.js +130 -0
  44. package/dist/lib/connection-manager.js.map +1 -0
  45. package/dist/lib/proxy-server.d.ts +19 -0
  46. package/dist/lib/proxy-server.d.ts.map +1 -0
  47. package/dist/lib/proxy-server.js +258 -0
  48. package/dist/lib/proxy-server.js.map +1 -0
  49. package/dist/lib/qwickbrain-client.d.ts +24 -0
  50. package/dist/lib/qwickbrain-client.d.ts.map +1 -0
  51. package/dist/lib/qwickbrain-client.js +197 -0
  52. package/dist/lib/qwickbrain-client.js.map +1 -0
  53. package/dist/types/config.d.ts +186 -0
  54. package/dist/types/config.d.ts.map +1 -0
  55. package/dist/types/config.js +42 -0
  56. package/dist/types/config.js.map +1 -0
  57. package/dist/types/mcp.d.ts +223 -0
  58. package/dist/types/mcp.d.ts.map +1 -0
  59. package/dist/types/mcp.js +78 -0
  60. package/dist/types/mcp.js.map +1 -0
  61. package/dist/version.d.ts +2 -0
  62. package/dist/version.d.ts.map +1 -0
  63. package/dist/version.js +9 -0
  64. package/dist/version.js.map +1 -0
  65. package/drizzle/0000_fat_rafael_vega.sql +41 -0
  66. package/drizzle/0001_goofy_invisible_woman.sql +2 -0
  67. package/drizzle/meta/0000_snapshot.json +276 -0
  68. package/drizzle/meta/0001_snapshot.json +295 -0
  69. package/drizzle/meta/_journal.json +20 -0
  70. package/drizzle.config.ts +12 -0
  71. package/package.json +65 -0
  72. package/src/bin/cli.ts +158 -0
  73. package/src/db/client.ts +34 -0
  74. package/src/db/schema.ts +68 -0
  75. package/src/index.ts +6 -0
  76. package/src/lib/__tests__/cache-manager.test.ts +264 -0
  77. package/src/lib/__tests__/connection-manager.test.ts +255 -0
  78. package/src/lib/__tests__/proxy-server.test.ts +261 -0
  79. package/src/lib/__tests__/qwickbrain-client.test.ts +310 -0
  80. package/src/lib/cache-manager.ts +201 -0
  81. package/src/lib/connection-manager.ts +156 -0
  82. package/src/lib/proxy-server.ts +320 -0
  83. package/src/lib/qwickbrain-client.ts +260 -0
  84. package/src/types/config.ts +47 -0
  85. package/src/types/mcp.ts +97 -0
  86. package/src/version.ts +11 -0
  87. package/test/fixtures/test-mcp.json +5 -0
  88. package/test-mcp-client.js +67 -0
  89. package/test-proxy.sh +25 -0
  90. package/tsconfig.json +22 -0
@@ -0,0 +1,551 @@
1
+ /**
2
+ * Cached documents (workflows, rules, FRDs, designs, etc.)
3
+ */
4
+ export declare const documents: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
5
+ name: "documents";
6
+ schema: undefined;
7
+ columns: {
8
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
9
+ name: "id";
10
+ tableName: "documents";
11
+ dataType: "number";
12
+ columnType: "SQLiteInteger";
13
+ data: number;
14
+ driverParam: number;
15
+ notNull: true;
16
+ hasDefault: true;
17
+ isPrimaryKey: true;
18
+ isAutoincrement: false;
19
+ hasRuntimeDefault: false;
20
+ enumValues: undefined;
21
+ baseColumn: never;
22
+ identity: undefined;
23
+ generated: undefined;
24
+ }, object>;
25
+ docType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
26
+ name: "doc_type";
27
+ tableName: "documents";
28
+ dataType: "string";
29
+ columnType: "SQLiteText";
30
+ data: string;
31
+ driverParam: string;
32
+ notNull: true;
33
+ hasDefault: false;
34
+ isPrimaryKey: false;
35
+ isAutoincrement: false;
36
+ hasRuntimeDefault: false;
37
+ enumValues: [string, ...string[]];
38
+ baseColumn: never;
39
+ identity: undefined;
40
+ generated: undefined;
41
+ }, object>;
42
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
43
+ name: "name";
44
+ tableName: "documents";
45
+ dataType: "string";
46
+ columnType: "SQLiteText";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: true;
50
+ hasDefault: false;
51
+ isPrimaryKey: false;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: [string, ...string[]];
55
+ baseColumn: never;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }, object>;
59
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
60
+ name: "project";
61
+ tableName: "documents";
62
+ dataType: "string";
63
+ columnType: "SQLiteText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: false;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, object>;
76
+ content: import("drizzle-orm/sqlite-core").SQLiteColumn<{
77
+ name: "content";
78
+ tableName: "documents";
79
+ dataType: "string";
80
+ columnType: "SQLiteText";
81
+ data: string;
82
+ driverParam: string;
83
+ notNull: true;
84
+ hasDefault: false;
85
+ isPrimaryKey: false;
86
+ isAutoincrement: false;
87
+ hasRuntimeDefault: false;
88
+ enumValues: [string, ...string[]];
89
+ baseColumn: never;
90
+ identity: undefined;
91
+ generated: undefined;
92
+ }, object>;
93
+ metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
94
+ name: "metadata";
95
+ tableName: "documents";
96
+ dataType: "string";
97
+ columnType: "SQLiteText";
98
+ data: string;
99
+ driverParam: string;
100
+ notNull: false;
101
+ hasDefault: false;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: [string, ...string[]];
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, object>;
110
+ cachedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
111
+ name: "cached_at";
112
+ tableName: "documents";
113
+ dataType: "date";
114
+ columnType: "SQLiteTimestamp";
115
+ data: Date;
116
+ driverParam: number;
117
+ notNull: true;
118
+ hasDefault: true;
119
+ isPrimaryKey: false;
120
+ isAutoincrement: false;
121
+ hasRuntimeDefault: false;
122
+ enumValues: undefined;
123
+ baseColumn: never;
124
+ identity: undefined;
125
+ generated: undefined;
126
+ }, object>;
127
+ expiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
128
+ name: "expires_at";
129
+ tableName: "documents";
130
+ dataType: "date";
131
+ columnType: "SQLiteTimestamp";
132
+ data: Date;
133
+ driverParam: number;
134
+ notNull: true;
135
+ hasDefault: false;
136
+ isPrimaryKey: false;
137
+ isAutoincrement: false;
138
+ hasRuntimeDefault: false;
139
+ enumValues: undefined;
140
+ baseColumn: never;
141
+ identity: undefined;
142
+ generated: undefined;
143
+ }, object>;
144
+ synced: import("drizzle-orm/sqlite-core").SQLiteColumn<{
145
+ name: "synced";
146
+ tableName: "documents";
147
+ dataType: "boolean";
148
+ columnType: "SQLiteBoolean";
149
+ data: boolean;
150
+ driverParam: number;
151
+ notNull: true;
152
+ hasDefault: true;
153
+ isPrimaryKey: false;
154
+ isAutoincrement: false;
155
+ hasRuntimeDefault: false;
156
+ enumValues: undefined;
157
+ baseColumn: never;
158
+ identity: undefined;
159
+ generated: undefined;
160
+ }, object>;
161
+ };
162
+ dialect: "sqlite";
163
+ }>;
164
+ /**
165
+ * Cached memories (project context, patterns, decisions)
166
+ */
167
+ export declare const memories: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
168
+ name: "memories";
169
+ schema: undefined;
170
+ columns: {
171
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
172
+ name: "id";
173
+ tableName: "memories";
174
+ dataType: "number";
175
+ columnType: "SQLiteInteger";
176
+ data: number;
177
+ driverParam: number;
178
+ notNull: true;
179
+ hasDefault: true;
180
+ isPrimaryKey: true;
181
+ isAutoincrement: false;
182
+ hasRuntimeDefault: false;
183
+ enumValues: undefined;
184
+ baseColumn: never;
185
+ identity: undefined;
186
+ generated: undefined;
187
+ }, object>;
188
+ name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
189
+ name: "name";
190
+ tableName: "memories";
191
+ dataType: "string";
192
+ columnType: "SQLiteText";
193
+ data: string;
194
+ driverParam: string;
195
+ notNull: true;
196
+ hasDefault: false;
197
+ isPrimaryKey: false;
198
+ isAutoincrement: false;
199
+ hasRuntimeDefault: false;
200
+ enumValues: [string, ...string[]];
201
+ baseColumn: never;
202
+ identity: undefined;
203
+ generated: undefined;
204
+ }, object>;
205
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
206
+ name: "project";
207
+ tableName: "memories";
208
+ dataType: "string";
209
+ columnType: "SQLiteText";
210
+ data: string;
211
+ driverParam: string;
212
+ notNull: false;
213
+ hasDefault: false;
214
+ isPrimaryKey: false;
215
+ isAutoincrement: false;
216
+ hasRuntimeDefault: false;
217
+ enumValues: [string, ...string[]];
218
+ baseColumn: never;
219
+ identity: undefined;
220
+ generated: undefined;
221
+ }, object>;
222
+ content: import("drizzle-orm/sqlite-core").SQLiteColumn<{
223
+ name: "content";
224
+ tableName: "memories";
225
+ dataType: "string";
226
+ columnType: "SQLiteText";
227
+ data: string;
228
+ driverParam: string;
229
+ notNull: true;
230
+ hasDefault: false;
231
+ isPrimaryKey: false;
232
+ isAutoincrement: false;
233
+ hasRuntimeDefault: false;
234
+ enumValues: [string, ...string[]];
235
+ baseColumn: never;
236
+ identity: undefined;
237
+ generated: undefined;
238
+ }, object>;
239
+ metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
240
+ name: "metadata";
241
+ tableName: "memories";
242
+ dataType: "string";
243
+ columnType: "SQLiteText";
244
+ data: string;
245
+ driverParam: string;
246
+ notNull: false;
247
+ hasDefault: false;
248
+ isPrimaryKey: false;
249
+ isAutoincrement: false;
250
+ hasRuntimeDefault: false;
251
+ enumValues: [string, ...string[]];
252
+ baseColumn: never;
253
+ identity: undefined;
254
+ generated: undefined;
255
+ }, object>;
256
+ cachedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
257
+ name: "cached_at";
258
+ tableName: "memories";
259
+ dataType: "date";
260
+ columnType: "SQLiteTimestamp";
261
+ data: Date;
262
+ driverParam: number;
263
+ notNull: true;
264
+ hasDefault: true;
265
+ isPrimaryKey: false;
266
+ isAutoincrement: false;
267
+ hasRuntimeDefault: false;
268
+ enumValues: undefined;
269
+ baseColumn: never;
270
+ identity: undefined;
271
+ generated: undefined;
272
+ }, object>;
273
+ expiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
274
+ name: "expires_at";
275
+ tableName: "memories";
276
+ dataType: "date";
277
+ columnType: "SQLiteTimestamp";
278
+ data: Date;
279
+ driverParam: number;
280
+ notNull: true;
281
+ hasDefault: false;
282
+ isPrimaryKey: false;
283
+ isAutoincrement: false;
284
+ hasRuntimeDefault: false;
285
+ enumValues: undefined;
286
+ baseColumn: never;
287
+ identity: undefined;
288
+ generated: undefined;
289
+ }, object>;
290
+ synced: import("drizzle-orm/sqlite-core").SQLiteColumn<{
291
+ name: "synced";
292
+ tableName: "memories";
293
+ dataType: "boolean";
294
+ columnType: "SQLiteBoolean";
295
+ data: boolean;
296
+ driverParam: number;
297
+ notNull: true;
298
+ hasDefault: true;
299
+ isPrimaryKey: false;
300
+ isAutoincrement: false;
301
+ hasRuntimeDefault: false;
302
+ enumValues: undefined;
303
+ baseColumn: never;
304
+ identity: undefined;
305
+ generated: undefined;
306
+ }, object>;
307
+ };
308
+ dialect: "sqlite";
309
+ }>;
310
+ /**
311
+ * Write queue for offline operations
312
+ */
313
+ export declare const syncQueue: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
314
+ name: "sync_queue";
315
+ schema: undefined;
316
+ columns: {
317
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
318
+ name: "id";
319
+ tableName: "sync_queue";
320
+ dataType: "number";
321
+ columnType: "SQLiteInteger";
322
+ data: number;
323
+ driverParam: number;
324
+ notNull: true;
325
+ hasDefault: true;
326
+ isPrimaryKey: true;
327
+ isAutoincrement: false;
328
+ hasRuntimeDefault: false;
329
+ enumValues: undefined;
330
+ baseColumn: never;
331
+ identity: undefined;
332
+ generated: undefined;
333
+ }, object>;
334
+ operation: import("drizzle-orm/sqlite-core").SQLiteColumn<{
335
+ name: "operation";
336
+ tableName: "sync_queue";
337
+ dataType: "string";
338
+ columnType: "SQLiteText";
339
+ data: string;
340
+ driverParam: string;
341
+ notNull: true;
342
+ hasDefault: false;
343
+ isPrimaryKey: false;
344
+ isAutoincrement: false;
345
+ hasRuntimeDefault: false;
346
+ enumValues: [string, ...string[]];
347
+ baseColumn: never;
348
+ identity: undefined;
349
+ generated: undefined;
350
+ }, object>;
351
+ payload: import("drizzle-orm/sqlite-core").SQLiteColumn<{
352
+ name: "payload";
353
+ tableName: "sync_queue";
354
+ dataType: "string";
355
+ columnType: "SQLiteText";
356
+ data: string;
357
+ driverParam: string;
358
+ notNull: true;
359
+ hasDefault: false;
360
+ isPrimaryKey: false;
361
+ isAutoincrement: false;
362
+ hasRuntimeDefault: false;
363
+ enumValues: [string, ...string[]];
364
+ baseColumn: never;
365
+ identity: undefined;
366
+ generated: undefined;
367
+ }, object>;
368
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
369
+ name: "created_at";
370
+ tableName: "sync_queue";
371
+ dataType: "date";
372
+ columnType: "SQLiteTimestamp";
373
+ data: Date;
374
+ driverParam: number;
375
+ notNull: true;
376
+ hasDefault: true;
377
+ isPrimaryKey: false;
378
+ isAutoincrement: false;
379
+ hasRuntimeDefault: false;
380
+ enumValues: undefined;
381
+ baseColumn: never;
382
+ identity: undefined;
383
+ generated: undefined;
384
+ }, object>;
385
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
386
+ name: "status";
387
+ tableName: "sync_queue";
388
+ dataType: "string";
389
+ columnType: "SQLiteText";
390
+ data: string;
391
+ driverParam: string;
392
+ notNull: true;
393
+ hasDefault: true;
394
+ isPrimaryKey: false;
395
+ isAutoincrement: false;
396
+ hasRuntimeDefault: false;
397
+ enumValues: [string, ...string[]];
398
+ baseColumn: never;
399
+ identity: undefined;
400
+ generated: undefined;
401
+ }, object>;
402
+ error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
403
+ name: "error";
404
+ tableName: "sync_queue";
405
+ dataType: "string";
406
+ columnType: "SQLiteText";
407
+ data: string;
408
+ driverParam: string;
409
+ notNull: false;
410
+ hasDefault: false;
411
+ isPrimaryKey: false;
412
+ isAutoincrement: false;
413
+ hasRuntimeDefault: false;
414
+ enumValues: [string, ...string[]];
415
+ baseColumn: never;
416
+ identity: undefined;
417
+ generated: undefined;
418
+ }, object>;
419
+ attempts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
420
+ name: "attempts";
421
+ tableName: "sync_queue";
422
+ dataType: "number";
423
+ columnType: "SQLiteInteger";
424
+ data: number;
425
+ driverParam: number;
426
+ notNull: true;
427
+ hasDefault: true;
428
+ isPrimaryKey: false;
429
+ isAutoincrement: false;
430
+ hasRuntimeDefault: false;
431
+ enumValues: undefined;
432
+ baseColumn: never;
433
+ identity: undefined;
434
+ generated: undefined;
435
+ }, object>;
436
+ lastAttemptAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
437
+ name: "last_attempt_at";
438
+ tableName: "sync_queue";
439
+ dataType: "date";
440
+ columnType: "SQLiteTimestamp";
441
+ data: Date;
442
+ driverParam: number;
443
+ notNull: false;
444
+ hasDefault: false;
445
+ isPrimaryKey: false;
446
+ isAutoincrement: false;
447
+ hasRuntimeDefault: false;
448
+ enumValues: undefined;
449
+ baseColumn: never;
450
+ identity: undefined;
451
+ generated: undefined;
452
+ }, object>;
453
+ };
454
+ dialect: "sqlite";
455
+ }>;
456
+ /**
457
+ * Connection health log
458
+ */
459
+ export declare const connectionLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
460
+ name: "connection_log";
461
+ schema: undefined;
462
+ columns: {
463
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
464
+ name: "id";
465
+ tableName: "connection_log";
466
+ dataType: "number";
467
+ columnType: "SQLiteInteger";
468
+ data: number;
469
+ driverParam: number;
470
+ notNull: true;
471
+ hasDefault: true;
472
+ isPrimaryKey: true;
473
+ isAutoincrement: false;
474
+ hasRuntimeDefault: false;
475
+ enumValues: undefined;
476
+ baseColumn: never;
477
+ identity: undefined;
478
+ generated: undefined;
479
+ }, object>;
480
+ timestamp: import("drizzle-orm/sqlite-core").SQLiteColumn<{
481
+ name: "timestamp";
482
+ tableName: "connection_log";
483
+ dataType: "date";
484
+ columnType: "SQLiteTimestamp";
485
+ data: Date;
486
+ driverParam: number;
487
+ notNull: true;
488
+ hasDefault: true;
489
+ isPrimaryKey: false;
490
+ isAutoincrement: false;
491
+ hasRuntimeDefault: false;
492
+ enumValues: undefined;
493
+ baseColumn: never;
494
+ identity: undefined;
495
+ generated: undefined;
496
+ }, object>;
497
+ state: import("drizzle-orm/sqlite-core").SQLiteColumn<{
498
+ name: "state";
499
+ tableName: "connection_log";
500
+ dataType: "string";
501
+ columnType: "SQLiteText";
502
+ data: string;
503
+ driverParam: string;
504
+ notNull: true;
505
+ hasDefault: false;
506
+ isPrimaryKey: false;
507
+ isAutoincrement: false;
508
+ hasRuntimeDefault: false;
509
+ enumValues: [string, ...string[]];
510
+ baseColumn: never;
511
+ identity: undefined;
512
+ generated: undefined;
513
+ }, object>;
514
+ latencyMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
515
+ name: "latency_ms";
516
+ tableName: "connection_log";
517
+ dataType: "number";
518
+ columnType: "SQLiteInteger";
519
+ data: number;
520
+ driverParam: number;
521
+ notNull: false;
522
+ hasDefault: false;
523
+ isPrimaryKey: false;
524
+ isAutoincrement: false;
525
+ hasRuntimeDefault: false;
526
+ enumValues: undefined;
527
+ baseColumn: never;
528
+ identity: undefined;
529
+ generated: undefined;
530
+ }, object>;
531
+ error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
532
+ name: "error";
533
+ tableName: "connection_log";
534
+ dataType: "string";
535
+ columnType: "SQLiteText";
536
+ data: string;
537
+ driverParam: string;
538
+ notNull: false;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: [string, ...string[]];
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, object>;
548
+ };
549
+ dialect: "sqlite";
550
+ }>;
551
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcnB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalB,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { integer, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
3
+ /**
4
+ * Cached documents (workflows, rules, FRDs, designs, etc.)
5
+ */
6
+ export const documents = sqliteTable('documents', {
7
+ id: integer('id').primaryKey({ autoIncrement: true }),
8
+ docType: text('doc_type').notNull(), // workflow, rule, frd, design, spike, etc.
9
+ name: text('name').notNull(),
10
+ project: text('project'), // null for global documents
11
+ content: text('content').notNull(),
12
+ metadata: text('metadata'), // JSON string
13
+ cachedAt: integer('cached_at', { mode: 'timestamp' })
14
+ .notNull()
15
+ .default(sql `(unixepoch())`),
16
+ expiresAt: integer('expires_at', { mode: 'timestamp' }).notNull(),
17
+ synced: integer('synced', { mode: 'boolean' }).notNull().default(true),
18
+ }, (table) => ({
19
+ uniqueDocument: unique().on(table.docType, table.name, table.project),
20
+ }));
21
+ /**
22
+ * Cached memories (project context, patterns, decisions)
23
+ */
24
+ export const memories = sqliteTable('memories', {
25
+ id: integer('id').primaryKey({ autoIncrement: true }),
26
+ name: text('name').notNull(),
27
+ project: text('project'), // null for global memories
28
+ content: text('content').notNull(),
29
+ metadata: text('metadata'), // JSON string
30
+ cachedAt: integer('cached_at', { mode: 'timestamp' })
31
+ .notNull()
32
+ .default(sql `(unixepoch())`),
33
+ expiresAt: integer('expires_at', { mode: 'timestamp' }).notNull(),
34
+ synced: integer('synced', { mode: 'boolean' }).notNull().default(true),
35
+ }, (table) => ({
36
+ uniqueMemory: unique().on(table.name, table.project),
37
+ }));
38
+ /**
39
+ * Write queue for offline operations
40
+ */
41
+ export const syncQueue = sqliteTable('sync_queue', {
42
+ id: integer('id').primaryKey({ autoIncrement: true }),
43
+ operation: text('operation').notNull(), // create_document, update_document, set_memory, etc.
44
+ payload: text('payload').notNull(), // JSON string
45
+ createdAt: integer('created_at', { mode: 'timestamp' })
46
+ .notNull()
47
+ .default(sql `(unixepoch())`),
48
+ status: text('status').notNull().default('pending'), // pending, completed, failed
49
+ error: text('error'),
50
+ attempts: integer('attempts').notNull().default(0),
51
+ lastAttemptAt: integer('last_attempt_at', { mode: 'timestamp' }),
52
+ });
53
+ /**
54
+ * Connection health log
55
+ */
56
+ export const connectionLog = sqliteTable('connection_log', {
57
+ id: integer('id').primaryKey({ autoIncrement: true }),
58
+ timestamp: integer('timestamp', { mode: 'timestamp' })
59
+ .notNull()
60
+ .default(sql `(unixepoch())`),
61
+ state: text('state').notNull(), // connected, disconnected, reconnecting, failed
62
+ latencyMs: integer('latency_ms'),
63
+ error: text('error'),
64
+ });
65
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE;IAChD,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,2CAA2C;IAChF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,4BAA4B;IACtD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,cAAc;IAC1C,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SAClD,OAAO,EAAE;SACT,OAAO,CAAC,GAAG,CAAA,eAAe,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACjE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACvE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;CACtE,CAAC,CAAC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE;IAC9C,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,2BAA2B;IACrD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,cAAc;IAC1C,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SAClD,OAAO,EAAE;SACT,OAAO,CAAC,GAAG,CAAA,eAAe,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACjE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACvE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;CACrD,CAAC,CAAC,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE;IACjD,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACrD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,qDAAqD;IAC7F,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,cAAc;IAClD,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACpD,OAAO,EAAE;SACT,OAAO,CAAC,GAAG,CAAA,eAAe,CAAC;IAC9B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,6BAA6B;IAClF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,aAAa,EAAE,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;CACjE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,gBAAgB,EAAE;IACzD,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACrD,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;SACnD,OAAO,EAAE;SACT,OAAO,CAAC,GAAG,CAAA,eAAe,CAAC;IAC9B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,gDAAgD;IAChF,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;CACrB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { ProxyServer } from './lib/proxy-server.js';
2
+ export { ConnectionManager } from './lib/connection-manager.js';
3
+ export { CacheManager } from './lib/cache-manager.js';
4
+ export { createDatabase, runMigrations } from './db/client.js';
5
+ export type { Config } from './types/config.js';
6
+ export type { MCPRequest, MCPResponse, ConnectionState } from './types/mcp.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { ProxyServer } from './lib/proxy-server.js';
2
+ export { ConnectionManager } from './lib/connection-manager.js';
3
+ export { CacheManager } from './lib/cache-manager.js';
4
+ export { createDatabase, runMigrations } from './db/client.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cache-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/cache-manager.test.ts"],"names":[],"mappings":""}