@trycompai/mcp-server 0.3.3 → 0.3.5

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 (101) hide show
  1. package/README.md +2 -2
  2. package/bin/mcp-server.js +2319 -1685
  3. package/bin/mcp-server.js.map +23 -13
  4. package/esm/funcs/ismsISMSControllerSetCoverageV1.d.ts +16 -0
  5. package/esm/funcs/ismsISMSControllerSetCoverageV1.d.ts.map +1 -0
  6. package/esm/funcs/ismsISMSControllerSetCoverageV1.js +89 -0
  7. package/esm/funcs/ismsISMSControllerSetCoverageV1.js.map +1 -0
  8. package/esm/funcs/ismsISMSRegistersControllerCreateRowV1.d.ts +1 -1
  9. package/esm/funcs/ismsISMSRegistersControllerCreateRowV1.js +1 -1
  10. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts +16 -0
  11. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts.map +1 -0
  12. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js +89 -0
  13. package/esm/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js.map +1 -0
  14. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts +16 -0
  15. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts.map +1 -0
  16. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.js +90 -0
  17. package/esm/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.js.map +1 -0
  18. package/esm/landing-page.js +1 -1
  19. package/esm/lib/config.d.ts +3 -3
  20. package/esm/lib/config.js +3 -3
  21. package/esm/mcp-server/mcp-server.js +1 -1
  22. package/esm/mcp-server/server.d.ts.map +1 -1
  23. package/esm/mcp-server/server.js +7 -1
  24. package/esm/mcp-server/server.js.map +1 -1
  25. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.d.ts +7 -0
  26. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.d.ts.map +1 -0
  27. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.js +35 -0
  28. package/esm/mcp-server/tools/ismsISMSControllerSetCoverageV1.js.map +1 -0
  29. package/esm/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.js +1 -1
  30. package/esm/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.js.map +1 -1
  31. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts +7 -0
  32. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.d.ts.map +1 -0
  33. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js +35 -0
  34. package/esm/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.js.map +1 -0
  35. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts +7 -0
  36. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.d.ts.map +1 -0
  37. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.js +35 -0
  38. package/esm/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.js.map +1 -0
  39. package/esm/models/createriskdto.d.ts +1 -1
  40. package/esm/models/ismscontrollersetcoveragev1op.d.ts +31 -0
  41. package/esm/models/ismscontrollersetcoveragev1op.d.ts.map +1 -0
  42. package/esm/models/ismscontrollersetcoveragev1op.js +28 -0
  43. package/esm/models/ismscontrollersetcoveragev1op.js.map +1 -0
  44. package/esm/models/ismsregisterscontrollercreaterowv1op.d.ts +181 -1
  45. package/esm/models/ismsregisterscontrollercreaterowv1op.d.ts.map +1 -1
  46. package/esm/models/ismsregisterscontrollercreaterowv1op.js +173 -1
  47. package/esm/models/ismsregisterscontrollercreaterowv1op.js.map +1 -1
  48. package/esm/models/ismsregisterscontrollerdeleterowv1op.d.ts +49 -1
  49. package/esm/models/ismsregisterscontrollerdeleterowv1op.d.ts.map +1 -1
  50. package/esm/models/ismsregisterscontrollerdeleterowv1op.js +44 -1
  51. package/esm/models/ismsregisterscontrollerdeleterowv1op.js.map +1 -1
  52. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.d.ts +14 -0
  53. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.d.ts.map +1 -0
  54. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.js +14 -0
  55. package/esm/models/ismsregisterscontrollerimportvendorsassoftwarev1op.js.map +1 -0
  56. package/esm/models/ismsregisterscontrollerupdaterowv1op.d.ts +181 -1
  57. package/esm/models/ismsregisterscontrollerupdaterowv1op.d.ts.map +1 -1
  58. package/esm/models/ismsregisterscontrollerupdaterowv1op.js +173 -1
  59. package/esm/models/ismsregisterscontrollerupdaterowv1op.js.map +1 -1
  60. package/esm/models/policiescontrollerextractpolicydocumentv1op.d.ts +9 -0
  61. package/esm/models/policiescontrollerextractpolicydocumentv1op.d.ts.map +1 -0
  62. package/esm/models/policiescontrollerextractpolicydocumentv1op.js +12 -0
  63. package/esm/models/policiescontrollerextractpolicydocumentv1op.js.map +1 -0
  64. package/esm/models/policydocumentextractionresponsedto.d.ts +18 -0
  65. package/esm/models/policydocumentextractionresponsedto.d.ts.map +1 -0
  66. package/esm/models/policydocumentextractionresponsedto.js +13 -0
  67. package/esm/models/policydocumentextractionresponsedto.js.map +1 -0
  68. package/esm/models/requestpolicydocumentextractiondto.d.ts +6 -0
  69. package/esm/models/requestpolicydocumentextractiondto.d.ts.map +1 -0
  70. package/esm/models/requestpolicydocumentextractiondto.js +9 -0
  71. package/esm/models/requestpolicydocumentextractiondto.js.map +1 -0
  72. package/esm/models/riskscontrollercreateriskv1op.d.ts +1 -1
  73. package/esm/models/riskscontrollergetallrisksv1op.d.ts +2 -2
  74. package/esm/models/riskscontrollergetriskbyidv1op.d.ts +1 -1
  75. package/esm/models/riskscontrollerupdateriskv1op.d.ts +1 -1
  76. package/esm/models/updateriskdto.d.ts +1 -1
  77. package/esm/tool-names.d.ts.map +1 -1
  78. package/esm/tool-names.js +13 -1
  79. package/esm/tool-names.js.map +1 -1
  80. package/package.json +8 -4
  81. package/src/funcs/ismsISMSControllerSetCoverageV1.ts +154 -0
  82. package/src/funcs/ismsISMSRegistersControllerCreateRowV1.ts +1 -1
  83. package/src/funcs/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.ts +159 -0
  84. package/src/funcs/policiesPoliciesControllerExtractPolicyDocumentV1.ts +160 -0
  85. package/src/landing-page.ts +1 -1
  86. package/src/lib/config.ts +3 -3
  87. package/src/mcp-server/mcp-server.ts +1 -1
  88. package/src/mcp-server/server.ts +7 -1
  89. package/src/mcp-server/tools/ismsISMSControllerSetCoverageV1.ts +44 -0
  90. package/src/mcp-server/tools/ismsISMSRegistersControllerCreateRowV1.ts +1 -1
  91. package/src/mcp-server/tools/ismsISMSRegistersControllerImportVendorsAsSoftwareV1.ts +45 -0
  92. package/src/mcp-server/tools/policiesPoliciesControllerExtractPolicyDocumentV1.ts +44 -0
  93. package/src/models/ismscontrollersetcoveragev1op.ts +67 -0
  94. package/src/models/ismsregisterscontrollercreaterowv1op.ts +249 -2
  95. package/src/models/ismsregisterscontrollerdeleterowv1op.ts +56 -2
  96. package/src/models/ismsregisterscontrollerimportvendorsassoftwarev1op.ts +38 -0
  97. package/src/models/ismsregisterscontrollerupdaterowv1op.ts +249 -2
  98. package/src/models/policiescontrollerextractpolicydocumentv1op.ts +25 -0
  99. package/src/models/policydocumentextractionresponsedto.ts +44 -0
  100. package/src/models/requestpolicydocumentextractiondto.ts +18 -0
  101. package/src/tool-names.ts +13 -1
@@ -6,11 +6,66 @@
6
6
  import * as z from "zod";
7
7
  import { ClosedEnum } from "../types/enums.js";
8
8
 
9
+ /**
10
+ * Which ISMS register the row belongs to.
11
+ */
12
+ export const IsmsRegistersControllerUpdateRowV1Register = {
13
+ ContextIssues: "context-issues",
14
+ InterestedParties: "interested-parties",
15
+ Requirements: "requirements",
16
+ Objectives: "objectives",
17
+ Roles: "roles",
18
+ RoleAssignments: "role-assignments",
19
+ Metrics: "metrics",
20
+ Measurements: "measurements",
21
+ Audits: "audits",
22
+ AuditControls: "audit-controls",
23
+ AuditFindings: "audit-findings",
24
+ Reviews: "reviews",
25
+ ReviewInputs: "review-inputs",
26
+ ReviewActions: "review-actions",
27
+ Communications: "communications",
28
+ Obligations: "obligations",
29
+ KeyRecords: "key-records",
30
+ ApprovedSoftware: "approved-software",
31
+ } as const;
32
+ /**
33
+ * Which ISMS register the row belongs to.
34
+ */
35
+ export type IsmsRegistersControllerUpdateRowV1Register = ClosedEnum<
36
+ typeof IsmsRegistersControllerUpdateRowV1Register
37
+ >;
38
+
39
+ export const IsmsRegistersControllerUpdateRowV1Register$zodSchema = z.enum([
40
+ "context-issues",
41
+ "interested-parties",
42
+ "requirements",
43
+ "objectives",
44
+ "roles",
45
+ "role-assignments",
46
+ "metrics",
47
+ "measurements",
48
+ "audits",
49
+ "audit-controls",
50
+ "audit-findings",
51
+ "reviews",
52
+ "review-inputs",
53
+ "review-actions",
54
+ "communications",
55
+ "obligations",
56
+ "key-records",
57
+ "approved-software",
58
+ ]).describe("Which ISMS register the row belongs to.");
59
+
9
60
  export const IsmsRegistersControllerUpdateRowV1Kind = {
10
61
  Internal: "internal",
11
62
  External: "external",
12
63
  Recurring: "recurring",
13
64
  Milestone: "milestone",
65
+ Legal: "legal",
66
+ Regulatory: "regulatory",
67
+ Contractual: "contractual",
68
+ Standard: "standard",
14
69
  } as const;
15
70
  export type IsmsRegistersControllerUpdateRowV1Kind = ClosedEnum<
16
71
  typeof IsmsRegistersControllerUpdateRowV1Kind
@@ -21,6 +76,10 @@ export const IsmsRegistersControllerUpdateRowV1Kind$zodSchema = z.enum([
21
76
  "external",
22
77
  "recurring",
23
78
  "milestone",
79
+ "legal",
80
+ "regulatory",
81
+ "contractual",
82
+ "standard",
24
83
  ]);
25
84
 
26
85
  export const IsmsRegistersControllerUpdateRowV1Status = {
@@ -195,6 +254,132 @@ export const IsmsRegistersControllerUpdateRowV1Type$zodSchema = z.enum([
195
254
  "observation",
196
255
  ]);
197
256
 
257
+ export const IsmsRegistersControllerUpdateRowV1Audience = {
258
+ Internal: "internal",
259
+ External: "external",
260
+ } as const;
261
+ export type IsmsRegistersControllerUpdateRowV1Audience = ClosedEnum<
262
+ typeof IsmsRegistersControllerUpdateRowV1Audience
263
+ >;
264
+
265
+ export const IsmsRegistersControllerUpdateRowV1Audience$zodSchema = z.enum([
266
+ "internal",
267
+ "external",
268
+ ]);
269
+
270
+ export const IsmsRegistersControllerUpdateRowV1Frequency = {
271
+ OnJoining: "on_joining",
272
+ OnPublication: "on_publication",
273
+ AsItHappens: "as_it_happens",
274
+ Monthly: "monthly",
275
+ Quarterly: "quarterly",
276
+ Annually: "annually",
277
+ OnRequest: "on_request",
278
+ WithinStatutoryDeadline: "within_statutory_deadline",
279
+ IfNeeded: "if_needed",
280
+ OnJoiningAndAnnually: "on_joining_and_annually",
281
+ AfterEachAudit: "after_each_audit",
282
+ OnOnboardingAndAsNeeded: "on_onboarding_and_as_needed",
283
+ PerAuditCycle: "per_audit_cycle",
284
+ } as const;
285
+ export type IsmsRegistersControllerUpdateRowV1Frequency = ClosedEnum<
286
+ typeof IsmsRegistersControllerUpdateRowV1Frequency
287
+ >;
288
+
289
+ export const IsmsRegistersControllerUpdateRowV1Frequency$zodSchema = z.enum([
290
+ "on_joining",
291
+ "on_publication",
292
+ "as_it_happens",
293
+ "monthly",
294
+ "quarterly",
295
+ "annually",
296
+ "on_request",
297
+ "within_statutory_deadline",
298
+ "if_needed",
299
+ "on_joining_and_annually",
300
+ "after_each_audit",
301
+ "on_onboarding_and_as_needed",
302
+ "per_audit_cycle",
303
+ ]);
304
+
305
+ export const IsmsRegistersControllerUpdateRowV1Channel = {
306
+ Email: "email",
307
+ SlackOrTeams: "slack_or_teams",
308
+ CompanyMeeting: "company_meeting",
309
+ TrustCentre: "trust_centre",
310
+ CompAiPortal: "comp_ai_portal",
311
+ TrainingPlatform: "training_platform",
312
+ WrittenNotice: "written_notice",
313
+ } as const;
314
+ export type IsmsRegistersControllerUpdateRowV1Channel = ClosedEnum<
315
+ typeof IsmsRegistersControllerUpdateRowV1Channel
316
+ >;
317
+
318
+ export const IsmsRegistersControllerUpdateRowV1Channel$zodSchema = z.enum([
319
+ "email",
320
+ "slack_or_teams",
321
+ "company_meeting",
322
+ "trust_centre",
323
+ "comp_ai_portal",
324
+ "training_platform",
325
+ "written_notice",
326
+ ]);
327
+
328
+ export const IsmsRegistersControllerUpdateRowV1Rotation = {
329
+ Automatic: "automatic",
330
+ Annually: "annually",
331
+ OnChange: "on_change",
332
+ OnChangeOrAnnually: "on_change_or_annually",
333
+ OnOffboarding: "on_offboarding",
334
+ NotRotated: "not_rotated",
335
+ } as const;
336
+ export type IsmsRegistersControllerUpdateRowV1Rotation = ClosedEnum<
337
+ typeof IsmsRegistersControllerUpdateRowV1Rotation
338
+ >;
339
+
340
+ export const IsmsRegistersControllerUpdateRowV1Rotation$zodSchema = z.enum([
341
+ "automatic",
342
+ "annually",
343
+ "on_change",
344
+ "on_change_or_annually",
345
+ "on_offboarding",
346
+ "not_rotated",
347
+ ]);
348
+
349
+ export const IsmsRegistersControllerUpdateRowV1UsedWhere = {
350
+ EndUserDevices: "end_user_devices",
351
+ ProductionSystems: "production_systems",
352
+ Both: "both",
353
+ CloudService: "cloud_service",
354
+ } as const;
355
+ export type IsmsRegistersControllerUpdateRowV1UsedWhere = ClosedEnum<
356
+ typeof IsmsRegistersControllerUpdateRowV1UsedWhere
357
+ >;
358
+
359
+ export const IsmsRegistersControllerUpdateRowV1UsedWhere$zodSchema = z.enum([
360
+ "end_user_devices",
361
+ "production_systems",
362
+ "both",
363
+ "cloud_service",
364
+ ]);
365
+
366
+ export const IsmsRegistersControllerUpdateRowV1Licence = {
367
+ Commercial: "commercial",
368
+ OpenSource: "open_source",
369
+ FreeTier: "free_tier",
370
+ Internal: "internal",
371
+ } as const;
372
+ export type IsmsRegistersControllerUpdateRowV1Licence = ClosedEnum<
373
+ typeof IsmsRegistersControllerUpdateRowV1Licence
374
+ >;
375
+
376
+ export const IsmsRegistersControllerUpdateRowV1Licence$zodSchema = z.enum([
377
+ "commercial",
378
+ "open_source",
379
+ "free_tier",
380
+ "internal",
381
+ ]);
382
+
198
383
  export type IsmsRegistersControllerUpdateRowV1Attendee = {
199
384
  memberId: string;
200
385
  name: string;
@@ -305,18 +490,49 @@ export type IsmsRegistersControllerUpdateRowV1RequestBody = {
305
490
  whatItCovers?: string | undefined;
306
491
  discussionNotes?: string | null | undefined;
307
492
  discussed?: boolean | undefined;
493
+ what?: string | undefined;
494
+ audience?: IsmsRegistersControllerUpdateRowV1Audience | undefined;
495
+ recipients?: string | undefined;
496
+ ownerRoleKey?: string | null | undefined;
497
+ frequency?: IsmsRegistersControllerUpdateRowV1Frequency | undefined;
498
+ channel?: IsmsRegistersControllerUpdateRowV1Channel | undefined;
499
+ contactRef?: string | null | undefined;
500
+ evidenceRef?: string | undefined;
501
+ obligation?: string | undefined;
502
+ jurisdiction?: string | null | undefined;
503
+ howWeMeetIt?: string | null | undefined;
504
+ consequence?: string | null | undefined;
505
+ protects?: string | undefined;
506
+ managedIn?: string | undefined;
507
+ rotation?: IsmsRegistersControllerUpdateRowV1Rotation | undefined;
508
+ rotationNote?: string | null | undefined;
509
+ accessMemberId?: string | null | undefined;
510
+ accessRoleKey?: string | null | undefined;
511
+ accessText?: string | null | undefined;
512
+ purpose?: string | null | undefined;
513
+ vendorId?: string | null | undefined;
514
+ usedWhere?: IsmsRegistersControllerUpdateRowV1UsedWhere | null | undefined;
515
+ licence?: IsmsRegistersControllerUpdateRowV1Licence | null | undefined;
308
516
  position?: number | undefined;
309
517
  };
310
518
 
311
519
  export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
312
520
  IsmsRegistersControllerUpdateRowV1RequestBody
313
521
  > = z.object({
522
+ accessMemberId: z.string().nullable().optional(),
523
+ accessRoleKey: z.string().nullable().optional().describe(
524
+ "ISMS role that holds the key when no member is named (e.g. spo)",
525
+ ),
526
+ accessText: z.string().nullable().optional().describe(
527
+ "Free-text access holder, for answers no picker can express (e.g. \"Each individual\")",
528
+ ),
314
529
  analyzeMemberId: z.string().nullable().optional(),
315
530
  attendees: z.array(
316
531
  z.lazy(() => IsmsRegistersControllerUpdateRowV1Attendee$zodSchema),
317
532
  ).optional().describe(
318
533
  "Attendees frozen at selection (members picked from People)",
319
534
  ),
535
+ audience: IsmsRegistersControllerUpdateRowV1Audience$zodSchema.optional(),
320
536
  auditCourse: z.string().nullable().optional(),
321
537
  auditDueDate: z.string().nullable().optional(),
322
538
  auditEvidenceRef: z.string().nullable().optional(),
@@ -335,12 +551,17 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
335
551
  category: z.string().optional(),
336
552
  chairName: z.string().nullable().optional(),
337
553
  changesText: z.string().nullable().optional(),
554
+ channel: IsmsRegistersControllerUpdateRowV1Channel$zodSchema.optional(),
338
555
  clauseOrControl: z.string().nullable().optional(),
339
556
  closureEvidence: z.string().nullable().optional(),
340
557
  conclusionNotes: z.string().nullable().optional(),
341
558
  conclusionVerdict:
342
559
  IsmsRegistersControllerUpdateRowV1ConclusionVerdict$zodSchema.nullable()
343
560
  .optional(),
561
+ consequence: z.string().nullable().optional(),
562
+ contactRef: z.string().nullable().optional().describe(
563
+ "External rows only: the body name, reporting route and any reference number (A.5.5)",
564
+ ),
344
565
  controlId: z.string().nullable().optional(),
345
566
  controlRef: z.string().optional(),
346
567
  criteria: z.string().optional(),
@@ -350,12 +571,19 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
350
571
  discussionNotes: z.string().nullable().optional(),
351
572
  dueDate: z.string().nullable().optional(),
352
573
  effect: z.string().optional(),
574
+ evidenceRef: z.string().optional(),
353
575
  evidenceRetained: z.string().nullable().optional(),
576
+ frequency: IsmsRegistersControllerUpdateRowV1Frequency$zodSchema.optional(),
354
577
  gap: z.string().nullable().optional(),
578
+ howWeMeetIt: z.string().nullable().optional(),
355
579
  inputRef: z.string().optional(),
356
580
  interestedPartyId: z.string().optional(),
357
581
  isActive: z.boolean().optional(),
582
+ jurisdiction: z.string().nullable().optional(),
358
583
  kind: IsmsRegistersControllerUpdateRowV1Kind$zodSchema.optional(),
584
+ licence: IsmsRegistersControllerUpdateRowV1Licence$zodSchema.nullable()
585
+ .optional(),
586
+ managedIn: z.string().optional(),
359
587
  measurementMethod: z.string().optional(),
360
588
  meetingDate: z.string().nullable().optional(),
361
589
  memberId: z.string().optional(),
@@ -372,7 +600,11 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
372
600
  objectiveId: z.string().nullable().optional().describe(
373
601
  "Deprecated: objectives now take their numbers from a metric, not the reverse.",
374
602
  ),
603
+ obligation: z.string().optional(),
375
604
  ownerMemberId: z.string().optional(),
605
+ ownerRoleKey: z.string().nullable().optional().describe(
606
+ "ISMS role accountable when no member is assigned (e.g. spo, top_management, internal_auditor)",
607
+ ),
376
608
  partyName: z.string().optional(),
377
609
  periodStart: z.string().optional().describe(
378
610
  "First day of the covered period (YYYY-MM-DD), aligned to the metric cadence",
@@ -381,6 +613,9 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
381
613
  plannedEndDate: z.string().nullable().optional(),
382
614
  plannedStartDate: z.string().nullable().optional(),
383
615
  position: z.int().optional(),
616
+ protects: z.string().optional(),
617
+ purpose: z.string().nullable().optional(),
618
+ recipients: z.string().optional(),
384
619
  remediationAction: z.string().nullable().optional(),
385
620
  remediationDueDate: z.string().nullable().optional(),
386
621
  requiredCompetence: z.string().optional(),
@@ -390,6 +625,10 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
390
625
  .optional(),
391
626
  reviewId: z.string().optional(),
392
627
  roleId: z.string().optional(),
628
+ rotation: IsmsRegistersControllerUpdateRowV1Rotation$zodSchema.optional(),
629
+ rotationNote: z.string().nullable().optional().describe(
630
+ "Only kept when rotation is not_rotated",
631
+ ),
393
632
  scope: z.string().optional(),
394
633
  signoffAuditorDate: z.string().nullable().optional(),
395
634
  signoffAuditorName: z.string().nullable().optional(),
@@ -414,7 +653,13 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
414
653
  treatment: z.string().optional(),
415
654
  type: IsmsRegistersControllerUpdateRowV1Type$zodSchema.optional(),
416
655
  unit: IsmsRegistersControllerUpdateRowV1Unit$zodSchema.nullable().optional(),
656
+ usedWhere: IsmsRegistersControllerUpdateRowV1UsedWhere$zodSchema.nullable()
657
+ .optional(),
417
658
  value: z.string().optional(),
659
+ vendorId: z.string().nullable().optional().describe(
660
+ "Links the row to a vendor; the name then renders live",
661
+ ),
662
+ what: z.string().optional(),
418
663
  whatIsMeasured: z.string().optional(),
419
664
  whatItCovers: z.string().optional(),
420
665
  whatWasTested: z.string().optional(),
@@ -422,7 +667,7 @@ export const IsmsRegistersControllerUpdateRowV1RequestBody$zodSchema: z.ZodType<
422
667
  }).describe("Register row fields (per-register; validated at runtime by zod)");
423
668
 
424
669
  export type IsmsRegistersControllerUpdateRowV1Request = {
425
- register: string;
670
+ register: IsmsRegistersControllerUpdateRowV1Register;
426
671
  rowId: string;
427
672
  body: IsmsRegistersControllerUpdateRowV1RequestBody;
428
673
  };
@@ -434,6 +679,8 @@ export const IsmsRegistersControllerUpdateRowV1Request$zodSchema: z.ZodType<
434
679
  .describe(
435
680
  "Register row fields (per-register; validated at runtime by zod)",
436
681
  ),
437
- register: z.string(),
682
+ register: IsmsRegistersControllerUpdateRowV1Register$zodSchema.describe(
683
+ "Which ISMS register the row belongs to.",
684
+ ),
438
685
  rowId: z.string(),
439
686
  });
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 4ddeee64390b
4
+ */
5
+
6
+ import * as z from "zod";
7
+ import {
8
+ RequestPolicyDocumentExtractionDto,
9
+ RequestPolicyDocumentExtractionDto$zodSchema,
10
+ } from "./requestpolicydocumentextractiondto.js";
11
+
12
+ export type PoliciesControllerExtractPolicyDocumentV1Request = {
13
+ xOrganizationId?: string | undefined;
14
+ id: string;
15
+ body?: RequestPolicyDocumentExtractionDto | undefined;
16
+ };
17
+
18
+ export const PoliciesControllerExtractPolicyDocumentV1Request$zodSchema:
19
+ z.ZodType<PoliciesControllerExtractPolicyDocumentV1Request> = z.object({
20
+ body: RequestPolicyDocumentExtractionDto$zodSchema.optional(),
21
+ id: z.string().describe("Policy ID"),
22
+ xOrganizationId: z.string().describe(
23
+ "Organization ID (required for session auth, optional for API key auth)",
24
+ ).optional(),
25
+ });
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 2f5cc30d6f75
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ /**
9
+ * The version the read targets, or null when the policy has no version to read into.
10
+ */
11
+ export type VersionId = {};
12
+
13
+ export const VersionId$zodSchema: z.ZodType<VersionId> = z.object({}).describe(
14
+ "The version the read targets, or null when the policy has no version to read into.",
15
+ );
16
+
17
+ /**
18
+ * Null when the read was queued. Otherwise why it was not, so a caller never waits for text that is not coming: `no_version` / `no_document` (nothing to read), `already_has_content` (the version already has text), `pending_approval` or `published_version` (the target may not be written to), `document_replaced` (the attached file changed), `queue_unavailable` (the job could not be scheduled — retry).
19
+ */
20
+ export type Reason = {};
21
+
22
+ export const Reason$zodSchema: z.ZodType<Reason> = z.object({}).describe(
23
+ "Null when the read was queued. Otherwise why it was not, so a caller never waits for text that is not coming: `no_version` / `no_document` (nothing to read), `already_has_content` (the version already has text), `pending_approval` or `published_version` (the target may not be written to), `document_replaced` (the attached file changed), `queue_unavailable` (the job could not be scheduled — retry).",
24
+ );
25
+
26
+ export type PolicyDocumentExtractionResponseDto = {
27
+ queued: boolean;
28
+ versionId: VersionId | null;
29
+ reason?: Reason | null | undefined;
30
+ };
31
+
32
+ export const PolicyDocumentExtractionResponseDto$zodSchema: z.ZodType<
33
+ PolicyDocumentExtractionResponseDto
34
+ > = z.object({
35
+ queued: z.boolean().describe(
36
+ "True when a read of the attached document was queued. False when no read will happen — see `reason`.",
37
+ ),
38
+ reason: z.lazy(() => Reason$zodSchema).nullable().optional().describe(
39
+ "Null when the read was queued. Otherwise why it was not, so a caller never waits for text that is not coming: `no_version` / `no_document` (nothing to read), `already_has_content` (the version already has text), `pending_approval` or `published_version` (the target may not be written to), `document_replaced` (the attached file changed), `queue_unavailable` (the job could not be scheduled — retry).",
40
+ ),
41
+ versionId: z.lazy(() => VersionId$zodSchema).nullable().describe(
42
+ "The version the read targets, or null when the policy has no version to read into.",
43
+ ),
44
+ });
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ece7be891060
4
+ */
5
+
6
+ import * as z from "zod";
7
+
8
+ export type RequestPolicyDocumentExtractionDto = {
9
+ versionId?: string | undefined;
10
+ };
11
+
12
+ export const RequestPolicyDocumentExtractionDto$zodSchema: z.ZodType<
13
+ RequestPolicyDocumentExtractionDto
14
+ > = z.object({
15
+ versionId: z.string().optional().describe(
16
+ "Optional version ID whose attached document should be read. Omit to use the policy's current version.",
17
+ ),
18
+ });
package/src/tool-names.ts CHANGED
@@ -576,6 +576,10 @@ export const toolNames: Array<{ name: string; description: string }>= [
576
576
  "name": "confirm-policy-pdf-uploaded",
577
577
  "description": "Confirm a policy PDF upload completed\n\nLinks an uploaded PDF to a compliance policy after the file has been PUT to a presigned S3 URL. Call this after request-policy-pdf-upload-url returned an s3Key and you successfully uploaded the file bytes to that URL. The endpoint verifies the file exists in S3 before linking it to the policy or version."
578
578
  },
579
+ {
580
+ "name": "extract-policy-document",
581
+ "description": "Re-read an attached policy document into the editor\n\nQueues a fresh read of the PDF already attached to a policy, storing its text as the version's editor content. Use when an uploaded policy still reads as empty because its first read never produced any text."
582
+ },
579
583
  {
580
584
  "name": "get-pdf-url",
581
585
  "description": "Get signed URL for policy PDF (alternate path)\n\nGet signed URL for policy PDF (alternate path) in Comp AI. Create, version, publish, export, map, and improve compliance policies with AI-assisted drafting and approval workflows."
@@ -1260,6 +1264,10 @@ export const toolNames: Array<{ name: string; description: string }>= [
1260
1264
  "name": "remove-control",
1261
1265
  "description": "Remove a control mapping from an ISMS document\n\nRemoves the mapping between an ISMS document and one organization control. Takes the control id, not the link row id. The control itself is not deleted, and unlinking a control that was never linked succeeds silently."
1262
1266
  },
1267
+ {
1268
+ "name": "set-coverage",
1269
+ "description": "Set how much of an ISMS document Comp AI holds\n\nMarks a whole ISMS document as included, maintained outside Comp AI, or not applicable, which requires a written justification. External renders a pointer to where the content lives. Per-section coverage is not available yet."
1270
+ },
1263
1271
  {
1264
1272
  "name": "generate",
1265
1273
  "description": "Derive Context-of-the-Organization issues\n\nRegenerates one ISMS document's derived content based on its type and refreshes the drift baseline. Manually added register rows and non-empty narratives are preserved; derived rows are replaced. Reverts an approved document to draft."
@@ -1306,7 +1314,7 @@ export const toolNames: Array<{ name: string; description: string }>= [
1306
1314
  },
1307
1315
  {
1308
1316
  "name": "create-row",
1309
- "description": "Create a row in an ISMS register\n\nAdds a row to an ISMS register. Valid values: context-issues, interested-parties, requirements, objectives, roles, role-assignments, metrics, measurements, audits, audit-controls, audit-findings, reviews, review-inputs, review-actions."
1317
+ "description": "Create a row in an ISMS register\n\nCreate a row in an ISMS register in Comp AI. Build and maintain the ISO 27001 ISMS document set — scope, leadership commitment, context, interested parties, objectives, roles, monitoring, internal audit, and management review."
1310
1318
  },
1311
1319
  {
1312
1320
  "name": "update-row",
@@ -1320,6 +1328,10 @@ export const toolNames: Array<{ name: string; description: string }>= [
1320
1328
  "name": "bulk-create-measurements",
1321
1329
  "description": "Record measurements for several metrics/periods in one save (Metrics due / backfill)\n\nRecord measurements for several metrics/periods in one save (Metrics due / backfill) in Comp AI. Build and maintain the ISO 27001 ISMS document set — scope, leadership commitment, context, interested parties, objectives, roles."
1322
1330
  },
1331
+ {
1332
+ "name": "import-vendors-as-software",
1333
+ "description": "Add vendors to the Approved Software Register in one action\n\nAdds the chosen vendors as approved software rows in one transaction. Vendors already listed are skipped, not duplicated. \"Where it is used\" is left unanswered: a supplier record does not say where its product runs."
1334
+ },
1323
1335
  {
1324
1336
  "name": "save-narrative",
1325
1337
  "description": "Save a singleton document narrative\n\nReplaces the working draft narrative of a document type that stores one, such as ISMS scope, leadership commitment, internal audit or risk assessment methodology. The narrative object is fully replaced, not merged."