nowaikit 2.5.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.

Potentially problematic release.


This version of nowaikit might be problematic. Click here for more details.

Files changed (209) hide show
  1. package/.env.example +96 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1253 -0
  4. package/desktop/renderer/dist/apple-touch-icon.png +0 -0
  5. package/desktop/renderer/dist/assets/index-Bb0ncZQl.css +1 -0
  6. package/desktop/renderer/dist/assets/index-MlBBSUMZ.js +49 -0
  7. package/desktop/renderer/dist/favicon-32.png +0 -0
  8. package/desktop/renderer/dist/favicon.svg +18 -0
  9. package/desktop/renderer/dist/index.html +18 -0
  10. package/desktop/serve.js +449 -0
  11. package/dist/cli/auth.d.ts +14 -0
  12. package/dist/cli/auth.d.ts.map +1 -0
  13. package/dist/cli/auth.js +179 -0
  14. package/dist/cli/auth.js.map +1 -0
  15. package/dist/cli/config-store.d.ts +28 -0
  16. package/dist/cli/config-store.d.ts.map +1 -0
  17. package/dist/cli/config-store.js +64 -0
  18. package/dist/cli/config-store.js.map +1 -0
  19. package/dist/cli/detect-clients.d.ts +16 -0
  20. package/dist/cli/detect-clients.d.ts.map +1 -0
  21. package/dist/cli/detect-clients.js +151 -0
  22. package/dist/cli/detect-clients.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +193 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/cli/setup.d.ts +4 -0
  28. package/dist/cli/setup.d.ts.map +1 -0
  29. package/dist/cli/setup.js +575 -0
  30. package/dist/cli/setup.js.map +1 -0
  31. package/dist/cli/writers/index.d.ts +9 -0
  32. package/dist/cli/writers/index.d.ts.map +1 -0
  33. package/dist/cli/writers/index.js +140 -0
  34. package/dist/cli/writers/index.js.map +1 -0
  35. package/dist/prompts/index.d.ts +25 -0
  36. package/dist/prompts/index.d.ts.map +1 -0
  37. package/dist/prompts/index.js +38 -0
  38. package/dist/prompts/index.js.map +1 -0
  39. package/dist/prompts/itsm.d.ts +20 -0
  40. package/dist/prompts/itsm.d.ts.map +1 -0
  41. package/dist/prompts/itsm.js +110 -0
  42. package/dist/prompts/itsm.js.map +1 -0
  43. package/dist/prompts/user-prompts.d.ts +3 -0
  44. package/dist/prompts/user-prompts.d.ts.map +1 -0
  45. package/dist/prompts/user-prompts.js +35 -0
  46. package/dist/prompts/user-prompts.js.map +1 -0
  47. package/dist/resources/index.d.ts +26 -0
  48. package/dist/resources/index.d.ts.map +1 -0
  49. package/dist/resources/index.js +99 -0
  50. package/dist/resources/index.js.map +1 -0
  51. package/dist/server.d.ts +3 -0
  52. package/dist/server.d.ts.map +1 -0
  53. package/dist/server.js +129 -0
  54. package/dist/server.js.map +1 -0
  55. package/dist/servicenow/client.d.ts +135 -0
  56. package/dist/servicenow/client.d.ts.map +1 -0
  57. package/dist/servicenow/client.js +803 -0
  58. package/dist/servicenow/client.js.map +1 -0
  59. package/dist/servicenow/instances.d.ts +28 -0
  60. package/dist/servicenow/instances.d.ts.map +1 -0
  61. package/dist/servicenow/instances.js +204 -0
  62. package/dist/servicenow/instances.js.map +1 -0
  63. package/dist/servicenow/types.d.ts +574 -0
  64. package/dist/servicenow/types.d.ts.map +1 -0
  65. package/dist/servicenow/types.js +3 -0
  66. package/dist/servicenow/types.js.map +1 -0
  67. package/dist/tools/agile.d.ts +225 -0
  68. package/dist/tools/agile.d.ts.map +1 -0
  69. package/dist/tools/agile.js +205 -0
  70. package/dist/tools/agile.js.map +1 -0
  71. package/dist/tools/app-studio.d.ts +139 -0
  72. package/dist/tools/app-studio.d.ts.map +1 -0
  73. package/dist/tools/app-studio.js +139 -0
  74. package/dist/tools/app-studio.js.map +1 -0
  75. package/dist/tools/atf.d.ts +144 -0
  76. package/dist/tools/atf.d.ts.map +1 -0
  77. package/dist/tools/atf.js +186 -0
  78. package/dist/tools/atf.js.map +1 -0
  79. package/dist/tools/catalog.d.ts +628 -0
  80. package/dist/tools/catalog.d.ts.map +1 -0
  81. package/dist/tools/catalog.js +397 -0
  82. package/dist/tools/catalog.js.map +1 -0
  83. package/dist/tools/change.d.ts +347 -0
  84. package/dist/tools/change.d.ts.map +1 -0
  85. package/dist/tools/change.js +213 -0
  86. package/dist/tools/change.js.map +1 -0
  87. package/dist/tools/core.d.ts +540 -0
  88. package/dist/tools/core.d.ts.map +1 -0
  89. package/dist/tools/core.js +373 -0
  90. package/dist/tools/core.js.map +1 -0
  91. package/dist/tools/csm.d.ts +401 -0
  92. package/dist/tools/csm.d.ts.map +1 -0
  93. package/dist/tools/csm.js +255 -0
  94. package/dist/tools/csm.js.map +1 -0
  95. package/dist/tools/deployment.d.ts +366 -0
  96. package/dist/tools/deployment.d.ts.map +1 -0
  97. package/dist/tools/deployment.js +181 -0
  98. package/dist/tools/deployment.js.map +1 -0
  99. package/dist/tools/devops.d.ts +236 -0
  100. package/dist/tools/devops.d.ts.map +1 -0
  101. package/dist/tools/devops.js +207 -0
  102. package/dist/tools/devops.js.map +1 -0
  103. package/dist/tools/flow.d.ts +496 -0
  104. package/dist/tools/flow.d.ts.map +1 -0
  105. package/dist/tools/flow.js +348 -0
  106. package/dist/tools/flow.js.map +1 -0
  107. package/dist/tools/hrsd.d.ts +789 -0
  108. package/dist/tools/hrsd.d.ts.map +1 -0
  109. package/dist/tools/hrsd.js +377 -0
  110. package/dist/tools/hrsd.js.map +1 -0
  111. package/dist/tools/incident.d.ts +256 -0
  112. package/dist/tools/incident.d.ts.map +1 -0
  113. package/dist/tools/incident.js +163 -0
  114. package/dist/tools/incident.js.map +1 -0
  115. package/dist/tools/index.d.ts +11514 -0
  116. package/dist/tools/index.d.ts.map +1 -0
  117. package/dist/tools/index.js +276 -0
  118. package/dist/tools/index.js.map +1 -0
  119. package/dist/tools/integration.d.ts +603 -0
  120. package/dist/tools/integration.d.ts.map +1 -0
  121. package/dist/tools/integration.js +510 -0
  122. package/dist/tools/integration.js.map +1 -0
  123. package/dist/tools/itam.d.ts +462 -0
  124. package/dist/tools/itam.d.ts.map +1 -0
  125. package/dist/tools/itam.js +306 -0
  126. package/dist/tools/itam.js.map +1 -0
  127. package/dist/tools/knowledge.d.ts +187 -0
  128. package/dist/tools/knowledge.d.ts.map +1 -0
  129. package/dist/tools/knowledge.js +161 -0
  130. package/dist/tools/knowledge.js.map +1 -0
  131. package/dist/tools/ml.d.ts +263 -0
  132. package/dist/tools/ml.d.ts.map +1 -0
  133. package/dist/tools/ml.js +251 -0
  134. package/dist/tools/ml.js.map +1 -0
  135. package/dist/tools/mobile.d.ts +352 -0
  136. package/dist/tools/mobile.d.ts.map +1 -0
  137. package/dist/tools/mobile.js +122 -0
  138. package/dist/tools/mobile.js.map +1 -0
  139. package/dist/tools/notification.d.ts +590 -0
  140. package/dist/tools/notification.d.ts.map +1 -0
  141. package/dist/tools/notification.js +382 -0
  142. package/dist/tools/notification.js.map +1 -0
  143. package/dist/tools/now-assist.d.ts +300 -0
  144. package/dist/tools/now-assist.d.ts.map +1 -0
  145. package/dist/tools/now-assist.js +227 -0
  146. package/dist/tools/now-assist.js.map +1 -0
  147. package/dist/tools/performance.d.ts +447 -0
  148. package/dist/tools/performance.d.ts.map +1 -0
  149. package/dist/tools/performance.js +473 -0
  150. package/dist/tools/performance.js.map +1 -0
  151. package/dist/tools/portal.d.ts +530 -0
  152. package/dist/tools/portal.d.ts.map +1 -0
  153. package/dist/tools/portal.js +425 -0
  154. package/dist/tools/portal.js.map +1 -0
  155. package/dist/tools/problem.d.ts +110 -0
  156. package/dist/tools/problem.d.ts.map +1 -0
  157. package/dist/tools/problem.js +100 -0
  158. package/dist/tools/problem.js.map +1 -0
  159. package/dist/tools/reporting.d.ts +825 -0
  160. package/dist/tools/reporting.d.ts.map +1 -0
  161. package/dist/tools/reporting.js +460 -0
  162. package/dist/tools/reporting.js.map +1 -0
  163. package/dist/tools/script.d.ts +714 -0
  164. package/dist/tools/script.d.ts.map +1 -0
  165. package/dist/tools/script.js +629 -0
  166. package/dist/tools/script.js.map +1 -0
  167. package/dist/tools/security.d.ts +794 -0
  168. package/dist/tools/security.d.ts.map +1 -0
  169. package/dist/tools/security.js +425 -0
  170. package/dist/tools/security.js.map +1 -0
  171. package/dist/tools/sys-properties.d.ts +315 -0
  172. package/dist/tools/sys-properties.d.ts.map +1 -0
  173. package/dist/tools/sys-properties.js +372 -0
  174. package/dist/tools/sys-properties.js.map +1 -0
  175. package/dist/tools/task.d.ts +82 -0
  176. package/dist/tools/task.d.ts.map +1 -0
  177. package/dist/tools/task.js +96 -0
  178. package/dist/tools/task.js.map +1 -0
  179. package/dist/tools/updateset.d.ts +159 -0
  180. package/dist/tools/updateset.d.ts.map +1 -0
  181. package/dist/tools/updateset.js +212 -0
  182. package/dist/tools/updateset.js.map +1 -0
  183. package/dist/tools/user.d.ts +206 -0
  184. package/dist/tools/user.d.ts.map +1 -0
  185. package/dist/tools/user.js +163 -0
  186. package/dist/tools/user.js.map +1 -0
  187. package/dist/tools/va.d.ts +217 -0
  188. package/dist/tools/va.d.ts.map +1 -0
  189. package/dist/tools/va.js +178 -0
  190. package/dist/tools/va.js.map +1 -0
  191. package/dist/tools/workspace.d.ts +565 -0
  192. package/dist/tools/workspace.d.ts.map +1 -0
  193. package/dist/tools/workspace.js +201 -0
  194. package/dist/tools/workspace.js.map +1 -0
  195. package/dist/tools-manifest.json +7852 -0
  196. package/dist/utils/errors.d.ts +6 -0
  197. package/dist/utils/errors.d.ts.map +1 -0
  198. package/dist/utils/errors.js +11 -0
  199. package/dist/utils/errors.js.map +1 -0
  200. package/dist/utils/logging.d.ts +7 -0
  201. package/dist/utils/logging.d.ts.map +1 -0
  202. package/dist/utils/logging.js +15 -0
  203. package/dist/utils/logging.js.map +1 -0
  204. package/dist/utils/permissions.d.ts +21 -0
  205. package/dist/utils/permissions.d.ts.map +1 -0
  206. package/dist/utils/permissions.js +54 -0
  207. package/dist/utils/permissions.js.map +1 -0
  208. package/instances.example.json +71 -0
  209. package/package.json +110 -0
@@ -0,0 +1,366 @@
1
+ /**
2
+ * Deployment & Artifact lifecycle tools — artifact validation, push/pull,
3
+ * deployment tracking, rollback, and solution packaging.
4
+ *
5
+ * NOTE: Does NOT duplicate existing devops.ts (pipelines, deployments) or
6
+ * updateset.ts (update set CRUD). These tools add artifact-level management
7
+ * and deployment orchestration.
8
+ *
9
+ * ServiceNow tables: sys_update_xml, sys_remote_update_set, sys_app,
10
+ * sys_store_app, sn_devops_artifact
11
+ */
12
+ import type { ServiceNowClient } from '../servicenow/client.js';
13
+ export declare function getDeploymentToolDefinitions(): ({
14
+ name: string;
15
+ description: string;
16
+ inputSchema: {
17
+ type: string;
18
+ properties: {
19
+ name: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ type: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ scope: {
28
+ type: string;
29
+ description: string;
30
+ };
31
+ limit: {
32
+ type: string;
33
+ };
34
+ table?: undefined;
35
+ sys_id?: undefined;
36
+ new_name?: undefined;
37
+ target_scope?: undefined;
38
+ update_set_sys_id?: undefined;
39
+ app_sys_id?: undefined;
40
+ reason?: undefined;
41
+ days?: undefined;
42
+ description?: undefined;
43
+ update_sets?: undefined;
44
+ script?: undefined;
45
+ data?: undefined;
46
+ required_fields?: undefined;
47
+ days_stale?: undefined;
48
+ };
49
+ required: string[];
50
+ };
51
+ } | {
52
+ name: string;
53
+ description: string;
54
+ inputSchema: {
55
+ type: string;
56
+ properties: {
57
+ table: {
58
+ type: string;
59
+ description: string;
60
+ };
61
+ sys_id: {
62
+ type: string;
63
+ description: string;
64
+ };
65
+ name?: undefined;
66
+ type?: undefined;
67
+ scope?: undefined;
68
+ limit?: undefined;
69
+ new_name?: undefined;
70
+ target_scope?: undefined;
71
+ update_set_sys_id?: undefined;
72
+ app_sys_id?: undefined;
73
+ reason?: undefined;
74
+ days?: undefined;
75
+ description?: undefined;
76
+ update_sets?: undefined;
77
+ script?: undefined;
78
+ data?: undefined;
79
+ required_fields?: undefined;
80
+ days_stale?: undefined;
81
+ };
82
+ required: string[];
83
+ };
84
+ } | {
85
+ name: string;
86
+ description: string;
87
+ inputSchema: {
88
+ type: string;
89
+ properties: {
90
+ table: {
91
+ type: string;
92
+ description: string;
93
+ };
94
+ sys_id: {
95
+ type: string;
96
+ description: string;
97
+ };
98
+ new_name: {
99
+ type: string;
100
+ description: string;
101
+ };
102
+ target_scope: {
103
+ type: string;
104
+ description: string;
105
+ };
106
+ name?: undefined;
107
+ type?: undefined;
108
+ scope?: undefined;
109
+ limit?: undefined;
110
+ update_set_sys_id?: undefined;
111
+ app_sys_id?: undefined;
112
+ reason?: undefined;
113
+ days?: undefined;
114
+ description?: undefined;
115
+ update_sets?: undefined;
116
+ script?: undefined;
117
+ data?: undefined;
118
+ required_fields?: undefined;
119
+ days_stale?: undefined;
120
+ };
121
+ required: string[];
122
+ };
123
+ } | {
124
+ name: string;
125
+ description: string;
126
+ inputSchema: {
127
+ type: string;
128
+ properties: {
129
+ update_set_sys_id: {
130
+ type: string;
131
+ description: string;
132
+ };
133
+ app_sys_id: {
134
+ type: string;
135
+ description: string;
136
+ };
137
+ name?: undefined;
138
+ type?: undefined;
139
+ scope?: undefined;
140
+ limit?: undefined;
141
+ table?: undefined;
142
+ sys_id?: undefined;
143
+ new_name?: undefined;
144
+ target_scope?: undefined;
145
+ reason?: undefined;
146
+ days?: undefined;
147
+ description?: undefined;
148
+ update_sets?: undefined;
149
+ script?: undefined;
150
+ data?: undefined;
151
+ required_fields?: undefined;
152
+ days_stale?: undefined;
153
+ };
154
+ required: never[];
155
+ };
156
+ } | {
157
+ name: string;
158
+ description: string;
159
+ inputSchema: {
160
+ type: string;
161
+ properties: {
162
+ update_set_sys_id: {
163
+ type: string;
164
+ description: string;
165
+ };
166
+ reason: {
167
+ type: string;
168
+ description: string;
169
+ };
170
+ name?: undefined;
171
+ type?: undefined;
172
+ scope?: undefined;
173
+ limit?: undefined;
174
+ table?: undefined;
175
+ sys_id?: undefined;
176
+ new_name?: undefined;
177
+ target_scope?: undefined;
178
+ app_sys_id?: undefined;
179
+ days?: undefined;
180
+ description?: undefined;
181
+ update_sets?: undefined;
182
+ script?: undefined;
183
+ data?: undefined;
184
+ required_fields?: undefined;
185
+ days_stale?: undefined;
186
+ };
187
+ required: string[];
188
+ };
189
+ } | {
190
+ name: string;
191
+ description: string;
192
+ inputSchema: {
193
+ type: string;
194
+ properties: {
195
+ days: {
196
+ type: string;
197
+ description: string;
198
+ };
199
+ limit: {
200
+ type: string;
201
+ };
202
+ name?: undefined;
203
+ type?: undefined;
204
+ scope?: undefined;
205
+ table?: undefined;
206
+ sys_id?: undefined;
207
+ new_name?: undefined;
208
+ target_scope?: undefined;
209
+ update_set_sys_id?: undefined;
210
+ app_sys_id?: undefined;
211
+ reason?: undefined;
212
+ description?: undefined;
213
+ update_sets?: undefined;
214
+ script?: undefined;
215
+ data?: undefined;
216
+ required_fields?: undefined;
217
+ days_stale?: undefined;
218
+ };
219
+ required: never[];
220
+ };
221
+ } | {
222
+ name: string;
223
+ description: string;
224
+ inputSchema: {
225
+ type: string;
226
+ properties: {
227
+ name: {
228
+ type: string;
229
+ description: string;
230
+ };
231
+ description: {
232
+ type: string;
233
+ };
234
+ update_sets: {
235
+ type: string;
236
+ items: {
237
+ type: string;
238
+ };
239
+ description: string;
240
+ };
241
+ type?: undefined;
242
+ scope?: undefined;
243
+ limit?: undefined;
244
+ table?: undefined;
245
+ sys_id?: undefined;
246
+ new_name?: undefined;
247
+ target_scope?: undefined;
248
+ update_set_sys_id?: undefined;
249
+ app_sys_id?: undefined;
250
+ reason?: undefined;
251
+ days?: undefined;
252
+ script?: undefined;
253
+ data?: undefined;
254
+ required_fields?: undefined;
255
+ days_stale?: undefined;
256
+ };
257
+ required: string[];
258
+ };
259
+ } | {
260
+ name: string;
261
+ description: string;
262
+ inputSchema: {
263
+ type: string;
264
+ properties: {
265
+ script: {
266
+ type: string;
267
+ description: string;
268
+ };
269
+ scope: {
270
+ type: string;
271
+ description: string;
272
+ };
273
+ name?: undefined;
274
+ type?: undefined;
275
+ limit?: undefined;
276
+ table?: undefined;
277
+ sys_id?: undefined;
278
+ new_name?: undefined;
279
+ target_scope?: undefined;
280
+ update_set_sys_id?: undefined;
281
+ app_sys_id?: undefined;
282
+ reason?: undefined;
283
+ days?: undefined;
284
+ description?: undefined;
285
+ update_sets?: undefined;
286
+ data?: undefined;
287
+ required_fields?: undefined;
288
+ days_stale?: undefined;
289
+ };
290
+ required: string[];
291
+ };
292
+ } | {
293
+ name: string;
294
+ description: string;
295
+ inputSchema: {
296
+ type: string;
297
+ properties: {
298
+ table: {
299
+ type: string;
300
+ description: string;
301
+ };
302
+ data: {
303
+ type: string;
304
+ items: {
305
+ type: string;
306
+ };
307
+ description: string;
308
+ };
309
+ name?: undefined;
310
+ type?: undefined;
311
+ scope?: undefined;
312
+ limit?: undefined;
313
+ sys_id?: undefined;
314
+ new_name?: undefined;
315
+ target_scope?: undefined;
316
+ update_set_sys_id?: undefined;
317
+ app_sys_id?: undefined;
318
+ reason?: undefined;
319
+ days?: undefined;
320
+ description?: undefined;
321
+ update_sets?: undefined;
322
+ script?: undefined;
323
+ required_fields?: undefined;
324
+ days_stale?: undefined;
325
+ };
326
+ required: string[];
327
+ };
328
+ } | {
329
+ name: string;
330
+ description: string;
331
+ inputSchema: {
332
+ type: string;
333
+ properties: {
334
+ table: {
335
+ type: string;
336
+ description: string;
337
+ };
338
+ required_fields: {
339
+ type: string;
340
+ description: string;
341
+ };
342
+ days_stale: {
343
+ type: string;
344
+ description: string;
345
+ };
346
+ name?: undefined;
347
+ type?: undefined;
348
+ scope?: undefined;
349
+ limit?: undefined;
350
+ sys_id?: undefined;
351
+ new_name?: undefined;
352
+ target_scope?: undefined;
353
+ update_set_sys_id?: undefined;
354
+ app_sys_id?: undefined;
355
+ reason?: undefined;
356
+ days?: undefined;
357
+ description?: undefined;
358
+ update_sets?: undefined;
359
+ script?: undefined;
360
+ data?: undefined;
361
+ };
362
+ required: string[];
363
+ };
364
+ })[];
365
+ export declare function executeDeploymentToolCall(client: ServiceNowClient, name: string, args: Record<string, any>): Promise<any>;
366
+ //# sourceMappingURL=deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/tools/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqD3C;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAkHd"}
@@ -0,0 +1,181 @@
1
+ import { ServiceNowError } from '../utils/errors.js';
2
+ import { requireWrite, requireScripting } from '../utils/permissions.js';
3
+ export function getDeploymentToolDefinitions() {
4
+ return [
5
+ {
6
+ name: 'find_artifact',
7
+ description: 'Search for platform artifacts by name, type, or scope (business rules, scripts, widgets, etc.)',
8
+ inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Artifact name or pattern' }, type: { type: 'string', description: 'Artifact type: business_rule, script_include, client_script, ui_policy, ui_action, widget, flow, sys_properties' }, scope: { type: 'string', description: 'Application scope name' }, limit: { type: 'number' } }, required: ['name'] },
9
+ },
10
+ {
11
+ name: 'validate_artifact',
12
+ description: 'Validate an artifact for best practices, security issues, and performance concerns',
13
+ inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'Artifact table (e.g. sys_script, sys_script_include)' }, sys_id: { type: 'string', description: 'Artifact sys_id' } }, required: ['table', 'sys_id'] },
14
+ },
15
+ {
16
+ name: 'clone_artifact',
17
+ description: 'Clone a platform artifact to a new name/scope. **[Scripting]**',
18
+ inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'Source artifact table' }, sys_id: { type: 'string', description: 'Source artifact sys_id' }, new_name: { type: 'string', description: 'Name for the cloned artifact' }, target_scope: { type: 'string', description: 'Target application scope (optional)' } }, required: ['table', 'sys_id', 'new_name'] },
19
+ },
20
+ {
21
+ name: 'validate_deployment',
22
+ description: 'Pre-validate an update set or app before deployment — check for conflicts and missing dependencies',
23
+ inputSchema: { type: 'object', properties: { update_set_sys_id: { type: 'string', description: 'Update set sys_id to validate' }, app_sys_id: { type: 'string', description: 'Scoped app sys_id (alternative to update set)' } }, required: [] },
24
+ },
25
+ {
26
+ name: 'rollback_deployment',
27
+ description: 'Rollback a deployment by reverting an update set. **[Write]**',
28
+ inputSchema: { type: 'object', properties: { update_set_sys_id: { type: 'string', description: 'Committed update set sys_id to rollback' }, reason: { type: 'string', description: 'Reason for rollback' } }, required: ['update_set_sys_id'] },
29
+ },
30
+ {
31
+ name: 'list_deployment_history',
32
+ description: 'List deployment history — committed update sets and app installs over time',
33
+ inputSchema: { type: 'object', properties: { days: { type: 'number', description: 'Look-back period (default 30)' }, limit: { type: 'number' } }, required: [] },
34
+ },
35
+ {
36
+ name: 'create_solution_package',
37
+ description: 'Create a solution package from selected update sets for distribution. **[Write]**',
38
+ inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Package name' }, description: { type: 'string' }, update_sets: { type: 'array', items: { type: 'string' }, description: 'Array of update set sys_ids to include' } }, required: ['name', 'update_sets'] },
39
+ },
40
+ {
41
+ name: 'execute_background_script',
42
+ description: 'Execute a background script on the instance (server-side JavaScript). **[Scripting]**',
43
+ inputSchema: { type: 'object', properties: { script: { type: 'string', description: 'JavaScript code to execute' }, scope: { type: 'string', description: 'Application scope (default global)' } }, required: ['script'] },
44
+ },
45
+ {
46
+ name: 'import_cmdb_data',
47
+ description: 'Import CI data into CMDB via import set. **[Write]**',
48
+ inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'Target CMDB table (e.g. cmdb_ci_server)' }, data: { type: 'array', items: { type: 'object' }, description: 'Array of records to import' } }, required: ['table', 'data'] },
49
+ },
50
+ {
51
+ name: 'analyze_data_quality',
52
+ description: 'Analyse data quality for a table — completeness, duplicates, stale records',
53
+ inputSchema: { type: 'object', properties: { table: { type: 'string', description: 'Table to analyse' }, required_fields: { type: 'string', description: 'Comma-separated fields that should be populated' }, days_stale: { type: 'number', description: 'Consider records stale after N days without update (default 180)' } }, required: ['table'] },
54
+ },
55
+ ];
56
+ }
57
+ export async function executeDeploymentToolCall(client, name, args) {
58
+ switch (name) {
59
+ case 'find_artifact': {
60
+ if (!args.name)
61
+ throw new ServiceNowError('name is required', 'INVALID_REQUEST');
62
+ const tableMap = { business_rule: 'sys_script', script_include: 'sys_script_include', client_script: 'sys_script_client', ui_policy: 'sys_ui_policy', ui_action: 'sys_ui_action', widget: 'sp_widget', flow: 'sys_hub_flow', sys_properties: 'sys_properties' };
63
+ const table = args.type ? (tableMap[args.type] || args.type) : 'sys_metadata';
64
+ let query = `nameLIKE${args.name}`;
65
+ if (args.scope)
66
+ query += `^sys_scope.name=${args.scope}`;
67
+ const resp = await client.queryRecords({ table, query, limit: args.limit || 25, fields: 'sys_id,name,sys_class_name,sys_scope,active,sys_updated_on' });
68
+ return { count: resp.count, artifacts: resp.records };
69
+ }
70
+ case 'validate_artifact': {
71
+ if (!args.table || !args.sys_id)
72
+ throw new ServiceNowError('table and sys_id are required', 'INVALID_REQUEST');
73
+ const record = await client.getRecord(args.table, args.sys_id);
74
+ const issues = [];
75
+ const script = String(record.script || record.condition || '');
76
+ if (script.includes('current.update()'))
77
+ issues.push('WARN: current.update() in script can cause infinite loops');
78
+ if (script.includes('eval('))
79
+ issues.push('SECURITY: eval() usage detected');
80
+ if (script.includes('GlideRecord') && !script.includes('addQuery'))
81
+ issues.push('PERF: GlideRecord without query filter may scan entire table');
82
+ if (script.includes('gs.sleep'))
83
+ issues.push('PERF: gs.sleep() blocks thread');
84
+ if (record.active === 'false')
85
+ issues.push('INFO: Artifact is inactive');
86
+ return { name: record.name, table: args.table, sys_id: args.sys_id, issues_found: issues.length, issues, status: issues.length === 0 ? 'PASS' : 'REVIEW' };
87
+ }
88
+ case 'clone_artifact': {
89
+ requireScripting();
90
+ if (!args.table || !args.sys_id || !args.new_name)
91
+ throw new ServiceNowError('table, sys_id, and new_name are required', 'INVALID_REQUEST');
92
+ const source = await client.getRecord(args.table, args.sys_id);
93
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
94
+ const { sys_id: _sysId, sys_created_on: _created, sys_updated_on: _updated, sys_created_by: _createdBy, sys_updated_by: _updatedBy, ...cloneData } = source;
95
+ cloneData.name = args.new_name;
96
+ if (args.target_scope)
97
+ cloneData.sys_scope = args.target_scope;
98
+ const result = await client.createRecord(args.table, cloneData);
99
+ return { action: 'cloned', source_sys_id: args.sys_id, new_name: args.new_name, ...result };
100
+ }
101
+ case 'validate_deployment': {
102
+ if (!args.update_set_sys_id && !args.app_sys_id)
103
+ throw new ServiceNowError('update_set_sys_id or app_sys_id required', 'INVALID_REQUEST');
104
+ if (args.update_set_sys_id) {
105
+ const us = await client.getRecord('sys_update_set', args.update_set_sys_id);
106
+ const changes = await client.queryRecords({ table: 'sys_update_xml', query: `update_set=${args.update_set_sys_id}`, limit: 500, fields: 'sys_id,name,type,action' });
107
+ return { update_set: us.name, state: us.state, total_changes: changes.count, changes_summary: changes.records.slice(0, 20), validation: us.state === 'complete' ? 'READY' : 'NOT_COMPLETE' };
108
+ }
109
+ const app = await client.getRecord('sys_app', args.app_sys_id);
110
+ return { app: app.name, version: app.version, scope: app.scope, validation: 'OK' };
111
+ }
112
+ case 'rollback_deployment': {
113
+ requireWrite();
114
+ if (!args.update_set_sys_id)
115
+ throw new ServiceNowError('update_set_sys_id is required', 'INVALID_REQUEST');
116
+ const us = await client.getRecord('sys_update_set', args.update_set_sys_id);
117
+ return { action: 'rollback_requested', update_set: us.name, state: us.state, note: 'Use ServiceNow Update Set rollback UI to confirm. Automated rollback requires admin background script.', reason: args.reason || '' };
118
+ }
119
+ case 'list_deployment_history': {
120
+ const days = args.days || 30;
121
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 19).replace('T', ' ');
122
+ const resp = await client.queryRecords({ table: 'sys_update_set', query: `state=complete^sys_updated_on>=${since}`, limit: args.limit || 50, fields: 'sys_id,name,state,application,sys_created_by,sys_updated_on' });
123
+ return { period_days: days, count: resp.count, deployments: resp.records };
124
+ }
125
+ case 'create_solution_package': {
126
+ requireWrite();
127
+ if (!args.name || !args.update_sets?.length)
128
+ throw new ServiceNowError('name and update_sets are required', 'INVALID_REQUEST');
129
+ return { action: 'package_created', name: args.name, update_set_count: args.update_sets.length, note: 'Solution packaging requires Store app or manual export of listed update sets.' };
130
+ }
131
+ case 'execute_background_script': {
132
+ requireScripting();
133
+ if (!args.script)
134
+ throw new ServiceNowError('script is required', 'INVALID_REQUEST');
135
+ try {
136
+ const resp = await client.callNowAssist('/api/now/sp/background_script', { script: args.script, scope: args.scope || 'global' });
137
+ return { action: 'executed', output: resp };
138
+ }
139
+ catch (err) {
140
+ return { action: 'failed', error: err instanceof Error ? err.message : String(err) };
141
+ }
142
+ }
143
+ case 'import_cmdb_data': {
144
+ requireWrite();
145
+ if (!args.table || !args.data?.length)
146
+ throw new ServiceNowError('table and data are required', 'INVALID_REQUEST');
147
+ const results = [];
148
+ for (const record of args.data.slice(0, 50)) {
149
+ try {
150
+ const result = await client.createRecord(args.table, record);
151
+ results.push({ status: 'created', ...result });
152
+ }
153
+ catch (err) {
154
+ results.push({ status: 'failed', error: err instanceof Error ? err.message : String(err) });
155
+ }
156
+ }
157
+ return { action: 'imported', total: args.data.length, processed: results.length, results };
158
+ }
159
+ case 'analyze_data_quality': {
160
+ if (!args.table)
161
+ throw new ServiceNowError('table is required', 'INVALID_REQUEST');
162
+ const totalResp = await client.queryRecords({ table: args.table, limit: 1, fields: 'sys_id' });
163
+ const total = totalResp.count;
164
+ const daysStale = args.days_stale || 180;
165
+ const staleSince = new Date(Date.now() - daysStale * 86400000).toISOString().slice(0, 19).replace('T', ' ');
166
+ const staleResp = await client.queryRecords({ table: args.table, query: `sys_updated_on<${staleSince}`, limit: 1, fields: 'sys_id' });
167
+ const issues = [];
168
+ if (args.required_fields) {
169
+ for (const field of args.required_fields.split(',').map((f) => f.trim())) {
170
+ const emptyResp = await client.queryRecords({ table: args.table, query: `${field}ISEMPTY`, limit: 1, fields: 'sys_id' });
171
+ if (emptyResp.count > 0)
172
+ issues.push(`${field}: ${emptyResp.count} empty records`);
173
+ }
174
+ }
175
+ return { table: args.table, total_records: total, stale_records: staleResp.count, stale_threshold_days: daysStale, completeness_issues: issues, quality_score: total > 0 ? `${Math.round(((total - staleResp.count) / total) * 100)}%` : 'N/A' };
176
+ }
177
+ default:
178
+ return null;
179
+ }
180
+ }
181
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/tools/deployment.ts"],"names":[],"mappings":"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"}