hawkeye-mcp-server 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +82 -2
  2. package/build/config/config.d.ts +6 -1
  3. package/build/config/config.js +24 -5
  4. package/build/config/config.js.map +1 -1
  5. package/build/db/index.d.ts +51 -0
  6. package/build/db/index.js +174 -0
  7. package/build/db/index.js.map +1 -0
  8. package/build/db/postgres-state-provider.d.ts +52 -0
  9. package/build/db/postgres-state-provider.js +165 -0
  10. package/build/db/postgres-state-provider.js.map +1 -0
  11. package/build/index.d.ts +4 -1
  12. package/build/index.js +17 -84
  13. package/build/index.js.map +1 -1
  14. package/build/mcp-server-factory.d.ts +36 -0
  15. package/build/mcp-server-factory.js +92 -0
  16. package/build/mcp-server-factory.js.map +1 -0
  17. package/build/server.d.ts +9 -0
  18. package/build/server.js +337 -0
  19. package/build/server.js.map +1 -0
  20. package/build/services/auth.service.d.ts +38 -0
  21. package/build/services/auth.service.js +64 -0
  22. package/build/services/auth.service.js.map +1 -1
  23. package/build/services/project.service.d.ts +11 -0
  24. package/build/services/project.service.js +31 -0
  25. package/build/services/project.service.js.map +1 -1
  26. package/build/services/state.service.d.ts +115 -0
  27. package/build/services/state.service.js +172 -0
  28. package/build/services/state.service.js.map +1 -0
  29. package/build/tools/create-connection.d.ts +12 -0
  30. package/build/tools/create-connection.js +6 -0
  31. package/build/tools/create-connection.js.map +1 -1
  32. package/build/tools/create-manual-investigation.js +10 -6
  33. package/build/tools/create-manual-investigation.js.map +1 -1
  34. package/build/tools/get-connection-info.js +1 -0
  35. package/build/tools/get-connection-info.js.map +1 -1
  36. package/build/tools/get-session-link.js +1 -2
  37. package/build/tools/get-session-link.js.map +1 -1
  38. package/build/tools/get-status.js +2 -4
  39. package/build/tools/get-status.js.map +1 -1
  40. package/build/tools/index.js +11 -1
  41. package/build/tools/index.js.map +1 -1
  42. package/build/tools/inspect-session.js +1 -2
  43. package/build/tools/inspect-session.js.map +1 -1
  44. package/build/tools/list-connection-types.js +9 -0
  45. package/build/tools/list-connection-types.js.map +1 -1
  46. package/build/types/hawkeye.d.ts +7 -0
  47. package/build/types/hawkeye.js.map +1 -1
  48. package/build/utils/connection-builders.d.ts +8 -0
  49. package/build/utils/connection-builders.js +48 -1
  50. package/build/utils/connection-builders.js.map +1 -1
  51. package/build/utils/state.d.ts +24 -17
  52. package/build/utils/state.js +63 -72
  53. package/build/utils/state.js.map +1 -1
  54. package/package.json +12 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
1
  /**
2
2
  * Authentication service for Hawkeye API
3
3
  * Handles login, token caching, and automatic token refresh
4
+ *
5
+ * Supports two authentication modes:
6
+ * 1. Password mode: Uses email/password to login and get tokens
7
+ * 2. Bearer token mode: Uses an externally provided token (e.g., from Auth0)
4
8
  */
5
9
  import { HttpClient } from '../utils/http-client.js';
10
+ /**
11
+ * Authentication mode
12
+ */
13
+ export type AuthMode = 'password' | 'bearer';
14
+ /**
15
+ * User information returned from /v1/user/me
16
+ */
17
+ export interface UserInfo {
18
+ email: string;
19
+ name?: string;
20
+ uuid?: string;
21
+ organization_uuid?: string;
22
+ }
6
23
  /**
7
24
  * Authentication service
8
25
  */
@@ -10,7 +27,28 @@ export declare class AuthenticationService {
10
27
  private httpClient;
11
28
  private tokenCache;
12
29
  private config;
30
+ private authMode;
31
+ private bearerToken;
32
+ private userInfo;
13
33
  constructor(httpClient: HttpClient);
34
+ /**
35
+ * Set bearer token directly (for Auth0/OAuth mode)
36
+ * This bypasses the login flow and uses the provided token
37
+ */
38
+ setBearerToken(token: string): void;
39
+ /**
40
+ * Get the current authentication mode
41
+ */
42
+ getAuthMode(): AuthMode;
43
+ /**
44
+ * Get cached user info (only available after validateAndGetUserInfo is called in bearer mode)
45
+ */
46
+ getUserInfo(): UserInfo | null;
47
+ /**
48
+ * Validate the bearer token and get user info from Hawkeye API
49
+ * This should be called after setBearerToken to verify the token is valid
50
+ */
51
+ validateAndGetUserInfo(): Promise<UserInfo>;
14
52
  /**
15
53
  * Get a valid access token, refreshing if necessary
16
54
  */
@@ -1,6 +1,10 @@
1
1
  /**
2
2
  * Authentication service for Hawkeye API
3
3
  * Handles login, token caching, and automatic token refresh
4
+ *
5
+ * Supports two authentication modes:
6
+ * 1. Password mode: Uses email/password to login and get tokens
7
+ * 2. Bearer token mode: Uses an externally provided token (e.g., from Auth0)
4
8
  */
5
9
  import { AuthenticationError } from '../types/errors.js';
6
10
  import { getConfig, CONSTANTS } from '../config/config.js';
@@ -12,13 +16,73 @@ export class AuthenticationService {
12
16
  httpClient;
13
17
  tokenCache = null;
14
18
  config = getConfig();
19
+ authMode = 'password';
20
+ bearerToken = null;
21
+ userInfo = null;
15
22
  constructor(httpClient) {
16
23
  this.httpClient = httpClient;
17
24
  }
25
+ /**
26
+ * Set bearer token directly (for Auth0/OAuth mode)
27
+ * This bypasses the login flow and uses the provided token
28
+ */
29
+ setBearerToken(token) {
30
+ this.bearerToken = token;
31
+ this.authMode = 'bearer';
32
+ this.httpClient.setAuthToken(token);
33
+ logger.info('Bearer token set, using Auth0 authentication mode');
34
+ }
35
+ /**
36
+ * Get the current authentication mode
37
+ */
38
+ getAuthMode() {
39
+ return this.authMode;
40
+ }
41
+ /**
42
+ * Get cached user info (only available after validateAndGetUserInfo is called in bearer mode)
43
+ */
44
+ getUserInfo() {
45
+ return this.userInfo;
46
+ }
47
+ /**
48
+ * Validate the bearer token and get user info from Hawkeye API
49
+ * This should be called after setBearerToken to verify the token is valid
50
+ */
51
+ async validateAndGetUserInfo() {
52
+ if (this.authMode !== 'bearer' || !this.bearerToken) {
53
+ throw new AuthenticationError('Cannot validate token: not in bearer token mode', {}, ['Use setBearerToken() first to set a bearer token']);
54
+ }
55
+ try {
56
+ // Call /v1/user/me to validate token and get user info
57
+ const response = await this.httpClient.get('/v1/user/me');
58
+ if (!response.data?.email) {
59
+ throw new AuthenticationError('Invalid user info response: missing email', { response: response.data }, ['Verify the bearer token is valid and not expired']);
60
+ }
61
+ this.userInfo = response.data;
62
+ logger.info(`Bearer token validated for user: ${response.data.email}`);
63
+ return response.data;
64
+ }
65
+ catch (error) {
66
+ logger.error('Failed to validate bearer token', error);
67
+ if (error instanceof AuthenticationError) {
68
+ throw error;
69
+ }
70
+ throw new AuthenticationError('Bearer token validation failed', { originalError: error instanceof Error ? error.message : String(error) }, [
71
+ 'Verify the bearer token is valid and not expired',
72
+ 'Check if the token has the required scopes',
73
+ 'Ensure the Hawkeye API accepts this token type',
74
+ ]);
75
+ }
76
+ }
18
77
  /**
19
78
  * Get a valid access token, refreshing if necessary
20
79
  */
21
80
  async getAccessToken() {
81
+ // In bearer token mode, return the bearer token directly
82
+ if (this.authMode === 'bearer' && this.bearerToken) {
83
+ logger.debug('Using bearer token (Auth0 mode)');
84
+ return this.bearerToken;
85
+ }
22
86
  // Check if we have a valid cached token
23
87
  if (this.tokenCache && this.isTokenValid()) {
24
88
  logger.debug('Using cached authentication token');
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  import { HttpClient } from '../utils/http-client.js';
6
6
  import { AuthenticationService } from './auth.service.js';
7
7
  import { Project } from '../types/hawkeye.js';
8
+ import { StateProvider } from './state.service.js';
8
9
  /**
9
10
  * Project management service
10
11
  */
@@ -14,7 +15,17 @@ export declare class ProjectService {
14
15
  private config;
15
16
  private projectCache;
16
17
  private defaultProjectUuid;
18
+ private stateProvider?;
19
+ private userIdentifier?;
17
20
  constructor(httpClient: HttpClient, authService: AuthenticationService);
21
+ /**
22
+ * Attach a state provider and user identifier for persistence (used in HTTP/server mode)
23
+ */
24
+ setPersistenceContext(stateProvider: StateProvider, userIdentifier: string): void;
25
+ /**
26
+ * Initialize default project from an external source without re-persisting
27
+ */
28
+ setDefaultProjectFromState(projectUuid: string): void;
18
29
  /**
19
30
  * List all projects, using cache if available
20
31
  */
@@ -15,6 +15,8 @@ export class ProjectService {
15
15
  config = getConfig();
16
16
  projectCache = null;
17
17
  defaultProjectUuid = null;
18
+ stateProvider;
19
+ userIdentifier;
18
20
  constructor(httpClient, authService) {
19
21
  this.httpClient = httpClient;
20
22
  this.authService = authService;
@@ -28,6 +30,19 @@ export class ProjectService {
28
30
  logger.info(`Loaded default project from state: ${this.defaultProjectUuid}`);
29
31
  }
30
32
  }
33
+ /**
34
+ * Attach a state provider and user identifier for persistence (used in HTTP/server mode)
35
+ */
36
+ setPersistenceContext(stateProvider, userIdentifier) {
37
+ this.stateProvider = stateProvider;
38
+ this.userIdentifier = userIdentifier;
39
+ }
40
+ /**
41
+ * Initialize default project from an external source without re-persisting
42
+ */
43
+ setDefaultProjectFromState(projectUuid) {
44
+ this.defaultProjectUuid = projectUuid;
45
+ }
31
46
  /**
32
47
  * List all projects, using cache if available
33
48
  */
@@ -102,6 +117,22 @@ export class ProjectService {
102
117
  */
103
118
  setDefaultProject(projectUuid) {
104
119
  this.defaultProjectUuid = projectUuid;
120
+ // Persist per-user when running in HTTP/server mode
121
+ if (this.stateProvider && this.userIdentifier) {
122
+ this.stateProvider.setDefaultProjectUuid(projectUuid, this.userIdentifier)
123
+ .then(() => {
124
+ logger.info(`Default project set to: ${projectUuid}`);
125
+ })
126
+ .catch((error) => {
127
+ logger.error('Failed to persist default project to database', {
128
+ projectUuid,
129
+ userIdentifier: this.userIdentifier,
130
+ error: error instanceof Error ? error.message : String(error),
131
+ });
132
+ });
133
+ return;
134
+ }
135
+ // Fallback to legacy file-based state (stdio mode)
105
136
  const stateManager = getStateManager();
106
137
  stateManager.setDefaultProjectUuid(projectUuid);
107
138
  logger.info(`Default project set to: ${projectUuid}`);
@@ -1 +1 @@
1
- {"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,UAAU,CAAa;IACvB,WAAW,CAAwB;IACnC,MAAM,GAAG,SAAS,EAAE,CAAC;IACrB,YAAY,GAAwB,IAAI,CAAC;IACzC,kBAAkB,GAAkB,IAAI,CAAC;IAEjD,YAAY,UAAsB,EAAE,WAAkC;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,wCAAwC;QACxC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB;YACrB,YAAY,CAAC,qBAAqB,EAAE;gBACpC,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBAC9B,IAAI,CAAC;QAEP,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,kBAA2B,KAAK;QACjD,cAAc;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC1E,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,uBAAuB;QAEhE,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAEtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAC7B,CAAC;YAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAE3C,oBAAoB;YACpB,IAAI,CAAC,YAAY,GAAG;gBAClB,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAExD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC/C,2DAA2D;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB;QACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CAChB,sBAAsB,WAAW,EAAE,EACnC,GAAG,EACH,EAAE,WAAW,EAAE,EACf;gBACE,oCAAoC;gBACpC,0CAA0C;gBAC1C,kDAAkD;aACnD,CACF,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,sCAAsC;QACtC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,kBAAkB,2CAA2C,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAChB,0BAA0B,EAC1B,GAAG,EACH,SAAS,EACT;gBACE,mCAAmC;gBACnC,4CAA4C;gBAC5C,gDAAgD;aACjD,CACF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,0CAA0C,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QACtC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,YAAY,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC9C,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAmB,EAAE,eAAwB;QAClE,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8BAA8B;QAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC,CAAC,KAAK,KAAK,QAAQ;YACpB,CAAC,CAAC,KAAK,KAAK,QAAQ;YACpB,CAAC,CAAC,CAAC,KAAK,CAAC,sCAAsC;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,WAAoB,EAAE,SAAkB;QACxE,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,MAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,IAAI;gBACJ,WAAW,EAAE,WAAW,IAAI,EAAE;gBAC9B,UAAU,EAAE,SAAS,IAAI,EAAE;aAC5B;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACzC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAC5B,OAAO,CACR,CAAC;YAEF,uCAAuC;YACvC,4CAA4C;YAC5C,gFAAgF;YAChF,IAAI,WAA+B,CAAC;YAEpC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvB,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACnC,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAClD,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrD,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,QAAQ,CAChB,gDAAgD,EAChD,GAAG,EACH,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAC5B,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;YAE5D,gDAAgD;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,2DAA2D;YAC3D,2CAA2C;YAC3C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAExD,8CAA8C;YAC9C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,WAAW,WAAW,0BAA0B,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,2EAA2E,CAAC,CAAC;gBACjI,0FAA0F;YAC5F,CAAC;YAED,OAAO,WAAW,CAAC;QAErB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,WAAmB,EACnB,eAAyB;QAEzB,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,MAAM,OAAO,GAAG;YACd,YAAY,EAAE,WAAW;YACzB,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;SAC9D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,UAAU,eAAe,CAAC,MAAM,2BAA2B,WAAW,EAAE,CAAC,CAAC;YAEtF,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACzB,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,wBAAwB,EACtE,OAAO,CACR,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAE9C,gDAAgD;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,IAAa,EACb,WAAoB,EACpB,SAAkB;QAElB,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;YAEhD,gCAAgC;YAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAE1D,4DAA4D;YAC5D,MAAM,OAAO,GAAQ;gBACnB,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI;oBACrD,WAAW,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC;oBACzF,YAAY,EAAE,EAAE,EAAE,iBAAiB;oBACnC,UAAU,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,IAAI,EAAE,CAAC;oBACnF,sBAAsB,EAAE;wBACtB,kBAAkB,EAAE,EAAE;wBACtB,uBAAuB,EAAE,EAAE;wBAC3B,qBAAqB,EAAE,EAAE;wBACzB,cAAc,EAAE,EAAE;wBAClB,iBAAiB,EAAE,EAAE;wBACrB,wBAAwB,EAAE,EAAE;qBAC7B;iBACF;aACF,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACvB,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,EAAE,EAChD,OAAO,CACR,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAE5C,gDAAgD;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;YAEhD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,EAAE,CACjD,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAE5C,gDAAgD;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;YAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,EAAE,CACjD,CAAC;YAEF,uCAAuC;YACvC,yCAAyC;YACzC,oEAAoE;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;YAED,kEAAkE;YAClE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,2EAA2E;YAC3E,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACvF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,eAAe,CAAC;QAEzB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAChC,WAAmB,EACnB,eAAyB;QAEzB,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAExC,MAAM,OAAO,GAAG;YACd,YAAY,EAAE,WAAW;YACzB,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;SACjE,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,MAAM,6BAA6B,WAAW,EAAE,CAAC,CAAC;YAE1F,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACzB,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,WAAW,wBAAwB,EACtE,OAAO,CACR,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAEhD,gDAAgD;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACjE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * State service abstraction for persisting user preferences
3
+ * Supports multiple backends:
4
+ * - FileStateProvider: File-based storage for stdio/npm usage (single-user)
5
+ * - PostgresStateProvider: PostgreSQL storage for HTTP/SSE server (multi-user)
6
+ */
7
+ /**
8
+ * State data structure
9
+ */
10
+ export interface StateData {
11
+ defaultProjectUuid?: string;
12
+ baseUrl?: string;
13
+ }
14
+ /**
15
+ * State provider interface - abstraction for different storage backends
16
+ */
17
+ export interface StateProvider {
18
+ /**
19
+ * Get the default project UUID for a user
20
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
21
+ */
22
+ getDefaultProjectUuid(userIdentifier?: string): Promise<string | undefined>;
23
+ /**
24
+ * Set the default project UUID for a user
25
+ * @param projectUuid - The project UUID to set as default
26
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
27
+ */
28
+ setDefaultProjectUuid(projectUuid: string, userIdentifier?: string): Promise<void>;
29
+ /**
30
+ * Clear the default project UUID for a user
31
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
32
+ */
33
+ clearDefaultProjectUuid(userIdentifier?: string): Promise<void>;
34
+ /**
35
+ * Get the base URL (only used in stdio mode for instance switching)
36
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
37
+ */
38
+ getBaseUrl(userIdentifier?: string): Promise<string | undefined>;
39
+ /**
40
+ * Set the base URL (only used in stdio mode for instance switching)
41
+ * @param baseUrl - The base URL to set
42
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
43
+ */
44
+ setBaseUrl(baseUrl: string, userIdentifier?: string): Promise<void>;
45
+ /**
46
+ * Clear the base URL
47
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
48
+ */
49
+ clearBaseUrl(userIdentifier?: string): Promise<void>;
50
+ /**
51
+ * Clear all state for a user
52
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
53
+ */
54
+ clearAll(userIdentifier?: string): Promise<void>;
55
+ /**
56
+ * Get all state data for a user
57
+ * @param userIdentifier - User email or identifier (ignored in single-user mode)
58
+ */
59
+ getAll(userIdentifier?: string): Promise<StateData>;
60
+ }
61
+ /**
62
+ * File-based state provider for stdio/npm usage (single-user mode)
63
+ * Stores state in ~/.hawkeye-mcp/state.json
64
+ * This is the original implementation, preserved for backwards compatibility
65
+ */
66
+ export declare class FileStateProvider implements StateProvider {
67
+ private statePath;
68
+ private state;
69
+ constructor();
70
+ /**
71
+ * Load state from file (synchronous, called on construction)
72
+ */
73
+ private loadSync;
74
+ /**
75
+ * Save state to file
76
+ */
77
+ private save;
78
+ getDefaultProjectUuid(_userIdentifier?: string): Promise<string | undefined>;
79
+ setDefaultProjectUuid(projectUuid: string, _userIdentifier?: string): Promise<void>;
80
+ clearDefaultProjectUuid(_userIdentifier?: string): Promise<void>;
81
+ getBaseUrl(_userIdentifier?: string): Promise<string | undefined>;
82
+ setBaseUrl(baseUrl: string, _userIdentifier?: string): Promise<void>;
83
+ clearBaseUrl(_userIdentifier?: string): Promise<void>;
84
+ clearAll(_userIdentifier?: string): Promise<void>;
85
+ getAll(_userIdentifier?: string): Promise<StateData>;
86
+ }
87
+ /**
88
+ * Get the file state provider singleton
89
+ * Used for stdio mode (backwards compatibility)
90
+ */
91
+ export declare function getFileStateProvider(): FileStateProvider;
92
+ /**
93
+ * State provider factory - creates the appropriate provider based on transport mode
94
+ * @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
95
+ */
96
+ export declare function createStateProviderAsync(transportMode?: string): Promise<StateProvider>;
97
+ /**
98
+ * State provider factory (synchronous version)
99
+ * For HTTP mode, this will throw - use createStateProviderAsync instead
100
+ * @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
101
+ */
102
+ export declare function createStateProvider(transportMode?: string): StateProvider;
103
+ /**
104
+ * Get the default state provider
105
+ * Automatically selects the appropriate backend based on TRANSPORT_MODE
106
+ */
107
+ export declare function getStateProvider(): StateProvider;
108
+ /**
109
+ * Set a custom state provider (useful for testing or dependency injection)
110
+ */
111
+ export declare function setStateProvider(provider: StateProvider): void;
112
+ /**
113
+ * Reset the state provider (useful for testing)
114
+ */
115
+ export declare function resetStateProvider(): void;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * State service abstraction for persisting user preferences
3
+ * Supports multiple backends:
4
+ * - FileStateProvider: File-based storage for stdio/npm usage (single-user)
5
+ * - PostgresStateProvider: PostgreSQL storage for HTTP/SSE server (multi-user)
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import * as os from 'os';
10
+ import { logger } from '../utils/logger.js';
11
+ /**
12
+ * File-based state provider for stdio/npm usage (single-user mode)
13
+ * Stores state in ~/.hawkeye-mcp/state.json
14
+ * This is the original implementation, preserved for backwards compatibility
15
+ */
16
+ export class FileStateProvider {
17
+ statePath;
18
+ state = {};
19
+ constructor() {
20
+ const homeDir = os.homedir();
21
+ const stateDir = path.join(homeDir, '.hawkeye-mcp');
22
+ this.statePath = path.join(stateDir, 'state.json');
23
+ // Ensure state directory exists
24
+ if (!fs.existsSync(stateDir)) {
25
+ try {
26
+ fs.mkdirSync(stateDir, { recursive: true });
27
+ logger.info('Created state directory', { path: stateDir });
28
+ }
29
+ catch (error) {
30
+ logger.error('Failed to create state directory', { error, path: stateDir });
31
+ }
32
+ }
33
+ // Load existing state synchronously on construction
34
+ this.loadSync();
35
+ }
36
+ /**
37
+ * Load state from file (synchronous, called on construction)
38
+ */
39
+ loadSync() {
40
+ try {
41
+ if (fs.existsSync(this.statePath)) {
42
+ const data = fs.readFileSync(this.statePath, 'utf-8');
43
+ this.state = JSON.parse(data);
44
+ logger.debug('Loaded state from file', { state: this.state });
45
+ }
46
+ else {
47
+ logger.debug('No state file found, starting with empty state');
48
+ }
49
+ }
50
+ catch (error) {
51
+ logger.error('Failed to load state file', { error, path: this.statePath });
52
+ this.state = {};
53
+ }
54
+ }
55
+ /**
56
+ * Save state to file
57
+ */
58
+ save() {
59
+ try {
60
+ const data = JSON.stringify(this.state, null, 2);
61
+ fs.writeFileSync(this.statePath, data, 'utf-8');
62
+ logger.debug('Saved state to file', { state: this.state });
63
+ }
64
+ catch (error) {
65
+ logger.error('Failed to save state file', { error, path: this.statePath });
66
+ }
67
+ }
68
+ async getDefaultProjectUuid(_userIdentifier) {
69
+ return this.state.defaultProjectUuid;
70
+ }
71
+ async setDefaultProjectUuid(projectUuid, _userIdentifier) {
72
+ this.state.defaultProjectUuid = projectUuid;
73
+ this.save();
74
+ logger.info('Set default project UUID', { projectUuid });
75
+ }
76
+ async clearDefaultProjectUuid(_userIdentifier) {
77
+ delete this.state.defaultProjectUuid;
78
+ this.save();
79
+ logger.info('Cleared default project UUID');
80
+ }
81
+ async getBaseUrl(_userIdentifier) {
82
+ return this.state.baseUrl;
83
+ }
84
+ async setBaseUrl(baseUrl, _userIdentifier) {
85
+ this.state.baseUrl = baseUrl;
86
+ this.save();
87
+ logger.info('Set base URL', { baseUrl });
88
+ }
89
+ async clearBaseUrl(_userIdentifier) {
90
+ delete this.state.baseUrl;
91
+ this.save();
92
+ logger.info('Cleared base URL');
93
+ }
94
+ async clearAll(_userIdentifier) {
95
+ this.state = {};
96
+ this.save();
97
+ logger.info('Cleared all state');
98
+ }
99
+ async getAll(_userIdentifier) {
100
+ return { ...this.state };
101
+ }
102
+ }
103
+ /**
104
+ * Singleton instance for file-based state provider
105
+ */
106
+ let fileStateProvider = null;
107
+ /**
108
+ * Get the file state provider singleton
109
+ * Used for stdio mode (backwards compatibility)
110
+ */
111
+ export function getFileStateProvider() {
112
+ if (!fileStateProvider) {
113
+ fileStateProvider = new FileStateProvider();
114
+ }
115
+ return fileStateProvider;
116
+ }
117
+ /**
118
+ * State provider factory - creates the appropriate provider based on transport mode
119
+ * @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
120
+ */
121
+ export async function createStateProviderAsync(transportMode) {
122
+ const mode = transportMode || process.env.TRANSPORT_MODE || 'stdio';
123
+ if (mode === 'http') {
124
+ // Dynamically import PostgresStateProvider to avoid loading pg module in stdio mode
125
+ const { getPostgresStateProvider } = await import('../db/postgres-state-provider.js');
126
+ return getPostgresStateProvider();
127
+ }
128
+ // Default to file-based provider for stdio mode
129
+ return getFileStateProvider();
130
+ }
131
+ /**
132
+ * State provider factory (synchronous version)
133
+ * For HTTP mode, this will throw - use createStateProviderAsync instead
134
+ * @param transportMode - 'stdio' or 'http' (defaults to TRANSPORT_MODE env var or 'stdio')
135
+ */
136
+ export function createStateProvider(transportMode) {
137
+ const mode = transportMode || process.env.TRANSPORT_MODE || 'stdio';
138
+ if (mode === 'http') {
139
+ throw new Error('HTTP mode requires async initialization. Use createStateProviderAsync() instead.');
140
+ }
141
+ // Default to file-based provider for stdio mode
142
+ return getFileStateProvider();
143
+ }
144
+ /**
145
+ * Default state provider instance
146
+ * Uses factory to determine the appropriate backend
147
+ */
148
+ let defaultStateProvider = null;
149
+ /**
150
+ * Get the default state provider
151
+ * Automatically selects the appropriate backend based on TRANSPORT_MODE
152
+ */
153
+ export function getStateProvider() {
154
+ if (!defaultStateProvider) {
155
+ defaultStateProvider = createStateProvider();
156
+ }
157
+ return defaultStateProvider;
158
+ }
159
+ /**
160
+ * Set a custom state provider (useful for testing or dependency injection)
161
+ */
162
+ export function setStateProvider(provider) {
163
+ defaultStateProvider = provider;
164
+ }
165
+ /**
166
+ * Reset the state provider (useful for testing)
167
+ */
168
+ export function resetStateProvider() {
169
+ defaultStateProvider = null;
170
+ fileStateProvider = null;
171
+ }
172
+ //# sourceMappingURL=state.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.service.js","sourceRoot":"","sources":["../../src/services/state.service.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,11 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
30
30
  elastic_url: z.ZodOptional<z.ZodString>;
31
31
  elastic_api_key: z.ZodOptional<z.ZodString>;
32
32
  prometheus_url: z.ZodOptional<z.ZodString>;
33
+ grafana_url: z.ZodOptional<z.ZodString>;
34
+ grafana_api_key: z.ZodOptional<z.ZodString>;
33
35
  firehydrant_api_key: z.ZodOptional<z.ZodString>;
36
+ external_tool_url: z.ZodOptional<z.ZodString>;
37
+ external_tool_name: z.ZodOptional<z.ZodString>;
34
38
  }, "strip", z.ZodTypeAny, {
35
39
  name: string;
36
40
  connection_type: string;
@@ -48,6 +52,9 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
48
52
  splunk_url?: string | undefined;
49
53
  splunk_api_key?: string | undefined;
50
54
  prometheus_url?: string | undefined;
55
+ grafana_url?: string | undefined;
56
+ grafana_api_key?: string | undefined;
57
+ external_tool_url?: string | undefined;
51
58
  servicenow_api_key?: string | undefined;
52
59
  servicenow_url?: string | undefined;
53
60
  github_installation_id?: string | undefined;
@@ -55,6 +62,7 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
55
62
  elastic_url?: string | undefined;
56
63
  elastic_api_key?: string | undefined;
57
64
  firehydrant_api_key?: string | undefined;
65
+ external_tool_name?: string | undefined;
58
66
  }, {
59
67
  name: string;
60
68
  connection_type: string;
@@ -72,6 +80,9 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
72
80
  splunk_url?: string | undefined;
73
81
  splunk_api_key?: string | undefined;
74
82
  prometheus_url?: string | undefined;
83
+ grafana_url?: string | undefined;
84
+ grafana_api_key?: string | undefined;
85
+ external_tool_url?: string | undefined;
75
86
  servicenow_api_key?: string | undefined;
76
87
  servicenow_url?: string | undefined;
77
88
  github_installation_id?: string | undefined;
@@ -79,6 +90,7 @@ declare const CreateConnectionInputSchema: z.ZodObject<{
79
90
  elastic_url?: string | undefined;
80
91
  elastic_api_key?: string | undefined;
81
92
  firehydrant_api_key?: string | undefined;
93
+ external_tool_name?: string | undefined;
82
94
  }>;
83
95
  export type CreateConnectionInput = z.infer<typeof CreateConnectionInputSchema>;
84
96
  /**
@@ -41,8 +41,14 @@ const CreateConnectionInputSchema = z.object({
41
41
  elastic_api_key: z.string().optional(),
42
42
  // Prometheus fields
43
43
  prometheus_url: z.string().optional(),
44
+ // Grafana fields
45
+ grafana_url: z.string().optional(),
46
+ grafana_api_key: z.string().optional(),
44
47
  // FireHydrant fields
45
48
  firehydrant_api_key: z.string().optional(),
49
+ // External Tool fields
50
+ external_tool_url: z.string().optional(),
51
+ external_tool_name: z.string().optional(),
46
52
  });
47
53
  /**
48
54
  * Create a new connection