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,156 @@
|
|
|
1
|
+
standard library package Clocks {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package models Clocks that provide an advancing numerical reference
|
|
5
|
+
* usable for quantifying the time of an Occurrence.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import ScalarValues::NumericalValue;
|
|
9
|
+
private import ScalarValues::Real;
|
|
10
|
+
private import Occurrences::Occurrence;
|
|
11
|
+
private import Occurrences::Life;
|
|
12
|
+
private import ControlFunctions::forAll;
|
|
13
|
+
|
|
14
|
+
private struct UniversalClockLife[1] :> Clock, Life {
|
|
15
|
+
doc
|
|
16
|
+
/*
|
|
17
|
+
* UniversalClockLife is the classifier of the singleton Life of the universalClock.
|
|
18
|
+
*/
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
feature universalClock : UniversalClockLife[1] {
|
|
22
|
+
doc
|
|
23
|
+
/*
|
|
24
|
+
* universalClock is a single Clock that can be used as a default universal
|
|
25
|
+
* time reference.
|
|
26
|
+
*/
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
abstract struct Clock {
|
|
30
|
+
doc
|
|
31
|
+
/*
|
|
32
|
+
* A Clock provides a numerical currentTime that advances montonically
|
|
33
|
+
* over its lifetime. Clock is an abstract base Structure that can be
|
|
34
|
+
* specialized for different kinds of time quantification (e.g., discrete
|
|
35
|
+
* time, continuous time, time with units, etc.).
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
private thisClock : Clock :>> self;
|
|
39
|
+
|
|
40
|
+
var feature currentTime : NumericalValue[1] {
|
|
41
|
+
doc
|
|
42
|
+
/*
|
|
43
|
+
* A scalar time reference that advances over the lifetime of the Clock.
|
|
44
|
+
*/
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
inv timeFlowConstraint {
|
|
48
|
+
doc
|
|
49
|
+
/*
|
|
50
|
+
* The currentTime of a snapshot of a Clock is equal to
|
|
51
|
+
* the TimeOf the snapshot relative to that Clock.
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
snapshots->forAll{in s : Clock;
|
|
55
|
+
TimeOf(s, thisClock) == s.currentTime
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
abstract function TimeOf {
|
|
61
|
+
doc
|
|
62
|
+
/*
|
|
63
|
+
* TimeOf returns a numerical timeInstant for a given Occurrence relative to
|
|
64
|
+
* a given Clock. The timeInstant is the time of the start of the Occurrence,
|
|
65
|
+
* which is considered to be synchronized with the snapshot of the Clock
|
|
66
|
+
* with a currentTime equal to the returned timeInstant.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
in o : Occurrence[1];
|
|
70
|
+
in clock : Clock[1] default localClock;
|
|
71
|
+
return timeInstant : NumericalValue[1];
|
|
72
|
+
|
|
73
|
+
inv startTimeConstraint {
|
|
74
|
+
doc
|
|
75
|
+
/*
|
|
76
|
+
* The TimeOf an Occurrence is equal to the time of its start snapshot.
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
timeInstant == TimeOf(o.startShot, clock)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
inv timeOrderingConstraint {
|
|
83
|
+
doc
|
|
84
|
+
/*
|
|
85
|
+
* If one Occurrence happens before another, then the TimeOf the end
|
|
86
|
+
* snapshot of the first Occurrence is no greater than the TimeOf the
|
|
87
|
+
* second Occurrence.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
o.predecessors->forAll{in p : Occurrence;
|
|
91
|
+
TimeOf(p.endShot, clock) <= timeInstant
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
inv timeContinuityConstraint {
|
|
96
|
+
doc
|
|
97
|
+
/*
|
|
98
|
+
* If one Occurrence happens immediately before another, then the TimeOf
|
|
99
|
+
* the end snapshot of the first Occurrence equals the TimeOf the second
|
|
100
|
+
* Occurrence.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
o.immediatePredecessors->forAll{in p : Occurrence;
|
|
104
|
+
TimeOf(p.endShot, clock) == timeInstant
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function DurationOf {
|
|
110
|
+
doc
|
|
111
|
+
/*
|
|
112
|
+
* DurationOf returns the duration of a given Occurrence relative to a
|
|
113
|
+
* given Clock, which is equal to the TimeOf the end snapshot of the
|
|
114
|
+
* Occurrence minus the TimeOf its start snapshot.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
in o : Occurrence[1];
|
|
118
|
+
in clock : Clock[1] default localClock;
|
|
119
|
+
return duration : NumericalValue =
|
|
120
|
+
TimeOf(o.endShot, clock) - TimeOf(o.startShot, clock);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
struct BasicClock :> Clock {
|
|
124
|
+
doc
|
|
125
|
+
/*
|
|
126
|
+
* A BasicClock is a Clock whose currentTime is a Real number.
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
var feature :>> currentTime : Real;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function BasicTimeOf :> TimeOf {
|
|
133
|
+
doc
|
|
134
|
+
/*
|
|
135
|
+
* BasicTimeOf returns the TimeOf an Occurrence as a Real number relative
|
|
136
|
+
* to a BasicClock.
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
in o : Occurrence[1];
|
|
140
|
+
in clock : BasicClock[1];
|
|
141
|
+
return : Real[1];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function BasicDurationOf :> DurationOf {
|
|
145
|
+
doc
|
|
146
|
+
/*
|
|
147
|
+
* BasicDurationOf returns the DurationOf an Occurrence as a Real number relative
|
|
148
|
+
* to a BasicClock.
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
in o : Occurrence[1];
|
|
152
|
+
in clock : BasicClock[1];
|
|
153
|
+
return : Real[1];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
standard library package ControlPerformances {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines Behaviors to be used to type Steps that control the sequencing of performance
|
|
5
|
+
* of other Steps.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import ScalarValues::Boolean;
|
|
9
|
+
private import SequenceFunctions::size;
|
|
10
|
+
private import SequenceFunctions::notEmpty;
|
|
11
|
+
private import Occurrences::Occurrence;
|
|
12
|
+
private import Occurrences::HappensBefore;
|
|
13
|
+
private import Occurrences::SelfSameLifeLink;
|
|
14
|
+
private import Performances::Performance;
|
|
15
|
+
private import Performances::BooleanEvaluation;
|
|
16
|
+
|
|
17
|
+
behavior DecisionPerformance specializes Performance {
|
|
18
|
+
doc
|
|
19
|
+
/*
|
|
20
|
+
* A DecisionPerformance is a Performance that represents the selection of one of the Successions
|
|
21
|
+
* that have the DecisionPerforance behavior as their source. All such Successions must subset the
|
|
22
|
+
* outgoingHBLink feature of the source DecisionPerformance. For each instance of DecisionPerformance,
|
|
23
|
+
* the outgoingHBLink is an instance of exactly one of the Successions, ordering the DecisionPerformance
|
|
24
|
+
* as happening before an instance of the target of that Succcession.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
feature outgoingHBLink: HappensBefore[1] {
|
|
28
|
+
doc
|
|
29
|
+
/*
|
|
30
|
+
* Specializations subset this by all
|
|
31
|
+
* successions going out of a decision step.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
end feature redefines earlierOccurrence subsets that;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
behavior MergePerformance specializes Performance {
|
|
39
|
+
doc
|
|
40
|
+
/*
|
|
41
|
+
* A MergePerformance is a Performance that represents the merging of all Successions that
|
|
42
|
+
* target the MergePerforance behavior. All such Successions must subset the incomingHBLink
|
|
43
|
+
* feature of the target MergePerformance. For each instance of MergePerformance, the
|
|
44
|
+
* incomingHBLink is an instance of exactly one of the Successions, ordering the
|
|
45
|
+
* MergePerformance as happening after an instance of the source of that Succession.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
feature incomingHBLink: HappensBefore[1] {
|
|
49
|
+
doc
|
|
50
|
+
/*
|
|
51
|
+
* Specializations subset this by all
|
|
52
|
+
* successions coming into a merge step.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
end feature redefines laterOccurrence subsets that;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
abstract behavior IfPerformance specializes Performance {
|
|
60
|
+
doc
|
|
61
|
+
/*
|
|
62
|
+
* An IfPerformance is a Performance that determines whether the ifTest evaluation result is true
|
|
63
|
+
* (by whether ifTrue has a value).
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
in ifTest : BooleanEvaluation[1];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
behavior IfThenPerformance specializes IfPerformance {
|
|
70
|
+
doc
|
|
71
|
+
/*
|
|
72
|
+
* An IfThenPerformance is an IfPerformance where the thenClause occurs after and only after the
|
|
73
|
+
* ifTest evaluation result is true.
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
in redefines ifTest;
|
|
77
|
+
in thenClause : Occurrence[0..1];
|
|
78
|
+
succession [1] ifTest then [0..1] thenClause;
|
|
79
|
+
inv { ifTest() == thenClause->notEmpty() }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
behavior IfElsePerformance specializes IfPerformance {
|
|
83
|
+
doc
|
|
84
|
+
/*
|
|
85
|
+
* An IfElsePerformance is an IfPerformance where the elseClause occurs after and only
|
|
86
|
+
* after the ifTest evaluation result is not true.
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
in redefines ifTest;
|
|
90
|
+
in elseClause : Occurrence[0..1];
|
|
91
|
+
succession [1] ifTest then [0..1] elseClause;
|
|
92
|
+
inv { not ifTest() == elseClause->notEmpty() }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
behavior IfThenElsePerformance specializes IfThenPerformance {
|
|
96
|
+
doc
|
|
97
|
+
/*
|
|
98
|
+
* An IfThenElsePerformance is an IfThenPerformance with an additional elseClause that
|
|
99
|
+
* occurs after and only after the ifTest evaluation is false.
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
in redefines ifTest;
|
|
103
|
+
in redefines thenClause;
|
|
104
|
+
in elseClause : Occurrence[0..1];
|
|
105
|
+
succession [1] ifTest then [0..1] elseClause;
|
|
106
|
+
inv { not ifTest() == elseClause->notEmpty() }
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
behavior LoopPerformance specializes Performance {
|
|
110
|
+
doc
|
|
111
|
+
/*
|
|
112
|
+
* A LoopPerformance is a Performance where the body occurs repeatedly in sequence (iterates)
|
|
113
|
+
* as long as the whileTest evaluation result is true before each iteration (and after the
|
|
114
|
+
* previous one, except the first time) and the untilTest evaluation result is not true after
|
|
115
|
+
* each iteration and before the next one (except the last one).
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
in whileTest : BooleanEvaluation[1..*];
|
|
119
|
+
in body : Occurrence[0..*];
|
|
120
|
+
in untilTest : BooleanEvaluation[0..*];
|
|
121
|
+
|
|
122
|
+
step whileDecision : IfThenPerformance[1..*];
|
|
123
|
+
step untilDecision : IfElsePerformance[0..*];
|
|
124
|
+
|
|
125
|
+
binding [1] whileDecision.ifTest = [1] whileTest;
|
|
126
|
+
binding [1] whileDecision.thenClause = [1] body;
|
|
127
|
+
|
|
128
|
+
succession body then untilDecision;
|
|
129
|
+
|
|
130
|
+
binding [1] untilDecision.ifTest = [1] untilTest;
|
|
131
|
+
binding loopBack of [0..1] untilDecision.elseClause = [1] whileDecision;
|
|
132
|
+
|
|
133
|
+
inv { loopBack->size() == whileDecision->size() - 1 }
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
standard library package FeatureReferencingPerformances {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines Behaviors used to read, write and monitor values of a referenced Feature of an
|
|
5
|
+
* Occurrence.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
private import Base::Anything;
|
|
9
|
+
private import Base::things;
|
|
10
|
+
private import Occurrences::Occurrence;
|
|
11
|
+
private import Occurrences::HappensWhile;
|
|
12
|
+
private import Occurrences::HappensBefore;
|
|
13
|
+
private import Occurrences::HappensJustBefore;
|
|
14
|
+
private import Occurrences::SelfSameLifeLink;
|
|
15
|
+
private import Performances::Performance;
|
|
16
|
+
private import Performances::Evaluation;
|
|
17
|
+
private import ScalarValues::Boolean;
|
|
18
|
+
private import SequenceFunctions::isEmpty;
|
|
19
|
+
private import SequenceFunctions::equals;
|
|
20
|
+
|
|
21
|
+
abstract behavior FeatureReferencingPerformance specializes Performance {
|
|
22
|
+
doc
|
|
23
|
+
/*
|
|
24
|
+
* A FeatureReferencingPerformance is the base Performance for specialized behaviors related
|
|
25
|
+
* to values of a referenced Feature of a given Occurrence, as identified in specializations
|
|
26
|
+
* of this Behavior.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
in abstract feature onOccurrence : Occurrence [1] {
|
|
30
|
+
doc
|
|
31
|
+
/*
|
|
32
|
+
* Occurrence with values for the referenced feature in specializations of this behavior.
|
|
33
|
+
*/
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
inout feature values : Anything [*] nonunique {
|
|
37
|
+
doc
|
|
38
|
+
/*
|
|
39
|
+
* Values of the referenced feature, as specified in specializations of this behavior.
|
|
40
|
+
*/
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
abstract behavior FeatureAccessPerformance specializes FeatureReferencingPerformance {
|
|
45
|
+
doc
|
|
46
|
+
/*
|
|
47
|
+
* A FeatureAccessPerformance is a FeatureReferencingPerformance where the result values
|
|
48
|
+
* are all the values of a feature of onOccurrence at the time the Performance ends. The
|
|
49
|
+
* feature is specified by restricting accessedFeature in specializations or usages.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
in abstract feature onOccurrence : Occurrence {
|
|
53
|
+
abstract feature startingAt : Occurrence [1] subsets timeSlices {
|
|
54
|
+
abstract feature accessedFeature : Anything [*] nonunique;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
connector :HappensWhile from onOccurrence.startingAt.startShot to endShot {
|
|
59
|
+
doc
|
|
60
|
+
/*
|
|
61
|
+
* Requires some time slice of onOccurrence to start when this performance
|
|
62
|
+
* ends (this connector), with particular feature values (following connector).
|
|
63
|
+
* The feature is specified by restricting the onOccurrence::accessedFeature
|
|
64
|
+
* on usages of this behavior.
|
|
65
|
+
*/
|
|
66
|
+
}
|
|
67
|
+
connector :SelfSameLifeLink from onOccurrence.startingAt.accessedFeature to values;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
abstract function FeatureReadEvaluation specializes FeatureAccessPerformance, Evaluation {
|
|
71
|
+
doc
|
|
72
|
+
/*
|
|
73
|
+
* A FeatureReadEvaluation is a FeatureAccessPerformance that is a function providing as
|
|
74
|
+
* its result the values of a feature on an occurrence at the time its evaluation ends.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
in onOccurrence: Occurrence [1];
|
|
78
|
+
return resultValues : Anything [*] nonunique redefines result redefines values;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
abstract behavior FeatureWritePerformance specializes FeatureAccessPerformance {
|
|
82
|
+
doc
|
|
83
|
+
/*
|
|
84
|
+
* A FeatureWritePerformance is a FeatureAccessPerformance that assigns the values of a
|
|
85
|
+
* feature on an occurrence to the given replacementValues at time its performance ends.
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
in feature onOccurrence : Occurrence[1] redefines onOccurrence;
|
|
89
|
+
inout feature replacementValues : Anything redefines values [*] nonunique;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
abstract behavior FeatureMonitorPerformance specializes FeatureReferencingPerformance {
|
|
93
|
+
doc
|
|
94
|
+
/*
|
|
95
|
+
* A FeatureMonitorPerformance is a FeatureReferencingPerformance that waits for values
|
|
96
|
+
* of monitoredFeature to change on onOccurrence from what they were when the performance
|
|
97
|
+
* started. The values before and after the change are given by beforeValues and afterValues.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
in feature redefines onOccurrence {
|
|
101
|
+
feature monitoredOccurrence : Occurrence [1] subsets timeSlices {
|
|
102
|
+
abstract feature monitoredFeature : Anything[*] nonunique;
|
|
103
|
+
feature beforeTimeSlice : Occurrence [1] subsets timeSlices {
|
|
104
|
+
feature redefines monitoredFeature;
|
|
105
|
+
}
|
|
106
|
+
feature afterSnapshot : Occurrence [1] subsets snapshots {
|
|
107
|
+
feature redefines monitoredFeature;
|
|
108
|
+
}
|
|
109
|
+
connector :HappensJustBefore from beforeTimeSlice to afterSnapshot;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
out feature afterValues redefines values;
|
|
113
|
+
out feature beforeValues : Anything[*] nonunique;
|
|
114
|
+
inv { not beforeValues->equals(afterValues) }
|
|
115
|
+
|
|
116
|
+
private connector : HappensWhile
|
|
117
|
+
from [1] onOccurrence.monitoredOccurrence.beforeTimeSlice.startShot to [1] startShot;
|
|
118
|
+
private connector : SelfSameLifeLink
|
|
119
|
+
from [1] onOccurrence.monitoredOccurrence.beforeTimeSlice.monitoredFeature to [1] beforeValues;
|
|
120
|
+
private connector : SelfSameLifeLink
|
|
121
|
+
from [1] onOccurrence.monitoredOccurrence.afterSnapshot.monitoredFeature to [1] afterValues;
|
|
122
|
+
protected connector endWhen : HappensBefore
|
|
123
|
+
from [1] onOccurrence.monitoredOccurrence.afterSnapshot to [1] endShot;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
behavior EvaluationResultMonitorPerformance specializes FeatureMonitorPerformance {
|
|
127
|
+
doc
|
|
128
|
+
/*
|
|
129
|
+
* An EvaluationResultMonitorPerformance is a FeatureMonitorPerformance that waits for changes
|
|
130
|
+
* in the result of an Evaluation identified by onOccurrence. The Predicate being evaluated must
|
|
131
|
+
* be able to produce multiple results over time, for example by only using BindingConnectors
|
|
132
|
+
* between Steps, rather than Successions or Flows, including in its Step behaviors.
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
in feature onOccurrence : Evaluation redefines onOccurrence {
|
|
136
|
+
protected expr monitoredOccurrence : Evaluation [1] redefines monitoredOccurrence {
|
|
137
|
+
return result : Anything[*] redefines result, monitoredFeature;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
behavior BooleanEvaluationResultMonitorPerformance specializes EvaluationResultMonitorPerformance {
|
|
143
|
+
doc
|
|
144
|
+
/*
|
|
145
|
+
* A BooleanEvaluationResultMonitorPerformance is a EvaluationResultMonitorPerformance
|
|
146
|
+
* that waits for changes in the result of a BooleanEvaluation identified by onOccurrence.
|
|
147
|
+
*/
|
|
148
|
+
|
|
149
|
+
in bool redefines onOccurrence {
|
|
150
|
+
protected bool redefines monitoredOccurrence[1] {
|
|
151
|
+
return result : Boolean [1];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
out redefines afterValues : Boolean [1];
|
|
155
|
+
out redefines beforeValues : Boolean [1];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
behavior BooleanEvaluationResultToMonitorPerformance specializes FeatureReferencingPerformance {
|
|
159
|
+
doc
|
|
160
|
+
/*
|
|
161
|
+
* A BooleanEvaluationResultToMonitorPerformance is a FeatureReferencingPerformance that waits
|
|
162
|
+
* for the result of a BooleanEvaluation (identified by onOccurrence) to change to either true
|
|
163
|
+
* or false, as indicated by isToTrue (defaulting to true). If the result is already true (or false),
|
|
164
|
+
* the performance waits for the result to become false (or true) before waiting again for it to
|
|
165
|
+
* change back.
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
in bool redefines onOccurrence;
|
|
169
|
+
feature isToTrue : Boolean [1] default true;
|
|
170
|
+
out afterValues: Boolean[1] redefines values = isToTrue;
|
|
171
|
+
private feature monitor1 : BooleanEvaluationResultMonitorPerformance [1] {
|
|
172
|
+
feature redefines endWhen : HappensJustBefore {
|
|
173
|
+
end feature earlierOccurrence;
|
|
174
|
+
end feature laterOccurrence;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
private feature monitor2 : BooleanEvaluationResultMonitorPerformance [1] {
|
|
178
|
+
feature redefines endWhen : HappensJustBefore {
|
|
179
|
+
end feature earlierOccurrence;
|
|
180
|
+
end feature laterOccurrence;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private connector : HappensJustBefore from [1] monitor1 to [0..1] monitor2;
|
|
185
|
+
inv { isEmpty(monitor2) == (monitor1.afterValues == isToTrue) }
|
|
186
|
+
|
|
187
|
+
private binding [1] monitor1.onOccurrence = [1] onOccurrence;
|
|
188
|
+
private binding [1] monitor2.onOccurrence = [1] onOccurrence;
|
|
189
|
+
}
|
|
190
|
+
}
|