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.
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,251 @@
1
+ import { ServiceNowError } from '../utils/errors.js';
2
+ import { requireWrite } from '../utils/permissions.js';
3
+ export function getMlToolDefinitions() {
4
+ return [
5
+ {
6
+ name: 'ml_predict_change_risk',
7
+ description: 'Predict the risk level of a change request using historical ML analysis',
8
+ inputSchema: {
9
+ type: 'object',
10
+ properties: {
11
+ change_sys_id: { type: 'string', description: 'Change request sys_id to evaluate' },
12
+ type: { type: 'string', description: 'Change type: normal, standard, emergency' },
13
+ category: { type: 'string', description: 'Change category' },
14
+ },
15
+ required: [],
16
+ },
17
+ },
18
+ {
19
+ name: 'ml_detect_anomalies',
20
+ description: 'Run anomaly detection on operational metrics (alert volume, incident trends, etc.)',
21
+ inputSchema: {
22
+ type: 'object',
23
+ properties: {
24
+ table: { type: 'string', description: 'Table to analyze (e.g. incident, sn_agent_alert)' },
25
+ field: { type: 'string', description: 'Numeric field to analyse (e.g. priority, reassignment_count)' },
26
+ days: { type: 'number', description: 'Look-back period in days (default 30)' },
27
+ threshold: { type: 'number', description: 'Standard deviations for anomaly threshold (default 2)' },
28
+ },
29
+ required: ['table', 'field'],
30
+ },
31
+ },
32
+ {
33
+ name: 'ml_forecast_incidents',
34
+ description: 'Forecast incident volume for the next N days based on historical trends',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ days_ahead: { type: 'number', description: 'Number of days to forecast (default 7)' },
39
+ category: { type: 'string', description: 'Filter by category (optional)' },
40
+ priority: { type: 'string', description: 'Filter by priority (optional)' },
41
+ },
42
+ required: [],
43
+ },
44
+ },
45
+ {
46
+ name: 'ml_train_incident_classifier',
47
+ description: 'Trigger training of the incident classification ML solution. **[Write]**',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ solution_name: { type: 'string', description: 'ML solution name (default auto-detect)' },
52
+ },
53
+ required: [],
54
+ },
55
+ },
56
+ {
57
+ name: 'ml_train_change_risk',
58
+ description: 'Trigger training of the change risk prediction ML model. **[Write]**',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ solution_name: { type: 'string', description: 'ML solution name (default auto-detect)' },
63
+ },
64
+ required: [],
65
+ },
66
+ },
67
+ {
68
+ name: 'ml_train_anomaly_detector',
69
+ description: 'Trigger training of an anomaly detection model for a specific table/field. **[Write]**',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ table: { type: 'string', description: 'Target table for anomaly detection' },
74
+ field: { type: 'string', description: 'Numeric field to train on' },
75
+ },
76
+ required: ['table', 'field'],
77
+ },
78
+ },
79
+ {
80
+ name: 'ml_evaluate_model',
81
+ description: 'Get accuracy, training status, and metrics for a trained ML solution',
82
+ inputSchema: {
83
+ type: 'object',
84
+ properties: {
85
+ model_sys_id: { type: 'string', description: 'ML solution sys_id' },
86
+ },
87
+ required: ['model_sys_id'],
88
+ },
89
+ },
90
+ {
91
+ name: 'ml_model_training_history',
92
+ description: 'Get training run history and accuracy trends for an ML solution over time',
93
+ inputSchema: {
94
+ type: 'object',
95
+ properties: {
96
+ model_sys_id: { type: 'string', description: 'ML solution sys_id' },
97
+ days: { type: 'number', description: 'Look-back period (default 90)' },
98
+ },
99
+ required: ['model_sys_id'],
100
+ },
101
+ },
102
+ {
103
+ name: 'ml_virtual_agent_nlu',
104
+ description: 'Analyse Virtual Agent NLU performance — conversation completion rates and fallback metrics',
105
+ inputSchema: {
106
+ type: 'object',
107
+ properties: {
108
+ topic_sys_id: { type: 'string', description: 'VA topic sys_id (optional, all topics if omitted)' },
109
+ days: { type: 'number', description: 'Analysis period in days (default 30)' },
110
+ },
111
+ required: [],
112
+ },
113
+ },
114
+ {
115
+ name: 'ml_process_optimization',
116
+ description: 'Identify process bottlenecks using analysis of task durations and reassignment patterns',
117
+ inputSchema: {
118
+ type: 'object',
119
+ properties: {
120
+ table: { type: 'string', description: 'Process table to analyse (e.g. incident, change_request, sc_task)' },
121
+ days: { type: 'number', description: 'Analysis period (default 90)' },
122
+ },
123
+ required: ['table'],
124
+ },
125
+ },
126
+ ];
127
+ }
128
+ export async function executeMlToolCall(client, name, args) {
129
+ switch (name) {
130
+ case 'ml_predict_change_risk': {
131
+ if (args.change_sys_id) {
132
+ const change = await client.getRecord('change_request', args.change_sys_id);
133
+ return { change: args.change_sys_id, risk: change.risk || 'unknown', risk_value: change.risk_value, impact: change.impact, conflict_status: change.conflict_status };
134
+ }
135
+ const resp = await client.queryRecords({
136
+ table: 'change_request',
137
+ query: `type=${args.type || 'normal'}^category=${args.category || ''}^stateNOT INcancelled`,
138
+ limit: 100,
139
+ fields: 'risk,state',
140
+ });
141
+ const total = resp.count;
142
+ const highRisk = resp.records.filter((r) => r.risk === 'high' || r.risk === '1').length;
143
+ return {
144
+ prediction_method: 'historical_analysis',
145
+ total_similar_changes: total,
146
+ high_risk_rate: total > 0 ? `${Math.round((highRisk / total) * 100)}%` : 'N/A',
147
+ predicted_risk: highRisk / total > 0.3 ? 'high' : highRisk / total > 0.1 ? 'moderate' : 'low',
148
+ };
149
+ }
150
+ case 'ml_detect_anomalies': {
151
+ if (!args.table || !args.field)
152
+ throw new ServiceNowError('table and field are required', 'INVALID_REQUEST');
153
+ const days = args.days || 30;
154
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 19).replace('T', ' ');
155
+ const resp = await client.queryRecords({ table: args.table, query: `sys_created_on>=${since}`, limit: 1000, fields: `${args.field},sys_created_on` });
156
+ const values = resp.records.map((r) => parseFloat(r[args.field]) || 0);
157
+ const mean = values.reduce((a, b) => a + b, 0) / (values.length || 1);
158
+ const variance = values.reduce((sum, v) => sum + Math.pow(v - mean, 2), 0) / (values.length || 1);
159
+ const stdDev = Math.sqrt(variance);
160
+ const threshold = args.threshold || 2;
161
+ const anomalies = resp.records.filter((r) => Math.abs((parseFloat(r[args.field]) || 0) - mean) > threshold * stdDev);
162
+ return { period_days: days, total_records: resp.count, mean: Math.round(mean * 100) / 100, std_dev: Math.round(stdDev * 100) / 100, threshold_sigma: threshold, anomaly_count: anomalies.length, anomalies: anomalies.slice(0, 20) };
163
+ }
164
+ case 'ml_forecast_incidents': {
165
+ const lookback = 60;
166
+ const daysAhead = args.days_ahead || 7;
167
+ const since = new Date(Date.now() - lookback * 86400000).toISOString().slice(0, 19).replace('T', ' ');
168
+ let query = `sys_created_on>=${since}`;
169
+ if (args.category)
170
+ query += `^category=${args.category}`;
171
+ if (args.priority)
172
+ query += `^priority=${args.priority}`;
173
+ const resp = await client.queryRecords({ table: 'incident', query, limit: 5000, fields: 'sys_created_on' });
174
+ const dailyRate = resp.count / lookback;
175
+ return { historical_period_days: lookback, total_incidents: resp.count, avg_daily_rate: Math.round(dailyRate * 10) / 10, forecast_days: daysAhead, forecast_total: Math.round(dailyRate * daysAhead), forecast_range: { low: Math.round(dailyRate * daysAhead * 0.7), high: Math.round(dailyRate * daysAhead * 1.3) } };
176
+ }
177
+ case 'ml_train_incident_classifier': {
178
+ requireWrite();
179
+ const solutions = await client.queryRecords({ table: 'ml_solution', query: args.solution_name ? `name=${args.solution_name}` : 'solution_typeLIKEclassif^active=true', limit: 1, fields: 'sys_id,name,training_status' });
180
+ if (solutions.count === 0)
181
+ return { error: 'No classification ML solution found. Enable Predictive Intelligence.' };
182
+ const sol = solutions.records[0];
183
+ try {
184
+ await client.callNowAssist(`/api/now/ml/solution/${sol.sys_id}/train`, {});
185
+ return { action: 'training_triggered', solution: sol.name, sys_id: sol.sys_id };
186
+ }
187
+ catch (err) {
188
+ return { action: 'training_failed', solution: sol.name, error: err instanceof Error ? err.message : String(err) };
189
+ }
190
+ }
191
+ case 'ml_train_change_risk': {
192
+ requireWrite();
193
+ const solutions = await client.queryRecords({ table: 'ml_solution', query: args.solution_name ? `name=${args.solution_name}` : 'nameLIKEchange^active=true', limit: 1, fields: 'sys_id,name' });
194
+ if (solutions.count === 0)
195
+ return { error: 'No change risk ML solution found.' };
196
+ const sol = solutions.records[0];
197
+ try {
198
+ await client.callNowAssist(`/api/now/ml/solution/${sol.sys_id}/train`, {});
199
+ return { action: 'training_triggered', solution: sol.name, sys_id: sol.sys_id };
200
+ }
201
+ catch (err) {
202
+ return { action: 'training_failed', error: err instanceof Error ? err.message : String(err) };
203
+ }
204
+ }
205
+ case 'ml_train_anomaly_detector': {
206
+ requireWrite();
207
+ if (!args.table || !args.field)
208
+ throw new ServiceNowError('table and field are required', 'INVALID_REQUEST');
209
+ return { action: 'anomaly_training_queued', table: args.table, field: args.field, note: 'Configure anomaly detection models via ML Workbench.' };
210
+ }
211
+ case 'ml_evaluate_model': {
212
+ if (!args.model_sys_id)
213
+ throw new ServiceNowError('model_sys_id is required', 'INVALID_REQUEST');
214
+ const model = await client.getRecord('ml_solution', args.model_sys_id);
215
+ return { name: model.name, type: model.solution_type, training_status: model.training_status, accuracy: model.accuracy, last_trained: model.last_trained, total_records_trained: model.training_record_count, active: model.active };
216
+ }
217
+ case 'ml_model_training_history': {
218
+ if (!args.model_sys_id)
219
+ throw new ServiceNowError('model_sys_id is required', 'INVALID_REQUEST');
220
+ const days = args.days || 90;
221
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 19).replace('T', ' ');
222
+ const runs = await client.queryRecords({ table: 'ml_solution_version', query: `solution=${args.model_sys_id}^sys_created_on>=${since}`, limit: 50, fields: 'sys_id,version,accuracy,training_status,sys_created_on' });
223
+ return { model_sys_id: args.model_sys_id, period_days: days, training_runs: runs.records };
224
+ }
225
+ case 'ml_virtual_agent_nlu': {
226
+ const days = args.days || 30;
227
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 19).replace('T', ' ');
228
+ let query = `sys_created_on>=${since}`;
229
+ if (args.topic_sys_id)
230
+ query += `^topic=${args.topic_sys_id}`;
231
+ const conversations = await client.queryRecords({ table: 'sys_cs_conversation', query, limit: 500, fields: 'state,topic,sys_created_on' });
232
+ const total = conversations.count;
233
+ const completed = conversations.records.filter((r) => r.state === 'completed' || r.state === 'resolved').length;
234
+ return { period_days: days, total_conversations: total, completed, completion_rate: total > 0 ? `${Math.round((completed / total) * 100)}%` : 'N/A' };
235
+ }
236
+ case 'ml_process_optimization': {
237
+ if (!args.table)
238
+ throw new ServiceNowError('table is required', 'INVALID_REQUEST');
239
+ const days = args.days || 90;
240
+ const since = new Date(Date.now() - days * 86400000).toISOString().slice(0, 19).replace('T', ' ');
241
+ const resp = await client.queryRecords({ table: args.table, query: `sys_created_on>=${since}^stateIN6,7`, limit: 1000, fields: 'reassignment_count,sys_created_on,resolved_at,assignment_group,priority' });
242
+ const durations = resp.records.map((r) => { const c = new Date(r.sys_created_on).getTime(); const re = new Date(r.resolved_at).getTime(); return (re - c) / 3600000; }).filter((d) => d > 0);
243
+ const avgDuration = durations.length > 0 ? durations.reduce((a, b) => a + b, 0) / durations.length : 0;
244
+ const avgReassign = resp.records.reduce((sum, r) => sum + (parseInt(r.reassignment_count) || 0), 0) / (resp.count || 1);
245
+ return { table: args.table, period_days: days, resolved_records: resp.count, avg_resolution_hours: Math.round(avgDuration * 10) / 10, avg_reassignments: Math.round(avgReassign * 10) / 10, bottleneck_indicator: avgReassign > 2 ? 'HIGH' : avgReassign > 1 ? 'MODERATE' : 'LOW' };
246
+ }
247
+ default:
248
+ return null;
249
+ }
250
+ }
251
+ //# sourceMappingURL=ml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ml.js","sourceRoot":"","sources":["../../src/tools/ml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,352 @@
1
+ /**
2
+ * ServiceNow Mobile tools — mobile app configuration, layout management,
3
+ * push notifications, offline sync, and mobile analytics.
4
+ *
5
+ * ServiceNow tables: sys_sg_mobile_app_config, sys_sg_mobile_layout,
6
+ * sys_sg_mobile_applet, sys_sg_push_notification, sys_sg_offline_sync
7
+ */
8
+ import type { ServiceNowClient } from '../servicenow/client.js';
9
+ export declare function getMobileToolDefinitions(): ({
10
+ name: string;
11
+ description: string;
12
+ inputSchema: {
13
+ type: string;
14
+ properties: {
15
+ active: {
16
+ type: string;
17
+ description: string;
18
+ };
19
+ limit: {
20
+ type: string;
21
+ };
22
+ sys_id?: undefined;
23
+ name?: undefined;
24
+ description?: undefined;
25
+ branding_color?: undefined;
26
+ app_config?: undefined;
27
+ table?: undefined;
28
+ icon?: undefined;
29
+ type?: undefined;
30
+ query?: undefined;
31
+ max_records?: undefined;
32
+ user?: undefined;
33
+ group?: undefined;
34
+ title?: undefined;
35
+ body?: undefined;
36
+ action_url?: undefined;
37
+ days?: undefined;
38
+ };
39
+ required: never[];
40
+ };
41
+ } | {
42
+ name: string;
43
+ description: string;
44
+ inputSchema: {
45
+ type: string;
46
+ properties: {
47
+ sys_id: {
48
+ type: string;
49
+ description: string;
50
+ };
51
+ active?: undefined;
52
+ limit?: undefined;
53
+ name?: undefined;
54
+ description?: undefined;
55
+ branding_color?: undefined;
56
+ app_config?: undefined;
57
+ table?: undefined;
58
+ icon?: undefined;
59
+ type?: undefined;
60
+ query?: undefined;
61
+ max_records?: undefined;
62
+ user?: undefined;
63
+ group?: undefined;
64
+ title?: undefined;
65
+ body?: undefined;
66
+ action_url?: undefined;
67
+ days?: undefined;
68
+ };
69
+ required: string[];
70
+ };
71
+ } | {
72
+ name: string;
73
+ description: string;
74
+ inputSchema: {
75
+ type: string;
76
+ properties: {
77
+ name: {
78
+ type: string;
79
+ description: string;
80
+ };
81
+ description: {
82
+ type: string;
83
+ };
84
+ branding_color: {
85
+ type: string;
86
+ description: string;
87
+ };
88
+ active?: undefined;
89
+ limit?: undefined;
90
+ sys_id?: undefined;
91
+ app_config?: undefined;
92
+ table?: undefined;
93
+ icon?: undefined;
94
+ type?: undefined;
95
+ query?: undefined;
96
+ max_records?: undefined;
97
+ user?: undefined;
98
+ group?: undefined;
99
+ title?: undefined;
100
+ body?: undefined;
101
+ action_url?: undefined;
102
+ days?: undefined;
103
+ };
104
+ required: string[];
105
+ };
106
+ } | {
107
+ name: string;
108
+ description: string;
109
+ inputSchema: {
110
+ type: string;
111
+ properties: {
112
+ app_config: {
113
+ type: string;
114
+ description: string;
115
+ };
116
+ limit: {
117
+ type: string;
118
+ };
119
+ active?: undefined;
120
+ sys_id?: undefined;
121
+ name?: undefined;
122
+ description?: undefined;
123
+ branding_color?: undefined;
124
+ table?: undefined;
125
+ icon?: undefined;
126
+ type?: undefined;
127
+ query?: undefined;
128
+ max_records?: undefined;
129
+ user?: undefined;
130
+ group?: undefined;
131
+ title?: undefined;
132
+ body?: undefined;
133
+ action_url?: undefined;
134
+ days?: undefined;
135
+ };
136
+ required: never[];
137
+ };
138
+ } | {
139
+ name: string;
140
+ description: string;
141
+ inputSchema: {
142
+ type: string;
143
+ properties: {
144
+ name: {
145
+ type: string;
146
+ description: string;
147
+ };
148
+ table: {
149
+ type: string;
150
+ description: string;
151
+ };
152
+ icon: {
153
+ type: string;
154
+ description: string;
155
+ };
156
+ app_config: {
157
+ type: string;
158
+ description: string;
159
+ };
160
+ active?: undefined;
161
+ limit?: undefined;
162
+ sys_id?: undefined;
163
+ description?: undefined;
164
+ branding_color?: undefined;
165
+ type?: undefined;
166
+ query?: undefined;
167
+ max_records?: undefined;
168
+ user?: undefined;
169
+ group?: undefined;
170
+ title?: undefined;
171
+ body?: undefined;
172
+ action_url?: undefined;
173
+ days?: undefined;
174
+ };
175
+ required: string[];
176
+ };
177
+ } | {
178
+ name: string;
179
+ description: string;
180
+ inputSchema: {
181
+ type: string;
182
+ properties: {
183
+ limit: {
184
+ type: string;
185
+ };
186
+ active?: undefined;
187
+ sys_id?: undefined;
188
+ name?: undefined;
189
+ description?: undefined;
190
+ branding_color?: undefined;
191
+ app_config?: undefined;
192
+ table?: undefined;
193
+ icon?: undefined;
194
+ type?: undefined;
195
+ query?: undefined;
196
+ max_records?: undefined;
197
+ user?: undefined;
198
+ group?: undefined;
199
+ title?: undefined;
200
+ body?: undefined;
201
+ action_url?: undefined;
202
+ days?: undefined;
203
+ };
204
+ required: never[];
205
+ };
206
+ } | {
207
+ name: string;
208
+ description: string;
209
+ inputSchema: {
210
+ type: string;
211
+ properties: {
212
+ name: {
213
+ type: string;
214
+ description: string;
215
+ };
216
+ table: {
217
+ type: string;
218
+ description: string;
219
+ };
220
+ type: {
221
+ type: string;
222
+ description: string;
223
+ };
224
+ active?: undefined;
225
+ limit?: undefined;
226
+ sys_id?: undefined;
227
+ description?: undefined;
228
+ branding_color?: undefined;
229
+ app_config?: undefined;
230
+ icon?: undefined;
231
+ query?: undefined;
232
+ max_records?: undefined;
233
+ user?: undefined;
234
+ group?: undefined;
235
+ title?: undefined;
236
+ body?: undefined;
237
+ action_url?: undefined;
238
+ days?: undefined;
239
+ };
240
+ required: string[];
241
+ };
242
+ } | {
243
+ name: string;
244
+ description: string;
245
+ inputSchema: {
246
+ type: string;
247
+ properties: {
248
+ table: {
249
+ type: string;
250
+ description: string;
251
+ };
252
+ query: {
253
+ type: string;
254
+ description: string;
255
+ };
256
+ max_records: {
257
+ type: string;
258
+ description: string;
259
+ };
260
+ active?: undefined;
261
+ limit?: undefined;
262
+ sys_id?: undefined;
263
+ name?: undefined;
264
+ description?: undefined;
265
+ branding_color?: undefined;
266
+ app_config?: undefined;
267
+ icon?: undefined;
268
+ type?: undefined;
269
+ user?: undefined;
270
+ group?: undefined;
271
+ title?: undefined;
272
+ body?: undefined;
273
+ action_url?: undefined;
274
+ days?: undefined;
275
+ };
276
+ required: string[];
277
+ };
278
+ } | {
279
+ name: string;
280
+ description: string;
281
+ inputSchema: {
282
+ type: string;
283
+ properties: {
284
+ user: {
285
+ type: string;
286
+ description: string;
287
+ };
288
+ group: {
289
+ type: string;
290
+ description: string;
291
+ };
292
+ title: {
293
+ type: string;
294
+ description: string;
295
+ };
296
+ body: {
297
+ type: string;
298
+ description: string;
299
+ };
300
+ action_url: {
301
+ type: string;
302
+ description: string;
303
+ };
304
+ active?: undefined;
305
+ limit?: undefined;
306
+ sys_id?: undefined;
307
+ name?: undefined;
308
+ description?: undefined;
309
+ branding_color?: undefined;
310
+ app_config?: undefined;
311
+ table?: undefined;
312
+ icon?: undefined;
313
+ type?: undefined;
314
+ query?: undefined;
315
+ max_records?: undefined;
316
+ days?: undefined;
317
+ };
318
+ required: string[];
319
+ };
320
+ } | {
321
+ name: string;
322
+ description: string;
323
+ inputSchema: {
324
+ type: string;
325
+ properties: {
326
+ days: {
327
+ type: string;
328
+ description: string;
329
+ };
330
+ active?: undefined;
331
+ limit?: undefined;
332
+ sys_id?: undefined;
333
+ name?: undefined;
334
+ description?: undefined;
335
+ branding_color?: undefined;
336
+ app_config?: undefined;
337
+ table?: undefined;
338
+ icon?: undefined;
339
+ type?: undefined;
340
+ query?: undefined;
341
+ max_records?: undefined;
342
+ user?: undefined;
343
+ group?: undefined;
344
+ title?: undefined;
345
+ body?: undefined;
346
+ action_url?: undefined;
347
+ };
348
+ required: never[];
349
+ };
350
+ })[];
351
+ export declare function executeMobileToolCall(client: ServiceNowClient, name: string, args: Record<string, any>): Promise<any>;
352
+ //# sourceMappingURL=mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/tools/mobile.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDvC;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CA0Dd"}