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,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph schema: node and rel tables for Kuzu.
|
|
3
|
+
* Phase 2 step 6. One Node table (label as property); Document kept for clarity; rel tables per edge type.
|
|
4
|
+
*/
|
|
5
|
+
import { NODE_LABELS, EDGE_TYPES } from '../types.js';
|
|
6
|
+
export { NODE_LABELS, EDGE_TYPES };
|
|
7
|
+
/** Single node table: id (path or qualifiedName), name, path, label (Document|Package|PartDef|...). */
|
|
8
|
+
export declare const NODE_TABLE = "Node";
|
|
9
|
+
/**
|
|
10
|
+
* DDL statements for Kuzu. Node table + one rel table per edge type (Node->Node).
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSchemaDdl(): string[];
|
|
13
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAEnC,uGAAuG;AACvG,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAQvC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph schema: node and rel tables for Kuzu.
|
|
3
|
+
* Phase 2 step 6. One Node table (label as property); Document kept for clarity; rel tables per edge type.
|
|
4
|
+
*/
|
|
5
|
+
import { NODE_LABELS, EDGE_TYPES } from '../types.js';
|
|
6
|
+
export { NODE_LABELS, EDGE_TYPES };
|
|
7
|
+
/** Single node table: id (path or qualifiedName), name, path, label (Document|Package|PartDef|...). */
|
|
8
|
+
export const NODE_TABLE = 'Node';
|
|
9
|
+
/**
|
|
10
|
+
* DDL statements for Kuzu. Node table + one rel table per edge type (Node->Node).
|
|
11
|
+
*/
|
|
12
|
+
export function getSchemaDdl() {
|
|
13
|
+
const statements = [
|
|
14
|
+
`CREATE NODE TABLE ${NODE_TABLE}(id STRING, name STRING, path STRING, label STRING, PRIMARY KEY(id))`,
|
|
15
|
+
];
|
|
16
|
+
for (const edgeType of EDGE_TYPES) {
|
|
17
|
+
statements.push(`CREATE REL TABLE ${edgeType}(FROM ${NODE_TABLE} TO ${NODE_TABLE})`);
|
|
18
|
+
}
|
|
19
|
+
return statements;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAEnC,uGAAuG;AACvG,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,UAAU,GAAa;QAC3B,qBAAqB,UAAU,sEAAsE;KACtG,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,oBAAoB,QAAQ,SAAS,UAAU,OAAO,UAAU,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main entry exports for programmatic use.
|
|
3
|
+
*/
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
export { findSysmlFiles } from './discovery/find-sysml.js';
|
|
6
|
+
export { applyLoadOrder } from './discovery/load-order.js';
|
|
7
|
+
export { runIndexer } from './indexer/indexer.js';
|
|
8
|
+
export { openGraphStore, getCachedOrOpenGraphStore, invalidateGraphStoreCache, closeGraphStoreCache, } from './graph/graph-store.js';
|
|
9
|
+
export { getStorageRoot, setStorageRoot, getDbPathForIndexedPath, getMergedDbPath } from './storage/location.js';
|
|
10
|
+
export { listIndexedPaths } from './storage/list.js';
|
|
11
|
+
export { cleanIndex } from './storage/clean.js';
|
|
12
|
+
export { readRegistry, readRegistryFull, addToRegistry, removeFromRegistry, clearRegistry } from './storage/registry.js';
|
|
13
|
+
export { createSysmlMcpClient, getMcpServerPath, type SysmlMcpClientOptions, type ParseResult, type ValidateResult, type SymbolInfo, type GetSymbolsResult, } from './parser/sysml-mcp-client.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main entry exports for programmatic use.
|
|
3
|
+
*/
|
|
4
|
+
export * from './types.js';
|
|
5
|
+
export { findSysmlFiles } from './discovery/find-sysml.js';
|
|
6
|
+
export { applyLoadOrder } from './discovery/load-order.js';
|
|
7
|
+
export { runIndexer } from './indexer/indexer.js';
|
|
8
|
+
export { openGraphStore, getCachedOrOpenGraphStore, invalidateGraphStoreCache, closeGraphStoreCache, } from './graph/graph-store.js';
|
|
9
|
+
export { getStorageRoot, setStorageRoot, getDbPathForIndexedPath, getMergedDbPath } from './storage/location.js';
|
|
10
|
+
export { listIndexedPaths } from './storage/list.js';
|
|
11
|
+
export { cleanIndex } from './storage/clean.js';
|
|
12
|
+
export { readRegistry, readRegistryFull, addToRegistry, removeFromRegistry, clearRegistry } from './storage/registry.js';
|
|
13
|
+
export { createSysmlMcpClient, getMcpServerPath, } from './parser/sysml-mcp-client.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACzH,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAMjB,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index pipeline: discovering → loadOrdering → parsing → mapping → writing.
|
|
3
|
+
* Aligns with behaviour model SysmledgraphBehaviour::IndexPipelineStates.
|
|
4
|
+
* Phase 2 step 8. R8: on failure report and leave graph unchanged.
|
|
5
|
+
*/
|
|
6
|
+
import type { GraphStore } from '../graph/graph-store.js';
|
|
7
|
+
export interface IndexerOptions {
|
|
8
|
+
roots: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface IndexResult {
|
|
11
|
+
ok: boolean;
|
|
12
|
+
filesProcessed: number;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Index path(s): run pipeline (discovering → loadOrdering → parsing → mapping → writing).
|
|
17
|
+
* Uses a single GraphStore (caller opens it). On failure returns ok: false and does not commit partial state.
|
|
18
|
+
*/
|
|
19
|
+
export declare function runIndexer(store: GraphStore, options: IndexerOptions): Promise<IndexResult>;
|
|
20
|
+
//# sourceMappingURL=indexer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../../src/indexer/indexer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CA4CjG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index pipeline: discovering → loadOrdering → parsing → mapping → writing.
|
|
3
|
+
* Aligns with behaviour model SysmledgraphBehaviour::IndexPipelineStates.
|
|
4
|
+
* Phase 2 step 8. R8: on failure report and leave graph unchanged.
|
|
5
|
+
*/
|
|
6
|
+
import { findSysmlFiles } from '../discovery/find-sysml.js';
|
|
7
|
+
import { applyLoadOrder } from '../discovery/load-order.js';
|
|
8
|
+
import { getSymbolsForFile, closeLspClient } from '../parser/symbols.js';
|
|
9
|
+
/**
|
|
10
|
+
* Index path(s): run pipeline (discovering → loadOrdering → parsing → mapping → writing).
|
|
11
|
+
* Uses a single GraphStore (caller opens it). On failure returns ok: false and does not commit partial state.
|
|
12
|
+
*/
|
|
13
|
+
export async function runIndexer(store, options) {
|
|
14
|
+
const { roots } = options;
|
|
15
|
+
let filesProcessed = 0;
|
|
16
|
+
try {
|
|
17
|
+
// ——— Phase: discovering ———
|
|
18
|
+
const allFiles = await findSysmlFiles({ roots, includeKerml: true });
|
|
19
|
+
if (allFiles.length === 0) {
|
|
20
|
+
return { ok: true, filesProcessed: 0 };
|
|
21
|
+
}
|
|
22
|
+
const norm = (p) => p.replace(/\\/g, '/').toLowerCase();
|
|
23
|
+
for (const root of roots) {
|
|
24
|
+
// ——— Phase: loadOrdering ———
|
|
25
|
+
const rootNorm = norm(root);
|
|
26
|
+
const underRoot = allFiles.filter((f) => norm(f).startsWith(rootNorm));
|
|
27
|
+
const ordered = await applyLoadOrder(root, underRoot);
|
|
28
|
+
const indexedAt = new Date().toISOString();
|
|
29
|
+
for (const filePath of ordered) {
|
|
30
|
+
await store.addDocument(filePath, indexedAt);
|
|
31
|
+
// ——— Phases: parsing + mapping (getSymbolsForFile: LSP documentSymbol → NormalizedSymbol) ———
|
|
32
|
+
const symbols = await getSymbolsForFile(filePath);
|
|
33
|
+
// ——— Phase: writing ———
|
|
34
|
+
for (const s of symbols) {
|
|
35
|
+
await store.addSymbol(s.label, s.props);
|
|
36
|
+
for (const rel of s.relations) {
|
|
37
|
+
await store.addEdge(rel.from, rel.to, rel.type);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
filesProcessed++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { ok: true, filesProcessed };
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return {
|
|
47
|
+
ok: false,
|
|
48
|
+
filesProcessed,
|
|
49
|
+
error: err instanceof Error ? err.message : String(err),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
closeLspClient();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=indexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/indexer/indexer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAazE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAiB,EAAE,OAAuB;IACzE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE3C,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAC7C,+FAA+F;gBAC/F,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAClD,yBAAyB;gBACzB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;wBAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBACD,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,KAAK;YACT,cAAc;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index pipeline phases. Aligns with behaviour model SysmledgraphBehaviour::IndexPipelineStates
|
|
3
|
+
* (discovering → loadOrdering → parsing → mapping → writing → complete).
|
|
4
|
+
* Source: sysml-v2-models/projects/sysmledgraph/models/behaviour-sysmledgraph.sysml
|
|
5
|
+
*/
|
|
6
|
+
export declare const INDEX_PIPELINE_PHASES: readonly ["discovering", "loadOrdering", "parsing", "mapping", "writing", "complete"];
|
|
7
|
+
export type IndexPipelinePhase = (typeof INDEX_PIPELINE_PHASES)[number];
|
|
8
|
+
//# sourceMappingURL=pipeline-phases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-phases.d.ts","sourceRoot":"","sources":["../../../src/indexer/pipeline-phases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,qBAAqB,uFAOxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Index pipeline phases. Aligns with behaviour model SysmledgraphBehaviour::IndexPipelineStates
|
|
3
|
+
* (discovering → loadOrdering → parsing → mapping → writing → complete).
|
|
4
|
+
* Source: sysml-v2-models/projects/sysmledgraph/models/behaviour-sysmledgraph.sysml
|
|
5
|
+
*/
|
|
6
|
+
export const INDEX_PIPELINE_PHASES = [
|
|
7
|
+
'discovering',
|
|
8
|
+
'loadOrdering',
|
|
9
|
+
'parsing',
|
|
10
|
+
'mapping',
|
|
11
|
+
'writing',
|
|
12
|
+
'complete',
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=pipeline-phases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-phases.js","sourceRoot":"","sources":["../../../src/indexer/pipeline-phases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa;IACb,cAAc;IACd,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;CACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource: sysmledgraph://context – index stats and indexed paths.
|
|
3
|
+
* Optional per-path: pass path to get stats for that indexed root only (plan step 13).
|
|
4
|
+
*/
|
|
5
|
+
export declare function getContextContent(path?: string): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/mcp/resources/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource: sysmledgraph://context – index stats and indexed paths.
|
|
3
|
+
* Optional per-path: pass path to get stats for that indexed root only (plan step 13).
|
|
4
|
+
*/
|
|
5
|
+
import { listIndexedPaths } from '../../storage/list.js';
|
|
6
|
+
import { getMergedDbPath } from '../../storage/location.js';
|
|
7
|
+
import { getCachedOrOpenGraphStore } from '../../graph/graph-store.js';
|
|
8
|
+
import { NODE_TABLE } from '../../graph/schema.js';
|
|
9
|
+
function escapeCypherString(s) {
|
|
10
|
+
return s.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
11
|
+
}
|
|
12
|
+
export async function getContextContent(path) {
|
|
13
|
+
const paths = await listIndexedPaths();
|
|
14
|
+
const lines = ['# sysmledgraph index context', ''];
|
|
15
|
+
if (path !== undefined && path !== '') {
|
|
16
|
+
const rootEsc = escapeCypherString(path);
|
|
17
|
+
const rootPrefixEsc = escapeCypherString(path.replace(/\\/g, '/') + '/');
|
|
18
|
+
const store = await getCachedOrOpenGraphStore(getMergedDbPath());
|
|
19
|
+
const conn = store.getConnection();
|
|
20
|
+
let nodeCount = 0;
|
|
21
|
+
try {
|
|
22
|
+
const result = await conn.query(`MATCH (n:${NODE_TABLE}) WHERE n.path = '${rootEsc}' OR starts_with(n.path, '${rootPrefixEsc}') RETURN count(n) AS c`);
|
|
23
|
+
const rows = await result.getAll();
|
|
24
|
+
if (rows.length > 0) {
|
|
25
|
+
const r0 = rows[0];
|
|
26
|
+
const v = Array.isArray(r0) ? r0 : Object.values(r0);
|
|
27
|
+
nodeCount = Number(v[0] ?? 0);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// ignore
|
|
32
|
+
}
|
|
33
|
+
lines.push('## Path');
|
|
34
|
+
lines.push(`- ${path}`);
|
|
35
|
+
lines.push('');
|
|
36
|
+
lines.push(`Nodes (this path): ${nodeCount}`);
|
|
37
|
+
return lines.join('\n');
|
|
38
|
+
}
|
|
39
|
+
lines.push('## Indexed paths');
|
|
40
|
+
lines.push(paths.length === 0 ? '(none)' : paths.map((p) => `- ${p}`).join('\n'));
|
|
41
|
+
lines.push('');
|
|
42
|
+
lines.push(`Total: ${paths.length} path(s)`);
|
|
43
|
+
return lines.join('\n');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/mcp/resources/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,kBAAkB,CAAC,CAAS;IACnC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IAEnD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,eAAe,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B,YAAY,UAAU,qBAAqB,OAAO,6BAA6B,aAAa,yBAAyB,CACtH,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAA6B,CAAC,CAAC;gBAChF,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBtD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource: sysmledgraph://schema – node/edge schema.
|
|
3
|
+
* Optional per-path: pass path for a header "for path X" (plan step 13).
|
|
4
|
+
*/
|
|
5
|
+
import { NODE_LABELS, EDGE_TYPES, NODE_TABLE } from '../../graph/schema.js';
|
|
6
|
+
export function getSchemaContent(path) {
|
|
7
|
+
const lines = ['# sysmledgraph graph schema', ''];
|
|
8
|
+
if (path !== undefined && path !== '') {
|
|
9
|
+
lines.push(`*(for path: ${path})*`, '');
|
|
10
|
+
}
|
|
11
|
+
lines.push('## Node table', `- **${NODE_TABLE}**: id (STRING PK), name, path, label`, '', '## Node labels (label property)', ...NODE_LABELS.map((l) => `- ${l}`), '', '## Edge types (rel tables, Node→Node)', ...EDGE_TYPES.map((e) => `- ${e}`));
|
|
12
|
+
return lines.join('\n');
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/mcp/resources/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,KAAK,GAAG,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,IAAI,CACR,eAAe,EACf,OAAO,UAAU,uCAAuC,EACxD,EAAE,EACF,iCAAiC,EACjC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EACnC,EAAE,EACF,uCAAuC,EACvC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CACnC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server: sysmledgraph. Stdio transport; tools and resources.
|
|
3
|
+
* Phase 3 steps 11–13.
|
|
4
|
+
*/
|
|
5
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
6
|
+
export declare function createMcpServer(): Promise<McpServer>;
|
|
7
|
+
export declare function runStdio(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+BpE,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,CAkK1D;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAI9C"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server: sysmledgraph. Stdio transport; tools and resources.
|
|
3
|
+
* Phase 3 steps 11–13.
|
|
4
|
+
*/
|
|
5
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
6
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { handleIndexDbGraph } from './tools/index-db-graph.js';
|
|
9
|
+
import { handleListIndexed } from './tools/list-indexed.js';
|
|
10
|
+
import { handleCleanIndex } from './tools/clean-index.js';
|
|
11
|
+
import { handleCypher } from './tools/cypher.js';
|
|
12
|
+
import { handleQuery } from './tools/query.js';
|
|
13
|
+
import { handleContext } from './tools/context.js';
|
|
14
|
+
import { handleImpact } from './tools/impact.js';
|
|
15
|
+
import { handleRename } from './tools/rename.js';
|
|
16
|
+
import { handleGenerateMap } from './tools/generate-map.js';
|
|
17
|
+
import { getContextContent } from './resources/context.js';
|
|
18
|
+
import { getSchemaContent } from './resources/schema.js';
|
|
19
|
+
import { listIndexedPaths } from '../storage/list.js';
|
|
20
|
+
const SERVER_NAME = 'sysmledgraph';
|
|
21
|
+
const SERVER_VERSION = '0.1.0';
|
|
22
|
+
function toolResult(content, isError = false) {
|
|
23
|
+
const out = {
|
|
24
|
+
content: [{ type: 'text', text: content }],
|
|
25
|
+
};
|
|
26
|
+
if (isError)
|
|
27
|
+
out.isError = true;
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
function sanitizeResourceName(p) {
|
|
31
|
+
return p.replace(/[:\\/]/g, '_').replace(/_+/g, '_') || 'root';
|
|
32
|
+
}
|
|
33
|
+
export async function createMcpServer() {
|
|
34
|
+
const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, { capabilities: { tools: {}, resources: {} } });
|
|
35
|
+
server.registerTool('indexDbGraph', {
|
|
36
|
+
description: 'Build the knowledge graph from path(s). Input: path (string) or paths (string[]).',
|
|
37
|
+
inputSchema: z.object({
|
|
38
|
+
path: z.string().optional().describe('Single path to index'),
|
|
39
|
+
paths: z.array(z.string()).optional().describe('Multiple paths to index'),
|
|
40
|
+
}),
|
|
41
|
+
}, async (args) => {
|
|
42
|
+
const result = await handleIndexDbGraph(args);
|
|
43
|
+
const text = result.ok
|
|
44
|
+
? JSON.stringify({ ok: true, filesProcessed: result.filesProcessed }, null, 2)
|
|
45
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
46
|
+
return toolResult(text, !result.ok);
|
|
47
|
+
});
|
|
48
|
+
server.registerTool('list_indexed', {
|
|
49
|
+
description: 'List indexed path(s).',
|
|
50
|
+
inputSchema: z.object({}),
|
|
51
|
+
}, async () => {
|
|
52
|
+
const result = await handleListIndexed();
|
|
53
|
+
const text = result.ok
|
|
54
|
+
? JSON.stringify({ ok: true, paths: result.paths }, null, 2)
|
|
55
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
56
|
+
return toolResult(text, !result.ok);
|
|
57
|
+
});
|
|
58
|
+
server.registerTool('clean_index', {
|
|
59
|
+
description: 'Remove index for path or all. Params: optional path.',
|
|
60
|
+
inputSchema: z.object({
|
|
61
|
+
path: z.string().optional().describe('Path to clean, or omit to clean all'),
|
|
62
|
+
}),
|
|
63
|
+
}, async (args) => {
|
|
64
|
+
const result = await handleCleanIndex(args);
|
|
65
|
+
const text = result.ok
|
|
66
|
+
? JSON.stringify({ ok: true, removed: result.removed }, null, 2)
|
|
67
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
68
|
+
return toolResult(text, !result.ok);
|
|
69
|
+
});
|
|
70
|
+
server.registerTool('cypher', {
|
|
71
|
+
description: 'Run a Cypher query on the graph. Uses first indexed path.',
|
|
72
|
+
inputSchema: z.object({
|
|
73
|
+
query: z.string().describe('Cypher query string'),
|
|
74
|
+
}),
|
|
75
|
+
}, async (args) => {
|
|
76
|
+
const result = await handleCypher(args);
|
|
77
|
+
const text = result.ok
|
|
78
|
+
? JSON.stringify({ ok: true, rows: result.rows }, null, 2)
|
|
79
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
80
|
+
return toolResult(text, !result.ok);
|
|
81
|
+
});
|
|
82
|
+
server.registerTool('query', {
|
|
83
|
+
description: 'Concept search over symbols. Params: query (string), optional kind (node label).',
|
|
84
|
+
inputSchema: z.object({
|
|
85
|
+
query: z.string().describe('Search string'),
|
|
86
|
+
kind: z.string().optional().describe('Filter by node label'),
|
|
87
|
+
}),
|
|
88
|
+
}, async (args) => {
|
|
89
|
+
const result = await handleQuery(args);
|
|
90
|
+
const text = result.ok
|
|
91
|
+
? JSON.stringify({ ok: true, nodes: result.nodes }, null, 2)
|
|
92
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
93
|
+
return toolResult(text, !result.ok);
|
|
94
|
+
});
|
|
95
|
+
server.registerTool('context', {
|
|
96
|
+
description: '360° view for one symbol: node and edges. Params: name (symbol name).',
|
|
97
|
+
inputSchema: z.object({
|
|
98
|
+
name: z.string().describe('Symbol name or id'),
|
|
99
|
+
}),
|
|
100
|
+
}, async (args) => {
|
|
101
|
+
const result = await handleContext(args);
|
|
102
|
+
const text = result.ok
|
|
103
|
+
? JSON.stringify({ ok: true, node: result.node, edges: result.edges }, null, 2)
|
|
104
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
105
|
+
return toolResult(text, !result.ok);
|
|
106
|
+
});
|
|
107
|
+
server.registerTool('impact', {
|
|
108
|
+
description: 'Blast radius: what uses this element or what it uses. Params: target (name), direction (upstream/downstream).',
|
|
109
|
+
inputSchema: z.object({
|
|
110
|
+
target: z.string().describe('Symbol name or id'),
|
|
111
|
+
direction: z.enum(['upstream', 'downstream']).optional().describe('upstream = what references this; downstream = what this references'),
|
|
112
|
+
}),
|
|
113
|
+
}, async (args) => {
|
|
114
|
+
const result = await handleImpact(args);
|
|
115
|
+
const text = result.ok
|
|
116
|
+
? JSON.stringify({ ok: true, nodes: result.nodes }, null, 2)
|
|
117
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
118
|
+
return toolResult(text, !result.ok);
|
|
119
|
+
});
|
|
120
|
+
server.registerTool('rename', {
|
|
121
|
+
description: 'Multi-file rename preview. Params: symbol, newName, dry_run (default true).',
|
|
122
|
+
inputSchema: z.object({
|
|
123
|
+
symbol: z.string().describe('Symbol to rename'),
|
|
124
|
+
newName: z.string().describe('New name'),
|
|
125
|
+
dry_run: z.boolean().optional().describe('If true, only return preview (default true)'),
|
|
126
|
+
}),
|
|
127
|
+
}, async (args) => {
|
|
128
|
+
const result = await handleRename(args);
|
|
129
|
+
const text = result.ok
|
|
130
|
+
? JSON.stringify({ ok: true, preview: result.preview, message: result.message }, null, 2)
|
|
131
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
132
|
+
return toolResult(text, !result.ok);
|
|
133
|
+
});
|
|
134
|
+
server.registerTool('generate_map', {
|
|
135
|
+
description: 'Generate Markdown from the graph (interconnection view: documents, nodes by label, edges). Uses first indexed path. Returns { ok, markdown } or { ok: false, error }.',
|
|
136
|
+
inputSchema: z.object({
|
|
137
|
+
output_path: z.string().optional().describe('Optional path to write .md (if server can write)'),
|
|
138
|
+
}),
|
|
139
|
+
}, async (args) => {
|
|
140
|
+
const result = await handleGenerateMap(args);
|
|
141
|
+
const text = result.ok
|
|
142
|
+
? JSON.stringify({ ok: true, markdown: result.markdown }, null, 2)
|
|
143
|
+
: JSON.stringify({ ok: false, error: result.error }, null, 2);
|
|
144
|
+
return toolResult(text, !result.ok);
|
|
145
|
+
});
|
|
146
|
+
server.registerResource('context', 'sysmledgraph://context', { description: 'Index stats and indexed paths' }, async (_uri, _extra) => {
|
|
147
|
+
const text = await getContextContent();
|
|
148
|
+
return { contents: [{ uri: 'sysmledgraph://context', mimeType: 'text/markdown', text }] };
|
|
149
|
+
});
|
|
150
|
+
server.registerResource('schema', 'sysmledgraph://schema', { description: 'Graph node/edge schema' }, async (_uri, _extra) => {
|
|
151
|
+
const text = getSchemaContent();
|
|
152
|
+
return { contents: [{ uri: 'sysmledgraph://schema', mimeType: 'text/markdown', text }] };
|
|
153
|
+
});
|
|
154
|
+
// Per-path resources (plan step 13 optional)
|
|
155
|
+
const paths = await listIndexedPaths();
|
|
156
|
+
for (const p of paths) {
|
|
157
|
+
const uriContext = `sysmledgraph://context/${encodeURIComponent(p)}`;
|
|
158
|
+
const uriSchema = `sysmledgraph://schema/${encodeURIComponent(p)}`;
|
|
159
|
+
server.registerResource(`context-${sanitizeResourceName(p)}`, uriContext, { description: `Context (stats) for path: ${p}` }, async () => {
|
|
160
|
+
const text = await getContextContent(p);
|
|
161
|
+
return { contents: [{ uri: uriContext, mimeType: 'text/markdown', text }] };
|
|
162
|
+
});
|
|
163
|
+
server.registerResource(`schema-${sanitizeResourceName(p)}`, uriSchema, { description: `Schema for path: ${p}` }, async () => {
|
|
164
|
+
const text = getSchemaContent(p);
|
|
165
|
+
return { contents: [{ uri: uriSchema, mimeType: 'text/markdown', text }] };
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return server;
|
|
169
|
+
}
|
|
170
|
+
export async function runStdio() {
|
|
171
|
+
const server = await createMcpServer();
|
|
172
|
+
const transport = new StdioServerTransport();
|
|
173
|
+
await server.connect(transport);
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: clean_index – remove index for path or all.
|
|
3
|
+
*/
|
|
4
|
+
export interface CleanIndexArgs {
|
|
5
|
+
path?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleCleanIndex(args: CleanIndexArgs): Promise<{
|
|
8
|
+
ok: boolean;
|
|
9
|
+
removed?: string[];
|
|
10
|
+
error?: string;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=clean-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/clean-index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUzH"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: clean_index – remove index for path or all.
|
|
3
|
+
*/
|
|
4
|
+
import { getDbPathForIndexedPath } from '../../storage/location.js';
|
|
5
|
+
import { listIndexedPaths } from '../../storage/list.js';
|
|
6
|
+
import { cleanIndex } from '../../storage/clean.js';
|
|
7
|
+
import { invalidateGraphStoreCache } from '../../graph/graph-store.js';
|
|
8
|
+
export async function handleCleanIndex(args) {
|
|
9
|
+
if (args.path !== undefined && args.path !== '') {
|
|
10
|
+
invalidateGraphStoreCache(getDbPathForIndexedPath(args.path));
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const paths = await listIndexedPaths();
|
|
14
|
+
for (const p of paths)
|
|
15
|
+
invalidateGraphStoreCache(getDbPathForIndexedPath(p));
|
|
16
|
+
}
|
|
17
|
+
const result = await cleanIndex(args.path);
|
|
18
|
+
if (!result.ok)
|
|
19
|
+
return { ok: false, error: result.error };
|
|
20
|
+
return { ok: true, removed: result.removed };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=clean-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-index.js","sourceRoot":"","sources":["../../../../src/mcp/tools/clean-index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAMvE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAoB;IACzD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAChD,yBAAyB,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,yBAAyB,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: context – 360° view for one symbol (usages, types, relations).
|
|
3
|
+
* Uses first indexed path. Returns node and outgoing/incoming edges.
|
|
4
|
+
*/
|
|
5
|
+
export interface ContextArgs {
|
|
6
|
+
name: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function handleContext(args: ContextArgs): Promise<{
|
|
9
|
+
ok: boolean;
|
|
10
|
+
node?: unknown;
|
|
11
|
+
edges?: unknown[];
|
|
12
|
+
error?: string;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2ClI"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool: context – 360° view for one symbol (usages, types, relations).
|
|
3
|
+
* Uses first indexed path. Returns node and outgoing/incoming edges.
|
|
4
|
+
*/
|
|
5
|
+
import { listIndexedPaths } from '../../storage/list.js';
|
|
6
|
+
import { getDbPathForIndexedPath } from '../../storage/location.js';
|
|
7
|
+
import { getCachedOrOpenGraphStore } from '../../graph/graph-store.js';
|
|
8
|
+
import { NODE_TABLE } from '../../graph/schema.js';
|
|
9
|
+
import { EDGE_TYPES } from '../../graph/schema.js';
|
|
10
|
+
export async function handleContext(args) {
|
|
11
|
+
const paths = await listIndexedPaths();
|
|
12
|
+
if (paths.length === 0) {
|
|
13
|
+
return { ok: false, error: 'No indexed paths; run indexDbGraph first' };
|
|
14
|
+
}
|
|
15
|
+
const dbPath = getDbPathForIndexedPath(paths[0]);
|
|
16
|
+
const store = await getCachedOrOpenGraphStore(dbPath);
|
|
17
|
+
const conn = store.getConnection();
|
|
18
|
+
const name = (args.name || '').trim().replace(/\\/g, '\\\\').replace(/'/g, "\\'");
|
|
19
|
+
if (!name) {
|
|
20
|
+
return { ok: false, error: 'name is required' };
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const nodeResult = await conn.query(`MATCH (n:${NODE_TABLE}) WHERE n.id = '${name}' OR n.name = '${name}' RETURN n.id, n.name, n.path, n.label LIMIT 1`);
|
|
24
|
+
const nodeRows = await nodeResult.getAll();
|
|
25
|
+
if (!nodeRows.length) {
|
|
26
|
+
return { ok: false, error: `Symbol not found: ${args.name}` };
|
|
27
|
+
}
|
|
28
|
+
const r0 = nodeRows[0];
|
|
29
|
+
const arr = Array.isArray(r0) ? r0 : Object.values(r0);
|
|
30
|
+
const node = { id: arr[0], name: arr[1], path: arr[2], label: arr[3] };
|
|
31
|
+
const edges = [];
|
|
32
|
+
for (const relType of EDGE_TYPES) {
|
|
33
|
+
try {
|
|
34
|
+
const relResult = await conn.query(`MATCH (a:${NODE_TABLE})-[:${relType}]->(b:${NODE_TABLE}) WHERE a.id = '${name}' OR a.name = '${name}' RETURN a.id, b.id LIMIT 20`);
|
|
35
|
+
const relRows = await relResult.getAll();
|
|
36
|
+
for (const row of relRows) {
|
|
37
|
+
const v = Array.isArray(row) ? row : Object.values(row);
|
|
38
|
+
edges.push({ type: relType, from: String(v[0]), to: String(v[1]) });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// rel type may not exist or have no matches
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return { ok: true, node, edges };
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
return { ok: false, error: err instanceof Error ? err.message : String(err) };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=context.js.map
|