@memoarchitect/tools 0.8.7 → 0.10.8

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 (89) hide show
  1. package/README.md +1 -1
  2. package/package.json +3 -3
  3. package/packages/tools/lib/commands/export.js +1 -1
  4. package/packages/tools/lib/commands/export.js.map +1 -1
  5. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  6. package/packages/tools/lib/commands/init.js +16 -5
  7. package/packages/tools/lib/commands/init.js.map +1 -1
  8. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  9. package/packages/tools/lib/commands/rules.js +3 -2
  10. package/packages/tools/lib/commands/rules.js.map +1 -1
  11. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  12. package/packages/tools/lib/commands/validate.js +71 -4
  13. package/packages/tools/lib/commands/validate.js.map +1 -1
  14. package/packages/tools/lib/dhf/document-registry.js +1 -1
  15. package/packages/tools/lib/dhf/document-registry.js.map +1 -1
  16. package/packages/tools/lib/dhf/standards-library.d.ts.map +1 -1
  17. package/packages/tools/lib/dhf/standards-library.js +53 -10
  18. package/packages/tools/lib/dhf/standards-library.js.map +1 -1
  19. package/packages/tools/lib/language/generated/ast.d.ts +93 -34
  20. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  21. package/packages/tools/lib/language/generated/ast.js +51 -2
  22. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  23. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  24. package/packages/tools/lib/language/generated/grammar.js +578 -393
  25. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  26. package/packages/tools/lib/model/builder.d.ts +2 -0
  27. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  28. package/packages/tools/lib/model/builder.js +157 -41
  29. package/packages/tools/lib/model/builder.js.map +1 -1
  30. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  31. package/packages/tools/lib/model/config-loader.js +7 -1
  32. package/packages/tools/lib/model/config-loader.js.map +1 -1
  33. package/packages/tools/lib/model/config.d.ts +9 -0
  34. package/packages/tools/lib/model/config.d.ts.map +1 -1
  35. package/packages/tools/lib/model/identity-registry.d.ts +39 -0
  36. package/packages/tools/lib/model/identity-registry.d.ts.map +1 -0
  37. package/packages/tools/lib/model/identity-registry.js +118 -0
  38. package/packages/tools/lib/model/identity-registry.js.map +1 -0
  39. package/packages/tools/lib/model/native-project.d.ts +16 -7
  40. package/packages/tools/lib/model/native-project.d.ts.map +1 -1
  41. package/packages/tools/lib/model/native-project.js +72 -21
  42. package/packages/tools/lib/model/native-project.js.map +1 -1
  43. package/packages/tools/lib/model/package-manifest.d.ts +4 -0
  44. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -1
  45. package/packages/tools/lib/model/package-manifest.js +2 -0
  46. package/packages/tools/lib/model/package-manifest.js.map +1 -1
  47. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  48. package/packages/tools/lib/model/relationship-registry.js +22 -0
  49. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  50. package/packages/tools/lib/model/semantic.d.ts +10 -0
  51. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  52. package/packages/tools/lib/model/semantic.js.map +1 -1
  53. package/packages/tools/lib/model/settings-boundary.js +1 -1
  54. package/packages/tools/lib/model/settings-boundary.js.map +1 -1
  55. package/packages/tools/lib/model/short-id.d.ts +22 -4
  56. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  57. package/packages/tools/lib/model/short-id.js +46 -7
  58. package/packages/tools/lib/model/short-id.js.map +1 -1
  59. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  60. package/packages/tools/lib/model/view-deriver.js +7 -3
  61. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  62. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  63. package/packages/tools/lib/operations/project-snapshot.js +24 -2
  64. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  65. package/packages/tools/lib/protocol/messages.d.ts +29 -0
  66. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  67. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  68. package/packages/tools/lib/server/config-resolver.js +6 -1
  69. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  70. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  71. package/packages/tools/lib/server/dev-server.js +5 -2
  72. package/packages/tools/lib/server/dev-server.js.map +1 -1
  73. package/packages/tools/lib/server/dhf-doc-store.d.ts.map +1 -1
  74. package/packages/tools/lib/server/dhf-doc-store.js +10 -2
  75. package/packages/tools/lib/server/dhf-doc-store.js.map +1 -1
  76. package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
  77. package/packages/tools/lib/server/view-layout-store.js +6 -3
  78. package/packages/tools/lib/server/view-layout-store.js.map +1 -1
  79. package/packages/tools/lib/validator/constraint-eval.d.ts +39 -2
  80. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  81. package/packages/tools/lib/validator/constraint-eval.js +100 -4
  82. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  83. package/packages/tools/lib/validator/constraint-loader.js +37 -2
  84. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  85. package/packages/tools/lib/validator/rule-engine.d.ts +3 -1
  86. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  87. package/packages/tools/lib/validator/rule-engine.js +4 -2
  88. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  89. package/packages/tools/src/grammar/memo-sysml.langium +51 -7
@@ -310,7 +310,8 @@ UsageMember:
310
310
  | InterfaceUsage
311
311
  | ActionUsage
312
312
  | PortUsage
313
- | ViewUsage;
313
+ | ViewUsage
314
+ | ViewpointUsage;
314
315
 
315
316
  PartUsage:
316
317
  isVariation?='variation'? 'part' name=ID (':' type=QualifiedName multiplicity=Multiplicity?)?
@@ -401,6 +402,15 @@ ViewUsage:
401
402
  'view' name=ID (':' type=QualifiedName)?
402
403
  ('{' body+=ViewBodyMember* '}' | ';');
403
404
 
405
+ // `ViewpointUsage = OccurrenceUsagePrefix 'viewpoint' ConstraintUsageDeclaration
406
+ // RequirementBody` (SysML :1640). The definition form was here and the usage
407
+ // form was not, so `viewpoint vpModelContent : MemoViewpoint { … }` could not
408
+ // parse — and that is how the ontology's whole viewpoint catalog is written.
409
+ // Same definition/usage pairing as ViewDefinition/ViewUsage above.
410
+ ViewpointUsage:
411
+ 'viewpoint' name=ID (':' type=QualifiedName)?
412
+ ('{' body+=UsageBodyMember* '}' | ';');
413
+
404
414
  ViewBodyMember:
405
415
  UsageBodyMember | ExposeMember;
406
416
 
@@ -425,8 +435,12 @@ ConnectionUsage:
425
435
  '}'
426
436
  );
427
437
 
438
+ // The end NAME is optional. `connect a to b` is the normative binary-connector
439
+ // shorthand — SysIDE accepts it and, since the compiler of record wins, so must
440
+ // this grammar. Requiring `endName ::>` here rejected every untyped `connect`,
441
+ // which is the form a relation migrated to native `connect` now takes.
428
442
  ConnectionEnd:
429
- endName=FeatureName '::>' ref=ReferenceName;
443
+ (endName=FeatureName '::>')? ref=ReferenceName;
430
444
 
431
445
  // The BASE FEATURE of a connection definition — `abstract connection derivations
432
446
  // : Derivation[*];` in the OMG's DerivationConnections. It is not a link; it is
@@ -517,8 +531,17 @@ DottedNameSegment returns string:
517
531
  // ─── Behavior: Succession usage ─────────────────────────────────────────────
518
532
  // Syntax: first start then action1 then action2 then done ;
519
533
 
534
+ // KerML `SuccessionDeclaration` (:845) is
535
+ // ( 'first' ConnectorEndMember 'then' ConnectorEndMember )?
536
+ // — exactly ONE `then`. A chain is written as consecutive pairwise statements,
537
+ // `first a then b; first b then c;`, which is how every succession in the
538
+ // ontology and its examples is already written.
539
+ //
540
+ // This used to be `('then' …)+`, which accepted `first a then b then c;`. That
541
+ // is not valid SysML and SysIDE — the compiler of record — rejects it, so the
542
+ // permissive form let a model parse here and fail the gate that matters.
520
543
  SuccessionUsage:
521
- 'succession'? 'first' steps+=SuccessionStep ('then' steps+=SuccessionStep)+ ';';
544
+ 'succession'? 'first' steps+=SuccessionStep 'then' steps+=SuccessionStep ';';
522
545
 
523
546
  SuccessionStep:
524
547
  ref=SuccessionRef ('if' guard=OrExpr)?;
@@ -631,7 +654,14 @@ ExhibitStateUsage:
631
654
  // That is what memo-native-requirement-relations decision 1 remodels 61 of 99
632
655
  // VerifiedBy links onto, and it is also what makes that training file parse.
633
656
  SubjectMember:
634
- 'subject' name=MemberName (':' type=QualifiedName multiplicity=Multiplicity?)?
657
+ // `redefines?` comes BEFORE the name, as in RefMember and AttributeMember.
658
+ // Without it, `subject :>> supportingSystem = X;` — an unnamed usage that
659
+ // redefines an inherited subject — cannot parse, because `name` was
660
+ // mandatory. `Identification` (KerML :152) makes BOTH name parts optional,
661
+ // so the unnamed redefining form is well-formed SysML and SysIDE accepts
662
+ // it. Any UseCase specialization that binds the inherited
663
+ // `subject supportingSystem` hits this.
664
+ 'subject' (redefines?=(':>>' | 'redefines'))? name=MemberName (':' type=QualifiedName multiplicity=Multiplicity?)?
635
665
  (bindingOp=('=' | ':>' | ':>>')
636
666
  ('(' boundRefs+=ReferenceName (',' boundRefs+=ReferenceName)* ')'
637
667
  | boundRefs+=ReferenceName))?
@@ -737,7 +767,7 @@ ReferenceName returns string:
737
767
  // ─── Body members ────────────────────────────────────────────────────────────
738
768
 
739
769
  DefinitionBodyMember:
740
- AttributeMember | PartMember | PortUsage | ItemUsage | ViewUsage | RefMember | FeatureMembershipMember | RequireConstraintMember | RequirementVerificationMember | ArcadiaMember | MetadataApplication | DocComment;
770
+ AttributeMember | PartMember | PortUsage | ItemUsage | ViewUsage | ViewpointUsage | RefMember | FeatureMembershipMember | RequireConstraintMember | RequirementVerificationMember | ArcadiaMember | MetadataApplication | DocComment;
741
771
 
742
772
  // The fourteen native mechanisms, gathered once so both body rules stay
743
773
  // readable and neither can drift out of step with the other.
@@ -802,8 +832,13 @@ PrimaryExpr infers ConstraintExpr:
802
832
  // it landed when that reinvention was retired. TransitionUsage is NOT listed
803
833
  // here: it already arrives through ArcadiaMember, and naming it twice makes
804
834
  // the alternation ambiguous.
835
+ // `PackageDeclaration` is a legal usage-body member: SysIDE accepts
836
+ // `part scrHome : UIElement { package grpHeader { part btnBack : UIElement; } }`
837
+ // and the grammar rejected it. Grouping UI elements inside a screen is the case
838
+ // that needed it — a package groups without asserting the part decomposition a
839
+ // nested part would.
805
840
  UsageBodyMember:
806
- AttributeMember | PartMember | PortUsage | ItemUsage | RefMember | ViewUsage | FlowConnectionUsage | MessageUsage | SuccessionUsage | ConnectionUsage | SatisfyRequirementUsage | RequirementVerificationMember | ArcadiaMember | Dependency | MetadataApplication | StateUsage | DocComment;
841
+ AttributeMember | PartMember | PortUsage | ItemUsage | RefMember | ViewUsage | ViewpointUsage | FlowConnectionUsage | MessageUsage | SuccessionUsage | ConnectionUsage | SatisfyRequirementUsage | RequirementVerificationMember | ArcadiaMember | Dependency | MetadataApplication | StateUsage | PackageDeclaration | DocComment;
807
842
 
808
843
  // ─── Attribute member ────────────────────────────────────────────────────────
809
844
  // Three forms:
@@ -912,11 +947,20 @@ PartMember:
912
947
  // ref function : SystemFunction[0..1]; (keyword-named reference)
913
948
  // ref item exchangedItem : ExchangeItem; (item-typed reference payload)
914
949
  // ref :>> definition = syringeDef; (redefining a reference to a value)
950
+ // ref vpLogical :> viewpointDefinition = logicalArchitectureViewpoint;
951
+ // (subset a feature and bind its value)
952
+ //
953
+ // The last form is the native spelling used by document views. `ref` is a
954
+ // reference feature, so it must support the same subsetting-and-value shape as
955
+ // `part`; accepting only the latter made the in-browser parser reject SysIDE-
956
+ // valid view declarations at `:>`.
915
957
 
916
958
  RefMember:
917
959
  'ref' (isItem?='item')? (redefines?=':>>')? name=FeatureName
918
960
  (':' isConjugated?='~'? type=QualifiedName multiplicity=Multiplicity?)?
919
- ('=' value=AttributeValue)?
961
+ ( (bindingOp=':>' boundRef=QualifiedName ('=' subsetValue=QualifiedName)?)
962
+ | ('=' value=AttributeValue)
963
+ )?
920
964
  ';';
921
965
 
922
966
  // ─── Bare feature-membership member ──────────────────────────────────────────