@carbonvoice/cv-mcp-server 2.8.0 → 2.8.15

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 (48) hide show
  1. package/dist/config/env.js +152 -2
  2. package/dist/config/env.js.map +1 -1
  3. package/dist/cv-api.js +15 -0
  4. package/dist/cv-api.js.map +1 -1
  5. package/dist/interfaces/index.js +1 -0
  6. package/dist/interfaces/index.js.map +1 -1
  7. package/dist/interfaces/user-info.interface.js +3 -0
  8. package/dist/interfaces/user-info.interface.js.map +1 -0
  9. package/dist/server.js +582 -554
  10. package/dist/server.js.map +1 -1
  11. package/dist/transports/http/diagnostics/transport-send-diagnostics.js +115 -0
  12. package/dist/transports/http/diagnostics/transport-send-diagnostics.js.map +1 -0
  13. package/dist/transports/http/middleware/add-request-id.middlware.js +2 -2
  14. package/dist/transports/http/middleware/add-request-id.middlware.js.map +1 -1
  15. package/dist/transports/http/middleware/index.js +1 -0
  16. package/dist/transports/http/middleware/index.js.map +1 -1
  17. package/dist/transports/http/middleware/log-request.middlware.js +62 -11
  18. package/dist/transports/http/middleware/log-request.middlware.js.map +1 -1
  19. package/dist/transports/http/middleware/require-bearer-auth-with-absolute-metadata.middleware.js +72 -0
  20. package/dist/transports/http/middleware/require-bearer-auth-with-absolute-metadata.middleware.js.map +1 -0
  21. package/dist/transports/http/session/index.js +4 -1
  22. package/dist/transports/http/session/index.js.map +1 -1
  23. package/dist/transports/http/session/session.config.js +10 -5
  24. package/dist/transports/http/session/session.config.js.map +1 -1
  25. package/dist/transports/http/session/session.logger.js +22 -0
  26. package/dist/transports/http/session/session.logger.js.map +1 -1
  27. package/dist/transports/http/session/session.service.js +55 -22
  28. package/dist/transports/http/session/session.service.js.map +1 -1
  29. package/dist/transports/http/session/session.types.js.map +1 -1
  30. package/dist/transports/http/session/tool-call-queue.service.js +73 -0
  31. package/dist/transports/http/session/tool-call-queue.service.js.map +1 -0
  32. package/dist/transports/http/streamable-stateless.js +288 -0
  33. package/dist/transports/http/streamable-stateless.js.map +1 -0
  34. package/dist/transports/http/streamable.js +379 -37
  35. package/dist/transports/http/streamable.js.map +1 -1
  36. package/dist/transports/http/utils/request-context.js +3 -2
  37. package/dist/transports/http/utils/request-context.js.map +1 -1
  38. package/dist/utils/axios-instance.js +12 -0
  39. package/dist/utils/axios-instance.js.map +1 -1
  40. package/dist/utils/format-bytes-human.js +18 -0
  41. package/dist/utils/format-bytes-human.js.map +1 -0
  42. package/dist/utils/format-to-mcp-tool-response.js +46 -10
  43. package/dist/utils/format-to-mcp-tool-response.js.map +1 -1
  44. package/dist/utils/index.js +1 -0
  45. package/dist/utils/index.js.map +1 -1
  46. package/dist/utils/logger.js +6 -19
  47. package/dist/utils/logger.js.map +1 -1
  48. package/package.json +11 -5
@@ -3,6 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.env = exports.isTestEnvironment = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const constants_1 = require("../constants");
6
+ const validLogTransports = ['console', 'file', 'cloudwatch'];
7
+ const parseLogTransports = (value) => {
8
+ const parsedTransports = value
9
+ .split(',')
10
+ .map((transport) => transport.trim())
11
+ .filter(Boolean);
12
+ if (parsedTransports.length === 0) {
13
+ throw new Error(`LOG_TRANSPORT must include at least one value: ${validLogTransports.join(', ')}`);
14
+ }
15
+ const invalidTransports = parsedTransports.filter((transport) => !validLogTransports.includes(transport));
16
+ if (invalidTransports.length > 0) {
17
+ throw new Error(`Invalid LOG_TRANSPORT value(s): ${invalidTransports.join(', ')}. ` +
18
+ `Allowed values: ${validLogTransports.join(', ')}`);
19
+ }
20
+ return [...new Set(parsedTransports)];
21
+ };
6
22
  const getRunningEnvironment = () => {
7
23
  // App Runner provides service name in environment
8
24
  const serviceName = process.env.AWS_APPRUNNER_SERVICE_NAME || '';
@@ -28,14 +44,148 @@ const Environment = zod_1.z.object({
28
44
  .optional()
29
45
  .transform((val) => val || constants_1.LOG_DIR),
30
46
  PORT: zod_1.z.string().optional().default('3005'),
47
+ MCP_RESOURCE_METADATA_URL: zod_1.z
48
+ .string()
49
+ .url()
50
+ .or(zod_1.z.string().regex(/^\/.*/, 'Must be an absolute path or URL'))
51
+ .optional()
52
+ .transform((val) => val || '/.well-known/oauth-protected-resource'),
31
53
  LOG_TRANSPORT: zod_1.z
32
- .enum(['console', 'file', 'cloudwatch'])
54
+ .string()
33
55
  .optional()
34
- .default('file'),
56
+ .default('file')
57
+ .transform((val, ctx) => {
58
+ try {
59
+ return parseLogTransports(val);
60
+ }
61
+ catch (error) {
62
+ ctx.addIssue({
63
+ code: zod_1.z.ZodIssueCode.custom,
64
+ message: error instanceof Error
65
+ ? error.message
66
+ : 'Invalid LOG_TRANSPORT value',
67
+ });
68
+ return zod_1.z.NEVER;
69
+ }
70
+ }),
35
71
  ENVIRONMENT: zod_1.z
36
72
  .enum(['dev', 'prod'])
37
73
  .optional()
38
74
  .default(getRunningEnvironment()),
75
+ /** Idle TTL (ms): session is destroyed after this long without activity; refreshed on each interaction. */
76
+ MCP_SESSION_TTL_MS: zod_1.z
77
+ .string()
78
+ .optional()
79
+ .default(String(1000 * 60 * 60))
80
+ .transform((s) => {
81
+ const n = Number(s);
82
+ if (!Number.isFinite(n) || n <= 0) {
83
+ throw new Error('MCP_SESSION_TTL_MS must be a positive number');
84
+ }
85
+ return n;
86
+ }),
87
+ MCP_SESSION_MAX_SESSIONS: zod_1.z
88
+ .string()
89
+ .optional()
90
+ .default('2000')
91
+ .transform((s) => {
92
+ const n = Number(s);
93
+ if (!Number.isFinite(n) || n <= 0 || !Number.isInteger(n)) {
94
+ throw new Error('MCP_SESSION_MAX_SESSIONS must be a positive integer');
95
+ }
96
+ return n;
97
+ }),
98
+ MCP_SESSION_CLEANUP_INTERVAL_MS: zod_1.z
99
+ .string()
100
+ .optional()
101
+ .default(String(1000 * 60 * 5))
102
+ .transform((s) => {
103
+ const n = Number(s);
104
+ if (!Number.isFinite(n) || n <= 0) {
105
+ throw new Error('MCP_SESSION_CLEANUP_INTERVAL_MS must be a positive number');
106
+ }
107
+ return n;
108
+ }),
109
+ /**
110
+ * Optional absolute max session lifetime (ms) from createdAt.
111
+ * 0 = disabled (sliding idle only). When set, idle extension cannot push expiresAt past createdAt + max age.
112
+ */
113
+ MCP_SESSION_MAX_AGE_MS: zod_1.z
114
+ .string()
115
+ .optional()
116
+ .default('0')
117
+ .transform((s) => {
118
+ const n = Number(s);
119
+ if (!Number.isFinite(n) || n < 0 || !Number.isInteger(n)) {
120
+ throw new Error('MCP_SESSION_MAX_AGE_MS must be a non-negative integer (0 disables)');
121
+ }
122
+ return n;
123
+ }),
124
+ /**
125
+ * When false, suppresses all session-lifecycle log events
126
+ * (SESSION_CREATED, SESSION_DESTROYED, SESSION_METRICS, SESSION_REQUEST_QUEUE_ACQUIRED, etc.).
127
+ * Set to false when running the stateless transport so CloudWatch and local
128
+ * logs stay free of session noise. Defaults to true for the session transport.
129
+ */
130
+ MCP_SESSION_LOGS_ENABLED: zod_1.z
131
+ .string()
132
+ .optional()
133
+ .default('true')
134
+ .transform((value) => value.toLowerCase() === 'true'),
135
+ /**
136
+ * TEMPORARY incident diagnostics toggle for MCP transport send path.
137
+ * Keep disabled by default and enable only during active production investigation.
138
+ */
139
+ MCP_TRANSPORT_DIAGNOSTICS_ENABLED: zod_1.z
140
+ .string()
141
+ .optional()
142
+ .default('true')
143
+ .transform((value) => value.toLowerCase() === 'true'),
144
+ /**
145
+ * Phase 1 mitigation: max time (ms) a tools/call request can wait in the per-session queue.
146
+ * Requests exceeding this wait fail fast with a deterministic JSON-RPC timeout error.
147
+ */
148
+ MCP_TOOL_CALL_QUEUE_TIMEOUT_MS: zod_1.z
149
+ .string()
150
+ .optional()
151
+ .default('15000')
152
+ .transform((s) => {
153
+ const n = Number(s);
154
+ if (!Number.isFinite(n) || n <= 0 || !Number.isInteger(n)) {
155
+ throw new Error('MCP_TOOL_CALL_QUEUE_TIMEOUT_MS must be a positive integer');
156
+ }
157
+ return n;
158
+ }),
159
+ /**
160
+ * Max time (ms) any session-bound POST request can wait in the per-session queue.
161
+ * Defaults to MCP_TOOL_CALL_QUEUE_TIMEOUT_MS behavior for backward compatibility.
162
+ */
163
+ MCP_SESSION_REQUEST_QUEUE_TIMEOUT_MS: zod_1.z
164
+ .string()
165
+ .optional()
166
+ .default(process.env.MCP_TOOL_CALL_QUEUE_TIMEOUT_MS || '15000')
167
+ .transform((s) => {
168
+ const n = Number(s);
169
+ if (!Number.isFinite(n) || n <= 0 || !Number.isInteger(n)) {
170
+ throw new Error('MCP_SESSION_REQUEST_QUEUE_TIMEOUT_MS must be a positive integer');
171
+ }
172
+ return n;
173
+ }),
174
+ /**
175
+ * Safety timeout for transport execution after a queue slot is acquired.
176
+ * Prevents indefinite hangs inside transport.handleRequest for a reused session.
177
+ */
178
+ MCP_TRANSPORT_EXECUTION_TIMEOUT_MS: zod_1.z
179
+ .string()
180
+ .optional()
181
+ .default('30000')
182
+ .transform((s) => {
183
+ const n = Number(s);
184
+ if (!Number.isFinite(n) || n <= 0 || !Number.isInteger(n)) {
185
+ throw new Error('MCP_TRANSPORT_EXECUTION_TIMEOUT_MS must be a positive integer');
186
+ }
187
+ return n;
188
+ }),
39
189
  });
40
190
  const getEnvironment = () => {
41
191
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,4CAAwD;AAExD,MAAM,qBAAqB,GAAG,GAAmB,EAAE;IACjD,kDAAkD;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC;IAEjE,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,qBAAqB,EAAE,OAAC;SACrB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,2BAAe,CAAC;IAC7C,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,SAAS,EAAE,OAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;IAClB,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,mBAAO,CAAC;IACrC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,OAAC;SACb,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;IAClB,WAAW,EAAE,OAAC;SACX,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACrB,QAAQ,EAAE;SACV,OAAO,CAAC,qBAAqB,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,GAAgC,EAAE;IACvD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,GAAG,EAAE;;IACpC,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,0CAAE,WAAW,EAAE,CAAC;IAEpD,OAAO,OAAO,KAAK,MAAM,CAAC;AAC5B,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B;AAEW,QAAA,GAAG,GAAG,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
package/dist/cv-api.js CHANGED
@@ -4,11 +4,26 @@ exports.getCarbonVoiceApiStatus = exports.getCarbonVoiceAPI = void 0;
4
4
  const config_1 = require("./config");
5
5
  const utils_1 = require("./utils");
6
6
  const axios_instance_1 = require("./utils/axios-instance");
7
+ const mapContactToUserInfo = (contact) => {
8
+ const { user_guid, workspace_guids, ...rest } = contact;
9
+ return {
10
+ ...rest,
11
+ id: user_guid,
12
+ workspace_ids: workspace_guids,
13
+ };
14
+ };
7
15
  const getCarbonVoiceAPI = () => {
8
16
  return {
9
17
  getWhoAmI: async (options) => {
10
18
  return (0, axios_instance_1.mutator)({ url: `/whoami`, method: 'GET' }, options);
11
19
  },
20
+ getContacts: async (userIds, options) => {
21
+ if (userIds.length === 0) {
22
+ throw new Error('getContacts requires at least one user ID');
23
+ }
24
+ const contacts = await (0, axios_instance_1.mutator)({ url: '/contacts', method: 'POST', data: { user_guids: userIds } }, options);
25
+ return contacts.map(mapContactToUserInfo);
26
+ },
12
27
  };
13
28
  };
14
29
  exports.getCarbonVoiceAPI = getCarbonVoiceAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"cv-api.js","sourceRoot":"","sources":["../src/cv-api.ts"],"names":[],"mappings":";;;AAEA,qCAA+B;AAC/B,mCAAiC;AACjC,2DAAiD;AAE1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,OAA4B,EAAoB,EAAE;YAClE,OAAO,IAAA,wBAAO,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B;AAEK,MAAM,uBAAuB,GAAG,KAAK,IAIzC,EAAE;IACH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAO,EAE3B,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtC,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,IAAI;YACnC,MAAM,EAAE,YAAG,CAAC,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,YAAG,CAAC,qBAAqB;YACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC"}
1
+ {"version":3,"file":"cv-api.js","sourceRoot":"","sources":["../src/cv-api.ts"],"names":[],"mappings":";;;AAEA,qCAA+B;AAE/B,mCAAiC;AACjC,2DAAiD;AAkBjD,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAY,EAAE;IAC1D,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACxD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,SAAS;QACb,aAAa,EAAE,eAAe;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,OAA4B,EAAoB,EAAE;YAClE,OAAO,IAAA,wBAAO,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAED,WAAW,EAAE,KAAK,EAChB,OAAiB,EACjB,OAA4B,EACP,EAAE;YACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAO,EAC5B,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EACnE,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B;AAEK,MAAM,uBAAuB,GAAG,KAAK,IAIzC,EAAE;IACH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAO,EAE3B,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtC,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,IAAI;YACnC,MAAM,EAAE,YAAG,CAAC,qBAAqB;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,YAAG,CAAC,qBAAqB;YACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC"}
@@ -18,4 +18,5 @@ __exportStar(require("./mcp-tool-response.interface"), exports);
18
18
  __exportStar(require("./message.interface"), exports);
19
19
  __exportStar(require("./get-by-id.interface"), exports);
20
20
  __exportStar(require("./folder.interface"), exports);
21
+ __exportStar(require("./user-info.interface"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,sDAAoC;AACpC,wDAAsC;AACtC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,sDAAoC;AACpC,wDAAsC;AACtC,qDAAmC;AACnC,wDAAsC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user-info.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-info.interface.js","sourceRoot":"","sources":["../../src/interfaces/user-info.interface.ts"],"names":[],"mappings":""}