@pactosigna/mcp-server 0.1.9 → 0.1.11
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.
- package/dist/index.js +86 -27
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21848,7 +21848,18 @@ var REQUIRED_SECTIONS = {
|
|
|
21848
21848
|
audit_schedule: ["Scope", "Audit Criteria"],
|
|
21849
21849
|
audit_report: ["Scope", "Methodology", "Findings", "Conclusion"],
|
|
21850
21850
|
management_review: ["Review Inputs", "Review Outputs", "Action Items", "Decisions"],
|
|
21851
|
-
hazard_category: ["Description", "Examples", "Applicable Standards"]
|
|
21851
|
+
hazard_category: ["Description", "Examples", "Applicable Standards"],
|
|
21852
|
+
software_risk: ["Harm Assessment"],
|
|
21853
|
+
security_risk: ["Harm Assessment"],
|
|
21854
|
+
usability_risk: ["Harm Assessment"],
|
|
21855
|
+
haz_soe_software: ["Intended Function", "Failure Cause", "Failure Mode", "Failure Effect"],
|
|
21856
|
+
haz_soe_security: [
|
|
21857
|
+
"STRIDE Category & Threat",
|
|
21858
|
+
"Asset",
|
|
21859
|
+
"Vulnerability",
|
|
21860
|
+
"Actor & Attack Vector",
|
|
21861
|
+
"Adverse Impact"
|
|
21862
|
+
]
|
|
21852
21863
|
};
|
|
21853
21864
|
var MemberPermissionsSchema = external_exports.object({
|
|
21854
21865
|
canSign: external_exports.boolean(),
|
|
@@ -22409,6 +22420,7 @@ var DCOSigningObligationSchema = external_exports.object({
|
|
|
22409
22420
|
department: external_exports.string(),
|
|
22410
22421
|
status: external_exports.enum(["pending", "fulfilled"]),
|
|
22411
22422
|
meaning: external_exports.string().optional(),
|
|
22423
|
+
documentIds: external_exports.array(external_exports.string()).default([]),
|
|
22412
22424
|
fulfilledBySignatureId: external_exports.string().optional(),
|
|
22413
22425
|
fulfilledAt: external_exports.string().optional()
|
|
22414
22426
|
});
|
|
@@ -22554,11 +22566,12 @@ var RiskDocumentStatusSchema = external_exports.enum([
|
|
|
22554
22566
|
"archived",
|
|
22555
22567
|
"example"
|
|
22556
22568
|
]);
|
|
22557
|
-
var
|
|
22558
|
-
"
|
|
22559
|
-
"
|
|
22560
|
-
"
|
|
22569
|
+
var IsoCategorySchema = external_exports.enum([
|
|
22570
|
+
"safe_design",
|
|
22571
|
+
"protective_measure",
|
|
22572
|
+
"safety_information"
|
|
22561
22573
|
]);
|
|
22574
|
+
var ReducesTargetSchema = external_exports.enum(["p1_sequence", "p2_harm", "severity"]);
|
|
22562
22575
|
var RiskGapCodeSchema = external_exports.enum([
|
|
22563
22576
|
"hazard_no_situation",
|
|
22564
22577
|
"situation_no_harm",
|
|
@@ -22576,13 +22589,19 @@ var RiskGapCodeSchema = external_exports.enum([
|
|
|
22576
22589
|
"architecture_no_parent",
|
|
22577
22590
|
"haz_missing_category",
|
|
22578
22591
|
"haz_invalid_category",
|
|
22579
|
-
"category_not_approved"
|
|
22592
|
+
"category_not_approved",
|
|
22593
|
+
"missing_iso_category",
|
|
22594
|
+
"missing_risk_acceptable",
|
|
22595
|
+
"unacceptable_no_benefit",
|
|
22596
|
+
"preliminary_not_analyzed",
|
|
22597
|
+
"missing_body_rationale",
|
|
22598
|
+
"orphaned_body_section"
|
|
22580
22599
|
]);
|
|
22581
22600
|
var RiskGapSeveritySchema = external_exports.enum(["error", "warning"]);
|
|
22582
22601
|
var MitigationSchema = external_exports.object({
|
|
22583
22602
|
control: external_exports.string().min(1),
|
|
22584
|
-
|
|
22585
|
-
|
|
22603
|
+
iso_category: IsoCategorySchema,
|
|
22604
|
+
reduces: ReducesTargetSchema
|
|
22586
22605
|
});
|
|
22587
22606
|
var HarmAssessmentSchema = external_exports.object({
|
|
22588
22607
|
harm: external_exports.string().min(1),
|
|
@@ -22590,48 +22609,80 @@ var HarmAssessmentSchema = external_exports.object({
|
|
|
22590
22609
|
inherent_exploitability: external_exports.number().int().min(1).max(5).optional(),
|
|
22591
22610
|
residual_probability: external_exports.number().int().min(1).max(5).optional(),
|
|
22592
22611
|
residual_exploitability: external_exports.number().int().min(1).max(5).optional(),
|
|
22593
|
-
|
|
22612
|
+
harm_severity_override: external_exports.number().int().min(1).max(5).optional(),
|
|
22613
|
+
risk_acceptable: external_exports.boolean(),
|
|
22614
|
+
benefit_outweighs_risk: external_exports.boolean().optional()
|
|
22615
|
+
});
|
|
22616
|
+
var HazardousSituationAssessmentSchema = external_exports.object({
|
|
22617
|
+
hazardous_situation: external_exports.string().min(1),
|
|
22618
|
+
mitigations: external_exports.array(MitigationSchema).optional(),
|
|
22619
|
+
harms: external_exports.array(HarmAssessmentSchema).min(1)
|
|
22594
22620
|
});
|
|
22595
22621
|
var RiskEntryFrontmatterSchema = external_exports.object({
|
|
22596
22622
|
type: external_exports.enum(["software_risk", "usability_risk", "security_risk"]),
|
|
22597
22623
|
id: external_exports.string().min(1),
|
|
22598
22624
|
title: external_exports.string().min(1),
|
|
22599
22625
|
status: RiskDocumentStatusSchema,
|
|
22626
|
+
author: external_exports.string().min(1),
|
|
22627
|
+
reviewers: external_exports.array(external_exports.string()).optional(),
|
|
22628
|
+
approvers: external_exports.array(external_exports.string()).optional(),
|
|
22600
22629
|
analyzes: external_exports.string().min(1),
|
|
22601
|
-
hazardous_situation: external_exports.string().min(1),
|
|
22602
|
-
harm_assessments: external_exports.array(HarmAssessmentSchema).min(1),
|
|
22603
22630
|
mitigations: external_exports.array(MitigationSchema).optional(),
|
|
22631
|
+
hazardous_situation_assessments: external_exports.array(HazardousSituationAssessmentSchema).min(1),
|
|
22604
22632
|
cvss_score: external_exports.number().min(0).max(10).optional(),
|
|
22605
22633
|
cvss_vector: external_exports.string().regex(
|
|
22606
22634
|
/^CVSS:3\.[01]\/AV:[NALP]\/AC:[LH]\/PR:[NLH]\/UI:[NR]\/S:[UC]\/C:[NLH]\/I:[NLH]\/A:[NLH]$/
|
|
22607
22635
|
).optional()
|
|
22608
22636
|
}).refine(
|
|
22609
22637
|
(data) => {
|
|
22638
|
+
const allHarms = data.hazardous_situation_assessments.flatMap((hsa) => hsa.harms);
|
|
22610
22639
|
if (data.type === "security_risk") {
|
|
22611
|
-
return
|
|
22640
|
+
return allHarms.every((ha) => ha.inherent_exploitability != null);
|
|
22612
22641
|
}
|
|
22613
|
-
return
|
|
22642
|
+
return allHarms.every((ha) => ha.inherent_probability != null);
|
|
22614
22643
|
},
|
|
22615
22644
|
{
|
|
22616
22645
|
message: "Security risks must use inherent_exploitability; software/usability risks must use inherent_probability"
|
|
22617
22646
|
}
|
|
22647
|
+
).refine(
|
|
22648
|
+
(data) => {
|
|
22649
|
+
const allHarms = data.hazardous_situation_assessments.flatMap((hsa) => hsa.harms);
|
|
22650
|
+
return allHarms.every((ha) => ha.risk_acceptable || ha.benefit_outweighs_risk != null);
|
|
22651
|
+
},
|
|
22652
|
+
{
|
|
22653
|
+
message: "benefit_outweighs_risk required when risk_acceptable is false"
|
|
22654
|
+
}
|
|
22618
22655
|
);
|
|
22619
|
-
var
|
|
22620
|
-
type: external_exports.
|
|
22656
|
+
var HazardSoftwareFrontmatterSchema = external_exports.object({
|
|
22657
|
+
type: external_exports.literal("haz_soe_software"),
|
|
22621
22658
|
id: external_exports.string().min(1),
|
|
22622
22659
|
title: external_exports.string().min(1),
|
|
22623
22660
|
status: RiskDocumentStatusSchema,
|
|
22661
|
+
author: external_exports.string().min(1),
|
|
22662
|
+
reviewers: external_exports.array(external_exports.string()).optional(),
|
|
22663
|
+
approvers: external_exports.array(external_exports.string()).optional(),
|
|
22664
|
+
preliminary: external_exports.boolean().default(false),
|
|
22665
|
+
leads_to: external_exports.array(external_exports.string()).optional(),
|
|
22666
|
+
hazard_category: external_exports.string().optional(),
|
|
22667
|
+
detection_score: external_exports.number().int().min(1).max(5).optional(),
|
|
22668
|
+
detection_method: external_exports.string().optional()
|
|
22669
|
+
});
|
|
22670
|
+
var HazardSecurityFrontmatterSchema = external_exports.object({
|
|
22671
|
+
type: external_exports.literal("haz_soe_security"),
|
|
22672
|
+
id: external_exports.string().min(1),
|
|
22673
|
+
title: external_exports.string().min(1),
|
|
22674
|
+
status: RiskDocumentStatusSchema,
|
|
22675
|
+
author: external_exports.string().min(1),
|
|
22676
|
+
reviewers: external_exports.array(external_exports.string()).optional(),
|
|
22677
|
+
approvers: external_exports.array(external_exports.string()).optional(),
|
|
22678
|
+
preliminary: external_exports.boolean().default(false),
|
|
22624
22679
|
leads_to: external_exports.array(external_exports.string()).optional(),
|
|
22625
|
-
// sFMEA fields
|
|
22626
|
-
failure_mode: external_exports.string().optional(),
|
|
22627
|
-
cause: external_exports.string().optional(),
|
|
22628
|
-
detection_method: external_exports.string().optional(),
|
|
22629
|
-
// STRIDE fields
|
|
22630
|
-
threat_category: external_exports.string().optional(),
|
|
22631
|
-
attack_vector: external_exports.string().optional(),
|
|
22632
|
-
// Hazard category reference (HC-xxx)
|
|
22633
22680
|
hazard_category: external_exports.string().optional()
|
|
22634
22681
|
});
|
|
22682
|
+
var HazardFrontmatterSchema = external_exports.discriminatedUnion("type", [
|
|
22683
|
+
HazardSoftwareFrontmatterSchema,
|
|
22684
|
+
HazardSecurityFrontmatterSchema
|
|
22685
|
+
]);
|
|
22635
22686
|
var HazardCategoryFrontmatterSchema = external_exports.object({
|
|
22636
22687
|
type: external_exports.literal("hazard_category"),
|
|
22637
22688
|
id: external_exports.string().min(1),
|
|
@@ -24079,10 +24130,13 @@ var HarmAssessmentEntrySchema = external_exports.object({
|
|
|
24079
24130
|
harmSeverity: RiskValueSchema,
|
|
24080
24131
|
inherentProbability: RiskValueSchema,
|
|
24081
24132
|
residualProbability: RiskValueSchema,
|
|
24082
|
-
|
|
24133
|
+
harmSeverityOverride: RiskValueSchema.optional(),
|
|
24083
24134
|
residualSeverity: RiskValueSchema,
|
|
24084
24135
|
inherentAcceptability: AcceptabilityStatusSchema,
|
|
24085
|
-
residualAcceptability: AcceptabilityStatusSchema
|
|
24136
|
+
residualAcceptability: AcceptabilityStatusSchema,
|
|
24137
|
+
riskAcceptable: external_exports.boolean(),
|
|
24138
|
+
benefitOutweighsRisk: external_exports.boolean().optional(),
|
|
24139
|
+
hazardousSituation: external_exports.string().optional()
|
|
24086
24140
|
});
|
|
24087
24141
|
var RiskEntrySchema = external_exports.object({
|
|
24088
24142
|
id: external_exports.string(),
|
|
@@ -24136,6 +24190,8 @@ var RiskListItemSchema = external_exports.object({
|
|
|
24136
24190
|
worstResidualProbability: RiskValueSchema.optional(),
|
|
24137
24191
|
worstAcceptability: AcceptabilityStatusSchema.optional(),
|
|
24138
24192
|
mitigationsCount: external_exports.number().int().min(0),
|
|
24193
|
+
topLevelMitigationsCount: external_exports.number().int().min(0),
|
|
24194
|
+
perHsMitigationsCount: external_exports.number().int().min(0),
|
|
24139
24195
|
hasRiskBenefit: external_exports.boolean(),
|
|
24140
24196
|
cvssScore: external_exports.number().min(0).max(10).optional(),
|
|
24141
24197
|
cvssVector: external_exports.string().optional()
|
|
@@ -25380,6 +25436,7 @@ var ClauseNodeSchema = external_exports.lazy(
|
|
|
25380
25436
|
parentClauseId: external_exports.string().nullable(),
|
|
25381
25437
|
depth: external_exports.number().int().nonnegative(),
|
|
25382
25438
|
sortOrder: external_exports.number().int().nonnegative(),
|
|
25439
|
+
scope: FrameworkScopeSchema,
|
|
25383
25440
|
children: external_exports.array(ClauseNodeSchema)
|
|
25384
25441
|
})
|
|
25385
25442
|
);
|
|
@@ -25439,7 +25496,9 @@ var ClauseComplianceSchema = external_exports.object({
|
|
|
25439
25496
|
covered: external_exports.boolean(),
|
|
25440
25497
|
/** Compliance score 0..1 based on weighted evidence rules */
|
|
25441
25498
|
score: external_exports.number().min(0).max(1),
|
|
25442
|
-
evidence: external_exports.array(EvidenceItemSchema)
|
|
25499
|
+
evidence: external_exports.array(EvidenceItemSchema),
|
|
25500
|
+
/** Effective scope for this clause. UI uses this to grey out irrelevant clauses. */
|
|
25501
|
+
scope: FrameworkScopeSchema
|
|
25443
25502
|
});
|
|
25444
25503
|
var FrameworkComplianceResponseSchema = external_exports.object({
|
|
25445
25504
|
frameworkId: RegulatoryFrameworkSchema,
|
|
@@ -25777,7 +25836,7 @@ var client = new PactoSignaApiClient({
|
|
|
25777
25836
|
apiKey: PACTOSIGNA_API_KEY
|
|
25778
25837
|
});
|
|
25779
25838
|
var server = new Server(
|
|
25780
|
-
{ name: "pactosigna", version: "0.1.
|
|
25839
|
+
{ name: "pactosigna", version: "0.1.11" },
|
|
25781
25840
|
{ capabilities: { tools: {} } }
|
|
25782
25841
|
);
|
|
25783
25842
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
package/package.json
CHANGED