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
package/docs/TOOLS.md
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Tools reference (all MCP tools)
|
|
2
|
+
|
|
3
|
+
Single reference for every MCP tool available in this workspace. Use when you need exact parameters, return shapes, or which server exposes which tool.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. sysmledgraph MCP (this project)
|
|
8
|
+
|
|
9
|
+
Server: run `node dist/mcp/index.js` or `sysmledgraph-mcp`. Add to `.cursor/mcp.json` to use from Cursor.
|
|
10
|
+
|
|
11
|
+
Graph: one `Node` table (`id`, `name`, `path`, `label`); rel tables per edge type (`IN_DOCUMENT`, `IN_PACKAGE`, `PARENT`, `TYPES`, `REFERENCES`, `IMPORTS`, etc.). Labels: Document, Package, PartDef, PartUsage, ConnectionDef, ConnectionUsage, PortDef, Port, RequirementDef, Block, ValueType, Action, StateMachine.
|
|
12
|
+
|
|
13
|
+
| Tool | Description |
|
|
14
|
+
|------|-------------|
|
|
15
|
+
| **indexDbGraph** | Build the knowledge graph from path(s). |
|
|
16
|
+
| **list_indexed** | List indexed path(s). |
|
|
17
|
+
| **clean_index** | Remove index for path or all. |
|
|
18
|
+
| **cypher** | Run a Cypher query on the graph (uses first indexed path). |
|
|
19
|
+
| **query** | Concept search over symbols (by name/label). |
|
|
20
|
+
| **context** | 360° view for one symbol (node + edges). |
|
|
21
|
+
| **impact** | Blast radius: what uses this element or what it uses. |
|
|
22
|
+
| **rename** | Multi-file rename preview (dry_run only in v1). |
|
|
23
|
+
| **generate_map** | Generate Markdown from the graph (interconnection view). |
|
|
24
|
+
|
|
25
|
+
### indexDbGraph
|
|
26
|
+
|
|
27
|
+
Build the graph from one or more directory paths. Relative paths are resolved against `process.cwd()`.
|
|
28
|
+
|
|
29
|
+
**Parameters:**
|
|
30
|
+
|
|
31
|
+
| Name | Type | Required | Description |
|
|
32
|
+
|------|------|----------|-------------|
|
|
33
|
+
| `path` | string | no* | Single path to index. |
|
|
34
|
+
| `paths` | string[] | no* | Multiple paths to index. |
|
|
35
|
+
|
|
36
|
+
*At least one of `path` or `paths` is required.
|
|
37
|
+
|
|
38
|
+
**Returns:** `{ ok: true, filesProcessed: number }` or `{ ok: false, error: string }`
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### list_indexed
|
|
43
|
+
|
|
44
|
+
List all paths currently registered in the index.
|
|
45
|
+
|
|
46
|
+
**Parameters:** None.
|
|
47
|
+
|
|
48
|
+
**Returns:** `{ ok: true, paths: string[] }` or `{ ok: false, error: string }`
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### clean_index
|
|
53
|
+
|
|
54
|
+
Remove index data for a path or for all indexed paths.
|
|
55
|
+
|
|
56
|
+
**Parameters:**
|
|
57
|
+
|
|
58
|
+
| Name | Type | Required | Description |
|
|
59
|
+
|------|------|----------|-------------|
|
|
60
|
+
| `path` | string | no | Path to clean; omit to clean all. |
|
|
61
|
+
|
|
62
|
+
**Returns:** `{ ok: true, removed: string[] }` or `{ ok: false, error: string }`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### cypher
|
|
67
|
+
|
|
68
|
+
Run a Cypher query against the graph. Uses the first indexed path to resolve the DB.
|
|
69
|
+
|
|
70
|
+
**Parameters:**
|
|
71
|
+
|
|
72
|
+
| Name | Type | Required | Description |
|
|
73
|
+
|------|------|----------|-------------|
|
|
74
|
+
| `query` | string | yes | Cypher query string. |
|
|
75
|
+
|
|
76
|
+
**Returns:** `{ ok: true, rows: unknown[] }` or `{ ok: false, error: string }`
|
|
77
|
+
|
|
78
|
+
**Example:** `MATCH (n:Node) WHERE n.label = 'PartDef' RETURN n.id, n.name, n.path LIMIT 50`
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### query
|
|
83
|
+
|
|
84
|
+
Concept search over symbols: matches `query` against node names/labels (case-insensitive). Optional filter by node label.
|
|
85
|
+
|
|
86
|
+
**Parameters:**
|
|
87
|
+
|
|
88
|
+
| Name | Type | Required | Description |
|
|
89
|
+
|------|------|----------|-------------|
|
|
90
|
+
| `query` | string | yes | Search string. |
|
|
91
|
+
| `kind` | string | no | Filter by node label (e.g. `PartDef`, `Document`). |
|
|
92
|
+
|
|
93
|
+
**Returns:** `{ ok: true, nodes: unknown[] }` or `{ ok: false, error: string }`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### context
|
|
98
|
+
|
|
99
|
+
Return one node and its edges (incoming and outgoing) for a symbol by name or id.
|
|
100
|
+
|
|
101
|
+
**Parameters:**
|
|
102
|
+
|
|
103
|
+
| Name | Type | Required | Description |
|
|
104
|
+
|------|------|----------|-------------|
|
|
105
|
+
| `name` | string | yes | Symbol name or id. |
|
|
106
|
+
|
|
107
|
+
**Returns:** `{ ok: true, node: unknown, edges: unknown[] }` or `{ ok: false, error: string }`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### impact
|
|
112
|
+
|
|
113
|
+
Blast radius: list nodes that reference the target (upstream) or that the target references (downstream).
|
|
114
|
+
|
|
115
|
+
**Parameters:**
|
|
116
|
+
|
|
117
|
+
| Name | Type | Required | Description |
|
|
118
|
+
|------|------|----------|-------------|
|
|
119
|
+
| `target` | string | yes | Symbol name or id. |
|
|
120
|
+
| `direction` | `'upstream'` \| `'downstream'` | no | `upstream` = what references this; `downstream` = what this references. |
|
|
121
|
+
|
|
122
|
+
**Returns:** `{ ok: true, nodes: unknown[] }` or `{ ok: false, error: string }`
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### rename
|
|
127
|
+
|
|
128
|
+
Multi-file rename preview. In v1, only dry-run is implemented; no edits are applied.
|
|
129
|
+
|
|
130
|
+
**Parameters:**
|
|
131
|
+
|
|
132
|
+
| Name | Type | Required | Description |
|
|
133
|
+
|------|------|----------|-------------|
|
|
134
|
+
| `symbol` | string | yes | Symbol to rename. |
|
|
135
|
+
| `newName` | string | yes | New name. |
|
|
136
|
+
| `dry_run` | boolean | no | If true, only return preview (default: true). |
|
|
137
|
+
|
|
138
|
+
**Returns:** `{ ok: true, preview: { path: string, count: number }[], message?: string }` or `{ ok: false, error: string }`
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### generate_map
|
|
143
|
+
|
|
144
|
+
Generate Markdown from the graph (documents, nodes by label, edges). Uses first indexed path. Fails if no indexed path or empty graph.
|
|
145
|
+
|
|
146
|
+
**Parameters:**
|
|
147
|
+
|
|
148
|
+
| Name | Type | Required | Description |
|
|
149
|
+
|------|------|----------|-------------|
|
|
150
|
+
| `output_path` | string | no | Optional path to write the .md file (if server can write). |
|
|
151
|
+
|
|
152
|
+
**Returns:** `{ ok: true, markdown: string }` or `{ ok: false, error: string }`
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### Resources (sysmledgraph)
|
|
157
|
+
|
|
158
|
+
| URI | Description |
|
|
159
|
+
|-----|-------------|
|
|
160
|
+
| `sysmledgraph://context` | Index stats and indexed paths (markdown). |
|
|
161
|
+
| `sysmledgraph://context/{path}` | Context for a specific indexed path. |
|
|
162
|
+
| `sysmledgraph://schema` | Graph node/edge schema (markdown). |
|
|
163
|
+
| `sysmledgraph://schema/{path}` | Schema for a specific indexed path. |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 2. GitNexus MCP
|
|
168
|
+
|
|
169
|
+
Server: `npx -y gitnexus@latest mcp` (configured in `.cursor/mcp.json` as `gitnexus`).
|
|
170
|
+
|
|
171
|
+
Index: run `npx gitnexus analyze` from project root first. Read `gitnexus://repo/{name}/context` for overview and staleness; read `gitnexus://repo/{name}/schema` before using `cypher`.
|
|
172
|
+
|
|
173
|
+
| Tool | Description |
|
|
174
|
+
|------|-------------|
|
|
175
|
+
| **query** | Process-grouped code intelligence — execution flows related to a concept. |
|
|
176
|
+
| **context** | 360° symbol view — categorized refs, processes it participates in. |
|
|
177
|
+
| **impact** | Symbol blast radius — depth 1/2/3 with confidence. |
|
|
178
|
+
| **detect_changes** | Git-diff impact — what do current changes affect. |
|
|
179
|
+
| **rename** | Multi-file coordinated rename with confidence-tagged edits. |
|
|
180
|
+
| **cypher** | Raw graph queries (read schema resource first). |
|
|
181
|
+
| **list_repos** | Discover indexed repos. |
|
|
182
|
+
|
|
183
|
+
### query (GitNexus)
|
|
184
|
+
|
|
185
|
+
Find execution flows and symbols related to a concept.
|
|
186
|
+
|
|
187
|
+
**Parameters:**
|
|
188
|
+
|
|
189
|
+
| Name | Type | Required | Description |
|
|
190
|
+
|------|------|----------|-------------|
|
|
191
|
+
| `query` | string | yes | Concept or search text (e.g. "payment processing", "auth"). |
|
|
192
|
+
|
|
193
|
+
**Returns:** Process-grouped results; symbols and file locations per flow.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### context (GitNexus)
|
|
198
|
+
|
|
199
|
+
Full context for one symbol: incoming/outgoing calls, processes, file.
|
|
200
|
+
|
|
201
|
+
**Parameters:**
|
|
202
|
+
|
|
203
|
+
| Name | Type | Required | Description |
|
|
204
|
+
|------|------|----------|-------------|
|
|
205
|
+
| `name` | string | yes | Symbol name (e.g. function, class). |
|
|
206
|
+
|
|
207
|
+
**Returns:** Incoming calls, outgoing calls, processes the symbol participates in.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
### impact (GitNexus)
|
|
212
|
+
|
|
213
|
+
Blast radius with depth and confidence. Use before changing code.
|
|
214
|
+
|
|
215
|
+
**Parameters:**
|
|
216
|
+
|
|
217
|
+
| Name | Type | Required | Description |
|
|
218
|
+
|------|------|----------|-------------|
|
|
219
|
+
| `target` | string | yes | Symbol name. |
|
|
220
|
+
| `direction` | `'upstream'` \| `'downstream'` | no | `upstream` = what depends on this. |
|
|
221
|
+
| `minConfidence` | number | no | e.g. 0.8. |
|
|
222
|
+
| `maxDepth` | number | no | e.g. 3 (d=1 direct, d=2/3 transitive). |
|
|
223
|
+
|
|
224
|
+
**Returns:** Nodes by depth (d=1 WILL BREAK, d=2 LIKELY AFFECTED, d=3 MAY NEED TESTING).
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
### detect_changes (GitNexus)
|
|
229
|
+
|
|
230
|
+
Map current git changes to affected symbols and processes.
|
|
231
|
+
|
|
232
|
+
**Parameters:**
|
|
233
|
+
|
|
234
|
+
| Name | Type | Required | Description |
|
|
235
|
+
|------|------|----------|-------------|
|
|
236
|
+
| `scope` | `'staged'` \| `'all'` | no | Staged changes only or all working-tree changes. |
|
|
237
|
+
|
|
238
|
+
**Returns:** Changed symbols, affected processes, risk level.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
### rename (GitNexus)
|
|
243
|
+
|
|
244
|
+
Multi-file rename with graph + AST search; supports dry_run then apply.
|
|
245
|
+
|
|
246
|
+
**Parameters:**
|
|
247
|
+
|
|
248
|
+
| Name | Type | Required | Description |
|
|
249
|
+
|------|------|----------|-------------|
|
|
250
|
+
| `symbol_name` | string | yes | Current symbol name. |
|
|
251
|
+
| `new_name` | string | yes | New name. |
|
|
252
|
+
| `dry_run` | boolean | no | If true, preview only (default: true). |
|
|
253
|
+
|
|
254
|
+
**Returns:** List of edits (file_path, line, old_text, new_text, confidence); graph edits high confidence, ast_search edits need review.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### cypher (GitNexus)
|
|
259
|
+
|
|
260
|
+
Run Cypher on the GitNexus graph. Read `gitnexus://repo/{name}/schema` first.
|
|
261
|
+
|
|
262
|
+
**Parameters:**
|
|
263
|
+
|
|
264
|
+
| Name | Type | Required | Description |
|
|
265
|
+
|------|------|----------|-------------|
|
|
266
|
+
| `query` | string | yes | Cypher query. |
|
|
267
|
+
|
|
268
|
+
**Returns:** Query result rows.
|
|
269
|
+
|
|
270
|
+
**Example:** `MATCH (caller)-[:CodeRelation {type: 'CALLS'}]->(f:Function {name: "myFunc"}) RETURN caller.name, caller.filePath`
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### list_repos (GitNexus)
|
|
275
|
+
|
|
276
|
+
List all repos registered in the GitNexus registry.
|
|
277
|
+
|
|
278
|
+
**Parameters:** None.
|
|
279
|
+
|
|
280
|
+
**Returns:** Indexed repo names/paths (same as `npx gitnexus list`).
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
### Resources (GitNexus)
|
|
285
|
+
|
|
286
|
+
| URI | Description |
|
|
287
|
+
|-----|-------------|
|
|
288
|
+
| `gitnexus://repo/{name}/context` | Stats, staleness check. |
|
|
289
|
+
| `gitnexus://repo/{name}/clusters` | Functional areas with cohesion scores. |
|
|
290
|
+
| `gitnexus://repo/{name}/cluster/{clusterName}` | Area members. |
|
|
291
|
+
| `gitnexus://repo/{name}/processes` | All execution flows. |
|
|
292
|
+
| `gitnexus://repo/{name}/process/{processName}` | Step-by-step trace. |
|
|
293
|
+
| `gitnexus://repo/{name}/schema` | Graph schema for Cypher. |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 3. Other MCP servers (this workspace)
|
|
298
|
+
|
|
299
|
+
| Server | Purpose | Tools |
|
|
300
|
+
|--------|---------|--------|
|
|
301
|
+
| **sysml-v2** | SysML v2 LSP MCP | See `node_modules/sysml-v2-lsp` for tool list. |
|
|
302
|
+
| **context7** | Context7 MCP | See `@upstash/context7-mcp` for tool list. |
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Quick pick: which tool for what
|
|
307
|
+
|
|
308
|
+
| Goal | Prefer |
|
|
309
|
+
|------|--------|
|
|
310
|
+
| Index SysML/models in this project | sysmledgraph **indexDbGraph** |
|
|
311
|
+
| Search SysML symbols / graph query | sysmledgraph **query**, **cypher**, **context** |
|
|
312
|
+
| “What uses this?” (sysmledgraph) | sysmledgraph **impact** |
|
|
313
|
+
| Understand or explore a codebase (TS/JS etc.) | GitNexus **query**, **context**; resources **process**, **clusters** |
|
|
314
|
+
| “What breaks if I change this?” (code) | GitNexus **impact**, **detect_changes** |
|
|
315
|
+
| Rename symbol across files (code) | GitNexus **rename** (dry_run first) |
|
|
316
|
+
| Rename symbol (SysML graph only) | sysmledgraph **rename** (preview only in v1) |
|
|
317
|
+
| List what’s indexed | sysmledgraph **list_indexed**; GitNexus **list_repos** |
|
package/lsp/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# LSP server (dedicated init)
|
|
2
|
+
|
|
3
|
+
This folder is a **separate npm install** for the SysML LSP server. This is the **only** LSP used by sysmledgraph when present; root `node_modules` is fallback. Use it so the server runs with its own `cwd` and dependencies.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd lsp
|
|
9
|
+
npm install
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What this does
|
|
13
|
+
|
|
14
|
+
- **Isolated install**: `sysml-v2-lsp` lives in `lsp/node_modules/`, not the repo root. The server starts with **process cwd = `lsp/`**, which can help it find config or libraries relative to this directory.
|
|
15
|
+
- **Clear boundary**: The main project points at this LSP when you set:
|
|
16
|
+
- `SYSMLLSP_SERVER_PATH` to the **absolute** path to:
|
|
17
|
+
- `lsp/node_modules/sysml-v2-lsp/dist/server/server.js` (LSP)
|
|
18
|
+
- or `lsp/node_modules/sysml-v2-lsp/dist/server/mcpServer.js` (MCP)
|
|
19
|
+
- and the spawn **cwd** to `lsp/` (or the parent that contains `lsp/`) so the server’s working directory is correct.
|
|
20
|
+
|
|
21
|
+
## Running the server
|
|
22
|
+
|
|
23
|
+
- **stdio (for our indexer)**: The main app spawns the server; it doesn’t run “standalone” here. Use this folder’s path in `SYSMLLSP_SERVER_PATH` and set the spawn cwd to `lsp` when starting the process.
|
|
24
|
+
- **Manual run** (e.g. to see stdout/stderr):
|
|
25
|
+
```bash
|
|
26
|
+
cd lsp && npm start
|
|
27
|
+
```
|
|
28
|
+
The process will wait for LSP messages on stdin; useful for debugging.
|
|
29
|
+
|
|
30
|
+
## Main project
|
|
31
|
+
|
|
32
|
+
From repo root, after `cd lsp && npm install`:
|
|
33
|
+
|
|
34
|
+
- **LSP (analyze/index)**
|
|
35
|
+
Point `SYSMLLSP_SERVER_PATH` at:
|
|
36
|
+
- `lsp/node_modules/sysml-v2-lsp/dist/server/server.js`
|
|
37
|
+
(use absolute path or resolve from repo root.)
|
|
38
|
+
- **Spawn cwd**
|
|
39
|
+
When the main project spawns this server, set **cwd** to the **`lsp`** directory (absolute path) so the LSP server’s init and file resolution use this folder.
|
|
40
|
+
|
|
41
|
+
If the main app already resolves cwd from the server path (e.g. “dirname of server.js → dist/server → cwd = package root”), then with the server path under `lsp/node_modules/...`, that cwd would be `lsp/`. That is what we want.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
+
|
|
4
|
+
case `uname` in
|
|
5
|
+
*CYGWIN*|*MINGW*|*MSYS*)
|
|
6
|
+
if command -v cygpath > /dev/null 2>&1; then
|
|
7
|
+
basedir=`cygpath -w "$basedir"`
|
|
8
|
+
fi
|
|
9
|
+
;;
|
|
10
|
+
esac
|
|
11
|
+
|
|
12
|
+
exec "$basedir/../sysml-v2-lsp/dist/server/mcpServer.js" "$@"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env pwsh
|
|
2
|
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
|
3
|
+
|
|
4
|
+
$exe=""
|
|
5
|
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
|
6
|
+
# Fix case when both the Windows and Linux builds of Node
|
|
7
|
+
# are installed in the same directory
|
|
8
|
+
$exe=".exe"
|
|
9
|
+
}
|
|
10
|
+
# Support pipeline input
|
|
11
|
+
if ($MyInvocation.ExpectingInput) {
|
|
12
|
+
$input | & "$basedir/../sysml-v2-lsp/dist/server/mcpServer.js" $args
|
|
13
|
+
} else {
|
|
14
|
+
& "$basedir/../sysml-v2-lsp/dist/server/mcpServer.js" $args
|
|
15
|
+
}
|
|
16
|
+
exit $LASTEXITCODE
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sysmledgraph-lsp-server",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"node_modules/sysml-v2-lsp": {
|
|
8
|
+
"version": "0.7.0",
|
|
9
|
+
"resolved": "https://registry.npmjs.org/sysml-v2-lsp/-/sysml-v2-lsp-0.7.0.tgz",
|
|
10
|
+
"integrity": "sha512-cJ2JINpe7Ez1gyMO020gEokoTLmqRFv+KTcNqGq+10PI3mE0q74anHLxFzbrjIx2wRDeoacQcMg3v9XVkvuWHw==",
|
|
11
|
+
"hasInstallScript": true,
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"bin": {
|
|
14
|
+
"sysml-mcp": "dist/server/mcpServer.js"
|
|
15
|
+
},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20",
|
|
18
|
+
"vscode": "^1.85.0"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.7.0]
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Workspace-wide semantic validation with cross-file symbol indexes (byName, byParent, byQualifiedName, definitionsByName, portsByName)
|
|
8
|
+
- Three new validation rules: redefinition multiplicity, port type compatibility, constraint body references
|
|
9
|
+
- Quick-fix code actions for all three new rules (align multiplicity, switch port endpoint, suggest nearest member)
|
|
10
|
+
- Context-aware completions: port endpoints in `connect` blocks, type annotation filtering, workspace definition symbols
|
|
11
|
+
- Semantic feedback in hover tooltips — shows diagnostics and repair hints at the hovered position
|
|
12
|
+
- Cached semantic diagnostics per document version to avoid redundant revalidation
|
|
13
|
+
- MCP preview tool falls back to cached/loaded documents when `code` parameter is omitted
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Unused-definition rule narrowed to PartDef/ActionDef, excludes types with base types, promoted from Hint to Warning, now workspace-scoped
|
|
18
|
+
- Grammar updated to OMG "2026-02 - SysML v2 Release" — removed local `end <keyword>` patch in favour of upstream `endFeatureUsage` rule
|
|
19
|
+
- MCP non-visual tools annotated with explicit "NOT Visualization" routing guidance
|
|
20
|
+
- MCP preview response stripped to minimal render data (mermaidMarkup + title)
|
|
21
|
+
- MCP tool routing guidance and aliases expanded for diagnostics, validation, and file-focused preview requests
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Semantic validator signal quality: reduced specialization false positives and downgraded low-value unused-definition reports to warnings
|
|
26
|
+
- Document-close diagnostics race: pending validation timers are cancelled and diagnostics publishing is guarded for closed documents
|
|
27
|
+
|
|
28
|
+
## [0.6.0]
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Shared utilities: `identUtils.ts` for identifier handling, `symbolKindMapping.ts` for LSP SymbolKind mapping
|
|
33
|
+
- Keywords now derived from ANTLR grammar at runtime — no manual list to maintain
|
|
34
|
+
- Grammar support for `end` keyword syntax in interface/connection definitions
|
|
35
|
+
- DFA snapshot infrastructure for parser serialisation
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
|
|
39
|
+
- Code actions use structured diagnostic data instead of message parsing
|
|
40
|
+
- Semantic tokens provider integrates lexer token types for operators/punctuation
|
|
41
|
+
- Library indexing supports qualified name resolution
|
|
42
|
+
- Parser retries with cleared DFA on error
|
|
43
|
+
- Refactored providers to use shared utility modules
|
|
44
|
+
|
|
45
|
+
### Removed
|
|
46
|
+
|
|
47
|
+
- Hand-maintained keyword list (replaced by grammar-derived extraction)
|
|
48
|
+
|
|
49
|
+
## [0.5.1]
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
|
|
53
|
+
- Semantic validator: library type and feature reference checks
|
|
54
|
+
- Symbol table: improved keyword and redefinition pattern handling
|
|
55
|
+
|
|
56
|
+
## [0.5.0]
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- Symbol table uses `ruleIndex` instead of `constructor.name` for minification safety
|
|
61
|
+
- Removed committed dist/ build artefacts from repository
|
|
62
|
+
|
|
63
|
+
## [0.4.1]
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- Web client graceful shutdown
|
|
68
|
+
- Release pipeline fix
|
|
69
|
+
|
|
70
|
+
## [0.4.0]
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- Web client: browser-based SysML editor (`clients/web/`)
|
|
75
|
+
- Python LSP client: Jupyter notebook demo
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
|
|
79
|
+
- Library index, MCP server, and symbol table improvements
|
|
80
|
+
|
|
81
|
+
## [0.3.1]
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- esbuild: added `keepNames` for debugging
|
|
86
|
+
- Removed committed dist/ build artefacts
|
|
87
|
+
|
|
88
|
+
## [0.3.0]
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
|
|
92
|
+
- Mermaid diagram preview with 6 diagram types, focus mode, and diff mode
|
|
93
|
+
- Complexity analyser: structural metrics with composite 0–100 index
|
|
94
|
+
- Semantic validator: unresolved types, invalid multiplicity, duplicate definitions
|
|
95
|
+
- MCP tools: `preview`, `getDiagnostics`, `getComplexity`
|
|
96
|
+
- Code action quick-fixes: naming conventions, doc stubs, empty enum placeholders
|
|
97
|
+
- Library type-level indexing with Go-to-Definition into standard library
|
|
98
|
+
- Multiplicity and documentation extraction from parse tree
|
|
99
|
+
- LSP `sysml/serverStats`, `sysml/clearCache`, `sysml/status` requests
|
|
100
|
+
|
|
101
|
+
### Changed
|
|
102
|
+
|
|
103
|
+
- MCP `validate` response: `syntaxErrors` + `semanticIssues` (was `errors` + `errorCount`)
|
|
104
|
+
- Symbol `typeName` → `typeNames` (array)
|
|
105
|
+
- Diagnostics computed synchronously (removed background worker)
|
|
106
|
+
- Parser simplified to single-pass (removed SLL/LL fallback)
|
|
107
|
+
- esbuild output changed from ESM to CJS
|
|
108
|
+
|
|
109
|
+
### Removed
|
|
110
|
+
|
|
111
|
+
- Background parse worker thread and DFA warm-up
|
|
112
|
+
- Text-scanning reference finder (replaced by symbol-table lookups)
|
|
113
|
+
|
|
114
|
+
## [0.2.0]
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
|
|
118
|
+
- Custom LSP request `sysml/model` for full semantic model with scoped queries
|
|
119
|
+
- MCP server (`sysml-mcp` CLI): 7 tools, 3 resources, 3 prompts
|
|
120
|
+
- Standard library: 94 bundled SysML v2 / KerML files
|
|
121
|
+
- LSP providers: inlay hints, call/type hierarchy, signature help, code lens, document links, workspace symbols, linked editing, selection ranges, code actions, formatting
|
|
122
|
+
- Keyword validation with "did you mean?" suggestions
|
|
123
|
+
- npm package, Python LSP client, background parse worker
|
|
124
|
+
- `make update-library`, `make package-server`, `make test-package`
|
|
125
|
+
|
|
126
|
+
### Changed
|
|
127
|
+
|
|
128
|
+
- Go-to-definition falls back to standard library
|
|
129
|
+
- Element kind enum expanded to 55 kinds
|
|
130
|
+
|
|
131
|
+
## [0.1.7]
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
|
|
135
|
+
- Keyword validator: expanded SysML element coverage
|
|
136
|
+
- New parser, symbol table, and provider tests
|
|
137
|
+
|
|
138
|
+
## [0.1.6]
|
|
139
|
+
|
|
140
|
+
### Fixed
|
|
141
|
+
|
|
142
|
+
- Keyword validation diagnostic messages
|
|
143
|
+
- Python LSP client diagnostics handling
|
|
144
|
+
|
|
145
|
+
## [0.1.5]
|
|
146
|
+
|
|
147
|
+
### Added
|
|
148
|
+
|
|
149
|
+
- Inlay hints, call hierarchy improvements
|
|
150
|
+
- Python LSP client with README
|
|
151
|
+
- Client restructured under `clients/vscode/`
|
|
152
|
+
|
|
153
|
+
## [0.1.4]
|
|
154
|
+
|
|
155
|
+
### Added
|
|
156
|
+
|
|
157
|
+
- MCP core module extracted from MCP server
|
|
158
|
+
- Constraint parsing tests, grammar refinements
|
|
159
|
+
|
|
160
|
+
## [0.1.3]
|
|
161
|
+
|
|
162
|
+
### Fixed
|
|
163
|
+
|
|
164
|
+
- `constructor.name` minification breaking code lens
|
|
165
|
+
- ESM bundles renamed to `.mjs` for Node 20 compatibility
|
|
166
|
+
- Bundled deps moved to devDependencies (zero runtime deps)
|
|
167
|
+
|
|
168
|
+
## [0.1.2]
|
|
169
|
+
|
|
170
|
+
### Fixed
|
|
171
|
+
|
|
172
|
+
- Removed unused `antlr4-c3` dependency
|
|
173
|
+
|
|
174
|
+
## [0.1.1]
|
|
175
|
+
|
|
176
|
+
### Fixed
|
|
177
|
+
|
|
178
|
+
- Dropped Node 18 from CI (Vite 7 requires Node 20+)
|
|
179
|
+
- Release pipeline and trusted publishing fixes
|
|
180
|
+
|
|
181
|
+
## [0.1.0]
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
|
|
185
|
+
- Initial LSP server with ANTLR4-based SysML v2 parser
|
|
186
|
+
- LSP providers: diagnostics, document symbols, hover, go-to-definition, find references, completion, semantic tokens, folding, rename
|
|
187
|
+
- VS Code Language Client extension
|
|
188
|
+
- vitest unit tests, GitHub Actions CI/CD, Dev Container
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Jamie Dalton
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|