snow-flow 8.39.2 → 8.39.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/mcp/servicenow-mcp-unified/tools/automation/index.d.ts +6 -0
  2. package/dist/mcp/servicenow-mcp-unified/tools/automation/index.d.ts.map +1 -1
  3. package/dist/mcp/servicenow-mcp-unified/tools/automation/index.js +19 -1
  4. package/dist/mcp/servicenow-mcp-unified/tools/automation/index.js.map +1 -1
  5. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_email_logs.d.ts +12 -0
  6. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_email_logs.d.ts.map +1 -0
  7. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_email_logs.js +185 -0
  8. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_email_logs.js.map +1 -0
  9. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_flow_execution_logs.d.ts +12 -0
  10. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_flow_execution_logs.d.ts.map +1 -0
  11. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_flow_execution_logs.js +280 -0
  12. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_flow_execution_logs.js.map +1 -0
  13. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_inbound_http_logs.d.ts +12 -0
  14. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_inbound_http_logs.d.ts.map +1 -0
  15. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_inbound_http_logs.js +233 -0
  16. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_inbound_http_logs.js.map +1 -0
  17. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_outbound_http_logs.d.ts +12 -0
  18. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_outbound_http_logs.d.ts.map +1 -0
  19. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_outbound_http_logs.js +218 -0
  20. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_outbound_http_logs.js.map +1 -0
  21. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_scheduled_job_logs.d.ts +12 -0
  22. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_scheduled_job_logs.d.ts.map +1 -0
  23. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_scheduled_job_logs.js +276 -0
  24. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_scheduled_job_logs.js.map +1 -0
  25. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_slow_queries.d.ts +12 -0
  26. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_slow_queries.d.ts.map +1 -0
  27. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_slow_queries.js +340 -0
  28. package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_get_slow_queries.js.map +1 -0
  29. package/dist/mcp/servicenow-mcp-unified/tools/integration/index.d.ts +10 -0
  30. package/dist/mcp/servicenow-mcp-unified/tools/integration/index.d.ts.map +1 -1
  31. package/dist/mcp/servicenow-mcp-unified/tools/integration/index.js +34 -1
  32. package/dist/mcp/servicenow-mcp-unified/tools/integration/index.js.map +1 -1
  33. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_configure_mid_server.d.ts +12 -0
  34. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_configure_mid_server.d.ts.map +1 -0
  35. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_configure_mid_server.js +397 -0
  36. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_configure_mid_server.js.map +1 -0
  37. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_connection_alias.d.ts +12 -0
  38. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_connection_alias.d.ts.map +1 -0
  39. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_connection_alias.js +234 -0
  40. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_connection_alias.js.map +1 -0
  41. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_credential_alias.d.ts +12 -0
  42. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_credential_alias.d.ts.map +1 -0
  43. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_credential_alias.js +280 -0
  44. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_credential_alias.js.map +1 -0
  45. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_flow_action.d.ts +12 -0
  46. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_flow_action.d.ts.map +1 -0
  47. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_flow_action.js +358 -0
  48. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_flow_action.js.map +1 -0
  49. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_oauth_profile.d.ts +12 -0
  50. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_oauth_profile.d.ts.map +1 -0
  51. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_oauth_profile.js +237 -0
  52. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_create_oauth_profile.js.map +1 -0
  53. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_install_spoke.d.ts +12 -0
  54. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_install_spoke.d.ts.map +1 -0
  55. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_install_spoke.js +326 -0
  56. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_install_spoke.js.map +1 -0
  57. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_mid_capabilities.d.ts +12 -0
  58. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_mid_capabilities.d.ts.map +1 -0
  59. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_mid_capabilities.js +442 -0
  60. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_mid_capabilities.js.map +1 -0
  61. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_oauth_tokens.d.ts +12 -0
  62. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_oauth_tokens.d.ts.map +1 -0
  63. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_oauth_tokens.js +348 -0
  64. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_oauth_tokens.js.map +1 -0
  65. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_spoke_connection.d.ts +12 -0
  66. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_spoke_connection.d.ts.map +1 -0
  67. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_spoke_connection.js +427 -0
  68. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_manage_spoke_connection.js.map +1 -0
  69. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_test_mid_connectivity.d.ts +12 -0
  70. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_test_mid_connectivity.d.ts.map +1 -0
  71. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_test_mid_connectivity.js +432 -0
  72. package/dist/mcp/servicenow-mcp-unified/tools/integration/snow_test_mid_connectivity.js.map +1 -0
  73. package/dist/templates/agents-md-template.d.ts +2 -2
  74. package/dist/templates/agents-md-template.d.ts.map +1 -1
  75. package/dist/templates/agents-md-template.js +57 -2
  76. package/dist/templates/agents-md-template.js.map +1 -1
  77. package/dist/templates/claude-md-template.d.ts +2 -2
  78. package/dist/templates/claude-md-template.d.ts.map +1 -1
  79. package/dist/templates/claude-md-template.js +17 -1
  80. package/dist/templates/claude-md-template.js.map +1 -1
  81. package/dist/version.d.ts +1 -1
  82. package/dist/version.d.ts.map +1 -1
  83. package/dist/version.js +1 -1
  84. package/dist/version.js.map +1 -1
  85. package/package.json +2 -2
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ /**
3
+ * snow_install_spoke - Install and manage IntegrationHub Spokes
4
+ *
5
+ * Install, activate, and configure IntegrationHub Spokes from the
6
+ * ServiceNow Store or custom repositories (Jira, Slack, Azure, etc.).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.author = exports.version = exports.toolDefinition = void 0;
10
+ exports.execute = execute;
11
+ const auth_js_1 = require("../../shared/auth.js");
12
+ const error_handler_js_1 = require("../../shared/error-handler.js");
13
+ exports.toolDefinition = {
14
+ name: 'snow_install_spoke',
15
+ description: 'Install and manage IntegrationHub Spokes (Jira, Slack, Azure DevOps, etc.)',
16
+ category: 'integration',
17
+ subcategory: 'integrationhub',
18
+ use_cases: ['spokes', 'integration-hub', 'marketplace', 'external-systems'],
19
+ complexity: 'advanced',
20
+ frequency: 'low',
21
+ permission: 'admin',
22
+ allowedRoles: ['admin'],
23
+ inputSchema: {
24
+ type: 'object',
25
+ properties: {
26
+ action: {
27
+ type: 'string',
28
+ enum: ['list', 'list_available', 'install', 'activate', 'deactivate', 'status', 'search'],
29
+ description: 'Action to perform',
30
+ default: 'list'
31
+ },
32
+ spoke_name: {
33
+ type: 'string',
34
+ description: 'Name of the spoke (e.g., "Jira", "Slack", "Microsoft Teams")'
35
+ },
36
+ spoke_id: {
37
+ type: 'string',
38
+ description: 'sys_id of the spoke (for activate/deactivate/status)'
39
+ },
40
+ search_query: {
41
+ type: 'string',
42
+ description: 'Search query for finding spokes (for search action)'
43
+ },
44
+ include_inactive: {
45
+ type: 'boolean',
46
+ description: 'Include inactive spokes in list',
47
+ default: false
48
+ },
49
+ limit: {
50
+ type: 'number',
51
+ description: 'Maximum number of results',
52
+ default: 50
53
+ }
54
+ },
55
+ required: ['action']
56
+ }
57
+ };
58
+ async function execute(args, context) {
59
+ var action = args.action || 'list';
60
+ var spoke_name = args.spoke_name || '';
61
+ var spoke_id = args.spoke_id || '';
62
+ var search_query = args.search_query || '';
63
+ var include_inactive = args.include_inactive || false;
64
+ var limit = args.limit || 50;
65
+ try {
66
+ var client = await (0, auth_js_1.getAuthenticatedClient)(context);
67
+ if (action === 'list') {
68
+ // List installed spokes
69
+ var queryParts = [];
70
+ if (!include_inactive) {
71
+ queryParts.push('active=true');
72
+ }
73
+ if (spoke_name) {
74
+ queryParts.push('nameLIKE' + spoke_name);
75
+ }
76
+ var spokesResponse = await client.get('/api/now/table/sys_hub_spoke', {
77
+ params: {
78
+ sysparm_query: queryParts.join('^') + '^ORDERBYname',
79
+ sysparm_limit: limit,
80
+ sysparm_fields: 'sys_id,name,version,active,description,vendor,sys_created_on,sys_updated_on',
81
+ sysparm_display_value: 'all'
82
+ }
83
+ });
84
+ var spokes = spokesResponse.data.result || [];
85
+ // Get action counts for each spoke
86
+ var spokesWithStats = [];
87
+ for (var i = 0; i < spokes.length; i++) {
88
+ var spoke = spokes[i];
89
+ // Count actions in this spoke
90
+ var actionsResponse = await client.get('/api/now/table/sys_hub_action_type_definition', {
91
+ params: {
92
+ sysparm_query: 'sys_scope=' + spoke.sys_id,
93
+ sysparm_fields: 'sys_id',
94
+ sysparm_limit: 1000
95
+ }
96
+ });
97
+ spokesWithStats.push({
98
+ sys_id: spoke.sys_id,
99
+ name: spoke.name && spoke.name.display_value ? spoke.name.display_value : spoke.name,
100
+ version: spoke.version,
101
+ active: spoke.active === 'true' || spoke.active === true,
102
+ description: spoke.description,
103
+ vendor: spoke.vendor && spoke.vendor.display_value ? spoke.vendor.display_value : spoke.vendor,
104
+ action_count: actionsResponse.data.result?.length || 0,
105
+ installed_on: spoke.sys_created_on,
106
+ updated_on: spoke.sys_updated_on
107
+ });
108
+ }
109
+ return (0, error_handler_js_1.createSuccessResult)({
110
+ action: 'list',
111
+ spokes: spokesWithStats,
112
+ total: spokesWithStats.length,
113
+ summary: {
114
+ active: spokesWithStats.filter(function (s) { return s.active; }).length,
115
+ inactive: spokesWithStats.filter(function (s) { return !s.active; }).length,
116
+ total_actions: spokesWithStats.reduce(function (sum, s) { return sum + s.action_count; }, 0)
117
+ }
118
+ });
119
+ }
120
+ else if (action === 'list_available') {
121
+ // List available spokes from plugin registry
122
+ var availableResponse = await client.get('/api/now/table/v_plugin', {
123
+ params: {
124
+ sysparm_query: 'nameLIKESpoke^ORnameLIKEIntegration^ORDERBYname',
125
+ sysparm_limit: limit,
126
+ sysparm_fields: 'sys_id,name,version,active,description,vendor'
127
+ }
128
+ });
129
+ var available = availableResponse.data.result || [];
130
+ return (0, error_handler_js_1.createSuccessResult)({
131
+ action: 'list_available',
132
+ available_spokes: available.map(function (p) {
133
+ return {
134
+ sys_id: p.sys_id,
135
+ name: p.name,
136
+ version: p.version,
137
+ active: p.active === 'true',
138
+ description: p.description,
139
+ vendor: p.vendor
140
+ };
141
+ }),
142
+ total: available.length,
143
+ note: 'Use snow_activate_plugin to activate available spokes'
144
+ });
145
+ }
146
+ else if (action === 'search') {
147
+ if (!search_query) {
148
+ return (0, error_handler_js_1.createErrorResult)('search_query is required for search action');
149
+ }
150
+ // Search for spokes by name or description
151
+ var searchResponse = await client.get('/api/now/table/sys_hub_spoke', {
152
+ params: {
153
+ sysparm_query: 'nameLIKE' + search_query + '^ORdescriptionLIKE' + search_query,
154
+ sysparm_limit: limit,
155
+ sysparm_fields: 'sys_id,name,version,active,description,vendor'
156
+ }
157
+ });
158
+ var searchResults = searchResponse.data.result || [];
159
+ // Also search in plugins
160
+ var pluginSearchResponse = await client.get('/api/now/table/v_plugin', {
161
+ params: {
162
+ sysparm_query: 'nameLIKE' + search_query + '^nameLIKESpoke',
163
+ sysparm_limit: limit,
164
+ sysparm_fields: 'sys_id,name,version,active,description'
165
+ }
166
+ });
167
+ var pluginResults = pluginSearchResponse.data.result || [];
168
+ return (0, error_handler_js_1.createSuccessResult)({
169
+ action: 'search',
170
+ query: search_query,
171
+ installed_spokes: searchResults.map(function (s) {
172
+ return {
173
+ sys_id: s.sys_id,
174
+ name: s.name,
175
+ version: s.version,
176
+ active: s.active === 'true',
177
+ description: s.description
178
+ };
179
+ }),
180
+ available_plugins: pluginResults.map(function (p) {
181
+ return {
182
+ sys_id: p.sys_id,
183
+ name: p.name,
184
+ version: p.version,
185
+ active: p.active === 'true',
186
+ description: p.description
187
+ };
188
+ }),
189
+ total_found: searchResults.length + pluginResults.length
190
+ });
191
+ }
192
+ else if (action === 'status') {
193
+ if (!spoke_id && !spoke_name) {
194
+ return (0, error_handler_js_1.createErrorResult)('spoke_id or spoke_name is required for status action');
195
+ }
196
+ // Get spoke status
197
+ var statusQuery = spoke_id ? 'sys_id=' + spoke_id : 'nameLIKE' + spoke_name;
198
+ var statusResponse = await client.get('/api/now/table/sys_hub_spoke', {
199
+ params: {
200
+ sysparm_query: statusQuery,
201
+ sysparm_limit: 1,
202
+ sysparm_fields: 'sys_id,name,version,active,description,vendor,sys_scope',
203
+ sysparm_display_value: 'all'
204
+ }
205
+ });
206
+ if (!statusResponse.data.result || statusResponse.data.result.length === 0) {
207
+ return (0, error_handler_js_1.createErrorResult)('Spoke not found: ' + (spoke_name || spoke_id));
208
+ }
209
+ var spokeData = statusResponse.data.result[0];
210
+ // Get actions for this spoke
211
+ var spokeActionsResponse = await client.get('/api/now/table/sys_hub_action_type_definition', {
212
+ params: {
213
+ sysparm_query: 'sys_scope=' + spokeData.sys_id + '^ORDERBYname',
214
+ sysparm_fields: 'sys_id,name,description,active,category',
215
+ sysparm_limit: 100
216
+ }
217
+ });
218
+ var spokeActions = spokeActionsResponse.data.result || [];
219
+ // Get connection aliases used by this spoke
220
+ var connectionsResponse = await client.get('/api/now/table/sys_alias', {
221
+ params: {
222
+ sysparm_query: 'sys_scope=' + spokeData.sys_id,
223
+ sysparm_fields: 'sys_id,name,type,active',
224
+ sysparm_limit: 50
225
+ }
226
+ });
227
+ var connections = connectionsResponse.data.result || [];
228
+ return (0, error_handler_js_1.createSuccessResult)({
229
+ action: 'status',
230
+ spoke: {
231
+ sys_id: spokeData.sys_id,
232
+ name: spokeData.name && spokeData.name.display_value ? spokeData.name.display_value : spokeData.name,
233
+ version: spokeData.version,
234
+ active: spokeData.active === 'true' || spokeData.active === true,
235
+ description: spokeData.description,
236
+ vendor: spokeData.vendor && spokeData.vendor.display_value ? spokeData.vendor.display_value : spokeData.vendor
237
+ },
238
+ actions: spokeActions.map(function (a) {
239
+ return {
240
+ sys_id: a.sys_id,
241
+ name: a.name,
242
+ description: a.description,
243
+ active: a.active === 'true',
244
+ category: a.category
245
+ };
246
+ }),
247
+ action_count: spokeActions.length,
248
+ connections: connections.map(function (c) {
249
+ return {
250
+ sys_id: c.sys_id,
251
+ name: c.name,
252
+ type: c.type,
253
+ active: c.active === 'true'
254
+ };
255
+ }),
256
+ health: spokeData.active === 'true' ? 'active' : 'inactive'
257
+ });
258
+ }
259
+ else if (action === 'activate' || action === 'deactivate') {
260
+ if (!spoke_id && !spoke_name) {
261
+ return (0, error_handler_js_1.createErrorResult)('spoke_id or spoke_name is required for ' + action + ' action');
262
+ }
263
+ // Find the spoke first
264
+ var findQuery = spoke_id ? 'sys_id=' + spoke_id : 'nameLIKE' + spoke_name;
265
+ var findResponse = await client.get('/api/now/table/sys_hub_spoke', {
266
+ params: {
267
+ sysparm_query: findQuery,
268
+ sysparm_limit: 1,
269
+ sysparm_fields: 'sys_id,name,active'
270
+ }
271
+ });
272
+ if (!findResponse.data.result || findResponse.data.result.length === 0) {
273
+ return (0, error_handler_js_1.createErrorResult)('Spoke not found');
274
+ }
275
+ var foundSpoke = findResponse.data.result[0];
276
+ var newActiveState = action === 'activate';
277
+ // Update the spoke
278
+ await client.patch('/api/now/table/sys_hub_spoke/' + foundSpoke.sys_id, {
279
+ active: newActiveState
280
+ });
281
+ return (0, error_handler_js_1.createSuccessResult)({
282
+ action: action,
283
+ spoke: {
284
+ sys_id: foundSpoke.sys_id,
285
+ name: foundSpoke.name,
286
+ previous_state: foundSpoke.active === 'true' ? 'active' : 'inactive',
287
+ new_state: newActiveState ? 'active' : 'inactive'
288
+ },
289
+ message: 'Spoke ' + (newActiveState ? 'activated' : 'deactivated') + ' successfully'
290
+ });
291
+ }
292
+ else if (action === 'install') {
293
+ // Installation typically requires the plugin to be activated
294
+ // This redirects to the plugin activation process
295
+ return (0, error_handler_js_1.createSuccessResult)({
296
+ action: 'install',
297
+ message: 'Spoke installation is handled through plugin activation',
298
+ instructions: [
299
+ '1. Use snow_list_plugins to find the spoke plugin',
300
+ '2. Use snow_activate_plugin with the plugin sys_id to install',
301
+ '3. After activation, configure connection aliases with snow_create_connection_alias',
302
+ '4. Set up credentials with snow_create_credential_alias'
303
+ ],
304
+ common_spokes: [
305
+ { name: 'Jira Spoke', plugin: 'com.snc.integration.jira' },
306
+ { name: 'Slack Spoke', plugin: 'com.snc.integration.slack' },
307
+ { name: 'Microsoft Teams Spoke', plugin: 'com.snc.integration.teams' },
308
+ { name: 'Azure DevOps Spoke', plugin: 'com.snc.integration.azure_devops' },
309
+ { name: 'Salesforce Spoke', plugin: 'com.snc.integration.salesforce' },
310
+ { name: 'ServiceNow Spoke', plugin: 'com.snc.integration.servicenow' }
311
+ ]
312
+ });
313
+ }
314
+ return (0, error_handler_js_1.createErrorResult)('Unknown action: ' + action);
315
+ }
316
+ catch (error) {
317
+ if (error.response?.status === 403) {
318
+ return (0, error_handler_js_1.createErrorResult)('Permission denied (403): Your ServiceNow user lacks permissions to manage spokes. ' +
319
+ 'Required roles: "admin" or "flow_designer". Please contact your ServiceNow administrator.');
320
+ }
321
+ return (0, error_handler_js_1.createErrorResult)(error.message);
322
+ }
323
+ }
324
+ exports.version = '1.0.0';
325
+ exports.author = 'Snow-Flow Team';
326
+ //# sourceMappingURL=snow_install_spoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow_install_spoke.js","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/integration/snow_install_spoke.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * snow_manage_mid_capabilities - Manage MID Server capabilities
3
+ *
4
+ * View, add, remove, and manage MID Server capabilities for
5
+ * Discovery, Orchestration, and Integration purposes.
6
+ */
7
+ import { MCPToolDefinition, ServiceNowContext, ToolResult } from '../../shared/types.js';
8
+ export declare const toolDefinition: MCPToolDefinition;
9
+ export declare function execute(args: any, context: ServiceNowContext): Promise<ToolResult>;
10
+ export declare const version = "1.0.0";
11
+ export declare const author = "Snow-Flow Team";
12
+ //# sourceMappingURL=snow_manage_mid_capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow_manage_mid_capabilities.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/integration/snow_manage_mid_capabilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIzF,eAAO,MAAM,cAAc,EAAE,iBA6C5B,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoaxF;AAED,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,MAAM,mBAAmB,CAAC"}