snow-flow 8.40.1 → 8.41.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.
- package/CLAUDE.md +62 -20
- package/dist/mcp/servicenow-mcp-unified/tools/applications/index.d.ts +2 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/index.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/applications/index.js +7 -1
- package/dist/mcp/servicenow-mcp-unified/tools/applications/index.js.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_get_current_scope.d.ts +14 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_get_current_scope.d.ts.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_get_current_scope.js +220 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_get_current_scope.js.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_list_applications.d.ts +12 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_list_applications.d.ts.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_list_applications.js +236 -0
- package/dist/mcp/servicenow-mcp-unified/tools/applications/snow_list_applications.js.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/automation/index.d.ts +1 -3
- package/dist/mcp/servicenow-mcp-unified/tools/automation/index.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/index.js +5 -10
- package/dist/mcp/servicenow-mcp-unified/tools/automation/index.js.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_confirm_script_execution.d.ts +7 -5
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_confirm_script_execution.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_confirm_script_execution.js +195 -34
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_confirm_script_execution.js.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.d.ts +20 -0
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.d.ts.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.js +474 -0
- package/dist/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.js.map +1 -0
- package/dist/mcp/servicenow-mcp-unified/tools/deployment/snow_create_artifact.d.ts.map +1 -1
- package/dist/mcp/servicenow-mcp-unified/tools/deployment/snow_create_artifact.js +104 -8
- package/dist/mcp/servicenow-mcp-unified/tools/deployment/snow_create_artifact.js.map +1 -1
- package/dist/templates/agents-md-template.d.ts +1 -1
- package/dist/templates/agents-md-template.d.ts.map +1 -1
- package/dist/templates/agents-md-template.js +4 -4
- package/dist/templates/claude-md-template.d.ts +1 -1
- package/dist/templates/claude-md-template.d.ts.map +1 -1
- package/dist/templates/claude-md-template.js +17 -12
- package/dist/templates/claude-md-template.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* snow_execute_script - Unified script execution tool
|
|
3
|
+
*
|
|
4
|
+
* Executes server-side JavaScript in ServiceNow with comprehensive output capture.
|
|
5
|
+
* Combines functionality of:
|
|
6
|
+
* - snow_execute_script_sync (deprecated)
|
|
7
|
+
* - snow_execute_script_with_output (deprecated)
|
|
8
|
+
* - snow_execute_background_script (deprecated)
|
|
9
|
+
*
|
|
10
|
+
* Uses sysauto_script + sys_trigger approach for reliable execution.
|
|
11
|
+
*
|
|
12
|
+
* ⚠️ CRITICAL: ALL SCRIPTS MUST BE ES5 ONLY!
|
|
13
|
+
* ServiceNow runs on Rhino engine - no const/let/arrow functions/template literals.
|
|
14
|
+
*/
|
|
15
|
+
import { MCPToolDefinition, ServiceNowContext, ToolResult } from '../../shared/types.js';
|
|
16
|
+
export declare const toolDefinition: MCPToolDefinition;
|
|
17
|
+
export declare function execute(args: any, context: ServiceNowContext): Promise<ToolResult>;
|
|
18
|
+
export declare const version = "2.0.0";
|
|
19
|
+
export declare const author = "Snow-Flow SDK";
|
|
20
|
+
//# sourceMappingURL=snow_execute_script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snow_execute_script.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIzF,eAAO,MAAM,cAAc,EAAE,iBA8D5B,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6ExF;AAsXD,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* snow_execute_script - Unified script execution tool
|
|
4
|
+
*
|
|
5
|
+
* Executes server-side JavaScript in ServiceNow with comprehensive output capture.
|
|
6
|
+
* Combines functionality of:
|
|
7
|
+
* - snow_execute_script_sync (deprecated)
|
|
8
|
+
* - snow_execute_script_with_output (deprecated)
|
|
9
|
+
* - snow_execute_background_script (deprecated)
|
|
10
|
+
*
|
|
11
|
+
* Uses sysauto_script + sys_trigger approach for reliable execution.
|
|
12
|
+
*
|
|
13
|
+
* ⚠️ CRITICAL: ALL SCRIPTS MUST BE ES5 ONLY!
|
|
14
|
+
* ServiceNow runs on Rhino engine - no const/let/arrow functions/template literals.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.author = exports.version = exports.toolDefinition = void 0;
|
|
18
|
+
exports.execute = execute;
|
|
19
|
+
const auth_js_1 = require("../../shared/auth.js");
|
|
20
|
+
const error_handler_js_1 = require("../../shared/error-handler.js");
|
|
21
|
+
exports.toolDefinition = {
|
|
22
|
+
name: 'snow_execute_script',
|
|
23
|
+
description: 'Execute server-side JavaScript in ServiceNow with output capture (ES5 only). Replaces snow_execute_script_sync, snow_execute_script_with_output, and snow_execute_background_script.',
|
|
24
|
+
// Metadata for tool discovery (not sent to LLM)
|
|
25
|
+
category: 'automation',
|
|
26
|
+
subcategory: 'script-execution',
|
|
27
|
+
use_cases: ['automation', 'scripts', 'execution', 'debugging', 'verification'],
|
|
28
|
+
complexity: 'advanced',
|
|
29
|
+
frequency: 'high',
|
|
30
|
+
// Permission enforcement
|
|
31
|
+
permission: 'write',
|
|
32
|
+
allowedRoles: ['developer', 'admin'],
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
script: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: '🚨 ES5 ONLY! JavaScript code to execute (no const/let/arrows/templates - Rhino engine)'
|
|
39
|
+
},
|
|
40
|
+
description: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'Clear description of what the script does (required if requireConfirmation=true)'
|
|
43
|
+
},
|
|
44
|
+
scope: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Scope to execute in',
|
|
47
|
+
default: 'global',
|
|
48
|
+
enum: ['global', 'rhino']
|
|
49
|
+
},
|
|
50
|
+
timeout: {
|
|
51
|
+
type: 'number',
|
|
52
|
+
description: 'Timeout in milliseconds for polling execution results',
|
|
53
|
+
default: 30000
|
|
54
|
+
},
|
|
55
|
+
validate_es5: {
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
description: 'Validate ES5 syntax before execution',
|
|
58
|
+
default: true
|
|
59
|
+
},
|
|
60
|
+
requireConfirmation: {
|
|
61
|
+
type: 'boolean',
|
|
62
|
+
description: 'Require user confirmation before execution (shows security analysis)',
|
|
63
|
+
default: false
|
|
64
|
+
},
|
|
65
|
+
autoConfirm: {
|
|
66
|
+
type: 'boolean',
|
|
67
|
+
description: '⚠️ DANGEROUS: Skip user confirmation even if requireConfirmation would normally be required',
|
|
68
|
+
default: false
|
|
69
|
+
},
|
|
70
|
+
allowDataModification: {
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
description: 'Whether script is allowed to modify data (for security analysis)',
|
|
73
|
+
default: false
|
|
74
|
+
},
|
|
75
|
+
runAsUser: {
|
|
76
|
+
type: 'string',
|
|
77
|
+
description: 'User to execute script as (optional, defaults to current user)'
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
required: ['script']
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
async function execute(args, context) {
|
|
84
|
+
const { script, description = 'Script execution via snow_execute_script', scope = 'global', timeout = 30000, validate_es5 = true, requireConfirmation = false, autoConfirm = false, allowDataModification = false, runAsUser } = args;
|
|
85
|
+
try {
|
|
86
|
+
// ES5 validation
|
|
87
|
+
if (validate_es5) {
|
|
88
|
+
const es5Validation = validateES5(script);
|
|
89
|
+
if (!es5Validation.valid) {
|
|
90
|
+
throw new error_handler_js_1.SnowFlowError(error_handler_js_1.ErrorType.ES5_SYNTAX_ERROR, 'Script contains non-ES5 syntax', {
|
|
91
|
+
retryable: false,
|
|
92
|
+
details: {
|
|
93
|
+
violations: es5Validation.violations,
|
|
94
|
+
message: 'ServiceNow uses Rhino engine - ES6+ syntax will fail'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Security analysis
|
|
100
|
+
const securityAnalysis = analyzeScriptSecurity(script);
|
|
101
|
+
// Check if confirmation is needed
|
|
102
|
+
if (requireConfirmation && !autoConfirm) {
|
|
103
|
+
// Return confirmation request
|
|
104
|
+
const confirmationPrompt = generateConfirmationPrompt({
|
|
105
|
+
script,
|
|
106
|
+
description,
|
|
107
|
+
runAsUser,
|
|
108
|
+
allowDataModification,
|
|
109
|
+
securityAnalysis
|
|
110
|
+
});
|
|
111
|
+
return (0, error_handler_js_1.createSuccessResult)({
|
|
112
|
+
requires_confirmation: true,
|
|
113
|
+
confirmation_prompt: confirmationPrompt,
|
|
114
|
+
script_to_execute: script,
|
|
115
|
+
execution_context: {
|
|
116
|
+
runAsUser: runAsUser || 'current',
|
|
117
|
+
allowDataModification,
|
|
118
|
+
securityLevel: securityAnalysis.riskLevel
|
|
119
|
+
},
|
|
120
|
+
next_step: 'Call snow_confirm_script_execution with userConfirmed=true to execute'
|
|
121
|
+
}, {
|
|
122
|
+
action_required: 'User must approve script execution via snow_confirm_script_execution'
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
// Execute the script
|
|
126
|
+
return await executeScript({
|
|
127
|
+
script,
|
|
128
|
+
description,
|
|
129
|
+
timeout,
|
|
130
|
+
securityAnalysis,
|
|
131
|
+
autoConfirm
|
|
132
|
+
}, context);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
return (0, error_handler_js_1.createErrorResult)(error instanceof error_handler_js_1.SnowFlowError
|
|
136
|
+
? error
|
|
137
|
+
: new error_handler_js_1.SnowFlowError(error_handler_js_1.ErrorType.UNKNOWN_ERROR, error.message, { originalError: error }));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function executeScript(params, context) {
|
|
141
|
+
const { script, description, timeout, securityAnalysis, autoConfirm } = params;
|
|
142
|
+
const client = await (0, auth_js_1.getAuthenticatedClient)(context);
|
|
143
|
+
// Create unique execution ID for tracking
|
|
144
|
+
const executionId = `exec_${Date.now()}_${Math.random().toString(36).substring(7)}`;
|
|
145
|
+
const outputMarker = `SNOW_FLOW_EXEC_${executionId}`;
|
|
146
|
+
// Wrap script with comprehensive output capture
|
|
147
|
+
const wrappedScript = `
|
|
148
|
+
// Snow-Flow Script Execution - ID: ${executionId}
|
|
149
|
+
// Description: ${description.replace(/'/g, "\\'")}
|
|
150
|
+
var __sfOutput = [];
|
|
151
|
+
var __sfStartTime = new GlideDateTime();
|
|
152
|
+
var __sfResult = null;
|
|
153
|
+
var __sfError = null;
|
|
154
|
+
|
|
155
|
+
// Store original gs methods
|
|
156
|
+
var __sfOrigPrint = gs.print;
|
|
157
|
+
var __sfOrigInfo = gs.info;
|
|
158
|
+
var __sfOrigWarn = gs.warn;
|
|
159
|
+
var __sfOrigError = gs.error;
|
|
160
|
+
|
|
161
|
+
// Override gs methods to capture output
|
|
162
|
+
gs.print = function(msg) {
|
|
163
|
+
var m = String(msg);
|
|
164
|
+
__sfOutput.push({level: 'print', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
165
|
+
__sfOrigPrint(m);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
gs.info = function(msg) {
|
|
169
|
+
var m = String(msg);
|
|
170
|
+
__sfOutput.push({level: 'info', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
171
|
+
__sfOrigInfo(m);
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
gs.warn = function(msg) {
|
|
175
|
+
var m = String(msg);
|
|
176
|
+
__sfOutput.push({level: 'warn', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
177
|
+
__sfOrigWarn(m);
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
gs.error = function(msg) {
|
|
181
|
+
var m = String(msg);
|
|
182
|
+
__sfOutput.push({level: 'error', message: m, timestamp: new GlideDateTime().getDisplayValue()});
|
|
183
|
+
__sfOrigError(m);
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// Execute the user script
|
|
187
|
+
try {
|
|
188
|
+
gs.info('=== Snow-Flow Script Execution Started ===');
|
|
189
|
+
gs.info('Description: ${description.replace(/'/g, "\\'")}');
|
|
190
|
+
|
|
191
|
+
__sfResult = (function() {
|
|
192
|
+
${script}
|
|
193
|
+
})();
|
|
194
|
+
|
|
195
|
+
gs.info('=== Snow-Flow Script Execution Completed ===');
|
|
196
|
+
|
|
197
|
+
if (__sfResult !== undefined && __sfResult !== null) {
|
|
198
|
+
gs.info('Script returned: ' + (typeof __sfResult === 'object' ? JSON.stringify(__sfResult) : String(__sfResult)));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
} catch(e) {
|
|
202
|
+
__sfError = e.toString();
|
|
203
|
+
gs.error('=== Snow-Flow Script Execution Failed ===');
|
|
204
|
+
gs.error('Error: ' + e.toString());
|
|
205
|
+
if (e.stack) {
|
|
206
|
+
gs.error('Stack: ' + e.stack);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Restore original gs methods
|
|
211
|
+
gs.print = __sfOrigPrint;
|
|
212
|
+
gs.info = __sfOrigInfo;
|
|
213
|
+
gs.warn = __sfOrigWarn;
|
|
214
|
+
gs.error = __sfOrigError;
|
|
215
|
+
|
|
216
|
+
// Calculate execution time
|
|
217
|
+
var __sfEndTime = new GlideDateTime();
|
|
218
|
+
var __sfExecTimeMs = Math.abs(GlideDateTime.subtract(__sfStartTime, __sfEndTime).getNumericValue());
|
|
219
|
+
|
|
220
|
+
// Build result object
|
|
221
|
+
var __sfResultObj = {
|
|
222
|
+
executionId: '${executionId}',
|
|
223
|
+
success: __sfError === null,
|
|
224
|
+
result: __sfResult,
|
|
225
|
+
error: __sfError,
|
|
226
|
+
output: __sfOutput,
|
|
227
|
+
executionTimeMs: __sfExecTimeMs,
|
|
228
|
+
completedAt: __sfEndTime.getDisplayValue()
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
// Store result in system property for retrieval
|
|
232
|
+
gs.setProperty('${outputMarker}', JSON.stringify(__sfResultObj));
|
|
233
|
+
gs.info('${outputMarker}:DONE');
|
|
234
|
+
`;
|
|
235
|
+
// Step 1: Create Scheduled Script Job (sysauto_script)
|
|
236
|
+
const jobName = `Snow-Flow Exec - ${executionId}`;
|
|
237
|
+
const createResponse = await client.post('/api/now/table/sysauto_script', {
|
|
238
|
+
name: jobName,
|
|
239
|
+
script: wrappedScript,
|
|
240
|
+
active: true,
|
|
241
|
+
run_type: 'on_demand',
|
|
242
|
+
conditional: false
|
|
243
|
+
});
|
|
244
|
+
if (!createResponse.data?.result?.sys_id) {
|
|
245
|
+
throw new error_handler_js_1.SnowFlowError(error_handler_js_1.ErrorType.SERVICENOW_API_ERROR, 'Failed to create scheduled script job', { details: createResponse.data });
|
|
246
|
+
}
|
|
247
|
+
const jobSysId = createResponse.data.result.sys_id;
|
|
248
|
+
// Step 2: Create sys_trigger to execute immediately
|
|
249
|
+
const now = new Date();
|
|
250
|
+
const triggerTime = new Date(now.getTime() + 2000); // 2 seconds from now
|
|
251
|
+
const triggerTimeStr = triggerTime.toISOString().replace('T', ' ').substring(0, 19);
|
|
252
|
+
try {
|
|
253
|
+
await client.post('/api/now/table/sys_trigger', {
|
|
254
|
+
name: jobName,
|
|
255
|
+
next_action: triggerTimeStr,
|
|
256
|
+
trigger_type: 0, // Run Once
|
|
257
|
+
state: 0, // Ready
|
|
258
|
+
document: 'sysauto_script',
|
|
259
|
+
document_key: jobSysId,
|
|
260
|
+
claimed_by: '',
|
|
261
|
+
system_id: 'snow-flow'
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
catch (triggerError) {
|
|
265
|
+
// If trigger creation fails, job won't auto-execute
|
|
266
|
+
// Continue anyway - we'll check results
|
|
267
|
+
}
|
|
268
|
+
// Step 3: Poll for execution results
|
|
269
|
+
const startTime = Date.now();
|
|
270
|
+
let result = null;
|
|
271
|
+
let attempts = 0;
|
|
272
|
+
const maxAttempts = Math.ceil(timeout / 2000);
|
|
273
|
+
while (Date.now() - startTime < timeout && attempts < maxAttempts) {
|
|
274
|
+
attempts++;
|
|
275
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
276
|
+
try {
|
|
277
|
+
// Check sys_properties for output marker
|
|
278
|
+
const propResponse = await client.get('/api/now/table/sys_properties', {
|
|
279
|
+
params: {
|
|
280
|
+
sysparm_query: `name=${outputMarker}`,
|
|
281
|
+
sysparm_fields: 'value,sys_id',
|
|
282
|
+
sysparm_limit: 1
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
if (propResponse.data?.result?.[0]?.value) {
|
|
286
|
+
try {
|
|
287
|
+
result = JSON.parse(propResponse.data.result[0].value);
|
|
288
|
+
// Delete the property after reading
|
|
289
|
+
const propSysId = propResponse.data.result[0].sys_id;
|
|
290
|
+
if (propSysId) {
|
|
291
|
+
await client.delete(`/api/now/table/sys_properties/${propSysId}`).catch(() => { });
|
|
292
|
+
}
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
catch (parseErr) {
|
|
296
|
+
// Continue polling
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch (pollError) {
|
|
301
|
+
// Continue polling
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Step 4: Cleanup - delete the scheduled job
|
|
305
|
+
try {
|
|
306
|
+
await client.delete(`/api/now/table/sysauto_script/${jobSysId}`);
|
|
307
|
+
}
|
|
308
|
+
catch (cleanupError) {
|
|
309
|
+
// Ignore cleanup errors
|
|
310
|
+
}
|
|
311
|
+
// Step 5: Format and return results
|
|
312
|
+
if (result) {
|
|
313
|
+
// Organize output by level
|
|
314
|
+
const organized = {
|
|
315
|
+
print: result.output.filter((o) => o.level === 'print').map((o) => o.message),
|
|
316
|
+
info: result.output.filter((o) => o.level === 'info').map((o) => o.message),
|
|
317
|
+
warn: result.output.filter((o) => o.level === 'warn').map((o) => o.message),
|
|
318
|
+
error: result.output.filter((o) => o.level === 'error').map((o) => o.message),
|
|
319
|
+
success: result.success
|
|
320
|
+
};
|
|
321
|
+
return (0, error_handler_js_1.createSuccessResult)({
|
|
322
|
+
executed: true,
|
|
323
|
+
success: result.success,
|
|
324
|
+
result: result.result,
|
|
325
|
+
error: result.error,
|
|
326
|
+
output: organized,
|
|
327
|
+
raw_output: result.output,
|
|
328
|
+
execution_time_ms: result.executionTimeMs,
|
|
329
|
+
execution_id: executionId,
|
|
330
|
+
auto_confirmed: autoConfirm,
|
|
331
|
+
security_analysis: securityAnalysis
|
|
332
|
+
}, {
|
|
333
|
+
script_length: params.script.length,
|
|
334
|
+
method: 'sysauto_script_with_trigger',
|
|
335
|
+
description
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
// Script was saved but execution couldn't be confirmed
|
|
340
|
+
return (0, error_handler_js_1.createSuccessResult)({
|
|
341
|
+
executed: false,
|
|
342
|
+
execution_id: executionId,
|
|
343
|
+
scheduled_job_sys_id: jobSysId,
|
|
344
|
+
auto_confirmed: autoConfirm,
|
|
345
|
+
security_analysis: securityAnalysis,
|
|
346
|
+
message: 'Script was saved as scheduled job but automatic execution could not be confirmed. The sys_trigger may not have been created (permissions) or the scheduler has not yet picked it up.',
|
|
347
|
+
action_required: `Navigate to System Scheduler > Scheduled Jobs and run: ${jobName}`
|
|
348
|
+
}, {
|
|
349
|
+
script_length: params.script.length,
|
|
350
|
+
method: 'scheduled_job_pending',
|
|
351
|
+
description
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
function validateES5(code) {
|
|
356
|
+
const violations = [];
|
|
357
|
+
const patterns = [
|
|
358
|
+
{ regex: /\b(const|let)\s+/g, type: 'const/let', fix: "Use 'var'" },
|
|
359
|
+
{ regex: /\([^)]*\)\s*=>/g, type: 'arrow_function', fix: 'Use function() {}' },
|
|
360
|
+
{ regex: /`[^`]*`/g, type: 'template_literal', fix: 'Use string concatenation' },
|
|
361
|
+
{ regex: /\{[^}]+\}\s*=\s*/g, type: 'destructuring', fix: 'Use explicit properties' },
|
|
362
|
+
{ regex: /for\s*\([^)]*\s+of\s+/g, type: 'for_of', fix: 'Use traditional for loop' },
|
|
363
|
+
{ regex: /class\s+\w+/g, type: 'class', fix: 'Use function constructor' }
|
|
364
|
+
];
|
|
365
|
+
patterns.forEach(({ regex, type, fix }) => {
|
|
366
|
+
let match;
|
|
367
|
+
while ((match = regex.exec(code)) !== null) {
|
|
368
|
+
violations.push({
|
|
369
|
+
type,
|
|
370
|
+
line: code.substring(0, match.index).split('\n').length,
|
|
371
|
+
code: match[0],
|
|
372
|
+
fix
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
return { valid: violations.length === 0, violations };
|
|
377
|
+
}
|
|
378
|
+
function analyzeScriptSecurity(script) {
|
|
379
|
+
const analysis = {
|
|
380
|
+
riskLevel: 'LOW',
|
|
381
|
+
warnings: [],
|
|
382
|
+
dataOperations: [],
|
|
383
|
+
systemAccess: []
|
|
384
|
+
};
|
|
385
|
+
const dataModificationPatterns = [
|
|
386
|
+
/\.insert\(\)/gi,
|
|
387
|
+
/\.update\(\)/gi,
|
|
388
|
+
/\.deleteRecord\(\)/gi,
|
|
389
|
+
/\.setValue\(/gi
|
|
390
|
+
];
|
|
391
|
+
const systemAccessPatterns = [
|
|
392
|
+
/gs\.getUser\(\)/gi,
|
|
393
|
+
/gs\.getUserID\(\)/gi,
|
|
394
|
+
/gs\.hasRole\(/gi,
|
|
395
|
+
/gs\.executeNow\(/gi
|
|
396
|
+
];
|
|
397
|
+
const dangerousPatterns = [
|
|
398
|
+
/eval\(/gi,
|
|
399
|
+
/new Function\(/gi,
|
|
400
|
+
/\.setWorkflow\(/gi
|
|
401
|
+
];
|
|
402
|
+
dataModificationPatterns.forEach(pattern => {
|
|
403
|
+
const matches = script.match(pattern);
|
|
404
|
+
if (matches) {
|
|
405
|
+
analysis.dataOperations.push(...matches);
|
|
406
|
+
if (analysis.riskLevel === 'LOW')
|
|
407
|
+
analysis.riskLevel = 'MEDIUM';
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
systemAccessPatterns.forEach(pattern => {
|
|
411
|
+
const matches = script.match(pattern);
|
|
412
|
+
if (matches) {
|
|
413
|
+
analysis.systemAccess.push(...matches);
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
dangerousPatterns.forEach(pattern => {
|
|
417
|
+
const matches = script.match(pattern);
|
|
418
|
+
if (matches) {
|
|
419
|
+
analysis.warnings.push(`Potentially dangerous operation detected: ${matches[0]}`);
|
|
420
|
+
analysis.riskLevel = 'HIGH';
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
if (script.includes('while') && (script.includes('.next()') || script.includes('.hasNext()'))) {
|
|
424
|
+
analysis.warnings.push('Script contains loops that may process many records');
|
|
425
|
+
if (analysis.riskLevel === 'LOW')
|
|
426
|
+
analysis.riskLevel = 'MEDIUM';
|
|
427
|
+
}
|
|
428
|
+
return analysis;
|
|
429
|
+
}
|
|
430
|
+
function generateConfirmationPrompt(context) {
|
|
431
|
+
const { script, description, runAsUser, allowDataModification, securityAnalysis } = context;
|
|
432
|
+
const riskEmoji = {
|
|
433
|
+
'LOW': '🟢',
|
|
434
|
+
'MEDIUM': '🟡',
|
|
435
|
+
'HIGH': '🔴'
|
|
436
|
+
}[securityAnalysis.riskLevel] || '⚪';
|
|
437
|
+
return `
|
|
438
|
+
🚨 SCRIPT EXECUTION REQUEST
|
|
439
|
+
|
|
440
|
+
📋 **Description:** ${description}
|
|
441
|
+
|
|
442
|
+
${riskEmoji} **Security Risk Level:** ${securityAnalysis.riskLevel}
|
|
443
|
+
|
|
444
|
+
👤 **Run as User:** ${runAsUser || 'Current User'}
|
|
445
|
+
📝 **Data Modification:** ${allowDataModification ? '✅ ALLOWED' : '❌ READ-ONLY'}
|
|
446
|
+
|
|
447
|
+
🔍 **Script Analysis:**
|
|
448
|
+
${securityAnalysis.dataOperations.length > 0 ?
|
|
449
|
+
`📊 Data Operations Detected: ${securityAnalysis.dataOperations.join(', ')}` : ''}
|
|
450
|
+
${securityAnalysis.systemAccess.length > 0 ?
|
|
451
|
+
`🔧 System Access: ${securityAnalysis.systemAccess.join(', ')}` : ''}
|
|
452
|
+
${securityAnalysis.warnings.length > 0 ?
|
|
453
|
+
`⚠️ Warnings: ${securityAnalysis.warnings.join(', ')}` : ''}
|
|
454
|
+
|
|
455
|
+
📜 **Script to Execute:**
|
|
456
|
+
\`\`\`javascript
|
|
457
|
+
${script}
|
|
458
|
+
\`\`\`
|
|
459
|
+
|
|
460
|
+
⚡ **Impact:** This script will run in ServiceNow's server-side JavaScript context with full API access.
|
|
461
|
+
|
|
462
|
+
❓ **Do you want to proceed with executing this script?**
|
|
463
|
+
|
|
464
|
+
Reply with:
|
|
465
|
+
- ✅ **YES** - Execute the script
|
|
466
|
+
- ❌ **NO** - Cancel execution
|
|
467
|
+
- 📝 **MODIFY** - Make changes before execution
|
|
468
|
+
|
|
469
|
+
⚠️ Only proceed if you understand what this script does and trust its source!
|
|
470
|
+
`.trim();
|
|
471
|
+
}
|
|
472
|
+
exports.version = '2.0.0';
|
|
473
|
+
exports.author = 'Snow-Flow SDK';
|
|
474
|
+
//# sourceMappingURL=snow_execute_script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snow_execute_script.js","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/automation/snow_execute_script.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snow_create_artifact.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/deployment/snow_create_artifact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIzF,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"snow_create_artifact.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/servicenow-mcp-unified/tools/deployment/snow_create_artifact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIzF,eAAO,MAAM,cAAc,EAAE,iBA+E5B,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkOxF;AA+LD,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,MAAM,mBAAmB,CAAC"}
|