sysmledgraph 0.7.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.
- package/README.md +71 -0
- package/dist/bin/cli.d.ts +6 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +61 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/src/cli/commands.d.ts +22 -0
- package/dist/src/cli/commands.d.ts.map +1 -0
- package/dist/src/cli/commands.js +87 -0
- package/dist/src/cli/commands.js.map +1 -0
- package/dist/src/discovery/find-sysml.d.ts +16 -0
- package/dist/src/discovery/find-sysml.d.ts.map +1 -0
- package/dist/src/discovery/find-sysml.js +30 -0
- package/dist/src/discovery/find-sysml.js.map +1 -0
- package/dist/src/discovery/load-order.d.ts +11 -0
- package/dist/src/discovery/load-order.d.ts.map +1 -0
- package/dist/src/discovery/load-order.js +85 -0
- package/dist/src/discovery/load-order.js.map +1 -0
- package/dist/src/graph/connection.d.ts +6 -0
- package/dist/src/graph/connection.d.ts.map +1 -0
- package/dist/src/graph/connection.js +7 -0
- package/dist/src/graph/connection.js.map +1 -0
- package/dist/src/graph/graph-store.d.ts +37 -0
- package/dist/src/graph/graph-store.d.ts.map +1 -0
- package/dist/src/graph/graph-store.js +108 -0
- package/dist/src/graph/graph-store.js.map +1 -0
- package/dist/src/graph/schema.d.ts +13 -0
- package/dist/src/graph/schema.d.ts.map +1 -0
- package/dist/src/graph/schema.js +21 -0
- package/dist/src/graph/schema.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/indexer/indexer.d.ts +20 -0
- package/dist/src/indexer/indexer.d.ts.map +1 -0
- package/dist/src/indexer/indexer.js +56 -0
- package/dist/src/indexer/indexer.js.map +1 -0
- package/dist/src/indexer/pipeline-phases.d.ts +8 -0
- package/dist/src/indexer/pipeline-phases.d.ts.map +1 -0
- package/dist/src/indexer/pipeline-phases.js +14 -0
- package/dist/src/indexer/pipeline-phases.js.map +1 -0
- package/dist/src/mcp/resources/context.d.ts +6 -0
- package/dist/src/mcp/resources/context.d.ts.map +1 -0
- package/dist/src/mcp/resources/context.js +45 -0
- package/dist/src/mcp/resources/context.js.map +1 -0
- package/dist/src/mcp/resources/schema.d.ts +6 -0
- package/dist/src/mcp/resources/schema.d.ts.map +1 -0
- package/dist/src/mcp/resources/schema.js +14 -0
- package/dist/src/mcp/resources/schema.js.map +1 -0
- package/dist/src/mcp/server.d.ts +8 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +175 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tools/clean-index.d.ts +12 -0
- package/dist/src/mcp/tools/clean-index.d.ts.map +1 -0
- package/dist/src/mcp/tools/clean-index.js +22 -0
- package/dist/src/mcp/tools/clean-index.js.map +1 -0
- package/dist/src/mcp/tools/context.d.ts +14 -0
- package/dist/src/mcp/tools/context.d.ts.map +1 -0
- package/dist/src/mcp/tools/context.js +51 -0
- package/dist/src/mcp/tools/context.js.map +1 -0
- package/dist/src/mcp/tools/cypher.d.ts +13 -0
- package/dist/src/mcp/tools/cypher.d.ts.map +1 -0
- package/dist/src/mcp/tools/cypher.js +25 -0
- package/dist/src/mcp/tools/cypher.js.map +1 -0
- package/dist/src/mcp/tools/generate-map.d.ts +13 -0
- package/dist/src/mcp/tools/generate-map.d.ts.map +1 -0
- package/dist/src/mcp/tools/generate-map.js +96 -0
- package/dist/src/mcp/tools/generate-map.js.map +1 -0
- package/dist/src/mcp/tools/impact.d.ts +14 -0
- package/dist/src/mcp/tools/impact.d.ts.map +1 -0
- package/dist/src/mcp/tools/impact.js +47 -0
- package/dist/src/mcp/tools/impact.js.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts +14 -0
- package/dist/src/mcp/tools/index-db-graph.d.ts.map +1 -0
- package/dist/src/mcp/tools/index-db-graph.js +32 -0
- package/dist/src/mcp/tools/index-db-graph.js.map +1 -0
- package/dist/src/mcp/tools/list-indexed.d.ts +9 -0
- package/dist/src/mcp/tools/list-indexed.d.ts.map +1 -0
- package/dist/src/mcp/tools/list-indexed.js +14 -0
- package/dist/src/mcp/tools/list-indexed.js.map +1 -0
- package/dist/src/mcp/tools/query.d.ts +14 -0
- package/dist/src/mcp/tools/query.d.ts.map +1 -0
- package/dist/src/mcp/tools/query.js +47 -0
- package/dist/src/mcp/tools/query.js.map +1 -0
- package/dist/src/mcp/tools/rename.d.ts +19 -0
- package/dist/src/mcp/tools/rename.d.ts.map +1 -0
- package/dist/src/mcp/tools/rename.js +46 -0
- package/dist/src/mcp/tools/rename.js.map +1 -0
- package/dist/src/parser/lsp-client.d.ts +52 -0
- package/dist/src/parser/lsp-client.d.ts.map +1 -0
- package/dist/src/parser/lsp-client.js +230 -0
- package/dist/src/parser/lsp-client.js.map +1 -0
- package/dist/src/parser/lsp-server-path.d.ts +10 -0
- package/dist/src/parser/lsp-server-path.d.ts.map +1 -0
- package/dist/src/parser/lsp-server-path.js +29 -0
- package/dist/src/parser/lsp-server-path.js.map +1 -0
- package/dist/src/parser/symbols.d.ts +13 -0
- package/dist/src/parser/symbols.d.ts.map +1 -0
- package/dist/src/parser/symbols.js +150 -0
- package/dist/src/parser/symbols.js.map +1 -0
- package/dist/src/parser/sysml-mcp-client.d.ts +109 -0
- package/dist/src/parser/sysml-mcp-client.d.ts.map +1 -0
- package/dist/src/parser/sysml-mcp-client.js +185 -0
- package/dist/src/parser/sysml-mcp-client.js.map +1 -0
- package/dist/src/storage/clean.d.ts +15 -0
- package/dist/src/storage/clean.d.ts.map +1 -0
- package/dist/src/storage/clean.js +44 -0
- package/dist/src/storage/clean.js.map +1 -0
- package/dist/src/storage/list.d.ts +9 -0
- package/dist/src/storage/list.d.ts.map +1 -0
- package/dist/src/storage/list.js +12 -0
- package/dist/src/storage/list.js.map +1 -0
- package/dist/src/storage/location.d.ts +22 -0
- package/dist/src/storage/location.d.ts.map +1 -0
- package/dist/src/storage/location.js +36 -0
- package/dist/src/storage/location.js.map +1 -0
- package/dist/src/storage/registry.d.ts +14 -0
- package/dist/src/storage/registry.d.ts.map +1 -0
- package/dist/src/storage/registry.js +59 -0
- package/dist/src/storage/registry.js.map +1 -0
- package/dist/src/symbol-to-graph/mapping.d.ts +17 -0
- package/dist/src/symbol-to-graph/mapping.d.ts.map +1 -0
- package/dist/src/symbol-to-graph/mapping.js +102 -0
- package/dist/src/symbol-to-graph/mapping.js.map +1 -0
- package/dist/src/types.d.ts +40 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +35 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/worker/client.d.ts +21 -0
- package/dist/src/worker/client.d.ts.map +1 -0
- package/dist/src/worker/client.js +126 -0
- package/dist/src/worker/client.js.map +1 -0
- package/dist/src/worker/gateway.d.ts +79 -0
- package/dist/src/worker/gateway.d.ts.map +1 -0
- package/dist/src/worker/gateway.js +93 -0
- package/dist/src/worker/gateway.js.map +1 -0
- package/dist/src/worker/graph-worker.d.ts +7 -0
- package/dist/src/worker/graph-worker.d.ts.map +1 -0
- package/dist/src/worker/graph-worker.js +91 -0
- package/dist/src/worker/graph-worker.js.map +1 -0
- package/dist/src/worker/protocol.d.ts +21 -0
- package/dist/src/worker/protocol.d.ts.map +1 -0
- package/dist/src/worker/protocol.js +9 -0
- package/dist/src/worker/protocol.js.map +1 -0
- package/docs/INSTALL.md +16 -0
- package/docs/MCP_CLIENT_TEMPLATE_ANALYSIS.md +196 -0
- package/docs/MCP_INTERACTION_GUIDE.md +201 -0
- package/docs/MCP_SERVER_FOR_CURSOR.md +124 -0
- package/docs/PLAN.md +58 -0
- package/docs/PLAN_INDEPENDENT_LSP.md +145 -0
- package/docs/SKILL_DESIGN_PATTERNS.md +305 -0
- package/docs/TOOLS.md +317 -0
- package/lsp/README.md +41 -0
- package/lsp/node_modules/.bin/sysml-mcp +12 -0
- package/lsp/node_modules/.bin/sysml-mcp.cmd +9 -0
- package/lsp/node_modules/.bin/sysml-mcp.ps1 +16 -0
- package/lsp/node_modules/.package-lock.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/CHANGELOG.md +188 -0
- package/lsp/node_modules/sysml-v2-lsp/LICENSE +21 -0
- package/lsp/node_modules/sysml-v2-lsp/README.md +172 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js +167 -0
- package/lsp/node_modules/sysml-v2-lsp/dist/server/server.js +142 -0
- package/lsp/node_modules/sysml-v2-lsp/index.cjs +23 -0
- package/lsp/node_modules/sysml-v2-lsp/package.json +131 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.project +17 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.meta.json +27 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/.project.json +19 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Actions.sysml +552 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Allocations.sysml +29 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Attributes.sysml +25 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Calculations.sysml +37 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Cases.sysml +71 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Connections.sysml +60 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Constraints.sysml +44 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Flows.sysml +126 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Interfaces.sysml +89 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Items.sysml +153 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Metadata.sysml +32 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Parts.sysml +81 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Ports.sysml +54 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Requirements.sysml +194 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/States.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/SysML.sysml +539 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/UseCases.sysml +57 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/VerificationCases.sysml +103 -0
- package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/Views.sysml +164 -0
- package/lsp/package-lock.json +30 -0
- package/lsp/package.json +15 -0
- package/lsp/test-server.mjs +120 -0
- package/package.json +61 -0
- package/scripts/access-sysml-mcp.mjs +45 -0
- package/scripts/check-sysml-v2-lsp-version.mjs +39 -0
- package/scripts/clean.mjs +14 -0
- package/scripts/compare-mcp-vs-lsp-symbols.mjs +76 -0
- package/scripts/debug-index.mjs +23 -0
- package/scripts/debug-lsp-symbols.mjs +62 -0
- package/scripts/deploy-skills.mjs +43 -0
- package/scripts/example-sysml-mcp.mjs +27 -0
- package/scripts/export-graph.mjs +80 -0
- package/scripts/generate-map.mjs +110 -0
- package/scripts/index-and-map.mjs +43 -0
- package/scripts/index-and-query.mjs +39 -0
- package/scripts/query-one.mjs +34 -0
- package/scripts/setup-lsp.mjs +36 -0
- package/scripts/test-lsp.mjs +55 -0
- package/scripts/test-mcp-debug.mjs +32 -0
- package/scripts/test-mcp-sysml.mjs +75 -0
- package/scripts/test-mcp-tools.mjs +185 -0
- package/scripts/test-sysml-mcp-from-node_modules.mjs +56 -0
- package/scripts/validate-sysml-file.mjs +69 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
standard library package Ports {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for ports and related structural elements
|
|
5
|
+
* in the SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Objects::Object;
|
|
9
|
+
private import Objects::objects;
|
|
10
|
+
|
|
11
|
+
abstract port def Port :> Object {
|
|
12
|
+
doc
|
|
13
|
+
/*
|
|
14
|
+
* Port is the most general class of objects that represent connection points
|
|
15
|
+
* for interacting with a Part. Port is the base type of all PortDefinitions.
|
|
16
|
+
*
|
|
17
|
+
* Transfers outgoing from a Port are always targeted to a Port connected to
|
|
18
|
+
* the original Port by an Interface.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
ref self: Port :>> Object::self;
|
|
22
|
+
|
|
23
|
+
port subports: Port [0..*] :> ports, timeEnclosedOccurrences {
|
|
24
|
+
doc
|
|
25
|
+
/*
|
|
26
|
+
* The Ports that are subports of this Port.
|
|
27
|
+
*/
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
abstract ref port interfacingPorts : Port[0..*] nonunique :> ports {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* Ports that are connected to this Port by an Interface.
|
|
34
|
+
*/
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
ref :>> outgoingTransfersFromSelf :> interfacingPorts.incomingTransfersToSelf {
|
|
38
|
+
doc
|
|
39
|
+
/*
|
|
40
|
+
* The target of each of the outgoingTransfersFromSelf of a Port must be an interfacingPort.
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
end ref source;
|
|
44
|
+
end ref target;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
abstract port ports : Port[0..*] nonunique :> objects {
|
|
49
|
+
doc
|
|
50
|
+
/*
|
|
51
|
+
* ports is the base feature of all PortUsages.
|
|
52
|
+
*/
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
standard library package Requirements {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for requirements and related elements in the SysML language.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
private import Base::Anything;
|
|
8
|
+
private import ScalarValues::String;
|
|
9
|
+
private import ControlFunctions::allTrue;
|
|
10
|
+
private import Constraints::constraintChecks;
|
|
11
|
+
private import Constraints::assertedConstraintChecks;
|
|
12
|
+
private import Constraints::negatedConstraintChecks;
|
|
13
|
+
private import Parts::Part;
|
|
14
|
+
private import Parts::parts;
|
|
15
|
+
private import Actions::Action;
|
|
16
|
+
private import Interfaces::Interface;
|
|
17
|
+
private import Attributes::AttributeValue;
|
|
18
|
+
|
|
19
|
+
private abstract constraint def RequirementConstraintCheck {
|
|
20
|
+
doc
|
|
21
|
+
/*
|
|
22
|
+
* RequirementConstraintCheck is the base ConstraintCheck for RequirementCheck, defining the
|
|
23
|
+
* separate assumptions and required constraints such that, if all the assumptions are true,
|
|
24
|
+
* then all the required constraints must be true.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
constraint assumptions[0..*] :> constraintChecks, subperformances {
|
|
28
|
+
doc
|
|
29
|
+
/*
|
|
30
|
+
* Assumptions that must hold for the required constraints to apply.
|
|
31
|
+
*/
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
constraint constraints[0..*] :> constraintChecks, subperformances {
|
|
35
|
+
doc
|
|
36
|
+
/*
|
|
37
|
+
* The required constraints that are to be checked.
|
|
38
|
+
*/
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return result = allTrue(assumptions()) implies allTrue(constraints()) {
|
|
42
|
+
doc
|
|
43
|
+
/*
|
|
44
|
+
* If all the assumptions are true, then all the required constraints must hold.
|
|
45
|
+
*/
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
abstract requirement def RequirementCheck :> RequirementConstraintCheck {
|
|
50
|
+
doc
|
|
51
|
+
/*
|
|
52
|
+
* RequirementCheck is the most general class for requirements checking. RequirementsCheck is the base
|
|
53
|
+
* type of all requirement definitions.
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
ref requirement :>> self: RequirementCheck;
|
|
57
|
+
|
|
58
|
+
subject subj : Anything[1] {
|
|
59
|
+
doc
|
|
60
|
+
/*
|
|
61
|
+
* The entity that is being checked for satisfaction of the required constraints.
|
|
62
|
+
*/
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
ref part actors : Part[0..*] {
|
|
66
|
+
doc
|
|
67
|
+
/*
|
|
68
|
+
* The Parts that fill the role of actors for this RequirementCheck.
|
|
69
|
+
* (Note: This is not itself an actor parameter, because specific actor
|
|
70
|
+
* parameters will be added for specific RequirementChecks.)
|
|
71
|
+
*/
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
ref part stakeholders : Part[0..*] {
|
|
75
|
+
doc
|
|
76
|
+
/*
|
|
77
|
+
* The Parts that represent stakeholders interested in the concern being checked.
|
|
78
|
+
* (Note: This is not itself a stakeholder parameter, because specific stakeholder
|
|
79
|
+
* parameters will be added for specific RequirementChecks.)
|
|
80
|
+
*/
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* Note: assumptions and constraints are redefined here solely to simplify the
|
|
85
|
+
* resolution of their qualified names as library elements.
|
|
86
|
+
*/
|
|
87
|
+
constraint assumptions :>> RequirementConstraintCheck::assumptions;
|
|
88
|
+
constraint constraints :>> RequirementConstraintCheck::constraints;
|
|
89
|
+
|
|
90
|
+
abstract requirement subrequirements[0..*] :> requirementChecks, constraints {
|
|
91
|
+
doc
|
|
92
|
+
/*
|
|
93
|
+
* Nested requirements, which are also required constraints.
|
|
94
|
+
*/
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
abstract concern concerns[0..*] :> concernChecks, subrequirements {
|
|
98
|
+
doc
|
|
99
|
+
/*
|
|
100
|
+
* The checks of any concerns being addressed (as required constraints).
|
|
101
|
+
*/
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
requirement def FunctionalRequirementCheck :> RequirementCheck {
|
|
107
|
+
doc
|
|
108
|
+
/*
|
|
109
|
+
* A functional requirement specifies an action that a system, or part of a system, must perform.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
subject: Action;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
requirement def InterfaceRequirementCheck :> RequirementCheck {
|
|
116
|
+
doc
|
|
117
|
+
/*
|
|
118
|
+
* An interface requirement specifies an interface for connecting systems and system parts, which
|
|
119
|
+
* optionally may include item flows across the interface and/or interface constraints.
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
subject: Interface;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
requirement def PerformanceRequirementCheck :> RequirementCheck {
|
|
126
|
+
doc
|
|
127
|
+
/*
|
|
128
|
+
* A performance requirement quantitavely measures the extent to which a system, or a system part,
|
|
129
|
+
* satisfies a required capability or condition.
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
subject: AttributeValue;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
requirement def PhysicalRequirementCheck :> RequirementCheck {
|
|
136
|
+
doc
|
|
137
|
+
/*
|
|
138
|
+
* A physical requirement specifies physical characteristics and/or physical constraints of the
|
|
139
|
+
* system, or a system part.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
subject: Part;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
requirement def DesignConstraintCheck :> RequirementCheck {
|
|
146
|
+
doc
|
|
147
|
+
/*
|
|
148
|
+
* A design constraint specifies a constraint on the implementation of the system or system part,
|
|
149
|
+
* such as the system must use a commercial off the shelf component.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
subject: Part;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
concern def ConcernCheck :> RequirementCheck {
|
|
156
|
+
doc
|
|
157
|
+
/*
|
|
158
|
+
* ConcernCheck is the most general class for concern checking. ConcernCheck is the base type of
|
|
159
|
+
* all ConcernDefinitions.
|
|
160
|
+
*/
|
|
161
|
+
|
|
162
|
+
ref concern :>> self: ConcernCheck;
|
|
163
|
+
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
abstract requirement requirementChecks: RequirementCheck[0..*] nonunique :> constraintChecks {
|
|
167
|
+
doc
|
|
168
|
+
/*
|
|
169
|
+
* requirementChecks is the base feature of all requirement usages.
|
|
170
|
+
*/
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
abstract requirement satisfiedRequirementChecks :> requirementChecks, assertedConstraintChecks {
|
|
174
|
+
doc
|
|
175
|
+
/*
|
|
176
|
+
* satisfiedRequirementChecks is the subset of requirementChecks for Requirements asserted to be satisfied.
|
|
177
|
+
*/
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
abstract requirement notSatisfiedRequirementChecks: RequirementCheck[0..*] :> requirementChecks, negatedConstraintChecks {
|
|
181
|
+
doc
|
|
182
|
+
/*
|
|
183
|
+
* notSatisfiedRequirementChecks is the subset of requirementChecks for Requirements asserted to be not satisfied.
|
|
184
|
+
*/
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
abstract concern concernChecks: ConcernCheck[0..*] nonunique :> requirementChecks {
|
|
188
|
+
doc
|
|
189
|
+
/*
|
|
190
|
+
* concernChecks is the base feature of all ConcernUsages.
|
|
191
|
+
*/
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
}
|
package/lsp/node_modules/sysml-v2-lsp/sysml.library/Systems Library/StandardViewDefinitions.sysml
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
standard library package StandardViewDefinitions {
|
|
2
|
+
doc /*
|
|
3
|
+
* This package defines the standard view definitions for the SysML language.
|
|
4
|
+
*/
|
|
5
|
+
public import SysML::*;
|
|
6
|
+
|
|
7
|
+
view def <gv> GeneralView {
|
|
8
|
+
doc /*
|
|
9
|
+
* View definition to present any members of exposed model element(s).
|
|
10
|
+
* This is the most general view, enabling presentation of any model element.
|
|
11
|
+
* The typical rendering in graphical notation is as a graph of nodes and edges.
|
|
12
|
+
* Specializations of GeneralView can be specified through appropriate selection of filters, e.g.:
|
|
13
|
+
* - package view, filtering on Package, Package containment, package Import
|
|
14
|
+
* - definition and usage view, filtering on Definition, Usage, Specialization, FeatureTyping (covering defined by)
|
|
15
|
+
* - requirement view, filtering on RequirementDefinition, RequirementUsage, Specialization, FeatureTyping,
|
|
16
|
+
* SatisfyRequirementUsage, AllocationDefinition, AllocationUsage,
|
|
17
|
+
* - view and viewpoint view, filtering on ViewDefinition, ViewUsage, ViewpointDefinition, ViewpointUsage,
|
|
18
|
+
* RenderingDefinition, RenderingUsage, ConcernDefinition, ConcernUsage, StakeholderMembership, ...
|
|
19
|
+
* - language extension view, filtering on Metaclass, MetadataFeature, MetadataAccessExpression, ...
|
|
20
|
+
* Note: filters are specified by referencing concepts from the KerML.kerml and SysML.sysml standard library packages.
|
|
21
|
+
*/
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
view def <iv> InterconnectionView {
|
|
25
|
+
doc /*
|
|
26
|
+
* View definition to present exposed features as nodes, nested features as
|
|
27
|
+
* nested nodes, and connections between features
|
|
28
|
+
* as edges between (nested) nodes. Nested nodes may present boundary features
|
|
29
|
+
* (e.g., ports, parameters).
|
|
30
|
+
*/
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
view def <afv> ActionFlowView specializes InterconnectionView {
|
|
34
|
+
doc /*
|
|
35
|
+
* View definition to present connections between actions.
|
|
36
|
+
* Valid nodes and edges in an ActionFlowView are:
|
|
37
|
+
* - Actions with nested actions
|
|
38
|
+
* - Parameters with direction
|
|
39
|
+
* - Flow connection usages (e.g., kinds of transfers from output to input)
|
|
40
|
+
* - Binding connections between parameters (e.g., delegate a parameter from
|
|
41
|
+
* one level of nesting to another)
|
|
42
|
+
* - Proxy connection points
|
|
43
|
+
* - Swim lanes
|
|
44
|
+
* - Conditional succession
|
|
45
|
+
* - Control nodes (fork, join, decision, merge)
|
|
46
|
+
* - Control structures, e.g., if-then-else, until-while-loop, for-loop
|
|
47
|
+
* - Send and accept actions
|
|
48
|
+
* - Change and time triggers
|
|
49
|
+
* - Compartments on actions and parameters
|
|
50
|
+
*/
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
view def <stv> StateTransitionView specializes InterconnectionView {
|
|
54
|
+
doc /*
|
|
55
|
+
* View definition to present states and their transitions.
|
|
56
|
+
* Valid nodes and edges in a StateTransitionView are:
|
|
57
|
+
* - States with nested states
|
|
58
|
+
* - Entry, do, and exit actions
|
|
59
|
+
* - Transition usages with triggers, guards, and actions
|
|
60
|
+
* - Compartments on states
|
|
61
|
+
*/
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
view def <sv> SequenceView {
|
|
65
|
+
doc /*
|
|
66
|
+
* View definition to present time ordering of event occurrences on lifelines
|
|
67
|
+
* of exposed features.
|
|
68
|
+
* Valid nodes and edges in a SequenceView are:
|
|
69
|
+
* - Features such as parts with their lifelines
|
|
70
|
+
* - Event occurrences on the lifelines
|
|
71
|
+
* - Messages sent from one part to another with and without a type of flow
|
|
72
|
+
* - Succession between event occurrences
|
|
73
|
+
* - Nested sequence view (e.g., a reference to a view)
|
|
74
|
+
* - Compartments
|
|
75
|
+
* The typical rendering in graphical notation depicts the exposed features
|
|
76
|
+
* horizontally along the top, with vertical lifelines. The time axis is
|
|
77
|
+
* vertical, with time increasing from top to bottom.
|
|
78
|
+
*/
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
view def <gev> GeometryView {
|
|
82
|
+
doc /*
|
|
83
|
+
* View definition to present a visualization of exposed spatial items in two
|
|
84
|
+
* or three dimensions
|
|
85
|
+
* Valid nodes and edges in a GeometryView are:
|
|
86
|
+
* - Spatial item, including shape
|
|
87
|
+
* - Coordinate frame
|
|
88
|
+
* - Feature related to spatial item, such as a quantity (e.g. temperature)
|
|
89
|
+
* of which values are to be rendered on a color scale
|
|
90
|
+
* The typical rendering in graphical notation would include a number of
|
|
91
|
+
* visualization parameters, such as:
|
|
92
|
+
* - 2D or 3D view
|
|
93
|
+
* - viewing direction
|
|
94
|
+
* - zoom level
|
|
95
|
+
* - light sources
|
|
96
|
+
* - object projection mode, e.g., isometric, perspective, orthographic
|
|
97
|
+
* - object rendering mode, e.g., shaded, wireframe, hidden line
|
|
98
|
+
* - object pan (placement) and rotate (orientation) settings
|
|
99
|
+
* - color maps
|
|
100
|
+
*/
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
view def <grv> GridView {
|
|
104
|
+
doc /*
|
|
105
|
+
* View definition to present exposed model elements and their relationships,
|
|
106
|
+
* arranged in a rectangular grid.
|
|
107
|
+
* GridView is the generalization of the following more specialized views:
|
|
108
|
+
* - Tabular view
|
|
109
|
+
* - Data value tabular view
|
|
110
|
+
* - Relationship matrix view, e.g. presenting allocation or dependency relationships
|
|
111
|
+
*/
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
view def <bv> BrowserView {
|
|
115
|
+
doc /*
|
|
116
|
+
* View definition to present the hierarchical membership structure of model
|
|
117
|
+
* elements starting from one or more exposed root elements.
|
|
118
|
+
* The typical rendering in graphical notation is as an indented list of rows,
|
|
119
|
+
* consisting of dynamically collapsible-expandable nodes that represent
|
|
120
|
+
* branches and leaves of the tree, as in graphical user interface widgets.
|
|
121
|
+
*/
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
standard library package States {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines the base types for states and related behavioral elements in the
|
|
5
|
+
* SysML language.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Occurrences::Occurrence;
|
|
9
|
+
private import StatePerformances::StatePerformance;
|
|
10
|
+
private import StatePerformances::StateTransitionPerformance;
|
|
11
|
+
private import Actions::Action;
|
|
12
|
+
private import Actions::TransitionAction;
|
|
13
|
+
private import Actions::transitionActions;
|
|
14
|
+
private import Actions::AcceptAction;
|
|
15
|
+
private import Actions::actions;
|
|
16
|
+
private import SequenceFunctions::notEmpty;
|
|
17
|
+
private import SequenceFunctions::size;
|
|
18
|
+
|
|
19
|
+
abstract state def StateAction :> Action, StatePerformance {
|
|
20
|
+
doc
|
|
21
|
+
/*
|
|
22
|
+
* A StateAction is a kind of Action that is also a StatePerformance. It is the base type for all
|
|
23
|
+
* StateDefinitions.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
entry action entryAction :>> 'entry';
|
|
27
|
+
do action doAction: Action :>> 'do';
|
|
28
|
+
exit action exitAction: Action :>> 'exit';
|
|
29
|
+
|
|
30
|
+
attribute :>> isTriggerDuring;
|
|
31
|
+
|
|
32
|
+
ref state self: StateAction :>> Action::self, StatePerformance::self;
|
|
33
|
+
ref state start: StateAction :>> Action::start, StatePerformance::startShot;
|
|
34
|
+
ref state done: StateAction :>> Action::done, StatePerformance::endShot;
|
|
35
|
+
|
|
36
|
+
action :>> subactions :> middle {
|
|
37
|
+
doc
|
|
38
|
+
/*
|
|
39
|
+
* The subperformances of this StateAction that are Actions, other than the entry and exit Actions.
|
|
40
|
+
* These subactions all take place in the "middle" of the StatePerformance, that is, after the
|
|
41
|
+
* entry Action and before the exit Action.
|
|
42
|
+
*/
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
action substates: StateAction[0..*] :> stateActions, subactions {
|
|
46
|
+
doc
|
|
47
|
+
/*
|
|
48
|
+
* The subactions of this state that are states.
|
|
49
|
+
*
|
|
50
|
+
* NOTE: This feature is declared as an ActionUsage, not a StateUsage, so that the constraint
|
|
51
|
+
* checkStateUsageExclusiveStateSpecialization does not apply to it, since this constraint
|
|
52
|
+
* would otherwise incorrectly require that "substates" subset "exclusiveStates".
|
|
53
|
+
*/
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
abstract state exclusiveStates: StateAction[0..*] :> substates {
|
|
57
|
+
doc
|
|
58
|
+
/*
|
|
59
|
+
* The substates of this state that are mutually exclusive, that is, whose performances do not
|
|
60
|
+
* overlap in time.
|
|
61
|
+
*/
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
abstract action stateTransitions: StateTransitionAction[0..*] :> transitions {
|
|
65
|
+
doc
|
|
66
|
+
/*
|
|
67
|
+
* The transitions of this state that are state transitions.
|
|
68
|
+
*/
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
succession stateSequencing first [0..1] exclusiveStates then [0..1] exclusiveStates {
|
|
72
|
+
doc
|
|
73
|
+
/*
|
|
74
|
+
* Exclusive states cannot overlap, so it must be possible to strictly sequence them in time.
|
|
75
|
+
*/
|
|
76
|
+
}
|
|
77
|
+
assert constraint {notEmpty(exclusiveStates) implies size(stateSequencing) == size(exclusiveStates) - 1}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
action def StateTransitionAction :> TransitionAction, StateTransitionPerformance {
|
|
81
|
+
doc
|
|
82
|
+
/*
|
|
83
|
+
* A StateTransitionAction is a TransitionAction and a StateTransitionPerformance whose transitionLinkSource
|
|
84
|
+
* is a State. It is the base type of TransitionUsages used transitions in state models.
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
in transitionLinkSource[1]: StateAction :>>
|
|
88
|
+
TransitionAction::transitionLinkSource, StateTransitionPerformance::transitionLinkSource;
|
|
89
|
+
|
|
90
|
+
inout payload[0..*];
|
|
91
|
+
in :>> receiver;
|
|
92
|
+
|
|
93
|
+
bind payload = accepter.payload;
|
|
94
|
+
bind receiver = accepter.receiver;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
abstract state stateActions: StateAction[0..*] nonunique :> actions {
|
|
98
|
+
doc
|
|
99
|
+
/*
|
|
100
|
+
* stateActions is the base feature for all StateUsages.
|
|
101
|
+
*/
|
|
102
|
+
}
|
|
103
|
+
}
|