truss-db-mcp 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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +79 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/ai-query.d.ts +7 -0
  8. package/dist/lib/ai-query.d.ts.map +1 -0
  9. package/dist/lib/ai-query.js +224 -0
  10. package/dist/lib/ai-query.js.map +1 -0
  11. package/dist/lib/config.d.ts +4 -0
  12. package/dist/lib/config.d.ts.map +1 -0
  13. package/dist/lib/config.js +30 -0
  14. package/dist/lib/config.js.map +1 -0
  15. package/dist/lib/connection.d.ts +14 -0
  16. package/dist/lib/connection.d.ts.map +1 -0
  17. package/dist/lib/connection.js +175 -0
  18. package/dist/lib/connection.js.map +1 -0
  19. package/dist/lib/license.d.ts +4 -0
  20. package/dist/lib/license.d.ts.map +1 -0
  21. package/dist/lib/license.js +94 -0
  22. package/dist/lib/license.js.map +1 -0
  23. package/dist/lib/query-optimizer.d.ts +3 -0
  24. package/dist/lib/query-optimizer.d.ts.map +1 -0
  25. package/dist/lib/query-optimizer.js +155 -0
  26. package/dist/lib/query-optimizer.js.map +1 -0
  27. package/dist/tools/connect.d.ts +3 -0
  28. package/dist/tools/connect.d.ts.map +1 -0
  29. package/dist/tools/connect.js +37 -0
  30. package/dist/tools/connect.js.map +1 -0
  31. package/dist/tools/describe-table.d.ts +3 -0
  32. package/dist/tools/describe-table.d.ts.map +1 -0
  33. package/dist/tools/describe-table.js +60 -0
  34. package/dist/tools/describe-table.js.map +1 -0
  35. package/dist/tools/export-data.d.ts +3 -0
  36. package/dist/tools/export-data.d.ts.map +1 -0
  37. package/dist/tools/export-data.js +68 -0
  38. package/dist/tools/export-data.js.map +1 -0
  39. package/dist/tools/generate-migration.d.ts +3 -0
  40. package/dist/tools/generate-migration.d.ts.map +1 -0
  41. package/dist/tools/generate-migration.js +36 -0
  42. package/dist/tools/generate-migration.js.map +1 -0
  43. package/dist/tools/list-tables.d.ts +3 -0
  44. package/dist/tools/list-tables.d.ts.map +1 -0
  45. package/dist/tools/list-tables.js +45 -0
  46. package/dist/tools/list-tables.js.map +1 -0
  47. package/dist/tools/natural-language-query.d.ts +3 -0
  48. package/dist/tools/natural-language-query.d.ts.map +1 -0
  49. package/dist/tools/natural-language-query.js +53 -0
  50. package/dist/tools/natural-language-query.js.map +1 -0
  51. package/dist/tools/optimize-query.d.ts +3 -0
  52. package/dist/tools/optimize-query.d.ts.map +1 -0
  53. package/dist/tools/optimize-query.js +51 -0
  54. package/dist/tools/optimize-query.js.map +1 -0
  55. package/dist/tools/query.d.ts +3 -0
  56. package/dist/tools/query.d.ts.map +1 -0
  57. package/dist/tools/query.js +79 -0
  58. package/dist/tools/query.js.map +1 -0
  59. package/dist/types.d.ts +86 -0
  60. package/dist/types.d.ts.map +1 -0
  61. package/dist/types.js +3 -0
  62. package/dist/types.js.map +1 -0
  63. package/evals/eval-query.ts +356 -0
  64. package/evals/run-evals.ts +36 -0
  65. package/evals/test.db +0 -0
  66. package/glama.json +4 -0
  67. package/package.json +47 -0
  68. package/smithery.yaml +18 -0
  69. package/src/index.ts +99 -0
  70. package/src/lib/ai-query.ts +274 -0
  71. package/src/lib/config.ts +33 -0
  72. package/src/lib/connection.ts +263 -0
  73. package/src/lib/license.ts +118 -0
  74. package/src/lib/query-optimizer.ts +191 -0
  75. package/src/tools/connect.ts +43 -0
  76. package/src/tools/describe-table.ts +67 -0
  77. package/src/tools/export-data.ts +81 -0
  78. package/src/tools/generate-migration.ts +43 -0
  79. package/src/tools/list-tables.ts +52 -0
  80. package/src/tools/natural-language-query.ts +61 -0
  81. package/src/tools/optimize-query.ts +59 -0
  82. package/src/tools/query.ts +89 -0
  83. package/src/types.ts +115 -0
  84. package/tsconfig.json +19 -0
package/src/types.ts ADDED
@@ -0,0 +1,115 @@
1
+ // ── License Types ────────────────────────────────────────────────────
2
+
3
+ export type LicenseTier = 'free' | 'pro';
4
+
5
+ export interface LicenseStatus {
6
+ tier: LicenseTier;
7
+ valid: boolean;
8
+ expiresAt: string | null;
9
+ }
10
+
11
+ // ── Config Types ────────────────────────────────────────────────────
12
+
13
+ export interface TrussConfig {
14
+ licenseKey?: string;
15
+ databaseUrl?: string;
16
+ dbHost?: string;
17
+ dbPort?: number;
18
+ dbName?: string;
19
+ dbUser?: string;
20
+ dbPassword?: string;
21
+ anthropicApiKey?: string;
22
+ openaiApiKey?: string;
23
+ trussApiBaseUrl: string;
24
+ dataDir: string;
25
+ }
26
+
27
+ // ── Database Types ──────────────────────────────────────────────────
28
+
29
+ export type DatabaseDialect = 'sqlite' | 'postgresql' | 'mysql';
30
+
31
+ export interface ColumnInfo {
32
+ name: string;
33
+ type: string;
34
+ nullable: boolean;
35
+ defaultValue: string | null;
36
+ primaryKey: boolean;
37
+ }
38
+
39
+ export interface IndexInfo {
40
+ name: string;
41
+ columns: string[];
42
+ unique: boolean;
43
+ }
44
+
45
+ export interface ForeignKeyInfo {
46
+ column: string;
47
+ referencedTable: string;
48
+ referencedColumn: string;
49
+ }
50
+
51
+ export interface TableInfo {
52
+ name: string;
53
+ columns: ColumnInfo[];
54
+ rowCount: number;
55
+ }
56
+
57
+ export interface TableSchema extends TableInfo {
58
+ indexes: IndexInfo[];
59
+ foreignKeys: ForeignKeyInfo[];
60
+ createSql: string;
61
+ }
62
+
63
+ export interface QueryResult {
64
+ rows: Record<string, unknown>[];
65
+ columns: string[];
66
+ rowCount: number;
67
+ executionTimeMs: number;
68
+ }
69
+
70
+ export interface ConnectionInfo {
71
+ connected: boolean;
72
+ dialect: DatabaseDialect;
73
+ tables: string[];
74
+ version: string;
75
+ path?: string;
76
+ }
77
+
78
+ // ── AI Query Types ──────────────────────────────────────────────────
79
+
80
+ export interface NaturalLanguageQueryResult {
81
+ sql: string;
82
+ explanation: string;
83
+ results: QueryResult;
84
+ }
85
+
86
+ // ── Query Optimizer Types ───────────────────────────────────────────
87
+
88
+ export interface OptimizationSuggestion {
89
+ type: 'index' | 'rewrite' | 'warning';
90
+ description: string;
91
+ sql?: string;
92
+ }
93
+
94
+ export interface QueryOptimizationResult {
95
+ explainPlan: string;
96
+ suggestions: OptimizationSuggestion[];
97
+ estimatedImprovement: string;
98
+ }
99
+
100
+ // ── Migration Types ─────────────────────────────────────────────────
101
+
102
+ export interface MigrationResult {
103
+ upSql: string;
104
+ downSql: string;
105
+ }
106
+
107
+ // ── Export Types ─────────────────────────────────────────────────────
108
+
109
+ export type ExportFormat = 'csv' | 'json';
110
+
111
+ export interface ExportResult {
112
+ data: string;
113
+ rowCount: number;
114
+ format: ExportFormat;
115
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "Node16",
5
+ "moduleResolution": "Node16",
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "resolveJsonModule": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true
16
+ },
17
+ "include": ["src/**/*"],
18
+ "exclude": ["node_modules", "dist", "evals"]
19
+ }