Code Metrics

Lines of Code

The following repository-wide code line count report is generated automatically during the documentation build using cloc. The report excludes generated outputs and dependency directories to keep the results focused on source and documentation files. Both a language-level summary and a per-file breakdown are produced.

This report is refreshed automatically on every docs build.

Generated with cloc 2.06 in 0.12 seconds.

Lines by language

Language

Files

Blank

Comment

Code

TypeScript

88

2,361

634

25,691

JSON

23

0

0

7,613

JavaScript

14

851

410

7,508

Markdown

19

913

1

2,421

CSS

5

311

4

1,823

Python

2

141

147

525

make

1

20

1

175

Text

1

0

0

6

SVG

1

0

0

5

reStructuredText

1

7

11

2

Lines by file

File

Language

Blank

Comment

Code

.prettierrc.json

JSON

0

0

8

AGENTS.md

Markdown

25

0

89

CHANGELOG.md

Markdown

445

0

891

CODE_OF_CONDUCT.md

Markdown

35

0

88

CONTRIBUTING.md

Markdown

25

0

89

cspell.json

JSON

0

0

65

docs/requirements.txt

Text

0

0

6

docs/source/_generated/coverage-report.md

Markdown

2

1

63

docs/source/_static/css/custom.css

CSS

8

4

38

docs/source/api/index.rst

reStructuredText

7

11

2

docs/source/automated-testing.md

Markdown

51

0

97

docs/source/changelog.md

Markdown

0

0

3

docs/source/code-development.md

Markdown

0

0

3

docs/source/code-metrics.md

Markdown

45

0

86

docs/source/code-of-conduct.md

Markdown

0

0

3

docs/source/complexity_report.js

JavaScript

116

1

962

docs/source/conf.py

Python

107

134

378

docs/source/coverage_report.py

Python

34

13

147

docs/source/detailed-usage.md

Markdown

87

0

319

docs/source/developer-guide.md

Markdown

75

0

191

docs/source/docgen.md

Markdown

10

0

28

docs/source/extension-overview.md

Markdown

63

0

361

docs/source/index.md

Markdown

2

0

21

docs/source/license.md

Markdown

0

0

2

docs/source/security-issues.md

Markdown

0

0

3

eslint.config.mjs

JavaScript

7

37

215

Makefile

make

20

1

175

media/deviceManager.css

CSS

79

0

430

media/deviceManager.js

JavaScript

173

0

1,422

media/loggerPanel.css

CSS

84

0

554

media/loggerPanel.js

JavaScript

209

271

1,653

media/loggerPanel/messaging.js

JavaScript

3

11

135

media/loggerPanel/rendering.js

JavaScript

18

14

95

media/loggerPanel/state.js

JavaScript

19

26

230

media/sftpExplorer.css

CSS

108

0

593

media/sftpExplorer.js

JavaScript

189

26

2,020

media/sidebarView.css

CSS

32

0

208

media/sidebarView.js

JavaScript

49

20

344

package-lock.json

JSON

0

0

6,619

package.json

JSON

0

0

763

package.nls.cs.json

JSON

0

0

7

package.nls.de.json

JSON

0

0

7

package.nls.es.json

JSON

0

0

7

package.nls.fr.json

JSON

0

0

7

package.nls.hu.json

JSON

0

0

7

package.nls.it.json

JSON

0

0

7

package.nls.ja.json

JSON

0

0

7

package.nls.json

JSON

0

0

7

package.nls.ko.json

JSON

0

0

7

package.nls.pl.json

JSON

0

0

7

package.nls.pt-br.json

JSON

0

0

7

package.nls.ru.json

JSON

0

0

7

package.nls.tr.json

JSON

0

0

7

package.nls.zh-cn.json

JSON

0

0

7

package.nls.zh-tw.json

JSON

0

0

7

README.md

Markdown

42

0

74

resources/terminal.svg

SVG

0

0

5

scripts/esbuild.mjs

JavaScript

9

2

53

SECURITY.md

Markdown

6

0

10

src/configuration.ts

TypeScript

43

23

233

src/deviceColor.ts

TypeScript

6

8

17

src/deviceIdentity.ts

TypeScript

16

5

71

src/deviceManagerPanel.ts

TypeScript

146

6

1,292

src/devicePing.ts

TypeScript

11

5

44

src/deviceTree.ts

TypeScript

16

39

120

src/extension.ts

TypeScript

114

37

972

src/highlights.ts

TypeScript

1

5

7

src/hostEndpoints.ts

TypeScript

6

17

27

src/localization/cs.ts

TypeScript

1

1

315

src/localization/de.ts

TypeScript

1

1

326

src/localization/en.ts

TypeScript

0

0

314

src/localization/es.ts

TypeScript

1

1

322

src/localization/fr.ts

TypeScript

1

1

329

src/localization/hu.ts

TypeScript

1

1

324

src/localization/index.ts

TypeScript

15

1

125

src/localization/it.ts

TypeScript

1

1

319

src/localization/ja.ts

TypeScript

1

0

317

src/localization/ko.ts

TypeScript

1

0

310

src/localization/pl.ts

TypeScript

1

1

325

src/localization/pt-br.ts

TypeScript

1

1

323

src/localization/ru.ts

TypeScript

1

0

322

src/localization/tr.ts

TypeScript

1

1

319

src/localization/zh-cn.ts

TypeScript

1

0

308

src/localization/zh-tw.ts

TypeScript

1

0

308

src/logPanel/autoSaveManager.ts

TypeScript

13

20

67

src/logPanel/html.ts

TypeScript

5

13

188

src/logPanel/index.ts

TypeScript

1

5

1

src/logPanel/logPanel.ts

TypeScript

55

41

517

src/logPanel/messageParser.ts

TypeScript

7

9

92

src/logPanel/stateStore.ts

TypeScript

9

24

50

src/logPanel/types.ts

TypeScript

6

7

22

src/logSession/authenticationProvider.ts

TypeScript

16

24

106

src/logSession/connectionManager.ts

TypeScript

21

18

202

src/logSession/errors.ts

TypeScript

2

7

12

src/logSession/fingerprintPersistence.ts

TypeScript

11

24

101

src/logSession/hostKeyVerifier.ts

TypeScript

17

22

88

src/logSession/index.ts

TypeScript

1

5

3

src/logSession/logSession.ts

TypeScript

30

21

295

src/logSession/reconnectionController.ts

TypeScript

11

10

46

src/logSession/types.ts

TypeScript

2

7

9

src/mcp/audit.ts

TypeScript

0

0

24

src/mcp/sanitizer.ts

TypeScript

0

0

25

src/mcp/server.ts

TypeScript

0

0

104

src/mcp/tools.ts

TypeScript

0

0

287

src/passwordManager.ts

TypeScript

51

39

374

src/services/diagnosticService.ts

TypeScript

0

0

66

src/services/logService.ts

TypeScript

0

0

46

src/sftpExplorer.ts

TypeScript

303

37

3,433

src/sftpSearch.ts

TypeScript

21

14

144

src/sidebarView.ts

TypeScript

26

53

223

src/ssh2.d.ts

TypeScript

5

6

42

src/sshCommandExecution.ts

TypeScript

20

5

106

src/sshCommandRunner.ts

TypeScript

44

24

378

src/sshTerminal.ts

TypeScript

72

35

513

tests/e2e/runTest.js

JavaScript

4

0

30

tests/e2e/suite/extension.test.js

JavaScript

4

1

10

tests/e2e/suite/index.js

JavaScript

7

0

37

tests/e2e/suite/sftpExplorer.test.js

JavaScript

44

1

302

tests/integration/logSession.integration.test.ts

TypeScript

7

0

67

tests/integration/sidebar.integration.test.ts

TypeScript

19

0

224

tests/mocks/ssh.ts

TypeScript

20

0

93

tests/mocks/vscode.ts

TypeScript

57

0

504

tests/unit/authenticationProvider.test.ts

TypeScript

28

0

231

tests/unit/autoSaveManager.test.ts

TypeScript

28

0

107

tests/unit/configuration.test.ts

TypeScript

45

0

372

tests/unit/connectionManager.test.ts

TypeScript

36

0

483

tests/unit/deviceManagerPanel.test.ts

TypeScript

79

0

1,044

tests/unit/devicePing.test.ts

TypeScript

16

0

72

tests/unit/deviceTree.test.ts

TypeScript

17

0

95

tests/unit/extensionPasswordCommands.test.ts

TypeScript

34

0

218

tests/unit/extensionSftpPresetMigration.test.ts

TypeScript

9

0

52

tests/unit/extensionWebBrowserCommands.test.ts

TypeScript

79

0

471

tests/unit/fingerprintPersistence.test.ts

TypeScript

19

0

138

tests/unit/hostEndpoints.test.ts

TypeScript

3

0

38

tests/unit/hostKeyVerifier.test.ts

TypeScript

16

0

89

tests/unit/localization.test.ts

TypeScript

16

1

66

tests/unit/loggerPanelMessaging.test.ts

TypeScript

9

0

42

tests/unit/logPanel.test.ts

TypeScript

78

0

429

tests/unit/logSession.test.ts

TypeScript

51

0

384

tests/unit/mcpIntegration.test.ts

TypeScript

0

0

72

tests/unit/messageParser.test.ts

TypeScript

10

0

112

tests/unit/packageNls.test.ts

TypeScript

14

1

79

tests/unit/passwordManager.test.ts

TypeScript

46

0

188

tests/unit/reconnectionController.test.ts

TypeScript

13

0

67

tests/unit/sftpExplorer.test.ts

TypeScript

276

0

3,108

tests/unit/sftpSearch.test.ts

TypeScript

15

0

131

tests/unit/sidebarView.test.ts

TypeScript

14

0

132

tests/unit/sshCommandRunner.test.ts

TypeScript

59

0

486

tests/unit/sshTerminal.test.ts

TypeScript

95

0

721

tests/unit/stateStore.test.ts

TypeScript

15

0

105

tsconfig.eslint.json

JSON

0

0

9

tsconfig.json

JSON

0

0

16

tsconfig.vitest.json

JSON

0

0

8

typedoc.json

JSON

0

0

20

vitest.config.mts

TypeScript

1

7

18


Code Complexity

Complexity metrics are generated during the documentation build using a TypeScript and JavaScript parser. The report covers .ts and .js files under the repository (excluding build outputs) and includes:

  • Cyclomatic complexity (decision points and boolean operators)

  • Halstead complexity measures (volume, difficulty, effort, bugs, time)

  • Maintainability index (standard formula using LOC, Halstead volume, and cyclomatic complexity which translates to time for developer onboarding and for code reviews)

  • Cognitive complexity (nesting-aware approximation)

  • Depth of inheritance (in-repo inheritance depth)

  • Coupling between objects (unique type references and new expressions per class)

Why bother? These metrics help you:

  • Catch potential bugs early

  • Make code easier to understand and maintain

  • Save time and money long-term

Here’s a quick comparison:

Metric

Measures

Why It Matters

Cyclomatic Complexity

Code paths

Higher = harder to test

LOC

Code size

Bigger isn’t always better

Maintainability Index

Ease of maintenance

Higher = easier to work with

Cognitive Complexity

Mental effort to understand

Lower = more readable

Benefits of Tracking Code Complexity

Tracking complexity offers key advantages:

Improved Software Quality

Teams can:

  • Spot potential bug hotspots

  • Cut error risk

  • Boost code readability

Cost-Effective Maintenance

Complex code often means:

  • Longer debugging

  • Tough updates

  • Hard onboarding

Tracking helps teams:

  • Find refactoring targets

  • Streamline maintenance

  • Cut long-term costs

Better Resource Allocation

Complexity metrics guide teams in:

  • Prioritizing refactoring

  • Allocating testing resources

  • Planning code reviews

Enhanced Team Collaboration

Complexity metrics provide:

  • A shared language for code quality

  • Objective measures for reviews

  • Clear improvement goals

Proactive Risk Management

Teams can:

  • Prevent technical debt buildup

  • Catch security issues early

  • Address scalability problems

A study of 12,000+ projects found quality issues caused over 20% of failures. Tracking complexity helps avoid these pitfalls.

Quantifiable Quality Standards

Teams can:

  • Set clear benchmarks

  • Measure progress

  • Compare solutions objectively


Code Complexity Report

Thresholds

Metric

Ideal Range

Action if Exceeded

Cyclomatic complexity (function)

< 10

Break down complex functions

LOC (function)

< 100

Modularize large functions

Depth of inheritance (class)

< 5

Simplify class hierarchies

Coupling between objects (class)

< 5

Reduce class dependencies

Maintainability Index

> 65

Improve the above metrics

Complexity overview

Metric

Count

Average

Max

Cyclomatic complexity (functions)

2,450

2.05

45

Cognitive complexity (functions)

2,450

1.21

63

Maintainability index (files)

97

24.1

74.0

Depth of inheritance (classes)

36

1.28

2

Coupling between objects (classes)

36

7.81

40

Halstead summary

Metric

Value

Operators (distinct)

110

Operators (total)

64,050

Operands (distinct)

8,684

Operands (total)

37,212

Vocabulary

8,794

Length

101,262

Volume

1,326,765.49

Difficulty

235.68

Effort

312,694,363.89

Bugs

442.26

Time (sec)

17,371,909.10

Complexity by file

File

LOC

Functions

Cyclomatic Avg

Cyclomatic Max

Cognitive Avg

Cognitive Max

Maintainability

media/deviceManager.js

1,422

128

2.65

29

1.76

28

0.0

media/loggerPanel.js

1,924

167

2.74

19

1.92

29

0.0

media/loggerPanel/messaging.js

146

4

12.25

45

16.00

63

19.6

media/loggerPanel/rendering.js

109

9

3.56

14

3.56

22

25.9

media/loggerPanel/state.js

256

13

4.15

29

3.23

28

11.9

media/sftpExplorer.js

2,046

204

3.04

31

2.26

37

0.0

media/sidebarView.js

364

40

1.90

10

0.93

9

8.6

src/configuration.ts

256

23

3.48

19

3.04

27

8.0

src/deviceColor.ts

25

3

1.33

2

0.33

1

50.8

src/deviceIdentity.ts

76

7

3.86

7

3.29

7

34.0

src/deviceManagerPanel.ts

1,298

80

3.28

24

2.41

23

0.0

src/devicePing.ts

49

7

1.57

2

0.57

1

38.9

src/deviceTree.ts

159

12

1.58

5

0.58

4

23.4

src/extension.ts

1,009

87

2.83

24

2.16

31

0.0

src/highlights.ts

12

0

0.00

0

0.00

0

62.6

src/hostEndpoints.ts

44

1

3.00

3

2.00

2

43.4

src/localization/cs.ts

316

0

0.00

0

0.00

0

17.2

src/localization/de.ts

327

0

0.00

0

0.00

0

16.9

src/localization/en.ts

314

0

0.00

0

0.00

0

17.3

src/localization/es.ts

323

0

0.00

0

0.00

0

17.0

src/localization/fr.ts

330

0

0.00

0

0.00

0

16.8

src/localization/hu.ts

325

0

0.00

0

0.00

0

17.0

src/localization/index.ts

126

12

2.25

8

1.25

7

24.1

src/localization/it.ts

320

0

0.00

0

0.00

0

17.1

src/localization/ja.ts

317

0

0.00

0

0.00

0

17.2

src/localization/ko.ts

310

0

0.00

0

0.00

0

17.4

src/localization/pl.ts

326

0

0.00

0

0.00

0

16.9

src/localization/pt-br.ts

324

0

0.00

0

0.00

0

17.0

src/localization/ru.ts

322

0

0.00

0

0.00

0

17.0

src/localization/tr.ts

320

0

0.00

0

0.00

0

17.1

src/localization/zh-cn.ts

308

0

0.00

0

0.00

0

17.5

src/localization/zh-tw.ts

308

0

0.00

0

0.00

0

17.5

src/logPanel/autoSaveManager.ts

87

10

2.20

5

1.40

6

32.5

src/logPanel/html.ts

201

2

1.50

2

0.50

1

20.2

src/logPanel/index.ts

6

0

0.00

0

0.00

0

74.0

src/logPanel/logPanel.ts

558

43

2.21

14

1.37

14

3.1

src/logPanel/messageParser.ts

101

6

5.83

20

5.83

25

26.5

src/logPanel/stateStore.ts

74

10

1.10

2

0.10

1

33.7

src/logPanel/types.ts

29

0

0.00

0

0.00

0

49.3

src/logSession/authenticationProvider.ts

130

8

2.88

4

2.00

4

25.9

src/logSession/connectionManager.ts

220

19

1.79

4

0.79

3

19.1

src/logSession/errors.ts

19

1

1.00

1

0.00

0

55.1

src/logSession/fingerprintPersistence.ts

125

7

4.00

7

3.29

6

25.1

src/logSession/hostKeyVerifier.ts

110

8

2.50

9

1.88

11

28.1

src/logSession/index.ts

8

0

0.00

0

0.00

0

67.0

src/logSession/logSession.ts

316

28

2.46

12

1.57

14

11.0

src/logSession/reconnectionController.ts

56

2

5.00

9

8.00

16

38.1

src/logSession/types.ts

16

0

0.00

0

0.00

0

55.6

src/mcp/audit.ts

24

4

1.25

2

0.25

1

47.9

src/mcp/sanitizer.ts

25

4

2.50

4

1.75

4

45.4

src/mcp/server.ts

104

14

2.21

7

1.57

9

30.6

src/mcp/tools.ts

287

33

1.97

9

0.97

8

12.5

src/passwordManager.ts

413

28

2.21

15

1.36

18

10.3

src/services/diagnosticService.ts

66

4

5.25

17

5.50

21

34.0

src/services/logService.ts

46

7

1.71

3

0.71

2

40.5

src/sftpExplorer.ts

3,470

206

3.08

30

2.59

40

0.0

src/sftpSearch.ts

158

8

4.38

20

5.13

33

21.1

src/sidebarView.ts

276

12

2.08

10

1.17

10

15.4

src/sshCommandExecution.ts

111

10

2.50

6

1.50

5

26.6

src/sshCommandRunner.ts

402

37

2.57

12

1.81

14

2.5

src/sshTerminal.ts

548

45

2.91

18

2.16

22

0.0

tests/e2e/runTest.js

30

5

1.60

2

0.60

1

45.1

tests/e2e/suite/extension.test.js

11

2

1.00

1

0.00

0

58.9

tests/e2e/suite/index.js

37

6

1.67

4

0.67

3

42.4

tests/e2e/suite/sftpExplorer.test.js

303

53

1.30

3

0.34

3

13.5

tests/integration/logSession.integration.test.ts

67

15

1.00

1

0.00

0

35.3

tests/integration/sidebar.integration.test.ts

224

52

1.04

2

0.04

1

13.7

tests/mocks/ssh.ts

93

16

1.19

3

0.19

2

28.7

tests/mocks/vscode.ts

504

103

1.15

3

0.15

2

0.0

tests/unit/authenticationProvider.test.ts

231

20

1.05

2

0.05

1

18.4

tests/unit/autoSaveManager.test.ts

107

16

1.00

1

0.00

0

26.8

tests/unit/configuration.test.ts

372

23

1.04

2

0.04

1

11.2

tests/unit/connectionManager.test.ts

483

90

1.06

4

0.06

3

0.0

tests/unit/deviceManagerPanel.test.ts

1,044

70

1.10

2

0.10

1

0.0

tests/unit/devicePing.test.ts

72

19

1.00

1

0.00

0

31.9

tests/unit/deviceTree.test.ts

95

6

1.00

1

0.00

0

30.6

tests/unit/extensionPasswordCommands.test.ts

218

19

1.11

2

0.11

1

24.4

tests/unit/extensionSftpPresetMigration.test.ts

52

5

1.00

1

0.00

0

39.0

tests/unit/extensionWebBrowserCommands.test.ts

471

27

1.11

2

0.11

1

15.6

tests/unit/fingerprintPersistence.test.ts

138

10

1.00

1

0.00

0

25.5

tests/unit/hostEndpoints.test.ts

38

2

1.00

1

0.00

0

44.9

tests/unit/hostKeyVerifier.test.ts

89

8

1.00

1

0.00

0

36.6

tests/unit/localization.test.ts

67

10

2.20

5

1.30

4

35.6

tests/unit/loggerPanelMessaging.test.ts

42

6

1.33

2

0.33

1

40.7

tests/unit/logPanel.test.ts

429

60

1.00

1

0.00

0

3.4

tests/unit/logSession.test.ts

384

64

1.00

1

0.00

0

13.5

tests/unit/mcpIntegration.test.ts

72

17

1.00

1

0.00

0

31.2

tests/unit/messageParser.test.ts

112

6

1.00

1

0.00

0

29.3

tests/unit/packageNls.test.ts

80

6

1.50

3

0.67

3

33.3

tests/unit/passwordManager.test.ts

188

22

1.05

2

0.05

1

25.3

tests/unit/reconnectionController.test.ts

67

11

1.00

1

0.00

0

34.4

tests/unit/sftpExplorer.test.ts

3,108

187

1.17

4

0.18

4

0.0

tests/unit/sftpSearch.test.ts

131

11

1.00

1

0.00

0

26.4

tests/unit/sidebarView.test.ts

132

13

1.00

1

0.00

0

25.8

tests/unit/sshCommandRunner.test.ts

486

56

1.14

4

0.14

3

2.8

tests/unit/sshTerminal.test.ts

721

53

1.17

3

0.17

2

0.0

tests/unit/stateStore.test.ts

105

8

1.00

1

0.00

0

30.4

Halstead metrics by file

File

Vocabulary

Length

Volume

Difficulty

Effort

Bugs

Time (sec)

media/deviceManager.js

255

1,609

12,862.91

47.38

609,504.26

4.29

33,861.35

media/loggerPanel.js

443

3,406

29,942.70

71.06

2,127,774.96

9.98

118,209.72

media/loggerPanel/messaging.js

141

892

6,368.48

48.59

309,426.32

2.12

17,190.35

media/loggerPanel/rendering.js

120

611

4,220.11

52.24

220,461.68

1.41

12,247.87

media/loggerPanel/state.js

195

1,431

10,886.09

56.14

611,147.73

3.63

33,952.65

media/sftpExplorer.js

350

1,416

11,966.91

29.49

352,948.96

3.99

19,608.28

media/sidebarView.js

137

575

4,081.37

29.86

121,868.90

1.36

6,770.49

src/configuration.ts

194

1,648

12,524.66

90.10

1,128,523.72

4.17

62,695.76

src/deviceColor.ts

40

74

393.82

14.00

5,513.52

0.13

306.31

src/deviceIdentity.ts

54

191

1,099.18

29.50

32,425.91

0.37

1,801.44

src/deviceManagerPanel.ts

489

3,154

28,176.86

82.07

2,312,459.27

9.39

128,469.96

src/devicePing.ts

80

281

1,776.46

32.73

58,138.75

0.59

3,229.93

src/deviceTree.ts

155

710

5,166.05

48.00

247,970.32

1.72

13,776.13

src/extension.ts

356

2,666

22,596.31

92.27

2,085,060.76

7.53

115,836.71

src/highlights.ts

14

25

95.18

4.00

380.74

0.03

21.15

src/hostEndpoints.ts

44

149

813.46

28.80

23,427.51

0.27

1,301.53

src/localization/cs.ts

565

1,186

10,842.54

6.77

73,413.02

3.61

4,078.50

src/localization/de.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/en.ts

564

1,175

10,738.97

4.64

49,805.61

3.58

2,766.98

src/localization/es.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/fr.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/hu.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/localization/index.ts

155

817

5,944.59

51.49

306,064.77

1.98

17,003.60

src/localization/it.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/ja.ts

565

1,186

10,842.54

6.77

73,413.02

3.61

4,078.50

src/localization/ko.ts

557

1,186

10,818.14

6.87

74,324.99

3.61

4,129.17

src/localization/pl.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/localization/pt-br.ts

568

1,186

10,851.60

6.73

73,077.22

3.62

4,059.85

src/localization/ru.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/tr.ts

567

1,186

10,848.59

6.75

73,188.78

3.62

4,066.04

src/localization/zh-cn.ts

562

1,186

10,833.43

6.81

73,752.17

3.61

4,097.34

src/localization/zh-tw.ts

566

1,186

10,845.56

6.76

73,300.72

3.62

4,072.26

src/logPanel/autoSaveManager.ts

76

243

1,518.25

33.72

51,194.53

0.51

2,844.14

src/logPanel/html.ts

254

1,817

14,515.44

57.03

827,775.96

4.84

45,987.55

src/logPanel/index.ts

7

7

19.65

2.50

49.13

0.01

2.73

src/logPanel/logPanel.ts

120

411

2,838.73

29.20

82,887.56

0.95

4,604.86

src/logPanel/messageParser.ts

83

590

3,761.27

70.02

263,374.61

1.25

14,631.92

src/logPanel/stateStore.ts

81

426

2,700.78

61.86

167,071.27

0.90

9,281.74

src/logPanel/types.ts

33

96

484.26

8.84

4,281.89

0.16

237.88

src/logSession/authenticationProvider.ts

105

542

3,639.12

56.92

207,149.97

1.21

11,508.33

src/logSession/connectionManager.ts

139

564

4,015.08

41.93

168,332.34

1.34

9,351.80

src/logSession/errors.ts

31

52

257.62

11.08

2,855.27

0.09

158.63

src/logSession/fingerprintPersistence.ts

106

626

4,211.68

75.58

318,321.36

1.40

17,684.52

src/logSession/hostKeyVerifier.ts

116

481

3,298.69

45.41

149,778.30

1.10

8,321.02

src/logSession/index.ts

11

23

79.57

3.60

286.44

0.03

15.91

src/logSession/logSession.ts

147

553

3,981.42

32.80

130,576.44

1.33

7,254.25

src/logSession/reconnectionController.ts

74

260

1,614.46

63.54

102,577.87

0.54

5,698.77

src/logSession/types.ts

30

80

392.55

8.50

3,336.69

0.13

185.37

src/mcp/audit.ts

65

185

1,114.14

25.21

28,089.78

0.37

1,560.54

src/mcp/sanitizer.ts

82

279

1,773.76

28.67

50,853.99

0.59

2,825.22

src/mcp/server.ts

69

178

1,087.32

24.62

26,764.73

0.36

1,486.93

src/mcp/tools.ts

143

542

3,880.65

38.19

148,187.58

1.29

8,232.64

src/passwordManager.ts

128

420

2,940.00

23.96

70,444.71

0.98

3,913.59

src/services/diagnosticService.ts

105

335

2,249.27

36.00

80,973.80

0.75

4,498.54

src/services/logService.ts

77

192

1,203.22

17.01

20,466.82

0.40

1,137.05

src/sftpExplorer.ts

916

8,565

84,272.78

128.53

10,831,228.34

28.09

601,734.91

src/sftpSearch.ts

146

788

5,665.58

55.85

316,417.40

1.89

17,578.74

src/sidebarView.ts

216

1,284

9,957.28

60.00

597,436.53

3.32

33,190.92

src/sshCommandExecution.ts

134

605

4,274.98

44.69

191,062.64

1.42

10,614.59

src/sshCommandRunner.ts

215

1,252

9,700.74

93.25

904,545.58

3.23

50,252.53

src/sshTerminal.ts

146

416

2,990.97

29.06

86,910.09

1.00

4,828.34

tests/e2e/runTest.js

61

203

1,203.94

19.07

22,954.06

0.40

1,275.23

tests/e2e/suite/extension.test.js

30

78

382.74

9.19

3,516.40

0.13

195.36

tests/e2e/suite/index.js

67

229

1,389.13

18.09

25,127.90

0.46

1,395.99

tests/e2e/suite/sftpExplorer.test.js

74

318

1,974.61

25.56

50,478.50

0.66

2,804.36

tests/integration/logSession.integration.test.ts

82

287

1,824.62

16.76

30,585.54

0.61

1,699.20

tests/integration/sidebar.integration.test.ts

162

1,249

9,167.47

44.00

403,368.80

3.06

22,409.38

tests/mocks/ssh.ts

109

724

4,900.17

66.63

326,473.52

1.63

18,137.42

tests/mocks/vscode.ts

353

3,871

32,762.30

121.91

3,994,053.47

10.92

221,891.86

tests/unit/authenticationProvider.test.ts

137

1,087

7,715.56

36.53

281,856.95

2.57

15,658.72

tests/unit/autoSaveManager.test.ts

112

996

6,780.13

44.86

304,181.09

2.26

16,898.95

tests/unit/configuration.test.ts

217

2,126

16,501.06

58.40

963,591.19

5.50

53,532.84

tests/unit/connectionManager.test.ts

195

3,174

24,145.67

92.72

2,238,700.80

8.05

124,372.27

tests/unit/deviceManagerPanel.test.ts

273

2,599

21,033.08

71.31

1,499,882.06

7.01

83,326.78

tests/unit/devicePing.test.ts

93

577

3,773.09

34.57

130,429.02

1.26

7,246.06

tests/unit/deviceTree.test.ts

109

647

4,379.02

23.96

104,926.07

1.46

5,829.23

tests/unit/extensionPasswordCommands.test.ts

74

209

1,297.78

14.81

19,226.31

0.43

1,068.13

tests/unit/extensionSftpPresetMigration.test.ts

69

302

1,844.77

17.48

32,246.66

0.61

1,791.48

tests/unit/extensionWebBrowserCommands.test.ts

93

217

1,419.00

16.58

23,533.53

0.47

1,307.42

tests/unit/fingerprintPersistence.test.ts

106

894

6,014.76

41.43

249,177.77

2.00

13,843.21

tests/unit/hostEndpoints.test.ts

47

148

822.08

10.82

8,893.40

0.27

494.08

tests/unit/hostKeyVerifier.test.ts

46

123

679.40

10.06

6,836.44

0.23

379.80

tests/unit/localization.test.ts

76

194

1,212.10

20.54

24,900.71

0.40

1,383.37

tests/unit/loggerPanelMessaging.test.ts

71

299

1,838.77

26.69

49,082.74

0.61

2,726.82

tests/unit/logPanel.test.ts

291

3,334

27,288.37

65.36

1,783,580.84

9.10

99,087.82

tests/unit/logSession.test.ts

66

194

1,172.61

12.73

14,932.10

0.39

829.56

tests/unit/mcpIntegration.test.ts

135

722

5,109.46

24.54

125,388.93

1.70

6,966.05

tests/unit/messageParser.test.ts

70

653

4,002.42

25.50

102,061.76

1.33

5,670.10

tests/unit/packageNls.test.ts

102

394

2,628.94

27.01

71,017.27

0.88

3,945.40

tests/unit/passwordManager.test.ts

73

221

1,367.95

16.56

22,650.12

0.46

1,258.34

tests/unit/reconnectionController.test.ts

70

482

2,954.31

30.60

90,402.02

0.98

5,022.33

tests/unit/sftpExplorer.test.ts

515

5,984

53,906.44

117.55

6,336,766.25

17.97

352,042.57

tests/unit/sftpSearch.test.ts

121

742

5,133.80

22.48

115,387.01

1.71

6,410.39

tests/unit/sidebarView.test.ts

123

781

5,422.10

35.11

190,388.51

1.81

10,577.14

tests/unit/sshCommandRunner.test.ts

262

2,422

19,456.95

83.36

1,622,010.30

6.49

90,111.68

tests/unit/sshTerminal.test.ts

398

5,049

43,606.32

138.82

6,053,279.37

14.54

336,293.30

tests/unit/stateStore.test.ts

84

487

3,113.06

31.11

96,836.54

1.04

5,379.81

Class coupling and inheritance by file

Class

File

DIT

CBO

DeviceManagerPanel

src/deviceManagerPanel.ts

1

23

DeviceItem

src/deviceTree.ts

2

2

DeviceTreeDataProvider

src/deviceTree.ts

1

10

GroupItem

src/deviceTree.ts

2

2

AutoSaveManager

src/logPanel/autoSaveManager.ts

1

2

LogPanel

src/logPanel/logPanel.ts

1

17

WorkspaceStateStore

src/logPanel/stateStore.ts

1

5

AuthenticationProvider

src/logSession/authenticationProvider.ts

1

9

ConnectionManager

src/logSession/connectionManager.ts

1

12

HostKeyMismatchError

src/logSession/errors.ts

2

2

FingerprintPersistence

src/logSession/fingerprintPersistence.ts

1

6

HostKeyVerifier

src/logSession/hostKeyVerifier.ts

1

4

LogSession

src/logSession/logSession.ts

1

21

ReconnectionController

src/logSession/reconnectionController.ts

1

3

McpAudit

src/mcp/audit.ts

1

4

McpSanitizer

src/mcp/sanitizer.ts

1

0

LocalMcpServer

src/mcp/server.ts

1

12

PasswordManager

src/passwordManager.ts

1

9

DiagnosticService

src/services/diagnosticService.ts

1

5

LogService

src/services/logService.ts

1

5

HostKeyMismatchError

src/sftpExplorer.ts

2

1

SftpExplorerPanel

src/sftpExplorer.ts

1

40

SidebarViewProvider

src/sidebarView.ts

1

12

SshCommandError

src/sshCommandRunner.ts

2

1

SshCommandRunner

src/sshCommandRunner.ts

1

18

SshTerminalSession

src/sshTerminal.ts

1

19

MockSftpWrapper

tests/mocks/ssh.ts

1

5

MockSshChannel

tests/mocks/ssh.ts

2

1

MockSshClient

tests/mocks/ssh.ts

2

9

MockWriteStream

tests/unit/autoSaveManager.test.ts

2

1

MockLogSession

tests/unit/logPanel.test.ts

1

1

MemorySftp

tests/unit/sftpExplorer.test.ts

1

8

MockClient

tests/unit/sshTerminal.test.ts

2

7

MockEmitter

tests/unit/sshTerminal.test.ts

1

2

MockSftpSession

tests/unit/sshTerminal.test.ts

1

2

MockShellChannel

tests/unit/sshTerminal.test.ts

2

1

Complexity by function (outside thresholds)

Function

Class

Location

LOC

Cyclomatic

Cognitive

toViewDevice

—

media/deviceManager.js:167

38

29

28

renderSshCommandsEditor

—

media/deviceManager.js:642

225

3

2

<anonymous>

—

media/deviceManager.js:706

163

7

6

createInput

—

media/deviceManager.js:1011

112

16

15

buildHelpJson

—

media/deviceManager.js:1426

70

10

9

<anonymous>

—

media/loggerPanel.js:26

1,901

11

10

handleLogLine

—

media/loggerPanel.js:631

53

19

29

handleBookmarkAction

—

media/loggerPanel.js:1122

34

11

12

renderStatusText

—

media/loggerPanel.js:1352

50

14

20

registerMessageHandlers

—

media/loggerPanel/messaging.js:17

133

1

0

<anonymous>

—

media/loggerPanel/messaging.js:27

122

45

63

buildHighlightedContent

—

media/loggerPanel/rendering.js:64

53

14

22

createStateController

—

media/loggerPanel/state.js:55

207

1

0

restoreStateFromSnapshot

—

media/loggerPanel/state.js:170

75

29

28

<anonymous>

—

media/sftpExplorer.js:7

2,041

3

2

handleTestCommand

—

media/sftpExplorer.js:423

47

18

20

selectNextQuickSearchMatch

—

media/sftpExplorer.js:578

35

10

10

<anonymous>

—

media/sftpExplorer.js:723

56

10

9

handleEntryClick

—

media/sftpExplorer.js:793

36

12

15

updateContextMenuOptions

—

media/sftpExplorer.js:884

36

11

10

buildModeFromDialog

—

media/sftpExplorer.js:1034

13

10

9

applyFindOptions

—

media/sftpExplorer.js:1227

17

10

9

openFindDialog

—

media/sftpExplorer.js:1284

29

11

10

handleListResponse

—

media/sftpExplorer.js:1449

34

13

18

deleteSelected

—

media/sftpExplorer.js:1678

33

13

13

<anonymous>

—

media/sftpExplorer.js:1934

79

31

37

<anonymous>

—

media/sftpExplorer.js:2063

38

11

11

<anonymous>

—

media/sftpExplorer.js:2184

49

17

24

<anonymous>

—

media/sidebarView.js:7

359

2

1

createDeviceCard

—

media/sidebarView.js:155

145

10

9

normalizeSshCommands

—

src/configuration.ts:56

36

19

27

applyDeviceDefaults

—

src/configuration.ts:173

31

12

11

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:218

214

1

0

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:452

127

9

12

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:791

19

12

11

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:917

54

24

23

<anonymous>

—

src/deviceManagerPanel.ts:1127

51

17

17

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1311

22

14

13

<anonymous>

—

src/deviceManagerPanel.ts:1361

21

11

10

migrateLegacyPasswords

—

src/extension.ts:103

137

24

31

<anonymous>

—

src/extension.ts:278

42

10

9

activate

—

src/extension.ts:361

679

5

7

buildLogPanelHtml

—

src/logPanel/html.ts:17

177

1

0

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:161

43

14

14

parseWebviewMessage

—

src/logPanel/messageParser.ts:26

48

20

25

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

29

12

14

registerMcpTools

—

src/mcp/tools.ts:41

247

1

0

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

70

15

18

command

DiagnosticService

src/services/diagnosticService.ts:24

35

17

21

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

53

18

40

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

57

20

21

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

192

30

36

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

57

16

20

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

19

10

9

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

44

10

12

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

66

15

22

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

29

12

14

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

732

2

1

compileSftpSearchCommand

—

src/sftpSearch.ts:89

61

20

33

<anonymous>

—

src/sidebarView.ts:139

39

10

10

run

SshCommandRunner

src/sshCommandRunner.ts:82

50

12

14

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

29

12

14

start

SshTerminalSession

src/sshTerminal.ts:142

73

18

22

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

29

12

14

<anonymous>

—

tests/e2e/suite/sftpExplorer.test.js:6

300

1

0

<anonymous>

—

tests/integration/sidebar.integration.test.ts:24

204

1

0

<anonymous>

—

tests/unit/authenticationProvider.test.ts:30

209

1

0

<anonymous>

—

tests/unit/configuration.test.ts:37

343

1

0

<anonymous>

—

tests/unit/connectionManager.test.ts:27

462

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:48

1,003

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:408

131

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:543

115

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:814

107

1

0

<anonymous>

—

tests/unit/extensionPasswordCommands.test.ts:77

153

1

0

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:67

414

1

0

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:211

108

1

0

<anonymous>

—

tests/unit/fingerprintPersistence.test.ts:25

118

1

0

<anonymous>

—

tests/unit/logPanel.test.ts:64

374

1

0

<anonymous>

—

tests/unit/logSession.test.ts:46

346

1

0

<anonymous>

—

tests/unit/messageParser.test.ts:5

110

1

0

<anonymous>

—

tests/unit/passwordManager.test.ts:42

153

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:314

2,823

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:756

111

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:880

163

4

3

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1052

181

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1593

201

2

1

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2034

173

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2402

153

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2652

130

2

1

<anonymous>

—

tests/unit/sftpSearch.test.ts:9

125

1

0

<anonymous>

—

tests/unit/sidebarView.test.ts:16

121

1

0

<anonymous>

—

tests/unit/sshCommandRunner.test.ts:27

464

1

0

<anonymous>

—

tests/unit/sshTerminal.test.ts:215

529

1

0

<anonymous>

—

tests/unit/sshTerminal.test.ts:401

120

1

0

<anonymous>

—

tests/unit/stateStore.test.ts:8

101

1

0

Halstead metrics by function (outside thresholds)

Function

Class

Location

Vocabulary

Length

Volume

Difficulty

Effort

Bugs

Time (sec)

toViewDevice

—

media/deviceManager.js:167

57

324

1,889.86

26.79

50,621.15

0.63

2,812.29

renderSshCommandsEditor

—

media/deviceManager.js:642

144

1,626

11,658.30

77.00

897,688.95

3.89

49,871.61

<anonymous>

—

media/deviceManager.js:706

108

1,189

8,031.56

72.93

585,716.30

2.68

32,539.79

createInput

—

media/deviceManager.js:1011

104

844

5,655.17

45.30

256,179.25

1.89

14,232.18

buildHelpJson

—

media/deviceManager.js:1426

102

354

2,362.04

19.94

47,093.14

0.79

2,616.29

<anonymous>

—

media/loggerPanel.js:26

435

3,366

29,502.56

68.17

2,011,329.35

9.83

111,740.52

handleLogLine

—

media/loggerPanel.js:631

69

392

2,394.54

30.63

73,332.84

0.80

4,074.05

handleBookmarkAction

—

media/loggerPanel.js:1122

44

133

726.10

16.89

12,264.85

0.24

681.38

renderStatusText

—

media/loggerPanel.js:1352

65

273

1,644.11

34.11

56,072.68

0.55

3,115.15

registerMessageHandlers

—

media/loggerPanel/messaging.js:17

127

836

5,842.54

46.02

268,846.28

1.95

14,935.90

<anonymous>

—

media/loggerPanel/messaging.js:27

121

809

5,597.36

43.37

242,770.62

1.87

13,487.26

buildHighlightedContent

—

media/loggerPanel/rendering.js:64

67

296

1,795.56

44.59

80,072.38

0.60

4,448.47

createStateController

—

media/loggerPanel/state.js:55

138

1,214

8,629.75

73.15

631,302.41

2.88

35,072.36

restoreStateFromSnapshot

—

media/loggerPanel/state.js:170

94

613

4,017.96

49.09

197,258.69

1.34

10,958.82

<anonymous>

—

media/sftpExplorer.js:7

350

1,415

11,958.46

29.49

352,699.71

3.99

19,594.43

handleTestCommand

—

media/sftpExplorer.js:423

68

207

1,260.10

16.87

21,253.77

0.42

1,180.76

selectNextQuickSearchMatch

—

media/sftpExplorer.js:578

63

251

1,500.30

37.53

56,305.27

0.50

3,128.07

<anonymous>

—

media/sftpExplorer.js:723

50

161

908.66

17.52

15,915.33

0.30

884.19

handleEntryClick

—

media/sftpExplorer.js:793

72

275

1,696.73

28.54

48,430.56

0.57

2,690.59

updateContextMenuOptions

—

media/sftpExplorer.js:884

61

258

1,530.13

31.78

48,633.33

0.51

2,701.85

buildModeFromDialog

—

media/sftpExplorer.js:1034

36

122

630.73

16.39

10,338.50

0.21

574.36

applyFindOptions

—

media/sftpExplorer.js:1227

52

180

1,026.08

11.27

11,562.16

0.34

642.34

openFindDialog

—

media/sftpExplorer.js:1284

49

153

859.05

16.20

13,919.30

0.29

773.29

handleListResponse

—

media/sftpExplorer.js:1449

54

269

1,548.06

31.82

49,256.61

0.52

2,736.48

deleteSelected

—

media/sftpExplorer.js:1678

48

113

631.10

19.46

12,282.19

0.21

682.34

<anonymous>

—

media/sftpExplorer.js:1934

63

388

2,319.18

27.21

63,103.40

0.77

3,505.74

<anonymous>

—

media/sftpExplorer.js:2063

57

209

1,219.07

24.51

29,884.73

0.41

1,660.26

<anonymous>

—

media/sftpExplorer.js:2184

67

249

1,510.46

25.00

37,761.41

0.50

2,097.86

<anonymous>

—

media/sidebarView.js:7

137

574

4,074.27

29.86

121,656.95

1.36

6,758.72

createDeviceCard

—

media/sidebarView.js:155

69

319

1,948.62

21.09

41,089.64

0.65

2,282.76

normalizeSshCommands

—

src/configuration.ts:56

58

256

1,499.64

47.07

70,594.31

0.50

3,921.91

applyDeviceDefaults

—

src/configuration.ts:173

52

223

1,271.20

28.79

36,598.20

0.42

2,033.23

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:218

227

1,582

12,381.60

39.39

487,687.19

4.13

27,093.73

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:452

123

641

4,450.15

43.45

193,351.42

1.48

10,741.75

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:791

57

206

1,201.58

18.08

21,728.49

0.40

1,207.14

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:917

61

431

2,556.15

37.56

96,011.40

0.85

5,333.97

<anonymous>

—

src/deviceManagerPanel.ts:1127

51

181

1,026.71

17.03

17,481.80

0.34

971.21

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1311

44

146

797.08

21.67

17,270.00

0.27

959.44

<anonymous>

—

src/deviceManagerPanel.ts:1361

29

44

213.75

12.31

2,630.78

0.07

146.15

migrateLegacyPasswords

—

src/extension.ts:103

82

364

2,314.15

50.56

117,003.37

0.77

6,500.19

<anonymous>

—

src/extension.ts:278

58

287

1,681.24

39.00

65,568.38

0.56

3,642.69

activate

—

src/extension.ts:361

297

2,245

18,441.15

83.89

1,547,007.28

6.15

85,944.85

buildLogPanelHtml

—

src/logPanel/html.ts:17

247

1,792

14,243.47

50.46

718,737.52

4.75

39,929.86

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:161

59

203

1,194.18

22.06

26,344.26

0.40

1,463.57

parseWebviewMessage

—

src/logPanel/messageParser.ts:26

58

263

1,540.65

43.08

66,366.42

0.51

3,687.02

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

41

208

1,114.37

38.85

43,293.31

0.37

2,405.18

registerMcpTools

—

src/mcp/tools.ts:41

71

145

891.71

19.02

16,962.82

0.30

942.38

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

56

131

760.76

23.28

17,707.43

0.25

983.75

command

DiagnosticService

src/services/diagnosticService.ts:24

47

112

622.11

14.59

9,076.20

0.21

504.23

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

77

345

2,162.04

44.28

95,733.18

0.72

5,318.51

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

66

269

1,625.94

21.23

34,524.17

0.54

1,918.01

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

129

990

6,941.11

56.46

391,925.10

2.31

21,773.62

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

66

458

2,768.33

58.95

163,185.92

0.92

9,065.88

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

44

170

928.10

34.50

32,019.57

0.31

1,778.86

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

62

287

1,708.85

40.78

69,689.22

0.57

3,871.62

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

76

240

1,499.50

28.37

42,540.24

0.50

2,363.35

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

444

4,369

38,422.80

56.29

2,162,654.91

12.81

120,147.49

compileSftpSearchCommand

—

src/sftpSearch.ts:89

93

308

2,014.06

27.87

56,126.21

0.67

3,118.12

<anonymous>

—

src/sidebarView.ts:139

47

181

1,005.38

13.58

13,648.80

0.34

758.27

run

SshCommandRunner

src/sshCommandRunner.ts:82

80

275

1,738.53

40.44

70,309.40

0.58

3,906.08

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

start

SshTerminalSession

src/sshTerminal.ts:142

90

367

2,382.51

47.60

113,407.48

0.79

6,300.42

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

40

210

1,117.60

41.45

46,321.78

0.37

2,573.43

<anonymous>

—

tests/e2e/suite/sftpExplorer.test.js:6

67

298

1,807.69

25.00

45,192.36

0.60

2,510.69

<anonymous>

—

tests/integration/sidebar.integration.test.ts:24

139

1,102

7,845.07

39.94

313,339.35

2.62

17,407.74

<anonymous>

—

tests/unit/authenticationProvider.test.ts:30

115

929

6,359.46

33.18

210,978.48

2.12

11,721.03

<anonymous>

—

tests/unit/configuration.test.ts:37

196

1,957

14,901.99

53.76

801,136.12

4.97

44,507.56

<anonymous>

—

tests/unit/connectionManager.test.ts:27

179

3,052

22,840.61

90.77

2,073,241.78

7.61

115,180.10

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:48

246

2,396

19,030.26

72.76

1,384,656.63

6.34

76,925.37

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:408

88

394

2,545.02

21.94

55,831.29

0.85

3,101.74

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:543

129

944

6,618.60

30.53

202,083.75

2.21

11,226.88

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:814

132

442

3,113.62

15.54

48,372.34

1.04

2,687.35

<anonymous>

—

tests/unit/extensionPasswordCommands.test.ts:77

115

1,192

8,159.82

49.44

403,428.72

2.72

22,412.71

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:67

269

3,206

25,877.11

63.38

1,640,028.85

8.63

91,112.71

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:211

117

808

5,551.25

37.55

208,440.66

1.85

11,580.04

<anonymous>

—

tests/unit/fingerprintPersistence.test.ts:25

89

794

5,141.73

38.26

196,727.15

1.71

10,929.29

<anonymous>

—

tests/unit/logPanel.test.ts:64

252

3,008

23,995.66

53.21

1,276,760.12

8.00

70,931.12

<anonymous>

—

tests/unit/logSession.test.ts:46

82

300

1,907.27

22.29

42,504.78

0.64

2,361.38

<anonymous>

—

tests/unit/messageParser.test.ts:5

64

629

3,774.00

22.81

86,099.00

1.26

4,783.28

<anonymous>

—

tests/unit/passwordManager.test.ts:42

132

1,246

8,777.32

46.95

412,090.92

2.93

22,893.94

<anonymous>

—

tests/unit/sftpExplorer.test.ts:314

607

8,962

82,858.64

125.68

10,413,925.83

27.62

578,551.44

<anonymous>

—

tests/unit/sftpExplorer.test.ts:756

116

1,033

7,084.29

63.66

451,005.95

2.36

25,055.89

<anonymous>

—

tests/unit/sftpExplorer.test.ts:880

185

1,437

10,822.60

53.90

583,337.88

3.61

32,407.66

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1052

164

1,490

10,962.75

72.98

800,065.13

3.65

44,448.06

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1593

156

1,507

10,979.10

52.48

576,193.29

3.66

32,010.74

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2034

160

1,448

10,602.15

67.68

717,584.67

3.53

39,865.82

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2402

179

1,160

8,681.23

45.94

398,793.83

2.89

22,155.21

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2652

125

696

4,848.19

21.01

101,879.24

1.62

5,659.96

<anonymous>

—

tests/unit/sftpSearch.test.ts:9

115

713

4,880.83

19.88

97,006.58

1.63

5,389.25

<anonymous>

—

tests/unit/sidebarView.test.ts:16

108

695

4,694.65

33.14

155,594.01

1.56

8,644.11

<anonymous>

—

tests/unit/sshCommandRunner.test.ts:27

236

2,255

17,775.36

81.51

1,448,875.10

5.93

80,493.06

<anonymous>

—

tests/unit/sshTerminal.test.ts:215

319

3,683

30,633.03

97.31

2,980,851.02

10.21

165,602.83

<anonymous>

—

tests/unit/sshTerminal.test.ts:401

93

791

5,172.47

38.11

197,145.18

1.72

10,952.51

<anonymous>

—

tests/unit/stateStore.test.ts:8

75

435

2,709.54

30.51

82,666.41

0.90

4,592.58

Class coupling and inheritance by function (outside thresholds)

Function

Class

Location

DIT

CBO

toViewDevice

—

media/deviceManager.js:167

1

0

renderSshCommandsEditor

—

media/deviceManager.js:642

1

0

<anonymous>

—

media/deviceManager.js:706

1

0

createInput

—

media/deviceManager.js:1011

1

0

buildHelpJson

—

media/deviceManager.js:1426

1

0

<anonymous>

—

media/loggerPanel.js:26

1

0

handleLogLine

—

media/loggerPanel.js:631

1

0

handleBookmarkAction

—

media/loggerPanel.js:1122

1

0

renderStatusText

—

media/loggerPanel.js:1352

1

0

registerMessageHandlers

—

media/loggerPanel/messaging.js:17

1

0

<anonymous>

—

media/loggerPanel/messaging.js:27

1

0

buildHighlightedContent

—

media/loggerPanel/rendering.js:64

1

0

createStateController

—

media/loggerPanel/state.js:55

1

0

restoreStateFromSnapshot

—

media/loggerPanel/state.js:170

1

0

<anonymous>

—

media/sftpExplorer.js:7

1

0

handleTestCommand

—

media/sftpExplorer.js:423

1

0

selectNextQuickSearchMatch

—

media/sftpExplorer.js:578

1

0

<anonymous>

—

media/sftpExplorer.js:723

1

0

handleEntryClick

—

media/sftpExplorer.js:793

1

0

updateContextMenuOptions

—

media/sftpExplorer.js:884

1

0

buildModeFromDialog

—

media/sftpExplorer.js:1034

1

0

applyFindOptions

—

media/sftpExplorer.js:1227

1

0

openFindDialog

—

media/sftpExplorer.js:1284

1

0

handleListResponse

—

media/sftpExplorer.js:1449

1

0

deleteSelected

—

media/sftpExplorer.js:1678

1

0

<anonymous>

—

media/sftpExplorer.js:1934

1

0

<anonymous>

—

media/sftpExplorer.js:2063

1

0

<anonymous>

—

media/sftpExplorer.js:2184

1

0

<anonymous>

—

media/sidebarView.js:7

1

0

createDeviceCard

—

media/sidebarView.js:155

1

0

normalizeSshCommands

—

src/configuration.ts:56

1

0

applyDeviceDefaults

—

src/configuration.ts:173

1

0

buildHtml

DeviceManagerPanel

src/deviceManagerPanel.ts:218

1

23

saveConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:452

1

23

getDefaultsFromConfiguration

DeviceManagerPanel

src/deviceManagerPanel.ts:791

1

23

normalizeDevice

DeviceManagerPanel

src/deviceManagerPanel.ts:917

1

23

<anonymous>

—

src/deviceManagerPanel.ts:1127

1

0

buildBastion

DeviceManagerPanel

src/deviceManagerPanel.ts:1311

1

23

<anonymous>

—

src/deviceManagerPanel.ts:1361

1

0

migrateLegacyPasswords

—

src/extension.ts:103

1

0

<anonymous>

—

src/extension.ts:278

1

0

activate

—

src/extension.ts:361

1

0

buildLogPanelHtml

—

src/logPanel/html.ts:17

1

0

handleWebviewMessage

LogPanel

src/logPanel/logPanel.ts:161

1

17

parseWebviewMessage

—

src/logPanel/messageParser.ts:26

1

0

validateDeviceConfiguration

LogSession

src/logSession/logSession.ts:178

1

21

registerMcpTools

—

src/mcp/tools.ts:41

1

0

tryReuseStoredSecret

PasswordManager

src/passwordManager.ts:194

1

9

command

DiagnosticService

src/services/diagnosticService.ts:24

1

5

collectTestSearchEntries

SftpExplorerPanel

src/sftpExplorer.ts:538

1

40

handleTestMessage

SftpExplorerPanel

src/sftpExplorer.ts:594

1

40

handleMessage

SftpExplorerPanel

src/sftpExplorer.ts:652

1

40

copyEntry

SftpExplorerPanel

src/sftpExplorer.ts:1412

1

40

refreshRemoteViewsAfterReconnect

SftpExplorerPanel

src/sftpExplorer.ts:1665

1

40

applyPermissions

SftpExplorerPanel

src/sftpExplorer.ts:1973

1

40

createSftpConnection

SftpExplorerPanel

src/sftpExplorer.ts:2522

1

40

validateDeviceConfiguration

SftpExplorerPanel

src/sftpExplorer.ts:2598

1

40

getHtml

SftpExplorerPanel

src/sftpExplorer.ts:2991

1

40

compileSftpSearchCommand

—

src/sftpSearch.ts:89

1

0

<anonymous>

—

src/sidebarView.ts:139

1

0

run

SshCommandRunner

src/sshCommandRunner.ts:82

1

18

validateDeviceConfiguration

SshCommandRunner

src/sshCommandRunner.ts:141

1

18

start

SshTerminalSession

src/sshTerminal.ts:142

1

19

validateDeviceConfiguration

SshTerminalSession

src/sshTerminal.ts:231

1

19

<anonymous>

—

tests/e2e/suite/sftpExplorer.test.js:6

1

0

<anonymous>

—

tests/integration/sidebar.integration.test.ts:24

1

0

<anonymous>

—

tests/unit/authenticationProvider.test.ts:30

1

0

<anonymous>

—

tests/unit/configuration.test.ts:37

1

0

<anonymous>

—

tests/unit/connectionManager.test.ts:27

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:48

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:408

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:543

1

0

<anonymous>

—

tests/unit/deviceManagerPanel.test.ts:814

1

0

<anonymous>

—

tests/unit/extensionPasswordCommands.test.ts:77

1

0

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:67

1

0

<anonymous>

—

tests/unit/extensionWebBrowserCommands.test.ts:211

1

0

<anonymous>

—

tests/unit/fingerprintPersistence.test.ts:25

1

0

<anonymous>

—

tests/unit/logPanel.test.ts:64

1

0

<anonymous>

—

tests/unit/logSession.test.ts:46

1

0

<anonymous>

—

tests/unit/messageParser.test.ts:5

1

0

<anonymous>

—

tests/unit/passwordManager.test.ts:42

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:314

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:756

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:880

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1052

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:1593

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2034

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2402

1

0

<anonymous>

—

tests/unit/sftpExplorer.test.ts:2652

1

0

<anonymous>

—

tests/unit/sftpSearch.test.ts:9

1

0

<anonymous>

—

tests/unit/sidebarView.test.ts:16

1

0

<anonymous>

—

tests/unit/sshCommandRunner.test.ts:27

1

0

<anonymous>

—

tests/unit/sshTerminal.test.ts:215

1

0

<anonymous>

—

tests/unit/sshTerminal.test.ts:401

1

0

<anonymous>

—

tests/unit/stateStore.test.ts:8

1

0

Generated on 2026-10-24T15:31:52.317Z.


Test Coverage

The coverage summary is generated automatically when running the test suite (for example, via npm test or make test) and exported into the documentation metrics.

The target is to reach more than 80 percent of code being tested per file.

Overall coverage

Metric

Coverage

Lines

86.8% (3352/3862)

Statements

86.5% (3397/3928)

Functions

84.5% (666/788)

Branches

80.0% (1989/2485)

Coverage by file

File

Lines

Statements

Functions

Branches

src/configuration.ts

100.0% (97/97)

100.0% (98/98)

100.0% (23/23)

86.8% (92/106)

src/deviceColor.ts

100.0% (10/10)

100.0% (10/10)

100.0% (3/3)

100.0% (2/2)

src/deviceIdentity.ts

91.9% (34/37)

92.3% (36/39)

100.0% (7/7)

78.8% (26/33)

src/deviceManagerPanel.ts

89.9% (320/356)

90.0% (323/359)

97.5% (78/80)

81.8% (270/330)

src/devicePing.ts

100.0% (18/18)

100.0% (20/20)

100.0% (7/7)

100.0% (8/8)

src/deviceTree.ts

100.0% (36/36)

100.0% (40/40)

100.0% (12/12)

100.0% (13/13)

src/extension.ts

80.9% (415/513)

80.6% (420/521)

65.5% (57/87)

77.6% (215/277)

src/highlights.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/hostEndpoints.ts

100.0% (8/8)

100.0% (8/8)

100.0% (1/1)

100.0% (4/4)

src/localization/cs.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/de.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/en.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/es.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/fr.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/hu.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/index.ts

96.5% (28/29)

96.5% (28/29)

100.0% (12/12)

85.7% (30/35)

src/localization/it.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ja.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ko.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/pl.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/pt-br.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/ru.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/tr.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/zh-cn.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/localization/zh-tw.ts

100.0% (1/1)

100.0% (1/1)

100.0% (0/0)

100.0% (0/0)

src/logPanel/autoSaveManager.ts

94.3% (33/35)

94.6% (35/37)

100.0% (10/10)

83.3% (20/24)

src/logPanel/html.ts

100.0% (15/15)

100.0% (16/16)

100.0% (2/2)

100.0% (0/0)

src/logPanel/index.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/logPanel/logPanel.ts

94.2% (194/206)

94.3% (199/211)

93.0% (40/43)

77.6% (66/85)

src/logPanel/messageParser.ts

96.2% (25/26)

96.3% (26/27)

100.0% (6/6)

97.7% (43/44)

src/logPanel/stateStore.ts

100.0% (19/19)

100.0% (21/21)

100.0% (10/10)

100.0% (2/2)

src/logSession/authenticationProvider.ts

100.0% (42/42)

100.0% (42/42)

100.0% (8/8)

93.1% (27/29)

src/logSession/connectionManager.ts

93.0% (67/72)

93.0% (67/72)

94.7% (18/19)

86.7% (26/30)

src/logSession/errors.ts

100.0% (5/5)

100.0% (5/5)

100.0% (1/1)

100.0% (0/0)

src/logSession/fingerprintPersistence.ts

94.6% (35/37)

94.6% (35/37)

100.0% (7/7)

84.2% (32/38)

src/logSession/hostKeyVerifier.ts

97.6% (41/42)

97.6% (41/42)

100.0% (8/8)

90.9% (20/22)

src/logSession/index.ts

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

100.0% (0/0)

src/logSession/logSession.ts

94.5% (121/128)

93.1% (122/131)

82.1% (23/28)

90.5% (67/74)

src/logSession/reconnectionController.ts

95.8% (23/24)

95.8% (23/24)

100.0% (2/2)

91.7% (11/12)

src/mcp/audit.ts

100.0% (7/7)

88.9% (8/9)

100.0% (4/4)

50.0% (1/2)

src/mcp/sanitizer.ts

90.0% (9/10)

90.0% (9/10)

75.0% (3/4)

54.5% (6/11)

src/mcp/server.ts

48.1% (26/54)

48.4% (31/64)

64.3% (9/14)

40.7% (11/27)

src/mcp/tools.ts

4.1% (4/98)

3.8% (4/106)

0.0% (0/33)

0.0% (0/57)

src/passwordManager.ts

94.8% (127/134)

94.8% (127/134)

92.8% (26/28)

82.0% (50/61)

src/services/diagnosticService.ts

50.0% (12/24)

50.0% (13/26)

75.0% (3/4)

46.1% (12/26)

src/services/logService.ts

88.2% (15/17)

84.2% (16/19)

57.1% (4/7)

58.3% (7/12)

src/sftpExplorer.ts

86.3% (1016/1177)

86.4% (1022/1183)

85.0% (175/206)

80.0% (603/754)

src/sftpSearch.ts

100.0% (51/51)

100.0% (51/51)

100.0% (8/8)

98.1% (53/54)

src/sidebarView.ts

95.1% (58/61)

95.2% (60/63)

100.0% (12/12)

86.7% (13/15)

src/sshCommandExecution.ts

95.5% (42/44)

95.5% (42/44)

100.0% (10/10)

90.0% (27/30)

src/sshCommandRunner.ts

95.8% (161/168)

95.8% (161/168)

94.6% (35/37)

89.0% (97/109)

src/sshTerminal.ts

90.3% (223/247)

90.3% (223/247)

93.3% (42/45)

84.9% (135/159)

Generated from coverage/coverage-summary.json.