memory-journal-mcp 4.3.0 → 4.4.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.
Files changed (109) hide show
  1. package/.dockerignore +131 -122
  2. package/.gitattributes +29 -0
  3. package/.github/workflows/docker-publish.yml +1 -1
  4. package/.github/workflows/lint-and-test.yml +1 -2
  5. package/.github/workflows/secrets-scanning.yml +0 -1
  6. package/.github/workflows/security-update.yml +6 -6
  7. package/.vscode/settings.json +17 -15
  8. package/CHANGELOG.md +1065 -11
  9. package/DOCKER_README.md +51 -33
  10. package/Dockerfile +14 -12
  11. package/README.md +68 -33
  12. package/SECURITY.md +225 -220
  13. package/dist/cli.js +7 -0
  14. package/dist/cli.js.map +1 -1
  15. package/dist/constants/ServerInstructions.d.ts +1 -1
  16. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  17. package/dist/constants/ServerInstructions.js +70 -26
  18. package/dist/constants/ServerInstructions.js.map +1 -1
  19. package/dist/constants/icons.d.ts +2 -0
  20. package/dist/constants/icons.d.ts.map +1 -1
  21. package/dist/constants/icons.js +6 -0
  22. package/dist/constants/icons.js.map +1 -1
  23. package/dist/database/SqliteAdapter.d.ts +51 -10
  24. package/dist/database/SqliteAdapter.d.ts.map +1 -1
  25. package/dist/database/SqliteAdapter.js +143 -43
  26. package/dist/database/SqliteAdapter.js.map +1 -1
  27. package/dist/filtering/ToolFilter.d.ts +1 -1
  28. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  29. package/dist/filtering/ToolFilter.js +7 -1
  30. package/dist/filtering/ToolFilter.js.map +1 -1
  31. package/dist/github/GitHubIntegration.d.ts +74 -2
  32. package/dist/github/GitHubIntegration.d.ts.map +1 -1
  33. package/dist/github/GitHubIntegration.js +508 -7
  34. package/dist/github/GitHubIntegration.js.map +1 -1
  35. package/dist/handlers/prompts/index.js +1 -0
  36. package/dist/handlers/prompts/index.js.map +1 -1
  37. package/dist/handlers/resources/index.d.ts.map +1 -1
  38. package/dist/handlers/resources/index.js +257 -13
  39. package/dist/handlers/resources/index.js.map +1 -1
  40. package/dist/handlers/tools/index.d.ts.map +1 -1
  41. package/dist/handlers/tools/index.js +595 -8
  42. package/dist/handlers/tools/index.js.map +1 -1
  43. package/dist/server/McpServer.d.ts +2 -0
  44. package/dist/server/McpServer.d.ts.map +1 -1
  45. package/dist/server/McpServer.js +69 -26
  46. package/dist/server/McpServer.js.map +1 -1
  47. package/dist/types/index.d.ts +97 -0
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/utils/logger.d.ts +1 -0
  51. package/dist/utils/logger.d.ts.map +1 -1
  52. package/dist/utils/logger.js +8 -1
  53. package/dist/utils/logger.js.map +1 -1
  54. package/dist/utils/progress-utils.d.ts +18 -3
  55. package/dist/utils/progress-utils.d.ts.map +1 -1
  56. package/dist/utils/progress-utils.js.map +1 -1
  57. package/dist/utils/security-utils.d.ts +91 -0
  58. package/dist/utils/security-utils.d.ts.map +1 -0
  59. package/dist/utils/security-utils.js +184 -0
  60. package/dist/utils/security-utils.js.map +1 -0
  61. package/dist/vector/VectorSearchManager.d.ts +2 -1
  62. package/dist/vector/VectorSearchManager.d.ts.map +1 -1
  63. package/dist/vector/VectorSearchManager.js +100 -34
  64. package/dist/vector/VectorSearchManager.js.map +1 -1
  65. package/docker-compose.yml +46 -37
  66. package/mcp-config-example.json +0 -2
  67. package/package.json +21 -14
  68. package/releases/v4.3.1.md +69 -0
  69. package/releases/v4.4.0.md +120 -0
  70. package/server.json +3 -3
  71. package/src/cli.ts +11 -0
  72. package/src/constants/ServerInstructions.ts +70 -26
  73. package/src/constants/icons.ts +7 -0
  74. package/src/database/SqliteAdapter.ts +165 -44
  75. package/src/filtering/ToolFilter.ts +7 -1
  76. package/src/github/GitHubIntegration.ts +588 -8
  77. package/src/handlers/prompts/index.ts +1 -0
  78. package/src/handlers/resources/index.ts +318 -12
  79. package/src/handlers/tools/index.ts +686 -13
  80. package/src/server/McpServer.ts +79 -37
  81. package/src/types/index.ts +98 -0
  82. package/src/utils/logger.ts +10 -1
  83. package/src/utils/progress-utils.ts +17 -6
  84. package/src/utils/security-utils.ts +205 -0
  85. package/src/vector/VectorSearchManager.ts +110 -39
  86. package/tests/constants/icons.test.ts +102 -0
  87. package/tests/constants/server-instructions.test.ts +549 -0
  88. package/tests/database/sqlite-adapter.bench.ts +63 -0
  89. package/tests/database/sqlite-adapter.test.ts +555 -0
  90. package/tests/filtering/tool-filter.test.ts +266 -0
  91. package/tests/github/github-integration.test.ts +1024 -0
  92. package/tests/handlers/github-resource-handlers.test.ts +473 -0
  93. package/tests/handlers/github-tool-handlers.test.ts +556 -0
  94. package/tests/handlers/prompt-handlers.test.ts +91 -0
  95. package/tests/handlers/resource-handlers.test.ts +339 -0
  96. package/tests/handlers/tool-handlers.test.ts +497 -0
  97. package/tests/handlers/vector-tool-handlers.test.ts +238 -0
  98. package/tests/security/sql-injection.test.ts +347 -0
  99. package/tests/server/mcp-server.bench.ts +55 -0
  100. package/tests/server/mcp-server.test.ts +675 -0
  101. package/tests/utils/logger.test.ts +180 -0
  102. package/tests/utils/mcp-logger.test.ts +212 -0
  103. package/tests/utils/progress-utils.test.ts +156 -0
  104. package/tests/utils/security-utils.test.ts +82 -0
  105. package/tests/vector/vector-search-manager.test.ts +335 -0
  106. package/tests/vector/vector-search.bench.ts +53 -0
  107. package/vitest.config.ts +15 -0
  108. package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +0 -387
  109. package/.github/workflows/dependabot-auto-merge.yml +0 -42
package/.dockerignore CHANGED
@@ -1,122 +1,131 @@
1
- # =============================================================================
2
- # Memory Journal MCP - Docker Build Ignore File
3
- # =============================================================================
4
- # Files and directories excluded from Docker build context
5
- # Keep this in sync with .gitignore where applicable
6
-
7
- # -----------------------------------------------------------------------------
8
- # Dependencies (reinstalled in builder stage)
9
- # -----------------------------------------------------------------------------
10
- node_modules/
11
-
12
- # -----------------------------------------------------------------------------
13
- # Git and Version Control
14
- # -----------------------------------------------------------------------------
15
- .git/
16
- .gitignore
17
- .github/
18
-
19
- # -----------------------------------------------------------------------------
20
- # IDE and Editor Files
21
- # -----------------------------------------------------------------------------
22
- .vscode/
23
- .cursor/
24
- .idea/
25
- *.swp
26
- *.swo
27
- *~
28
-
29
- # -----------------------------------------------------------------------------
30
- # OS Files
31
- # -----------------------------------------------------------------------------
32
- .DS_Store
33
- Thumbs.db
34
-
35
- # -----------------------------------------------------------------------------
36
- # Development Tooling (not needed in production)
37
- # -----------------------------------------------------------------------------
38
- .prettierrc
39
- .prettierignore
40
- eslint.config.js
41
-
42
- # -----------------------------------------------------------------------------
43
- # Local Development Files
44
- # -----------------------------------------------------------------------------
45
- docker-compose.yml
46
- mcp-config-example.json
47
- tools.json
48
- server.json
49
- mcp-publisher.exe
50
-
51
- # -----------------------------------------------------------------------------
52
- # Security Scanning Configs (CI only)
53
- # -----------------------------------------------------------------------------
54
- .scout-ignore
55
- .trivyignore
56
- trivy-results.sarif
57
-
58
- # -----------------------------------------------------------------------------
59
- # Documentation (keep README.md for Docker Hub)
60
- # -----------------------------------------------------------------------------
61
- docs/
62
- releases/
63
- CHANGELOG.md
64
- CODE_OF_CONDUCT.md
65
- CONTRIBUTING.md
66
- DOCKER_README.md
67
- SECURITY.md
68
- *.md
69
- !README.md
70
-
71
- # -----------------------------------------------------------------------------
72
- # Data Directory (mounted as volume at runtime)
73
- # -----------------------------------------------------------------------------
74
- data/
75
-
76
- # -----------------------------------------------------------------------------
77
- # Database Files (runtime only)
78
- # -----------------------------------------------------------------------------
79
- *.db
80
- *.db-shm
81
- *.db-wal
82
- *.sqlite
83
- *.sqlite3
84
-
85
- # -----------------------------------------------------------------------------
86
- # Temporary Files
87
- # -----------------------------------------------------------------------------
88
- temp/
89
- tmp/
90
- *.tmp
91
- *.temp
92
-
93
- # -----------------------------------------------------------------------------
94
- # Logs
95
- # -----------------------------------------------------------------------------
96
- *.log
97
- logs/
98
-
99
- # -----------------------------------------------------------------------------
100
- # Security and Secrets
101
- # -----------------------------------------------------------------------------
102
- *.pem
103
- *.key
104
- .env
105
- .env.*
106
- auth.json
107
- github_auth.json
108
- .mcpregistry_*
109
-
110
- # -----------------------------------------------------------------------------
111
- # Python Legacy (archived, not used in TypeScript version)
112
- # -----------------------------------------------------------------------------
113
- __pycache__/
114
- *.py[cod]
115
- *$py.class
116
- *.so
117
- .Python
118
- venv/
119
- env/
120
- ENV/
121
- *.egg-info/
122
- *.egg
1
+ # =============================================================================
2
+ # Memory Journal MCP - Docker Build Ignore File
3
+ # =============================================================================
4
+ # Files and directories excluded from Docker build context
5
+ # Keep this in sync with .gitignore where applicable
6
+
7
+ # -----------------------------------------------------------------------------
8
+ # Dependencies (reinstalled in builder stage)
9
+ # -----------------------------------------------------------------------------
10
+ node_modules/
11
+
12
+ # -----------------------------------------------------------------------------
13
+ # Git and Version Control
14
+ # -----------------------------------------------------------------------------
15
+ .git/
16
+ .gitignore
17
+ .github/
18
+ .gitattributes
19
+
20
+ # -----------------------------------------------------------------------------
21
+ # IDE and Editor Files
22
+ # -----------------------------------------------------------------------------
23
+ .vscode/
24
+ .cursor/
25
+ .idea/
26
+ *.swp
27
+ *.swo
28
+ *~
29
+ *.tsbuildinfo
30
+
31
+ # -----------------------------------------------------------------------------
32
+ # OS Files
33
+ # -----------------------------------------------------------------------------
34
+ .DS_Store
35
+ Thumbs.db
36
+
37
+ # -----------------------------------------------------------------------------
38
+ # Development Tooling (not needed in production)
39
+ # -----------------------------------------------------------------------------
40
+ .prettierrc
41
+ .prettierignore
42
+ eslint.config.js
43
+ vitest.config.ts
44
+ tests/
45
+ coverage/
46
+ dist/
47
+
48
+ # -----------------------------------------------------------------------------
49
+ # Local Development Files
50
+ # -----------------------------------------------------------------------------
51
+ docker-compose.yml
52
+ mcp-config-example.json
53
+ tools.json
54
+ server.json
55
+ mcp-publisher.exe
56
+
57
+ # -----------------------------------------------------------------------------
58
+ # Security Scanning Configs (CI only)
59
+ # -----------------------------------------------------------------------------
60
+ .scout-ignore
61
+ .trivyignore
62
+ trivy-results.sarif
63
+
64
+ # -----------------------------------------------------------------------------
65
+ # Documentation (keep README.md for Docker Hub)
66
+ # -----------------------------------------------------------------------------
67
+ docs/
68
+ releases/
69
+ CHANGELOG.md
70
+ CODE_OF_CONDUCT.md
71
+ CONTRIBUTING.md
72
+ DOCKER_README.md
73
+ SECURITY.md
74
+ *.md
75
+ !README.md
76
+
77
+ # -----------------------------------------------------------------------------
78
+ # Data Directory (mounted as volume at runtime)
79
+ # -----------------------------------------------------------------------------
80
+ data/
81
+
82
+ # -----------------------------------------------------------------------------
83
+ # Database and Index Files (runtime only)
84
+ # -----------------------------------------------------------------------------
85
+ *.db
86
+ *.db-shm
87
+ *.db-wal
88
+ *.sqlite
89
+ *.sqlite3
90
+ .vectra_index/
91
+ *.vectra/
92
+
93
+ # -----------------------------------------------------------------------------
94
+ # Temporary Files
95
+ # -----------------------------------------------------------------------------
96
+ temp/
97
+ tmp/
98
+ *.tmp
99
+ *.temp
100
+ backups/
101
+
102
+ # -----------------------------------------------------------------------------
103
+ # Logs
104
+ # -----------------------------------------------------------------------------
105
+ *.log
106
+ logs/
107
+
108
+ # -----------------------------------------------------------------------------
109
+ # Security and Secrets
110
+ # -----------------------------------------------------------------------------
111
+ *.pem
112
+ *.key
113
+ .env
114
+ .env.*
115
+ auth.json
116
+ github_auth.json
117
+ .mcpregistry_*
118
+
119
+ # -----------------------------------------------------------------------------
120
+ # Python Legacy (archived, not used in TypeScript version)
121
+ # -----------------------------------------------------------------------------
122
+ __pycache__/
123
+ *.py[cod]
124
+ *$py.class
125
+ *.so
126
+ .Python
127
+ venv/
128
+ env/
129
+ ENV/
130
+ *.egg-info/
131
+ *.egg
package/.gitattributes ADDED
@@ -0,0 +1,29 @@
1
+ # Auto-detect text files and normalize line endings
2
+ * text=auto
3
+
4
+ # Force LF for source files
5
+ *.ts text eol=lf
6
+ *.js text eol=lf
7
+ *.json text eol=lf
8
+ *.md text eol=lf
9
+ *.yml text eol=lf
10
+ *.yaml text eol=lf
11
+ *.css text eol=lf
12
+ *.html text eol=lf
13
+
14
+ # Docker
15
+ Dockerfile text eol=lf
16
+ .dockerignore text eol=lf
17
+
18
+ # Config
19
+ .prettierrc text eol=lf
20
+ .prettierignore text eol=lf
21
+ .eslintrc* text eol=lf
22
+ .gitignore text eol=lf
23
+
24
+ # Explicitly binary
25
+ *.db binary
26
+ *.wasm binary
27
+ *.png binary
28
+ *.jpg binary
29
+ *.ico binary
@@ -271,7 +271,7 @@ jobs:
271
271
  password: ${{ secrets.DOCKER_PASSWORD }}
272
272
  repository: ${{ env.IMAGE_NAME }}
273
273
  readme-filepath: ./DOCKER_README.md
274
- short-description: 'AI Project Memory with Triple Search, Knowledge Graphs, GitHub Integration, HTTPS & Tool Filtering.'
274
+ short-description: 'AI Project Memory- Triple Search, Knowledge Graphs, GitHub Integration, HTTP/SSE & Tool Filtering.'
275
275
 
276
276
  - name: Deployment Summary
277
277
  if: github.ref == 'refs/heads/main'
@@ -14,7 +14,7 @@ jobs:
14
14
  runs-on: ubuntu-latest
15
15
  strategy:
16
16
  matrix:
17
- node-version: [20.x, 22.x, 25.x]
17
+ node-version: [24.x, 25.x]
18
18
 
19
19
  steps:
20
20
  - name: Checkout code
@@ -55,4 +55,3 @@ jobs:
55
55
 
56
56
  - name: Run npm audit
57
57
  run: npm audit --audit-level=moderate
58
- continue-on-error: true
@@ -25,7 +25,6 @@ jobs:
25
25
  base: ${{ github.event.before || 'HEAD~1' }}
26
26
  head: HEAD
27
27
  extra_args: --only-verified
28
- continue-on-error: true
29
28
 
30
29
  - name: GITLEAKS Secret Scanning
31
30
  uses: gitleaks/gitleaks-action@v2
@@ -48,7 +48,7 @@ jobs:
48
48
 
49
49
  # Run SARIF scan first (non-blocking) to always generate the file
50
50
  - name: Run Trivy scanner for SARIF output
51
- uses: aquasecurity/trivy-action@0.33.1
51
+ uses: aquasecurity/trivy-action@0.34.0
52
52
  with:
53
53
  image-ref: security-test:latest
54
54
  format: 'sarif'
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  # Run table scan (blocking) after SARIF is uploaded
69
69
  - name: Run Trivy vulnerability scanner
70
- uses: aquasecurity/trivy-action@0.33.1
70
+ uses: aquasecurity/trivy-action@0.34.0
71
71
  with:
72
72
  image-ref: security-test:latest
73
73
  format: 'table'
@@ -88,20 +88,20 @@ jobs:
88
88
  title: '🚨 Security vulnerabilities detected in Docker images',
89
89
  body: `
90
90
  ## Security Alert
91
-
91
+
92
92
  Trivy has detected security vulnerabilities in our Docker images.
93
-
93
+
94
94
  **Action Required:**
95
95
  1. Review the security scan results in the Actions tab
96
96
  2. Update base images and dependencies
97
97
  3. Test the fixes
98
98
  4. Deploy updated images
99
-
99
+
100
100
  **Scan Details:**
101
101
  - Workflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
102
102
  - Triggered by: Weekly security scan
103
103
  - Scan Date: ${{ github.event.schedule || 'Manual trigger' }}
104
-
104
+
105
105
  **Next Steps:**
106
106
  - [ ] Review vulnerability details
107
107
  - [ ] Update Dockerfiles
@@ -16,38 +16,41 @@
16
16
  // Run ESLint on save (provides feedback to agent)
17
17
  "eslint.run": "onSave",
18
18
  // Show severity inline
19
- "eslint.rules.customizations": [{ "rule": "*", "severity": "warn" }],
20
-
19
+ "eslint.rules.customizations": [
20
+ {
21
+ "rule": "*",
22
+ "severity": "warn"
23
+ }
24
+ ],
21
25
  // ═══════════════════════════════════════════════════════════════════════
22
26
  // Prettier Configuration
23
27
  // ═══════════════════════════════════════════════════════════════════════
24
- "editor.defaultFormatter": "prettier.prettier-vscode",
28
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
25
29
  "editor.formatOnSave": true,
26
30
  "[typescript]": {
27
- "editor.defaultFormatter": "prettier.prettier-vscode"
31
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
28
32
  },
29
33
  "[javascript]": {
30
- "editor.defaultFormatter": "prettier.prettier-vscode"
34
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
31
35
  },
32
36
  "[json]": {
33
- "editor.defaultFormatter": "prettier.prettier-vscode"
37
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
34
38
  },
35
39
  "[jsonc]": {
36
- "editor.defaultFormatter": "prettier.prettier-vscode"
40
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
37
41
  },
38
42
  "[markdown]": {
39
- "editor.defaultFormatter": "prettier.prettier-vscode"
43
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
40
44
  },
41
45
  "[yaml]": {
42
- "editor.defaultFormatter": "prettier.prettier-vscode"
46
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
43
47
  },
44
48
  "[html]": {
45
- "editor.defaultFormatter": "prettier.prettier-vscode"
49
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
46
50
  },
47
51
  "[css]": {
48
- "editor.defaultFormatter": "prettier.prettier-vscode"
52
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
49
53
  },
50
-
51
54
  // ═══════════════════════════════════════════════════════════════════════
52
55
  // Error Lens Configuration
53
56
  // ═══════════════════════════════════════════════════════════════════════
@@ -60,7 +63,6 @@
60
63
  "errorLens.delay": 500,
61
64
  // Exclude noisy hints if needed
62
65
  "errorLens.excludeBySource": [],
63
-
64
66
  // ═══════════════════════════════════════════════════════════════════════
65
67
  // TypeScript Configuration (Built-in)
66
68
  // ═══════════════════════════════════════════════════════════════════════
@@ -68,7 +70,6 @@
68
70
  "typescript.updateImportsOnFileMove.enabled": "always",
69
71
  "typescript.suggest.autoImports": true,
70
72
  "typescript.tsdk": "node_modules/typescript/lib",
71
-
72
73
  // ═══════════════════════════════════════════════════════════════════════
73
74
  // Editor Behavior
74
75
  // ═══════════════════════════════════════════════════════════════════════
@@ -78,5 +79,6 @@
78
79
  },
79
80
  "files.trimTrailingWhitespace": true,
80
81
  "files.insertFinalNewline": true,
81
- "files.trimFinalNewlines": true
82
+ "files.trimFinalNewlines": true,
83
+ "files.eol": "\n"
82
84
  }