A solution is to call SAGA through the processing algorithm available in the Processing Toolbox. It's what you see below. I also answer in a second part why you do not find directly the script.
split_layer = QgsProject.instance().mapLayersByName("layername name lines input for spliting")[0]
lines_layer = QgsProject.instance().mapLayersByName("layername name for spliting")[0]
result = processing.run("saga:splitlineswithlines", {
'LINES': lines_layer,
'SPLIT': split_layer,
'INTERSECT': 'TEMPORARY_OUTPUT',
'OUTPUT': 1
})
QgsProject.instance().addMapLayer(QgsVectorLayer(result['INTERSECT'], 'output intersect', 'ogr'))
For SAGA, algorithms are created from configuration files e.g https://github.com/qgis/QGIS/blob/master/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py#L114
You see in above link that SagaAlgorithmProvider
use it method loadAlgorithms
to list description files, create each time an instance SagaAlgorithm
and then add it to the list of SAGA available algorithms.
Grass does the same as SAGA: it uses metatada files in a description
directory to create it algorithms list.
GDAL and QGIS algorithms do not take the same approach. One file is more or less one algorithm (maybe some exceptions, not sure here)
See below a shortened output of algs directory
/usr/share/qgis/python/plugins/processing/algs/
├── gdal
│ ├── aspect.py
│ ├── AssignProjection.py
│ ├── Buffer.py
│ ├── __init__.py
│ ├── ui
│ │ ├── __init__.py
│ │ └── RasterOptionsWidget.py
│ ├── viewshed.py
│ └── warp.py
├── grass7
│ ├── description
│ │ ├── i.albedo.txt
│ │ ├── i.aster.toar.txt
│ │ ├── i.atcorr.txt
│ │ ├── i.biomass.txt
│ │ └── v.what.vect.txt
│ ├── ext
│ │ ├── i_albedo.py
│ │ └── v_what_vect.py
│ ├── Grass7AlgorithmProvider.py
│ ├── Grass7Algorithm.py
│ ├── grass7.txt
│ ├── Grass7Utils.py
│ └── __init__.py
├── help
│ ├── __init__.py
│ ├── qgis.yaml
│ └── saga.yaml
├── __init__.py
├── otb
│ ├── __init__.py
│ ├── OtbAlgorithmProvider.py
│ ├── OtbAlgorithm.py
│ ├── OtbChoiceWidget.py
│ └── OtbUtils.py
├── qgis
│ ├── BarPlot.py
│ ├── BasicStatistics.py
│ ├── BoxPlot.py
│ ├── Buffer.py
│ ├── ui
│ │ ├── AddNewExpressionDialog.ui
│ │ ├── ExecuteSQLWidgetBase.ui
│ │ ├── __init__.py
│ │ └── ReliefColorsWidget.py
│ ├── UniqueValues.py
│ └── voronoi.py
└── saga
├── description
│ ├── AccumulatedCost(Anisotropic).txt
│ ├── AccumulatedCost(Isotropic).txt
│ ├── AccumulatedCost.txt
│ ├── ZonalGridStatistics.txt
│ └── ZonalMultipleRegressionAnalysis(PointsandPredictorGrids).txt
├── ext
│ ├── __init__.py
│ └── supervisedclassification.py
├── __init__.py
├── SagaAlgorithmBase.py
├── SagaAlgorithmProvider.py
├── SagaAlgorithm.py
├── SagaDescriptionCreator.py
├── SagaNameDecorator.py
├── SagaParameters.py
├── SagaUtils.py
├── SplitRGBBands.py
└── versioncheck.py