nowaikit 2.5.3 → 3.0.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 (151) hide show
  1. package/dist/cli/index.js +89 -1
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/direct/executor.d.ts +28 -0
  4. package/dist/direct/executor.d.ts.map +1 -0
  5. package/dist/direct/executor.js +228 -0
  6. package/dist/direct/executor.js.map +1 -0
  7. package/dist/direct/llm-client.d.ts +32 -0
  8. package/dist/direct/llm-client.d.ts.map +1 -0
  9. package/dist/direct/llm-client.js +122 -0
  10. package/dist/direct/llm-client.js.map +1 -0
  11. package/dist/prompts/capabilities/build-app.d.ts +4 -0
  12. package/dist/prompts/capabilities/build-app.d.ts.map +1 -0
  13. package/dist/prompts/capabilities/build-app.js +238 -0
  14. package/dist/prompts/capabilities/build-app.js.map +1 -0
  15. package/dist/prompts/capabilities/build-business-rule.d.ts +4 -0
  16. package/dist/prompts/capabilities/build-business-rule.d.ts.map +1 -0
  17. package/dist/prompts/capabilities/build-business-rule.js +93 -0
  18. package/dist/prompts/capabilities/build-business-rule.js.map +1 -0
  19. package/dist/prompts/capabilities/build-catalog.d.ts +4 -0
  20. package/dist/prompts/capabilities/build-catalog.d.ts.map +1 -0
  21. package/dist/prompts/capabilities/build-catalog.js +350 -0
  22. package/dist/prompts/capabilities/build-catalog.js.map +1 -0
  23. package/dist/prompts/capabilities/build-client-script.d.ts +4 -0
  24. package/dist/prompts/capabilities/build-client-script.d.ts.map +1 -0
  25. package/dist/prompts/capabilities/build-client-script.js +157 -0
  26. package/dist/prompts/capabilities/build-client-script.js.map +1 -0
  27. package/dist/prompts/capabilities/build-flow.d.ts +4 -0
  28. package/dist/prompts/capabilities/build-flow.d.ts.map +1 -0
  29. package/dist/prompts/capabilities/build-flow.js +243 -0
  30. package/dist/prompts/capabilities/build-flow.js.map +1 -0
  31. package/dist/prompts/capabilities/build-portal.d.ts +4 -0
  32. package/dist/prompts/capabilities/build-portal.d.ts.map +1 -0
  33. package/dist/prompts/capabilities/build-portal.js +250 -0
  34. package/dist/prompts/capabilities/build-portal.js.map +1 -0
  35. package/dist/prompts/capabilities/build-rest-api.d.ts +4 -0
  36. package/dist/prompts/capabilities/build-rest-api.d.ts.map +1 -0
  37. package/dist/prompts/capabilities/build-rest-api.js +293 -0
  38. package/dist/prompts/capabilities/build-rest-api.js.map +1 -0
  39. package/dist/prompts/capabilities/build-test-plan.d.ts +4 -0
  40. package/dist/prompts/capabilities/build-test-plan.d.ts.map +1 -0
  41. package/dist/prompts/capabilities/build-test-plan.js +162 -0
  42. package/dist/prompts/capabilities/build-test-plan.js.map +1 -0
  43. package/dist/prompts/capabilities/build-uib.d.ts +4 -0
  44. package/dist/prompts/capabilities/build-uib.d.ts.map +1 -0
  45. package/dist/prompts/capabilities/build-uib.js +309 -0
  46. package/dist/prompts/capabilities/build-uib.js.map +1 -0
  47. package/dist/prompts/capabilities/docs-app.d.ts +4 -0
  48. package/dist/prompts/capabilities/docs-app.d.ts.map +1 -0
  49. package/dist/prompts/capabilities/docs-app.js +234 -0
  50. package/dist/prompts/capabilities/docs-app.js.map +1 -0
  51. package/dist/prompts/capabilities/docs-release.d.ts +4 -0
  52. package/dist/prompts/capabilities/docs-release.d.ts.map +1 -0
  53. package/dist/prompts/capabilities/docs-release.js +197 -0
  54. package/dist/prompts/capabilities/docs-release.js.map +1 -0
  55. package/dist/prompts/capabilities/docs-runbook.d.ts +4 -0
  56. package/dist/prompts/capabilities/docs-runbook.d.ts.map +1 -0
  57. package/dist/prompts/capabilities/docs-runbook.js +223 -0
  58. package/dist/prompts/capabilities/docs-runbook.js.map +1 -0
  59. package/dist/prompts/capabilities/docs-script.d.ts +4 -0
  60. package/dist/prompts/capabilities/docs-script.d.ts.map +1 -0
  61. package/dist/prompts/capabilities/docs-script.js +242 -0
  62. package/dist/prompts/capabilities/docs-script.js.map +1 -0
  63. package/dist/prompts/capabilities/ops-deploy.d.ts +4 -0
  64. package/dist/prompts/capabilities/ops-deploy.d.ts.map +1 -0
  65. package/dist/prompts/capabilities/ops-deploy.js +193 -0
  66. package/dist/prompts/capabilities/ops-deploy.js.map +1 -0
  67. package/dist/prompts/capabilities/ops-risk.d.ts +4 -0
  68. package/dist/prompts/capabilities/ops-risk.d.ts.map +1 -0
  69. package/dist/prompts/capabilities/ops-risk.js +227 -0
  70. package/dist/prompts/capabilities/ops-risk.js.map +1 -0
  71. package/dist/prompts/capabilities/ops-triage.d.ts +4 -0
  72. package/dist/prompts/capabilities/ops-triage.d.ts.map +1 -0
  73. package/dist/prompts/capabilities/ops-triage.js +183 -0
  74. package/dist/prompts/capabilities/ops-triage.js.map +1 -0
  75. package/dist/prompts/capabilities/review-acls.d.ts +4 -0
  76. package/dist/prompts/capabilities/review-acls.d.ts.map +1 -0
  77. package/dist/prompts/capabilities/review-acls.js +142 -0
  78. package/dist/prompts/capabilities/review-acls.js.map +1 -0
  79. package/dist/prompts/capabilities/review-code.d.ts +4 -0
  80. package/dist/prompts/capabilities/review-code.d.ts.map +1 -0
  81. package/dist/prompts/capabilities/review-code.js +155 -0
  82. package/dist/prompts/capabilities/review-code.js.map +1 -0
  83. package/dist/prompts/capabilities/review-flows.d.ts +4 -0
  84. package/dist/prompts/capabilities/review-flows.d.ts.map +1 -0
  85. package/dist/prompts/capabilities/review-flows.js +413 -0
  86. package/dist/prompts/capabilities/review-flows.js.map +1 -0
  87. package/dist/prompts/capabilities/review-scripts.d.ts +4 -0
  88. package/dist/prompts/capabilities/review-scripts.d.ts.map +1 -0
  89. package/dist/prompts/capabilities/review-scripts.js +160 -0
  90. package/dist/prompts/capabilities/review-scripts.js.map +1 -0
  91. package/dist/prompts/capabilities/scan-automation.d.ts +4 -0
  92. package/dist/prompts/capabilities/scan-automation.d.ts.map +1 -0
  93. package/dist/prompts/capabilities/scan-automation.js +449 -0
  94. package/dist/prompts/capabilities/scan-automation.js.map +1 -0
  95. package/dist/prompts/capabilities/scan-cmdb.d.ts +4 -0
  96. package/dist/prompts/capabilities/scan-cmdb.d.ts.map +1 -0
  97. package/dist/prompts/capabilities/scan-cmdb.js +450 -0
  98. package/dist/prompts/capabilities/scan-cmdb.js.map +1 -0
  99. package/dist/prompts/capabilities/scan-debt.d.ts +4 -0
  100. package/dist/prompts/capabilities/scan-debt.d.ts.map +1 -0
  101. package/dist/prompts/capabilities/scan-debt.js +287 -0
  102. package/dist/prompts/capabilities/scan-debt.js.map +1 -0
  103. package/dist/prompts/capabilities/scan-health.d.ts +4 -0
  104. package/dist/prompts/capabilities/scan-health.d.ts.map +1 -0
  105. package/dist/prompts/capabilities/scan-health.js +235 -0
  106. package/dist/prompts/capabilities/scan-health.js.map +1 -0
  107. package/dist/prompts/capabilities/scan-security.d.ts +4 -0
  108. package/dist/prompts/capabilities/scan-security.d.ts.map +1 -0
  109. package/dist/prompts/capabilities/scan-security.js +370 -0
  110. package/dist/prompts/capabilities/scan-security.js.map +1 -0
  111. package/dist/prompts/capabilities/scan-upgrade.d.ts +4 -0
  112. package/dist/prompts/capabilities/scan-upgrade.d.ts.map +1 -0
  113. package/dist/prompts/capabilities/scan-upgrade.js +327 -0
  114. package/dist/prompts/capabilities/scan-upgrade.js.map +1 -0
  115. package/dist/prompts/index.d.ts +24 -2
  116. package/dist/prompts/index.d.ts.map +1 -1
  117. package/dist/prompts/index.js +160 -14
  118. package/dist/prompts/index.js.map +1 -1
  119. package/dist/prompts/knowledge.d.ts +10 -0
  120. package/dist/prompts/knowledge.d.ts.map +1 -0
  121. package/dist/prompts/knowledge.js +604 -0
  122. package/dist/prompts/knowledge.js.map +1 -0
  123. package/dist/prompts/types.d.ts +38 -0
  124. package/dist/prompts/types.d.ts.map +1 -0
  125. package/dist/prompts/types.js +8 -0
  126. package/dist/prompts/types.js.map +1 -0
  127. package/dist/server.js +3 -3
  128. package/dist/server.js.map +1 -1
  129. package/dist/servicenow/client.d.ts +15 -0
  130. package/dist/servicenow/client.d.ts.map +1 -1
  131. package/dist/servicenow/client.js +107 -0
  132. package/dist/servicenow/client.js.map +1 -1
  133. package/dist/tools/core.d.ts +68 -0
  134. package/dist/tools/core.d.ts.map +1 -1
  135. package/dist/tools/core.js +58 -0
  136. package/dist/tools/core.js.map +1 -1
  137. package/dist/tools/fluent.d.ts +161 -0
  138. package/dist/tools/fluent.d.ts.map +1 -0
  139. package/dist/tools/fluent.js +277 -0
  140. package/dist/tools/fluent.js.map +1 -0
  141. package/dist/tools/index.d.ts +214 -0
  142. package/dist/tools/index.d.ts.map +1 -1
  143. package/dist/tools/index.js +12 -6
  144. package/dist/tools/index.js.map +1 -1
  145. package/dist/tools/now-assist.d.ts.map +1 -1
  146. package/dist/tools/now-assist.js +8 -0
  147. package/dist/tools/now-assist.js.map +1 -1
  148. package/dist/tools/script.d.ts.map +1 -1
  149. package/dist/tools/script.js +12 -0
  150. package/dist/tools/script.js.map +1 -1
  151. package/package.json +11 -3
@@ -0,0 +1,287 @@
1
+ const capability = {
2
+ name: 'scan-debt',
3
+ title: 'Technical Debt Analysis',
4
+ description: 'Find dead code, unused scripts, duplicate logic, stale configurations across ALL artifact types',
5
+ category: 'scan',
6
+ arguments: [
7
+ {
8
+ name: 'scope',
9
+ description: 'Scope of analysis: "instance" (default) for full scan, or a specific table/app name',
10
+ required: false,
11
+ },
12
+ ],
13
+ recommendedTools: [
14
+ 'list_business_rules',
15
+ 'list_script_includes',
16
+ 'list_client_scripts',
17
+ 'list_ui_policies',
18
+ 'list_ui_actions',
19
+ 'query_records',
20
+ 'list_update_sets',
21
+ 'list_scheduled_jobs',
22
+ 'list_flows',
23
+ ],
24
+ buildPrompt(args) {
25
+ const scope = args?.scope ?? 'instance';
26
+ const isFullInstance = scope === 'instance';
27
+ const scopeLabel = isFullInstance
28
+ ? 'Full instance technical debt analysis'
29
+ : `Technical debt analysis for \`${scope}\``;
30
+ // ─── Inactive / Disabled Artifacts ────────────────────────────────────────
31
+ const inactiveSection = [
32
+ '## 1. Inactive & Disabled Artifacts',
33
+ '',
34
+ 'Scan ALL artifact types for inactive/disabled items that are candidates for removal:',
35
+ '',
36
+ 'Use `list_business_rules`, `list_client_scripts`, `list_ui_policies`, `list_ui_actions`,',
37
+ '`list_scheduled_jobs`, `list_flows`, and `query_records` to find:',
38
+ '',
39
+ '- **Business Rules** (`sys_script`) \u2014 `active=false`; note last modified date',
40
+ '- **Client Scripts** (`sys_script_client`) \u2014 `active=false`',
41
+ '- **UI Policies** (`sys_ui_policy`) \u2014 `active=false`',
42
+ '- **UI Actions** (`sys_ui_action`) \u2014 `active=false`',
43
+ '- **Scheduled Jobs** (`sysauto_script`) \u2014 `active=false`',
44
+ '- **Flows** (`sys_hub_flow`) \u2014 `active=false` or draft state',
45
+ '- **Workflows** (`wf_workflow`) \u2014 `active=false` (legacy)',
46
+ '- **Script Includes** (`sys_script_include`) \u2014 `active=false`',
47
+ '- **Notifications** (`sysevent_email_action`) \u2014 `active=false`',
48
+ '- **ACLs** (`sys_security_acl`) \u2014 `active=false`',
49
+ '- **Transform Maps** (`sys_transform_map`) \u2014 `active=false`',
50
+ '- **Data Sources** (`sys_data_source`) \u2014 `active=false`',
51
+ '',
52
+ 'For each, note: name, table, last modified, last modified by, inactive duration.',
53
+ 'Flag items inactive for > 90 days as safe removal candidates.',
54
+ '',
55
+ '**Output:** Count per artifact type + detailed list sorted by inactive duration',
56
+ ];
57
+ // ─── Unused Script Includes ───────────────────────────────────────────────
58
+ const unusedScriptsSection = [
59
+ '## 2. Unreferenced Script Includes',
60
+ '',
61
+ 'Use `list_script_includes` and `query_records` to identify Script Includes not referenced',
62
+ 'by any other artifact:',
63
+ '',
64
+ '- Get all active Script Includes (name and API name)',
65
+ '- For each, search across these artifact types for references to its name:',
66
+ ' - Business Rules scripts',
67
+ ' - Other Script Includes',
68
+ ' - Client Scripts (GlideAjax calls)',
69
+ ' - Fix Scripts',
70
+ ' - Scheduled Jobs',
71
+ ' - Flow Designer script steps',
72
+ ' - Workflow run-script activities',
73
+ ' - REST message scripts',
74
+ ' - Transform map scripts',
75
+ '',
76
+ 'A Script Include with zero references is likely dead code.',
77
+ '',
78
+ 'NOTE: Some SIs are invoked dynamically (`GlideEvaluator`, `gs.include()`). Flag these',
79
+ 'as "possibly unused" rather than "confirmed unused".',
80
+ '',
81
+ '**Output:** List of unreferenced Script Includes with creation date and last update',
82
+ ];
83
+ // ─── Duplicate Artifacts ──────────────────────────────────────────────────
84
+ const duplicateSection = [
85
+ '## 3. Duplicate & Redundant Artifacts',
86
+ '',
87
+ 'Use `query_records` to find duplicates across artifact types:',
88
+ '',
89
+ '- **Duplicate ACLs:** same table + operation + role combination',
90
+ '- **Duplicate Business Rules:** same table + when + order with similar script bodies',
91
+ '- **Overlapping Client Scripts:** same table + type (onChange/onLoad) on same field',
92
+ '- **Redundant UI Policies:** same table with conflicting or identical conditions',
93
+ '- **Duplicate Scheduled Jobs:** similar names and scripts running on overlapping schedules',
94
+ '- **Overlapping Notifications:** same event + table + conditions',
95
+ '',
96
+ 'For script-based duplicates, compare script content for > 80% similarity.',
97
+ '',
98
+ '**Output:** Duplicate pairs/groups with recommendation on which to keep',
99
+ ];
100
+ // ─── Stale Update Sets ────────────────────────────────────────────────────
101
+ const staleUpdateSetsSection = [
102
+ '## 4. Stale Update Sets',
103
+ '',
104
+ 'Use `list_update_sets` and `query_records` on `sys_update_set` to find:',
105
+ '',
106
+ '- Update sets in "in progress" state for > 30 days',
107
+ '- Update sets with 0 customer updates (empty)',
108
+ '- Update sets created by users who have since left (inactive users)',
109
+ '- Batch parent update sets with incomplete children',
110
+ '- Update sets with naming that suggests they are test/temporary',
111
+ '',
112
+ '**Output:** Stale update set inventory with age, owner, and update count',
113
+ ];
114
+ // ─── Empty / Stub Scripts ─────────────────────────────────────────────────
115
+ const emptyScriptSection = [
116
+ '## 5. Empty & Stub Scripts',
117
+ '',
118
+ 'Use `query_records` to find artifacts that were created but never properly implemented:',
119
+ '',
120
+ '- Business Rules with empty `script` field or only comments/placeholder text',
121
+ '- Script Includes with only the class prototype boilerplate and no actual methods',
122
+ '- Client Scripts with empty `script` field',
123
+ '- UI Actions with no script and no URL',
124
+ '- Scheduled Jobs with empty or trivial scripts (only `gs.log`)',
125
+ '- Flow Actions with no steps defined',
126
+ '',
127
+ '**Output:** List of stub artifacts with creation date and creator',
128
+ ];
129
+ // ─── Orphaned Records ─────────────────────────────────────────────────────
130
+ const orphanedSection = [
131
+ '## 6. Orphaned Records & Broken References',
132
+ '',
133
+ 'Use `query_records` to detect:',
134
+ '',
135
+ '- Business Rules referencing tables that no longer exist',
136
+ '- Client Scripts on tables that have been removed',
137
+ '- ACLs for deleted tables or fields',
138
+ '- Notification references to deleted events',
139
+ '- Workflow contexts for deleted workflow versions',
140
+ '- Dictionary entries (`sys_dictionary`) for non-existent tables',
141
+ '- Catalog variables referencing deleted catalog items',
142
+ '- Group memberships for inactive users',
143
+ '',
144
+ '**Output:** Orphaned record inventory by type with broken reference details',
145
+ ];
146
+ // ─── Deprecated API Usage ─────────────────────────────────────────────────
147
+ const deprecatedApiSection = [
148
+ '## 7. Deprecated API Usage',
149
+ '',
150
+ 'Scan ALL scriptable artifacts for deprecated API patterns:',
151
+ '',
152
+ '- **`Packages.java.*`** \u2014 Java package imports (removed in scoped apps, deprecated globally)',
153
+ '- **`GlideRecord.getDisplayValue()`** without field parameter (ambiguous behavior)',
154
+ '- **`current.getDisplayValue()`** without field in async Business Rules',
155
+ '- **`gs.print()`** \u2014 deprecated, use `gs.info()` / `gs.debug()`',
156
+ '- **`getReference()`** \u2014 synchronous, use `GlideRecord` query instead',
157
+ '- **`GlideAjax` synchronous calls** \u2014 `getXMLWait()` is deprecated',
158
+ '- **`g_form.getReference()`** without callback',
159
+ '- **`GlideDialogWindow`** \u2014 replaced by `GlideModal`',
160
+ '- **`gel()`** \u2014 use standard DOM APIs or `g_form`',
161
+ '- **`$j()` / prototype.js`** patterns in UI scripts',
162
+ '',
163
+ '**Output:** Deprecated API usage inventory with file, line/context, and modern replacement',
164
+ ];
165
+ // ─── Debug / Test Artifacts ───────────────────────────────────────────────
166
+ const debugSection = [
167
+ '## 8. Debug & Test Artifacts in Production',
168
+ '',
169
+ 'Scan ALL artifact types for debug/test patterns that should not be in production:',
170
+ '',
171
+ '- **Server-side debug logging:**',
172
+ ' - `gs.log()` (should use `gs.debug()` with system property gating)',
173
+ ' - `gs.print()` (deprecated and verbose)',
174
+ ' - `gs.logWarning()` / `gs.logError()` with test/debug messages',
175
+ '',
176
+ '- **Client-side debug logging:**',
177
+ ' - `console.log()`, `console.debug()`, `console.warn()`',
178
+ ' - `jslog()` left in production scripts',
179
+ ' - `alert()` calls used for debugging',
180
+ '',
181
+ '- **Test artifacts:**',
182
+ ' - Scripts with "test", "debug", "temp", "TODO", "FIXME", "HACK" in name or script',
183
+ ' - Business Rules with names like "test BR" or "debug rule"',
184
+ ' - Hardcoded test data (test user sys_ids, test email addresses)',
185
+ '',
186
+ '- **Commented-out code blocks:**',
187
+ ' - Large blocks of commented code (> 5 consecutive comment lines that look like code)',
188
+ ' - Commented-out `addQuery` / `addEncodedQuery` lines',
189
+ ' - Commented-out function calls',
190
+ '',
191
+ '**Output:** Debug/test artifact inventory with artifact type, name, pattern found, and evidence',
192
+ ];
193
+ // ─── Report Format ────────────────────────────────────────────────────────
194
+ const reportFormat = [
195
+ '## Technical Debt Report Format',
196
+ '',
197
+ 'Compile all findings into this structure:',
198
+ '',
199
+ '```',
200
+ 'TECHNICAL DEBT REPORT',
201
+ '=====================',
202
+ `Scope: ${isFullInstance ? 'Full instance' : scope}`,
203
+ 'Date: [current date]',
204
+ '',
205
+ 'DEBT SUMMARY',
206
+ '------------',
207
+ '| Category | Count | Est. Cleanup Effort |',
208
+ '|-----------------------------|-------|---------------------|',
209
+ '| Inactive artifacts | X | [hours/days] |',
210
+ '| Unreferenced Script Includes| X | [hours/days] |',
211
+ '| Duplicate artifacts | X | [hours/days] |',
212
+ '| Stale update sets | X | [hours/days] |',
213
+ '| Empty/stub scripts | X | [hours/days] |',
214
+ '| Orphaned records | X | [hours/days] |',
215
+ '| Deprecated API usage | X | [hours/days] |',
216
+ '| Debug/test artifacts | X | [hours/days] |',
217
+ '| TOTAL | X | [hours/days] |',
218
+ '',
219
+ 'EFFORT ESTIMATION GUIDE',
220
+ ' Trivial: < 5 min per item (delete inactive, remove debug logs)',
221
+ ' Low: 5-15 min per item (update deprecated API calls)',
222
+ ' Medium: 15-60 min per item (refactor duplicates, fix orphans)',
223
+ ' High: 1-4 hours per item (rewrite scripts, consolidate logic)',
224
+ '',
225
+ 'DETAILED FINDINGS',
226
+ '[Organized by category, each item with name, type, evidence, effort estimate]',
227
+ '',
228
+ 'CLEANUP PRIORITIES',
229
+ '1. [Quick wins — high count, trivial effort]',
230
+ '2. [Risk reduction — orphans and deprecated APIs]',
231
+ '3. [Maintenance — duplicates and stale items]',
232
+ '',
233
+ 'RECOMMENDED CLEANUP PROCESS',
234
+ '1. Back up via update set before removing anything',
235
+ '2. Start with inactive artifacts (lowest risk)',
236
+ '3. Test deprecated API replacements in sub-prod first',
237
+ '4. Schedule regular debt reviews (quarterly)',
238
+ '```',
239
+ ];
240
+ return [
241
+ {
242
+ role: 'assistant',
243
+ content: {
244
+ type: 'text',
245
+ text: [
246
+ '# Capability: Technical Debt Analysis',
247
+ '',
248
+ `**Scope:** ${scopeLabel}`,
249
+ '',
250
+ 'This capability performs an exhaustive scan for technical debt across ALL artifact types',
251
+ 'in the ServiceNow instance. It identifies dead code, unused scripts, duplicate logic,',
252
+ 'stale configurations, deprecated patterns, and debug artifacts that should be cleaned up.',
253
+ '',
254
+ 'CRITICAL INSTRUCTION: Scan every artifact type, not just Business Rules and Script Includes.',
255
+ 'Technical debt hides in UI Policies, Notifications, Transform Maps, and many other places.',
256
+ '',
257
+ ...inactiveSection, '',
258
+ ...unusedScriptsSection, '',
259
+ ...duplicateSection, '',
260
+ ...staleUpdateSetsSection, '',
261
+ ...emptyScriptSection, '',
262
+ ...orphanedSection, '',
263
+ ...deprecatedApiSection, '',
264
+ ...debugSection, '',
265
+ ...reportFormat,
266
+ '',
267
+ '---',
268
+ '',
269
+ 'Beginning technical debt analysis. Every finding must include artifact type, name,',
270
+ 'evidence, and estimated cleanup effort.',
271
+ ].join('\n'),
272
+ },
273
+ },
274
+ {
275
+ role: 'user',
276
+ content: {
277
+ type: 'text',
278
+ text: isFullInstance
279
+ ? 'Run a full technical debt analysis on my ServiceNow instance. Scan every artifact type and give me a structured debt inventory with cleanup effort estimates.'
280
+ : `Run a technical debt analysis on \`${scope}\`. Scan every relevant artifact type and give me a structured debt inventory with cleanup effort estimates.`,
281
+ },
282
+ },
283
+ ];
284
+ },
285
+ };
286
+ export default capability;
287
+ //# sourceMappingURL=scan-debt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-debt.js","sourceRoot":"","sources":["../../../src/prompts/capabilities/scan-debt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CapabilityDefinition } from '../types.js';
2
+ declare const capability: CapabilityDefinition;
3
+ export default capability;
4
+ //# sourceMappingURL=scan-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-health.d.ts","sourceRoot":"","sources":["../../../src/prompts/capabilities/scan-health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,QAAA,MAAM,UAAU,EAAE,oBA2PjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,235 @@
1
+ const capability = {
2
+ name: 'scan-health',
3
+ title: 'Instance Health Scan',
4
+ description: 'Complete instance health assessment \u2014 plugins, scheduled jobs, logs, quotas, system diagnostics',
5
+ category: 'scan',
6
+ arguments: [
7
+ {
8
+ name: 'scope',
9
+ description: 'Health scan scope: "full" (default), "plugins", "jobs", or "logs"',
10
+ required: false,
11
+ },
12
+ ],
13
+ recommendedTools: [
14
+ 'query_records',
15
+ 'get_sys_log',
16
+ 'list_scheduled_jobs',
17
+ 'get_scheduled_job',
18
+ 'get_system_property',
19
+ 'list_system_properties',
20
+ 'check_table_completeness',
21
+ 'get_table_record_count',
22
+ ],
23
+ buildPrompt(args) {
24
+ const scope = args?.scope ?? 'full';
25
+ const scopeLabel = {
26
+ full: 'Full instance health scan',
27
+ plugins: 'Plugin health scan',
28
+ jobs: 'Scheduled job health scan',
29
+ logs: 'System log analysis',
30
+ };
31
+ const scopeDescription = scopeLabel[scope] ?? `Scoped health scan: ${scope}`;
32
+ const systemPropertiesSection = [
33
+ '## 1. System Properties & Instance Info',
34
+ '',
35
+ 'Use `list_system_properties` and `get_system_property` to collect:',
36
+ '- Instance version and build tag (`glide.buildtag`, `glide.war`)',
37
+ '- Instance name and environment type (dev/test/prod)',
38
+ '- Time zone and locale settings',
39
+ '- Licensing info (`glide.product.*`)',
40
+ '- Node configuration (`glide.cluster.*`)',
41
+ '- Key feature flags and toggles',
42
+ '',
43
+ '**Output:** Instance identity card with version, environment, and config summary',
44
+ ];
45
+ const pluginSection = [
46
+ '## 2. Plugin Status',
47
+ '',
48
+ 'Use `query_records` on `v_plugin` and `sys_plugins` to check:',
49
+ '- Count of active vs inactive plugins',
50
+ '- Plugins in "demo" status that should not be active in production',
51
+ '- Version mismatches between related plugin families',
52
+ '- Recently activated or deactivated plugins (last 30 days)',
53
+ '- Plugins with known deprecation notices',
54
+ '- Orphaned plugin dependencies (required plugin inactive but dependant active)',
55
+ '',
56
+ '**Output:** Plugin inventory table — name, version, status, last modified, risk notes',
57
+ ];
58
+ const jobSection = [
59
+ '## 3. Scheduled Job Health',
60
+ '',
61
+ 'Use `list_scheduled_jobs` and `get_scheduled_job` to assess:',
62
+ '- Jobs in "error" or "cancelled" state',
63
+ '- Jobs that have not run in their expected window (overdue)',
64
+ '- Long-running jobs (last execution time > 2x average)',
65
+ '- Critical system jobs that are disabled (e.g., clean-up, replication, mid-server heartbeat)',
66
+ '- Jobs running as admin that should use a service account',
67
+ '- Conflicting schedules (multiple heavy jobs overlapping)',
68
+ '- Custom jobs with no run-as user',
69
+ '',
70
+ '**Output:** Job status table with severity for each finding',
71
+ ];
72
+ const logSection = [
73
+ '## 4. System Log Analysis',
74
+ '',
75
+ 'Use `get_sys_log` and `query_records` on `syslog`, `syslog_transaction`, and `sys_email_log` to analyze:',
76
+ '- Error and warning frequency over the last 24h/7d',
77
+ '- Top 10 error sources (by script/table/source field)',
78
+ '- Recurring error patterns (same message repeating)',
79
+ '- Transaction quota violations',
80
+ '- Slow query and transaction warnings',
81
+ '- Email delivery failures and bounce rates',
82
+ '- Authentication failures and lockouts',
83
+ '',
84
+ '**Output:** Log summary with error trend, top offenders, and severity ratings',
85
+ ];
86
+ const tableHealthSection = [
87
+ '## 5. Table Health',
88
+ '',
89
+ 'Use `check_table_completeness`, `get_table_record_count`, and `query_records` to evaluate:',
90
+ '- Record counts for core tables (incident, task, cmdb_ci, sys_audit, syslog)',
91
+ '- Tables with abnormal growth (>10% increase in 30 days)',
92
+ '- Attachment table size and orphaned attachments',
93
+ '- Audit/journal table bloat',
94
+ '- Tables approaching row count thresholds',
95
+ '- Data completeness (mandatory fields with null values)',
96
+ '',
97
+ '**Output:** Table health matrix with row counts, growth indicators, and warnings',
98
+ ];
99
+ const queueSection = [
100
+ '## 6. Queue Sizes & Backlogs',
101
+ '',
102
+ 'Use `query_records` and `get_table_record_count` to inspect:',
103
+ '- Event queue depth (`sysevent` — unprocessed events)',
104
+ '- Email queue (`sys_email` — ready/send-failed counts)',
105
+ '- Import set queue (`sys_import_set_row` — pending rows)',
106
+ '- Scheduled job queue (`sys_trigger` — pending triggers)',
107
+ '- ECC queue depth (`ecc_queue` — pending input/output)',
108
+ '- Transform queue backlog',
109
+ '- Workflow context queue (`wf_context` — active/waiting)',
110
+ '',
111
+ '**Output:** Queue status table with current depth, trend direction, and risk level',
112
+ ];
113
+ const performanceSection = [
114
+ '## 7. Performance Indicators',
115
+ '',
116
+ 'Use `query_records` and `list_system_properties` to gather:',
117
+ '- Transaction response time properties and thresholds',
118
+ '- Semaphore and concurrency settings',
119
+ '- Cache hit/miss ratios (if available via properties)',
120
+ '- Business rule execution counts (heavy tables)',
121
+ '- Long-running transaction settings and violations',
122
+ '- Session timeout and concurrency limits',
123
+ '',
124
+ '**Output:** Performance summary with indicator values and recommended thresholds',
125
+ ];
126
+ const nodeSection = [
127
+ '## 8. Node & Cluster Status',
128
+ '',
129
+ 'Use `query_records` on `sys_cluster_state` and `list_system_properties` for:',
130
+ '- Number of active application nodes',
131
+ '- Node roles and load distribution',
132
+ '- Last heartbeat times per node',
133
+ '- MID Server connectivity (`ecc_agent` — status, last run)',
134
+ '- Cluster replication lag',
135
+ '- Node-specific errors or warnings',
136
+ '',
137
+ '**Output:** Cluster topology summary with node status and connectivity',
138
+ ];
139
+ // Build sections based on scope
140
+ let sections;
141
+ switch (scope) {
142
+ case 'plugins':
143
+ sections = [systemPropertiesSection, pluginSection];
144
+ break;
145
+ case 'jobs':
146
+ sections = [jobSection];
147
+ break;
148
+ case 'logs':
149
+ sections = [logSection];
150
+ break;
151
+ default:
152
+ sections = [
153
+ systemPropertiesSection,
154
+ pluginSection,
155
+ jobSection,
156
+ logSection,
157
+ tableHealthSection,
158
+ queueSection,
159
+ performanceSection,
160
+ nodeSection,
161
+ ];
162
+ }
163
+ const reportFormat = [
164
+ '## Health Report Format',
165
+ '',
166
+ 'Compile all findings into a structured report:',
167
+ '',
168
+ '```',
169
+ 'INSTANCE HEALTH REPORT',
170
+ '======================',
171
+ 'Instance: [name] | Version: [version] | Scan scope: [scope]',
172
+ 'Scan date: [current date]',
173
+ '',
174
+ 'EXECUTIVE SUMMARY',
175
+ '- Critical issues: X',
176
+ '- Warnings: X',
177
+ '- Informational: X',
178
+ '- Overall health: [Healthy / Degraded / Critical]',
179
+ '',
180
+ 'FINDINGS BY CATEGORY',
181
+ '--------------------',
182
+ 'Each finding includes:',
183
+ ' [SEVERITY] CATEGORY — Description',
184
+ ' Evidence: [data/metric that triggered the finding]',
185
+ ' Impact: [what happens if ignored]',
186
+ ' Recommendation: [actionable fix]',
187
+ '',
188
+ 'SEVERITY LEGEND',
189
+ ' CRITICAL — Immediate action required; service impact likely',
190
+ ' HIGH — Action needed within 24-48 hours',
191
+ ' MEDIUM — Plan remediation within 1-2 weeks',
192
+ ' LOW — Housekeeping; address during next maintenance window',
193
+ ' INFO — No action required; noted for awareness',
194
+ '',
195
+ 'TREND INDICATORS',
196
+ ' Improving / Stable / Degrading',
197
+ '```',
198
+ ];
199
+ return [
200
+ {
201
+ role: 'assistant',
202
+ content: {
203
+ type: 'text',
204
+ text: [
205
+ '# Capability: Instance Health Scan',
206
+ '',
207
+ `**Scope:** ${scopeDescription}`,
208
+ '',
209
+ 'This capability performs a comprehensive health assessment of the ServiceNow instance.',
210
+ 'Each section gathers data, analyzes it against best-practice thresholds, and produces',
211
+ 'findings with severity ratings.',
212
+ '',
213
+ ...sections.flatMap(s => [...s, '']),
214
+ ...reportFormat,
215
+ '',
216
+ '---',
217
+ '',
218
+ `Starting health scan with scope: **${scope}**.`,
219
+ ].join('\n'),
220
+ },
221
+ },
222
+ {
223
+ role: 'user',
224
+ content: {
225
+ type: 'text',
226
+ text: scope === 'full'
227
+ ? 'Run a full health scan on my ServiceNow instance. Check every category and give me a structured report with severity ratings.'
228
+ : `Run a ${scope} health scan on my ServiceNow instance. Give me a structured report with severity ratings.`,
229
+ },
230
+ },
231
+ ];
232
+ },
233
+ };
234
+ export default capability;
235
+ //# sourceMappingURL=scan-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-health.js","sourceRoot":"","sources":["../../../src/prompts/capabilities/scan-health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CapabilityDefinition } from '../types.js';
2
+ declare const capability: CapabilityDefinition;
3
+ export default capability;
4
+ //# sourceMappingURL=scan-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-security.d.ts","sourceRoot":"","sources":["../../../src/prompts/capabilities/scan-security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,QAAA,MAAM,UAAU,EAAE,oBA+YjB,CAAC;AAEF,eAAe,UAAU,CAAC"}