fa-mcp-sdk 0.2.3

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +283 -0
  3. package/dist/core/_types_/types.d.ts +67 -0
  4. package/dist/core/_types_/types.d.ts.map +1 -0
  5. package/dist/core/_types_/types.js +2 -0
  6. package/dist/core/_types_/types.js.map +1 -0
  7. package/dist/core/bootstrap/dotenv.d.ts +3 -0
  8. package/dist/core/bootstrap/dotenv.d.ts.map +1 -0
  9. package/dist/core/bootstrap/dotenv.js +3 -0
  10. package/dist/core/bootstrap/dotenv.js.map +1 -0
  11. package/dist/core/bootstrap/init-config.d.ts +11 -0
  12. package/dist/core/bootstrap/init-config.d.ts.map +1 -0
  13. package/dist/core/bootstrap/init-config.js +52 -0
  14. package/dist/core/bootstrap/init-config.js.map +1 -0
  15. package/dist/core/bootstrap/startup-info.d.ts +6 -0
  16. package/dist/core/bootstrap/startup-info.d.ts.map +1 -0
  17. package/dist/core/bootstrap/startup-info.js +43 -0
  18. package/dist/core/bootstrap/startup-info.js.map +1 -0
  19. package/dist/core/constants.d.ts +2 -0
  20. package/dist/core/constants.d.ts.map +1 -0
  21. package/dist/core/constants.js +2 -0
  22. package/dist/core/constants.js.map +1 -0
  23. package/dist/core/consul/access-points-updater.d.ts +5 -0
  24. package/dist/core/consul/access-points-updater.d.ts.map +1 -0
  25. package/dist/core/consul/access-points-updater.js +11 -0
  26. package/dist/core/consul/access-points-updater.js.map +1 -0
  27. package/dist/core/consul/deregister.d.ts +2 -0
  28. package/dist/core/consul/deregister.d.ts.map +1 -0
  29. package/dist/core/consul/deregister.js +21 -0
  30. package/dist/core/consul/deregister.js.map +1 -0
  31. package/dist/core/consul/get-consul-api.d.ts +2 -0
  32. package/dist/core/consul/get-consul-api.d.ts.map +1 -0
  33. package/dist/core/consul/get-consul-api.js +18 -0
  34. package/dist/core/consul/get-consul-api.js.map +1 -0
  35. package/dist/core/consul/register.d.ts +2 -0
  36. package/dist/core/consul/register.d.ts.map +1 -0
  37. package/dist/core/consul/register.js +6 -0
  38. package/dist/core/consul/register.js.map +1 -0
  39. package/dist/core/db/pg-db.d.ts +50 -0
  40. package/dist/core/db/pg-db.d.ts.map +1 -0
  41. package/dist/core/db/pg-db.js +89 -0
  42. package/dist/core/db/pg-db.js.map +1 -0
  43. package/dist/core/debug.d.ts +5 -0
  44. package/dist/core/debug.d.ts.map +1 -0
  45. package/dist/core/debug.js +32 -0
  46. package/dist/core/debug.js.map +1 -0
  47. package/dist/core/ee.d.ts +3 -0
  48. package/dist/core/ee.d.ts.map +1 -0
  49. package/dist/core/ee.js +4 -0
  50. package/dist/core/ee.js.map +1 -0
  51. package/dist/core/errors/BaseMcpError.d.ts +19 -0
  52. package/dist/core/errors/BaseMcpError.d.ts.map +1 -0
  53. package/dist/core/errors/BaseMcpError.js +47 -0
  54. package/dist/core/errors/BaseMcpError.js.map +1 -0
  55. package/dist/core/errors/ValidationError.d.ts +5 -0
  56. package/dist/core/errors/ValidationError.d.ts.map +1 -0
  57. package/dist/core/errors/ValidationError.js +7 -0
  58. package/dist/core/errors/ValidationError.js.map +1 -0
  59. package/dist/core/errors/errors.d.ts +24 -0
  60. package/dist/core/errors/errors.d.ts.map +1 -0
  61. package/dist/core/errors/errors.js +49 -0
  62. package/dist/core/errors/errors.js.map +1 -0
  63. package/dist/core/index.d.ts +19 -0
  64. package/dist/core/index.d.ts.map +1 -0
  65. package/dist/core/index.js +16 -0
  66. package/dist/core/index.js.map +1 -0
  67. package/dist/core/init-mcp-server.d.ts +8 -0
  68. package/dist/core/init-mcp-server.d.ts.map +1 -0
  69. package/dist/core/init-mcp-server.js +101 -0
  70. package/dist/core/init-mcp-server.js.map +1 -0
  71. package/dist/core/logger.d.ts +6 -0
  72. package/dist/core/logger.d.ts.map +1 -0
  73. package/dist/core/logger.js +53 -0
  74. package/dist/core/logger.js.map +1 -0
  75. package/dist/core/mcp/create-mcp-server.d.ts +6 -0
  76. package/dist/core/mcp/create-mcp-server.d.ts.map +1 -0
  77. package/dist/core/mcp/create-mcp-server.js +44 -0
  78. package/dist/core/mcp/create-mcp-server.js.map +1 -0
  79. package/dist/core/mcp/prompts.d.ts +10 -0
  80. package/dist/core/mcp/prompts.d.ts.map +1 -0
  81. package/dist/core/mcp/prompts.js +56 -0
  82. package/dist/core/mcp/prompts.js.map +1 -0
  83. package/dist/core/mcp/resources.d.ts +14 -0
  84. package/dist/core/mcp/resources.d.ts.map +1 -0
  85. package/dist/core/mcp/resources.js +72 -0
  86. package/dist/core/mcp/resources.js.map +1 -0
  87. package/dist/core/mcp/server-stdio.d.ts +5 -0
  88. package/dist/core/mcp/server-stdio.d.ts.map +1 -0
  89. package/dist/core/mcp/server-stdio.js +13 -0
  90. package/dist/core/mcp/server-stdio.js.map +1 -0
  91. package/dist/core/token/gen-token-app/gen-token-server.d.ts +2 -0
  92. package/dist/core/token/gen-token-app/gen-token-server.d.ts.map +1 -0
  93. package/dist/core/token/gen-token-app/gen-token-server.js +115 -0
  94. package/dist/core/token/gen-token-app/gen-token-server.js.map +1 -0
  95. package/dist/core/token/gen-token-app/html.d.ts +2 -0
  96. package/dist/core/token/gen-token-app/html.d.ts.map +1 -0
  97. package/dist/core/token/gen-token-app/html.js +500 -0
  98. package/dist/core/token/gen-token-app/html.js.map +1 -0
  99. package/dist/core/token/i-token.d.ts +13 -0
  100. package/dist/core/token/i-token.d.ts.map +1 -0
  101. package/dist/core/token/i-token.js +2 -0
  102. package/dist/core/token/i-token.js.map +1 -0
  103. package/dist/core/token/token-core.d.ts +24 -0
  104. package/dist/core/token/token-core.d.ts.map +1 -0
  105. package/dist/core/token/token-core.js +130 -0
  106. package/dist/core/token/token-core.js.map +1 -0
  107. package/dist/core/token/token.d.ts +17 -0
  108. package/dist/core/token/token.d.ts.map +1 -0
  109. package/dist/core/token/token.js +62 -0
  110. package/dist/core/token/token.js.map +1 -0
  111. package/dist/core/utils/formatToolResult.d.ts +7 -0
  112. package/dist/core/utils/formatToolResult.d.ts.map +1 -0
  113. package/dist/core/utils/formatToolResult.js +68 -0
  114. package/dist/core/utils/formatToolResult.js.map +1 -0
  115. package/dist/core/utils/rate-limit.d.ts +17 -0
  116. package/dist/core/utils/rate-limit.d.ts.map +1 -0
  117. package/dist/core/utils/rate-limit.js +56 -0
  118. package/dist/core/utils/rate-limit.js.map +1 -0
  119. package/dist/core/utils/utils.d.ts +6 -0
  120. package/dist/core/utils/utils.d.ts.map +1 -0
  121. package/dist/core/utils/utils.js +12 -0
  122. package/dist/core/utils/utils.js.map +1 -0
  123. package/dist/core/web/about-page/css.d.ts +2 -0
  124. package/dist/core/web/about-page/css.d.ts.map +1 -0
  125. package/dist/core/web/about-page/css.js +534 -0
  126. package/dist/core/web/about-page/css.js.map +1 -0
  127. package/dist/core/web/about-page/render.d.ts +2 -0
  128. package/dist/core/web/about-page/render.d.ts.map +1 -0
  129. package/dist/core/web/about-page/render.js +679 -0
  130. package/dist/core/web/about-page/render.js.map +1 -0
  131. package/dist/core/web/cors.d.ts +5 -0
  132. package/dist/core/web/cors.d.ts.map +1 -0
  133. package/dist/core/web/cors.js +22 -0
  134. package/dist/core/web/cors.js.map +1 -0
  135. package/dist/core/web/favicon-svg.d.ts +7 -0
  136. package/dist/core/web/favicon-svg.d.ts.map +1 -0
  137. package/dist/core/web/favicon-svg.js +44 -0
  138. package/dist/core/web/favicon-svg.js.map +1 -0
  139. package/dist/core/web/server-http.d.ts +5 -0
  140. package/dist/core/web/server-http.d.ts.map +1 -0
  141. package/dist/core/web/server-http.js +275 -0
  142. package/dist/core/web/server-http.js.map +1 -0
  143. package/package.json +88 -0
@@ -0,0 +1,6 @@
1
+ import { getConsulAPI } from './get-consul-api.js';
2
+ export const registerCyclic = async () => {
3
+ const api = await getConsulAPI();
4
+ return api.register.cyclic;
5
+ };
6
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/core/consul/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7B,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { QueryResult, QueryResultRow } from 'pg';
2
+ import { IQueryPgArgs, TDBRecord, TRecordSet } from 'af-db-ts';
3
+ export interface IQueryPgArgsCOptional extends Omit<IQueryPgArgs, 'connectionId'> {
4
+ connectionId?: string;
5
+ }
6
+ export declare const queryMAIN: <R extends QueryResultRow = any>(arg: string | IQueryPgArgsCOptional, sqlValues?: any[], throwError?: boolean) => Promise<QueryResult<R> | undefined>;
7
+ export declare const getMainDBConnectionStatus: () => Promise<string>;
8
+ export declare const checkMainDB: () => Promise<void>;
9
+ export declare const execMAIN: (arg: string | IQueryPgArgsCOptional) => Promise<number | undefined>;
10
+ export declare const queryRsMAIN: <R extends QueryResultRow = any>(arg: string | IQueryPgArgsCOptional, sqlValues?: any[], throwError?: boolean) => Promise<R[] | undefined>;
11
+ export declare const oneRowMAIN: <R extends QueryResultRow = any>(arg: string | IQueryPgArgsCOptional, sqlValues?: any[], throwError?: boolean) => Promise<R | undefined>;
12
+ export declare const getInsertSqlMAIN: <U extends TDBRecord = TDBRecord>(arg: {
13
+ commonSchemaAndTable: string;
14
+ recordset: TRecordSet<U>;
15
+ excludeFromInsert?: string[];
16
+ addOutputInserted?: boolean;
17
+ isErrorOnConflict?: boolean;
18
+ keepSerialFields?: boolean;
19
+ }) => Promise<string>;
20
+ export declare const getMergeSqlMAIN: <U extends TDBRecord = TDBRecord>(arg: {
21
+ commonSchemaAndTable: string;
22
+ recordset: TRecordSet<U>;
23
+ /**
24
+ * The fields of the conflictFields array will be specified in the ON CONFLICT(<conflictFields>)
25
+ * If conflictFields is NOT PASSED, the ON CONFLICT part will list the fields included in the Primary Key.
26
+ */
27
+ conflictFields?: string[];
28
+ /**
29
+ * omitFields: These fields will be excluded from both the INSERT part and the UPDATE part.
30
+ * Unless the updateFields array is passed, omitFields is not affected
31
+ */
32
+ omitFields?: string[];
33
+ /**
34
+ * If an array of updateFields is specified, then these fields will participate in the DO UPDATE part
35
+ * Subtract fields in fieldsExcludedFromUpdatePart
36
+ * If updateFields is NOT SPECIFIED, then all the fields will be present in the UPDATE part,
37
+ * minus auto-incremental, RO, omitFields and fieldsExcludedFromUpdatePart
38
+ */
39
+ updateFields?: string[];
40
+ fieldsExcludedFromUpdatePart?: string[];
41
+ noUpdateIfNull?: boolean;
42
+ mergeCorrection?: (_sql: string) => string;
43
+ returning?: string;
44
+ }) => Promise<string>;
45
+ export declare const mergeByBatch: <U extends TDBRecord = TDBRecord>(arg: {
46
+ recordset: TRecordSet<U>;
47
+ getMergeSqlFn: Function;
48
+ batchSize?: number;
49
+ }) => Promise<any[]>;
50
+ //# sourceMappingURL=pg-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-db.d.ts","sourceRoot":"","sources":["../../../src/core/db/pg-db.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAiC,YAAY,EAAsB,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKlH,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAID,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,cAAc,GAAG,GAAG,EAC5D,KAAK,MAAM,GAAG,qBAAqB,EACnC,YAAY,GAAG,EAAE,EACjB,oBAAkB,KACjB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAUpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,MAAM,CAWhE,CAAC;AAEF,eAAO,MAAM,WAAW,qBAavB,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,KAAK,MAAM,GAAG,qBAAqB,KAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAS5B,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,CAAC,SAAS,cAAc,GAAG,GAAG,EAC9D,KAAK,MAAM,GAAG,qBAAqB,EACnC,YAAY,GAAG,EAAE,EACjB,oBAAkB,KACjB,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAQzB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,CAAC,SAAS,cAAc,GAAG,GAAG,EAC7D,KAAK,MAAM,GAAG,qBAAqB,EACnC,YAAY,GAAG,EAAE,EACjB,oBAAkB,KACjB,OAAO,CAAC,CAAC,GAAG,SAAS,CAQvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,SAAS,GAAG,SAAS,EAAG,KAAK;IAC5E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC,MAAM,CAA6C,CAAC;AAEhE,eAAO,MAAM,eAAe,GAAU,CAAC,SAAS,SAAS,GAAG,SAAS,EAAG,KAAK;IAC3E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,KAAG,OAAO,CAAC,MAAM,CAA4C,CAAC;AAE/D,eAAO,MAAM,YAAY,GAAU,CAAC,SAAS,SAAS,GAAG,SAAS,EAAG,KAAK;IACxE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,mBAcA,CAAC"}
@@ -0,0 +1,89 @@
1
+ // noinspection UnnecessaryLocalVariableJS
2
+ import pgvector from 'pgvector/pg';
3
+ import { getInsertSqlPg, getMergeSqlPg, queryPg, getPoolPg } from 'af-db-ts';
4
+ import { logger } from '../logger.js';
5
+ import { appConfig } from '../bootstrap/init-config.js';
6
+ const connectionId = 'main';
7
+ export const queryMAIN = async (arg, sqlValues, throwError = false) => {
8
+ if (typeof arg === 'string') {
9
+ arg = { sqlText: arg, connectionId, sqlValues, throwError };
10
+ }
11
+ arg.connectionId = connectionId;
12
+ if (appConfig.db.postgres.dbs[connectionId]?.usedExtensions?.includes('pgvector')) {
13
+ arg.registerTypesFunctions = [pgvector.registerType];
14
+ }
15
+ const res = await queryPg(arg);
16
+ return res;
17
+ };
18
+ export const getMainDBConnectionStatus = async () => {
19
+ if (!appConfig.isMainDBUsed) {
20
+ return 'db_not_used';
21
+ }
22
+ try {
23
+ const pool = await getPoolPg({ connectionId, throwError: true });
24
+ const isDbConnected = (pool._clients || []).some((client) => client?._connected);
25
+ return isDbConnected ? 'connected' : 'disconnected';
26
+ }
27
+ catch {
28
+ return 'error';
29
+ }
30
+ };
31
+ export const checkMainDB = async () => {
32
+ try {
33
+ // noinspection SqlResolve
34
+ await queryMAIN('SELECT 1 FROM pg_catalog.pg_class LIMIT 1', undefined, true);
35
+ }
36
+ catch {
37
+ // In test mode, don't exit or log errors
38
+ if (process.env.NODE_ENV === 'test') {
39
+ return;
40
+ }
41
+ logger.error(`DB ${connectionId} not available`);
42
+ process.exit(1);
43
+ }
44
+ };
45
+ export const execMAIN = async (arg) => {
46
+ if (typeof arg === 'string') {
47
+ arg = { sqlText: arg, connectionId };
48
+ }
49
+ else {
50
+ arg.connectionId = connectionId;
51
+ }
52
+ const res = await queryPg(arg);
53
+ // If a batch of SQL statements is executed, recordset is returned
54
+ return Array.isArray(res) ? res.reduce((accum, item) => accum + (item?.rowCount ?? 0), 0) : res?.rowCount ?? undefined;
55
+ };
56
+ export const queryRsMAIN = async (arg, sqlValues, throwError = false) => {
57
+ if (typeof arg === 'string') {
58
+ arg = { sqlText: arg, connectionId, sqlValues, throwError };
59
+ }
60
+ else {
61
+ arg.connectionId = connectionId;
62
+ }
63
+ const res = await queryMAIN(arg);
64
+ return res?.rows;
65
+ };
66
+ export const oneRowMAIN = async (arg, sqlValues, throwError = false) => {
67
+ if (typeof arg === 'string') {
68
+ arg = { sqlText: arg, connectionId, sqlValues, throwError };
69
+ }
70
+ else {
71
+ arg.connectionId = connectionId;
72
+ }
73
+ const res = await queryMAIN(arg);
74
+ return res?.rows?.[0];
75
+ };
76
+ export const getInsertSqlMAIN = async (arg) => getInsertSqlPg({ ...arg, connectionId });
77
+ export const getMergeSqlMAIN = async (arg) => getMergeSqlPg({ ...arg, connectionId });
78
+ export const mergeByBatch = async (arg) => {
79
+ const { recordset, getMergeSqlFn, batchSize = 999, } = arg;
80
+ const results = [];
81
+ while (recordset.length) {
82
+ const batch = recordset.splice(0, batchSize);
83
+ const mergeSql = await getMergeSqlFn(batch);
84
+ const result = await queryMAIN(mergeSql);
85
+ results.push(result);
86
+ }
87
+ return results;
88
+ };
89
+ //# sourceMappingURL=pg-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-db.js","sourceRoot":"","sources":["../../../src/core/db/pg-db.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAgB,OAAO,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AAClH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAMxD,MAAM,YAAY,GAAG,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAmC,EACnC,SAAiB,EACjB,UAAU,GAAG,KAAK,EACmB,EAAE;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAkB,CAAC;IAC9E,CAAC;IACD,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;IAChC,IAAI,SAAS,CAAC,EAAE,CAAC,QAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,sBAAsB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAI,GAAmB,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,IAAqB,EAAE;IACnE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChG,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;IACpC,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,SAAS,CAAC,2CAA2C,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,GAAmC,EACN,EAAE;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAkB,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAmB,CAAC,CAAC;IAC/C,kEAAkE;IAClE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,IAAI,SAAS,CAAC;AACzH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,GAAmC,EACnC,SAAiB,EACjB,UAAU,GAAG,KAAK,EACQ,EAAE;IAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAkB,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAI,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,EAAE,IAAI,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,GAAmC,EACnC,SAAiB,EACjB,UAAU,GAAG,KAAK,EACM,EAAE;IAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAkB,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAI,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAoC,GAOxE,EAAmB,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAoC,GAwBvE,EAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAoC,GAIpE,EAAE,EAAE;IACH,MAAM,EACJ,SAAS,EACT,aAAa,EACb,SAAS,GAAG,GAAG,GAChB,GAAG,GAAG,CAAC;IACR,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,KAAK,CAAW,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const debugTokenAuth: {
2
+ (msg: string): void;
3
+ enabled: boolean;
4
+ };
5
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/core/debug.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;;;CAKzB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Debug } from 'af-tools-ts';
2
+ import { bold, reset, yellow } from 'af-color';
3
+ export const debugTokenAuth = Debug('token:auth', {
4
+ noTime: false,
5
+ noPrefix: false,
6
+ prefixColor: bold + yellow,
7
+ messageColor: reset,
8
+ });
9
+ // agent
10
+ // config-info
11
+ // dialog-metrics-collector
12
+ // fetch
13
+ // log-event
14
+ // pipeline
15
+ // query-builder
16
+ // queue:testing
17
+ // rag
18
+ // report
19
+ // rest-api
20
+ // sql
21
+ // sql:count
22
+ // testing
23
+ // token:auth
24
+ // user
25
+ // web:all
26
+ // web:headers
27
+ // web:health
28
+ // ntlm:auth-flow
29
+ // ntlm:ldap-proxy
30
+ // ntlm:ldap-proxy-id
31
+ // ntlm:context
32
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/core/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,EAAE;IAChD,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,IAAI,GAAG,MAAM;IAC1B,YAAY,EAAE,KAAK;CACpB,CAAC,CAAC;AAEH,QAAQ;AACR,cAAc;AACd,2BAA2B;AAC3B,QAAQ;AACR,YAAY;AACZ,WAAW;AACX,gBAAgB;AAChB,gBAAgB;AAChB,MAAM;AACN,SAAS;AACT,WAAW;AACX,MAAM;AACN,YAAY;AACZ,UAAU;AACV,aAAa;AACb,OAAO;AACP,UAAU;AACV,cAAc;AACd,aAAa;AAEb,iBAAiB;AACjB,kBAAkB;AAClB,qBAAqB;AACrB,eAAe"}
@@ -0,0 +1,3 @@
1
+ import EventEmitter from 'node:events';
2
+ export declare const eventEmitter: EventEmitter<[never]>;
3
+ //# sourceMappingURL=ee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ee.d.ts","sourceRoot":"","sources":["../../src/core/ee.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,eAAO,MAAM,YAAY,uBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import EventEmitter from 'node:events';
2
+ export const eventEmitter = new EventEmitter();
3
+ eventEmitter.setMaxListeners(12);
4
+ //# sourceMappingURL=ee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ee.js","sourceRoot":"","sources":["../../src/core/ee.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ interface IMcpError {
2
+ code: string;
3
+ message: string;
4
+ details?: Record<string, unknown>;
5
+ stack?: string;
6
+ }
7
+ /**
8
+ * Base error class for all MCP errors
9
+ */
10
+ export declare class BaseMcpError extends Error implements IMcpError {
11
+ readonly code: string;
12
+ readonly details?: Record<string, unknown>;
13
+ readonly statusCode: number;
14
+ readonly printed?: boolean;
15
+ constructor(code: string, message: string, details?: Record<string, unknown>, statusCode?: number, printed?: boolean);
16
+ toJSON(): IMcpError;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=BaseMcpError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMcpError.d.ts","sourceRoot":"","sources":["../../../src/core/errors/BaseMcpError.ts"],"names":[],"mappings":"AAAA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAM,YAAW,SAAS;IAC1D,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAGhC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO;IAyBnB,MAAM,IAAK,SAAS;CAgBrB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Base error class for all MCP errors
3
+ */
4
+ export class BaseMcpError extends Error {
5
+ code;
6
+ details;
7
+ statusCode;
8
+ printed;
9
+ constructor(code, message, details, statusCode, printed) {
10
+ super(message);
11
+ this.name = this.constructor.name;
12
+ this.code = code;
13
+ if (details !== undefined) {
14
+ this.details = details;
15
+ }
16
+ else {
17
+ // @ts-ignore
18
+ delete this.details;
19
+ }
20
+ this.statusCode = statusCode || 500;
21
+ if (printed) {
22
+ this.printed = true;
23
+ }
24
+ else {
25
+ // @ts-ignore
26
+ delete this.printed;
27
+ }
28
+ // Maintain proper stack trace for V8 engines
29
+ if (Error.captureStackTrace) {
30
+ Error.captureStackTrace(this, this.constructor);
31
+ }
32
+ }
33
+ toJSON() {
34
+ const result = {
35
+ code: this.code,
36
+ message: this.message,
37
+ };
38
+ if (this.details !== undefined) {
39
+ result.details = this.details;
40
+ }
41
+ if (this.stack !== undefined) {
42
+ result.stack = this.stack;
43
+ }
44
+ return result;
45
+ }
46
+ }
47
+ //# sourceMappingURL=BaseMcpError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseMcpError.js","sourceRoot":"","sources":["../../../src/core/errors/BaseMcpError.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,IAAI,CAAS;IACb,OAAO,CAA2B;IAClC,UAAU,CAAS;IACnB,OAAO,CAAW;IAElC,YACE,IAAY,EACZ,OAAe,EACf,OAAiC,EACjC,UAAmB,EACnB,OAAiB;QAEjB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,aAAa;YACb,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,GAAG,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,aAAa;YACb,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAc;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { BaseMcpError } from './BaseMcpError.js';
2
+ export declare class ValidationError extends BaseMcpError {
3
+ constructor(message: string, printed?: boolean);
4
+ }
5
+ //# sourceMappingURL=ValidationError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationError.d.ts","sourceRoot":"","sources":["../../../src/core/errors/ValidationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,YAAY;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAGhD"}
@@ -0,0 +1,7 @@
1
+ import { BaseMcpError } from './BaseMcpError.js';
2
+ export class ValidationError extends BaseMcpError {
3
+ constructor(message, printed) {
4
+ super('VALIDATION_ERROR', message, undefined, 400, printed);
5
+ }
6
+ }
7
+ //# sourceMappingURL=ValidationError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/core/errors/ValidationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,YAAa,OAAe,EAAE,OAAiB;QAC7C,KAAK,CAAC,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Centralized error handling system for the MCP server
3
+ */
4
+ import { BaseMcpError } from './BaseMcpError.js';
5
+ export declare class ToolExecutionError extends BaseMcpError {
6
+ constructor(toolName: string, message: string, printed?: boolean);
7
+ }
8
+ export declare class SearchError extends BaseMcpError {
9
+ constructor(entityType: string, message: string);
10
+ }
11
+ /**
12
+ * Server-related errors
13
+ */
14
+ export declare class ServerError extends BaseMcpError {
15
+ constructor(message: string, details?: Record<string, unknown>, printed?: boolean);
16
+ }
17
+ /**
18
+ * Create JSON-RPC 2.0 error response
19
+ */
20
+ export declare function createJsonRpcErrorResponse(error: Error | BaseMcpError, requestId?: string | number | null): any;
21
+ export declare const toError: (err: any) => Error;
22
+ export declare const toStr: (err: any) => string;
23
+ export declare const addErrorMessage: (err: any, msg: string) => void;
24
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,kBAAmB,SAAQ,YAAY;gBACrC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CASlE;AAED,qBAAa,WAAY,SAAQ,YAAY;gBAC9B,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CASjD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO;CAGnF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,GAAG,YAAY,EAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,GAAG,CAYL;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,GAAG,KAAG,KAElC,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,GAAG,KAAG,MAEhC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,EAAE,KAAK,MAAM,SAIpD,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Centralized error handling system for the MCP server
3
+ */
4
+ import { BaseMcpError } from './BaseMcpError.js';
5
+ export class ToolExecutionError extends BaseMcpError {
6
+ constructor(toolName, message, printed) {
7
+ super('TOOL_EXECUTION_ERROR', `Failed to execute tool '${toolName}': ${message}`, undefined, 400, printed);
8
+ }
9
+ }
10
+ export class SearchError extends BaseMcpError {
11
+ constructor(entityType, message) {
12
+ super('SEARCH_ERROR', `Failed to search '${entityType}': ${message}`, undefined, 400, true);
13
+ }
14
+ }
15
+ /**
16
+ * Server-related errors
17
+ */
18
+ export class ServerError extends BaseMcpError {
19
+ constructor(message, details, printed) {
20
+ super('SERVER_ERROR', message, details, 500, printed);
21
+ }
22
+ }
23
+ /**
24
+ * Create JSON-RPC 2.0 error response
25
+ */
26
+ export function createJsonRpcErrorResponse(error, requestId) {
27
+ const isCustomError = error instanceof BaseMcpError;
28
+ return {
29
+ jsonrpc: '2.0',
30
+ id: requestId ?? 1,
31
+ error: {
32
+ code: isCustomError ? (typeof error.code === 'number' ? error.code : -32000) : -32603,
33
+ message: error.message,
34
+ data: isCustomError && error.details !== undefined ? error.details : undefined,
35
+ },
36
+ };
37
+ }
38
+ export const toError = (err) => {
39
+ return err instanceof Error ? err : new Error(String(err));
40
+ };
41
+ export const toStr = (err) => {
42
+ return err instanceof Error ? err.message : (err ? String(err) : 'Unknown error');
43
+ };
44
+ export const addErrorMessage = (err, msg) => {
45
+ if (err instanceof Error) {
46
+ err.message = `${msg}. ${err.message}`;
47
+ }
48
+ };
49
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAa,QAAgB,EAAE,OAAe,EAAE,OAAiB;QAC/D,KAAK,CACH,sBAAsB,EACtB,2BAA2B,QAAQ,MAAM,OAAO,EAAE,EAClD,SAAS,EACT,GAAG,EACH,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,YAAY;IAC3C,YAAa,UAAkB,EAAE,OAAe;QAC9C,KAAK,CACH,cAAc,EACd,qBAAqB,UAAU,MAAM,OAAO,EAAE,EAC9C,SAAS,EACT,GAAG,EACH,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,YAAY;IAC3C,YAAa,OAAe,EAAE,OAAiC,EAAE,OAAiB;QAChF,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA2B,EAC3B,SAAkC;IAElC,MAAM,aAAa,GAAG,KAAK,YAAY,YAAY,CAAC;IAEpD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,SAAS,IAAI,CAAC;QAClB,KAAK,EAAE;YACL,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YACrF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,aAAa,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;SAC/E;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAS,EAAE;IACzC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAU,EAAE;IACxC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;IACvD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type { AppConfig } from './_types_/config.js';
2
+ export type { McpServerData, IGetPromptParams, IGetPromptRequest, IPromptContent, IPromptData, IReadResourceRequest, IResourceData, IEndpointsOn404, ISwaggerData, IRequiredHttpHeader, } from './_types_/types.js';
3
+ export { appConfig } from './bootstrap/init-config.js';
4
+ export { accessPointUpdater } from './consul/access-points-updater.js';
5
+ export { deregisterServiceFromConsul } from './consul/deregister.js';
6
+ export { getConsulAPI } from './consul/get-consul-api.js';
7
+ export * from './db/pg-db.js';
8
+ export { BaseMcpError } from './errors/BaseMcpError.js';
9
+ export * from './errors/errors.js';
10
+ export { ValidationError } from './errors/ValidationError.js';
11
+ export type { ICheckTokenResult } from './token/i-token.js';
12
+ export * from './token/token.js';
13
+ export { generateTokenApp } from './token/gen-token-app/gen-token-server.js';
14
+ export { initMcpServer, gracefulShutdown } from './init-mcp-server.js';
15
+ export { formatToolResult, getJsonFromResult } from './utils/formatToolResult.js';
16
+ export { trim, isMainModule, isNonEmptyObject, isObject, ppj } from './utils/utils.js';
17
+ export { eventEmitter } from './ee.js';
18
+ export { logger, fileLogger } from './logger.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ export { appConfig } from './bootstrap/init-config.js';
2
+ export { accessPointUpdater } from './consul/access-points-updater.js';
3
+ export { deregisterServiceFromConsul } from './consul/deregister.js';
4
+ export { getConsulAPI } from './consul/get-consul-api.js';
5
+ export * from './db/pg-db.js';
6
+ export { BaseMcpError } from './errors/BaseMcpError.js';
7
+ export * from './errors/errors.js';
8
+ export { ValidationError } from './errors/ValidationError.js';
9
+ export * from './token/token.js';
10
+ export { generateTokenApp } from './token/gen-token-app/gen-token-server.js';
11
+ export { initMcpServer, gracefulShutdown } from './init-mcp-server.js';
12
+ export { formatToolResult, getJsonFromResult } from './utils/formatToolResult.js';
13
+ export { trim, isMainModule, isNonEmptyObject, isObject, ppj } from './utils/utils.js';
14
+ export { eventEmitter } from './ee.js';
15
+ export { logger, fileLogger } from './logger.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { McpServerData } from './_types_/types.js';
2
+ export declare function gracefulShutdown(signal: string, exitCode?: number): Promise<void>;
3
+ /**
4
+ * The main function of MCP server initialization
5
+ * Accepts all design data and starts the server
6
+ */
7
+ export declare function initMcpServer(data: McpServerData): Promise<void>;
8
+ //# sourceMappingURL=init-mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-mcp-server.d.ts","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0CnD,wBAAsB,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,iBA6B3E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCvE"}
@@ -0,0 +1,101 @@
1
+ import { appConfig } from './bootstrap/init-config.js';
2
+ import { startupInfo } from './bootstrap/startup-info.js';
3
+ import { dotEnvResult } from './bootstrap/dotenv.js';
4
+ import { fileLogger, logger as lgr } from './logger.js';
5
+ // Imports to modify _core functions
6
+ import { startStdioServer } from './mcp/server-stdio.js';
7
+ import { startHttpServer } from './web/server-http.js';
8
+ import { checkMainDB } from './db/pg-db.js';
9
+ import { closeAllPgConnectionsPg } from 'af-db-ts';
10
+ import { registerCyclic } from './consul/register.js';
11
+ import { AccessPoints } from 'af-consul-ts';
12
+ import { isNonEmptyObject } from './utils/utils.js';
13
+ import { accessPointUpdater } from './consul/access-points-updater.js';
14
+ import chalk from 'chalk';
15
+ let cyclicRegisterServiceInConsul;
16
+ const initCyclicRegisterServiceInConsul = async () => {
17
+ if (!appConfig.consul.service.noRegOnStart) {
18
+ // Starting a cyclic service registration in consul
19
+ cyclicRegisterServiceInConsul = await registerCyclic();
20
+ await cyclicRegisterServiceInConsul.start();
21
+ }
22
+ };
23
+ const initAccessPoints = () => {
24
+ if (!isNonEmptyObject(appConfig.accessPoints)) {
25
+ return;
26
+ }
27
+ const accessPoints = { ...appConfig.accessPoints };
28
+ const logger = lgr.getSubLogger({ name: chalk.magenta('accessPoints') });
29
+ appConfig.accessPoints = new AccessPoints(accessPoints, logger);
30
+ Object.entries(accessPoints).forEach(([accessPointKey, value]) => {
31
+ if (!appConfig.accessPoints[accessPointKey]) {
32
+ appConfig.accessPoints[accessPointKey] = value;
33
+ }
34
+ });
35
+ accessPointUpdater.start();
36
+ };
37
+ export async function gracefulShutdown(signal, exitCode = 0) {
38
+ console.error(`A ${signal} signal has been received. Complete...`);
39
+ const FORCE_EXIT_TIMEOUT_MS = 5_000;
40
+ const forceTimer = setTimeout(() => {
41
+ console.error('Timeout 10s. Hard finish.');
42
+ process.exit(1);
43
+ }, FORCE_EXIT_TIMEOUT_MS);
44
+ // To prevent the timer from holding the event
45
+ forceTimer.unref?.();
46
+ try {
47
+ if (cyclicRegisterServiceInConsul?.stop) {
48
+ cyclicRegisterServiceInConsul.stop();
49
+ }
50
+ if (appConfig.isMainDBUsed) {
51
+ console.error('Closing database connections...');
52
+ await closeAllPgConnectionsPg();
53
+ console.error('Connections successfully closed');
54
+ }
55
+ if (fileLogger?.asyncFinish) {
56
+ await fileLogger.asyncFinish();
57
+ }
58
+ accessPointUpdater.stop();
59
+ process.exit(exitCode);
60
+ }
61
+ catch (error) {
62
+ console.error('Error when closing connections:', error);
63
+ process.exit(1);
64
+ }
65
+ }
66
+ /**
67
+ * The main function of MCP server initialization
68
+ * Accepts all design data and starts the server
69
+ */
70
+ export async function initMcpServer(data) {
71
+ const needCheckDb = process.env.NODE_ENV !== 'test' && appConfig.isMainDBUsed;
72
+ // Handle graceful shutdown
73
+ process.on('SIGINT', () => gracefulShutdown('SIGINT'));
74
+ process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
75
+ // Temporarily store data in a global context for access from _core functions
76
+ global.__MCP_PROJECT_DATA__ = data;
77
+ const { transportType } = appConfig.mcp;
78
+ switch (transportType) {
79
+ case 'stdio':
80
+ // Test database connection on startup (skip in test mode)
81
+ if (needCheckDb) {
82
+ await checkMainDB();
83
+ }
84
+ await startStdioServer();
85
+ break;
86
+ case 'http': {
87
+ await startupInfo({ dotEnvResult, cfg: appConfig });
88
+ if (needCheckDb) {
89
+ await checkMainDB();
90
+ }
91
+ await startHttpServer();
92
+ // Starting a cyclic service registration in consul
93
+ await initCyclicRegisterServiceInConsul();
94
+ initAccessPoints();
95
+ break;
96
+ }
97
+ default:
98
+ throw new Error(`Unsupported transport type: ${transportType}`);
99
+ }
100
+ }
101
+ //# sourceMappingURL=init-mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-mcp-server.js","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Logger, FileLogger, ILogObj } from 'af-logger-ts';
2
+ declare const useFileLogger: boolean;
3
+ declare let logger: Logger<ILogObj>;
4
+ declare let fileLogger: FileLogger | undefined;
5
+ export { logger, fileLogger, useFileLogger };
6
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAExE,QAAA,MAAe,aAAa,SAAqB,CAAC;AAKlD,QAAA,IAAI,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5B,QAAA,IAAI,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;AA6CvC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}