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 @@
1
+ {"version":3,"file":"hrsd.d.ts","sourceRoot":"","sources":["../../src/tools/hrsd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmNrC;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAyId"}
@@ -0,0 +1,377 @@
1
+ import { ServiceNowError } from '../utils/errors.js';
2
+ import { requireWrite } from '../utils/permissions.js';
3
+ export function getHrsdToolDefinitions() {
4
+ return [
5
+ {
6
+ name: 'create_hr_case',
7
+ description: 'Create a new HR Service Delivery case (requires WRITE_ENABLED=true)',
8
+ inputSchema: {
9
+ type: 'object',
10
+ properties: {
11
+ short_description: { type: 'string', description: 'Brief description of the HR request' },
12
+ hr_service: { type: 'string', description: 'HR service sys_id or name (e.g. "Onboarding", "Offboarding")' },
13
+ subject_person: { type: 'string', description: 'User sys_id or username the case is about' },
14
+ description: { type: 'string', description: 'Full details of the HR request' },
15
+ assignment_group: { type: 'string', description: 'HR assignment group name or sys_id' },
16
+ priority: { type: 'number', description: '1=Critical, 2=High, 3=Moderate, 4=Low' },
17
+ },
18
+ required: ['short_description', 'hr_service'],
19
+ },
20
+ },
21
+ {
22
+ name: 'get_hr_case',
23
+ description: 'Get full details of an HR case by number (e.g. HRCS0001234) or sys_id',
24
+ inputSchema: {
25
+ type: 'object',
26
+ properties: {
27
+ number_or_sysid: { type: 'string', description: 'HR case number (HRCS...) or sys_id' },
28
+ },
29
+ required: ['number_or_sysid'],
30
+ },
31
+ },
32
+ {
33
+ name: 'update_hr_case',
34
+ description: 'Update fields on an existing HR case (requires WRITE_ENABLED=true)',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ sys_id: { type: 'string', description: 'System ID of the HR case' },
39
+ fields: { type: 'object', description: 'Key-value pairs to update' },
40
+ },
41
+ required: ['sys_id', 'fields'],
42
+ },
43
+ },
44
+ {
45
+ name: 'list_hr_cases',
46
+ description: 'List HR cases with optional filters (status, subject person, service)',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ state: { type: 'string', description: 'Filter by state: open, work_in_progress, closed_complete, closed_incomplete' },
51
+ subject_person: { type: 'string', description: 'User sys_id or username to filter by' },
52
+ hr_service: { type: 'string', description: 'HR service name or sys_id' },
53
+ limit: { type: 'number', description: 'Max records to return (default 25)' },
54
+ query: { type: 'string', description: 'Additional encoded query string' },
55
+ },
56
+ required: [],
57
+ },
58
+ },
59
+ {
60
+ name: 'close_hr_case',
61
+ description: 'Close an HR case with resolution notes (requires WRITE_ENABLED=true)',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ sys_id: { type: 'string', description: 'System ID of the HR case' },
66
+ close_notes: { type: 'string', description: 'Resolution or closure notes' },
67
+ close_code: { type: 'string', description: 'Closure code (e.g., "Resolved", "Withdrawn")' },
68
+ },
69
+ required: ['sys_id', 'close_notes'],
70
+ },
71
+ },
72
+ {
73
+ name: 'list_hr_services',
74
+ description: 'List available HR services (Onboarding, Offboarding, Benefits, Payroll, etc.)',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ active: { type: 'boolean', description: 'Filter to active services only (default true)' },
79
+ query: { type: 'string', description: 'Filter by name or description' },
80
+ limit: { type: 'number', description: 'Max records to return (default 50)' },
81
+ },
82
+ required: [],
83
+ },
84
+ },
85
+ {
86
+ name: 'get_hr_service',
87
+ description: 'Get details of a specific HR service including its tasks and SLAs',
88
+ inputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ sys_id_or_name: { type: 'string', description: 'HR service sys_id or exact name' },
92
+ },
93
+ required: ['sys_id_or_name'],
94
+ },
95
+ },
96
+ {
97
+ name: 'get_hr_profile',
98
+ description: 'Get the HR profile for a user (employment details, department, manager)',
99
+ inputSchema: {
100
+ type: 'object',
101
+ properties: {
102
+ user_identifier: { type: 'string', description: 'Username, email, or sys_id of the user' },
103
+ },
104
+ required: ['user_identifier'],
105
+ },
106
+ },
107
+ {
108
+ name: 'update_hr_profile',
109
+ description: 'Update HR profile fields for a user (requires WRITE_ENABLED=true)',
110
+ inputSchema: {
111
+ type: 'object',
112
+ properties: {
113
+ user_sys_id: { type: 'string', description: 'sys_id of the user whose profile to update' },
114
+ fields: { type: 'object', description: 'HR profile fields to update (e.g., {"department": "Engineering"})' },
115
+ },
116
+ required: ['user_sys_id', 'fields'],
117
+ },
118
+ },
119
+ {
120
+ name: 'list_hr_tasks',
121
+ description: 'List HR tasks associated with an HR case',
122
+ inputSchema: {
123
+ type: 'object',
124
+ properties: {
125
+ hr_case_sysid: { type: 'string', description: 'sys_id of the parent HR case' },
126
+ state: { type: 'string', description: 'Filter by task state (open, closed)' },
127
+ },
128
+ required: ['hr_case_sysid'],
129
+ },
130
+ },
131
+ {
132
+ name: 'create_hr_task',
133
+ description: 'Create a task within an HR case (requires WRITE_ENABLED=true)',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ hr_case_sysid: { type: 'string', description: 'sys_id of the parent HR case' },
138
+ short_description: { type: 'string', description: 'Brief description of the task' },
139
+ assigned_to: { type: 'string', description: 'User sys_id or username to assign the task to' },
140
+ due_date: { type: 'string', description: 'Due date in ISO 8601 format' },
141
+ },
142
+ required: ['hr_case_sysid', 'short_description'],
143
+ },
144
+ },
145
+ {
146
+ name: 'get_hr_case_activity',
147
+ description: 'Get the full activity log and journal entries for an HR case',
148
+ inputSchema: {
149
+ type: 'object',
150
+ properties: {
151
+ hr_case_sysid: { type: 'string', description: 'sys_id of the HR case' },
152
+ },
153
+ required: ['hr_case_sysid'],
154
+ },
155
+ },
156
+ // ─── Onboarding / Offboarding ─────────────────────────────────────
157
+ {
158
+ name: 'create_onboarding_case',
159
+ description: 'Create an employee onboarding case with all standard tasks. **[Write]**',
160
+ inputSchema: {
161
+ type: 'object',
162
+ properties: {
163
+ employee_sys_id: { type: 'string', description: 'New employee user sys_id' },
164
+ start_date: { type: 'string', description: 'Start date (ISO 8601)' },
165
+ department: { type: 'string', description: 'Department name or sys_id' },
166
+ manager: { type: 'string', description: 'Manager user sys_id' },
167
+ location: { type: 'string', description: 'Office location' },
168
+ job_title: { type: 'string', description: 'Job title' },
169
+ },
170
+ required: ['employee_sys_id', 'start_date'],
171
+ },
172
+ },
173
+ {
174
+ name: 'create_offboarding_case',
175
+ description: 'Create an employee offboarding case with exit tasks. **[Write]**',
176
+ inputSchema: {
177
+ type: 'object',
178
+ properties: {
179
+ employee_sys_id: { type: 'string', description: 'Departing employee user sys_id' },
180
+ last_day: { type: 'string', description: 'Last working day (ISO 8601)' },
181
+ reason: { type: 'string', description: 'Offboarding reason (resignation, termination, retirement)' },
182
+ manager: { type: 'string', description: 'Manager user sys_id' },
183
+ },
184
+ required: ['employee_sys_id', 'last_day'],
185
+ },
186
+ },
187
+ {
188
+ name: 'get_hr_lifecycle_events',
189
+ description: 'Get HR lifecycle events for an employee (promotions, transfers, leaves)',
190
+ inputSchema: {
191
+ type: 'object',
192
+ properties: {
193
+ employee_sys_id: { type: 'string', description: 'Employee user sys_id' },
194
+ event_type: { type: 'string', description: 'Filter by type: promotion, transfer, leave, onboarding, offboarding' },
195
+ limit: { type: 'number', description: 'Max records (default 25)' },
196
+ },
197
+ required: ['employee_sys_id'],
198
+ },
199
+ },
200
+ {
201
+ name: 'list_hr_document_templates',
202
+ description: 'List available HR document templates (offer letters, contracts, policies)',
203
+ inputSchema: {
204
+ type: 'object',
205
+ properties: {
206
+ category: { type: 'string', description: 'Filter by category: onboarding, offboarding, benefits, policy' },
207
+ active: { type: 'boolean', description: 'Filter active only (default true)' },
208
+ limit: { type: 'number', description: 'Max records (default 25)' },
209
+ },
210
+ required: [],
211
+ },
212
+ },
213
+ ];
214
+ }
215
+ export async function executeHrsdToolCall(client, name, args) {
216
+ switch (name) {
217
+ case 'create_hr_case': {
218
+ requireWrite();
219
+ if (!args.short_description || !args.hr_service)
220
+ throw new ServiceNowError('short_description and hr_service are required', 'INVALID_REQUEST');
221
+ const payload = { ...args };
222
+ const result = await client.createRecord('sn_hr_core_case', payload);
223
+ return { ...result, summary: `Created HR case ${result.number || result.sys_id}` };
224
+ }
225
+ case 'get_hr_case': {
226
+ if (!args.number_or_sysid)
227
+ throw new ServiceNowError('number_or_sysid is required', 'INVALID_REQUEST');
228
+ if (/^[0-9a-f]{32}$/i.test(args.number_or_sysid)) {
229
+ return await client.getRecord('sn_hr_core_case', args.number_or_sysid);
230
+ }
231
+ const resp = await client.queryRecords({ table: 'sn_hr_core_case', query: `number=${args.number_or_sysid}`, limit: 1 });
232
+ if (resp.count === 0)
233
+ throw new ServiceNowError(`HR case not found: ${args.number_or_sysid}`, 'NOT_FOUND');
234
+ return resp.records[0];
235
+ }
236
+ case 'update_hr_case': {
237
+ requireWrite();
238
+ if (!args.sys_id || !args.fields)
239
+ throw new ServiceNowError('sys_id and fields are required', 'INVALID_REQUEST');
240
+ const result = await client.updateRecord('sn_hr_core_case', args.sys_id, args.fields);
241
+ return { ...result, summary: `Updated HR case ${args.sys_id}` };
242
+ }
243
+ case 'list_hr_cases': {
244
+ const parts = [];
245
+ if (args.state)
246
+ parts.push(`state=${args.state}`);
247
+ if (args.subject_person)
248
+ parts.push(`subject_person.user_name=${args.subject_person}`);
249
+ if (args.hr_service)
250
+ parts.push(`hr_service.name=${args.hr_service}`);
251
+ if (args.query)
252
+ parts.push(args.query);
253
+ const resp = await client.queryRecords({ table: 'sn_hr_core_case', query: parts.join('^') || '', limit: args.limit ?? 25 });
254
+ return resp;
255
+ }
256
+ case 'close_hr_case': {
257
+ requireWrite();
258
+ if (!args.sys_id || !args.close_notes)
259
+ throw new ServiceNowError('sys_id and close_notes are required', 'INVALID_REQUEST');
260
+ const result = await client.updateRecord('sn_hr_core_case', args.sys_id, {
261
+ state: 'closed_complete',
262
+ close_notes: args.close_notes,
263
+ ...(args.close_code ? { close_code: args.close_code } : {}),
264
+ });
265
+ return { ...result, summary: `Closed HR case ${args.sys_id}` };
266
+ }
267
+ case 'list_hr_services': {
268
+ const q = args.query ? `nameCONTAINS${args.query}^ORdescriptionCONTAINS${args.query}` : '';
269
+ const active = args.active !== false ? 'active=true^' : '';
270
+ const resp = await client.queryRecords({ table: 'sn_hr_core_service', query: `${active}${q}`, limit: args.limit ?? 50 });
271
+ return resp;
272
+ }
273
+ case 'get_hr_service': {
274
+ if (!args.sys_id_or_name)
275
+ throw new ServiceNowError('sys_id_or_name is required', 'INVALID_REQUEST');
276
+ if (/^[0-9a-f]{32}$/i.test(args.sys_id_or_name)) {
277
+ return await client.getRecord('sn_hr_core_service', args.sys_id_or_name);
278
+ }
279
+ const resp = await client.queryRecords({ table: 'sn_hr_core_service', query: `name=${args.sys_id_or_name}`, limit: 1 });
280
+ if (resp.count === 0)
281
+ throw new ServiceNowError(`HR service not found: ${args.sys_id_or_name}`, 'NOT_FOUND');
282
+ return resp.records[0];
283
+ }
284
+ case 'get_hr_profile': {
285
+ if (!args.user_identifier)
286
+ throw new ServiceNowError('user_identifier is required', 'INVALID_REQUEST');
287
+ const userQ = /^[0-9a-f]{32}$/i.test(args.user_identifier)
288
+ ? `user=${args.user_identifier}`
289
+ : `user.user_name=${args.user_identifier}`;
290
+ const resp = await client.queryRecords({ table: 'sn_hr_core_profile', query: userQ, limit: 1 });
291
+ if (resp.count === 0)
292
+ throw new ServiceNowError(`HR profile not found for: ${args.user_identifier}`, 'NOT_FOUND');
293
+ return resp.records[0];
294
+ }
295
+ case 'update_hr_profile': {
296
+ requireWrite();
297
+ if (!args.user_sys_id || !args.fields)
298
+ throw new ServiceNowError('user_sys_id and fields are required', 'INVALID_REQUEST');
299
+ const profileResp = await client.queryRecords({ table: 'sn_hr_core_profile', query: `user=${args.user_sys_id}`, limit: 1 });
300
+ if (profileResp.count === 0)
301
+ throw new ServiceNowError(`No HR profile found for user ${args.user_sys_id}`, 'NOT_FOUND');
302
+ const profileSysId = String(profileResp.records[0].sys_id);
303
+ const result = await client.updateRecord('sn_hr_core_profile', profileSysId, args.fields);
304
+ return { ...result, summary: `Updated HR profile for user ${args.user_sys_id}` };
305
+ }
306
+ case 'list_hr_tasks': {
307
+ if (!args.hr_case_sysid)
308
+ throw new ServiceNowError('hr_case_sysid is required', 'INVALID_REQUEST');
309
+ const q = `parent=${args.hr_case_sysid}${args.state ? `^state=${args.state}` : ''}`;
310
+ return await client.queryRecords({ table: 'sn_hr_core_task', query: q, limit: 50 });
311
+ }
312
+ case 'create_hr_task': {
313
+ requireWrite();
314
+ if (!args.hr_case_sysid || !args.short_description)
315
+ throw new ServiceNowError('hr_case_sysid and short_description are required', 'INVALID_REQUEST');
316
+ const payload = { parent: args.hr_case_sysid, short_description: args.short_description };
317
+ if (args.assigned_to)
318
+ payload.assigned_to = args.assigned_to;
319
+ if (args.due_date)
320
+ payload.due_date = args.due_date;
321
+ const result = await client.createRecord('sn_hr_core_task', payload);
322
+ return { ...result, summary: `Created HR task ${result.number || result.sys_id}` };
323
+ }
324
+ case 'get_hr_case_activity': {
325
+ if (!args.hr_case_sysid)
326
+ throw new ServiceNowError('hr_case_sysid is required', 'INVALID_REQUEST');
327
+ return await client.queryRecords({ table: 'sys_journal_field', query: `element_id=${args.hr_case_sysid}`, limit: 100 });
328
+ }
329
+ case 'create_onboarding_case': {
330
+ requireWrite();
331
+ if (!args.employee_sys_id || !args.start_date)
332
+ throw new ServiceNowError('employee_sys_id and start_date are required', 'INVALID_REQUEST');
333
+ const result = await client.createRecord('sn_hr_core_case', {
334
+ short_description: `Employee Onboarding - ${args.start_date}`,
335
+ hr_service: 'Onboarding',
336
+ subject_person: args.employee_sys_id,
337
+ ...(args.department ? { department: args.department } : {}),
338
+ ...(args.manager ? { assigned_to: args.manager } : {}),
339
+ ...(args.location ? { location: args.location } : {}),
340
+ ...(args.job_title ? { u_job_title: args.job_title } : {}),
341
+ });
342
+ return { action: 'created', type: 'onboarding', ...result };
343
+ }
344
+ case 'create_offboarding_case': {
345
+ requireWrite();
346
+ if (!args.employee_sys_id || !args.last_day)
347
+ throw new ServiceNowError('employee_sys_id and last_day are required', 'INVALID_REQUEST');
348
+ const result = await client.createRecord('sn_hr_core_case', {
349
+ short_description: `Employee Offboarding - ${args.last_day}`,
350
+ hr_service: 'Offboarding',
351
+ subject_person: args.employee_sys_id,
352
+ ...(args.reason ? { u_offboarding_reason: args.reason } : {}),
353
+ ...(args.manager ? { assigned_to: args.manager } : {}),
354
+ });
355
+ return { action: 'created', type: 'offboarding', ...result };
356
+ }
357
+ case 'get_hr_lifecycle_events': {
358
+ if (!args.employee_sys_id)
359
+ throw new ServiceNowError('employee_sys_id is required', 'INVALID_REQUEST');
360
+ let query = `employee=${args.employee_sys_id}`;
361
+ if (args.event_type)
362
+ query += `^type=${args.event_type}`;
363
+ return await client.queryRecords({ table: 'sn_hr_le_lifecycle_event', query, limit: args.limit ?? 25 });
364
+ }
365
+ case 'list_hr_document_templates': {
366
+ const parts = [];
367
+ if (args.active !== false)
368
+ parts.push('active=true');
369
+ if (args.category)
370
+ parts.push(`category=${args.category}`);
371
+ return await client.queryRecords({ table: 'sn_hr_core_document_template', query: parts.join('^') || '', limit: args.limit ?? 25 });
372
+ }
373
+ default:
374
+ return null;
375
+ }
376
+ }
377
+ //# sourceMappingURL=hrsd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrsd.js","sourceRoot":"","sources":["../../src/tools/hrsd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Incident Management tools — full ITSM incident lifecycle.
3
+ * Read tools: Tier 0. Write tools: Tier 1 (WRITE_ENABLED=true).
4
+ */
5
+ import type { ServiceNowClient } from '../servicenow/client.js';
6
+ export declare function getIncidentToolDefinitions(): ({
7
+ name: string;
8
+ description: string;
9
+ inputSchema: {
10
+ type: string;
11
+ properties: {
12
+ short_description: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ urgency: {
17
+ type: string;
18
+ description: string;
19
+ };
20
+ impact: {
21
+ type: string;
22
+ description: string;
23
+ };
24
+ priority: {
25
+ type: string;
26
+ description: string;
27
+ };
28
+ description: {
29
+ type: string;
30
+ description: string;
31
+ };
32
+ assignment_group: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ caller_id: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ category: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ subcategory: {
45
+ type: string;
46
+ description: string;
47
+ };
48
+ number_or_sysid?: undefined;
49
+ sys_id?: undefined;
50
+ fields?: undefined;
51
+ resolution_code?: undefined;
52
+ resolution_notes?: undefined;
53
+ table?: undefined;
54
+ note?: undefined;
55
+ comment?: undefined;
56
+ };
57
+ required: string[];
58
+ };
59
+ } | {
60
+ name: string;
61
+ description: string;
62
+ inputSchema: {
63
+ type: string;
64
+ properties: {
65
+ number_or_sysid: {
66
+ type: string;
67
+ description: string;
68
+ };
69
+ short_description?: undefined;
70
+ urgency?: undefined;
71
+ impact?: undefined;
72
+ priority?: undefined;
73
+ description?: undefined;
74
+ assignment_group?: undefined;
75
+ caller_id?: undefined;
76
+ category?: undefined;
77
+ subcategory?: undefined;
78
+ sys_id?: undefined;
79
+ fields?: undefined;
80
+ resolution_code?: undefined;
81
+ resolution_notes?: undefined;
82
+ table?: undefined;
83
+ note?: undefined;
84
+ comment?: undefined;
85
+ };
86
+ required: string[];
87
+ };
88
+ } | {
89
+ name: string;
90
+ description: string;
91
+ inputSchema: {
92
+ type: string;
93
+ properties: {
94
+ sys_id: {
95
+ type: string;
96
+ description: string;
97
+ };
98
+ fields: {
99
+ type: string;
100
+ description: string;
101
+ };
102
+ short_description?: undefined;
103
+ urgency?: undefined;
104
+ impact?: undefined;
105
+ priority?: undefined;
106
+ description?: undefined;
107
+ assignment_group?: undefined;
108
+ caller_id?: undefined;
109
+ category?: undefined;
110
+ subcategory?: undefined;
111
+ number_or_sysid?: undefined;
112
+ resolution_code?: undefined;
113
+ resolution_notes?: undefined;
114
+ table?: undefined;
115
+ note?: undefined;
116
+ comment?: undefined;
117
+ };
118
+ required: string[];
119
+ };
120
+ } | {
121
+ name: string;
122
+ description: string;
123
+ inputSchema: {
124
+ type: string;
125
+ properties: {
126
+ sys_id: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ resolution_code: {
131
+ type: string;
132
+ description: string;
133
+ };
134
+ resolution_notes: {
135
+ type: string;
136
+ description: string;
137
+ };
138
+ short_description?: undefined;
139
+ urgency?: undefined;
140
+ impact?: undefined;
141
+ priority?: undefined;
142
+ description?: undefined;
143
+ assignment_group?: undefined;
144
+ caller_id?: undefined;
145
+ category?: undefined;
146
+ subcategory?: undefined;
147
+ number_or_sysid?: undefined;
148
+ fields?: undefined;
149
+ table?: undefined;
150
+ note?: undefined;
151
+ comment?: undefined;
152
+ };
153
+ required: string[];
154
+ };
155
+ } | {
156
+ name: string;
157
+ description: string;
158
+ inputSchema: {
159
+ type: string;
160
+ properties: {
161
+ sys_id: {
162
+ type: string;
163
+ description: string;
164
+ };
165
+ short_description?: undefined;
166
+ urgency?: undefined;
167
+ impact?: undefined;
168
+ priority?: undefined;
169
+ description?: undefined;
170
+ assignment_group?: undefined;
171
+ caller_id?: undefined;
172
+ category?: undefined;
173
+ subcategory?: undefined;
174
+ number_or_sysid?: undefined;
175
+ fields?: undefined;
176
+ resolution_code?: undefined;
177
+ resolution_notes?: undefined;
178
+ table?: undefined;
179
+ note?: undefined;
180
+ comment?: undefined;
181
+ };
182
+ required: string[];
183
+ };
184
+ } | {
185
+ name: string;
186
+ description: string;
187
+ inputSchema: {
188
+ type: string;
189
+ properties: {
190
+ table: {
191
+ type: string;
192
+ description: string;
193
+ };
194
+ sys_id: {
195
+ type: string;
196
+ description: string;
197
+ };
198
+ note: {
199
+ type: string;
200
+ description: string;
201
+ };
202
+ short_description?: undefined;
203
+ urgency?: undefined;
204
+ impact?: undefined;
205
+ priority?: undefined;
206
+ description?: undefined;
207
+ assignment_group?: undefined;
208
+ caller_id?: undefined;
209
+ category?: undefined;
210
+ subcategory?: undefined;
211
+ number_or_sysid?: undefined;
212
+ fields?: undefined;
213
+ resolution_code?: undefined;
214
+ resolution_notes?: undefined;
215
+ comment?: undefined;
216
+ };
217
+ required: string[];
218
+ };
219
+ } | {
220
+ name: string;
221
+ description: string;
222
+ inputSchema: {
223
+ type: string;
224
+ properties: {
225
+ table: {
226
+ type: string;
227
+ description: string;
228
+ };
229
+ sys_id: {
230
+ type: string;
231
+ description: string;
232
+ };
233
+ comment: {
234
+ type: string;
235
+ description: string;
236
+ };
237
+ short_description?: undefined;
238
+ urgency?: undefined;
239
+ impact?: undefined;
240
+ priority?: undefined;
241
+ description?: undefined;
242
+ assignment_group?: undefined;
243
+ caller_id?: undefined;
244
+ category?: undefined;
245
+ subcategory?: undefined;
246
+ number_or_sysid?: undefined;
247
+ fields?: undefined;
248
+ resolution_code?: undefined;
249
+ resolution_notes?: undefined;
250
+ note?: undefined;
251
+ };
252
+ required: string[];
253
+ };
254
+ })[];
255
+ export declare function executeIncidentToolCall(client: ServiceNowClient, name: string, args: Record<string, any>): Promise<any>;
256
+ //# sourceMappingURL=incident.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incident.d.ts","sourceRoot":"","sources":["../../src/tools/incident.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+FzC;AAGD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAwDd"}