memory-journal-mcp 6.1.1 → 6.2.1

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 (371) hide show
  1. package/README.md +44 -28
  2. package/dist/{chunk-X4SWFATC.js → chunk-BI4ZNSKA.js} +38 -24
  3. package/dist/{chunk-HCEWINSB.js → chunk-N6EBIDN7.js} +99 -102
  4. package/dist/cli.js +2 -2
  5. package/dist/index.js +2 -2
  6. package/dist/tools-WPRY5MJ6.js +2 -0
  7. package/package.json +10 -1
  8. package/skills/github-commander/SKILL.md +151 -0
  9. package/skills/github-commander/config/project-config.example.md +125 -0
  10. package/skills/github-commander/workflows/code-quality-audit.md +80 -0
  11. package/skills/github-commander/workflows/full-audit.md +134 -0
  12. package/skills/github-commander/workflows/issue-triage.md +239 -0
  13. package/skills/github-commander/workflows/milestone-sprint.md +81 -0
  14. package/skills/github-commander/workflows/perf-audit.md +142 -0
  15. package/skills/github-commander/workflows/pr-review.md +123 -0
  16. package/skills/github-commander/workflows/security-audit.md +170 -0
  17. package/skills/github-commander/workflows/update-deps.md +109 -0
  18. package/.dockerignore +0 -139
  19. package/.gitattributes +0 -20
  20. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -95
  21. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  22. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -110
  23. package/.github/ISSUE_TEMPLATE/question.md +0 -78
  24. package/.github/aw/actions-lock.json +0 -14
  25. package/.github/copilot-instructions.md +0 -122
  26. package/.github/dependabot.yml +0 -93
  27. package/.github/pull_request_template.md +0 -135
  28. package/.github/workflows/README.md +0 -133
  29. package/.github/workflows/agentics-maintenance.yml +0 -141
  30. package/.github/workflows/auto-release.yml +0 -68
  31. package/.github/workflows/ci-health-monitor.lock.yml +0 -1121
  32. package/.github/workflows/ci-health-monitor.md +0 -87
  33. package/.github/workflows/codeql.yml +0 -41
  34. package/.github/workflows/dependabot-auto-merge.yml +0 -42
  35. package/.github/workflows/dependency-maintenance.lock.yml +0 -1182
  36. package/.github/workflows/dependency-maintenance.md +0 -147
  37. package/.github/workflows/docker-publish.yml +0 -266
  38. package/.github/workflows/docs-drift-detector.lock.yml +0 -1142
  39. package/.github/workflows/docs-drift-detector.md +0 -115
  40. package/.github/workflows/lint-and-test.yml +0 -60
  41. package/.github/workflows/publish-npm.yml +0 -85
  42. package/.github/workflows/secrets-scanning.yml +0 -32
  43. package/.github/workflows/security-update.yml +0 -127
  44. package/.gitleaks.toml +0 -9
  45. package/.prettierignore +0 -21
  46. package/.prettierrc +0 -33
  47. package/.scout-ignore +0 -12
  48. package/.trivyignore +0 -21
  49. package/CHANGELOG.md +0 -1804
  50. package/CODE_OF_CONDUCT.md +0 -133
  51. package/CONTRIBUTING.md +0 -263
  52. package/DOCKER_README.md +0 -331
  53. package/Dockerfile +0 -128
  54. package/SECURITY.md +0 -227
  55. package/UNRELEASED.md +0 -1
  56. package/dist/tools-T4U5A3X4.js +0 -2
  57. package/docker-compose.yml +0 -71
  58. package/docs/README.md +0 -18
  59. package/docs/agentic-journal-synergy.md +0 -175
  60. package/docs/copilot-setup.md +0 -72
  61. package/eslint.config.js +0 -110
  62. package/mcp-config-example.json +0 -21
  63. package/playwright.config.ts +0 -35
  64. package/releases/v2.1.0.md +0 -220
  65. package/releases/v2.2.0.md +0 -168
  66. package/releases/v3.0.0.md +0 -237
  67. package/releases/v3.1.0.md +0 -104
  68. package/releases/v3.1.1.md +0 -42
  69. package/releases/v3.1.2.md +0 -40
  70. package/releases/v3.1.3.md +0 -64
  71. package/releases/v3.1.4.md +0 -32
  72. package/releases/v3.1.5.md +0 -44
  73. package/releases/v4.0.0.md +0 -71
  74. package/releases/v4.1.0.md +0 -88
  75. package/releases/v4.2.0.md +0 -90
  76. package/releases/v4.3.0.md +0 -92
  77. package/releases/v4.3.1.md +0 -69
  78. package/releases/v4.4.0.md +0 -120
  79. package/releases/v4.4.1.md +0 -33
  80. package/releases/v4.4.2.md +0 -31
  81. package/releases/v4.5.0.md +0 -116
  82. package/releases/v5.0.0.md +0 -105
  83. package/releases/v5.0.1.md +0 -25
  84. package/releases/v5.1.0.md +0 -83
  85. package/releases/v5.1.1.md +0 -10
  86. package/releases/v6.0.0.md +0 -48
  87. package/releases/v6.0.1.md +0 -36
  88. package/releases/v6.1.0.md +0 -68
  89. package/releases/v6.1.1.md +0 -30
  90. package/scripts/generate-server-instructions.ts +0 -306
  91. package/scripts/server-instructions-function-body.ts +0 -107
  92. package/scripts/server-instructions-gotchas.ts +0 -45
  93. package/server.json +0 -42
  94. package/social-preview.png +0 -0
  95. package/src/auth/auth-context.ts +0 -78
  96. package/src/auth/authorization-server-discovery.ts +0 -263
  97. package/src/auth/errors.ts +0 -215
  98. package/src/auth/index.ts +0 -58
  99. package/src/auth/middleware.ts +0 -392
  100. package/src/auth/oauth-resource-server.ts +0 -170
  101. package/src/auth/scope-map.ts +0 -46
  102. package/src/auth/scopes.ts +0 -256
  103. package/src/auth/token-validator.ts +0 -293
  104. package/src/auth/transport-agnostic.ts +0 -164
  105. package/src/auth/types.ts +0 -372
  106. package/src/cli.ts +0 -279
  107. package/src/codemode/api-constants.ts +0 -263
  108. package/src/codemode/api.ts +0 -302
  109. package/src/codemode/auto-return.ts +0 -65
  110. package/src/codemode/index.ts +0 -47
  111. package/src/codemode/sandbox-factory.ts +0 -144
  112. package/src/codemode/sandbox.ts +0 -220
  113. package/src/codemode/security.ts +0 -155
  114. package/src/codemode/types.ts +0 -228
  115. package/src/codemode/worker-sandbox.ts +0 -277
  116. package/src/codemode/worker-script.ts +0 -239
  117. package/src/constants/icons.ts +0 -183
  118. package/src/constants/server-instructions.md +0 -166
  119. package/src/constants/server-instructions.ts +0 -514
  120. package/src/database/adapter-factory.ts +0 -16
  121. package/src/database/core/entry-columns.ts +0 -10
  122. package/src/database/core/interfaces.ts +0 -188
  123. package/src/database/core/schema.ts +0 -152
  124. package/src/database/sqlite-adapter/backup.ts +0 -167
  125. package/src/database/sqlite-adapter/entries/crud.ts +0 -233
  126. package/src/database/sqlite-adapter/entries/importance.ts +0 -76
  127. package/src/database/sqlite-adapter/entries/index.ts +0 -142
  128. package/src/database/sqlite-adapter/entries/search.ts +0 -294
  129. package/src/database/sqlite-adapter/entries/shared.ts +0 -102
  130. package/src/database/sqlite-adapter/entries/statistics.ts +0 -162
  131. package/src/database/sqlite-adapter/index.ts +0 -265
  132. package/src/database/sqlite-adapter/native-connection.ts +0 -301
  133. package/src/database/sqlite-adapter/relationships.ts +0 -70
  134. package/src/database/sqlite-adapter/tags.ts +0 -182
  135. package/src/filtering/tool-filter.ts +0 -312
  136. package/src/github/github-integration/client.ts +0 -114
  137. package/src/github/github-integration/index.ts +0 -297
  138. package/src/github/github-integration/insights.ts +0 -155
  139. package/src/github/github-integration/issues.ts +0 -213
  140. package/src/github/github-integration/milestones.ts +0 -262
  141. package/src/github/github-integration/projects.ts +0 -414
  142. package/src/github/github-integration/pull-requests.ts +0 -235
  143. package/src/github/github-integration/repository.ts +0 -110
  144. package/src/github/github-integration/types.ts +0 -43
  145. package/src/handlers/prompts/github.ts +0 -210
  146. package/src/handlers/prompts/index.ts +0 -97
  147. package/src/handlers/prompts/workflow.ts +0 -361
  148. package/src/handlers/resources/core/briefing/context-section.ts +0 -182
  149. package/src/handlers/resources/core/briefing/github-section.ts +0 -354
  150. package/src/handlers/resources/core/briefing/index.ts +0 -106
  151. package/src/handlers/resources/core/briefing/user-message.ts +0 -114
  152. package/src/handlers/resources/core/health.ts +0 -75
  153. package/src/handlers/resources/core/index.ts +0 -31
  154. package/src/handlers/resources/core/instructions.ts +0 -45
  155. package/src/handlers/resources/core/utilities.ts +0 -310
  156. package/src/handlers/resources/github.ts +0 -340
  157. package/src/handlers/resources/graph.ts +0 -218
  158. package/src/handlers/resources/help.ts +0 -410
  159. package/src/handlers/resources/index.ts +0 -143
  160. package/src/handlers/resources/shared.ts +0 -219
  161. package/src/handlers/resources/team.ts +0 -134
  162. package/src/handlers/resources/templates.ts +0 -334
  163. package/src/handlers/tools/admin.ts +0 -351
  164. package/src/handlers/tools/analytics.ts +0 -346
  165. package/src/handlers/tools/backup.ts +0 -272
  166. package/src/handlers/tools/codemode.ts +0 -188
  167. package/src/handlers/tools/core.ts +0 -359
  168. package/src/handlers/tools/error-fields-mixin.ts +0 -10
  169. package/src/handlers/tools/export.ts +0 -150
  170. package/src/handlers/tools/github/copilot-tools.ts +0 -72
  171. package/src/handlers/tools/github/helpers.ts +0 -125
  172. package/src/handlers/tools/github/insights-tools.ts +0 -112
  173. package/src/handlers/tools/github/issue-tools.ts +0 -442
  174. package/src/handlers/tools/github/kanban-tools.ts +0 -153
  175. package/src/handlers/tools/github/milestone-tools.ts +0 -371
  176. package/src/handlers/tools/github/mutation-tools.ts +0 -17
  177. package/src/handlers/tools/github/read-tools.ts +0 -302
  178. package/src/handlers/tools/github/schemas.ts +0 -435
  179. package/src/handlers/tools/github.ts +0 -39
  180. package/src/handlers/tools/index.ts +0 -255
  181. package/src/handlers/tools/relationships.ts +0 -390
  182. package/src/handlers/tools/schemas.ts +0 -165
  183. package/src/handlers/tools/search.ts +0 -448
  184. package/src/handlers/tools/team/admin-tools.ts +0 -164
  185. package/src/handlers/tools/team/analytics-tools.ts +0 -233
  186. package/src/handlers/tools/team/backup-tools.ts +0 -83
  187. package/src/handlers/tools/team/core-tools.ts +0 -197
  188. package/src/handlers/tools/team/export-tools.ts +0 -130
  189. package/src/handlers/tools/team/helpers.ts +0 -66
  190. package/src/handlers/tools/team/index.ts +0 -45
  191. package/src/handlers/tools/team/relationship-tools.ts +0 -219
  192. package/src/handlers/tools/team/schemas.ts +0 -558
  193. package/src/handlers/tools/team/search-tools.ts +0 -145
  194. package/src/handlers/tools/team/vector-tools.ts +0 -261
  195. package/src/index.ts +0 -57
  196. package/src/server/mcp-server.ts +0 -446
  197. package/src/server/registration.ts +0 -141
  198. package/src/server/scheduler.ts +0 -283
  199. package/src/transports/http/handlers.ts +0 -78
  200. package/src/transports/http/index.ts +0 -8
  201. package/src/transports/http/security.ts +0 -147
  202. package/src/transports/http/server/index.ts +0 -397
  203. package/src/transports/http/server/legacy-sse.ts +0 -87
  204. package/src/transports/http/server/stateful.ts +0 -222
  205. package/src/transports/http/server/stateless.ts +0 -42
  206. package/src/transports/http/types.ts +0 -132
  207. package/src/types/entities.ts +0 -145
  208. package/src/types/error-types.ts +0 -92
  209. package/src/types/errors.ts +0 -200
  210. package/src/types/filtering.ts +0 -55
  211. package/src/types/github.ts +0 -216
  212. package/src/types/index.ts +0 -348
  213. package/src/utils/error-helpers.ts +0 -78
  214. package/src/utils/errors/error-response-fields.ts +0 -29
  215. package/src/utils/errors/suggestions.ts +0 -94
  216. package/src/utils/github-helpers.ts +0 -33
  217. package/src/utils/logger.ts +0 -107
  218. package/src/utils/mcp-logger.ts +0 -155
  219. package/src/utils/progress-utils.ts +0 -100
  220. package/src/utils/query-helpers.ts +0 -78
  221. package/src/utils/resource-annotations.ts +0 -75
  222. package/src/utils/security-utils.ts +0 -198
  223. package/src/utils/vector-index-helpers.ts +0 -24
  224. package/src/vector/vector-search-manager.ts +0 -409
  225. package/src/version.ts +0 -15
  226. package/test-server/README.md +0 -193
  227. package/test-server/code-map.md +0 -399
  228. package/test-server/test-agent-experience.md +0 -213
  229. package/test-server/test-filter-instructions.mjs +0 -295
  230. package/test-server/test-instruction-levels.mjs +0 -102
  231. package/test-server/test-preflight.md +0 -55
  232. package/test-server/test-prompts.mjs +0 -185
  233. package/test-server/test-scheduler.mjs +0 -174
  234. package/test-server/test-tool-annotations.mjs +0 -115
  235. package/test-server/test-tools-codemode.md +0 -632
  236. package/test-server/test-tools-codemode2.md +0 -1218
  237. package/test-server/test-tools-team.md +0 -215
  238. package/test-server/test-tools.md +0 -429
  239. package/test-server/test-tools2.md +0 -361
  240. package/test-server/test-tools3.md +0 -396
  241. package/test-server/tool-reference.md +0 -231
  242. package/tests/README.md +0 -54
  243. package/tests/auth/auth-context.test.ts +0 -162
  244. package/tests/auth/authorization-server-discovery.test.ts +0 -265
  245. package/tests/auth/errors.test.ts +0 -170
  246. package/tests/auth/middleware.test.ts +0 -585
  247. package/tests/auth/oauth-resource-server.test.ts +0 -173
  248. package/tests/auth/scope-map.test.ts +0 -66
  249. package/tests/auth/scopes.test.ts +0 -347
  250. package/tests/auth/token-validator.test.ts +0 -271
  251. package/tests/codemode/api.test.ts +0 -396
  252. package/tests/codemode/auto-return.test.ts +0 -167
  253. package/tests/codemode/codemode-tool-handlers.test.ts +0 -197
  254. package/tests/codemode/sandbox-factory.test.ts +0 -152
  255. package/tests/codemode/sandbox.test.ts +0 -190
  256. package/tests/codemode/security.test.ts +0 -242
  257. package/tests/codemode/worker-sandbox.test.ts +0 -106
  258. package/tests/constants/icons.test.ts +0 -101
  259. package/tests/constants/server-instructions.test.ts +0 -514
  260. package/tests/database/crud-workflow-branches.test.ts +0 -418
  261. package/tests/database/database-branches.test.ts +0 -132
  262. package/tests/database/entries-auth-branches.test.ts +0 -391
  263. package/tests/database/native-connection.test.ts +0 -249
  264. package/tests/database/shared-helpers.test.ts +0 -103
  265. package/tests/database/sqlite-adapter.bench.ts +0 -63
  266. package/tests/database/sqlite-adapter.test.ts +0 -690
  267. package/tests/database/tags.test.ts +0 -134
  268. package/tests/e2e/README.md +0 -39
  269. package/tests/e2e/auth.spec.ts +0 -106
  270. package/tests/e2e/codemode-abuse.spec.ts +0 -75
  271. package/tests/e2e/health.spec.ts +0 -63
  272. package/tests/e2e/helpers.ts +0 -139
  273. package/tests/e2e/oauth-discovery.spec.ts +0 -102
  274. package/tests/e2e/oauth-scopes.spec.ts +0 -222
  275. package/tests/e2e/payloads-admin.spec.ts +0 -76
  276. package/tests/e2e/payloads-analytics.spec.ts +0 -37
  277. package/tests/e2e/payloads-backup-restore.spec.ts +0 -102
  278. package/tests/e2e/payloads-backup.spec.ts +0 -44
  279. package/tests/e2e/payloads-codemode-api.spec.ts +0 -131
  280. package/tests/e2e/payloads-codemode-readonly.spec.ts +0 -116
  281. package/tests/e2e/payloads-codemode.spec.ts +0 -116
  282. package/tests/e2e/payloads-core.spec.ts +0 -82
  283. package/tests/e2e/payloads-error-contracts.spec.ts +0 -159
  284. package/tests/e2e/payloads-export.spec.ts +0 -46
  285. package/tests/e2e/payloads-github-degradation.spec.ts +0 -73
  286. package/tests/e2e/payloads-github.spec.ts +0 -176
  287. package/tests/e2e/payloads-relationships.spec.ts +0 -56
  288. package/tests/e2e/payloads-search.spec.ts +0 -64
  289. package/tests/e2e/payloads-team-happy.spec.ts +0 -231
  290. package/tests/e2e/payloads-team.spec.ts +0 -174
  291. package/tests/e2e/prompts-expanded.spec.ts +0 -137
  292. package/tests/e2e/prompts.spec.ts +0 -62
  293. package/tests/e2e/protocols.spec.ts +0 -134
  294. package/tests/e2e/rate-limiting.spec.ts +0 -291
  295. package/tests/e2e/resources-briefing-env.spec.ts +0 -106
  296. package/tests/e2e/resources-complete.spec.ts +0 -180
  297. package/tests/e2e/resources-expanded.spec.ts +0 -83
  298. package/tests/e2e/resources-instructions-levels.spec.ts +0 -145
  299. package/tests/e2e/resources-templates.spec.ts +0 -123
  300. package/tests/e2e/resources.spec.ts +0 -103
  301. package/tests/e2e/scheduler.spec.ts +0 -79
  302. package/tests/e2e/security.spec.ts +0 -112
  303. package/tests/e2e/session-advanced.spec.ts +0 -152
  304. package/tests/e2e/sessions.spec.ts +0 -95
  305. package/tests/e2e/stateless.spec.ts +0 -79
  306. package/tests/e2e/streaming.spec.ts +0 -176
  307. package/tests/e2e/tool-filtering-presets.spec.ts +0 -192
  308. package/tests/e2e/tool-filtering.spec.ts +0 -77
  309. package/tests/e2e/tools.spec.ts +0 -111
  310. package/tests/filtering/tool-filter.test.ts +0 -314
  311. package/tests/github/client-issues-errors.test.ts +0 -433
  312. package/tests/github/github-integration-branches.test.ts +0 -490
  313. package/tests/github/github-integration.test.ts +0 -1015
  314. package/tests/github/github-managers-branches.test.ts +0 -907
  315. package/tests/github/pull-requests.test.ts +0 -334
  316. package/tests/handlers/analytics-branches.test.ts +0 -222
  317. package/tests/handlers/backup-branches.test.ts +0 -270
  318. package/tests/handlers/briefing-context-section.test.ts +0 -388
  319. package/tests/handlers/briefing-github-section.test.ts +0 -392
  320. package/tests/handlers/briefing-user-message.test.ts +0 -405
  321. package/tests/handlers/codemode-tools.test.ts +0 -85
  322. package/tests/handlers/copilot-tools.test.ts +0 -126
  323. package/tests/handlers/error-path-coverage.test.ts +0 -324
  324. package/tests/handlers/export-tools.test.ts +0 -203
  325. package/tests/handlers/github-resource-handlers.test.ts +0 -929
  326. package/tests/handlers/github-tool-handlers.test.ts +0 -1452
  327. package/tests/handlers/handler-error-branches.test.ts +0 -346
  328. package/tests/handlers/help-resource.test.ts +0 -92
  329. package/tests/handlers/prompt-handler-coverage.test.ts +0 -108
  330. package/tests/handlers/prompt-handlers.test.ts +0 -131
  331. package/tests/handlers/resource-handler-coverage.test.ts +0 -281
  332. package/tests/handlers/resource-handlers.test.ts +0 -357
  333. package/tests/handlers/resource-prompt-branches.test.ts +0 -495
  334. package/tests/handlers/search-tool-handlers.test.ts +0 -379
  335. package/tests/handlers/targeted-gap-closure.test.ts +0 -387
  336. package/tests/handlers/team-admin.test.ts +0 -291
  337. package/tests/handlers/team-analytics.test.ts +0 -220
  338. package/tests/handlers/team-core.test.ts +0 -148
  339. package/tests/handlers/team-data.test.ts +0 -198
  340. package/tests/handlers/team-relationships.test.ts +0 -271
  341. package/tests/handlers/team-resource-handlers.test.ts +0 -161
  342. package/tests/handlers/team-search.test.ts +0 -134
  343. package/tests/handlers/team-tool-handlers.test.ts +0 -301
  344. package/tests/handlers/team-vector.test.ts +0 -213
  345. package/tests/handlers/template-github-branches.test.ts +0 -676
  346. package/tests/handlers/tool-annotations.test.ts +0 -90
  347. package/tests/handlers/tool-handler-coverage.test.ts +0 -514
  348. package/tests/handlers/tool-handlers.test.ts +0 -510
  349. package/tests/handlers/tool-output-schemas.test.ts +0 -116
  350. package/tests/handlers/vector-tool-handlers.test.ts +0 -238
  351. package/tests/security/sql-injection.test.ts +0 -284
  352. package/tests/server/mcp-server.bench.ts +0 -55
  353. package/tests/server/mcp-server.test.ts +0 -1326
  354. package/tests/server/scheduler.test.ts +0 -400
  355. package/tests/transports/http-legacy-sse.test.ts +0 -275
  356. package/tests/transports/http-security.test.ts +0 -322
  357. package/tests/transports/http-stateful.test.ts +0 -487
  358. package/tests/transports/http-transport-server.test.ts +0 -301
  359. package/tests/transports/http-transport.test.ts +0 -771
  360. package/tests/utils/github-helpers.test.ts +0 -58
  361. package/tests/utils/logger.test.ts +0 -180
  362. package/tests/utils/mcp-logger.test.ts +0 -211
  363. package/tests/utils/progress-utils.test.ts +0 -156
  364. package/tests/utils/query-helpers.test.ts +0 -80
  365. package/tests/utils/security-utils.test.ts +0 -82
  366. package/tests/vector/vector-search-branches.test.ts +0 -111
  367. package/tests/vector/vector-search-manager.test.ts +0 -375
  368. package/tests/vector/vector-search.bench.ts +0 -48
  369. package/tsconfig.json +0 -42
  370. package/tsup.config.ts +0 -19
  371. package/vitest.config.ts +0 -25
package/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
  [![MCP Registry](https://img.shields.io/badge/MCP_Registry-Published-green)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.neverinfamous/memory-journal-mcp)
11
11
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](SECURITY.md)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)](https://github.com/neverinfamous/memory-journal-mcp)
13
- ![Coverage](https://img.shields.io/badge/Coverage-96.1%25-brightgreen.svg)
14
- ![Tests](https://img.shields.io/badge/Tests-1679_passed-brightgreen.svg)
15
- ![E2E Tests](https://img.shields.io/badge/E2E_Tests-247_passed-brightgreen.svg)
13
+ ![Coverage](https://img.shields.io/badge/Coverage-96%25-brightgreen.svg)
14
+ ![Tests](https://img.shields.io/badge/Tests-1767_passed-brightgreen.svg)
15
+ ![E2E Tests](https://img.shields.io/badge/E2E_Tests-377_passed-brightgreen.svg)
16
16
 
17
17
  🎯 **AI Context + Project Intelligence:** Bridge disconnected AI sessions with persistent project memory and **automatic session handoff** — with full GitHub workflow integration.
18
18
 
@@ -27,28 +27,25 @@
27
27
 
28
28
  ### What Sets Us Apart
29
29
 
30
- **61 MCP Tools** · **16 Workflow Prompts** · **28 Resources** · **10 Tool Groups** · **Code Mode** · **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights) · **Team Collaboration** (Shared DB, Vector Search, Cross-Project Insights)
31
-
32
- | Feature | Description |
33
- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34
- | **Dynamic Context Management** | AI agents automatically query your project history and create entries at the right moments no manual copy-pasting between sessions |
35
- | **GitHub Integration** | 16 tools covering Issues, PRs, Actions, Kanban boards, Milestones with completion %, Copilot Reviews, and 14-day repository Insights (stars, clones, views, referrers) |
36
- | **Knowledge Graphs** | 8 relationship types linking specs → implementations → tests → PRs with automatic Mermaid visualization |
37
- | **Triple Search** | Full-text (FTS5), semantic (AI-powered via `@huggingface/transformers` + `sqlite-vec`), and date-range search in one server |
38
- | **Code Mode** | **Massive Token Savings:** Execute complex, multi-step operations inside a secure JavaScript sandbox — reducing token overhead by up to 90% while exposing all 61 capabilities via `mj.*` API |
39
- | **Configurable Briefing** | 12 env vars / CLI flags to customize `memory://briefing` — control entry count, team inclusion, issue/PR/workflow detail level, Copilot review aggregation, rules/skills awareness, and workflow summary (`memory://workflows`) |
40
- | **Session Continuity** | A quick `/session-summary` captures progress and feeds it into the next session's briefing — context flows seamlessly across disconnected AI threads |
41
- | **Reports & Analytics** | Generate standups, retrospectives, PR summaries, weekly digests, period analyses, and milestone tracking from your journal data |
42
- | **Team Collaboration** | 20 dedicated team tools providing full functionality parity — including CRUD, isolated semantic vector search, relationship graphs, and cross-project insights via a shared database with author attribution |
43
- | **Backup & Restore** | One-command backup/restore with automated scheduling, retention policies, and auto-backup-on-restore safety net |
44
- | **OAuth 2.1 + Access Control** | Enterprise-ready security with RFC 9728/8414 compliance, granular scopes (`read`, `write`, `admin`), JWT/JWKS validation, and Keycloak-compatible integration |
45
- | **HTTP Streaming Transport** | Dual-protocol HTTP with Streamable HTTP + Legacy SSE, security headers, rate limiting, CORS, and stateless mode for serverless |
46
- | **Production-Ready Security** | SQL injection prevention, input validation (Zod), path traversal protection, token scrubbing, 7 security headers, server timeouts, and non-root Docker execution |
47
- | **Structured Error Handling** | Every tool returns rich `{success, error, code, category, suggestion, recoverable}` responses — no raw exceptions. Agents get error classification, actionable remediation hints, and recoverability signals |
48
- | **Rule & Skill Suggestions** | Agents offer to codify your recurring patterns into reusable rules and skills with your approval |
49
- | **Cross-Agent Memory** | IDE agents and GitHub Copilot share context through journal entries — Copilot review findings become searchable knowledge, and IDE agents proactively apply past patterns ([setup guide](docs/copilot-setup.md)) |
50
- | **Strict TypeScript** | 100% type-safe codebase with strict mode, typed error classes, and no `eslint-disable` pragmas |
51
- | **MCP 2025-03-26 Compliant** | Full protocol support with tool safety annotations, resource priorities, and progress notifications |
30
+ **61 MCP Tools** · **16 Workflow Prompts** · **28 Resources** · **10 Tool Groups** · **Code Mode** · **GitHub Commander** (Issue Triage, PR Review, Milestone Sprints, Security/Quality/Perf Audits) · **GitHub Integration** (Issues, PRs, Actions, Kanban, Milestones, Insights) · **Team Collaboration** (Shared DB, Vector Search, Cross-Project Insights)
31
+
32
+ | Feature | Description |
33
+ | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34
+ | **Session Intelligence** | Agents auto-query project history, create entries at checkpoints, and hand off context between sessions via `/session-summary` |
35
+ | **GitHub Integration** | 16 tools for Issues, PRs, Actions, Kanban, Milestones (%), Copilot Reviews, and 14-day Insights |
36
+ | **Knowledge Graphs** | 8 relationship types linking specs → implementations → tests → PRs with Mermaid visualization |
37
+ | **Triple Search** | Full-text (FTS5), semantic (`@huggingface/transformers` + `sqlite-vec`), and date-range search |
38
+ | **Code Mode** | Execute multi-step operations in a secure sandbox — up to 90% token savings via `mj.*` API |
39
+ | **Configurable Briefing** | 12 env vars / CLI flags control `memory://briefing` content entries, team, GitHub detail, skills awareness |
40
+ | **Reports & Analytics** | Standups, retrospectives, PR summaries, digests, period analyses, and milestone tracking |
41
+ | **Team Collaboration** | 20 tools with full parity CRUD, vector search, relationship graphs, cross-project insights, author attribution |
42
+ | **Backup & Restore** | One-command backup/restore with automated scheduling, retention policies, and safety-net auto-backups |
43
+ | **Security & Transport** | OAuth 2.1 (RFC 9728/8414, JWT/JWKS, scopes), Streamable HTTP + SSE, rate limiting, CORS, SQL injection prevention, non-root Docker |
44
+ | **Structured Error Handling** | Every tool returns `{success, error, code, category, suggestion, recoverable}` agents get classification, remediation hints, and recoverability signals |
45
+ | **Agent Collaboration** | IDE agents and Copilot share context; review findings become searchable knowledge; agents suggest reusable rules and skills ([setup](docs/copilot-setup.md)) |
46
+ | **Strict TypeScript** | 100% type-safe with strict mode, typed error classes, and no `eslint-disable` pragmas |
47
+ | **MCP 2025-03-26 Compliant** | Tool safety annotations, resource priorities, and progress notifications |
48
+ | **GitHub Commander** | Skills for issue triage, PR reviews, sprint milestones, and security/quality/performance audits with journal trails ([docs](skills/github-commander/SKILL.md)) |
52
49
 
53
50
  ---
54
51
 
@@ -117,11 +114,17 @@ flowchart TB
117
114
 
118
115
  ---
119
116
 
120
- ## Rule (Add to AGENTS.md, GEMINI.md, etc)
117
+ ## Suggested Rule (Add to AGENTS.md, GEMINI.md, etc)
121
118
 
122
- ## Session Start
119
+ **PERFORM AT START OF CHATS**: Read `memory://briefing`, present as two-column markdown table (Context | Value). Include all available fields; omit absent rows.
123
120
 
124
- **REQUIRED**: Before processing any user request, read `memory://briefing` and **present the briefing to the user as a two-column markdown table** (Context | Value). Include all available context fields. Omit rows where the data is absent. **[Full example →](https://github.com/neverinfamous/memory-journal-mcp#rule-add-to-agentsmd-geminimd-etc)**
121
+ **CREATE JOURNAL ENTRIES** at natural checkpoints:
122
+
123
+ - After pushing to main (`milestone` or `technical_note`, tag with version)
124
+ - After significant design decisions or learnings (`project_decision`)
125
+ - After resolving non-trivial bugs (`bug_fix`, link to issue number)
126
+
127
+ **SUGGEST CREATING OR IMPROVING RULES AND SKILLS** as you notice workflow opportunities.
125
128
 
126
129
  ---
127
130
 
@@ -424,6 +427,9 @@ The GitHub tools (`get_github_issues`, `get_github_prs`, etc.) auto-detect the r
424
427
  | `AUTO_REBUILD_INDEX` | Set to `true` to rebuild vector index on server startup |
425
428
  | `MCP_HOST` | Server bind host (`0.0.0.0` for containers, default: `localhost`) |
426
429
  | `MCP_AUTH_TOKEN` | Bearer token for HTTP transport authentication (CLI: `--auth-token`) |
430
+ | `MCP_CORS_ORIGIN` | Allowed CORS origins for HTTP transport, comma-separated (default: `*`) |
431
+ | `MCP_RATE_LIMIT_MAX` | Max requests per minute per client IP, HTTP only (default: `100`) |
432
+ | `LOG_LEVEL` | Log verbosity: `error`, `warn`, `info`, `debug` (default: `info`; CLI: `--log-level`) |
427
433
  | `MCP_ENABLE_HSTS` | Enable HSTS security header on HTTP responses (CLI: `--enable-hsts`; default: `false`) |
428
434
  | `OAUTH_ENABLED` | Set to `true` to enable OAuth 2.1 authentication (HTTP only) |
429
435
  | `OAUTH_ISSUER` | OAuth issuer URL (e.g., `https://auth.example.com/realms/mcp`) |
@@ -441,6 +447,16 @@ The GitHub tools (`get_github_issues`, `get_github_prs`, etc.) auto-detect the r
441
447
  | `SKILLS_DIR_PATH` | Path to skills directory for agent awareness (CLI: `--skills-dir`) |
442
448
  | `MEMORY_JOURNAL_WORKFLOW_SUMMARY` | Free-text workflow summary for `memory://workflows` (CLI: `--workflow-summary`) |
443
449
  | `INSTRUCTION_LEVEL` | Briefing depth: `essential`, `standard`, `full` (CLI: `--instruction-level`; default: `standard`) |
450
+ | `PROJECT_LINT_CMD` | Project lint command for GitHub Commander validation gates (default: `npm run lint`) |
451
+ | `PROJECT_TYPECHECK_CMD` | Project typecheck command (default: `npm run typecheck`; empty = skip) |
452
+ | `PROJECT_BUILD_CMD` | Project build command (default: `npm run build`; empty = skip) |
453
+ | `PROJECT_TEST_CMD` | Project test command (default: `npm run test`) |
454
+ | `PROJECT_E2E_CMD` | Project E2E test command (default: empty = skip) |
455
+ | `PROJECT_PACKAGE_MANAGER` | Package manager override: `npm`, `yarn`, `pnpm`, `bun` (default: auto-detect from lockfile) |
456
+ | `PROJECT_HAS_DOCKERFILE` | Enable Docker audit steps (default: auto-detect) |
457
+ | `COMMANDER_HITL_FILE_THRESHOLD` | Human-in-the-loop checkpoint if changes touch > N files (default: `10`) |
458
+ | `COMMANDER_SECURITY_TOOLS` | Override security tool auto-detection (comma-separated; default: auto-detect) |
459
+ | `COMMANDER_BRANCH_PREFIX` | Branch naming prefix for PRs (default: `fix`) |
444
460
 
445
461
  **Without `GITHUB_REPO_PATH`**: You'll need to explicitly provide `owner` and `repo` parameters when calling GitHub tools.
446
462
 
@@ -455,7 +455,7 @@ var CreateEntrySchema = z.object({
455
455
  share_with_team: z.boolean().optional().default(false)
456
456
  });
457
457
  var CreateEntrySchemaMcp = z.object({
458
- content: z.string(),
458
+ content: z.string().optional(),
459
459
  entry_type: z.string().optional().default("personal_reflection"),
460
460
  tags: z.array(z.string()).optional().default([]),
461
461
  is_personal: z.boolean().optional().default(true),
@@ -478,7 +478,7 @@ var GetEntryByIdSchema = z.object({
478
478
  include_relationships: z.boolean().optional().default(true)
479
479
  });
480
480
  var GetEntryByIdSchemaMcp = z.object({
481
- entry_id: relaxedNumber(),
481
+ entry_id: relaxedNumber().optional(),
482
482
  include_relationships: z.boolean().optional().default(true)
483
483
  });
484
484
  var GetRecentEntriesSchema = z.object({
@@ -493,7 +493,7 @@ var CreateEntryMinimalSchema = z.object({
493
493
  content: z.string().min(1).max(MAX_CONTENT_LENGTH)
494
494
  });
495
495
  var CreateEntryMinimalSchemaMcp = z.object({
496
- content: z.string()
496
+ content: z.string().optional()
497
497
  });
498
498
  var TestSimpleSchema = z.object({
499
499
  message: z.string().optional().default("Hello")
@@ -1680,7 +1680,7 @@ var UpdateEntrySchema = z.object({
1680
1680
  tags: z.array(z.string()).optional()
1681
1681
  });
1682
1682
  var UpdateEntrySchemaMcp = z.object({
1683
- entry_id: relaxedNumber(),
1683
+ entry_id: relaxedNumber().optional(),
1684
1684
  content: z.string().optional(),
1685
1685
  entry_type: z.string().optional(),
1686
1686
  is_personal: z.boolean().optional(),
@@ -1691,7 +1691,7 @@ var DeleteEntrySchema = z.object({
1691
1691
  permanent: z.boolean().optional().default(false)
1692
1692
  });
1693
1693
  var DeleteEntrySchemaMcp = z.object({
1694
- entry_id: relaxedNumber(),
1694
+ entry_id: relaxedNumber().optional(),
1695
1695
  permanent: z.boolean().optional().default(false)
1696
1696
  });
1697
1697
  var UpdateEntryOutputSchema = z.object({
@@ -1806,8 +1806,8 @@ function getAdminTools(context) {
1806
1806
  description: 'Merge one tag into another to consolidate similar tags (e.g., merge "phase-2" into "phase2"). The source tag is deleted after merge.',
1807
1807
  group: "admin",
1808
1808
  inputSchema: z.object({
1809
- source_tag: z.string().min(1).describe("Tag to merge from (will be deleted)"),
1810
- target_tag: z.string().min(1).describe("Tag to merge into (will be created if not exists)")
1809
+ source_tag: z.string().optional().describe("Tag to merge from (will be deleted)"),
1810
+ target_tag: z.string().optional().describe("Tag to merge into (will be created if not exists)")
1811
1811
  }),
1812
1812
  outputSchema: MergeTagsOutputSchema,
1813
1813
  annotations: { readOnlyHint: false, idempotentHint: false, openWorldHint: false },
@@ -1908,7 +1908,7 @@ function getAdminTools(context) {
1908
1908
  title: "Add Entry to Vector Index",
1909
1909
  description: "Add a specific entry to the semantic search vector index",
1910
1910
  group: "admin",
1911
- inputSchema: z.object({ entry_id: relaxedNumber() }),
1911
+ inputSchema: z.object({ entry_id: relaxedNumber().optional() }),
1912
1912
  outputSchema: AddToVectorIndexOutputSchema,
1913
1913
  annotations: { readOnlyHint: false, idempotentHint: true, openWorldHint: false },
1914
1914
  handler: async (params) => {
@@ -2708,7 +2708,7 @@ function getGitHubIssueTools(context) {
2708
2708
  description: "Create a GitHub issue AND automatically create a linked journal entry documenting the issue creation.",
2709
2709
  group: "github",
2710
2710
  inputSchema: z.object({
2711
- title: z.string().min(1).describe("Issue title"),
2711
+ title: z.string().optional().describe("Issue title"),
2712
2712
  body: z.string().optional().describe("Issue body/description"),
2713
2713
  labels: z.array(z.string()).optional().describe("Labels to apply"),
2714
2714
  assignees: z.array(z.string()).optional().describe("Users to assign"),
@@ -3240,7 +3240,7 @@ function getGitHubMilestoneTools(context) {
3240
3240
  description: "Create a new GitHub milestone for tracking progress toward a project goal.",
3241
3241
  group: "github",
3242
3242
  inputSchema: z.object({
3243
- title: z.string().min(1).describe("Milestone title"),
3243
+ title: z.string().optional().describe("Milestone title"),
3244
3244
  description: z.string().optional().describe("Milestone description"),
3245
3245
  due_on: z.string().optional().describe("Due date in YYYY-MM-DD format (optional)"),
3246
3246
  owner: z.string().optional().describe("LEAVE EMPTY to auto-detect"),
@@ -3656,7 +3656,7 @@ function getBackupTools(context) {
3656
3656
  group: "backup",
3657
3657
  inputSchema: z.object({
3658
3658
  filename: z.string().describe("Backup filename to restore from (e.g., backup_2025-01-01.db)"),
3659
- confirm: z.boolean().describe("Must be set to true to confirm the restore operation")
3659
+ confirm: z.boolean().optional().describe("Must be set to true to confirm the restore operation")
3660
3660
  }),
3661
3661
  outputSchema: RestoreResultOutputSchema,
3662
3662
  annotations: {
@@ -3669,7 +3669,7 @@ function getBackupTools(context) {
3669
3669
  try {
3670
3670
  const input = z.object({
3671
3671
  filename: z.string(),
3672
- confirm: z.boolean()
3672
+ confirm: z.boolean().optional()
3673
3673
  }).parse(params);
3674
3674
  if (!input.confirm) {
3675
3675
  return {
@@ -3678,7 +3678,7 @@ function getBackupTools(context) {
3678
3678
  code: "VALIDATION_ERROR",
3679
3679
  category: "validation",
3680
3680
  suggestion: "Set confirm: true to proceed with restore",
3681
- recoverable: false
3681
+ recoverable: true
3682
3682
  };
3683
3683
  }
3684
3684
  const progressServer = progress?.server;
@@ -3800,7 +3800,7 @@ var TeamCreateEntrySchema = z.object({
3800
3800
  author: z.string().optional()
3801
3801
  });
3802
3802
  var TeamCreateEntrySchemaMcp = z.object({
3803
- content: z.string().min(1).max(MAX_CONTENT_LENGTH),
3803
+ content: z.string().optional(),
3804
3804
  entry_type: z.string().optional().default("personal_reflection"),
3805
3805
  tags: z.array(z.string()).optional().default([]),
3806
3806
  significance_type: z.string().optional(),
@@ -3834,7 +3834,7 @@ var TeamGetEntryByIdSchema = z.object({
3834
3834
  include_relationships: z.boolean().optional().default(true)
3835
3835
  });
3836
3836
  var TeamGetEntryByIdSchemaMcp = z.object({
3837
- entry_id: relaxedNumber(),
3837
+ entry_id: relaxedNumber().optional(),
3838
3838
  include_relationships: z.boolean().optional().default(true)
3839
3839
  });
3840
3840
  var TeamSearchByDateRangeSchema = z.object({
@@ -3845,8 +3845,8 @@ var TeamSearchByDateRangeSchema = z.object({
3845
3845
  limit: z.number().max(500).optional().default(50)
3846
3846
  });
3847
3847
  var TeamSearchByDateRangeSchemaMcp = z.object({
3848
- start_date: z.string().describe("Start date (YYYY-MM-DD)"),
3849
- end_date: z.string().describe("End date (YYYY-MM-DD)"),
3848
+ start_date: z.string().optional().describe("Start date (YYYY-MM-DD)"),
3849
+ end_date: z.string().optional().describe("End date (YYYY-MM-DD)"),
3850
3850
  entry_type: z.string().optional(),
3851
3851
  tags: z.array(z.string()).optional(),
3852
3852
  limit: relaxedNumber().optional().default(50)
@@ -3858,7 +3858,7 @@ var TeamUpdateEntrySchema = z.object({
3858
3858
  tags: z.array(z.string()).optional()
3859
3859
  });
3860
3860
  var TeamUpdateEntrySchemaMcp = z.object({
3861
- entry_id: relaxedNumber(),
3861
+ entry_id: relaxedNumber().optional(),
3862
3862
  content: z.string().optional(),
3863
3863
  entry_type: z.string().optional(),
3864
3864
  tags: z.array(z.string()).optional()
@@ -3867,12 +3867,16 @@ var TeamDeleteEntrySchema = z.object({
3867
3867
  entry_id: z.number()
3868
3868
  });
3869
3869
  var TeamDeleteEntrySchemaMcp = z.object({
3870
- entry_id: relaxedNumber()
3870
+ entry_id: relaxedNumber().optional()
3871
3871
  });
3872
3872
  var TeamMergeTagsSchema = z.object({
3873
3873
  source_tag: z.string().min(1),
3874
3874
  target_tag: z.string().min(1)
3875
3875
  });
3876
+ var TeamMergeTagsSchemaMcp = z.object({
3877
+ source_tag: z.string().optional(),
3878
+ target_tag: z.string().optional()
3879
+ });
3876
3880
  var TeamGetStatisticsSchema = z.object({
3877
3881
  group_by: z.enum(["day", "week", "month"]).optional().default("week")
3878
3882
  });
@@ -3895,8 +3899,8 @@ var TeamLinkEntriesSchema = z.object({
3895
3899
  description: z.string().optional()
3896
3900
  });
3897
3901
  var TeamLinkEntriesSchemaMcp = z.object({
3898
- from_entry_id: relaxedNumber(),
3899
- to_entry_id: relaxedNumber(),
3902
+ from_entry_id: relaxedNumber().optional(),
3903
+ to_entry_id: relaxedNumber().optional(),
3900
3904
  relationship_type: z.string().optional().default("references"),
3901
3905
  description: z.string().optional()
3902
3906
  });
@@ -4039,7 +4043,7 @@ var TeamSemanticSearchSchema = z.object({
4039
4043
  hint_on_empty: z.boolean().optional().default(true).describe("Include hint when no results found (default: true)")
4040
4044
  });
4041
4045
  var TeamSemanticSearchSchemaMcp = z.object({
4042
- query: z.string(),
4046
+ query: z.string().optional(),
4043
4047
  limit: relaxedNumber().optional().default(10),
4044
4048
  similarity_threshold: relaxedNumber().optional().default(0.25),
4045
4049
  hint_on_empty: z.boolean().optional().default(true).describe("Include hint when no results found (default: true)")
@@ -4048,7 +4052,7 @@ var TeamAddToVectorIndexSchema = z.object({
4048
4052
  entry_id: z.number()
4049
4053
  });
4050
4054
  var TeamAddToVectorIndexSchemaMcp = z.object({
4051
- entry_id: relaxedNumber()
4055
+ entry_id: relaxedNumber().optional()
4052
4056
  });
4053
4057
  var TeamSemanticEntryOutputSchema = TeamEntryOutputSchema.extend({
4054
4058
  similarity: z.number()
@@ -4469,7 +4473,7 @@ function getTeamAdminTools(context) {
4469
4473
  title: "Merge Team Tags",
4470
4474
  description: "Merge a source tag into a target tag in the team database. All entries with the source tag will be re-tagged with the target tag. Requires TEAM_DB_PATH.",
4471
4475
  group: "team",
4472
- inputSchema: TeamMergeTagsSchema,
4476
+ inputSchema: TeamMergeTagsSchemaMcp,
4473
4477
  outputSchema: TeamMergeTagsOutputSchema,
4474
4478
  annotations: { readOnlyHint: false, idempotentHint: false, openWorldHint: false },
4475
4479
  handler: (params) => {
@@ -4704,6 +4708,16 @@ function getTeamRelationshipTools(context) {
4704
4708
  return { ...TEAM_DB_ERROR_RESPONSE };
4705
4709
  }
4706
4710
  const { from_entry_id, to_entry_id, relationship_type, description } = TeamLinkEntriesSchema.parse(params);
4711
+ if (from_entry_id === to_entry_id) {
4712
+ return {
4713
+ success: false,
4714
+ error: "Cannot link an entry to itself",
4715
+ code: "VALIDATION_ERROR",
4716
+ category: "validation",
4717
+ suggestion: "Choose a different target entry to create a meaningful relationship",
4718
+ recoverable: true
4719
+ };
4720
+ }
4707
4721
  const fromEntry = teamDb.getEntryById(from_entry_id);
4708
4722
  if (!fromEntry) {
4709
4723
  return {