@posthog/mcp 0.10.3 → 0.10.5

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 (76) hide show
  1. package/dist/extensions/analytics-parameters.d.ts +5 -0
  2. package/dist/extensions/analytics-parameters.d.ts.map +1 -1
  3. package/dist/extensions/analytics-parameters.js +57 -3
  4. package/dist/extensions/analytics-parameters.mjs +47 -2
  5. package/dist/extensions/capture.d.ts +2 -1
  6. package/dist/extensions/capture.d.ts.map +1 -1
  7. package/dist/extensions/capture.js +2 -3
  8. package/dist/extensions/capture.mjs +2 -3
  9. package/dist/extensions/compatibility.d.ts +3 -2
  10. package/dist/extensions/compatibility.d.ts.map +1 -1
  11. package/dist/extensions/compatibility.js +19 -20
  12. package/dist/extensions/compatibility.mjs +15 -16
  13. package/dist/extensions/context-parameters.d.ts +4 -3
  14. package/dist/extensions/context-parameters.d.ts.map +1 -1
  15. package/dist/extensions/context-parameters.js +4 -5
  16. package/dist/extensions/context-parameters.mjs +4 -4
  17. package/dist/extensions/conversation-id.d.ts +3 -8
  18. package/dist/extensions/conversation-id.d.ts.map +1 -1
  19. package/dist/extensions/conversation-id.js +6 -22
  20. package/dist/extensions/conversation-id.mjs +5 -17
  21. package/dist/extensions/instrument-highlevel.d.ts +2 -1
  22. package/dist/extensions/instrument-highlevel.d.ts.map +1 -1
  23. package/dist/extensions/instrument-highlevel.js +31 -51
  24. package/dist/extensions/instrument-highlevel.mjs +30 -50
  25. package/dist/extensions/instrument-lowlevel.d.ts +2 -1
  26. package/dist/extensions/instrument-lowlevel.d.ts.map +1 -1
  27. package/dist/extensions/instrument-lowlevel.js +8 -9
  28. package/dist/extensions/instrument-lowlevel.mjs +8 -9
  29. package/dist/extensions/instrumentation.d.ts +7 -8
  30. package/dist/extensions/instrumentation.d.ts.map +1 -1
  31. package/dist/extensions/instrumentation.js +57 -32
  32. package/dist/extensions/instrumentation.mjs +58 -33
  33. package/dist/extensions/intent.d.ts +1 -1
  34. package/dist/extensions/intent.d.ts.map +1 -1
  35. package/dist/extensions/intent.js +3 -4
  36. package/dist/extensions/intent.mjs +3 -4
  37. package/dist/extensions/internal.d.ts.map +1 -1
  38. package/dist/extensions/internal.js +5 -6
  39. package/dist/extensions/internal.mjs +5 -6
  40. package/dist/extensions/logger.d.ts +12 -4
  41. package/dist/extensions/logger.d.ts.map +1 -1
  42. package/dist/extensions/logger.js +12 -3
  43. package/dist/extensions/logger.mjs +10 -4
  44. package/dist/extensions/sink.d.ts +4 -2
  45. package/dist/extensions/sink.d.ts.map +1 -1
  46. package/dist/extensions/sink.js +11 -10
  47. package/dist/extensions/sink.mjs +11 -10
  48. package/dist/extensions/tools.d.ts +2 -1
  49. package/dist/extensions/tools.d.ts.map +1 -1
  50. package/dist/extensions/tools.js +2 -2
  51. package/dist/extensions/tools.mjs +2 -2
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +19 -16
  54. package/dist/index.mjs +20 -17
  55. package/dist/types.d.ts +7 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/version.d.ts +1 -1
  58. package/dist/version.js +1 -1
  59. package/dist/version.mjs +1 -1
  60. package/package.json +4 -4
  61. package/src/extensions/analytics-parameters.ts +67 -1
  62. package/src/extensions/capture.ts +3 -3
  63. package/src/extensions/compatibility.ts +16 -16
  64. package/src/extensions/context-parameters.ts +9 -7
  65. package/src/extensions/conversation-id.ts +12 -25
  66. package/src/extensions/instrument-highlevel.ts +52 -75
  67. package/src/extensions/instrument-lowlevel.ts +14 -10
  68. package/src/extensions/instrumentation.ts +101 -36
  69. package/src/extensions/intent.ts +8 -3
  70. package/src/extensions/internal.ts +7 -6
  71. package/src/extensions/logger.ts +22 -7
  72. package/src/extensions/sink.ts +17 -12
  73. package/src/extensions/tools.ts +3 -3
  74. package/src/index.ts +22 -19
  75. package/src/types.ts +8 -0
  76. package/src/version.ts +1 -1
@@ -1,4 +1,6 @@
1
+ import type { AnalyticsParameterOwnership } from '../types';
1
2
  export interface AnalyticsInjectableJsonSchema {
3
+ $ref?: unknown;
2
4
  additionalProperties?: boolean;
3
5
  allOf?: unknown;
4
6
  anyOf?: unknown;
@@ -9,4 +11,7 @@ export interface AnalyticsInjectableJsonSchema {
9
11
  }
10
12
  export declare function hasAnalyticsParameter(schema: AnalyticsInjectableJsonSchema | undefined, parameterName: string): boolean;
11
13
  export declare function canInjectAnalyticsParameter(schema: AnalyticsInjectableJsonSchema | undefined, parameterName: string): boolean;
14
+ export declare function analyticsOwnsParameter(inputSchema: unknown, parameterName: string): boolean;
15
+ export declare function getAnalyticsParameterOwnership(inputSchema: unknown): AnalyticsParameterOwnership;
16
+ export declare function stripOwnedAnalyticsArguments(args: unknown, ownership: AnalyticsParameterOwnership): unknown;
12
17
  //# sourceMappingURL=analytics-parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-parameters.d.ts","sourceRoot":"","sources":["../../src/extensions/analytics-parameters.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,6BAA6B,GAAG,SAAS,EACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,6BAA6B,GAAG,SAAS,EACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAET"}
1
+ {"version":3,"file":"analytics-parameters.d.ts","sourceRoot":"","sources":["../../src/extensions/analytics-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAgB3D,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,6BAA6B,GAAG,SAAS,EACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAET;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,6BAA6B,GAAG,SAAS,EACjD,aAAa,EAAE,MAAM,GACpB,OAAO,CAIT;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAyB3F;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,OAAO,GAAG,2BAA2B,CAKhG;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,2BAA2B,GAAG,OAAO,CAW3G"}
@@ -24,20 +24,74 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ hasAnalyticsParameter: ()=>hasAnalyticsParameter,
28
+ analyticsOwnsParameter: ()=>analyticsOwnsParameter,
29
+ getAnalyticsParameterOwnership: ()=>getAnalyticsParameterOwnership,
27
30
  canInjectAnalyticsParameter: ()=>canInjectAnalyticsParameter,
28
- hasAnalyticsParameter: ()=>hasAnalyticsParameter
31
+ stripOwnedAnalyticsArguments: ()=>stripOwnedAnalyticsArguments
29
32
  });
33
+ const external_mcp_sdk_compat_js_namespaceObject = require("./mcp-sdk-compat.js");
34
+ const JSON_SCHEMA_KEYWORDS = [
35
+ '$defs',
36
+ '$ref',
37
+ 'additionalProperties',
38
+ 'allOf',
39
+ 'anyOf',
40
+ 'definitions',
41
+ 'oneOf',
42
+ 'properties',
43
+ 'required',
44
+ 'type'
45
+ ];
30
46
  function hasAnalyticsParameter(schema, parameterName) {
31
47
  return !!schema?.properties && Object.prototype.hasOwnProperty.call(schema.properties, parameterName);
32
48
  }
33
49
  function canInjectAnalyticsParameter(schema, parameterName) {
34
- return !hasAnalyticsParameter(schema, parameterName) && !schema?.oneOf && !schema?.allOf && !schema?.anyOf;
50
+ return !hasAnalyticsParameter(schema, parameterName) && !schema?.$ref && !schema?.oneOf && !schema?.allOf && !schema?.anyOf;
35
51
  }
52
+ function analyticsOwnsParameter(inputSchema, parameterName) {
53
+ if (!inputSchema || 'object' != typeof inputSchema) return canInjectAnalyticsParameter(void 0, parameterName);
54
+ if ((0, external_mcp_sdk_compat_js_namespaceObject.isZodRawShapeCompat)(inputSchema)) return canInjectAnalyticsParameter({
55
+ properties: inputSchema
56
+ }, parameterName);
57
+ const shape = (0, external_mcp_sdk_compat_js_namespaceObject.getObjectShape)(inputSchema);
58
+ if (shape) return canInjectAnalyticsParameter({
59
+ properties: shape
60
+ }, parameterName);
61
+ const schema = inputSchema;
62
+ if (JSON_SCHEMA_KEYWORDS.some((keyword)=>Object.prototype.hasOwnProperty.call(schema, keyword))) return canInjectAnalyticsParameter(schema, parameterName);
63
+ if ('_def' in schema || '_zod' in schema || '~standard' in schema) return canInjectAnalyticsParameter(void 0, parameterName);
64
+ return canInjectAnalyticsParameter(schema, parameterName);
65
+ }
66
+ function getAnalyticsParameterOwnership(inputSchema) {
67
+ return {
68
+ context: analyticsOwnsParameter(inputSchema, 'context'),
69
+ conversationId: analyticsOwnsParameter(inputSchema, 'conversation_id')
70
+ };
71
+ }
72
+ function stripOwnedAnalyticsArguments(args, ownership) {
73
+ let cleanedArgs = args;
74
+ if (ownership.context && cleanedArgs && 'object' == typeof cleanedArgs && 'context' in cleanedArgs) {
75
+ const { context: _context, ...rest } = cleanedArgs;
76
+ cleanedArgs = rest;
77
+ }
78
+ if (ownership.conversationId && cleanedArgs && 'object' == typeof cleanedArgs && 'conversation_id' in cleanedArgs) {
79
+ const { conversation_id: _conversationId, ...rest } = cleanedArgs;
80
+ cleanedArgs = rest;
81
+ }
82
+ return cleanedArgs;
83
+ }
84
+ exports.analyticsOwnsParameter = __webpack_exports__.analyticsOwnsParameter;
36
85
  exports.canInjectAnalyticsParameter = __webpack_exports__.canInjectAnalyticsParameter;
86
+ exports.getAnalyticsParameterOwnership = __webpack_exports__.getAnalyticsParameterOwnership;
37
87
  exports.hasAnalyticsParameter = __webpack_exports__.hasAnalyticsParameter;
88
+ exports.stripOwnedAnalyticsArguments = __webpack_exports__.stripOwnedAnalyticsArguments;
38
89
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
90
+ "analyticsOwnsParameter",
39
91
  "canInjectAnalyticsParameter",
40
- "hasAnalyticsParameter"
92
+ "getAnalyticsParameterOwnership",
93
+ "hasAnalyticsParameter",
94
+ "stripOwnedAnalyticsArguments"
41
95
  ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
42
96
  Object.defineProperty(exports, '__esModule', {
43
97
  value: true
@@ -1,7 +1,52 @@
1
+ import { getObjectShape, isZodRawShapeCompat } from "./mcp-sdk-compat.mjs";
2
+ const JSON_SCHEMA_KEYWORDS = [
3
+ '$defs',
4
+ '$ref',
5
+ 'additionalProperties',
6
+ 'allOf',
7
+ 'anyOf',
8
+ 'definitions',
9
+ 'oneOf',
10
+ 'properties',
11
+ 'required',
12
+ 'type'
13
+ ];
1
14
  function hasAnalyticsParameter(schema, parameterName) {
2
15
  return !!schema?.properties && Object.prototype.hasOwnProperty.call(schema.properties, parameterName);
3
16
  }
4
17
  function canInjectAnalyticsParameter(schema, parameterName) {
5
- return !hasAnalyticsParameter(schema, parameterName) && !schema?.oneOf && !schema?.allOf && !schema?.anyOf;
18
+ return !hasAnalyticsParameter(schema, parameterName) && !schema?.$ref && !schema?.oneOf && !schema?.allOf && !schema?.anyOf;
6
19
  }
7
- export { canInjectAnalyticsParameter, hasAnalyticsParameter };
20
+ function analyticsOwnsParameter(inputSchema, parameterName) {
21
+ if (!inputSchema || 'object' != typeof inputSchema) return canInjectAnalyticsParameter(void 0, parameterName);
22
+ if (isZodRawShapeCompat(inputSchema)) return canInjectAnalyticsParameter({
23
+ properties: inputSchema
24
+ }, parameterName);
25
+ const shape = getObjectShape(inputSchema);
26
+ if (shape) return canInjectAnalyticsParameter({
27
+ properties: shape
28
+ }, parameterName);
29
+ const schema = inputSchema;
30
+ if (JSON_SCHEMA_KEYWORDS.some((keyword)=>Object.prototype.hasOwnProperty.call(schema, keyword))) return canInjectAnalyticsParameter(schema, parameterName);
31
+ if ('_def' in schema || '_zod' in schema || '~standard' in schema) return canInjectAnalyticsParameter(void 0, parameterName);
32
+ return canInjectAnalyticsParameter(schema, parameterName);
33
+ }
34
+ function getAnalyticsParameterOwnership(inputSchema) {
35
+ return {
36
+ context: analyticsOwnsParameter(inputSchema, 'context'),
37
+ conversationId: analyticsOwnsParameter(inputSchema, 'conversation_id')
38
+ };
39
+ }
40
+ function stripOwnedAnalyticsArguments(args, ownership) {
41
+ let cleanedArgs = args;
42
+ if (ownership.context && cleanedArgs && 'object' == typeof cleanedArgs && 'context' in cleanedArgs) {
43
+ const { context: _context, ...rest } = cleanedArgs;
44
+ cleanedArgs = rest;
45
+ }
46
+ if (ownership.conversationId && cleanedArgs && 'object' == typeof cleanedArgs && 'conversation_id' in cleanedArgs) {
47
+ const { conversation_id: _conversationId, ...rest } = cleanedArgs;
48
+ cleanedArgs = rest;
49
+ }
50
+ return cleanedArgs;
51
+ }
52
+ export { analyticsOwnsParameter, canInjectAnalyticsParameter, getAnalyticsParameterOwnership, hasAnalyticsParameter, stripOwnedAnalyticsArguments };
@@ -1,4 +1,5 @@
1
1
  import type { MCPServerLike, McpEvent } from '../types';
2
+ import type { LoggerFn } from './logger';
2
3
  /**
3
4
  * Materializes an `McpEvent` against the server's tracking data + session info,
4
5
  * then hands it to the `McpEventSink` (wrapping the user's posthog-node client) for the
@@ -9,5 +10,5 @@ import type { MCPServerLike, McpEvent } from '../types';
9
10
  * Auto-capture callers (tool calls, listings, identify) intentionally ignore the
10
11
  * return value, keeping the tool path isolated from analytics latency/errors.
11
12
  */
12
- export declare function captureEvent(server: MCPServerLike, eventInput: McpEvent): Promise<void> | undefined;
13
+ export declare function captureEvent(server: MCPServerLike, eventInput: McpEvent, logger: LoggerFn): Promise<void> | undefined;
13
14
  //# sourceMappingURL=capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/extensions/capture.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAMvD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAkEnG"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/extensions/capture.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGxC;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAkErH"}
@@ -28,11 +28,10 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const external_event_types_js_namespaceObject = require("./event-types.js");
30
30
  const external_internal_js_namespaceObject = require("./internal.js");
31
- const external_logger_js_namespaceObject = require("./logger.js");
32
31
  const external_session_js_namespaceObject = require("./session.js");
33
- function captureEvent(server, eventInput) {
32
+ function captureEvent(server, eventInput, logger) {
34
33
  const data = (0, external_internal_js_namespaceObject.getServerTrackingData)(server);
35
- if (!data) return void (0, external_logger_js_namespaceObject.log)('Warning: Server tracking data not found. Event will not be published.');
34
+ if (!data) return void logger('Warning: Server tracking data not found. Event will not be published.');
36
35
  const sink = data.sink;
37
36
  if (!sink) return;
38
37
  const sessionInfo = (0, external_session_js_namespaceObject.getSessionInfo)(server, data, eventInput.sessionId);
@@ -1,10 +1,9 @@
1
1
  import { MCPAnalyticsEventType } from "./event-types.mjs";
2
2
  import { getServerTrackingData } from "./internal.mjs";
3
- import { log } from "./logger.mjs";
4
3
  import { getSessionInfo } from "./session.mjs";
5
- function captureEvent(server, eventInput) {
4
+ function captureEvent(server, eventInput, logger) {
6
5
  const data = getServerTrackingData(server);
7
- if (!data) return void log('Warning: Server tracking data not found. Event will not be published.');
6
+ if (!data) return void logger('Warning: Server tracking data not found. Event will not be published.');
8
7
  const sink = data.sink;
9
8
  if (!sink) return;
10
9
  const sessionInfo = getSessionInfo(server, data, eventInput.sessionId);
@@ -1,4 +1,5 @@
1
1
  import type { HighLevelMCPServerLike, MCPServerLike } from '../types';
2
+ import type { LoggerFn } from './logger';
2
3
  type ServerRecord = Record<string, unknown>;
3
4
  /**
4
5
  * PostHog MCP analytics Compatibility Module
@@ -12,12 +13,12 @@ type ServerRecord = Record<string, unknown>;
12
13
  * - Client version detection
13
14
  * - Server info structure
14
15
  */
15
- export declare function logCompatibilityWarning(): void;
16
+ export declare function logCompatibilityWarning(logger: LoggerFn): void;
16
17
  export declare function isHighLevelServer(server: unknown): server is ServerRecord & {
17
18
  server: ServerRecord;
18
19
  };
19
20
  export declare function isLowLevelServer(server: unknown): server is ServerRecord;
20
- export declare function isCompatibleServerType(server: unknown): MCPServerLike | HighLevelMCPServerLike;
21
+ export declare function isCompatibleServerType(server: unknown, logger: LoggerFn): MCPServerLike | HighLevelMCPServerLike;
21
22
  export declare function getMCPCompatibleErrorMessage(error: unknown): string;
22
23
  export {};
23
24
  //# sourceMappingURL=compatibility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/extensions/compatibility.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGrE,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE3C;;;;;;;;;;;GAWG;AAGH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAIpG;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAExE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,sBAAsB,CAgC9F;AAsDD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAanE"}
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/extensions/compatibility.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE3C;;;;;;;;;;;GAWG;AAGH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAI9D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,GAAG;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAIpG;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAExE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,sBAAsB,CAgChH;AAsDD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAanE"}
@@ -24,15 +24,14 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- isLowLevelServer: ()=>isLowLevelServer,
28
- isHighLevelServer: ()=>isHighLevelServer,
29
- logCompatibilityWarning: ()=>logCompatibilityWarning,
27
+ getMCPCompatibleErrorMessage: ()=>getMCPCompatibleErrorMessage,
30
28
  isCompatibleServerType: ()=>isCompatibleServerType,
31
- getMCPCompatibleErrorMessage: ()=>getMCPCompatibleErrorMessage
29
+ isHighLevelServer: ()=>isHighLevelServer,
30
+ isLowLevelServer: ()=>isLowLevelServer,
31
+ logCompatibilityWarning: ()=>logCompatibilityWarning
32
32
  });
33
- const external_logger_js_namespaceObject = require("./logger.js");
34
- function logCompatibilityWarning() {
35
- (0, external_logger_js_namespaceObject.log)('PostHog MCP analytics SDK Compatibility: This version only supports Model Context Protocol TypeScript SDK v1.11 and above. Please upgrade if using an older version.');
33
+ function logCompatibilityWarning(logger) {
34
+ logger('PostHog MCP analytics SDK Compatibility: This version only supports Model Context Protocol TypeScript SDK v1.11 and above. Please upgrade if using an older version.');
36
35
  }
37
36
  function isHighLevelServer(server) {
38
37
  return !!server && 'object' == typeof server && 'server' in server && !!server.server && 'object' == typeof server.server;
@@ -40,51 +39,51 @@ function isHighLevelServer(server) {
40
39
  function isLowLevelServer(server) {
41
40
  return !!server && 'object' == typeof server && !('server' in server);
42
41
  }
43
- function isCompatibleServerType(server) {
42
+ function isCompatibleServerType(server, logger) {
44
43
  if (!server || 'object' != typeof server) {
45
- logCompatibilityWarning();
44
+ logCompatibilityWarning(logger);
46
45
  throw new Error("PostHog MCP analytics SDK compatibility error: Server must be an object. Ensure you're using MCP SDK v1.11 or higher.");
47
46
  }
48
47
  if (isHighLevelServer(server)) {
49
48
  if (!server._registeredTools || 'object' != typeof server._registeredTools) {
50
- logCompatibilityWarning();
49
+ logCompatibilityWarning(logger);
51
50
  throw new Error('PostHog MCP analytics SDK compatibility error: High-level server must have _registeredTools object. This requires MCP SDK v1.11 or higher.');
52
51
  }
53
52
  if ('function' != typeof server.tool) {
54
- logCompatibilityWarning();
53
+ logCompatibilityWarning(logger);
55
54
  throw new Error('PostHog MCP analytics SDK compatibility error: High-level server must have tool() method. This requires MCP SDK v1.11 or higher.');
56
55
  }
57
56
  const targetServer = server.server;
58
- validateLowLevelServer(targetServer);
57
+ validateLowLevelServer(targetServer, logger);
59
58
  return server;
60
59
  }
61
- validateLowLevelServer(server);
60
+ validateLowLevelServer(server, logger);
62
61
  return server;
63
62
  }
64
- function validateLowLevelServer(server) {
63
+ function validateLowLevelServer(server, logger) {
65
64
  if (!server || 'object' != typeof server) {
66
- logCompatibilityWarning();
65
+ logCompatibilityWarning(logger);
67
66
  throw new Error("PostHog MCP analytics SDK compatibility error: Server must be an object. Ensure you're using MCP SDK v1.11 or higher.");
68
67
  }
69
68
  const serverRecord = server;
70
69
  if ('function' != typeof serverRecord.setRequestHandler) {
71
- logCompatibilityWarning();
70
+ logCompatibilityWarning(logger);
72
71
  throw new Error('PostHog MCP analytics SDK compatibility error: Server must have a setRequestHandler method. This requires MCP SDK v1.11 or higher.');
73
72
  }
74
73
  if (!(serverRecord._requestHandlers && serverRecord._requestHandlers instanceof Map)) {
75
- logCompatibilityWarning();
74
+ logCompatibilityWarning(logger);
76
75
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._requestHandlers is not accessible. This requires MCP SDK v1.11 or higher.');
77
76
  }
78
77
  if ('function' != typeof serverRecord._requestHandlers.get) {
79
- logCompatibilityWarning();
78
+ logCompatibilityWarning(logger);
80
79
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._requestHandlers must be a Map with a get method. This requires MCP SDK v1.11 or higher.');
81
80
  }
82
81
  if ('function' != typeof serverRecord.getClientVersion) {
83
- logCompatibilityWarning();
82
+ logCompatibilityWarning(logger);
84
83
  throw new Error('PostHog MCP analytics SDK compatibility error: Server.getClientVersion must be a function. This requires MCP SDK v1.11 or higher.');
85
84
  }
86
85
  if (!serverRecord._serverInfo || 'object' != typeof serverRecord._serverInfo || !('name' in serverRecord._serverInfo)) {
87
- logCompatibilityWarning();
86
+ logCompatibilityWarning(logger);
88
87
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._serverInfo is not accessible or missing name. This requires MCP SDK v1.11 or higher.');
89
88
  }
90
89
  }
@@ -1,6 +1,5 @@
1
- import { log } from "./logger.mjs";
2
- function logCompatibilityWarning() {
3
- log('PostHog MCP analytics SDK Compatibility: This version only supports Model Context Protocol TypeScript SDK v1.11 and above. Please upgrade if using an older version.');
1
+ function logCompatibilityWarning(logger) {
2
+ logger('PostHog MCP analytics SDK Compatibility: This version only supports Model Context Protocol TypeScript SDK v1.11 and above. Please upgrade if using an older version.');
4
3
  }
5
4
  function isHighLevelServer(server) {
6
5
  return !!server && 'object' == typeof server && 'server' in server && !!server.server && 'object' == typeof server.server;
@@ -8,51 +7,51 @@ function isHighLevelServer(server) {
8
7
  function isLowLevelServer(server) {
9
8
  return !!server && 'object' == typeof server && !('server' in server);
10
9
  }
11
- function isCompatibleServerType(server) {
10
+ function isCompatibleServerType(server, logger) {
12
11
  if (!server || 'object' != typeof server) {
13
- logCompatibilityWarning();
12
+ logCompatibilityWarning(logger);
14
13
  throw new Error("PostHog MCP analytics SDK compatibility error: Server must be an object. Ensure you're using MCP SDK v1.11 or higher.");
15
14
  }
16
15
  if (isHighLevelServer(server)) {
17
16
  if (!server._registeredTools || 'object' != typeof server._registeredTools) {
18
- logCompatibilityWarning();
17
+ logCompatibilityWarning(logger);
19
18
  throw new Error('PostHog MCP analytics SDK compatibility error: High-level server must have _registeredTools object. This requires MCP SDK v1.11 or higher.');
20
19
  }
21
20
  if ('function' != typeof server.tool) {
22
- logCompatibilityWarning();
21
+ logCompatibilityWarning(logger);
23
22
  throw new Error('PostHog MCP analytics SDK compatibility error: High-level server must have tool() method. This requires MCP SDK v1.11 or higher.');
24
23
  }
25
24
  const targetServer = server.server;
26
- validateLowLevelServer(targetServer);
25
+ validateLowLevelServer(targetServer, logger);
27
26
  return server;
28
27
  }
29
- validateLowLevelServer(server);
28
+ validateLowLevelServer(server, logger);
30
29
  return server;
31
30
  }
32
- function validateLowLevelServer(server) {
31
+ function validateLowLevelServer(server, logger) {
33
32
  if (!server || 'object' != typeof server) {
34
- logCompatibilityWarning();
33
+ logCompatibilityWarning(logger);
35
34
  throw new Error("PostHog MCP analytics SDK compatibility error: Server must be an object. Ensure you're using MCP SDK v1.11 or higher.");
36
35
  }
37
36
  const serverRecord = server;
38
37
  if ('function' != typeof serverRecord.setRequestHandler) {
39
- logCompatibilityWarning();
38
+ logCompatibilityWarning(logger);
40
39
  throw new Error('PostHog MCP analytics SDK compatibility error: Server must have a setRequestHandler method. This requires MCP SDK v1.11 or higher.');
41
40
  }
42
41
  if (!(serverRecord._requestHandlers && serverRecord._requestHandlers instanceof Map)) {
43
- logCompatibilityWarning();
42
+ logCompatibilityWarning(logger);
44
43
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._requestHandlers is not accessible. This requires MCP SDK v1.11 or higher.');
45
44
  }
46
45
  if ('function' != typeof serverRecord._requestHandlers.get) {
47
- logCompatibilityWarning();
46
+ logCompatibilityWarning(logger);
48
47
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._requestHandlers must be a Map with a get method. This requires MCP SDK v1.11 or higher.');
49
48
  }
50
49
  if ('function' != typeof serverRecord.getClientVersion) {
51
- logCompatibilityWarning();
50
+ logCompatibilityWarning(logger);
52
51
  throw new Error('PostHog MCP analytics SDK compatibility error: Server.getClientVersion must be a function. This requires MCP SDK v1.11 or higher.');
53
52
  }
54
53
  if (!serverRecord._serverInfo || 'object' != typeof serverRecord._serverInfo || !('name' in serverRecord._serverInfo)) {
55
- logCompatibilityWarning();
54
+ logCompatibilityWarning(logger);
56
55
  throw new Error('PostHog MCP analytics SDK compatibility error: Server._serverInfo is not accessible or missing name. This requires MCP SDK v1.11 or higher.');
57
56
  }
58
57
  }
@@ -1,5 +1,6 @@
1
1
  import type { MCPAnalyticsOptions } from '../types';
2
2
  import { type AnalyticsInjectableJsonSchema } from './analytics-parameters';
3
+ import { type LoggerFn } from './logger';
3
4
  export interface ContextInjectableTool {
4
5
  inputSchema?: AnalyticsInjectableJsonSchema;
5
6
  name?: string;
@@ -14,9 +15,9 @@ export declare function getContextDescription(context: MCPAnalyticsOptions['cont
14
15
  *
15
16
  * Skips injection (with warning) for:
16
17
  * - Tools that already have a 'context' parameter
17
- * - Complex schemas (oneOf/allOf/anyOf) that can't safely have properties added
18
+ * - Complex schemas (oneOf/allOf/anyOf/$ref) that can't safely have properties added
18
19
  * - Schemas with additionalProperties: false
19
20
  */
20
- export declare function addContextParameterToTool<TTool extends ContextInjectableTool>(tool: TTool, contextDescriptionOverride?: string): TTool;
21
- export declare function addContextParameterToTools<TTool extends ContextInjectableTool>(tools: TTool[], contextDescriptionOverride?: string): TTool[];
21
+ export declare function addContextParameterToTool<TTool extends ContextInjectableTool>(tool: TTool, contextDescriptionOverride?: string, logger?: LoggerFn): TTool;
22
+ export declare function addContextParameterToTools<TTool extends ContextInjectableTool>(tools: TTool[], contextDescriptionOverride?: string, logger?: LoggerFn): TTool[];
22
23
  //# sourceMappingURL=context-parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-parameters.d.ts","sourceRoot":"","sources":["../../src/extensions/context-parameters.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAA;AAI/B,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,6BAA6B,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,qBAAqB,EAC3E,IAAI,EAAE,KAAK,EACX,0BAA0B,CAAC,EAAE,MAAM,GAClC,KAAK,CA6DP;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,qBAAqB,EAC5E,KAAK,EAAE,KAAK,EAAE,EACd,0BAA0B,CAAC,EAAE,MAAM,GAClC,KAAK,EAAE,CAQT"}
1
+ {"version":3,"file":"context-parameters.d.ts","sourceRoot":"","sources":["../../src/extensions/context-parameters.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE7C,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,6BAA6B,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,qBAAqB,EAC3E,IAAI,EAAE,KAAK,EACX,0BAA0B,CAAC,EAAE,MAAM,EACnC,MAAM,GAAE,QAAc,GACrB,KAAK,CA6DP;AAED,wBAAgB,0BAA0B,CAAC,KAAK,SAAS,qBAAqB,EAC5E,KAAK,EAAE,KAAK,EAAE,EACd,0BAA0B,CAAC,EAAE,MAAM,EACnC,MAAM,GAAE,QAAc,GACrB,KAAK,EAAE,CAQT"}
@@ -38,15 +38,14 @@ function isContextEnabled(context) {
38
38
  function getContextDescription(context) {
39
39
  return 'object' == typeof context ? context.description : void 0;
40
40
  }
41
- function addContextParameterToTool(tool, contextDescriptionOverride) {
41
+ function addContextParameterToTool(tool, contextDescriptionOverride, logger = external_logger_js_namespaceObject.log) {
42
42
  const modifiedTool = {
43
43
  ...tool
44
44
  };
45
45
  const toolName = tool.name || 'unknown';
46
46
  const schema = modifiedTool.inputSchema;
47
47
  if (!(0, external_analytics_parameters_js_namespaceObject.canInjectAnalyticsParameter)(schema, 'context')) {
48
- if ((0, external_analytics_parameters_js_namespaceObject.hasAnalyticsParameter)(schema, 'context')) (0, external_logger_js_namespaceObject.log)(`WARN: Tool "${toolName}" already has 'context' parameter. Skipping context injection.`);
49
- else (0, external_logger_js_namespaceObject.log)(`WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf). Skipping context injection.`);
48
+ logger((0, external_analytics_parameters_js_namespaceObject.hasAnalyticsParameter)(schema, 'context') ? `WARN: Tool "${toolName}" already has 'context' parameter. Skipping context injection.` : `WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf/$ref). Skipping context injection.`);
50
49
  return modifiedTool;
51
50
  }
52
51
  if (!modifiedTool.inputSchema) modifiedTool.inputSchema = {
@@ -70,10 +69,10 @@ function addContextParameterToTool(tool, contextDescriptionOverride) {
70
69
  ];
71
70
  return modifiedTool;
72
71
  }
73
- function addContextParameterToTools(tools, contextDescriptionOverride) {
72
+ function addContextParameterToTools(tools, contextDescriptionOverride, logger = external_logger_js_namespaceObject.log) {
74
73
  return tools.map((tool)=>{
75
74
  if ('get_more_tools' === tool.name) return tool;
76
- return addContextParameterToTool(tool, contextDescriptionOverride);
75
+ return addContextParameterToTool(tool, contextDescriptionOverride, logger);
77
76
  });
78
77
  }
79
78
  exports.addContextParameterToTool = __webpack_exports__.addContextParameterToTool;
@@ -7,14 +7,14 @@ function isContextEnabled(context) {
7
7
  function getContextDescription(context) {
8
8
  return 'object' == typeof context ? context.description : void 0;
9
9
  }
10
- function addContextParameterToTool(tool, contextDescriptionOverride) {
10
+ function addContextParameterToTool(tool, contextDescriptionOverride, logger = log) {
11
11
  const modifiedTool = {
12
12
  ...tool
13
13
  };
14
14
  const toolName = tool.name || 'unknown';
15
15
  const schema = modifiedTool.inputSchema;
16
16
  if (!canInjectAnalyticsParameter(schema, 'context')) {
17
- hasAnalyticsParameter(schema, 'context') ? log(`WARN: Tool "${toolName}" already has 'context' parameter. Skipping context injection.`) : log(`WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf). Skipping context injection.`);
17
+ logger(hasAnalyticsParameter(schema, 'context') ? `WARN: Tool "${toolName}" already has 'context' parameter. Skipping context injection.` : `WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf/$ref). Skipping context injection.`);
18
18
  return modifiedTool;
19
19
  }
20
20
  if (!modifiedTool.inputSchema) modifiedTool.inputSchema = {
@@ -38,10 +38,10 @@ function addContextParameterToTool(tool, contextDescriptionOverride) {
38
38
  ];
39
39
  return modifiedTool;
40
40
  }
41
- function addContextParameterToTools(tools, contextDescriptionOverride) {
41
+ function addContextParameterToTools(tools, contextDescriptionOverride, logger = log) {
42
42
  return tools.map((tool)=>{
43
43
  if ('get_more_tools' === tool.name) return tool;
44
- return addContextParameterToTool(tool, contextDescriptionOverride);
44
+ return addContextParameterToTool(tool, contextDescriptionOverride, logger);
45
45
  });
46
46
  }
47
47
  export { addContextParameterToTool, addContextParameterToTools, getContextDescription, isContextEnabled };
@@ -1,12 +1,13 @@
1
1
  import { type AnalyticsInjectableJsonSchema } from './analytics-parameters';
2
+ import { type LoggerFn } from './logger';
2
3
  export declare const CONVERSATION_ID_PARAM_NAME = "conversation_id";
3
4
  export interface ConversationIdInjectableTool {
4
5
  inputSchema?: AnalyticsInjectableJsonSchema;
5
6
  name?: string;
6
7
  [key: string]: unknown;
7
8
  }
8
- export declare function addConversationIdToTool<TTool extends ConversationIdInjectableTool>(tool: TTool): TTool;
9
- export declare function addConversationIdToTools<TTool extends ConversationIdInjectableTool>(tools: TTool[], missingCapabilityToolName?: string): TTool[];
9
+ export declare function addConversationIdToTool<TTool extends ConversationIdInjectableTool>(tool: TTool, logger?: LoggerFn): TTool;
10
+ export declare function addConversationIdToTools<TTool extends ConversationIdInjectableTool>(tools: TTool[], missingCapabilityToolName?: string, logger?: LoggerFn): TTool[];
10
11
  export type ConversationIdResolution = {
11
12
  minted: false;
12
13
  conversationId: string | undefined;
@@ -28,12 +29,6 @@ export declare function resolveConversationId(enabled: boolean, args: unknown, t
28
29
  */
29
30
  export declare function canInjectConversationIdPromptBack(result: unknown): boolean;
30
31
  export declare function extractConversationId(args: unknown): string | undefined;
31
- export declare function cloneRequestWithoutConversationId<TRequest extends {
32
- params?: {
33
- arguments?: unknown;
34
- [k: string]: unknown;
35
- };
36
- }>(request: TRequest): TRequest;
37
32
  export declare function stripConversationId(args: unknown): unknown;
38
33
  export declare function buildConversationIdPromptBack(conversationId: string): {
39
34
  type: 'text';
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-id.d.ts","sourceRoot":"","sources":["../../src/extensions/conversation-id.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAA;AAK/B,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAE3D,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,6BAA6B,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,4BAA4B,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,CA0CtG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,4BAA4B,EACjF,KAAK,EAAE,KAAK,EAAE,EACd,yBAAyB,GAAE,MAA4B,GACtD,KAAK,EAAE,CAOT;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,yBAAyB,GAAE,MAA4B,GACtD,wBAAwB,CAS1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAS1E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUvE;AAED,wBAAgB,iCAAiC,CAC/C,QAAQ,SAAS;IAAE,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAAE,EAC3E,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAe7B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAKA;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAS/F"}
1
+ {"version":3,"file":"conversation-id.d.ts","sourceRoot":"","sources":["../../src/extensions/conversation-id.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAG7C,eAAO,MAAM,0BAA0B,oBAAoB,CAAA;AAE3D,MAAM,WAAW,4BAA4B;IAC3C,WAAW,CAAC,EAAE,6BAA6B,CAAA;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,4BAA4B,EAChF,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,QAAc,GACrB,KAAK,CA4CP;AAED,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,4BAA4B,EACjF,KAAK,EAAE,KAAK,EAAE,EACd,yBAAyB,GAAE,MAA4B,EACvD,MAAM,GAAE,QAAc,GACrB,KAAK,EAAE,CAOT;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,yBAAyB,GAAE,MAA4B,GACtD,wBAAwB,CAS1B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAS1E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAKA;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAS/F"}
@@ -27,11 +27,10 @@ __webpack_require__.d(__webpack_exports__, {
27
27
  CONVERSATION_ID_PARAM_NAME: ()=>CONVERSATION_ID_PARAM_NAME,
28
28
  resolveConversationId: ()=>resolveConversationId,
29
29
  buildConversationIdPromptBack: ()=>buildConversationIdPromptBack,
30
- addConversationIdToTool: ()=>addConversationIdToTool,
30
+ injectConversationIdPromptBack: ()=>injectConversationIdPromptBack,
31
31
  addConversationIdToTools: ()=>addConversationIdToTools,
32
32
  extractConversationId: ()=>extractConversationId,
33
- injectConversationIdPromptBack: ()=>injectConversationIdPromptBack,
34
- cloneRequestWithoutConversationId: ()=>cloneRequestWithoutConversationId,
33
+ addConversationIdToTool: ()=>addConversationIdToTool,
35
34
  stripConversationId: ()=>stripConversationId,
36
35
  canInjectConversationIdPromptBack: ()=>canInjectConversationIdPromptBack
37
36
  });
@@ -41,15 +40,14 @@ const external_constants_js_namespaceObject = require("./constants.js");
41
40
  const external_logger_js_namespaceObject = require("./logger.js");
42
41
  const external_tools_js_namespaceObject = require("./tools.js");
43
42
  const CONVERSATION_ID_PARAM_NAME = 'conversation_id';
44
- function addConversationIdToTool(tool) {
43
+ function addConversationIdToTool(tool, logger = external_logger_js_namespaceObject.log) {
45
44
  const modifiedTool = {
46
45
  ...tool
47
46
  };
48
47
  const toolName = tool.name || 'unknown';
49
48
  const schema = modifiedTool.inputSchema;
50
49
  if (!(0, external_analytics_parameters_js_namespaceObject.canInjectAnalyticsParameter)(schema, CONVERSATION_ID_PARAM_NAME)) {
51
- if ((0, external_analytics_parameters_js_namespaceObject.hasAnalyticsParameter)(schema, CONVERSATION_ID_PARAM_NAME)) (0, external_logger_js_namespaceObject.log)(`WARN: Tool "${toolName}" already has '${CONVERSATION_ID_PARAM_NAME}' parameter. Skipping conversation_id injection.`);
52
- else (0, external_logger_js_namespaceObject.log)(`WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf). Skipping conversation_id injection.`);
50
+ logger((0, external_analytics_parameters_js_namespaceObject.hasAnalyticsParameter)(schema, CONVERSATION_ID_PARAM_NAME) ? `WARN: Tool "${toolName}" already has '${CONVERSATION_ID_PARAM_NAME}' parameter. Skipping conversation_id injection.` : `WARN: Tool "${toolName}" has complex schema (oneOf/allOf/anyOf/$ref). Skipping conversation_id injection.`);
53
51
  return modifiedTool;
54
52
  }
55
53
  if (!modifiedTool.inputSchema) modifiedTool.inputSchema = {
@@ -67,10 +65,10 @@ function addConversationIdToTool(tool) {
67
65
  };
68
66
  return modifiedTool;
69
67
  }
70
- function addConversationIdToTools(tools, missingCapabilityToolName = external_tools_js_namespaceObject.GET_MORE_TOOLS_NAME) {
68
+ function addConversationIdToTools(tools, missingCapabilityToolName = external_tools_js_namespaceObject.GET_MORE_TOOLS_NAME, logger = external_logger_js_namespaceObject.log) {
71
69
  return tools.map((tool)=>{
72
70
  if (tool.name === missingCapabilityToolName) return tool;
73
- return addConversationIdToTool(tool);
71
+ return addConversationIdToTool(tool, logger);
74
72
  });
75
73
  }
76
74
  function resolveConversationId(enabled, args, toolName, missingCapabilityToolName = external_tools_js_namespaceObject.GET_MORE_TOOLS_NAME) {
@@ -101,18 +99,6 @@ function extractConversationId(args) {
101
99
  const trimmed = value.trim();
102
100
  return trimmed.length > 0 ? trimmed : void 0;
103
101
  }
104
- function cloneRequestWithoutConversationId(request) {
105
- if (!request.params || 'object' != typeof request.params) return request;
106
- const args = request.params.arguments;
107
- if (!(args && 'object' == typeof args)) return request;
108
- return {
109
- ...request,
110
- params: {
111
- ...request.params,
112
- arguments: stripConversationId(args)
113
- }
114
- };
115
- }
116
102
  function stripConversationId(args) {
117
103
  if (!args || 'object' != typeof args || !(CONVERSATION_ID_PARAM_NAME in args)) return args;
118
104
  const { [CONVERSATION_ID_PARAM_NAME]: _omit, ...rest } = args;
@@ -140,7 +126,6 @@ exports.addConversationIdToTool = __webpack_exports__.addConversationIdToTool;
140
126
  exports.addConversationIdToTools = __webpack_exports__.addConversationIdToTools;
141
127
  exports.buildConversationIdPromptBack = __webpack_exports__.buildConversationIdPromptBack;
142
128
  exports.canInjectConversationIdPromptBack = __webpack_exports__.canInjectConversationIdPromptBack;
143
- exports.cloneRequestWithoutConversationId = __webpack_exports__.cloneRequestWithoutConversationId;
144
129
  exports.extractConversationId = __webpack_exports__.extractConversationId;
145
130
  exports.injectConversationIdPromptBack = __webpack_exports__.injectConversationIdPromptBack;
146
131
  exports.resolveConversationId = __webpack_exports__.resolveConversationId;
@@ -151,7 +136,6 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
151
136
  "addConversationIdToTools",
152
137
  "buildConversationIdPromptBack",
153
138
  "canInjectConversationIdPromptBack",
154
- "cloneRequestWithoutConversationId",
155
139
  "extractConversationId",
156
140
  "injectConversationIdPromptBack",
157
141
  "resolveConversationId",