@pactosigna/mcp-server 0.1.11 → 0.1.13

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 (2) hide show
  1. package/dist/index.js +78 -20
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -21840,8 +21840,9 @@ var LINK_TYPES = {
21840
21840
  analyzes: "Analyzes"
21841
21841
  };
21842
21842
  var REQUIRED_SECTIONS = {
21843
- user_need: ["Purpose", "Stakeholder", "User Needs"],
21844
- architecture: ["Purpose"],
21843
+ user_need: ["User Story", "Validation Criteria"],
21844
+ architecture: ["Purpose", "Architecture Overview", "Interfaces"],
21845
+ detailed_design: ["Purpose", "Detailed Design", "Interfaces"],
21845
21846
  release_plan: ["Scope", "Applicable Plans", "Release-Specific Criteria", "Known Anomalies"],
21846
21847
  design_review: ["Review Scope", "Attendees", "Findings", "Actions", "Conclusion"],
21847
21848
  release_notes: ["Changes", "Known Issues"],
@@ -21849,9 +21850,8 @@ var REQUIRED_SECTIONS = {
21849
21850
  audit_report: ["Scope", "Methodology", "Findings", "Conclusion"],
21850
21851
  management_review: ["Review Inputs", "Review Outputs", "Action Items", "Decisions"],
21851
21852
  hazard_category: ["Description", "Examples", "Applicable Standards"],
21852
- software_risk: ["Harm Assessment"],
21853
- security_risk: ["Harm Assessment"],
21854
- usability_risk: ["Harm Assessment"],
21853
+ // Risk document body sections use BODY_FORMAT heading_pattern (## HARM-XXX via HS-XXX),
21854
+ // not a literal "Harm Assessment" heading. Validation is via BODY_FORMAT, not here.
21855
21855
  haz_soe_software: ["Intended Function", "Failure Cause", "Failure Mode", "Failure Effect"],
21856
21856
  haz_soe_security: [
21857
21857
  "STRIDE Category & Threat",
@@ -22826,28 +22826,38 @@ var SegregationSchema = external_exports.object({
22826
22826
  var ArchitectureFrontmatterSchema = external_exports.object({
22827
22827
  id: external_exports.string().min(1),
22828
22828
  title: external_exports.string().min(1),
22829
+ /** Required — cannot be inferred from folder alone since architecture/ and design/ share parent */
22829
22830
  type: external_exports.literal("architecture"),
22830
22831
  status: RiskDocumentStatusSchema,
22831
- software_item_type: SoftwareItemTypeSchema.optional(),
22832
+ /** IEC 62304 §5.3 — C4/IEC mapping: system, subsystem, component, unit (required) */
22833
+ software_item_type: SoftwareItemTypeSchema,
22834
+ /** Parent HLD doc ID (optional for system-level, recommended for subsystem/component) */
22832
22835
  parent_item: external_exports.string().optional(),
22833
- safety_class: external_exports.enum(["A", "B", "C"]).optional(),
22836
+ safety_class: SafetyClassSchema.optional(),
22834
22837
  segregation: SegregationSchema.optional(),
22835
- author: external_exports.string().optional(),
22838
+ /** Document author — required for all regulated document types */
22839
+ author: external_exports.string().min(1),
22836
22840
  reviewers: external_exports.array(external_exports.string()).optional(),
22837
- approvers: external_exports.array(external_exports.string()).optional()
22841
+ /** Approver list — required for all regulated document types */
22842
+ approvers: external_exports.array(external_exports.string()).min(1)
22838
22843
  });
22839
22844
  var DetailedDesignFrontmatterSchema = external_exports.object({
22840
22845
  id: external_exports.string().min(1),
22841
22846
  title: external_exports.string().min(1),
22847
+ /** Required — cannot be inferred from folder alone since architecture/ and design/ share parent */
22842
22848
  type: external_exports.literal("detailed_design"),
22843
22849
  status: RiskDocumentStatusSchema,
22844
- software_item_type: SoftwareItemTypeSchema.optional(),
22845
- parent_item: external_exports.string().optional(),
22846
- safety_class: external_exports.enum(["A", "B", "C"]).optional(),
22850
+ /** IEC 62304 §5.4 — typically component or unit (required) */
22851
+ software_item_type: SoftwareItemTypeSchema,
22852
+ /** Parent HLD doc ID — required for SDD (must reference parent architecture) */
22853
+ parent_item: external_exports.string().min(1),
22854
+ safety_class: SafetyClassSchema.optional(),
22847
22855
  segregation: SegregationSchema.optional(),
22848
- author: external_exports.string().optional(),
22856
+ /** Document author — required for all regulated document types */
22857
+ author: external_exports.string().min(1),
22849
22858
  reviewers: external_exports.array(external_exports.string()).optional(),
22850
- approvers: external_exports.array(external_exports.string()).optional()
22859
+ /** Approver list — required for all regulated document types */
22860
+ approvers: external_exports.array(external_exports.string()).min(1)
22851
22861
  });
22852
22862
  var AnomalyCategorySchema = external_exports.enum([
22853
22863
  "bug",
@@ -22976,17 +22986,21 @@ var UserNeedFrontmatterSchema = external_exports.object({
22976
22986
  status: RiskDocumentStatusSchema,
22977
22987
  /** Validated if present — ensures frontmatter doesn't misidentify the document type */
22978
22988
  type: external_exports.literal("user_need").optional(),
22979
- /** The user role or stakeholder (e.g., "Quality Manager", "Developer") */
22980
- stakeholder: external_exports.string().optional(),
22989
+ /** The user role or stakeholder (e.g., "Quality Manager", "Developer") — required per ISO 13485 §7.3.2 */
22990
+ stakeholder: external_exports.string().min(1),
22981
22991
  /** MoSCoW priority classification */
22982
22992
  priority: UserNeedPrioritySchema.optional(),
22983
22993
  /** Where this need originated (e.g., "ISO 13485 §7.3", "user interview") */
22984
22994
  source: external_exports.string().optional(),
22985
22995
  /** IDs of product requirements derived from this need */
22986
22996
  derives: external_exports.array(external_exports.string()).optional(),
22987
- author: external_exports.string().optional(),
22997
+ /** Document author — required for all regulated document types */
22998
+ author: external_exports.string().min(1),
22988
22999
  reviewers: external_exports.array(external_exports.string()).optional(),
22989
- approvers: external_exports.array(external_exports.string()).optional()
23000
+ /** Approver list — required for all regulated document types */
23001
+ approvers: external_exports.array(external_exports.string()).min(1),
23002
+ /** Optional reference to a Use Specification persona (US-xxx) per IEC 62366 */
23003
+ use_specification: external_exports.string().optional()
22990
23004
  });
22991
23005
  var RequirementTypeSchema = external_exports.enum([
22992
23006
  "functional",
@@ -23024,6 +23038,46 @@ var RequirementFrontmatterSchema = external_exports.object({
23024
23038
  /** Downstream traceability — IDs of documents this requirement traces to (e.g., SRS for PRS) */
23025
23039
  traces_to: external_exports.array(external_exports.string()).optional()
23026
23040
  });
23041
+ var ProductRequirementFrontmatterSchema = external_exports.object({
23042
+ id: external_exports.string().min(1),
23043
+ title: external_exports.string().min(1),
23044
+ status: RiskDocumentStatusSchema,
23045
+ /** IEC 62304 §5.2.2 — requirement classification (optional for PRS) */
23046
+ req_type: RequirementTypeSchema.optional(),
23047
+ /** Authoring convention — controls which required sections are checked */
23048
+ format: RequirementFormatSchema.optional(),
23049
+ /** ISO 13485 §7.3.3 — how this PRS design input is fulfilled (defaults to 'software') */
23050
+ fulfillment_type: RequirementFulfillmentTypeSchema.optional(),
23051
+ /** Document author — required for all regulated document types */
23052
+ author: external_exports.string().min(1),
23053
+ reviewers: external_exports.array(external_exports.string()).optional(),
23054
+ /** Approver list — required for all regulated document types */
23055
+ approvers: external_exports.array(external_exports.string()).min(1),
23056
+ /** Upstream traceability — IDs of User Need documents this PRS traces from (required) */
23057
+ traces_from: external_exports.array(external_exports.string()).min(1),
23058
+ /** Downstream traceability — IDs of SRS documents this PRS traces to */
23059
+ traces_to: external_exports.array(external_exports.string()).optional()
23060
+ });
23061
+ var SoftwareRequirementFrontmatterSchema = external_exports.object({
23062
+ id: external_exports.string().min(1),
23063
+ title: external_exports.string().min(1),
23064
+ status: RiskDocumentStatusSchema,
23065
+ /** IEC 62304 §5.2.2 — requirement classification (recommended for SRS) */
23066
+ req_type: RequirementTypeSchema.optional(),
23067
+ /** Authoring convention — controls which required sections are checked */
23068
+ format: RequirementFormatSchema.optional(),
23069
+ /** Document author — required for all regulated document types */
23070
+ author: external_exports.string().min(1),
23071
+ reviewers: external_exports.array(external_exports.string()).optional(),
23072
+ /** Approver list — required for all regulated document types */
23073
+ approvers: external_exports.array(external_exports.string()).min(1),
23074
+ /** Upstream traceability — IDs of PRS documents this SRS traces from (required) */
23075
+ traces_from: external_exports.array(external_exports.string()).min(1),
23076
+ /** Downstream traceability — IDs of documents this SRS traces to */
23077
+ traces_to: external_exports.array(external_exports.string()).optional(),
23078
+ /** HLD/SDD document ID that implements this requirement */
23079
+ implemented_in: external_exports.string().optional()
23080
+ });
23027
23081
  var TestProtocolFrontmatterSchema = external_exports.object({
23028
23082
  type: external_exports.literal("test_protocol"),
23029
23083
  id: external_exports.string().min(1),
@@ -23294,7 +23348,8 @@ var EvidenceRuleConditionsSeedSchema = external_exports.object({
23294
23348
  documentType: DocumentTypeSchema.optional(),
23295
23349
  linkType: LinkTypeSchema.optional(),
23296
23350
  status: external_exports.string().optional(),
23297
- minCount: external_exports.number().int().positive().optional()
23351
+ minCount: external_exports.number().int().positive().optional(),
23352
+ safetyClass: SafetyClassSchema.optional()
23298
23353
  });
23299
23354
  var EvidenceRuleSeedSchema = external_exports.object({
23300
23355
  clauseId: external_exports.string().min(1),
@@ -25572,6 +25627,9 @@ var SCHEMA_MAP = {
25572
25627
  // Product (ISO 13485 §7.3)
25573
25628
  product_development_plan: ProductDevelopmentPlanFrontmatterSchema,
25574
25629
  intended_use: IntendedUseFrontmatterSchema,
25630
+ // Architecture (IEC 62304 §5.3)
25631
+ architecture: ArchitectureFrontmatterSchema,
25632
+ detailed_design: DetailedDesignFrontmatterSchema,
25575
25633
  // User needs (ISO 13485 §7.3.2)
25576
25634
  user_need: UserNeedFrontmatterSchema,
25577
25635
  // Requirements (IEC 62304 §5.2.2, ISO 13485 §7.3.3)
@@ -25836,7 +25894,7 @@ var client = new PactoSignaApiClient({
25836
25894
  apiKey: PACTOSIGNA_API_KEY
25837
25895
  });
25838
25896
  var server = new Server(
25839
- { name: "pactosigna", version: "0.1.11" },
25897
+ { name: "pactosigna", version: "0.1.13" },
25840
25898
  { capabilities: { tools: {} } }
25841
25899
  );
25842
25900
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pactosigna/mcp-server",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "MCP server for PactoSigna QMS — connects Claude Desktop, Cursor, and other AI tools to your quality management system",
6
6
  "bin": {