@tedorigawa001/servicenow-mcp 1.3.0 → 1.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 (64) hide show
  1. package/README.md +10 -10
  2. package/dist/tools/agile.d.ts +1 -4
  3. package/dist/tools/agile.d.ts.map +1 -1
  4. package/dist/tools/agile.js +25 -3
  5. package/dist/tools/agile.js.map +1 -1
  6. package/dist/tools/app-studio.d.ts +1 -4
  7. package/dist/tools/app-studio.d.ts.map +1 -1
  8. package/dist/tools/app-studio.js +25 -4
  9. package/dist/tools/app-studio.js.map +1 -1
  10. package/dist/tools/grc-audit.d.ts +157 -0
  11. package/dist/tools/grc-audit.d.ts.map +1 -0
  12. package/dist/tools/grc-audit.js +232 -0
  13. package/dist/tools/grc-audit.js.map +1 -0
  14. package/dist/tools/grc-compliance.d.ts +788 -0
  15. package/dist/tools/grc-compliance.d.ts.map +1 -0
  16. package/dist/tools/grc-compliance.js +672 -0
  17. package/dist/tools/grc-compliance.js.map +1 -0
  18. package/dist/tools/grc-indicator.d.ts +290 -0
  19. package/dist/tools/grc-indicator.d.ts.map +1 -0
  20. package/dist/tools/grc-indicator.js +228 -0
  21. package/dist/tools/grc-indicator.js.map +1 -0
  22. package/dist/tools/grc-risk.d.ts +285 -0
  23. package/dist/tools/grc-risk.d.ts.map +1 -0
  24. package/dist/tools/grc-risk.js +256 -0
  25. package/dist/tools/grc-risk.js.map +1 -0
  26. package/dist/tools/index.d.ts.map +1 -1
  27. package/dist/tools/index.js +30 -1
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/portal.d.ts +1 -4
  30. package/dist/tools/portal.d.ts.map +1 -1
  31. package/dist/tools/portal.js +32 -8
  32. package/dist/tools/portal.js.map +1 -1
  33. package/dist/tools/reporting.d.ts +1 -4
  34. package/dist/tools/reporting.d.ts.map +1 -1
  35. package/dist/tools/reporting.js +36 -9
  36. package/dist/tools/reporting.js.map +1 -1
  37. package/dist/tools/script.d.ts +1 -4
  38. package/dist/tools/script.d.ts.map +1 -1
  39. package/dist/tools/script.js +36 -4
  40. package/dist/tools/script.js.map +1 -1
  41. package/dist/tools/security.d.ts +5 -366
  42. package/dist/tools/security.d.ts.map +1 -1
  43. package/dist/tools/security.js +5 -148
  44. package/dist/tools/security.js.map +1 -1
  45. package/dist/tools/task.d.ts +1 -4
  46. package/dist/tools/task.d.ts.map +1 -1
  47. package/dist/tools/task.js +29 -1
  48. package/dist/tools/task.js.map +1 -1
  49. package/dist/tools/usem-config.d.ts +2 -8
  50. package/dist/tools/usem-config.d.ts.map +1 -1
  51. package/dist/tools/usem-config.js +30 -4
  52. package/dist/tools/usem-config.js.map +1 -1
  53. package/dist/tools/usem.d.ts.map +1 -1
  54. package/dist/tools/usem.js +15 -13
  55. package/dist/tools/usem.js.map +1 -1
  56. package/dist/tools/user.d.ts +1 -4
  57. package/dist/tools/user.d.ts.map +1 -1
  58. package/dist/tools/user.js +22 -2
  59. package/dist/tools/user.js.map +1 -1
  60. package/dist/tools/va.d.ts +1 -4
  61. package/dist/tools/va.d.ts.map +1 -1
  62. package/dist/tools/va.js +17 -1
  63. package/dist/tools/va.js.map +1 -1
  64. package/package.json +2 -2
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  <br/>
13
13
 
14
14
  [![AI-Powered](https://img.shields.io/badge/AI--Powered-Claude%20%7C%20ChatGPT%20%7C%20Gemini%20%7C%20Cursor%20%7C%20Copilot-00D4AA?style=flat-square)](https://github.com/tedorigawa001/ServiceNow-MCP)
15
- [![Tools](https://img.shields.io/badge/400%2B%20Tools-31%20Modules-0F4C81?style=flat-square)](docs/TOOLS.md)
15
+ [![Tools](https://img.shields.io/badge/450%2B%20Tools-44%20Modules-0F4C81?style=flat-square)](docs/TOOLS.md)
16
16
  [![npm](https://img.shields.io/npm/v/%40tedorigawa001%2Fservicenow-mcp?style=flat-square&logo=npm&color=CB3837)](https://www.npmjs.com/package/@tedorigawa001/servicenow-mcp)
17
17
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
18
18
  [![License: MIT](https://img.shields.io/badge/license-MIT-f59e0b?style=flat-square)](LICENSE)
@@ -23,15 +23,15 @@
23
23
 
24
24
  ## AI から ServiceNow を自然言語で操作する MCP サーバー
25
25
 
26
- > **ローカル PC で動作 · 400+ ツール · 5 分セットアップ · MIT ライセンス**
26
+ > **ローカル PC で動作 · 450+ ツール · 5 分セットアップ · MIT ライセンス**
27
27
 
28
28
  Claude・Cursor・VS Code などの AI ツールから、ServiceNow のインシデント・変更・CMDB・スクリプトなどをすべて自然言語で操作できます。
29
29
 
30
- ### v1.3.0 ハイライト
30
+ ### v1.4.0 ハイライト
31
31
 
32
- - USEM / Vulnerability Response の修復ワークフローを補完: VI 作成、VI ↔ RT リンク照会、グルーピング診断を追加
33
- - Remediation Task `sn_vul_remediation_task` と rule-engine 側の `sn_vul_vulnerability` を横断検索
34
- - `secops_analyst` パッケージに新しい USEM 修復支援ツールを追加
32
+ - 書き込みフィールド許可リストを残りのツール群(user/group・USEM/VRルール・agile・task・scripting・app-studio・portal・reporting・VA topic)に拡張し、mass assignment の穴を解消
33
+ - 許可リストは実行時チェックに加え JSON Schema 側でも `additionalProperties: false` により二重防御
34
+ - USEM のクエリフィルタ値に `sanitizeLikeValue` を適用(生の `query` パラメータは既存の意図通り非サニタイズのまま)
35
35
 
36
36
  </div>
37
37
 
@@ -566,7 +566,7 @@ SCRIPTING_ENABLED=false # 本番では原則 false のまま
566
566
  mindmap
567
567
  root((ツールパッケージ))
568
568
  full
569
- 400+ツール
569
+ 450+ツール
570
570
  service_desk
571
571
  インシデント管理
572
572
  タスク/承認
@@ -601,7 +601,7 @@ mindmap
601
601
 
602
602
  | パッケージ名 | 対象ロール | 主なツール |
603
603
  |------------|----------|-----------|
604
- | `full` | 管理者 | 全ツール (400+) |
604
+ | `full` | 管理者 | 全ツール (450+) |
605
605
  | `service_desk` | L1/L2 エージェント | インシデント・タスク・KB・SLA |
606
606
  | `change_coordinator` | 変更管理者 | 変更リクエスト・CAB・CMDB |
607
607
  | `knowledge_author` | KB 著者 | KB 作成・公開 |
@@ -777,7 +777,7 @@ servicenow-mcp/
777
777
  │ │ ├── client.ts # REST API クライアント (OAuth)
778
778
  │ │ ├── instances.ts # マルチインスタンスマネージャー
779
779
  │ │ └── types.ts # TypeScript 型定義
780
- │ ├── tools/ # 39 ドメインモジュール (400+ ツール)
780
+ │ ├── tools/ # 44 ドメインモジュール (450+ ツール)
781
781
  │ │ ├── index.ts # ツールルーター & パッケージ定義
782
782
  │ │ ├── incident.ts
783
783
  │ │ ├── change.ts
@@ -867,7 +867,7 @@ Model Context Protocol の略で、AI クライアントが外部ツールを呼
867
867
 
868
868
  <div align="center">
869
869
 
870
- **400+ ツール · 39 モジュール · ローカル PC で動作 · 永久オープンソース**
870
+ **450+ ツール · 44 モジュール · ローカル PC で動作 · 永久オープンソース**
871
871
 
872
872
  役に立ったら ⭐ スターをお願いします — 他の人が見つけやすくなります。
873
873
 
@@ -53,10 +53,7 @@ export declare function getAgileToolDefinitions(): ({
53
53
  type: string;
54
54
  description: string;
55
55
  };
56
- fields: {
57
- type: string;
58
- description: string;
59
- };
56
+ fields: Record<string, any>;
60
57
  short_description?: undefined;
61
58
  story_points?: undefined;
62
59
  sprint?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"agile.d.ts","sourceRoot":"","sources":["../../src/tools/agile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAMhE,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwHtC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAkEd"}
1
+ {"version":3,"file":"agile.d.ts","sourceRoot":"","sources":["../../src/tools/agile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAiChE,wBAAgB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwHtC;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAuEd"}
@@ -1,6 +1,23 @@
1
1
  import { ServiceNowError } from '../utils/errors.js';
2
2
  import { requireWrite } from '../utils/permissions.js';
3
3
  const TABLE_PREFIX = process.env.AGILE_TABLE_PREFIX || 'rm_';
4
+ const STORY_FIELDS = new Set(['short_description', 'story_points', 'sprint', 'epic', 'description', 'assigned_to']);
5
+ const EPIC_FIELDS = new Set(['short_description', 'description', 'project']);
6
+ const SCRUM_TASK_FIELDS = new Set(['short_description', 'story', 'assigned_to']);
7
+ function allowedFieldsSchema(allowedFields, description) {
8
+ return {
9
+ type: 'object',
10
+ description,
11
+ properties: Object.fromEntries([...allowedFields].map(field => [field, {}])),
12
+ additionalProperties: false,
13
+ };
14
+ }
15
+ function assertAllowedFields(label, action, fields, allowedFields) {
16
+ const unsafeFields = Object.keys(fields).filter(field => !allowedFields.has(field));
17
+ if (unsafeFields.length) {
18
+ throw new ServiceNowError(`${label} fields cannot be ${action}: ${unsafeFields.join(', ')}. Allowed fields: ${[...allowedFields].join(', ')}`, 'VALIDATION_ERROR');
19
+ }
20
+ }
4
21
  export function getAgileToolDefinitions() {
5
22
  return [
6
23
  {
@@ -26,7 +43,7 @@ export function getAgileToolDefinitions() {
26
43
  type: 'object',
27
44
  properties: {
28
45
  sys_id: { type: 'string', description: 'System ID of the story' },
29
- fields: { type: 'object', description: 'Key-value pairs to update' },
46
+ fields: allowedFieldsSchema(STORY_FIELDS, 'Allowed fields: short_description, story_points, sprint, epic, description, assigned_to'),
30
47
  },
31
48
  required: ['sys_id', 'fields'],
32
49
  },
@@ -64,7 +81,7 @@ export function getAgileToolDefinitions() {
64
81
  type: 'object',
65
82
  properties: {
66
83
  sys_id: { type: 'string', description: 'System ID of the epic' },
67
- fields: { type: 'object', description: 'Key-value pairs to update' },
84
+ fields: allowedFieldsSchema(EPIC_FIELDS, 'Allowed fields: short_description, description, project'),
68
85
  },
69
86
  required: ['sys_id', 'fields'],
70
87
  },
@@ -102,7 +119,7 @@ export function getAgileToolDefinitions() {
102
119
  type: 'object',
103
120
  properties: {
104
121
  sys_id: { type: 'string', description: 'System ID of the scrum task' },
105
- fields: { type: 'object', description: 'Key-value pairs to update' },
122
+ fields: allowedFieldsSchema(SCRUM_TASK_FIELDS, 'Allowed fields: short_description, story, assigned_to'),
106
123
  },
107
124
  required: ['sys_id', 'fields'],
108
125
  },
@@ -131,6 +148,7 @@ export async function executeAgileToolCall(client, name, args) {
131
148
  requireWrite();
132
149
  if (!args.short_description)
133
150
  throw new ServiceNowError('short_description is required', 'INVALID_REQUEST');
151
+ assertAllowedFields('Story', 'set', args, STORY_FIELDS);
134
152
  const result = await client.createRecord(storyTable, args);
135
153
  return { ...result, summary: `Created story ${result.number || result.sys_id}` };
136
154
  }
@@ -138,6 +156,7 @@ export async function executeAgileToolCall(client, name, args) {
138
156
  requireWrite();
139
157
  if (!args.sys_id || !args.fields)
140
158
  throw new ServiceNowError('sys_id and fields are required', 'INVALID_REQUEST');
159
+ assertAllowedFields('Story', 'updated', args.fields, STORY_FIELDS);
141
160
  return await client.updateRecord(storyTable, args.sys_id, args.fields);
142
161
  }
143
162
  case 'list_stories': {
@@ -153,6 +172,7 @@ export async function executeAgileToolCall(client, name, args) {
153
172
  requireWrite();
154
173
  if (!args.short_description)
155
174
  throw new ServiceNowError('short_description is required', 'INVALID_REQUEST');
175
+ assertAllowedFields('Epic', 'set', args, EPIC_FIELDS);
156
176
  const result = await client.createRecord(epicTable, args);
157
177
  return { ...result, summary: `Created epic ${result.number || result.sys_id}` };
158
178
  }
@@ -160,6 +180,7 @@ export async function executeAgileToolCall(client, name, args) {
160
180
  requireWrite();
161
181
  if (!args.sys_id || !args.fields)
162
182
  throw new ServiceNowError('sys_id and fields are required', 'INVALID_REQUEST');
183
+ assertAllowedFields('Epic', 'updated', args.fields, EPIC_FIELDS);
163
184
  return await client.updateRecord(epicTable, args.sys_id, args.fields);
164
185
  }
165
186
  case 'list_epics': {
@@ -187,6 +208,7 @@ export async function executeAgileToolCall(client, name, args) {
187
208
  requireWrite();
188
209
  if (!args.sys_id || !args.fields)
189
210
  throw new ServiceNowError('sys_id and fields are required', 'INVALID_REQUEST');
211
+ assertAllowedFields('Scrum task', 'updated', args.fields, SCRUM_TASK_FIELDS);
190
212
  return await client.updateRecord(scrumTaskTable, args.sys_id, args.fields);
191
213
  }
192
214
  case 'list_scrum_tasks': {
@@ -1 +1 @@
1
- {"version":3,"file":"agile.js","sourceRoot":"","sources":["../../src/tools/agile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agile.js","sourceRoot":"","sources":["../../src/tools/agile.ts"],"names":[],"mappings":"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"}
@@ -116,10 +116,7 @@ export declare function getAppStudioToolDefinitions(): ({
116
116
  type: string;
117
117
  description: string;
118
118
  };
119
- fields: {
120
- type: string;
121
- description: string;
122
- };
119
+ fields: Record<string, any>;
123
120
  query?: undefined;
124
121
  active?: undefined;
125
122
  limit?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"app-studio.d.ts","sourceRoot":"","sources":["../../src/tools/app-studio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsE1C;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CA8Dd"}
1
+ {"version":3,"file":"app-studio.d.ts","sourceRoot":"","sources":["../../src/tools/app-studio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAiChE,wBAAgB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqE1C;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CA+Dd"}
@@ -1,5 +1,28 @@
1
1
  import { ServiceNowError } from '../utils/errors.js';
2
2
  import { requireWrite } from '../utils/permissions.js';
3
+ const SCOPED_APP_UPDATE_FIELDS = new Set([
4
+ 'name',
5
+ 'version',
6
+ 'short_description',
7
+ 'description',
8
+ 'vendor',
9
+ 'active',
10
+ 'logo',
11
+ ]);
12
+ function allowedFieldsSchema(allowedFields, description) {
13
+ return {
14
+ type: 'object',
15
+ description,
16
+ properties: Object.fromEntries([...allowedFields].map(field => [field, {}])),
17
+ additionalProperties: false,
18
+ };
19
+ }
20
+ function assertAllowedFields(label, fields, allowedFields) {
21
+ const unsafeFields = Object.keys(fields).filter(field => !allowedFields.has(field));
22
+ if (unsafeFields.length) {
23
+ throw new ServiceNowError(`${label} fields cannot be updated: ${unsafeFields.join(', ')}. Allowed fields: ${[...allowedFields].join(', ')}`, 'VALIDATION_ERROR');
24
+ }
25
+ }
3
26
  export function getAppStudioToolDefinitions() {
4
27
  return [
5
28
  // ── Scoped Applications ─────────────────────────────────────────────────
@@ -59,10 +82,7 @@ export function getAppStudioToolDefinitions() {
59
82
  type: 'object',
60
83
  properties: {
61
84
  sys_id: { type: 'string', description: 'App sys_id' },
62
- fields: {
63
- type: 'object',
64
- description: 'Fields to update (name, version, short_description, description, active, vendor, etc.)',
65
- },
85
+ fields: allowedFieldsSchema(SCOPED_APP_UPDATE_FIELDS, 'Allowed fields: name, version, short_description, description, vendor, active, logo'),
66
86
  },
67
87
  required: ['sys_id', 'fields'],
68
88
  },
@@ -129,6 +149,7 @@ export async function executeAppStudioToolCall(client, name, args) {
129
149
  requireWrite();
130
150
  if (!args.sys_id || !args.fields)
131
151
  throw new ServiceNowError('sys_id and fields are required', 'INVALID_REQUEST');
152
+ assertAllowedFields('Scoped app', args.fields, SCOPED_APP_UPDATE_FIELDS);
132
153
  const result = await client.updateRecord('sys_app', args.sys_id, args.fields);
133
154
  return { ...result, summary: `Updated scoped app ${args.sys_id}` };
134
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-studio.js","sourceRoot":"","sources":["../../src/tools/app-studio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-studio.js","sourceRoot":"","sources":["../../src/tools/app-studio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * GRC — Audit Management tools. Covers Engagements (audit projects) and
3
+ * Control Tests (the actual "audit result" record — `sn_audit_result` does
4
+ * not exist; see docs/GRC_DESIGN.md).
5
+ *
6
+ * Read tools: Tier 0. Write tools: Tier 1 (WRITE_ENABLED=true).
7
+ *
8
+ * Tables verified against a live PDI (dev400464, 2026-07-12):
9
+ * - sn_audit_engagement (Engagement) — number prefix ENG, extends planned_task
10
+ * - sn_audit_control_test (Control Test) — number prefix CTR, subclass of sn_audit_task
11
+ * sn_audit_task itself has 0 direct records — always query the subclass
12
+ * (sn_audit_control_test / sn_audit_activity / sn_audit_interview /
13
+ * sn_audit_walkthrough), never sn_audit_task alone.
14
+ */
15
+ import type { ServiceNowClient } from '../servicenow/client.js';
16
+ export declare function getGrcAuditToolDefinitions(): ({
17
+ name: string;
18
+ description: string;
19
+ inputSchema: {
20
+ type: string;
21
+ properties: {
22
+ state: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ engagement_type: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ query: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ limit: {
35
+ type: string;
36
+ description: string;
37
+ };
38
+ display_value: {
39
+ description: string;
40
+ oneOf: ({
41
+ type: string;
42
+ enum?: undefined;
43
+ } | {
44
+ type: string;
45
+ enum: string[];
46
+ })[];
47
+ };
48
+ number_or_sysid?: undefined;
49
+ control?: undefined;
50
+ test_plan?: undefined;
51
+ design_effectiveness?: undefined;
52
+ operation_effectiveness?: undefined;
53
+ top?: undefined;
54
+ };
55
+ required?: undefined;
56
+ };
57
+ } | {
58
+ name: string;
59
+ description: string;
60
+ inputSchema: {
61
+ type: string;
62
+ properties: {
63
+ number_or_sysid: {
64
+ type: string;
65
+ description: string;
66
+ };
67
+ state?: undefined;
68
+ engagement_type?: undefined;
69
+ query?: undefined;
70
+ limit?: undefined;
71
+ display_value?: undefined;
72
+ control?: undefined;
73
+ test_plan?: undefined;
74
+ design_effectiveness?: undefined;
75
+ operation_effectiveness?: undefined;
76
+ top?: undefined;
77
+ };
78
+ required: string[];
79
+ };
80
+ } | {
81
+ name: string;
82
+ description: string;
83
+ inputSchema: {
84
+ type: string;
85
+ properties: {
86
+ state: {
87
+ type: string;
88
+ description: string;
89
+ };
90
+ control: {
91
+ type: string;
92
+ description: string;
93
+ };
94
+ test_plan: {
95
+ type: string;
96
+ description: string;
97
+ };
98
+ design_effectiveness: {
99
+ type: string;
100
+ enum: string[];
101
+ description: string;
102
+ };
103
+ operation_effectiveness: {
104
+ type: string;
105
+ enum: string[];
106
+ description: string;
107
+ };
108
+ query: {
109
+ type: string;
110
+ description: string;
111
+ };
112
+ limit: {
113
+ type: string;
114
+ description: string;
115
+ };
116
+ display_value: {
117
+ description: string;
118
+ oneOf: ({
119
+ type: string;
120
+ enum?: undefined;
121
+ } | {
122
+ type: string;
123
+ enum: string[];
124
+ })[];
125
+ };
126
+ engagement_type?: undefined;
127
+ number_or_sysid?: undefined;
128
+ top?: undefined;
129
+ };
130
+ required?: undefined;
131
+ };
132
+ } | {
133
+ name: string;
134
+ description: string;
135
+ inputSchema: {
136
+ type: string;
137
+ properties: {
138
+ top: {
139
+ type: string;
140
+ description: string;
141
+ };
142
+ state?: undefined;
143
+ engagement_type?: undefined;
144
+ query?: undefined;
145
+ limit?: undefined;
146
+ display_value?: undefined;
147
+ number_or_sysid?: undefined;
148
+ control?: undefined;
149
+ test_plan?: undefined;
150
+ design_effectiveness?: undefined;
151
+ operation_effectiveness?: undefined;
152
+ };
153
+ required?: undefined;
154
+ };
155
+ })[];
156
+ export declare function executeGrcAuditToolCall(client: ServiceNowClient, name: string, args: Record<string, any>): Promise<any>;
157
+ //# sourceMappingURL=grc-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grc-audit.d.ts","sourceRoot":"","sources":["../../src/tools/grc-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAuDhE,wBAAgB,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EzC;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAwGd"}