db-mcp 4.0.0 → 5.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 (138) hide show
  1. package/README.md +30 -25
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/adapters/database-adapter.d.ts +9 -0
  4. package/dist/adapters/database-adapter.d.ts.map +1 -1
  5. package/dist/adapters/sqlite/query-executor.d.ts.map +1 -1
  6. package/dist/adapters/sqlite/read-write-lock.d.ts +49 -0
  7. package/dist/adapters/sqlite/read-write-lock.d.ts.map +1 -0
  8. package/dist/adapters/sqlite/schemas/admin.d.ts +5 -5
  9. package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -1
  10. package/dist/adapters/sqlite/schemas/core.d.ts +94 -0
  11. package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -1
  12. package/dist/adapters/sqlite/schemas/introspection.d.ts +8 -7
  13. package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -1
  14. package/dist/adapters/sqlite/schemas/migration.d.ts +2 -2
  15. package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -1
  16. package/dist/adapters/sqlite/sqlite-adapter.d.ts +6 -0
  17. package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -1
  18. package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -1
  19. package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -1
  20. package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -1
  21. package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -1
  22. package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -1
  23. package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -1
  24. package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -1
  25. package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -1
  26. package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -1
  27. package/dist/adapters/sqlite/tools/core/versioning.d.ts +19 -0
  28. package/dist/adapters/sqlite/tools/core/versioning.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -1
  30. package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -1
  31. package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -1
  32. package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -1
  33. package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -1
  34. package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -1
  35. package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -1
  36. package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -1
  37. package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -1
  38. package/dist/adapters/sqlite/types.d.ts +1 -1
  39. package/dist/adapters/sqlite/types.d.ts.map +1 -1
  40. package/dist/adapters/sqlite-native/index.d.ts +1 -1
  41. package/dist/adapters/sqlite-native/index.d.ts.map +1 -1
  42. package/dist/adapters/sqlite-native/tools/window/helpers.d.ts +52 -0
  43. package/dist/adapters/sqlite-native/tools/window/helpers.d.ts.map +1 -0
  44. package/dist/adapters/sqlite-native/tools/window/index.d.ts +7 -0
  45. package/dist/adapters/sqlite-native/tools/window/index.d.ts.map +1 -0
  46. package/dist/adapters/sqlite-native/tools/window/lag-lead.d.ts +7 -0
  47. package/dist/adapters/sqlite-native/tools/window/lag-lead.d.ts.map +1 -0
  48. package/dist/adapters/sqlite-native/tools/window/moving-average.d.ts +7 -0
  49. package/dist/adapters/sqlite-native/tools/window/moving-average.d.ts.map +1 -0
  50. package/dist/adapters/sqlite-native/tools/window/ntile.d.ts +7 -0
  51. package/dist/adapters/sqlite-native/tools/window/ntile.d.ts.map +1 -0
  52. package/dist/adapters/sqlite-native/tools/window/rank.d.ts +7 -0
  53. package/dist/adapters/sqlite-native/tools/window/rank.d.ts.map +1 -0
  54. package/dist/adapters/sqlite-native/tools/window/row-number.d.ts +7 -0
  55. package/dist/adapters/sqlite-native/tools/window/row-number.d.ts.map +1 -0
  56. package/dist/adapters/sqlite-native/tools/window/running-total.d.ts +7 -0
  57. package/dist/adapters/sqlite-native/tools/window/running-total.d.ts.map +1 -0
  58. package/dist/adapters/sqlite-native/tools/window/schemas.d.ts +159 -0
  59. package/dist/adapters/sqlite-native/tools/window/schemas.d.ts.map +1 -0
  60. package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -1
  61. package/dist/audit/logger.d.ts.map +1 -1
  62. package/dist/auth/authorization-server-discovery.d.ts.map +1 -1
  63. package/dist/auth/scopes/mapping.d.ts.map +1 -1
  64. package/dist/auth/token-validator.d.ts.map +1 -1
  65. package/dist/{chunk-EQF3WZHX.js → chunk-27C5EE6U.js} +15 -2
  66. package/dist/{chunk-R5M4WKDM.js → chunk-2TYICG7B.js} +381 -185
  67. package/dist/{chunk-NIC5Z2CA.js → chunk-LLIAIJPO.js} +394 -381
  68. package/dist/{chunk-TGE7LFAR.js → chunk-UE7GVOBV.js} +1069 -355
  69. package/dist/{chunk-Y57WFKAP.js → chunk-XLIYO3YA.js} +178 -72
  70. package/dist/cli.js +18 -6
  71. package/dist/codemode/api-constants.d.ts.map +1 -1
  72. package/dist/codemode/api.d.ts.map +1 -1
  73. package/dist/codemode/sandbox-factory.d.ts.map +1 -1
  74. package/dist/codemode/sandbox.d.ts +0 -3
  75. package/dist/codemode/sandbox.d.ts.map +1 -1
  76. package/dist/codemode/security.d.ts.map +1 -1
  77. package/dist/codemode/types.d.ts +2 -0
  78. package/dist/codemode/types.d.ts.map +1 -1
  79. package/dist/constants/server-instructions.d.ts.map +1 -1
  80. package/dist/filtering/tool-constants.d.ts +5 -5
  81. package/dist/filtering/tool-constants.d.ts.map +1 -1
  82. package/dist/{http-2WGR3E5K.js → http-ZDMK46QU.js} +183 -32
  83. package/dist/index.js +4 -4
  84. package/dist/observability/system-db.d.ts.map +1 -1
  85. package/dist/server/mcp-server.d.ts.map +1 -1
  86. package/dist/server/registration/admin-tools.d.ts.map +1 -1
  87. package/dist/server/registration/audit-tools/backup.d.ts +8 -0
  88. package/dist/server/registration/audit-tools/backup.d.ts.map +1 -0
  89. package/dist/server/registration/audit-tools/helpers.d.ts +11 -0
  90. package/dist/server/registration/audit-tools/helpers.d.ts.map +1 -0
  91. package/dist/server/registration/audit-tools/index.d.ts +4 -0
  92. package/dist/server/registration/audit-tools/index.d.ts.map +1 -0
  93. package/dist/server/registration/audit-tools/resource.d.ts +8 -0
  94. package/dist/server/registration/audit-tools/resource.d.ts.map +1 -0
  95. package/dist/server/registration/audit-tools/search.d.ts +7 -0
  96. package/dist/server/registration/audit-tools/search.d.ts.map +1 -0
  97. package/dist/server/registration/index.d.ts +1 -1
  98. package/dist/server/registration/index.d.ts.map +1 -1
  99. package/dist/{sqlite-D4WCNPU4.js → sqlite-XWZPEZJO.js} +192 -19
  100. package/dist/{sqlite-native-DLVS2T52.js → sqlite-native-5GQ3WKCZ.js} +156 -117
  101. package/dist/transports/http/middleware.d.ts.map +1 -1
  102. package/dist/transports/http/oauth.d.ts.map +1 -1
  103. package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -1
  104. package/dist/transports/http/sessions/stateful.d.ts +5 -1
  105. package/dist/transports/http/sessions/stateful.d.ts.map +1 -1
  106. package/dist/transports/http/transport.d.ts +2 -0
  107. package/dist/transports/http/transport.d.ts.map +1 -1
  108. package/dist/transports/http/types.d.ts +9 -0
  109. package/dist/transports/http/types.d.ts.map +1 -1
  110. package/dist/types/auth.d.ts +4 -0
  111. package/dist/types/auth.d.ts.map +1 -1
  112. package/dist/types/server.d.ts +3 -0
  113. package/dist/types/server.d.ts.map +1 -1
  114. package/dist/utils/annotations.d.ts +8 -0
  115. package/dist/utils/annotations.d.ts.map +1 -1
  116. package/dist/utils/errors/categories.d.ts +16 -11
  117. package/dist/utils/errors/categories.d.ts.map +1 -1
  118. package/dist/utils/errors/classes.d.ts +37 -0
  119. package/dist/utils/errors/classes.d.ts.map +1 -1
  120. package/dist/utils/errors/format.d.ts +2 -2
  121. package/dist/utils/errors/format.d.ts.map +1 -1
  122. package/dist/utils/errors/index.d.ts +1 -1
  123. package/dist/utils/errors/index.d.ts.map +1 -1
  124. package/dist/utils/errors/suggestions.d.ts +1 -0
  125. package/dist/utils/errors/suggestions.d.ts.map +1 -1
  126. package/dist/utils/index.d.ts +2 -0
  127. package/dist/utils/index.d.ts.map +1 -1
  128. package/dist/utils/security-utils.d.ts +29 -0
  129. package/dist/utils/security-utils.d.ts.map +1 -0
  130. package/dist/utils/stream-utils.d.ts +14 -0
  131. package/dist/utils/stream-utils.d.ts.map +1 -0
  132. package/dist/utils/where-clause.d.ts +0 -13
  133. package/dist/utils/where-clause.d.ts.map +1 -1
  134. package/package.json +35 -38
  135. package/dist/adapters/sqlite-native/tools/window.d.ts +0 -7
  136. package/dist/adapters/sqlite-native/tools/window.d.ts.map +0 -1
  137. package/dist/server/registration/audit-tools.d.ts +0 -17
  138. package/dist/server/registration/audit-tools.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { RowRecordSchema, WhereConditionSchema, resolveAliases, autoEnableWal, detectAndSetJsonbSupport, SchemaManager, applyCommonPragmas, isDDL, getResourceDefinitions, getPromptDefinitions, normalizeSqliteParams, translateSqliteError, getCoreTools, getJsonOperationTools, getJsonHelperTools, getTextTools, getStatsTools, getVirtualTools, getVectorTools, getGeoTools, getAdminTools, getIntrospectionTools, getMigrationTools, getCodeModeTools, validateTableExists, sanitizeFtsQuery, FtsHeadlineSchema } from './chunk-TGE7LFAR.js';
2
- import { DatabaseAdapter } from './chunk-EQF3WZHX.js';
3
- import { ErrorResponseFields, write, readOnly, sanitizeIdentifier, buildWhereClause, VERSION, validateIdentifier, admin, writeFs, getToolGroupIcon, idempotent } from './chunk-R5M4WKDM.js';
4
- import { logger, formatHandlerError, ValidationError, ConfigurationError, ERROR_CODES, ConnectionError, DbMcpError, ResourceNotFoundError, ExtensionNotAvailableError } from './chunk-Y57WFKAP.js';
1
+ import { RowRecordSchema, WhereConditionSchema, autoEnableWal, detectAndSetJsonbSupport, SchemaManager, applyCommonPragmas, isDDL, getResourceDefinitions, getPromptDefinitions, resolveAliases, normalizeSqliteParams, translateSqliteError, getCoreTools, getJsonOperationTools, getJsonHelperTools, getTextTools, getStatsTools, getVirtualTools, getVectorTools, getGeoTools, getAdminTools, getIntrospectionTools, getMigrationTools, getCodeModeTools, validateTableExists, sanitizeFtsQuery, FtsHeadlineSchema } from './chunk-UE7GVOBV.js';
2
+ import { DatabaseAdapter } from './chunk-27C5EE6U.js';
3
+ import { ErrorResponseFields, write, readOnly, VERSION, sanitizeIdentifier, buildWhereClause, admin, validateIdentifier, writeFs, getToolGroupIcon, idempotent } from './chunk-2TYICG7B.js';
4
+ import { logger, formatHandlerError, ValidationError, ConfigurationError, ERROR_CODES, ConnectionError, DbMcpError, ErrorCategory, ResourceNotFoundError, ExtensionNotAvailableError } from './chunk-XLIYO3YA.js';
5
5
  import { z } from 'zod';
6
6
  import { createRequire } from 'module';
7
7
  import { fileURLToPath } from 'url';
@@ -452,6 +452,7 @@ function createFtsHeadlineTool(adapter) {
452
452
  }
453
453
  const queryEscaped = sanitizedQuery.replace(/'/g, "''");
454
454
  let columnIndex = 0;
455
+ let snippetColumnIndex = -1;
455
456
  if (input.column) {
456
457
  const colResult = await adapter.executeReadQuery(
457
458
  `PRAGMA table_info("${input.table}")`,
@@ -463,12 +464,13 @@ function createFtsHeadlineTool(adapter) {
463
464
  );
464
465
  if (found >= 0) {
465
466
  columnIndex = found;
467
+ snippetColumnIndex = found;
466
468
  }
467
469
  }
468
470
  const startSel = input.startSel.replace(/'/g, "''");
469
471
  const stopSel = input.stopSel.replace(/'/g, "''");
470
472
  const highlightExpr = `highlight("${input.table}", ${String(columnIndex)}, '${startSel}', '${stopSel}')`;
471
- const snippetExpr = `snippet("${input.table}", ${String(columnIndex)}, '${startSel}', '${stopSel}', '...', ${String(input.snippetWords)})`;
473
+ const snippetExpr = `snippet("${input.table}", ${String(snippetColumnIndex)}, '${startSel}', '${stopSel}', '...', ${String(input.snippetWords)})`;
472
474
  if (input.query === "*" || input.query.trim() === "") {
473
475
  const sql2 = `SELECT *, NULL as headline, NULL as snippet, NULL as rank FROM "${input.table}" ORDER BY rowid LIMIT ${String(input.limit)}`;
474
476
  const result2 = await adapter.executeReadQuery(sql2, queryParams);
@@ -656,14 +658,14 @@ var BeginTransactionSchema = z.object({
656
658
  mode: z.enum(["deferred", "immediate", "exclusive"]).optional().default("deferred").describe(
657
659
  "Transaction mode: deferred waits for first write, immediate acquires lock immediately, exclusive blocks all access"
658
660
  )
659
- });
661
+ }).strict();
660
662
  var SavepointSchema = z.object({
661
663
  name: z.string().describe("Savepoint name")
662
- });
664
+ }).strict();
663
665
  var ExecuteInTransactionSchema = z.object({
664
666
  statements: z.array(z.string()).describe("Array of SQL statements to execute in order"),
665
667
  rollbackOnError: z.boolean().optional().default(true).describe("If true, rollback all changes when any statement fails")
666
- });
668
+ }).strict();
667
669
  function getTransactionTools(adapter) {
668
670
  return [
669
671
  createBeginTransactionTool(adapter),
@@ -706,7 +708,7 @@ function createTransactionStatusTool(adapter) {
706
708
  name: "sqlite_transaction_status",
707
709
  description: "Check whether a transaction is currently active. Returns status and a boolean flag. Read-only \u2014 does not alter transaction state.",
708
710
  group: "transactions",
709
- inputSchema: z.object({}),
711
+ inputSchema: z.object({}).strict(),
710
712
  outputSchema: TransactionStatusOutputSchema,
711
713
  annotations: readOnly("Transaction Status"),
712
714
  requiredScopes: ["read"],
@@ -731,7 +733,7 @@ function createCommitTransactionTool(adapter) {
731
733
  name: "sqlite_transaction_commit",
732
734
  description: "Commit the current transaction, making all changes permanent.",
733
735
  group: "transactions",
734
- inputSchema: z.object({}),
736
+ inputSchema: z.object({}).strict(),
735
737
  outputSchema: TransactionCommitOutputSchema,
736
738
  annotations: write("Commit Transaction"),
737
739
  requiredScopes: ["write"],
@@ -754,7 +756,7 @@ function createRollbackTransactionTool(adapter) {
754
756
  description: "Rollback the current transaction, discarding all changes.",
755
757
  group: "transactions",
756
758
  outputSchema: TransactionRollbackOutputSchema,
757
- inputSchema: z.object({}),
759
+ inputSchema: z.object({}).strict(),
758
760
  annotations: write("Rollback Transaction"),
759
761
  requiredScopes: ["write"],
760
762
  handler: (_params, _context) => {
@@ -952,6 +954,14 @@ function createExecuteInTransactionTool(adapter) {
952
954
  if (transactionStarted) {
953
955
  adapter.commitTransaction();
954
956
  }
957
+ if (results.length > 50) {
958
+ const omitted = results.length - 50;
959
+ results.splice(50);
960
+ results.push({
961
+ statement: "TRUNCATED",
962
+ error: `Results array truncated. Omitted ${omitted} results to conserve payload size.`
963
+ });
964
+ }
955
965
  return {
956
966
  success,
957
967
  error: success ? void 0 : "Transaction completed with errors",
@@ -982,17 +992,28 @@ function createExecuteInTransactionTool(adapter) {
982
992
  } else if (!transactionStarted && !originallyInTransaction) {
983
993
  rollbackMessage = `Transaction failed to start: ${message}`;
984
994
  }
995
+ const totalExecuted = results.length;
996
+ if (results.length > 50) {
997
+ const omitted = results.length - 50;
998
+ results.splice(50);
999
+ results.push({
1000
+ statement: "TRUNCATED",
1001
+ error: `Results array truncated. Omitted ${omitted} results to conserve payload size.`
1002
+ });
1003
+ }
985
1004
  return {
986
1005
  ...formatted,
987
1006
  error: formatted.error ?? rollbackMessage,
988
1007
  message: rollbackMessage,
989
- statementsExecuted: results.length,
1008
+ statementsExecuted: totalExecuted,
990
1009
  results
991
1010
  };
992
1011
  }
993
1012
  }
994
1013
  };
995
1014
  }
1015
+
1016
+ // src/adapters/sqlite-native/tools/window/helpers.ts
996
1017
  var coerceNumber = (val) => {
997
1018
  if (typeof val === "string") {
998
1019
  if (val.trim() === "") return void 0;
@@ -1003,93 +1024,6 @@ var coerceNumber = (val) => {
1003
1024
  };
1004
1025
  var coerceEnumValues2 = (allowed) => (val) => typeof val === "string" && allowed.includes(val) ? val : void 0;
1005
1026
  var VALID_DIRECTIONS = ["lag", "lead"];
1006
- var RowNumberSchema = z.object({
1007
- table: z.string().describe("Table name"),
1008
- orderBy: z.string().describe("Column(s) to order by"),
1009
- partitionBy: z.string().optional().describe("Column(s) to partition by"),
1010
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1011
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1012
- limit: z.preprocess(
1013
- coerceNumber,
1014
- z.number().optional().default(20).describe("Maximum rows to return")
1015
- )
1016
- });
1017
- var RankSchema = z.object({
1018
- table: z.string().describe("Table name"),
1019
- orderBy: z.string().describe("Column(s) to order by (determines rank)"),
1020
- partitionBy: z.string().optional().describe("Column(s) to partition by"),
1021
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1022
- rankType: z.preprocess(
1023
- coerceEnumValues2(["rank", "dense_rank", "percent_rank"]),
1024
- z.enum(["rank", "dense_rank", "percent_rank"]).optional().default("rank").describe("Rank function type")
1025
- ),
1026
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1027
- limit: z.preprocess(
1028
- coerceNumber,
1029
- z.number().optional().default(20).describe("Maximum rows to return")
1030
- )
1031
- });
1032
- var LagLeadSchema = z.object({
1033
- table: z.string().describe("Table name"),
1034
- column: z.string().describe("Column to get lag/lead value from"),
1035
- orderBy: z.string().describe("Column(s) to order by"),
1036
- direction: z.string().describe("LAG (previous) or LEAD (next) row"),
1037
- offset: z.preprocess(
1038
- coerceNumber,
1039
- z.number().optional().default(1).describe("Number of rows to look back/ahead")
1040
- ),
1041
- defaultValue: z.string().optional().describe("Default value if no row exists"),
1042
- partitionBy: z.string().optional().describe("Column(s) to partition by"),
1043
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1044
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1045
- limit: z.preprocess(
1046
- coerceNumber,
1047
- z.number().optional().default(20).describe("Maximum rows to return")
1048
- )
1049
- });
1050
- var RunningTotalSchema = z.object({
1051
- table: z.string().describe("Table name"),
1052
- column: z.string().describe("Column to sum"),
1053
- orderBy: z.string().describe("Column(s) to order by"),
1054
- partitionBy: z.string().optional().describe("Reset running total for each partition"),
1055
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1056
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1057
- limit: z.preprocess(
1058
- coerceNumber,
1059
- z.number().optional().default(20).describe("Maximum rows to return")
1060
- )
1061
- });
1062
- var MovingAverageSchema = z.object({
1063
- table: z.string().describe("Table name"),
1064
- column: z.string().describe("Column to average"),
1065
- orderBy: z.string().describe("Column(s) to order by"),
1066
- windowSize: z.preprocess(
1067
- coerceNumber,
1068
- z.number().describe("Number of rows in the moving window")
1069
- ),
1070
- partitionBy: z.string().optional().describe("Column(s) to partition by"),
1071
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1072
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1073
- limit: z.preprocess(
1074
- coerceNumber,
1075
- z.number().optional().default(20).describe("Maximum rows to return")
1076
- )
1077
- });
1078
- var NtileSchema = z.object({
1079
- table: z.string().describe("Table name"),
1080
- orderBy: z.string().describe("Column(s) to order by"),
1081
- buckets: z.preprocess(
1082
- coerceNumber,
1083
- z.number().describe("Number of buckets (e.g., 4 for quartiles)")
1084
- ),
1085
- partitionBy: z.string().optional().describe("Column(s) to partition by"),
1086
- selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1087
- conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1088
- limit: z.preprocess(
1089
- coerceNumber,
1090
- z.number().optional().default(20).describe("Maximum rows to return")
1091
- )
1092
- });
1093
1027
  async function validateTableExists2(adapter, table) {
1094
1028
  validateIdentifier(table);
1095
1029
  const result = await adapter.executeReadQuery(
@@ -1135,7 +1069,7 @@ async function validateOrderByColumns(adapter, table, orderBy) {
1135
1069
  throw new DbMcpError(
1136
1070
  `Invalid ORDER BY expression: '${colName}' contains disallowed characters. Only column names with optional ASC/DESC are permitted.`,
1137
1071
  "NATIVE_WINDOW_INVALID_ORDERBY",
1138
- "validation" /* VALIDATION */
1072
+ ErrorCategory.VALIDATION
1139
1073
  );
1140
1074
  }
1141
1075
  if (/^(ASC|DESC)$/i.test(colName)) continue;
@@ -1251,19 +1185,100 @@ function validateDefaultValue(value) {
1251
1185
  throw new DbMcpError(
1252
1186
  `Invalid default value: '${value}'. Only numeric literals, single-quoted strings, or NULL are permitted.`,
1253
1187
  "NATIVE_WINDOW_INVALID_DEFAULT",
1254
- "validation" /* VALIDATION */
1188
+ ErrorCategory.VALIDATION
1255
1189
  );
1256
1190
  }
1257
- function getWindowTools(adapter) {
1258
- return [
1259
- createRowNumberTool(adapter),
1260
- createRankTool(adapter),
1261
- createLagLeadTool(adapter),
1262
- createRunningTotalTool(adapter),
1263
- createMovingAverageTool(adapter),
1264
- createNtileTool(adapter)
1265
- ];
1266
- }
1191
+
1192
+ // src/adapters/sqlite-native/tools/window/schemas.ts
1193
+ var RowNumberSchema = z.object({
1194
+ table: z.string().describe("Table name"),
1195
+ orderBy: z.string().describe("Column(s) to order by"),
1196
+ partitionBy: z.string().optional().describe("Column(s) to partition by"),
1197
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1198
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1199
+ limit: z.preprocess(
1200
+ coerceNumber,
1201
+ z.number().optional().default(20).describe("Maximum rows to return")
1202
+ )
1203
+ });
1204
+ var RankSchema = z.object({
1205
+ table: z.string().describe("Table name"),
1206
+ orderBy: z.string().describe("Column(s) to order by (determines rank)"),
1207
+ partitionBy: z.string().optional().describe("Column(s) to partition by"),
1208
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1209
+ rankType: z.preprocess(
1210
+ coerceEnumValues2(["rank", "dense_rank", "percent_rank"]),
1211
+ z.enum(["rank", "dense_rank", "percent_rank"]).optional().default("rank").describe("Rank function type")
1212
+ ),
1213
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1214
+ limit: z.preprocess(
1215
+ coerceNumber,
1216
+ z.number().optional().default(20).describe("Maximum rows to return")
1217
+ )
1218
+ });
1219
+ var LagLeadSchema = z.object({
1220
+ table: z.string().describe("Table name"),
1221
+ column: z.string().describe("Column to get lag/lead value from"),
1222
+ orderBy: z.string().describe("Column(s) to order by"),
1223
+ direction: z.string().describe("LAG (previous) or LEAD (next) row"),
1224
+ offset: z.preprocess(
1225
+ coerceNumber,
1226
+ z.number().optional().default(1).describe("Number of rows to look back/ahead")
1227
+ ),
1228
+ defaultValue: z.string().optional().describe("Default value if no row exists"),
1229
+ partitionBy: z.string().optional().describe("Column(s) to partition by"),
1230
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1231
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1232
+ limit: z.preprocess(
1233
+ coerceNumber,
1234
+ z.number().optional().default(20).describe("Maximum rows to return")
1235
+ )
1236
+ });
1237
+ var RunningTotalSchema = z.object({
1238
+ table: z.string().describe("Table name"),
1239
+ column: z.string().describe("Column to sum"),
1240
+ orderBy: z.string().describe("Column(s) to order by"),
1241
+ partitionBy: z.string().optional().describe("Reset running total for each partition"),
1242
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1243
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1244
+ limit: z.preprocess(
1245
+ coerceNumber,
1246
+ z.number().optional().default(20).describe("Maximum rows to return")
1247
+ )
1248
+ });
1249
+ var MovingAverageSchema = z.object({
1250
+ table: z.string().describe("Table name"),
1251
+ column: z.string().describe("Column to average"),
1252
+ orderBy: z.string().describe("Column(s) to order by"),
1253
+ windowSize: z.preprocess(
1254
+ coerceNumber,
1255
+ z.number().describe("Number of rows in the moving window")
1256
+ ),
1257
+ partitionBy: z.string().optional().describe("Column(s) to partition by"),
1258
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1259
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1260
+ limit: z.preprocess(
1261
+ coerceNumber,
1262
+ z.number().optional().default(20).describe("Maximum rows to return")
1263
+ )
1264
+ });
1265
+ var NtileSchema = z.object({
1266
+ table: z.string().describe("Table name"),
1267
+ orderBy: z.string().describe("Column(s) to order by"),
1268
+ buckets: z.preprocess(
1269
+ coerceNumber,
1270
+ z.number().describe("Number of buckets (e.g., 4 for quartiles)")
1271
+ ),
1272
+ partitionBy: z.string().optional().describe("Column(s) to partition by"),
1273
+ selectColumns: z.array(z.string()).optional().describe("Columns to include in result"),
1274
+ conditions: z.array(WhereConditionSchema).optional().describe("Optional WHERE clause conditions"),
1275
+ limit: z.preprocess(
1276
+ coerceNumber,
1277
+ z.number().optional().default(20).describe("Maximum rows to return")
1278
+ )
1279
+ });
1280
+
1281
+ // src/adapters/sqlite-native/tools/window/row-number.ts
1267
1282
  function createRowNumberTool(adapter) {
1268
1283
  return {
1269
1284
  name: "sqlite_window_row_number",
@@ -1315,6 +1330,8 @@ function createRowNumberTool(adapter) {
1315
1330
  }
1316
1331
  };
1317
1332
  }
1333
+
1334
+ // src/adapters/sqlite-native/tools/window/rank.ts
1318
1335
  function createRankTool(adapter) {
1319
1336
  return {
1320
1337
  name: "sqlite_window_rank",
@@ -1368,6 +1385,8 @@ function createRankTool(adapter) {
1368
1385
  }
1369
1386
  };
1370
1387
  }
1388
+
1389
+ // src/adapters/sqlite-native/tools/window/lag-lead.ts
1371
1390
  function createLagLeadTool(adapter) {
1372
1391
  return {
1373
1392
  name: "sqlite_window_lag_lead",
@@ -1443,6 +1462,8 @@ function createLagLeadTool(adapter) {
1443
1462
  }
1444
1463
  };
1445
1464
  }
1465
+
1466
+ // src/adapters/sqlite-native/tools/window/running-total.ts
1446
1467
  function createRunningTotalTool(adapter) {
1447
1468
  return {
1448
1469
  name: "sqlite_window_running_total",
@@ -1499,6 +1520,8 @@ function createRunningTotalTool(adapter) {
1499
1520
  }
1500
1521
  };
1501
1522
  }
1523
+
1524
+ // src/adapters/sqlite-native/tools/window/moving-average.ts
1502
1525
  function createMovingAverageTool(adapter) {
1503
1526
  return {
1504
1527
  name: "sqlite_window_moving_avg",
@@ -1557,6 +1580,8 @@ function createMovingAverageTool(adapter) {
1557
1580
  }
1558
1581
  };
1559
1582
  }
1583
+
1584
+ // src/adapters/sqlite-native/tools/window/ntile.ts
1560
1585
  function createNtileTool(adapter) {
1561
1586
  return {
1562
1587
  name: "sqlite_window_ntile",
@@ -1609,6 +1634,18 @@ function createNtileTool(adapter) {
1609
1634
  }
1610
1635
  };
1611
1636
  }
1637
+
1638
+ // src/adapters/sqlite-native/tools/window/index.ts
1639
+ function getWindowTools(adapter) {
1640
+ return [
1641
+ createRowNumberTool(adapter),
1642
+ createRankTool(adapter),
1643
+ createLagLeadTool(adapter),
1644
+ createRunningTotalTool(adapter),
1645
+ createMovingAverageTool(adapter),
1646
+ createNtileTool(adapter)
1647
+ ];
1648
+ }
1612
1649
  var coerceNumber2 = (val) => {
1613
1650
  if (typeof val === "string") {
1614
1651
  if (val.trim() === "") return void 0;
@@ -2740,16 +2777,18 @@ function savepoint(db, name) {
2740
2777
  }
2741
2778
  function releaseSavepoint(db, name) {
2742
2779
  if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
2743
- throw new Error(
2744
- "Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars."
2780
+ throw new ValidationError(
2781
+ "Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars.",
2782
+ "INVALID_SAVEPOINT_NAME"
2745
2783
  );
2746
2784
  }
2747
2785
  db.exec(`RELEASE SAVEPOINT "${name}"`);
2748
2786
  }
2749
2787
  function rollbackToSavepoint(db, name) {
2750
2788
  if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
2751
- throw new Error(
2752
- "Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars."
2789
+ throw new ValidationError(
2790
+ "Invalid savepoint name. Must start with a letter/underscore and contain only alphanumeric chars.",
2791
+ "INVALID_SAVEPOINT_NAME"
2753
2792
  );
2754
2793
  }
2755
2794
  db.exec(`ROLLBACK TO SAVEPOINT "${name}"`);
@@ -3068,7 +3107,7 @@ var NativeSqliteAdapter = class extends DatabaseAdapter {
3068
3107
  throw new DbMcpError(
3069
3108
  "Invalid table name",
3070
3109
  "SQLITE_INVALID_TABLE",
3071
- "validation" /* VALIDATION */
3110
+ ErrorCategory.VALIDATION
3072
3111
  );
3073
3112
  }
3074
3113
  const result = await this.executeReadQuery(
@@ -3078,7 +3117,7 @@ var NativeSqliteAdapter = class extends DatabaseAdapter {
3078
3117
  throw new DbMcpError(
3079
3118
  `Table '${tableName}' does not exist`,
3080
3119
  "SQLITE_TABLE_NOT_FOUND",
3081
- "resource" /* RESOURCE */
3120
+ ErrorCategory.RESOURCE
3082
3121
  );
3083
3122
  }
3084
3123
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/transports/http/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkCpE;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB1E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA6CzD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA+CjE"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/transports/http/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkCpE;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkB1E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA6CzD;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAqDjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/transports/http/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAiCnE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,kBAAkB,GACxB,IAAI,CA0KN;AAMD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/transports/http/oauth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAiCnE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,kBAAkB,GACxB,IAAI,CA0KN;AAMD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf"}
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-sse.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/legacy-sse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAStD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAiLvE"}
1
+ {"version":3,"file":"legacy-sse.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/legacy-sse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAStD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA0LvE"}
@@ -5,8 +5,12 @@ import type { HttpTransportState } from "../types.js";
5
5
  * Returns true if access is allowed, false if denied.
6
6
  */
7
7
  export declare function verifySessionOwner(state: HttpTransportState, sessionId: string, reqAuthSub: string | undefined): boolean;
8
+ /**
9
+ * Helper to update session activity timestamp
10
+ */
11
+ export declare function touchSession(state: HttpTransportState, sessionId: string): void;
8
12
  /**
9
13
  * Set up stateful mode endpoints with session management and SSE
10
14
  */
11
- export declare function setupStatefulEndpoints(state: HttpTransportState): void;
15
+ export declare function setupStatefulEndpoints(state: HttpTransportState): ReturnType<typeof setInterval>;
12
16
  //# sourceMappingURL=stateful.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateful.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/stateful.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUtD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAOT;AAYD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAuRtE"}
1
+ {"version":3,"file":"stateful.d.ts","sourceRoot":"","sources":["../../../../src/transports/http/sessions/stateful.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgBtD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAOT;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,GAChB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,kBAAkB,GACxB,UAAU,CAAC,OAAO,WAAW,CAAC,CAiahC"}
@@ -27,6 +27,8 @@ import type { OAuthResourceServer } from "../../auth/oauth-resource-server.js";
27
27
  export declare class HttpTransport {
28
28
  /** Internal state shared with session/middleware/oauth modules */
29
29
  private readonly state;
30
+ /** Sweep timer for session timeout cleanup */
31
+ private sweepTimer;
30
32
  constructor(config: HttpTransportConfig);
31
33
  /**
32
34
  * Initialize the transport with the MCP server.
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transports/http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,OAAgC,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAKL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAW/E;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,MAAM,EAAE,mBAAmB;IAsBvC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2LlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuE3B;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI;IAIhC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,GAAG,IAAI;CAGhD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAEf"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/transports/http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,OAAgC,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAKL,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAgBpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAW/E;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA+C;gBAErD,MAAM,EAAE,mBAAmB;IAyBvC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2LlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4E3B;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI;IAIhC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,GAAG,IAAI;CAGhD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAEf"}
@@ -24,6 +24,12 @@ export declare const HTTP_REQUEST_TIMEOUT_MS = 120000;
24
24
  export declare const HTTP_KEEP_ALIVE_TIMEOUT_MS = 65000;
25
25
  /** Headers timeout (ms) — must be > keepAliveTimeout per Node.js docs */
26
26
  export declare const HTTP_HEADERS_TIMEOUT_MS = 66000;
27
+ /** Session idle timeout for stateful HTTP mode (30 minutes) */
28
+ export declare const SESSION_TIMEOUT_MS: number;
29
+ /** Session timeout sweep interval (1 minute) */
30
+ export declare const SESSION_SWEEP_INTERVAL_MS: number;
31
+ /** Session absolute TTL (24 hours) — hard cap regardless of activity */
32
+ export declare const SESSION_ABSOLUTE_TTL_MS: number;
27
33
  /**
28
34
  * HTTP transport configuration
29
35
  */
@@ -114,6 +120,9 @@ export interface HttpTransportState {
114
120
  sseTransports: Map<string, SSEServerTransport>;
115
121
  statelessTransport: StreamableHTTPServerTransport | null;
116
122
  sessionOwners: Map<string, string | undefined>;
123
+ sessionLastActivity: Map<string, number>;
124
+ sessionCreatedAt: Map<string, number>;
125
+ sessionLocks: Map<string, number>;
117
126
  resourceServer: OAuthResourceServer | null;
118
127
  authServerDiscovery: AuthorizationServerDiscovery | null;
119
128
  tokenValidator: TokenValidator | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transports/http/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/transports/http/types.ts"],"names":[],"mappings":"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"}
@@ -75,5 +75,9 @@ export interface RequestContext {
75
75
  * Client IP address for rate limiting fallback
76
76
  */
77
77
  clientIp?: string | undefined;
78
+ /**
79
+ * Whether the request is originating from Code Mode execution
80
+ */
81
+ isCodeMode?: boolean;
78
82
  }
79
83
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpC,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IAEjB,+BAA+B;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,OAAO,GACP,MAAM,MAAM,EAAE,GACd,SAAS,MAAM,IAAI,MAAM,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qBAAqB;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAEpC,wBAAwB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -46,5 +46,8 @@ export interface McpServerConfig {
46
46
  noAuthEnforcement?: boolean;
47
47
  /** Enable Prometheus metrics export at /metrics */
48
48
  metricsExport?: "prometheus";
49
+ /** Allowlisted filesystem roots for IO operations (backup, dump, attach, CSV).
50
+ * Empty array = NO filesystem access. Undefined = legacy mode (same-dir validation). */
51
+ allowedIoRoots?: string[] | undefined;
49
52
  }
50
53
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,SAAS,EAAE,aAAa,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8BAA8B;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mDAAmD;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/types/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,8BAA8B;IAC9B,SAAS,EAAE,aAAa,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,8BAA8B;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,kCAAkC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mDAAmD;IACnD,aAAa,CAAC,EAAE,YAAY,CAAC;IAE7B;6FACyF;IACzF,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC"}
@@ -7,6 +7,7 @@
7
7
  * Follows MCP 2025-11-25 specification.
8
8
  */
9
9
  import type { ToolAnnotations } from "../types/index.js";
10
+ import type { ToolAnnotations as SDKToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
10
11
  /** Read-only query tools (SELECT, schema retrieval, metadata) */
11
12
  export declare const READ_ONLY: ToolAnnotations;
12
13
  /** Standard write tools (INSERT, UPDATE, CREATE) */
@@ -59,4 +60,11 @@ export declare const CODEMODE: ToolAnnotations;
59
60
  * Create codemode annotations with title
60
61
  */
61
62
  export declare function codemode(title: string): ToolAnnotations;
63
+ /**
64
+ * Casts internal annotations to the SDK annotations type.
65
+ * This bypasses TypeScript excess property checks when registering tools directly
66
+ * via the SDK (which lacks our custom sensitiveHint annotation), while preserving
67
+ * the data at runtime for clients that do support it.
68
+ */
69
+ export declare function toSDK(annotations: ToolAnnotations): SDKToolAnnotations;
62
70
  //# sourceMappingURL=annotations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMzD,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,eAKvB,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,WAAW,EAAE,eAKzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,UAAU,EAAE,eAMxB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAMF;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAA2B,GAChC,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,eAMtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD"}
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/utils/annotations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAMhG,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,eAKvB,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,WAAW,EAAE,eAKzB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,UAAU,EAAE,eAMxB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAC;AAMF;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAA2B,GAChC,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEzD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEpD;AAED,gFAAgF;AAChF,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,QAAQ,EAAE,eAKtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEtD;AAED,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,eAMtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB,CAEtE"}
@@ -6,26 +6,31 @@
6
6
  /**
7
7
  * Error categories for classification and handling
8
8
  */
9
- export declare enum ErrorCategory {
9
+ export declare const ErrorCategory: {
10
10
  /** Input validation failures (invalid names, paths, types) */
11
- VALIDATION = "validation",
11
+ readonly VALIDATION: "validation";
12
12
  /** Database connection issues */
13
- CONNECTION = "connection",
13
+ readonly CONNECTION: "connection";
14
14
  /** SQL execution errors */
15
- QUERY = "query",
15
+ readonly QUERY: "query";
16
16
  /** Authorization/permission failures */
17
- PERMISSION = "permission",
17
+ readonly PERMISSION: "permission";
18
18
  /** Configuration/setup issues */
19
- CONFIGURATION = "config",
19
+ readonly CONFIGURATION: "config";
20
20
  /** Missing resources (tables, columns, views) */
21
- RESOURCE = "resource",
21
+ readonly RESOURCE: "resource";
22
22
  /** Authentication failures (invalid credentials, expired tokens) */
23
- AUTHENTICATION = "authentication",
23
+ readonly AUTHENTICATION: "authentication";
24
24
  /** Authorization failures (insufficient scope/permissions) */
25
- AUTHORIZATION = "authorization",
25
+ readonly AUTHORIZATION: "authorization";
26
26
  /** Unexpected internal errors */
27
- INTERNAL = "internal"
28
- }
27
+ readonly INTERNAL: "internal";
28
+ /** Execution timeout errors */
29
+ readonly TIMEOUT: "timeout";
30
+ /** Rate limit enforcement errors */
31
+ readonly RATE_LIMIT: "rate_limit";
32
+ };
33
+ export type ErrorCategory = (typeof ErrorCategory)[keyof typeof ErrorCategory];
29
34
  /**
30
35
  * Structured error response format
31
36
  */